From: colin@cvidal.org (Colin Vidal)
To: kernelnewbies@lists.kernelnewbies.org
Subject: build external module splited into several files
Date: Mon, 04 Apr 2016 20:00:09 +0200 [thread overview]
Message-ID: <1459792809.2543.80.camel@cvidal.org> (raw)
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;
next reply other threads:[~2016-04-04 18:00 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-04 18:00 Colin Vidal [this message]
2016-04-04 18:47 ` build external module splited into several files Greg KH
2016-04-04 19:43 ` Colin Vidal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1459792809.2543.80.camel@cvidal.org \
--to=colin@cvidal.org \
--cc=kernelnewbies@lists.kernelnewbies.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).