[Ffmpeg-devel] libavutil conflict with system headers on Darwin

Michael Niedermayer michaelni
Sun Dec 3 02:20:47 CET 2006


Hi

On Sat, Dec 02, 2006 at 09:03:20PM +0100, Diego Biurrun wrote:
> On Tue, Nov 28, 2006 at 05:58:11PM +0000, M?ns Rullg?rd wrote:
> > Diego Biurrun <diego at biurrun.de> writes:
> > 
> > > On Sat, Nov 25, 2006 at 05:42:58PM -0500, Alexander Strange wrote:
> > >> This no longer compiles:
> > >> #include <libavutil/common.h>
> > >> #include <math.h>
> > >> 
> > >> because of:
> > >> #ifndef always_inline
> > >> #if defined(__GNUC__) && (__GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ > 0)
> > >> #    define always_inline __attribute__((always_inline)) inline
> > >> #else
> > >> #    define always_inline inline
> > >> #endif
> > >> #endif
> > >> 
> > >> on common.h:55.
> > >> 
> > >> On Darwin, some headers use __attribute__((always_inline)) on their  
> > >> own, which the above macro then mangles.
> > >> (__GNUC__ is defined as 4 on all darwin/x86 systems and almost all  
> > >> ppc systems)
> > >
> > > Any ideas how to fix this (cleanly)?  Just add something like ifndef
> > > Darwin to the above declaration?
> > 
> > That's not what I call clean.  Renaming our version to
> > ff_always_inline or something would be better.
> 
> So is renaming always_inline to ff_always_inline acceptable?  If I don't
> hear objections I will implement this after the weekend.

does renaming the code in common.h and adding

#ifdef HAVE_AV_CONFIG_H
#   define always_inline ff_always_inline
#   define ABS FFABS
#   define MAX FFMAX
#endif

help?

yes, i do prefer

always_inline foobar(){
    int vector[4], i;
    for(i=0; i<4; i++)
        vector[i]= MAX(ABS(2-i), 1);
}

over

FF_always_inline foobar(){
    int FF_vector[4], i;
    for(i=0; i<4; i++)
        FF_vector[i]= FFMAX(FFABS(2-i), 1);
}

or is it rather

FF_always_inline foobar(){
    int FF_vector[4], FF_i;
    for(FF_i=0; FF_i<4; FF_i++)
        FF_vector[FF_i]= FFMAX(FFABS(2-FF_i), 1);
}

what we are moving toward?

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

In the past you could go to a library and read, borrow or copy any book
Today you'd get arrested for mere telling someone where the library is




More information about the ffmpeg-devel mailing list