bugGnash - The GNU Flash player - Bugs: bug #20110, Build fails in utilities with mad...

 
 

bug #20110: Build fails in utilities with mad as mediahandler

Submitted by:  Tomas Groth <tgc>
Submitted on:  Thu 07 Jun 2007 10:44:16 AM UTC  
 
Category: buildSeverity: 5 - Blocker
Release: NoneStatus: Fixed
Privacy: PublicAssigned to: Sandro Santilli <strk>
Open/Closed: Closed

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

(Jump to the original submission Jump to the original submission)

Mon 23 Jul 2007 10:08:24 PM UTC, comment #14:

Moved convert_raw_data to libgnashbase. Please test.

Sandro Santilli <strk>
Project MemberIn charge of this item.
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.

Sandro Santilli <strk>
Project MemberIn charge of this item.
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)

Sandro Santilli <strk>
Project MemberIn charge of this item.
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 ?

Sandro Santilli <strk>
Project MemberIn charge of this item.
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.

Martin Guy <martinwguy>
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

Reuben Kagan <rk_pilpilon>
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?

Sandro Comuzzi <sandro72>
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...

Emmanuel Andry <eandry>
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)

Sandro Santilli <strk>
Project MemberIn charge of this item.
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

Tomas Groth <tgc>
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.

Sandro Santilli <strk>
Project MemberIn charge of this item.
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...

Sandro Santilli <strk>
Project MemberIn charge of this item.
Thu 07 Jun 2007 01:19:54 PM UTC, comment #2:

Confirmed to be fixed

Tomas Groth <tgc>
Thu 07 Jun 2007 01:11:23 PM UTC, comment #1:

libgnashserver_la_LIBADD didn't contain libgnashbackend..

Sandro Santilli <strk>
Project MemberIn charge of this item.
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

Tomas Groth <tgc>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by rk_pilpilon (Posted a comment)
  • -unavailable- added by sandro72 (Posted a comment)
  • -unavailable- added by eandry (Posted a comment)
  • -unavailable- added by strk (Posted a comment)
  • -unavailable- added by tgc (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 14 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Tue 24 Jul 2007 01:54:45 AM UTCstrkStatusReady For Test=>Fixed
      Open/ClosedOpen=>Closed
    Mon 23 Jul 2007 10:08:24 PM UTCstrkStatusConfirmed=>Ready For Test
      Assigned totgc=>strk
    Fri 13 Jul 2007 08:57:30 PM UTCstrkStatusIn Progress=>Confirmed
      Assigned tostrk=>tgc
    Fri 08 Jun 2007 12:45:33 PM UTCtgcStatusReady For Test=>In Progress
    Thu 07 Jun 2007 02:58:58 PM UTCstrkStatusIn Progress=>Ready For Test
    Thu 07 Jun 2007 02:46:19 PM UTCstrkStatusFixed=>In Progress
      Open/ClosedClosed=>Open
    Thu 07 Jun 2007 01:19:54 PM UTCtgcStatusReady For Test=>Fixed
      Open/ClosedOpen=>Closed
    Thu 07 Jun 2007 01:11:23 PM UTCstrkStatusNone=>Ready For Test
      Assigned toNone=>strk

    Back to the top


    Powered by Savane 3.1-cleanup1