[darwinbuild] Building darwin 8C46
Kevin Van Vechten
kevin at opendarwin.org
Tue Dec 20 11:07:33 PST 2005
On Dec 20, 2005, at 10:51 AM, Markus Hitter wrote:
> Am 20.12.2005 um 10:56 schrieb Dave:
>> I have been at this for a while and I just can;t seem to find the
>> info anywhere on the web. Namely, how do you build a complete
>> darwin that is capable of at least getting into single user mode.
> Hmmm. Nobody did this already, I'm afraid.You can get quite close,
> however. See <http://release.opendarwin.org/> to see what others get.
This has been done. Darwin 8.0.1 was produced in this way, and
others (kito) have successfully booted an 8.2.1 build on ppc.
>> I have successfully built xnu for 8C46 but when I try to put it on
>> a target running 8C46 as an alternate kernel it wedges really
>> quick (Gery screen, square corners, grey apple).
> Works here. I've successfully built kernels for Darwin 8, 8.2 and
> 8.3 and all three worked well: <http://www.jump-ing.de/index.php?
> Lang=de&Menu=3&SubMenu=2> I did a small tweak only, as well.
>> ... the new 8C46 kernel is almost twice as big. Debugging stuff?
> The Darwin kernel should be slightly smaller than the Mac OS X one.
> A debug kernel would be about 10 times (or something in this area)
> as big.
If it's twice as big, it's likely to be a universal binary instead of
a single-architecture binary. DarwinBuild's plists produce universal
binaries by default.
>> Do I have to specify each and every package individually to get an
>> entire build?
In your build directory, you can use the following commands to list
all the projects in the build (without version numbers), arrange them
in a suitable build order, and then build all of the projects:
# darwinxref version '*' | sed -e 's/-.*//' > projects.txt
# /usr/local/share/darwinbuild/buildorder projects.txt ordered.txt
# /usr/local/share/darwinbuild/buildlist ordered.txt
Also, if you haven't already, you'll want to initialize your build
directory with one of the plists from release.opendarwin.org, since
those plists have patches that are required to make some projects build.
More information about the darwinbuild-dev