[FFmpeg-devel] [PATCH] Coremake support - ffmpeg_nommx.patch (1/1) - ffmpeg-nommx.patch (1/1)
Diego Biurrun
diego
Tue May 22 20:18:11 CEST 2007
On Tue, May 22, 2007 at 12:48:51AM -0400, Ronald S. Bultje wrote:
>
> In article <20070521224139.GD2143 at biurrun.de>,
> Diego Biurrun <diego at biurrun.de> wrote:
> > On Mon, May 21, 2007 at 09:40:19AM -0400, Ronald S. Bultje wrote:
> > > In file included from dct-test.c:33:
> > > dsputil.h: In function 'copy_block2':
> > > dsputil.h:688: warning: implicit declaration of function 'ST16'
> > > dsputil.h:688: warning: implicit declaration of function 'LD16'
> > > dsputil.h: In function 'copy_block4':
> > > dsputil.h:699: warning: implicit declaration of function 'ST32'
> > > dsputil.h:699: warning: implicit declaration of function 'LD32'
> > > dct-test.c: In function 'idct248_ref':
> > > dct-test.c:333: warning: implicit declaration of function 'sqrt'
> > > dct-test.c:333: warning: incompatible implicit declaration of built-in
> > > function 'sqrt'
> > > dct-test.c:334: warning: implicit declaration of function 'cos'
> > > dct-test.c:334: warning: incompatible implicit declaration of built-in
> > > function 'cos'
> > > dct-test.c:334: error: 'M_PI' undeclared (first use in this function)
> > > dct-test.c:334: error: (Each undeclared identifier is reported only once
> > > dct-test.c:334: error: for each function it appears in.)
> > > dct-test.c:342: warning: incompatible implicit declaration of built-in
> > > function 'sqrt'
> > > dct-test.c:343: warning: incompatible implicit declaration of built-in
> > > function 'cos'
> > > dct-test.c:350: warning: incompatible implicit declaration of built-in
> > > function 'sqrt'
> > > dct-test.c:393: warning: implicit declaration of function 'rint'
> > > dct-test.c:393: warning: incompatible implicit declaration of built-in
> > > function 'rint'
> > >
> > > I can work around this by adding an include for math.h.
> >
> > What environment are you compiling on? It works fine here on x86,
> > Debian stable.
>
> This is OSX 10.4.9. I think Linux sort-of automatically includes most
> math.h functions with other standard headers, so Linux doesn't really
> need include math.h. I think it's proper to add the include for
> portability reasons.
It compiles fine for me on OS X 10.4.x (don't remember which x offhand)
on my PowerBook...
> > > In file included from fft-test.c:26:
> > > dsputil.h: In function 'copy_block2':
> > > dsputil.h:688: warning: implicit declaration of function 'ST16'
> > > dsputil.h:688: warning: implicit declaration of function 'LD16'
> > > dsputil.h: In function 'copy_block4':
> > > dsputil.h:699: warning: implicit declaration of function 'ST32'
> > > dsputil.h:699: warning: implicit declaration of function 'LD32'
> > > fft-test.c: In function 'frandom':
> > > fft-test.c:129: warning: implicit declaration of function 'random'
> > > fft-test.c: In function 'help':
> > > fft-test.c:161: warning: implicit declaration of function 'exit'
> > > fft-test.c:161: warning: incompatible implicit declaration of built-in
> > > function 'exit'
> > > fft-test.c: In function 'main':
> > > fft-test.c:198: warning: implicit declaration of function 'atoi'
> > > fft-test.c:249: warning: implicit declaration of function 'memcpy'
> > > fft-test.c:249: warning: incompatible implicit declaration of built-in
> > > function 'memcpy'
> > > fft-test.c:276: warning: incompatible implicit declaration of built-in
> > > function 'memcpy'
> > >
> > > I can work around this by adding includes for stdlib.h and string.h to
> > > fft-test.c.
> >
> > Here is what I get:
> >
> > gcc -Wl,--warn-common -Wl,--as-needed
> > -Wl,-rpath-link,"/usr/src/ffmpeg"/libavcodec
> > -Wl,-rpath-link,"/usr/src/ffmpeg"/libavformat
> > -Wl,-rpath-link,"/usr/src/ffmpeg"/libavutil -o fft-test fft-test.o
> > libavcodec.a mdct.o fft.o -L"/usr/src/ffmpeg"/libavutil -lavutil -lm -lz
> ^^^^^^^^^^^^ ^^^^^^ ^^^^^
> > mdct.o: In function `ff_mdct_calc':
> > /usr/src/ffmpeg/libavcodec/mdct.c:133: multiple definition of `ff_mdct_calc'
> > libavcodec.a(mdct.o):/usr/src/ffmpeg/libavcodec/mdct.c:133: first defined
> > here
> > mdct.o: In function `ff_mdct_end':
> > /usr/src/ffmpeg/libavcodec/mdct.c:173: multiple definition of `ff_mdct_end'
> > libavcodec.a(mdct.o):/usr/src/ffmpeg/libavcodec/mdct.c:173: first defined
> > here
> > mdct.o: In function `ff_mdct_init':
> > /usr/src/ffmpeg/libavcodec/mdct.c:32: multiple definition of `ff_mdct_init'
> > libavcodec.a(mdct.o):/usr/src/ffmpeg/libavcodec/mdct.c:32: first defined here
> > mdct.o: In function `ff_imdct_calc':
> > /usr/src/ffmpeg/libavcodec/mdct.c:81: multiple definition of `ff_imdct_calc'
> > libavcodec.a(mdct.o):/usr/src/ffmpeg/libavcodec/mdct.c:81: first defined here
> > fft.o: In function `ff_fft_calc_c':
> > /usr/src/ffmpeg/libavcodec/fft.c:162: multiple definition of `ff_fft_calc_c'
> > libavcodec.a(fft.o):/usr/src/ffmpeg/libavcodec/fft.c:162: first defined here
> > fft.o: In function `ff_fft_permute':
> > /usr/src/ffmpeg/libavcodec/fft.c:239: multiple definition of `ff_fft_permute'
> > libavcodec.a(fft.o):/usr/src/ffmpeg/libavcodec/fft.c:239: first defined here
> > fft.o: In function `ff_fft_end':
> > /usr/src/ffmpeg/libavcodec/fft.c:257: multiple definition of `ff_fft_end'
> > libavcodec.a(fft.o):/usr/src/ffmpeg/libavcodec/fft.c:257: first defined here
> > fft.o: In function `ff_fft_init':
> > /usr/src/ffmpeg/libavcodec/fft.c:34: multiple definition of `ff_fft_init'
> > libavcodec.a(fft.o):/usr/src/ffmpeg/libavcodec/fft.c:34: first defined here
> > collect2: ld returned 1 exit status
> > make: *** [fft-test] Error 1
>
> You're including fft.o/mdct.o twice, once manually and once through
> libavcodec.a.
Yes, thanks for pointing out the obvious, fixed.
> Oh, did I mention I don't use the ffmpeg build system?
> Maybe I should include patches to that in my next patch so that it
> actually builds for you guys, also. :-).
Haha, we still have more tests compiling than you ;-p
> > > --- ffmpeg.orig/libavcodec/dct-test.c 2007-03-22 01:00:46.000000000 -0400
> > > +++ ffmpeg/libavcodec/dct-test.c 2007-05-21 09:28:31.000000000 -0400
> > > @@ -39,8 +40,6 @@
> > > #define MAX(a, b) (((a) > (b)) ? (a) : (b))
> > > #endif
> > >
> > > -#undef printf
> >
> > Probably wrong.
> >
> > > --- ffmpeg.orig/libavcodec/motion_test.c 2007-03-22 01:00:50.000000000
> > > -0400
> > > +++ ffmpeg/libavcodec/motion_test.c 2007-05-21 09:06:35.000000000 -0400
> > > @@ -31,24 +31,24 @@
> > >
> > > -#undef printf
> >
> > dito
>
> If I remove HAVE_AV_CONFIG_H, the #undef printf becomes unneeded, it's
> solely there because we define HAVE_AV_CONFIG_H, which defines printf to
> please_use_av_log or so. Michael suggested to get rid of
> HAVE_AV_CONFIG_H, which makes the undef unneeded. I'll put this stuff in
> several smaller patches which are better-documented and hopefully
> prevent confusion, sorry for now...
Could the removal of HAVE_AV_CONFIG_H possibly be the reason for all
your compilation failures?
And yes, please send small, self-contained patches, they will likely all
get applied.
Diego
More information about the ffmpeg-devel
mailing list