[U-Boot-Users] latest-git, mpc8540 targets: ld: u-boot: section `.bootpg' can't be allocated in segment 1

Hi There!
I just checked out the latest u-boot git HEAD and did a
$ make PM854_config or a $ make TQM8540_config followed by a $ make all using binutils-2.18, gcc-4.2.1, kernel 2.6.21 on a native mpc8540 environment.
but linking fails close to the end:
make[1]: Leaving directory `/share/home/clemens/u-boot/u-boot-20070918/libfdt' UNDEF_SYM=`objdump -x lib_generic/libgeneric.a board/tqm85xx/libtqm85xx.a cpu/mpc85xx/libmpc85xx.a lib_ppc/libppc.a fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a net/libnet.a disk/libdisk.a rtc/librtc.a dtt/libdtt.a drivers/libdrivers.a drivers/bios_emulator/libatibiosemu.a drivers/nand/libnand.a drivers/nand_legacy/libnand_legacy.a drivers/net/libnet.a drivers/qe/qe.a drivers/serial/libserial.a drivers/sk98lin/libsk98lin.a post/libpost.a post/drivers/libpostdrivers.a post/lib_ppc/libpostppc.a post/lib_ppc/fpu/libpostppcfpu.a common/libcommon.a libfdt/libfdt.a |sed -n -e 's/.*(__u_boot_cmd_.*)/-u\1/p'|sort|uniq`;\ cd /share/home/clemens/u-boot/u-boot-20070918 && ld -Bstatic -T /share/home/clemens/u-boot/u-boot-20070918/board/tqm85xx/u-boot.lds -Ttext 0xfffc0000 -n $UNDEF_SYM cpu/mpc85xx/start.o cpu/mpc85xx/resetvec.o \ --start-group lib_generic/libgeneric.a board/tqm85xx/libtqm85xx.a cpu/mpc85xx/libmpc85xx.a lib_ppc/libppc.a fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a net/libnet.a disk/libdisk.a rtc/librtc.a dtt/libdtt.a drivers/libdrivers.a drivers/bios_emulator/libatibiosemu.a drivers/nand/libnand.a drivers/nand_legacy/libnand_legacy.a drivers/net/libnet.a drivers/qe/qe.a drivers/serial/libserial.a drivers/sk98lin/libsk98lin.a post/libpost.a post/drivers/libpostdrivers.a post/lib_ppc/libpostppc.a post/lib_ppc/fpu/libpostppcfpu.a common/libcommon.a libfdt/libfdt.a --end-group -L /usr/lib/gcc/powerpc-unknown-linux-gnu/4.2.1 -lgcc \ -Map u-boot.map -o u-boot ld: u-boot: section `.bootpg' can't be allocated in segment 1 ld: final link failed: Bad value make: *** [u-boot] Error 1
Both of the above MPC8540 targets fail here. I searched the archives already, but didn't get any idea. Any hints? I'll try v1.3.0-rc1 next.
Thank you,

Hi Clemens,
I just checked out the latest u-boot git HEAD and did a
$ make PM854_config or a $ make TQM8540_config followed by a $ make all using binutils-2.18, gcc-4.2.1, kernel 2.6.21 on a native mpc8540 environment.
I checked PM854 with gcc-4.2.0 and binutils-2.17.50.0.12 working as a cross-compiler (ELDK 4.2 alpha) and only see warnings (maybe they help you daignose the problem):
make[1]: Leaving directory `/.automount/castor-vlab/root/home/dzu/src/git/u-boot/libfdt' UNDEF_SYM=`ppc_85xx-objdump -x lib_generic/libgeneric.a board/pm854/libpm854.a cpu/mpc85xx/libmpc85xx.a lib_ppc/libppc.a fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a net/libnet.a disk/libdisk.a rtc/librtc.a dtt/libdtt.a drivers/libdrivers.a drivers/bios_emulator/libatibiosemu.a drivers/nand/libnand.a drivers/nand_legacy/libnand_legacy.a drivers/net/libnet.a drivers/qe/qe.a drivers/serial/libserial.a drivers/sk98lin/libsk98lin.a post/libpost.a post/drivers/libpostdrivers.a post/lib_ppc/libpostppc.a post/lib_ppc/fpu/libpostppcfpu.a common/libcommon.a libfdt/libfdt.a |sed -n -e 's/.*(__u_boot_cmd_.*)/-u\1/p'|sort|uniq`;\ cd /.automount/castor-vlab/root/home/dzu/src/git/u-boot && ppc_85xx-ld -Bstatic -T /.automount/castor-vlab/root/home/dzu/src/git/u-boot/board/pm854/u-boot.lds -Ttext 0xfff80000 -n $UNDEF_SYM cpu/mpc85xx/start.o cpu/mpc85xx/resetvec.o \ --start-group lib_generic/libgeneric.a board/pm854/libpm854.a cpu/mpc85xx/libmpc85xx.a lib_ppc/libppc.a fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a net/libnet.a disk/libdisk.a rtc/librtc.a dtt/libdtt.a drivers/libdrivers.a drivers/bios_emulator/libatibiosemu.a drivers/nand/libnand.a drivers/nand_legacy/libnand_legacy.a drivers/net/libnet.a drivers/qe/qe.a drivers/serial/libserial.a drivers/sk98lin/libsk98lin.a post/libpost.a post/drivers/libpostdrivers.a post/lib_ppc/libpostppc.a post/lib_ppc/fpu/libpostppcfpu.a common/libcommon.a libfdt/libfdt.a --end-group -L /opt/eldk-4.2-2007-08-22/usr/bin/../lib/gcc/powerpc-linux/4.2.0/m8540/pic -lgcc \ -Map u-boot.map -o u-boot ppc_85xx-ld: warning: dot moved backwards before `.bootpg' ppc_85xx-ld: warning: dot moved backwards before `.rela.text' ppc_85xx-ld: warning: dot moved backwards before `.bootpg' ppc_85xx-ld: warning: dot moved backwards before `.rela.text' ppc_85xx-ld: warning: dot moved backwards before `.text' ppc_85xx-objcopy --gap-fill=0xff -O srec u-boot u-boot.srec ppc_85xx-objcopy --gap-fill=0xff -O binary u-boot u-boot.bin [dzu@pollux u-boot]$
ELDK 4.1 (gcc-4.0.0 + binutils 2.16.1) doesn't even throw warnings, so I'd say check for changes in binutil (once more).
Cheers Detlev

