7c9702e2a7
Objtool requires the use of a DRAP register while aligning the stack. Since a DRAP register is a gcc concept and we are notoriously low on registers in the crypto code, it's not worth the effort to mimic gcc generated stack realignment. We simply silence the warning by adding the offending object files to OBJECT_FILES_NON_STANDARD. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Attila Fülöp <attila@fueloep.org> Closes #6950 Closes #11914
102 lines
3.1 KiB
Makefile
102 lines
3.1 KiB
Makefile
ifneq ($(KBUILD_EXTMOD),)
|
|
src = @abs_srcdir@
|
|
obj = @abs_builddir@
|
|
icp_include = $(src)/include
|
|
else
|
|
icp_include = $(srctree)/$(src)/include
|
|
endif
|
|
|
|
MODULE := icp
|
|
|
|
obj-$(CONFIG_ZFS) := $(MODULE).o
|
|
|
|
asflags-y := -I$(icp_include)
|
|
ccflags-y := -I$(icp_include)
|
|
|
|
$(MODULE)-objs += illumos-crypto.o
|
|
$(MODULE)-objs += api/kcf_cipher.o
|
|
$(MODULE)-objs += api/kcf_digest.o
|
|
$(MODULE)-objs += api/kcf_mac.o
|
|
$(MODULE)-objs += api/kcf_miscapi.o
|
|
$(MODULE)-objs += api/kcf_ctxops.o
|
|
$(MODULE)-objs += core/kcf_callprov.o
|
|
$(MODULE)-objs += core/kcf_prov_tabs.o
|
|
$(MODULE)-objs += core/kcf_sched.o
|
|
$(MODULE)-objs += core/kcf_mech_tabs.o
|
|
$(MODULE)-objs += core/kcf_prov_lib.o
|
|
$(MODULE)-objs += spi/kcf_spi.o
|
|
$(MODULE)-objs += io/aes.o
|
|
$(MODULE)-objs += io/edonr_mod.o
|
|
$(MODULE)-objs += io/sha1_mod.o
|
|
$(MODULE)-objs += io/sha2_mod.o
|
|
$(MODULE)-objs += io/skein_mod.o
|
|
$(MODULE)-objs += os/modhash.o
|
|
$(MODULE)-objs += os/modconf.o
|
|
$(MODULE)-objs += algs/modes/cbc.o
|
|
$(MODULE)-objs += algs/modes/ccm.o
|
|
$(MODULE)-objs += algs/modes/ctr.o
|
|
$(MODULE)-objs += algs/modes/ecb.o
|
|
$(MODULE)-objs += algs/modes/gcm_generic.o
|
|
$(MODULE)-objs += algs/modes/gcm.o
|
|
$(MODULE)-objs += algs/modes/modes.o
|
|
$(MODULE)-objs += algs/aes/aes_impl_generic.o
|
|
$(MODULE)-objs += algs/aes/aes_impl.o
|
|
$(MODULE)-objs += algs/aes/aes_modes.o
|
|
$(MODULE)-objs += algs/edonr/edonr.o
|
|
$(MODULE)-objs += algs/sha1/sha1.o
|
|
$(MODULE)-objs += algs/sha2/sha2.o
|
|
$(MODULE)-objs += algs/skein/skein.o
|
|
$(MODULE)-objs += algs/skein/skein_block.o
|
|
$(MODULE)-objs += algs/skein/skein_iv.o
|
|
|
|
$(MODULE)-$(CONFIG_X86_64) += asm-x86_64/aes/aeskey.o
|
|
$(MODULE)-$(CONFIG_X86_64) += asm-x86_64/aes/aes_amd64.o
|
|
$(MODULE)-$(CONFIG_X86_64) += asm-x86_64/aes/aes_aesni.o
|
|
$(MODULE)-$(CONFIG_X86_64) += asm-x86_64/modes/gcm_pclmulqdq.o
|
|
$(MODULE)-$(CONFIG_X86_64) += asm-x86_64/modes/aesni-gcm-x86_64.o
|
|
$(MODULE)-$(CONFIG_X86_64) += asm-x86_64/modes/ghash-x86_64.o
|
|
$(MODULE)-$(CONFIG_X86_64) += asm-x86_64/sha1/sha1-x86_64.o
|
|
$(MODULE)-$(CONFIG_X86_64) += asm-x86_64/sha2/sha256_impl.o
|
|
$(MODULE)-$(CONFIG_X86_64) += asm-x86_64/sha2/sha512_impl.o
|
|
|
|
$(MODULE)-$(CONFIG_X86) += algs/modes/gcm_pclmulqdq.o
|
|
$(MODULE)-$(CONFIG_X86) += algs/aes/aes_impl_aesni.o
|
|
$(MODULE)-$(CONFIG_X86) += algs/aes/aes_impl_x86-64.o
|
|
|
|
# Suppress objtool "can't find jump dest instruction at" warnings. They
|
|
# are caused by the constants which are defined in the text section of the
|
|
# assembly file using .byte instructions (e.g. bswap_mask). The objtool
|
|
# utility tries to interpret them as opcodes and obviously fails doing so.
|
|
OBJECT_FILES_NON_STANDARD_aesni-gcm-x86_64.o := y
|
|
OBJECT_FILES_NON_STANDARD_ghash-x86_64.o := y
|
|
# Suppress objtool "unsupported stack pointer realignment" warnings. We are
|
|
# not using a DRAP register while aligning the stack to a 64 byte boundary.
|
|
# See #6950 for the reasoning.
|
|
OBJECT_FILES_NON_STANDARD_sha1-x86_64.o := y
|
|
OBJECT_FILES_NON_STANDARD_sha256_impl.o := y
|
|
OBJECT_FILES_NON_STANDARD_sha512_impl.o := y
|
|
|
|
ICP_DIRS = \
|
|
api \
|
|
core \
|
|
spi \
|
|
io \
|
|
os \
|
|
algs \
|
|
algs/aes \
|
|
algs/edonr \
|
|
algs/modes \
|
|
algs/sha1 \
|
|
algs/sha2 \
|
|
algs/skein \
|
|
asm-x86_64 \
|
|
asm-x86_64/aes \
|
|
asm-x86_64/modes \
|
|
asm-x86_64/sha1 \
|
|
asm-x86_64/sha2 \
|
|
asm-i386 \
|
|
asm-generic
|
|
|
|
all:
|
|
mkdir -p $(ICP_DIRS)
|