Compiling DROPS' dietlibc on FreeBSD

Julian Stecklina der_julian at
Tue Sep 13 18:13:04 CEST 2005

On Tue, 13 Sep 2005 17:14:23 +0200
Frank Mehnert <fm3 at> wrote:

> Julian,
> On Tuesday 13 September 2005 16:31, Julian Stecklina wrote:
> > On Tue, 13 Sep 2005 11:27:21 +0200 (DFT)
> >
> > "Martin Pohlack" <mp26 at> wrote:
> > > Hi,
> > >
> > > I currently don't have access to the source code, but I think you
> > > should look up how the gcc include path is generated.  The
> > > '-I/include' and the missing 'stdarg.h' seem to point to this.
> >
> > I changed GCCDIR_x86 to /usr, so /usr/include gets passed and most
> > of dietlibc seems to compile. But I am missing l4/* include files.
> > What is the required order of building? How do I install header
> > files where the build scripts find them?
> This is generally a bad idea since you should use the headers which
> the LibC is build against. To fix your problem with stdarg.h go please
> check the following:
>   gcc -print-search-dirs|sed -ne 's+^install: \(.*[^/][^/]*\)/\?+\1+p'

Removing \? seems to give the intended results.  Does this change
semantics? Thanks for the hint.

> To build the L4 tree, perform make in $(L4DIR)/pkg. That ensures that
> at first all headers of all packages are installed into
> $(L4DIR)/include. After that, check that directory for the headers.

> cd l4/pkg; gmake
  ... Generating cpu_reserve-server.c
GENDEP_TARGET="cpu_reserve-server.c cpu_reserve-server.h
cpu_reserve-client.c cpu_reserve-client.h cpu_reserve-sys.h"
GENDEP_BINARY=cpp0 GENDEP_DEPFILE=.cpu_reserve.idl.d
CC=gcc33 ../../../../tool/dice/src/dice -P-DRAM_BASE=0x0
-P-DL4API_l4v2 -P-I../../../../include/x86/l4v2
-P-I/home/blitz/drops/include/x86/l4v2 -P-I../../../../include/l4v2
-P-I/home/blitz/drops/include/l4v2 -P-I../../../../include/x86
-P-I/home/blitz/drops/include/x86 -P-I../../../../include
-P-I/home/blitz/drops/include -P-nostdinc -P-DUSE_DIETLIBC=y
-P-I../../../../include/dietlibc -P-I/home/blitz/drops/include/dietlibc
-P-I/usr/local/lib/gcc-lib/i386-portbld-freebsd5.4/3.3.6/gcc-lib/i386-portbld-freebsd5.4/3.3.6/include ../cpu_reserve.idl
In file included from ../cpu_reserve.idl:1:
dice/dice-corba-types.h:77:26: l4/sys/types.h: No such file or
directory ../cpu_reserve.idl:1:26: l4/sys/types.h: No such file or
directory ../cpu_reserve.idl:2:30: l4/dm_mem/dm_mem.h: No such file or

I am still missing headers. :) I tried gmake install in kernel/ and
tools/, but it did not help.

> You are talking about $(L4DIR)/mk/ As far as I see, printf
> "%P " delivers filenames as 'foo bar buz' instead of 'foo\nbar\nbuz'.
> I assume that the perl script would complain about '\n's. As this

Which perl script?

> seems to not work on your box, this could be the reason why crt0.h
> cannot be found ...

I actually thought the results of this find invocation are only
processed in Makefiles/shell scripts which treat \n as whitespace.

Julian Stecklina

When someone says "I want a programming language in which I
need only say what I wish done," give him a lollipop. - Alan Perlis

More information about the l4-hackers mailing list