This is the mail archive of the 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]

fix install-no-fixedincludes mishaps


This is following up on a proposal first discussed at

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,


2012-04-05  Olivier Hainque  <>

        * Makefile.tpl (gcc-no-fixedincludes): Rename into ...
        (gcc-install-no-fixedincludes): Forwarder to local target in gcc/
        * Regenerate.

        * (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.

Attachment: no-fixedincludes.dif
Description: video/dv

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