Cannot extract standard library include paths at ROOT startup

Hello everyone,

After upgrading to Ubuntu 16.10 from 16.04, I’ve run into the following issue with ROOT 6.08/04 and cling. I get the following message upon starting ROOT.

$ root
ERROR in cling::CIFactory::createCI(): cannot extract standard library include paths!
Invoking:
  LC_ALL=C g++-5  -O2 -DNDEBUG -xc++ -E -v /dev/null 2>&1 >/dev/null | awk '/^#include </,/^End of search/{if (!/^#include </ && !/^End of search/){ print }}' | GREP_OPTIONS= grep -E "(c|g)\+\+"
Results was:
With exit code 256
input_line_1:1:10: fatal error: file
      '/usr/lib/gcc/x86_64-linux-gnu/6.2.0/../../../../include/c++/6.2.0/new'
      modified since it was first processed
#include <new>
         ^
   ------------------------------------------------------------
  | Welcome to ROOT 6.08/04                http://root.cern.ch |
  |                               (c) 1995-2016, The ROOT Team |
  | Built for linuxx8664gcc                                    |
  | From tag v6-08-04, 13 January 2017                         |
  | Try '.help', '.demo', '.license', '.credits', '.quit'/'.q' |
   ------------------------------------------------------------

root [0]

And then upon calling a TBrowser, I get

root [0] new TBrowser
IncrementalExecutor::executeFunction: symbol '_ZN5cling7runtime6gClingE' unresolved while linking [cling interface function]!
You are probably missing the definition of cling::runtime::gCling
Maybe you need to load the corresponding shared library?

I’m grabbing my installation from the Ubuntu 16 binary, and I’ve installed/reinstalled the required and optional packages to no avail. My issue is related to other problems with cling/standard-library that I’ve seen on this forum, but I can’t quite find the solution specific to mine.

Thanks in advance,
Ian

Hi Ian,

the error makes a lot of sense. During the distribution upgrade, the header files of the stl changed (for good) as probably the compiler did: one sees for example that the invocation done internally by ROOT is g++5.
Could you rebuild ROOT?

Cheers,
Danilo

Ahh yes! That worked. I’ve always shied away from building from source if a binary exists, but I guess I know what to do now if I see library issues crop up between releases.

Thanks!
Ian

Hi Ian,

let us know how it goes if you have any problem.

Cheers,
Danilo