mirror of https://github.com/wolfSSL/wolfssl.git
when BUILD_LINUXKM, suppress building the library; rename $KROOT/$KARCH to $KERNEL_ROOT/$KERNEL_ARCH; remove SIMD enablement from linuxkm CFLAGS; add linuxkm support for -DKERNEL_OPT=x.
parent
360c749703
commit
05bca8b0ee
|
@ -198,7 +198,7 @@ endif
|
||||||
include scripts/include.am
|
include scripts/include.am
|
||||||
|
|
||||||
if BUILD_LINUXKM
|
if BUILD_LINUXKM
|
||||||
export KROOT KARCH AM_CFLAGS CFLAGS AM_CCASFLAGS CCASFLAGS src_libwolfssl_la_OBJECTS ENABLED_CRYPT_TESTS
|
export KERNEL_ROOT KERNEL_ARCH KERNEL_OPT AM_CFLAGS CFLAGS AM_CCASFLAGS CCASFLAGS src_libwolfssl_la_OBJECTS ENABLED_CRYPT_TESTS
|
||||||
SUBDIRS = linuxkm
|
SUBDIRS = linuxkm
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
21
configure.ac
21
configure.ac
|
@ -3361,20 +3361,22 @@ then
|
||||||
AC_PATH_DEFAULT_KERNEL_SOURCE
|
AC_PATH_DEFAULT_KERNEL_SOURCE
|
||||||
AC_ARG_WITH([linux-source],
|
AC_ARG_WITH([linux-source],
|
||||||
[AS_HELP_STRING([--with-linux-source=PATH],[PATH to root of Linux kernel build tree])],
|
[AS_HELP_STRING([--with-linux-source=PATH],[PATH to root of Linux kernel build tree])],
|
||||||
[KROOT=$withval],
|
[KERNEL_ROOT=$withval],
|
||||||
[KROOT=$DEFAULT_KROOT])
|
[KERNEL_ROOT=$DEFAULT_KERNEL_ROOT])
|
||||||
AC_SUBST([KROOT])
|
AC_SUBST([KERNEL_ROOT])
|
||||||
|
|
||||||
AC_DEFAULT_KERNEL_ARCH
|
AC_DEFAULT_KERNEL_ARCH
|
||||||
AC_ARG_WITH([linux-arch],
|
AC_ARG_WITH([linux-arch],
|
||||||
[AS_HELP_STRING([--with-linux-arch=arch],[built arch (SRCARCH) of Linux kernel build tree])],
|
[AS_HELP_STRING([--with-linux-arch=arch],[built arch (SRCARCH) of Linux kernel build tree])],
|
||||||
[KARCH=$withval],
|
[KERNEL_ARCH=$withval],
|
||||||
[KARCH=$DEFAULT_KARCH])
|
[KERNEL_ARCH=$DEFAULT_KERNEL_ARCH])
|
||||||
AC_SUBST([KARCH])
|
AC_SUBST([KERNEL_ARCH])
|
||||||
|
|
||||||
if test -z "${KROOT}"; then
|
if test -z "${KERNEL_ROOT}"; then
|
||||||
AC_MSG_ERROR([Linux kernel source root not found -- supply with --with-linux-source=PATH.])
|
AC_MSG_ERROR([Linux kernel source root not found -- supply with --with-linux-source=PATH.])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
ENABLED_NO_LIBRARY=yes
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
@ -5498,6 +5500,7 @@ AM_CONDITIONAL([BUILD_DES3],[test "x$ENABLED_DES3" = "xyes" || test "x$ENABLED_U
|
||||||
AM_CONDITIONAL([BUILD_PKCS7],[test "x$ENABLED_PKCS7" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
|
AM_CONDITIONAL([BUILD_PKCS7],[test "x$ENABLED_PKCS7" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"])
|
||||||
AM_CONDITIONAL([BUILD_HASHFLAGS],[test "x$ENABLED_HASHFLAGS" = "xyes"])
|
AM_CONDITIONAL([BUILD_HASHFLAGS],[test "x$ENABLED_HASHFLAGS" = "xyes"])
|
||||||
AM_CONDITIONAL([BUILD_LINUXKM],[test "x$ENABLED_LINUXKM" = "xyes"])
|
AM_CONDITIONAL([BUILD_LINUXKM],[test "x$ENABLED_LINUXKM" = "xyes"])
|
||||||
|
AM_CONDITIONAL([BUILD_NO_LIBRARY],[test "x$ENABLED_NO_LIBRARY" = "xyes"])
|
||||||
|
|
||||||
|
|
||||||
CREATE_HEX_VERSION
|
CREATE_HEX_VERSION
|
||||||
|
@ -5761,8 +5764,8 @@ echo " * Secure Remote Password $ENABLED_SRP"
|
||||||
echo " * Small Stack: $ENABLED_SMALL_STACK"
|
echo " * Small Stack: $ENABLED_SMALL_STACK"
|
||||||
echo " * Linux Kernel Module: $ENABLED_LINUXKM"
|
echo " * Linux Kernel Module: $ENABLED_LINUXKM"
|
||||||
test "$ENABLED_LINUXKM" = "yes" && \
|
test "$ENABLED_LINUXKM" = "yes" && \
|
||||||
echo " * Linux Kernel Build Root: $KROOT" && \
|
echo " * Linux Kernel Build Root: $KERNEL_ROOT" && \
|
||||||
echo " * Linux Kernel Build Arch: $KARCH"
|
echo " * Linux Kernel Build Arch: $KERNEL_ARCH"
|
||||||
echo " * valgrind unit tests: $ENABLED_VALGRIND"
|
echo " * valgrind unit tests: $ENABLED_VALGRIND"
|
||||||
echo " * LIBZ: $ENABLED_LIBZ"
|
echo " * LIBZ: $ENABLED_LIBZ"
|
||||||
echo " * Examples: $ENABLED_EXAMPLES"
|
echo " * Examples: $ENABLED_EXAMPLES"
|
||||||
|
|
|
@ -1,18 +1,22 @@
|
||||||
|
# libwolfssl Linux kernel module Makefile (wraps Kbuild makefile)
|
||||||
|
|
||||||
|
SHELL=/bin/bash
|
||||||
|
|
||||||
all: libwolfssl.ko
|
all: libwolfssl.ko
|
||||||
|
|
||||||
.PHONY: libwolfssl.ko
|
.PHONY: libwolfssl.ko
|
||||||
|
|
||||||
ifndef MODULE_TOP
|
ifndef MODULE_TOP
|
||||||
MODULE_TOP=$(CURDIR)
|
MODULE_TOP=$(CURDIR)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifndef SRC_TOP
|
ifndef SRC_TOP
|
||||||
SRC_TOP=$(shell dirname $(MODULE_TOP))
|
SRC_TOP=$(shell dirname $(MODULE_TOP))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
WOLFSSL_CFLAGS=-DHAVE_CONFIG_H -I$(SRC_TOP) -DBUILDING_WOLFSSL $(AM_CFLAGS) $(CFLAGS) -Wno-declaration-after-statement -Wno-redundant-decls
|
WOLFSSL_CFLAGS=-DHAVE_CONFIG_H -I$(SRC_TOP) -DBUILDING_WOLFSSL $(AM_CFLAGS) $(CFLAGS) -Wno-declaration-after-statement -Wno-redundant-decls
|
||||||
ifeq "$(KARCH)" "x86"
|
ifdef KERNEL_OPT
|
||||||
WOLFSSL_CFLAGS+=-msse -mmmx -msse2 -mavx -mavx2
|
WOLFSSL_CFLAGS += $(KERNEL_OPT)
|
||||||
endif
|
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)
|
||||||
|
@ -20,24 +24,30 @@ WOLFSSL_ASFLAGS=-DHAVE_CONFIG_H -I$(SRC_TOP) -DBUILDING_WOLFSSL $(AM_CCASFLAGS)
|
||||||
WOLFSSL_OBJ_FILES=$(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=$(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+=wolfcrypt/test/test.o
|
WOLFSSL_OBJ_FILES+=wolfcrypt/test/test.o
|
||||||
else
|
else
|
||||||
WOLFSSL_CFLAGS+=-DNO_CRYPT_TEST
|
WOLFSSL_CFLAGS+=-DNO_CRYPT_TEST
|
||||||
endif
|
endif
|
||||||
|
|
||||||
export WOLFSSL_CFLAGS WOLFSSL_ASFLAGS WOLFSSL_OBJ_FILES
|
export WOLFSSL_CFLAGS WOLFSSL_ASFLAGS WOLFSSL_OBJ_FILES
|
||||||
|
|
||||||
libwolfssl.ko:
|
libwolfssl.ko:
|
||||||
@if test -z "$(KROOT)"; then echo '$$KROOT is unset' >&2; exit 1; fi
|
@if test -z "$(KERNEL_ROOT)"; then echo '$$KERNEL_ROOT is unset' >&2; exit 1; fi
|
||||||
@if test -z "$(AM_CFLAGS)$(CFLAGS)"; then echo '$$AM_CFLAGS and $$CFLAGS are both unset.' >&2; exit 1; fi
|
@if test -z "$(AM_CFLAGS)$(CFLAGS)"; then echo '$$AM_CFLAGS and $$CFLAGS are both unset.' >&2; exit 1; fi
|
||||||
@if test -z "$(src_libwolfssl_la_OBJECTS)"; then echo '$$src_libwolfssl_la_OBJECTS is unset.' >&2; exit 1; fi
|
@if test -z "$(src_libwolfssl_la_OBJECTS)"; then echo '$$src_libwolfssl_la_OBJECTS is unset.' >&2; exit 1; fi
|
||||||
@mkdir -p linuxkm src wolfcrypt/src wolfcrypt/test
|
@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 $(KERNEL_ROOT) M=$(MODULE_TOP) src=$(SRC_TOP)
|
||||||
|
@echo Linux kernel module build succeeded.
|
||||||
|
@echo Module is libwolfssl.ko in $(MODULE_TOP).
|
||||||
|
|
||||||
|
.PHONY: install
|
||||||
|
install:
|
||||||
|
@echo Module is libwolfssl.ko in $(MODULE_TOP)
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean:
|
clean:
|
||||||
+make -C $(KROOT) M=$(MODULE_TOP) src=$(SRC_TOP) clean
|
+make -C $(KERNEL_ROOT) M=$(MODULE_TOP) src=$(SRC_TOP) clean
|
||||||
|
|
||||||
.PHONY: dist
|
.PHONY: dist
|
||||||
dist:
|
dist:
|
||||||
|
|
|
@ -2,11 +2,11 @@ AC_DEFUN([AC_PATH_DEFAULT_KERNEL_SOURCE],
|
||||||
[
|
[
|
||||||
AC_MSG_CHECKING([for default kernel build root])
|
AC_MSG_CHECKING([for default kernel build root])
|
||||||
if test -d /lib/modules/`uname -r`/build/.config; then
|
if test -d /lib/modules/`uname -r`/build/.config; then
|
||||||
DEFAULT_KROOT=/lib/modules/`uname -r`/build
|
DEFAULT_KERNEL_ROOT=/lib/modules/`uname -r`/build
|
||||||
AC_MSG_RESULT([$DEFAULT_KROOT])
|
AC_MSG_RESULT([$DEFAULT_KERNEL_ROOT])
|
||||||
elif test -r /usr/src/linux/.config; then
|
elif test -r /usr/src/linux/.config; then
|
||||||
DEFAULT_KROOT=/usr/src/linux
|
DEFAULT_KERNEL_ROOT=/usr/src/linux
|
||||||
AC_MSG_RESULT([$DEFAULT_KROOT])
|
AC_MSG_RESULT([$DEFAULT_KERNEL_ROOT])
|
||||||
else
|
else
|
||||||
AC_MSG_RESULT([no default configured kernel found])
|
AC_MSG_RESULT([no default configured kernel found])
|
||||||
fi
|
fi
|
||||||
|
@ -16,13 +16,13 @@ AC_DEFUN([AC_DEFAULT_KERNEL_ARCH],
|
||||||
[
|
[
|
||||||
AC_REQUIRE([AC_PROG_AWK])
|
AC_REQUIRE([AC_PROG_AWK])
|
||||||
AC_MSG_CHECKING([for default kernel arch])
|
AC_MSG_CHECKING([for default kernel arch])
|
||||||
if test -f ${KROOT}/.config; then
|
if test -f ${KERNEL_ROOT}/.config; then
|
||||||
# "# Linux/x86 5.8.1-gentoo Kernel Configuration"
|
# "# Linux/x86 5.8.1-gentoo Kernel Configuration"
|
||||||
DEFAULT_KARCH=`$AWK '/^# Linux/\
|
DEFAULT_KERNEL_ARCH=`$AWK '/^# Linux/\
|
||||||
{split($[]2,arch_fields,"/"); print arch_fields[[2]]; exit(0);}' ${KROOT}/.config`
|
{split($[]2,arch_fields,"/"); print arch_fields[[2]]; exit(0);}' ${KERNEL_ROOT}/.config`
|
||||||
fi
|
fi
|
||||||
if test -n "$DEFAULT_KARCH"; then
|
if test -n "$DEFAULT_KERNEL_ARCH"; then
|
||||||
AC_MSG_RESULT([$DEFAULT_KARCH])
|
AC_MSG_RESULT([$DEFAULT_KERNEL_ARCH])
|
||||||
else
|
else
|
||||||
AC_MSG_RESULT([no default configured kernel arch found])
|
AC_MSG_RESULT([no default configured kernel arch found])
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -2,7 +2,9 @@
|
||||||
# included from Top Level Makefile.am
|
# included from Top Level Makefile.am
|
||||||
# All paths should be given relative to the root
|
# All paths should be given relative to the root
|
||||||
|
|
||||||
|
if !BUILD_NO_LIBRARY
|
||||||
lib_LTLIBRARIES+= src/libwolfssl.la
|
lib_LTLIBRARIES+= src/libwolfssl.la
|
||||||
|
endif
|
||||||
src_libwolfssl_la_SOURCES =
|
src_libwolfssl_la_SOURCES =
|
||||||
src_libwolfssl_la_LDFLAGS = ${AM_LDFLAGS} -no-undefined -version-info ${WOLFSSL_LIBRARY_VERSION}
|
src_libwolfssl_la_LDFLAGS = ${AM_LDFLAGS} -no-undefined -version-info ${WOLFSSL_LIBRARY_VERSION}
|
||||||
src_libwolfssl_la_LIBADD = $(LIBM) $(LIB_ADD) $(LIB_STATIC_ADD)
|
src_libwolfssl_la_LIBADD = $(LIBM) $(LIB_ADD) $(LIB_STATIC_ADD)
|
||||||
|
|
Loading…
Reference in New Issue