[PATCH] configury: --enable-link-serialization support
Jakub Jelinek
jakub@redhat.com
Thu Nov 19 22:34:02 GMT 2020
On Thu, Nov 19, 2020 at 03:50:27PM +0100, Jakub Jelinek via Gcc-patches wrote:
> So, I think the problem is that for make .PHONY targets are just
> "rebuilt" always, so it is very much undesirable for the cc1plus$(exeext)
> etc. dependencies to include .PHONY targets, but I was using
> them - cc1plus.prev which would depend on some *.serial and
> e.g. cc1.serial depending on c and c depending on cc1$(exeext).
>
> The following so far only very lightly tested patch rewrites this
> so that *.serial and *.prev aren't .PHONY targets, but instead just
> make variables.
>
> I was worried that the order in which the language makefile fragments are
> included (which is quite random, what order we get from the filesystem
> matching */config-lang.in) would be a problem but it seems to work fine.
Successfully bootstrapped/regtested on x86_64-linux and i686-linux,
including make install which looked problematic in PR97911.
Ok for trunk?
> 2020-11-19 Jakub Jelinek <jakub@redhat.com>
>
> gcc/
> * configure.ac: In SERIAL_LIST use lang words without .serial
> suffix. Change $lang.prev from a target to variable and instead
> of depending on *.serial expand to the *.serial variable if
> the word is in the SERIAL_LIST at all, otherwise to nothing.
> * configure: Regenerated.
> gcc/c/
> * Make-lang.in (c.serial): Change from goal to a variable.
> (.PHONY): Drop c.serial.
> gcc/ada/
> * gcc-interface/Make-lang.in (ada.serial): Change from goal to a
> variable.
> (.PHONY): Drop ada.serial and ada.prev.
> (gnat1$(exeext)): Depend on $(ada.serial) rather than ada.serial.
> gcc/brig/
> * Make-lang.in (brig.serial): Change from goal to a variable.
> (.PHONY): Drop brig.serial and brig.prev.
> (brig1$(exeext)): Depend on $(brig.serial) rather than brig.serial.
> gcc/cp/
> * Make-lang.in (c++.serial): Change from goal to a variable.
> (.PHONY): Drop c++.serial and c++.prev.
> (cc1plus$(exeext)): Depend on $(c++.serial) rather than c++.serial.
> gcc/d/
> * Make-lang.in (d.serial): Change from goal to a variable.
> (.PHONY): Drop d.serial and d.prev.
> (d21$(exeext)): Depend on $(d.serial) rather than d.serial.
> gcc/fortran/
> * Make-lang.in (fortran.serial): Change from goal to a variable.
> (.PHONY): Drop fortran.serial and fortran.prev.
> (f951$(exeext)): Depend on $(fortran.serial) rather than
> fortran.serial.
> gcc/go/
> * Make-lang.in (go.serial): Change from goal to a variable.
> (.PHONY): Drop go.serial and go.prev.
> (go1$(exeext)): Depend on $(go.serial) rather than go.serial.
> gcc/jit/
> * Make-lang.in (jit.serial): Change from goal to a
> variable.
> (.PHONY): Drop jit.serial and jit.prev.
> ($(LIBGCCJIT_FILENAME)): Depend on $(jit.serial) rather than
> jit.serial.
> gcc/lto/
> * Make-lang.in (lto1.serial, lto2.serial): Change from goals to
> variables.
> (.PHONY): Drop lto1.serial, lto2.serial, lto1.prev and lto2.prev.
> ($(LTO_EXE)): Depend on $(lto1.serial) rather than lto1.serial.
> ($(LTO_DUMP_EXE)): Depend on $(lto2.serial) rather than lto2.serial.
> gcc/objc/
> * Make-lang.in (objc.serial): Change from goal to a variable.
> (.PHONY): Drop objc.serial and objc.prev.
> (cc1obj$(exeext)): Depend on $(objc.serial) rather than objc.serial.
> gcc/objcp/
> * Make-lang.in (obj-c++.serial): Change from goal to a variable.
> (.PHONY): Drop obj-c++.serial and obj-c++.prev.
> (cc1objplus$(exeext)): Depend on $(obj-c++.serial) rather than
> obj-c++.serial.
Jakub
More information about the Gcc-patches
mailing list