Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: "Kacper Michajłow" <kasper93@gmail.com>
To: ffmpeg-devel@ffmpeg.org
Cc: "Kacper Michajłow" <kasper93@gmail.com>
Subject: [FFmpeg-devel] [PATCH] configure: treat unrecognized flags as errors on MSVC
Date: Sun, 20 Jul 2025 15:47:52 +0200
Message-ID: <20250720134752.352772-1-kasper93@gmail.com> (raw)

This is important for feature checking to work correctly.

It can happen that a unrecognized flag is passing compile test with a
warning only, while failing in preprocessor only mode with an error.
This makes all test_cpp calls fail and silently produces arguably broken
MSVC builds. Also all check_* doesn't work as expected, because they
think check passed, while there was an warning.

Additionally this make it in-line with GCC/Clang based builds. To test
for unrecognized and bail out early, instead of silently doing whole
build only producing warnings in log.

The /options:strict option is available starting in Visual Studio 2022
version 17.0. Because of that we cannot use check_cflags alone, it would
just also add this flag for older MSVC and produce warnings. So we need
to manually version check. Kind of chicken and egg problem.

Do the check before adding extra flags from the user, to ensure that we
don't fail silently preprocessor check, with invalid flags on older
MSVC. Note that it behaves differently depending if we are compiling or
preprocessing only.

Use check_cflags even after version check, for non-MSVC compilers that
might impersonate MSVC, but not have support for this flag. Clang-CL
sets _MSC_FULL_VER as one example.

Signed-off-by: Kacper Michajłow <kasper93@gmail.com>
---
 configure | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/configure b/configure
index ed6430ea32..20276a3c4f 100755
--- a/configure
+++ b/configure
@@ -5276,6 +5276,12 @@ else
     ar_o='$@'
 fi
 
+# Treat unrecognized flags as errors on MSVC
+test_cpp_condition windows.h "_MSC_FULL_VER >= 193030705" &&
+    check_cflags -options:strict
+test_host_cpp_condition windows.h "_MSC_FULL_VER >= 193030705" &&
+    check_host_cflags -options:strict
+
 add_cflags $extra_cflags
 add_cxxflags $extra_cxxflags
 add_objcflags $extra_objcflags
-- 
2.50.1

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

                 reply	other threads:[~2025-07-20 13:48 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250720134752.352772-1-kasper93@gmail.com \
    --to=kasper93@gmail.com \
    --cc=ffmpeg-devel@ffmpeg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git