Only define RUBY_DLN_CHECK_ABI when supported

This commit is contained in:
Peter Zhu 2022-03-01 09:44:39 -05:00
parent 210f29a6bf
commit 25ad9eabc7
2 changed files with 4 additions and 6 deletions

4
dln.c
View File

@ -426,7 +426,7 @@ dln_sym(void *handle, const char *symbol)
} }
#endif #endif
#if RUBY_DLN_CHECK_ABI && defined(USE_DLN_DLOPEN) #if defined(RUBY_DLN_CHECK_ABI) && defined(USE_DLN_DLOPEN)
static bool static bool
abi_check_enabled_p(void) abi_check_enabled_p(void)
{ {
@ -441,7 +441,7 @@ dln_load(const char *file)
#if defined(_WIN32) || defined(USE_DLN_DLOPEN) #if defined(_WIN32) || defined(USE_DLN_DLOPEN)
void *handle = dln_open(file); void *handle = dln_open(file);
#if RUBY_DLN_CHECK_ABI #ifdef RUBY_DLN_CHECK_ABI
unsigned long long (*abi_version_fct)(void) = (unsigned long long(*)(void))dln_sym(handle, "ruby_abi_version"); unsigned long long (*abi_version_fct)(void) = (unsigned long long(*)(void))dln_sym(handle, "ruby_abi_version");
unsigned long long binary_abi_version = (*abi_version_fct)(); unsigned long long binary_abi_version = (*abi_version_fct)();
if (binary_abi_version != ruby_abi_version() && abi_check_enabled_p()) { if (binary_abi_version != ruby_abi_version() && abi_check_enabled_p()) {

View File

@ -27,12 +27,10 @@
/* Windows does not support weak symbols so ruby_abi_version will not exist /* Windows does not support weak symbols so ruby_abi_version will not exist
* in the shared library. */ * in the shared library. */
#if defined(HAVE_FUNC_WEAK) && !defined(_WIN32) && !defined(__MINGW32__) #if defined(HAVE_FUNC_WEAK) && !defined(_WIN32) && !defined(__MINGW32__)
# define RUBY_DLN_CHECK_ABI 1 # define RUBY_DLN_CHECK_ABI
#else
# define RUBY_DLN_CHECK_ABI 0
#endif #endif
#if RUBY_DLN_CHECK_ABI #ifdef RUBY_DLN_CHECK_ABI
RUBY_FUNC_EXPORTED unsigned long long __attribute__((weak)) RUBY_FUNC_EXPORTED unsigned long long __attribute__((weak))
ruby_abi_version(void) ruby_abi_version(void)