* [FFmpeg-devel] [PATCH] configure: treat unrecognized flags as errors on MSVC
@ 2025-07-20 13:47 Kacper Michajłow
0 siblings, 0 replies; only message in thread
From: Kacper Michajłow @ 2025-07-20 13:47 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Kacper Michajłow
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".
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2025-07-20 13:48 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-07-20 13:47 [FFmpeg-devel] [PATCH] configure: treat unrecognized flags as errors on MSVC Kacper Michajłow
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