You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stdcxx.apache.org by se...@apache.org on 2011/03/06 00:27:47 UTC

svn commit: r1078388 - in /stdcxx/branches/4.2.x: ./ etc/config/ etc/config/src/

Author: sebor
Date: Sat Mar  5 23:27:46 2011
New Revision: 1078388

URL: http://svn.apache.org/viewvc?rev=1078388&view=rev
Log:
2011-03-05  Martin Sebor  <se...@apache.org>

	STDCXX-1052
	* GNUmakefile (MAKEFILE_IN): Added LIBM.
	* etc/config/makefile.common (LDLIBS): Replaced -lm with $(LIBM).
	* etc/config/GNUmakefile.cfg (LDFLAGS): Same.
	(config): Added a descriptive message to the generated vars.sh.
	* etc/config/src/libc_decl.sh: Repaced lib with libname and libopt,
	used LIBM, and avoided hardcoding -lc and -lm.
	* etc/config/sunpro.config: Added LIBM.
	* etc/config/acc.config: Same.
	* etc/config/reliant_cds.config: Same.
	* etc/config/mipspro.config: Same.
	* etc/config/gcc.config: Same.
	* etc/config/como.config: Same.
	* etc/config/icc.config: Same.
	* etc/config/osf_cxx.config: Same.
	* etc/config/vacpp.config: Same.
	* etc/config/eccp.config: Same.

Modified:
    stdcxx/branches/4.2.x/GNUmakefile
    stdcxx/branches/4.2.x/etc/config/GNUmakefile.cfg
    stdcxx/branches/4.2.x/etc/config/acc.config
    stdcxx/branches/4.2.x/etc/config/como.config
    stdcxx/branches/4.2.x/etc/config/eccp.config
    stdcxx/branches/4.2.x/etc/config/gcc.config
    stdcxx/branches/4.2.x/etc/config/icc.config
    stdcxx/branches/4.2.x/etc/config/makefile.common
    stdcxx/branches/4.2.x/etc/config/mipspro.config
    stdcxx/branches/4.2.x/etc/config/osf_cxx.config
    stdcxx/branches/4.2.x/etc/config/reliant_cds.config
    stdcxx/branches/4.2.x/etc/config/src/libc_decl.sh
    stdcxx/branches/4.2.x/etc/config/sunpro.config
    stdcxx/branches/4.2.x/etc/config/vacpp.config

Modified: stdcxx/branches/4.2.x/GNUmakefile
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/GNUmakefile?rev=1078388&r1=1078387&r2=1078388&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/GNUmakefile (original)
+++ stdcxx/branches/4.2.x/GNUmakefile Sat Mar  5 23:27:46 2011
@@ -121,6 +121,10 @@
 #
 #   DEPENDDIR - the subdirectory where dependency files will reside
 #
+#   LIBM      - the linker option to link with the math library
+#               (typically -lm, may be unnecessary or not even exist
+#               on some systems) 
+#
 #   LIBNAME   - full name of the library being built
 #
 #   LIBVER    - library version number in the <major>.<minor>.<micro> format
@@ -600,6 +604,11 @@ endef   # make-builddir
 
 
 # create $(MAKEFILE_IN)
+#
+# NOTE: adding a new variable here that is used by the configuration
+#       machinery requires replacing $BUILDDIR/$(MAKEFILE_IN) as well
+#       as $BUILDDIR/include/vars.sh generated from this file and
+#       used by the libc_decl.sh script
 $(MAKEFILE_IN): $(configpath)
 	@(   $(make-builddir);                                              \
              echo "generating $(MAKEFILE_IN) from $(configpath)"            \
@@ -625,6 +634,7 @@ $(MAKEFILE_IN): $(configpath)
           && echo "LDFLAGS    = $(LDFLAGS)"              >> $(MAKEFILE_IN)  \
           && echo "LDLIBS     = $(LDLIBS)"               >> $(MAKEFILE_IN)  \
           && echo "LDSOFLAGS  = $(LDSOFLAGS)"            >> $(MAKEFILE_IN)  \
+          && echo "LIBM       = $(LIBM)"                 >> $(MAKEFILE_IN)  \
           && echo "MAPFLAGS   = $(MAPFLAGS)"             >> $(MAKEFILE_IN)  \
           && echo "RPATH      = $(RPATH)"                >> $(MAKEFILE_IN)  \
           && [ "$(MAPFILE)" = "" ]                                          \
@@ -652,7 +662,7 @@ $(MAKEFILE_IN): $(configpath)
           && echo "CADVISEFLAGS = $(CADVISEFLAGS)"       >> $(MAKEFILE_IN)  \
           && echo "WITH_PURIFY = $(WITH_PURIFY)"         >> $(MAKEFILE_IN)  \
           && echo "PURIFYFLAGS = $(PURIFYFLAGS)"         >> $(MAKEFILE_IN)  \
-          && echo "CXX_REPOSITORY = $(CXX_REPOSITORY)"	 >> $(MAKEFILE_IN));
+          && echo "CXX_REPOSITORY = $(CXX_REPOSITORY)"   >> $(MAKEFILE_IN));
 
 # creates the build directory tree and generates makefile.in
 builddir: $(MAKEFILE_IN)

