Building ROOT from source errors

Hi,

I posted previously about build errors when building from source (post). I made the suggested changes of trying to remove leftovers from previous installations, I am still getting errors. I have copied the errors below and attached a text file with the full output.

Thanks for your help!

ROOT Version: v6-26-10
Platform: MacOS Ventura 13.1
Compiler: AppleClang 14.0.0.14000029


[ 45%] Building C object core/clib/CMakeFiles/Clib.dir/src/mfree.c.o
[ 45%] Copying /Applications/root/tutorials/foam/foam_kanwa.C
[ 45%] Copying /Applications/root/tutorials/foam/index.md
/Applications/root/core/clib/src/mfree.c:194:13: warning: performing pointer subtraction with a null pointer has undefined behavior [-Wnull-pointer-subtraction]
            RESIDUAL (ptr, BLOCKSIZE) >> type;
            ^~~~~~~~~~~~~~~~~~~~~~~~~
/Applications/root/core/clib/res/mmprivate.h:90:47: note: expanded from macro 'RESIDUAL'
#define RESIDUAL(addr,bsize) ((unsigned int) (ADDR2UINT (addr) % (bsize)))
                                              ^~~~~~~~~~~~~~~~
/Applications/root/core/clib/res/mmprivate.h:89:58: note: expanded from macro 'ADDR2UINT'
#define ADDR2UINT(addr) ((unsigned int) ((char *) (addr) - (char *) NULL))
                                                         ^ ~~~~~~~~~~~~~
[ 45%] Copying /Applications/root/tutorials/gallery.root
1 warning generated.
[ 45%] Copying /Applications/root/tutorials/geom/RadioNuclides.C
[ 45%] Building C object core/clib/CMakeFiles/Clib.dir/src/mmalloc.c.o
[ 45%] Copying /Applications/root/tutorials/geom/assembly.C
/Applications/root/core/clib/src/mmalloc.c:51:9: warning: performing pointer subtraction with a null pointer has undefined behavior [-Wnull-pointer-subtraction]
  adj = RESIDUAL (result, BLOCKSIZE);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Applications/root/core/clib/res/mmprivate.h:90:47: note: expanded from macro 'RESIDUAL'
#define RESIDUAL(addr,bsize) ((unsigned int) (ADDR2UINT (addr) % (bsize)))
                                              ^~~~~~~~~~~~~~~~
/Applications/root/core/clib/res/mmprivate.h:89:58: note: expanded from macro 'ADDR2UINT'
#define ADDR2UINT(addr) ((unsigned int) ((char *) (addr) - (char *) NULL))
                                                         ^ ~~~~~~~~~~~~~
/Applications/root/core/clib/src/mmalloc.c:200:13: warning: performing pointer subtraction with a null pointer has undefined behavior [-Wnull-pointer-subtraction]
            RESIDUAL (next -> next, BLOCKSIZE) >> log;
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Applications/root/core/clib/res/mmprivate.h:90:47: note: expanded from macro 'RESIDUAL'
#define RESIDUAL(addr,bsize) ((unsigned int) (ADDR2UINT (addr) % (bsize)))
                                              ^~~~~~~~~~~~~~~~
/Applications/root/core/clib/res/mmprivate.h:89:58: note: expanded from macro 'ADDR2UINT'
#define ADDR2UINT(addr) ((unsigned int) ((char *) (addr) - (char *) NULL))
                                                         ^ ~~~~~~~~~~~~~
[ 45%] Copying /Applications/root/tutorials/geom/building.C
[ 45%] Copying /Applications/root/tutorials/geom/cheongwadae.C
2 warnings generated.
[ 45%] Building C object core/clib/CMakeFiles/Clib.dir/src/mmapsup.c.o
[ 45%] Copying /Applications/root/tutorials/geom/csgdemo.C
[ 45%] Copying /Applications/root/tutorials/geom/gdml/opticalsurfaces.gdml
[ 45%] Copying /Applications/root/tutorials/geom/gdml/testoptical.C
[ 45%] Copying /Applications/root/tutorials/geom/geodemo.C
[ 45%] Building C object core/clib/CMakeFiles/Clib.dir/src/mmcheck.c.o
[ 45%] Copying /Applications/root/tutorials/geom/geomAlice.C
[ 45%] Copying /Applications/root/tutorials/geom/geomAlice_itsv.C
[ 45%] Building C object core/clib/CMakeFiles/Clib.dir/src/mmemalign.c.o
[ 45%] Copying /Applications/root/tutorials/geom/geomAtlas.C
[ 45%] Copying /Applications/root/tutorials/geom/geomBrahms.C
/Applications/root/core/clib/src/mmemalign.c:37:13: warning: performing pointer subtraction with a null pointer has undefined behavior [-Wnull-pointer-subtraction]
      adj = RESIDUAL (result, alignment);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Applications/root/core/clib/res/mmprivate.h:90:47: note: expanded from macro 'RESIDUAL'
#define RESIDUAL(addr,bsize) ((unsigned int) (ADDR2UINT (addr) % (bsize)))
                                              ^~~~~~~~~~~~~~~~
