template < typename T > T __add( T x, T y ) { return x + y; } template float __add( float, float ); template double __add( double, double ); template long double __add( long double, long double );
$ g++ add.cpp -O -mabi=ieeelongdouble cc1plus: warning: Using IEEE extended precision long double (...) /tmp/cccCMXjm.o: In function `long double __add<long double>(long double, long double)':add.cpp (.text._Z5__addIeET_S0_S0_[_Z5__addIeET_S0_S0_]+0x70): undefined reference to `_q_add' i have a gcc-4.1.1snap with patches from PR25864. -- Summary: -mabi=ieeelongdouble / undefined reference to _q_add. Product: gcc Version: 4.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pluto at agmk dot net GCC build triplet: ppc-linux GCC host triplet: ppc-linux GCC target triplet: ppc-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26695