[gccsdk] Patch for getgrouplist() and ELF questions

Peter Naulls peter at chocky.org
Fri Dec 5 13:39:55 PST 2008

John Tytgat wrote:

>> : ELF file 'ls,e1f' contains non-static program data which makes it
>> : unconvertable to AIF
>> Is that the default autobuilder setup building for a shared library system?
> Actually I just noticed that RO_SHAREDLIBS (which defines if you want a
> shared libs enabled build or not) was hardwired to "yes" in
> $GCCSDK_INSTALL_ENV/ro-config.  That's wrong as this is a user (builder)
> option and I've just commited a fix for this.  This also means now that
> Autobuilder builds are by default 'static' now.
>> Should programs for the end-user be built static?
> Yes, I would prefer to have static AIF binaries released for now using the
> current GCC4 infrastructure.  And this until we convinced ourselves that
> our shared libraries are working for complex programs.  I believe Peter
> got rather far with shared libs in his Firefox build but I'm not sure what
> what the remaining issues are.

The question is pretty complex, but may yet have solutions, and I'm not
sure if I immediately agree with the change that John has just made.  At
the same time, this issue has been compounded a bit by both him and
myself not being able to do any meaningful work on GCCSDK for some

Anyway, for the autobuilder, e1f2aif is always run on binaries, but
of course that will tend to fail for non-trivial programs, since
programs will likely be dynamically linked if the build of dependencies
is dynamic - even though we also try to build the static library in
this case.

This is worse in the case of GTK and friends; if you try to generate
a static binary against libraries with both static and dynamic version,
you end up needing stuff in -ldl for static binaries.

The end result is that if you want to switch between the two types of
build, you often have to rebuild everything, which is a bit tedious.

For Firefox, I've kind of been waiting for a full release of GCC 4,
along with some packaged libraries, since it can't really be done
piecemeal.  There are still a couple of issues with the shared
library version of Firefox (try searching csa.p), but it's not
obvious that those would directly affect other programs which
are dynamically linked.

More information about the gcc mailing list