mirror of
https://git.FreeBSD.org/src.git
synced 2024-10-18 02:19:39 +00:00
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
(cherry picked from commit e655cc70df
)
This commit is contained in:
parent
3166bb7c10
commit
0b9dffed30
@ -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
|
||||
|
@ -135,15 +135,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
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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
|
@ -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>
|
||||
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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} \
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user