2013-03-19 15:03:41 |
Gábor Csárdi |
description |
Boyan Bejanov reported this issue:
I ran into some trouble compiling and installing the igraph package in linux (RHEL 5.8) using the Intel compiler collection (the Cluster Studio XE 2013). You are probably aware that there is a problem with the stpcpy() function. The man page for stpcpy says
“This function is not part of the ANSI or POSIX standards, and is not customary on Unix systems, but is not a GNU invention either. Perhaps it comes from MS-DOS. “
I know that stpcpy is provided by the glibc library and gcc is happy to provide a definition for it in string.h and to link it successfully. When the Intel compiler runs in gcc-compatibility mode, it fails to provide stpcpy (in my opinion, this is Intel’s problem, I will be e-mailing them shortly), although it manages to trick the preprocessor into thinking that this is the gnu compiler running, and so the compilation fails.
I modified the foreign-*-parser.c files to check explicitly for the Intel compiler. Specifically, in foreign-gml-parser.c I modified line 901 from
# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
to
# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE && !defined __INTEL_COMPILER
and identical one-line changes in the other foreign-*-parser.c files. With these changes the igraph package compiled and installed successfully. |
Boyan Bejanov reported this issue:
I ran into some trouble compiling and installing the igraph package in linux (RHEL 5.8) using the Intel compiler collection (the Cluster Studio XE 2013). You are probably aware that there is a problem with the stpcpy() function. The man page for stpcpy says
“This function is not part of the ANSI or POSIX standards, and is not customary on Unix systems, but is not a GNU invention either. Perhaps it comes from MS-DOS. “
I know that stpcpy is provided by the glibc library and gcc is happy to provide a definition for it in string.h and to link it successfully. When the Intel compiler runs in gcc-compatibility mode, it fails to provide stpcpy (in my opinion, this is Intel’s problem, I will be e-mailing them shortly), although it manages to trick the preprocessor into thinking that this is the gnu compiler running, and so the compilation fails.
I modified the foreign-*-parser.c files to check explicitly for the Intel compiler. Specifically, in foreign-gml-parser.c I modified line 901 from
# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
to
# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE && !defined __INTEL_COMPILER
and identical one-line changes in the other foreign-*-parser.c files. With these changes the igraph package compiled and installed successfully.
...
I installed the latest version available on CRAN, R-2.15.3 and igraph_0.6.5-1.
... |
|