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 ? 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.