Hi all, I'm currently reading LDD the 3rd edition. Chapter 2 says that if we need for example to build module "foo.c" which is split in two other files "sub1.c" and "sub2.c", we just have to define the following Kbuild variable in the makefile: foo-objs := sub1.o sub2.o I suppose that foo-y := sub1.o sub2.o has the same semantic ? That's not very clear to me. Anyway, the thing is that if I didn't use "sub1.c" and "sub2.c" (I comment "foo-objs" line in the makefile and I define variables sub1 and sub2 in "hello.c"), I've got the info messages in dmesg as well. However, if I use "sub1.c" and "sub2.c" (the whole code at the end of this mail), I get nothing, but the module still loaded anyway (insmod returns no error and rmmod neither). I think I'm missing something, but I didn't figure it out... I run Linux 4.5 that I build from master sources. I'm not very settle into the whole configuration options, so I use "make olddefconfig" on Fedora 4.4.6-300 config file. Thanks, Colin --- Makefile: obj-m := hello.o hello-y := sub1.o sub2.o KDIR=/lib/modules/$(shell uname -r)/build all: $(MAKE) -C $(KDIR) M=$(PWD) modules clean: $(MAKE) -C $(KDIR) M=$(PWD) clean --- hello.c: #include <linux/module.h> #include <linux/printk.h> extern int sub1; extern int sub2; static int __init hello_init(void) { pr_info("Hello, world! %d\n", sub1); return 0; } static void __exit hello_exit(void) { pr_info("Bye. %d\n", sub2); } module_init(hello_init); module_exit(hello_exit); MODULE_LICENSE("GPL"); --- sub1.c: int sub1 = 55; --- sub2.c: int sub2 = 345; _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies