[Math Toolkit] Linker errors on SunCC

Hi Math Toolkit developers. (Sending to this list as library is still in development?) If I try and run the tests on SunCC using the following command: /opt/SunStudio12/SUNWspro/bin/CC -o \ build/debug/vendor/boost/libs/math/test/log1p_expm1_test \ -library=stlport4,Crun \ build/debug/vendor/boost/libs/math/test/log1p_expm1_test.o \ -Lbuild/debug/vendor/boost -Lvendor/boost -lboost_regex I get this linker error: Undefined first referenced symbol in file int boost::math::tools::digits<boost::math::concepts::real_concept>() build/debug/vendor/boost/libs/math/test/log1p_expm1_test.o ld: fatal: Symbol referencing errors. No output written to build/debug/vendor/boost/libs/math/test/log1p_expm1_test Has anyone seen this before? What can I do to fix this? Thanks in advance, Sohail

Sohail Somani wrote:
Hi Math Toolkit developers.
(Sending to this list as library is still in development?)
We're busy fixing compiler and platform specific issues, in preparation for a 1.35 release. BTW that means that the version in SVN Trunk has *slightly* more fixes in it than the sandbox version - which will be used for ongoing development.
If I try and run the tests on SunCC using the following command:
/opt/SunStudio12/SUNWspro/bin/CC -o \ build/debug/vendor/boost/libs/math/test/log1p_expm1_test \ -library=stlport4,Crun \ build/debug/vendor/boost/libs/math/test/log1p_expm1_test.o \ -Lbuild/debug/vendor/boost -Lvendor/boost -lboost_regex
I get this linker error:
Undefined first referenced symbol in file int boost::math::tools::digits<boost::math::concepts::real_concept>() build/debug/vendor/boost/libs/math/test/log1p_expm1_test.o ld: fatal: Symbol referencing errors. No output written to build/debug/vendor/boost/libs/math/test/log1p_expm1_test
Has anyone seen this before? What can I do to fix this?
I don't know, it works OK with Sun 5.9 on Linux (the only version of the sun compiler I have access to), and the definition for that function is certainly present in the header. It's not helped by the Sun regression tests being stalled for the last couple of weeks either :-( The function is defined like this: template <> inline int digits<concepts::real_concept>(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(concepts::real_concept)) { return tools::digits<long double>(); } Does this ring any bells as something that's problematic on that compiler? How about if the inline specifier is removed? HTH, John.

On Wed, 2007-31-10 at 18:35 +0000, John Maddock wrote:
Sohail Somani wrote:
We're busy fixing compiler and platform specific issues, in preparation for a 1.35 release. BTW that means that the version in SVN Trunk has *slightly* more fixes in it than the sandbox version - which will be used for ongoing development.
Darn, I didn't realize it was in Boost SVN already. I'll update to this version and let you know the results.
The function is defined like this:
template <> inline int digits<concepts::real_concept>(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(concepts::real_concept)) { return tools::digits<long double>(); }
Does this ring any bells as something that's problematic on that compiler? How about if the inline specifier is removed?
Removing didn't help. Unfortunately I'm not yet familiar enough with template-related quirks of Sun Studio to know if that is an issue! Thanks for your help and I'll come back if/when I have a solution. Sohail

On Wed, 2007-31-10 at 18:35 +0000, John Maddock wrote:
I don't know, it works OK with Sun 5.9 on Linux (the only version of the sun compiler I have access to), and the definition for that function is certainly present in the header.
Forgot to mention that I am using Sun Studio 12 on Solaris 10 x86. Fringe enough? :-) Sohail
participants (2)
-
John Maddock
-
Sohail Somani