diff options
-rw-r--r-- | libstdc++-v3/ChangeLog | 17 | ||||
-rw-r--r-- | libstdc++-v3/acinclude.m4 | 5 | ||||
-rw-r--r-- | libstdc++-v3/aclocal.m4 | 5 | ||||
-rw-r--r-- | libstdc++-v3/config/linker-map.gnu | 7 | ||||
-rwxr-xr-x | libstdc++-v3/configure | 91 | ||||
-rw-r--r-- | libstdc++-v3/configure.host | 7 | ||||
-rw-r--r-- | libstdc++-v3/docs/html/17_intro/porting.html | 42 | ||||
-rw-r--r-- | libstdc++-v3/docs/html/17_intro/porting.texi | 42 | ||||
-rw-r--r-- | libstdc++-v3/src/Makefile.am | 27 | ||||
-rw-r--r-- | libstdc++-v3/src/Makefile.in | 103 |
10 files changed, 161 insertions, 185 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index e00b406ed1a..274be04725b 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,22 @@ 2003-07-05 Phil Edwards <pme@gcc.gnu.org> + * acinclude.m4 (GLIBCXX_ENABLE_SYMVERS): Bump minimal version + requirement. Add port_specific_symbol_file variable. + * configure.host: Add docs for port_specific_symbol_file. + Clean up try_cpu block for x86. + * config/linker-map.gnu: No more "last symbol can't have a + semicolon" kaka. Add hook for port-specific symbols. + * src/Makefile.am: Remove trailing whitespace. + (libstdc++-symbol.ver): Detect the presence of port-specific + symbols, and add them accordingly. + + * docs/html/17_intro/porting.texi: Bring up to date. + + * src/Makefile.in, aclocal.m4, configure, + docs/html/17_intro/porting.html: Regenerated. + +2003-07-05 Phil Edwards <pme@gcc.gnu.org> + * scripts/create_testsuite_files: New file. * testsuite/Makefile.am (all-local, check-performance): Use it. * testsuite/lib/libstdc++-v3-dg.exp (v3-computer-tests): Remove. diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index 64c4d813875..8d81668f111 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -2258,9 +2258,9 @@ if test $enable_symvers != no; then AC_MSG_RESULT($glibcxx_shared_libgcc) fi -# For GNU ld, we need at least this version. It's 2.12 in the same format +# For GNU ld, we need at least this version. It's 2.14 in the same format # as the tested-for version. See GLIBCXX_CHECK_LINKER_FEATURES for more. -glibcxx_min_gnu_ld_version=21200 +glibcxx_min_gnu_ld_version=21400 # Check to see if unspecified "yes" value can win, given results # above. @@ -2305,6 +2305,7 @@ case $enable_symvers in esac AC_SUBST(SYMVER_MAP) +AC_SUBST(port_specific_symbol_file) AM_CONDITIONAL(GLIBCXX_BUILD_VERSIONED_SHLIB, test $enable_symvers != no) AC_MSG_CHECKING([versioning on shared library symbols]) AC_MSG_RESULT($enable_symvers) diff --git a/libstdc++-v3/aclocal.m4 b/libstdc++-v3/aclocal.m4 index 1a5563ce0bc..17a95f69c45 100644 --- a/libstdc++-v3/aclocal.m4 +++ b/libstdc++-v3/aclocal.m4 @@ -2270,9 +2270,9 @@ if test $enable_symvers != no; then AC_MSG_RESULT($glibcxx_shared_libgcc) fi -# For GNU ld, we need at least this version. It's 2.12 in the same format +# For GNU ld, we need at least this version. It's 2.14 in the same format # as the tested-for version. See GLIBCXX_CHECK_LINKER_FEATURES for more. -glibcxx_min_gnu_ld_version=21200 +glibcxx_min_gnu_ld_version=21400 # Check to see if unspecified "yes" value can win, given results # above. @@ -2317,6 +2317,7 @@ case $enable_symvers in esac AC_SUBST(SYMVER_MAP) +AC_SUBST(port_specific_symbol_file) AM_CONDITIONAL(GLIBCXX_BUILD_VERSIONED_SHLIB, test $enable_symvers != no) AC_MSG_CHECKING([versioning on shared library symbols]) AC_MSG_RESULT($enable_symvers) diff --git a/libstdc++-v3/config/linker-map.gnu b/libstdc++-v3/config/linker-map.gnu index 34470c4233b..5cf3dd9c7e7 100644 --- a/libstdc++-v3/config/linker-map.gnu +++ b/libstdc++-v3/config/linker-map.gnu @@ -1,4 +1,4 @@ -## Linker script for GNU ld 2.11.94+ only. +## Linker script for GNU ld 2.13.91+ only. ## ## Copyright (C) 2002, 2003 Free Software Foundation, Inc. ## @@ -25,7 +25,6 @@ GLIBCXX_3.4 { global: # Names inside the 'extern' block are demangled names. - # All but the last are terminated with a semicolon. extern "C++" { std::[A-Za-k]*; @@ -56,7 +55,7 @@ GLIBCXX_3.4 { std::__num_base::_S_format_int*; std::__num_base::_S_atoms_in; std::__num_base::_S_atoms_out; - std::__numpunct_cache* + std::__numpunct_cache*; }; # Names not in an 'extern' block are mangled names. @@ -169,6 +168,8 @@ GLIBCXX_3.4 { _ZN9__gnu_cxx22_Atomic_add_mutex_onceE; _ZN9__gnu_cxx31__gthread_atomic_add_mutex_onceEv; + # DO NOT DELETE THIS LINE. Port-specific symbols, if any, will be here. + local: *; }; diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index 9e9d38f087c..c3352ed9d01 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -841,7 +841,7 @@ test "$ac_cv_mingw32" = yes && MINGW32=yes - for ac_prog in gawk mawk nawk awk + for ac_prog in mawk gawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -1476,7 +1476,7 @@ else if { (eval echo configure:1477: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in - *.c | *.o | *.obj) ;; + *.$ac_ext | *.c | *.o | *.obj) ;; *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; esac done @@ -22911,7 +22911,7 @@ else fi rm -f conftest* - for ac_hdr in stdlib.h unistd.h sys/stat.h sys/types.h + for ac_hdr in unistd.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 @@ -23043,24 +23043,11 @@ else #include <fcntl.h> #include <sys/mman.h> -#if HAVE_SYS_TYPES_H -# include <sys/types.h> -#endif - -#if HAVE_STDLIB_H -# include <stdlib.h> -#endif - -#if HAVE_SYS_STAT_H -# include <sys/stat.h> -#endif - -#if HAVE_UNISTD_H -# include <unistd.h> -#endif - /* This mess was copied from the GNU getpagesize.h. */ #ifndef HAVE_GETPAGESIZE +# ifdef HAVE_UNISTD_H +# include <unistd.h> +# endif /* Assume that all systems that can run configure have sys/param.h. */ # ifndef HAVE_SYS_PARAM_H @@ -23168,7 +23155,7 @@ main() } EOF -if { (eval echo configure:23172: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:23159: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_fixed_mapped=yes else @@ -23219,18 +23206,18 @@ fi # Check to see if libgcc_s exists, indicating that shared libgcc is possible. if test $enable_symvers != no; then echo $ac_n "checking for shared libgcc""... $ac_c" 1>&6 -echo "configure:23223: checking for shared libgcc" >&5 +echo "configure:23210: checking for shared libgcc" >&5 ac_save_CFLAGS="$CFLAGS" CFLAGS=' -lgcc_s' cat > conftest.$ac_ext <<EOF -#line 23227 "configure" +#line 23214 "configure" #include "confdefs.h" int main() { return 0 ; return 0; } EOF -if { (eval echo configure:23234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:23221: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* glibcxx_shared_libgcc=yes else @@ -23244,9 +23231,9 @@ rm -f conftest* echo "$ac_t""$glibcxx_shared_libgcc" 1>&6 fi -# For GNU ld, we need at least this version. It's 2.12 in the same format +# For GNU ld, we need at least this version. It's 2.14 in the same format # as the tested-for version. See GLIBCXX_CHECK_LINKER_FEATURES for more. -glibcxx_min_gnu_ld_version=21200 +glibcxx_min_gnu_ld_version=21400 # Check to see if unspecified "yes" value can win, given results # above. @@ -23265,14 +23252,14 @@ if test $enable_symvers = yes ; then echo 'FOO { global: f[a-z]o; local: *; };' > conftest.map cat > conftest.$ac_ext <<EOF -#line 23269 "configure" +#line 23256 "configure" #include "confdefs.h" int foo; int main() { ; return 0; } EOF -if { (eval echo configure:23276: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:23263: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* enable_symvers=gnu else @@ -23310,6 +23297,7 @@ esac + if test $enable_symvers != no; then GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE= GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE='#' @@ -23318,7 +23306,7 @@ else GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE= fi echo $ac_n "checking versioning on shared library symbols""... $ac_c" 1>&6 -echo "configure:23322: checking versioning on shared library symbols" >&5 +echo "configure:23310: checking versioning on shared library symbols" >&5 echo "$ac_t""$enable_symvers" 1>&6 @@ -23333,17 +23321,17 @@ echo "$ac_t""$enable_symvers" 1>&6 do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:23337: checking for $ac_hdr" >&5 +echo "configure:23325: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 23342 "configure" +#line 23330 "configure" #include "confdefs.h" #include <$ac_hdr> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:23347: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:23335: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -23376,7 +23364,7 @@ done # Can't do these in a loop, else the resulting syntax is wrong. cat > conftest.$ac_ext <<EOF -#line 23380 "configure" +#line 23368 "configure" #include "confdefs.h" #include <unistd.h> #include <sys/time.h> @@ -23386,7 +23374,7 @@ int main() { int f = RLIMIT_DATA ; ; return 0; } EOF -if { (eval echo configure:23390: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:23378: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcxx_mresult=1 else @@ -23403,7 +23391,7 @@ EOF cat > conftest.$ac_ext <<EOF -#line 23407 "configure" +#line 23395 "configure" #include "confdefs.h" #include <unistd.h> #include <sys/time.h> @@ -23413,7 +23401,7 @@ int main() { int f = RLIMIT_RSS ; ; return 0; } EOF -if { (eval echo configure:23417: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:23405: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcxx_mresult=1 else @@ -23430,7 +23418,7 @@ EOF cat > conftest.$ac_ext <<EOF -#line 23434 "configure" +#line 23422 "configure" #include "confdefs.h" #include <unistd.h> #include <sys/time.h> @@ -23440,7 +23428,7 @@ int main() { int f = RLIMIT_VMEM ; ; return 0; } EOF -if { (eval echo configure:23444: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:23432: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcxx_mresult=1 else @@ -23457,7 +23445,7 @@ EOF cat > conftest.$ac_ext <<EOF -#line 23461 "configure" +#line 23449 "configure" #include "confdefs.h" #include <unistd.h> #include <sys/time.h> @@ -23467,7 +23455,7 @@ int main() { int f = RLIMIT_AS ; ; return 0; } EOF -if { (eval echo configure:23471: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:23459: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcxx_mresult=1 else @@ -23489,7 +23477,7 @@ EOF else cat > conftest.$ac_ext <<EOF -#line 23493 "configure" +#line 23481 "configure" #include "confdefs.h" #include <unistd.h> #include <sys/time.h> @@ -23499,7 +23487,7 @@ int main() { struct rlimit r; setrlimit(0, &r); ; return 0; } EOF -if { (eval echo configure:23503: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:23491: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_setrlimit=yes else @@ -23515,7 +23503,7 @@ fi fi echo $ac_n "checking for testsuite memory limit support""... $ac_c" 1>&6 -echo "configure:23519: checking for testsuite memory limit support" >&5 +echo "configure:23507: checking for testsuite memory limit support" >&5 if test $setrlimit_have_headers = yes && test $ac_setrlimit = yes; then ac_mem_limits=yes cat >> confdefs.h <<\EOF @@ -23531,7 +23519,7 @@ EOF # Look for setenv, so that extended locale tests can be performed. echo $ac_n "checking for setenv declaration""... $ac_c" 1>&6 -echo "configure:23535: checking for setenv declaration" >&5 +echo "configure:23523: checking for setenv declaration" >&5 if test x${glibcxx_cv_func_setenv_use+set} != xset; then if eval "test \"`echo '$''{'glibcxx_cv_func_setenv_use'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -23546,14 +23534,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <<EOF -#line 23550 "configure" +#line 23538 "configure" #include "confdefs.h" #include <stdlib.h> int main() { setenv(0, 0, 0); ; return 0; } EOF -if { (eval echo configure:23557: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:23545: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* glibcxx_cv_func_setenv_use=yes else @@ -23579,12 +23567,12 @@ fi for ac_func in setenv do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:23583: checking for $ac_func" >&5 +echo "configure:23571: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 23588 "configure" +#line 23576 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -23607,7 +23595,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:23611: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:23599: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -23767,7 +23755,7 @@ glibcxx_prefixdir=${prefix} # Process the option --with-gxx-include-dir=<path to include-files directory> echo $ac_n "checking for --with-gxx-include-dir""... $ac_c" 1>&6 -echo "configure:23771: checking for --with-gxx-include-dir" >&5 +echo "configure:23759: checking for --with-gxx-include-dir" >&5 # Check whether --with-gxx-include-dir or --without-gxx-include-dir was given. if test "${with_gxx_include_dir+set}" = set; then withval="$with_gxx_include_dir" @@ -23791,7 +23779,7 @@ echo "$ac_t""$gxx_include_dir" 1>&6 # Process the option "--enable-version-specific-runtime-libs" echo $ac_n "checking for --enable-version-specific-runtime-libs""... $ac_c" 1>&6 -echo "configure:23795: checking for --enable-version-specific-runtime-libs" >&5 +echo "configure:23783: checking for --enable-version-specific-runtime-libs" >&5 # Check whether --enable-version-specific-runtime-libs or --disable-version-specific-runtime-libs was given. if test "${enable_version_specific_runtime_libs+set}" = set; then enableval="$enable_version_specific_runtime_libs" @@ -23842,7 +23830,7 @@ if test x"$glibcxx_toolexecdir" = x"no"; then fi echo $ac_n "checking for install location""... $ac_c" 1>&6 -echo "configure:23846: checking for install location" >&5 +echo "configure:23834: checking for install location" >&5 echo "$ac_t""$gxx_include_dir" 1>&6 @@ -24126,6 +24114,7 @@ s%@OPT_LDFLAGS@%$OPT_LDFLAGS%g s%@LIBMATHOBJS@%$LIBMATHOBJS%g s%@WERROR@%$WERROR%g s%@SYMVER_MAP@%$SYMVER_MAP%g +s%@port_specific_symbol_file@%$port_specific_symbol_file%g s%@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@%$GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE%g s%@GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE@%$GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE%g s%@baseline_dir@%$baseline_dir%g diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host index a9619ea4d89..763324d9ae7 100644 --- a/libstdc++-v3/configure.host +++ b/libstdc++-v3/configure.host @@ -41,6 +41,11 @@ # the form '-Wl,blah' # (defaults to empty in acinclude.m4) # +# port_specific_symbol_file +# whitespace-seperated list of files containing +# additional symbols to export from the shared +# library, when symbol versioning is in use +# # # If the defaults will not work for your platform, you need only change the # variables that won't work, i.e., you do not need to explicitly set a @@ -66,7 +71,7 @@ case "${host_cpu}" in alpha*) try_cpu=alpha ;; - athlon* | i586 | i686 | i786 | x86_64) + i[567]86 | x86_64) try_cpu=i486 ;; hppa*) diff --git a/libstdc++-v3/docs/html/17_intro/porting.html b/libstdc++-v3/docs/html/17_intro/porting.html index ac51f450673..fb4682c8c2c 100644 --- a/libstdc++-v3/docs/html/17_intro/porting.html +++ b/libstdc++-v3/docs/html/17_intro/porting.html @@ -6,7 +6,7 @@ <meta name="generator" content="makeinfo 4.3"> <link href="http://www.gnu.org/software/texinfo/" rel="generator-home"> <!-- -Copyright © 2000, 2001, 2002 Free Software Foundation, Inc. +Copyright © 2000, 2001, 2002, 2003 Free Software Foundation, Inc. <p>Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or @@ -56,6 +56,9 @@ imposed by the ANSI/ISO standard. works. It is difficult to test the C++ compiler without a working library, but you should at least try some minimal test cases. + <p>(Note that what we think of as a "target," the library refers to as +a "host." The comment at the top of <code>configure.in</code> explains why.) + <p>Here are the primary steps required to port the library: <ul class="menu"> @@ -92,7 +95,7 @@ directory. The important information is that there needs to be a directory under <code>config/os</code> to store the files for your operating system. - <p>You might have to change the <code>configure.target</code> file to ensure that + <p>You might have to change the <code>configure.host</code> file to ensure that your new directory is activated. Look for the switch statement that sets <code>os_include_dir</code>, and add a pattern to handle your operating system if the default will not suffice. The switch statement switches on only @@ -134,45 +137,42 @@ need to define. You will need to add them to the target. It will not work to simply define these macros in <code>os_defines.h</code>. - <p>At this time, there are a few libstdc++-v3-specific macro which may be -defined. <code>_G_USING_THUNKS</code> may be defined to 0 to express that the -port doesn't use thunks (although it is unclear that this is still -useful since libio support isn't currently working and the g++ v3 ABI -invalidates the assumption that some ports don't use thunks). + <p>At this time, there are a few libstdc++-v3-specific macros which may be +defined: - <p><code>_GLIBCPP_USE_C99_CHECK</code> may be defined to 1 to check C99 + <p><code>_GLIBCXX_USE_C99_CHECK</code> may be defined to 1 to check C99 function declarations (which are not covered by specialization below) found in system headers against versions found in the library headers derived from the standard. - <p><code>_GLIBCPP_USE_C99_DYNAMIC</code> may be defined to an expression that + <p><code>_GLIBCXX_USE_C99_DYNAMIC</code> may be defined to an expression that yields 0 if and only if the system headers are exposing proper support for C99 functions (which are not covered by specialization below). If defined, it must be 0 while bootstrapping the compiler/rebuilding the library. - <p><code>_GLIBCPP_USE_C99_LONG_LONG_CHECK</code> may be defined to 1 to check + <p><code>_GLIBCXX_USE_C99_LONG_LONG_CHECK</code> may be defined to 1 to check the set of C99 long long function declarations found in system headers against versions found in the library headers derived from the standard. - <p><code>_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC</code> may be defined to an + <p><code>_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC</code> may be defined to an expression that yields 0 if and only if the system headers are exposing proper support for the set of C99 long long functions. If defined, it must be 0 while bootstrapping the compiler/rebuilding the library. - <p><code>_GLIBCPP_USE_C99_FP_MACROS_DYNAMIC</code> may be defined to an + <p><code>_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC</code> may be defined to an expression that yields 0 if and only if the system headers are exposing proper support for the related set of macros. If defined, it must be 0 while bootstrapping the compiler/rebuilding the library. - <p><code>_GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_CHECK</code> may be defined + <p><code>_GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_CHECK</code> may be defined to 1 to check the related set of function declarations found in system headers against versions found in the library headers derived from the standard. - <p><code>_GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC</code> may be defined + <p><code>_GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC</code> may be defined to an expression that yields 0 if and only if the system headers are exposing proper support for the related set of functions. If defined, it must be 0 while bootstrapping the compiler/rebuilding the library. @@ -180,8 +180,8 @@ it must be 0 while bootstrapping the compiler/rebuilding the library. <p>Finally, you should bracket the entire file in an include-guard, like this: -<pre class="example"> #ifndef _GLIBCPP_OS_DEFINES - #define _GLIBCPP_OS_DEFINES +<pre class="example"> #ifndef _GLIBCXX_OS_DEFINES + #define _GLIBCXX_OS_DEFINES ... #endif </pre> @@ -209,14 +209,14 @@ setup files without explicit help. <p>We recommend that for a target triplet <code><CPU>-<vendor>-<OS></code>, you name your configuration directory <code>config/cpu/<CPU></code>. If you do this, -the configury will find the directory itself. Otherwise you will need to -edit the <code>configure.target</code> file and, in the switch statement that sets +the configury will find the directory by itself. Otherwise you will need to +edit the <code>configure.host</code> file and, in the switch statement that sets <code>cpu_include_dir</code>, add a pattern to handle your chip. <p>Note that some chip families share a single configuration directory, for example, <code>alpha</code>, <code>alphaev5</code>, and <code>alphaev6</code> all use the <code>config/cpu/alpha</code> directory, and there is an entry in the -<code>configure.target</code> switch statement to handle this. +<code>configure.host</code> switch statement to handle this. <p>The <code>cpu_include_dir</code> sets default locations for the files controlling <a href="#Thread%20safety">Thread safety</a> and <a href="#Numeric%20limits">Numeric limits</a>, if the defaults are not @@ -456,14 +456,14 @@ see the <code>atomicity.h</code> file for IRIX or IA64. <p>Alternatively, if the primitives are more closely related to the OS than they are to the CPU, you can put the <code>atomicity.h</code> file in the <a href="#Operating%20system">Operating system</a> directory instead. In this case, you must -edit <code>configure.target</code>, and in the switch statement that handles +edit <code>configure.host</code>, and in the switch statement that handles operating systems, override the <code>ATOMICITYH</code> variable to point to the appropriate <code>os_include_dir</code>. For examples of this approach, see the <code>atomicity.h</code> file for AIX. <p>With those bits out of the way, you have to actually write <code>atomicity.h</code> itself. This file should be wrapped in an -include guard named <code>_BITS_ATOMICITY_H</code>. It should define one +include guard named <code>_GLIBCXX_ATOMICITY_H</code>. It should define one type, and two functions. <p>The type is <code>_Atomic_word</code>. Here is the version used on IRIX: diff --git a/libstdc++-v3/docs/html/17_intro/porting.texi b/libstdc++-v3/docs/html/17_intro/porting.texi index 6f3618c637d..ed4042f932d 100644 --- a/libstdc++-v3/docs/html/17_intro/porting.texi +++ b/libstdc++-v3/docs/html/17_intro/porting.texi @@ -9,7 +9,7 @@ @setchapternewpage odd @copying -Copyright @copyright{} 2000, 2001, 2002 Free Software Foundation, Inc. +Copyright @copyright{} 2000, 2001, 2002, 2003 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or @@ -74,6 +74,9 @@ In addition, you should try to verify that the C++ compiler generally works. It is difficult to test the C++ compiler without a working library, but you should at least try some minimal test cases. +(Note that what we think of as a ``target,'' the library refers to as +a ``host.'' The comment at the top of @file{configure.in} explains why.) + Here are the primary steps required to port the library: @menu @@ -106,7 +109,7 @@ directory. The important information is that there needs to be a directory under @file{config/os} to store the files for your operating system. -You might have to change the @file{configure.target} file to ensure that +You might have to change the @file{configure.host} file to ensure that your new directory is activated. Look for the switch statement that sets @code{os_include_dir}, and add a pattern to handle your operating system if the default will not suffice. The switch statement switches on only @@ -150,45 +153,42 @@ need to define. You will need to add them to the target. It will not work to simply define these macros in @file{os_defines.h}. -At this time, there are a few libstdc++-v3-specific macro which may be -defined. @code{_G_USING_THUNKS} may be defined to 0 to express that the -port doesn't use thunks (although it is unclear that this is still -useful since libio support isn't currently working and the g++ v3 ABI -invalidates the assumption that some ports don't use thunks). +At this time, there are a few libstdc++-v3-specific macros which may be +defined: -@code{_GLIBCPP_USE_C99_CHECK} may be defined to 1 to check C99 +@code{_GLIBCXX_USE_C99_CHECK} may be defined to 1 to check C99 function declarations (which are not covered by specialization below) found in system headers against versions found in the library headers derived from the standard. -@code{_GLIBCPP_USE_C99_DYNAMIC} may be defined to an expression that +@code{_GLIBCXX_USE_C99_DYNAMIC} may be defined to an expression that yields 0 if and only if the system headers are exposing proper support for C99 functions (which are not covered by specialization below). If defined, it must be 0 while bootstrapping the compiler/rebuilding the library. -@code{_GLIBCPP_USE_C99_LONG_LONG_CHECK} may be defined to 1 to check +@code{_GLIBCXX_USE_C99_LONG_LONG_CHECK} may be defined to 1 to check the set of C99 long long function declarations found in system headers against versions found in the library headers derived from the standard. -@code{_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC} may be defined to an +@code{_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC} may be defined to an expression that yields 0 if and only if the system headers are exposing proper support for the set of C99 long long functions. If defined, it must be 0 while bootstrapping the compiler/rebuilding the library. -@code{_GLIBCPP_USE_C99_FP_MACROS_DYNAMIC} may be defined to an +@code{_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC} may be defined to an expression that yields 0 if and only if the system headers are exposing proper support for the related set of macros. If defined, it must be 0 while bootstrapping the compiler/rebuilding the library. -@code{_GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_CHECK} may be defined +@code{_GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_CHECK} may be defined to 1 to check the related set of function declarations found in system headers against versions found in the library headers derived from the standard. -@code{_GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC} may be defined +@code{_GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC} may be defined to an expression that yields 0 if and only if the system headers are exposing proper support for the related set of functions. If defined, it must be 0 while bootstrapping the compiler/rebuilding the library. @@ -197,8 +197,8 @@ Finally, you should bracket the entire file in an include-guard, like this: @example -#ifndef _GLIBCPP_OS_DEFINES -#define _GLIBCPP_OS_DEFINES +#ifndef _GLIBCXX_OS_DEFINES +#define _GLIBCXX_OS_DEFINES ... #endif @end example @@ -222,14 +222,14 @@ setup files without explicit help. We recommend that for a target triplet @code{<CPU>-<vendor>-<OS>}, you name your configuration directory @file{config/cpu/<CPU>}. If you do this, -the configury will find the directory itself. Otherwise you will need to -edit the @file{configure.target} file and, in the switch statement that sets +the configury will find the directory by itself. Otherwise you will need to +edit the @file{configure.host} file and, in the switch statement that sets @code{cpu_include_dir}, add a pattern to handle your chip. Note that some chip families share a single configuration directory, for example, @code{alpha}, @code{alphaev5}, and @code{alphaev6} all use the @file{config/cpu/alpha} directory, and there is an entry in the -@file{configure.target} switch statement to handle this. +@file{configure.host} switch statement to handle this. The @code{cpu_include_dir} sets default locations for the files controlling @ref{Thread safety} and @ref{Numeric limits}, if the defaults are not @@ -474,14 +474,14 @@ see the @file{atomicity.h} file for IRIX or IA64. Alternatively, if the primitives are more closely related to the OS than they are to the CPU, you can put the @file{atomicity.h} file in the @ref{Operating system} directory instead. In this case, you must -edit @file{configure.target}, and in the switch statement that handles +edit @file{configure.host}, and in the switch statement that handles operating systems, override the @code{ATOMICITYH} variable to point to the appropriate @code{os_include_dir}. For examples of this approach, see the @file{atomicity.h} file for AIX. With those bits out of the way, you have to actually write @file{atomicity.h} itself. This file should be wrapped in an -include guard named @code{_BITS_ATOMICITY_H}. It should define one +include guard named @code{_GLIBCXX_ATOMICITY_H}. It should define one type, and two functions. The type is @code{_Atomic_word}. Here is the version used on IRIX: diff --git a/libstdc++-v3/src/Makefile.am b/libstdc++-v3/src/Makefile.am index 2322a6737f4..72f7cbdb50b 100644 --- a/libstdc++-v3/src/Makefile.am +++ b/libstdc++-v3/src/Makefile.am @@ -37,9 +37,16 @@ toolexeclib_LTLIBRARIES = libstdc++.la # Symbol versioning for shared libraries. if GLIBCXX_BUILD_VERSIONED_SHLIB +port_specific_symbol_file = @port_specific_symbol_file@ version_arg = -Wl,--version-script=libstdc++-symbol.ver libstdc++-symbol.ver: ${glibcxx_srcdir}/@SYMVER_MAP@ - @LN_S@ ${glibcxx_srcdir}/@SYMVER_MAP@ ./libstdc++-symbol.ver || true + cp ${glibcxx_srcdir}/@SYMVER_MAP@ ./libstdc++-symbol.ver + if test "x${port_specific_symbol_file}" != x; then \ + sed -n '1,/DO NOT DELETE/p' $@ > tmp.top; \ + sed -n '/DO NOT DELETE/,$$p' $@ > tmp.bottom; \ + cat tmp.top $(port_specific_symbol_file) tmp.bottom > $@; \ + rm tmp.top tmp.bottom; \ + fi else version_arg = libstdc++-symbol.ver: @@ -106,7 +113,7 @@ time_members.cc: ${glibcxx_srcdir}/@CTIME_CC@ # particular host, but with ad hoc naming rules. host_sources_extra = \ basic_file.cc \ - c++locale.cc + c++locale.cc c++locale.cc: ${glibcxx_srcdir}/@CLOCALE_CC@ @LN_S@ ${glibcxx_srcdir}/@CLOCALE_CC@ ./$@ || true @@ -157,7 +164,7 @@ libstdc___la_DEPENDENCIES = libstdc++-symbol.ver $(libstdc___la_LIBADD) libstdc___la_LDFLAGS = \ -version-info @libtool_VERSION@ ${version_arg} \ - -lm @LIBUNWIND_FLAG@ + -lm @LIBUNWIND_FLAG@ # Use special rules for the deprecated source files so that they find @@ -188,13 +195,13 @@ demangle.o: demangle.cc # modified in a per-library or per-sub-library way. Need to manually # set this option because CONFIG_CXXFLAGS has to be after # OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden -# as the occasion call for it. +# as the occasion calls for it. AM_CXXFLAGS = \ -fno-implicit-templates \ $(LIBSUPCXX_CXXFLAGS) \ $(WARN_CXXFLAGS) \ $(OPTIMIZE_CXXFLAGS) \ - $(CONFIG_CXXFLAGS) + $(CONFIG_CXXFLAGS) # libstdc++ libtool notes @@ -216,7 +223,7 @@ AM_CXXFLAGS = \ # CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to # attempt to infer which configuration to use LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS) + $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS) # 3) We'd have a problem when building the shared libstdc++ object if # the rules automake generates would be used. We cannot allow g++ to @@ -234,13 +241,13 @@ all-local: build_debug install-data-local: install_debug else all-local: -install-data-local: +install-data-local: endif debugdir = debug # Build parallel set of debug objects here. -stamp-debug: +stamp-debug: if test ! -d ${debugdir}; then \ mkdir -p ${debugdir}; \ (cd ${debugdir}; \ @@ -251,12 +258,12 @@ stamp-debug: -e 's/install-data-local: install_debug/install-data-local:/' \ < ../Makefile > Makefile) ; \ fi; \ - echo `date` > stamp-debug; + echo `date` > stamp-debug; build_debug: stamp-debug (cd ${debugdir} && $(MAKE) CXXFLAGS='@DEBUG_FLAGS@' all) # Install debug library here. -install_debug: +install_debug: (cd ${debugdir} && $(MAKE) \ toolexeclibdir=@glibcxx_toolexeclibdir@/debug install) diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in index d86cc4b57a8..9062d7ccb10 100644 --- a/libstdc++-v3/src/Makefile.in +++ b/libstdc++-v3/src/Makefile.in @@ -147,7 +147,10 @@ glibcxx_builddir = @glibcxx_builddir@ toolexecdir = @glibcxx_toolexecdir@ toolexeclibdir = @glibcxx_toolexeclibdir@ toolexeclib_LTLIBRARIES = libstdc++.la -@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@version_arg = @GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@-Wl,--version-script=libstdc++-symbol.ver + +# Symbol versioning for shared libraries. +@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@port_specific_symbol_file = @port_specific_symbol_file@ +@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@version_arg = -Wl,--version-script=libstdc++-symbol.ver @GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE@version_arg = # Compile flags that should be constant throughout the build, both for @@ -156,13 +159,11 @@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ # These bits are all figured out from configure. Look in acinclude.m4 # or configure.in to see how they are set. See GLIBCXX_EXPORT_FLAGS -CONFIG_CXXFLAGS = \ - @SECTION_FLAGS@ @EXTRA_CXX_FLAGS@ +CONFIG_CXXFLAGS = @SECTION_FLAGS@ @EXTRA_CXX_FLAGS@ # Warning flags to use. -WARN_CXXFLAGS = \ - @WARN_FLAGS@ $(WERROR) -fdiagnostics-show-location=once +WARN_CXXFLAGS = @WARN_FLAGS@ $(WERROR) -fdiagnostics-show-location=once # Use common includes from acinclude.m4/GLIBCXX_EXPORT_INCLUDES @@ -171,78 +172,33 @@ LIBMATH_INCLUDES = @LIBMATH_INCLUDES@ LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@ TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ -INCLUDES = \ - -nostdinc++ \ - $(GLIBCXX_INCLUDES) \ - $(LIBSUPCXX_INCLUDES) $(LIBMATH_INCLUDES) \ - $(TOPLEVEL_INCLUDES) +INCLUDES = -nostdinc++ $(GLIBCXX_INCLUDES) $(LIBSUPCXX_INCLUDES) $(LIBMATH_INCLUDES) $(TOPLEVEL_INCLUDES) # Source files linked in via configuration/make substitution for a # particular host. -host_sources = \ - codecvt_members.cc \ - collate_members.cc \ - ctype_members.cc \ - messages_members.cc \ - monetary_members.cc \ - numeric_members.cc \ - time_members.cc +host_sources = codecvt_members.cc collate_members.cc ctype_members.cc messages_members.cc monetary_members.cc numeric_members.cc time_members.cc # Source files linked in via configuration/make substitution for a # particular host, but with ad hoc naming rules. -host_sources_extra = \ - basic_file.cc \ - c++locale.cc +host_sources_extra = basic_file.cc c++locale.cc # Sources present in the src directory. -sources = \ - allocator-inst.cc \ - codecvt.cc \ - complex_io.cc \ - concept-inst.cc \ - ctype.cc \ - demangle.cc \ - ext-inst.cc \ - fstream-inst.cc \ - functexcept.cc \ - globals.cc \ - io-inst.cc \ - ios.cc \ - istream-inst.cc \ - limits.cc \ - locale.cc \ - locale-inst.cc \ - localename.cc \ - misc-inst.cc \ - ostream-inst.cc \ - sstream-inst.cc \ - stdexcept.cc \ - streambuf-inst.cc \ - string-inst.cc \ - strstream.cc \ - valarray-inst.cc \ - wstring-inst.cc \ - ${host_sources} \ - ${host_sources_extra} +sources = allocator-inst.cc codecvt.cc complex_io.cc concept-inst.cc ctype.cc demangle.cc ext-inst.cc fstream-inst.cc functexcept.cc globals.cc io-inst.cc ios.cc istream-inst.cc limits.cc locale.cc locale-inst.cc localename.cc misc-inst.cc ostream-inst.cc sstream-inst.cc stdexcept.cc streambuf-inst.cc string-inst.cc strstream.cc valarray-inst.cc wstring-inst.cc ${host_sources} ${host_sources_extra} VPATH = $(top_srcdir)/src:$(top_srcdir) libstdc___la_SOURCES = $(sources) -libstdc___la_LIBADD = \ - $(top_builddir)/libmath/libmath.la \ - $(top_builddir)/libsupc++/libsupc++convenience.la +libstdc___la_LIBADD = $(top_builddir)/libmath/libmath.la $(top_builddir)/libsupc++/libsupc++convenience.la libstdc___la_DEPENDENCIES = libstdc++-symbol.ver $(libstdc___la_LIBADD) -libstdc___la_LDFLAGS = \ - -version-info @libtool_VERSION@ ${version_arg} \ - -lm @LIBUNWIND_FLAG@ +libstdc___la_LDFLAGS = -version-info @libtool_VERSION@ ${version_arg} -lm @LIBUNWIND_FLAG@ # Use special rules for the deprecated source files so that they find @@ -253,13 +209,8 @@ GLIBCXX_INCLUDE_DIR = @glibcxx_builddir@/include # modified in a per-library or per-sub-library way. Need to manually # set this option because CONFIG_CXXFLAGS has to be after # OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden -# as the occasion call for it. -AM_CXXFLAGS = \ - -fno-implicit-templates \ - $(LIBSUPCXX_CXXFLAGS) \ - $(WARN_CXXFLAGS) \ - $(OPTIMIZE_CXXFLAGS) \ - $(CONFIG_CXXFLAGS) +# as the occasion calls for it. +AM_CXXFLAGS = -fno-implicit-templates $(LIBSUPCXX_CXXFLAGS) $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) # libstdc++ libtool notes @@ -280,8 +231,7 @@ AM_CXXFLAGS = \ # correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe # CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to # attempt to infer which configuration to use -LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) \ - $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS) # 3) We'd have a problem when building the shared libstdc++ object if @@ -290,8 +240,7 @@ LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) \ # course is problematic at this point. So, we get the top-level # directory to configure libstdc++-v3 to use gcc as the C++ # compilation driver. -CXXLINK = $(LIBTOOL) --tag CXX --mode=link $(CXX) \ - @OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@ +CXXLINK = $(LIBTOOL) --tag CXX --mode=link $(CXX) @OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@ debugdir = debug @@ -321,7 +270,7 @@ DIST_COMMON = Makefile.am Makefile.in DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) -TAR = gtar +TAR = tar GZIP_ENV = --best SOURCES = $(libstdc___la_SOURCES) OBJECTS = $(libstdc___la_OBJECTS) @@ -433,7 +382,7 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) $(LISP) awk ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ - || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags $$unique $(LISP) -o $$here/TAGS) + || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags $$unique $(LISP)) mostlyclean-tags: @@ -540,7 +489,13 @@ distclean-generic clean-generic maintainer-clean-generic clean \ mostlyclean distclean maintainer-clean @GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@libstdc++-symbol.ver: ${glibcxx_srcdir}/@SYMVER_MAP@ -@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@ @LN_S@ ${glibcxx_srcdir}/@SYMVER_MAP@ ./libstdc++-symbol.ver || true +@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@ cp ${glibcxx_srcdir}/@SYMVER_MAP@ ./libstdc++-symbol.ver +@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@ if test "x${port_specific_symbol_file}" != x; then \ +@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@ sed -n '1,/DO NOT DELETE/p' $@ > tmp.top; \ +@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@ sed -n '/DO NOT DELETE/,$$p' $@ > tmp.bottom; \ +@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@ cat tmp.top $(port_specific_symbol_file) tmp.bottom > $@; \ +@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@ rm tmp.top tmp.bottom; \ +@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@ fi @GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE@libstdc++-symbol.ver: codecvt_members.cc: ${glibcxx_srcdir}/@CCODECVT_CC@ @@ -593,10 +548,10 @@ demangle.o: demangle.cc @GLIBCXX_BUILD_DEBUG_TRUE@all-local: build_debug @GLIBCXX_BUILD_DEBUG_TRUE@install-data-local: install_debug @GLIBCXX_BUILD_DEBUG_FALSE@all-local: -@GLIBCXX_BUILD_DEBUG_FALSE@install-data-local: +@GLIBCXX_BUILD_DEBUG_FALSE@install-data-local: # Build parallel set of debug objects here. -stamp-debug: +stamp-debug: if test ! -d ${debugdir}; then \ mkdir -p ${debugdir}; \ (cd ${debugdir}; \ @@ -607,13 +562,13 @@ stamp-debug: -e 's/install-data-local: install_debug/install-data-local:/' \ < ../Makefile > Makefile) ; \ fi; \ - echo `date` > stamp-debug; + echo `date` > stamp-debug; build_debug: stamp-debug (cd ${debugdir} && $(MAKE) CXXFLAGS='@DEBUG_FLAGS@' all) # Install debug library here. -install_debug: +install_debug: (cd ${debugdir} && $(MAKE) \ toolexeclibdir=@glibcxx_toolexeclibdir@/debug install) |