Julian,
On Tuesday 13 September 2005 16:31, Julian Stecklina wrote:
On Tue, 13 Sep 2005 11:27:21 +0200 (DFT)
"Martin Pohlack" mp26@os.inf.tu-dresden.de 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'
should deliver you the gcc directory. Starting from that directory, ./include contains stdarg.h. I assume that the sed script probably does not work on your BSD box. Perhaps you find a fix. You find the original code in $(L4DIR)/mk/Makeconf, variable GCCDIR_f.
L4 headers are installed to $(L4DIR)/include when you perform make inside a $(L4DIR/pkg/<package>/include directory. Therefore, crt0.h should be located in $(L4DIR)/include/l4/crtx/crt0.h.
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.
But I'm not sure whether dietlibc will build on a bsd, because its author seems "a little bit" affixed to Linux ;-).
I have high hopes. It cannot be _that_ difficult. But if someone could explain to me where the advantage of find -printf "%P " over find -print is (which is POSIX) I would be partially enlightened. ;)
You are talking about $(L4DIR)/mk/include.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 seems to not work on your box, this could be the reason why crt0.h cannot be found ...
Frank