Porting GNU libraries

Nobody III hungryninja101 at ...9...
Sat May 2 16:52:24 CEST 2015

Well, it seems that I was mostly wrong about dlfcn functions not being
implemented. That's nice to know.
Hello Aditya,

* Aditya Kousik <adit267.kousik at ...9...> [2015-04-30 21:47:56 -0700]:
> Thanks for the replies. Yes, right after I posted the mail, I noticed the
> native port of 'sqlite' already there. I just have four more dependencies
> to port. libpcap-dev, boost-1.5, dbus, and pkg-config. I've been creating
> port and hash files for these to download the sources, but writing the
> makefile is turning out to be a challenge.
> How do I write a makefile for the targets, if the original compilation
> a ./configure followed by make && make install. My main application is
> built with waf. So any input will help withdrew the porting.

There is a porting guide [1] that explains how to port libraries to
Genode and features detailed examples. Basically, you just monitor
what the original build system does, i.e., what flags are used, what
source files are compiled and so on. The tricky part is to decide
what actually is needed to use the library on Genode. For example,
as you observed, there is no extra libdl on Genode. There is none
because the mechanism libdl provides is already part of the libc [2].
You are just fine if you link the application using this library
against it.

I do not know which application you are trying to port but when
skimming your list of dependencies I can tell you right away you will
not need to port pkg-config. What you probably need is the information
pkg-config can give you on your host system, i.e., what compiler and
linker flags are used that you *might* need to consider when porting
the library. I can also tell you right away, that you probably end up
writing a backend for dbus that can be used on Genode. Well, at least
you have to figure out how to use the functionality that is already
there or - depending on the requirements - how to extend it (*).

So, for better or worse, porting in general involves more than just
wrapping up the original build system and writing a Makefile. But that
is what makes porting fun, challenging and sometimes frustrating ☺


[1] http://genode.org/documentation/developer-resources/porting
[2] repos/libports/src/libc/dynamic_linker.cc

(*) Since there is no support for local UNIX sockets and our TCP/IP
    stack is directly linked against the application you most likely
    will not be able to reuse the POSIX backend without extending
    the libc.

One dashboard for servers and applications across Physical-Virtual-Cloud
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
genode-main mailing list
genode-main at lists.sourceforge.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.genode.org/pipermail/users/attachments/20150502/76f8439b/attachment.html>

More information about the users mailing list