Makefile.am (string_sources): Simplify...

2000-06-14  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

      	* src/Makefile.am (string_sources): Simplify, assuming that with
	-ffunction-sections, -fdata-sections, -Wl,--gc-sections, all this
	hacking is not necessary.
        (wstring_sources): Same.
        (OPTIMIZE_CXXFLAGS): Enable -fdata-sections -ffunction-sections
	-Wl,--gc-sections.
	* src/string-inst.cc: Remove macro blocks.
	* mkcheck.in (CXX_FLAG): Add bits here.

	* src/string-inst.cc: Remove iostream-related string instantiations.
	* src/misc-inst.cc: Add here.

	* acinclude.m4 (GLIBCPP_CHECK_COMPILER_VERSION): Change FMTFLAGS
	to WFMT_FLAGS.
	* aclocal.m4: Regenerate.
	* configure.in: Change up.
	* configure: Regenerate.

From-SVN: r34593
This commit is contained in:
Benjamin Kosnik 2000-06-19 03:14:40 +00:00 committed by Benjamin Kosnik
parent 0a37799771
commit c470c17d65
13 changed files with 874 additions and 1324 deletions

View File

@ -1,3 +1,23 @@
2000-06-14 Benjamin Kosnik <bkoz@purist.soma.redhat.com>
* src/Makefile.am (string_sources): Simplify, assuming that with
-ffunction-sections, -fdata-sections, -Wl,--gc-sections, all this
hacking is not necessary.
(wstring_sources): Same.
(OPTIMIZE_CXXFLAGS): Enable -fdata-sections -ffunction-sections
-Wl,--gc-sections.
* src/string-inst.cc: Remove macro blocks.
* mkcheck.in (CXX_FLAG): Add bits here.
* src/string-inst.cc: Remove iostream-related string instantiations.
* src/misc-inst.cc: Add here.
* acinclude.m4 (GLIBCPP_CHECK_COMPILER_VERSION): Change FMTFLAGS
to WFMT_FLAGS.
* aclocal.m4: Regenerate.
* configure.in: Change up.
* configure: Regenerate.
2000-06-13 Steven King <sxking@uswest.net>
* acinclude.m4: Fixup some of the builtin math tests and add tests for

View File

@ -68,18 +68,17 @@ AS = @AS@
BUILD_LIBIO_INCLUDE = @BUILD_LIBIO_INCLUDE@
CC = @CC@
CPP = @CPP@
CPUFLAGS = @CPUFLAGS@
CPU_FLAGS = @CPU_FLAGS@
CSHADOWFLAGS = @CSHADOWFLAGS@
CSHADOW_INCLUDES = @CSHADOW_INCLUDES@
CSTDIO_CC = @CSTDIO_CC@
CSTDIO_H = @CSTDIO_H@
CXX = @CXX@
CXXCPP = @CXXCPP@
DEBUGFLAGS = @DEBUGFLAGS@
DEBUG_FLAGS = @DEBUG_FLAGS@
DLLTOOL = @DLLTOOL@
EXEEXT = @EXEEXT@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FMTFLAGS = @FMTFLAGS@
GCC_OBJDIR = @GCC_OBJDIR@
GLIBCPP_CFLAGS = @GLIBCPP_CFLAGS@
GLIBCPP_CXXFLAGS = @GLIBCPP_CXXFLAGS@
@ -92,6 +91,8 @@ MAKEINFO = @MAKEINFO@
OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
THREADDEPS = @THREADDEPS@
THREADINCS = @THREADINCS@
THREADLIBS = @THREADLIBS@
@ -100,6 +101,7 @@ THREADSPEC = @THREADSPEC@
USE_LONG_DOUBLE = @USE_LONG_DOUBLE@
VERSION = @VERSION@
WERROR = @WERROR@
WFMT_FLAGS = @WFMT_FLAGS@
cpu_include_dir = @cpu_include_dir@
ctype_include_dir = @ctype_include_dir@
glibcpp_basedir = @glibcpp_basedir@

View File

@ -155,27 +155,10 @@ AC_SUBST(GLIBCPP_CXXFLAGS)
dnl
dnl Check to see if g++ can compile this library, and if so, if any version-
dnl specific precautions need to be taken. In particular, test for
dnl newer compiler features, or features that are present in newer
dnl compiler version but not older compiler versions should be placed
dnl here.
dnl
dnl Define FMTFLAGS='-fdiagnostics-show-location=once' if possible
dnl Define WERROR='-Werror' if possible; g++'s that lack the new inlining
dnl code or the new system_header pragma will die. Other options dealing
dnl with warnings, errors, and compiler complaints may be folded into
dnl the WERROR variable.
dnl
dnl specific precautions need to be taken.
dnl
dnl GLIBCPP_CHECK_COMPILER_VERSION
AC_DEFUN(GLIBCPP_CHECK_COMPILER_VERSION, [
# All these tests are for C++; save the language and the compiler flags.
# The CXXFLAGS thing is suspicious, but based on similar bits
# found in GLIBCPP_CONFIGURE.
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
WERROR='-Werror'
# Sanity check that g++ is capable of dealing with v-3.
AC_MSG_CHECKING([for g++ that will successfully compile this code])
@ -185,6 +168,31 @@ AC_DEFUN(GLIBCPP_CHECK_COMPILER_VERSION, [
#endif
], gpp_satisfactory=yes, AC_MSG_ERROR("please upgrade to gcc-2.95 or above"))
AC_MSG_RESULT($gpp_satisfactory)
])
dnl
dnl Test for newer compiler features, or features that are present in newer
dnl compiler version but not older compiler versions should be placed
dnl here.
dnl
dnl Define WFMT_FLAGS='-fdiagnostics-show-location=once' if possible
dnl
dnl Define WERROR='-Werror' if possible; g++'s that lack the new inlining
dnl code or the new system_header pragma will die.
dnl
dnl Define SECTION_FLAGS='-ffunction-sections -fdata-sections' if
dnl compiler supports it.
dnl GLIBCPP_CHECK_COMPILER_FEATURES
AC_DEFUN(GLIBCPP_CHECK_COMPILER_FEATURES, [
# All these tests are for C++; save the language and the compiler flags.
# The CXXFLAGS thing is suspicious, but based on similar bits
# found in GLIBCPP_CONFIGURE.
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
WERROR='-Werror'
# Check for pragma system_header.
AC_MSG_CHECKING([for g++ that supports pragma system_header])
@ -214,15 +222,66 @@ AC_DEFUN(GLIBCPP_CHECK_COMPILER_VERSION, [
CXXFLAGS=''
fi
if test "$ac_gabydiags" = "yes"; then
FMTFLAGS='-fdiagnostics-show-location=once'
WFMT_FLAGS='-fdiagnostics-show-location=once'
fi
AC_MSG_RESULT($ac_gabydiags)
# Check for -ffunction-sections -fdata-sections
AC_MSG_CHECKING([for g++ that supports -ffunction-sections -fdata-sections])
CXXFLAGS='-ffunction-sections -fdata-sections'
AC_TRY_COMPILE(, [int foo;
], [ac_fdsections=yes], [ac_fdsections=no])
if test "$ac_test_CXXFLAGS" = set; then
CXXFLAGS="$ac_save_CXXFLAGS"
else
# this is the suspicious part
CXXFLAGS=''
fi
if test "$ac_fdsections" = "yes"; then
SECTION_FLAGS='-ffunction-sections -fdata-sections'
fi
AC_MSG_RESULT($ac_fdsections)
AC_LANG_RESTORE
AC_SUBST(WERROR)
AC_SUBST(FMTFLAGS)
AC_SUBST(WFMT_FLAGS)
AC_SUBST(SECTION_FLAGS)
])
dnl
dnl Check to see if tricky linker opts can be used.
dnl
dnl Define SECTION_LDFLAGS='-Wl,--gc-sections' if possible
dnl GLIBCPP_CHECK_LINKER_FEATURES
AC_DEFUN(GLIBCPP_CHECK_LINKER_FEATURES, [
# All these tests are for C++; save the language and the compiler flags.
# The CXXFLAGS thing is suspicious, but based on similar bits
# found in GLIBCPP_CONFIGURE.
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
# Check for -Wl,--gc-sections
AC_MSG_CHECKING([for ld that supports -Wl,--gc-sections])
CXXFLAGS='-Wl,--gc-sections'
AC_TRY_COMPILE(, [int foo;
], [ac_sectionLDflags=yes], [ac_sectionLFflags=no])
if test "$ac_test_CXXFLAGS" = set; then
CXXFLAGS="$ac_save_CXXFLAGS"
else
# this is the suspicious part
CXXFLAGS=''
fi
if test "$ac_sectionLDflags" = "yes"; then
SECTION_LDFLAGS='-Wl,--gc-sections'
fi
AC_MSG_RESULT($ac_sectionLDflags)
AC_LANG_RESTORE
AC_SUBST(SECTION_LDFLAGS)
])
dnl
dnl Check to see what builtin math functions are supported
dnl
@ -841,7 +900,7 @@ dnl
dnl GLIBCPP_CHECK_CPU
AC_DEFUN(GLIBCPP_CHECK_CPU, [
AC_MSG_CHECKING([for cpu primitives directory])
CPUFLAGS=
CPU_FLAGS=
case "$target_cpu" in
alpha*)
cpu_include_dir="config/cpu/alpha"
@ -857,7 +916,7 @@ AC_DEFUN(GLIBCPP_CHECK_CPU, [
;;
powerpc | rs6000)
cpu_include_dir="config/cpu/powerpc"
CPUFLAGS='-mcpu=powerpc'
CPU_FLAGS='-mcpu=powerpc'
;;
sparc64 | ultrasparc)
cpu_include_dir="config/cpu/sparc/sparc64"
@ -871,7 +930,7 @@ AC_DEFUN(GLIBCPP_CHECK_CPU, [
esac
AC_MSG_RESULT($cpu_include_dir)
AC_SUBST(cpu_include_dir)
AC_SUBST(CPUFLAGS)
AC_SUBST(CPU_FLAGS)
])
@ -1270,13 +1329,13 @@ enable_debug=GLIBCPP_ENABLE_DEBUG_DEFAULT)dnl
dnl Option parsed, now set things appropriately
case "$enable_debug" in
yes)
DEBUGFLAGS='-O0 -ggdb'
DEBUG_FLAGS='-O0 -ggdb'
;;
no)
DEBUGFLAGS='-g'
DEBUG_FLAGS='-g'
;;
esac
AC_SUBST(DEBUGFLAGS)
AC_SUBST(DEBUG_FLAGS)
])

