[Buildroot] RTLD_DEEPBIND and uClibc
Stefan Fröberg
stefan.froberg at petroprogram.com
Thu Jan 17 18:47:45 UTC 2013
Hi Yann
17.1.2013 19:44, Yann E. MORIN kirjoitti:
> Stefan, All,
>
> On Thursday 17 January 2013 Stefan Fröberg wrote:
>> 17.1.2013 10:31, Thomas Petazzoni kirjoitti:
>>> Whenever you start having X.org on a system and a window manager, most
>>> likely you have hundreds of megabytes of flash, and therefore, the size
>>> difference between uClibc and glibc (probably somewhere between 1 and
>>> 1.5 MB) isn't that much of a problem anymore.
>> Eh... I think it's more than 1 - 1.5 MB :-)
> The full set of libraries from a full-blown eglibc, for an ARM gnueabihf
> target, is:
> Unstripped Stripped
> Only eglibc libs 3.6MiB 2.3MiB
> With gcc's libs 8.8MiB 3.0MiB
>
> And for a relatively complete uClibc for x86_64 target:
> Unstripped Stripped
> Only eglibc libs 2.0MiB 1.0MiB
> With gcc's libs 6.9MiB 1.9MiB
>
> (gcc libs: libstdc++ and libgcc_s)
> (These are not the same architecture, but I went for the toolchains I have
> locally)
>
> So, typically, speaking only about the C library libs, the gain would be
> around ~1.5MiB.
Here's the contents of my target /lib
*yhteensä 1,4M*
drwxr-xr-x. 6 root root 3,0K 17.1. 15:32 .
drwxr-xr-x. 20 root root 1,0K 13.1. 17:35 ..
drwxr-xr-x. 64 root root 10K 17.1. 15:31 firmware
-rwxr-xr-x. 1 root root 29K 17.1. 15:32 ld-uClibc-0.9.33.2.so
lrwxrwxrwx. 1 root root 21 7.1. 00:27 ld-uClibc.so.0 ->
ld-uClibc-0.9.33.2.so
lrwxrwxrwx. 1 root root 17 8.1. 20:20 libblkid.so.1 -> libblkid.so.1.1.0
-rwxr-xr-x. 1 root root 152K 17.1. 15:31 libblkid.so.1.1.0
-rwxr-xr-x. 1 root root 25K 17.1. 15:32 libcrypt-0.9.33.2.so
lrwxrwxrwx. 1 root root 20 7.1. 00:27 libcrypt.so.0 ->
libcrypt-0.9.33.2.so
lrwxrwxrwx. 1 root root 21 7.1. 00:27 libc.so.0 -> libuClibc-0.9.33.2.so
-rwxr-xr-x. 1 root root 13K 17.1. 15:32 libdl-0.9.33.2.so
lrwxrwxrwx. 1 root root 17 7.1. 00:27 libdl.so.0 -> libdl-0.9.33.2.so
lrwxrwxrwx. 1 root root 13 7.1. 00:44 libgcc_s.so -> libgcc_s.so.1
-rw-r--r--. 1 root root 89K 17.1. 15:32 libgcc_s.so.1
-rwxr-xr-x. 1 root root 49K 17.1. 15:31 libm-0.9.33.2.so
lrwxrwxrwx. 1 root root 17 8.1. 20:20 libmount.so.1 -> libmount.so.1.1.0
-rwxr-xr-x. 1 root root 152K 17.1. 15:31 libmount.so.1.1.0
lrwxrwxrwx. 1 root root 16 7.1. 00:27 libm.so.0 -> libm-0.9.33.2.so
-rwxr-xr-x. 1 root root 4,5K 17.1. 15:32 libnsl-0.9.33.2.so
lrwxrwxrwx. 1 root root 18 7.1. 00:27 libnsl.so.0 -> libnsl-0.9.33.2.so
lrwxrwxrwx. 1 root root 17 7.1. 20:47 libpamc.so -> libpamc.so.0.82.1
lrwxrwxrwx. 1 root root 17 7.1. 20:47 libpamc.so.0 -> libpamc.so.0.82.1
-rwxr-xr-x. 1 root root 9,6K 17.1. 15:32 libpamc.so.0.82.1
lrwxrwxrwx. 1 root root 21 7.1. 20:47 libpam_misc.so ->
libpam_misc.so.0.82.0
lrwxrwxrwx. 1 root root 21 7.1. 20:47 libpam_misc.so.0 ->
libpam_misc.so.0.82.0
-rwxr-xr-x. 1 root root 8,1K 17.1. 15:32 libpam_misc.so.0.82.0
lrwxrwxrwx. 1 root root 16 7.1. 20:47 libpam.so -> libpam.so.0.83.1
lrwxrwxrwx. 1 root root 16 7.1. 20:47 libpam.so.0 -> libpam.so.0.83.1
-rwxr-xr-x. 1 root root 45K 17.1. 15:31 libpam.so.0.83.1
-rwxr-xr-x. 1 root root 74K 17.1. 15:31 libpthread-0.9.33.2.so
lrwxrwxrwx. 1 root root 22 7.1. 00:27 libpthread.so.0 ->
libpthread-0.9.33.2.so
-rwxr-xr-x. 1 root root 4,5K 17.1. 15:32 libresolv-0.9.33.2.so
lrwxrwxrwx. 1 root root 21 7.1. 00:27 libresolv.so.0 ->
libresolv-0.9.33.2.so
-rwxr-xr-x. 1 root root 13K 17.1. 15:31 librt-0.9.33.2.so
lrwxrwxrwx. 1 root root 17 7.1. 00:27 librt.so.0 -> librt-0.9.33.2.so
-rwxr-xr-x. 1 root root 690K 17.1. 15:31 libuClibc-0.9.33.2.so
-rwxr-xr-x. 1 root root 4,7K 17.1. 15:31 libutil-0.9.33.2.so
lrwxrwxrwx. 1 root root 19 7.1. 00:27 libutil.so.0 ->
libutil-0.9.33.2.so
lrwxrwxrwx. 1 root root 16 8.1. 20:20 libuuid.so.1 -> libuuid.so.1.3.0
-rwxr-xr-x. 1 root root 14K 17.1. 15:31 libuuid.so.1.3.0
drwxr-xr-x. 3 root root 1,0K 9.1. 04:01 modules
drwxr-xr-x. 3 root root 5,0K 17.1. 15:31 security
drwxr-xr-x. 3 root root 1,0K 8.1. 22:41 udev
As you can see from the top of the line the total sum of uClibc + *all
the other stuff (pam etc..)* is just
1.4 MB (the size of libuClibc-0.9.33.2.so itself is just 690 KB)
So uClibc wins this round :-)
> How large is your Xorg stack?
> Then, compare that 1.5MiB to the size of your Xorg stack. What's the ratio?
You mean how much Xorg stuff from buildroot I have installed into my
target system???
Short answer: Full
Well, almost, left only xterm (replaced with rxvt-unicode which
lighter), twm (replaced with fluxbox)
and xeyes (totally useless application) out.
> If you're 1.5MiB short of space, then probably Xorg is not the solution for
> your platform.
>
> Of course, switching to uClibc as a learning experience is very
> intreresting. But no more. ;-)
>
> Regards,
> Yann E. MORIN.
BTW, I forgot to mention in my message to Thomas that that 520 MB
uncompressed Live-CD stuff does
also contain the full linux 3.3.1 kernel and *all* the drivers compiled
as modules
(Live-CD without that would be useless when running it in myriad x86
machines with allkinds of hardware)
Regards
Stefan
More information about the buildroot
mailing list