Re: Problems with allyesconfig kernel build
From: Segher Boessenkool <hidden>
Date: 2007-10-23 09:09:42
This was first noted with the -mm tree, but has now migrated into Linus' tree. An allyesconfig build dies in the link stage like this: /usr/bin/ld: arch/powerpc/kernel/head_64.o(.text+0x80c8): sibling call optimization to `.text.init.refok' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `.text.init.refok' extern /usr/bin/ld: arch/powerpc/kernel/head_64.o(.text+0x8160): sibling call optimization to `.text.init.refok' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `.text.init.refok' extern /usr/bin/ld: arch/powerpc/kernel/head_64.o(.text+0x81c4): sibling call optimization to `.text.init.refok' does not allow automatic multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, or make `.text.init.refok' extern /usr/bin/ld: final link failed: Bad value
I just tried, and it works fine for me.
Intuiting the obvious, I changed all the _INIT_STATIC and _INIT_GLOBAL uses in head_64.S back to _STATIC and _GLOBAL (which just moves the code from .text.init.refok to .text). Now the linker segfaults instead. :-)
Tried that, too, and no segfault, everything happy.
$ ld --version GNU ld (GNU Binutils for Debian) 2.18
I'm using CVS HEAD of binutils. Could you try that, with the same GCC version you are currently using? Just to narrow things down... Segher