Compile ROOT v5.19 with icc 10.1

Hi all,

I’m trying to compile ROOT v5.19/01 (trunk@21924) with icc 10.1 on a x86_64 Intel® Core™2 machine running Mandriva 2008.

When I compile with the following command./configure linuxx8664icc --prefix=/usr/local --enable-mathmore --enable-mathcore --enable-minuit2 --enable-soversion make -j2I get the same error message I reported some time ago. I was able to fix it by applying the patch that’s mentioned in that post.

When make finishes succesfully, I runmake installThis results in the following error:icpc -O -o bin/root rootx/src/rootx.o rootx/src/rootxx.o -lXpm -lXext -lX11 -lXft rootx/src/rootxx.o: In function `WaitLogo()': rootx/src/rootxx.cxx:(.text+0xc2): undefined reference to `XDrawString' rootx/src/rootxx.cxx:(.text+0xce): undefined reference to `XFlush' rootx/src/rootxx.cxx:(.text+0x106): undefined reference to `XCheckMaskEvent' rootx/src/rootxx.cxx:(.text+0x1a6): undefined reference to `XDrawString' rootx/src/rootxx.cxx:(.text+0x281): undefined reference to `XFlush' rootx/src/rootxx.cxx:(.text+0x33b): undefined reference to `XUnmapWindow' rootx/src/rootxx.cxx:(.text+0x34e): undefined reference to `XDestroyWindow' rootx/src/rootxx.cxx:(.text+0x371): undefined reference to `XFreePixmap' rootx/src/rootxx.cxx:(.text+0x394): undefined reference to `XFreePixmap' rootx/src/rootxx.cxx:(.text+0x3b7): undefined reference to `XFreeFont' rootx/src/rootxx.cxx:(.text+0x3da): undefined reference to `XFreeGC' rootx/src/rootxx.cxx:(.text+0x3f8): undefined reference to `XSync' rootx/src/rootxx.cxx:(.text+0x404): undefined reference to `XCloseDisplay' rootx/src/rootxx.o: In function `ScrollCredits(int)': rootx/src/rootxx.cxx:(.text+0x472): undefined reference to `XSetClipRectangles' rootx/src/rootxx.cxx:(.text+0x4c3): undefined reference to `XCopyArea' rootx/src/rootxx.cxx:(.text+0x4dc): undefined reference to `XSetClipMask' rootx/src/rootxx.o: In function `PopupLogo(bool)': rootx/src/rootxx.cxx:(.text+0x504): undefined reference to `XOpenDisplay' rootx/src/rootxx.cxx:(.text+0x56b): undefined reference to `XCreateSimpleWindow' rootx/src/rootxx.cxx:(.text+0x58a): undefined reference to `XDefaultScreenOfDisplay' rootx/src/rootxx.cxx:(.text+0x5a8): undefined reference to `XGetWindowAttributes' rootx/src/rootxx.cxx:(.text+0x68d): undefined reference to `XpmReadFileToPixmap' rootx/src/rootxx.cxx:(.text+0x69c): undefined reference to `XpmFreeAttributes' rootx/src/rootxx.cxx:(.text+0x6b6): undefined reference to `XpmGetErrorString' rootx/src/rootxx.cxx:(.text+0x6e0): undefined reference to `XFreePixmap' rootx/src/rootxx.cxx:(.text+0x706): undefined reference to `XCloseDisplay' rootx/src/rootxx.cxx:(.text+0x773): undefined reference to `XGetGeometry' rootx/src/rootxx.cxx:(.text+0x77f): undefined reference to `XDefaultScreenOfDisplay' rootx/src/rootxx.cxx:(.text+0x7be): undefined reference to `XMoveResizeWindow' rootx/src/rootxx.cxx:(.text+0x7cc): undefined reference to `XSync' rootx/src/rootxx.cxx:(.text+0x806): undefined reference to `XChangeWindowAttributes' rootx/src/rootxx.cxx:(.text+0x81d): undefined reference to `XCreateGC' rootx/src/rootxx.cxx:(.text+0x837): undefined reference to `XLoadQueryFont' rootx/src/rootxx.cxx:(.text+0x85e): undefined reference to `XSetFont' rootx/src/rootxx.cxx:(.text+0x874): undefined reference to `XSetForeground' rootx/src/rootxx.cxx:(.text+0x88a): undefined reference to `XSetBackground' rootx/src/rootxx.cxx:(.text+0xa4a): undefined reference to `XCreatePixmap' rootx/src/rootxx.cxx:(.text+0xa67): undefined reference to `XSetForeground' rootx/src/rootxx.cxx:(.text+0xa96): undefined reference to `XFillRectangle' rootx/src/rootxx.cxx:(.text+0xaac): undefined reference to `XSetForeground' rootx/src/rootxx.cxx:(.text+0xad1): undefined reference to `XSelectInput' rootx/src/rootxx.cxx:(.text+0xae4): undefined reference to `XMapRaised' rootx/src/rootxx.cxx:(.text+0xb25): undefined reference to `XLoadQueryFont' rootx/src/rootxx.o: In function `DrawCredits(bool, bool)': rootx/src/rootxx.cxx:(.text+0xc2b): undefined reference to `XTextWidth' rootx/src/rootxx.cxx:(.text+0xc64): undefined reference to `XTextWidth' rootx/src/rootxx.cxx:(.text+0xcc0): undefined reference to `XDrawString' rootx/src/rootxx.cxx:(.text+0xdec): undefined reference to `XDrawString' rootx/src/rootxx.cxx:(.text+0xe98): undefined reference to `XTextWidth' rootx/src/rootxx.cxx:(.text+0xed2): undefined reference to `XTextWidth' rootx/src/rootxx.cxx:(.text+0xf30): undefined reference to `XDrawString' rootx/src/rootxx.cxx:(.text+0x1061): undefined reference to `XDrawString' rootx/src/rootxx.cxx:(.text+0x1111): undefined reference to `XTextWidth' rootx/src/rootxx.cxx:(.text+0x114b): undefined reference to `XTextWidth' rootx/src/rootxx.cxx:(.text+0x11a9): undefined reference to `XDrawString' rootx/src/rootxx.cxx:(.text+0x12da): undefined reference to `XDrawString' rootx/src/rootxx.cxx:(.text+0x138a): undefined reference to `XTextWidth' rootx/src/rootxx.cxx:(.text+0x13c4): undefined reference to `XTextWidth' rootx/src/rootxx.cxx:(.text+0x1422): undefined reference to `XDrawString' rootx/src/rootxx.cxx:(.text+0x1553): undefined reference to `XDrawString' rootx/src/rootxx.cxx:(.text+0x15ff): undefined reference to `XTextWidth' rootx/src/rootxx.cxx:(.text+0x1639): undefined reference to `XTextWidth' rootx/src/rootxx.cxx:(.text+0x1697): undefined reference to `XDrawString' rootx/src/rootxx.cxx:(.text+0x17c8): undefined reference to `XDrawString' rootx/src/rootxx.cxx:(.text+0x187a): undefined reference to `XTextWidth' rootx/src/rootxx.cxx:(.text+0x18ad): undefined reference to `XTextWidth' rootx/src/rootxx.cxx:(.text+0x190b): undefined reference to `XDrawString' rootx/src/rootxx.cxx:(.text+0x1a36): undefined reference to `XDrawString' rootx/src/rootxx.cxx:(.text+0x1aaf): undefined reference to `XDrawString' rootx/src/rootxx.cxx:(.text+0x1b26): undefined reference to `XDrawString' rootx/src/rootxx.cxx:(.text+0x1c4f): undefined reference to `XDrawString' rootx/src/rootxx.o:rootx/src/rootxx.cxx:(.text+0x1cca): more undefined references to `XDrawString' follow make: *** [bin/root] Error 1

