From 6be1ae0c57b734bdadc5c352d2850afa43e9a346 Mon Sep 17 00:00:00 2001 From: Yanfeng Liu Date: Sun, 26 Jan 2025 16:28:49 +0800 Subject: [PATCH 1/2] tools/mkexport.sh: add LDMODULEFLAGS export This adds LDMODULEFLAGS export so that kernel module can build for kernel mode NuttX via `make import` approach. Signed-off-by: Yanfeng Liu --- tools/mkexport.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/mkexport.sh b/tools/mkexport.sh index 8c434b220fee4..2a5dd90834bdb 100755 --- a/tools/mkexport.sh +++ b/tools/mkexport.sh @@ -231,6 +231,10 @@ if [ "X${USRONLY}" != "Xy" ]; then done fi +# Set LDMODULEFLAGS so that kernel modules can build in kernel mode + +LDMODULEFLAGS="-r" + # Save the compilation options echo "ARCHCFLAGS = ${ARCHCFLAGS}" >"${EXPORTDIR}/scripts/Make.defs" @@ -268,6 +272,7 @@ echo "HOSTLDFLAGS = ${HOSTLDFLAGS}" >>"${EXPORTDIR}/scripts/Make.defs" echo "HOSTEXEEXT = ${HOSTEXEEXT}" >>"${EXPORTDIR}/scripts/Make.defs" echo "LDNAME = ${LDNAME}" >>"${EXPORTDIR}/scripts/Make.defs" echo "LDELFFLAGS = ${LDELFFLAGS}" >>"${EXPORTDIR}/scripts/Make.defs" +echo "LDMODULEFLAGS = ${LDMODULEFLAGS}" >>"${EXPORTDIR}/scripts/Make.defs" echo "NUTTX_ARCH = ${NUTTX_ARCH}" >>"${EXPORTDIR}/scripts/Make.defs" echo "NUTTX_ARCH_CHIP = ${NUTTX_ARCH_CHIP}" >>"${EXPORTDIR}/scripts/Make.defs" echo "NUTTX_BOARD = ${NUTTX_BOARD}" >>"${EXPORTDIR}/scripts/Make.defs" @@ -299,6 +304,7 @@ echo "set(HOSTLDFLAGS \"${HOSTLDFLAGS}\")" >>"${EXPORTDIR}/scripts/ echo "set(HOSTEXEEXT \"${HOSTEXEEXT}\")" >>"${EXPORTDIR}/scripts/target.cmake" echo "set(LDNAME \"${LDNAME}\")" >>"${EXPORTDIR}/scripts/target.cmake" echo "set(LDELFFLAGS \"${LDELFFLAGS}\")" >>"${EXPORTDIR}/scripts/target.cmake" +echo "set(LDMODULEFLAGS \"${LDMODULEFLAGS}\")" >>"${EXPORTDIR}/scripts/target.cmake" echo "set(NUTTX_ARCH \"${NUTTX_ARCH}\")" >>"${EXPORTDIR}/scripts/target.cmake" echo "set(NUTTX_ARCH_CHIP \"${NUTTX_ARCH_CHIP}\")" >>"${EXPORTDIR}/scripts/target.cmake" echo "set(NUTTX_BOARD \"${NUTTX_BOARD}\")" >>"${EXPORTDIR}/scripts/target.cmake" From fb2f3cf76c0381754cdeeb28b446aba89474a8cc Mon Sep 17 00:00:00 2001 From: Yanfeng Liu Date: Sun, 26 Jan 2025 16:30:35 +0800 Subject: [PATCH 2/2] tools/mkexport.sh: stop refering kernel path This stops exported LDELFFLAGS from referring to kernel folder linkscripts because kernel folder might not be present in such app building use cases. Signed-off-by: Yanfeng Liu --- tools/mkexport.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/mkexport.sh b/tools/mkexport.sh index 2a5dd90834bdb..46f293bdf3222 100755 --- a/tools/mkexport.sh +++ b/tools/mkexport.sh @@ -231,6 +231,10 @@ if [ "X${USRONLY}" != "Xy" ]; then done fi +# Drop kernel folder modlib/gnu-elf.ld as the exported script shall suffice + +LDELFFLAGS=$(echo "$LDELFFLAGS" | sed -e 's:-T.*ld::') + # Set LDMODULEFLAGS so that kernel modules can build in kernel mode LDMODULEFLAGS="-r"