Unverified Commit bbfd20b6 authored by Martin Weinelt's avatar Martin Weinelt Committed by GitHub
Browse files

pkgsStatic.python314: fix build (#502058)

parents 98281db8 5e45722b
Loading
Loading
Loading
Loading
+50 −0
Original line number Diff line number Diff line
From ee1b8479cff97ca7e5ed4d51d6aa24ccb47deb8b Mon Sep 17 00:00:00 2001
From: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
Date: Sat, 21 Mar 2026 18:34:50 -0400
Subject: [PATCH] gh-146264: Use static HACL deps for static module builds

---
 .../next/Build/2026-03-21-18-51-31.gh-issue-146264.Q9Ej4m.rst  | 3 +++
 configure                                                      | 2 +-
 configure.ac                                                   | 2 +-
 3 files changed, 5 insertions(+), 2 deletions(-)
 create mode 100644 Misc/NEWS.d/next/Build/2026-03-21-18-51-31.gh-issue-146264.Q9Ej4m.rst

diff --git a/Misc/NEWS.d/next/Build/2026-03-21-18-51-31.gh-issue-146264.Q9Ej4m.rst b/Misc/NEWS.d/next/Build/2026-03-21-18-51-31.gh-issue-146264.Q9Ej4m.rst
new file mode 100644
index 00000000000..1fdafe56043
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2026-03-21-18-51-31.gh-issue-146264.Q9Ej4m.rst
@@ -0,0 +1,3 @@
+Fix static module builds on non-WASI targets by linking HACL dependencies as
+static libraries when ``MODULE_BUILDTYPE=static``, preventing duplicate
+``_Py_LibHacl_*`` symbol errors at link time.
diff --git a/configure b/configure
index 23f24d51c79..db5c861f601 100755
--- a/configure
+++ b/configure
@@ -33009,7 +33009,7 @@ fi
 
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for HACL* library linking type" >&5
 printf %s "checking for HACL* library linking type... " >&6; }
-if test "$ac_sys_system" = "WASI"; then
+if test "$ac_sys_system" = "WASI" || test "$MODULE_BUILDTYPE" = "static"; then
   LIBHACL_LDEPS_LIBTYPE=STATIC
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: static" >&5
 printf "%s\n" "static" >&6; }
diff --git a/configure.ac b/configure.ac
index 635fce3f2e6..59166d63e63 100644
--- a/configure.ac
+++ b/configure.ac
@@ -8171,7 +8171,7 @@ AC_SUBST([LIBHACL_BLAKE2_SIMD256_OBJS])
 # HACL*-based cryptographic primitives
 
 AC_MSG_CHECKING([for HACL* library linking type])
-if test "$ac_sys_system" = "WASI"; then
+if test "$ac_sys_system" = "WASI" || test "$MODULE_BUILDTYPE" = "static"; then
   LIBHACL_LDEPS_LIBTYPE=STATIC
   AC_MSG_RESULT([static])
 else
-- 
2.53.0
+5 −0
Original line number Diff line number Diff line
@@ -427,6 +427,11 @@ stdenv.mkDerivation (finalAttrs: {
    # backport fix for https://github.com/python/cpython/issues/95855
    ./platform-triplet-detection.patch
  ]
  ++ optionals (static && pythonAtLeast "3.14") [
    # https://github.com/python/cpython/issues/146264
    # https://github.com/python/cpython/pull/146265
    ./3.14/hacl-static-ldeps-for-static-modules.patch
  ]
  ++ optionals (version == "3.13.10" || version == "3.14.1") [
    # https://github.com/python/cpython/issues/142218
    ./${lib.versions.majorMinor version}/gh-142218.patch