------- Additional Comments From lmakhlis at bmc dot com  2005-06-17 19:01 
-------
It might be an issue with the patch level of libm -- I was testing on 5.1 ML04,
which was released in 2002 -- but I've found another machine at ML05 (released
in Oct 2003), and it still doesn't have sqrtf and friends in libm.  I don't have
access to anything newer than that right now.

I doubt it's related to Visual Age. VAC's implementation of the standard C++
library, /usr/lib/libC.a, does have sqrtf and friends -- but I'm not linking
with it when using GCC.

Before submitting the bug report, I tried removing the macro definition in
aix51.h, and it does solve the problem.  There is a related C++-specific problem
that still isn't solved, but maybe that merits a separate PR.  The problem is:

If you have C++ code that uses std::sqrt(float) and build a dynamically linked
executable on AIX 5.1, then bring it over to AIX 5.2, it won't run, because
sqrtf() is now in libm, but not in libstdc++.  This doesn't seem to be a problem
on other platforms (for example, a program compiled on Solaris 8, against
sqrtf() in libstdc++, runs fine on Solaris 10, with sqrtf() in libm), but on AIX
the dynamic loader looks for a symbol only in a specific library.  I am guessing
it's a difference between COFF and ELF?

As a side point, TARGET_C99_FUNCTION isn't defined on any Solaris platforms.  I
think it's okay to define it on Solaris 9 and up?

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22083

Reply via email to