[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#768876: unblock: busybox/1:1.22.0-14



On Fri, 28 Nov 2014, Michael Tokarev wrote:

> > ‣ intimate knowledge of the build system required, so you know
> >   what precidely is pulled in (reading shlibs:Depends from the
> >   build of the shared version is almost certainly wrong)
> 
> Why it is wrong?  To be this looks like the most accurate approach

The builds probably differ, especially when using autoconf.

> > In *all* cases, you also need
> > 
> > • x=$(dpkg -S "$(readlink -f "$($CC -print-file-name=libgcc.a)")")
> >   libgcc_pkgname=${x%%: *}
> 
> Why?

Because some of these functions do end up in the resulting executable.

> This assumes it is gcc an it uses libgcc, so it wont work with,
> say, clang.

True. But either “clang -print-file-name=libgcc.a” will be empty,
or it will report libgcc.a which may or may not be pulled in. But
archive builds are not done using clang _yet_. I’ll revisit this
when that option exists, or so. It’s too fast moving a target at
the moment, anyway.

> Note also that if libgcc is used by shared build, it will
> also be listed in shilbdeps.

Fallacy. I know GCC interna better than I wish to. Most of
libgcc.a is always put into binaries; the shared libgcc is
mostly the libgcc_eh.a equivalent, and -static-libgcc is,
normally, the default for C language builds. (Also, it’s a
good way to keep the GCC version used to build it in the
archive.)

bye,
//mirabilos
-- 
15:41⎜<Lo-lan-do:#fusionforge> Somebody write a testsuite for helloworld :-)


Reply to: