mirror of
https://github.com/opnsense/src.git
synced 2026-02-27 03:40:37 -05:00
Notably, define AES_ASM which is required for any AES acceleration (OpenSSL 1.0 gated all AES acceleration on OPENSSL_CPUID_OBJ instead). Enabling this exposed that new assembly files added in OpenSSL 3.0 needed to be included in the build (aes-x86-64.S and aes-586.S). Both of these files supplant both aes_core.c and aes_cbc.c. The last file had to be moved out of the MI SRCS line for aes and into each ASM_* for non-x86. As part of this I audited the generated configdata.pm for amd64, i386, and aarch64 and found the following additional discrepecancies that are fixed here as well: - Enabled BSAES_ASM on amd64 which requires bsase-x86_64.S - Enabled WHIRLPOOL_ASM on amd64 (asm sources already built) - Enabled CMLL_ASM on amd64 and i386 (asm sources already built) aarch64 had no discreprecancies in configdata.pm, and no *.pl asm generators were missing for aarch64 in Makefile.asm. I did not check powerpc or armv7, but for armv7 all of the asm generators seem to be present in Makefile.asm. Reported by: gallatin (AES-GCM using plain software on amd64) Reviewed by: gallatin, ngie, emaste Differential Revision: https://reviews.freebsd.org/D41539
117 lines
3 KiB
Makefile
117 lines
3 KiB
Makefile
|
|
.include <bsd.endian.mk>
|
|
|
|
.if ${TARGET_ENDIANNESS} == 1234
|
|
CFLAGS+= -DL_ENDIAN
|
|
.elif ${TARGET_ENDIANNESS} == 4321
|
|
CFLAGS+= -DB_ENDIAN
|
|
.endif
|
|
|
|
.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \
|
|
${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "i386"
|
|
ASM_${MACHINE_CPUARCH}=
|
|
.elif ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "powerpc64" || \
|
|
${MACHINE_ARCH} == "powerpc64le"
|
|
ASM_${MACHINE_ARCH}=
|
|
.endif
|
|
|
|
.if defined(ASM_${MACHINE_CPUARCH}) || defined(ASM_${MACHINE_ARCH})
|
|
CFLAGS+= -DOPENSSL_CPUID_OBJ
|
|
.if defined(ASM_aarch64)
|
|
CFLAGS+= -DOPENSSL_BN_ASM_MONT
|
|
CFLAGS+= -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
|
|
CFLAGS+= -DKECCAK1600_ASM
|
|
CFLAGS+= -DVPAES_ASM
|
|
CFLAGS+= -DECP_NISTZ256_ASM
|
|
CFLAGS+= -DPOLY1305_ASM
|
|
.elif defined(ASM_amd64)
|
|
CFLAGS+= -DOPENSSL_IA32_SSE2
|
|
CFLAGS+= -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5
|
|
CFLAGS+= -DOPENSSL_BN_ASM_GF2m
|
|
CFLAGS+= -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
|
|
CFLAGS+= -DKECCAK1600_ASM
|
|
CFLAGS+= -DRC4_ASM
|
|
CFLAGS+= -DMD5_ASM
|
|
CFLAGS+= -DAES_ASM
|
|
CFLAGS+= -DBSAES_ASM
|
|
CFLAGS+= -DVPAES_ASM
|
|
CFLAGS+= -DWHIRLPOOL_ASM
|
|
CFLAGS+= -DGHASH_ASM
|
|
CFLAGS+= -DCMLL_ASM
|
|
CFLAGS+= -DECP_NISTZ256_ASM -DX25519_ASM
|
|
CFLAGS+= -DPADLOCK_ASM
|
|
CFLAGS+= -DPOLY1305_ASM
|
|
.elif defined(ASM_arm)
|
|
CFLAGS+= -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m
|
|
CFLAGS+= -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
|
|
CFLAGS+= -DKECCAK1600_ASM
|
|
CFLAGS+= -DBSAES_ASM
|
|
CFLAGS+= -DGHASH_ASM
|
|
CFLAGS+= -DECP_NISTZ256_ASM
|
|
CFLAGS+= -DPOLY1305_ASM
|
|
.elif defined(ASM_i386)
|
|
CFLAGS+= -DOPENSSL_IA32_SSE2
|
|
CFLAGS+= -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_BN_ASM_MONT
|
|
CFLAGS+= -DOPENSSL_BN_ASM_GF2m
|
|
CFLAGS+= -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM
|
|
CFLAGS+= -DRC4_ASM
|
|
CFLAGS+= -DMD5_ASM
|
|
CFLAGS+= -DRMD160_ASM
|
|
CFLAGS+= -DAES_ASM
|
|
CFLAGS+= -DVPAES_ASM
|
|
CFLAGS+= -DWHIRLPOOL_ASM
|
|
CFLAGS+= -DGHASH_ASM
|
|
CFLAGS+= -DCMLL_ASM
|
|
CFLAGS+= -DECP_NISTZ256_ASM
|
|
CFLAGS+= -DPADLOCK_ASM
|
|
CFLAGS+= -DPOLY1305_ASM
|
|
.elif defined(ASM_powerpc)
|
|
CFLAGS+= -DOPENSSL_BN_ASM_MONT
|
|
CFLAGS+= -DAES_ASM
|
|
CFLAGS+= -DVPAES_ASM
|
|
CFLAGS+= -DSHA1_ASM
|
|
CFLAGS+= -DSHA256_ASM
|
|
CFLAGS+= -DSHA512_ASM
|
|
CFLAGS+= -DPOLY1305_ASM
|
|
.elif defined(ASM_powerpc64)
|
|
CFLAGS+= -DOPENSSL_BN_ASM_MONT
|
|
CFLAGS+= -DAES_ASM
|
|
CFLAGS+= -DVPAES_ASM
|
|
CFLAGS+= -DSHA1_ASM
|
|
CFLAGS+= -DSHA256_ASM
|
|
CFLAGS+= -DSHA512_ASM
|
|
CFLAGS+= -DPOLY1305_ASM
|
|
CFLAGS+= -DECP_NISTZ256_ASM
|
|
CFLAGS+= -DX25519_ASM
|
|
CFLAGS+= -DKECCAK1600_ASM
|
|
.elif defined(ASM_powerpc64le)
|
|
CFLAGS+= -DOPENSSL_BN_ASM_MONT
|
|
CFLAGS+= -DAES_ASM
|
|
CFLAGS+= -DVPAES_ASM
|
|
CFLAGS+= -DSHA1_ASM
|
|
CFLAGS+= -DSHA256_ASM
|
|
CFLAGS+= -DSHA512_ASM
|
|
CFLAGS+= -DPOLY1305_ASM
|
|
CFLAGS+= -DECP_NISTZ256_ASM
|
|
CFLAGS+= -DX25519_ASM
|
|
CFLAGS+= -DKECCAK1600_ASM
|
|
.endif
|
|
.endif
|
|
|
|
MANDIR= ${SHAREDIR}/openssl/man/man
|
|
|
|
CFLAGS+= -DOPENSSLDIR="\"/etc/ssl\""
|
|
CFLAGS+= -DENGINESDIR="\"${LIBDIR}/engines-3\""
|
|
CFLAGS+= -DMODULESDIR="\"${LIBDIR}/ossl-modules\""
|
|
|
|
CFLAGS+= -DNDEBUG
|
|
|
|
CFLAGS+= -I${LCRYPTO_SRC}/crypto
|
|
CFLAGS+= -I${LCRYPTO_SRC}/crypto/ec/curve448
|
|
CFLAGS+= -I${LCRYPTO_SRC}/crypto/ec/curve448/arch_32
|
|
CFLAGS+= -I${LCRYPTO_SRC}/crypto/modes
|
|
CFLAGS+= -I${.OBJDIR}
|
|
|
|
.if !empty(SRCS:M*.S)
|
|
ACFLAGS+= -Wa,--noexecstack
|
|
.endif
|