Cerbero not including version-info in the shared library .so file
marcin at saepia.net
marcin at saepia.net
Sun Mar 13 18:59:54 UTC 2016
I have found out that libtool script in the broken library generated while
running ./configure --prefix /root/cerbero/dist/android_armv7 --libdir
/root/cerbero/dist/android_armv7/lib --disable-maintainer-mode
--disable-silent-rules --disable-introspection --host=arm-linux-androideabi
has version_type=none while one that builds has this variable properly set
to linux. That difference later causes libtool to not add symlinks.
Can anyone here give me any hint where should I seek for what causes
invalid host recognition while generating libtool?
Marcin
2016-03-12 20:33 GMT+01:00 marcin at saepia.net <marcin at saepia.net>:
> Hello,
>
> I want to extend Cerbero build system in order to build this library:
> http://github.com/mspanc/vspec
>
> I have created the recipe:
>
> class Recipe(recipe.Recipe):
> name = 'libvspec-1.0'
> version = '0.9.0'
> licenses = [License.LGPLv2Plus]
> remotes = {'origin': 'https://github.com/mspanc/vspec.git'}
> commit = 'origin/master'
> deps = ['glib']
> autoreconf = True
> files_libs = ['libvspec-1.0']
> files_devel = ['include/libvspec-1.0', 'lib/pkgconfig/libvspec-1.0.pc']
>
> My problem is that libs are not included in the package that relies on the
> lib.
>
> I've found out that Cerbero seeks for libraries that have .so.* suffix so
> they must use libtool versioning. I've added libtool -version-info. The
> issue is that if I build my library manually on my ubuntu box, libtool
> creates appropriate symlinks containing version info during make install.
> However, if I run the same build within Cerbero, they are ignored and only
> .so file is built, which results in Cerbero not recognizing it. Anyone
> knows, why?
>
> Below log from Cerbero's make install:
>
> Making install in src
> make[1]: Entering directory
> `/root/cerbero/sources/android_armv7/libvspec-1.0-1.0.0/src'
> make[2]: Entering directory
> `/root/cerbero/sources/android_armv7/libvspec-1.0-1.0.0/src'
> /bin/mkdir -p '/root/cerbero/dist/android_armv7/lib'
> /bin/bash ../libtool --mode=install /usr/bin/install -c
> libvspec-1.0.la '/root/cerbero/dist/android_armv7/lib'
> libtool: install: /usr/bin/install -c .libs/libvspec-1.0.so
> /root/cerbero/dist/android_armv7/lib/libvspec-1.0.so
> libtool: install: /usr/bin/install -c .libs/libvspec-1.0.lai
> /root/cerbero/dist/android_armv7/lib/libvspec-1.0.la
> libtool: install: /usr/bin/install -c .libs/libvspec-1.0.a
> /root/cerbero/dist/android_armv7/lib/libvspec-1.0.a
> libtool: install: chmod 644
> /root/cerbero/dist/android_armv7/lib/libvspec-1.0.a
> libtool: install: arm-linux-androideabi-ranlib
> /root/cerbero/dist/android_armv7/lib/libvspec-1.0.a
> /bin/mkdir -p '/root/cerbero/dist/android_armv7/share/vala/vapi'
> /usr/bin/install -c -m 644 libvspec-1.0.vapi libvspec-1.0.deps
> '/root/cerbero/dist/android_armv7/share/vala/vapi'
> /bin/mkdir -p '/root/cerbero/dist/android_armv7/include/libvspec-1.0'
> /usr/bin/install -c -m 644 libvspec.h
> '/root/cerbero/dist/android_armv7/include/libvspec-1.0'
> /bin/mkdir -p '/root/cerbero/dist/android_armv7/lib/pkgconfig'
> /usr/bin/install -c -m 644 libvspec-1.0.pc
> '/root/cerbero/dist/android_armv7/lib/pkgconfig'
> make[2]: Leaving directory
> `/root/cerbero/sources/android_armv7/libvspec-1.0-1.0.0/src'
> make[1]: Leaving directory
> `/root/cerbero/sources/android_armv7/libvspec-1.0-1.0.0/src'
> make[1]: Entering directory
> `/root/cerbero/sources/android_armv7/libvspec-1.0-1.0.0'
> make[2]: Entering directory
> `/root/cerbero/sources/android_armv7/libvspec-1.0-1.0.0'
> make[2]: Nothing to be done for `install-exec-am'.
> make[2]: Nothing to be done for `install-data-am'.
> make[2]: Leaving directory
> `/root/cerbero/sources/android_armv7/libvspec-1.0-1.0.0'
> make[1]: Leaving directory
> `/root/cerbero/sources/android_armv7/libvspec-1.0-1.0.0'
> Running command 'make install'
>
> And the same command on my ubuntu 14.04 box:
>
> $ LC_ALL=C sudo make install
> Making install in src
> make[1]: Entering directory `/home/marcin/aktivitis/radiokit/vspec/src'
> make[2]: Entering directory `/home/marcin/aktivitis/radiokit/vspec/src'
> /bin/mkdir -p '/usr/local/lib'
> /bin/bash ../libtool --mode=install /usr/bin/install -c
> libvspec-1.0.la '/usr/local/lib'
> libtool: install: /usr/bin/install -c .libs/libvspec-1.0.so.1.0.0
> /usr/local/lib/libvspec-1.0.so.1.0.0
> libtool: install: (cd /usr/local/lib && { ln -s -f libvspec-1.0.so.1.0.0
> libvspec-1.0.so.1 || { rm -f libvspec-1.0.so.1 && ln -s
> libvspec-1.0.so.1.0.0 libvspec-1.0.so.1; }; })
> libtool: install: (cd /usr/local/lib && { ln -s -f libvspec-1.0.so.1.0.0
> libvspec-1.0.so || { rm -f libvspec-1.0.so && ln -s libvspec-1.0.so.1.0.0
> libvspec-1.0.so; }; })
> libtool: install: /usr/bin/install -c .libs/libvspec-1.0.lai
> /usr/local/lib/libvspec-1.0.la
> libtool: install: /usr/bin/install -c .libs/libvspec-1.0.a
> /usr/local/lib/libvspec-1.0.a
> libtool: install: chmod 644 /usr/local/lib/libvspec-1.0.a
> libtool: install: ranlib /usr/local/lib/libvspec-1.0.a
> libtool: finish:
> PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/sbin"
> ldconfig -n /usr/local/lib
> ----------------------------------------------------------------------
> Libraries have been installed in:
> /usr/local/lib
>
> If you ever happen to want to link against installed libraries
> in a given directory, LIBDIR, you must either use libtool, and
> specify the full pathname of the library, or use the `-LLIBDIR'
> flag during linking and do at least one of the following:
> - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
> during execution
> - add LIBDIR to the `LD_RUN_PATH' environment variable
> during linking
> - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
> - have your system administrator add LIBDIR to `/etc/ld.so.conf'
>
> See any operating system documentation about shared libraries for
> more information, such as the ld(1) and ld.so(8) manual pages.
> ----------------------------------------------------------------------
> /bin/mkdir -p '/usr/local/share/vala/vapi'
> /usr/bin/install -c -m 644 libvspec-1.0.vapi libvspec-1.0.deps
> '/usr/local/share/vala/vapi'
> /bin/mkdir -p '/usr/local/include/libvspec-1.0'
> /usr/bin/install -c -m 644 libvspec.h '/usr/local/include/libvspec-1.0'
> /bin/mkdir -p '/usr/local/lib/pkgconfig'
> /usr/bin/install -c -m 644 libvspec-1.0.pc '/usr/local/lib/pkgconfig'
> make[2]: Leaving directory `/home/marcin/aktivitis/radiokit/vspec/src'
> make[1]: Leaving directory `/home/marcin/aktivitis/radiokit/vspec/src'
> make[1]: Entering directory `/home/marcin/aktivitis/radiokit/vspec'
> make[2]: Entering directory `/home/marcin/aktivitis/radiokit/vspec'
> make[2]: Nothing to be done for `install-exec-am'.
> make[2]: Nothing to be done for `install-data-am'.
> make[2]: Leaving directory `/home/marcin/aktivitis/radiokit/vspec'
> make[1]: Leaving directory `/home/marcin/aktivitis/radiokit/vspec'
>
> Thanks,
>
> Marcin
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20160313/a7f993b6/attachment.html>
More information about the gstreamer-devel
mailing list