Building error with AIX 4.2

Mark Mitchell mark@codesourcery.com
Tue Jan 16 23:13:00 GMT 2001


This patch should fix the problems with the AIX instantiations in
gen-num-limits.cc.

I rebuilt V3 with this patch on i686-pc-linux-gnu.

Let me know how it goes.

--
Mark Mitchell                   mark@codesourcery.com
CodeSourcery, LLC               http://www.codesourcery.com

2001-01-16  Mark Mitchell  <mark@codesourcery.com>

	* src/gen-num-limits.cc (INSTANTIATIONS): New macro.
	Use it do explicitly instantiate predicate<T> and value<T> for
	all the builtin Ts.

Index: src/gen-num-limits.cc
===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/src/gen-num-limits.cc,v
retrieving revision 1.5
diff -c -p -r1.5 gen-num-limits.cc
*** gen-num-limits.cc	2001/01/09 03:01:56	1.5
--- gen-num-limits.cc	2001/01/17 06:51:53
*************** int main()
*** 770,772 ****
--- 770,797 ----
      // .__convert_long_double_d); }
  }
  
+ // G++ doesn't have support for automatic instantiation of static data
+ // members on platforms that don't have weak symbols.  On AIX, in
+ // particular, static data members must be explicitly instantiated.
+ // So, we explicitly instantiate some of the ones we need.  To save
+ // typing, we don't name the static data members explicitly; we
+ // instead name their containing types.
+ 
+ #define INSTANTIATIONS(TYPE)			\
+   template struct predicate<TYPE>;		\
+   template struct value<TYPE>
+ 
+ INSTANTIATIONS (bool);
+ INSTANTIATIONS (char);
+ INSTANTIATIONS (signed char);
+ INSTANTIATIONS (unsigned char);
+ INSTANTIATIONS (short);
+ INSTANTIATIONS (unsigned short);
+ INSTANTIATIONS (int);
+ INSTANTIATIONS (unsigned int);
+ INSTANTIATIONS (long);
+ INSTANTIATIONS (unsigned long);
+ INSTANTIATIONS (float);
+ INSTANTIATIONS (double);
+ INSTANTIATIONS (long double);
+ 


More information about the Libstdc++ mailing list