incubator-ooo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oliver-Rainer Wittmann <orwittm...@googlemail.com>
Subject Re: Removing output trees during the bootstrap step?
Date Fri, 24 Feb 2012 07:10:47 GMT
Hi,

On 23.02.2012 14:49, Herbert Duerr wrote:
> For a long time the old build system had the problem that build dependencies
> between modules had to be set manually and this was quite fragile, of course. It
> can result in obvious trouble like compile or link failures and what is more
> troubling are subtle problems, like struct changes going unnoticed by a source
> file depending on it. The result are hard to debug and "interesting" artifacts.
>
> The gbuild process has many benefits one of which is its automatic handling of
> dependencies. Volunteers are very welcome to migrate the remaining modules. In
> the meantime we have to deal with the dual gbuild/oldbuild process which
> complicates the dependency problem more. The manually set dependencies of the
> old build system where also not perfectly debugged which showed when the build
> order was changed, e.g. by doing a highly parallel builds on beefy buildbots.
> Fixing all to the the old-build dependencies would help too, volunteers are very
> welcome.
>
> Looking for a solution that works reliably for the very near future I'm
> considering to add a "clean output trees" to the bootstrap step. It would make
> sure that all is rebuilt when the configuration gets changed. Of course you
> could prevent that (by setting an environment variable DO_KEEP_OUTPUT_TREES) but
> the default should be to go the "better safe than sorry" way.
>
> --- a/main/bootstrap.1
> +++ b/main/bootstrap.1
> @@ -22,3 +22,11 @@ if [ "$DO_FETCH_TARBALLS" = "yes" ]; then
> $SRC_ROOT/fetch_tarballs.sh $SRC_ROOT/ooo.lst
> fi
>
> +# remove all output trees
> +# TODO: this is no longer needed when all dependencies are perfect
> +# or when the switch to the gbuild system is complete
> +if [[ -n "$DO_KEEP_OUTPUT_TREES" && -n $INPATH && -n $OUTDIR ]]; then
> + echo Removing the output trees
> + rm -rf "*/${INPATH}" "${OUTDIR}"
> +fi
> +
>

a -1 from my side for a new default behavior of the bootstrap script.
Make it optional, if you want, but please not the default behavior.

As Armin stated the dependencies are now global.
Thus, my trick to "workaround" the "race condition risk" is to perform a "build 
--all --deliver" before the intrinsic build is triggered in order to get all 
"new headers" delivered to the solver.

Best regards, Oliver.

Mime
View raw message