From: Yedidya Feldblum Date: Sat, 23 Dec 2017 03:02:54 +0000 (-0800) Subject: Namespace portability symbols better in Singleton.cpp X-Git-Tag: v2017.12.25.00~3 X-Git-Url: http://plrg.eecs.uci.edu/git/?p=folly.git;a=commitdiff_plain;h=e951fd70de9f2348962f2c512721d8eae89a77d2 Namespace portability symbols better in Singleton.cpp Summary: [Folly] Namespace portability symbols better in `Singleton.cpp`. Reviewed By: Orvid Differential Revision: D6631290 fbshipit-source-id: eb802ace6a9bf704e011eb44710922c997a9cd8e --- diff --git a/folly/Singleton.cpp b/folly/Singleton.cpp index 7114d53d..81c103a6 100644 --- a/folly/Singleton.cpp +++ b/folly/Singleton.cpp @@ -29,16 +29,23 @@ #include #if !defined(_WIN32) && !defined(__APPLE__) && !defined(__ANDROID__) -static void hs_init_weak(int* argc, char** argv[]) - __attribute__((__weakref__("hs_init"))); +#define FOLLY_SINGLETON_HAVE_DLSYM 1 #endif namespace folly { +#if FOLLY_SINGLETON_HAVE_DLSYM +namespace detail { +static void singleton_hs_init_weak(int* argc, char** argv[]) + __attribute__((__weakref__("hs_init"))); +} // namespace detail +#endif + SingletonVault::Type SingletonVault::defaultVaultType() { -#if !defined(_WIN32) && !defined(__APPLE__) && !defined(__ANDROID__) +#if FOLLY_SINGLETON_HAVE_DLSYM bool isPython = dlsym(RTLD_DEFAULT, "Py_Main"); - bool isHaskel = &::hs_init_weak || dlsym(RTLD_DEFAULT, "hs_init"); + bool isHaskel = + detail::singleton_hs_init_weak || dlsym(RTLD_DEFAULT, "hs_init"); bool isJVM = dlsym(RTLD_DEFAULT, "JNI_GetCreatedJavaVMs"); bool isD = dlsym(RTLD_DEFAULT, "_d_run_main");