From 862d50a8dea63c8c83763a26cf910abfa0ce735f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?B=C3=A9n=C3=A9dikt=20Tran?=
<10796600+picnixz@users.noreply.github.com>
Date: Fri, 1 Aug 2025 14:35:37 +0200
Subject: [PATCH 1/8] does it work like this?
---
Modules/_hashlib/hashlib_buffer.h | 4 ++--
PCbuild/_hashlib.vcxproj | 1 +
PCbuild/_hashlib.vcxproj.filters | 3 +++
PCbuild/pythoncore.vcxproj | 1 -
PCbuild/pythoncore.vcxproj.filters | 3 ---
5 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/Modules/_hashlib/hashlib_buffer.h b/Modules/_hashlib/hashlib_buffer.h
index 809f19884f41b7..d6457eaa60960f 100644
--- a/Modules/_hashlib/hashlib_buffer.h
+++ b/Modules/_hashlib/hashlib_buffer.h
@@ -14,7 +14,7 @@
*
* The symbol is exported for '_hashlib' and HACL*-based extension modules.
*/
-PyAPI_FUNC(int)
+extern int
_Py_hashlib_data_argument(PyObject **res, PyObject *data, PyObject *string);
/*
@@ -25,7 +25,7 @@ _Py_hashlib_data_argument(PyObject **res, PyObject *data, PyObject *string);
*
* The symbol is exported for '_hashlib' and HACL*-based extension modules.
*/
-PyAPI_FUNC(int)
+extern int
_Py_hashlib_get_buffer_view(PyObject *obj, Py_buffer *view);
/*
diff --git a/PCbuild/_hashlib.vcxproj b/PCbuild/_hashlib.vcxproj
index cfb43cee935b86..06aba8fbc566db 100644
--- a/PCbuild/_hashlib.vcxproj
+++ b/PCbuild/_hashlib.vcxproj
@@ -99,6 +99,7 @@
+
diff --git a/PCbuild/_hashlib.vcxproj.filters b/PCbuild/_hashlib.vcxproj.filters
index d465d92a956eda..97188a87f34b77 100644
--- a/PCbuild/_hashlib.vcxproj.filters
+++ b/PCbuild/_hashlib.vcxproj.filters
@@ -12,6 +12,9 @@
Source Files
+
+ Source Files
+
diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj
index c59b380d814ed9..187e2d68365076 100644
--- a/PCbuild/pythoncore.vcxproj
+++ b/PCbuild/pythoncore.vcxproj
@@ -447,7 +447,6 @@
HACL_CAN_COMPILE_VEC128;%(PreprocessorDefinitions)
/arch:AVX %(AdditionalOptions)
-
diff --git a/PCbuild/pythoncore.vcxproj.filters b/PCbuild/pythoncore.vcxproj.filters
index 1410cbbef6c849..eba3b1c04376c4 100644
--- a/PCbuild/pythoncore.vcxproj.filters
+++ b/PCbuild/pythoncore.vcxproj.filters
@@ -980,9 +980,6 @@
Modules
-
- Modules\_hashlib
-
Modules
From 45523533f789a319eca5cfdd4becc631a26e5566 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?B=C3=A9n=C3=A9dikt=20Tran?=
<10796600+picnixz@users.noreply.github.com>
Date: Fri, 1 Aug 2025 14:39:15 +0200
Subject: [PATCH 2/8] maybe like this?
---
PCbuild/pythoncore.vcxproj | 1 +
PCbuild/pythoncore.vcxproj.filters | 3 +++
2 files changed, 4 insertions(+)
diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj
index 187e2d68365076..c59b380d814ed9 100644
--- a/PCbuild/pythoncore.vcxproj
+++ b/PCbuild/pythoncore.vcxproj
@@ -447,6 +447,7 @@
HACL_CAN_COMPILE_VEC128;%(PreprocessorDefinitions)
/arch:AVX %(AdditionalOptions)
+
diff --git a/PCbuild/pythoncore.vcxproj.filters b/PCbuild/pythoncore.vcxproj.filters
index eba3b1c04376c4..1410cbbef6c849 100644
--- a/PCbuild/pythoncore.vcxproj.filters
+++ b/PCbuild/pythoncore.vcxproj.filters
@@ -980,6 +980,9 @@
Modules
+
+ Modules\_hashlib
+
Modules
From 033ba239744547a86282eeff9af6425fcf805c53 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?B=C3=A9n=C3=A9dikt=20Tran?=
<10796600+picnixz@users.noreply.github.com>
Date: Fri, 1 Aug 2025 14:46:16 +0200
Subject: [PATCH 3/8] typo?
---
PCbuild/_hashlib.vcxproj | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/PCbuild/_hashlib.vcxproj b/PCbuild/_hashlib.vcxproj
index 06aba8fbc566db..70f39d35932a77 100644
--- a/PCbuild/_hashlib.vcxproj
+++ b/PCbuild/_hashlib.vcxproj
@@ -99,7 +99,7 @@
-
+
From ba5b0f3ed02c780cf9545ddd5e717a797847c1cf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?B=C3=A9n=C3=A9dikt=20Tran?=
<10796600+picnixz@users.noreply.github.com>
Date: Fri, 1 Aug 2025 15:44:34 +0200
Subject: [PATCH 4/8] directly link to the interpreter
---
configure.ac | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index 1e590e1d0fd727..b6acbda9e51b12 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7961,8 +7961,18 @@ PY_STDLIB_MOD_SIMPLE([unicodedata])
###############################################################################
# Cryptographic primitives
LIBHASHLIB_INTERNAL_CFLAGS="-I\$(srcdir)/Modules/_hashlib"
-LIBHASHLIB_INTERNAL_LDFLAGS="-lm \$(LIBHASHLIB_INTERNAL_A)"
-LIBHASHLIB_INTERNAL="\$(LIBHASHLIB_INTERNAL_HEADERS) \$(LIBHASHLIB_INTERNAL_A)"
+if test "$ac_sys_system" = "Emscripten"; then
+ LIBHASHLIB_INTERNAL_LDFLAGS="-lm"
+ LIBHASHLIB_INTERNAL="\$(LIBHASHLIB_INTERNAL_HEADERS)"
+ # Directly link the library to the interpreter instead to prevent duplicated
+ # symbols. This is a temporary fix until we manage to find a way to elegantly
+ # configure the various cryptographic modules.
+ LDFLAGS="$LDFLAGS \$(LIBHASHLIB_INTERNAL_A)"
+ LIBS="$LIBS \$(LIBHASHLIB_INTERNAL_A)"
+else
+ LIBHASHLIB_INTERNAL_LDFLAGS="-lm \$(LIBHASHLIB_INTERNAL_A)"
+ LIBHASHLIB_INTERNAL="\$(LIBHASHLIB_INTERNAL_HEADERS) \$(LIBHASHLIB_INTERNAL_A)"
+fi
AC_SUBST([LIBHASHLIB_INTERNAL_CFLAGS])
AC_SUBST([LIBHASHLIB_INTERNAL])
From 561f4a967ee54dad60472e2e8abf66f722c66926 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?B=C3=A9n=C3=A9dikt=20Tran?=
<10796600+picnixz@users.noreply.github.com>
Date: Fri, 1 Aug 2025 15:46:29 +0200
Subject: [PATCH 5/8] regen
---
configure | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/configure b/configure
index 0e7aefed5ee62d..04aa97d04c0197 100755
--- a/configure
+++ b/configure
@@ -32531,8 +32531,18 @@ fi
###############################################################################
# Cryptographic primitives
LIBHASHLIB_INTERNAL_CFLAGS="-I\$(srcdir)/Modules/_hashlib"
-LIBHASHLIB_INTERNAL_LDFLAGS="-lm \$(LIBHASHLIB_INTERNAL_A)"
-LIBHASHLIB_INTERNAL="\$(LIBHASHLIB_INTERNAL_HEADERS) \$(LIBHASHLIB_INTERNAL_A)"
+if test "$ac_sys_system" = "Emscripten"; then
+ LIBHASHLIB_INTERNAL_LDFLAGS="-lm"
+ LIBHASHLIB_INTERNAL="\$(LIBHASHLIB_INTERNAL_HEADERS)"
+ # Directly link the library to the interpreter instead to prevent duplicated
+ # symbols. This is a temporary fix until we manage to find a way to elegantly
+ # configure the various cryptographic modules.
+ LDFLAGS="$LDFLAGS \$(LIBHASHLIB_INTERNAL_A)"
+ LIBS="$LIBS \$(LIBHASHLIB_INTERNAL_A)"
+else
+ LIBHASHLIB_INTERNAL_LDFLAGS="-lm \$(LIBHASHLIB_INTERNAL_A)"
+ LIBHASHLIB_INTERNAL="\$(LIBHASHLIB_INTERNAL_HEADERS) \$(LIBHASHLIB_INTERNAL_A)"
+fi
From 1e74acb7f4ef71e506c1432471b1ddd8609469db Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?B=C3=A9n=C3=A9dikt=20Tran?=
<10796600+picnixz@users.noreply.github.com>
Date: Fri, 1 Aug 2025 16:03:44 +0200
Subject: [PATCH 6/8] Revert "regen"
This reverts commit 561f4a967ee54dad60472e2e8abf66f722c66926.
---
configure | 14 ++------------
1 file changed, 2 insertions(+), 12 deletions(-)
diff --git a/configure b/configure
index 04aa97d04c0197..0e7aefed5ee62d 100755
--- a/configure
+++ b/configure
@@ -32531,18 +32531,8 @@ fi
###############################################################################
# Cryptographic primitives
LIBHASHLIB_INTERNAL_CFLAGS="-I\$(srcdir)/Modules/_hashlib"
-if test "$ac_sys_system" = "Emscripten"; then
- LIBHASHLIB_INTERNAL_LDFLAGS="-lm"
- LIBHASHLIB_INTERNAL="\$(LIBHASHLIB_INTERNAL_HEADERS)"
- # Directly link the library to the interpreter instead to prevent duplicated
- # symbols. This is a temporary fix until we manage to find a way to elegantly
- # configure the various cryptographic modules.
- LDFLAGS="$LDFLAGS \$(LIBHASHLIB_INTERNAL_A)"
- LIBS="$LIBS \$(LIBHASHLIB_INTERNAL_A)"
-else
- LIBHASHLIB_INTERNAL_LDFLAGS="-lm \$(LIBHASHLIB_INTERNAL_A)"
- LIBHASHLIB_INTERNAL="\$(LIBHASHLIB_INTERNAL_HEADERS) \$(LIBHASHLIB_INTERNAL_A)"
-fi
+LIBHASHLIB_INTERNAL_LDFLAGS="-lm \$(LIBHASHLIB_INTERNAL_A)"
+LIBHASHLIB_INTERNAL="\$(LIBHASHLIB_INTERNAL_HEADERS) \$(LIBHASHLIB_INTERNAL_A)"
From 6bc7d43956106a76e7db581222691b137676fe65 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?B=C3=A9n=C3=A9dikt=20Tran?=
<10796600+picnixz@users.noreply.github.com>
Date: Fri, 1 Aug 2025 16:04:21 +0200
Subject: [PATCH 7/8] Revert "directly link to the interpreter"
This reverts commit ba5b0f3ed02c780cf9545ddd5e717a797847c1cf.
---
configure.ac | 14 ++------------
1 file changed, 2 insertions(+), 12 deletions(-)
diff --git a/configure.ac b/configure.ac
index b6acbda9e51b12..1e590e1d0fd727 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7961,18 +7961,8 @@ PY_STDLIB_MOD_SIMPLE([unicodedata])
###############################################################################
# Cryptographic primitives
LIBHASHLIB_INTERNAL_CFLAGS="-I\$(srcdir)/Modules/_hashlib"
-if test "$ac_sys_system" = "Emscripten"; then
- LIBHASHLIB_INTERNAL_LDFLAGS="-lm"
- LIBHASHLIB_INTERNAL="\$(LIBHASHLIB_INTERNAL_HEADERS)"
- # Directly link the library to the interpreter instead to prevent duplicated
- # symbols. This is a temporary fix until we manage to find a way to elegantly
- # configure the various cryptographic modules.
- LDFLAGS="$LDFLAGS \$(LIBHASHLIB_INTERNAL_A)"
- LIBS="$LIBS \$(LIBHASHLIB_INTERNAL_A)"
-else
- LIBHASHLIB_INTERNAL_LDFLAGS="-lm \$(LIBHASHLIB_INTERNAL_A)"
- LIBHASHLIB_INTERNAL="\$(LIBHASHLIB_INTERNAL_HEADERS) \$(LIBHASHLIB_INTERNAL_A)"
-fi
+LIBHASHLIB_INTERNAL_LDFLAGS="-lm \$(LIBHASHLIB_INTERNAL_A)"
+LIBHASHLIB_INTERNAL="\$(LIBHASHLIB_INTERNAL_HEADERS) \$(LIBHASHLIB_INTERNAL_A)"
AC_SUBST([LIBHASHLIB_INTERNAL_CFLAGS])
AC_SUBST([LIBHASHLIB_INTERNAL])
From 1ded2a307bb7ab585cf72fc321042290860f170a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?B=C3=A9n=C3=A9dikt=20Tran?=
<10796600+picnixz@users.noreply.github.com>
Date: Fri, 1 Aug 2025 17:00:39 +0200
Subject: [PATCH 8/8] explicitly define the injected libs
---
Makefile.pre.in | 8 ++++
Modules/makesetup | 6 ++-
configure | 107 ++++++++++++++++++++++++++++++++++++++++++----
configure.ac | 16 +++++--
4 files changed, 124 insertions(+), 13 deletions(-)
diff --git a/Makefile.pre.in b/Makefile.pre.in
index e2253d3e35b3e6..29c2708f58b10d 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -32,6 +32,7 @@ srcdir= @srcdir@
VPATH= @srcdir@
abs_srcdir= @abs_srcdir@
abs_builddir= @abs_builddir@
+UNIQMODLIBS= @UNIQMODLIBS@
CC= @CC@
@@ -3381,21 +3382,28 @@ MODULE__CTYPES_MALLOC_CLOSURE=@MODULE__CTYPES_MALLOC_CLOSURE@
MODULE__DECIMAL_DEPS=$(srcdir)/Modules/_decimal/docstrings.h @LIBMPDEC_INTERNAL@
MODULE__ELEMENTTREE_DEPS=$(srcdir)/Modules/pyexpat.c @LIBEXPAT_INTERNAL@
MODULE__HASHLIB_DEPS=@LIBHASHLIB_INTERNAL@
+MODULE__HASHLIB_RULE_LDFLAGS=@LIBHASHLIB_INTERNAL_RULE_LDFLAGS@
MODULE__IO_DEPS=$(srcdir)/Modules/_io/_iomodule.h
# HACL*-based cryptographic primitives
MODULE__MD5_DEPS=$(MODULE__HASHLIB_DEPS) $(LIBHACL_MD5_HEADERS) $(LIBHACL_MD5_LIB_@LIBHACL_LDEPS_LIBTYPE@)
MODULE__MD5_LDEPS=$(LIBHACL_MD5_LIB_@LIBHACL_LDEPS_LIBTYPE@)
+MODULE__MD5_RULE_LDFLAGS=@LIBHASHLIB_INTERNAL_RULE_LDFLAGS@
MODULE__SHA1_DEPS=$(MODULE__HASHLIB_DEPS) $(LIBHACL_SHA1_HEADERS) $(LIBHACL_SHA1_LIB_@LIBHACL_LDEPS_LIBTYPE@)
MODULE__SHA1_LDEPS=$(LIBHACL_SHA1_LIB_@LIBHACL_LDEPS_LIBTYPE@)
+MODULE__SHA1_RULE_LDFLAGS=@LIBHASHLIB_INTERNAL_RULE_LDFLAGS@
MODULE__SHA2_DEPS=$(MODULE__HASHLIB_DEPS) $(LIBHACL_SHA2_HEADERS) $(LIBHACL_SHA2_LIB_@LIBHACL_LDEPS_LIBTYPE@)
MODULE__SHA2_LDEPS=$(LIBHACL_SHA2_LIB_@LIBHACL_LDEPS_LIBTYPE@)
+MODULE__SHA2_RULE_LDFLAGS=@LIBHASHLIB_INTERNAL_RULE_LDFLAGS@
MODULE__SHA3_DEPS=$(MODULE__HASHLIB_DEPS) $(LIBHACL_SHA3_HEADERS) $(LIBHACL_SHA3_LIB_@LIBHACL_LDEPS_LIBTYPE@)
MODULE__SHA3_LDEPS=$(LIBHACL_SHA3_LIB_@LIBHACL_LDEPS_LIBTYPE@)
+MODULE__SHA3_RULE_LDFLAGS=@LIBHASHLIB_INTERNAL_RULE_LDFLAGS@
MODULE__BLAKE2_DEPS=$(MODULE__HASHLIB_DEPS) $(LIBHACL_BLAKE2_HEADERS) $(LIBHACL_BLAKE2_LIB_@LIBHACL_LDEPS_LIBTYPE@)
MODULE__BLAKE2_LDEPS=$(LIBHACL_BLAKE2_LIB_@LIBHACL_LDEPS_LIBTYPE@)
+MODULE__BLAKE2_RULE_LDFLAGS=@LIBHASHLIB_INTERNAL_RULE_LDFLAGS@
MODULE__HMAC_DEPS=$(MODULE__HASHLIB_DEPS) $(LIBHACL_HMAC_HEADERS) $(LIBHACL_HMAC_LIB_@LIBHACL_LDEPS_LIBTYPE@)
MODULE__HMAC_LDEPS=$(LIBHACL_HMAC_LIB_@LIBHACL_LDEPS_LIBTYPE@)
+MODULE__HMAC_RULE_LDFLAGS=@LIBHASHLIB_INTERNAL_RULE_LDFLAGS@
MODULE__SOCKET_DEPS=$(srcdir)/Modules/socketmodule.h $(srcdir)/Modules/addrinfo.h $(srcdir)/Modules/getaddrinfo.c $(srcdir)/Modules/getnameinfo.c
MODULE__SSL_DEPS=$(srcdir)/Modules/_ssl.h $(srcdir)/Modules/_ssl/cert.c $(srcdir)/Modules/_ssl/debughelpers.c $(srcdir)/Modules/_ssl/misc.c $(srcdir)/Modules/_ssl_data_111.h $(srcdir)/Modules/_ssl_data_300.h $(srcdir)/Modules/socketmodule.h
diff --git a/Modules/makesetup b/Modules/makesetup
index f6cf695b457cbf..ece8466eaba548 100755
--- a/Modules/makesetup
+++ b/Modules/makesetup
@@ -111,6 +111,7 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' |
SHAREDMODS=
OBJS=
LIBS=
+ UNIQMODLIBS=
LOCALLIBS=
BASELIBS=
while read line
@@ -276,7 +277,7 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' |
;;
esac
rule="$file: $objs \$(MODULE_${mods_upper}_LDEPS)"
- rule="$rule; \$(BLDSHARED) $objs $libs \$(LIBPYTHON) -o $file"
+ rule="$rule; \$(BLDSHARED) $objs $libs \$(MODULE_${mods_upper}_RULE_LDFLAGS) \$(LIBPYTHON) -o $file"
echo "$rule" >>$rulesf
done
done
@@ -290,7 +291,7 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' |
yes) BASELIBS=$LIBS;;
*) LOCALLIBS=$LIBS;;
esac
- LIBS='$(LOCALMODLIBS) $(BASEMODLIBS)'
+ LIBS='$(LOCALMODLIBS) $(BASEMODLIBS) $(UNIQMODLIBS)'
DEFS="BASEMODLIBS=$BASELIBS$NL$DEFS"
DEFS="LOCALMODLIBS=$LOCALLIBS$NL$DEFS"
@@ -332,6 +333,7 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' |
echo "s%_MODDISABLED_NAMES_%$DISABLED%" >>$sedf
echo "s%_MODOBJS_%$OBJS%" >>$sedf
echo "s%_MODLIBS_%$LIBS%" >>$sedf
+ echo "s%_UNIQMODLIBS_%$UNIQMODLIBS%" >>$sedf
echo "/Definitions added by makesetup/r $sedr" >>$sedf
sed -f $sedf $makepre >Makefile
cat $rulesf >>Makefile
diff --git a/configure b/configure
index 0e7aefed5ee62d..047888d45801a8 100755
--- a/configure
+++ b/configure
@@ -726,6 +726,7 @@ LIBHACL_SIMD128_FLAGS
LIBHACL_LDFLAGS
LIBHACL_CFLAGS
LIBHASHLIB_INTERNAL
+LIBHASHLIB_INTERNAL_RULE_LDFLAGS
LIBHASHLIB_INTERNAL_CFLAGS
MODULE_UNICODEDATA_FALSE
MODULE_UNICODEDATA_TRUE
@@ -1038,6 +1039,7 @@ GITBRANCH
GITTAG
GITVERSION
BASECPPFLAGS
+UNIQMODLIBS
target_alias
host_alias
build_alias
@@ -3561,6 +3563,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+UNIQMODLIBS=""
+
+
@@ -14153,6 +14158,7 @@ fi
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
CPPFLAGS="$CPPFLAGS $LIBUUID_CFLAGS"
@@ -14285,6 +14291,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
@@ -14297,6 +14304,7 @@ printf "%s\n" "no" >&6; }
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
CPPFLAGS="$CPPFLAGS $LIBUUID_CFLAGS"
@@ -14429,6 +14437,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
@@ -14531,6 +14540,7 @@ printf %s "checking if uuid_generate_time_safe() node value is stable... " >&6;
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
# Be sure to add the extra include path if we used pkg-config
@@ -14591,12 +14601,14 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
save_CFLAGS=$CFLAGS
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
# Be sure to add the extra include path if we used pkg-config
@@ -14657,6 +14669,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
if test -n "$py_cv_uuid_node1" -a "$py_cv_uuid_node1" = "$py_cv_uuid_node2"
@@ -15195,6 +15208,7 @@ then :
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
CFLAGS="-I${SDKROOT}/usr/include/ffi $CFLAGS"
@@ -15262,6 +15276,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
@@ -15333,6 +15348,7 @@ fi
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
CPPFLAGS="$CPPFLAGS $LIBFFI_CFLAGS"
@@ -15404,6 +15420,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
@@ -15415,6 +15432,7 @@ printf "%s\n" "no" >&6; }
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
CPPFLAGS="$CPPFLAGS $LIBFFI_CFLAGS"
@@ -15486,6 +15504,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
@@ -15536,6 +15555,7 @@ fi
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
CFLAGS="$CFLAGS $LIBFFI_CFLAGS"
@@ -15669,6 +15689,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
@@ -15689,6 +15710,7 @@ else case e in #(
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
CPPFLAGS="$CPPFLAGS $LIBFFI_CFLAGS"
@@ -15741,6 +15763,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
;;
esac
@@ -15862,6 +15885,7 @@ then :
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
CPPFLAGS="$CPPFLAGS $LIBMPDEC_CFLAGS"
@@ -15898,6 +15922,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
fi
@@ -16117,6 +16142,7 @@ save_CFLAGS=$CFLAGS
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
CPPFLAGS="$CPPFLAGS $LIBSQLITE3_CFLAGS"
@@ -16851,6 +16877,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
@@ -17107,6 +17134,7 @@ save_CFLAGS=$CFLAGS
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
CPPFLAGS="$CPPFLAGS $TCLTK_CFLAGS"
@@ -17165,6 +17193,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
@@ -17174,6 +17203,7 @@ save_CFLAGS=$CFLAGS
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
CPPFLAGS="$CPPFLAGS $GDBM_CFLAGS"
@@ -17251,6 +17281,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
@@ -17265,6 +17296,7 @@ then :
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing dbm_open" >&5
@@ -17339,6 +17371,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
@@ -17436,6 +17469,7 @@ if test "$ac_cv_header_gdbm_slash_ndbm_h" = yes -o "$ac_cv_header_gdbm_dash_ndbm
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing dbm_open" >&5
@@ -17513,6 +17547,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
fi
@@ -17537,6 +17572,7 @@ else case e in #(
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
LIBS="$LIBS -ldb"
@@ -17572,6 +17608,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
;;
@@ -21757,6 +21794,7 @@ fi
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
CPPFLAGS="$CPPFLAGS $ZLIB_CFLAGS"
@@ -21893,6 +21931,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
@@ -21904,6 +21943,7 @@ printf "%s\n" "no" >&6; }
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
CPPFLAGS="$CPPFLAGS $ZLIB_CFLAGS"
@@ -22040,6 +22080,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
@@ -22141,6 +22182,7 @@ fi
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
CPPFLAGS="$CPPFLAGS $BZIP2_CFLAGS"
@@ -22222,6 +22264,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
@@ -22233,6 +22276,7 @@ printf "%s\n" "no" >&6; }
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
CPPFLAGS="$CPPFLAGS $BZIP2_CFLAGS"
@@ -22314,6 +22358,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
@@ -22389,6 +22434,7 @@ fi
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
CPPFLAGS="$CPPFLAGS $LIBLZMA_CFLAGS"
@@ -22470,6 +22516,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
@@ -22481,6 +22528,7 @@ printf "%s\n" "no" >&6; }
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
CPPFLAGS="$CPPFLAGS $LIBLZMA_CFLAGS"
@@ -22562,6 +22610,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
@@ -22637,6 +22686,7 @@ fi
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
CPPFLAGS="$CPPFLAGS $LIBZSTD_CFLAGS"
@@ -22775,6 +22825,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
@@ -22786,6 +22837,7 @@ printf "%s\n" "no" >&6; }
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
CPPFLAGS="$CPPFLAGS $LIBZSTD_CFLAGS"
@@ -22924,6 +22976,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
@@ -27024,6 +27077,7 @@ fi
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
CPPFLAGS="$CPPFLAGS $LIBREADLINE_CFLAGS"
@@ -27102,6 +27156,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
@@ -27113,6 +27168,7 @@ printf "%s\n" "no" >&6; }
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
CPPFLAGS="$CPPFLAGS $LIBREADLINE_CFLAGS"
@@ -27191,6 +27247,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
@@ -27275,6 +27332,7 @@ fi
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
CPPFLAGS="$CPPFLAGS $LIBEDIT_CFLAGS"
@@ -27355,6 +27413,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
@@ -27366,6 +27425,7 @@ printf "%s\n" "no" >&6; }
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
CPPFLAGS="$CPPFLAGS $LIBEDIT_CFLAGS"
@@ -27446,6 +27506,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
@@ -27484,6 +27545,7 @@ printf "%s\n" "$with_readline (CFLAGS: $READLINE_CFLAGS, LIBS: $READLINE_LIBS)"
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
CPPFLAGS="$CPPFLAGS $READLINE_CFLAGS"
@@ -27883,6 +27945,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
;;
esac
@@ -28596,6 +28659,7 @@ save_CFLAGS=$CFLAGS
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
# Make sure we've got the header defines.
@@ -29631,6 +29695,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for device files" >&5
@@ -30323,6 +30388,7 @@ save_CFLAGS=$CFLAGS
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing shm_open" >&5
@@ -30429,6 +30495,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
@@ -30761,6 +30828,7 @@ save_CFLAGS=$CFLAGS
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
LIBS="$LIBS $OPENSSL_LIBS"
@@ -30819,6 +30887,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
@@ -30826,6 +30895,7 @@ save_CFLAGS=$CFLAGS
save_CPPFLAGS=$CPPFLAGS
save_LDFLAGS=$LDFLAGS
save_LIBS=$LIBS
+save_UNIQMODLIBS=$UNIQMODLIBS
LIBS="$LIBS $LIBCRYPTO_LIBS"
@@ -30881,6 +30951,7 @@ CFLAGS=$save_CFLAGS
CPPFLAGS=$save_CPPFLAGS
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
+UNIQMODLIBS=$save_UNIQMODLIBS
@@ -32531,8 +32602,10 @@ fi
###############################################################################
# Cryptographic primitives
LIBHASHLIB_INTERNAL_CFLAGS="-I\$(srcdir)/Modules/_hashlib"
-LIBHASHLIB_INTERNAL_LDFLAGS="-lm \$(LIBHASHLIB_INTERNAL_A)"
+LIBHASHLIB_INTERNAL_RULE_LDFLAGS="-lm \$(LIBHASHLIB_INTERNAL_A)"
LIBHASHLIB_INTERNAL="\$(LIBHASHLIB_INTERNAL_HEADERS) \$(LIBHASHLIB_INTERNAL_A)"
+UNIQMODLIBS="$UNIQMODLIBS \$(LIBHASHLIB_INTERNAL_A)"
+
@@ -32760,6 +32833,9 @@ fi
LIBHACL_MD5_LDFLAGS=LIBHACL_MD5_LIB_${LIBHACL_LDEPS_LIBTYPE}
+ # LDFLAGS will not contain the internal library helper as it could
+ # be duplicated. Instead, it will be linked added only for the rule
+ # and will be otherwise added to the interpreter directly.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _md5" >&5
printf %s "checking for stdlib extension module _md5... " >&6; }
@@ -32786,7 +32862,7 @@ fi
then :
as_fn_append MODULE_BLOCK "MODULE__MD5_CFLAGS=$LIBHACL_CFLAGS $LIBHASHLIB_INTERNAL_CFLAGS$as_nl"
- as_fn_append MODULE_BLOCK "MODULE__MD5_LDFLAGS=\$($LIBHACL_MD5_LDFLAGS) $LIBHASHLIB_INTERNAL_LDFLAGS$as_nl"
+ as_fn_append MODULE_BLOCK "MODULE__MD5_LDFLAGS=\$($LIBHACL_MD5_LDFLAGS)$as_nl"
fi
if test "$py_cv_module__md5" = yes; then
@@ -32805,6 +32881,9 @@ printf "%s\n" "$py_cv_module__md5" >&6; }
LIBHACL_SHA1_LDFLAGS=LIBHACL_SHA1_LIB_${LIBHACL_LDEPS_LIBTYPE}
+ # LDFLAGS will not contain the internal library helper as it could
+ # be duplicated. Instead, it will be linked added only for the rule
+ # and will be otherwise added to the interpreter directly.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _sha1" >&5
printf %s "checking for stdlib extension module _sha1... " >&6; }
@@ -32831,7 +32910,7 @@ fi
then :
as_fn_append MODULE_BLOCK "MODULE__SHA1_CFLAGS=$LIBHACL_CFLAGS $LIBHASHLIB_INTERNAL_CFLAGS$as_nl"
- as_fn_append MODULE_BLOCK "MODULE__SHA1_LDFLAGS=\$($LIBHACL_SHA1_LDFLAGS) $LIBHASHLIB_INTERNAL_LDFLAGS$as_nl"
+ as_fn_append MODULE_BLOCK "MODULE__SHA1_LDFLAGS=\$($LIBHACL_SHA1_LDFLAGS)$as_nl"
fi
if test "$py_cv_module__sha1" = yes; then
@@ -32850,6 +32929,9 @@ printf "%s\n" "$py_cv_module__sha1" >&6; }
LIBHACL_SHA2_LDFLAGS=LIBHACL_SHA2_LIB_${LIBHACL_LDEPS_LIBTYPE}
+ # LDFLAGS will not contain the internal library helper as it could
+ # be duplicated. Instead, it will be linked added only for the rule
+ # and will be otherwise added to the interpreter directly.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _sha2" >&5
printf %s "checking for stdlib extension module _sha2... " >&6; }
@@ -32876,7 +32958,7 @@ fi
then :
as_fn_append MODULE_BLOCK "MODULE__SHA2_CFLAGS=$LIBHACL_CFLAGS $LIBHASHLIB_INTERNAL_CFLAGS$as_nl"
- as_fn_append MODULE_BLOCK "MODULE__SHA2_LDFLAGS=\$($LIBHACL_SHA2_LDFLAGS) $LIBHASHLIB_INTERNAL_LDFLAGS$as_nl"
+ as_fn_append MODULE_BLOCK "MODULE__SHA2_LDFLAGS=\$($LIBHACL_SHA2_LDFLAGS)$as_nl"
fi
if test "$py_cv_module__sha2" = yes; then
@@ -32895,6 +32977,9 @@ printf "%s\n" "$py_cv_module__sha2" >&6; }
LIBHACL_SHA3_LDFLAGS=LIBHACL_SHA3_LIB_${LIBHACL_LDEPS_LIBTYPE}
+ # LDFLAGS will not contain the internal library helper as it could
+ # be duplicated. Instead, it will be linked added only for the rule
+ # and will be otherwise added to the interpreter directly.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _sha3" >&5
printf %s "checking for stdlib extension module _sha3... " >&6; }
@@ -32921,7 +33006,7 @@ fi
then :
as_fn_append MODULE_BLOCK "MODULE__SHA3_CFLAGS=$LIBHACL_CFLAGS $LIBHASHLIB_INTERNAL_CFLAGS$as_nl"
- as_fn_append MODULE_BLOCK "MODULE__SHA3_LDFLAGS=\$($LIBHACL_SHA3_LDFLAGS) $LIBHASHLIB_INTERNAL_LDFLAGS$as_nl"
+ as_fn_append MODULE_BLOCK "MODULE__SHA3_LDFLAGS=\$($LIBHACL_SHA3_LDFLAGS)$as_nl"
fi
if test "$py_cv_module__sha3" = yes; then
@@ -32940,6 +33025,9 @@ printf "%s\n" "$py_cv_module__sha3" >&6; }
LIBHACL_BLAKE2_LDFLAGS=LIBHACL_BLAKE2_LIB_${LIBHACL_LDEPS_LIBTYPE}
+ # LDFLAGS will not contain the internal library helper as it could
+ # be duplicated. Instead, it will be linked added only for the rule
+ # and will be otherwise added to the interpreter directly.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _blake2" >&5
printf %s "checking for stdlib extension module _blake2... " >&6; }
@@ -32966,7 +33054,7 @@ fi
then :
as_fn_append MODULE_BLOCK "MODULE__BLAKE2_CFLAGS=$LIBHACL_CFLAGS $LIBHASHLIB_INTERNAL_CFLAGS$as_nl"
- as_fn_append MODULE_BLOCK "MODULE__BLAKE2_LDFLAGS=\$($LIBHACL_BLAKE2_LDFLAGS) $LIBHASHLIB_INTERNAL_LDFLAGS$as_nl"
+ as_fn_append MODULE_BLOCK "MODULE__BLAKE2_LDFLAGS=\$($LIBHACL_BLAKE2_LDFLAGS)$as_nl"
fi
if test "$py_cv_module__blake2" = yes; then
@@ -32986,6 +33074,9 @@ printf "%s\n" "$py_cv_module__blake2" >&6; }
LIBHACL_HMAC_LDFLAGS=LIBHACL_HMAC_LIB_${LIBHACL_LDEPS_LIBTYPE}
+ # LDFLAGS will not contain the internal library helper as it could
+ # be duplicated. Instead, it will be linked added only for the rule
+ # and will be otherwise added to the interpreter directly.
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdlib extension module _hmac" >&5
printf %s "checking for stdlib extension module _hmac... " >&6; }
@@ -33012,7 +33103,7 @@ fi
then :
as_fn_append MODULE_BLOCK "MODULE__HMAC_CFLAGS=$LIBHACL_CFLAGS $LIBHASHLIB_INTERNAL_CFLAGS$as_nl"
- as_fn_append MODULE_BLOCK "MODULE__HMAC_LDFLAGS=\$($LIBHACL_HMAC_LDFLAGS) $LIBHASHLIB_INTERNAL_LDFLAGS$as_nl"
+ as_fn_append MODULE_BLOCK "MODULE__HMAC_LDFLAGS=\$($LIBHACL_HMAC_LDFLAGS)$as_nl"
fi
if test "$py_cv_module__hmac" = yes; then
@@ -33694,7 +33785,7 @@ fi
then :
as_fn_append MODULE_BLOCK "MODULE__HASHLIB_CFLAGS=$OPENSSL_INCLUDES $LIBHASHLIB_INTERNAL_CFLAGS$as_nl"
- as_fn_append MODULE_BLOCK "MODULE__HASHLIB_LDFLAGS=$OPENSSL_LDFLAGS $OPENSSL_LDFLAGS_RPATH $LIBCRYPTO_LIBS $LIBHASHLIB_INTERNAL_LDFLAGS$as_nl"
+ as_fn_append MODULE_BLOCK "MODULE__HASHLIB_LDFLAGS=$OPENSSL_LDFLAGS $OPENSSL_LDFLAGS_RPATH $LIBCRYPTO_LIBS$as_nl"
fi
if test "$py_cv_module__hashlib" = yes; then
diff --git a/configure.ac b/configure.ac
index 1e590e1d0fd727..7f7d14bbb680aa 100644
--- a/configure.ac
+++ b/configure.ac
@@ -40,12 +40,14 @@ AC_DEFUN([SAVE_ENV],
[_SAVE_VAR([CPPFLAGS])]
[_SAVE_VAR([LDFLAGS])]
[_SAVE_VAR([LIBS])]
+[_SAVE_VAR([UNIQMODLIBS])]
)dnl
AC_DEFUN([RESTORE_ENV],
[_RESTORE_VAR([CFLAGS])]
[_RESTORE_VAR([CPPFLAGS])]
[_RESTORE_VAR([LDFLAGS])]
[_RESTORE_VAR([LIBS])]
+[_RESTORE_VAR([UNIQMODLIBS])]
)dnl
AC_DEFUN([WITH_SAVE_ENV],
[SAVE_ENV]
@@ -53,6 +55,9 @@ AC_DEFUN([WITH_SAVE_ENV],
[RESTORE_ENV]
)dnl
+UNIQMODLIBS=""
+AC_SUBST([UNIQMODLIBS])
+
dnl PY_CHECK_FUNC(FUNCTION, [INCLUDES], [AC_DEFINE-VAR])
AC_DEFUN([PY_CHECK_FUNC],
[ AS_VAR_PUSHDEF([py_var], [ac_cv_func_$1])
@@ -7961,10 +7966,12 @@ PY_STDLIB_MOD_SIMPLE([unicodedata])
###############################################################################
# Cryptographic primitives
LIBHASHLIB_INTERNAL_CFLAGS="-I\$(srcdir)/Modules/_hashlib"
-LIBHASHLIB_INTERNAL_LDFLAGS="-lm \$(LIBHASHLIB_INTERNAL_A)"
+LIBHASHLIB_INTERNAL_RULE_LDFLAGS="-lm \$(LIBHASHLIB_INTERNAL_A)"
LIBHASHLIB_INTERNAL="\$(LIBHASHLIB_INTERNAL_HEADERS) \$(LIBHASHLIB_INTERNAL_A)"
+UNIQMODLIBS="$UNIQMODLIBS \$(LIBHASHLIB_INTERNAL_A)"
AC_SUBST([LIBHASHLIB_INTERNAL_CFLAGS])
+AC_SUBST([LIBHASHLIB_INTERNAL_RULE_LDFLAGS])
AC_SUBST([LIBHASHLIB_INTERNAL])
###############################################################################
@@ -8103,9 +8110,12 @@ dnl The EXTNAME is the name of the extension module being built.
AC_DEFUN([PY_HACL_CREATE_MODULE], [
AS_VAR_PUSHDEF([v], [[LIBHACL_][$1][_LDFLAGS]])
AS_VAR_SET([v], [[LIBHACL_][$1][_LIB_${LIBHACL_LDEPS_LIBTYPE}]])
+ # LDFLAGS will not contain the internal library helper as it could
+ # be duplicated. Instead, it will be linked added only for the rule
+ # and will be otherwise added to the interpreter directly.
PY_STDLIB_MOD([$2], [$3], [],
[$LIBHACL_CFLAGS $LIBHASHLIB_INTERNAL_CFLAGS],
- [\$($v) $LIBHASHLIB_INTERNAL_LDFLAGS])
+ [\$($v)])
AS_VAR_POPDEF([v])
])
@@ -8187,7 +8197,7 @@ PY_STDLIB_MOD([_ssl], [], [test "$ac_cv_working_openssl_ssl" = yes],
[$OPENSSL_INCLUDES], [$OPENSSL_LDFLAGS $OPENSSL_LDFLAGS_RPATH $OPENSSL_LIBS])
PY_STDLIB_MOD([_hashlib], [], [test "$ac_cv_working_openssl_hashlib" = yes],
[$OPENSSL_INCLUDES $LIBHASHLIB_INTERNAL_CFLAGS],
- [$OPENSSL_LDFLAGS $OPENSSL_LDFLAGS_RPATH $LIBCRYPTO_LIBS $LIBHASHLIB_INTERNAL_LDFLAGS])
+ [$OPENSSL_LDFLAGS $OPENSSL_LDFLAGS_RPATH $LIBCRYPTO_LIBS])
dnl test modules
PY_STDLIB_MOD([_testcapi],