Re: do section mismatch check on full vmlinux breaks powerpc build
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 [EMAIL PROTECTED] 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 ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: do section mismatch check on full vmlinux breaks powerpc build
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 [EMAIL PROTECTED] 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 ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: do section mismatch check on full vmlinux breaks powerpc build
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 [EMAIL PROTECTED] 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: diff --git a/include/linux/mm.h b/include/linux/mm.h index c456c3a..2ea222f 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -1246,7 +1246,7 @@ void drop_slab(void); extern int randomize_va_space; #endif -__attribute__((weak)) const char *arch_vma_name(struct vm_area_struct *vma); +//__attribute__((weak)) const char *arch_vma_name(struct vm_area_struct *vma); #endif /* __KERNEL__ */ #endif /* _LINUX_MM_H */ 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 [EMAIL PROTECTED] 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. [EMAIL PROTECTED]: build fix] Signed-off-by: David Howells [EMAIL PROTECTED] Signed-off-by: Andrew Morton [EMAIL PROTECTED] Signed-off-by: Linus Torvalds [EMAIL PROTECTED] Sam ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: do section mismatch check on full vmlinux breaks powerpc build
Hi Sam- Sam Ravnborg wrote: On Tue, Jul 24, 2007 at 05:41:05PM -0500, Nathan Lynch wrote: 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: diff --git a/include/linux/mm.h b/include/linux/mm.h index c456c3a..2ea222f 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -1246,7 +1246,7 @@ void drop_slab(void); extern int randomize_va_space; #endif -__attribute__((weak)) const char *arch_vma_name(struct vm_area_struct *vma); +//__attribute__((weak)) const char *arch_vma_name(struct vm_area_struct *vma); #endif /* __KERNEL__ */ #endif /* _LINUX_MM_H */ 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 [EMAIL PROTECTED] 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). ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
Re: do section mismatch check on full vmlinux breaks powerpc build
On Wed, Jul 25, 2007 at 04:16:10PM -0500, Nathan Lynch wrote: Hi Sam- Sam Ravnborg wrote: On Tue, Jul 24, 2007 at 05:41:05PM -0500, Nathan Lynch wrote: 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: diff --git a/include/linux/mm.h b/include/linux/mm.h index c456c3a..2ea222f 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -1246,7 +1246,7 @@ void drop_slab(void); extern int randomize_va_space; #endif -__attribute__((weak)) const char *arch_vma_name(struct vm_area_struct *vma); +//__attribute__((weak)) const char *arch_vma_name(struct vm_area_struct *vma); #endif /* __KERNEL__ */ #endif /* _LINUX_MM_H */ 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 [EMAIL PROTECTED] 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 ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev
do section mismatch check on full vmlinux breaks powerpc build
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 [EMAIL PROTECTED] 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? ___ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev