Add support for 64-bit big-endian PowerPC.

Not added to CI. We need to find a better solution for supporting PowerPC
(and s390x and other less-common archs) in CI.
This commit is contained in:
Brian Smith 2023-10-01 17:38:23 -07:00
parent 0bf9d2ac1f
commit 00d639339a
3 changed files with 17 additions and 2 deletions

View File

@ -45,9 +45,9 @@
#define OPENSSL_MIPS64
#elif (defined(__PPC__) || defined(__powerpc__)) && defined(_BIG_ENDIAN)
#define OPENSSL_32_BIT
#elif (defined(__PPC64__) || defined(__powerpc64__)) && defined(_LITTLE_ENDIAN)
#elif (defined(__PPC64__) || defined(__powerpc64__)) && \
(defined(_LITTLE_ENDIAN) || defined(_BIG_ENDIAN))
#define OPENSSL_64_BIT
#define OPENSSL_PPC64LE
#elif defined(__riscv) && __SIZEOF_POINTER__ == 8
#define OPENSSL_64_BIT
#define OPENSSL_RISCV64

View File

@ -22,6 +22,7 @@ qemu_aarch64="qemu-aarch64 -L /usr/aarch64-linux-gnu"
qemu_arm="qemu-arm -L /usr/arm-linux-gnueabihf"
qemu_mipsel="qemu-mipsel -L /usr/mipsel-linux-gnu"
qemu_powerpc="qemu-ppc -L /usr/powerpc-linux-gnu"
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"
@ -110,6 +111,13 @@ case $target in
export CARGO_TARGET_POWERPC_UNKNOWN_LINUX_GNU_LINKER=powerpc-linux-gnu-gcc
export CARGO_TARGET_POWERPC_UNKNOWN_LINUX_GNU_RUNNER="$qemu_powerpc"
;;
powerpc64-unknown-linux-gnu)
export CC_powerpc64_unknown_linux_gnu=clang-$llvm_version
export AR_powerpc64_unknown_linux_gnu=llvm-ar-$llvm_version
export CFLAGS_powerpc64_unknown_linux_gnu="--sysroot=/usr/powerpc64-linux-gnu"
export CARGO_TARGET_POWERPC64_UNKNOWN_LINUX_GNU_LINKER=powerpc64-linux-gnu-gcc
export CARGO_TARGET_POWERPC64_UNKNOWN_LINUX_GNU_RUNNER="$qemu_powerpc64"
;;
powerpc64le-unknown-linux-gnu)
export CC_powerpc64le_unknown_linux_gnu=clang-$llvm_version
export AR_powerpc64le_unknown_linux_gnu=llvm-ar-$llvm_version

View File

@ -101,6 +101,13 @@ case $target in
libc6-dev-powerpc-cross \
qemu-user
;;
--target=powerpc64-unknown-linux-gnu)
use_clang=1
install_packages \
gcc-powerpc64-linux-gnu \
libc6-dev-ppc64-cross \
qemu-user
;;
--target=powerpc64le-unknown-linux-gnu)
use_clang=1
install_packages \