2.6.23-rc8-mm1 -- powerpc link failure

Andy Whitcroft
2007-09-25T13:47:15Z

2.6.23-rc6-mm1, 2.6.23-rc7-mm1 and 2.6.23-rc8-mm1 all fail to link
correctly on a powerpc machine (elm3b19) in our test grid. It fails as
below:

LD vmlinux.o
ld: dynreloc miscount for fs/built-in.o, section .opd
ld: can not edit opd Bad value
make: *** [vmlinux.o] Error 1

Compiler versions and linker versions as below:

root@elm3b19:~/apw/linux-2.6.22# gcc -v
Using built-in specs.
Target: powerpc-linux-gnu
Configured with: ../src/configure -v
--enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr
--with-gxx-include-dir=/usr/include/c++/4.0.2 --enable-shared
--with-system-zlib --libexecdir=/usr/lib --enable-nls
--without-included-gettext --enable-threads=posix --program-suffix=-4.0
--enable-__cxa_atexit --enable-libstdcxx-allocator=mt
--enable-clocale=gnu --enable-libstdcxx-debug --enable-java-gc=boehm
--enable-java-awt=gtk-default --enable-gtk-cairo
--with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre
--enable-mpfr --disable-softfloat
--enable-targets=powerpc-linux,powerpc64-linux --with-cpu=default32
--disable-werror --enable-checking=release powerpc-linux-gnu
Thread model: posix
gcc version 4.0.2 20050808 (prerelease) (Ubuntu 4.0.1-4ubuntu9)
root@elm3b19:~/apw/linux-2.6.22# ld -v
GNU ld version 2.16.1 Debian GNU/Linux

As suggested elsewhere I have had a go at tracking this down. Previous
problems of this kind were introduced as a result of using 'weak'
declarations to provide default implementations. This investigation led
me to the following commit:

commit c60473b5d32ea6cf4561232bc852bacd3a513528
Author: Jiri Kosina <jkosina@suse.cz>
Date: Sat Sep 15 01:49:49 2007 +0000

i386-and-x86_64-randomize-brk

Backing this change out seems to get us past this problem. If we are to
support compilers of this age, and I believe we currently do, then we
probabally need to avoid the weak declarations and use the Kconfig
system to provide the alternatives here.

Jiri?

-apw