Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

gcc v8 compatibility with iFort v19?

rorban
Beginner
803 Views

According to Intel documentation, v19 of the Intel Linux compiler is compatible with gcc 4.4 to gcc 7. Unfortunately, a customer of mine is using gcc 8, requires interoperability with c, and is having problems with Intel Fortran v19 .so builds because they have been built with the gcc 7 libraries. I am using Ubuntu 18.04 LTS, and the Ubuntu repository offers gcc v8.

Has anyone reading this forum successfully used the Intel compiler with gcc 8 for c interoperability? What can go wrong and are there any work-arounds? Thanks for any insight.

0 Kudos
4 Replies
Juergen_R_R
Valued Contributor I
803 Views

I think you have to provide some more details here: 1. Ubuntu 18 comes with gcc-7.4 as system compiler so the Intel packages for it have been built against gcc-7, and even if you require gcc-8 from the Ubuntu repo, I think you cannot properly test the problems that your colleague/customer encounters. Can you provide more details what goes wrong? Compilation errors? Linking errors? Runtime errors? How do they look like?

 

0 Kudos
Steve_Lionel
Honored Contributor III
803 Views

As for "what can go wrong": glibc frequently introduces breaking changes with major versions, requiring workarounds in the ifort library. Sometimes gcc also rearranges its directories, causing headaches for the Intel installer and vars scripts. There's no way to generalize what types of issues you might run into, if any.

0 Kudos
rorban
Beginner
803 Views

Juergen -- Thanks for your reply. The project is an .so that uses ISO_C_BINDING to enable some of its functions be called by a C++ application that was was built with gcc 8.3.0. In other words, gcc 8.3.0 is the "companion processor" as defined in the Fortran standard.

The specific fault is this:

Under Ubuntu 18.10 and gcc 8.3.0, when we open the Fortran-created .so with:

void *handle0001 = dlopen("mylibrary.so", RTLD_LAZY); 

the app immediately closes and reports to the console:

Segmentation fault (core dumped)

WIth the same .so, this does not happen under Ubuntu 16.04 with gcc 5.4.0. However, the customer has built its software infrastructure around Ubuntu 18.10 and gcc 8.3.0.

The .so was built with iFort 19 R4 under Ubuntu 18.04 LTS and gcc 7.4

0 Kudos
Steve_Lionel
Honored Contributor III
803 Views

You would need to NUL-terminate that string passed to dlopen....

0 Kudos
Reply