Jakub Jelinek <ja...@redhat.com> writes:
> Hi!
>
> As I wrote in the PR, our Fedora trunk gcc builds likely after r12-7842
> change are now failing (lto1 crashes).
> What happens is that when one bootstraps into an empty build directory
> (or set of them), mddeps.mk doesn't exist yet and so Makefile doesn't
> include it.  When building from an empty dir, that is usually not a big
> issue, it is enough when various build directory files depend on just
> $(srcdir)/config/aarch64/aarch64.md, those files don't exist and
> aarch64.md does, so they are built, so is mddeps.mk.
> But because the other dependencies aren't there (in particular
> $(srcdir)/config/aarch64/aarch64-tune.md ), the
> s-aarch64-tune-md rule isn't invoked to regenerate that file and the
> r12-7842 commit reordered aarch64-cores.def entries but didn't commit
> regenerated aarch64-tune.md.  Because it is just reordering in
> aarch64-tune.md, it actually doesn't matter and bootstraps succeeds.
> But then during make install, mddeps.mk exists already in gcc/ directory,
> it sees that aarch64-cores.def is newer than aarch64-tune.md (unless
> gen_update is used, that just touches aarch64-tune.md to make sure it
> is newer) and regenerates it and as it is different, make install rebuilds
> a large subset of the *.o files, but this time with the system g++
> rather than previous stage one.  And during lto linking of it there
> are differences in LTO bytecode between the compilers and we crash.
>
> The following patch fixes that by regenerating aarch64-tune.md
> (what was forgotten in r12-7842) and by adding a dependency from
> s-mddeps to s-aarch64-tune-md, which makes sure that even when mddeps.mk
> doesn't exist yet make sees the dependency and regenerates aarch64-tune.md
> if needed.
>
> Tested on aarch64-linux and x86_64-linux (cross there), ok for trunk?
>
> 2022-04-04  Jakub Jelinek  <ja...@redhat.com>
>
>       PR target/105144
>       * config/aarch64/t-aarch64 (s-mddeps): Depend on s-aarch64-tune-md.
>       * config/aarch64/aarch64-tune.md: Regenerated.

OK, thanks.

Richard

>
> --- gcc/config/aarch64/t-aarch64.jj   2022-01-18 11:58:59.024990028 +0100
> +++ gcc/config/aarch64/t-aarch64      2022-04-04 10:14:30.256323070 +0200
> @@ -34,6 +34,8 @@ s-aarch64-tune-md: $(srcdir)/config/aarc
>               $(srcdir)/config/aarch64/aarch64-tune.md
>       $(STAMP) s-aarch64-tune-md
>  
> +s-mddeps: s-aarch64-tune-md
> +
>  aarch64-builtins.o: $(srcdir)/config/aarch64/aarch64-builtins.cc $(CONFIG_H) 
> \
>    $(SYSTEM_H) coretypes.h $(TM_H) \
>    $(RTL_H) $(TREE_H) expr.h $(TM_P_H) $(RECOG_H) langhooks.h \
> --- gcc/config/aarch64/aarch64-tune.md.jj     2022-04-03 23:30:25.710798806 
> +0200
> +++ gcc/config/aarch64/aarch64-tune.md        2022-04-04 10:14:55.668962478 
> +0200
> @@ -1,5 +1,5 @@
>  ;; -*- buffer-read-only: t -*-
>  ;; Generated automatically by gentune.sh from aarch64-cores.def
>  (define_attr "tune"
> -     
> "cortexa34,cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88p1,thunderxt88,octeontx,octeontxt81,octeontxt83,thunderxt81,thunderxt83,ampere1,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,cortexa76ae,cortexa77,cortexa78,cortexa78ae,cortexa78c,cortexa65,cortexa65ae,cortexx1,ares,neoversen1,neoversee1,octeontx2,octeontx2t98,octeontx2t96,octeontx2t93,octeontx2f95,octeontx2f95n,octeontx2f95mm,a64fx,tsv110,thunderx3t110,zeus,neoversev1,neoverse512tvb,saphira,neoversen2,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55,cortexr82,cortexa510,cortexa710,cortexx2,demeter"
> +     
> "cortexa34,cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88p1,thunderxt88,octeontx,octeontxt81,octeontxt83,thunderxt81,thunderxt83,ampere1,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,cortexa76ae,cortexa77,cortexa78,cortexa78ae,cortexa78c,cortexa65,cortexa65ae,cortexx1,ares,neoversen1,neoversee1,octeontx2,octeontx2t98,octeontx2t96,octeontx2t93,octeontx2f95,octeontx2f95n,octeontx2f95mm,a64fx,tsv110,thunderx3t110,zeus,neoversev1,neoverse512tvb,saphira,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55,cortexr82,cortexa510,cortexa710,cortexx2,neoversen2,demeter"
>       (const (symbol_ref "((enum attr_tune) aarch64_tune)")))
>
>       Jakub

Reply via email to