Date: Mon, 30 May 2005 00:05:20 EST-10EDT,10,-1,0,7200,3,-1,0,7200,3600 Subject: [UnixOS2_Archive] No. 557 ************************************************** Sunday 29 May 2005 Number 557 ************************************************** Subjects for today 1 Symbol multiply defined error : Paul Smedley 2 Re: Symbol multiply defined error : Dave Yeo" 3 Re: Symbol multiply defined error : Paul Smedley 4 Re: Symbol multiply defined error : Illya Vaes 5 Re: Symbol multiply defined error : Paul Smedley **= Email 1 ==========================** Date: Sun, 29 May 2005 16:46:30 +0930 From: Paul Smedley Subject: Symbol multiply defined error Hi All, I'm trying to add ac3 support to ffmpeg, and have hit a snag whilst using the omf format, namely, that I get an error as follows: emxomfar: Symbol multiply defined: bitstream! I can see why this happens as with ac3 enabled, there are two different bitstream.c files present, hence 2 x bitstream.o and the error. I've just been mucking around with using a.out instead of omf format, as I believe that a.out isn't as strict when it comes to multiple symbols, and the libraries build, but when it comes to linking the .exe, I get the following: gcc -Zstack 16384 -s -g -o ffmpeg_g.exe ffmpeg.o cmdutils.o -L./libavformat -la vformat -L./libavcodec -lavcodec -lz gcc: Internal error: Killed (program ld.exe) Please submit a full bug report. See for instructions. make: *** [ffmpeg_g.exe] Error 1 Any suggestions? Cheers, Paul. **= Email 2 ==========================** Date: Sun, 29 May 2005 00:50:24 -0800 From: "Dave Yeo" Subject: Re: Symbol multiply defined error On Sun, 29 May 2005 16:46:30 +0930, Paul Smedley wrote: >Hi All, >I'm trying to add ac3 support to ffmpeg, and have hit a snag whilst >using the omf format, namely, that I get an error as follows: >emxomfar: Symbol multiply defined: bitstream! > >I can see why this happens as with ac3 enabled, there are two different >bitstream.c files present, hence 2 x bitstream.o and the error. > >I've just been mucking around with using a.out instead of omf format, as >I believe that a.out isn't as strict when it comes to multiple symbols, >and the libraries build, but when it comes to linking the .exe, I get >the following: >gcc -Zstack 16384 -s -g -o ffmpeg_g.exe ffmpeg.o cmdutils.o >-L./libavformat -la >vformat -L./libavcodec -lavcodec -lz >gcc: Internal error: Killed (program ld.exe) >Please submit a full bug report. >See for instructions. >make: *** [ffmpeg_g.exe] Error 1 > >Any suggestions? Why use both -s and -g in the linking? Try removing the -g, its useless for a.out builds with anything newer then GCC 2.8.1. You could also try a different version of GCC. What about renaming one of the bitstream.c files including in makefile.in? Dave **= Email 3 ==========================** Date: Sun, 29 May 2005 17:47:13 +0930 From: Paul Smedley Subject: Re: Symbol multiply defined error Hi Dave, Dave Yeo wrote: > On Sun, 29 May 2005 16:46:30 +0930, Paul Smedley wrote: > > >>Hi All, >>I'm trying to add ac3 support to ffmpeg, and have hit a snag whilst >>using the omf format, namely, that I get an error as follows: >>emxomfar: Symbol multiply defined: bitstream! >> >>I can see why this happens as with ac3 enabled, there are two different >>bitstream.c files present, hence 2 x bitstream.o and the error. >> >>I've just been mucking around with using a.out instead of omf format, as >>I believe that a.out isn't as strict when it comes to multiple symbols, >>and the libraries build, but when it comes to linking the .exe, I get >>the following: >>gcc -Zstack 16384 -s -g -o ffmpeg_g.exe ffmpeg.o cmdutils.o >>-L./libavformat -la >>vformat -L./libavcodec -lavcodec -lz >>gcc: Internal error: Killed (program ld.exe) >>Please submit a full bug report. >>See for instructions. >>make: *** [ffmpeg_g.exe] Error 1 >> >>Any suggestions? > > > Why use both -s and -g in the linking? Try removing the -g, its useless for a.out builds with anything newer then GCC 2.8.1. You could also try a different version of GCC. I'll admit it's because it's what was already in the ffmpeg code for os/2 :) Anyhow - removing the -s or -g makes no difference..... > What about renaming one of the bitstream.c files including in makefile.in? I can do that, however it means a bunch of maintenance everytime I update the cvs... hence trying to find another solution... that keeps ffmpeg building 'out of the box' Thanks for the thoughts though :) Cheers, Paul. **= Email 4 ==========================** Date: Sun, 29 May 2005 11:18:24 CET From: Illya Vaes Subject: Re: Symbol multiply defined error ** Reply to note from Paul Smedley Sun, 29 May 2005 17:47:13 +0930 >>>I can see why this happens as with ac3 enabled, there are two different >>>bitstream.c files present, hence 2 x bitstream.o and the error. >>What about renaming one of the bitstream.c files including in makefile.in? >I can do that, however it means a bunch of maintenance everytime I >update the cvs... hence trying to find another solution... that keeps >ffmpeg building 'out of the box' Can you compile both bitstream.c files to different output directories (eg. by defining 2 different $OUT or something) and then explicitly linking both (eg. ... $(OUT1)/bitstream.o $(OUT2)/bitstream.o) without said bunch of maintenance (and will it work) ? **= Email 5 ==========================** Date: Sun, 29 May 2005 19:10:00 +0930 From: Paul Smedley Subject: Re: Symbol multiply defined error Hi Illya, Illya Vaes wrote: > ** Reply to note from Paul Smedley Sun, 29 May 2005 17:47:13 +0930 > >>>>I can see why this happens as with ac3 enabled, there are two different >>>>bitstream.c files present, hence 2 x bitstream.o and the error. >>> >>>What about renaming one of the bitstream.c files including in makefile.in? >> >>I can do that, however it means a bunch of maintenance everytime I >>update the cvs... hence trying to find another solution... that keeps >>ffmpeg building 'out of the box' > > > Can you compile both bitstream.c files to different output directories (eg. > by defining 2 different $OUT or something) and then explicitly linking both > (eg. ... $(OUT1)/bitstream.o $(OUT2)/bitstream.o) without said bunch of > maintenance (and will it work) ? This is actually what happens - ie: emxomfar -p128 rc avcodec.lib bitstream.o utils.o mem.o allcodecs.o mpegvideo.o jrevdct.o jfdctfst.o jfdctint.o mpegaudio.o ac3enc.o mjpeg.o resample.o resample2.o dsputil.o motion_est.o imgconvert.o imgresample.o mpeg12.o mpegaudiodec.o pcm.o simple_idct.o ratecontrol.o adpcm.o eval.o error_resilience.o fft.o mdct.o raw.o golomb.o cabac.o dpcm.o adx.o rational.o faandct.o parser.o g726.o vp3dsp.o integer.o h264idct.o rangecoder.o pnm.o h263.o msmpeg4.o h263dec.o aasc.o alac.o asv1.o cinepak.o cljr.o cyuv.o dv.o 8bps.o ffv1.o flac.o flicvideo.o 4xm.o h261.o h264.o huffyuv.o idcinvideo.o indeo2.o indeo3.o interplayvideo.o lcl.o loco.o mace.o msrle.o msvideo1.o png.o qdrw.o qpeg.o qtrle.o ra144.o ra288.o roqvideo.o rpza.o rv10.o shorten.o smc.o snow.o sonic.o svq1.o truemotion1.o tscc.o ulti.o vc9.o vcr1.o vmdav.o vp3.o vqavideo.o wmadec.o wnv1.o ws-snd1.o xan.o xl.o a52dec.o liba52/bit_allocate.o liba52/bitstream.o liba52/downmix.o liba52/imdct.o liba52/parse.o liba52/crc.o liba52/resample.o i386/fdct_mmx.o i386/cputest.o i 386/dsputil_mmx.o i386/mpegvideo_mmx.o i386/idct_mmx.o i386/motion_est_mmx.o i386/simple_idct_mmx.o i386/fft_sse.o i386/vp3dsp_mmx.o i386/vp3dsp_sse2.o emxomfar: Symbol multiply defined: bitstream! Cheers, Paul.