From: Arne Schwabe Date: Sat, 26 Apr 2025 18:21:28 +0000 (+0200) Subject: Fix aesv8 arm assembler code not working on 32 bit Android X-Git-Tag: openssl-3.5.1~140 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b7f6519229a6002f944626ab3db216175dd0f142;p=thirdparty%2Fopenssl.git Fix aesv8 arm assembler code not working on 32 bit Android OpenSSL uses 'void' as perlasm for the 32 bit armeabi-arm target, which most notably lacks a 32 or 64 in its name. So while most code that is targeted for 32 uses !~ /64/ there is one instance that uses ~= /32/, introduced by commit 8e69c18 between 3.4.0 and 3.5.0. This leaves out that line on 32 bit android causing a segfault. This fixes the compilation issue by replacing the ~= /32/ with !~ /64/ compilation taget (see 15-android.conf) Signed-off-by: Arne Schwabe Reviewed-by: Tom Cosgrove Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/27510) (cherry picked from commit 77624f0c5bc7db67acb3134b28bc330533425ab6) --- diff --git a/crypto/aes/asm/aesv8-armx.pl b/crypto/aes/asm/aesv8-armx.pl index 4f503a31ca6..af501f8ff57 100755 --- a/crypto/aes/asm/aesv8-armx.pl +++ b/crypto/aes/asm/aesv8-armx.pl @@ -152,7 +152,7 @@ $code.=<<___ if ($flavour =~ /64/); adrp $ptr,.Lrcon add $ptr,$ptr,:lo12:.Lrcon ___ -$code.=<<___ if ($flavour =~ /32/); +$code.=<<___ if ($flavour !~ /64/); adr $ptr,.Lrcon ___ $code.=<<___;