Dan Sugalski <[EMAIL PROTECTED]> wrote:
> Step 1: We probe, and build a config file (not config.h, mind) with
> our results.
> 
> Step 2: We take the config file and build config.h and choose (or
> build) the right platform.h/platform.c file.

Internally, Configure is a four-step process (initialization,
interactive probing, automatic probing, generation); in principle, we
could add something to initialization that loaded in a configuration
database and skipped the probing steps for a cross-compile.

The tricky part is that the probing steps and the generation steps are
a bit incestuous, in that many of the probing steps insert parts of
Makefiles into the configuration database, which are then interpolated
in the Makefile generation steps and stripped out before the Perl and
Parrot configuration modules are written.  (Without their removal, the
serialized database would be at least a few hundred kilobytes, and
possibly more--early versions of config_lib.pasm would actually crash
because either IMCC or Parrot itself couldn't handle the gigantic
strings being thrown at it.)

The Right Solution is to create a cleaner separation, but in practice
people writing Configure steps have never done that, and I don't
really hold much hope for them doing so in the future.

> Step 3: We build the appropriate platform-specific library files, if
> there are any.

It occurs to me that most of these are bytecode or frozen PMC files,
both of which are portable.  So we could build them with a
locally-available Parrot, then transfer them to the target platform. 
I don't think it's onerous to require that you have a full Parrot
built on the source platform...

-- 
Brent 'Dax' Royal-Gordon <[EMAIL PROTECTED]>
Perl and Parrot hacker

There is no cabal.
[I currently have a couple Gmail invites--contact me if you're interested.]

Reply via email to