From: Alexander Strasser via ffmpeg-devel <ffmpeg-devel@ffmpeg.org> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Cc: Alexander Strasser <eclipse7@gmx.net> Subject: Re: [FFmpeg-devel] [PATCH] configure: Make MSVC version grabbing more robust Date: Sat, 21 Jun 2025 11:20:03 +0200 Message-ID: <mailman.3930.1750497611.1384.ffmpeg-devel@ffmpeg.org> (raw) In-Reply-To: <CABPLASR1vrzsvcevCof1tu_nRm-HPkX6QZ4YZFHX3-+ktDSKVw@mail.gmail.com> [-- Attachment #1: Type: message/rfc822, Size: 10727 bytes --] [-- Attachment #1.1.1: Type: text/plain, Size: 3053 bytes --] On 2025-06-21 00:03 +0200, Kacper Michajlow wrote: > On Fri, 20 Jun 2025 at 22:26, Hendrik Leppkes > <h.leppkes-at-gmail.com@ffmpeg.org> wrote: > > > > On Fri, Jun 20, 2025 at 9:25 PM Timo Rothenpieler <timo@rothenpieler.org> wrote: > > > > > > On 19.06.2025 22:21, Martin Storsjö wrote: > > > > On Fri, 13 Jun 2025, Martin Storsjö wrote: > > > > > > > >> 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. > > > >> --- > > > >> This should avoid the occasionally misdetected version number lines > > > >> as seen at https://fate.ffmpeg.org/history.cgi?slot=x86_64-msvc2022-wine. > > > >> --- > > > >> configure | 5 ++++- > > > >> 1 file changed, 4 insertions(+), 1 deletion(-) > > > > > > > > Will push. > > > > > > Likely this patch broke multiple fate runners in a silent way. > > > On mine, configure simply never returns, and just sits there > > > indefinitely, with no CPU usage or any activity whatsoever. > > > > > > nevcairiel confirmed seeing the same behaviour on IRC. > > > > > > The msys+clang builds from within the same environment work fine. > > > > > > > > > Didn't verify completely if it's caused by this patch, but nothing else > > > happened with configure since the last successful run. > > > > I did some digging, and it happens when probe_cc probes link.exe > > > > link.exe has an interactive help output (its paginated) - previously > > piping stdout disabled the pagination automatically - but redirecting > > it to devnull does not, and it gets stuck waiting for input. > > Additionally, link.exe outputs the ident on stdout, so there is no > > result on stderr (not super bad, as LD_IDENT is never used - yet) > > Instead of redirecting to devnull, we could use the same condition as > in if. We already look for specific ident line, so no need to head. > _ident=$($_cc -nologo- 2>&1 | grep ^Microsoft | tr -d '\r') > should work, no? I would be happy to see a better solution, though. I think making sure to only use the first line that starts with Microsoft is more robust; there could be (in the future) more lines that start with Microsoft. > btw. running cl.exe 3 times to just get its name is interesting :) Yes, so that as well. Could be optimized, but is probably not so relevant in total. I propose the attached patch. Alexander [-- Attachment #1.1.2: 0001-configure-Fix-a-regression-when-probing-link.exe.patch --] [-- Type: text/plain, Size: 1405 bytes --] From f97df3657ab73573659d7738ac55d688c5744bf9 Mon Sep 17 00:00:00 2001 From: Alexander Strasser <eclipse7@gmx.net> Date: Sat, 21 Jun 2025 11:13:22 +0200 Subject: [PATCH] configure: Fix a regression when probing link.exe The version ident is printed on stdout for link.exe and redirecting stdout to /dev/null will cause the output of link.exe to be paged. --- configure | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/configure b/configure index 708ecd9025..ce027d3845 100755 --- a/configure +++ b/configure @@ -5130,10 +5130,9 @@ 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 - # 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') + # Depending on the tool (cl.exe or link.exe), the version number + # is printed on the first line of stderr or stdout + _ident=$($_cc 2>&1 | grep ^Microsoft | head -n1 | tr -d '\r') else _ident=$($_cc --version 2>/dev/null | head -n1 | tr -d '\r') fi -- 2.49.0 [-- Attachment #2: Type: text/plain, Size: 251 bytes --] _______________________________________________ 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".
next prev parent reply other threads:[~2025-06-21 9:20 UTC|newest] Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top 2025-06-13 14:05 Martin Storsjö 2025-06-19 20:21 ` Martin Storsjö 2025-06-20 19:25 ` Timo Rothenpieler 2025-06-20 20:26 ` Hendrik Leppkes 2025-06-20 22:03 ` Kacper Michajlow 2025-06-21 9:20 ` Alexander Strasser via ffmpeg-devel [this message] 2025-06-21 10:37 ` Martin Storsjö 2025-06-21 10:34 ` Martin Storsjö 2025-06-21 11:55 ` Kacper Michajlow
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=mailman.3930.1750497611.1384.ffmpeg-devel@ffmpeg.org \ --to=ffmpeg-devel@ffmpeg.org \ --cc=eclipse7@gmx.net \ /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