"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "core/metacling/src/TCling.cxx" between
root_v6.26.08.source.tar.gz and root_v6.26.10.source.tar.gz

About: The ROOT system is an object-oriented framework for large scale scientific data analysis and data mining. Latest pro(duction) version.

TCling.cxx  (root_v6.26.08.source):TCling.cxx  (root_v6.26.10.source)
skipping to change at line 3351 skipping to change at line 3351
std::vector<std::string> newLibs; std::vector<std::string> newLibs;
dl_iterate_phdr(callback_for_dl_iterate_phdr, &newLibs); dl_iterate_phdr(callback_for_dl_iterate_phdr, &newLibs);
for (auto &&lib: newLibs) for (auto &&lib: newLibs)
RegisterLoadedSharedLibrary(lib.c_str()); RegisterLoadedSharedLibrary(lib.c_str());
#else #else
Error("TCling::UpdateListOfLoadedSharedLibraries", Error("TCling::UpdateListOfLoadedSharedLibraries",
"Platform not supported!"); "Platform not supported!");
#endif #endif
} }
namespace {
template <int N>
static bool StartsWithStrLit(const char *haystack, const char (&needle)[N]) {
return !strncmp(haystack, needle, N - 1);
}
}
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
/// Register a new shared library name with the interpreter; add it to /// Register a new shared library name with the interpreter; add it to
/// fSharedLibs. /// fSharedLibs.
void TCling::RegisterLoadedSharedLibrary(const char* filename) void TCling::RegisterLoadedSharedLibrary(const char* filename)
{ {
// Ignore NULL filenames, aka "the process". // Ignore NULL filenames, aka "the process".
if (!filename) return; if (!filename) return;
// Tell the interpreter that this library is available; all libraries can be // Tell the interpreter that this library is available; all libraries can be
// used to resolve symbols. // used to resolve symbols.
cling::DynamicLibraryManager* DLM = fInterpreter->getDynamicLibraryManager(); cling::DynamicLibraryManager* DLM = fInterpreter->getDynamicLibraryManager();
if (!DLM->isLibraryLoaded(filename)) { if (!DLM->isLibraryLoaded(filename)) {
DLM->loadLibrary(filename, true /*permanent*/, true /*resolved*/); DLM->loadLibrary(filename, true /*permanent*/, true /*resolved*/);
} }
#if defined(R__MACOSX) #if defined(R__MACOSX)
// Check that this is not a system library // Check that this is not a system library that does not exist on disk.
auto lenFilename = strlen(filename); auto lenFilename = strlen(filename);
if (!strncmp(filename, "/usr/lib/system/", 16) auto isInMacOSSystemDir = [](const char *fn) {
|| !strncmp(filename, "/usr/lib/libc++", 15) return StartsWithStrLit(fn, "/usr/lib/") || StartsWithStrLit(fn, "/System/
|| !strncmp(filename, "/System/Library/Frameworks/", 27) Library/");
|| !strncmp(filename, "/System/Library/PrivateFrameworks/", 34) };
|| !strncmp(filename, "/System/Library/CoreServices/", 29) if (!strcmp(filename, "cl_kernels") // yepp, no directory
|| !strcmp(filename, "cl_kernels") // yepp, no directory
|| strstr(filename, "/usr/lib/libSystem") // These we should not link with (e.g. because they forward to .tbd):
|| strstr(filename, "/usr/lib/libstdc++") || StartsWithStrLit(filename, "/usr/lib/system/")
|| strstr(filename, "/usr/lib/libicucore") || StartsWithStrLit(filename, "/usr/lib/libc++")
|| strstr(filename, "/usr/lib/libbsm") || StartsWithStrLit(filename, "/System/Library/Frameworks/")
|| strstr(filename, "/usr/lib/libobjc") || StartsWithStrLit(filename, "/System/Library/PrivateFrameworks/")
|| strstr(filename, "/usr/lib/libresolv") || StartsWithStrLit(filename, "/System/Library/CoreServices/")
|| strstr(filename, "/usr/lib/libauto") || StartsWithStrLit(filename, "/usr/lib/libSystem")
|| strstr(filename, "/usr/lib/libcups") || StartsWithStrLit(filename, "/usr/lib/libstdc++")
|| strstr(filename, "/usr/lib/libDiagnosticMessagesClient") || StartsWithStrLit(filename, "/usr/lib/libicucore")
|| strstr(filename, "/usr/lib/liblangid") || StartsWithStrLit(filename, "/usr/lib/libbsm")
|| strstr(filename, "/usr/lib/libCRFSuite") || StartsWithStrLit(filename, "/usr/lib/libobjc")
|| strstr(filename, "/usr/lib/libpam") || StartsWithStrLit(filename, "/usr/lib/libresolv")
|| strstr(filename, "/usr/lib/libOpenScriptingUtil") || StartsWithStrLit(filename, "/usr/lib/libauto")
|| strstr(filename, "/usr/lib/libextension") || StartsWithStrLit(filename, "/usr/lib/libcups")
|| strstr(filename, "/usr/lib/libAudioToolboxUtility") || StartsWithStrLit(filename, "/usr/lib/libDiagnosticMessagesClient")
|| strstr(filename, "/usr/lib/liboah") || StartsWithStrLit(filename, "/usr/lib/liblangid")
|| strstr(filename, "/usr/lib/libRosetta") || StartsWithStrLit(filename, "/usr/lib/libCRFSuite")
|| strstr(filename, "/usr/lib/libCoreEntitlements") || StartsWithStrLit(filename, "/usr/lib/libpam")
|| strstr(filename, "/usr/lib/libssl.") || StartsWithStrLit(filename, "/usr/lib/libOpenScriptingUtil")
|| strstr(filename, "/usr/lib/libcrypto.") || StartsWithStrLit(filename, "/usr/lib/libextension")
// These are candidates for suppression, too: || StartsWithStrLit(filename, "/usr/lib/libAudioToolboxUtility")
// -lfakelink -lapple_nghttp2 -lnetwork -lsqlite3 -lenergytrace -lCoreE || StartsWithStrLit(filename, "/usr/lib/liboah")
ntitlements || StartsWithStrLit(filename, "/usr/lib/libRosetta")
// -lMobileGestalt -lcoretls -lcoretls_cfhelpers -lxar.1 -lcompression || StartsWithStrLit(filename, "/usr/lib/libCoreEntitlements")
-larchive.2 || StartsWithStrLit(filename, "/usr/lib/libssl.")
// -lxml2.2 -lpcap.A -ldns_services -llzma.5 -lbz2.1.0 -liconv.2 -lchar || StartsWithStrLit(filename, "/usr/lib/libcrypto.")
set.1
// -lCheckFix -lmecabra -lmecab -lgermantok -lThaiTokenizer -lChineseTo // The system lib is likely in macOS's blob.
kenizer || (isInMacOSSystemDir(filename) && gSystem->AccessPathName(filename))
// -lcmph -lutil -lapp_launch_measurement -lxslt.1 -lspindump -late -le
xpat.1 // "Link against the umbrella framework 'System.framework' instead"
// -lAudioStatistics -lSMC -lperfcheck -lmis -lIOReport -lheimdal-asn1 || StartsWithStrLit(filename, "/usr/lib/system/libsystem_kernel")
|| StartsWithStrLit(filename, "/usr/lib/system/libsystem_platform")
|| StartsWithStrLit(filename, "/usr/lib/system/libsystem_pthread")
// "cannot link directly with dylib/framework, your binary is not an allo wed client of // "cannot link directly with dylib/framework, your binary is not an allo wed client of
// /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/D eveloper/ // /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/D eveloper/
// SDKs/MacOSX.sdk/usr/lib/libAudioToolboxUtility.tbd for architecture x8 6_64 // SDKs/MacOSX.sdk/usr/lib/libAudioToolboxUtility.tbd for architecture x8 6_64
|| (lenFilename > 4 && !strcmp(filename + lenFilename - 4, ".tbd"))) || (lenFilename > 4 && !strcmp(filename + lenFilename - 4, ".tbd")))
return; return;
TString sFileName(filename); TString sFileName(filename);
R__UpdateLibFileForLinking(sFileName); R__UpdateLibFileForLinking(sFileName);
filename = sFileName.Data(); filename = sFileName.Data();
#elif defined(__CYGWIN__) #elif defined(__CYGWIN__)
 End of changes. 3 change blocks. 
39 lines changed or deleted 48 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)