Hi, Detlev!
Detlev Zundel schrieb:
I just checked out the latest u-boot git HEAD and did a
$ make PM854_config or a $ make TQM8540_config followed by a $ make all using binutils-2.18, gcc-4.2.1, kernel 2.6.21 on a native mpc8540 environment.
I checked PM854 with gcc-4.2.0 and binutils-2.17.50.0.12 working as a cross-compiler (ELDK 4.2 alpha) and only see warnings (maybe they help you daignose the problem):
Thank you... that's the right direction.
make[1]: Leaving directory `/.automount/castor-vlab/root/home/dzu/src/git/u-boot/libfdt' UNDEF_SYM=`ppc_85xx-objdump -x lib_generic/libgeneric.a board/pm854/libpm854.a cpu/mpc85xx/libmpc85xx.a lib_ppc/libppc.a fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a net/libnet.a disk/libdisk.a rtc/librtc.a dtt/libdtt.a drivers/libdrivers.a drivers/bios_emulator/libatibiosemu.a drivers/nand/libnand.a drivers/nand_legacy/libnand_legacy.a drivers/net/libnet.a drivers/qe/qe.a drivers/serial/libserial.a drivers/sk98lin/libsk98lin.a post/libpost.a post/drivers/libpostdrivers.a post/lib_ppc/libpostppc.a post/lib_ppc/fpu/libpostppcfpu.a common/libcommon.a libfdt/libfdt.a |sed -n -e 's/.*(__u_boot_cmd_.*)/-u\1/p'|sort|uniq`;\ cd /.automount/castor-vlab/root/home/dzu/src/git/u-boot && ppc_85xx-ld -Bstatic -T /.automount/castor-vlab/root/home/dzu/src/git/u-boot/board/pm854/u-boot.lds -Ttext 0xfff80000 -n $UNDEF_SYM cpu/mpc85xx/start.o cpu/mpc85xx/resetvec.o \ --start-group lib_generic/libgeneric.a board/pm854/libpm854.a cpu/mpc85xx/libmpc85xx.a lib_ppc/libppc.a fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a net/libnet.a disk/libdisk.a rtc/librtc.a dtt/libdtt.a drivers/libdrivers.a drivers/bios_emulator/libatibiosemu.a drivers/nand/libnand.a drivers/nand_legacy/libnand_legacy.a drivers/net/libnet.a drivers/qe/qe.a drivers/serial/libserial.a drivers/sk98lin/libsk98lin.a post/libpost.a post/drivers/libpostdrivers.a post/lib_ppc/libpostppc.a post/lib_ppc/fpu/libpostppcfpu.a common/libcommon.a libfdt/libfdt.a --end-group -L /opt/eldk-4.2-2007-08-22/usr/bin/../lib/gcc/powerpc-linux/4.2.0/m8540/pic -lgcc \ -Map u-boot.map -o u-boot ppc_85xx-ld: warning: dot moved backwards before `.bootpg' ppc_85xx-ld: warning: dot moved backwards before `.rela.text' ppc_85xx-ld: warning: dot moved backwards before `.bootpg' ppc_85xx-ld: warning: dot moved backwards before `.rela.text' ppc_85xx-ld: warning: dot moved backwards before `.text' ppc_85xx-objcopy --gap-fill=0xff -O srec u-boot u-boot.srec ppc_85xx-objcopy --gap-fill=0xff -O binary u-boot u-boot.bin [dzu@pollux u-boot]$
Cheesecake...
ELDK 4.1 (gcc-4.0.0 + binutils 2.16.1) doesn't even throw warnings, so I'd say check for changes in binutil (once more).
Yes, I think we ran into some new binutils stuff... again. I am not a linker script wizard, but it seems as the .lds files need some new polish.
Here is some random patch with some documentation in it: http://www.cygwin.com/ml/binutils/2006-08/msg00235.html
Thanks again,
Clemens Koller __________________________________ R&D Imaging Devices Anagramm GmbH Rupert-Mayer-Straße 45/1 Linhof Werksgelände D-81379 München Tel.089-741518-50 Fax 089-741518-19 http://www.anagramm-technology.com

