git: e655cc70dfcd - main - ossl: Move arm_arch.h to a common subdirectory
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 04 Dec 2023 17:48:46 UTC
The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=e655cc70dfcda5cfedb5a1d9bef1e87d55519f64 commit e655cc70dfcda5cfedb5a1d9bef1e87d55519f64 Author: Mark Johnston <markj@FreeBSD.org> AuthorDate: 2023-12-04 17:29:11 +0000 Commit: Mark Johnston <markj@FreeBSD.org> CommitDate: 2023-12-04 17:29:11 +0000 ossl: Move arm_arch.h to a common subdirectory OpenSSL itself keeps only a single copy of this header. Do the same in sys/crypto/openssl to avoid the extra maintenance burden. This requires adjusting the include paths for generated asm files. No functional change intended. Reported by: jrtc27 Reviewed by: jhb MFC after: 3 months Differential Revision: https://reviews.freebsd.org/D42866 --- secure/lib/libcrypto/Makefile.asm | 3 +- sys/conf/files.arm | 23 +++++--- sys/conf/files.arm64 | 6 +-- sys/crypto/openssl/arm/arm_arch.h | 84 ----------------------------- sys/crypto/openssl/arm/ossl_aes_gcm.c | 2 +- sys/crypto/openssl/{aarch64 => }/arm_arch.h | 0 sys/crypto/openssl/ossl_aarch64.c | 2 +- sys/crypto/openssl/ossl_aarch64.h | 2 +- sys/crypto/openssl/ossl_arm.c | 2 +- sys/modules/armv8crypto/Makefile | 3 +- sys/modules/ossl/Makefile | 2 + 11 files changed, 28 insertions(+), 101 deletions(-) diff --git a/secure/lib/libcrypto/Makefile.asm b/secure/lib/libcrypto/Makefile.asm index 644965c1ac1c..d4f7269aa500 100644 --- a/secure/lib/libcrypto/Makefile.asm +++ b/secure/lib/libcrypto/Makefile.asm @@ -46,7 +46,7 @@ ASM= ${SRCS:R:S/$/.S/} sha256-armv8.S all: ${ASM} rm -f ${ASM:R:S/$/.s/} - ${CP} ${LCRYPTO_SRC}/crypto/arm_arch.h arm_arch.h + ${CP} ${LCRYPTO_SRC}/crypto/arm_arch.h ../arm_arch.h CLEANFILES= ${ASM} .SUFFIXES: .pl @@ -186,6 +186,7 @@ ASM= ${SRCS:R:S/$/.S/} all: ${ASM} rm -f ${ASM:R:S/$/.s/} + ${CP} ${LCRYPTO_SRC}/crypto/arm_arch.h ../arm_arch.h CLEANFILES= ${ASM} .SUFFIXES: .pl diff --git a/sys/conf/files.arm b/sys/conf/files.arm index 4dcbd18bdeb9..8b5674b839df 100644 --- a/sys/conf/files.arm +++ b/sys/conf/files.arm @@ -137,15 +137,22 @@ libkern/umoddi3.c standard crypto/openssl/ossl_arm.c optional ossl crypto/openssl/arm/ossl_aes_gcm.c optional ossl -crypto/openssl/arm/aes-armv4.S optional ossl +crypto/openssl/arm/aes-armv4.S optional ossl \ + compile-with "${NORMAL_C} -I${SRCTOP}/sys/crypto/openssl" crypto/openssl/arm/bsaes-armv7.S optional ossl \ - compile-with "${CC} -D__KERNEL__ -c ${CFLAGS:N-mgeneral-regs-only} ${WERROR} ${.IMPSRC}" -crypto/openssl/arm/chacha-armv4.S optional ossl -crypto/openssl/arm/ghash-armv4.S optional ossl -crypto/openssl/arm/poly1305-armv4.S optional ossl -crypto/openssl/arm/sha1-armv4-large.S optional ossl -crypto/openssl/arm/sha256-armv4.S optional ossl -crypto/openssl/arm/sha512-armv4.S optional ossl + compile-with "${CC} -D__KERNEL__ -c ${CFLAGS:N-mgeneral-regs-only} -I${SRCTOP}/sys/crypto/openssl ${WERROR} ${.IMPSRC}" +crypto/openssl/arm/chacha-armv4.S optional ossl \ + compile-with "${NORMAL_C} -I${SRCTOP}/sys/crypto/openssl" +crypto/openssl/arm/ghash-armv4.S optional ossl \ + compile-with "${NORMAL_C} -I${SRCTOP}/sys/crypto/openssl" +crypto/openssl/arm/poly1305-armv4.S optional ossl \ + compile-with "${NORMAL_C} -I${SRCTOP}/sys/crypto/openssl" +crypto/openssl/arm/sha1-armv4-large.S optional ossl \ + compile-with "${NORMAL_C} -I${SRCTOP}/sys/crypto/openssl" +crypto/openssl/arm/sha256-armv4.S optional ossl \ + compile-with "${NORMAL_C} -I${SRCTOP}/sys/crypto/openssl" +crypto/openssl/arm/sha512-armv4.S optional ossl \ + compile-with "${NORMAL_C} -I${SRCTOP}/sys/crypto/openssl" # Annapurna support arm/annapurna/alpine/alpine_ccu.c optional al_ccu fdt diff --git a/sys/conf/files.arm64 b/sys/conf/files.arm64 index 9ccead6a98e1..5d9464bade9c 100644 --- a/sys/conf/files.arm64 +++ b/sys/conf/files.arm64 @@ -119,17 +119,17 @@ dev/iommu/iommu_gas.c optional iommu crypto/armv8/armv8_crypto.c optional armv8crypto armv8_crypto_wrap.o optional armv8crypto \ dependency "$S/crypto/armv8/armv8_crypto_wrap.c" \ - compile-with "${CC} -c ${CFLAGS:C/^-O2$/-O3/:N-nostdinc:N-mgeneral-regs-only} -I$S/crypto/armv8/ ${WERROR} ${NO_WCAST_QUAL} ${CFLAGS:M-march=*:S/^$/-march=armv8-a/}+crypto ${.IMPSRC}" \ + compile-with "${CC} -c ${CFLAGS:C/^-O2$/-O3/:N-nostdinc:N-mgeneral-regs-only} -I$S/crypto/armv8 ${WERROR} ${NO_WCAST_QUAL} ${CFLAGS:M-march=*:S/^$/-march=armv8-a/}+crypto ${.IMPSRC}" \ no-implicit-rule \ clean "armv8_crypto_wrap.o" aesv8-armx.o optional armv8crypto | ossl \ dependency "$S/crypto/openssl/aarch64/aesv8-armx.S" \ - compile-with "${CC} -c ${CFLAGS:C/^-O2$/-O3/:N-nostdinc:N-mgeneral-regs-only} -I$S/crypto/armv8/ ${WERROR} ${NO_WCAST_QUAL} ${CFLAGS:M-march=*:S/^$/-march=armv8-a/}+crypto ${.IMPSRC}" \ + compile-with "${CC} -c ${CFLAGS:C/^-O2$/-O3/:N-nostdinc:N-mgeneral-regs-only} -I$S/crypto/armv8 -I$S/crypto/openssl ${WERROR} ${NO_WCAST_QUAL} ${CFLAGS:M-march=*:S/^$/-march=armv8-a/}+crypto ${.IMPSRC}" \ no-implicit-rule \ clean "aesv8-armx.o" ghashv8-armx.o optional armv8crypto \ dependency "$S/crypto/openssl/aarch64/ghashv8-armx.S" \ - compile-with "${CC} -c ${CFLAGS:C/^-O2$/-O3/:N-nostdinc:N-mgeneral-regs-only} -I$S/crypto/armv8/ ${WERROR} ${NO_WCAST_QUAL} ${CFLAGS:M-march=*:S/^$/-march=armv8-a/}+crypto ${.IMPSRC}" \ + compile-with "${CC} -c ${CFLAGS:C/^-O2$/-O3/:N-nostdinc:N-mgeneral-regs-only} -I$S/crypto/armv8 -I$S/crypto/openssl ${WERROR} ${NO_WCAST_QUAL} ${CFLAGS:M-march=*:S/^$/-march=armv8-a/}+crypto ${.IMPSRC}" \ no-implicit-rule \ clean "ghashv8-armx.o" diff --git a/sys/crypto/openssl/arm/arm_arch.h b/sys/crypto/openssl/arm/arm_arch.h deleted file mode 100644 index 8b7105571d78..000000000000 --- a/sys/crypto/openssl/arm/arm_arch.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2011-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef OSSL_CRYPTO_ARM_ARCH_H -# define OSSL_CRYPTO_ARM_ARCH_H - -# if !defined(__ARM_ARCH__) -# if defined(__CC_ARM) -# define __ARM_ARCH__ __TARGET_ARCH_ARM -# if defined(__BIG_ENDIAN) -# define __ARMEB__ -# else -# define __ARMEL__ -# endif -# elif defined(__GNUC__) -# if defined(__aarch64__) -# define __ARM_ARCH__ 8 -# if __BYTE_ORDER__==__ORDER_BIG_ENDIAN__ -# define __ARMEB__ -# else -# define __ARMEL__ -# endif - /* - * Why doesn't gcc define __ARM_ARCH__? Instead it defines - * bunch of below macros. See all_architectures[] table in - * gcc/config/arm/arm.c. On a side note it defines - * __ARMEL__/__ARMEB__ for little-/big-endian. - */ -# elif defined(__ARM_ARCH) -# define __ARM_ARCH__ __ARM_ARCH -# elif defined(__ARM_ARCH_8A__) -# define __ARM_ARCH__ 8 -# elif defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || \ - defined(__ARM_ARCH_7R__)|| defined(__ARM_ARCH_7M__) || \ - defined(__ARM_ARCH_7EM__) -# define __ARM_ARCH__ 7 -# elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || \ - defined(__ARM_ARCH_6K__)|| defined(__ARM_ARCH_6M__) || \ - defined(__ARM_ARCH_6Z__)|| defined(__ARM_ARCH_6ZK__) || \ - defined(__ARM_ARCH_6T2__) -# define __ARM_ARCH__ 6 -# elif defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || \ - defined(__ARM_ARCH_5E__)|| defined(__ARM_ARCH_5TE__) || \ - defined(__ARM_ARCH_5TEJ__) -# define __ARM_ARCH__ 5 -# elif defined(__ARM_ARCH_4__) || defined(__ARM_ARCH_4T__) -# define __ARM_ARCH__ 4 -# else -# error "unsupported ARM architecture" -# endif -# endif -# endif - -# if !defined(__ARM_MAX_ARCH__) -# define __ARM_MAX_ARCH__ __ARM_ARCH__ -# endif - -# if __ARM_MAX_ARCH__<__ARM_ARCH__ -# error "__ARM_MAX_ARCH__ can't be less than __ARM_ARCH__" -# elif __ARM_MAX_ARCH__!=__ARM_ARCH__ -# if __ARM_ARCH__<7 && __ARM_MAX_ARCH__>=7 && defined(__ARMEB__) -# error "can't build universal big-endian binary" -# endif -# endif - -# ifndef __ASSEMBLER__ -extern unsigned int OPENSSL_armcap_P; -# endif - -# define ARMV7_NEON (1<<0) -# define ARMV7_TICK (1<<1) -# define ARMV8_AES (1<<2) -# define ARMV8_SHA1 (1<<3) -# define ARMV8_SHA256 (1<<4) -# define ARMV8_PMULL (1<<5) -# define ARMV8_SHA512 (1<<6) - -#endif diff --git a/sys/crypto/openssl/arm/ossl_aes_gcm.c b/sys/crypto/openssl/arm/ossl_aes_gcm.c index 71a977c446ae..e51b7b4fbc04 100644 --- a/sys/crypto/openssl/arm/ossl_aes_gcm.c +++ b/sys/crypto/openssl/arm/ossl_aes_gcm.c @@ -15,7 +15,7 @@ #include <crypto/openssl/ossl_arm.h> #include <crypto/openssl/ossl_aes_gcm.h> #include <crypto/openssl/ossl_cipher.h> -#include <crypto/openssl/arm/arm_arch.h> +#include <crypto/openssl/arm_arch.h> #include <opencrypto/cryptodev.h> diff --git a/sys/crypto/openssl/aarch64/arm_arch.h b/sys/crypto/openssl/arm_arch.h similarity index 100% rename from sys/crypto/openssl/aarch64/arm_arch.h rename to sys/crypto/openssl/arm_arch.h diff --git a/sys/crypto/openssl/ossl_aarch64.c b/sys/crypto/openssl/ossl_aarch64.c index b53abd905f6d..a9d0b0bbe211 100644 --- a/sys/crypto/openssl/ossl_aarch64.c +++ b/sys/crypto/openssl/ossl_aarch64.c @@ -35,7 +35,7 @@ #include <crypto/openssl/ossl.h> #include <crypto/openssl/ossl_cipher.h> -#include <crypto/openssl/aarch64/arm_arch.h> +#include <crypto/openssl/arm_arch.h> /* * Feature bits defined in arm_arch.h diff --git a/sys/crypto/openssl/ossl_aarch64.h b/sys/crypto/openssl/ossl_aarch64.h index f933f862d009..57183aa9ed69 100644 --- a/sys/crypto/openssl/ossl_aarch64.h +++ b/sys/crypto/openssl/ossl_aarch64.h @@ -12,7 +12,7 @@ #include <crypto/openssl/ossl.h> #include <crypto/openssl/ossl_cipher.h> -#include <crypto/openssl/aarch64/arm_arch.h> +#include <crypto/openssl/arm_arch.h> /* aesv8-armx.S */ ossl_cipher_encrypt_t aes_v8_cbc_encrypt; diff --git a/sys/crypto/openssl/ossl_arm.c b/sys/crypto/openssl/ossl_arm.c index 74dc25586464..97215007c663 100644 --- a/sys/crypto/openssl/ossl_arm.c +++ b/sys/crypto/openssl/ossl_arm.c @@ -39,7 +39,7 @@ __FBSDID("$FreeBSD$"); #include <crypto/openssl/ossl.h> #include <crypto/openssl/ossl_cipher.h> -#include <crypto/openssl/arm/arm_arch.h> +#include <crypto/openssl/arm_arch.h> ossl_cipher_setkey_t AES_set_encrypt_key; ossl_cipher_setkey_t AES_set_decrypt_key; diff --git a/sys/modules/armv8crypto/Makefile b/sys/modules/armv8crypto/Makefile index da8e962c0307..74ea77fbb761 100644 --- a/sys/modules/armv8crypto/Makefile +++ b/sys/modules/armv8crypto/Makefile @@ -1,4 +1,3 @@ - .PATH: ${SRCTOP}/sys/crypto/armv8 .PATH: ${SRCTOP}/sys/crypto/openssl/aarch64 @@ -8,6 +7,8 @@ SRCS+= device_if.h bus_if.h opt_bus.h cryptodev_if.h OBJS+= armv8_crypto_wrap.o aesv8-armx.o ghashv8-armx.o +CFLAGS+=-I${SRCTOP}/sys/crypto/openssl + # Remove -nostdinc so we can get the intrinsics. armv8_crypto_wrap.o: armv8_crypto_wrap.c ${CC} -c ${CFLAGS:C/^-O2$/-O3/:N-nostdinc:N-mgeneral-regs-only} \ diff --git a/sys/modules/ossl/Makefile b/sys/modules/ossl/Makefile index 804ffb5e1b70..9777e0bcfacc 100644 --- a/sys/modules/ossl/Makefile +++ b/sys/modules/ossl/Makefile @@ -61,6 +61,8 @@ SRCS.i386= \ CFLAGS.bsaes-armv7.S+= -D__KERNEL__ +CFLAGS+= -I${SRCTOP}/sys/crypto/openssl + # For arm64, we are forced to rewrite the compiler invocation for the assembly # files, to remove -mgeneral-regs-only. ${SRCS.aarch64:M*.S:S/S/o/}: ${.TARGET:R}.S