Bug 47777 - errors compiling mpeglib from source
Summary: errors compiling mpeglib from source
Status: RESOLVED FIXED
Alias: None
Product: mpeglib
Classification: Miscellaneous
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Martin Vogt
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-09-12 06:33 UTC by ronwaldon
Modified: 2003-05-02 15:41 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
mpeglib inlining fixes (sorry, no diff, complete sources) (5.37 KB, application/octet-stream)
2002-10-19 23:16 UTC, Andreas Steinmetz
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Bugzilla Maintainers 2002-09-12 06:22:58 UTC
(*** 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)
Comment 1 Andreas Steinmetz 2002-10-19 23:16:45 UTC
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.
Comment 2 Martin Vogt 2002-10-20 18:06:24 UTC
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.

Comment 3 Ismail Donmez 2003-05-02 15:13:26 UTC
Can you close this bug please as its already fixed. 
Comment 4 Thiago Macieira 2003-05-02 15:41:59 UTC
*** Bug has been marked as fixed ***.