Using root with muparser

Dear scolex,
I am the author of the QT+ROOT install script you are using (and that doesn’t work … :blush: :blush: :blush: )

Just to tackle the problem in small steps, I would like to ask you the following: did you try to install a “simple” ROOT, like a 5.18.00 with no qt, no special libraries, nothing :wink: ?

Does it install correctly?
Are you able to perform a “local install” instead of a “system-wide” one?

Luigi

PS: a quick&dirty fix for the trap problem closing the terminal is the following: replace the “trap …” line with:

trap  "echo ; echo SOME FATAL ERROR DURING EXECUTION, SORRY... ; echo CTRL+C to exit ; sleep 1000000 ; exit;" ERR

(all on a single line)

No, root does not compile on my computer - just configure; make -k gives this:

 Install roots wrapper.
bin/rmkdepend -R -fmain/src/h2root.d -Y -w 1000 -- -pipe -m32 -Wall -W -Woverloaded-virtual -fPIC -Iinclude  -pthread -D__cplusplus -- main/src/h2root.cxx
g++ -O2 -pipe -m32 -Wall -W -Woverloaded-virtual -fPIC -Iinclude  -pthread  -o main/src/h2root.o -c main/src/h2root.cxx
g++ -m32 -O2  -o bin/h2root main/src/h2root.o hbook/src/hntvar2.o \
                   -Llib -lCore -lCint -lRIO -lNet -lHist -lGraf -lGraf3d -lGpad -lTree -lMatrix \
                   -L/cern/pro/lib -L/cern/pro/lib -lpacklib -lkernlib -L/cern/new/lib \
                   -lshift /usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../libfrtbegin.a /usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../libg2c.so -lnsl -lm -ldl  -pthread -rdynamic
/cern/pro/lib/libpacklib.a(error.o): In function `rfio_serror':
error.c:(.text+0x26c): warning: `sys_errlist' is deprecated; use `strerror' or `strerror_r' instead
/cern/pro/lib/libpacklib.a(serror.o): In function `sstrerror':
serror.c:(.text+0x26): warning: `sys_nerr' is deprecated; use `strerror' or `strerror_r' instead
/usr/lib/gcc/i586-suse-linux/4.1.2/../../../../i586-suse-linux/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in /cern/pro/lib/libpacklib.a(remote.o)
/lib/libc.so.6: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [bin/h2root] Error 1
g77 -O2 -fPIC -o main/src/g2root.o -c main/src/g2root.f
g++ -m32 -O2  -o bin/g2root main/src/g2root.o \
                   -L/cern/pro/lib -L/cern/pro/lib -lpacklib -lkernlib -L/cern/new/lib \
                   -lshift /usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../libfrtbegin.a /usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../libg2c.so -lnsl -lm -ldl  -pthread -rdynamic
/cern/pro/lib/libpacklib.a(error.o): In function `rfio_serror':
error.c:(.text+0x26c): warning: `sys_errlist' is deprecated; use `strerror' or `strerror_r' instead
/cern/pro/lib/libpacklib.a(serror.o): In function `sstrerror':
serror.c:(.text+0x26): warning: `sys_nerr' is deprecated; use `strerror' or `strerror_r' instead
/usr/lib/gcc/i586-suse-linux/4.1.2/../../../../i586-suse-linux/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in /cern/pro/lib/libpacklib.a(remote.o)
/lib/libc.so.6: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [bin/g2root] Error 1
g77 -O2 -fPIC -o main/src/g2rootold.o -c main/src/g2rootold.f
g++ -m32 -O2  -o bin/g2rootold main/src/g2rootold.o \
                   -L/cern/pro/lib -L/cern/pro/lib -lpacklib -lkernlib -L/cern/new/lib \
                   -lshift /usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../libfrtbegin.a /usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../libg2c.so -lnsl -lm -ldl  -pthread -rdynamic