View File

@ -167,27 +167,10 @@ AC_SUBST(GLIBCPP_CXXFLAGS)
dnl
dnl Check to see if g++ can compile this library, and if so, if any version-
dnl specific precautions need to be taken. In particular, test for
dnl newer compiler features, or features that are present in newer
dnl compiler version but not older compiler versions should be placed
dnl here.
dnl
dnl Define FMTFLAGS='-fdiagnostics-show-location=once' if possible
dnl Define WERROR='-Werror' if possible; g++'s that lack the new inlining
dnl code or the new system_header pragma will die. Other options dealing
dnl with warnings, errors, and compiler complaints may be folded into
dnl the WERROR variable.
dnl
dnl specific precautions need to be taken.
dnl
dnl GLIBCPP_CHECK_COMPILER_VERSION
AC_DEFUN(GLIBCPP_CHECK_COMPILER_VERSION, [
# All these tests are for C++; save the language and the compiler flags.
# The CXXFLAGS thing is suspicious, but based on similar bits
# found in GLIBCPP_CONFIGURE.
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
WERROR='-Werror'
# Sanity check that g++ is capable of dealing with v-3.
AC_MSG_CHECKING([for g++ that will successfully compile this code])
@ -197,6 +180,31 @@ AC_DEFUN(GLIBCPP_CHECK_COMPILER_VERSION, [
#endif
], gpp_satisfactory=yes, AC_MSG_ERROR("please upgrade to gcc-2.95 or above"))
AC_MSG_RESULT($gpp_satisfactory)
])
dnl
dnl Test for newer compiler features, or features that are present in newer
dnl compiler version but not older compiler versions should be placed
dnl here.
dnl
dnl Define WFMT_FLAGS='-fdiagnostics-show-location=once' if possible
dnl
dnl Define WERROR='-Werror' if possible; g++'s that lack the new inlining
dnl code or the new system_header pragma will die.
dnl
dnl Define SECTION_FLAGS='-ffunction-sections -fdata-sections' if
dnl compiler supports it.
dnl GLIBCPP_CHECK_COMPILER_FEATURES
AC_DEFUN(GLIBCPP_CHECK_COMPILER_FEATURES, [
# All these tests are for C++; save the language and the compiler flags.
# The CXXFLAGS thing is suspicious, but based on similar bits
# found in GLIBCPP_CONFIGURE.
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
WERROR='-Werror'
# Check for pragma system_header.
AC_MSG_CHECKING([for g++ that supports pragma system_header])
@ -226,15 +234,66 @@ AC_DEFUN(GLIBCPP_CHECK_COMPILER_VERSION, [
CXXFLAGS=''
fi
if test "$ac_gabydiags" = "yes"; then
FMTFLAGS='-fdiagnostics-show-location=once'
WFMT_FLAGS='-fdiagnostics-show-location=once'
fi
AC_MSG_RESULT($ac_gabydiags)
# Check for -ffunction-sections -fdata-sections
AC_MSG_CHECKING([for g++ that supports -ffunction-sections -fdata-sections])
CXXFLAGS='-ffunction-sections -fdata-sections'
AC_TRY_COMPILE(, [int foo;
], [ac_fdsections=yes], [ac_fdsections=no])
if test "$ac_test_CXXFLAGS" = set; then
CXXFLAGS="$ac_save_CXXFLAGS"
else
# this is the suspicious part
CXXFLAGS=''
fi
if test "$ac_fdsections" = "yes"; then
SECTION_FLAGS='-ffunction-sections -fdata-sections'
fi
AC_MSG_RESULT($ac_fdsections)
AC_LANG_RESTORE
AC_SUBST(WERROR)
AC_SUBST(FMTFLAGS)
AC_SUBST(WFMT_FLAGS)
AC_SUBST(SECTION_FLAGS)
])
dnl
dnl Check to see if tricky linker opts can be used.
dnl
dnl Define SECTION_LDFLAGS='-Wl,--gc-sections' if possible
dnl GLIBCPP_CHECK_LINKER_FEATURES
AC_DEFUN(GLIBCPP_CHECK_LINKER_FEATURES, [
# All these tests are for C++; save the language and the compiler flags.
# The CXXFLAGS thing is suspicious, but based on similar bits
# found in GLIBCPP_CONFIGURE.
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
# Check for -Wl,--gc-sections
AC_MSG_CHECKING([for ld that supports -Wl,--gc-sections])
CXXFLAGS='-Wl,--gc-sections'
AC_TRY_COMPILE(, [int foo;
], [ac_sectionLDflags=yes], [ac_sectionLFflags=no])
if test "$ac_test_CXXFLAGS" = set; then
CXXFLAGS="$ac_save_CXXFLAGS"
else
# this is the suspicious part
CXXFLAGS=''
fi
if test "$ac_sectionLDflags" = "yes"; then
SECTION_LDFLAGS='-Wl,--gc-sections'
fi
AC_MSG_RESULT($ac_sectionLDflags)
AC_LANG_RESTORE
AC_SUBST(SECTION_LDFLAGS)
])
dnl
dnl Check to see what builtin math functions are supported
dnl
@ -853,7 +912,7 @@ dnl
dnl GLIBCPP_CHECK_CPU
AC_DEFUN(GLIBCPP_CHECK_CPU, [
AC_MSG_CHECKING([for cpu primitives directory])
CPUFLAGS=
CPU_FLAGS=
case "$target_cpu" in
alpha*)
cpu_include_dir="config/cpu/alpha"
@ -869,7 +928,7 @@ AC_DEFUN(GLIBCPP_CHECK_CPU, [
;;
powerpc | rs6000)
cpu_include_dir="config/cpu/powerpc"
CPUFLAGS='-mcpu=powerpc'
CPU_FLAGS='-mcpu=powerpc'
;;
sparc64 | ultrasparc)
cpu_include_dir="config/cpu/sparc/sparc64"
@ -883,7 +942,7 @@ AC_DEFUN(GLIBCPP_CHECK_CPU, [
esac
AC_MSG_RESULT($cpu_include_dir)
AC_SUBST(cpu_include_dir)
AC_SUBST(CPUFLAGS)
AC_SUBST(CPU_FLAGS)
])
@ -1282,13 +1341,13 @@ enable_debug=GLIBCPP_ENABLE_DEBUG_DEFAULT)dnl
dnl Option parsed, now set things appropriately
case "$enable_debug" in
yes)
DEBUGFLAGS='-O0 -ggdb'
DEBUG_FLAGS='-O0 -ggdb'
;;
no)
DEBUGFLAGS='-g'
DEBUG_FLAGS='-g'
;;
esac
AC_SUBST(DEBUGFLAGS)
AC_SUBST(DEBUG_FLAGS)
])

