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

Optimizations, QT on Linux

paragw1
Beginner
892 Views
Has anybody ever succeeded in building Qt 3.x on Linux using ICC 7+ with all the optimizations enabled?
I tried many times - most of the time the compile process gets stuck - mcpcom keeps on taking 90% CPU and it never ends. Some times It did build it successfully after disabling ip and ipo but applications segfault. I have similar experience with the Open Source ORB TAO.
In my $0.002 worth opinion, Intel C++ compiler hasn't yet reached the maturity of GCC - at least not on Linux. It can't compile any complex software (ACE/TAO, Qt etc.) with optimizations enabled. Even if it does, the compiled software hasn't worked. To file a bug report at Intel, you require premier support or some such thing. That's the sole reason the compilers aren't improving by each release.
0 Kudos
9 Replies
cp_jain
Beginner
892 Views
Hi Parag,
I dont agree with you. I have compiled many large open source application using Intel Compiler v7 and v8 (FYI - v8 is now available for download) with advanced optimization and most of them worked well.

I will try QT and let you know.

cp
0 Kudos
paragw
Beginner
892 Views
No don't waste your time. The latest one does not even compile qmake of the latest Qt! icpc dies with segfault very early (-ip, -ipo, -O2 -pch, -i_dynamic). I am on Fedora 1 - If that matters.
I wonder if ICC will be usable for some real stuff any time soon..
0 Kudos
paragw
Beginner
892 Views
Ok. -pch was a little too early for it to handle. So I try with plain -O2 -ip -ipo and yes my guesswork turns out true - it keeps on compiling for ever - 90% CPU usage. 15 minutes on one file and i am bored - Ctrl+C!

Message Edited by paragw@excite.com on 12-18-2003 08:03 PM

0 Kudos
paragw
Beginner
892 Views
hi cp_jain,
Did you try building ACE/TAO or QT ? Wasyour experience different than me?
Is there any reason to believe that compiling on anything > RH 7.3 is the root cause for all problems? What version/variant of the Linux OS and glibc is officially supported by ICC 8.0?
Parag
0 Kudos
cp_jain
Beginner
892 Views
Yes, I tried the latest Qt version with Intel compiler. It works well with basic optimization options. But with IPO, want to mention here that, it needs to do multifile optimization for 403 object files together. It fails at this point.I am trying to figure out the issue with this.

I will keep you posted on updates.

cp
0 Kudos
cp_jain
Beginner
892 Views
I missed one point. You mentioned -

>> I am on Fedora 1 - If that matters.

ASFIK, Intel compiler doesn't support this platform.
Please refer to release notes to find out what all platforms it
supports.

cp
0 Kudos
paragw
Beginner
892 Views
Forget Fedora 1, my experience with ICC7 and _supported_ RH 7.x is only a little better but less than useful - It compiles and runs without any optimization. But with -O2 - qmake starts seg faulting so build stops then and there.

Parag
0 Kudos
paragw
Beginner
892 Views
cp - which version of what distro did you use to try out compiling Qt? What do you exactly mean by "Basic Optimization" ? Was it atleast O2?

Per Release notes ICC8 supports Redhat 9 and glibc 2.3.2 so as I doubted the platform should not matter. (Fedora-1 is equivalent to RH9 except that glibc is NPTL enabled and I don't think there is a reason for compiler to choke in -ipo logic or programs to segfault due to -O2 due to this. I am pretty sure I can repeat this on RH 9)

Just so that I get to compile QT/KDE with ICC -full-optimizations and we can enjoy the speed :)

Parag
0 Kudos
cp_jain
Beginner
893 Views
Parag -

I compiled Qt on RH 8 linux with latest v8 Intel C++ Compiler.
With basic optimization option, I meant -O2 option.

I even tried this with "-O2 -xW -ip" and it worked well.

Also, I suggest you to use icc v8 compiler with "-cxxlib-gcc" option, as some
of the existing libraries, which are linked with QT, are compiled with gcc.

If you dont use this (-cxxlib-gcc) option, execution may result in seg fault
as now you have two STL's (libstdc++ and libcprts) linked in.

HTH,
cp
0 Kudos
Reply