Build failure from source of v5.27 "dev" tarball

Dear ROOT team,

I’m trying to build the 5.27 dev tarball from source. It fails in building libCint.so with the following curious output:

g++ -shared -Wl,-soname,libCint.so -m32 -O2 -o lib/libCint.so cint/cint/src/g__cfunc.o cint/cint/main/G__setup.o cint/cint/src/Api.o cint/cint/src/BaseCls.o cint/cint/src/CallFunc.o cint/cint/src/Class.o cint/cint/src/DataMbr.o cint/cint/src/FastAllocString.o cint/cint/src/Method.o cint/cint/src/MethodAr.o cint/cint/src/Shadow.o cint/cint/src/Token.o cint/cint/src/Type.o cint/cint/src/Typedf.o cint/cint/src/auxu.o cint/cint/src/bc_assign.o cint/cint/src/bc_autoobj.o cint/cint/src/bc_cfunc.o cint/cint/src/bc_debug.o cint/cint/src/bc_eh.o cint/cint/src/bc_exec.o cint/cint/src/bc_inst.o cint/cint/src/bc_item.o cint/cint/src/bc_parse.o cint/cint/src/bc_reader.o cint/cint/src/bc_type.o cint/cint/src/bc_vtbl.o cint/cint/src/cast.o cint/cint/src/debug.o cint/cint/src/decl.o cint/cint/src/disp.o cint/cint/src/dump.o cint/cint/src/end.o cint/cint/src/error.o cint/cint/src/expr.o cint/cint/src/fread.o cint/cint/src/func.o cint/cint/src/gcoll.o cint/cint/src/global1.o cint/cint/src/global2.o cint/cint/src/ifunc.o cint/cint/src/inherit.o cint/cint/src/init.o cint/cint/src/input.o cint/cint/src/intrpt.o cint/cint/src/loadfile.o cint/cint/src/macro.o cint/cint/src/malloc.o cint/cint/src/memtest.o cint/cint/src/new.o cint/cint/src/newlink.o cint/cint/src/oldlink.o cint/cint/src/opr.o cint/cint/src/parse.o cint/cint/src/pause.o cint/cint/src/pcode.o cint/cint/src/pragma.o cint/cint/src/quote.o cint/cint/src/random.o cint/cint/src/rflx_gendict.o cint/cint/src/rflx_gensrc.o cint/cint/src/rflx_tools.o cint/cint/src/scrupto.o cint/cint/src/shl.o cint/cint/src/sizeof.o cint/cint/src/struct.o cint/cint/src/stub.o cint/cint/src/tmplt.o cint/cint/src/typedef.o cint/cint/src/val2a.o cint/cint/src/value.o cint/cint/src/var.o cint/cint/src/dict/Apiif.o cint/cint/src/dict/stdstrct.o cint/cint/src/dict/gcc4strm.o cint/cint/src/dict/longif3.o /usr/bin/ld: lib/libCint.so: hidden symbol `void std::__ostream_fill<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, long)' isn't defined /usr/bin/ld: final link failed: Nonrepresentable section on output collect2: ld returned 1 exit status distcc[32577] ERROR: compile (null) on localhost failed make: *** [lib/libCint.so] Error 1

I’m not quite sure how to track down this problem. Any ideas?

Thanks,
Matthew Lockner

Hi,

Which version of gcc are you using? Is it the same on all the nodes used by distcc?

Cheers,
Philippe.

[quote=“pcanal”]Hi,

Which version of gcc are you using? Is it the same on all the nodes used by distcc?

Cheers,
Philippe.[/quote]

Here is what gcc reports versionwise:

$ gcc -v
Using built-in specs.
Target: x86_64-redhat-linux6E
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-languages=c,c++,fortran --disable-libgcj --with-cpu=generic --build=x86_64-redhat-linux6E
Thread model: posix
gcc version 4.3.2 20081007 (Red Hat 4.3.2-7) (GCC) 

As for the uniformity of the distcc nodes: I don’t know, but I tried taking distcc out of the picture and still get the same error as before.

Thanks,
Matthew Lockner

Hi,

From I can see, this seems to be a compiler installation issue:[quote]The linker is telling you that the symbol for std::__ostream_fill has
its visibility set to hidden, i.e. it’s not exported from a shard
library. The most likely cause of this is an installation problem
with the 32-bit libraries of your gcc. [/quote]also see a similar issue at [[in redhat bugzilla][bugzilla.redhat.com/show_bug.cgi?format=multiple&id=493929]]

Cheers,
Philippe

PS. One other plausible issue is that some of the .o are compile without -m32 (or with -m64) while the linking is happening with -m32.