Root libcppyy3_10.so linking bug

Hi,
If found a root fold bug.

ImportError: dlopen(.../ROOT/install/lib/root/libcppyy3_10.so, 0x0002): Library not loaded: @rpath/libcppyy_backend3_10.so
.../install/lib/root/libcppyy3_10.so
  Reason: tried: '/ROOT/install/lib/root/../lib/root/libcppyy_backend3_10.so' (no such file),

it should be

ROOT/install/lib/root/../root

not

ROOT/install/lib/root/../lib/root

if I set the ROOT library installed directory to lib/root

one can link ../lib to ./lib as temporary method


_ROOT Version:6.24.10
_Platform:macos


Hi @cxwx1 ,

thank you for the report. Could you provide a recipe to reproduce the problem?

Cheers,
Enrico

building root from source with cmake.
default environment

$ mkdir build; cd .
$ cmake ../root ...
$ ccmake .
 CMAKE_INSTALL_INCLUDEDIR         include/root
 CMAKE_INSTALL_LIBDIR             lib/root
 CMAKE_INSTALL_PYTHONDIR          lib/root

so root is install in lib/root
cause the problem.

$ rootbrowse
ImportError: dlopen(.../ROOT/install/lib/root/libcppyy3_10.so
Reason: tried: '.../ROOT/install/lib/root/../lib/root/libcppyy_backend3_10.so'

Hi @cxwx1 ,

sorry for the late reply, very busy days.
I don’t understand whether you are manually modifying some variables via ccmake? Also what does ... stand for in cmake ../root ...? Is the problem still present if you try to build ROOT’s master branch?

cc: @Axel

Cheers,
Enrico

Indeed I remember us fixing an issue with newer macOS and RPATH with libcppyy_backend’s location. Please try with v6.28/00 if possible.

I’ve tried to build 6.28 from sources but:

CMake Error at /Users/hits/software/root_build/AFTERIMAGE-prefix/src/AFTERIMAGE-stamp/AFTERIMAGE-configure-.cmake:49 (message):
  Command failed: 1

   './configure' '--prefix' '/Users/hits/software/root_build' '--libdir=/Users/hits/software/root_build/lib' '--with-ttf' '--with-ttf-includes=-I/Users/hits/software/root_build/FREETYPE-prefix/src/FREETYPE/include' '--with-afterbase=no' '--without-svg' '--disable-glx' '--with-builtin-ungif' '--with-jpeg' '--without-x' '--with-builtin-jpeg' '--with-png' '--with-builtin-png' '--with-tiff=no' 'CC=/Users/hits/mambaforge/bin/arm64-apple-darwin20.0.0-clang' 'CFLAGS= -DHAVE_FREETYPE_FREETYPE -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk'

  See also

    /Users/hits/software/root_build/AFTERIMAGE-prefix/src/AFTERIMAGE-stamp/AFTERIMAGE-configure-*.log

checking the logs:

(base) ➜  root_build cat /Users/hits/software/root_build/AFTERIMAGE-prefix/src/AFTERIMAGE-stamp/AFTERIMAGE-configure-*.log
Invalid configuration `arm64-apple-darwin20.0.0': machine `arm64-apple' not recognized
configure: error: /bin/sh ./config.sub arm64-apple-darwin20.0.0 failed
checking for arm64-apple-darwin20.0.0-gcc... /Users/hits/mambaforge/bin/arm64-apple-darwin20.0.0-clang
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether /Users/hits/mambaforge/bin/arm64-apple-darwin20.0.0-clang accepts -g... yes
checking for /Users/hits/mambaforge/bin/arm64-apple-darwin20.0.0-clang option to accept ANSI C... none needed
checking whether ln -s works... yes
checking build system type... %        

Can someone confirm a successful built of 6.28 on M1 Mac?

I did managed to install 6.28 with mamba after uninstalling and reinstalling it