Daniel Pouzzner
|
542ad0a81b
|
linuxkm/module_hooks.c: separate cleanup into static libwolfssl_cleanup(), and call it from wolfssl_init() if wolfcrypt_test() fails.
|
2020-12-22 21:57:17 -06:00 |
|
Daniel Pouzzner
|
4efa85dc03
|
linuxkm/module_hooks.c: add support for WOLFCRYPT_ONLY.
|
2020-12-11 14:16:44 -06:00 |
|
Daniel Pouzzner
|
3858bda7e9
|
add "module", "modules_install", and "clean_module" rules to BUILD_LINUXKM section of Makefile.am, and add working install rule to linuxkm/Makefile, so that "make module" and "make modules_install" now work when --enable-linuxkm; fix "make dist" logic in Makefile.am and scripts/include.am to be unaffected by --enable-linuxkm; don't build wolfcrypt/benchmark or testwolfcrypt when --enable-linuxkm and --enable-crypttests.
|
2020-11-04 14:13:39 -06:00 |
|
Daniel Pouzzner
|
b468ea77ea
|
linuxkm: use EXPORT_SYMBOL_NS(x, WOLFSSL) if available, else fall back to EXPORT_SYMBOL(x).
|
2020-10-21 14:37:43 -05:00 |
|
Daniel Pouzzner
|
8496a64ed4
|
linuxkm/Kbuild: the x86 _asm object files still reference "_GLOBAL_OFFSET_TABLE_", so they can't work in the kernel as-is.
|
2020-09-23 18:32:16 -05:00 |
|
Daniel Pouzzner
|
7c2aefcfdd
|
linuxkm: enable the rest of the _asm implementations for x86, wrapped in {SAVE,RESTORE}_VECTOR_REGISTERS().
|
2020-09-23 18:32:16 -05:00 |
|
Daniel Pouzzner
|
f4981d4c91
|
linuxkm/module_exports.c.template: include openssl compat layer headers in case user configuration needs them.
|
2020-09-23 18:32:16 -05:00 |
|
Daniel Pouzzner
|
5589565051
|
linuxkm: add autotools detection of usable compiler flags for enabling and disabling SIMD and fp registers and auto-vectorization, and integrate into linuxkm makefiles.
|
2020-09-23 18:32:16 -05:00 |
|
Daniel Pouzzner
|
5d1bea4ff7
|
linuxkm/Makefile: rename KERNEL_OPT to KERNEL_EXTRA_CFLAGS.
|
2020-09-23 18:32:16 -05:00 |
|
Daniel Pouzzner
|
5504d9cd4e
|
linuxkm: dial in SIMD options in Kbuild; add boilerplate at the top of all files added for linuxkm.
|
2020-09-23 18:32:16 -05:00 |
|
Daniel Pouzzner
|
4f38fb2f78
|
linuxkm/Kbuild: gate EXPORT_SYMBOL(wolfcrypt_test) on -UNO_CRYPT_TEST.
|
2020-09-23 18:32:16 -05:00 |
|
Daniel Pouzzner
|
cd14cfb092
|
linuxkm: override-disable SIMD instructions for all .c.o's, with exceptions enumerated in Kbuild (currently only aes.c), and couple -msse with -fno-builtin-functions; export ENABLED_ASM for use as a pivot in Kbuild; use asm/i387.h, not asm/simd.h, for kernel_fpu_{begin,end}() protos.
|
2020-09-23 18:32:16 -05:00 |
|
Daniel Pouzzner
|
69052ff535
|
linuxkm: explanatory message and error exit on attempted make install.
|
2020-09-23 18:32:16 -05:00 |
|
Daniel Pouzzner
|
e881d92366
|
add linuxkm/module_exports.c.template to linuxkm/include.am $EXTRA_DIST.
|
2020-09-23 18:32:16 -05:00 |
|
Daniel Pouzzner
|
05bca8b0ee
|
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.
|
2020-09-23 18:32:16 -05:00 |
|
Daniel Pouzzner
|
9549a5f973
|
linuxkm: add linuxkm/module_exports.c.template, and autogenerate linuxkm/module_exports.c.
|
2020-09-23 18:32:16 -05:00 |
|
Daniel Pouzzner
|
9aa3a4c559
|
linuxkm/Kbuild: make dependency on get_thread_size order-only, to suppress frivolous rebuilds on kernel 4.x.
|
2020-09-23 18:32:16 -05:00 |
|
Daniel Pouzzner
|
d8e71e8dd2
|
linuxkm/Kbuild: disable objtool on AESNI asm objects -- they work in the kernel as-is, despite "unannotated intra-function call" and "BP used as a scratch register" warnings.
|
2020-09-23 18:32:16 -05:00 |
|
Daniel Pouzzner
|
d7450b85f7
|
linuxkm/Makefile: use -Wno-declaration-after-statement (needed for heapful DECLARE_VAR() et al).
|
2020-09-23 18:32:15 -05:00 |
|
Daniel Pouzzner
|
9611f7abfd
|
linuxkm/Makefile: add no-op distdir rule.
|
2020-09-23 18:32:15 -05:00 |
|
Daniel Pouzzner
|
03fe9c15c0
|
linuxkm/Makefile: add do-nothing dist rule, and refactor setness tests for libwolfssl.ko to be make-dist-compatible.
|
2020-09-23 18:32:15 -05:00 |
|
Daniel Pouzzner
|
195b5d2d2c
|
lkm: add linuxkm/include.am, and include it in Makefile.am.
|
2020-09-23 18:32:15 -05:00 |
|
Daniel Pouzzner
|
d86b0601b9
|
lkm: tweak Kbuild to work on 4.x (hardcoded fallback stack size); add linuxkm/get_thread_size.c.
|
2020-09-23 18:32:15 -05:00 |
|
Daniel Pouzzner
|
c194fb3beb
|
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.
|
2020-09-23 18:32:15 -05:00 |
|
Daniel Pouzzner
|
1735bd7430
|
lkm_testcrypto.c: refactor subtests at end of dh_test() to use ERROR_OUT() with proper codes.
|
2020-09-23 18:32:15 -05:00 |
|
Daniel Pouzzner
|
217ec4ebd3
|
lkm: tweaks to self-test dynamics/messages.
|
2020-09-23 18:32:15 -05:00 |
|
Daniel Pouzzner
|
554879da00
|
lkm: self-test working now (certain options, which ones TBD, crash kernel).
|
2020-09-23 18:32:15 -05:00 |
|
Daniel Pouzzner
|
34fd53b4fc
|
linuxkm: WIP support for wolfcrypt_test() at module load time.
|
2020-09-23 18:32:15 -05:00 |
|
Daniel Pouzzner
|
0c35998178
|
linuxkm/module_hooks.c: log "cleanup complete" at unload time.
|
2020-09-23 18:32:15 -05:00 |
|
Daniel Pouzzner
|
836915d05f
|
linuxkm: configure.ac more incompatible options: --enable-fastmath, --enable-iopool, and --enable-fips; linuxkm/Makefile: reduce -Wframe-larger-than from 65536 to kernel-compatible 5000; wolfssl/wolfcrypt/settings.h: unset HAVE_THREAD_LS when WOLFSSL_LINUXKM; wolfssl/wolfcrypt/types.h: when NO_INLINE and __GNUC__, #define WC_INLINE __attribute__((unused)) rather than to nothing to avoid -Wunused-function warnings; wolfssl/wolfcrypt/wc_port.h: #undef noinline after Linux kernel header includes (another macro conflict).
|
2020-09-23 18:32:15 -05:00 |
|
Daniel Pouzzner
|
2a3fd57b36
|
linuxkm/Kbuild, linuxkm/module_hooks.c: tweaks for buildability on kernel 4.9 (may also fix build on 3.x).
|
2020-09-23 18:32:15 -05:00 |
|
Daniel Pouzzner
|
2591479866
|
linuxkm: add macros mapping malloc(), free(), and realloc() to the kernel equivalents, don't set WOLFSSL_NO_MALLOC, and reduce -Wframe-larger-than= from 256k to 64k; tweak fix for HAVE_INTEL_RDSEED conflict with WOLFSSL_LINUXKM; add clean rule to linuxkm/Makefile.
|
2020-09-23 18:32:15 -05:00 |
|
Daniel Pouzzner
|
c0d831ea3a
|
whoops, can't assert on non-empty "$(AM_CCASFLAGS)$(CCASFLAGS)" in linuxkm/Makefile -- they are often legitimately empty.
|
2020-09-23 18:32:15 -05:00 |
|
Daniel Pouzzner
|
1aa15632ce
|
initial buildability of full libwolfssl.ko loadable kernel module for Linux via ./configure --enable-linuxkm && make.
|
2020-09-23 18:32:15 -05:00 |
|
Daniel Pouzzner
|
603da9e747
|
fix whitespace.
|
2020-09-23 18:32:15 -05:00 |
|
Daniel Pouzzner
|
bc1c85842d
|
WIP: autotools support for LKM
|
2020-09-23 18:32:15 -05:00 |
|