From: William S. <wst...@po...> - 2001-02-27 20:37:56
|
Good day, Jeff, all, Compiling 2.4.2+today's uml-latest: kgcc -Wl,-T,/usr/src/uml-linux/linux-2.4.2.uml.liar/arch/um/link.ld -o linux -static \ /usr/src/uml-linux/linux-2.4.2.uml.liar/arch/um/main.o vmlinux.o -L/usr/lib /usr/bin/ld: linux: Not enough room for program headers (allocated 3, need 4) /usr/bin/ld: final link failed: Bad value collect2: ld returned 1 exit status make: *** [linux] Error 1 I know this isn't anywhere near enough info to debug the problem - what would be useful? Directory listings? .config? Program versions? [wstearns@sparrow wstearns]$ ld --version GNU ld 2.10.90 Copyright 2000 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License. This program has absolutely no warranty. Supported emulations: elf_i386 i386linux [wstearns@sparrow wstearns]$ kgcc --version egcs-2.91.66 Redhat 7, using kgcc. Cheers, - Bill --------------------------------------------------------------------------- I like cats too, lets exchange recipies. (Courtesy of John Michael Clemens <cl...@rp...>) -------------------------------------------------------------------------- William Stearns (wst...@po...). Mason, Buildkernel, named2hosts, and ipfwadm2ipchains are at: http://www.pobox.com/~wstearns LinuxMonth; articles for Linux Enthusiasts! http://www.linuxmonth.com -------------------------------------------------------------------------- |
From: William S. <wst...@po...> - 2001-02-28 18:53:42
|
Good day, Jeff, all, On Tue, 27 Feb 2001, William Stearns wrote: > Compiling 2.4.2+today's uml-latest: > > kgcc -Wl,-T,/usr/src/uml-linux/linux-2.4.2.uml.liar/arch/um/link.ld -o > linux -static \ > /usr/src/uml-linux/linux-2.4.2.uml.liar/arch/um/main.o vmlinux.o > -L/usr/lib > /usr/bin/ld: linux: Not enough room for program headers (allocated 3, need > 4) > /usr/bin/ld: final link failed: Bad value > collect2: ld returned 1 exit status > make: *** [linux] Error 1 > > I know this isn't anywhere near enough info to debug the problem - > what would be useful? Directory listings? .config? Program versions? > > [wstearns@sparrow wstearns]$ ld --version > GNU ld 2.10.90 > Copyright 2000 Free Software Foundation, Inc. > This program is free software; you may redistribute it under the terms of > the GNU General Public License. This program has absolutely no warranty. > Supported emulations: > elf_i386 > i386linux Just for reference, updating to binutils-2.10.91.0.2-1 (from the Wolverine rh71 beta) didn't change anything. Also, the linking did work up to kernel 2.4.1; I went back and recompiled 2.4.1 and was able to build a complete kernel with the same software setup. Based on my newly firmed-up C ignorance :-), I went back to the two patches. Interdiff showed the following difference between the 2.4.1 uml patch and the 2.4.2-latest: diff -u um/arch/um/link.ld.in um/arch/um/link.ld.in --- um/arch/um/link.ld.in +++ um/arch/um/link.ld.in @@ -39,10 +39,23 @@ .rela.bss : { *(.rela.bss) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } - .init : { *(.init) } =0x9090 .plt : { *(.plt) } .remap : { arch/um/kernel/unmap_fin.o (.text) } + + . = ALIGN(4096); /* Init code and data */ + __init_begin = .; + .text.init : { *(.text.init) } + .data.init : { *(.data.init) } + . = ALIGN(16); + __setup_start = .; + .setup.init : { *(.setup.init) } + __setup_end = .; + __initcall_start = .; + .initcall.init : { *(.initcall.init) } + __initcall_end = .; . = ALIGN(4096); + __init_end = .; + _stext = .; .text : { @@ -88,14 +101,6 @@ { *(.dtors) } - - . = ALIGN(16); - __setup_start = .; - .setup.init : { *(.setup.init) } - __setup_end = .; - __initcall_start = .; - .initcall.init : { *(.initcall.init) } - __initcall_end = .; .got : { *(.got.plt) *(.got) } .dynamic : { *(.dynamic) } There didn't _seem_ to be other linking related changes, but there might have been. Is there anything in the above interdiff that might be relevant? Cheers, - Bill 'Happy to harass, but darn short on real answers' Stearns --------------------------------------------------------------------------- Husband's note to wife: "Doctor's office called. The Pabst beer is normal." (Courtesy of http://issue9mm.freeservers.com) -------------------------------------------------------------------------- William Stearns (wst...@po...). Mason, Buildkernel, named2hosts, and ipfwadm2ipchains are at: http://www.pobox.com/~wstearns LinuxMonth; articles for Linux Enthusiasts! http://www.linuxmonth.com -------------------------------------------------------------------------- |
From: William S. <wst...@po...> - 2001-02-28 19:19:53
|
Good day, Jeff, all, And just to continue this monologue weakly disguised as a mailing list discussion... I copied over the arch/um/link.ld.in from 2.4.1 to the 2.4.2-latest and the kernel compiled successfully. The resulting binary does seem to initialize and start correctly. Hmmm... On Wed, 28 Feb 2001, William Stearns wrote: > On Tue, 27 Feb 2001, William Stearns wrote: > > > Compiling 2.4.2+today's uml-latest: > > > > kgcc -Wl,-T,/usr/src/uml-linux/linux-2.4.2.uml.liar/arch/um/link.ld -o > > linux -static \ > > /usr/src/uml-linux/linux-2.4.2.uml.liar/arch/um/main.o vmlinux.o > > -L/usr/lib > > /usr/bin/ld: linux: Not enough room for program headers (allocated 3, need > > 4) > > /usr/bin/ld: final link failed: Bad value > > collect2: ld returned 1 exit status > > make: *** [linux] Error 1 > > > > I know this isn't anywhere near enough info to debug the problem - > > what would be useful? Directory listings? .config? Program versions? > > > > [wstearns@sparrow wstearns]$ ld --version > > GNU ld 2.10.90 > > Copyright 2000 Free Software Foundation, Inc. > > This program is free software; you may redistribute it under the terms of > > the GNU General Public License. This program has absolutely no warranty. > > Supported emulations: > > elf_i386 > > i386linux > > Just for reference, updating to binutils-2.10.91.0.2-1 (from the > Wolverine rh71 beta) didn't change anything. > Also, the linking did work up to kernel 2.4.1; I went back and > recompiled 2.4.1 and was able to build a complete kernel with the same > software setup. > > Based on my newly firmed-up C ignorance :-), I went back to the > two patches. Interdiff showed the following difference between the 2.4.1 > uml patch and the 2.4.2-latest: > > diff -u um/arch/um/link.ld.in um/arch/um/link.ld.in > --- um/arch/um/link.ld.in > +++ um/arch/um/link.ld.in > @@ -39,10 +39,23 @@ > .rela.bss : { *(.rela.bss) } > .rel.plt : { *(.rel.plt) } > .rela.plt : { *(.rela.plt) } > - .init : { *(.init) } =0x9090 > .plt : { *(.plt) } > .remap : { arch/um/kernel/unmap_fin.o (.text) } > + > + . = ALIGN(4096); /* Init code and data */ > + __init_begin = .; > + .text.init : { *(.text.init) } > + .data.init : { *(.data.init) } > + . = ALIGN(16); > + __setup_start = .; > + .setup.init : { *(.setup.init) } > + __setup_end = .; > + __initcall_start = .; > + .initcall.init : { *(.initcall.init) } > + __initcall_end = .; > . = ALIGN(4096); > + __init_end = .; > + > _stext = .; > .text : > { > @@ -88,14 +101,6 @@ > { > *(.dtors) > } > - > - . = ALIGN(16); > - __setup_start = .; > - .setup.init : { *(.setup.init) } > - __setup_end = .; > - __initcall_start = .; > - .initcall.init : { *(.initcall.init) } > - __initcall_end = .; > > .got : { *(.got.plt) *(.got) } > .dynamic : { *(.dynamic) } > > > There didn't _seem_ to be other linking related changes, but there > might have been. Is there anything in the above interdiff that might be > relevant? Cheers, - Bill --------------------------------------------------------------------------- Customer: I'm running Windows '98 Tech: Yes. Customer: My computer isn't working now. Tech: Yes, you said that. (Courtesy of phazer <ph...@ba...>) -------------------------------------------------------------------------- William Stearns (wst...@po...). Mason, Buildkernel, named2hosts, and ipfwadm2ipchains are at: http://www.pobox.com/~wstearns LinuxMonth; articles for Linux Enthusiasts! http://www.linuxmonth.com -------------------------------------------------------------------------- |