Hello,

we have now mainly all running with shared libraries on Genode/seL4, so
that we had to adjust the syscall bindings to be position independent
[0]. Now is the time to try to get in a form that it may get upstream.

According to this post:

On 29.10.2014 02:33, Adrian Danis wrote:
> Position independent code is a bit of a trickier issue. Presently we
> have no desire to use PIC, so copping a performance hit (incredibly
> small it may be) is undesirable. I think the best option here would be
> to make support of PIC at user level a build configuration option, and
> then make the stubs conditionally build in the additional ebx
> save/restore code. I do not know if attempting such conditional building
> will end up turning the assembly into an unreadable mess, but it would
> resolve the performance argument at least.
> The 'correct' way to do this with fitting into the current seL4 build
> system setup would be to add a configuration option to
> tools/common/Kconfig, use that variable to do the conditional
> compilation in syscalls.h and have tools/common/common.mk generate the
> -fPIC / -fno-PIC flags.
> If you can come up with a nice way of conditionally building both PIC
> and non-PIC versions of what is in syscalls.h then we would certainly
> accept it.

you would prefer to have, depending on some define, the syscall binding
adjusted.

In OKL4 there were already such define magic, see beginning of [1] e.g.
There, depending on "__pic__", different L4_SAVE_REG/L4_RESTORE_REG
defines are prepared and later on used by the assembler parts. Is this
the way to go ? Thanks for any suggestions.

Cheers,

Alexander Boettcher.

[0]
https://github.com/genodelabs/genode/blob/master/repos/base-sel4/patches/syscall.patch
[1]
https://github.com/genodelabs/genode/blob/master/repos/base-okl4/patches/syscall_pic.patch

_______________________________________________
Devel mailing list
[email protected]
https://sel4.systems/lists/listinfo/devel

Reply via email to