]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Fix aesv8 arm assembler code not working on 32 bit Android
authorArne Schwabe <arne@rfc2549.org>
Sat, 26 Apr 2025 18:21:28 +0000 (20:21 +0200)
committerTomas Mraz <tomas@openssl.org>
Tue, 29 Apr 2025 17:41:53 +0000 (19:41 +0200)
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 <arne@rfc2549.org>
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27510)

crypto/aes/asm/aesv8-armx.pl

index 5ca6fbebf2abdf9843fe4cb2b0a769bda76b1b4b..82e60d788ec2147b898275c686f2963d2c5d8751 100755 (executable)
@@ -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.=<<___;