summaryrefslogtreecommitdiffstats
path: root/crypto/perlasm/arm-xlate.pl
diff options
context:
space:
mode:
authorAlexandr Nedvedicky <sashan@openssl.org>2025-01-15 16:41:33 +0100
committerTomas Mraz <tomas@openssl.org>2025-01-17 17:43:39 +0100
commit42aced5c9f0d7b5c90eecc3684b76762d7f64886 (patch)
tree680452bf719d9b21dc8a2e0900a633b762fb8f5f /crypto/perlasm/arm-xlate.pl
parentMove rodata to .rodata section for armv8 (diff)
downloadopenssl-42aced5c9f0d7b5c90eecc3684b76762d7f64886.tar.xz
openssl-42aced5c9f0d7b5c90eecc3684b76762d7f64886.zip
Work around to get llvm-mingw working on aarch64
It looks like llvm-mingw tool chain does not understand `.previous` asm directive (see https://sourceware.org/binutils/docs/as/Previous.html). As a workaround for win64 flavor (llvm-mingw toolchain) we let xlate to emit .text instead of emitting .previous. We also need to revisit usage of win64 flavor here in aarch64. We should perhaps introduce a mingw flavour on aarch64 as well. win assembly flavour should be used for microsoft assembler. Fixes #26415 Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/26428)
Diffstat (limited to 'crypto/perlasm/arm-xlate.pl')
-rwxr-xr-xcrypto/perlasm/arm-xlate.pl9
1 files changed, 9 insertions, 0 deletions
diff --git a/crypto/perlasm/arm-xlate.pl b/crypto/perlasm/arm-xlate.pl
index aef9595a5e..e07ce2c5c1 100755
--- a/crypto/perlasm/arm-xlate.pl
+++ b/crypto/perlasm/arm-xlate.pl
@@ -33,6 +33,15 @@ my $rodata = sub {
SWITCH: for ($flavour) {
/linux/ && return ".section\t.rodata";
/ios/ && return ".section\t__TEXT,__const";
+ /win64/ && return ".section\t.rodata";
+ last;
+ }
+};
+my $previous = sub {
+ SWITCH: for ($flavour) {
+ /linux/ && return ".previous";
+ /ios/ && return ".previous";
+ /win64/ && return ".text";
last;
}
};