[ANNOUNCE] uClibc-0.9.30-rc2 released
Rob Landley
rob at landley.net
Sun Oct 19 04:35:55 UTC 2008
On Saturday 18 October 2008 13:28:20 Vladimir Dronnikov wrote:
> Hello, Rob!
>
> > The mini-native tarballs...
>
> I could not chroot to it cleanly. Will be continuing testing...
Ah, sorry: chroot dirname /tools/bin/bash
or: chroot dirname /tools/bin/chroot-setup.sh
(The tarballs I have up are based on the Linux From Scratch intermediate
stage, so everything's in the /tools directory. That's not a requirement,
just how the current ones are set up. There are other build options in the
script, and a lot of easy changes to make to it...)
> > The cross-compiler...
>
> 0) Looks that it is what I need!
> 1) They are statically linked -- that is great!
Statically linked against uClibc even. :)
> 2) They miss bison/flex/autotools -- can you add them?
Shouldn't it use the ones installed on your host system when you're cross
compiling?
If you mean they're not in the target root filesystem, you can build them
under it. (I've done this before.)
The theory behind the project is to cross compile the absolute minimum system
under which one can natively build a complete Linux From Scratch system.
(Once you've got that, you should be able to build debian or gentoo or any
other distro on whatever your target is. All your problems from there are
native build ones, all the fiddly cross compiling is over and done with.)
In practice, the glibc in LFS 6.3 won't build on a host that doesn't have TLS
support. (Yet again, glibc is broken.) You should be able to build a uClibc
LFS, though, and once I get a uClibc with TLS...
> 3) I can't get configure scripts working -- configure complains it
> can't find ld on the $PATH. How can I fix that? --host=i686 does not
> solve the problem. I had to manually symlink i686-(.*) to non-prefixed
> ones.
That's what /tools/bin/chroot-setup.sh is for, it makes lots of symlinks and
empty directories so the /tools thing, mounts /proc and /sys... Generally
gives you something more like a normal build environment.
qemu-setup.sh is the same script, except if run with that name it does extra
work (ifconfig and such) that you don't want to do in a chroot.
> 4) g++ and its libes/headers missed.
Actually they're there but the wrapper script isn't tested for 'em. I really
should get around to that, but I really don't use c++ much for fun.
> 5) nasm?
Just the gas that goes with binutils. (You're welcome to build it yourself.
I'm not sure how many targets nasm supports...)
> 6) gcc 4.3.2, uClibc 0.9.30?
uClibc 0.9.30-rc2 I have here, I just haven't uploaded it yet. (I can if you
like.)
Newer gcc versions don't work with arm soft float. (Specifically, they don't
put the soft float functions in libgcc.a, so you can't statically build
anything and the cross compiler doesn't work at _all_. (The cross compiler
is built with --disable-shared to avoid the whole "libgcc_s.so needs libc.so"
chicken and egg problem. The native compiler is build after uClibc is, so
it's --enable-shared and has a libgcc_s.so. This still doesn't fix static
linking, though.)
Even 4.1.2 needed to be patched to make it work, but the gcc build system
gratuitously changed in 4.2 and the patch doesn't work, nor is it easily
adapted. Peter Mazinger gave me some tips on how to go about doing it for
4.3, I just haven't gotten around to it...
Rob
More information about the uClibc
mailing list