1101
libstdc++-v3/configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -106,6 +106,8 @@ else
AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h machine/endian.h \
machine/param.h sys/machine.h fp.h locale.h float.h inttypes.h])
GLIBCPP_CHECK_COMPILER_FEATURES
GLIBCPP_CHECK_LINKER_FEATURES
GLIBCPP_CHECK_COMPLEX_SUPPORT
GLIBCPP_CHECK_COMPLEX_FLOAT_SUPPORT
GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT

View File

@ -68,18 +68,17 @@ AS = @AS@
BUILD_LIBIO_INCLUDE = @BUILD_LIBIO_INCLUDE@
CC = @CC@
CPP = @CPP@
CPUFLAGS = @CPUFLAGS@
CPU_FLAGS = @CPU_FLAGS@
CSHADOWFLAGS = @CSHADOWFLAGS@
CSHADOW_INCLUDES = @CSHADOW_INCLUDES@
CSTDIO_CC = @CSTDIO_CC@
CSTDIO_H = @CSTDIO_H@
CXX = @CXX@
CXXCPP = @CXXCPP@
DEBUGFLAGS = @DEBUGFLAGS@
DEBUG_FLAGS = @DEBUG_FLAGS@
DLLTOOL = @DLLTOOL@
EXEEXT = @EXEEXT@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FMTFLAGS = @FMTFLAGS@
GCC_OBJDIR = @GCC_OBJDIR@
GLIBCPP_CFLAGS = @GLIBCPP_CFLAGS@
GLIBCPP_CXXFLAGS = @GLIBCPP_CXXFLAGS@
@ -92,6 +91,8 @@ MAKEINFO = @MAKEINFO@
OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
THREADDEPS = @THREADDEPS@
THREADINCS = @THREADINCS@
THREADLIBS = @THREADLIBS@
@ -100,6 +101,7 @@ THREADSPEC = @THREADSPEC@
USE_LONG_DOUBLE = @USE_LONG_DOUBLE@
VERSION = @VERSION@
WERROR = @WERROR@
WFMT_FLAGS = @WFMT_FLAGS@
cpu_include_dir = @cpu_include_dir@
ctype_include_dir = @ctype_include_dir@
glibcpp_basedir = @glibcpp_basedir@

View File

@ -68,18 +68,17 @@ AS = @AS@
BUILD_LIBIO_INCLUDE = @BUILD_LIBIO_INCLUDE@
CC = @CC@
CPP = @CPP@
CPUFLAGS = @CPUFLAGS@
CPU_FLAGS = @CPU_FLAGS@
CSHADOWFLAGS = @CSHADOWFLAGS@
CSHADOW_INCLUDES = @CSHADOW_INCLUDES@
CSTDIO_CC = @CSTDIO_CC@
CSTDIO_H = @CSTDIO_H@
CXX = @CXX@
CXXCPP = @CXXCPP@
DEBUGFLAGS = @DEBUGFLAGS@
DEBUG_FLAGS = @DEBUG_FLAGS@
DLLTOOL = @DLLTOOL@
EXEEXT = @EXEEXT@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FMTFLAGS = @FMTFLAGS@
GCC_OBJDIR = @GCC_OBJDIR@
GLIBCPP_CFLAGS = @GLIBCPP_CFLAGS@
GLIBCPP_CXXFLAGS = @GLIBCPP_CXXFLAGS@
@ -92,6 +91,8 @@ MAKEINFO = @MAKEINFO@
OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
THREADDEPS = @THREADDEPS@
THREADINCS = @THREADINCS@
THREADLIBS = @THREADLIBS@
@ -100,6 +101,7 @@ THREADSPEC = @THREADSPEC@
USE_LONG_DOUBLE = @USE_LONG_DOUBLE@
VERSION = @VERSION@
WERROR = @WERROR@
WFMT_FLAGS = @WFMT_FLAGS@
cpu_include_dir = @cpu_include_dir@
ctype_include_dir = @ctype_include_dir@
glibcpp_basedir = @glibcpp_basedir@

View File

@ -69,7 +69,7 @@ fi
# gcc compiler flags
#CXX_FLAG="-fsquangle -fhonor-std -fnew-exceptions -g -O2 -DDEBUG_ASSERT "
#CXX_FLAG="-g -O2 -DDEBUG_ASSERT "
CXX_FLAG="-g -DDEBUG_ASSERT "
CXX_FLAG="-g -DDEBUG_ASSERT @SECTION_FLAGS@ @SECTION_LDFLAGS@"
# a specific flag(s) to force the use of shared libraries, if any
SH_FLAG=""

View File

