Jakub Jelinek <ja...@redhat.com> writes:

> Hi!
>
> internal-fn.h since yesterday includes insn-opinit.h, which is a generated
> header.
> One of my bootstraps today failed because some m2 sources started compiling
> before insn-opinit.h has been generated.
>
> Normally, gcc/Makefile.in has
> # In order for parallel make to really start compiling the expensive
> # objects from $(OBJS) as early as possible, build all their
> # prerequisites strictly before all objects.
> $(ALL_HOST_OBJS) : | $(generated_files)
>
> rule which ensures that all the generated files are generated before
> any $(ALL_HOST_OBJS) objects start, but use order-only dependency for
> this because we don't want to rebuild most of the objects whenever one
> generated header is regenerated.  After the initial build in an empty
> directory we'll have .deps/ files contain the detailed dependencies.
>
> $(ALL_HOST_OBJS) includes even some FE files, I think in the m2 case
> would be m2_OBJS, but m2/Make-lang.in doesn't define those.
>
> The following patch just adds a similar rule to m2/Make-lang.in.
> Another option would be to set m2_OBJS variable in m2/Make-lang.in to
> something, but not really sure to which exactly and why it isn't
> done.
>
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?


> 2023-06-06  Jakub Jelinek  <ja...@redhat.com>
>
>       * Make-lang.in: Build $(generated_files) before building
>       all $(GM2_C_OBJS).
>
> --- gcc/m2/Make-lang.in.jj    2023-05-04 09:31:27.289948109 +0200
> +++ gcc/m2/Make-lang.in       2023-06-06 21:38:26.655336041 +0200
> @@ -511,6 +511,8 @@ GM2_LIBS_BOOT     = m2/gm2-compiler-boot
>                      m2/gm2-libs-boot/libgm2.a \
>                      $(GM2-BOOT-O)
>  
> +$(GM2_C_OBJS) : | $(generated_files)
> +
>  cc1gm2$(exeext): m2/stage1/cc1gm2$(exeext) $(m2.prev)
>       cp -p $< $@
>  
>
>
>       Jakub

Hi Jakub,

sure looks good to me - thanks for the patch,

regards,
Gaius

Reply via email to