Using root with muparser

muParser is library out there for parsing mathematical expression. When I compile a program with Root and qt, it works fine; but as soon as I added the files for muparser in the makefile (not even using/including it anywhere), the program fails with segmentation error:

*** Break *** segmentation violation
Using host libthread_db library “/lib64/libthread_db.so.1”.
Attaching to program: /proc/19449/exe, process 19449
[Thread debugging using libthread_db enabled]
[New Thread 0xf53296d0 (LWP 19449)]

warning: Lowest section in system-supplied DSO at 0xffffe000 is .hash at ffffe0b4
0xffffe410 in __kernel_vsyscall ()
#1 0xf5627123 in waitpid () from /lib/libc.so.6
#2 0xf55cfb5b in ?? () from /lib/libc.so.6
#3 0xf56d950d in system () from /lib/libpthread.so.0
#4 0xf796e299 in TUnixSystem::Exec ()
from /lxdata/home1/cossavel/root_5.14_00f/lib/libCore.so
#5 0xf796e714 in TUnixSystem::StackTrace ()
from /lxdata/home1/cossavel/root_5.14_00f/lib/libCore.so
#6 0xf796c723 in TUnixSystem::DispatchSignals ()
from /lxdata/home1/cossavel/root_5.14_00f/lib/libCore.so
#7 0xf796a80b in SigHandler ()
from /lxdata/home1/cossavel/root_5.14_00f/lib/libCore.so
#8 0xf7970935 in sighandler ()
from /lxdata/home1/cossavel/root_5.14_00f/lib/libCore.so
#9
#10 0xf56076cc in memcpy () from /lib/libc.so.6
#11 0xf552f363 in std::string::_Rep::_M_clone () from /usr/lib/libstdc++.so.5
#12 0xf552f50b in std::string::assign () from /usr/lib/libstdc++.so.5
#13 0xf552f554 in std::string::operator= () from /usr/lib/libstdc++.so.5
#14 0xf78ed3d6 in std::basic_stringbuf<char, std::char_traits, std::allocator >::overflow ()
from /lxdata/home1/cossavel/root_5.14_00f/lib/libCore.so
#15 0xf552e35a in std::basic_streambuf<char, std::char_traits >::xsputn
() from /usr/lib/libstdc++.so.5
#16 0xf5520fb2 in std::operator<< <char, std::char_traits, std::allocator > () from /usr/lib/libstdc++.so.5
#17 0xf798a207 in TClassEdit::ResolveTypedef ()
from /lxdata/home1/cossavel/root_5.14_00f/lib/libCore.so
#18 0xf7877e22 in TROOT::GetClass ()
from /lxdata/home1/cossavel/root_5.14_00f/lib/libCore.so
#19 0xf78dd66d in (anonymous namespace)::TInfoNode::Update ()
from /lxdata/home1/cossavel/root_5.14_00f/lib/libCore.so
#20 0xf78dbffd in TCint::UpdateClassInfo ()
from /lxdata/home1/cossavel/root_5.14_00f/lib/libCore.so
#21 0xf78d701a in TCint_UpdateClassInfo ()
from /lxdata/home1/cossavel/root_5.14_00f/lib/libCore.so
#22 0xf7285b64 in G__get_linked_tagnum ()
from /lxdata/home1/cossavel/root_5.14_00f/lib/libCint.so
#23 0xf7807ca4 in G__cpp_setup_tagtableManualBase4 ()
from /lxdata/home1/cossavel/root_5.14_00f/lib/libCore.so
#24 0xf7807d72 in G__cpp_setupManualBase4 ()
from /lxdata/home1/cossavel/root_5.14_00f/lib/libCore.so
#25 0xf7277497 in G__call_setup_funcs ()
from /lxdata/home1/cossavel/root_5.14_00f/lib/libCint.so
#26 0xf7807f27 in G__cpp_setup_initManualBase4::G__cpp_setup_initManualBase4 ()
from /lxdata/home1/cossavel/root_5.14_00f/lib/libCore.so
#27 0xf7807dd5 in __static_initialization_and_destruction_0 ()
from /lxdata/home1/cossavel/root_5.14_00f/lib/libCore.so
#28 0xf7807e37 in global constructors keyed to G__set_cpp_environmentManualBase4 () from /lxdata/home1/cossavel/root_5.14_00f/lib/libCore.so
#29 0xf7cce7b7 in __do_global_ctors_aux ()
from /lxdata/home1/cossavel/root_5.14_00f/lib/libCore.so
#30 0xf77e8129 in _init ()
from /lxdata/home1/cossavel/root_5.14_00f/lib/libCore.so
#31 0xf7f01b40 in ?? () from /lib/ld-linux.so.2
#32 0x00000001 in ?? ()
#33 0xfff3c81c in ?? ()
#34 0x00000140 in ?? ()
#35 0x00000000 in ?? ()
The program is running. Quit anyway (and detach it)? (y or n) [answered Y; input not from terminal]
Detaching from program: /proc/19449/exe, process 19449