@ -38,25 +38,23 @@ EXTRA_LTLIBRARIES = libinst-string.la libinst-wstring.la
# Using these options is probably a good idea for thrill-seekers. Just
# uncomment the lines below and make, everything else is ready to go...
# OPTIMIZE_CXXFLAGS = \
# -O3 -fstrict-aliasing \
# -fdata-sections -ffunction-sections -fvtable-gc -Wl,--gc-sections
# uncomment the lines below and make, everything else is ready to go...
# OPTIMIZE_CXXFLAGS = -O3 -fstrict-aliasing -fvtable-gc
# These bits are all figured out from configure. Look in acinclude.m4
# or configure.in to see how they are set.
# NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden.
AC_CXXFLAGS = \
@WERROR@ @FMTFLAGS@ @CSHADOWFLAGS@ @CPUFLAGS@ \
@EXTRA_CXX_FLAGS@ @DEBUGFLAGS@
@WERROR@ @WFMT_FLAGS@ @CPU_FLAGS@ @EXTRA_CXX_FLAGS@ \
@SECTION_FLAGS@ @SECTION_LDFLAGS@ @DEBUG_FLAGS@
# Need to manually set this option because AC_CXXFLAGS has to be at
# the end of the compile line so that -O2 can be over-riden as the
# the end of the compile line so that -O2 can be overridden as the
# occasion call for it. (ie, --enable-debug)
AM_CXXFLAGS = \
$(FORMAT_CXXFLAGS) \
-fno-implicit-templates \
-fno-implicit-templates $(OPTIMIZE_CXXFLAGS) \
-Wall -Wno-format -W -Wwrite-strings -Winline \
$(OPTIMIZE_CXXFLAGS) $(AC_CXXFLAGS)
$(AC_CXXFLAGS)
# Passed down for cross compilers, canadian crosses.
@ -79,8 +77,8 @@ INCLUDES = \
# Need to explicitly set this so that AM_CXXFLAGS is last. (That way,
# things like -O2 passed down from the toplevel can be overridden by
# --enable-debug.)
CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS)
CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(CXXFLAGS) $(AM_CXXFLAGS)
LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS)
@ -195,63 +193,25 @@ sources = \
complex.cc complexf.cc complexl.cc complex_io.cc \
stdexcept.cc ios.cc stdstreams.cc strstream.cc \
locale.cc localename.cc \
locale-inst.cc stl-inst.cc misc-inst.cc valarray-inst.cc
string_sources = \
stringMAIN.cc stringCTORNC.cc stringCTORAL.cc \
stringCTORCPR.cc stringCTORCPRAL.cc stringCTORPRAL.cc \
stringCTORPAL.cc stringCTORPP.cc stringCTORII.cc \
stringMUTATE.cc stringRESERVE.cc \
stringSWAP.cc stringSLOP.cc \
stringRESIZE.cc stringAPPCOPY.cc stringAPPCPR.cc stringAPPPR.cc \
stringAPPDUP.cc stringAPPII.cc stringASSCP.cc stringASSII.cc \
stringINSII.cc stringREPRR.cc stringREPIIDUP.cc stringREPII.cc \
stringREPIII.cc stringREP4I.cc stringREPIIPP.cc stringREPIIPP2.cc \
stringCOPY.cc stringCONII.cc stringCONIIF.cc stringCONPPF.cc \
stringCONPPF2.cc stringCONSC.cc \
stringFIND.cc stringFINDC.cc stringRFIND.cc \
stringRFINDC.cc stringFFO.cc stringFLO.cc stringFFNO.cc \
stringFLNO.cc stringFLNOC.cc stringCOMPARE.cc stringCOMPARE2.cc \
stringCOMPAREP.cc stringCOMPAREP2.cc stringADDPS.cc stringADDCS.cc \
stringEXTRACT.cc stringINSERT.cc stringGETLINE.cc stringSCOPY.cc \
stringEQ.cc
locale-inst.cc stl-inst.cc misc-inst.cc valarray-inst.cc string-inst.cc
wstring_sources = \
wstringMAIN.cc wstringCTORNC.cc wstringCTORAL.cc \
wstringCTORCPR.cc wstringCTORCPRAL.cc wstringCTORPRAL.cc \
wstringCTORPAL.cc wstringCTORPP.cc \
wstringCTORII.cc \
wstringMUTATE.cc wstringRESERVE.cc \
wstringSWAP.cc wstringSLOP.cc \
wstringRESIZE.cc wstringAPPCOPY.cc wstringAPPCPR.cc wstringAPPPR.cc \
wstringAPPDUP.cc wstringAPPII.cc wstringASSCP.cc wstringASSII.cc \
wstringINSII.cc wstringREPRR.cc wstringREPIIDUP.cc wstringREPII.cc \
wstringREPIII.cc wstringREP4I.cc wstringREPIIPP.cc wstringREPIIPP2.cc \
wstringCOPY.cc wstringCONII.cc wstringCONIIF.cc wstringCONPPF.cc \
wstringCONPPF2.cc wstringCONSC.cc \
wstringFIND.cc wstringFINDC.cc wstringRFIND.cc \
wstringRFINDC.cc wstringFFO.cc wstringFLO.cc wstringFFNO.cc \
wstringFLNO.cc wstringFLNOC.cc wstringCOMPARE.cc wstringCOMPARE2.cc \
wstringCOMPAREP.cc wstringCOMPAREP2.cc wstringADDPS.cc \
wstringADDCS.cc wstringEXTRACT.cc wstringINSERT.cc wstringGETLINE.cc \
wstringSCOPY.cc wstringEQ.cc
wstring-inst.cc
VPATH += $(top_srcdir) $(top_srcdir)/std $(top_srcdir)/src
VPATH += $(top_srcdir)/@ctype_include_dir@
# Actual sources for the distro, but don't build these.
EXTRA_sources = string-inst.cc
#EXTRA_sources = string-inst.cc
libstdc___la_SOURCES = $(sources)
libinst_string_la_SOURCES = $(string_sources)
libinst_wstring_la_SOURCES = $(wstring_sources)
libstdc___la_LIBADD = \
../math/libmath.la ../libio/libio.la \
libinst-string.la @libinst_wstring_la@
@libinst_wstring_la@
libstdc___la_LDFLAGS = -version-info 3:0:0 -lm
@ -333,235 +293,9 @@ locale-inst.o: locale-inst.cc
locale-inst.lo: locale-inst.cc
$(LTCXXCOMPILE) -fimplicit-templates -c $<
stringMAIN.lo \
stringCTORNC.lo \
stringCTORAL.lo \
stringCTORCPR.lo \
stringCTORCPRAL.lo \
stringCTORPRAL.lo \
stringCTORPAL.lo \
stringCTORPP.lo \
stringCTORII.lo \
stringMUTATE.lo \
stringRESERVE.lo \
stringSWAP.lo \
stringSLOP.lo \
stringRESIZE.lo \
stringAPPCOPY.lo \
stringAPPCPR.lo \
stringAPPPR.lo \
stringAPPDUP.lo \
stringAPPII.lo \
stringASSCP.lo \
stringASSII.lo \
stringINSII.lo \
stringREPRR.lo \
stringREPIIDUP.lo \
stringREPII.lo \
stringREPIII.lo \
stringREP4I.lo \
stringREPIIPP.lo \
stringREPIIPP2.lo \
stringCOPY.lo \
stringCONII.lo \
stringCONIIF.lo \
stringCONPPF.lo \
stringCONPPF2.lo \
stringCONSC.lo \
stringFIND.lo \
stringFINDC.lo \
stringRFIND.lo \
stringRFINDC.lo \
stringFFO.lo \
stringFLO.lo \
stringFFNO.lo \
stringFLNO.lo \
stringFLNOC.lo \
stringCOMPARE.lo \
stringCOMPARE2.lo \
stringCOMPAREP.lo \
stringCOMPAREP2.lo \
stringADDPS.lo \
stringADDCS.lo \
stringEXTRACT.lo \
stringINSERT.lo \
stringGETLINE.lo \
stringSCOPY.lo \
stringEQ.lo : string-inst.cc
$(LTCXXCOMPILE) -fimplicit-templates \
-c -D`echo $@ | tr -dc '0-9A-Z'` $< -o $@
wstringMAIN.lo \
wstringCTORNC.lo \
wstringCTORAL.lo \
wstringCTORCPR.lo \
wstringCTORCPRAL.lo \
wstringCTORPRAL.lo \
wstringCTORPAL.lo \
wstringCTORPP.lo \
wstringCTORII.lo \
wstringMUTATE.lo \
wstringRESERVE.lo \
wstringSWAP.lo \
wstringSLOP.lo \
wstringRESIZE.lo \
wstringAPPCOPY.lo \
wstringAPPCPR.lo \
wstringAPPPR.lo \
wstringAPPDUP.lo \
wstringAPPII.lo \
wstringASSCP.lo \
wstringASSII.lo \
wstringINSII.lo \
wstringREPRR.lo \
wstringREPIIDUP.lo \
wstringREPII.lo \
wstringREPIII.lo \
wstringREP4I.lo \
wstringREPIIPP.lo \
wstringREPIIPP2.lo \
wstringCOPY.lo \
wstringCONII.lo \
wstringCONIIF.lo \
wstringCONPPF.lo \
wstringCONPPF2.lo \
wstringCONSC.lo \
wstringFIND.lo \
wstringFINDC.lo \
wstringRFIND.lo \
wstringRFINDC.lo \
wstringFFO.lo \
wstringFLO.lo \
wstringFFNO.lo \
wstringFLNO.lo \
wstringFLNOC.lo \
wstringCOMPARE.lo \
wstringCOMPARE2.lo \
wstringCOMPAREP.lo \
wstringCOMPAREP2.lo \
wstringADDPS.lo \
wstringADDCS.lo \
wstringEXTRACT.lo \
wstringINSERT.lo \
wstringGETLINE.lo \
wstringSCOPY.lo \
wstringEQ.lo : string-inst.cc
$(LTCXXCOMPILE) -fimplicit-templates \
-c -D`echo $@ | tr -dc '0-9A-Z'` -DC=wchar_t $< -o $@
stringMAIN.o \
stringCTORNC.o \
stringCTORAL.o \
stringCTORCPR.o \
stringCTORCPRAL.o \
stringCTORPRAL.o \
stringCTORPAL.o \
stringCTORPP.o \
stringCTORII.o \
stringMUTATE.o \
stringRESERVE.o \
stringSWAP.o \
stringSLOP.o \
stringRESIZE.o \
stringAPPCOPY.o \
stringAPPCPR.o \
stringAPPPR.o \
stringAPPDUP.o \
stringAPPII.o \
stringASSCP.o \
stringASSII.o \
stringINSII.o \
stringREPRR.o \
stringREPIIDUP.o \
stringREPII.o \
stringREPIII.o \
stringREP4I.o \
stringREPIIPP.o \
stringREPIIPP2.o \
stringCOPY.o \
stringCONII.o \
stringCONIIF.o \
stringCONPPF.o \
stringCONPPF2.o \
stringCONSC.o \
stringFIND.o \
stringFINDC.o \
stringRFIND.o \
stringRFINDC.o \
stringFFO.o \
stringFLO.o \
stringFFNO.o \
stringFLNO.o \
stringFLNOC.o \
stringCOMPARE.o \
stringCOMPARE2.o \
stringCOMPAREP.o \
stringCOMPAREP2.o \
stringADDPS.o \
stringADDCS.o \
stringEXTRACT.o \
stringINSERT.o \
stringGETLINE.o \
stringSCOPY.o \
stringEQ.o : string-inst.cc
$(CXXCOMPILE) -fimplicit-templates \
-c -D`echo $@ | tr -dc '0-9A-Z'` $< -o $@
wstringMAIN.o \
wstringCTORNC.o \
wstringCTORAL.o \
wstringCTORCPR.o \
wstringCTORCPRAL.o \
wstringCTORPRAL.o \
wstringCTORPAL.o \
wstringCTORPP.o \
wstringCTORII.o \
wstringMUTATE.o \
wstringRESERVE.o \
wstringSWAP.o \
wstringSLOP.o \
wstringRESIZE.o \
wstringAPPCOPY.o \
wstringAPPCPR.o \
wstringAPPPR.o \
wstringAPPDUP.o \
wstringAPPII.o \
wstringASSCP.o \
wstringASSII.o \
wstringINSII.o \
wstringREPRR.o \
wstringREPIIDUP.o \
wstringREPII.o \
wstringREPIII.o \
wstringREP4I.o \
wstringREPIIPP.o \
wstringREPIIPP2.o \
wstringCOPY.o \
wstringCONII.o \
wstringCONIIF.o \
wstringCONPPF.o \
wstringCONPPF2.o \
wstringCONSC.o \
wstringFIND.o \
wstringFINDC.o \
wstringRFIND.o \
wstringRFINDC.o \
wstringFFO.o \
wstringFLO.o \
wstringFFNO.o \
wstringFLNO.o \
wstringFLNOC.o \
wstringCOMPARE.o \
wstringCOMPARE2.o \
wstringCOMPAREP.o \
wstringCOMPAREP2.o \
wstringADDPS.o \
wstringADDCS.o \
wstringEXTRACT.o \
wstringINSERT.o \
wstringGETLINE.o \
wstringSCOPY.o \
wstringEQ.o : string-inst.cc
$(CXXCOMPILE) -fimplicit-templates \
-c -D`echo $@ | tr -dc '0-9A-Z'` -DC=wchar_t $< -o $@
# We have to instantiate wstring bits too. . .
wstring-inst.o: string-inst.cc
$(CXXCOMPILE) -fimplicit-templates -c -DC=wchar_t $< -o $@
wstring-inst.lo: string-inst.cc
$(LTCXXCOMPILE) -fimplicit-templates -c -DC=wchar_t $< -o $@

