Skip to content

Commit

Permalink
pythongh-115119: Fall back to bundled libmpdec if system libmpdec is …
Browse files Browse the repository at this point in the history
…not found (python#119196)
  • Loading branch information
erlend-aasland authored May 20, 2024
1 parent 72d07dd commit 642b25b
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 12 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fall back to the bundled libmpdec if a system version cannot be found.
20 changes: 14 additions & 6 deletions configure

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 13 additions & 6 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -3980,16 +3980,21 @@ AC_ARG_WITH(
[with_system_libmpdec="yes"])
AC_MSG_RESULT([$with_system_libmpdec])

AC_DEFUN([USE_BUNDLED_LIBMPDEC],
[LIBMPDEC_CFLAGS="-I\$(srcdir)/Modules/_decimal/libmpdec"
LIBMPDEC_LIBS="-lm \$(LIBMPDEC_A)"
LIBMPDEC_INTERNAL="\$(LIBMPDEC_HEADERS) \$(LIBMPDEC_A)"
have_mpdec=yes
with_system_libmpdec=no])

AS_VAR_IF(
[with_system_libmpdec], [yes],
[PKG_CHECK_MODULES(
[LIBMPDEC], [libmpdec >= 2.5.0], [],
[LIBMPDEC_CFLAGS=${LIBMPDEC_CFLAGS-""}
LIBMPDEC_LIBS=${LIBMPDEC_LIBS-"-lmpdec -lm"}
LIBMPDEC_INTERNAL=])],
[LIBMPDEC_CFLAGS="-I\$(srcdir)/Modules/_decimal/libmpdec"
LIBMPDEC_LIBS="-lm \$(LIBMPDEC_A)"
LIBMPDEC_INTERNAL="\$(LIBMPDEC_HEADERS) \$(LIBMPDEC_A)"])
[USE_BUNDLED_LIBMPDEC()])

AS_VAR_IF([with_system_libmpdec], [yes],
[WITH_SAVE_ENV([
Expand All @@ -4006,13 +4011,15 @@ AS_VAR_IF([with_system_libmpdec], [yes],
[have_mpdec=yes],
[have_mpdec=no])
])],
[AS_VAR_SET([have_mpdec], [yes])
AC_MSG_WARN([m4_normalize([
[AC_MSG_WARN([m4_normalize([
the bundled copy of libmpdecimal is scheduled for removal in Python 3.15;
consider using a system installed mpdecimal library.])])])

AS_IF([test "$with_system_libmpdec" = "yes" && test "$have_mpdec" = "no"],
[AC_MSG_WARN([no system libmpdecimal found; unable to build _decimal])])
[AC_MSG_WARN([m4_normalize([
no system libmpdecimal found; falling back to bundled libmpdecimal
(deprecated and scheduled for removal in Python 3.15)])])
USE_BUNDLED_LIBMPDEC()])

# Disable forced inlining in debug builds, see GH-94847
AS_VAR_IF(
Expand Down

0 comments on commit 642b25b

Please sign in to comment.