900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > linux内核源文件依赖 linux-kernel – 如何在Kbuild中为生成的源文件添加依赖项?...

linux内核源文件依赖 linux-kernel – 如何在Kbuild中为生成的源文件添加依赖项?...

时间:2020-08-03 07:37:35

相关推荐

linux内核源文件依赖 linux-kernel – 如何在Kbuild中为生成的源文件添加依赖项?...

还有一个问题:在尝试构建多文件模块时,您不能拥有与模块同名的C文件.将mymod.c重命名为mymod-core.c

然后,以下应该工作:

obj-m := mymod.o

mymod-objs := mymod-core.o mymod_test_interfaces.gen.o

$(obj)/mymod_test_interfaces.gen.c: $(src)/mymod_test.h $(src)/generate_testapi.py

$(src)/generate_testapi.py < $(src)/mymod_test.h > $@

我实际上测试了以下内容:

diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile

index 4387ccb79e64..47fdc3a73c75 100644

--- a/drivers/misc/Makefile

+++ b/drivers/misc/Makefile

@@ -71,3 +71,8 @@ OBJCOPYFLAGS_lkdtm_rodata_objcopy.o := \

--rename-section .text=.rodata

$(obj)/lkdtm_rodata_objcopy.o: $(obj)/lkdtm_rodata.o

$(call if_changed,objcopy)

+

+obj-m := mymod.o

+mymod-objs := mymod-core.o mymod_test_interfaces.gen.o

+$(obj)/mymod_test_interfaces.gen.c:

+ echo "int variable;" > $@

diff --git a/drivers/misc/mymod-core.c b/drivers/misc/mymod-core.c

new file mode 100644

index 000000000000..b39aa4b9ae8d

--- /dev/null

+++ b/drivers/misc/mymod-core.c

@@ -0,0 +1,19 @@

+#include

+#include

+

+extern int mymod_variable;

+

+static int mymod_probe(struct platform_device *pdev)

+{

+ mymod_variable = 2;

+

+ return 0;

+}

+

+static struct platform_driver mymod_driver = {

+ .driver = {

+ .name = "mymod",+ },+ .probe = mymod_probe,+};

+module_platform_driver(mymod_driver);

它恰当地导致:

$make

CHK include/config/kernel.release

CHK include/generated/uapi/linux/version.h

CHK include/generated/utsrelease.h

CHK include/generated/bounds.h

CHK include/generated/timeconst.h

CHK include/generated/asm-offsets.h

CALL scripts/checksyscalls.sh

CHK include/generated/compile.h

CC [M] drivers/misc/mymod-core.o

echo "int variable;" > drivers/misc/mymod_test_interfaces.gen.c

CC [M] drivers/misc/mymod_test_interfaces.gen.o

LD [M] drivers/misc/mymod.o

LD arch/x86/boot/compressed/vmlinux

ZOFFSET arch/x86/boot/zoffset.h

AS arch/x86/boot/header.o

LD arch/x86/boot/setup.elf

OBJCOPY arch/x86/boot/setup.bin

OBJCOPY arch/x86/boot/vmlinux.bin

BUILD arch/x86/boot/bzImage

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。