(*** This bug was imported into bugs.kde.org ***) Package: mpeglib Version: KDE 3.0.3 Severity: normal Installed from: Compiled From Sources Compiler: GCC 3.2 OS: Linux OS/Compiler notes: Not Specified While compiling the KDEMultimedia package I get compile errors during the mpeglib stage. I've copied a lot of the compile error text to the bottom of this post. The way I usually get around this is to simply skip building mpeglib. I'm using a LinuxFromScratch 3.3 (approx.) system and I've had this problem with KDE 3 3.0.1 3.0.2 and 3.0.3. Making all in dither2YUV make[6]: Entering directory `/usr/src/kdemultimedia-3.0.3/mpeglib/lib/util/render/dither2YUV' source='libdivxutil_dither_la.all_cpp.cpp' object='libdivxutil_dither_la.all_cpp.lo' libtool=yes \ depfile='.deps/libdivxutil_dither_la.all_cpp.Plo' tmpdepfile='.deps/libdivxutil_dither_la.all_cpp.TPlo' \ depmode=gcc3 /bin/sh ../../../../../admin/depcomp \ /bin/sh ../../../../../libtool --mode=compile --tag=CXX g++ -DHAVE_CONFIG_H -I. -I. -I../../../../.. -I.. -I/usr/local/kde/include -I/usr/local/qt/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -DNDEBUG -DNO_DEBUG -O2 -O3 -march=athlon -fno-exceptions -fno-check-new -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -c -o libdivxutil_dither_la.all_cpp.lo `test -f libdivxutil_dither_la.all_cpp.cpp || echo './'`libdivxutil_dither_la.all_cpp.cpp g++ -DHAVE_CONFIG_H -I. -I. -I../../../../.. -I.. -I/usr/local/kde/include -I/usr/local/qt/include -I/usr/X11R6/include -DQT_THREAD_SUPPORT -D_REENTRANT -DNDEBUG -DNO_DEBUG -O2 -O3 -march=athlon -fno-exceptions -fno-check-new -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -c libdivxutil_dither_la.all_cpp.cpp -MT libdivxutil_dither_la.all_cpp.lo -MD -MP -MF .deps/libdivxutil_dither_la.all_cpp.TPlo -fPIC -DPIC -o .libs/libdivxutil_dither_la.all_cpp.o In file included from /usr/include/c++/3.2/backward/iostream.h:31 from ../../timeStamp.h:18 from ../yuvPicture.h:24 from dither2YUV.h:19 from dither2YUV.cpp:14 from libdivxutil_dither_la.all_cpp.cpp:2: /usr/include/c++/3.2/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes or <sstream> instead of the deprecated header <strstream.h>. To disable this warning use -Wno-deprecated. /tmp/ccCtlpnM.s: Assembler messages: /tmp/ccCtlpnM.s:1891: Error: symbol `rgb2yuv16_422' is already defined /tmp/ccCtlpnM.s:2101: Error: symbol `rgb2y_16' is already defined /tmp/ccCtlpnM.s:2439: Error: symbol `rgb2yuv16_422' is already defined /tmp/ccCtlpnM.s:2658: Error: symbol `rgb2yuv16_422_fast' is already defined /tmp/ccCtlpnM.s:2762: Error: symbol `rgb2y_16' is already defined /tmp/ccCtlpnM.s:2913: Error: symbol `rgb2y32_fast' is already defined /tmp/ccCtlpnM.s:3306: Error: symbol `rgb2yuv24_422' is already defined /tmp/ccCtlpnM.s:3447: Error: symbol `rgb2y_24' is already defined /tmp/ccCtlpnM.s:3567: Error: symbol `rgb2yuv32_422' is already defined /tmp/ccCtlpnM.s:3730: Error: symbol `rgb2y_32' is already defined /tmp/ccCtlpnM.s:3995: Error: symbol `rgb2yuv24_422' is already defined /tmp/ccCtlpnM.s:4149: Error: symbol `rgb2yuv32_422' is already defined /tmp/ccCtlpnM.s:4322: Error: symbol `rgb2y_24' is already defined /tmp/ccCtlpnM.s:4409: Error: symbol `rgb2y_32' is already defined make[6]: *** [libdivxutil_dither_la.all_cpp.lo] Error 1 make[6]: Leaving directory `/usr/src/kdemultimedia-3.0.3/mpeglib/lib/util/render/dither2YUV' make[5]: *** [all-recursive] Error 1 make[5]: Leaving directory `/usr/src/kdemultimedia-3.0.3/mpeglib/lib/util/render' make[4]: *** [all-recursive] Error 1 make[4]: Leaving directory `/usr/src/kdemultimedia-3.0.3/mpeglib/lib/util' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/usr/src/kdemultimedia-3.0.3/mpeglib/lib' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/usr/src/kdemultimedia-3.0.3/mpeglib' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/src/kdemultimedia-3.0.3' make: *** [all] Error 2 (Submitted via bugs.kde.org)
Created attachment 219 [details] mpeglib inlining fixes (sorry, no diff, complete sources) I contacted the mpeglib author, mvogt@rhrk.uni-kl.de, on 2002/08/25 with this problem, but didn't get any reply, neither was the bug fixed as it seems. Original mail to above address follows: -------- Hi, please change all inline assembly labels from "<label>" to "<label>_%=" to prevent duplicate symbol errors caused by inlining due to optimization flags. "%=" generates a unique number per instance and thus inlining becomes possible. Example: label: movl %eax,(%ebc,%ecx,4) decl %ecx jnz label The above is impossible with inlining as there are multiple instances of "label" defined. This is fixed below: label_%=: movl %eax,(%ebc,%ecx,4) decl %ecx jnz label_%= Now every inlined instance has a unique label and thus inining is possible. -------- Just replace two files with the ones in the attached archive (sorry, no time for a unified diff right now) to get rid of this bug.
This is fixed in HEAD, but differently. (I did not ported it back) and it only occures when compiling with "--enable-final". The new files do not export the symbols anymore and the lables changed from xxxx: to 1: which means that they are always local lables.
Can you close this bug please as its already fixed.
*** Bug has been marked as fixed ***.