On 9/18/07, Clemens Koller clemens.koller@anagramm.de wrote:
Hi There!
I just checked out the latest u-boot git HEAD and did a
$ make PM854_config or a $ make TQM8540_config followed by a $ make all using binutils-2.18, gcc-4.2.1, kernel 2.6.21 on a native mpc8540 environment.
but linking fails close to the end:
make[1]: Leaving directory `/share/home/clemens/u-boot/u-boot-20070918/libfdt' UNDEF_SYM=`objdump -x lib_generic/libgeneric.a board/tqm85xx/libtqm85xx.a cpu/mpc85xx/libmpc85xx.a lib_ppc/libppc.a fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a net/libnet.a disk/libdisk.a rtc/librtc.a dtt/libdtt.a drivers/libdrivers.a drivers/bios_emulator/libatibiosemu.a drivers/nand/libnand.a drivers/nand_legacy/libnand_legacy.a drivers/net/libnet.a drivers/qe/qe.a drivers/serial/libserial.a drivers/sk98lin/libsk98lin.a post/libpost.a post/drivers/libpostdrivers.a post/lib_ppc/libpostppc.a post/lib_ppc/fpu/libpostppcfpu.a common/libcommon.a libfdt/libfdt.a |sed -n -e 's/.*(__u_boot_cmd_.*)/-u\1/p'|sort|uniq`;\ cd /share/home/clemens/u-boot/u-boot-20070918 && ld -Bstatic -T /share/home/clemens/u-boot/u-boot-20070918/board/tqm85xx/u-boot.lds -Ttext 0xfffc0000 -n $UNDEF_SYM cpu/mpc85xx/start.o cpu/mpc85xx/resetvec.o \ --start-group lib_generic/libgeneric.a board/tqm85xx/libtqm85xx.a cpu/mpc85xx/libmpc85xx.a lib_ppc/libppc.a fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a net/libnet.a disk/libdisk.a rtc/librtc.a dtt/libdtt.a drivers/libdrivers.a drivers/bios_emulator/libatibiosemu.a drivers/nand/libnand.a drivers/nand_legacy/libnand_legacy.a drivers/net/libnet.a drivers/qe/qe.a drivers/serial/libserial.a drivers/sk98lin/libsk98lin.a post/libpost.a post/drivers/libpostdrivers.a post/lib_ppc/libpostppc.a post/lib_ppc/fpu/libpostppcfpu.a common/libcommon.a libfdt/libfdt.a --end-group -L /usr/lib/gcc/powerpc-unknown-linux-gnu/4.2.1 -lgcc \ -Map u-boot.map -o u-boot ld: u-boot: section `.bootpg' can't be allocated in segment 1 ld: final link failed: Bad value make: *** [u-boot] Error 1
Hmmm, I don't see that behavior, but I have found another bug: /bin/bash and /bin/dash (default /bin/sh shell in ubuntu) handle embedded nulls differently. I've written a patch to fix this which I'm posting to the list now.
Cheers, g.

Grant Likely schrieb:
ld: u-boot: section `.bootpg' can't be allocated in segment 1 ld: final link failed: Bad value make: *** [u-boot] Error 1
Hmmm, I don't see that behavior,
What are the versions you have tried? (binutils, gcc, (glibc, kernel))
Regards,
Clemens Koller __________________________________ R&D Imaging Devices Anagramm GmbH Rupert-Mayer-Straße 45/1 Linhof Werksgelände D-81379 München Tel.089-741518-50 Fax 089-741518-19 http://www.anagramm-technology.com
participants (3)
-
Clemens Koller
-
Detlev Zundel
-
Grant Likely