MACOSX_DEPLOYMENT_TARGET and rootcling

I’m trying to force a minos on libraries I create, but it seems the root installation I’m using is not completely functional :

📦🚧~/tmp/rootcling$ MACOSX_DEPLOYMENT_TARGET=10.16 rootcling -f Adict.cxx A.h ALinkDef.h

works fine, while setting anything above 11.0 fails :

📦🚧~/tmp/rootcling$ MACOSX_DEPLOYMENT_TARGET=11.0 rootcling -f Adict.cxx A.h ALinkDef.h
error: invalid version number in 'MACOSX_DEPLOYMENT_TARGET=11.0'
error: invalid version number in 'MACOSX_DEPLOYMENT_TARGET=11.0'
Error: Parsing Linkdef file ALinkDef.h
📦🚧~/tmp/rootcling$ vtool -show $(which rootcling)
/Users/laurent/opt/spack/spack_path_placeholder/spack_path_place/darwin-bigsur-skylake/apple-clang-12.0.5/root-6.24.02-kkkcdb6ll5gmooyepnxdiy2moba6euzu/bin/rootcling:
Load command 10
      cmd LC_BUILD_VERSION
  cmdsize 32
 platform MACOS
    minos 11.4
      sdk 11.3
   ntools 1
     tool LD
  version 650.9
Load command 11
      cmd LC_SOURCE_VERSION
  cmdsize 16
  version 0.0

where the A* files are basic test stuff :

// A.h
#pragma once
#include "Rtypes.h"
class A {
public:
  int fA;
  ClassDef(A, 1)
};
// A.cxx
#include "A.h"
ClassImp(A);
A::A() : fA{42} {}
// ALinkDef.h
#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;
#pragma link C++ class A + ;

The root version I’m using was built (by me) using Spack. I’ve tried to same with a root binary from Conda (to get a quick reference) and sure enough with the Conda version it works just fine.

So obviously something is wrong with my custom build, but the question is how can I debug what’s wrong ? :wink:

Thanks,

ROOT Version: 6.24/02
Platform: macOS 11.4
Compiler: Apple clang version 12.0.5 (clang-1205.0.22.11)


Hi @laurent.aphecetche ,
so basically the question is, when you call MACOSX_DEPLOYMENT_TARGET=11.0 rootcling -f Adict.cxx A.h ALinkDef.h, who or what exactly is printing these error messages and why?

The only place in ROOT that prints Parsing Linkdef file ... is rootcling_impl.cxx around line 4700, so I guess what goes wrong is the Parse call right above it. You can probably step through with a debugger to see what’s going on.

@Axel or @pcanal might be able to guess or might have better suggestions.

Cheers,
Enrico

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