This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: fix install-no-fixedincludes mishaps


On Thu, Apr 5, 2012 at 2:54 PM, Olivier Hainque <hainque@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 ?<hainque@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.
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]