Hello-
2.6.23-rc1 breaks the build for 64-bit powerpc for me (using
maple_defconfig):
LD vmlinux.o
powerpc64-unknown-linux-gnu-ld: dynreloc miscount for
kernel/built-in.o, section .opd
powerpc64-unknown-linux-gnu-ld: can not edit opd Bad value
make: *** [vmlinux.o] Error 1
This is on a i386 host with:
powerpc64-unknown-linux-gnu-gcc (GCC) 4.1.2
GNU ld version 2.16.1
Reverting the following commit fixes it:
commit 741f98fe298a73c9d47ed53703c1279a29718581
Author: Sam Ravnborg [off-list ref]
Date: Tue Jul 17 10:54:06 2007 +0200
kbuild: do section mismatch check on full vmlinux
However, I see a possibly related binutils patch:
http://article.gmane.org/gmane.comp.gnu.binutils/33650
Will there be a kbuild fix for this or should I update my binutils?
From: Sam Ravnborg <hidden> Date: 2007-07-25 07:56:16
On Tue, Jul 24, 2007 at 05:41:05PM -0500, Nathan Lynch wrote:
Hello-
2.6.23-rc1 breaks the build for 64-bit powerpc for me (using
maple_defconfig):
LD vmlinux.o
powerpc64-unknown-linux-gnu-ld: dynreloc miscount for
kernel/built-in.o, section .opd
powerpc64-unknown-linux-gnu-ld: can not edit opd Bad value
make: *** [vmlinux.o] Error 1
This is on a i386 host with:
powerpc64-unknown-linux-gnu-gcc (GCC) 4.1.2
GNU ld version 2.16.1
Reverting the following commit fixes it:
commit 741f98fe298a73c9d47ed53703c1279a29718581
Author: Sam Ravnborg [off-list ref]
Date: Tue Jul 17 10:54:06 2007 +0200
kbuild: do section mismatch check on full vmlinux
However, I see a possibly related binutils patch:
http://article.gmane.org/gmane.comp.gnu.binutils/33650
Will there be a kbuild fix for this or should I update my binutils?
What kbuild does is a very basic link of a number of .o files.
Why this suddenly breaks I do not fully understand and I see no obvious
way to fix it in kbuild.
And browsing arch/ppc/kernel/vmlinux.lds.S I see no special handling of .opd.
Puzzeled?
I'm not sure how to deal with this one. Would prefer to say that this is
a binutils bug so fix it there but then I like to provide a workaround
for those with faulty toolchains.
I could put the link and the additional modpost check inside a
CONFIG_SOMETHING....
Sam
From: Sam Ravnborg <hidden> Date: 2007-07-25 09:49:45
On Tue, Jul 24, 2007 at 05:41:05PM -0500, Nathan Lynch wrote:
Hello-
2.6.23-rc1 breaks the build for 64-bit powerpc for me (using
maple_defconfig):
LD vmlinux.o
powerpc64-unknown-linux-gnu-ld: dynreloc miscount for
kernel/built-in.o, section .opd
powerpc64-unknown-linux-gnu-ld: can not edit opd Bad value
make: *** [vmlinux.o] Error 1
This is on a i386 host with:
powerpc64-unknown-linux-gnu-gcc (GCC) 4.1.2
GNU ld version 2.16.1
Reverting the following commit fixes it:
commit 741f98fe298a73c9d47ed53703c1279a29718581
Author: Sam Ravnborg [off-list ref]
Date: Tue Jul 17 10:54:06 2007 +0200
kbuild: do section mismatch check on full vmlinux
However, I see a possibly related binutils patch:
http://article.gmane.org/gmane.comp.gnu.binutils/33650
Will there be a kbuild fix for this or should I update my binutils?
Did a bit more testing.
Im am down to the following to reproduce the fault:
/opt/crosstool/gcc-4.1.0-glibc-2.3.6/powerpc64-unknown-linux-gnu/bin/powerpc64-unknown-linux-gnu-ld -m elf64ppc -r -o vmlinux.o kernel/signal.o arch/powerpc/kernel/vdso.o
Seems that vdso.o and signal.o does not like each other??
Sam
From: Sam Ravnborg <hidden> Date: 2007-07-25 11:42:41
On Tue, Jul 24, 2007 at 05:41:05PM -0500, Nathan Lynch wrote:
Hello-
2.6.23-rc1 breaks the build for 64-bit powerpc for me (using
maple_defconfig):
LD vmlinux.o
powerpc64-unknown-linux-gnu-ld: dynreloc miscount for
kernel/built-in.o, section .opd
powerpc64-unknown-linux-gnu-ld: can not edit opd Bad value
make: *** [vmlinux.o] Error 1
This is on a i386 host with:
powerpc64-unknown-linux-gnu-gcc (GCC) 4.1.2
GNU ld version 2.16.1
Reverting the following commit fixes it:
commit 741f98fe298a73c9d47ed53703c1279a29718581
Author: Sam Ravnborg [off-list ref]
Date: Tue Jul 17 10:54:06 2007 +0200
kbuild: do section mismatch check on full vmlinux
However, I see a possibly related binutils patch:
http://article.gmane.org/gmane.comp.gnu.binutils/33650
Will there be a kbuild fix for this or should I update my binutils?
I tried searching a bit more to find the culprint.
I narrowed it down to the following change to avoid the breakage:
So seems that something goes a bit fishy when using weak symbols and this trigges
a binutils bug.
The above line was introdused in the following commit:
commit f269fdd1829acc5e53bf57b145003e5733133f2b
Author: David Howells [off-list ref]
Date: Wed Sep 27 01:50:23 2006 -0700
[PATCH] NOMMU: move the fallback arch_vma_name() to a sensible place
Move the fallback arch_vma_name() to a sensible place (kernel/signal.c).
Currently it's in fs/proc/task_mmu.c, a file that is dependent on both
CONFIG_PROC_FS and CONFIG_MMU being enabled, but it's used from
kernel/signal.c from where it is called unconditionally.
[akpm@osdl.org: build fix]
Signed-off-by: David Howells [off-list ref]
Signed-off-by: Andrew Morton [off-list ref]
Signed-off-by: Linus Torvalds [off-list ref]
Sam
On Tue, Jul 24, 2007 at 05:41:05PM -0500, Nathan Lynch wrote:
quoted
2.6.23-rc1 breaks the build for 64-bit powerpc for me (using
maple_defconfig):
LD vmlinux.o
powerpc64-unknown-linux-gnu-ld: dynreloc miscount for
kernel/built-in.o, section .opd
powerpc64-unknown-linux-gnu-ld: can not edit opd Bad value
make: *** [vmlinux.o] Error 1
I narrowed it down to the following change to avoid the breakage:
So seems that something goes a bit fishy when using weak symbols and this trigges
a binutils bug.
The above line was introdused in the following commit:
commit f269fdd1829acc5e53bf57b145003e5733133f2b
Author: David Howells [off-list ref]
Date: Wed Sep 27 01:50:23 2006 -0700
[PATCH] NOMMU: move the fallback arch_vma_name() to a sensible place
Thanks for looking into this. Removing the "__attribute__((weak))"
from arch_vma_name's declaration in linux/mm.h unbreaks the build for
me.
Maybe it shouldn't matter, but it seems unusual to have the weak
attribute specified at the function's declaration. I wasn't able to
find any examples of that for other weak functions in the kernel
(e.g. sched_clock).
From: Sam Ravnborg <hidden> Date: 2007-07-25 21:32:11
On Wed, Jul 25, 2007 at 04:16:10PM -0500, Nathan Lynch wrote:
Hi Sam-
Sam Ravnborg wrote:
quoted
On Tue, Jul 24, 2007 at 05:41:05PM -0500, Nathan Lynch wrote:
quoted
2.6.23-rc1 breaks the build for 64-bit powerpc for me (using
maple_defconfig):
LD vmlinux.o
powerpc64-unknown-linux-gnu-ld: dynreloc miscount for
kernel/built-in.o, section .opd
powerpc64-unknown-linux-gnu-ld: can not edit opd Bad value
make: *** [vmlinux.o] Error 1
I narrowed it down to the following change to avoid the breakage:
So seems that something goes a bit fishy when using weak symbols and this trigges
a binutils bug.
The above line was introdused in the following commit:
commit f269fdd1829acc5e53bf57b145003e5733133f2b
Author: David Howells [off-list ref]
Date: Wed Sep 27 01:50:23 2006 -0700
[PATCH] NOMMU: move the fallback arch_vma_name() to a sensible place
Thanks for looking into this. Removing the "__attribute__((weak))"
from arch_vma_name's declaration in linux/mm.h unbreaks the build for
me.
Maybe it shouldn't matter, but it seems unusual to have the weak
attribute specified at the function's declaration. I wasn't able to
find any examples of that for other weak functions in the kernel
(e.g. sched_clock).
Unfortunately removing the weak attribute uncovered that x86_64 has
two functions with the same name => link error.
Needs to have that sorted first out but ball is rolling.
(Se lkml for details)
Sam