Skip to content

Commit

Permalink
Fix ARM builds
Browse files Browse the repository at this point in the history
  • Loading branch information
rschu1ze committed Feb 22, 2024
1 parent d4b4dbd commit 18e1ea9
Show file tree
Hide file tree
Showing 39 changed files with 4,325 additions and 242 deletions.
38 changes: 31 additions & 7 deletions contrib/openssl-cmake/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ if(ARCH_AMD64)
add_definitions(-DAES_ASM -DBSAES_ASM -DCMLL_ASM -DECP_NISTZ256_ASM -DGHASH_ASM -DKECCAK1600_ASM -DMD5_ASM -DOPENSSL_BN_ASM_GF2m -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DPOLY1305_ASM -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DX25519_ASM -DL_ENDIAN)
elseif(ARCH_AARCH64)
set(PLATFORM_DIRECTORY linux_aarch64)
add_definitions(-DECP_NISTZ256_ASM -DKECCAK1600_ASM -DOPENSSL_BN_ASM_MONT -DOPENSSL_CPUID_OBJ -DPOLY1305_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DVPAES_ASM -DOPENSSL_USE_NODELETE -DL_ENDIAN)
add_definitions(-DBSAES_ASM -DECP_NISTZ256_ASM -DECP_SM2P256_ASM -DKECCAK1600_ASM -DMD5_ASM -DOPENSSL_BN_ASM_MONT -DOPENSSL_CPUID_OBJ -DOPENSSL_SM3_ASM -DPOLY1305_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DSM4_ASM -DVPAES_ASM -DVPSM4_ASM -DL_ENDIAN)
elseif(ARCH_PPC64LE)
set(PLATFORM_DIRECTORY linux_ppc64le)
add_definitions(-DAES_ASM -DECP_NISTP521_ASM -DECP_NISTZ256_ASM -DKECCAK1600_ASM -DOPENSSL_BN_ASM_MONT -DOPENSSL_CPUID_OBJ -DPOLY1305_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DVPAES_ASM -DX25519_ASM -DL_ENDIAN)
Expand Down Expand Up @@ -133,11 +133,15 @@ elseif(ARCH_AARCH64)
COMMAND /usr/bin/env perl ${FILE_IN} "linux64" ${FILE_OUT})
endmacro()

