Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Yuli_Fiterman
Beginner
163 Views

ICC v11.1 build 064 incompatible with GCC 4,4,2 headers

Command line output:

/usr/include/c++/4.4.2/cmath(500): error: identifier "__builtin_fpclassify" is undefined
return __builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL,
^
detected during:
instantiation of "__gnu_cxx::__enable_if<:__IS_ARITHMETIC><_Tp>::__value, int>::__type std::fpclassify(_Tp) [with _Tp=float]" at line 172 of "/usr/include/boost/functional/hash/detail/hash_float.hpp"
instantiation of "size_t={unsigned int} boost::hash_detail::float_hash_value(T) [with T=float]" at line 304 of "/usr/include/boost/functional/hash/hash.hpp"

Do you have a workaround for this? If not please do something about this because 4.4.2 and 4.4.3 now come standard on a lot of linux distributions/platforms.

0 Kudos
8 Replies
bsteintrc
Beginner
163 Views

I am having this issue as well, though with gcc 4.4.1 headers. Any solutions?
pbkenned1
Employee
163 Views

It's just an issue with __builtin_fpclassify() not being supported. In general, gcc 4.4.x is supported by the 11.1 compilers. If you know of other incompatibilities, please report them.

DPD200149932 is the compiler engineering feature request for __builtin_fpclassify()

bsteintrc
Beginner
163 Views

OK; but I'm using 11.1. "In general, it's supported, [but I guess not here]" just isn't enough in this case. Is there a workaround? Is there something I'm missing?
pbkenned1
Employee
163 Views

The C++ product team is investigating this issue. If they find any workaround, I'll post it here. I doubt you're missing anything.
bsteintrc
Beginner
163 Views

Any updates here?
pbkenned1
Employee
163 Views

Yes, this issue is now planned to be fixed in an update of the 11.1 compiler. I will let you know when a compiler with the fix is available, and identify the version. The problem isa bitdifficult to fix and no workaround has yet been found.

pbkenned1
Employee
163 Views

This issue is resolved with icc 11.1 update #7 (Package ID l_cproc_p_11.1.073)

$ icc -V

Intel C Compiler Professional for applications running on IA-32, Version 11.1 Build 20100806 Package ID: l_cproc_p_11.1.073

Copyright (C) 1985-2010 Intel Corporation. All rights reserved.

$ cat builtin_fpclassify.cpp

enum { FP_NAN, FP_INFINITE, FP_ZERO, FP_SUBNORMAL, FP_NORMAL };

inline void fpclassify(float f)

{

__builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL,

FP_SUBNORMAL, FP_ZERO, f);

}

$ icc -c builtin_fpclassify.cpp

$

Patrick Kennedy
Intel Developer Support

bsteintrc
Beginner
163 Views

Fantastic news, thanks!
Good timing, too, since we were just revisiting this issue the other day. :)
Reply