[Buildroot] Bizarre things on the allyespackageconfig build

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Fri May 10 20:58:44 UTC 2013


Dear Yann E. MORIN,

On Fri, 10 May 2013 18:53:56 +0200, Yann E. MORIN wrote:

> >  * There is a usr/arm-buildroot-linux-gnueabi directory, which contains
> >    just a 'bin' subdirectory, which contains ar, as, ld, nm, etc.
> > 
> >    $ ls usr/arm-buildroot-linux-gnueabi/bin/
> >    ar  as  ld  ld.bfd  nm  objcopy  objdump  ranlib  strip
> > 
> >    That's a strange installation location for binutils.
> 
> These should be hard-links to their fully-qualified counterparts in
> /usr/bin:
>     arm-buildroot-linux-gnueabi-{ar,as,ld,ld,bfd,nm,objcopy,ranlib,strip}
> 
> That's typical of a binutils installation.

They are indeed hardlinks.

> [--SNIP--]
> >  * There a bunch of libraries that don't have the executable bit set in
> >    usr/lib. I don't think it's a big problem, but it makes them
> >    different from the others.
> 
> Shared libraries do not need to be executable, except the dynamic linker
> ld.so which is both a progrm and a library.
> 
> Also, libc.so from {,e}glibc is also executable, but not he libc.so from
> uClibc.
> 
> I think it is not a problem per-se, and I think shared libraries should
> not be executable at all.

I agree, it's not a problem per se, it's just that 99% of the other
packages install their shared libraries with executable permissions, so
not having them for a few libraries is a bit strange.

Also, to be noted that we keep the .so symbolic link, even though it's
generally unneeded at runtime. However, unfortunately, simply removing
*.so isn't going to work: some of the .so files are directly the shared
libraries.

Examples:

$ ls -l libdvb*
-rw-r--r-- 1 thomas thomas 20469 May  9 13:21 libdvbapi.so
-rw-r--r-- 1 thomas thomas 13415 May  9 13:21 libdvbcfg.so
-rw-r--r-- 1 thomas thomas 52375 May  9 13:21 libdvben50221.so
-rw-r--r-- 1 thomas thomas 25523 May  9 13:21 libdvbsec.so

> >  * Some packages seem to confuse /var with /usr/var: cups, netatalk,
> >    squid, polkit-1, vtund, stunnel. Here's what I have in usr/var/ :
> [--SNIP--]
> 
> Two options here:
>   - ./configure --localstatedir=/var
>     Some packages do set it in their .mk, eg. (=/var unless specified):
>         avahi, sed, directfb, NM, lighttpd, dhcp (=/var/lib/dhcp),
>         php, oprofile, xserver_xorg-server, samba, dbus, collectd,
>         proftpd (=/var/run), sqlite, bind, dbus-glib, ndisc6, sql_net,
>         sqlcipher, connman, pulseaudio
>     Probably usefull to set it in the pkg-infra?

Seems like yes.

> [--SNIP--]
> >  * usr/share represents 428 MB, which includes 121 MB of locales (I
> >    didn't select the removal of locales in my configuration)
> 
> Not a problem if locales where not /disabled/ in your config.

Sure, I was just giving a rough idea of the size of usr/share: it
represents almost half of the size of the filesystem. usr/share is 428
MB over the 1.1 GB of the filesystem. This line was mostly giving
numbers, not really raising any particular problem.

> > If people are interested in fixing some of those issues, reply to this
> > e-mail saying which issue you're going to have a look at.
> 
> I'll look at the /var issue.

Thanks!

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com



More information about the buildroot mailing list