diff --git a/README/ReleaseNotes/v642/index.md b/README/ReleaseNotes/v642/index.md index 61c80c9c5b822..1d7dac2db1bda 100644 --- a/README/ReleaseNotes/v642/index.md +++ b/README/ReleaseNotes/v642/index.md @@ -71,6 +71,7 @@ The `TMVA_SOFIE_GNN` tutorials have been migrated to this workflow and produce i * The `RooTrace` class is deprecated and will be removed in ROOT 6.44. It was a RooFit-specific memory tracer whose instrumentation hooks are compiled out by default, so it has been inert and untested for years. For memory debugging, please use general-purpose tools such as AddressSanitizer or Valgrind instead. * Support for the AIX operating system has been removed from the codebase. This support has not been tested since the late v5 releases and the LLVM JIT is not yet supporting AIX. * The `ROOT::Math::ParamFunctionBase`, `ROOT::Math::ParamFunctorHandler` and `ROOT::Math::ParamMemFunHandler` classes in `Math/ParamFunctor.h` are removed, together with the `ParamFunctor::GetImpl()` and `ParamFunctor::SetFunction()` methods that exposed them. They implemented the type erasure that `ParamFunctor` now gets from `std::function`, mirroring what was already done for `ROOT::Math::Functor`. Constructing and calling a `ParamFunctor` is unchanged, except that the constructor from an object and one of its member functions now takes a plain pointer to the object instead of anything dereferenceable, so smart pointers are no longer accepted there. +* The header `compiledata.h` will be renamed in ROOT 6.44. It did not have header guards and is not meant to be used directly. It is solely used by ROOT internally to setup `ACLiC`, consider using `gSystem` instead to access its content. * Including `RConfig.h` and `RVersion.h` is now deprecated and will be removed after ROOT 6.44, use instead `ROOT/RConfig.hxx` and `ROOT/RVersion.hxx`. * The header `Rpair.h` is deprecated and will be removed after ROOT 6.44, use `` instead. * The headers `Htypes.h` and `Gtypes.h` that were deprecated in ROOT 6.20 will now emit warnings and will be fully removed in ROOT 6.44. Use instead `Rtypes.h`. diff --git a/cmake/unix/compiledata.sh b/cmake/unix/compiledata.sh index 4393f6ce14a34..7e7b269e6e3cf 100755 --- a/cmake/unix/compiledata.sh +++ b/cmake/unix/compiledata.sh @@ -107,6 +107,13 @@ fi rm -f "${COMPILEDATA}.tmp" echo "/* This file is automatically generated */" > "${COMPILEDATA}.tmp" +echo "#ifndef ROOT_compiledata_h" >> "${COMPILEDATA}.tmp" +echo "#define ROOT_compiledata_h" >> "${COMPILEDATA}.tmp" + +echo "#if !defined(ROOT_compiledata_cxx) && !defined(G__DICTIONARY) && !defined(__ACLIC__)" >> "${COMPILEDATA}.tmp" +echo "#warning \"This header is solely used by ROOT internally to setup ACLiC, it will be renamed in ROOT 6.44. Consider using gSystem to access its content.\"" >> "${COMPILEDATA}.tmp" +echo "#endif" >> "${COMPILEDATA}.tmp" + echo "#define BUILD_ARCH \"$ARCH\"" >> "${COMPILEDATA}.tmp" if [ "x${IGNORE_BUILD_NODE_CHANGES}" != "x" -a -r "$COMPILEDATA" ]; then @@ -134,6 +141,8 @@ echo "#define ROOTBUILD \"$ROOTBUILD\"" >> "${COMPILEDATA}.tmp" echo "#define LINKEDLIBS \"-L$LIBDIR $ROOTLIBS $RINTLIBS \"" >> "${COMPILEDATA}.tmp" echo "#define OBJEXT \"o\"" >> "${COMPILEDATA}.tmp" echo "#define SOEXT \"$SOEXT\"" >> "${COMPILEDATA}.tmp" +echo "#endif" >> "${COMPILEDATA}.tmp" + ( if [ -r "$COMPILEDATA" ]; then diff --git a/core/base/src/TSystem.cxx b/core/base/src/TSystem.cxx index bf312d7011747..ba5d50f0dacf9 100644 --- a/core/base/src/TSystem.cxx +++ b/core/base/src/TSystem.cxx @@ -42,6 +42,7 @@ allows a simple partial implementation for new OS'es. #include "TUrl.h" #include "TVirtualMutex.h" #include "TVersionCheck.h" +#define ROOT_compiledata_cxx #include "compiledata.h" #include "RConfigure.h" #include "THashList.h" diff --git a/core/metacling/src/TCling.cxx b/core/metacling/src/TCling.cxx index dc4491a0ac83f..022cc1ddba473 100644 --- a/core/metacling/src/TCling.cxx +++ b/core/metacling/src/TCling.cxx @@ -61,6 +61,7 @@ clang/LLVM technology. #include "THashTable.h" #include "RConversionRuleParser.h" #include "RConfigure.h" +#define ROOT_compiledata_cxx #include "compiledata.h" #include "strlcpy.h" #include "TClingUtils.h" diff --git a/io/io/src/TFile.cxx b/io/io/src/TFile.cxx index 0be022832bb6d..ebe193fa5b07e 100644 --- a/io/io/src/TFile.cxx +++ b/io/io/src/TFile.cxx @@ -160,6 +160,7 @@ The structure of a directory is shown in TDirectoryFile::TDirectoryFile #include "TMathBase.h" #include "TObjString.h" #include "TStopwatch.h" +#define ROOT_compiledata_cxx #include "compiledata.h" #include "TSchemaRule.h" #include "TSchemaRuleSet.h" diff --git a/net/net/src/TApplicationServer.cxx b/net/net/src/TApplicationServer.cxx index 4fb54f2691f56..d35f186fd3896 100644 --- a/net/net/src/TApplicationServer.cxx +++ b/net/net/src/TApplicationServer.cxx @@ -62,6 +62,7 @@ #include "TSystem.h" #include "TRemoteObject.h" #include "TUrl.h" +#define ROOT_compiledata_cxx #include "compiledata.h" #include "TClass.h"