shared dataspace for l4re_kernel/ registering additional caps in ned

Stark, Josef j.stark at tum.de
Tue Feb 24 16:45:32 CET 2015


Hey, I am currently working on this:

>To tell the second Ned about your new FS, you will have to link it
>with libmount (l4/pkg/libc_backends/lib/mount) and provide an fstab
>file during startup in the Lua config as this:
>
>ldr:startv( { caps = {},
>              log = { "myapp", "red" }
>            },
>            "rom/myapp",
>            {
>                FSTAB_FILE="rom/myfstab.fstab"
>            });
>
>This lib will then mount the new file system locally into your
>application (e.g., the second ned instance).

Ned doesn't need to know about this filesystem,
but my manager application and the l4re thread of
the new task do.

Linking and using the manager with libmount works fine.

But I have some problems linking l4re with libmount.
Mostly undefined references:

Initially, I tried simply adding libmount to  REQUIRES_LIBS
of the makefile, but that gave a lot of linker errors.
So I replaced most of the minimal lib versions with the full-
fledged ones:
REQUIRES_LIBS  := libc l4re-util libstdc++ libloader \
cxx_libc_io libc_be_minimal_log_io

Without libmount, this also builds fine.
But after adding libmount, this leads to undefined references of 
open, fstat, mount and close.
After adding libc_be_l4refile to the list (since it seems to contain the
missing symbols), l4re_env_posix_vfs_ops is undefined.
And since this is AFAIK only found in libl4re-vfs, I tried adding it,
but then the build stops with this error: 
"src/l4/mk/binary.inc:335: *** Never include 'libl4re-vfs'!.  Stop."




So, how can I link l4re (found in pkg/l4re_kernel) successfully with libmount?

Thanks,
Josef


More information about the l4-hackers mailing list