[FFmpeg-devel] [PATCH] configure: fix clang-cl detection

Hendrik Leppkes h.leppkes at gmail.com
Wed Apr 18 12:08:33 EEST 2018


On Thu, Feb 1, 2018 at 11:52 AM, Alexander Bilyak
<bilyak.alexander at gmail.com> wrote:
> When using clang-cl it expects parameters passed in MSVC-style, so appropriate toolchain should be selected.
> As soon as both clang and clang-cl report themselfs as "clang" with -v option the only chance to detect
> clang-cl is passing -? option to both which is valid for clang-cl.exe and not for clang.exe.
> ---
>  configure | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/configure b/configure
> index fcfa7aa442..f8c55876e5 100755
> --- a/configure
> +++ b/configure
> @@ -4216,7 +4216,7 @@ probe_cc(){
>          _depflags='-MMD'
>          _cflags_speed='-O3'
>          _cflags_size='-Os'
> -    elif $_cc -v 2>&1 | grep -q clang; then
> +    elif $_cc -v 2>&1 | grep -q clang && ! $_cc -? > /dev/null 2>&1; then
>          _type=clang
>          _ident=$($_cc --version 2>/dev/null | head -n1)
>          _depflags='-MMD -MF $(@:.o=.d) -MT $@'
> @@ -4287,7 +4287,7 @@ probe_cc(){
>          _flags_filter=msvc_flags
>          _ld_lib='lib%.a'
>          _ld_path='-libpath:'
> -    elif $_cc -nologo- 2>&1 | grep -q Microsoft; then
> +    elif $_cc -nologo- 2>&1 | grep -q Microsoft || $_cc -v 2>&1 | grep -q clang && $_cc -? > /dev/null 2>&1; then
>          _type=msvc
>          _ident=$($_cc 2>&1 | head -n1)
>          _DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< 2>&1 | awk '\''/including/ { sub(/^.*file: */, ""); gsub(/\\/, "/"); if (!match($$0, / /)) print "$@:", $$0 }'\'' > $(@:.o=.d)'


This patch entirely broke building with MSVC on Windows. The reason
for that is that "cl.exe -?" outputs paginated help output that
requires user input to continue.
I'm going to revert this soon, unless a fix is submitted before that.

- Hendrik


More information about the ffmpeg-devel mailing list