[K42-discussion] devtree build note, new build questions
Amos Waterland
apw at us.ibm.com
Sat Jun 3 01:37:55 EST 2006
On Thu, Jun 01, 2006 at 08:39:57AM -0600, Patrick G. Bridges wrote:
> 1. When following Amos's instructions on how to build the devtree,
> all of your builds in kitchsrc using the old build system prior to
> the build with Makefile.new *will eventually fail*. Ignore the
> failures and keep on following the sequence that Amos gave in his
> email to get it running. (
> In my case:
> * The first old build (full_snapshot SEQ=1) died at Locks.C
> because the partDeb.Img.4 k42-packages has old linux header includes
> and prototypes,
> * The linux-030 build should succeed
> * The second old build (SEQ=1) will likely die in trying to link
> the k42 kernel (mostly refs to .get_property/ppc_md/sys_XXX that are
> referenced in a number of places and defined in pty.k42objs.o, whicih
> I guess the old build system doesn't try to link in the kernel?)
> * Te subsequent build/link using Makefile.new *will* succeed,
> subject to caveats below.
The steps you describe above are exactly as expected. You have to build
some of K42 until it breaks, then build Linux, then build
more of K42 with the old machinery until it breaks, then build
completely with the new machinery. I would prefer a less scary process,
but we'll have to devote some time to it later.
> 2. Makefile.new currently assumes you're doing a fullDeb build. It
> takes minor changes (some in the rules themselves - i've fixed these
> locally) to get it to build with partDeb, so I'd suggest doing doing
> a fullDeb bootstrap build
I actually recommend always building with fullDeb when you are doing
bringup work. But yes, I will integrate your patch, some others from
Chris and Jeremy, and some patches I have lying around to implement a
Linux-style .config.
> 3. You currently have to hand-set your OS name in the new Makefile to
> whatever the old build found (the old build sets it automatically).
> In my case, this was a change from i686 to x86_64
This is really hard to do across all operating systems. AIX especially
is a problem. We'll get it figured out.
> I'm going to start working on adding rules to Makefile.new for
> bootstrapping the entire tree using only the new build, starting with
> rules for building and installing the necessary scripts and build-
> tools. Minor things like I described in (2) and (3) above I'll also
> fix as I go. In addition to rules for building and putting the tools
> in the appropriate place and generating stuubs once I can do that,
> are there any other gotchas that the old build does that I'll need to
> add to the new build? In particular, the k42 wiki lists a number of
> steps in the current build that may not be needed, like copying
> around include files. Any thoughts on these?
I have actually found it most productive to work backwards. That is,
start with an object that Makefile.new expects to already exist and add
a rule for it. I'll take any patches you send though :)
More information about the K42-discussion
mailing list