Mon 23 Jul 2007 10:08:24 PM UTC, comment #14:
Moved convert_raw_data to libgnashbase. Please test.
|
Wed 18 Jul 2007 11:56:47 AM UTC, comment #13:
Another thought is making the function a templated one, which would basically be inlined.
|
Fri 13 Jul 2007 08:57:30 PM UTC, comment #12:
A solution might be to hide the convert_raw_data into the backend lib and just expose an interface to use it, which might be what the FFMPEG and GST versions are doing (but I'm not sure)
|
Fri 13 Jul 2007 08:51:54 PM UTC, comment #11:
It actually makes sense, as the call from SoundMad.cpp is the only call coming from the asobj/ lib. How do the SoundGst and SoundFfmpeg convert raw data ?
|
Tue 26 Jun 2007 08:06:03 PM UTC, comment #10:
Confirmed fails with enable-shared but builds ok with disable-shared.
This is a result of the change of 18 May 2007 when convert_raw_data() changed from being a virtual function replicated in every sound handler to being a single member of the sound_handler class. (ie it moved from being
{SDL,GST}_sound_handler:convert_raw_data() in sound_handler_{gst,sdl}.cpp
to being
sound_handler::convert_raw_data() in sound_handler.cpp)
The unresolved call is the one in server/asobj/SoundMad.cpp;
the ones in sound_handler_{gst,sdl} are happy.
Linking sequence leading to failure is:
- SoundMad.o is included in libgnashasobjs.{la,a} whick links against libgnash{amf,geo,base}
NOTE: libgnashasobjs is not built as a shared library, only static
- libgnashserver is then made from a load of .lo's and linked against libgnash{asobjs,parser,vm}
- sound_handler.o is then included in libgnashbackend-*.so, which is linked against libgnash{base,server}.so
- link of gparser then links against libgnash{server,base,backend,amf,geo} and fails to find sound_handler::convert_raw_data() even though it is included in libgnashserver.so (says "nm")
is this because when libgnashasobjs is made it is not linked against libgnashbackend? (which would make the library dependencies circular)
A quick hack could be to move convert_raw_data() out of gnash::sound_handler into libgnashbase. Would that make it be included even when --enable-sound-handler=none?
However, that doesn't explain why it isn't found already, which my be a symptom of a deeper problem.
|
Sat 23 Jun 2007 02:23:29 PM UTC, comment #9:
The same error here.
On Kubuntu 7.04, AMD 64, with regular ./configure && make.
The bild is succsessful with --disable-shared.
parameters of filed build:
Configurable options are:
Intel 810 LOD bias hack disabled (default). Use --enable-i810-lod-bias to enable.
POSIX Threads support enabled (default)
Web server support disabled (default)
DMalloc support disabled (default). Use --enable-dmalloc to enable.
Firefox plugin enabled (default). Use --disable-plugin to disable.
Konqueror plugin enabled (default). Use --disable-klash to disable
GNOME help disabled (default). Use --enable-ghelp to enable.
Building Cygnal media server enabled (default). Use --disable-cygnal to disable.
Building Flash debugger support (default). Use --disable-debugger to disable.
Top level for cross compiling support files is:
Renderer engine: opengl
GUI: gtk
Media handler: mad
Using SDL for sound handling
Configured paths for x86_64-unknown-linux-gnu are:
DocBook document processing disabled (default)
XML flags are: -I/usr/include/libxml2
XML libs are: -lxml2
KDE flags are: -I/usr/include/kde -I/usr/include/kde/kio
KDE libs are: -lkdeui -lkdecore -lkdeprint
QT flags are: -I/usr/include/qt3
QT libs are: -L/usr/lib -lqt-mt
JPEG flags are: default include path
JPEG libs are: -L/usr/lib64 -ljpeg
OpenGL flags are: default include path
OpenGL libs are: -L/usr/lib64 -lGL -lGLU
GtkGLExt flags are: -DPNG_NO_MMX_CODE -I/usr/include/gtkglext-1.0 -I/usr/lib/gtkglext-1.0/include -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/cairo -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/atk-1.0
GtkGLExt libs are: -Wl,--export-dynamic -lgtkglext-x11-1.0 -lgdkglext-x11-1.0 -lGLU -lGL -lXmu -lXt -lSM -lICE -lgtk-x11-2.0 -lpangox-1.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXfixes -lpango-1.0 -lcairo -lX11 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0
GTK2 flags are: -DPNG_NO_MMX_CODE -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12
GTK2 libs are: -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXfixes -lpango-1.0 -lcairo -lX11 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0
Pango flags are: -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
Pango libs are: -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0
GLib flags are: -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
GLib libs are: -lglib-2.0
ATK flags are: -I/usr/include/atk-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
ATK libs are: -latk-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0
MP3 support enabled through libmad
MAD flags are:
MAD libs are: -lmad -lm
SDL flags are: -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/local/include/SDL
SDL libs are: -Wl,-rpath,/usr/local/lib -L/usr/local/lib -lSDL -lpthread
Plugin will be installed in /home/pilpilon/.mozilla/plugins
POSIX Threads flags are: -pthread
POSIX Threads lib is: -L/usr/lib64 -lpthread
This version of libCurl doesn't have RTMP support
CURL flags are: default include path
CURL libs are: -L/usr/lib -lcurl
BOOST flags are: -I/usr/include
BOOST libs are: -L/usr/lib64 -lboost_date_time -lboost_thread
WARNING: You need to have the Ming development and utilities packages
installed to run most of the tests in Gnash testsuite.
Install it from http://ming.sourceforge.net
or .deb users: apt-get install libming-dev
MTASC is /usr/bin/mtasc
MTASC CLASSPATH is /usr/bin/std
WARNING: You need to have the 'swfmill' tool installed
to run some of the tests in Gnash testsuite.
You can install it from http://iterative.org/swfmill/
Z flags are: default include path
Z libs are: -L/usr/lib64 -lz
FreeType flags are: -I/usr/include/freetype2
FreeType libs are: -lfreetype -lz
Fontconfig flags are:
Fontconfig libs are: -lfontconfig
The error is as follows:
Making all in utilities
make[2]: Entering directory `/home/pilpilon/install/gnash/gnash-test/utilities'
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I.. -I.. -I../libgeometry -I../libbase -I../server -I../server/parser -I../server/vm -DLOCALEDIR=\"/usr/local/share/locale\" -I/usr/include -I/usr/include/libxml2 -g -O2 -pthread -W -Wall -Wcast-align -Wcast-qual -Wpointer-arith -Wreturn-type -MT parser.o -MD -MP -MF ".deps/parser.Tpo" -c -o parser.o parser.cpp; \
then mv -f ".deps/parser.Tpo" ".deps/parser.Po"; else rm -f ".deps/parser.Tpo"; exit 1; fi
/bin/bash ../libtool --mode=link --tag=CXX g++ -g -O2 -pthread -W -Wall -Wcast-align -Wcast-qual -Wpointer-arith -Wreturn-type -ldl ../libbase/libltdl.la -lxml2 -L/usr/lib -lcurl -L/usr/lib64 -lboost_date_time -lboost_thread -L/usr/lib64 -lpthread -Wl,--as-needed -o gparser -export-dynamic ../libbase/libltdl.la parser.o ../server/libgnashserver.la ../libbase/libgnashbase.la ../backend/libgnashbackend.la ../libamf/libgnashamf.la -lmad -lm -lglib-2.0 -lrt -lX11 -lXi -lm
mkdir .libs
g++ -g -O2 -W -Wall -Wcast-align -Wcast-qual -Wpointer-arith -Wreturn-type -Wl,--as-needed -o .libs/gparser parser.o -Wl,--export-dynamic -pthread -L/usr/lib -L/usr/lib64 ../libbase/.libs/libltdl.so ../server/.libs/libgnashserver.so ../libbase/.libs/libgnashbase.so ../backend/.libs/libgnashbackend.so /home/pilpilon/install/gnash/gnash-test/server/.libs/libgnashserver.so /home/pilpilon/install/gnash/gnash-test/libamf/.libs/libgnashamf.so /home/pilpilon/install/gnash/gnash-test/libgeometry/.libs/libgnashgeo.so /usr/lib/libxml2.so /usr/lib/libfreetype.so -lfontconfig -L/usr/local/lib /usr/local/lib/libSDL.so /usr/lib/libpangox-1.0.so /usr/lib/libpango-1.0.so /usr/lib/libatk-1.0.so /usr/lib/libgobject-2.0.so /usr/lib/libgmodule-2.0.so ../libamf/.libs/libgnashamf.so /home/pilpilon/install/gnash/gnash-test/libbase/.libs/libgnashbase.so /usr/lib/libjpeg.so /usr/lib/libcurl-gnutls.so -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lkrb5support -lresolv /usr/lib/libidn.so /usr/lib/libgnutls.so /usr/lib/libtasn1.so /usr/lib/libgcrypt.so -lnsl /usr/lib/libgpg-error.so -lz -lGL -lGLU /home/pilpilon/install/gnash/gnash-test/libbase/.libs/libltdl.so -ldl -lboost_date_time -lboost_thread -lpthread /usr/lib/libmad.so /usr/lib/libglib-2.0.so -lrt -lX11 -lXi -lm -Wl,--rpath -Wl,/usr/lib -Wl,--rpath -Wl,/usr/local/lib
../server/.libs/libgnashserver.so: undefined reference to `gnash::sound_handler::convert_raw_data(short*, int, void*, int, int, int, bool, int, bool)'
collect2: ld returned 1 exit status
make[2]: *** [gparser] Error 1
|
Thu 21 Jun 2007 07:46:44 AM UTC, comment #8:
I've got the same compiler error:
../server/.libs/libgnashserver.so: undefined reference to `gnash::sound_handler::convert_raw_data(short*, int, void*, int, int, int, bool, int, bool)'
What can I try?
|
Mon 18 Jun 2007 07:13:56 PM UTC, comment #7:
I've the same libtool version (on Mandriva Cooker).
libmad version is 0.15.1b
gcc version is 4.1.2
Still have the problem...
|
Wed 13 Jun 2007 06:16:59 PM UTC, comment #6:
I can't reproduce :(
tested with both --disable-shared and both static/shared enabled.
libtool --version
ltmain.sh (GNU libtool) 1.5.22 Debian 1.5.22-2 (1.1220.2.365 2005/12/18 22:14:06)
|
Fri 08 Jun 2007 12:45:33 PM UTC, comment #5:
I did a clean new build, and i get this error (seems the same as before):
/usr/lib/ccache/bin/g++ -g -fstack-protector-all -pthread -W -Wall -Wcast-align -Wcast-qual -Wpointer-arith -Wreturn-type -Wl,--as-needed -o .libs/gparser parser.o -Wl,--export-dynamic ../server/.libs/libgnashserver.so -L/usr/lib64 -L/usr/lib ../libbase/.libs/libgnashbase.so ../backend/.libs/libgnashbackend.so /home/tomas/gnash/build/gtk-gl-mad/server/.libs/libgnashserver.so /home/tomas/gnash/build/gtk-gl-mad/libamf/.libs/libgnashamf.so /home/tomas/gnash/build/gtk-gl-mad/libgeometry/.libs/libgnashgeo.so -lxml2 -lSDL -lpangox-1.0 -lpango-1.0 -latk-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl ../libamf/.libs/libgnashamf.so /home/tomas/gnash/build/gtk-gl-mad/libbase/.libs/libgnashbase.so -ljpeg -lz -lcurl -lGL -lGLU -lltdl -lboost_date_time-mt -lboost_thread-mt -lpthread -lmad -lglib-2.0 -lrt -lX11 -lXi -lm
../server/.libs/libgnashserver.so: undefined reference to `gnash::sound_handler::convert_raw_data(short*, int, void*, int, int, int, bool, int, bool)'
collect2: ld returned 1 exit status
make[2]: *** [gparser] Error 1
|
Thu 07 Jun 2007 02:58:58 PM UTC, comment #4:
ready for test again. Takes an clean build to be an effective test.
Works for me.
|
Thu 07 Jun 2007 02:46:19 PM UTC, comment #3:
reopened... libgnashbackend depends on libgnashserver
so this "fix" actually introduced another bug.
Will try adding gnashbackend dependency under utilities/ as the bug summary suggests...
|
Thu 07 Jun 2007 01:19:54 PM UTC, comment #2:
Confirmed to be fixed
|
Thu 07 Jun 2007 01:11:23 PM UTC, comment #1:
libgnashserver_la_LIBADD didn't contain libgnashbackend..
|
Thu 07 Jun 2007 10:44:16 AM UTC, original submission:
The compile error:
/bin/sh ../libtool --tag=CXX --mode=link /usr/lib/ccache/bin/g++ -g -fstack-protector-all -pthread -W -Wall -Wcast-align -Wcast-qual -Wpointer-arith -Wreturn-type -export-dynamic -lltdl -Wl,--as-needed -o gparser parser.o ../server/libgnashserver.la ../libbase/libgnashbase.la ../libamf/libgnashamf.la -lmad -lglib-2.0 -lrt -lX11 -lXi -lm
/usr/lib/ccache/bin/g++ -g -fstack-protector-all -pthread -W -Wall -Wcast-align -Wcast-qual -Wpointer-arith -Wreturn-type -Wl,--as-needed -o .libs/gparser parser.o -Wl,--export-dynamic ../server/.libs/libgnashserver.so -L/usr/lib64 -L/usr/lib /home/tomas/gnash/build/gtk-gl-mad/libamf/.libs/libgnashamf.so /home/tomas/gnash/build/gtk-gl-mad/libgeometry/.libs/libgnashgeo.so -lxml2 ../libbase/.libs/libgnashbase.so ../libamf/.libs/libgnashamf.so /home/tomas/gnash/build/gtk-gl-mad/libbase/.libs/libgnashbase.so -ljpeg -lz -lcurl -lGL -lGLU -lltdl -lboost_date_time-mt -lboost_thread-mt -lpthread -lmad -lglib-2.0 -lrt -lX11 -lXi -lm
../server/.libs/libgnashserver.so: undefined reference to `gnash::sound_handler::convert_raw_data(short*, int, void*, int, int, int, bool, int, bool)'
collect2: ld returned 1 exit status
make[2]: *** [gparser] Error 1
|