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

 
 

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

Submitter:  Tomas Groth <tgc>
Submitted:  Thu 07 Jun 2007 10:44:16 AM UTC
   
 
Category:  build Severity:  5 - Blocker
Release:  None Status:  Fixed
Privacy:  Public Assigned to:  strk
Open/Closed:  Closed
* Mandatory Fields

Add a New Comment Rich Markup
   

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>
Group Member
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>
Group Member
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>
Group Member
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>
Group Member
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>
Group Member
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>
Group Member
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>
Group Member
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>
Group Member
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 Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

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

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 14 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2007-07-24 strk StatusReady For Test Fixed
        Open/ClosedOpen Closed
    2007-07-23 strk StatusConfirmed Ready For Test
        Assigned totgc strk
    2007-07-13 strk StatusIn Progress Confirmed
        Assigned tostrk tgc
    2007-06-08 tgc StatusReady For Test In Progress
    2007-06-07 strk StatusIn Progress Ready For Test
    2007-06-07 strk StatusFixed In Progress
        Open/ClosedClosed Open
    2007-06-07 tgc StatusReady For Test Fixed
        Open/ClosedOpen Closed
    2007-06-07 strk StatusNone Ready For Test
        Assigned toNone strk

    Back to the top

    Powered by Savane 3.13-02a9.
    Corresponding source code