This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: [C++0x] fix libstdc++/41005 - missing fstream instantiations
And here's the updated 4.5 patch, moving the <future> symbols to a new
GLIBCXX_3.4.14 version
PR libstdc++/41005
* configure.ac: Bump libtool_VERSION to 6:14:0.
* configure: Regenerate.
* src/Makefile.ac: Compile fstream-inst.cc as C++0x.
* src/Makefile.in: Regenerate.
* config/abi/pre/gnu.ver: Add new symbols and disambiguate old ones,
move <future> symbols to 3.4.14 version.
* testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.14 version.
Also tested x86-64/linux, ok for trunk?
Index: src/Makefile.am
===================================================================
--- src/Makefile.am (revision 150798)
+++ src/Makefile.am (working copy)
@@ -278,6 +278,11 @@
atomic.o: atomic.cc
$(CXXCOMPILE) -std=gnu++0x -c $<
+fstream-inst.lo: fstream-inst.cc
+ $(LTCXXCOMPILE) -std=gnu++0x -c $<
+fstream-inst.o: fstream-inst.cc
+ $(CXXCOMPILE) -std=gnu++0x -c $<
+
string-inst.lo: string-inst.cc
$(LTCXXCOMPILE) -std=gnu++0x -c $<
string-inst.o: string-inst.cc
Index: src/Makefile.in
===================================================================
--- src/Makefile.in (revision 150798)
+++ src/Makefile.in (working copy)
@@ -890,6 +890,11 @@
atomic.o: atomic.cc
$(CXXCOMPILE) -std=gnu++0x -c $<
+fstream-inst.lo: fstream-inst.cc
+ $(LTCXXCOMPILE) -std=gnu++0x -c $<
+fstream-inst.o: fstream-inst.cc
+ $(CXXCOMPILE) -std=gnu++0x -c $<
+
string-inst.lo: string-inst.cc
$(LTCXXCOMPILE) -std=gnu++0x -c $<
string-inst.o: string-inst.cc
Index: configure.ac
===================================================================
--- configure.ac (revision 150798)
+++ configure.ac (working copy)
@@ -12,7 +12,7 @@
### am handles this now? ORIGINAL_LD_FOR_MULTILIBS=$LD
# For libtool versioning info, format is CURRENT:REVISION:AGE
-libtool_VERSION=6:13:0
+libtool_VERSION=6:14:0
AC_SUBST(libtool_VERSION)
# Find the rest of the source tree framework.
Index: configure
===================================================================
--- configure (revision 150798)
+++ configure (working copy)
@@ -1567,7 +1567,7 @@
### am handles this now? ORIGINAL_LD_FOR_MULTILIBS=$LD
# For libtool versioning info, format is CURRENT:REVISION:AGE
-libtool_VERSION=6:13:0
+libtool_VERSION=6:14:0
# Find the rest of the source tree framework.
Index: config/abi/pre/gnu.ver
===================================================================
--- config/abi/pre/gnu.ver (revision 150798)
+++ config/abi/pre/gnu.ver (working copy)
@@ -32,7 +32,9 @@
std::a[e-z]*;
# std::ba[a-r]*;
std::basic_[a-e]*;
- std::basic_f[a-r]*;
+ std::basic_f[a-h]*;
+# std::basic_filebuf;
+ std::basic_f[j-r]*;
# std::basic_fstream;
std::basic_f[t-z]*;
std::basic_[g-h]*;
@@ -276,28 +278,40 @@
_ZNSdC*;
_ZNSdD*;
+ # std::basic_filebuf
+ _ZNSt13basic_filebufI[cw]St11char_traitsI[cw]EEC*;
+ _ZNSt13basic_filebufI[cw]St11char_traitsI[cw]EED*;
+ _ZNSt13basic_filebufI[cw]St11char_traitsI[cw]EE[0-3]*;
+ _ZNSt13basic_filebufI[cw]St11char_traitsI[cw]EE4openEPKc*;
+ _ZNSt13basic_filebufI[cw]St11char_traitsI[cw]EE4sync*;
+ _ZNSt13basic_filebufI[cw]St11char_traitsI[cw]EE[5-9]*;
+ _ZNKSt13basic_filebufI[cw]St11char_traitsI[cw]EE7is_openEv;
+
# std::basic_fstream
- _ZNSt13basic_fstreamI[cw]St11char_traitsI[cw]EEC*;
+ _ZNSt13basic_fstreamI[cw]St11char_traitsI[cw]EEC[12]Ev;
+ _ZNSt13basic_fstreamI[cw]St11char_traitsI[cw]EEC[12]EPKc*;
_ZNSt13basic_fstreamI[cw]St11char_traitsI[cw]EED*;
_ZNSt13basic_fstreamI[cw]St11char_traitsI[cw]EE5closeEv;
_ZNSt13basic_fstreamI[cw]St11char_traitsI[cw]EE7is_openEv;
- _ZNSt13basic_fstreamI[cw]St11char_traitsI[cw]EE4open*;
+ _ZNSt13basic_fstreamI[cw]St11char_traitsI[cw]EE4openEPKc*;
_ZNKSt13basic_fstreamI[cw]St11char_traitsI[cw]EE5rdbufEv;
# std::basic_ifstream
- _ZNSt14basic_ifstreamI[cw]St11char_traitsI[cw]EEC*;
+ _ZNSt14basic_ifstreamI[cw]St11char_traitsI[cw]EEC[12]Ev;
+ _ZNSt14basic_ifstreamI[cw]St11char_traitsI[cw]EEC[12]EPKc*;
_ZNSt14basic_ifstreamI[cw]St11char_traitsI[cw]EED*;
_ZNSt14basic_ifstreamI[cw]St11char_traitsI[cw]EE5closeEv;
_ZNSt14basic_ifstreamI[cw]St11char_traitsI[cw]EE7is_openEv;
- _ZNSt14basic_ifstreamI[cw]St11char_traitsI[cw]EE4open*;
+ _ZNSt14basic_ifstreamI[cw]St11char_traitsI[cw]EE4openEPKc*;
_ZNKSt14basic_ifstreamI[cw]St11char_traitsI[cw]EE5rdbufEv;
# std::basic_ofstream
- _ZNSt14basic_ofstreamI[cw]St11char_traitsI[cw]EEC*;
+ _ZNSt14basic_ofstreamI[cw]St11char_traitsI[cw]EEC[12]Ev;
+ _ZNSt14basic_ofstreamI[cw]St11char_traitsI[cw]EEC[12]EPKc*;
_ZNSt14basic_ofstreamI[cw]St11char_traitsI[cw]EED*;
_ZNSt14basic_ofstreamI[cw]St11char_traitsI[cw]EE5closeEv;
_ZNSt14basic_ofstreamI[cw]St11char_traitsI[cw]EE7is_openEv;
- _ZNSt14basic_ofstreamI[cw]St11char_traitsI[cw]EE4open*;
+ _ZNSt14basic_ofstreamI[cw]St11char_traitsI[cw]EE4openEPKc*;
_ZNKSt14basic_ofstreamI[cw]St11char_traitsI[cw]EE5rdbufEv;
# std::basic_istream<char>
@@ -971,6 +985,19 @@
GLIBCXX_3.4.13 {
+ # new fstream members
+ _ZNSt13basic_filebufI[cw]St11char_traitsI[cw]EE4openERKSsSt13_Ios_Openmode;
+ _ZNSt13basic_fstreamI[cw]St11char_traitsI[cw]EEC[12]ERKSsSt13_Ios_Openmode;
+ _ZNSt13basic_fstreamI[cw]St11char_traitsI[cw]EE4openERKSsSt13_Ios_Openmode;
+ _ZNSt14basic_ifstreamI[cw]St11char_traitsI[cw]EEC[12]ERKSsSt13_Ios_Openmode;
+ _ZNSt14basic_ifstreamI[cw]St11char_traitsI[cw]EE4openERKSsSt13_Ios_Openmode;
+ _ZNSt14basic_ofstreamI[cw]St11char_traitsI[cw]EEC[12]ERKSsSt13_Ios_Openmode;
+ _ZNSt14basic_ofstreamI[cw]St11char_traitsI[cw]EE4openERKSsSt13_Ios_Openmode;
+
+} GLIBCXX_3.4.12;
+
+GLIBCXX_3.4.14 {
+
# future
_ZSt15future_category;
_ZNSt12future_errorD*;
@@ -980,7 +1007,7 @@
_ZTISt12future_error;
_ZSt20__throw_future_errori;
-} GLIBCXX_3.4.12;
+} GLIBCXX_3.4.13;
# Symbols in the support library (libsupc++) have their own tag.
CXXABI_1.3 {
Index: testsuite/util/testsuite_abi.cc
===================================================================
--- testsuite/util/testsuite_abi.cc (revision 150798)
+++ testsuite/util/testsuite_abi.cc (working copy)
@@ -185,6 +185,7 @@
known_versions.push_back("GLIBCXX_3.4.11");
known_versions.push_back("GLIBCXX_3.4.12");
known_versions.push_back("GLIBCXX_3.4.13");
+ known_versions.push_back("GLIBCXX_3.4.14");
known_versions.push_back("GLIBCXX_LDBL_3.4");
known_versions.push_back("GLIBCXX_LDBL_3.4.7");
known_versions.push_back("GLIBCXX_LDBL_3.4.10");