Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

icpc 8.1 with blitz++

fengfs
Beginner
603 Views
I tried to run my program in parallel.
under redhat FC2, ICC 8.0 didn't work for parallel (OPENMP). I had installed the updated version of ICC-8.1(latest one). But, I cannot compile blitz++8.0(CVS version) library anymore. I got error message as following :
(Is this a bug? becasue I compiled same code with icc8-8.0-44 with no problem under redhat FC1)


/bin/sh ../libtool --mode=compile --tag=CXX icpc -DHAVE_CONFIG_H -I. -I.. -I.. -strict_ansi -c -o globals.lo `test -f '../src/globals.cpp' || echo './'`../src/globals.cpp
icpc -DHAVE_CONFIG_H -I. -I.. -I.. -strict_ansi -c ../src/globals.cpp -Wp,-MD,.deps/globals.TPlo -o globals.o
/usr/include/c++/3.3.2/bits/stl_alloc.h(968): error: "template" is not allowed
extern template class allocator;
....
compilation aborted for ../src/globals.cpp (code 4)
make[1]: *** [globals.lo] Error 1


BTW, I run ./configure CXX=icpc, I got some ridiculous message:
(icpc doesn't support complex..... For sure, it does support, but why????)

Which library features does your compiler provide?

checking whether the compiler has complex... no
checking whether the compiler has standard complex functions... no
.....


Thanks

Message Edited by fengfs@gmail.com on 12-15-2004 09:23 PM

Message Edited by fengfs@gmail.com on 12-15-2004 09:23 PM

0 Kudos
3 Replies
TimP
Honored Contributor III
603 Views
config scripts usually record their actions in config.log. There, you ought to see what test was performed and what its failure mode was.

You are using libraries provided by the g++ you have installed.

If you Google on the combination "extern template," you should see expert advice pointing out that it is a compiler dependent extension for that to be allowed. With g++, it should make a difference whether you set permissive or strict syntax options. If so, and icpc fails to follow suit, it may be worth a problem report on premier.intel.com, asking for icpc to implement the g++ syntax extension.
0 Kudos
Maximillia_D_Intel
603 Views
Hi,
Yes. I'd be inclined to try compiling with -strict_ansi turned off. The Intel compiler interprets the -strict_ansi option to mean the Intel compiler's definition of ISO conformance. I believe extern template is a GNU extension that is not in the C++98 standard so it would probably be flagged as an error with -strict_ansi. You could try backing down to -ansi which is our best approximation of GNU's definition of ISO conformance. This may be your best alternative if you want to use extern template but still have good conformance checks. If you find that GNU is able to compile the code with -ansi and our compiler is not, you would have grounds to file a premier issue.
Regards,
Max
0 Kudos
fengfs
Beginner
603 Views
First, I would like to thank you (tim18 and mjdomeik ) for your replies.

I did follow mjdomeik's suggestion (turned off -static-ansi option) and the compilers behaved just like you imagined. icpc can compile blitz++ 8.0 very well unless some warning messages. That's OK, I thought. The major question is that the executable files of the "testsuite" generated by icpc just aborted for some reason when I run it but files created by g++ had no problem when running.

I wish I could figure this out and I also hope that you can give me some suggestions.

Many thanks.

Feng

Message Edited by fengfs@gmail.com on 12-18-2004 12:45 PM

0 Kudos
Reply