[FFmpeg-devel] [PATCH][RFC] -std=c99

Diego Biurrun diego
Thu Aug 21 00:00:00 CEST 2008


On Wed, Aug 13, 2008 at 01:44:47AM +0200, Aurelien Jacobs wrote:
> Michael Niedermayer wrote:
> 
> > On Tue, Aug 12, 2008 at 11:20:06PM +0100, M?ns Rullg?rd wrote:
> > > Michael Niedermayer <michaelni at gmx.at> writes:
> > > >
> > > > done, the following works for me too
> > > >
> > > > lower values of _XOPEN_SOURCE fail with:
> > > > ffserver.c:4474: error: ?SA_RESTART? undeclared (first use in this function)
> > > >
> > > > --- configure	(revision 14508)
> > > > +++ configure	(working copy)
> > > > @@ -1827,6 +1827,7 @@
> > > >  enabled extra_warnings && check_cflags -Winline
> > > > +check_cflags -std=c99 -fasm -D_POSIX_C_SOURCE=199309 -D_XOPEN_SOURCE=500
> > > 
> > > I'd just go with -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600.
> > 
> > why?
> > Is there anything that has been added to them that we need?
> > The whole point of my patch is to keep the set of dependancies for ffmpeg
> > small.
> 
> I agree.
> 
> And in this spirit, have a look at attached patch. It restrict definition
> of _XOPEN_SOURCE to ffserver.c. It also define 3 mathematics constants
> which are not worth defining _XOPEN_SOURCE IMO.
> With this applied, you can simply drop -D_XOPEN_SOURCE=500 from your patch.

Hmmm, I'm not sure we can do without a global _XOPEN_SOURCE.

It is needed for random(), which is used in many of our internal test
programs.  Just run 'make tests' and watch a multitude of implicit
declaration warnings related to random() scroll by...

The following files define _XOPEN_SOURCE themselves:

ffmpeg.c
ffserver.c
libavcodec/utils.c
libavformat/rtpdec.c

The following files use random() in some place or another:

libavcodec/fft-test.c
libavcodec/rangecoder.c
libavcodec/ac3enc.c
libavcodec/snow.c
libavcodec/cabac.c
libavcodec/h264.c
libavcodec/dct-test.c
libavcodec/motion-test.c
libavutil/pca.c
libavutil/aes.c
libavutil/tree.c
libswscale/swscale-example.c
tools/trasher.c

This makes it 4 + 13 = 17 files.  Adding _XOPEN_SOURCE everywhere will
start to get cumbersome.  I think it's preferable to add it to the
global command line.  Thoughts?

Diego




More information about the ffmpeg-devel mailing list