# OpenSSL 3.0
perl_generate_asm(${OPENSSL_SOURCE_DIR}/crypto/aes/asm/aesv8-armx.pl ${OPENSSL_BINARY_DIR}/crypto/aes/aesv8-armx.S)
perl_generate_asm(${OPENSSL_SOURCE_DIR}/crypto/aes/asm/bsaes-armv8.pl ${OPENSSL_BINARY_DIR}/crypto/aes/bsaes-armv8.S)
perl_generate_asm(${OPENSSL_SOURCE_DIR}/crypto/aes/asm/vpaes-armv8.pl ${OPENSSL_BINARY_DIR}/crypto/aes/vpaes-armv8.S)
perl_generate_asm(${OPENSSL_SOURCE_DIR}/crypto/bn/asm/armv8-mont.pl ${OPENSSL_BINARY_DIR}/crypto/bn/armv8-mont.S)
perl_generate_asm(${OPENSSL_SOURCE_DIR}/crypto/chacha/asm/chacha-armv8.pl ${OPENSSL_BINARY_DIR}/crypto/chacha/chacha-armv8.S)
perl_generate_asm(${OPENSSL_SOURCE_DIR}/crypto/chacha/asm/chacha-armv8-sve.pl ${OPENSSL_BINARY_DIR}/crypto/chacha/chacha-armv8-sve.S)
perl_generate_asm(${OPENSSL_SOURCE_DIR}/crypto/ec/asm/ecp_nistz256-armv8.pl ${OPENSSL_BINARY_DIR}/crypto/ec/ecp_nistz256-armv8.S)
perl_generate_asm(${OPENSSL_SOURCE_DIR}/crypto/ec/asm/ecp_sm2p256-armv8.pl ${OPENSSL_BINARY_DIR}/crypto/ec/ecp_sm2p256-armv8.S)
perl_generate_asm(${OPENSSL_SOURCE_DIR}/crypto/arm64cpuid.pl ${OPENSSL_BINARY_DIR}/crypto/arm64cpuid.S)
perl_generate_asm(${OPENSSL_SOURCE_DIR}/crypto/modes/asm/ghashv8-armx.pl ${OPENSSL_BINARY_DIR}/crypto/modes/ghashv8-armx.S)
perl_generate_asm(${OPENSSL_SOURCE_DIR}/crypto/poly1305/asm/poly1305-armv8.pl ${OPENSSL_BINARY_DIR}/crypto/poly1305/poly1305-armv8.S)
Expand All @@ -146,6 +150,12 @@ elseif(ARCH_AARCH64)
perl_generate_asm(${OPENSSL_SOURCE_DIR}/crypto/sha/asm/sha512-armv8.pl ${OPENSSL_BINARY_DIR}/crypto/sha/sha256-armv8.S) # This is not a mistake
perl_generate_asm(${OPENSSL_SOURCE_DIR}/crypto/sha/asm/sha512-armv8.pl ${OPENSSL_BINARY_DIR}/crypto/sha/sha512-armv8.S)
perl_generate_asm(${OPENSSL_SOURCE_DIR}/crypto/modes/asm/aes-gcm-armv8_64.pl ${OPENSSL_BINARY_DIR}/crypto/modes/asm/aes-gcm-armv8_64.S)
perl_generate_asm(${OPENSSL_SOURCE_DIR}/crypto/modes/asm/aes-gcm-armv8-unroll8_64.pl ${OPENSSL_BINARY_DIR}/crypto/modes/asm/aes-gcm-armv8-unroll8_64.S)
perl_generate_asm(${OPENSSL_SOURCE_DIR}/crypto/sm3/asm/sm3-armv8.pl ${OPENSSL_BINARY_DIR}/crypto/sm3/asm/sm3-armv8.S)
perl_generate_asm(${OPENSSL_SOURCE_DIR}/crypto/sm4/asm/sm4-armv8.pl ${OPENSSL_BINARY_DIR}/crypto/sm4/asm/sm4-armv8.S)
perl_generate_asm(${OPENSSL_SOURCE_DIR}/crypto/sm4/asm/vpsm4-armv8.pl ${OPENSSL_BINARY_DIR}/crypto/sm4/asm/vpsm4-armv8.S)
perl_generate_asm(${OPENSSL_SOURCE_DIR}/crypto/sm4/asm/vpsm4_ex-armv8.pl ${OPENSSL_BINARY_DIR}/crypto/sm4/asm/vpsm4_ex-armv8.S)
perl_generate_asm(${OPENSSL_SOURCE_DIR}/crypto/md5/asm/md5-aarch64.pl ${OPENSSL_BINARY_DIR}/crypto/md5/asm/md5-aarch64.S)
elseif(ARCH_PPC64LE)
macro(perl_generate_asm FILE_IN FILE_OUT)
add_custom_command(OUTPUT ${FILE_OUT}
Expand Down Expand Up @@ -1210,7 +1220,6 @@ set(CRYPTO_SRC
${OPENSSL_SOURCE_DIR}/crypto/bio/bss_null.c
${OPENSSL_SOURCE_DIR}/crypto/bio/bss_sock.c
${OPENSSL_SOURCE_DIR}/crypto/bio/ossl_core_bio.c
${OPENSSL_SOURCE_DIR}/crypto/bn/asm/x86_64-gcc.c
${OPENSSL_SOURCE_DIR}/crypto/bn/bn_add.c
${OPENSSL_SOURCE_DIR}/crypto/bn/bn_blind.c
${OPENSSL_SOURCE_DIR}/crypto/bn/bn_const.c
Expand Down Expand Up @@ -2141,6 +2150,7 @@ if(ARCH_AMD64)
)
elseif(ARCH_AARCH64)
set(CRYPTO_SRC ${CRYPTO_SRC}
# OpenSSL 3.0
${OPENSSL_SOURCE_DIR}/crypto/aes/aes_cbc.c
${OPENSSL_SOURCE_DIR}/crypto/aes/aes_core.c
${OPENSSL_SOURCE_DIR}/crypto/bn/bn_asm.c
Expand All @@ -2155,18 +2165,32 @@ elseif(ARCH_AARCH64)
${OPENSSL_BINARY_DIR}/crypto/bn/armv8-mont.S
${OPENSSL_BINARY_DIR}/crypto/chacha/chacha-armv8.S
${OPENSSL_BINARY_DIR}/crypto/ec/ecp_nistz256-armv8.S
${OPENSSL_SOURCE_DIR}/crypto/ec/ecp_nistp521.c
${OPENSSL_SOURCE_DIR}/crypto/ec/ecp_nistp256.c
${OPENSSL_SOURCE_DIR}/crypto/ec/ecp_nistp224.c
${OPENSSL_SOURCE_DIR}/crypto/ec/ecp_nistz256.c
# ${OPENSSL_SOURCE_DIR}/crypto/ec/ecp_nistp521.c
# ${OPENSSL_SOURCE_DIR}/crypto/ec/ecp_nistp256.c
# ${OPENSSL_SOURCE_DIR}/crypto/ec/ecp_nistp224.c
# ${OPENSSL_SOURCE_DIR}/crypto/ec/ecp_nistz256.c
${OPENSSL_SOURCE_DIR}/crypto/ec/ecp_sm2p256.c
${OPENSSL_SOURCE_DIR}/crypto/ec/ecp_sm2p256_table.c
${OPENSSL_BINARY_DIR}/crypto/arm64cpuid.S
${OPENSSL_BINARY_DIR}/crypto/modes/ghashv8-armx.S
${OPENSSL_BINARY_DIR}/crypto/poly1305/poly1305-armv8.S
${OPENSSL_BINARY_DIR}/crypto/sha/keccak1600-armv8.S
${OPENSSL_BINARY_DIR}/crypto/sha/sha1-armv8.S
${OPENSSL_BINARY_DIR}/crypto/sha/sha256-armv8.S
${OPENSSL_BINARY_DIR}/crypto/sha/sha512-armv8.S
${OPENSSL_BINARY_DIR}/crypto/modes/asm/aes-gcm-armv8_64.S)
${OPENSSL_BINARY_DIR}/crypto/modes/asm/aes-gcm-armv8_64.S
${OPENSSL_BINARY_DIR}/crypto/sm4/asm/sm4-armv8.S
${OPENSSL_BINARY_DIR}/crypto/sm4/asm/vpsm4-armv8.S
${OPENSSL_BINARY_DIR}/crypto/md5/asm/md5-aarch64.S
${OPENSSL_BINARY_DIR}/crypto/aes/bsaes-armv8.S
${OPENSSL_BINARY_DIR}/crypto/chacha/chacha-armv8-sve.S
${OPENSSL_BINARY_DIR}/crypto/ec/ecp_sm2p256-armv8.S
${OPENSSL_BINARY_DIR}/crypto/modes/asm/aes-gcm-armv8-unroll8_64.S
${OPENSSL_BINARY_DIR}/crypto/sm3/asm/sm3-armv8.S
${OPENSSL_BINARY_DIR}/crypto/sm4/asm/vpsm4_ex-armv8.S

${PLATFORM_DIRECTORY}/params_idx.c
)
elseif(ARCH_PPC64LE)
set(CRYPTO_SRC ${CRYPTO_SRC}
${OPENSSL_SOURCE_DIR}/crypto/aes/aes_cbc.c
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* WARNING: do not edit! */
/* Generated by Makefile from ../include/crypto/bn_conf.h.in */
/* Generated by Makefile from include/crypto/bn_conf.h.in */
/*
* Copyright 2016-2021 The OpenSSL Project Authors. All Rights Reserved.
*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* WARNING: do not edit! */
/* Generated by Makefile from ../include/crypto/dso_conf.h.in */
/* Generated by Makefile from include/crypto/dso_conf.h.in */
/*
* Copyright 2016-2021 The OpenSSL Project Authors. All Rights Reserved.
*
Expand Down
Loading

0 comments on commit 18e1ea9

Please sign in to comment.