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
