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