Hi Andre,
The fix (actually it's more of a workaround) is to rename the static library in the Makefile TARGET from libdriver.a to libdriver.o.a.
Ack. Thanks for that hint. Your proposal works like a charm. Here is another solution: I wrote a small "hello-world" Linux kernel module with just two functions: init_module() and exit_module(). I thought that would be enough for demonstration. My fault. The linker needs at least one _real_ reference.
That's true. Even in this single-object-library, the linker needs to get the idea that something from it is used. Otherwise, the entire library is dropped.
Good that you got it working.
Michael