Any ideas as to where the problem may come? muParser seems to be a mature project and I don’t know why just linking the library will break the root-qt program.

Thanks.

Hi,

You might be tickling an older bug in ROOT. Would be able to try with a more recent version of ROOT (5.18 or above)?

Cheers,
Philippe.

I wish I can! Root 5.18 does not compile on my computer at all (failed with this: 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), and on the other computer where root successfully compiled, after adding the qt layer, root 5.18 does not compile either. And 5.18 is the latest I can go because I need the qt3 support (I read somewhere that qt3 support will be dropped by 5.20). Is there other ways either I can get the newer version of root sucessefully compiling or somehow deal with root 5.14?

Thanks again.

What is the problem in compiling the latest versions of ROOT on your system?
Could you identify your parameters? (OS, compiler version, etc)?

We are dropping support for the old obsolete QT3 libraries. Only QT4 is supported.
The reason is that QT3 and QT4 are incompatible and imply changes in the build procedure.
Also note that future of QT is uncertain since the acquisition of Trolltech by Nokia.
No problems in the coming two years, but it is not clear what is going to happen later.

Rene

The error with compiling root 5.18 is 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)

gcc version 4.1.2 20061115 (prerelease) (SUSE Linux)
(Using built-in specs.
Target: i586-suse-linux
Configured with: …/configure --enable-threads=posix --prefix=/usr --with-local-prefix=/usr/local --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib --libexecdir=/usr/lib --enable-languages=c,c++,objc,fortran,obj-c++,java,ada --enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.1.2 --enable-ssp --disable-libssp --disable-libgcj --with-slibdir=/lib --with-system-zlib --enable-shared --enable-__cxa_atexit --enable-libstdcxx-allocator=new --program-suffix=-4.1 --enable-version-specific-runtime-libs --without-system-libunwind --with-cpu=generic --host=i586-suse-linux
Thread model: posix)

openSUSE 10.2

root configured with just --enable-qt

I had a lots of problem with trying to combine root and qt4, and after almost a week trying to make sense of where the problems are (which are everywhere…) I gave up and use qt3 which works, although most of my code now can be quite easily port to qt4 if I got qt4 to work with root.

This is the first time I heard about the acquisition of Trolltech by Nokia! At least whatever version of qt I use for now should be still okay as open source, if I understand the licensing terms correctly.

Can you run root.exe/ Do you get the prompt?
Do you still get problems when configuring without Qt?
Did you install Qt4 with thread support?

Yes, in principle the agreement is that a GPL like license will continue to be available.
Past experience with similar deals indicate problems (maintenance or license) after a few years.

Rene

[quote=“scolex”]
openSUSE 10.2

root configured with just --enable-qt

I had a lots of problem with trying to combine root and qt4, and after almost a week trying to make sense of where the problems are (which are everywhere…) I gave up and use qt3 which works, although most of my code now can be quite easily port to qt4 if I got qt4 to work with root.
[/quote]Can you send the detail information about your troubles to
lists.bnl.gov/mailman/listinfo/qt-root-l
Can you try the script, described with
root.cern.ch/phpBB2/viewtopic.php?p=28125

[code]#######################################################

This macro tries to install a complete ROOT + QT + QTROOT(cvs) + COIN3D

build environment.

Original instructions here: http://root.bnl.gov/QtRoot/How2Install4Unix.html

the COMPLETE stuff is installed in the current working directory.

so you can also test different versions if you feel adventurous…

you will need:

- curl and/or wget to download the Qt and ROOT files.

- svn to check out the Coin3D package

- cvs to check out the QtRoot package

you should read also ALL the various licenses.

about 100’ on a AMD 3800+, ~3 Gb disk space.

#######################################################

Author: L.Bardelli [ bardelli@fi.infn.it ]

#######################################################[/code]to see whether it helps. You can download it from root.bnl.gov/QtRoot/INSTALL_QTROOT.sh

This is true trolltech.com/28012008/28012008-letter
and
trolltech.com/company

trolltech.com/28012008/28012008

