Re: [FFmpeg-devel] [PATCH] configure: Set MSVC as_default later.

2021-01-16 Thread Martin Storsjö

On Sat, 16 Jan 2021, Reimar Döffinger wrote:





On 15 Jan 2021, at 23:25, Martin Storsjö  wrote:

On Fri, 15 Jan 2021, reimar.doeffin...@gmx.de wrote:


From: Reimar Döffinger 

It would get immediately overridden to $cc, which in case
of gas-preprocessor missing would result in it trying
to use cl.exe for asm files instead of erroring out.
This is because cl.exe does not fail but just print a warning
when it is given a file it does not know what to do with it...


As this setup seems to work fine in the setups I've tried, can you think of why 
it's overwritten with $cc in your cases?

With the line
   : ${as_default:=$cc}
it only sets as_default to $cc if $as_default is empty.


Actually after a few debug prints it’s clear what actually happens:
$arch is not set at that point unless specified on command-line.
Not sure if it’s reasonable to just check arch_default as fallback or such?


Yeah that sounds sensible - maybe just "case ${arch-${arch_default}}" 
would work?



You can't really do that here. Probe_cc only should set the existing set of 
_type/_ident/_ldflags/_cflags* etc variables, which are picked up by the caller 
of probe_cc. probe_cc is called separately for both host and target compilers, 
so if e.g. cross compiling, with MSVC as host compiler, with a different 
compiler for the target, this wouldn't do the right thing.


Then the armcc logic in there is broken I guess?


I would say so, yes - ideally that should be changed behave like the other 
vars like _cflags_* and picked up by caller, only for the target compiler 
case.


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

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

Re: [FFmpeg-devel] [PATCH] configure: Set MSVC as_default later.

2021-01-15 Thread Reimar Döffinger


> On 15 Jan 2021, at 23:25, Martin Storsjö  wrote:
> 
> On Fri, 15 Jan 2021, reimar.doeffin...@gmx.de wrote:
> 
>> From: Reimar Döffinger 
>> 
>> It would get immediately overridden to $cc, which in case
>> of gas-preprocessor missing would result in it trying
>> to use cl.exe for asm files instead of erroring out.
>> This is because cl.exe does not fail but just print a warning
>> when it is given a file it does not know what to do with it...
> 
> As this setup seems to work fine in the setups I've tried, can you think of 
> why it's overwritten with $cc in your cases?
> 
> With the line
>: ${as_default:=$cc}
> it only sets as_default to $cc if $as_default is empty.

Actually after a few debug prints it’s clear what actually happens:
$arch is not set at that point unless specified on command-line.
Not sure if it’s reasonable to just check arch_default as fallback or such?

> You can't really do that here. Probe_cc only should set the existing set of 
> _type/_ident/_ldflags/_cflags* etc variables, which are picked up by the 
> caller of probe_cc. probe_cc is called separately for both host and target 
> compilers, so if e.g. cross compiling, with MSVC as host compiler, with a 
> different compiler for the target, this wouldn't do the right thing.

Then the armcc logic in there is broken I guess?

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

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

Re: [FFmpeg-devel] [PATCH] configure: Set MSVC as_default later.

2021-01-15 Thread Martin Storsjö

On Fri, 15 Jan 2021, reimar.doeffin...@gmx.de wrote:


From: Reimar Döffinger 

It would get immediately overridden to $cc, which in case
of gas-preprocessor missing would result in it trying
to use cl.exe for asm files instead of erroring out.
This is because cl.exe does not fail but just print a warning
when it is given a file it does not know what to do with it...


As this setup seems to work fine in the setups I've tried, can you think 
of why it's overwritten with $cc in your cases?


With the line
: ${as_default:=$cc}
it only sets as_default to $cc if $as_default is empty.



---
configure | 16 
1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/configure b/configure
index 12b41cde1c..d3b665f6f9 100755
--- a/configure
+++ b/configure
@@ -4271,14 +4271,6 @@ case "$toolchain" in
ld_default="$source_path/compat/windows/mslink"
nm_default="dumpbin.exe -symbols"
ar_default="lib.exe"
-case "$arch" in
-aarch64|arm64)
-as_default="armasm64.exe"
-;;
-arm*)
-as_default="armasm.exe"
-;;
-esac
target_os_default="win32"
# Use a relative path for TMPDIR. This makes sure all the
# ffconf temp files are written with a relative path, avoiding
@@ -4720,6 +4712,14 @@ probe_cc(){
_ld_path='-libpath:'
elif $_cc -nologo- 2>&1 | grep -q Microsoft || { $_cc -v 2>&1 | grep -q clang && $_cc 
-? > /dev/null 2>&1; }; then
_type=msvc
+case "$arch" in
+aarch64|arm64)
+as_default="armasm64.exe"
+;;
+arm*)
+as_default="armasm.exe"
+;;
+esac
if $_cc -nologo- 2>&1 | grep -q Microsoft; then


You can't really do that here. Probe_cc only should set the existing set 
of _type/_ident/_ldflags/_cflags* etc variables, which are picked up by 
the caller of probe_cc. probe_cc is called separately for both host and 
target compilers, so if e.g. cross compiling, with MSVC as host compiler, 
with a different compiler for the target, this wouldn't do the right 
thing.


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

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

[FFmpeg-devel] [PATCH] configure: Set MSVC as_default later.

2021-01-15 Thread Reimar . Doeffinger
From: Reimar Döffinger 

It would get immediately overridden to $cc, which in case
of gas-preprocessor missing would result in it trying
to use cl.exe for asm files instead of erroring out.
This is because cl.exe does not fail but just print a warning
when it is given a file it does not know what to do with it...
---
 configure | 16 
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/configure b/configure
index 12b41cde1c..d3b665f6f9 100755
--- a/configure
+++ b/configure
@@ -4271,14 +4271,6 @@ case "$toolchain" in
 ld_default="$source_path/compat/windows/mslink"
 nm_default="dumpbin.exe -symbols"
 ar_default="lib.exe"
-case "$arch" in
-aarch64|arm64)
-as_default="armasm64.exe"
-;;
-arm*)
-as_default="armasm.exe"
-;;
-esac
 target_os_default="win32"
 # Use a relative path for TMPDIR. This makes sure all the
 # ffconf temp files are written with a relative path, avoiding
@@ -4720,6 +4712,14 @@ probe_cc(){
 _ld_path='-libpath:'
 elif $_cc -nologo- 2>&1 | grep -q Microsoft || { $_cc -v 2>&1 | grep -q 
clang && $_cc -? > /dev/null 2>&1; }; then
 _type=msvc
+case "$arch" in
+aarch64|arm64)
+as_default="armasm64.exe"
+;;
+arm*)
+as_default="armasm.exe"
+;;
+esac
 if $_cc -nologo- 2>&1 | grep -q Microsoft; then
 _ident=$($_cc 2>&1 | head -n1 | tr -d '\r')
 else
-- 
2.24.3 (Apple Git-128)

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

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