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