As Rene said, there is no reliable information that might have allowed to suggest the Qt licensing is to be changed. The only visible side effect of that merge is that Qt4 became free for Windows platfrom too. See qtwin.sourceforge.net/qt3-win32/index.php

[quote=“scolex”]
root configured with just --enable-qt
[/quote]Your ROOT is 5.14. This is where your problems came from.
There are two ways to resolve the issue:[ul] 1. Do NOT use --enable-qt AND complement your existing ROOT 5.14 installation with QtRoot plugin from BNL CVS HEAD repository
2. Use the script I have mentioned with my previous post to re-install everything from the scratch consistently. “BY default” script will install ROOT 5.18 and Qt 4.4.0.
3. Do not fight alone. Send me any your trouble right away. [/ul]

[quote=“brun”]. . .
Did you install Qt4 with thread support? . . .
[/quote]Just for record. There is no way to install Qt4 with no thread support. One can install Qt3 either with thread support or with no thread support. Qt4 supports the threads always.

[code]./configure --help

This is the Qt/X11 Open Source Edition.

Usage: configure [-prefix ] [-prefix-install] [-bindir ] [-libdir ]
[-docdir ] [-headerdir ] [-plugindir ] [-datadir ]
[-translationdir ] [-sysconfdir ] [-examplesdir ]
[-demosdir ] [-buildkey ] [-release] [-debug]
[-debug-and-release] [-shared] [-static] [-no-fast] [-fast] [-no-largefile]
[-largefile] [-no-exceptions] [-exceptions] [-no-accessibility]
[-accessibility] [-no-stl] [-stl] [-no-sql-] [-sql-]
[-plugin-sql-] [-system-sqlite] [-no-qt3support] [-qt3support]
[-platform] [-D ] [-I ] [-L ] [-help]
[-qt-zlib] [-system-zlib] [-no-gif] [-qt-gif] [-no-libtiff] [-system-libtiff]
[-no-libpng] [-qt-libpng] [-system-libpng] [-no-libmng] [-qt-libmng]
[-system-libmng] [-no-libjpeg] [-qt-libjpeg] [-system-libjpeg] [-make ]
[-no-make ] [-R ] [-l ] [-no-rpath] [-rpath] [-continue]
[-verbose] [-v] [-silent] [-no-nis] [-nis] [-no-cups] [-cups] [-no-iconv]
[-iconv] [-no-pch] [-pch] [-no-dbus] [-dbus] [-dbus-linked]
[-no-separate-debug-info] [-no-mmx] [-no-3dnow] [-no-sse] [-no-sse2]
[-qtnamespace ] [-separate-debug-info] [-armfpa]
[-no-optimized-qmake] [-optimized-qmake] [-no-xmlpatterns] [-xmlpatterns]
[-no-phonon] [-phonon] [-no-svg] [-svg] [-no-webkit] [-webkit]

    [additional platform specific options (see below)]

Installation options:

These are optional, but you may specify install directories.

-prefix <dir> ...... This will install everything relative to <dir>
                     (default /usr/local/Trolltech/Qt-4.4.0)
  • -prefix-install … Force a sandboxed “local” installation of
    Qt. This will install into
    /usr/local/Trolltech/Qt-4.4.0, if this option is
    disabled then some platforms will attempt a
    "system" install by placing default values to
    be placed in a system location other than
    PREFIX.

You may use these to separate different parts of the install:

-bindir <dir> ......... Executables will be installed to <dir>
                        (default PREFIX/bin)
-libdir <dir> ......... Libraries will be installed to <dir>
                        (default PREFIX/lib)
-docdir <dir> ......... Documentation will be installed to <dir>
                        (default PREFIX/doc)
-headerdir <dir> ...... Headers will be installed to <dir>
                        (default PREFIX/include)
-plugindir <dir> ...... Plugins will be installed to <dir>
                        (default PREFIX/plugins)
-datadir <dir> ........ Data used by Qt programs will be installed to <dir>
                        (default PREFIX)
-translationdir <dir> . Translations of Qt programs will be installed to <dir>
                        (default PREFIX/translations)
-sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
                        (default PREFIX/etc/settings)
-examplesdir <dir> .... Examples will be installed to <dir>
                        (default PREFIX/examples)
-demosdir <dir> ....... Demos will be installed to <dir>
                        (default PREFIX/demos)

You may use these options to turn on strict plugin loading.

-buildkey <key> .... Build the Qt library and plugins using the specified
                     <key>.  When the library loads plugins, it will only
                     load those that have a matching key.

Configure options:

The defaults (*) are usually acceptable. A plus (+) denotes a default value
that needs to be evaluated. If the evaluation succeeds, the feature is
included. Here is a short explanation of each option:

  • -release … Compile and link Qt with debugging turned off.
    -debug … Compile and link Qt with debugging turned on.
    -debug-and-release . Compile and link two versions of Qt, with and without
    debugging turned on (Mac only).

  • -shared … Create and use shared Qt libraries.
    -static … Create and use static Qt libraries.

  • -no-fast … Configure Qt normally by generating Makefiles for all
    project files.
    -fast … Configure Qt quickly by generating Makefiles only for
    library and subdirectory targets. All other Makefiles
    are created as wrappers, which will in turn run qmake.

    -no-largefile … Disables large file support.

  • -largefile … Enables Qt to access files larger than 4 GB.

    -no-exceptions … Disable exceptions on compilers that support it.

  • -exceptions … Enable exceptions on compilers that support it.

    -no-accessibility … Do not compile Accessibility support.

  • -accessibility … Compile Accessibility support.

    -no-stl … Do not compile STL support.

  • -stl … Compile STL support.

    -no-sql- … Disable SQL entirely.
    -qt-sql- … Enable a SQL in the QtSql library, by default
    none are turned on.
    -plugin-sql- Enable SQL as a plugin to be linked to
    at run time.

                     Possible values for <driver>:
                     [  ibase mysql odbc psql sqlite sqlite2 ]
    

    -system-sqlite … Use sqlite from the operating system.

    -no-qt3support … Disables the Qt 3 support functionality.

  • -qt3support … Enables the Qt 3 support functionality.

    -no-xmlpatterns… Do not build the QtXmlPatterns module.

  • -xmlpatterns… Build the QtXmlPatterns module.
    QtXmlPatterns is built if a decent C++ compiler
    is used and exceptions are enabled.

    -no-phonon … Do not build the Phonon module.

  • -phonon … Build the Phonon module.
    Phonon is built if a decent C++ compiler is used.

    -no-svg … Do not build the SVG module.

  • -svg … Build the SVG module.

    -no-webkit … Do not build the WebKit module.

  • -webkit … Build the WebKit module.
    WebKit is built if a decent C++ compiler is used.

    -platform target … The operating system and compiler you are building
    on (linux-g++).

                     See the README file for a list of supported
                     operating systems and compilers.
    

    -no-mmx … Do not compile with use of MMX instructions.
    -no-3dnow … Do not compile with use of 3DNOW instructions.
    -no-sse … Do not compile with use of SSE instructions.
    -no-sse2 … Do not compile with use of SSE2 instructions.

    -qtnamespace Wraps all Qt library code in ‘namespace {…}’.
    -qtlibinfix Renames all libQt*.so to libQt*.so.

    -D … Add an explicit define to the preprocessor.
    -I … Add an explicit include path.
    -L … Add an explicit library path.

    -help, -h … Display this information.

Third Party Libraries:

-qt-zlib ........... Use the zlib bundled with Qt.
  • -system-zlib … Use zlib from the operating system.
    See http://www.gzip.org/zlib

    -no-gif … Do not compile the plugin for GIF reading support.

  • -qt-gif … Compile the plugin for GIF reading support.
    See also src/plugins/imageformats/gif/qgifhandler.h

    -no-libtiff … Do not compile the plugin for TIFF support.
    -qt-libtiff … Use the libtiff bundled with Qt.

  • -system-libtiff … Use libtiff from the operating system.
    See http://www.libtiff.org

    -no-libpng … Do not compile in PNG support.
    -qt-libpng … Use the libpng bundled with Qt.

  • -system-libpng … Use libpng from the operating system.
    See http://www.libpng.org/pub/png

    -no-libmng … Do not compile the plugin for MNG support.
    -qt-libmng … Use the libmng bundled with Qt.

  • -system-libmng … Use libmng from the operating system.
    See http://www.libmng.com

    -no-libjpeg … Do not compile the plugin for JPEG support.
    -qt-libjpeg … Use the libjpeg bundled with Qt.

  • -system-libjpeg … Use libjpeg from the operating system.
    See http://www.ijg.org

    -no-openssl … Do not compile support for OpenSSL.

  • -openssl … Enable run-time OpenSSL support.
    -openssl-linked … Enabled linked OpenSSL support.

Additional options:

-make <part> ....... Add part to the list of parts to be built at make time.
                     (libs tools examples demos docs)
-nomake <part> ..... Exclude part from the list of parts to be built.

-R <string> ........ Add an explicit runtime library path to the Qt
                     libraries.
-l <string> ........ Add an explicit library.

