Library dependencies missing: stdlibs in directory

Björn Döbel doebel at
Wed Feb 19 08:33:48 CET 2014

Hash: SHA1

> Yes, this makes sense if this problem had to do with building
> *Fiasco* (and/or L4Re) - which indeed took a while, but that didn't
> surprise me. What surprised me was that it took ages to compile a
> "hello world" *application* when I already had compiled the
> kernel, and, that compilation of the application involved so many
> steps, from multiple (filesystem) locations, with paths passed as
> arguments to make, etc.

Staying with my original example: If you compiled the Linux _kernel_,
you'd also still have to compile the C library etc. before running a
Hello World application on this system. Same with Fiasco (aka the
kernel) and L4Re.

>> Sure, that's what an automated build system (e.g., GNU/Make) is
>> there for. To only build things once and when you don't touch
>> them, you don't rebuild.
> Yes, I know the purpose of Makefiles, what I meant was, if I
> compile yet another application, not a "hello world" but a "hello
> moon", with separate (new) files, will the C library inclusion and
> remap and the things you mention, which do not relate to anything
> that separates the "world" from the "moon" (but rather what 
> separates Linux from Fiasco), would all that have to be done
> again?

As I said, if you add a new application to L4Re, you won't have to
compile the C library again.

>>> Except for the usual stuff (target, libraries, and sources),
>>> there are a couple of recurring things, like
>>> include $(L4DIR)/mk/
>> Yep, all the make magic in L4Re is hidden in l4/mk/*.mk. Not very
>> nice for the untrained eye, though. ;)
> So my question remains, apart from the ordinary Makefile stuff,
> which I just described, what do I have to do - i.e., what is the
> "unique" Fiasco/L4Re stuff that needs to be included?

Why not start with a simple L4 application with a rather simple
Makefile (e.g., l4/pkg/hello) and copy stuff from there? Basically the
answer is that you only have to set the SRC_C/SRC_CC and REQUIRES_LIBS
make variables and the build system will do the rest for you.

>> Did you already have a look at 
>> ?
>> The slides at 
>> might also be
>> of interest for you.
> There are so many links on those pages - if you can point me to the
> actual articles, I promise to read them.

For an overview (which might include parts of what you already read)
the "Introduction to Fiasco.OC and L4Re" slides in the wiki might be

On the complex lab there are 4 slide sets - the first two might
include some useful information about what needs to go into an L4Re
Makefile, if that is what you're specifically searching for.

- -- 
Dipl.-Inf. Bjoern Doebel    Mail:  doebel at
TU Dresden, OS Chair        Phone: +49 351 463 38 799
Noethnitzer Str. 46         Fax:   +49 351 463 38 284
01187 Dresden, Germany      WWW:
- --
"When the seagulls follow the trawler, it's because they think
 sardines will be thrown into the sea." (Eric Cantona)
Version: GnuPG v1
Comment: Using GnuPG with Icedove -


More information about the l4-hackers mailing list