[FFmpeg-devel] [PATCH] fix(configure): fix detection on windows arm64

Martin Storsjö martin at martin.st
Tue May 13 22:30:57 EEST 2025


On Mon, 12 May 2025, Coia Prant wrote:

> On Windows Arm64
> `uname -m` returned `x86_64` instead of `aarch64`
> Link: https://github.com/msys2/msys2-runtime/issues/171
>
> But `uname -s` contains `ARM64` suffix
> So check suffix on windows arm64 (for clangarm64)
>
> This problem also in VideoLAN/x264
> Link: https://code.videolan.org/videolan/x264/-/merge_requests/177
>
> Signed-off-by: Coia Prant <coiaprant at gmail.com>
> ---
> configure | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/configure b/configure
> index 2e69b3c..d8c1e09 100755
> --- a/configure
> +++ b/configure
> @@ -4157,6 +4157,8 @@ if test "$target_os_default" = aix; then
>     arch_default=$(uname -p)
>     strip_default="strip -X32_64"
>     nm_default="nm -g -X32_64"
> +elif [[ "$target_os_default" == "mingw"*"arm64" ]] || [[ "$target_os_default" == "msys"*"arm64" ]]; then
> +    arch_default="aarch64"
> else

I don't think we should be detecting this for the msys*arm64 cases here. 
If we're in the msys environment, as opposed to the mingw ones, then the 
x86_64 that "uname -m" returns really is correct (even if running emulated 
on aarch64, the msys environment itself is x86_64, so that's the target 
architecture of the compilation).

For the mingw*arm64 case, I haven't thought about all the potential 
consequences of the patch; it may be acceptable. But the script is a 
strict POSIX sh script, it can't use bash constructs (which is what 
Michael observed in testing the patch).

// Martin



More information about the ffmpeg-devel mailing list