This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author rbcollins
Recipients Alex.Willmer, Arfrever, Link Mauve, benjamin.peterson, doko, freakboy3742, georg.brandl, koobs, mancoast, martin.panter, pitrou, rbcollins
Date 2016-03-14.01:05:10
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <>
So in general: and 

There are three platforms in play: target, host, build.

Host is the platform where what you build should run on.
build is the platform we are building on.
target is the platform where the *output* of the build thing itself should run on. Baby steps though: lets assume target==host always.

Now, the pathological case of building things is the canadian cross -

Note here that you actually build multiple different entire compilers, - and thats what we need here.

We need to build two python's. 

One, for build, which pgen and _freeze_importlib can depend on.

One, for host, which is the output, and can depend on the output of running pgen and _freeze_importlib

I don't have examples of Makefile parameterisation to support this offhand, but gcc would be the obvious (if perhaps overwhelming) place to look at it.

The key things I'd expect are that:
 - when host==build, the dependencies and outputs are identical, so we only build one copy of Python and everything else.
 - when host!=build, we get a chain - the host Python -> pgenoutput -> pgen -> build Python -> pgenoutput
Date User Action Args
2016-03-14 01:05:11rbcollinssetrecipients: + rbcollins, georg.brandl, doko, pitrou, benjamin.peterson, Arfrever, freakboy3742, martin.panter, koobs, Alex.Willmer, Link Mauve, mancoast
2016-03-14 01:05:11rbcollinssetmessageid: <>
2016-03-14 01:05:11rbcollinslinkissue22625 messages
2016-03-14 01:05:10rbcollinscreate