From: Juergen Christ Date: Wed, 23 Mar 2022 12:26:13 +0000 (+0100) Subject: s390x: Hide internal cpuid symbol and function X-Git-Tag: openssl-3.2.0-alpha1~2814 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=37816ef5757e458be9648481e56bf698ee3bfbb1;p=thirdparty%2Fopenssl.git s390x: Hide internal cpuid symbol and function The symbol OPENSSL_s390xcap_P and the OPENSSL_cpuid_setup function are not exported by the version script of OpenSSL. However, if someone uses the static library without the version script, these symbols all of a sudden become global symbols and their usage in assembler code does not correctly reflect that for PIC. Since these symbols should never be used outside of OpenSSL, hide them inside the binary. Signed-off-by: Juergen Christ Reviewed-by: Paul Dale Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/17946) --- diff --git a/crypto/s390x_arch.h b/crypto/s390x_arch.h index fa920d14da1..3b489b9144a 100644 --- a/crypto/s390x_arch.h +++ b/crypto/s390x_arch.h @@ -72,6 +72,9 @@ struct OPENSSL_s390xcap_st { unsigned long long kdsa[2]; }; +#if defined(__GNUC__) && defined(__linux) +__attribute__ ((visibility("hidden"))) +#endif extern struct OPENSSL_s390xcap_st OPENSSL_s390xcap_P; /* Max number of 64-bit words currently returned by STFLE */ diff --git a/crypto/s390xcap.c b/crypto/s390xcap.c index f8e0234968e..d433df98eb9 100644 --- a/crypto/s390xcap.c +++ b/crypto/s390xcap.c @@ -74,6 +74,9 @@ void OPENSSL_s390x_functions(void); struct OPENSSL_s390xcap_st OPENSSL_s390xcap_P; +#if defined(__GNUC__) && defined(__linux) +__attribute__ ((visibility("hidden"))) +#endif void OPENSSL_cpuid_setup(void) { struct OPENSSL_s390xcap_st cap;