-no-rpath .......... Do not use the library install path as a runtime
                     library path.
  • -rpath … Link Qt libraries and executables using the library
    install path as a runtime library path. Equivalent
    to -R install_libpath

    -continue … Continue as far as possible if an error occurs.

    -verbose, -v … Print verbose information about each step of the
    configure process.

    -silent … Reduce the build output so that warnings and errors
    can be seen more easily.

  • -no-optimized-qmake … Do not build qmake optimized.
    -optimized-qmake … Build qmake optimized.

    -no-nis … Do not compile NIS support.

  • -nis … Compile NIS support.

    -no-cups … Do not compile CUPS support.

  • -cups … Compile CUPS support.

    -no-iconv … Do not compile support for iconv(3).

  • -iconv … Compile support for iconv(3).

    -no-pch … Do not use precompiled header support.

  • -pch … Use precompiled header support.

    -no-dbus … Do not compile the QtDBus module.

  • -dbus … Compile the QtDBus module and dynamically load libdbus-1.
    -dbus-linked… Compile the QtDBus module and link to libdbus-1.

    -reduce-relocations … Reduce relocations in the libraries through extra
    linker optimizations (Qt/X11 and Qt for Embedded Linux only;
    experimental; needs GNU ld >= 2.18).

    -no-separate-debug-info . Do not store debug information in a separate file.

  • -separate-debug-info … Strip debug information into a separate .debug file.

Qt/X11 only:

  • -no-nas-sound … Do not compile in NAS sound support.
    -system-nas-sound … Use NAS libaudio from the operating system.
    See http://radscan.com/nas.html

    -no-opengl … Do not support OpenGL.

  • -opengl … Enable OpenGL support.

    -no-sm … Do not support X Session Management.

  • -sm … Support X Session Management, links in -lSM -lICE.

    -no-xshape … Do not compile XShape support.

  • -xshape … Compile XShape support.
    Requires X11/extensions/shape.h.

    -no-xinerama … Do not compile Xinerama (multihead) support.

  • -xinerama … Compile Xinerama support.
    Requires X11/extensions/Xinerama.h and libXinerama.
    By default, Xinerama support will be compiled if
    available and the shared libraries are dynamically
    loaded at runtime.

    -no-xcursor … Do not compile Xcursor support.

  • -xcursor … Compile Xcursor support.
    Requires X11/Xcursor/Xcursor.h and libXcursor.
    By default, Xcursor support will be compiled if
    available and the shared libraries are dynamically
    loaded at runtime.

    -no-xfixes … Do not compile Xfixes support.

  • -xfixes … Compile Xfixes support.
    Requires X11/extensions/Xfixes.h and libXfixes.
    By default, Xfixes support will be compiled if
    available and the shared libraries are dynamically
    loaded at runtime.

    -no-xrandr … Do not compile Xrandr (resize and rotate) support.

  • -xrandr … Compile Xrandr support.
    Requires X11/extensions/Xrandr.h and libXrandr.

    -no-xrender … Do not compile Xrender support.

  • -xrender … Compile Xrender support.
    Requires X11/extensions/Xrender.h and libXrender

    -no-fontconfig … Do not compile FontConfig (anti-aliased font) support.

  • -fontconfig … Compile FontConfig support.
    Requires fontconfig/fontconfig.h, libfontconfig,
    freetype.h and libfreetype.

    -no-tablet … Do not compile Tablet support.

  • -tablet … Compile Tablet support.
    Requires IRIX with wacom.h and libXi or
    XFree86 with X11/extensions/XInput.h and libXi.

    -no-xkb … Do not compile XKB (X KeyBoard extension) support.

  • -xkb … Compile XKB support.

    -no-glib … Do not compile Glib support.

  • -glib … Compile Glib support.[/code]

[quote=“fine”][quote=“scolex”]
root configured with just --enable-qt
[/quote]Your ROOT is 5.14. This is where your problems came from.
There are two ways to resolve the issue:[ul] 1. Do NOT use --enable-qt AND complement your existing ROOT 5.14 installation with QtRoot plugin from BNL CVS HEAD repository
2. Use the script I have mentioned with my previous post to re-install everything from the scratch consistently. “BY default” script will install ROOT 5.18 and Qt 4.4.0.
3. Do not fight alone. Send me any your trouble right away. [/ul][/quote]

Thanks for the script, but it does not seem to work. It is the root compilation that causes problem, and the same problem as when I tried to compile root:

