From 2d321448b245a239c49a54e31cbd9d97a14b5d4e Mon Sep 17 00:00:00 2001 From: Prashanth Swaminathan Date: Mon, 29 Jan 2024 13:20:54 -0800 Subject: [PATCH] Add support in configuration for android-riscv64 Android is enabling support for the riscv64 ISA. Add a configuration option to support building for it, aligned with the existing linux-riscv64 configuration. Reviewed-by: Hugo Landau Reviewed-by: Todd Short (Merged from https://github.com/openssl/openssl/pull/23427) --- Configurations/15-android.conf | 7 +++++++ NOTES-ANDROID.md | 4 ++-- util/perl/OpenSSL/config.pm | 1 + 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Configurations/15-android.conf b/Configurations/15-android.conf index 41ad9223e0..1de6b7a915 100644 --- a/Configurations/15-android.conf +++ b/Configurations/15-android.conf @@ -12,6 +12,7 @@ arm64 => "aarch64-linux-android", mips => "mipsel-linux-android", mips64 => "mips64el-linux-android", + riscv64 => "riscv64-linux-android", x86 => "i686-linux-android", x86_64 => "x86_64-linux-android", ); @@ -270,6 +271,12 @@ my %targets = ( perlasm_scheme => "elf", }, + "android-riscv64" => { + inherit_from => [ "android" ], + asm_arch => 'riscv64', + perlasm_scheme => "linux64", + }, + #################################################################### # Backward compatible targets, (might) require $CROSS_SYSROOT # diff --git a/NOTES-ANDROID.md b/NOTES-ANDROID.md index c79b2212d4..b71365fe73 100644 --- a/NOTES-ANDROID.md +++ b/NOTES-ANDROID.md @@ -17,8 +17,8 @@ Notes for Android platforms Android is a cross-compiled target and you can't rely on `./Configure` to find out the configuration target for you. You have to name your target explicitly; there are `android-arm`, `android-arm64`, `android-mips`, - `android-mip64`, `android-x86` and `android-x86_64` (`*MIPS` targets are no - longer supported with NDK R20+). + `android-mip64`, `android-x86`, `android-x86_64` and `android-riscv64` + (`*MIPS` targets are no longer supported with NDK R20+). Do not pass --cross-compile-prefix (as you might be tempted), as it will be "calculated" automatically based on chosen platform. However, diff --git a/util/perl/OpenSSL/config.pm b/util/perl/OpenSSL/config.pm index 970e65dc97..78e1e3774b 100755 --- a/util/perl/OpenSSL/config.pm +++ b/util/perl/OpenSSL/config.pm @@ -859,6 +859,7 @@ EOF cflags => [ '-march=armv7-a' ], cxxflags => [ '-march=armv7-a' ] } ], [ 'arm.*-.*-android', { target => "android-armeabi" } ], + [ 'riscv64-.*-android', { target => "android-riscv64" } ], [ '.*-hpux1.*', sub { my $KERNEL_BITS = $ENV{KERNEL_BITS};