Only define RUBY_DLN_CHECK_ABI when supported
This commit is contained in:
parent
210f29a6bf
commit
25ad9eabc7
4
dln.c
4
dln.c
|
@ -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()) {
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue