Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
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 19:18:03 +0200
Message-ID: <mailman.3935.1750526291.1384.ffmpeg-devel@ffmpeg.org> (raw)
In-Reply-To: <87E28D26-5CF3-4230-9B3A-C13055D379DA@martin.st>

[-- Attachment #1: Type: message/rfc822, Size: 10747 bytes --]

[-- Attachment #1.1.1: Type: text/plain, Size: 2711 bytes --]

Hi Martin!

On 2025-06-21 13:37 +0300, Martin Storsjö wrote:
> > On 21. Jun 2025, at 12.20, Alexander Strasser via ffmpeg-devel <ffmpeg-devel@ffmpeg.org> wrote:
> > 
> > 
> > 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:
> >>>> 
> >>>> 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
> > <0001-configure-Fix-a-regression-when-probing-link.exe.patch>
> 
> Thanks, this patch looks good to me, feel free to push! (And I can push it later today if nobody else does it before that.)
> 
> If you want to, one can also extend the commit message further to say more explicitly, that 45a30e03613a3c63d74a40f7ac86ce28dce14ff8 caused configure to hang in some configurations, which this fixes.

I have attached an updated version. Hope you like the commit message
better.

I can push it tomorrow or you can do earlier.


Thanks,
  Alexander

[-- Attachment #1.1.2: 0001-v2-configure-Fix-a-regression-when-probing-link.exe.patch --]
[-- Type: text/plain, Size: 1647 bytes --]

From d71f2bd07a9a723158fb1ec59ec7398fe7aee577 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.

This caused configure to hang for some configurations and by
extension some FATE clients. You might want to check if you run
affected configurations automated in FATE clients or similar setups.

Fixes: 45a30e03613a3c63d74a40f7ac86ce28dce14ff8
---
 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
-- 


[-- 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".

  reply	other threads:[~2025-06-21 17:18 UTC|newest]

Thread overview: 13+ 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
2025-06-21 10:37           ` Martin Storsjö
2025-06-21 17:18             ` Alexander Strasser via ffmpeg-devel [this message]
2025-06-21 18:45               ` Kacper Michajlow
2025-06-21 19:49                 ` Martin Storsjö
2025-06-21 10:34         ` Martin Storsjö
2025-06-21 11:55           ` Kacper Michajlow
2025-06-21 16:04             ` Martin Storsjö

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.3935.1750526291.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