On Thu, Apr 5, 2012 at 2:54 PM, Olivier Hainque <hain...@adacore.com> wrote: > Hello, > > This is following up on a proposal first discussed at > http://gcc.gnu.org/ml/gcc-patches/2010-10/msg00666.html > > The initial issue to resolve is still present today: > install-no-fixedincludes remains a useful Makefile target > and it misbehaves in two ways: > > 1) past the second invocation, it rebuilds a lot of things > un-necessarily (because the first invocation touches stamps > it should preserve) > > 2) it does install the contents of 'include-fixed' while part of > it's purpose is precisely not to > > This can be observed rapidly on a standard x86-linux configuration, > just to illustrate: > > configure --prefix=<p> --enable-languages=c --disable-libada > --disable-bootstrap > > make install-no-fixedincludes >& ins-nofixed-1.log > mv <install-tree> <install1> > > make install-no-fixedincludes >& ins-nofixed-2.log > mv <install-tree> <install2> > > diff ins-nofixed-1.log ins-nofixed-2.log > < + lots of stuff, rebuilds, etc> > > ls <install1>/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/include-fixed > <unexpected bits there> > > The attached patch is a proposal to fix this, moving details to the gcc/ > Makefile where they belong (as suggested in the aforementioned thread), > and adding explicit targets+comments to clarify what is going on. > > After the patch > > - all the un-necessary extra operations disappear from the second step > (and this remains stable on later invocations), > > - the undesired parts of 'include-fixed' are not installed any more > > I have compared the install trees and found them identical otherwise. > > Bootstrapped and regtested on x86_64-pc-linux-gnu with languages=all,ada. > > OK to commit ?
Nice. I suppose this would enable a --disable-fixinclude? fixinclude can take quite some time when a lot of headers are installed and if we are not going to install them, why produce them ... Richard. > Thanks in advance for your feedback, > > Olivier > > 2012-04-05 Olivier Hainque <hain...@adacore.com> > > * Makefile.tpl (gcc-no-fixedincludes): Rename into ... > (gcc-install-no-fixedincludes): Forwarder to local target in gcc/ > * Makefile.in: Regenerate. > > gcc/ > * Makefile.in (install-no-fixedincludes): New target. Former toplevel > gcc-no-fixedincludes, interlacing stmp-int-hdrs and install with ... > (stash-maybefixed-headers, restore-header-stamps, > restore-maybefixed-headers): New subtargets. Add -p to cp syslimits.h. > Stash and restore include-fixed as well as include. > (stmp-int-hdrs): Use move-if-change + cp -p to setup fix_dir/limits.h. >