[code]
g++ -shared -Wl,-soname,libHbook.so -m32 -g -o lib/libHbook.so hbook/src/THbookBranch.o hbook/src/THbookFile.o hbook/src/THbookKey.o hbook/src/THbookTree.o hbook/src/G__Hbook.o hbook/src/hntvar2.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
/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: *** [lib/libHbook.so] Error 1

SOME FATAL ERROR DURING EXECUTION, SORRY…[/code]

Seems to be some library incompatibility between whatever required by root and what I have on my computer…

It looks like you have a bad version of libpacklib (not compiled with -fPIC).
You can complete the installation of ROOT by doing
make -k
instead of make

Rene

[quote=“brun”]It looks like you have a bad version of libpacklib (not compiled with -fPIC).
You can complete the installation of ROOT by doing
make -k
instead of make

Rene[/quote]

I tried make -k, but the error is still there:

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++ -g -pipe -m32 -Wall -W -Woverloaded-virtual -fPIC -Iinclude -pthread -o main/src/h2root.o -c main/src/h2root.cxx g++ -m32 -g -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 -g -fPIC -o main/src/g2root.o -c main/src/g2root.f g++ -m32 -g -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 -g -fPIC -o main/src/g2rootold.o -c main/src/g2rootold.f g++ -m32 -g -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': /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

make -k continues the installation even if an error is detected. Only the failing pieces will be missing. Do you need these failing pieces?

Rene

[quote=“brun”]make -k continues the installation even if an error is detected. Only the failing pieces will be missing. Do you need these failing pieces?

Rene[/quote]

I don’t know whether I need the pieces that do not compile, but even the compiling continues, there are further errors down the line probably coming from the earlier errors, and I don’t think root-qt compiles (I got several help message from qmake during the compilation process, so I guess there is something qmake is expecting but not found).

[quote=“scolex”]… I don’t think root-qt compiles (I got several help message from qmake during the compilation process, so I guess there is something qmake is expecting but not found).[/quote]Did you get the working version ? Can you show us the messages you are speaking about? Normally, QtRoot installation does generate warnings regarding the missed RootCint dictionaries. This is the normal. The dictionaries are not kept in the CVS repository. The script is to create it “on fly” later on. If your concern is such messages they are “good” warnings. You may disregard it.

This is the output from the terminal after the error. I commented out the trap/exit part in the script since it is very annoying that my terminal windows closes every time an error occurs, giving me no time to see what the errors are. Sorry for the lengthy quote…

[code]g++ -m32 -g -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' orstrerror_r’ instead
/cern/pro/lib/libpacklib.a(serror.o): In function sstrerror': serror.c:(.text+0x26): warning:sys_nerr’ is deprecated; use strerror' orstrerror_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 -g -fPIC -o main/src/g2root.o -c main/src/g2root.f
g++ -m32 -g -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' orstrerror_r’ instead
/cern/pro/lib/libpacklib.a(serror.o): In function sstrerror': serror.c:(.text+0x26): warning:sys_nerr’ is deprecated; use strerror' orstrerror_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 -g -fPIC -o main/src/g2rootold.o -c main/src/g2rootold.f
g++ -m32 -g -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' orstrerror_r’ instead
/cern/pro/lib/libpacklib.a(serror.o): In function sstrerror': serror.c:(.text+0x26): warning:sys_nerr’ is deprecated; use strerror' orstrerror_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 cint/lib/dll_stl/G__cpp_multiset.o utils/src/rootcint_tmp.cxx cint/lib/dll_stl/G__cpp_climits.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 metautils/src/stlLoader_map.cc cint/lib/dll_stl/G__cpp_multimap2.o cint/lib/G__c_stdcxxfunc.o cint/lib/G__c_stdcxxfunc.c metautils/src/stlLoader_multiset.cc cint/lib/dll_stl/rootcint_list.cxx cint/lib/dll_stl/G__cpp_complex.o metautils/src/stlLoader_multimap2.cc cint/lib/dll_stl/G__cpp_set.o cint/lib/dll_stl/G__cpp_stdexcept.o 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/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/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/rootcint_set.cxx cint/lib/dll_stl/G__cpp_vector.o metautils/src/stlLoader_deque.cc utils/src/RStl_tmp.cxx cint/lib/dll_stl/G__cpp_vectorbool.o cint/lib/dll_stl/rootcint_map2.cxx metautils/src/stlLoader_valarray.cc metautils/src/stlLoader_vector.cc metautils/src/stlLoader_map2.cc

SOME FATAL ERROR DURING EXECUTION, SORRY…

no prefix - no make install make install
bash: cd: qtRoot/qtgl/qglviewer/QGLViewer: No such file or directory

