summaryrefslogtreecommitdiff
path: root/libstdc++-v3/src/Makefile.am
diff options
context:
space:
mode:
authorbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>2006-02-07 22:23:58 +0000
committerbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>2006-02-07 22:23:58 +0000
commitd7fbb98b08d28cb403fcfcb3162b4792aa64116b (patch)
treeb8066f235ec23f5dc04e5951f1059343bd4db2ac /libstdc++-v3/src/Makefile.am
parent5925d47a9678680da55feb29ec3f65f045e7408a (diff)
downloadgcc-d7fbb98b08d28cb403fcfcb3162b4792aa64116b.tar.gz
2006-02-07 Jakub Jelinek <jakub@redhat.com>
Benjamin Kosnik <bkoz@redhat.com> * configure.ac (_GLIBCXX_LONG_DOUBLE_COMPAT): New check. If true, set also port_specific_symbol_files and create as_symver_specs. (GLIBCXX_LDBL_COMPAT): New GLIBCXX_CONDITIONAL. * configure: Rebuilt. * config.h.in: Rebuilt. * config/os/gnu-linux/ldbl-extra.ver: New file. * config/abi/pre/gnu.ver: Make sure no __float128 symbols are exported. * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_COMPAT, _GLIBCXX_LDBL_NAMESPACE, _GLIBCXX_BEGIN_LDBL_NAMESPACE, _GLIBCXX_END_LDBL_NAMESPACE): Define. * include/bits/localefwd.h: Use them to conditionally scope facets. * include/bits/locale_facets.h: Surround std::{money,num}_{get,put} with _GLIBCXX_BEGIN_LDBL_NAMESPACE and _GLIBCXX_END_LDBL_NAMESPACE. Surround std::{money,num}_{get,put} with _GLIBCXX_BEGIN_LDBL_NAMESPACE and _GLIBCXX_END_LDBL_NAMESPACE. [_GLIBCXX_LONG_DOUBLE_COMPAT] (std::money_get): Add __do_get method. [_GLIBCXX_LONG_DOUBLE_COMPAT] (std::money_put): Add __do_put method. [_GLIBCXX_LONG_DOUBLE_COMPAT] (std::num_get): Add __do_get method. [_GLIBCXX_LONG_DOUBLE_COMPAT] (std::num_put): Add __do_put method. * include/bits/locale_facets.tcc: Surround std::{money,num}_{get,put} with _GLIBCXX_BEGIN_LDBL_NAMESPACE and _GLIBCXX_END_LDBL_NAMESPACE. (std::money_get::__do_get, std::money_put::__do_put, std::num_get::__do_get, std::num_put::__do_put): New specializations. * include/Makefile.am: Conditionally define _GLIBCXX_LONG_DOUBLE_COMPAT in c++config. * include/Makefile.in: Regenerate. * src/locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT] (_GLIBCXX_LOC_ID, _GLIBCXX_SYNC_ID): Define, use them. * src/compatibility-ldbl.cc: New file. * src/complex_io.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Add compatibility symbols. * src/limits.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise. * src/locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise. * src/locale-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise. * src/locale-misc-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise. * src/istream-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise. * src/ostream-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise. * src/locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise. * src/wlocale-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise. * src/compatibility.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise. * config/locale/generic/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise. * config/locale/gnu/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise. * src/Makefile.am (libstdc++-symbol.ver): Append instead of insert in the middle if port specific symbol file requests it. (ldbl_compat_sources): New variable. (sources): Use it. (compatibility-ldbl.lo, compatibility-ldbl.o): New rules. * src/Makefile.in: Rebuilt. * testsuite/testsuite_abi.cc: Recognize GLIBCXX_LDBL_3.4, GLIBCXX_LDBL_3.4.7, CXXABI_LDBL_1.3. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110725 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/src/Makefile.am')
-rw-r--r--libstdc++-v3/src/Makefile.am31
1 files changed, 26 insertions, 5 deletions
diff --git a/libstdc++-v3/src/Makefile.am b/libstdc++-v3/src/Makefile.am
index 973e75ff157..b3ada6aeddb 100644
--- a/libstdc++-v3/src/Makefile.am
+++ b/libstdc++-v3/src/Makefile.am
@@ -33,10 +33,15 @@ libstdc++-symbols.ver: ${glibcxx_srcdir}/$(SYMVER_FILE) \
$(port_specific_symbol_files)
cp ${glibcxx_srcdir}/$(SYMVER_FILE) ./libstdc++-symbols.ver
if test "x$(port_specific_symbol_files)" != 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_files) tmp.bottom > $@; \
- rm tmp.top tmp.bottom; \
+ if grep '^# Appended to version file.' \
+ $(port_specific_symbol_files) /dev/null > /dev/null 2>&1; then \
+ cat $(port_specific_symbol_files) >> $@; \
+ else \
+ sed -n '1,/DO NOT DELETE/p' $@ > tmp.top; \
+ sed -n '/DO NOT DELETE/,$$p' $@ > tmp.bottom; \
+ cat tmp.top $(port_specific_symbol_files) tmp.bottom > $@; \
+ rm tmp.top tmp.bottom; \
+ fi; \
fi
if ENABLE_SYMVERS_GNU
@@ -115,6 +120,12 @@ c++locale.cc: ${glibcxx_srcdir}/$(CLOCALE_CC)
basic_file.cc: ${glibcxx_srcdir}/$(BASIC_FILE_CC)
$(LN_S) ${glibcxx_srcdir}/$(BASIC_FILE_CC) ./$@ || true
+if GLIBCXX_LDBL_COMPAT
+ldbl_compat_sources = compatibility-ldbl.cc
+else
+ldbl_compat_sources =
+endif
+
# Sources present in the src directory.
sources = \
bitmap_allocator.cc \
@@ -162,7 +173,8 @@ sources = \
wlocale-inst.cc \
wstring-inst.cc \
${host_sources} \
- ${host_sources_extra}
+ ${host_sources_extra} \
+ ${ldbl_compat_sources}
VPATH = $(top_srcdir)/src:$(top_srcdir)
@@ -193,6 +205,15 @@ concept-inst.lo: concept-inst.cc
concept-inst.o: concept-inst.cc
$(CXXCOMPILE) -D_GLIBCXX_CONCEPT_CHECKS -fimplicit-templates -c $<
+if GLIBCXX_LDBL_COMPAT
+# Use special rules for compatibility-ldbl.cc compilation, as we need to
+# pass -mlong-double-64.
+compatibility-ldbl.lo: compatibility-ldbl.cc
+ $(LTCXXCOMPILE) -mlong-double-64 -c $<
+compatibility-ldbl.o: compatibility-ldbl.cc
+ $(CXXCOMPILE) -mlong-double-64 -c $<
+endif
+
# AM_CXXFLAGS needs to be in each subdirectory so that it can be
# modified in a per-library or per-sub-library way. Need to manually
# set this option because CONFIG_CXXFLAGS has to be after