[FFmpeg-cvslog] r24156 - trunk/configure

Måns Rullgård mans
Sat Jul 10 15:58:50 CEST 2010


Reimar D?ffinger <Reimar.Doeffinger at gmx.de> writes:

> On Sat, Jul 10, 2010 at 02:16:59PM +0100, M?ns Rullg?rd wrote:
>> Reimar D?ffinger <Reimar.Doeffinger at gmx.de> writes:
>> 
>> > On Sat, Jul 10, 2010 at 12:15:50PM +0100, M?ns Rullg?rd wrote:
>> >> Reimar D?ffinger <Reimar.Doeffinger at gmx.de> writes:
>> >> > WTF? This has not the slightest bit to do with this change.
>> >> 
>> >> The change replaced a check for x86_64 with a different check.
>> >
>> > Yes, and the x86_64 check was a pathetic way to detect MinGW64
>> 
>> Why is that pathetic?  I thought mingw64 was by definition mingw
>> running in 64-bit mode.
>
> No, MinGW64 is a (somewhat) separate project with the goal of building
> a (cross-)compilation environment that can produce 64 bit Windows
> binaries, but it can also produce 32 bit binaries.
> And just assuming 32 bit windows == mingw32, 64 bit windows ==
> mingw-w64 and then checking version numbers instead of features (and
> even that only for the headers, not the tiny C lib that comes with
> MinGW) is a bit "pathetic" compared to the quality of our other
> checks...

So mingw32 is always 32-bit and mingw-w64 can be either?

>> >> > The change is about avoiding an incorrect
>> >> > die "ERROR: MinGW runtime version must be >= 3.15."
>> >> > When compiling a 32 bit binary using mingw-w64 headers.
>> >> 
>> >> When compiling a 32-bit binary, "enabled x86_64" should never be
>> >> true.  The change only makes any sense at all if x86_64 is incorrectly
>> >> enabled at some point.
>> >
>> > No, the issue is that it is _correctly_ _disabled_
>> >
>> >> >> >> > -        if ! enabled x86_64; then
>> >> >> >> > +        if ! check_cpp_condition _mingw.h "defined (__MINGW64_VERSION_MAJOR)"; then
>> >
>> > If x86_64 was _correctly_ _disabled_ then the mingw_32_ version check would
>> > run even on mingw-w_64_, and fail.
>> 
>> OK, now I'm thoroughly confused.  Can you please explain to me 1) what
>> those version checks are really for,
>
> IIRC ffmpeg fails to compile/link on older MinGW32 versions because they
> lack some things. So in order to be nice to users, we tell them straight
> ahead this won't work.

Would it be possible to check for these features instead of version numbers?

>> 2) why they fail on mingw64, and
>
> MinW64 does not or not correctly set __MINGW32_MAJOR_VERSION etc.
> I'm not sure, but IIRC they made a bit of a mess by adding everything
> FFmpeg needs independently from MinGW32 but possibly not some other things
> so they can't really claim to be compatible to any newer MinGW32 versions.

So all mingw-w64 versions are OK?  Still, checking features instead of
versions would still do the right thing, no?

>> 3) how the VFW version check relates to all this.
>
> AFAIK the w32api is a somewhat independent part of MinGW headers, and
> we need a new enough version for the multimedia stuff.
> However I doubt the MinGW64 headers will work for our avisynth and
> vfw capture support...

Then checking those headers only if !mingw-w64 seems wrong.  Once
again, what are the precise features we need?  Is there some reason we
can't check for those instead of looking at version numbers?

-- 
M?ns Rullg?rd
mans at mansr.com



More information about the ffmpeg-cvslog mailing list