Modified: stdcxx/branches/4.2.x/etc/config/GNUmakefile.cfg
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/etc/config/GNUmakefile.cfg?rev=1078388&r1=1078387&r2=1078388&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/etc/config/GNUmakefile.cfg (original)
+++ stdcxx/branches/4.2.x/etc/config/GNUmakefile.cfg Sat Mar  5 23:27:46 2011
@@ -87,7 +87,7 @@ endif
 
 # append $(LDLIBS) last, after $(LDOPTS), since the latter may depend
 # on the former being after it on the link line
-LDFLAGS     += -lm $(LDLIBS)
+LDFLAGS     += $(LIBM) $(LDLIBS)
 
 # CXXPRELINK - command for compilers that use template
 #              instantiation models that require a prelink stage
@@ -186,11 +186,13 @@ config: clean sane 
                   targets="$$file$(LIBSUFFIX)" ;                            \
               elif [ `echo $$file | grep "\.sh"` ] ; then                   \
                   if [ ! -f vars.sh ] ; then                                \
-                      cat ../makefile.in                                    \
+                      echo "# generated from makefile.in on `date` " >      \
+                          vars.sh                                           \
+                      &&  cat ../makefile.in                                \
                       | sed -e "s/= *\([^ ][^ ]* .*\)/=\"\1\"/"             \
                             -e "s/^\( *[^=]*\.[^=]*=.*\)/# \1/"             \
                             -e "s/^\([^ ]*\) *= *\(.*\)/\1=\2 ; export \1/" \
-                            -e 's/$$(\([^)]*\))/${\1}/g' >vars.sh ;         \
+                            -e 's/$$(\([^)]*\))/${\1}/g' >>vars.sh ;        \
                   fi ;                                                      \
                   $(SRCDIR)/$$file config.h $(LOGFILE) ;                    \
                   echo ;                                                    \

Modified: stdcxx/branches/4.2.x/etc/config/acc.config
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/etc/config/acc.config?rev=1078388&r1=1078387&r2=1078388&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/etc/config/acc.config (original)
+++ stdcxx/branches/4.2.x/etc/config/acc.config Sat Mar  5 23:27:46 2011
@@ -148,6 +148,9 @@ endif
 # The flag(s) to use to embed a library search path into generated executables.
 RPATH = -Wl,+b
 
+# math library to link with
+LIBM = -lm
+
 # debug/optimization options
 DEBUG_CXXFLAGS  = -g +d
 DEBUG_CPPFLAGS  =

Modified: stdcxx/branches/4.2.x/etc/config/como.config
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/etc/config/como.config?rev=1078388&r1=1078387&r2=1078388&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/etc/config/como.config (original)
+++ stdcxx/branches/4.2.x/etc/config/como.config Sat Mar  5 23:27:46 2011
@@ -49,6 +49,9 @@ PRELINKFLAGS    = --prelink_objects
 # Appropriate flag(s) (if available) not determined at this time.
 RPATH =
 
+# math library to link with
+LIBM = -lm
+
 # debug/optimization options
 DEBUG_CXXFLAGS  = -g
 DEBUG_CPPFLAGS  =

Modified: stdcxx/branches/4.2.x/etc/config/eccp.config
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/etc/config/eccp.config?rev=1078388&r1=1078387&r2=1078388&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/etc/config/eccp.config (original)
+++ stdcxx/branches/4.2.x/etc/config/eccp.config Sat Mar  5 23:27:46 2011
@@ -76,6 +76,9 @@ AS_EXT = .
 # Appropriate flag(s) (if available) not determined at this time.
 RPATH =
 
+# math library to link with
+LIBM = -lm
+
 # debug/optimization options
 DEBUG_CXXFLAGS  = -g
 DEBUG_CPPFLAGS  =

