[FFmpeg-devel] [PATCH] configure: fix Microsoft tools detection

Martin Storsjö martin at martin.st
Tue Jun 17 12:16:33 EEST 2025


On Mon, 16 Jun 2025, Kacper Michajlow wrote:

> On Mon, 16 Jun 2025 at 09:40, Martin Storsjö <martin at martin.st> wrote:
>>
>> On Sat, 14 Jun 2025, Kacper Michajlow wrote:
>>
>> > On Sat, 14 Jun 2025 at 03:03, Kacper Michajłow <kasper93 at gmail.com> wrote:
>> >>
>> >> LLVM tools print installation path upon execution. If one uses LLVM
>> >> tools bundled with Microsoft Visual Studio installation, they would be
>> >> incorrectly detected as Microsoft's ones.
>> >>
>> >> Microsoft tools can have localized names, so a more specific string
>> >> check is not feasible, but luckily we can test if "Microsoft" is at the
>> >> beginning of the line, as it is always the case.
>> >>
>> >> Signed-off-by: Kacper Michajłow <kasper93 at gmail.com>
>> >> ---
>> >>  configure | 6 +++---
>> >>  1 file changed, 3 insertions(+), 3 deletions(-)
>> >>
>> >> diff --git a/configure b/configure
>> >> index 534b443f7d..5b2a04ae6a 100755
>> >> --- a/configure
>> >> +++ b/configure
>> >> @@ -5124,9 +5124,9 @@ probe_cc(){
>> >>          _flags_filter=msvc_flags
>> >>          _ld_lib='lib%.a'
>> >>          _ld_path='-libpath:'
>> >> -    elif $_cc -nologo- 2>&1 | grep -q Microsoft || { $_cc -v 2>&1 | grep -q clang && $_cc -? > /dev/null 2>&1; }; then
>> >> +    elif $_cc -nologo- 2>&1 | grep -q ^Microsoft || { $_cc -v 2>&1 | grep -q clang && $_cc -? > /dev/null 2>&1; }; then
>> >>          _type=msvc
>> >> -        if $_cc -nologo- 2>&1 | grep -q Microsoft; then
>> >> +        if $_cc -nologo- 2>&1 | grep -q ^Microsoft; then
>> >>              _ident=$($_cc 2>&1 | head -n1 | tr -d '\r')
>> >>          else
>> >>              _ident=$($_cc --version 2>/dev/null | head -n1 | tr -d '\r')
>> >> @@ -5236,7 +5236,7 @@ if [ -z "$CC_DEPFLAGS" ] && [ "$dep_cc" != "$cc" ]; then
>> >>      DEPCCFLAGS=$_flags
>> >>  fi
>> >>
>> >> -if $ar 2>&1 | grep -q Microsoft; then
>> >> +if $ar 2>&1 | grep -q ^Microsoft; then
>> >>      arflags="-nologo"
>> >>      ar_o='-out:$@'
>> >>  elif $ar 2>&1 | grep -q "\[D\] "; then
>> >> --
>> >> 2.45.1
>> >>
>> >
>> > Should be v2 to the previous patch, but forgot to tag it as such.
>>
>> Hmm, not sure where that previous patch was - I don't see it recently at
>> least.
>
> Yep, it was a very old one. See
> https://patchwork.ffmpeg.org/project/ffmpeg/patch/20220122201321.8368-1-kasper93@gmail.com/
> The conclusion was that we cannot do it like that, because names are
> localized. Hence now the new patch, which should work nicely for all
> cases, even if a little bit of basic change.

Oh, I see! Thanks for the context.

Yeah, this one looks good in that aspect; tested it a little, and pushed 
now.

// Martin


More information about the ffmpeg-devel mailing list