Problems porting L4Linux 2.4 module to 2.6

Derick Swanepoel dswanepoel at gmail.com
Mon Sep 19 17:47:19 CEST 2005


Hi,

I'm trying to convert a custom kernel 2.4 module to 2.6. The most
serious problem I'm having is that there are now some unresolved
symbols with 2.6:

*** Warning: "l4rm_detach"
[/home/drops/DROPS-20050908/l4/pkg/test/examples/module.ko] undefined!
*** Warning: "kmalloc"
[/home/drops/DROPS-20050908/l4/pkg/test/examples/module.ko] undefined!
*** Warning: "l4rm_do_attach"
[/home/drops/DROPS-20050908/l4/pkg/test/examples/module.ko] undefined!
*** Warning: "l4env_err_ipcstrings"
[/home/drops/DROPS-20050908/l4/pkg/test/examples/module.ko] undefined!
*** Warning: "l4lx_thread_shutdown"
[/home/drops/DROPS-20050908/l4/pkg/test/examples/module.ko] undefined!
*** Warning: "l4lx_thread_create"
[/home/drops/DROPS-20050908/l4/pkg/test/examples/module.ko] undefined!
*** Warning: "l4_sleep"
[/home/drops/DROPS-20050908/l4/pkg/test/examples/module.ko] undefined!
*** Warning: "names_waitfor_name"
[/home/drops/DROPS-20050908/l4/pkg/test/examples/module.ko] undefined!

I see that there is no l4_ksyms.c in l4linux 2.6 like there was in 2.4.

Secondly, I get more unresolved symbols if the objects that are linked
are specified at the end of the command line instead of the beginning
(linking succeeds in both cases, however). The kernel build system
puts the objects at the end while the DROPS build system puts them at
the beginning. Does anyone have an idea why two otherwise equivalent
linking commands would cause such different behaviour depending on the
position of the object arguments? Here are the two command lines (the
paths are slightly different because the kernel build system always
outputs to the source directory:

DROPS:
gcc -o test_module.o  test_dev.o main.o test_dm-client.o -r -nostdlib
-nostartfiles
-L../../../../../lib/x86_686/l4v2
-L/home/drops/DROPS-20050908/drops/lib/x86_686/l4v2
-L../../../../../lib/x86_686
-L/home/drops/DROPS-20050908/drops/lib/x86_686 -L../../../../../lib
-L/home/drops/DROPS-20050908/drops/lib  -T../../../../../lib/x86_686/main_rel.ld
-ltest_lxk -ldm_generic -ldm_phys -ldm_mem

kernel:
gcc  -r -nostdlib -nostartfiles
-L/home/drops/DROPS-20050908/drops/lib/x86_686/l4v2
-L/home/drops/DROPS-20050908/drops/lib/x86_686
-L/home/drops/DROPS-20050908/drops/lib
-T/home/drops/DROPS-20050908/l4/lib/x86_686/main_rel.ld
-ltest_lxk -ldm_generic -ldm_phys -ldm_mem OBJ-x86_686-l4v2/mesg_dm-client.o
-o test_module.o test_dev.o main.o

Thanks,
Derick




More information about the l4-hackers mailing list