This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug math/22146] C++ build issue with float128 on x86_64


https://sourceware.org/bugzilla/show_bug.cgi?id=22146

--- Comment #10 from joseph at codesourcery dot com <joseph at codesourcery dot com> ---
On Wed, 20 Sep 2017, romain.naour at gmail dot com wrote:

> Hi have a different error from the config.log. I'm using gcc 7.x (commit
> 56ce01906ecb0a3e04411f8ceb60b27f4877f070)
> 
> configure:18385: checking for obsolete isnan function in <math.h>

That's nothing to do with float128.  The obsolete X/Open isnan C function 
isn't declared by glibc for C++, deliberately.  That test is *meant* to 
fail.

Look at the <cmath> and <math.h> installed with GCC - in locations such as 
<target>/include/c++/7.2.1/math.h.  The math.h header should include 
<cmath> and then have various using declarations.  The cmath header should 
include directives such as "#undef fpclassify" (meaning that all these 
math.h macros in glibc's math.h are completely irrelevant for C++).  If 
they don't, you need to trace back why the wrong versions of those headers 
got installed by libstdc++ (compare configure results with an installation 
built without --enable-target-optspace, for example).  If the headers look 
as expected, you need to trace the exact sequence of header inclusions, 
macros defines and undefines seen in your C++ test, to see why the C 
macros are visible for C++ when they should always be undefined by the C++ 
cmath header, which is included from the C++ version of math.h.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]