Compilation of rootv6 fails - stdarg.h not found

Hello dear root people,

I am trying to compile rootv6-02 on my Suse 13.1 machine. But unfortunately the compilation fails with the following error message:

ERROR in cling::CIFactory::createCI():
  resource directory /usr/local/etc/root/cling/lib/clang/3.6.0 not found!
In file included from input_line_3:2:
In file included from /usr/include/c++/4.8/string:40:
In file included from /usr/include/c++/4.8/bits/char_traits.h:40:
In file included from /usr/include/c++/4.8/bits/postypes.h:40:
In file included from /usr/include/c++/4.8/cwchar:44:
/usr/include/wchar.h:39:11: fatal error: 'stdarg.h' file not found
# include <stdarg.h>
          ^
lookup.type.by.name.file:1:1: error: unknown type name 'Double32_t'
Double32_t

I located stdarg.h to be in

/home/webert/Software/Root/root-5.34/cint/cint/include/stdarg.h
/home/webert/Software/ilcsoft/v01-17-03/root/5.34.05/cint/cint/include/stdarg.h
/home/webert/Software/ilcsoft/v01-17-05/root/5.34.05/cint/cint/include/stdarg.h
/home/webert/Xilinx/14.7/ISE_DS/EDK/gnu/arm/lin/arm-xilinx-eabi/include/c++/4.7.3/tr1/stdarg.h
/home/webert/Xilinx/14.7/ISE_DS/EDK/gnu/arm/lin/arm-xilinx-linux-gnueabi/include/c++/4.7.3/tr1/stdarg.h
/home/webert/Xilinx/14.7/ISE_DS/EDK/gnu/arm/lin/lib/gcc/arm-xilinx-eabi/4.7.3/include/stdarg.h
/home/webert/Xilinx/14.7/ISE_DS/EDK/gnu/arm/lin/lib/gcc/arm-xilinx-linux-gnueabi/4.7.3/include/stdarg.h
/home/webert/Xilinx/14.7/ISE_DS/EDK/gnu/microblaze/lin/lib/gcc/microblaze-xilinx-elf/4.6.4/include/stdarg.h
/home/webert/Xilinx/14.7/ISE_DS/EDK/gnu/microblaze/lin/microblaze-xilinx-elf/include/c++/4.6.4/tr1/stdarg.h
/home/webert/Xilinx/14.7/ISE_DS/EDK/gnu/microblaze/linux_toolchain/lin32_be/lib/gcc/microblaze-xilinx-linux-gnu/4.6.4/include/stdarg.h
/home/webert/Xilinx/14.7/ISE_DS/EDK/gnu/microblaze/linux_toolchain/lin32_be/microblaze-xilinx-linux-gnu/include/c++/4.6.4/tr1/stdarg.h
/home/webert/Xilinx/14.7/ISE_DS/EDK/gnu/microblaze/linux_toolchain/lin32_le/lib/gcc/microblazeel-xilinx-linux-gnu/4.6.4/include/stdarg.h
/home/webert/Xilinx/14.7/ISE_DS/EDK/gnu/microblaze/linux_toolchain/lin32_le/microblazeel-xilinx-linux-gnu/include/c++/4.6.4/tr1/stdarg.h
/home/webert/Xilinx/14.7/ISE_DS/EDK/gnu/microblaze/linux_toolchain/lin64_be/lib/gcc/microblaze-xilinx-linux-gnu/4.6.4/include/stdarg.h
/home/webert/Xilinx/14.7/ISE_DS/EDK/gnu/microblaze/linux_toolchain/lin64_be/microblaze-xilinx-linux-gnu/include/c++/4.6.4/tr1/stdarg.h
/home/webert/Xilinx/14.7/ISE_DS/EDK/gnu/microblaze/linux_toolchain/lin64_le/lib/gcc/microblazeel-xilinx-linux-gnu/4.6.4/include/stdarg.h
/home/webert/Xilinx/14.7/ISE_DS/EDK/gnu/microblaze/linux_toolchain/lin64_le/microblazeel-xilinx-linux-gnu/include/c++/4.6.4/tr1/stdarg.h
/home/webert/Xilinx/14.7/ISE_DS/EDK/gnu/powerpc-eabi/lin/lib/gcc/powerpc-eabi/4.1.1/include/stdarg.h
/home/webert/Xilinx/14.7/ISE_DS/EDK/gnu/powerpc-eabi/lin/lib/gcc/powerpc-eabi/4.1.1/install-tools/include/stdarg.h
/opt/Qt/Tools/QtCreator/share/qtcreator/cplusplus/clang/3.4/include/stdarg.h
/usr/include/c++/4.8/tr1/stdarg.h
/usr/lib64/gcc/x86_64-suse-linux/4.8/include/cross-stdarg.h
/usr/lib64/gcc/x86_64-suse-linux/4.8/include/stdarg.h
/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.3-hammer/include/stdarg.h
/usr/local/lib/root/cint/cint/include/stdarg.h