/Applications/root/core/clib/res/mmprivate.h:89:58: note: expanded from macro 'ADDR2UINT'
#define ADDR2UINT(addr) ((unsigned int) ((char *) (addr) - (char *) NULL))
                                                         ^ ~~~~~~~~~~~~~
[ 46%] Copying /Applications/root/tutorials/geom/geomD0.C
1 warning generated.

and

[ 53%] Copying /Applications/root/tutorials/roofit/rf505_asciicfg.C
[ 53%] Copying /Applications/root/tutorials/roofit/rf505_asciicfg.py
[ 53%] Copying /Applications/root/tutorials/roofit/rf505_asciicfg.txt
[ 53%] Copying /Applications/root/tutorials/roofit/rf506_msgservice.C
[ 53%] Copying /Applications/root/tutorials/roofit/rf506_msgservice.py
In file included from /Applications/root/core/base/src/String.cxx:19:
In file included from /Applications/root/core/base/inc/TBuffer.h:24:
In file included from /Applications/root/core/meta/inc/TDataType.h:25:
In file included from /Applications/root/core/meta/inc/TDictionary.h:44:
In file included from /Applications/root/core/base/inc/TNamed.h:25:
/Applications/root/core/base/inc/TObject.h:47:11: error: unknown type name 'Longptr_t'
   static Longptr_t fgDtorOnly;    ///< object for which to call dtor only (i.e. no delete)
          ^
/Applications/root/core/base/inc/TObject.h:237:11: error: unknown type name 'Longptr_t'
   static Longptr_t GetDtorOnly();
          ^
[ 53%] Copying /Applications/root/tutorials/roofit/rf507_debugtools.C
[ 53%] Copying /Applications/root/tutorials/roofit/rf507_debugtools.py
[ 53%] Copying /Applications/root/tutorials/roofit/rf508_listsetmanip.C
[ 53%] Copying /Applications/root/tutorials/roofit/rf508_listsetmanip.py
In file included from /Applications/root/core/base/src/String.cxx:19:
In file included from /Applications/root/core/base/inc/TBuffer.h:26:
/Applications/root/core/meta/inc/TClass.h:272:12: error: unknown type name 'Longptr_t'
   mutable Longptr_t  fOffsetStreamer;  //!saved info to call Streamer
           ^
/Applications/root/core/meta/inc/TClass.h:289:38: error: unknown type name 'Longptr_t'
   TMethod           *GetClassMethod(Longptr_t faddr);
                                     ^
/Applications/root/core/meta/inc/TClass.h:387:63: error: unknown type name 'Longptr_t'
   void               BuildEmulatedRealData(const char *name, Longptr_t offset, TClass *cl, Bool_t isTransient = kFALSE);
                                                              ^
/Applications/root/core/meta/inc/TClass.h:424:4: error: unknown type name 'Longptr_t'
   Longptr_t          GetDataMemberOffset(const char *membername) const;
   ^
/Applications/root/core/meta/inc/TClass.h:391:59: error: cannot initialize object parameter of type 'const TObject' with an expression of type 'TClass'
   Bool_t             CanIgnoreTObjectStreamer() { return TestBit(kIgnoreTObjectStreamer);}
                                                          ^~~~~~~
/Applications/root/core/meta/inc/TClass.h:396:51: error: cannot initialize object parameter of type 'const TObject' with an expression of type 'const TClass'
   void               Dump() const { TDictionary::Dump(); }
                                                  ^~~~
/Applications/root/core/meta/inc/TClass.h:431:33: error: cannot initialize object parameter of type 'const TObject' with an expression of type 'const TClass'
      if (fCanLoadClassInfo && !TestBit(kLoading))
                                ^~~~~~~
[ 53%] Copying /Applications/root/tutorials/roofit/rf509_wsinteractive.C
9 errors generated.
make[2]: *** [core/base/CMakeFiles/Base.dir/src/String.cxx.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 53%] Copying /Applications/root/tutorials/roofit/rf509_wsinteractive.py
[ 53%] Building CXX object core/meta/CMakeFiles/Meta.dir/src/TListOfDataMembers.cxx.o

build_errors_20230115.txt (479.3 KB)

Since it’s on MacOS, maybe @Axel or @couet can help

There are still interference between ‘something’ and the ROOT headers. Namely Longptr_t is declare as part of a ROOT header file GuiTypes.h and as such it is unexpected that it is not declared. To track down the problem do the following:

cmake --build . -- install -j 1 -v

It should include the command use to compile String.cxx and end in

core/base/CMakeFiles/Base.dir/src/String.cxx.o

Then take (copy/paste) that line replace the part

-c ... -o core/base/CMakeFiles/Base.dir/src/String.cxx.o

with

-E ... -o core/base/CMakeFiles/Base.dir/src/String.cxx.E

you may also have to remove a few arguments starting in -M... (if they are there and need to be remove the command line will fail with wording along the line can do -E when -MT is specified.

Then in the output (the file core/base/CMakeFiles/Base.dir/src/String.cxx.E) when can look why the expected GuiTypes.h file was not included (in the simplest case there is another product whose header file is also name GuiTypes.h and is included instead of ROOT header file)

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