diff --git a/src/libsodium/include/sodium/export.h b/src/libsodium/include/sodium/export.h index bee18a78..6d202bc7 100644 --- a/src/libsodium/include/sodium/export.h +++ b/src/libsodium/include/sodium/export.h @@ -11,6 +11,7 @@ #ifdef SODIUM_STATIC # define SODIUM_EXPORT +# define SODIUM_EXPORT_WEAK #else # if defined(_MSC_VER) # ifdef SODIUM_DLL_EXPORT @@ -31,6 +32,11 @@ # define SODIUM_EXPORT __attribute__ ((visibility ("default"))) # endif # endif +# ifdef __ELF__ +# define SODIUM_EXPORT_WEAK SODIUM_EXPORT __attribute__((weak)) +# else +# define SODIUM_EXPORT_WEAK SODIUM_EXPORT +# endif #endif #ifndef CRYPTO_ALIGN diff --git a/src/libsodium/include/sodium/runtime.h b/src/libsodium/include/sodium/runtime.h index aefa5c04..d35083d9 100644 --- a/src/libsodium/include/sodium/runtime.h +++ b/src/libsodium/include/sodium/runtime.h @@ -8,34 +8,34 @@ extern "C" { #endif -SODIUM_EXPORT __attribute__((weak)) +SODIUM_EXPORT_WEAK int sodium_runtime_has_neon(void); -SODIUM_EXPORT __attribute__((weak)) +SODIUM_EXPORT_WEAK int sodium_runtime_has_sse2(void); -SODIUM_EXPORT __attribute__((weak)) +SODIUM_EXPORT_WEAK int sodium_runtime_has_sse3(void); -SODIUM_EXPORT __attribute__((weak)) +SODIUM_EXPORT_WEAK int sodium_runtime_has_ssse3(void); -SODIUM_EXPORT __attribute__((weak)) +SODIUM_EXPORT_WEAK int sodium_runtime_has_sse41(void); -SODIUM_EXPORT __attribute__((weak)) +SODIUM_EXPORT_WEAK int sodium_runtime_has_avx(void); -SODIUM_EXPORT __attribute__((weak)) +SODIUM_EXPORT_WEAK int sodium_runtime_has_avx2(void); -SODIUM_EXPORT __attribute__((weak)) +SODIUM_EXPORT_WEAK int sodium_runtime_has_avx512f(void); -SODIUM_EXPORT __attribute__((weak)) +SODIUM_EXPORT_WEAK int sodium_runtime_has_pclmul(void); -SODIUM_EXPORT __attribute__((weak)) +SODIUM_EXPORT_WEAK int sodium_runtime_has_aesni(void); /* ------------------------------------------------------------------------- */