Shared library in Genode must be position-independent?

Vincent Stone shihang7422166 at ...9...
Mon Feb 29 03:36:29 CET 2016


Hi all:
I am using Genode to do some SSL encryption stuff. My dev-board is
i.MX6Quad running Genode 15.02. The OpenSSL version is 1.0.1i. I test the
Crypto speed of OpenSSL in Genode. It's very slow( 7MB/s for aes-128-gcm)
comparing to OpenSSL in Linux (16MB/s for aes-128-gcm). Genode's OpenSSL
doesn't use the assembly code version of some critical crypto function. It
disable this option in libcrypto.mk. If I do the same to Linux OpenSSL, the
performance goes down to 9MB/s. So I enable this option in libcrypto.mk.
use Genode compiler to compile it. Everything seems ok. No compiler/linker
errors. But the program can not run. MMU exception occurs before the main
program start. It seems that something goes wrong during the library
loading. I am really confused.
Why does Genode disable this assembly code option? ( I can only find a
1-sentence explaination on Genode release notes 12.08
<http://genode.org/documentation/release-notes/12.08>

Because libcrypto provides certain optimized assembler functions, which
> unfortunately are not expressed with position-independent code, we removed
> this assembler code and build libcrypto with -DOPENSSL_NO_ASM


I guess the loader of Genode can not handle load-time relocation for shared
library so all shared library must be position independent. Am I right?

Thank you.

--
Best wishes
Vincent
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.genode.org/pipermail/users/attachments/20160229/f4e32000/attachment.html>


More information about the users mailing list