[darwinbuild] Building perl-35

Kevin Van Vechten kevin at opendarwin.org
Tue Dec 20 13:13:58 PST 2005

On Dec 20, 2005, at 1:03 PM, Philip Rinehart wrote:

> ah, so that's interesting, if you build xnu as ppc, you then need  
> to build all further projects as ppc only?

Correct.  I realize we're lacking documentation in this area, so I'm  
really glad you're asking these questions.  Hopefully I can put  
together some more complete documentation soon.

Here's the overall flow of darwinbuild:

1.  you invoke darwinbuild perl
2.  darwinbuild asks darwinxref for the list of build-time  
dependencies needed for perl
3.  darwinbuild looks for the roots for each of these dependencies
      a.  in the local Roots directory
      b.  at each of the binary_sites URLs in the plist
4.  dependencies are copied into the BuildRoot
5.  the build is started

The reason for 3.a. is to allow you to make changes to projects and  
use those in your subsequent builds.  For example, if you were to  
build a modified Libc, then a Libsystem, you probably want the  
Libsystem to pick up your Libc modifications.

If you build a root ppc-only, then it's not going to have the  
necessary i386 parts that another project might depend on.  In the  
case of xnu, it doesn't produce the necessary i386 header files.  In  
the case of a dynamic library, it won't have the i386 symbols that  
another project needs to link against.

Hope that helps shed some light on what's going on.

- Kevin

More information about the darwinbuild-dev mailing list