forked from wolfSSL/wolfssl
lkm: add autodetection of kernel stack frame size; reactivate objtool scrutiny since _asm files are indeed not yet kernel-compatible; delete linuxkm/lkm_testcrypto.c and use wolfcrypt/test/test.c.
This commit is contained in:
@ -1,3 +1,5 @@
|
|||||||
|
SHELL=/bin/bash
|
||||||
|
|
||||||
# libwolfssl Kbuild
|
# libwolfssl Kbuild
|
||||||
|
|
||||||
# wolfcrypto asm provokes many objtool complaints:
|
# wolfcrypto asm provokes many objtool complaints:
|
||||||
@ -6,7 +8,7 @@
|
|||||||
# "indirect jump found in RETPOLINE build",
|
# "indirect jump found in RETPOLINE build",
|
||||||
# and "is missing an ELF size annotation"
|
# and "is missing an ELF size annotation"
|
||||||
# see /usr/src/linux/tools/objtool/Documentation/stack-validation.txt
|
# see /usr/src/linux/tools/objtool/Documentation/stack-validation.txt
|
||||||
OBJECT_FILES_NON_STANDARD := y
|
#OBJECT_FILES_NON_STANDARD := y
|
||||||
|
|
||||||
obj-m := libwolfssl.o
|
obj-m := libwolfssl.o
|
||||||
|
|
||||||
@ -18,9 +20,17 @@ ifeq "$(WOLFSSL_CFLAGS)" ""
|
|||||||
$(error $$WOLFSSL_CFLAGS is unset.)
|
$(error $$WOLFSSL_CFLAGS is unset.)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
hostprogs := linuxkm/get_thread_size
|
||||||
|
always-y := $(hostprogs)
|
||||||
|
HOST_EXTRACFLAGS += $(NOSTDINC_FLAGS) $(LINUXINCLUDE) $(KBUILD_CFLAGS) -static
|
||||||
|
$(patsubst %, $(obj)/%, $(WOLFSSL_OBJ_FILES)): $(obj)/linuxkm/get_thread_size
|
||||||
|
KERNEL_THREAD_STACK_SIZE=$(shell $(obj)/linuxkm/get_thread_size)
|
||||||
|
MAX_STACK_FRAME_SIZE=$(shell echo $$(( $(KERNEL_THREAD_STACK_SIZE) / 4)))
|
||||||
|
|
||||||
libwolfssl-y := $(WOLFSSL_OBJ_FILES)
|
libwolfssl-y := $(WOLFSSL_OBJ_FILES)
|
||||||
|
|
||||||
ccflags-y := $(WOLFSSL_CFLAGS)
|
ccflags-y = $(WOLFSSL_CFLAGS) -Wframe-larger-than=$(MAX_STACK_FRAME_SIZE) -mpreferred-stack-boundary=4
|
||||||
|
|
||||||
%/libwolfssl.mod.o: ccflags-y :=
|
%/libwolfssl.mod.o: ccflags-y :=
|
||||||
%/lkm_testcrypto.o: ccflags-y += -DNO_MAIN_DRIVER
|
%/lkm_testcrypto.o: ccflags-y += -DNO_MAIN_DRIVER
|
||||||
|
|
||||||
|
@ -22,13 +22,17 @@ ifeq "$(src_libwolfssl_la_OBJECTS)" ""
|
|||||||
$(error $$src_libwolfssl_la_OBJECTS is unset.)
|
$(error $$src_libwolfssl_la_OBJECTS is unset.)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
WOLFSSL_CFLAGS=-DHAVE_CONFIG_H -I$(SRC_TOP) -DBUILDING_WOLFSSL $(AM_CFLAGS) $(CFLAGS) -Wframe-larger-than=5000 -mpreferred-stack-boundary=4
|
WOLFSSL_CFLAGS=-DHAVE_CONFIG_H -I$(SRC_TOP) -DBUILDING_WOLFSSL $(AM_CFLAGS) $(CFLAGS)
|
||||||
|
ifeq "$(KARCH)" "x86"
|
||||||
|
WOLFSSL_CFLAGS+=-msse -mmmx -msse2 -mavx -mavx2
|
||||||
|
endif
|
||||||
|
|
||||||
WOLFSSL_ASFLAGS=-DHAVE_CONFIG_H -I$(SRC_TOP) -DBUILDING_WOLFSSL $(AM_CCASFLAGS) $(CCASFLAGS)
|
WOLFSSL_ASFLAGS=-DHAVE_CONFIG_H -I$(SRC_TOP) -DBUILDING_WOLFSSL $(AM_CCASFLAGS) $(CCASFLAGS)
|
||||||
|
|
||||||
WOLFSSL_OBJ_FILES=linuxkm/module_hooks.o $(patsubst %.lo, %.o, $(patsubst src/src_libwolfssl_la-%, src/%, $(patsubst src/libwolfssl_la-%, src/%, $(patsubst wolfcrypt/src/src_libwolfssl_la-%, wolfcrypt/src/%, $(src_libwolfssl_la_OBJECTS)))))
|
WOLFSSL_OBJ_FILES=linuxkm/module_hooks.o $(patsubst %.lo, %.o, $(patsubst src/src_libwolfssl_la-%, src/%, $(patsubst src/libwolfssl_la-%, src/%, $(patsubst wolfcrypt/src/src_libwolfssl_la-%, wolfcrypt/src/%, $(src_libwolfssl_la_OBJECTS)))))
|
||||||
|
|
||||||
ifeq "$(ENABLED_CRYPT_TESTS)" "yes"
|
ifeq "$(ENABLED_CRYPT_TESTS)" "yes"
|
||||||
WOLFSSL_OBJ_FILES+=linuxkm/lkm_testcrypto.o
|
WOLFSSL_OBJ_FILES+=wolfcrypt/test/test.o
|
||||||
else
|
else
|
||||||
WOLFSSL_CFLAGS+=-DNO_CRYPT_TEST
|
WOLFSSL_CFLAGS+=-DNO_CRYPT_TEST
|
||||||
endif
|
endif
|
||||||
@ -36,11 +40,10 @@ endif
|
|||||||
export WOLFSSL_CFLAGS WOLFSSL_ASFLAGS WOLFSSL_OBJ_FILES
|
export WOLFSSL_CFLAGS WOLFSSL_ASFLAGS WOLFSSL_OBJ_FILES
|
||||||
|
|
||||||
libwolfssl.ko:
|
libwolfssl.ko:
|
||||||
@mkdir -p linuxkm src wolfcrypt/src
|
@mkdir -p linuxkm src wolfcrypt/src wolfcrypt/test
|
||||||
@if test ! -h $(SRC_TOP)/Kbuild; then ln -s $(MODULE_TOP)/Kbuild $(SRC_TOP)/Kbuild; fi
|
@if test ! -h $(SRC_TOP)/Kbuild; then ln -s $(MODULE_TOP)/Kbuild $(SRC_TOP)/Kbuild; fi
|
||||||
+make -C $(KROOT) M=$(MODULE_TOP) src=$(SRC_TOP)
|
+make -C $(KROOT) M=$(MODULE_TOP) src=$(SRC_TOP)
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@cd $(MODULE_TOP) && rm -f libwolfssl.ko Module.symvers built-in.a modules.order libwolfssl.mod libwolfssl.mod.c src/*.o wolfcrypt/src/*.o
|
+make -C $(KROOT) M=$(MODULE_TOP) src=$(SRC_TOP) clean
|
||||||
|
29439
linuxkm/lkm_testcrypto.c
29439
linuxkm/lkm_testcrypto.c
File diff suppressed because it is too large
Load Diff
@ -2104,6 +2104,7 @@ extern void uITRON4_free(void *p) ;
|
|||||||
#define WOLFSSL_USER_IO 1
|
#define WOLFSSL_USER_IO 1
|
||||||
#define USE_WOLF_STRTOK
|
#define USE_WOLF_STRTOK
|
||||||
#define WOLFSSL_SP_DIV_64
|
#define WOLFSSL_SP_DIV_64
|
||||||
|
#define WOLFSSL_OLD_PRIME_CHECK
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user