[Bug libstdc++/26926] New: double vs. long double libmath export confusion
bkoz at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Wed Mar 29 18:35:00 GMT 2006
While working on the long double 128 bits with Jakub, it was pointed out that
some of the libmath work in libstdc++ is incorrect.
In particular, platforms like ppc32 are doing some bogus exports. Mostly, this
is because on certain platforms,
sizeof(double) == sizeof(long double)
and so, there is no need or desire for an underlying "C" math library call that
works on long double. And there is certainly no need for a libstdc++ wrapper
function that takes the existing double version, adds and l, and then casts the
long double to double, and calls the double function.
It's too late to fix this stuff up for so.6, but for so.7 we should correct the
problem.
Here's the pathology: baseline_symbols containing:
FUNC:acosl@@GLIBCXX_3.4.3
FUNC:asinl@@GLIBCXX_3.4.3
FUNC:atan2l@@GLIBCXX_3.4
FUNC:atanl@@GLIBCXX_3.4.3
FUNC:ceill@@GLIBCXX_3.4.3
FUNC:coshl@@GLIBCXX_3.4
FUNC:cosl@@GLIBCXX_3.4
FUNC:expl@@GLIBCXX_3.4
FUNC:floorl@@GLIBCXX_3.4.3
FUNC:fmodl@@GLIBCXX_3.4.3
FUNC:frexpl@@GLIBCXX_3.4.3
FUNC:hypotl@@GLIBCXX_3.4
FUNC:ldexpl@@GLIBCXX_3.4.3
FUNC:log10l@@GLIBCXX_3.4
FUNC:logl@@GLIBCXX_3.4
FUNC:modfl@@GLIBCXX_3.4.3
FUNC:powl@@GLIBCXX_3.4
FUNC:sinhl@@GLIBCXX_3.4
FUNC:sinl@@GLIBCXX_3.4
FUNC:sqrtl@@GLIBCXX_3.4
FUNC:tanhl@@GLIBCXX_3.4
FUNC:tanl@@GLIBCXX_3.4
>From the looks of things, this means:
%find . -type f -name baseline_symbols.txt | xargs grep acosl
./powerpc64-linux-gnu/baseline_symbols.txt:FUNC:acosl@@GLIBCXX_3.4.3
./powerpc64-linux-gnu/32/baseline_symbols.txt:FUNC:acosl@@GLIBCXX_3.4.3
./hppa-linux-gnu/baseline_symbols.txt:FUNC:acosl@@GLIBCXX_3.4.3
./alpha-linux-gnu/baseline_symbols.txt:FUNC:acosl@@GLIBCXX_3.4.3
./s390x-linux-gnu/baseline_symbols.txt:FUNC:acosl@@GLIBCXX_3.4.3
./mips-linux-gnu/baseline_symbols.txt:FUNC:acosl@@GLIBCXX_3.4.3
./powerpc-linux-gnu/baseline_symbols.txt:FUNC:acosl@@GLIBCXX_3.4.3
./sparc-linux-gnu/baseline_symbols.txt:FUNC:acosl@@GLIBCXX_3.4.3
./s390-linux-gnu/baseline_symbols.txt:FUNC:acosl@@GLIBCXX_3.4.3
--
Summary: double vs. long double libmath export confusion
Product: gcc
Version: 4.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bkoz at gcc dot gnu dot org
GCC host triplet: powerpc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26926
More information about the Gcc-bugs
mailing list