Skip to content

Commit 3c0c367

Browse files
committed
gh-131842: Allow to pass custom CFLAGS and LDFLAGS to the compilation of builtin extension modules
Signed-off-by: Pablo Galindo <pablogsal@gmail.com>
1 parent 56d0f9a commit 3c0c367

File tree

6 files changed

+33
-3
lines changed

6 files changed

+33
-3
lines changed

Doc/using/configure.rst

+19-1
Original file line numberDiff line numberDiff line change
@@ -1396,12 +1396,21 @@ Compiler flags
13961396

13971397
.. versionadded:: 3.2
13981398

1399+
.. envvar:: CFLAGS_BUILTIN_MODULE
1400+
1401+
Equivalent flag to :envvar:`CFLAGS_NODIST` but it only applies to builtin extension
1402+
modules built as part of the standard library.
1403+
1404+
Default: (empty).
1405+
1406+
.. versionadded:: 3.13
1407+
13991408
.. envvar:: PY_BUILTIN_MODULE_CFLAGS
14001409

14011410
Compiler flags to build a standard library extension module as a built-in
14021411
module, like the :mod:`posix` module.
14031412

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

14061415
.. versionadded:: 3.8
14071416

@@ -1495,6 +1504,15 @@ Linker flags
14951504

14961505
.. versionadded:: 3.8
14971506

1507+
.. envvar:: LDFLAGS_BUILTIN_MODULE
1508+
1509+
Equivalent flag to :envvar:`LDLAGS_NODIST` but it only applies to builtin extension
1510+
modules built as part of the standard library.
1511+
1512+
Default: (empty).
1513+
1514+
.. versionadded:: 3.13
1515+
14981516

14991517
.. rubric:: Footnotes
15001518

Makefile.pre.in

+4-1
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)
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

+2-1
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

+4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

configure.ac

+2
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)