[FFmpeg-cvslog] configure: Make MSVC version grabbing more robust
Martin Storsjö
git at videolan.org
Thu Jun 19 23:34:17 EEST 2025
ffmpeg | branch: master | Martin Storsjö <martin at martin.st> | Fri Jun 13 16:59:53 2025 +0300| [45a30e03613a3c63d74a40f7ac86ce28dce14ff8] | committer: Martin Storsjö
configure: Make MSVC version grabbing more robust
When running plain "cl", to get the MSVC version, it prints the
version header on stderr, while the usage instructions are printed
on stdout. Usually, the version on stderr gets flushed first,
so "head -n1" gets the line it expects, but some times (in particular
when running MSVC wrapped in wine), it can get the usage line
first.
Redirect stdout to /dev/null, so we only grab the version among
the lines printed to stderr. This should make the version number
grabbing more robust.
At least all relevant versions of MSVC seem to print this specifically
to stderr, not stdout (so we don't risk to miss it); checked down
to MSVC 2010.
Signed-off-by: Martin Storsjö <martin at martin.st>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=45a30e03613a3c63d74a40f7ac86ce28dce14ff8
---
configure | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/configure b/configure
index e2e9fc26d8..708ecd9025 100755
--- a/configure
+++ b/configure
@@ -5130,7 +5130,10 @@ probe_cc(){
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
- _ident=$($_cc 2>&1 | head -n1 | tr -d '\r')
+ # The version number is printed on the first line on stderr, stdout
+ # gets the usage instructions. Only include stderr, to avoid
+ # potential ordering race conditions.
+ _ident=$($_cc 2>&1 >/dev/null | head -n1 | tr -d '\r')
else
_ident=$($_cc --version 2>/dev/null | head -n1 | tr -d '\r')
fi
More information about the ffmpeg-cvslog
mailing list