I was looking at patches found in some cross-build related issues, working around building pgen during a cross build. However it looks like this can be solved by just getting the timestamps for the dependencies right, which is already done for some files. So this should be done for the the GRAMMAR files too. Would this be ok for the 3.3 branch and trunk?
Then, how and when is this command run, so that you always have the correct time stamps? is it hg pull && hg update && make -f Makefile.pre.in touch? Would it be worthwhile to have a shell script python_update which just does this (idea comes from GCC's contrib/gcc_update script)?