make all bricht mit u-boot fehler 139 ab

Diskussionen um Bootloader, Kernel, Busybox
r_wirth
Beiträge: 2
Registriert: Sonntag 13. Juni 2004, 08:55

make all bricht mit u-boot fehler 139 ab

Beitrag von r_wirth »

Build auf _x86_64 bricht mit folgendem Fehler ab:
make[2]: Leaving directory `/home/roland/tuxbox-cvs/cdk/u-boot-1.1.1/common'
UNDEF_SYM=`powerpc-tuxbox-linux-gnu-objdump -x lib_generic/libgeneric.a board/dbox2/libdbox2.a cpu/mpc8xx/libmpc8xx.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/squashfs/libsquashfs.a net/libnet.a disk/libdisk.a rtc/librtc.a dtt/libdtt.a drivers/libdrivers.a drivers/sk98lin/libsk98lin.a post/libpost.a post/cpu/libcpu.a common/libcommon.a |sed -n -e 's/.*\(__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
powerpc-tuxbox-linux-gnu-ld -Bstatic -T /home/roland/tuxbox-cvs/cdk/u-boot-1.1.1/board/dbox2/u-boot.lds -Ttext 0x40000 -n $UNDEF_SYM cpu/mpc8xx/start.o \
--start-group lib_generic/libgeneric.a board/dbox2/libdbox2.a cpu/mpc8xx/libmpc8xx.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/squashfs/libsquashfs.a net/libnet.a disk/libdisk.a rtc/librtc.a dtt/libdtt.a drivers/libdrivers.a drivers/sk98lin/libsk98lin.a post/libpost.a post/cpu/libcpu.a common/libcommon.a --no-warn-mismatch -L /home/roland/dbox2/cdk/lib/gcc-lib/powerpc-tuxbox-linux-gnu/3.3.3/nof -lgcc --end-group \
-Map u-boot.map -o u-boot
make[1]: *** [u-boot] Fehler 139
make[1]: Leaving directory `/home/roland/tuxbox-cvs/cdk/u-boot-1.1.1'
make: *** [.deps/u-boot] Fehler 2


ich mußte auf binutils 2.15.91.0.1 umsteigen, da die 2.14.xxx nicht korekt bauen (error in as)

irgendwelche hilfe?
chkbox
Erleuchteter
Erleuchteter
Beiträge: 440
Registriert: Samstag 10. April 2004, 15:17

Beitrag von chkbox »

Ich kann dir nicht sagen, ob das auch bei dir der Fehler ist, aber bei mir war ein Problem in u-boot, dass auf x86_64 scheinbar int und long unterschiedlich definiert sind. Im u-boot werden sie aber als gleich verwendet. Vielleicht kannst du ja was rausfinden....
Npq
Senior Member
Beiträge: 1339
Registriert: Donnerstag 24. April 2003, 12:12

Beitrag von Npq »

Long ist die Breite der Adressen. Bei 64-Bit Architekturen sind das i.Allg. 64 Bit (gibt auch hybride Systeme a la MIPS).

Normalerweise überschreiben sich typedefs nicht (es wird per #ifdef abgefragt, ob schon eine Definition für einen Datentyp vorliegt oder nicht). Cygwin macht da evtl. Murks (wie so oft *duck*).

Nur, der Compiler ist cross für die ppc32-Architektur, also darf long auch nur 32 Bit lang sein, sonst kracht's eventuell im Gebälk. :)

Ich hab aber schonmal im CDK ein Include-Durcheinander korrigiert, da zufällig ein x86 eben auch 32-Bit ist kann's sein, daß das in dem Fall eher weniger auffällt wenn der cross-Compiler aus Versehen die Includes vom Buildsystem verwendet.

Ich hab keine 64-Bit-Architektur und kann daher keine Aussage darüber treffen, wem da was auffällt, der poste bitte ein geeignetes Diff. Danke.
r_wirth
Beiträge: 2
Registriert: Sonntag 13. Juni 2004, 08:55

Beitrag von r_wirth »

der fehler liegt definitiv im ld. Nähere Untersuchung ergab ein SIGSEGV im ld, wenn dieser das MapFile erstellt. lasse ich kein Mapfile erstellen, geht's weiter...
Ältere Versionen der Binutils bringen den selben Fehler.
woglinde
Einsteiger
Einsteiger
Beiträge: 261
Registriert: Donnerstag 15. November 2001, 00:00

Beitrag von woglinde »

Hi,

jepp ist ein linker-Problem. hatte ich auch schon ein paarmal nicht sehr schoen zu debuggen.

Gruss woglinde