Cannot move location counter backwards (romlayout16.lds) error
1) downloaded http://code.coreboot.org/p/seabios/source/download/master/ gnostic@GnoStiC-G633:~/seabios/seabios-master$ make Build Kconfig config file Compiling whole program out/ccode.16.s Compiling to assembler out/asm-offsets.s Generating offset file out/asm-offsets.h Compiling (16bit) out/code16.o Compiling whole program out/ccode32flat.o Compiling whole program out/code32seg.o Building ld scripts (version "pre-0.6.3-20110517_170406-GnoStiC-G633") Fixed space: 0xe05b-0x10000 total: 8101 slack: 1 Percent slack: 0.0% 16bit size: 39424 32bit segmented size: 1636 32bit flat size: 12300 32bit flat init size: 56624 Linking out/rom16.o out/romlayout16.lds:697 cannot move location counter backwards (from 000000000000ca0d to 000000000000c9f4) make: *** [out/rom16.o] Error 1 2) downloaded http://code.coreboot.org/p/seabios/source/download/0.6.1-stable/ gnostic@GnoStiC-G633:~/seabios/seabios-0.6.1-stable$ make Compiling whole program out/ccode.16.s Compiling to assembler out/asm-offsets.s Generating offset file out/asm-offsets.h Compiling (16bit) out/code16.o Compiling whole program out/ccode32flat.o Compiling whole program out/code32seg.o Building ld scripts (version "0.6.1.2-20110517_170552-GnoStiC-G633") Fixed space: 0xe05b-0x10000 total: 8101 slack: 3 Percent slack: 0.0% 16bit size: 38896 32bit segmented size: 1636 32bit flat size: 64828 Linking out/rom16.o out/romlayout16.lds:695 cannot move location counter backwards (from 000000000000c9fa to 000000000000c9e0) make: *** [out/rom16.o] Error 1 3) it's same with 0.6.2 too gnostic@GnoStiC-G633:~/seabios-0.6.2$ uname -a Linux GnoStiC-G633 2.6.38-8-generic-pae #42-Ubuntu SMP Mon Apr 11 05:17:09 UTC 2011 i686 i686 i386 GNU/Linux gnostic@GnoStiC-G633:~/seabios-0.6.2$ gcc -v ... gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4) any suggestions? Mustafa Tufan
2011/5/17 Mustafa Tufan <mustafa.tufan@gmail.com>:
1) downloaded http://code.coreboot.org/p/seabios/source/download/master/
gnostic@GnoStiC-G633:~/seabios/seabios-master$ make Build Kconfig config file Compiling whole program out/ccode.16.s Compiling to assembler out/asm-offsets.s Generating offset file out/asm-offsets.h Compiling (16bit) out/code16.o Compiling whole program out/ccode32flat.o Compiling whole program out/code32seg.o Building ld scripts (version "pre-0.6.3-20110517_170406-GnoStiC-G633") Fixed space: 0xe05b-0x10000 total: 8101 slack: 1 Percent slack: 0.0% 16bit size: 39424 32bit segmented size: 1636 32bit flat size: 12300 32bit flat init size: 56624 Linking out/rom16.o out/romlayout16.lds:697 cannot move location counter backwards (from 000000000000ca0d to 000000000000c9f4) make: *** [out/rom16.o] Error 1
2) downloaded http://code.coreboot.org/p/seabios/source/download/0.6.1-stable/
gnostic@GnoStiC-G633:~/seabios/seabios-0.6.1-stable$ make Compiling whole program out/ccode.16.s Compiling to assembler out/asm-offsets.s Generating offset file out/asm-offsets.h Compiling (16bit) out/code16.o Compiling whole program out/ccode32flat.o Compiling whole program out/code32seg.o Building ld scripts (version "0.6.1.2-20110517_170552-GnoStiC-G633") Fixed space: 0xe05b-0x10000 total: 8101 slack: 3 Percent slack: 0.0% 16bit size: 38896 32bit segmented size: 1636 32bit flat size: 64828 Linking out/rom16.o out/romlayout16.lds:695 cannot move location counter backwards (from 000000000000c9fa to 000000000000c9e0) make: *** [out/rom16.o] Error 1
3) it's same with 0.6.2 too
gnostic@GnoStiC-G633:~/seabios-0.6.2$ uname -a Linux GnoStiC-G633 2.6.38-8-generic-pae #42-Ubuntu SMP Mon Apr 11 05:17:09 UTC 2011 i686 i686 i386 GNU/Linux
gnostic@GnoStiC-G633:~/seabios-0.6.2$ gcc -v ... gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4)
any suggestions?
Download coreboot's source code from subversion, then use crossgcc to build SeaBIOS: http://www.coreboot.org/Download_coreboot $ svn co svn://coreboot.org/coreboot/trunk ~/coreboot/svn/trunk/ $ cd ~/coreboot/svn/util/crossgcc/ $ ./buildgcc $ cd ~/seabios/seabios-master $ export PATH=~/coreboot/svn/trunk/util/crossgcc/xgcc/bin/:"$PATH" $ make HOSTCC=i386-elf-gcc LD=i386-elf-ld The buildgcc script can take a --jobs parameter, which is passed to "make". See ./buildgcc --help
Mustafa Tufan
_______________________________________________ SeaBIOS mailing list SeaBIOS@seabios.org http://www.seabios.org/mailman/listinfo/seabios
Idwer Vollering wrote:
gnostic@GnoStiC-G633:~/seabios-0.6.2$ gcc -v ... gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4)
Ubuntu toolchain is known to be broken. They have added patches which make the toolchain unable to build coreboot and/or SeaBIOS correctly.
Download coreboot's source code from subversion, then use crossgcc to build SeaBIOS: http://www.coreboot.org/Download_coreboot
$ svn co svn://coreboot.org/coreboot/trunk ~/coreboot/svn/trunk/ $ cd ~/coreboot/svn/util/crossgcc/
Note the paths should be the same.
$ ./buildgcc
Since a few commits it's also possible to run make crossgcc in the coreboot top-level directory to build the reference toolchain.
$ cd ~/seabios/seabios-master $ export PATH=~/coreboot/svn/trunk/util/crossgcc/xgcc/bin/:"$PATH" $ make HOSTCC=i386-elf-gcc LD=i386-elf-ld
Yup. //Peter
ok, i setup a ubuntu 10.04.2 machine and it compiles fine; just for the record: gno@gno-laptop:~$ uname -a Linux gno-laptop 2.6.32-28-generic #55-Ubuntu SMP Mon Jan 10 21:21:01 UTC 2011 i686 GNU/Linux gno@gno-laptop:~$ gcc -v gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) gno@gno-laptop:~$ ld -v GNU ld (GNU Binutils for Ubuntu) 2.20.1-system.20100303 -mustafa On Tue, May 17, 2011 at 8:45 PM, Peter Stuge <peter@stuge.se> wrote:
Idwer Vollering wrote:
Ubuntu toolchain is known to be broken. They have added patches which make the toolchain unable to build coreboot and/or SeaBIOS correctly.
>>> On 5/17/2011 at 08:29 AM, Mustafa Tufan <mustafa.tufan@gmail.com> wrote: > 1) downloaded http://code.coreboot.org/p/seabios/source/download/master/ > > gnostic@GnoStiC-G633:~/seabios/seabios-master$ make > Build Kconfig config file > Compiling whole program out/ccode.16.s > Compiling to assembler out/asm-offsets.s > Generating offset file out/asm-offsets.h > Compiling (16bit) out/code16.o > Compiling whole program out/ccode32flat.o > Compiling whole program out/code32seg.o > Building ld scripts (version "pre-0.6.3-20110517_170406-GnoStiC-G633") > Fixed space: 0xe05b-0x10000 total: 8101 slack: 1 Percent slack: 0.0% > 16bit size: 39424 > 32bit segmented size: 1636 > 32bit flat size: 12300 > 32bit flat init size: 56624 > Linking out/rom16.o > out/romlayout16.lds:697 cannot move location counter backwards (from > 000000000000ca0d to 000000000000c9f4) > make: *** [out/rom16.o] Error 1 > > 2) downloaded > http://code.coreboot.org/p/seabios/source/download/0.6.1-stable/ > > gnostic@GnoStiC-G633:~/seabios/seabios-0.6.1-stable$ make > Compiling whole program out/ccode.16.s > Compiling to assembler out/asm-offsets.s > Generating offset file out/asm-offsets.h > Compiling (16bit) out/code16.o > Compiling whole program out/ccode32flat.o > Compiling whole program out/code32seg.o > Building ld scripts (version "0.6.1.2-20110517_170552-GnoStiC-G633") > Fixed space: 0xe05b-0x10000 total: 8101 slack: 3 Percent slack: 0.0% > 16bit size: 38896 > 32bit segmented size: 1636 > 32bit flat size: 64828 > Linking out/rom16.o > out/romlayout16.lds:695 cannot move location counter backwards (from > 000000000000c9fa to 000000000000c9e0) > make: *** [out/rom16.o] Error 1 > > 3) it's same with 0.6.2 too > > gnostic@GnoStiC-G633:~/seabios-0.6.2$ uname -a > Linux GnoStiC-G633 2.6.38-8-generic-pae #42-Ubuntu SMP Mon Apr 11 05:17:09 > UTC 2011 i686 i686 i386 GNU/Linux > > gnostic@GnoStiC-G633:~/seabios-0.6.2$ gcc -v > ... > gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4) > > any suggestions? > > Mustafa Tufan What linker version are you using? I ran into this type of problem when using the latest un-official binutils package. They have since fixed a recently introduced bug in ld that was causing the issue. For more info, see: https://bugzilla.novell.com/show_bug.cgi?id=691290 Bruce
ubuntu 11.04 gnostic@GnoStiC-G633:~$ ld -v GNU ld (GNU Binutils for Ubuntu) 2.21.0.20110327 -mustafa. On Tue, May 17, 2011 at 8:13 PM, Bruce Rogers <brogers@novell.com> wrote: > >>> On 5/17/2011 at 08:29 AM, Mustafa Tufan <mustafa.tufan@gmail.com> > wrote: > > 1) downloaded http://code.coreboot.org/p/seabios/source/download/master/ > > > > gnostic@GnoStiC-G633:~/seabios/seabios-master$ make > > Build Kconfig config file > > Compiling whole program out/ccode.16.s > > Compiling to assembler out/asm-offsets.s > > Generating offset file out/asm-offsets.h > > Compiling (16bit) out/code16.o > > Compiling whole program out/ccode32flat.o > > Compiling whole program out/code32seg.o > > Building ld scripts (version "pre-0.6.3-20110517_170406-GnoStiC-G633") > > Fixed space: 0xe05b-0x10000 total: 8101 slack: 1 Percent slack: 0.0% > > 16bit size: 39424 > > 32bit segmented size: 1636 > > 32bit flat size: 12300 > > 32bit flat init size: 56624 > > Linking out/rom16.o > > out/romlayout16.lds:697 cannot move location counter backwards (from > > 000000000000ca0d to 000000000000c9f4) > > make: *** [out/rom16.o] Error 1 > > > > 2) downloaded > > http://code.coreboot.org/p/seabios/source/download/0.6.1-stable/ > > > > gnostic@GnoStiC-G633:~/seabios/seabios-0.6.1-stable$ make > > Compiling whole program out/ccode.16.s > > Compiling to assembler out/asm-offsets.s > > Generating offset file out/asm-offsets.h > > Compiling (16bit) out/code16.o > > Compiling whole program out/ccode32flat.o > > Compiling whole program out/code32seg.o > > Building ld scripts (version "0.6.1.2-20110517_170552-GnoStiC-G633") > > Fixed space: 0xe05b-0x10000 total: 8101 slack: 3 Percent slack: 0.0% > > 16bit size: 38896 > > 32bit segmented size: 1636 > > 32bit flat size: 64828 > > Linking out/rom16.o > > out/romlayout16.lds:695 cannot move location counter backwards (from > > 000000000000c9fa to 000000000000c9e0) > > make: *** [out/rom16.o] Error 1 > > > > 3) it's same with 0.6.2 too > > > > gnostic@GnoStiC-G633:~/seabios-0.6.2$ uname -a > > Linux GnoStiC-G633 2.6.38-8-generic-pae #42-Ubuntu SMP Mon Apr 11 > 05:17:09 > > UTC 2011 i686 i686 i386 GNU/Linux > > > > gnostic@GnoStiC-G633:~/seabios-0.6.2$ gcc -v > > ... > > gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4) > > > > any suggestions? > > > > Mustafa Tufan > > What linker version are you using? > I ran into this type of problem when using the latest un-official binutils > package. > They have since fixed a recently introduced bug in ld that was causing the > issue. > For more info, see: https://bugzilla.novell.com/show_bug.cgi?id=691290 > > Bruce > >
On Tue, May 17, 2011 at 11:13:24AM -0600, Bruce Rogers wrote:
On 5/17/2011 at 08:29 AM, Mustafa Tufan <mustafa.tufan@gmail.com> wrote: out/romlayout16.lds:697 cannot move location counter backwards (from 000000000000ca0d to 000000000000c9f4) make: *** [out/rom16.o] Error 1 [...] What linker version are you using? I ran into this type of problem when using the latest un-official binutils package. They have since fixed a recently introduced bug in ld that was causing the issue. For more info, see: https://bugzilla.novell.com/show_bug.cgi?id=691290
Thanks for the link. This seems to be a pretty striking failure in LD, and it seems to have shipped with Ubuntu 11.04. I think the only thing we can do here is detect the error during build and alert the user of the problem. Ughh. -Kevin
>>> On 5/17/2011 at 11:13 AM, Bruce Rogers wrote: > >>> On 5/17/2011 at 08:29 AM, Mustafa Tufan <mustafa.tufan@gmail.com> wrote: >> 1) downloaded http://code.coreboot.org/p/seabios/source/download/master/ >> >> gnostic@GnoStiC-G633:~/seabios/seabios-master$ make >> Build Kconfig config file >> Compiling whole program out/ccode.16.s >> Compiling to assembler out/asm-offsets.s >> Generating offset file out/asm-offsets.h >> Compiling (16bit) out/code16.o >> Compiling whole program out/ccode32flat.o >> Compiling whole program out/code32seg.o >> Building ld scripts (version "pre-0.6.3-20110517_170406-GnoStiC-G633") >> Fixed space: 0xe05b-0x10000 total: 8101 slack: 1 Percent slack: 0.0% >> 16bit size: 39424 >> 32bit segmented size: 1636 >> 32bit flat size: 12300 >> 32bit flat init size: 56624 >> Linking out/rom16.o >> out/romlayout16.lds:697 cannot move location counter backwards (from >> 000000000000ca0d to 000000000000c9f4) >> make: *** [out/rom16.o] Error 1 >> >> 2) downloaded >> http://code.coreboot.org/p/seabios/source/download/0.6.1-stable/ >> >> gnostic@GnoStiC-G633:~/seabios/seabios-0.6.1-stable$ make >> Compiling whole program out/ccode.16.s >> Compiling to assembler out/asm-offsets.s >> Generating offset file out/asm-offsets.h >> Compiling (16bit) out/code16.o >> Compiling whole program out/ccode32flat.o >> Compiling whole program out/code32seg.o >> Building ld scripts (version "0.6.1.2-20110517_170552-GnoStiC-G633") >> Fixed space: 0xe05b-0x10000 total: 8101 slack: 3 Percent slack: 0.0% >> 16bit size: 38896 >> 32bit segmented size: 1636 >> 32bit flat size: 64828 >> Linking out/rom16.o >> out/romlayout16.lds:695 cannot move location counter backwards (from >> 000000000000c9fa to 000000000000c9e0) >> make: *** [out/rom16.o] Error 1 >> >> 3) it's same with 0.6.2 too >> >> gnostic@GnoStiC-G633:~/seabios-0.6.2$ uname -a >> Linux GnoStiC-G633 2.6.38-8-generic-pae #42-Ubuntu SMP Mon Apr 11 05:17:09 >> UTC 2011 i686 i686 i386 GNU/Linux >> >> gnostic@GnoStiC-G633:~/seabios-0.6.2$ gcc -v >> ... >> gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4) >> >> any suggestions? >> >> Mustafa Tufan > > What linker version are you using? > I ran into this type of problem when using the latest un-official binutils > package. > They have since fixed a recently introduced bug in ld that was causing the > issue. > For more info, see: https://bugzilla.novell.com/show_bug.cgi?id=691290 > > Bruce FYI: The openSUSE bug references the following bug report against the linker: http://sourceware.org/bugzilla/show_bug.cgi?id=12726 Bruce
participants (5)
-
Bruce Rogers -
Idwer Vollering -
Kevin O'Connor -
Mustafa Tufan -
Peter Stuge