View File

@ -67,17 +67,16 @@ AS = @AS@
BUILD_LIBIO_INCLUDE = @BUILD_LIBIO_INCLUDE@
CC = @CC@
CPP = @CPP@
CPUFLAGS = @CPUFLAGS@
CPU_FLAGS = @CPU_FLAGS@
CSHADOWFLAGS = @CSHADOWFLAGS@
CSTDIO_CC = @CSTDIO_CC@
CSTDIO_H = @CSTDIO_H@
CXX = @CXX@
CXXCPP = @CXXCPP@
DEBUGFLAGS = @DEBUGFLAGS@
DEBUG_FLAGS = @DEBUG_FLAGS@
DLLTOOL = @DLLTOOL@
EXEEXT = @EXEEXT@
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
FMTFLAGS = @FMTFLAGS@
GCC_OBJDIR = @GCC_OBJDIR@
GLIBCPP_CFLAGS = @GLIBCPP_CFLAGS@
GLIBCPP_CXXFLAGS = @GLIBCPP_CXXFLAGS@
@ -90,6 +89,8 @@ MAKEINFO = @MAKEINFO@
OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
RANLIB = @RANLIB@
SECTION_FLAGS = @SECTION_FLAGS@
SECTION_LDFLAGS = @SECTION_LDFLAGS@
THREADDEPS = @THREADDEPS@
THREADINCS = @THREADINCS@
THREADLIBS = @THREADLIBS@
@ -98,6 +99,7 @@ THREADSPEC = @THREADSPEC@
USE_LONG_DOUBLE = @USE_LONG_DOUBLE@
VERSION = @VERSION@
WERROR = @WERROR@
WFMT_FLAGS = @WFMT_FLAGS@
cpu_include_dir = @cpu_include_dir@
ctype_include_dir = @ctype_include_dir@
glibcpp_basedir = @glibcpp_basedir@
@ -116,26 +118,24 @@ toolexeclib_LTLIBRARIES = libstdc++.la
EXTRA_LTLIBRARIES = libinst-string.la libinst-wstring.la
# Using these options is probably a good idea for thrill-seekers. Just
# uncomment the lines below and make, everything else is ready to go...
# OPTIMIZE_CXXFLAGS = \
# -O3 -fstrict-aliasing \
# -fdata-sections -ffunction-sections -fvtable-gc -Wl,--gc-sections
# uncomment the lines below and make, everything else is ready to go...
# OPTIMIZE_CXXFLAGS = -O3 -fstrict-aliasing -fvtable-gc
# These bits are all figured out from configure. Look in acinclude.m4
# or configure.in to see how they are set.
# NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden.
AC_CXXFLAGS = \
@WERROR@ @FMTFLAGS@ @CSHADOWFLAGS@ @CPUFLAGS@ \
@EXTRA_CXX_FLAGS@ @DEBUGFLAGS@
@WERROR@ @WFMT_FLAGS@ @CPU_FLAGS@ @EXTRA_CXX_FLAGS@ \
@SECTION_FLAGS@ @SECTION_LDFLAGS@ @DEBUG_FLAGS@
# Need to manually set this option because AC_CXXFLAGS has to be at
# the end of the compile line so that -O2 can be over-riden as the
# the end of the compile line so that -O2 can be overridden as the
# occasion call for it. (ie, --enable-debug)
AM_CXXFLAGS = \
$(FORMAT_CXXFLAGS) \
-fno-implicit-templates \
-fno-implicit-templates $(OPTIMIZE_CXXFLAGS) \
-Wall -Wno-format -W -Wwrite-strings -Winline \
$(OPTIMIZE_CXXFLAGS) $(AC_CXXFLAGS)
$(AC_CXXFLAGS)
# Passed down for cross compilers, canadian crosses.
@ -159,8 +159,8 @@ INCLUDES = \
# Need to explicitly set this so that AM_CXXFLAGS is last. (That way,
# things like -O2 passed down from the toplevel can be overridden by
# --enable-debug.)
CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS)
CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(CXXFLAGS) $(AM_CXXFLAGS)
LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) $(INCLUDES) \
@ -276,63 +276,24 @@ sources = \
complex.cc complexf.cc complexl.cc complex_io.cc \
stdexcept.cc ios.cc stdstreams.cc strstream.cc \
locale.cc localename.cc \
locale-inst.cc stl-inst.cc misc-inst.cc valarray-inst.cc
string_sources = \
stringMAIN.cc stringCTORNC.cc stringCTORAL.cc \
stringCTORCPR.cc stringCTORCPRAL.cc stringCTORPRAL.cc \
stringCTORPAL.cc stringCTORPP.cc stringCTORII.cc \
stringMUTATE.cc stringRESERVE.cc \
stringSWAP.cc stringSLOP.cc \
stringRESIZE.cc stringAPPCOPY.cc stringAPPCPR.cc stringAPPPR.cc \
stringAPPDUP.cc stringAPPII.cc stringASSCP.cc stringASSII.cc \
stringINSII.cc stringREPRR.cc stringREPIIDUP.cc stringREPII.cc \
stringREPIII.cc stringREP4I.cc stringREPIIPP.cc stringREPIIPP2.cc \
stringCOPY.cc stringCONII.cc stringCONIIF.cc stringCONPPF.cc \
stringCONPPF2.cc stringCONSC.cc \
stringFIND.cc stringFINDC.cc stringRFIND.cc \
stringRFINDC.cc stringFFO.cc stringFLO.cc stringFFNO.cc \
stringFLNO.cc stringFLNOC.cc stringCOMPARE.cc stringCOMPARE2.cc \
stringCOMPAREP.cc stringCOMPAREP2.cc stringADDPS.cc stringADDCS.cc \
stringEXTRACT.cc stringINSERT.cc stringGETLINE.cc stringSCOPY.cc \
stringEQ.cc
locale-inst.cc stl-inst.cc misc-inst.cc valarray-inst.cc string-inst.cc
wstring_sources = \
wstringMAIN.cc wstringCTORNC.cc wstringCTORAL.cc \
wstringCTORCPR.cc wstringCTORCPRAL.cc wstringCTORPRAL.cc \
wstringCTORPAL.cc wstringCTORPP.cc \
wstringCTORII.cc \
wstringMUTATE.cc wstringRESERVE.cc \
wstringSWAP.cc wstringSLOP.cc \
wstringRESIZE.cc wstringAPPCOPY.cc wstringAPPCPR.cc wstringAPPPR.cc \
wstringAPPDUP.cc wstringAPPII.cc wstringASSCP.cc wstringASSII.cc \
wstringINSII.cc wstringREPRR.cc wstringREPIIDUP.cc wstringREPII.cc \
wstringREPIII.cc wstringREP4I.cc wstringREPIIPP.cc wstringREPIIPP2.cc \
wstringCOPY.cc wstringCONII.cc wstringCONIIF.cc wstringCONPPF.cc \
wstringCONPPF2.cc wstringCONSC.cc \
wstringFIND.cc wstringFINDC.cc wstringRFIND.cc \
wstringRFINDC.cc wstringFFO.cc wstringFLO.cc wstringFFNO.cc \
wstringFLNO.cc wstringFLNOC.cc wstringCOMPARE.cc wstringCOMPARE2.cc \
wstringCOMPAREP.cc wstringCOMPAREP2.cc wstringADDPS.cc \
wstringADDCS.cc wstringEXTRACT.cc wstringINSERT.cc wstringGETLINE.cc \
wstringSCOPY.cc wstringEQ.cc
wstring-inst.cc
VPATH = $(top_srcdir) $(top_srcdir)/std $(top_srcdir)/src $(top_srcdir)/@ctype_include_dir@
# Actual sources for the distro, but don't build these.
EXTRA_sources = string-inst.cc
#EXTRA_sources = string-inst.cc
libstdc___la_SOURCES = $(sources)
libinst_string_la_SOURCES = $(string_sources)
libinst_wstring_la_SOURCES = $(wstring_sources)
libstdc___la_LIBADD = \
../math/libmath.la ../libio/libio.la \
libinst-string.la @libinst_wstring_la@
@libinst_wstring_la@
libstdc___la_LDFLAGS = -version-info 3:0:0 -lm
@ -358,43 +319,22 @@ LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
libinst_string_la_LDFLAGS =
libinst_string_la_LIBADD =
libinst_string_la_OBJECTS = stringMAIN.lo stringCTORNC.lo \
stringCTORAL.lo stringCTORCPR.lo stringCTORCPRAL.lo stringCTORPRAL.lo \
stringCTORPAL.lo stringCTORPP.lo stringCTORII.lo stringMUTATE.lo \
stringRESERVE.lo stringSWAP.lo stringSLOP.lo stringRESIZE.lo \
stringAPPCOPY.lo stringAPPCPR.lo stringAPPPR.lo stringAPPDUP.lo \
stringAPPII.lo stringASSCP.lo stringASSII.lo stringINSII.lo \
stringREPRR.lo stringREPIIDUP.lo stringREPII.lo stringREPIII.lo \
stringREP4I.lo stringREPIIPP.lo stringREPIIPP2.lo stringCOPY.lo \
stringCONII.lo stringCONIIF.lo stringCONPPF.lo stringCONPPF2.lo \
stringCONSC.lo stringFIND.lo stringFINDC.lo stringRFIND.lo \
stringRFINDC.lo stringFFO.lo stringFLO.lo stringFFNO.lo stringFLNO.lo \
stringFLNOC.lo stringCOMPARE.lo stringCOMPARE2.lo stringCOMPAREP.lo \
stringCOMPAREP2.lo stringADDPS.lo stringADDCS.lo stringEXTRACT.lo \
stringINSERT.lo stringGETLINE.lo stringSCOPY.lo stringEQ.lo
libinst_string_la_SOURCES = libinst-string.la.c
libinst_string_la_OBJECTS = libinst-string.la.lo
libinst_wstring_la_LDFLAGS =
libinst_wstring_la_LIBADD =
libinst_wstring_la_OBJECTS = wstringMAIN.lo wstringCTORNC.lo \
wstringCTORAL.lo wstringCTORCPR.lo wstringCTORCPRAL.lo \
wstringCTORPRAL.lo wstringCTORPAL.lo wstringCTORPP.lo wstringCTORII.lo \
wstringMUTATE.lo wstringRESERVE.lo wstringSWAP.lo wstringSLOP.lo \
wstringRESIZE.lo wstringAPPCOPY.lo wstringAPPCPR.lo wstringAPPPR.lo \
wstringAPPDUP.lo wstringAPPII.lo wstringASSCP.lo wstringASSII.lo \
wstringINSII.lo wstringREPRR.lo wstringREPIIDUP.lo wstringREPII.lo \
wstringREPIII.lo wstringREP4I.lo wstringREPIIPP.lo wstringREPIIPP2.lo \
wstringCOPY.lo wstringCONII.lo wstringCONIIF.lo wstringCONPPF.lo \
wstringCONPPF2.lo wstringCONSC.lo wstringFIND.lo wstringFINDC.lo \
wstringRFIND.lo wstringRFINDC.lo wstringFFO.lo wstringFLO.lo \
wstringFFNO.lo wstringFLNO.lo wstringFLNOC.lo wstringCOMPARE.lo \
wstringCOMPARE2.lo wstringCOMPAREP.lo wstringCOMPAREP2.lo \
wstringADDPS.lo wstringADDCS.lo wstringEXTRACT.lo wstringINSERT.lo \
wstringGETLINE.lo wstringSCOPY.lo wstringEQ.lo
libinst_wstring_la_OBJECTS = wstring-inst.lo
libstdc___la_OBJECTS = limitsMEMBERS.lo c++io.lo cmath.lo complex.lo \
complexf.lo complexl.lo complex_io.lo stdexcept.lo ios.lo stdstreams.lo \
strstream.lo locale.lo localename.lo locale-inst.lo stl-inst.lo \
misc-inst.lo valarray-inst.lo
misc-inst.lo valarray-inst.lo string-inst.lo
CXXFLAGS = @CXXFLAGS@
CXXLD = $(CXX)
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
DIST_COMMON = Makefile.am Makefile.in
@ -402,8 +342,8 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar
GZIP_ENV = --best
SOURCES = $(libinst_string_la_SOURCES) $(libinst_wstring_la_SOURCES) $(libstdc___la_SOURCES)
OBJECTS = $(libinst_string_la_OBJECTS) $(libinst_wstring_la_OBJECTS) $(libstdc___la_OBJECTS)
SOURCES = libinst-string.la.c $(libinst_wstring_la_SOURCES) $(libstdc___la_SOURCES)
OBJECTS = libinst-string.la.lo $(libinst_wstring_la_OBJECTS) $(libstdc___la_OBJECTS)
all: all-redirect
.SUFFIXES:
@ -480,7 +420,7 @@ distclean-libtool:
maintainer-clean-libtool:
libinst-string.la: $(libinst_string_la_OBJECTS) $(libinst_string_la_DEPENDENCIES)
$(CXXLINK) $(libinst_string_la_LDFLAGS) $(libinst_string_la_OBJECTS) $(libinst_string_la_LIBADD) $(LIBS)
$(LINK) $(libinst_string_la_LDFLAGS) $(libinst_string_la_OBJECTS) $(libinst_string_la_LIBADD) $(LIBS)
libinst-wstring.la: $(libinst_wstring_la_OBJECTS) $(libinst_wstring_la_DEPENDENCIES)
$(CXXLINK) $(libinst_wstring_la_LDFLAGS) $(libinst_wstring_la_OBJECTS) $(libinst_wstring_la_LIBADD) $(LIBS)
@ -668,237 +608,11 @@ locale-inst.o: locale-inst.cc
locale-inst.lo: locale-inst.cc
$(LTCXXCOMPILE) -fimplicit-templates -c $<
stringMAIN.lo \
stringCTORNC.lo \
stringCTORAL.lo \
stringCTORCPR.lo \
stringCTORCPRAL.lo \
stringCTORPRAL.lo \
stringCTORPAL.lo \
stringCTORPP.lo \
stringCTORII.lo \
stringMUTATE.lo \
stringRESERVE.lo \
stringSWAP.lo \
stringSLOP.lo \
stringRESIZE.lo \
stringAPPCOPY.lo \
stringAPPCPR.lo \
stringAPPPR.lo \
stringAPPDUP.lo \
stringAPPII.lo \
stringASSCP.lo \
stringASSII.lo \
stringINSII.lo \
stringREPRR.lo \
stringREPIIDUP.lo \
stringREPII.lo \
stringREPIII.lo \
stringREP4I.lo \
stringREPIIPP.lo \
stringREPIIPP2.lo \
stringCOPY.lo \
stringCONII.lo \
stringCONIIF.lo \
stringCONPPF.lo \
stringCONPPF2.lo \
stringCONSC.lo \
stringFIND.lo \
stringFINDC.lo \
stringRFIND.lo \
stringRFINDC.lo \
stringFFO.lo \
stringFLO.lo \
stringFFNO.lo \
stringFLNO.lo \
stringFLNOC.lo \
stringCOMPARE.lo \
stringCOMPARE2.lo \
stringCOMPAREP.lo \
stringCOMPAREP2.lo \
stringADDPS.lo \
stringADDCS.lo \
stringEXTRACT.lo \
stringINSERT.lo \
stringGETLINE.lo \
stringSCOPY.lo \
stringEQ.lo : string-inst.cc
$(LTCXXCOMPILE) -fimplicit-templates \
-c -D`echo $@ | tr -dc '0-9A-Z'` $< -o $@
wstringMAIN.lo \
wstringCTORNC.lo \
wstringCTORAL.lo \
wstringCTORCPR.lo \
wstringCTORCPRAL.lo \
wstringCTORPRAL.lo \
wstringCTORPAL.lo \
wstringCTORPP.lo \
wstringCTORII.lo \
wstringMUTATE.lo \
wstringRESERVE.lo \
wstringSWAP.lo \
wstringSLOP.lo \
wstringRESIZE.lo \
wstringAPPCOPY.lo \
wstringAPPCPR.lo \
wstringAPPPR.lo \
wstringAPPDUP.lo \
wstringAPPII.lo \
wstringASSCP.lo \
wstringASSII.lo \
wstringINSII.lo \
wstringREPRR.lo \
wstringREPIIDUP.lo \
wstringREPII.lo \
wstringREPIII.lo \
wstringREP4I.lo \
wstringREPIIPP.lo \
wstringREPIIPP2.lo \
wstringCOPY.lo \
wstringCONII.lo \
wstringCONIIF.lo \
wstringCONPPF.lo \
wstringCONPPF2.lo \
wstringCONSC.lo \
wstringFIND.lo \
wstringFINDC.lo \
wstringRFIND.lo \
wstringRFINDC.lo \
wstringFFO.lo \
wstringFLO.lo \
wstringFFNO.lo \
wstringFLNO.lo \
wstringFLNOC.lo \
wstringCOMPARE.lo \
wstringCOMPARE2.lo \
wstringCOMPAREP.lo \
wstringCOMPAREP2.lo \
wstringADDPS.lo \
wstringADDCS.lo \
wstringEXTRACT.lo \
wstringINSERT.lo \
wstringGETLINE.lo \
wstringSCOPY.lo \
wstringEQ.lo : string-inst.cc
$(LTCXXCOMPILE) -fimplicit-templates \
-c -D`echo $@ | tr -dc '0-9A-Z'` -DC=wchar_t $< -o $@
stringMAIN.o \
stringCTORNC.o \
stringCTORAL.o \
stringCTORCPR.o \
stringCTORCPRAL.o \
stringCTORPRAL.o \
stringCTORPAL.o \
stringCTORPP.o \
stringCTORII.o \
stringMUTATE.o \
stringRESERVE.o \
stringSWAP.o \
stringSLOP.o \
stringRESIZE.o \
stringAPPCOPY.o \
stringAPPCPR.o \
stringAPPPR.o \
stringAPPDUP.o \
stringAPPII.o \
stringASSCP.o \
stringASSII.o \
stringINSII.o \
stringREPRR.o \
stringREPIIDUP.o \
stringREPII.o \
stringREPIII.o \
stringREP4I.o \
stringREPIIPP.o \
stringREPIIPP2.o \
stringCOPY.o \
stringCONII.o \
stringCONIIF.o \
stringCONPPF.o \
stringCONPPF2.o \
stringCONSC.o \
stringFIND.o \
stringFINDC.o \
stringRFIND.o \
stringRFINDC.o \
stringFFO.o \
stringFLO.o \
stringFFNO.o \
stringFLNO.o \
stringFLNOC.o \
stringCOMPARE.o \
stringCOMPARE2.o \
stringCOMPAREP.o \
stringCOMPAREP2.o \
stringADDPS.o \
stringADDCS.o \
stringEXTRACT.o \
stringINSERT.o \
stringGETLINE.o \
stringSCOPY.o \
stringEQ.o : string-inst.cc
$(CXXCOMPILE) -fimplicit-templates \
-c -D`echo $@ | tr -dc '0-9A-Z'` $< -o $@
wstringMAIN.o \
wstringCTORNC.o \
wstringCTORAL.o \
wstringCTORCPR.o \
wstringCTORCPRAL.o \
wstringCTORPRAL.o \
wstringCTORPAL.o \
wstringCTORPP.o \
wstringCTORII.o \
wstringMUTATE.o \
wstringRESERVE.o \
wstringSWAP.o \
wstringSLOP.o \
wstringRESIZE.o \
wstringAPPCOPY.o \
wstringAPPCPR.o \
wstringAPPPR.o \
wstringAPPDUP.o \
wstringAPPII.o \
wstringASSCP.o \
wstringASSII.o \
wstringINSII.o \
wstringREPRR.o \
wstringREPIIDUP.o \
wstringREPII.o \
wstringREPIII.o \
wstringREP4I.o \
wstringREPIIPP.o \
wstringREPIIPP2.o \
wstringCOPY.o \
wstringCONII.o \
wstringCONIIF.o \
wstringCONPPF.o \
wstringCONPPF2.o \
wstringCONSC.o \
wstringFIND.o \
wstringFINDC.o \
wstringRFIND.o \
wstringRFINDC.o \
wstringFFO.o \
wstringFLO.o \
wstringFFNO.o \
wstringFLNO.o \
wstringFLNOC.o \
wstringCOMPARE.o \
wstringCOMPARE2.o \
wstringCOMPAREP.o \
wstringCOMPAREP2.o \
wstringADDPS.o \
wstringADDCS.o \
wstringEXTRACT.o \
wstringINSERT.o \
wstringGETLINE.o \
wstringSCOPY.o \
wstringEQ.o : string-inst.cc
$(CXXCOMPILE) -fimplicit-templates \
-c -D`echo $@ | tr -dc '0-9A-Z'` -DC=wchar_t $< -o $@
# We have to instantiate wstring bits too. . .
wstring-inst.o: string-inst.cc
$(CXXCOMPILE) -fimplicit-templates -c -DC=wchar_t $< -o $@
wstring-inst.lo: string-inst.cc
$(LTCXXCOMPILE) -fimplicit-templates -c -DC=wchar_t $< -o $@
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.