SOME FATAL ERROR DURING EXECUTION, SORRY…

Usage: qmake [mode] [options] [files]

QMake has two modes, one mode for generating project files based on
some heuristics, and the other for generating makefiles. Normally you
shouldn’t need to specify a mode, as makefile generation is the default
mode for qmake, but you may use this to test qmake on an existing project

Mode:
-project Put qmake into project file generation mode
In this mode qmake interprets files as files to
be built,
defaults to *.c; *.ui; *.y; *.l; *.ts; *.xlf; *.qrc; *.h; *.hpp; *.hh; *.hxx; *.H; *.cpp; *.cc; *.cxx; *.C
-makefile Put qmake into makefile generation mode (default)
In this mode qmake interprets files as project files to
be processed, if skipped qmake will try to find a project
file in your current working directory

Warnings Options:
-Wnone Turn off all warnings
-Wall Turn on all warnings
-Wparser Turn on parser warnings
-Wlogic Turn on logic warnings

Options:

  • You can place any variable assignment in options and it will be *
  • processed as if it was in [files]. These assignments will be parsed *
  • before [files]. *
    -o file Write output to file
    -unix Run in unix mode
    -win32 Run in win32 mode
    -macx Run in Mac OS X mode
    -d Increase debug level
    -t templ Overrides TEMPLATE as templ
    -tp prefix Overrides TEMPLATE so that prefix is prefixed into the value
    -help This help
    -v Version information
    -after All variable assignments after this will be
    parsed after [files]
    -norecursive Don’t do a recursive search
    -recursive Do a recursive search
    -cache file Use file as cache [makefile mode only]
    -spec spec Use spec as QMAKESPEC [makefile mode only]
    -nocache Don’t use a cache file [makefile mode only]
    -nodepend Don’t generate dependencies [makefile mode only]
    -nomoc Don’t generate moc targets [makefile mode only]
    -nopwd Don’t look for files in pwd [project mode only]

SOME FATAL ERROR DURING EXECUTION, SORRY…

make: *** No targets specified and no makefile found. Stop.

SOME FATAL ERROR DURING EXECUTION, SORRY…

make: *** No rule to make target `install’. Stop.

SOME FATAL ERROR DURING EXECUTION, SORRY…

bash: cd: qtRoot: No such file or directory

SOME FATAL ERROR DURING EXECUTION, SORRY…

Usage: qmake [mode] [options] [files]

QMake has two modes, one mode for generating project files based on
some heuristics, and the other for generating makefiles. Normally you
shouldn’t need to specify a mode, as makefile generation is the default
mode for qmake, but you may use this to test qmake on an existing project

Mode:
-project Put qmake into project file generation mode
In this mode qmake interprets files as files to
be built,
defaults to *.c; *.ui; *.y; *.l; *.ts; *.xlf; *.qrc; *.h; *.hpp; *.hh; *.hxx; *.H; *.cpp; *.cc; *.cxx; *.C
-makefile Put qmake into makefile generation mode (default)
In this mode qmake interprets files as project files to
be processed, if skipped qmake will try to find a project
file in your current working directory

Warnings Options:
-Wnone Turn off all warnings
-Wall Turn on all warnings
-Wparser Turn on parser warnings
-Wlogic Turn on logic warnings

Options:

  • You can place any variable assignment in options and it will be *
  • processed as if it was in [files]. These assignments will be parsed *
  • before [files]. *
    -o file Write output to file
    -unix Run in unix mode
    -win32 Run in win32 mode
    -macx Run in Mac OS X mode
    -d Increase debug level
    -t templ Overrides TEMPLATE as templ
    -tp prefix Overrides TEMPLATE so that prefix is prefixed into the value
    -help This help
    -v Version information
    -after All variable assignments after this will be
    parsed after [files]
    -norecursive Don’t do a recursive search
    -recursive Do a recursive search
    -cache file Use file as cache [makefile mode only]
    -spec spec Use spec as QMAKESPEC [makefile mode only]
    -nocache Don’t use a cache file [makefile mode only]
    -nodepend Don’t generate dependencies [makefile mode only]
    -nomoc Don’t generate moc targets [makefile mode only]
    -nopwd Don’t look for files in pwd [project mode only]

SOME FATAL ERROR DURING EXECUTION, SORRY…

make: *** No targets specified and no makefile found. Stop.

SOME FATAL ERROR DURING EXECUTION, SORRY…

make: *** No rule to make target `install’. Stop.

SOME FATAL ERROR DURING EXECUTION, SORRY…

