We are facing an issue while building our product OCMP with Intel ICC compiler version 16.
GCC version : 8.3.1
Environment : RHEL8
Code : Primarily C and C++
We have many components that we build. Among that there are codecs as well as project’s own code. We use ICC to build a few modules.
The problem is ICC version 16 is not aware that GCC 8.3.1 has many updates over time. And conflicting with GCC’s Float128 and FLOAT64 definitions.
/usr/include/bits/floatn.h(86): error: invalid combination of type specifiers
typedef __float128 _Float128;
Now, since we use a few api's, we cannot update the Intel ICC since version 16.
For many codecs we could solve the problem by adding definitions like "-D_Float128=__float128" and -D_Float64=double etc.
But, during autoconf of our project, the following fails with conftest.c
If we add the definitions through our project m4 files, all the checks pass and malloc/mcheck becomes available but "_Float128" becomes available throughout the whole build and other components build fail.
Is there a way to add add Float128/64 definitions to the autoconf for ICC so that malloc/mcheck compilations succeed but does not get added to whole build.
Or if there is any other way to go around this problem ?
Please let me know for any more information we can share.
- Intel ICC Compiler
Thank you for reaching out. icc version 16 was released in 2015 and gcc version 8.3 was released recently in 2019. For icc version 16, it supports gcc versions 4.1-5.1. We are unable to provide support as the icc version you are using is not the recent one and the compatibility information between the two(icc 16 and gcc 8.3) is not known.
We would be able to support you if you try upgrading your Intel C++ Compiler to the latest version. We can also provide support if you face any difficulties while upgrading.
We haven’t heard from you in a while. If you need any additional information, please submit a new question as this thread will no longer be monitored.