diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py index aae0f27cb57..1bd62097f04 100644 --- a/Lib/distutils/sysconfig.py +++ b/Lib/distutils/sysconfig.py @@ -146,8 +146,9 @@ def customize_compiler(compiler): varies across Unices and is stored in Python's Makefile. """ if compiler.compiler_type == "unix": - (cc, cxx, opt, basecflags, ccshared, ldshared, so_ext) = \ - get_config_vars('CC', 'CXX', 'OPT', 'BASECFLAGS', 'CCSHARED', 'LDSHARED', 'SO') + (cc, cxx, opt, extra_cflags, basecflags, ccshared, ldshared, so_ext) = \ + get_config_vars('CC', 'CXX', 'OPT', 'EXTRA_CFLAGS', 'BASECFLAGS', + 'CCSHARED', 'LDSHARED', 'SO') if os.environ.has_key('CC'): cc = os.environ['CC'] @@ -171,7 +172,7 @@ def customize_compiler(compiler): opt = opt + ' ' + os.environ['CPPFLAGS'] ldshared = ldshared + ' ' + os.environ['CPPFLAGS'] - cc_cmd = cc + ' ' + opt + cc_cmd = ' '.join(str(x) for x in (cc, opt, extra_cflags) if x) compiler.set_executables( preprocessor=cpp, compiler=cc_cmd, diff --git a/Makefile.pre.in b/Makefile.pre.in index e4d9008d50a..7b440f31188 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -55,7 +55,7 @@ MAKESETUP= $(srcdir)/Modules/makesetup # Compiler options OPT= @OPT@ BASECFLAGS= @BASECFLAGS@ -CFLAGS= $(BASECFLAGS) $(OPT) +CFLAGS= $(BASECFLAGS) $(OPT) $(EXTRA_CFLAGS) # Both CPPFLAGS and LDFLAGS need to contain the shell's value for setup.py to # be able to build extension modules using the directories specified in the # environment variables diff --git a/Misc/NEWS b/Misc/NEWS index 23f760b774b..1557a46ce1b 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -276,6 +276,11 @@ Library Build ----- +- EXTRA_CFLAGS has been introduced as an environment variable to hold compiler + flags that change binary compatibility. Changes were also made to + distutils.sysconfig to also use the environment variable when used during + compilation of the interpreter. + - SF patch 1171735: Darwin 8's headers are anal about POSIX compliance, and linking has changed (prebinding is now deprecated, and libcc_dynamic no longer exists). This configure patch makes things right. diff --git a/Misc/SpecialBuilds.txt b/Misc/SpecialBuilds.txt index feff20e5cd7..811147668f6 100644 --- a/Misc/SpecialBuilds.txt +++ b/Misc/SpecialBuilds.txt @@ -1,9 +1,8 @@ This file describes some special Python build types enabled via compile-time preprocessor defines. -It is best to define these options in the OPT environment variable; -``OPT="-DPy_REF_DEBUG" ./configure``. If you want the default values of -OPT to also be included you will need to add them in yourself manually. +It is best to define these options in the EXTRA_FLAGS environment variable; +``EXTRA_CFLAGS="-DPy_REF_DEBUG" ./configure``. --------------------------------------------------------------------------- Py_REF_DEBUG introduced in 1.4 diff --git a/README b/README index dedd3bd2e45..f1c3a890ea1 100644 --- a/README +++ b/README @@ -827,6 +827,9 @@ the -Wall and -Wstrict-prototypes options. Additional debugging code to help debug memory management problems can be enabled by using the --with-pydebug option to the configure script. +For flags that change binary compatibility, use the EXTRA_CFLAGS +variable. + Profiling ---------