From: Savannah Bailey Date: Mon, 22 Sep 2025 12:21:57 +0000 (+0100) Subject: GH-137218: Fix Makefile to handle FreeBSD (fix for JIT stencil changes) (GH-139170) X-Git-Tag: v3.15.0a1~237 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=72d5ee051145c5aaf3cc6b8e807a3a2b8930ae63;p=thirdparty%2FPython%2Fcpython.git GH-137218: Fix Makefile to handle FreeBSD (fix for JIT stencil changes) (GH-139170) --- diff --git a/Makefile.pre.in b/Makefile.pre.in index da036b198d11..eedccc3ffe6a 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -3127,27 +3127,11 @@ JIT_DEPS = \ $(srcdir)/Tools/jit/*.py \ $(srcdir)/Python/executor_cases.c.h \ pyconfig.h - -ifneq ($(filter aarch64-apple-darwin%,$(HOST_GNU_TYPE)),) -JIT_STENCIL_HEADER := jit_stencils-aarch64-apple-darwin.h -else ifneq ($(filter x86_64-apple-darwin%,$(HOST_GNU_TYPE)),) -JIT_STENCIL_HEADER := jit_stencils-x86_64-apple-darwin.h -else ifeq ($(HOST_GNU_TYPE), aarch64-pc-windows-msvc) -JIT_STENCIL_HEADER := jit_stencils-aarch64-pc-windows-msvc.h -else ifeq ($(HOST_GNU_TYPE), i686-pc-windows-msvc) -JIT_STENCIL_HEADER := jit_stencils-i686-pc-windows-msvc.h -else ifeq ($(HOST_GNU_TYPE), x86_64-pc-windows-msvc) -JIT_STENCIL_HEADER := jit_stencils-x86_64-pc-windows-msvc.h -else ifneq ($(filter aarch64-%-linux-gnu,$(HOST_GNU_TYPE)),) -JIT_STENCIL_HEADER := jit_stencils-$(HOST_GNU_TYPE).h -else ifneq ($(filter x86_64-%-linux-gnu,$(HOST_GNU_TYPE)),) -JIT_STENCIL_HEADER := jit_stencils-$(HOST_GNU_TYPE).h -endif - -jit_stencils.h $(JIT_STENCIL_HEADER): $(JIT_DEPS) + +jit_stencils.h @JIT_STENCILS_H@: $(JIT_DEPS) @REGEN_JIT_COMMAND@ -Python/jit.o: $(srcdir)/Python/jit.c jit_stencils.h $(JIT_STENCIL_HEADER) +Python/jit.o: $(srcdir)/Python/jit.c jit_stencils.h @JIT_STENCILS_H@ $(CC) -c $(PY_CORE_CFLAGS) -o $@ $< .PHONY: regen-jit diff --git a/configure b/configure index 733bb00cdb02..cd8f2f19c0b9 100755 --- a/configure +++ b/configure @@ -904,6 +904,7 @@ LDSHARED SHLIB_SUFFIX DSYMUTIL_PATH DSYMUTIL +JIT_STENCILS_H REGEN_JIT_COMMAND UNIVERSAL_ARCH_FLAGS WASM_STDLIB @@ -10875,6 +10876,7 @@ then : else case e in #( e) as_fn_append CFLAGS_NODIST " $jit_flags" REGEN_JIT_COMMAND="\$(PYTHON_FOR_REGEN) \$(srcdir)/Tools/jit/build.py ${ARCH_TRIPLES:-$host} --output-dir . --pyconfig-dir . --cflags=\"$CFLAGS_JIT\"" + JIT_STENCILS_H="jit_stencils.h" if test "x$Py_DEBUG" = xtrue then : as_fn_append REGEN_JIT_COMMAND " --debug" @@ -10882,6 +10884,7 @@ fi ;; esac fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tier2_flags $jit_flags" >&5 printf "%s\n" "$tier2_flags $jit_flags" >&6; } @@ -34190,6 +34193,34 @@ fi printf "%s\n" "$py_cv_module_xxlimited_35" >&6; } +# Determine JIT stencils header files based on target platform +JIT_STENCILS_H="" +case "$host" in + aarch64-apple-darwin*) + JIT_STENCILS_H="jit_stencils-aarch64-apple-darwin.h" + ;; + x86_64-apple-darwin*) + JIT_STENCILS_H="jit_stencils-x86_64-apple-darwin.h" + ;; + aarch64-pc-windows-msvc) + JIT_STENCILS_H="jit_stencils-aarch64-pc-windows-msvc.h" + ;; + i686-pc-windows-msvc) + JIT_STENCILS_H="jit_stencils-i686-pc-windows-msvc.h" + ;; + x86_64-pc-windows-msvc) + JIT_STENCILS_H="jit_stencils-x86_64-pc-windows-msvc.h" + ;; + aarch64-*-linux-gnu) + JIT_STENCILS_H="jit_stencils-$host.h" + ;; + x86_64-*-linux-gnu) + JIT_STENCILS_H="jit_stencils-$host.h" + ;; +esac + + + # substitute multiline block, must come after last PY_STDLIB_MOD() diff --git a/configure.ac b/configure.ac index 72808127f86e..8312dc550843 100644 --- a/configure.ac +++ b/configure.ac @@ -2787,11 +2787,13 @@ AS_VAR_IF([jit_flags], [AS_VAR_APPEND([CFLAGS_NODIST], [" $jit_flags"]) AS_VAR_SET([REGEN_JIT_COMMAND], ["\$(PYTHON_FOR_REGEN) \$(srcdir)/Tools/jit/build.py ${ARCH_TRIPLES:-$host} --output-dir . --pyconfig-dir . --cflags=\"$CFLAGS_JIT\""]) + AS_VAR_SET([JIT_STENCILS_H], ["jit_stencils.h"]) AS_VAR_IF([Py_DEBUG], [true], [AS_VAR_APPEND([REGEN_JIT_COMMAND], [" --debug"])], [])]) AC_SUBST([REGEN_JIT_COMMAND]) +AC_SUBST([JIT_STENCILS_H]) AC_MSG_RESULT([$tier2_flags $jit_flags]) if test "$disable_gil" = "yes" -a "$enable_experimental_jit" != "no"; then @@ -8171,6 +8173,34 @@ dnl Emscripten does not support shared libraries yet. PY_STDLIB_MOD([xxlimited], [test "$TEST_MODULES" = yes], [test "$ac_cv_func_dlopen" = yes]) PY_STDLIB_MOD([xxlimited_35], [test "$TEST_MODULES" = yes], [test "$ac_cv_func_dlopen" = yes]) +# Determine JIT stencils header files based on target platform +JIT_STENCILS_H="" +case "$host" in + aarch64-apple-darwin*) + JIT_STENCILS_H="jit_stencils-aarch64-apple-darwin.h" + ;; + x86_64-apple-darwin*) + JIT_STENCILS_H="jit_stencils-x86_64-apple-darwin.h" + ;; + aarch64-pc-windows-msvc) + JIT_STENCILS_H="jit_stencils-aarch64-pc-windows-msvc.h" + ;; + i686-pc-windows-msvc) + JIT_STENCILS_H="jit_stencils-i686-pc-windows-msvc.h" + ;; + x86_64-pc-windows-msvc) + JIT_STENCILS_H="jit_stencils-x86_64-pc-windows-msvc.h" + ;; + aarch64-*-linux-gnu) + JIT_STENCILS_H="jit_stencils-$host.h" + ;; + x86_64-*-linux-gnu) + JIT_STENCILS_H="jit_stencils-$host.h" + ;; +esac + +AC_SUBST([JIT_STENCILS_H]) + # substitute multiline block, must come after last PY_STDLIB_MOD() AC_SUBST([MODULE_BLOCK])