Port OpenDDS to Genode

Norman Feske norman.feske at ...1...
Mon May 18 12:13:46 CEST 2015

Hello Roger,

> This is my first message, and actually first contact with microkernel world.

welcome to the mailing list and thank you for the encouraging words! :-)

> Specifically, OpenDDS3.6 which relies on ACE-TAO2.2a:
> http://download.ociweb.com/TAO-2.2a/ACE+TAO-2.2a_with_latest_patches_NO_makefiles.tar.gz
> http://download.ociweb.com/OpenDDS/OpenDDS-
> <http://download.ociweb.com/OpenDDS/>3.6.tar.gz
> I create a specific repo inside repos, and did the port files.
> The make prepare worked with no problems.
> But then come the challenging part: 
> 1) Adapting Makefiles /Config files to Genode specific platform.
>      ACE-TAO need a specific config and platform files. 
>      There are examples for linux, free and openbsd, vxworks, qnx,
> vxworks, lynxos.
>      From which should I start from?

without having any knowledge about OpenDDS, I would always start with
building and running the software-to-port on a Linux host system. When
building, enable the verbose build output so that you can see all
arguments passed to the compiler, linker, and the additional tools. It
is useful to redirect the build output to a file, which can then be
analyzed. I usually do not bother too much with inspecting the Makefiles
but just look at the trace of the build output. With this information,
it is often fairly easy to write library-description files for the
Genode build system. You can find plenty of examples in _libports/lib/mk_.

> 2) Creation of the patches. How to create the patches? Just with diff -crNb?

Yes. I tend to specify -u.

> 3) Building specific tools.
>      ACE-TAO and OpenDDS rely on specific tools for IDL files.
>      I saw the Qt example with the host_tools.mk approach, but not
> tested yet.

As you noticed, the Qt5 port is quite complex. Maybe it is easier to
wrap your head around the port of mupdf, which also uses this mechanism?
You can find it at repos/libports/lib/mk/mupdf.mk

If you'd like us to assist you with the port, it might be worthwhile to
consider sharing your working branch on GitHub. This would enable others
to easily reproduce the problem.

> 4) Creation of the run file. What should be a first trial?

Depending on the scenario want to realize, it might be a good idea to
take an existing run script as starting point. For example, for building
a Qt5-based scenario, I recommend you to first try out, understand, and
modify the libports/run/qt5.run script. Once you feel contend with it,
it will become easy to transfer the knowledge to other scenarios. Please
do not hesitate to ask any questions about the functioning of any
specific run script.

> Is there any specific guide, or there is no easy way. Is a try and test
> process?

The best way would be to make yourself acquainted with the run scripts
that are available in the run/ subdirectories of the various
repositories. To get a list, issue 'find -mindepth 4 -name "*.run"' from
the root of the Genode source tree.

Have fun with exploring Genode!


Dr.-Ing. Norman Feske
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth

More information about the users mailing list