View File

@ -1,6 +1,6 @@
// Explicit instantiation file.
// Copyright (C) 1997-1999 Free Software Foundation, Inc.
// Copyright (C) 1997-1999, 2000 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@ -186,6 +186,36 @@ namespace std {
#endif
//
// string related to iostreams
//
template
basic_istream<char>&
operator>>(basic_istream<char>&, string&);
template
basic_ostream<char>&
operator<<(basic_ostream<char>&, const string&);
template
basic_istream<char>&
getline(basic_istream<char>&, string&, char);
template
basic_istream<char>&
getline(basic_istream<char>&, string&);
#ifdef _GLIBCPP_USE_WCHAR_T
template
basic_istream<wchar_t>&
operator>>(basic_istream<wchar_t>&, wstring&);
template
basic_ostream<wchar_t>&
operator<<(basic_ostream<wchar_t>&, const wstring&);
template
basic_istream<wchar_t>&
getline(basic_istream<wchar_t>&, wstring&, wchar_t);
template
basic_istream<wchar_t>&
getline(basic_istream<wchar_t>&, wstring&);
#endif
//
// algorithm
//

View File

@ -36,14 +36,6 @@
#include <bits/std_string.h>
#include <bits/std_algorithm.h>
#include <bits/std_istream.h>
#include <bits/std_ostream.h>
// NB: Unnecessary if the .h headers include these
#ifndef _GLIBCPP_FULLY_COMPLIANT_HEADERS
#include <bits/istream.tcc>
#include <bits/ostream.tcc>
#endif
// Instantiation configuration.
#ifndef C
@ -55,7 +47,6 @@ namespace std
{
typedef basic_string<C> S;
#ifdef MAIN
template C S::_Rep::_S_terminal;
template S::size_type S::_Rep::_S_max_size;
template S::size_type S::_S_empty_rep_storage[];
@ -64,159 +55,107 @@ namespace std
template S::_Rep* S::_Rep::_S_create(size_t, S::allocator_type const&);
template void S::_Rep::_M_destroy(S::allocator_type const&) throw();
template void __destroy_aux(S*, S*, __false_type);
#endif
#ifdef CTORNC
template
S::basic_string(S::size_type, C, S::allocator_type const&);
#endif
#ifdef CTORAL
template
S::basic_string(S::allocator_type const&);
#endif
#ifdef CTORCPR
template
S::basic_string(S const&, S::size_type, S::size_type);
#endif
#ifdef CTORCPRAL
template
S::basic_string(
S const&, S::size_type, S::size_type, S::allocator_type const&);
#endif
#ifdef CTORPRAL
template
S::basic_string(
C const*, S::size_type, S::allocator_type const&);
#endif
#ifdef CTORPAL
template
S::basic_string(
C const*, S::allocator_type const&);
#endif
#ifdef CTORPP
template
S::basic_string
(C*, C*, const allocator<C>&);
#endif
#ifdef CTORII
template
S::basic_string
(S::iterator, S::iterator, const allocator<C>&);
#endif
#ifdef MUTATE
template
void S::_M_leak_hard();
template
void S::_M_mutate(S::size_type, S::size_type, S::size_type);
template
C* S::_Rep::_M_clone(S::allocator_type const&, S::size_type);
#endif
#ifdef RESERVE
template
void S::reserve(S::size_type);
#endif
#ifdef SWAP
template
void S::swap(S&);
#endif
#ifdef SLOP
# ifdef _GLIBCPP_ALLOC_CONTROL
template
bool (* S::_Rep::_S_excess_slop)(size_t, size_t);
template
bool S::_Rep::_S_default_excess(size_t, size_t);
# endif
#endif
#ifdef RESIZE
template
void S::resize(S::size_type, C);
#endif
#ifdef APPCOPY
template
S& S::append(S const&);
#endif
#ifdef APPCPR
template
S& S::append(S const&, S::size_type, S::size_type);
#endif
#ifdef APPPR
template
S& S::append(C const*, S::size_type);
#endif
#ifdef APPDUP
template
S& S::append(S::size_type, C);
#endif
#ifdef APPII
template
S&
S::append<S::iterator>
(S::iterator, S::iterator);
#endif
#ifdef ASSCP
template
S&
S::assign(S const&);
#endif
#ifdef ASSII
template
S&
S::assign<S::iterator>
(S::iterator, S::iterator);
#endif
#ifdef INSII
template
void
S::insert<S::iterator> //c*
(S::iterator, S::iterator, S::iterator); //it, c+, c+ and temptype = char*
#endif
#ifdef REPRR
template
S& S::replace(
S::size_type, S::size_type, S const&, S::size_type, S::size_type);
#endif
#ifdef REPIIDUP
template
S& S::replace(S::iterator, S::iterator, S::size_type, C);
#endif
#ifdef REPII
template
S&
S::replace<S::iterator> // c*
(S::iterator, S::iterator, S::iterator, S::iterator); //it, it, c+, c+
#endif
#ifdef REPIII
template
S&
S::_M_replace<S::iterator>
(S::iterator, S::iterator, S::iterator, S::iterator, forward_iterator_tag);
#endif
#ifdef REP4I
// Only one template keyword allowed here.
// See core issue #46 (NAD)
// http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/cwg_closed.html#46
@ -225,62 +164,44 @@ namespace std
S::_M_replace<S::const_iterator>
(S::iterator, S::iterator,
S::const_iterator, S::const_iterator, forward_iterator_tag);
#endif
#ifdef REPIIPP
template
S&
S::_M_replace<C*>
(S::iterator, S::iterator, C*, C*, forward_iterator_tag);
#endif
#ifdef REPIIPP2
template
S&
S::_M_replace<const C*>
(S::iterator, S::iterator, const C*, const C*, forward_iterator_tag);
#endif
#ifdef COPY
template
S::size_type S::copy(C*, S::size_type, S::size_type) const;
#endif
#ifdef CONII
template
C*
S::_S_construct<S::iterator>
(S::iterator, S::iterator, const allocator<C>&);
#endif
#ifdef CONIIF
template
C*
S::_S_construct<S::iterator>
(S::iterator, S::iterator, const allocator<C>&, forward_iterator_tag);
#endif
#ifdef CONPPF
template
C*
S::_S_construct<C*>
(C*, C*, const allocator<C>&, forward_iterator_tag);
#endif
#ifdef CONPPF2
template
C*
S::_S_construct<const C*>
(const C*, const C*, const allocator<C>&, forward_iterator_tag);
#endif
#ifdef CONSC
template
C*
S::_S_construct(S::size_type, C, S::allocator_type const&);
#endif
#ifdef FIND
// These members are explicitly specialized, and can only be in one
// translation unit or else we get multiple copies. . .
#if _GLIBCPP_INSTANTIATING_CHAR
@ -300,101 +221,55 @@ namespace std
_Char_traits_match<wchar_t, traits_type>(__c));
}
#endif
#endif
#ifdef FINDC
template
S::size_type S::find(C, S::size_type) const;
#endif
#ifdef RFIND
template
S::size_type S::rfind(C const*, S::size_type, S::size_type) const;
#endif
#ifdef RFINDC
template
S::size_type S::rfind(C, S::size_type) const;
#endif
#ifdef FFO
template
S::size_type S::find_first_of(C const*, S::size_type, S::size_type) const;
#endif
#ifdef FLO
template
S::size_type S::find_last_of(C const*, S::size_type, S::size_type) const;
#endif
#ifdef FFNO
template
S::size_type S::find_first_not_of(
C const*, S::size_type, S::size_type) const;
#endif
#ifdef FLNO
template
S::size_type S::find_last_not_of(
C const*, S::size_type, S::size_type) const;
#endif
#ifdef FLNOC
template
S::size_type S::find_last_not_of(C, S::size_type) const;
#endif
#ifdef COMPARE
template
int S::compare(S::size_type, S::size_type, S const&) const;
#endif
#ifdef COMPARE2
template
int S::compare(S::size_type, S::size_type, S const&, S::size_type,
S::size_type) const;
#endif
#ifdef COMPAREP
template
int S::compare(C const*) const;
#endif
#ifdef COMPAREP2
template
int S::compare(
S::size_type, S::size_type, C const*, S::size_type) const;
#endif
#ifdef ADDPS
template S operator+(const C*, const S&);
#endif
#ifdef ADDCS
template S operator+(C, const S&);
#endif
#ifdef EQ
template bool operator==(const S::iterator&, const S::iterator&);
template bool operator==(const S::const_iterator&, const S::const_iterator&);
#endif
#ifdef EXTRACT
template basic_istream<C>& operator>>(basic_istream<C>&, S&);
#endif
#ifdef INSERT
template basic_ostream<C>& operator<<(basic_ostream<C>&, const S&);
#endif
#ifdef GETLINE
template basic_istream<C>& getline(basic_istream<C>&, S&, C);
template basic_istream<C>& getline(basic_istream<C>&, S&);
#endif
#ifdef SCOPY
template void _S_string_copy(const S&, C*, allocator<C>::size_type);
#endif
} // std