Modified: stdcxx/branches/4.2.x/etc/config/gcc.config
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/etc/config/gcc.config?rev=1078388&r1=1078387&r2=1078388&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/etc/config/gcc.config (original)
+++ stdcxx/branches/4.2.x/etc/config/gcc.config Sat Mar  5 23:27:46 2011
@@ -212,6 +212,9 @@ ifeq ($(OSNAME),Darwin)
     endif
 endif
 
+# math library to link with
+LIBM = -lm
+
 # debug/optimization options
 DEBUG_CXXFLAGS  = -g
 DEBUG_CPPFLAGS  =

Modified: stdcxx/branches/4.2.x/etc/config/icc.config
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/etc/config/icc.config?rev=1078388&r1=1078387&r2=1078388&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/etc/config/icc.config (original)
+++ stdcxx/branches/4.2.x/etc/config/icc.config Sat Mar  5 23:27:46 2011
@@ -68,6 +68,9 @@ endif
 # The flag(s) to use to embed a library search path into generated executables.
 RPATH           = -Wl,-R
 
+# math library to link with
+LIBM            = -lm
+
 # debug/optimization options
 DEBUG_CXXFLAGS  = -g
 DEBUG_CPPFLAGS  =

Modified: stdcxx/branches/4.2.x/etc/config/makefile.common
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/etc/config/makefile.common?rev=1078388&r1=1078387&r2=1078388&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/etc/config/makefile.common (original)
+++ stdcxx/branches/4.2.x/etc/config/makefile.common Sat Mar  5 23:27:46 2011
@@ -151,7 +151,7 @@ ifeq ($(findstring $(LIBNAME),$(TARGET))
   # set the GNU make variable LDLIBS to the names of the libraries
   # to link with (make puts $(LDLIBS) last on the link line in
   # implicit rules)
-  LDLIBS  := -l$(LIBBASE) $(LDLIBS) -lm
+  LDLIBS  := -l$(LIBBASE) $(LDLIBS) $(LIBM)
 endif  # ifneq ($(LIBNAME),$findstring ($(LIBNAME),$(TARGET)))
 
 

Modified: stdcxx/branches/4.2.x/etc/config/mipspro.config
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/etc/config/mipspro.config?rev=1078388&r1=1078387&r2=1078388&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/etc/config/mipspro.config (original)
+++ stdcxx/branches/4.2.x/etc/config/mipspro.config Sat Mar  5 23:27:46 2011
@@ -67,6 +67,9 @@ AS_EXT = .s
 # The flag(s) to use to embed a library search path into generated executables.
 RPATH = -Wl,-rpath,
 
+# math library to link with
+LIBM            = -lm
+
 # debug/optimization options
 DEBUG_CXXFLAGS  = -g
 DEBUG_CPPFLAGS  =

Modified: stdcxx/branches/4.2.x/etc/config/osf_cxx.config
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/etc/config/osf_cxx.config?rev=1078388&r1=1078387&r2=1078388&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/etc/config/osf_cxx.config (original)
+++ stdcxx/branches/4.2.x/etc/config/osf_cxx.config Sat Mar  5 23:27:46 2011
@@ -48,7 +48,10 @@ CXX_REPOSITORY  = -ptr
 # The flag(s) to use to embed a library search path into generated executables.
 RPATH = -rpath 
 
-# debug/optimization options
+# math library to link with
+LIBM            = -lm
+
+# # debug/optimization options
 DEBUG_CXXFLAGS  = -g
 DEBUG_CPPFLAGS  =
 

Modified: stdcxx/branches/4.2.x/etc/config/reliant_cds.config
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/etc/config/reliant_cds.config?rev=1078388&r1=1078387&r2=1078388&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/etc/config/reliant_cds.config (original)
+++ stdcxx/branches/4.2.x/etc/config/reliant_cds.config Sat Mar  5 23:27:46 2011
@@ -37,7 +37,10 @@ LDFLAGS         =
 
 # The flag(s) to use to embed a library search path into generated executables.
 # Appropriate flag(s) (if available) not determined at this time.
-RPATH =
+RPATH           =
+
+# math library to link with
+LIBM            = -lm
 
 # debug/optimization options
 DEBUG_CXXFLAGS  = -g

Modified: stdcxx/branches/4.2.x/etc/config/src/libc_decl.sh
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/etc/config/src/libc_decl.sh?rev=1078388&r1=1078387&r2=1078388&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/etc/config/src/libc_decl.sh (original)
+++ stdcxx/branches/4.2.x/etc/config/src/libc_decl.sh Sat Mar  5 23:27:46 2011
@@ -68,7 +68,8 @@ fi
 
 [ -r vars.sh ] && . ./vars.sh
 
-# include headers.inc file
+# include headers.inc file with names of functions to test for
+# and the headers they are declared in
 . $TOPDIR/etc/config/src/headers.inc
 
 if [ ! -z "$4" ]; then
@@ -291,9 +292,18 @@ for h in $hdrs ; do
     fi
 
     if [ "$hdr_base" = "math" ] ; then
-        lib=m
+        # the name of the library as it should appear in script
+        # output/log and (after capitalization) in config macros
+        # (such as _RWSTD_NO_ACOS_IN_LIBM)
+        libname=libm
+        # the option to pass to the linker to link with the library
+        # (when necessary)
+        libopt=$LIBM
     else
-        lib=c
+        # libc is invariably implicitly specified by the compiler
+        # driver, there's no reason to specify it explicitly
+        libname=libc
+        unset libopt
     fi
 
     # float and long double versions of <math.h> functions
@@ -349,7 +359,7 @@ for h in $hdrs ; do
              "-DHDRNAME=\"<$hdrname>\" -DFUNNAME=$funname " \
              "-DFUN=$f -DTAKE_ADDR=$take_addr "             \
              "$tmpsrc -o $tmpobj"                           \
-             "&& $LD $tmpobj $LDFLAGS -l$lib" >>$logfile 2>&1
+             "&& $LD $tmpobj $LDFLAGS $libopt" >>$logfile 2>&1
 
         # spell out all arguments just like above, being careful
         # about quoting HDRNAME
@@ -357,7 +367,7 @@ for h in $hdrs ; do
                 -DHDRNAME="<$hdrname>" -DFUNNAME=$funname  \
                 -DFUN=$f -DTAKE_ADDR=$take_addr            \
              $tmpsrc -o $tmpobj >>$logfile 2>&1            \
-        && $LD $tmpobj $LDFLAGS -l$lib >>$logfile 2>&1
+        && $LD $tmpobj $LDFLAGS $libopt >>$logfile 2>&1
 
         if [ $? -eq 0 ] ; then
             echo "ok"
@@ -369,18 +379,18 @@ for h in $hdrs ; do
             echo "no ($sym)"
             echo "#define $sym" >>$output
 
-            sym="`echo ${sym}_IN_LIB$lib | $capitalize`"
+            sym="`echo ${sym}_IN_$libname | $capitalize`"
             
-            printf "%-50.50s " "checking for extern \"C\" $funname() in lib$lib"
+            printf "%-50.50s " "checking for extern \"C\" $funname() in $libname"
 
             # define cxxflags for convenience
             cxxflags="$CXXFLAGS $WARNFLAGS -DFUNNAME=$funname"
 
             echo "$CXX -c $cxxflags $tmpsrc -o $tmpobj \
-                 && $LD $tmpobj $LDFLAGS -l$lib" >>$logfile
+                 && $LD $tmpobj $LDFLAGS $libopt" >>$logfile
 
             $CXX -c $cxxflags $tmpsrc -o $tmpobj >>$logfile 2>&1 \
-            && $LD $tmpobj $LDFLAGS -l$lib >>$logfile 2>&1
+            && $LD $tmpobj $LDFLAGS $libopt >>$logfile 2>&1
 
             if [ $? -eq 0 ] ; then
                 echo "ok"

Modified: stdcxx/branches/4.2.x/etc/config/sunpro.config
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/etc/config/sunpro.config?rev=1078388&r1=1078387&r2=1078388&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/etc/config/sunpro.config (original)
+++ stdcxx/branches/4.2.x/etc/config/sunpro.config Sat Mar  5 23:27:46 2011
@@ -71,7 +71,10 @@ AR              = CC
 ARFLAGS         = -xar -o
 
 # The flag(s) to use to embed a library search path into generated executables.
-RPATH = -R
+RPATH           = -R
+
+# math library to link with
+LIBM            = -lm
 
 # debug/optimization options
 DEBUG_CXXFLAGS  = -g

Modified: stdcxx/branches/4.2.x/etc/config/vacpp.config
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/etc/config/vacpp.config?rev=1078388&r1=1078387&r2=1078388&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/etc/config/vacpp.config (original)
+++ stdcxx/branches/4.2.x/etc/config/vacpp.config Sat Mar  5 23:27:46 2011
@@ -170,6 +170,9 @@ else   # assume Linux
    RPATH = -Wl,-R
 endif
 
+# math library to link with
+LIBM            = -lm
+
 # debug/optimization options
 DEBUG_CXXFLAGS  = -g
 DEBUG_CPPFLAGS  =