PR #24262 opened by Martin Storsjö (mstorsjo)
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/24262
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/24262.patch

Commit 74705b3970cbc277e9366d82ee32d7c3a0a9e3b3 changed to only
compile some of the checkasm source files when they are expected
to be non-empty, but the condition for when perf/macos_kperf.c
is needed is wrong, breaking building checkasm in default macos
aarch64 configurations.

Checkasm decides whether to enable the macos kperf codepaths on
its own, irrespective of ffmpeg's configure's --enable-macos-kperf
(which defaults to disabled) - see the end of checkasm's
src/perf_internal.h for the condition.

To remedy this, replicate the condition for when the file will be
needed in ffmpeg's configure and emit a define to ffbuild/config.mak
about it, to allow controlling the conditional compilation of the
file.



From c2018ddaf170afc0a2542881deca74605d0ced26 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <[email protected]>
Date: Tue, 25 Aug 2026 10:01:31 +0200
Subject: [PATCH] checkasm: Fix building for macos/aarch64

Commit 74705b3970cbc277e9366d82ee32d7c3a0a9e3b3 changed to only
compile some of the checkasm source files when they are expected
to be non-empty, but the condition for when perf/macos_kperf.c
is needed is wrong, breaking building checkasm in default macos
aarch64 configurations.

Checkasm decides whether to enable the macos kperf codepaths on
its own, irrespective of ffmpeg's configure's --enable-macos-kperf
(which defaults to disabled) - see the end of checkasm's
src/perf_internal.h for the condition.

To remedy this, replicate the condition for when the file will be
needed in ffmpeg's configure and emit a define to ffbuild/config.mak
about it, to allow controlling the conditional compilation of the
file.
---
 configure               | 15 +++++++++++++++
 tests/checkasm/Makefile |  2 +-
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/configure b/configure
index 21128a80a0..6de8e1ab04 100755
--- a/configure
+++ b/configure
@@ -8812,6 +8812,21 @@ print_config HAVE_   "$config_files" $HAVE_LIST
 print_config CONFIG_ "$config_files" $CONFIG_LIST       \
                                      $CONFIG_EXTRA      \
 
+if enabled checkasm; then
+    # checkasm enables macos kperf on its own, irrespective of
+    # --enable-macos-kperf in ffmpeg's configure (which only affects use of
+    # macos kperf for the libavutil/timer.h macros now, and which defaults to
+    # disabled). In order to decide whether to compile the source file,
+    # replicate the condition here.
+    if enabled aarch64 and test_cpp_condition stddef.h \
+        "defined __APPLE__"; then
+        enable checkasm_macos_kperf
+    else
+        disable checkasm_macos_kperf
+    fi
+    print_config HAVE_ "ffbuild/config.mak" checkasm_macos_kperf
+fi
+
 echo "#endif /* FFMPEG_CONFIG_H */" >> $TMPH
 
 # Do not overwrite an unchanged config.h to avoid superfluous rebuilds.
diff --git a/tests/checkasm/Makefile b/tests/checkasm/Makefile
index 66e45d8830..90b5811d4f 100644
--- a/tests/checkasm/Makefile
+++ b/tests/checkasm/Makefile
@@ -115,7 +115,7 @@ EXT_CHECKASMOBJS-$(ARCH_ARM)                += 
ext/src/arm/checkasm_32.o \
                                                ext/src/arm/cpu.o 
ext/src/perf/arm.o
 EXT_CHECKASMOBJS-$(ARCH_LOONGARCH)          += ext/src/loongarch/checkasm.o
 EXT_CHECKASMOBJS-$(CONFIG_LINUX_PERF)       += ext/src/perf/linux.o
-EXT_CHECKASMOBJS-$(CONFIG_MACOS_KPERF)      += ext/src/perf/macos_kperf.o
+EXT_CHECKASMOBJS-$(HAVE_CHECKASM_MACOS_KPERF)+=ext/src/perf/macos_kperf.o
 EXT_CHECKASMOBJS-$(HAVE_RV)                 += ext/src/riscv/callcheck.o
 EXT_CHECKASMOBJS-$(ARCH_RISCV)              += ext/src/riscv/cpu.o
 EXT_CHECKASMOBJS-$(HAVE_X86ASM)             += ext/src/x86/checkasm.o
-- 
2.52.0

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to