On Fri, 15 Feb 2002, Rob Byrnes wrote: > I'm running a Cariolet and trying to use make-kpkg to build a new kernel > from the 2.4.14 package. I'm getting the following error: > > /usr/src/kernel-source-2.4.14# fakeroot make-kpkg --added-patches > ext3-fs --revision custom.1.0 kernel_image > > section .text.exit' > fs/fs.o(.exitcall.exit+0x18): more undefined references to `local symbols in > dis > carded section .text.exit' follow > make[1]: *** [vmlinux] Error 1 > make[1]: Leaving directory `/usr/src/kernel-source-2.4.14' > > I have tried removing the ext3-fs patch, but the failure happens at the same > point. > > Any clues?
Let me guess: unstable or woody (definitely not stable) :-) The problem is that the kernel's linker script discards the .text.exit section, but some of the code in the kernel is trying to reference symbols that are in that section (wrongly so, btw). Binutils upstream recently tightened down on linking such binaries (it now doesn't let it happen, whereas before it would just keep quiet and link), thereby fixing what many considered a bug in the linker. If you want a quick way around it, edit arch/alpha/vmlinux.lds.in and delete the *(.text.exit) entry in the DISCARD line. It's not the optimal solution, but it works in every case and I've been recommending it over sending everyone a more properly-constructed patch for simplicity's sake. FYI, you should've gotten a debconf warning on your latest binutils upgrade (if you're up to -6 or -7) that mentioned this...if not, let me know. If you're not sure if you did or not...don't let me know :-P C

