ROOT 5.17 on Mandriva 2008

Hi all,

When compiling ROOT v5.17/05 (CVS) with icc 10.0 on a system running Mandriva 2008, I got the following error message:

icc -O -fPIC -Iinclude  -DG__REGEXP -DG__UNIX -DG__SHAREDLIB -DG__OSFDLL -DG__ROOT -DG__REDIRECTIO -DG__STD_EXCEPTION -wd1572 -DG__HAVE_CONFIG -DG__NOMAKEINFO -DG__CINTBODY -Icint/src -pthread -Icint/lib/gcc3strm -o cint/src/gcc3strm.o -c cint/src/gcc3strm.cxx
cint/src/gcc3strm.cxx(311): error: class "std::fpos<mbstate_t>" has no member "operator=="
        G__letint(result7, 103, (long) ((fpos<mbstate_t>*) G__getstructoffset())->operator==(*(fpos<mbstate_t>*) libp->para[0].ref));
                                                                                  ^

cint/src/gcc3strm.cxx(317): error: class "std::fpos<mbstate_t>" has no member "operator!="
        G__letint(result7, 103, (long) ((fpos<mbstate_t>*) G__getstructoffset())->operator!=(*(fpos<mbstate_t>*) libp->para[0].ref));
                                                                                  ^

cint/src/gcc3strm.cxx(608): warning #191: type qualifier is meaningless on cast type
  , (const char_traits<char>::char_type) G__int(libp->para[2])));
     ^

compilation aborted for cint/src/gcc3strm.cxx (code 2)
make: *** [cint/src/gcc3strm.o] Error 2
make: *** Waiting for unfinished jobs....

Compiling and installing with gcc 4.2.2 went smooth.

Thanks,
Pieter

Hi Pieter,
could you try this patch:

[code]Index: cint/Module.mk

— cint/Module.mk (revision 20536)
+++ cint/Module.mk (working copy)
@@ -153,15 +153,19 @@
CINTS2 += $(MODDIRS)/fakestrm.cxx
endif
ifeq ($(CXXCMD),icc)
-CINTS2 := $(filter-out $(MODDIRS)/libstrm.%,$(CINTS2))
-CINTS2 := $(filter-out $(MODDIRS)/longif.%,$(CINTS2))
-ifneq ($(ICC_GE_9),)
-CINTS2 += $(MODDIRS)/gcc3strm.cxx
-else
-CINTS2 += $(MODDIRS)/iccstrm.cxx

  • CINTS2 := $(filter-out $(MODDIRS)/libstrm.%,$(CINTS2))
  • CINTS2 := $(filter-out $(MODDIRS)/longif.%,$(CINTS2))
  • ifneq ($(ICC_GE_9),)
  • ifeq ($(ICC_GE_9),9)
  • CINTS2 += $(MODDIRS)/gcc3strm.cxx
  • else
  • CINTS2 += $(MODDIRS)/gcc4strm.cxx
  • endif
  • else
  • CINTS2 += $(MODDIRS)/iccstrm.cxx
  • endif
  • CINTS2 += $(MODDIRS)/longif3.cxx
    endif
    -CINTS2 += $(MODDIRS)/longif3.cxx
    -endif
    ifeq ($(GCC_MAJOR),3)
    CINTS2 := $(filter-out $(MODDIRS)/libstrm.%,$(CINTS2))
    CINTS2 := $(filter-out $(MODDIRS)/longif.%,$(CINTS2))
    [/code] Just save it to a file (“afile.txt”) and run “patch -p0 < afile.txt” and then try make again. Does that help?

Cheers, Axel.

Hi Axel,

Thanks for your reply. After applying your path, I tried to recompile and got a different error message:

icc -O -fPIC -wd1476 -Iinclude  -wd1572 -pthread -DUSEPCH -include precompile.h -pch-use include/precompile.pchi -o base/src/InitGui.o -c base/src/InitGui.cxx
"base/src/InitGui.cxx": using precompiled header file "include/precompile.pchi"
(0): internal error: backend signals

compilation aborted for base/src/InitGui.cxx (code 4)
make: *** [base/src/InitGui.o] Error 4
make: *** Waiting for unfinished jobs....
rm utils/src/RStl_tmp.cxx utils/src/rootcint_tmp.cxx

Kind regards,
Pieter

Hi,

OK, so ROOT is fixed, now you’ll have to talk to Intel to get their compiler fixed :slight_smile: It looks like a compiler error to me, and from what I’ve heard they are extremely helpful and fast with their response. Uh, in fact this bug has been reported here already: root.cern.ch/phpBB2/viewtopic.php?t=5118 but it seems it has not been reported to Intel yet. Good luck!

Cheers, Axel.

Hi,

I had a look at this post: http://root.cern.ch/phpBB2/viewtopic.php?t=5118. I made the following change in config/Makefile.config: ENABLEPCH := no, as was suggested by ardashev. This has solved my problem.

I will report the issue to Intel. Thanks for your help,
Pieter

The error I reported occured with icc 10.0.023. Before posting the bug to Intel, I upgraded my compiler to their newest version 10.0.026. Apparently, someone has already bumped into the problem, because the issue is solved. ROOT v5.17/05 compiles and runs perfectly.

Thanks again,
Pieter