[oe] Revert "package bbclass: strip static libs as well"

Khem Raj raj.khem at gmail.com
Fri Oct 23 19:53:36 UTC 2009


On Fri, Oct 23, 2009 at 2:14 AM, Koen Kooi <k.kooi at student.utwente.nl> wrote:
> On 23-10-09 10:36, Phil Blundell wrote:
>>
>> On Fri, 2009-10-23 at 10:23 +0200, Holger Hans Peter Freyther wrote:
>>>
>>> One thing that pops back into my mind is to move .a files into a -static
>>> package? People that want to link statically can pick their .a files.
>>
>> Yes, I think someone else proposed this a few weeks ago but it doesn't
>> seem to have happened.  Given that static linking is pretty much a
>> minority pursuit nowadays (excepting libc_noshared.a) this sounds like a
>> fine idea.
>>
>> Stripping .a files with the default options will effectively destroy
>> them so the current state of affairs is definitely silly.  If you are
>> going to do that then you might as well just delete the files: they are
>> no use for anything after stripping.
>>
>> An alternative (or an addition) to the -static packaging would be to
>> arrange for .a files (and .o files, I guess) to be stripped with "strip
>> --strip-debug" (or perhaps --strip-unneeded).  This should leave enough
>> symbol data in the files for them to remain usable.
>
> Something like this (but without the mailer induced linewrapping)?
>
> diff --git a/classes/package.bbclass b/classes/package.bbclass
> index 046351a..2bf55e3 100644
> --- a/classes/package.bbclass
> +++ b/classes/package.bbclass
> @@ -183,6 +183,9 @@ def runstrip(file, d):
>         extraflags = "--remove-section=.comment --remove-section=.note
> --strip-unneeded"
>     elif "shared" in result or "executable" in result:
>         extraflags = "--remove-section=.comment --remove-section=.note"
> +       elif file.endswith(".a")::
> +                extraflags = "--remove-section=.comment --strip-debug"
> +

if you strip out anything from .a files it wont be recoverable. iow it
will be thrown away
in this case the debug information will be stripped out and when you
use these libraries
to link on target they wont have debug information. If thats a ok
tradeoff for size vs debuggability
then its ok.

>
>     bb.mkdirhier(os.path.join(os.path.dirname(file), ".debug"))
>     debugfile=os.path.join(os.path.dirname(file), ".debug",
> os.path.basename(file))
> diff --git a/conf/bitbake.conf b/conf/bitbake.conf
> index 7426095..6c1cc06 100644
> --- a/conf/bitbake.conf
> +++ b/conf/bitbake.conf
> @@ -207,7 +207,7 @@ SOLIBSDEV_darwin = ".dylib"
>  SOLIBSDEV_darwin8 = ".dylib"
>  SOLIBSDEV_darwin9 = ".dylib"
>
> -PACKAGES = "${PN}-dbg ${PN} ${PN}-doc ${PN}-dev ${PN}-locale"
> +PACKAGES = "${PN}-dbg ${PN} ${PN}-doc ${PN}-static ${PN}-dev ${PN}-locale"
>  #enable this when bitbake is upgraded to cope with ++ values in the field
>  PACKAGES_DYNAMIC = "${PN}-locale-*"
>  FILES = ""
> @@ -225,9 +225,11 @@ FILES_${PN}-doc = "${docdir} ${mandir} ${infodir}
> ${datadir}/gtk-doc \
>             ${datadir}/gnome/help"
>  SECTION_${PN}-doc = "doc"
>
> +FILES_${PN}-static = "${libdir}/*.a ${base_libdir}/*.a"
> +
>  FILES_${PN}-dev = "${includedir} ${libdir}/lib*${SOLIBSDEV} ${libdir}/*.la
> \
> -                ${libdir}/*.a ${libdir}/*.o ${libdir}/pkgconfig \
> -                ${base_libdir}/*.a ${base_libdir}/*.o ${datadir}/aclocal
> ${datadir}/pkgconfig"
> +                ${libdir}/*.o ${libdir}/pkgconfig \
> +                ${base_libdir}/*.o ${datadir}/aclocal ${datadir}/pkgconfig"
>  SECTION_${PN}-dev = "devel"
>  ALLOW_EMPTY_${PN}-dev = "1"
>  RDEPENDS_${PN}-dev = "${PN} (= ${EXTENDPV})"
>
>
> regards,
>
> Koen
>
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
>




More information about the Openembedded-devel mailing list