From e951fd70de9f2348962f2c512721d8eae89a77d2 Mon Sep 17 00:00:00 2001 From: Yedidya Feldblum Date: Fri, 22 Dec 2017 19:02:54 -0800 Subject: [PATCH] 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 --- folly/Singleton.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) 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"); -- 2.34.1