Hi David, A couple comments ...
On Thu, 2007-06-28 at 14:36 -0500, David Greene wrote: > > Changes in directory llvm: > > configure updated: 1.277 -> 1.278 > Makefile.rules updated: 1.435 -> 1.436 > Makefile.config.in updated: 1.76 -> 1.77 > --- > Log message: > > Add support for building with _GLIBCXX_DEBUG. New configure option > --enable-expensive-checks allows the developer to enable runtime > checking that can greatly increase compile time. Currently it only > turns on _GLIBCXX_DEBUG. Other expensive debugging checks added later > should be controlled by this configure option. > > This patch also updates llvm-config with a --cppflags option to inform > llvm-gcc how to build itself so that it is compatible with an llvm that > was built with _GLIBCXX_DEBUG. Sounds good. > > > --- > Diffs of the changes: (+66 -28) > > Makefile.config.in | 5 +++ > Makefile.rules | 10 ++++++ > configure | 79 > ++++++++++++++++++++++++++++++++++------------------- > 3 files changed, 66 insertions(+), 28 deletions(-) > > > Index: llvm/configure Please don't commit generated files with non-generated files. > diff -u llvm/configure:1.277 llvm/configure:1.278 > --- llvm/configure:1.277 Thu May 17 13:11:03 2007 > +++ llvm/configure Thu Jun 28 14:36:07 2007 > @@ -830,6 +830,8 @@ > CVSBUILD > ENABLE_OPTIMIZED > DISABLE_ASSERTIONS > +ENABLE_EXPENSIVE_CHECKS > +EXPENSIVE_CHECKS > DEBUG_RUNTIME > JIT > TARGET_HAS_JIT > @@ -1525,6 +1527,8 @@ > --enable-FEATURE[=ARG] include FEATURE [ARG=yes] > --enable-optimized > --enable-assertions > + --enable-expensive-checks > + > --enable-debug-runtime > --enable-jit Enable Just In Time Compiling (default is YES) > --enable-doxygen Build doxygen documentation (default is NO) > @@ -4577,6 +4581,25 @@ > > fi > > +# Check whether --enable-expensive-checks was given. > +if test "${enable_expensive_checks+set}" = set; then > + enableval=$enable_expensive_checks; > +else > + enableval="no" > +fi > + > +if test ${enableval} = "yes" ; then > + ENABLE_EXPENSIVE_CHECKS=ENABLE_EXPENSIVE_CHECKS=1 > + > + EXPENSIVE_CHECKS=yes > + > +else > + ENABLE_EXPENSIVE_CHECKS= > + > + EXPENSIVE_CHECKS=no > + > +fi > + > # Check whether --enable-debug-runtime was given. > if test "${enable_debug_runtime+set}" = set; then > enableval=$enable_debug_runtime; > @@ -10343,7 +10366,7 @@ > lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 > lt_status=$lt_dlunknown > cat > conftest.$ac_ext <<EOF > -#line 10346 "configure" > +#line 10369 "configure" > #include "confdefs.h" > > #if HAVE_DLFCN_H > @@ -12487,7 +12510,7 @@ > ;; > *-*-irix6*) > # Find out which ABI we are using. > - echo '#line 12490 "configure"' > conftest.$ac_ext > + echo '#line 12513 "configure"' > conftest.$ac_ext > if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 > (eval $ac_compile) 2>&5 > ac_status=$? > @@ -14205,11 +14228,11 @@ > -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ > -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ > -e 's:$: $lt_compiler_flag:'` > - (eval echo "\"\$as_me:14208: $lt_compile\"" >&5) > + (eval echo "\"\$as_me:14231: $lt_compile\"" >&5) > (eval "$lt_compile" 2>conftest.err) > ac_status=$? > cat conftest.err >&5 > - echo "$as_me:14212: \$? = $ac_status" >&5 > + echo "$as_me:14235: \$? = $ac_status" >&5 > if (exit $ac_status) && test -s "$ac_outfile"; then > # The compiler can only warn and ignore the option if not recognized > # So say no if there are warnings other than the usual output. > @@ -14473,11 +14496,11 @@ > -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ > -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ > -e 's:$: $lt_compiler_flag:'` > - (eval echo "\"\$as_me:14476: $lt_compile\"" >&5) > + (eval echo "\"\$as_me:14499: $lt_compile\"" >&5) > (eval "$lt_compile" 2>conftest.err) > ac_status=$? > cat conftest.err >&5 > - echo "$as_me:14480: \$? = $ac_status" >&5 > + echo "$as_me:14503: \$? = $ac_status" >&5 > if (exit $ac_status) && test -s "$ac_outfile"; then > # The compiler can only warn and ignore the option if not recognized > # So say no if there are warnings other than the usual output. > @@ -14577,11 +14600,11 @@ > -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ > -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ > -e 's:$: $lt_compiler_flag:'` > - (eval echo "\"\$as_me:14580: $lt_compile\"" >&5) > + (eval echo "\"\$as_me:14603: $lt_compile\"" >&5) > (eval "$lt_compile" 2>out/conftest.err) > ac_status=$? > cat out/conftest.err >&5 > - echo "$as_me:14584: \$? = $ac_status" >&5 > + echo "$as_me:14607: \$? = $ac_status" >&5 > if (exit $ac_status) && test -s out/conftest2.$ac_objext > then > # The compiler can only warn and ignore the option if not recognized > @@ -17029,7 +17052,7 @@ > lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 > lt_status=$lt_dlunknown > cat > conftest.$ac_ext <<EOF > -#line 17032 "configure" > +#line 17055 "configure" > #include "confdefs.h" > > #if HAVE_DLFCN_H > @@ -17129,7 +17152,7 @@ > lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 > lt_status=$lt_dlunknown > cat > conftest.$ac_ext <<EOF > -#line 17132 "configure" > +#line 17155 "configure" > #include "confdefs.h" > > #if HAVE_DLFCN_H > @@ -19497,11 +19520,11 @@ > -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ > -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ > -e 's:$: $lt_compiler_flag:'` > - (eval echo "\"\$as_me:19500: $lt_compile\"" >&5) > + (eval echo "\"\$as_me:19523: $lt_compile\"" >&5) > (eval "$lt_compile" 2>conftest.err) > ac_status=$? > cat conftest.err >&5 > - echo "$as_me:19504: \$? = $ac_status" >&5 > + echo "$as_me:19527: \$? = $ac_status" >&5 > if (exit $ac_status) && test -s "$ac_outfile"; then > # The compiler can only warn and ignore the option if not recognized > # So say no if there are warnings other than the usual output. > @@ -19601,11 +19624,11 @@ > -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ > -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ > -e 's:$: $lt_compiler_flag:'` > - (eval echo "\"\$as_me:19604: $lt_compile\"" >&5) > + (eval echo "\"\$as_me:19627: $lt_compile\"" >&5) > (eval "$lt_compile" 2>out/conftest.err) > ac_status=$? > cat out/conftest.err >&5 > - echo "$as_me:19608: \$? = $ac_status" >&5 > + echo "$as_me:19631: \$? = $ac_status" >&5 > if (exit $ac_status) && test -s out/conftest2.$ac_objext > then > # The compiler can only warn and ignore the option if not recognized > @@ -21171,11 +21194,11 @@ > -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ > -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ > -e 's:$: $lt_compiler_flag:'` > - (eval echo "\"\$as_me:21174: $lt_compile\"" >&5) > + (eval echo "\"\$as_me:21197: $lt_compile\"" >&5) > (eval "$lt_compile" 2>conftest.err) > ac_status=$? > cat conftest.err >&5 > - echo "$as_me:21178: \$? = $ac_status" >&5 > + echo "$as_me:21201: \$? = $ac_status" >&5 > if (exit $ac_status) && test -s "$ac_outfile"; then > # The compiler can only warn and ignore the option if not recognized > # So say no if there are warnings other than the usual output. > @@ -21275,11 +21298,11 @@ > -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ > -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ > -e 's:$: $lt_compiler_flag:'` > - (eval echo "\"\$as_me:21278: $lt_compile\"" >&5) > + (eval echo "\"\$as_me:21301: $lt_compile\"" >&5) > (eval "$lt_compile" 2>out/conftest.err) > ac_status=$? > cat out/conftest.err >&5 > - echo "$as_me:21282: \$? = $ac_status" >&5 > + echo "$as_me:21305: \$? = $ac_status" >&5 > if (exit $ac_status) && test -s out/conftest2.$ac_objext > then > # The compiler can only warn and ignore the option if not recognized > @@ -23510,11 +23533,11 @@ > -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ > -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ > -e 's:$: $lt_compiler_flag:'` > - (eval echo "\"\$as_me:23513: $lt_compile\"" >&5) > + (eval echo "\"\$as_me:23536: $lt_compile\"" >&5) > (eval "$lt_compile" 2>conftest.err) > ac_status=$? > cat conftest.err >&5 > - echo "$as_me:23517: \$? = $ac_status" >&5 > + echo "$as_me:23540: \$? = $ac_status" >&5 > if (exit $ac_status) && test -s "$ac_outfile"; then > # The compiler can only warn and ignore the option if not recognized > # So say no if there are warnings other than the usual output. > @@ -23778,11 +23801,11 @@ > -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ > -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ > -e 's:$: $lt_compiler_flag:'` > - (eval echo "\"\$as_me:23781: $lt_compile\"" >&5) > + (eval echo "\"\$as_me:23804: $lt_compile\"" >&5) > (eval "$lt_compile" 2>conftest.err) > ac_status=$? > cat conftest.err >&5 > - echo "$as_me:23785: \$? = $ac_status" >&5 > + echo "$as_me:23808: \$? = $ac_status" >&5 > if (exit $ac_status) && test -s "$ac_outfile"; then > # The compiler can only warn and ignore the option if not recognized > # So say no if there are warnings other than the usual output. > @@ -23882,11 +23905,11 @@ > -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ > -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ > -e 's:$: $lt_compiler_flag:'` > - (eval echo "\"\$as_me:23885: $lt_compile\"" >&5) > + (eval echo "\"\$as_me:23908: $lt_compile\"" >&5) > (eval "$lt_compile" 2>out/conftest.err) > ac_status=$? > cat out/conftest.err >&5 > - echo "$as_me:23889: \$? = $ac_status" >&5 > + echo "$as_me:23912: \$? = $ac_status" >&5 > if (exit $ac_status) && test -s out/conftest2.$ac_objext > then > # The compiler can only warn and ignore the option if not recognized > @@ -34342,6 +34365,8 @@ > CVSBUILD!$CVSBUILD$ac_delim > ENABLE_OPTIMIZED!$ENABLE_OPTIMIZED$ac_delim > DISABLE_ASSERTIONS!$DISABLE_ASSERTIONS$ac_delim > +ENABLE_EXPENSIVE_CHECKS!$ENABLE_EXPENSIVE_CHECKS$ac_delim > +EXPENSIVE_CHECKS!$EXPENSIVE_CHECKS$ac_delim > DEBUG_RUNTIME!$DEBUG_RUNTIME$ac_delim > JIT!$JIT$ac_delim > TARGET_HAS_JIT!$TARGET_HAS_JIT$ac_delim > @@ -34363,8 +34388,6 @@ > BISON!$BISON$ac_delim > NM!$NM$ac_delim > ifGNUmake!$ifGNUmake$ac_delim > -LN_S!$LN_S$ac_delim > -CMP!$CMP$ac_delim > _ACEOF > > if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; > then > @@ -34406,6 +34429,8 @@ > ac_delim='%!_!# ' > for ac_last_try in false false false false false :; do > cat >conf$$subs.sed <<_ACEOF > +LN_S!$LN_S$ac_delim > +CMP!$CMP$ac_delim > CP!$CP$ac_delim > DATE!$DATE$ac_delim > FIND!$FIND$ac_delim > @@ -34477,7 +34502,7 @@ > LTLIBOBJS!$LTLIBOBJS$ac_delim > _ACEOF > > - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 69; > then > + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 71; > then > break > elif $ac_last_try; then > { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 > > > Index: llvm/Makefile.rules > diff -u llvm/Makefile.rules:1.435 llvm/Makefile.rules:1.436 > --- llvm/Makefile.rules:1.435 Thu May 17 17:51:35 2007 > +++ llvm/Makefile.rules Thu Jun 28 14:36:08 2007 > @@ -260,6 +260,13 @@ > C.Flags += -D_DEBUG > endif > > +# If DISABLE_EXPENSIVE_CHECKS=1 is specified (make command line or > configured), > +# then disable expensive checks by defining the appropriate preprocessor > symbols. This comment doesn't jive with the code below. The comment talks about DISABLE_* while the code is for ENABLE_* .. please synchronize > +ifdef ENABLE_EXPENSIVE_CHECKS > + BuildMode := $(BuildMode)+Checks > + CXX.Flags += -D_GLIBCXX_DEBUG > +endif > + > ifeq ($(ENABLE_PIC),1) > CXX.Flags += -fPIC > C.Flags += -fPIC > @@ -267,7 +274,8 @@ > > CXX.Flags += $(CXXFLAGS) -Woverloaded-virtual > C.Flags += $(CFLAGS) > -CPP.BaseFlags += $(CPPFLAGS) > +CPP.Defines += $(CPPFLAGS) > +CPP.BaseFlags += $(CPP.Defines) You're introducing CPP.Defines but I don't see it used in this file. Is this for future use? > LD.Flags += $(LDFLAGS) > AR.Flags := cru > LibTool.Flags := --tag=CXX > > > Index: llvm/Makefile.config.in > diff -u llvm/Makefile.config.in:1.76 llvm/Makefile.config.in:1.77 > --- llvm/Makefile.config.in:1.76 Sat Apr 21 16:28:12 2007 > +++ llvm/Makefile.config.in Thu Jun 28 14:36:08 2007 > @@ -209,6 +209,11 @@ > #DISABLE_ASSERTIONS = 1 > @DISABLE_ASSERTIONS@ > > +# When ENABLE_EXPENSIVE_CHECKS is enabled, builds of all of the LLVM > +# code will include expensive checks, otherwise they are excluded. > +#ENABLE_EXPENSIVE_CHECKS = 0 > [EMAIL PROTECTED]@ > + > # When DEBUG_RUNTIME is enabled, the runtime libraries will retain debug > # symbols. > #DEBUG_RUNTIME = 1 Looks good. Thanks, David. Reid. > > > > _______________________________________________ > llvm-commits mailing list > llvm-commits@cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits