[haiku-development] Re: The status of getting a compiler running

On 2008-01-30 at 11:02:49 [+0100], viktor muntzing 
<viktor.muntzing@xxxxxxxxx> wrote:
> 
> I'm cuorius what is actually not working when trying to compile the haiku
> source within hauiku. Is there problems with the scheduler? The Slab memory
> allocator? Device drivers? Any pointers would be greatly appreciated to
> where to look for bugs. I'm currently having some issues getting networking
> working on my current install so I haven't tested compiling anything in
> haiku myself.

The last time I intended to build Haiku under Haiku, it already failed at 
the "svn co" (though networking generally worked). That's been quite a while 
ago, and I believe I've seen a few network related commits in the meantime, 
so this might work better now. Unzipping the Haiku sources under Haiku 
should work since a few weeks (Axel fixed some BFS and block caches related 
bugs), so it shouldn't be that hard to get the sources onto your Haiku 
partition, even if you don't have BeOS on your machine. The bfs_shell is 
your friend.

To setup a working development environment under Haiku you'll need our glue 
code (the one from BeOS should be binary compatible, though), i.e. add the 
following to your UserBuildConfig:

        AddFilesToHaikuImage develop lib x86
                : <src!system!glue!arch!x86>crti.o 
<src!system!glue!arch!x86>crtn.o
                  <src!system!glue>init_term_dyn.o <src!system!glue>start_dyn.o 
;

You'll also need to symlink the shared libraries to that directory. The 
easiest way to do that is currently doing that under Haiku:

        ln -s /system/lib/*.so /boot/develop/lib/x86/

Alternatively, you can install the glue code in /system/lib and just create 
/boot/develop/lib/x86 as a symlink to that directory, e.g. by:

        AddSymlinkToHaikuImage develop lib : /system/lib : x86 ;

Furthermore you'll need to copy the public Haiku headers to 
/boot/develop/headers. Those are headers/os (rename to "be"), headers/cpp, 
headers/posix, and the single file headers/glibc/_G_config.h (copy into 
posix/).

As compiler currently only gcc 2.95.3 is available (that is you'll also need 
a gcc 2.53.3 compiled Haiku). You can grab Oliver's latest release from 
BeBits and install it in /boot/develop/tools as described in the ReadMe file 
(ignore the STL part). Afterwards you'll have to replace some of gcc's 
includes though, namely those in the 
lib/gcc-lib/i586-pc-beos/2.95.3-060710/include subdirectory. If you 
cross-build Haiku under Linux, FreeBSD, etc. you can copy the includes from 
the cross-compiler's respective directory (usually 
generated/cross-tools/lib/gcc-lib/...).

Once all that has been done, compiling things should work as expected (until 
you hit some bug :-)). For building Haiku you'll also need jam, of course.

CU, Ingo

PS: If you want to play a bit more with building stuff under Haiku, I can 
recommend installing the compiler and the headers on a second partition and 
create /boot/develop/{headers,tools} as symlinks pointing there. Then even 
if somethings goes wrong on Haiku's system partition, or if you use VMware 
(building a new Haiku version always wipes the image), you don't need to 
reinstall the compiler and headers.

Other related posts: