changeset: 92060:a5368cfbea0e parent: 92055:e6be001c070b parent: 92059:2a3538f14948 user: Benjamin Peterson date: Sat Aug 09 20:04:19 2014 -0700 files: Makefile.pre.in Misc/NEWS configure configure.ac setup.py description: merge 3.4 (#21121) diff -r e6be001c070b -r a5368cfbea0e Makefile.pre.in --- a/Makefile.pre.in Sun Aug 10 00:01:21 2014 +0200 +++ b/Makefile.pre.in Sat Aug 09 20:04:19 2014 -0700 @@ -71,12 +71,17 @@ BASECFLAGS= @BASECFLAGS@ BASECPPFLAGS= @BASECPPFLAGS@ CONFIGURE_CFLAGS= @CFLAGS@ +# CFLAGS_NODIST is used for building the interpreter and stdlib C extensions. +# Use it when a compiler flag should _not_ be part of the distutils CFLAGS +# once Python is installed (Issue #21121). +CONFIGURE_CFLAGS_NODIST=@CFLAGS_NODIST@ CONFIGURE_CPPFLAGS= @CPPFLAGS@ CONFIGURE_LDFLAGS= @LDFLAGS@ # Avoid assigning CFLAGS, LDFLAGS, etc. so users can use them on the # command line to append to these values without stomping the pre-set # values. PY_CFLAGS= $(BASECFLAGS) $(OPT) $(CONFIGURE_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) +PY_CFLAGS_NODIST=$(CONFIGURE_CFLAGS_NODIST) $(CFLAGS_NODIST) # 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 @@ -91,7 +96,7 @@ # Extra C flags added for building the interpreter object files. CFLAGSFORSHARED=@CFLAGSFORSHARED@ # C flags used for building the interpreter object files -PY_CORE_CFLAGS= $(PY_CFLAGS) $(PY_CPPFLAGS) $(CFLAGSFORSHARED) -DPy_BUILD_CORE +PY_CORE_CFLAGS= $(PY_CFLAGS) $(PY_CFLAGS_NODIST) $(PY_CPPFLAGS) $(CFLAGSFORSHARED) -DPy_BUILD_CORE # Machine-dependent subdirectories diff -r e6be001c070b -r a5368cfbea0e Misc/NEWS --- a/Misc/NEWS Sun Aug 10 00:01:21 2014 +0200 +++ b/Misc/NEWS Sat Aug 09 20:04:19 2014 -0700 @@ -121,6 +121,9 @@ - Issue #5411: Added support for the "xztar" format in the shutil module. +- Issue #21121: Don't force 3rd party C extensions to be built with + -Werror=declaration-after-statement. + - Issue #21975: Fixed crash when using uninitialized sqlite3.Row (in particular when unpickling pickled sqlite3.Row). sqlite3.Row is now initialized in the __new__() method. diff -r e6be001c070b -r a5368cfbea0e configure --- a/configure Sun Aug 10 00:01:21 2014 +0200 +++ b/configure Sat Aug 09 20:04:19 2014 -0700 @@ -662,6 +662,7 @@ LIBTOOL_CRUFT OTHER_LIBTOOL_OPT UNIVERSAL_ARCH_FLAGS +CFLAGS_NODIST BASECFLAGS OPT ABIFLAGS @@ -6347,6 +6348,7 @@ + # The -arch flags for universal builds on OSX UNIVERSAL_ARCH_FLAGS= @@ -6507,7 +6509,7 @@ if test $ac_cv_declaration_after_statement_warning = yes then - BASECFLAGS="$BASECFLAGS -Werror=declaration-after-statement" + CFLAGS_NODIST="$CFLAGS_NODIST -Werror=declaration-after-statement" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can turn on $CC mixed sign comparison warning" >&5 diff -r e6be001c070b -r a5368cfbea0e configure.ac --- a/configure.ac Sun Aug 10 00:01:21 2014 +0200 +++ b/configure.ac Sat Aug 09 20:04:19 2014 -0700 @@ -1147,6 +1147,7 @@ fi AC_SUBST(BASECFLAGS) +AC_SUBST(CFLAGS_NODIST) # The -arch flags for universal builds on OSX UNIVERSAL_ARCH_FLAGS= @@ -1231,7 +1232,7 @@ if test $ac_cv_declaration_after_statement_warning = yes then - BASECFLAGS="$BASECFLAGS -Werror=declaration-after-statement" + CFLAGS_NODIST="$CFLAGS_NODIST -Werror=declaration-after-statement" fi AC_MSG_CHECKING(if we can turn on $CC mixed sign comparison warning) diff -r e6be001c070b -r a5368cfbea0e setup.py --- a/setup.py Sun Aug 10 00:01:21 2014 +0200 +++ b/setup.py Sat Aug 09 20:04:19 2014 -0700 @@ -19,6 +19,12 @@ cross_compiling = "_PYTHON_HOST_PLATFORM" in os.environ +# Add special CFLAGS reserved for building the interpreter and the stdlib +# modules (Issue #21121). +cflags = sysconfig.get_config_var('CFLAGS') +py_cflags_nodist = sysconfig.get_config_var('PY_CFLAGS_NODIST') +sysconfig.get_config_vars()['CFLAGS'] = cflags + ' ' + py_cflags_nodist + def get_platform(): # cross build if "_PYTHON_HOST_PLATFORM" in os.environ: