Hi,
just to update that this issue is still present in Abinit 7.0.3 recently released.
However, I found out that the issue is not within Abinit but actually in the Intel compilers.
I tested the code below, used to check whether the NumPy headers exist and are accessible:
Code: Select all
#include <Python.h>
#include <numpy/arrayobject.h>
#ifdef FC_DUMMY_MAIN
#ifndef FC_DUMMY_MAIN_EQ_F77
# ifdef __cplusplus
extern "C"
# endif
int FC_DUMMY_MAIN() { return 1; }
#endif
#endif
int
main ()
{
int main(int argc, char** argv)
{
return 0;
}
;
return 0;
}
This code moved within but still exists in the "abinit-7.0.3/configure" file shipped with Abinit 7.0.3, between lines 15057 and 15077. It is generated from "abinit-7.0.3/config/m4/lang-python.m4", still in lines 30 to 45.
The code was compiled with the following compilation line:
Code: Select all
$ CC -c -O3 -m64 -I/packages/python/2.7-intel/include/python2.7 -I/packages/numpy/1.5.0-gnu/lib64/python2.6/site-packages/numpy/core/include -L/packages/python/2.7-intel/lib -L/packages/numpy/1.5.0-gnu/lib64/python2.6/site-packages/numpy/core/lib -lpython2.7 -lnpymath test.c
I tested the aforementioned code with several different compilers and the compilation results are below:
- GCC 4.3.4: passed
- GCC 4.5.1: passed
- GCC 4.6.3: passed
- Intel Compiler 9.1: failed with error code 4
- Intel Compiler 10.1: failed with error code 4
- Intel Compiler 11.0: failed with error code 2
- Intel Compiler 11.1: failed with error code 2
- Intel Compiler 12.0.0: failed with error code 2
- Intel Compiler 12.0.5: passed
- Intel Compiler 12.1.0: passed
- Intel Compiler 12.1.5: passed
- Intel Compiler 13.0.0: passed
When ICC failed with code 4, the error message was as below:
Code: Select all
/usr/include/limits.h(125): catastrophic error: could not open source file "limits.h"
# include_next <limits.h>
^
compilation aborted for test.c (code 4)
And error code 2 had ICC output the following message:
Code: Select all
test.c(15): warning #159: declaration is incompatible with previous "main" (declared at line 12)
int main(int argc, char** argv)
^
test.c(16): error: expected a ";"
{
^
test.c(19): warning #12: parsing restarts here after previous syntax error
;
^
compilation aborted for test.c (code 2)
I am currently sed'ing the "abinit-7.0.3/configure" file to remove lines 15067-15070 and 15075-15077 so to avoid the config step from crashing regardless of the compiler used.
I appreciate if this issue can be fixed in the next release, or at least that this unexpected behavior is mentioned in the "KNOWN_PROBLEMS" file.
I realize that the Intel compilers 10.1 and 11.0 are recommended in the "KNOWN_PROBLEMS" file, even though I found out they are likewise buggy.
Thank you in advance for your time and patience.
Looking forward to hearing from you soon.
Kind regards,
Renato Miceli