On Fri, Oct 23, 2009 at 3:31 PM, Stanislav Brabec <[email protected]> wrote: > Holger Hans Peter Freyther wrote: >> On Friday 23 October 2009 13:07:06 Stanislav Brabec wrote: > >> > I think that the logic should be: >> > >> > libfoo.a exists and libfoo.so exists => put .a to -static. >> > >> > libfoo.a exists and libfoo.so does not exist => put .a to -dev. >> > >> > This logic will work as most users expect and will need no exception for >> > glibc. >> >> This will add even more python code to package.bbclass and can not be >> realized >> with a FILES_* change. I would prefer a stupid QA check for that as I don't >> expect this to happen on many packages. > > That it will happen for all packages that don't provide shared library. > These packages may end by broken -dev package with just the > *.a => -static rule. > > I am not sure, how many such packages exist in the tree, but here is a > list of files in my work directory that would need special care: > > alsa-oss-1.0.17-r0: /usr/lib/libossredir.a > binutils-2.18-r8.1: /usr/lib/libiberty.a > bison-2.3-r0: /usr/lib/liby.a > bridge-utils-1.4-r0: /usr/lib/libbridge.a > firefox-3.5.2-r2: /usr/lib/firefox-devel-3.5.2/sdk/lib/libnss.a > firefox-3.5.2-r2: /usr/lib/firefox-devel-3.5.2/sdk/lib/libnssutil.a > firefox-3.5.2-r2: > /usr/lib/firefox-devel-3.5.2/sdk/lib/libunicharutil_external_s.a > firefox-3.5.2-r2: > /usr/lib/firefox-devel-3.5.2/sdk/lib/libembed_base_standalone.a > firefox-3.5.2-r2: /usr/lib/firefox-devel-3.5.2/sdk/lib/libsoftokn.a > firefox-3.5.2-r2: /usr/lib/firefox-devel-3.5.2/sdk/lib/libssl.a > firefox-3.5.2-r2: /usr/lib/firefox-devel-3.5.2/sdk/lib/libembed_base_s.a > firefox-3.5.2-r2: /usr/lib/firefox-devel-3.5.2/sdk/lib/libcrmf.a > firefox-3.5.2-r2: /usr/lib/firefox-devel-3.5.2/sdk/lib/libsmime.a > firefox-3.5.2-r2: /usr/lib/firefox-devel-3.5.2/sdk/lib/libxpcomglue_s.a > firefox-3.5.2-r2: /usr/lib/firefox-devel-3.5.2/sdk/lib/libmozreg_s.a > firefox-3.5.2-r2: /usr/lib/firefox-devel-3.5.2/sdk/lib/libxpcomglue.a > flex-2.5.31-r4: /usr/lib/libfl.a > gcc-cross-4.3.3-r7.1: /OE/build/tmp/cross/armv5te/lib64/libiberty.a > gcc-cross-4.3.3-r7.1: > /OE/build/tmp/cross/armv5te/arm-angstrom-linux-gnueabi/lib/libgfortran.a > gcc-cross-4.3.3-r7.1: > /OE/build/tmp/cross/armv5te/arm-angstrom-linux-gnueabi/lib/libssp.a > gcc-cross-4.3.3-r7.1: > /OE/build/tmp/cross/armv5te/arm-angstrom-linux-gnueabi/lib/libiberty.a > gcc-cross-4.3.3-r7.1: > /OE/build/tmp/cross/armv5te/arm-angstrom-linux-gnueabi/lib/libstdc++_pic.a > gcc-cross-4.3.3-r7.1: > /OE/build/tmp/cross/armv5te/arm-angstrom-linux-gnueabi/lib/libssp_nonshared.a > gcc-cross-4.3.3-r7.1: > /OE/build/tmp/cross/armv5te/arm-angstrom-linux-gnueabi/lib/libsupc++.a > gcc-cross-4.3.3-r7.1: > /OE/build/tmp/cross/armv5te/arm-angstrom-linux-gnueabi/lib/libstdc++.a > gcc-cross-4.3.3-r7.1: > /OE/build/tmp/cross/armv5te/lib/gcc/arm-angstrom-linux-gnueabi/4.3.3/libgcc.a > gcc-cross-4.3.3-r7.1: > /OE/build/tmp/cross/armv5te/lib/gcc/arm-angstrom-linux-gnueabi/4.3.3/libgcc_eh.a > gcc-cross-4.3.3-r7.1: > /OE/build/tmp/cross/armv5te/lib/gcc/arm-angstrom-linux-gnueabi/4.3.3/libgfortranbegin.a > gcc-cross-4.3.3-r7.1: > /OE/build/tmp/cross/armv5te/lib/gcc/arm-angstrom-linux-gnueabi/4.3.3/libgcov.a > gcc-4.3.3-r7.1: /usr/lib/libstdc++_pic.a > gcc-4.3.3-r7.1: /usr/lib/libssp_nonshared.a > gcc-4.3.3-r7.1: /usr/lib/gcc/arm-angstrom-linux-gnueabi/4.3.3/libgcc.a > gcc-4.3.3-r7.1: /usr/lib/gcc/arm-angstrom-linux-gnueabi/4.3.3/libgcc_eh.a > gcc-4.3.3-r7.1: > /usr/lib/gcc/arm-angstrom-linux-gnueabi/4.3.3/libgfortranbegin.a > gcc-4.3.3-r7.1: /usr/lib/gcc/arm-angstrom-linux-gnueabi/4.3.3/libgcov.a > gcc-4.3.3-r7.1: /usr/lib/libsupc++.a > gdb-7.0-r0: /usr/lib/libbfd.a > gdb-7.0-r0: /usr/lib/libopcodes.a > gdb-7.0-r0: /usr/lib/libiberty.a > glibc-2.9-r35.2: /usr/lib/libc_nonshared.a > glibc-2.9-r35.2: /usr/lib/libmcheck.a > glibc-2.9-r35.2: /usr/lib/libg.a > glibc-2.9-r35.2: /usr/lib/libbsd-compat.a > glibc-2.9-r35.2: /usr/lib/libieee.a > glibc-2.9-r35.2: /usr/lib/libpthread_nonshared.a > libassuan-0.6.9-r0: /usr/lib/libassuan.a > libatomics-ops-1.2-r2: /usr/lib/libatomic_ops_gpl.a > libatomics-ops-1.2-r2: /usr/lib/libatomic_ops.a > libsdl-x11-1.2.11-r8: /usr/lib/libSDLmain.a > mysql-4.1.22-r3: /usr/lib/libmysys.a > mysql-4.1.22-r3: /usr/lib/libdbug.a > mysql-4.1.22-r3: /usr/lib/libvio.a > mysql-4.1.22-r3: /usr/lib/libheap.a > mysql-4.1.22-r3: /usr/lib/libmerge.a > mysql-4.1.22-r3: /usr/lib/libnisam.a > mysql-4.1.22-r3: /usr/lib/libmysqld.a > mysql-4.1.22-r3: /usr/lib/libmyisam.a > mysql-4.1.22-r3: /usr/lib/libmyisammrg.a > mysql-4.1.22-r3: /usr/lib/libmystrings.a > orbit2-2.14.17-r0: /usr/lib/libname-server-2.a > perl-5.8.8-r28: /usr/lib/perl/5.8.8/auto/DynaLoader/DynaLoader.a > python-2.6.1-ml8.0: /usr/lib/python2.6/config/libpython2.6.a > tcl-8.4.19-r2: /usr/lib/libtclstub8.4.a > tk-8.4.19-r0: /usr/lib/libtkstub8.4.a > tcl-native-8.4.19-r2: > /OE/build/tmp/staging/x86_64-linux/usr/lib/libtclstub8.4.a > tk-native-8.4.19-r0: /OE/build/tmp/staging/x86_64-linux/usr/lib/libtkstub8.4.a > > Found by this bash command: > find */*/image -name '*.a' | fgrep -v .debug | while read ; do if ! test -f > "${REPLY%.a}.so" ; then PKG=$REPLY ; PKG=${PKG#*/} ; PKG=${PKG%%/*} ; echo > $PKG: ${REPLY#*/image} ; fi ; done
I think we should only fix glibc case here as it is special. libc_nonshared.a has objects not available in the dynamic C library (libc.so.6) necessary for dynamically linking some binaries. as we have seen in this case. I dont think this case will be common for other packages. So even if stripping is necessary we should add code to identify libc_nonshared.a and avoid stripping it as special case. Thanks -Khem _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
