Missing explicit instantiations in libstdc++ (was Re:

John David Anglin dave@hiauly1.hia.nrc.ca
Mon Dec 3 18:54:00 GMT 2001


> > I think this probably has something to do with instantiation on systems
> > without weak support.  Don't these systems require explicit
> > instantiation?
> 
> Yes.

So, we need a bunch of fixes like:

--- collate.cc.orig	Mon Dec  3 21:44:20 2001
+++ collate.cc	Mon Dec  3 21:46:54 2001
@@ -22,6 +22,12 @@
 
 #include <locale>
 
+namespace std
+{
+  typedef basic_string<unsigned char> S;
+
+  template class basic_string<unsigned char>;
+}
 void test01()
 {
   // Check for required base class.

I see in string-inst.cc that we have:

// Instantiation configuration.
#ifndef C
# define C char
#endif

Can `C' ever be `unsigned'?

With the above change, the collate.cc test links successfully and passes
on hppa2.0w-hp-hpux11.11.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)



More information about the Libstdc++ mailing list