I am using gcc-4.8 for compilation. Does anyone know a solution. Please let me know if you need further information.

Hello,

ROOT6 requires at least gcc 4.8.
root.cern.ch/drupal/content/build-prerequisites

Best,
Danilo

Which I am using according to:

gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib64/gcc/x86_64-suse-linux/4.8/lto-wrapper
Target: x86_64-suse-linux
Configured with: ../configure --prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64 --enable-languages=c,c++,objc,fortran,obj-c++,java,ada --enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.8 --enable-ssp --disable-libssp --disable-plugin --with-bugurl=http://bugs.opensuse.org/ --with-pkgversion='SUSE Linux' --disable-libgcj --disable-libmudflap --with-slibdir=/lib64 --with-system-zlib --enable-__cxa_atexit --enable-libstdcxx-allocator=new --disable-libstdcxx-pch --enable-version-specific-runtime-libs --enable-linker-build-id --program-suffix=-4.8 --enable-linux-futex --without-system-libunwind --with-arch-32=i586 --with-tune=generic --build=x86_64-suse-linux
Thread model: posix
gcc version 4.8.1 20130909 [gcc-4_8-branch revision 202388] (SUSE Linux) 

Hi,

Is the root configuration picking it up correctly? Are you building with CMake?
I was somehow fooled by the display phbb offered of your post: i just saw the 4.7 paths, good that you have the compiler at disposal! :slight_smile:

Best,
Danilo

Hi,

Up to now I used configure to build. I tried Cmake and there I do not get the “missing stdarg.h” stuff.
Instead I get a segfault when it tries to build/run the hsimple.root in the tutorials.

Thanks for the help so far.

Hi,

I have exactly the same problem. Thus it does not seem to be a problem related to the system of ToBi314 but something more general.

I am using the Ubuntu 14.04 and gcc 4.8.

Ciao

Hi,

could you paste the exact cmake/configure line and the result of it?
This is one of the platforms tested in the root integration builds: I tend to exclude a “general issue” with (k)ubuntu.

Cheers,
Danilo

The line to start configure was: ./configure --all --prefix=/software/root/

And I added as attachment the config log file.

I am asking myself if this problem is related to the fact that I do not install it at the standard location.

Here also the error message:

==> lib/libRHTTP.so done

Generating PCH for core/base core/thread io/io math/mathcore net/net math/matrix hist/hist tree/tree graf2d/graf graf2d/gpad gui/gui math/minuit hist/histpainter tree/treeplayer tree/treeviewer math/physics graf2d/postscript core/rint math/smatrix math/smatrix hist/spectrum hist/spectrumpainter gui/fitpanel graf2d/x11 graf2d/x11ttf graf2d/asimage graf2d/asimage math/genvector math/genvector math/minuit2 roofit/roofitcore roofit/roofit roofit/roostats hist/hbook tmva math/genetic

ERROR in cling::CIFactory::createCI():
  resource directory /software//etc/root/cling/lib/clang/3.6.0 not found!
In file included from input_line_3:2:
In file included from /usr/include/c++/4.8/string:40:
In file included from /usr/include/c++/4.8/bits/char_traits.h:40:
In file included from /usr/include/c++/4.8/bits/postypes.h:40:
In file included from /usr/include/c++/4.8/cwchar:44:
/usr/include/wchar.h:39:11: fatal error: 'stdarg.h' file not found
# include <stdarg.h>
          ^
lookup.type.by.name.file:1:1: error: unknown type name 'Double32_t'
Double32_t
^

 *** Break *** segmentation violation
Error in <TUnixSystem::StackTrace> script /software//etc/root/gdb-backtrace.sh is missing
make: *** [etc/allDict.cxx.pch] Error 139

Thanks!
config.txt (353 KB)

Hi,

prefix installation has indeed an issue with 6.02.02.
While waiting for 6.02.03, which will include a fix for this issue and other little improvements, you can give a try to commit aad93c83b3, which fixes the prefix installation issue.
Apologies for the inconvenience and thanks a lot for reporting.

