[FFmpeg-devel] Moving if(constant expression) to preprocessor?

Axel Holzinger aholzinger
Sun Sep 19 18:14:22 CEST 2010


Hi Bobby,
Bobby Bingham wrote:
> On Sat, 18 Sep 2010 18:00:40 +0200
> "Axel Holzinger" <aholzinger at gmx.de> wrote:
> 
> > Hi M?ns and all,
> > 
> > M?ns Rullg?rd wrote:
> > > "Axel Holzinger" <aholzinger at gmx.de> writes:
> > > 
> > > > Hi all,
> > > >
> > > > if compiling FFmpeg code with zero optimisations (even without
> > dead
> > > > code elimination) there are linker errors (undefined 
> references to
> > 
> > > > functions or structs) that come from constructs like i.e. the 
> > > > following in libavcodec/allcodecs.c:
> > > >
> > > > if(CONFIG_##X##_HWACCEL) av_register_hwaccel(&x##_hwaccel); }
> > > >
> > > > The runtime (lower case) "if" leads to an undefined
> > > reference, because
> > > > it is evaluated at runtime and not at compile time.
> > > >
> > > > If dead code eliminitation optimisation is on, this isn't an
> > issue,
> > > > but with optimisations completely off it is.
> > > 
> > > Don't do that then.
> > 
> > Hehe, if we all would be so shy, we would still live in caves, 
> > wouldn't we :-)
> > 
> 
> Why do you want to compile without dead code elimination?

I don't want to compile without dead code elimination.

I want to compile witout optimisation.

Why shouldn't I?

The solution I have presented is adding a couple of macros, nothing
else. No code, just macros, with the benefit of being able to
conditionally include/exclude code. A very nice and handy feature,
useful for all kinds of things. As you can see in the post before,
even valid to beu used inside macros.

> I don't see what the benefit is.

Just one example, debugging unoptimised code.

What is the benefit of optimisation in a debug build?

> And without a compelling reason, I don't think it's worth

Do you restrict yourself without a compelling reason?

> obfuscating the code.

The codes is NOT obfuscated. Where do you get this impression from.
Using a const expression in a runtime if is obfuscation and besides
it's plain bad style.

Relying on dead code elimination for making a build succeed is a hack.
a hack.

Axel




More information about the ffmpeg-devel mailing list