I am trying to comopile Galois benchmark for mic. I have no problem compiling it in GCC or ICC host compiler. When I try to compile it for mic I get the problem in C++ header file which you can find it below. And I find that the same stl_uninitialized.h is different in different compiler.
snataraj@phileas:~/Galois-2.1.8/build/mic$ make -j independentset
[100%] Built target galois
[100%] Building CXX object apps/independentset/CMakeFiles/independentset.dir/IndependentSet.cpp.o
/usr/linux-k1om-4.7/linux-k1om/../x86_64-k1om-linux/include/c++/4.7.0/bits/stl_uninitialized.h(576): error #165: too few arguments in function call
compilation aborted for /home/snataraj/Galois-2.1.8/apps/independentset/IndependentSet.cpp (code 2)
make: *** [apps/independentset/CMakeFiles/independentset.dir/IndependentSet.cpp.o] Error 2
make: *** [apps/independentset/CMakeFiles/independentset.dir/all] Error 2
make: *** [apps/independentset/CMakeFiles/independentset.dir/rule] Error 2
make: *** [independentset] Error 2
Your help will be highly appreciated.
gcc changed the call in __uninitialized_default_n_a (and __uninitialized_default_a) from:
between 4.7.0 and 4.7.3.
The issue has to do with whether construct() can expect a single argument or not. See: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51626 for more information.
Could you to replace the stl_uninitialized.h in the target directory (the one off /usr/linux-k1om-4.7/) with a newer version?
Ravi, Thank you for the prompt reply. Infact I was looking for the new version of linux-k1om-4.7 but I havn't found it till now. Could you please give me the link from where I can download the latest version?
We have not released a newer verions of linux-k1om-4.7
Your current options
- Use the older gcc version on host
- copy over the host header file to/usr/linux-k1om-.47
- use #ifdef __MIC__ else at the point of invocation of the constructor.
I captured the details of the issue and reported it to the MPSS team requesting resolution in a future MPSS release that includes GCC 4.7.3 (or newer) which offers the header change needed.
I will update this thread as I learn more regarding a resolution. Thank you for making us aware of this issue.
I have the exact same problem which for my current project is a complete show stopper.
I've tried to replace the stl_uninitialized.h in the target /usr/linux-k1om-4.7/x86_64-k1om-linux/include/c++/4.7.0/bits/ with the file from version 4.9.2, but that resulted in several other compilation errors.
I’m using mpss 3.4.4 (on Ubuntu 14.04.2), I checked whether upgrading could solve the problem, but the latest mpss (currently 3.5.1) also sports g++ 4.7.0.
Question: when will the gcc compiler be upgraded, or what can I do to resolve this issue.