bash: cd: qtRoot/qtExamples/HelloCanvas: No such file or directory

SOME FATAL ERROR DURING EXECUTION, SORRY…

Usage: qmake [mode] [options] [files]

QMake has two modes, one mode for generating project files based on
some heuristics, and the other for generating makefiles. Normally you
shouldn’t need to specify a mode, as makefile generation is the default
mode for qmake, but you may use this to test qmake on an existing project

Mode:
-project Put qmake into project file generation mode
In this mode qmake interprets files as files to
be built,
defaults to *.c; *.ui; *.y; *.l; *.ts; *.xlf; *.qrc; *.h; *.hpp; *.hh; *.hxx; *.H; *.cpp; *.cc; *.cxx; *.C
-makefile Put qmake into makefile generation mode (default)
In this mode qmake interprets files as project files to
be processed, if skipped qmake will try to find a project
file in your current working directory

Warnings Options:
-Wnone Turn off all warnings
-Wall Turn on all warnings
-Wparser Turn on parser warnings
-Wlogic Turn on logic warnings

Options:

  • You can place any variable assignment in options and it will be *
  • processed as if it was in [files]. These assignments will be parsed *
  • before [files]. *
    -o file Write output to file
    -unix Run in unix mode
    -win32 Run in win32 mode
    -macx Run in Mac OS X mode
    -d Increase debug level
    -t templ Overrides TEMPLATE as templ
    -tp prefix Overrides TEMPLATE so that prefix is prefixed into the value
    -help This help
    -v Version information
    -after All variable assignments after this will be
    parsed after [files]
    -norecursive Don’t do a recursive search
    -recursive Do a recursive search
    -cache file Use file as cache [makefile mode only]
    -spec spec Use spec as QMAKESPEC [makefile mode only]
    -nocache Don’t use a cache file [makefile mode only]
    -nodepend Don’t generate dependencies [makefile mode only]
    -nomoc Don’t generate moc targets [makefile mode only]
    -nopwd Don’t look for files in pwd [project mode only]

SOME FATAL ERROR DURING EXECUTION, SORRY…

make: *** No targets specified and no makefile found. Stop.

SOME FATAL ERROR DURING EXECUTION, SORRY…

====================== DONE! =========================

The local debug ROOT copy is Qt-enabled (patched rootrc)

environment variables saved into /tmp/root-compile/set_environment.sh
and /tmp/root-compile/root/bin/set_environment.sh
use it with: source /tmp/root-compile/set_environment.sh
or append it to your .bash_profile

if your shell is csh use /tmp/root-compile/set_environment.csh

====================== BYE BYE! ======================
[/code]

Hello
Thank you very much for your message. I am sorry for the inconvenience.
I think I understand things better now.
That’s the “feature” of the script I had advised you to use. Even though you compile “root” with “make -k” flag the script still terminates the installation. (That’s “by design”). I’ll forward this to the scripts’ authors to adjust / assist you. They did not expect any problem with the very ROOT build.
Mean time you can try to complete the installation
"by hand". To do that you should be able to read the “script” to invoke each of its steps “separately”. You can try to follow the original manual root.bnl.gov/QtRoot/How2Install4 … nstallroot the script was derived from also.

Can we switch this discussion to lists.bnl.gov/mailman/listinfo/qt-root-l ?

[quote=“fine”]
Can we switch this discussion to lists.bnl.gov/mailman/listinfo/qt-root-l ?[/quote]

Sure. I just signed up for the list and hopefully someone will approve me soon so that I can post there.

I tried the steps to compile QtRoot manually, but qmake complains about “QFile::open: No file name specified.” I guess there are some files that are not there because the root compilation is not successful?

[quote=“scolex”][quote=“fine”]Can we switch this discussion to lists.bnl.gov/mailman/listinfo/qt-root-l ?[/quote]Sure. I just signed up for the list and hopefully someone will approve me soon so that I can post there. [/quote]Someone has approved you :wink: You are welcome. [quote=“scolex”]I tried the steps to compile QtRoot manually, but qmake complains about “QFile::open: No file name specified.” I guess there are some files that are not there because the root compilation is not successful?[/quote]This indicates there are several :bulb: Qt3.x Qt4.x versions on your PATH / LD_LIBRARY_PATH and they are messed somehow.Please check. For example try

which qmaketo see where :question: your qmake comes from.

I want to call your attention to the message:

[quote=“scolex”]bash: cd: qtRoot: No such file or directory [/quote]It sounds you (script) did not :imp: check out the QtRoot by some reason. Can you check this (see: INSTALL_QTROOT.sh:207-212) ?