Hi!
Is it possible to use the L4 Semaphore and Lock within a L4Linux kernel module somehow? I believe, that both is already used within the L4Linux kernel itself, but the symbols are not exported to other kernel module.
When I now try to use them, the linker tells that the following symbols are undefined: "l4semaphore_restart_down" "l4semaphore_restart_up" "l4thread_myself" "l4semaphore_thread_l4_id"
If I try to add the libsemaphore.a, the situation gets worse and the following symbols are undefined. "LOG_flush" "_exit" "l4thread_create_long" l4thread_get_prio" "l4sigma0_kip_kernel_has_feature" "l4thread_l4_id" "l4thread_myself" "l4thread_data_set" "l4thread_data_get" "LOG_logL" "l4thread_set_prio" "l4thread_data_allocate_key"
Even adding more libs to the L4Linux kernel module does not resolve all symbols - I'm not even sure if that could work at all. These are the libs already linked in (and making the kernel module work - without semaphores / locks): libdm_generic.a \ libl4env.a \ libl4env_err.a \ libgeneric_blk-server.a \ libl4sys.a \ libnames.a \ libroot.o.a \ libdiet_c.a \
I also tried to simply load the kernel module with unresolved symbols - in hope that the running kernel would solve it - to no success.
Does anyone have a solution to this?
Best regards Oskar.
Hi folks!
When I now try to use them, the linker tells that the following symbols are undefined: "l4semaphore_restart_down" "l4semaphore_restart_up" "l4thread_myself" "l4semaphore_thread_l4_id"
Ok, I now found, that these symbols are dynamically linked to the L4Linux kernel by the loader as these are defined in libloader.s.so.
Is there a way to use them with Linux kernel modules, too?
Regards Oskar.
On Tue Aug 08, 2006 at 15:40:10 +0200, Oskar Senft wrote:
When I now try to use them, the linker tells that the following symbols are undefined: "l4semaphore_restart_down" "l4semaphore_restart_up" "l4thread_myself" "l4semaphore_thread_l4_id"
Ok, I now found, that these symbols are dynamically linked to the L4Linux kernel by the loader as these are defined in libloader.s.so.
Is there a way to use them with Linux kernel modules, too?
You have to export these functions. Examples are in arch/l4/kernel/main.c at the end.
Adam
Hi Adam!
Is there a way to use them with Linux kernel modules, too?
You have to export these functions. Examples are in arch/l4/kernel/main.c at the end.
Ok, thank you. Attached you find a patch for adding the symbols. Could you include it to the CVS L4Linux tree?
Best regards Oskar.
On Wed Aug 09, 2006 at 15:35:22 +0200, Oskar Senft wrote:
Is there a way to use them with Linux kernel modules, too?
You have to export these functions. Examples are in arch/l4/kernel/main.c at the end.
Ok, thank you. Attached you find a patch for adding the symbols. Could you include it to the CVS L4Linux tree?
Done so internally. Should go public by tomorrow.
Adam
l4-hackers@os.inf.tu-dresden.de