Porting applications strategy

Tomasz Gajewski tomga at ...300...
Mon Feb 15 22:59:23 CET 2016

I made an attempt to port libunistring (needed for guile) trying to
follow porting guide. I didn't go far but feel that what I've done did
not go in the right direction  and would like to ask for opinions about
my feelings.

Short story

I would like to be able to do:

./configure --host=genode-x86 && make

Longer story

List of compiled sources in libunistring depends on results of running
configure and there is more than 500 source files. Even if I would
prepare list of files to compile probably it would be different in next
revision so it would have to be at least updated during upgrade. I feel
it would be waste of resources.

>From different perspective as on of the goals of Genode for this year is
to have more software packages ported I think the procedure to port
should be as straightforward as possible. Probably most of the ported
software will be based on libc (I think that packages that will not be
linked against libc mostly will constitute base of genode not userspace
programs) and to be able to quickly port libc based libraries and
applications build system should not replaced but reused.

My feeling is that current Genode build system is great for Genode
specific components but for porting general purpose requires too much

I don't know detailes underneath current makefiles based build system
but I imagine steps to compile using configure could look somehow like

1. Prepare spec with dependencies containing libc - just like it is
   right now

2. make deps - build dependencies and install headers somewhere - this
   is probably done right now in current build system

3. Run configure in this prepared environment. Running it without
   prepared environment fails when testing if genode-x86-gcc can create
   binaries - so quite quickly :-)

4. make - real porting work - hopefully not much

5. make install - to some prepared place?

6. from installed files take headers in case of libraries and binaries -
   this somehow works right now

Firstly I'd like to hear what you think about the idea in

Eventually could you provide some technical informations where are the
most important parts of build system where I should look to be able to
make such changes?

Tomasz Gajewski

More information about the users mailing list