Re: d-i experiences
On Thu, Sep 18, 2003 at 10:29:44PM +0200, Steinar H. Gunderson wrote:
> Simply adding "./libpwdgrp/libpwdgrp.a ./libbb/libbb.a" (libpwdgrp.a needs
> stuff from libbb.a, too) to the end of the command line linking busybox fixes
> the problem, but there must surely be a more elegant way?
OK, I think I found it. :-) From "info ld":
`-( ARCHIVES -)'
`--start-group ARCHIVES --end-group'
The ARCHIVES should be a list of archive files. They may be
either explicit file names, or `-l' options.
The specified archives are searched repeatedly until no new
undefined references are created. Normally, an archive is
searched only once in the order that it is specified on the
command line. If a symbol in that archive is needed to resolve an
undefined symbol referred to by an object in an archive that
appears later on the command line, the linker would not be able to
resolve that reference. By grouping the archives, they all be
searched repeatedly until all possible references are resolved.
Using this option has a significant performance cost. It is best
to use it only when there are unavoidable circular references
between two or more archives.
So, what we want is probably something along the lines of
gcc -s -o busybox -Wl,--start-group (insert all .a files here) -Wl,--end-group
and the NSS problems should go away.
/* Steinar */