From 406328998bba6b634ad4d7df8255dfff3eda8de1 Mon Sep 17 00:00:00 2001 From: Richard-Rogalski Date: Thu, 23 May 2024 16:09:22 -0500 Subject: [PATCH] Introduce SPARC64 support Closes: #1512 Signed-off-by: Richard Rogalski --- include/ring-core/target.h | 2 ++ mk/cargo.sh | 6 ++++++ mk/install-build-tools.sh | 6 ++++++ 3 files changed, 14 insertions(+) diff --git a/include/ring-core/target.h b/include/ring-core/target.h index d58eb11953..dfdcd6bcbb 100644 --- a/include/ring-core/target.h +++ b/include/ring-core/target.h @@ -60,6 +60,8 @@ #define OPENSSL_32_BIT #elif defined(__s390x__) #define OPENSSL_64_BIT +#elif defined(__sparc_v9__) && defined(__LP64__) +#define OPENSSL_64_BIT #else #error "Unknown target CPU" #endif diff --git a/mk/cargo.sh b/mk/cargo.sh index 567e4be183..0c679c612e 100755 --- a/mk/cargo.sh +++ b/mk/cargo.sh @@ -30,6 +30,7 @@ qemu_powerpc64="qemu-ppc64 -L /usr/powerpc64-linux-gnu" qemu_powerpc64le="qemu-ppc64le -L /usr/powerpc64le-linux-gnu" qemu_riscv64="qemu-riscv64 -L /usr/riscv64-linux-gnu" qemu_s390x="qemu-s390x -L /usr/s390x-linux-gnu" +qemu_sparc64="qemu-sparc64 -L /usr/sparc64-linux-gnu" # Avoid putting the Android tools in `$PATH` because there are tools in this # directory like `clang` that would conflict with the same-named tools that may @@ -170,6 +171,11 @@ case $target in export CARGO_TARGET_S390X_UNKNOWN_LINUX_GNU_LINKER=s390x-linux-gnu-gcc export CARGO_TARGET_S390X_UNKNOWN_LINUX_GNU_RUNNER="$qemu_s390x" ;; + sparc64-unknown-linux-gnu) + export CFLAGS_sparc64_unknown_linux_gnu="--sysroot=/usr/sparc64-linux-gnu" + export CARGO_TARGET_SPARC64_UNKNOWN_LINUX_GNU_LINKER=sparc64-linux-gnu-gcc + export CARGO_TARGET_SPARC64_UNKNOWN_LINUX_GNU_RUNNER="$qemu_sparc64" + ;; x86_64-unknown-linux-musl) use_clang=1 # XXX: Work around https://github.com/rust-lang/rust/issues/79555. diff --git a/mk/install-build-tools.sh b/mk/install-build-tools.sh index ee26037aee..bbe6104c88 100755 --- a/mk/install-build-tools.sh +++ b/mk/install-build-tools.sh @@ -165,6 +165,12 @@ s390x-unknown-linux-gnu) gcc-s390x-linux-gnu \ libc6-dev-s390x-cross ;; +sparc64-unknown-linux-gnu) + install_packages \ + qemu-user \ + gcc-sparc64-linux-gnu \ + libc6-dev-sparc64-cross + ;; wasm32-unknown-unknown) cargo install wasm-bindgen-cli --bin wasm-bindgen-test-runner use_clang=1