[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
compilation failure of gstreamer with libtool 2.2.6a on Mac OS
From: |
Andy Wingo |
Subject: |
compilation failure of gstreamer with libtool 2.2.6a on Mac OS |
Date: |
Wed, 05 Nov 2008 17:08:10 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) |
Hello all,
I wanted to see if the new libtool would work on Mac OS, so I ran a
rebuild of my jhbuild. I got an error, one that seems pretty clear. I've
reflowed the text for legibility but I didn't add trailing backslashes.
/bin/sh ../../../libtool --tag=CC --mode=link gcc -I../../../libs
-I../../.. -I../../.. -D_REENTRANT -I/opt/yobuild/include/glib-2.0
-I/opt/yobuild/lib/glib-2.0/include -I/opt/yobuild/include/libxml2
-Wall -Wdeclaration-after-statement -Werror -fno-strict-aliasing -g
-DGST_DISABLE_DEPRECATED -I/opt/yobuild/include -O -g -gstabs+3
-std=gnu89 -export-symbols-regex \^_*\(gst_\|Gst\|GST_\).*
-no-undefined -version-info 18:0:18 -L/opt/yobuild/lib
-L/opt/yobuild/lib -Wl,-headerpad_max_install_names -o
libgstbase-0.10.la -rpath /opt/yobuild/lib
libgstbase_0.10_la-gstadapter.lo libgstbase_0.10_la-gstbasesink.lo
libgstbase_0.10_la-gstbasesrc.lo
libgstbase_0.10_la-gstbasetransform.lo
libgstbase_0.10_la-gstbitreader.lo
libgstbase_0.10_la-gstbytereader.lo
libgstbase_0.10_la-gstcollectpads.lo
libgstbase_0.10_la-gstpushsrc.lo
libgstbase_0.10_la-gsttypefindhelper.lo
libgstbase_0.10_la-gstdataqueue.lo ../../../gst/libgstreamer-0.10.la
-L/opt/yobuild/lib -lgobject-2.0 -lgthread-2.0 -lgmodule-2.0
-lglib-2.0 -lintl -L/opt/yobuild/lib -lintl -liconv -lc
-R/opt/yobuild/lib -ldl
Here we see that we're trying to link against a lib that we've already
compiled but not installed, in the builddir: the
../../../gst/libgstreamer-0.10.la.
libtool: link: rm -fr .libs/libgstbase-0.10.exp
libtool: link: /usr/bin/nm -p .libs/libgstbase_0.10_la-gstadapter.o
.libs/libgstbase_0.10_la-gstbasesink.o
.libs/libgstbase_0.10_la-gstbasesrc.o
.libs/libgstbase_0.10_la-gstbasetransform.o
.libs/libgstbase_0.10_la-gstbitreader.o
.libs/libgstbase_0.10_la-gstbytereader.o
.libs/libgstbase_0.10_la-gstcollectpads.o
.libs/libgstbase_0.10_la-gstpushsrc.o
.libs/libgstbase_0.10_la-gsttypefindhelper.o
.libs/libgstbase_0.10_la-gstdataqueue.o | sed -n -e 's/^.*[
]\([BCDEGRST][BCDEGRST]*\)[ ][ ]*_\([_A-Za-z][_A-Za-z0-9]*\)$/\1 _\2
\2/p' | /usr/bin/sed 's/.* //' | sort | uniq > .libs/libgstbase-0.10.exp
libtool: link: /usr/bin/grep -E -e "^_*(gst_|Gst|GST_).*"
".libs/libgstbase-0.10.exp" > ".libs/libgstbase-0.10.expT"
libtool: link: mv -f ".libs/libgstbase-0.10.expT" ".libs/libgstbase-0.10.exp"
libtool: link: sed 's,^,_,' < .libs/libgstbase-0.10.exp >
.libs/libgstbase-0.10-symbols.expsym
libtool: link: gcc -dynamiclib -o .libs/libgstbase-0.10.0.dylib
.libs/libgstbase_0.10_la-gstadapter.o
.libs/libgstbase_0.10_la-gstbasesink.o
.libs/libgstbase_0.10_la-gstbasesrc.o
.libs/libgstbase_0.10_la-gstbasetransform.o
.libs/libgstbase_0.10_la-gstbitreader.o
.libs/libgstbase_0.10_la-gstbytereader.o
.libs/libgstbase_0.10_la-gstcollectpads.o
.libs/libgstbase_0.10_la-gstpushsrc.o
.libs/libgstbase_0.10_la-gsttypefindhelper.o
.libs/libgstbase_0.10_la-gstdataqueue.o -L/opt/yobuild/lib
-L../../../gst/.libs -lgstreamer-0.10 -L/usr/lib -lxml2 -lpthread
-lz -lm -lgobject-2.0 -lgthread-2.0 -lgmodule-2.0 -lglib-2.0 -lintl
-liconv -lc -ldl -Wl,-headerpad_max_install_names -framework Carbon
-install_name /opt/yobuild/lib/libgstbase-0.10.0.dylib
-compatibility_version 19 -current_version 19.0 -Wl,-single_module
-Wl,-exported_symbols_list,.libs/libgstbase-0.10-symbols.expsym
Here we see that the libgstreamer-0.10.la got transformed to
"-L../../../gst/.libs -lgstreamer-0.10". BUT! There is a
-L/opt/yobuild/lib before it, and since we use -l it searches the -L
path from the beginning, where it finds an old version of
libgstreamer-0.10.la installed in /opt/yobuild/lib:
Undefined symbols:
"_gst_message_set_seqnum", referenced from:
_gst_base_sink_render_object in libgstbase_0.10_la-gstbasesink.o
_gst_base_sink_change_state in libgstbase_0.10_la-gstbasesink.o
_gst_base_src_loop in libgstbase_0.10_la-gstbasesrc.o
_gst_base_src_perform_seek in libgstbase_0.10_la-gstbasesrc.o
"_gst_event_set_seqnum", referenced from:
_gst_base_src_loop in libgstbase_0.10_la-gstbasesrc.o
_gst_base_src_loop in libgstbase_0.10_la-gstbasesrc.o
_gst_base_src_perform_seek in libgstbase_0.10_la-gstbasesrc.o
_gst_base_src_perform_seek in libgstbase_0.10_la-gstbasesrc.o
_gst_base_src_perform_seek in libgstbase_0.10_la-gstbasesrc.o
_gst_base_src_perform_seek in libgstbase_0.10_la-gstbasesrc.o
_gst_base_src_change_state in libgstbase_0.10_la-gstbasesrc.o
"_gst_event_get_seqnum", referenced from:
_gst_base_sink_render_object in libgstbase_0.10_la-gstbasesink.o
_gst_base_src_perform_seek in libgstbase_0.10_la-gstbasesrc.o
"_gst_util_seqnum_next", referenced from:
_gst_base_src_perform_seek in libgstbase_0.10_la-gstbasesrc.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [libgstbase-0.10.la] Error 1
So indeed it fails to link. Now, I can work around this by blowing away
my /opt/yobuild, but this seems like a bug in libtool.
$ libtool --version
ltmain.sh (GNU libtool) 2.2.6
Written by Gordon Matzigkeit <address@hidden>, 1996
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ uname -a
Darwin XXX 9.2.2 Darwin Kernel Version 9.2.2: Tue Mar 4 21:17:34 PST 2008;
root:xnu-1228.4.31~1/RELEASE_I386 i386
Please Cc: me on any responses, as I am not subscribed.
Regards,
Andy
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- compilation failure of gstreamer with libtool 2.2.6a on Mac OS,
Andy Wingo <=