summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuergen Christ <jchrist@linux.ibm.com>2022-03-23 13:26:13 +0100
committerTomas Mraz <tomas@openssl.org>2022-03-25 14:19:27 +0100
commit3299313d05f278dbea326ecbb461506a9a212690 (patch)
tree0174a653022f97e56624b5fc37867b42e7c9186b
parent940d35182f486e432072051419553ca4ada669aa (diff)
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 <jchrist@linux.ibm.com> Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/17946) (cherry picked from commit 37816ef5757e458be9648481e56bf698ee3bfbb1)
-rw-r--r--crypto/s390x_arch.h3
-rw-r--r--crypto/s390xcap.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/crypto/s390x_arch.h b/crypto/s390x_arch.h
index 78fcd73af0..57d76a92e9 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 f8e0234968..d433df98eb 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;