[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