[Python-checkins] r82746 - in python/branches/py3k: Lib/sysconfig.py Makefile.pre.in Misc/NEWS Modules/makesetup configure configure.in

Jeffrey Yasskin jyasskin at gmail.com
Fri Jul 9 23:10:26 CEST 2010


Fixed by 82753:
http://python.org/dev/buildbot/stable/builders/amd64%20gentoo%203.x/builds/1354/steps/test/logs/stdio
Sorry about that.

On Fri, Jul 9, 2010 at 12:43 PM, Benjamin Peterson <benjamin at python.org> wrote:
> This broke Windows:
> http://python.org/dev/buildbot/stable/builders/amd64%20gentoo%203.x/builds/1352/steps/test/logs/stdio
>
> 2010/7/9 jeffrey.yasskin <python-checkins at python.org>:
>> Author: jeffrey.yasskin
>> Date: Fri Jul  9 18:30:58 2010
>> New Revision: 82746
>>
>> Log:
>> Issue #9189: Allow users to set $CFLAGS, $CPPFLAGS, and $LDFLAGS when running
>> configure to append to Python's default values for those variables, and
>> similarly allow users to set $XXFLAGS on the make command line to append to the
>> values set by configure.
>>
>> In the makefile, this renames the variables that used to be $XXFLAGS to
>> $PY_XXFLAGS, and renames the old $PY_CFLAGS to $PY_CORE_CFLAGS.  To compensate,
>> sysconfig now aliases $XXFLAGS=$PY_XXFLAGS so that scripts using it keep
>> working.  I see that as the right interface, not a backward-compatibility hack,
>> since these are logically the $XXFLAGS variables; we just use a different name
>> in the makefile to deal with make's semantics.
>>
>>
>> Modified:
>>   python/branches/py3k/Lib/sysconfig.py
>>   python/branches/py3k/Makefile.pre.in
>>   python/branches/py3k/Misc/NEWS
>>   python/branches/py3k/Modules/makesetup
>>   python/branches/py3k/configure
>>   python/branches/py3k/configure.in
>>
>> Modified: python/branches/py3k/Lib/sysconfig.py
>> ==============================================================================
>> --- python/branches/py3k/Lib/sysconfig.py       (original)
>> +++ python/branches/py3k/Lib/sysconfig.py       Fri Jul  9 18:30:58 2010
>> @@ -259,6 +259,11 @@
>>                 # bogus variable reference; just drop it since we can't deal
>>                 variables.remove(name)
>>
>> +    # Add in CFLAGS, LDFLAGS, and CPPFLAGS, which are named with a
>> +    # prefix in the Makefile.
>> +    for var in ('CFLAGS', 'LDFLAGS', 'CPPFLAGS'):
>> +        done[var] = done['PY_' + var]
>> +
>>     # save the results in the global dictionary
>>     vars.update(done)
>>     return vars
>>
>> Modified: python/branches/py3k/Makefile.pre.in
>> ==============================================================================
>> --- python/branches/py3k/Makefile.pre.in        (original)
>> +++ python/branches/py3k/Makefile.pre.in        Fri Jul  9 18:30:58 2010
>> @@ -59,12 +59,18 @@
>>  # Compiler options
>>  OPT=           @OPT@
>>  BASECFLAGS=    @BASECFLAGS@
>> -CFLAGS=                $(BASECFLAGS) @CFLAGS@ $(OPT) $(EXTRA_CFLAGS)
>> +CONFIGURE_CFLAGS=      @CFLAGS@
>> +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)
>>  # 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
>> -CPPFLAGS=      -I. -IInclude -I$(srcdir)/Include @CPPFLAGS@
>> -LDFLAGS=       @LDFLAGS@
>> +PY_CPPFLAGS=   -I. -IInclude -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) $(CPPFLAGS)
>> +PY_LDFLAGS=    $(CONFIGURE_LDFLAGS) $(LDFLAGS)
>>  LDLAST=                @LDLAST@
>>  SGI_ABI=       @SGI_ABI@
>>  CCSHARED=      @CCSHARED@
>> @@ -73,7 +79,7 @@
>>  # Extra C flags added for building the interpreter object files.
>>  CFLAGSFORSHARED=@CFLAGSFORSHARED@
>>  # C flags used for building the interpreter object files
>> -PY_CFLAGS=     $(CFLAGS) $(CPPFLAGS) $(CFLAGSFORSHARED) -DPy_BUILD_CORE
>> +PY_CORE_CFLAGS=        $(PY_CFLAGS) $(PY_CPPFLAGS) $(CFLAGSFORSHARED) -DPy_BUILD_CORE
>>
>>
>>  # Machine-dependent subdirectories
>> @@ -411,7 +417,7 @@
>>
>>  # Build the interpreter
>>  $(BUILDPYTHON):        Modules/python.o $(LIBRARY) $(LDLIBRARY)
>> -               $(LINKCC) $(LDFLAGS) $(LINKFORSHARED) -o $@ \
>> +               $(LINKCC) $(PY_LDFLAGS) $(LINKFORSHARED) -o $@ \
>>                        Modules/python.o \
>>                        $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
>>
>> @@ -422,8 +428,8 @@
>>  # Build the shared modules
>>  sharedmods: $(BUILDPYTHON)
>>        @case $$MAKEFLAGS in \
>> -       *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(LDFLAGS)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \
>> -       *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(LDFLAGS)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
>> +       *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(PY_LDFLAGS)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \
>> +       *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' LDFLAGS='$(PY_LDFLAGS)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
>>        esac
>>
>>  # Build static library
>> @@ -440,18 +446,18 @@
>>
>>  libpython$(VERSION).so: $(LIBRARY_OBJS)
>>        if test $(INSTSONAME) != $(LDLIBRARY); then \
>> -               $(LDSHARED) $(LDFLAGS) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
>> +               $(LDSHARED) $(PY_LDFLAGS) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
>>                $(LN) -f $(INSTSONAME) $@; \
>>        else \
>> -               $(LDSHARED) $(LDFLAGS) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
>> +               $(LDSHARED) $(PY_LDFLAGS) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
>>        fi
>>
>>  libpython$(VERSION).dylib: $(LIBRARY_OBJS)
>> -        $(CC) -dynamiclib -Wl,-single_module $(LDFLAGS) -undefined dynamic_lookup -Wl,-install_name,$(prefix)/lib/libpython$(VERSION).dylib -Wl,-compatibility_version,$(VERSION) -Wl,-current_version,$(VERSION) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
>> +        $(CC) -dynamiclib -Wl,-single_module $(PY_LDFLAGS) -undefined dynamic_lookup -Wl,-install_name,$(prefix)/lib/libpython$(VERSION).dylib -Wl,-compatibility_version,$(VERSION) -Wl,-current_version,$(VERSION) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
>>
>>
>>  libpython$(VERSION).sl: $(LIBRARY_OBJS)
>> -       $(LDSHARED) $(LDFLAGS) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST)
>> +       $(LDSHARED) $(PY_LDFLAGS) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST)
>>
>>  # Copy up the gdb python hooks into a position where they can be automatically
>>  # loaded by gdb during Lib/test/test_gdb.py
>> @@ -497,7 +503,7 @@
>>  # for a shared core library; otherwise, this rule is a noop.
>>  $(DLLLIBRARY) libpython$(VERSION).dll.a: $(LIBRARY_OBJS)
>>        if test -n "$(DLLLIBRARY)"; then \
>> -               $(LDSHARED) $(LDFLAGS) -Wl,--out-implib=$@ -o $(DLLLIBRARY) $^ \
>> +               $(LDSHARED) $(PY_LDFLAGS) -Wl,--out-implib=$@ -o $(DLLLIBRARY) $^ \
>>                        $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST); \
>>        else true; \
>>        fi
>> @@ -541,10 +547,10 @@
>>                $(SIGNAL_OBJS) \
>>                $(MODOBJS) \
>>                $(srcdir)/Modules/getbuildinfo.c
>> -       $(CC) -c $(PY_CFLAGS) -DSVNVERSION="\"`LC_ALL=C $(SVNVERSION)`\"" -o $@ $(srcdir)/Modules/getbuildinfo.c
>> +       $(CC) -c $(PY_CORE_CFLAGS) -DSVNVERSION="\"`LC_ALL=C $(SVNVERSION)`\"" -o $@ $(srcdir)/Modules/getbuildinfo.c
>>
>>  Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
>> -       $(CC) -c $(PY_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
>> +       $(CC) -c $(PY_CORE_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
>>                -DPREFIX='"$(prefix)"' \
>>                -DEXEC_PREFIX='"$(exec_prefix)"' \
>>                -DVERSION='"$(VERSION)"' \
>> @@ -552,7 +558,7 @@
>>                -o $@ $(srcdir)/Modules/getpath.c
>>
>>  Modules/python.o: $(srcdir)/Modules/python.c
>> -       $(MAINCC) -c $(PY_CFLAGS) -o $@ $(srcdir)/Modules/python.c
>> +       $(MAINCC) -c $(PY_CORE_CFLAGS) -o $@ $(srcdir)/Modules/python.c
>>
>>  $(IO_OBJS): $(IO_H)
>>
>> @@ -561,7 +567,7 @@
>>                -$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
>>
>>  $(PGEN):       $(PGENOBJS)
>> -               $(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
>> +               $(CC) $(OPT) $(PY_LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
>>
>>  Parser/grammar.o:      $(srcdir)/Parser/grammar.c \
>>                                $(srcdir)/Include/token.h \
>> @@ -581,10 +587,10 @@
>>  Python/compile.o Python/symtable.o Python/ast.o: $(GRAMMAR_H) $(AST_H)
>>
>>  Python/getplatform.o: $(srcdir)/Python/getplatform.c
>> -               $(CC) -c $(PY_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c
>> +               $(CC) -c $(PY_CORE_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c
>>
>>  Python/importdl.o: $(srcdir)/Python/importdl.c
>> -               $(CC) -c $(PY_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
>> +               $(CC) -c $(PY_CORE_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
>>
>>  Objects/unicodectype.o:        $(srcdir)/Objects/unicodectype.c \
>>                                $(srcdir)/Objects/unicodetype_db.h
>> @@ -1130,7 +1136,7 @@
>>
>>  # Some make's put the object file in the current directory
>>  .c.o:
>> -       $(CC) -c $(PY_CFLAGS) -o $@ $<
>> +       $(CC) -c $(PY_CORE_CFLAGS) -o $@ $<
>>
>>  # Run reindent on the library
>>  reindent:
>>
>> Modified: python/branches/py3k/Misc/NEWS
>> ==============================================================================
>> --- python/branches/py3k/Misc/NEWS      (original)
>> +++ python/branches/py3k/Misc/NEWS      Fri Jul  9 18:30:58 2010
>> @@ -1530,6 +1530,12 @@
>>  Build
>>  -----
>>
>> +- Issue #9189: Make a user-specified CFLAGS, CPPFLAGS, or LDFLAGS
>> +  setting override the configure and makefile defaults, without
>> +  deleting options the user didn't intend to override.  Developers
>> +  should no longer need to specify OPT or EXTRA_CFLAGS, although those
>> +  variables are still present for backward-compatibility.
>> +
>>  - Issue #8854: Fix finding Visual Studio 2008 on Windows x64.
>>
>>  - Issue #1759169, #8864: Drop _XOPEN_SOURCE on Solaris, define it for
>>
>> Modified: python/branches/py3k/Modules/makesetup
>> ==============================================================================
>> --- python/branches/py3k/Modules/makesetup      (original)
>> +++ python/branches/py3k/Modules/makesetup      Fri Jul  9 18:30:58 2010
>> @@ -219,7 +219,7 @@
>>                        case $doconfig in
>>                        no)     cc="$cc \$(CCSHARED) \$(CFLAGS) \$(CPPFLAGS)";;
>>                        *)
>> -                               cc="$cc \$(PY_CFLAGS)";;
>> +                               cc="$cc \$(PY_CORE_CFLAGS)";;
>>                        esac
>>                        rule="$obj: $src; $cc $cpps -c $src -o $obj"
>>                        echo "$rule" >>$rulesf
>>
>> Modified: python/branches/py3k/configure
>> ==============================================================================
>> --- python/branches/py3k/configure      (original)
>> +++ python/branches/py3k/configure      Fri Jul  9 18:30:58 2010
>> @@ -1929,11 +1929,11 @@
>>        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
>>  /* end confdefs.h.  */
>>  $ac_includes_default
>> +            enum { N = $2 / 2 - 1 };
>>  int
>>  main ()
>>  {
>> -static int test_array [1 - 2 * !(enum { N = $2 / 2 - 1 };
>> -            0 < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1))];
>> +static int test_array [1 - 2 * !(0 < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1))];
>>  test_array [0] = 0
>>
>>   ;
>> @@ -1944,11 +1944,11 @@
>>   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
>>  /* end confdefs.h.  */
>>  $ac_includes_default
>> +               enum { N = $2 / 2 - 1 };
>>  int
>>  main ()
>>  {
>> -static int test_array [1 - 2 * !(enum { N = $2 / 2 - 1 };
>> -               ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1)
>> +static int test_array [1 - 2 * !(($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1)
>>                 < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 2))];
>>  test_array [0] = 0
>>
>> @@ -3158,9 +3158,12 @@
>>  (it is also a good idea to do 'make clean' before compiling)" "$LINENO" 5
>>  fi
>>
>> -# If the user set CFLAGS, use this instead of the automatically
>> -# determined setting
>> -preset_cflags="$CFLAGS"
>> +# Don't let AC_PROG_CC set the default CFLAGS. It normally sets -g -O2
>> +# when the compiler supports them, but we don't always want -O2, and
>> +# we set -g later.
>> +if test -z "$CFLAGS"; then
>> +        CFLAGS=
>> +fi
>>  ac_ext=c
>>  ac_cpp='$CPP $CPPFLAGS'
>>  ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
>> @@ -3952,10 +3955,6 @@
>>  ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
>>  ac_compiler_gnu=$ac_cv_c_compiler_gnu
>>
>> -if test ! -z "$preset_cflags"
>> -then
>> -       CFLAGS=$preset_cflags
>> -fi
>>
>>
>>
>>
>> Modified: python/branches/py3k/configure.in
>> ==============================================================================
>> --- python/branches/py3k/configure.in   (original)
>> +++ python/branches/py3k/configure.in   Fri Jul  9 18:30:58 2010
>> @@ -461,14 +461,13 @@
>>  (it is also a good idea to do 'make clean' before compiling)])
>>  fi
>>
>> -# If the user set CFLAGS, use this instead of the automatically
>> -# determined setting
>> -preset_cflags="$CFLAGS"
>> -AC_PROG_CC
>> -if test ! -z "$preset_cflags"
>> -then
>> -       CFLAGS=$preset_cflags
>> +# Don't let AC_PROG_CC set the default CFLAGS. It normally sets -g -O2
>> +# when the compiler supports them, but we don't always want -O2, and
>> +# we set -g later.
>> +if test -z "$CFLAGS"; then
>> +        CFLAGS=
>>  fi
>> +AC_PROG_CC
>>
>>  AC_SUBST(CXX)
>>  AC_SUBST(MAINCC)
>> _______________________________________________
>> Python-checkins mailing list
>> Python-checkins at python.org
>> http://mail.python.org/mailman/listinfo/python-checkins
>>
>
>
>
> --
> Regards,
> Benjamin
>


More information about the Python-checkins mailing list