summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorL. E. Segovia <amy@centricular.com>2024-10-29 22:08:48 +0000
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>2024-10-31 14:52:35 +0000
commit15dcc225e3442e04bf6ebc72298d1276a1c0b526 (patch)
tree21ad7843b7e2668fac2aa88759163084a00ecb56
parent8004785a8e84b1feab089f8958872593532c9374 (diff)
openssl: Fix armv7a compilation
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1615>
-rw-r--r--recipes/openssl.recipe4
-rw-r--r--recipes/openssl/0004-Android-fix-relocation-of-OPENSSL_armcap_P.patch120
2 files changed, 123 insertions, 1 deletions
diff --git a/recipes/openssl.recipe b/recipes/openssl.recipe
index 7c98c4be..92bc7f97 100644
--- a/recipes/openssl.recipe
+++ b/recipes/openssl.recipe
@@ -149,7 +149,6 @@ class Recipe(recipe.Recipe):
self.make += ['build_libs', 'openssl.pc', 'libssl.pc', 'libcrypto.pc']
self.make_install = ['make', 'install_dev', 'RANLIB=' + ranlib]
-
if self.config.platform == Platform.WINDOWS:
# Ensure that our Perl's File/Spec.pm uses backward slashes when
# building for MSVC and forward-slashes when building for MinGW.
@@ -179,6 +178,9 @@ class Recipe(recipe.Recipe):
if self.config.target_platform == Platform.IOS:
self.library_type = LibraryType.STATIC
if self.config.target_platform == Platform.ANDROID:
+ self.patches += [
+ 'openssl/0004-Android-fix-relocation-of-OPENSSL_armcap_P.patch',
+ ]
self.prepend_env('PATH', self.get_env('ANDROID_NDK_TOOLCHAIN_BIN'), sep=os.pathsep)
self.set_env('ANDROID_NDK_ROOT', self.get_env('ANDROID_NDK_HOME'))
diff --git a/recipes/openssl/0004-Android-fix-relocation-of-OPENSSL_armcap_P.patch b/recipes/openssl/0004-Android-fix-relocation-of-OPENSSL_armcap_P.patch
new file mode 100644
index 00000000..2539078d
--- /dev/null
+++ b/recipes/openssl/0004-Android-fix-relocation-of-OPENSSL_armcap_P.patch
@@ -0,0 +1,120 @@
+From 422ceb22ee2ef1b07548cb02bc2394c244c11a7c Mon Sep 17 00:00:00 2001
+From: "L. E. Segovia" <amy@centricular.com>
+Date: Tue, 29 Oct 2024 22:01:59 +0000
+Subject: [PATCH 4/4] Android: fix relocation of OPENSSL_armcap_P
+
+Caused by https://github.com/openssl/openssl/commit/7b508cd1e18f04d509af4df6c2ab4709c4389d19.
+
+See https://github.com/sfackler/rust-openssl/issues/2154
+
+Fixes #25601
+---
+ crypto/armv4cpuid.pl | 1 +
+ crypto/bn/asm/armv4-gf2m.pl | 1 +
+ crypto/bn/asm/armv4-mont.pl | 1 +
+ crypto/chacha/asm/chacha-armv4.pl | 1 +
+ crypto/poly1305/asm/poly1305-armv4.pl | 1 +
+ crypto/sha/asm/sha1-armv4-large.pl | 1 +
+ crypto/sha/asm/sha256-armv4.pl | 1 +
+ crypto/sha/asm/sha512-armv4.pl | 1 +
+ 8 files changed, 8 insertions(+)
+
+diff --git a/crypto/armv4cpuid.pl b/crypto/armv4cpuid.pl
+index 04b3425..9b933c7 100644
+--- a/crypto/armv4cpuid.pl
++++ b/crypto/armv4cpuid.pl
+@@ -293,6 +293,7 @@ atomic_add_spinlock:
+ #endif
+
+ .extern OPENSSL_armcap_P
++.hidden OPENSSL_armcap_P
+ ___
+
+ print $code;
+diff --git a/crypto/bn/asm/armv4-gf2m.pl b/crypto/bn/asm/armv4-gf2m.pl
+index 17af0e0..5733a01 100644
+--- a/crypto/bn/asm/armv4-gf2m.pl
++++ b/crypto/bn/asm/armv4-gf2m.pl
+@@ -326,6 +326,7 @@ $code.=<<___;
+
+ #if __ARM_MAX_ARCH__>=7
+ .extern OPENSSL_armcap_P
++.hidden OPENSSL_armcap_P
+ #endif
+ ___
+
+diff --git a/crypto/bn/asm/armv4-mont.pl b/crypto/bn/asm/armv4-mont.pl
+index d85da92..6e839d8 100644
+--- a/crypto/bn/asm/armv4-mont.pl
++++ b/crypto/bn/asm/armv4-mont.pl
+@@ -750,6 +750,7 @@ $code.=<<___;
+ .align 2
+ #if __ARM_MAX_ARCH__>=7
+ .extern OPENSSL_armcap_P
++.hidden OPENSSL_armcap_P
+ #endif
+ ___
+
+diff --git a/crypto/chacha/asm/chacha-armv4.pl b/crypto/chacha/asm/chacha-armv4.pl
+index ac32d5b..bb48b6e 100755
+--- a/crypto/chacha/asm/chacha-armv4.pl
++++ b/crypto/chacha/asm/chacha-armv4.pl
+@@ -1155,6 +1155,7 @@ $code.=<<___;
+ ldmia sp!,{r4-r11,pc}
+ .size ChaCha20_neon,.-ChaCha20_neon
+ .extern OPENSSL_armcap_P
++.hidden OPENSSL_armcap_P
+ #endif
+ ___
+ }}}
+diff --git a/crypto/poly1305/asm/poly1305-armv4.pl b/crypto/poly1305/asm/poly1305-armv4.pl
+index b98beef..673ea62 100755
+--- a/crypto/poly1305/asm/poly1305-armv4.pl
++++ b/crypto/poly1305/asm/poly1305-armv4.pl
+@@ -1240,6 +1240,7 @@ $code.=<<___;
+ .align 2
+ #if __ARM_MAX_ARCH__>=7
+ .extern OPENSSL_armcap_P
++.hidden OPENSSL_armcap_P
+ #endif
+ ___
+
+diff --git a/crypto/sha/asm/sha1-armv4-large.pl b/crypto/sha/asm/sha1-armv4-large.pl
+index 2832c5b..b3a8ec6 100644
+--- a/crypto/sha/asm/sha1-armv4-large.pl
++++ b/crypto/sha/asm/sha1-armv4-large.pl
+@@ -708,6 +708,7 @@ ___
+ $code.=<<___;
+ #if __ARM_MAX_ARCH__>=7
+ .extern OPENSSL_armcap_P
++.hidden OPENSSL_armcap_P
+ #endif
+ ___
+
+diff --git a/crypto/sha/asm/sha256-armv4.pl b/crypto/sha/asm/sha256-armv4.pl
+index 8bac84b..feb1f26 100644
+--- a/crypto/sha/asm/sha256-armv4.pl
++++ b/crypto/sha/asm/sha256-armv4.pl
+@@ -694,6 +694,7 @@ $code.=<<___;
+ .align 2
+ #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__)
+ .extern OPENSSL_armcap_P
++.hidden OPENSSL_armcap_P
+ #endif
+ ___
+
+diff --git a/crypto/sha/asm/sha512-armv4.pl b/crypto/sha/asm/sha512-armv4.pl
+index c8b8110..9aa310f 100644
+--- a/crypto/sha/asm/sha512-armv4.pl
++++ b/crypto/sha/asm/sha512-armv4.pl
+@@ -661,6 +661,7 @@ $code.=<<___;
+ .align 2
+ #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__)
+ .extern OPENSSL_armcap_P
++.hidden OPENSSL_armcap_P
+ #endif
+ ___
+
+--
+2.46.0
+