ROOT 6.10/08 on macOS High Sierra compiling macro example

ls

-rw-r--r--  1 root  wheel  1256 Jul 28 17:48 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/stddef.h
-rw-r--r--  2 root  wheel  4498 Aug  9 11:03 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/9.0.0/include/stddef.h
-rw-r--r--  1 root  admin  1256 Jul 28 17:48 /Library/Developer/CommandLineTools/usr/include/c++/v1/stddef.h

cat

/* This file is automatically generated */
#define BUILD_ARCH "macosx64"
#define BUILD_NODE "Darwin macitois22.cern.ch 17.0.0 Darwin Kernel Version 17.0.0: Thu Aug 24 21:48:19 PDT 2017; root:xnu-4570.1.46~2/RELEASE_X86_64 x86_64"
#define CXX "c++"
#define COMPILER "/Library/Developer/CommandLineTools/usr/bin/c++"
#define COMPILERVERS "c++"
#define MAKESHAREDLIB  "cd $BuildDir ; c++ -c $Opt -Wc++11-narrowing -Wsign-compare -Wsometimes-uninitialized -Wconditional-uninitialized -Wheader-guard -Warray-bounds -Wcomment -Wtautological-compare -Wstrncat-size -Wloop-analysis -Wbool-conversion -m64 -pipe -W -Woverloaded-virtual -fsigned-char -fno-common -Qunused-arguments -pthread -std=c++11 -stdlib=libc++ $IncludePath $SourceFiles ; c++ $ObjectFiles -dynamiclib -Wl,-headerpad_max_install_names -m64 -single_module -Wl,-dead_strip_dylibs  $LinkedLibs -o $SharedLib"
#define MAKEEXE "cd $BuildDir ; c++ -c  -Wc++11-narrowing -Wsign-compare -Wsometimes-uninitialized -Wconditional-uninitialized -Wheader-guard -Warray-bounds -Wcomment -Wtautological-compare -Wstrncat-size -Wloop-analysis -Wbool-conversion -m64 -pipe -W -Woverloaded-virtual -fsigned-char -fno-common -Qunused-arguments -pthread -std=c++11 -stdlib=libc++ $IncludePath $SourceFiles; c++ $ObjectFiles  -o $ExeName $LinkedLibs -lm    -ldl"
#define CXXOPT "-O2 -DNDEBUG"
#define CXXDEBUG "-g"
#define ROOTBUILD ""
#define LINKEDLIBS "-L$ROOTSYS/lib -lCore -lRint "
#define INCLUDEPATH "-I$ROOTSYS/include"
#define OBJEXT "o"
#define SOEXT "so"

FWIW, I am tracking this and getting essentially the same output on all tests as @jdalvarez, although my stddef.h is a little more recent, perhaps since I’m using 9.0.1? Could you give us a hint as to what you think the problem might be, so we can investigate a bit more?

So the problem is that the ACLiC command line as

-I"/Library/Developer/CommandLineTools/usr/include/c++/v1" 

on it … rather than

-I"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1"

Cheers,
Philippe.

PS. I will need more information to figure out why.

I get:

$ root.exe -b -l
root [0] .include
-I
/Users/pcanal/build/etc
-I
/Users/pcanal/build/etc/cling
-I
/Users/pcanal/build/include
-I
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1
-resource-dir
/Users/pcanal/build/etc/cling/lib/clang/5.0.0
-nostdinc++
-stdlib=libc++
root [1] 

what do you get for the .include command?

$ root.exe -b -l
root [0] .include
-I
/Applications/root_v6.10.08/etc
-I
/Applications/root_v6.10.08/etc/cling
-I
/Applications/root_v6.10.08/include
-I
/Library/Developer/CommandLineTools/usr/include/c++/v1
-resource-dir
/Applications/root_v6.10.08/etc/cling/lib/clang/3.9.0
-nostdinc++
-stdlib=libc++
root [1] 

So this is a problem during cling configuration (it is seemingly picking up the wrong include directory) …

@vvassilev could you take a look?

Thanks,
Philippe.

@pcanal, do you also see this if you install from a downloaded tarball?

the 6.10.08 distribution doesn’t have a directory for 5.0.0, but just 3.9.0.

euphrates% ls /Users/steinber/root/root_v6.10.08/etc/cling/lib/clang
3.9.0

Good point. I only tried a build from scratch.

OK - i just built 6.11.03 in my current environment and everything is fine (so I can get back to work). But i presume there are many others who are downloading the pro tarball and having similar issues. It’s nice to have a 300MB root installation vs. a 3.3GB install from source!

There is indeed some odd that we need to fix with that tar ball (i.e I see it too).

Cheers,
Philippe.

So, as I understand the only solution is to build the current version, not the tar.gz nor the dmg

@RobS after you update your XCode, Can you compile macros (macro1.C for example) without issues?

Hi @jdalvarez,

I see the same problem as you. When I try

$ root
root [0] .L macro1.C+

I receive the same errors as you did in your first post. It seems I was too quick to label this as solved in my thread.

So the .dmg is not usable in macOS High Sierra? We have no option but to build from source?

Thank you @RobS for reproducing the problem.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.

@vvassilev Did you get a change to take a look a this problem? (I.e. the dmg is not useable on some user’s system because of the include directory found/used by (T)Cling)

@pcanal, is this the zlib issue that we discussed privately or this is another case which is broken on high sierra?

@vvassilev It is slightly different. The zlib issue is break the ROOT build while this one has a successful ROOT build (packaged in the dmg file) that leads to failure when using ACLiC because (likely-cause) Cling remembers the ‘wrong’ system directories as shown in the .include command shown above.

@jdalvarez Just to double check, Did you do a call xcode-install (for the command line tool) after installing the XCode 9 update?

@jdalvarez replied that indeed xcode-install was run on the failing machine.