[FFmpeg-devel] [PATCH] configure: Set MSVC as_default later.

Martin Storsjö martin at martin.st
Sat Jan 16 22:20:09 EET 2021


On Sat, 16 Jan 2021, Reimar Döffinger wrote:

>
>
>> On 15 Jan 2021, at 23:25, Martin Storsjö <martin at martin.st> wrote:
>> 
>> On Fri, 15 Jan 2021, Reimar.Doeffinger at gmx.de wrote:
>> 
>>> From: Reimar Döffinger <Reimar.Doeffinger at gmx.de>
>>> 
>>> It would get immediately overridden to $cc, which in case
>>> of gas-preprocessor missing would result in it trying
>>> to use cl.exe for asm files instead of erroring out.
>>> This is because cl.exe does not fail but just print a warning
>>> when it is given a file it does not know what to do with it...
>> 
>> As this setup seems to work fine in the setups I've tried, can you think of why it's overwritten with $cc in your cases?
>> 
>> With the line
>>    : ${as_default:=$cc}
>> it only sets as_default to $cc if $as_default is empty.
>
> Actually after a few debug prints it’s clear what actually happens:
> $arch is not set at that point unless specified on command-line.
> Not sure if it’s reasonable to just check arch_default as fallback or such?

Yeah that sounds sensible - maybe just "case ${arch-${arch_default}}" 
would work?

>> You can't really do that here. Probe_cc only should set the existing set of _type/_ident/_ldflags/_cflags* etc variables, which are picked up by the caller of probe_cc. probe_cc is called separately for both host and target compilers, so if e.g. cross compiling, with MSVC as host compiler, with a different compiler for the target, this wouldn't do the right thing.
>
> Then the armcc logic in there is broken I guess?

I would say so, yes - ideally that should be changed behave like the other 
vars like _cflags_* and picked up by caller, only for the target compiler 
case.

// Martin


More information about the ffmpeg-devel mailing list