Best,
Danilo

Thanks! I will use 5.34 for the moment. It was just a try.

Ciao

Thorsten

Hi,

I have the same problem (root 6.02.02, debian linux, using configure not cmake). The fix above helps to finish the compilation, but as a result there is 4GB large file allDict.cxx.pch file and 0.5GB large binaries rootcint and rootcling…

Any ideas why is that happening ?
Pavel

PS: I tried with cmake as well, but that crashes (as metioned above) when generating tutorials/hsimple.root:

[ 45%] Generating etc/allDict.cxx.pch
[ 45%] Built target onepcm
Scanning dependencies of target hsimple
[ 45%] Generating tutorials/hsimple.root
Fatal in <TVirtualStreamerInfo::Factory>: Cannot find the plugin handler for TVirtualStreamerInfo! However $ROOTSYS/etc/plugins/TVirtualStreamerInfo is accessible, Check the content of this directory!
aborting
#0  0x00007fed335d814c in __libc_waitpid (pid=19092, stat_loc=stat_loc
entry=0x7fff06001380, options=options
entry=0) at ../sysdeps/unix/sysv/linux/waitpid.c:31
#1  0x00007fed3356218b in do_system (line=<optimized out>) at ../sysdeps/posix/system.c:148
#2  0x00007fed345bdec4 in Exec (shellcmd=<optimized out>, this=<optimized out>) at /home/reznicek/deb/root/install/root-6.02.02/core/unix/src/TUnixSystem.cxx:2069
#3  TUnixSystem::StackTrace (this=0xb589c0) at /home/reznicek/deb/root/install/root-6.02.02/core/unix/src/TUnixSystem.cxx:2297
#4  0x00007fed344e2c7a in DefaultErrorHandler (level=<optimized out>, abort_bool=<optimized out>, location=0x7fed345debc0 "TVirtualStreamerInfo::Factory", msg=0x178de40 "Cannot find the plugin handler for TVirtualStreamerInfo! However $ROOTSYS/etc/plugins/TVirtualStreamerInfo is accessible, Check the content of this directory!") at /home/reznicek/deb/root/install/root-6.02.02/core/base/src/TError.cxx:194
#5  0x00007fed344e26e6 in ErrorHandler(Int_t, const char *, const char *, typedef __va_list_tag __va_list_tag *) (level=level
entry=6000, location=location
entry=0x7fed345debc0 "TVirtualStreamerInfo::Factory", fmt=fmt
entry=0x7fed345deda0 "Cannot find the plugin handler for TVirtualStreamerInfo! However $ROOTSYS/etc/plugins/TVirtualStreamerInfo is accessible, Check the content of this directory!", ap=ap
entry=0x7fff06003558) at /home/reznicek/deb/root/install/root-6.02.02/core/base/src/TError.cxx:249
#6  0x00007fed344e2b32 in Fatal (location=location
entry=0x7fed345debc0 "TVirtualStreamerInfo::Factory", fmt=fmt
entry=0x7fed345deda0 "Cannot find the plugin handler for TVirtualStreamerInfo! However $ROOTSYS/etc/plugins/TVirtualStreamerInfo is accessible, Check the content of this directory!") at /home/reznicek/deb/root/install/root-6.02.02/core/base/src/TError.cxx:345
#7  0x00007fed3456caf7 in TVirtualStreamerInfo::Factory () at /home/reznicek/deb/root/install/root-6.02.02/core/meta/src/TVirtualStreamerInfo.cxx:201
#8  0x00007fed2fff5758 in TCling::LoadPCM (this=this
entry=0xbc8240, pcmFileName=..., headers=headers
entry=0x7fed34be2a00 <(anonymous namespace)::TriggerDictionaryInitialization_libMathCore_Impl()::headers>, triggerFunc=triggerFunc
entry=0x7fed34938df0 <(anonymous namespace)::TriggerDictionaryInitialization_libMathCore_Impl()>) at /home/reznicek/deb/root/install/root-6.02.02/core/meta/src/TCling.cxx:1199
#9  0x00007fed2fff6be5 in TCling::RegisterModule (this=0xbc8240, modulename=<optimized out>, headers=0x7fed34be2a00 <(anonymous namespace)::TriggerDictionaryInitialization_libMathCore_Impl()::headers>, includePaths=<optimized out>, payloadCode=0x7fed349aa070 "\n\n#ifndef G__VECTOR_HAS_CLASS_ITERATOR\n  #define G__VECTOR_HAS_CLASS_ITERATOR 1\n#endif\n\n#define _BACKWARD_BACKWARD_WARNING_H\n#include \"TComplex.h\"\n#include \"TMath.h\"\n#include \"TRandom.h\"\n#include \"TRa"..., fwdDeclsCode=<optimized out>, triggerFunc=0x7fed34938df0 <(anonymous namespace)::TriggerDictionaryInitialization_libMathCore_Impl()>, fwdDeclsArgToSkip=std::vector of length 0, capacity 0, classesHeaders=0x7fed34be44c0 <(anonymous namespace)::TriggerDictionaryInitialization_libMathCore_Impl()::classesHeaders>) at /home/reznicek/deb/root/install/root-6.02.02/core/meta/src/TCling.cxx:1599
#10 0x00007fed3444b917 in TROOT::InitInterpreter (this=0x7fed34899d40 <ROOT::GetROOT1()::alloc>) at /home/reznicek/deb/root/install/root-6.02.02/core/base/src/TROOT.cxx:1721
#11 0x00007fed3444bbf6 in ROOT::GetROOT2 () at /home/reznicek/deb/root/install/root-6.02.02/core/base/src/TROOT.cxx:339
#12 0x00007fed3452772e in TEnv::Getvalue (this=0xb5c740, name=0x7fed345d9225 "Url.Special") at /home/reznicek/deb/root/install/root-6.02.02/core/base/src/TEnv.cxx:449
#13 0x00007fed34527e09 in TEnv::GetValue (this=<optimized out>, name=<optimized out>, dflt=0x7fed345d92a0 "file: rfio: hpss: castor: dcache: dcap:") at /home/reznicek/deb/root/install/root-6.02.02/core/base/src/TEnv.cxx:532
#14 0x00007fed3452dfe6 in TUrl::GetSpecialProtocols () at /home/reznicek/deb/root/install/root-6.02.02/core/base/src/TUrl.cxx:594
#15 0x00007fed3452e545 in TUrl::SetUrl (this=this
entry=0x7fff060040a0, url=url
entry=0x401131 "hsimple.root", defaultIsFile=defaultIsFile
entry=true) at /home/reznicek/deb/root/install/root-6.02.02/core/base/src/TUrl.cxx:144
#16 0x00007fed3452eb8f in TUrl::TUrl (this=0x7fff060040a0, url=0x401131 "hsimple.root", defaultIsFile=<optimized out>) at /home/reznicek/deb/root/install/root-6.02.02/core/base/src/TUrl.cxx:78
#17 0x00007fed35d5a120 in TFile::TFile (this=0x7fff06003eb0, fname1=0x401131 "hsimple.root", option=0x401128 "RECREATE", ftitle=0x401108 "Demo ROOT file with histograms", compress=1) at /home/reznicek/deb/root/install/root-6.02.02/io/io/src/TFile.cxx:205
#18 0x0000000000400d95 in hsimple () at /home/reznicek/deb/root/install/root-6.02.02/test/hsimple.cxx:41
#19 0x00007fed33542b45 in __libc_start_main (main=0x400c50 <main()>, argc=1, argv=0x7fff060042d8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff060042c8) at libc-start.c:287
#20 0x0000000000400c7e in _start ()
Aborted
CMakeFiles/hsimple.dir/build.make:51: recipe for target 'tutorials/hsimple.root' failed
make[2]: *** [tutorials/hsimple.root] Error 134
CMakeFiles/Makefile2:158: recipe for target 'CMakeFiles/hsimple.dir/all' failed
make[1]: *** [CMakeFiles/hsimple.dir/all] Error 2
Makefile:137: recipe for target 'all' failed
make: *** [all] Error 2

Hello Pavel,

the numbers you cite for the size of pch and rootcling executable are a bit off.
For a debug buid, llvm in Release+DebugInfo, one gets 90MB for the pch and for rootcling itself.
What were your config parameters?

Danilo

Hello Danilo,

the config.log is attached

Pavel
config.log.txt (263 KB)

Had the same problem here. This is not the first time the prefix installation has been broken. It’s probably worth including a test of a prefix installation in the ROOT test suite that is (hopefully) run before releasing a new tag.

Hi,

this is just a late confirmation that the complation problems mentioned above were fixed for me in the ROOT version 6.02.03. Concerning the large size of the rootcling and allDict.cxx.pch files, it was caused by ‘-g’ comilation flag used in debian scripts when building a package.

Cheers,
Pavel