Skip to content

Commit 346768b

Browse files
committed
gh-131842: Allow to pass custom CFLAGS and LDFLAGS to the compilation of builtin extension modules
1 parent 56d0f9a commit 346768b

File tree

6 files changed

+24
-3
lines changed

6 files changed

+24
-3
lines changed

Doc/using/configure.rst

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1401,7 +1401,7 @@ Compiler flags
14011401
Compiler flags to build a standard library extension module as a built-in
14021402
module, like the :mod:`posix` module.
14031403

1404-
Default: ``$(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN``.
1404+
Default: ``$(BUILTIN_MODULE_CFLAGS) $(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN``.
14051405

14061406
.. versionadded:: 3.8
14071407

@@ -1495,6 +1495,15 @@ Linker flags
14951495

14961496
.. versionadded:: 3.8
14971497

1498+
.. envvar:: PY_BUILTIN_MODULE_LDFLAHS
1499+
1500+
Linker flags to build a standard library extension module as a built-in
1501+
module, like the :mod:`posix` module.
1502+
1503+
Default: ``$(BUILTIN_MODULE_LDFLAGS)`.
1504+
1505+
.. versionadded:: 3.13
1506+
14981507
14991508
.. rubric:: Footnotes
15001509

Makefile.pre.in

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,11 @@ ARFLAGS= @ARFLAGS@
119119
# Extra C flags added for building the interpreter object files.
120120
CFLAGSFORSHARED=@CFLAGSFORSHARED@
121121
# C flags used for building the interpreter object files
122+
CFLAGS_BUILTIN_MODULE= @CFLAGS_BUILTIN_MODULE@
123+
LDFLAGS_BUILTIN_MODULE= @LDFLAGS_BUILTIN_MODULE@
122124
PY_STDMODULE_CFLAGS= $(PY_CFLAGS) $(PY_CFLAGS_NODIST) $(PY_CPPFLAGS) $(CFLAGSFORSHARED)
123-
PY_BUILTIN_MODULE_CFLAGS= $(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN
125+
PY_BUILTIN_MODULE_CFLAGS= $(CFLAGS_BUILTIN_MODULE) $(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN
126+
PY_BUILTIN_MODULE_LDFLAGS= $(LDFLAGS_BUILTIN_MODULE)
124127
PY_CORE_CFLAGS= $(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE
125128
# Linker flags used for building the interpreter object files
126129
PY_CORE_LDFLAGS=$(PY_LDFLAGS) $(PY_LDFLAGS_NODIST)
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Allow to pass custom ``CFLAGS`` and ``LDFLAGS`` to the compilation of
2+
builtin extension modules. Patch by Pablo Galindo

Modules/makesetup

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,8 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' |
274274
;;
275275
esac
276276
rule="$file: $objs"
277-
rule="$rule; \$(BLDSHARED) $objs $libs \$(LIBPYTHON) -o $file"
277+
ldd="\$(BLDSHARED) \$(PY_BUILTIN_MODULE_LDFLAGS)"
278+
rule="$rule; $ldd $objs $libs \$(LIBPYTHON) -o $file"
278279
echo "$rule" >>$rulesf
279280
done
280281
done

configure

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

configure.ac

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2432,7 +2432,9 @@ AS_CASE([$enable_wasm_dynamic_linking],
24322432

24332433
AC_SUBST([BASECFLAGS])
24342434
AC_SUBST([CFLAGS_NODIST])
2435+
AC_SUBST([CFLAGS_BUILTIN_MODULE])
24352436
AC_SUBST([LDFLAGS_NODIST])
2437+
AC_SUBST([LDFLAGS_BUILTIN_MODULE])
24362438
AC_SUBST([LDFLAGS_NOLTO])
24372439
AC_SUBST([WASM_ASSETS_DIR])
24382440
AC_SUBST([WASM_STDLIB])

0 commit comments

Comments
 (0)