Re: Parallel configure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



It seems there are pretty big architectural questions to be
answered.  If you paid someone to produce something, you would
get something, but would it be the right thing?

There seems to be the necessity of preserving a linear configuration
script like configure.ac for tests or other code that people want to
write, along with providing a path for projects to transfer to a new
parallel configuration system.

One big question is whether you are going to think of your
configuration step as:

* linear script with a parallel part in it (i.e. call make from shell), or
* a parallel system with a linear part in it (i.e. call shell from make)

This has an implication for how existing configure.ac files can be
parallelised.  If it's the first idea, then you are going to put a
macro somewhere in a configure.ac script that does the parallel bit.
Otherwise, you are calling configure from somewhere within the Makefile.
Either way results of checks have to be shared in one direction or
another.

The latter idea might be good as it would allow the configuration
dependency graph to merge into the larger blob of the build system
in general.

Then there's the question of which bit of your configure script you
replace first.  If you think of the script as a directed graph of
segments of code that have to run before each other, do you start
by replacing:

* segments which do not depend on many other segments: "near-initial"
* segments upon which not many other segments depend: "near-final"

(Maybe there are better terms than "near-initial" and "near-final".)

If you replace near-initial segments, then you have to get information
from make to shell.
If you replace near-final segments, then you have to get information
from shell to make.
If you replace something in the middle, then you have to pass information
both ways (tiresome).

There seems to be an issue with extracting near-initial segments and
doing them inside a parallel make system, and that is AC_REQUIRE.
If segments that were AC_REQUIRE'd upon were done outside of the linear
script, then it wouldn't be apparent that they'd been done, and they
might be done twice.

Replacing near-final elements seems better.  The parallel part of the
configuration could even run after AC_OUTPUT itself has run, to get the
full results.  This may not require any alteration to configure.ac files
at all.  Some "glue" would be needed to check that necessary information
had been provided by AC_OUTPUT in its output files, and if not running
the tests from within the parallel configuration system (configure.ac
might not even exist and everything would have to be done there).  It
seems reasonable that after the configure.ac script has run, a few more
tests could be done and the results added to the configuration.




[Index of Archives]     [GCC Help]     [Kernel Discussion]     [RPM Discussion]     [Red Hat Development]     [Yosemite News]     [Linux USB]     [Samba]

  Powered by Linux