/cern/pro/lib/libpacklib.a(error.o): In function `rfio_serror':
error.c:(.text+0x26c): warning: `sys_errlist' is deprecated; use `strerror' or `strerror_r' instead
/cern/pro/lib/libpacklib.a(serror.o): In function `sstrerror':
serror.c:(.text+0x26): warning: `sys_nerr' is deprecated; use `strerror' or `strerror_r' instead
/usr/lib/gcc/i586-suse-linux/4.1.2/../../../../i586-suse-linux/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in /cern/pro/lib/libpacklib.a(remote.o)
/lib/libc.so.6: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [bin/g2rootold] Error 1
cp reflex/python/genreflex/gccdemangler.py lib/python/genreflex/gccdemangler.py
cp reflex/python/genreflex/gencapa.py lib/python/genreflex/gencapa.py
cp reflex/python/genreflex/gendict06.py lib/python/genreflex/gendict06.py
cp reflex/python/genreflex/gendict.py lib/python/genreflex/gendict.py
cp reflex/python/genreflex/genheader.py lib/python/genreflex/genheader.py
cp reflex/python/genreflex/genreflex06.py lib/python/genreflex/genreflex06.py
cp reflex/python/genreflex/genreflex.py lib/python/genreflex/genreflex.py
cp reflex/python/genreflex/genreflex-rootcint.py lib/python/genreflex/genreflex-rootcint.py
cp reflex/python/genreflex/genrootmap.py lib/python/genreflex/genrootmap.py
cp reflex/python/genreflex/selclass.py lib/python/genreflex/selclass.py
make: Target `all' not remade because of errors.
rm metautils/src/stlLoader_map.cc cint/lib/dll_stl/G__cpp_multiset.o cint/lib/dll_stl/rootcint_valarray.cxx cint/lib/dll_stl/rootcint_deque.cxx metautils/src/stlLoader_set.cc cint/lib/dll_stl/rootcint_vector.cxx cint/lib/dll_stl/G__cpp_climits.o cint/lib/G__c_stdcxxfunc.c metautils/src/stlLoader_multiset.cc cint/lib/G__c_stdcxxfunc.o cint/lib/dll_stl/G__cpp_complex.o cint/lib/dll_stl/G__cpp_stdexcept.o cint/lib/dll_stl/rootcint_set.cxx cint/lib/dll_stl/rootcint_multiset.cxx cint/lib/dll_stl/rootcint_map.cxx cint/lib/dll_stl/G__cpp_list.o metautils/src/stlLoader_list.cc cint/lib/dll_stl/G__cpp_map.o metautils/src/stlLoader_multimap.cc cint/lib/dll_stl/G__cpp_map2.o cint/lib/dll_stl/rootcint_list.cxx cint/lib/dll_stl/G__cpp_stack.o cint/lib/dll_stl/rootcint_multimap.cxx cint/lib/dll_stl/G__cpp_exception.o cint/lib/dll_stl/G__cpp_queue.o cint/lib/dll_stl/rootcint_multimap2.cxx cint/lib/dll_stl/G__cpp_set.o metautils/src/stlLoader_valarray.cc cint/lib/G__c_stdfunc.o cint/lib/dll_stl/G__cpp_multimap.o cint/lib/dll_stl/G__cpp_deque.o cint/lib/dll_stl/G__cpp_valarray.o cint/lib/dll_stl/G__cpp_vector.o cint/lib/dll_stl/G__cpp_multimap2.o cint/lib/dll_stl/G__cpp_vectorbool.o metautils/src/stlLoader_deque.cc metautils/src/stlLoader_vector.cc cint/lib/dll_stl/rootcint_map2.cxx metautils/src/stlLoader_multimap2.cc metautils/src/stlLoader_map2.cc

May I suggest to fix the installation of a plain ROOT first and later play with qt and all the additional stuff?

Maybe someone of the ROOT team can help you?

Luigi
PS: are you sure you are not mixing binaries from different compiler/libc/kernel/etc ?

PS2: maybe you can try something like ./configure --disable-cern
:question:

First of all I suggest to start from version 5.20

Rene

[quote=“brun”]First of all I suggest to start from version 5.20

Rene[/quote]

5.20 still gives error in about the same place :cry:

Install roots wrapper.
bin/rmkdepend -R -fmain/src/h2root.d -Y -w 1000 -- -pipe -m32 -Wall -W -Woverloaded-virtual -fPIC -Iinclude  -pthread -D__cplusplus -- main/src/h2root.cxx
g++ -O2 -pipe -m32 -Wall -W -Woverloaded-virtual -fPIC -Iinclude  -pthread  -o main/src/h2root.o -c main/src/h2root.cxx
g++ -m32 -O2  -o bin/h2root main/src/h2root.o  \
                   -Llib -lCore -lCint -lRIO -lNet -lHist -lGraf -lGraf3d -lGpad -lTree -lMatrix -lMathCore -lThread lib/libminicern.so \
                   /usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../libfrtbegin.a /usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../libg2c.so -lnsl -lm -ldl  -pthread -rdynamic
g77 -O2 -m32 -fPIC -o main/src/g2root.o -c main/src/g2root.f
g77 -m32 -O2  -o bin/g2root main/src/g2root.o \
                   -Llib lib/libminicern.so \
                   /usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../libfrtbegin.a /usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../libg2c.so -lnsl -lm -ldl  -pthread -rdynamic
/usr/lib/gcc-lib/i586-suse-linux/3.3.5/../../../../i586-suse-linux/bin/ld: cannot find -lgcc_s
make: *** [bin/g2root] Error 1

Seems like a library in my distro is not liked by the root compilation process. Any pointer as to which library I might need to update/change in my openSUSE?

You should have libgcc_s somewhere on your box, this is what I have:

(pcsalo) [137] locate libgcc_s
/lib/libgcc_s-4.1.2-20080102.so.1
/lib/libgcc_s.so.1
/lib64/libgcc_s-4.1.2-20080102.so.1
/lib64/libgcc_s.so.1
/opt/alien/x86_64-unknown-linux-gnu/3.2.3/lib64/libgcc_s.so
/opt/alien/x86_64-unknown-linux-gnu/3.2.3/lib64/libgcc_s.so.1
/usr/lib/gcc/x86_64-redhat-linux/3.4.6/libgcc_s.so
/usr/lib/gcc/x86_64-redhat-linux/3.4.6/libgcc_s_32.so
/usr/lib/gcc/x86_64-redhat-linux/4.1.1/libgcc_s.so
/usr/lib/gcc/x86_64-redhat-linux/4.1.1/32/libgcc_s.so

Cheers, Fons,

Yes I do have gcc_s:
/usr/lib/gcc/i586-suse-linux/4.1.2/libgcc_s.so

but I tried putting the path (minus the name of course) in LD_LIBRARY_PATH and also tried editing the makefile by hand to include the path, but g77 (I guess the fortran compiler?) does not seem to find it. Is there anyway to tell g77 where to find the library?

It looks like your g77 (3.3.5) is not compatible with your gcc (4.1.2). Try install gfortran that comes with gcc.

Cheers, Fons.