I tried compiling/installing the same source with gcc-4.2.2 and all went well.

Regards,
Pieter

The undefined symbols all come from libX11.so. Can you check where these libs are and all -L/usr/X11/lib64 or something like that. If they are just in /usr/lib64 then -L/usr/lib64 is not needed as that should be implicit by the compiler. Btw, did you check if Mandriva is a supported platform for Intel? There are some cases in the Intel setup scripts where they assume system file layout to be in a certain way. If Mandriva is different you will get this kind of problems.

Cheers, Fons.

libX11.so is where it is supposed to be and ldconf can locate it:

[root@localhost /]# locate libX11.so /usr/lib/libX11.so.6 /usr/lib/libX11.so.6.2.0 /usr/lib64/libX11.so /usr/lib64/libX11.so.6 /usr/lib64/libX11.so.6.2.0 [root@localhost /]# ldconfig -p | grep libX11 libX11.so.6 (libc6,x86-64) => /usr/lib64/libX11.so.6 libX11.so.6 (libc6) => /usr/lib/libX11.so.6 libX11.so (libc6,x86-64) => /usr/lib64/libX11.so
When I compile with

I get no errors. The -L/usr/lib64 flag should be redundant however. When compiling other applications, I haven’t encountered any difficulties so far. I know several people that use Intel’s C++ compiler on Mandriva without problems.

I would like to point out something else. When I tried installing ROOT in a generic directory, by setting $ROOTSYS, make did not produce any executables. Is this type of installation not supported for the linuxx8664icc configuration or is something wrong with that type of configuration?

Pieter

I don’t see directly why it would not work. Did you check Intel’s web site to see if Mandriva is supported by icc.

Cheers, Fons.