[FFmpeg-devel] CONFIG_W64_DEMUXER and dead-code elimination

wm4 nfxjfg at googlemail.com
Sat Apr 23 13:21:07 CEST 2016

On Sat, 23 Apr 2016 01:16:31 +0200
Hendrik Leppkes <h.leppkes at gmail.com> wrote:

> On Sat, Apr 23, 2016 at 1:02 AM, Bruce Dawson
> <brucedawson-at-google.com at ffmpeg.org> wrote:
> > I've noticed that when CONFIG_W64_DEMUXER is defined to zero that ffmpeg
> > compiles in a reference to ff_w64_guid_data but doesn't not link w64.o
> > (which defines that symbol).
> >
> > This normally works because most optimizers discard the reference
> > to ff_w64_guid_data early enough to not cause a linker failure. However
> > this assumption means that /Od (debug, unoptimized) and /GL (Link Time Code
> > Generation - super optimized) builds with VC++ don't work.
> >  
> We require dead code elimination to be available in all build modes,
> therefor such build settings that do not have it are not supported.
> This is not the only place that uses this, and its a design decision
> to rely on it, therefor we won't be accepting patches to change that
> at this time, sorry.

Why not? Someone just volunteered to cleanup this non-sense, so why not
let them?

We may have been arguing that every compiler supports this level of
DCE, but experience has been clearly showing that this is not always the
case due to various reasons.

Of course, use of this "idiom" is extremely widespread in our codebase,
sometimes in very subtle ways.

More information about the ffmpeg-devel mailing list