]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
s390x: Hide internal cpuid symbol and function
authorJuergen Christ <jchrist@linux.ibm.com>
Wed, 23 Mar 2022 12:26:13 +0000 (13:26 +0100)
committerTomas Mraz <tomas@openssl.org>
Fri, 25 Mar 2022 13:19:47 +0000 (14:19 +0100)
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)

crypto/s390x_arch.h
crypto/s390xcap.c

index 4d2cc02eb3d30622b909f68a7f8cb3b246c1cd26..b47dd53ad61adeda2e26b04d3214cc071cbcda4f 100644 (file)
@@ -47,6 +47,9 @@ struct OPENSSL_s390xcap_st {
     unsigned long long kma[2];
 };
 
+#if defined(__GNUC__) && defined(__linux)
+__attribute__ ((visibility("hidden")))
+#endif
 extern struct OPENSSL_s390xcap_st OPENSSL_s390xcap_P;
 
 /* convert facility bit number or function code to bit mask */
index 5d58b2d807b427a6843efeb404798bb1da12481b..1878b6a4a7c9eb2f83388fa67e98e9d3efddd6cb 100644 (file)
@@ -26,6 +26,9 @@ void OPENSSL_vx_probe(void);
 
 struct OPENSSL_s390xcap_st OPENSSL_s390xcap_P;
 
+#if defined(__GNUC__) && defined(__linux)
+__attribute__ ((visibility("hidden")))
+#endif
 void OPENSSL_cpuid_setup(void)
 {
     sigset_t oset;