robm n00b
Joined: 20 Jan 2003 Posts: 10 Location: Boston
|
Posted: Sat Aug 28, 2010 1:26 am Post subject: trying to build uClibc stage 3 for ARM |
|
|
There doesn't seem to be a recent uClibc-based stage3 for ARM, so I thought I'd try to build one. I don't have my ARM hardware yet (on backorder), so I read the Gentoo Embedded handbook and followed the QEMU-user section to set up an emulated ARM (armv5te) machine based on the glibceabi stage3. Basically my idea was to chroot into the glibc/ARM environment, build a cross compiler for uClibc/ARM, and within that environment, chroot again to get into the uClibc/ARM environment.
I didn't get nearly that far, in fact it failed in the glibc/ARM environment building the cross compiler. I don't know if it was just because of the combination of gcc version, uclibc version, EABI, or what. Any ideas? Here's what I tried:
Code: |
UCLIBC_CPU=ARM926T USE="-*" crossdev -v --target armv5tel-softfloat-linux-uclibceabi
|
and got this error:
Code: |
>>> Unpacking gcc-4.4.4.tar.bz2 to /var/tmp/cross/armv5tel-softfloat-linux-uclibceabi/portage/cross-armv5tel-softfloat-linux-uclibceabi/gcc-4.4.4-r1/work
ISE open_wr(gcc-4.4.4/libjava/java/lang/Boolean.h): Bad address
abs_path: /var/tmp/cross/armv5tel-softfloat-linux-uclibceabi/portage/cross-armv5tel-softfloat-linux-uclibceabi/gcc-4.4.4-r1/work/gcc-4.4.4/libjava/java/lang/Boolean.h
res_path: (null)
/usr/lib/libsandbox.so(+0x2258)[0x42087258]
/usr/lib/libsandbox.so(+0x2284)[0x42087284]
/usr/lib/libsandbox.so(+0x3180)[0x42088180]
/usr/lib/libsandbox.so(open64+0xc4)[0x4208b334]
qemu: uncaught target signal 6 (Aborted) - core dumped
|
which a bug report said might be due to the old sandbox version. Emerged sandbox 2.3 and tried again.
Code: |
ACCEPT_KEYWORDS=~arm emerge -v sandbox
UCLIBC_CPU=ARM926T USE="-*" crossdev -v --target armv5tel-softfloat-linux-uclibceabi
|
that failed too, but it got further and didn't fail till gcc:
Code: |
/bin/sh /var/tmp/cross/armv5tel-softfloat-linux-uclibceabi/portage/cross-armv5tel-softfloat-linux-uclibceabi/gcc-4.4.4-r1/work/gcc-4.4.4/libgcc/../mkinstalldirs ../.././gcc; /usr/bin/install -c -m 644 ./libgcc_s.so.1 ../.././gcc/libgcc_s.so.1; rm -f ../.././gcc/libgcc_s.so; /usr/bin/install -c -m 644 ./libgcc_s.so ../.././gcc/libgcc_s.so
/bin/rm: error while loading shared libraries: libc.so.0: cannot open shared object file: No such file or directory
/usr/bin/install: error while loading shared libraries: libc.so.0: cannot open shared object file: No such file or directory
make[3]: *** [install-shared] Error 127
make[3]: Leaving directory `/var/tmp/cross/armv5tel-softfloat-linux-uclibceabi/portage/cross-armv5tel-softfloat-linux-uclibceabi/gcc-4.4.4-r1/work/build/armv5tel-softfloat-linux-uclibceabi/libgcc'
|
Should I abandon attempts at the EABI and go back to gcc 3.4.6? Is there some known working combo of versions? I'd keep hacking on my own, but it takes forever to compile under QEMU so I thought I'd ask for help first. |
|