Messages in this thread | | | Date | Fri, 23 Nov 2012 21:44:02 +0100 (CET) | From | Jan Engelhardt <> | Subject | percpu section failure with Gold linker |
| |
Hi,
when compiling a kernel with the gold linker (3.7.0-rc6 26d29d06ea0204, gcc-4.7 and binutils-2.23 in my case), certain pcpu symbols are seemingly errneously copied over from .o files to .ko files, leading to a hard warning during depmod:
gold$ make -j8 LD=gold HOSTLD=gold gold$ make modules_install INSTALL_MOD_PATH=/tmp/foo [...] WARNING: /tmp/foo/lib/modules/3.7.0-rc6-jng6-default+ /kernel/net/rds/rds_tcp.ko needs unknown symbol __pcpu_scope_rds_tcp_stats
This happens with many modules using percpu; looking at things with nm reveals:
gold/net/ipv6$ nm ipv6.o | grep __pcpu_ 0000000000000000 D __pcpu_unique_ipv6_cookie_scratch gold/net/ipv6$ nm ipv6.ko | grep __pcpu_ U __pcpu_unique_ipv6_cookie_scratch
On the other hand, in a linux tree built with the original ld (ld.bfd), things look like:
bfd$ make -j8 [...] bfd/net/ipv6$ nm ipv6.o | grep pcpu 0000000000000000 D __pcpu_unique_ipv6_cookie_scratch bfd/net/ipv6$ nm ipv6.ko | grep pcpu (no result)
| |