** Description changed:

+ [Impact]
+ 
+  A simple code including tgmath.h cannot be compiled with icc with
+ Ubuntu 20.04 OS and later releases.
+ 
+ [Test Case]
+ icc:
+  Compile the following code with Intel compiler (icc) by running “icc -c 
test.c”
+ 
+ $ cat test.c
+ #include <tgmath.h>
+ 
+ There should not be any compilation error
+ 
+ 
+ [Where problems could occur]
+ 
+ The fix is dropping compile time check preventing using float128 with
+ icc. In case of a mistake using float128 becomes prevented in other
+ compilers as well, but this is highly unlikely, since the vanilla
+ upstream code is known to work.
+ 
+ Older icc compilers (for which the patch has been introduced) will stop
+ compiling code with the _fixed_ tgmath.h because of LP: #1717257.
+ 
+ Users can still install older icc compilers from 3rd party sources, but
+ there is no good way of avoiding that. They can still override the
+ packaged tgmath.h.
+ 
+ [Original Bug Text]
+ 
  [Summary]: A simple code including tgmath.h cannot be compiled with icc
  with Ubuntu 20.04 OS
  
  [Ubuntu OS version]: 20.04
  
  [Reproduce Steps]: Compile the following code with Intel compiler (icc)
  by running “icc -c test.c”
  
  $ cat test.c
  #include <tgmath.h>
-  
+ 
  [Results]
  Expected: There should not be any compilation error
  
  Actual: The following error is produced:
  
  $ icc -c test.c
  In file included from 
/localdisk2/mkl/aakkas/20200721_rls/lnx/compiler/latest/linux/bin/intel64/../../compiler/include/icc/tgmath.h(25),
-                  from test.c(1):
+                  from test.c(1):
  /usr/include/tgmath.h(54): error: #error directive: "Unsupported combination 
of types for <tgmath.h>."
-   #  error "Unsupported combination of types for <tgmath.h>."
-      ^
-  
+   #  error "Unsupported combination of types for <tgmath.h>."
+      ^
+ 
  compilation aborted for test.c (code 2)
-  
  
  [Additional Information on Test setup]:
  
- ICC compiler supports the __float128 type if the reference compiler is more 
recent than GNU version 4.4. Therefore, __HAVE_FLOAT128 should be set to 1 when 
ICC compiler is used with GNU version higher than 4.4. Based on this, I believe 
that the red part below in floatn.h, which comes with Ubuntu OS, should be 
updated/removed.
-  
+ ICC compiler supports the __float128 type if the reference compiler is
+ more recent than GNU version 4.4. Therefore, __HAVE_FLOAT128 should be
+ set to 1 when ICC compiler is used with GNU version higher than 4.4.
+ Based on this, I believe that the red part below in floatn.h, which
+ comes with Ubuntu OS, should be updated/removed.
+ 
  #if (defined __x86_64__                                                 \
-      ? __GNUC_PREREQ (4, 3)                                             \
-      : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4))) \
-      &&  !defined(__CUDACC__) && !defined(__ICC)
+      ? __GNUC_PREREQ (4, 3)                                             \
+      : (defined __GNU__ ? __GNUC_PREREQ (4, 5) : __GNUC_PREREQ (4, 4))) \
+      &&  !defined(__CUDACC__) && !defined(__ICC)
  # define __HAVE_FLOAT128 1
  #else
  # define __HAVE_FLOAT128 0
  #endif
  
  Currently, when the tgmath.h system header file is included on Ubuntu
  20.04 OS system,  __HAVE_FLOAT128 is set to zero and __HAVE_FLOAT64X set
  to 1 for ICC. And this is not a supported combination as checked in the
  new tgmath.h system header file:
  
  # if ((__HAVE_FLOAT64X && !__HAVE_FLOAT128)             \
-       || (__HAVE_FLOAT128 && !__HAVE_FLOAT64X))
+       || (__HAVE_FLOAT128 && !__HAVE_FLOAT64X))
  #  error "Unsupported combination of types for <tgmath.h>."
  # endif
  
  Upstream bug: Not known
  =========================================

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1895358

Title:
  [Bug] A simple code including tgmath.h cannot be compiled with icc
  with Ubuntu 20.04 OS

To manage notifications about this bug go to:
https://bugs.launchpad.net/intel/+bug/1895358/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to