gcc/config/t-i386: add build dependencies on i386-builtin-types.inc

Message ID 20220916184922.3274016-1-slyich@gmail.com
State Accepted, archived
Headers
Series gcc/config/t-i386: add build dependencies on i386-builtin-types.inc |

Checks

Context Check Description
snail/gcc-patches-check success Github commit url

Commit Message

Sergei Trofimovich Sept. 16, 2022, 6:49 p.m. UTC
  From: Sergei Trofimovich <siarheit@google.com>

i386-builtin-types.inc is included indirectly via i386-builtins.h
into 4 files: i386.cc i386-builtins.cc i386-expand.cc i386-features.cc

Only i386.cc dependency was present in gcc/config/t-i386 makefile.

As a result parallel builds occasionally fail as:

    g++ ... -o i386-builtins.o ... ../../gcc-13-20220911/gcc/config/i386/i386-builtins.cc
    In file included from ../../gcc-13-20220911/gcc/config/i386/i386-builtins.cc:92:
    ../../gcc-13-20220911/gcc/config/i386/i386-builtins.h:25:10:
     fatal error: i386-builtin-types.inc: No such file or directory
       25 | #include "i386-builtin-types.inc"
          |          ^~~~~~~~~~~~~~~~~~~~~~~~
    compilation terminated.
    make[3]: *** [../../gcc-13-20220911/gcc/config/i386/t-i386:54: i386-builtins.o]
      Error 1 shuffle=1663349189

gcc/
	* config/i386/t-i386: Add build-time dependencies against
	i386-builtin-types.inc to i386-builtins.o, i386-expand.o,
	i386-features.o.
---
 gcc/config/i386/t-i386 | 5 +++++
 1 file changed, 5 insertions(+)
  

Comments

Sergei Trofimovich Sept. 22, 2022, 9:07 p.m. UTC | #1
On Fri, 16 Sept 2022 at 19:49, Sergei Trofimovich <slyich@gmail.com> wrote:
>
> From: Sergei Trofimovich <siarheit@google.com>
>
> i386-builtin-types.inc is included indirectly via i386-builtins.h
> into 4 files: i386.cc i386-builtins.cc i386-expand.cc i386-features.cc
>
> Only i386.cc dependency was present in gcc/config/t-i386 makefile.
>
> As a result parallel builds occasionally fail as:
>
>     g++ ... -o i386-builtins.o ... ../../gcc-13-20220911/gcc/config/i386/i386-builtins.cc
>     In file included from ../../gcc-13-20220911/gcc/config/i386/i386-builtins.cc:92:
>     ../../gcc-13-20220911/gcc/config/i386/i386-builtins.h:25:10:
>      fatal error: i386-builtin-types.inc: No such file or directory
>        25 | #include "i386-builtin-types.inc"
>           |          ^~~~~~~~~~~~~~~~~~~~~~~~
>     compilation terminated.
>     make[3]: *** [../../gcc-13-20220911/gcc/config/i386/t-i386:54: i386-builtins.o]
>       Error 1 shuffle=1663349189
>
> gcc/
>         * config/i386/t-i386: Add build-time dependencies against
>         i386-builtin-types.inc to i386-builtins.o, i386-expand.o,
>         i386-features.o.
> ---
>  gcc/config/i386/t-i386 | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/gcc/config/i386/t-i386 b/gcc/config/i386/t-i386
> index 4e2a0efc615..ffdbbdfe8ce 100644
> --- a/gcc/config/i386/t-i386
> +++ b/gcc/config/i386/t-i386
> @@ -62,7 +62,12 @@ i386-features.o: $(srcdir)/config/i386/i386-features.cc
>         $(COMPILE) $<
>         $(POSTCOMPILE)
>
> +# i386-builtin-types.inc is included into i386-builtins.h.
> +# Below are direct users of i386-builtins.h:
>  i386.o: i386-builtin-types.inc
> +i386-builtins.o: i386-builtin-types.inc
> +i386-expand.o: i386-builtin-types.inc
> +i386-features.o: i386-builtin-types.inc
>
>  i386-builtin-types.inc: s-i386-bt ; @true
>  s-i386-bt: $(srcdir)/config/i386/i386-builtin-types.awk \
> --
> 2.37.2
>

Is it a reasonable approach? Maybe gcc has an equivalent of automake's
BUILT_SOURCES to avoid explicit tracking of such dependencies?
  
Sergei Trofimovich Oct. 3, 2022, 7:04 a.m. UTC | #2
On Thu, 22 Sep 2022 22:07:52 +0100
Sergei Trofimovich <slyich@gmail.com> wrote:

> On Fri, 16 Sept 2022 at 19:49, Sergei Trofimovich <slyich@gmail.com> wrote:
> >
> > From: Sergei Trofimovich <siarheit@google.com>
> >
> > i386-builtin-types.inc is included indirectly via i386-builtins.h
> > into 4 files: i386.cc i386-builtins.cc i386-expand.cc i386-features.cc
> >
> > Only i386.cc dependency was present in gcc/config/t-i386 makefile.
> >
> > As a result parallel builds occasionally fail as:
> >
> >     g++ ... -o i386-builtins.o ... ../../gcc-13-20220911/gcc/config/i386/i386-builtins.cc
> >     In file included from ../../gcc-13-20220911/gcc/config/i386/i386-builtins.cc:92:
> >     ../../gcc-13-20220911/gcc/config/i386/i386-builtins.h:25:10:
> >      fatal error: i386-builtin-types.inc: No such file or directory
> >        25 | #include "i386-builtin-types.inc"
> >           |          ^~~~~~~~~~~~~~~~~~~~~~~~
> >     compilation terminated.
> >     make[3]: *** [../../gcc-13-20220911/gcc/config/i386/t-i386:54: i386-builtins.o]
> >       Error 1 shuffle=1663349189
> >
> > gcc/
> >         * config/i386/t-i386: Add build-time dependencies against
> >         i386-builtin-types.inc to i386-builtins.o, i386-expand.o,
> >         i386-features.o.
> > ---
> >  gcc/config/i386/t-i386 | 5 +++++
> >  1 file changed, 5 insertions(+)
> >
> > diff --git a/gcc/config/i386/t-i386 b/gcc/config/i386/t-i386
> > index 4e2a0efc615..ffdbbdfe8ce 100644
> > --- a/gcc/config/i386/t-i386
> > +++ b/gcc/config/i386/t-i386
> > @@ -62,7 +62,12 @@ i386-features.o: $(srcdir)/config/i386/i386-features.cc
> >         $(COMPILE) $<
> >         $(POSTCOMPILE)
> >
> > +# i386-builtin-types.inc is included into i386-builtins.h.
> > +# Below are direct users of i386-builtins.h:
> >  i386.o: i386-builtin-types.inc
> > +i386-builtins.o: i386-builtin-types.inc
> > +i386-expand.o: i386-builtin-types.inc
> > +i386-features.o: i386-builtin-types.inc
> >
> >  i386-builtin-types.inc: s-i386-bt ; @true
> >  s-i386-bt: $(srcdir)/config/i386/i386-builtin-types.awk \
> > --
> > 2.37.2
> >  
> 
> Is it a reasonable approach? Maybe gcc has an equivalent of automake's
> BUILT_SOURCES to avoid explicit tracking of such dependencies?
> 
> -- 
> Sergei
  
Uros Bizjak Oct. 3, 2022, 8:41 p.m. UTC | #3
On Mon, Oct 3, 2022 at 9:05 AM Sergei Trofimovich via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:
>
> On Thu, 22 Sep 2022 22:07:52 +0100
> Sergei Trofimovich <slyich@gmail.com> wrote:
>
> > On Fri, 16 Sept 2022 at 19:49, Sergei Trofimovich <slyich@gmail.com> wrote:
> > >
> > > From: Sergei Trofimovich <siarheit@google.com>
> > >
> > > i386-builtin-types.inc is included indirectly via i386-builtins.h
> > > into 4 files: i386.cc i386-builtins.cc i386-expand.cc i386-features.cc
> > >
> > > Only i386.cc dependency was present in gcc/config/t-i386 makefile.
> > >
> > > As a result parallel builds occasionally fail as:
> > >
> > >     g++ ... -o i386-builtins.o ... ../../gcc-13-20220911/gcc/config/i386/i386-builtins.cc
> > >     In file included from ../../gcc-13-20220911/gcc/config/i386/i386-builtins.cc:92:
> > >     ../../gcc-13-20220911/gcc/config/i386/i386-builtins.h:25:10:
> > >      fatal error: i386-builtin-types.inc: No such file or directory
> > >        25 | #include "i386-builtin-types.inc"
> > >           |          ^~~~~~~~~~~~~~~~~~~~~~~~
> > >     compilation terminated.
> > >     make[3]: *** [../../gcc-13-20220911/gcc/config/i386/t-i386:54: i386-builtins.o]
> > >       Error 1 shuffle=1663349189
> > >
> > > gcc/
> > >         * config/i386/t-i386: Add build-time dependencies against
> > >         i386-builtin-types.inc to i386-builtins.o, i386-expand.o,
> > >         i386-features.o.

OK.

Thanks,
Uros.

> > > ---
> > >  gcc/config/i386/t-i386 | 5 +++++
> > >  1 file changed, 5 insertions(+)
> > >
> > > diff --git a/gcc/config/i386/t-i386 b/gcc/config/i386/t-i386
> > > index 4e2a0efc615..ffdbbdfe8ce 100644
> > > --- a/gcc/config/i386/t-i386
> > > +++ b/gcc/config/i386/t-i386
> > > @@ -62,7 +62,12 @@ i386-features.o: $(srcdir)/config/i386/i386-features.cc
> > >         $(COMPILE) $<
> > >         $(POSTCOMPILE)
> > >
> > > +# i386-builtin-types.inc is included into i386-builtins.h.
> > > +# Below are direct users of i386-builtins.h:
> > >  i386.o: i386-builtin-types.inc
> > > +i386-builtins.o: i386-builtin-types.inc
> > > +i386-expand.o: i386-builtin-types.inc
> > > +i386-features.o: i386-builtin-types.inc
> > >
> > >  i386-builtin-types.inc: s-i386-bt ; @true
> > >  s-i386-bt: $(srcdir)/config/i386/i386-builtin-types.awk \
> > > --
> > > 2.37.2
> > >
> >
> > Is it a reasonable approach? Maybe gcc has an equivalent of automake's
> > BUILT_SOURCES to avoid explicit tracking of such dependencies?
> >
> > --
> > Sergei
>
>
> --
>
>   Sergei
  

Patch

diff --git a/gcc/config/i386/t-i386 b/gcc/config/i386/t-i386
index 4e2a0efc615..ffdbbdfe8ce 100644
--- a/gcc/config/i386/t-i386
+++ b/gcc/config/i386/t-i386
@@ -62,7 +62,12 @@  i386-features.o: $(srcdir)/config/i386/i386-features.cc
 	$(COMPILE) $<
 	$(POSTCOMPILE)
 
+# i386-builtin-types.inc is included into i386-builtins.h.
+# Below are direct users of i386-builtins.h:
 i386.o: i386-builtin-types.inc
+i386-builtins.o: i386-builtin-types.inc
+i386-expand.o: i386-builtin-types.inc
+i386-features.o: i386-builtin-types.inc
 
 i386-builtin-types.inc: s-i386-bt ; @true
 s-i386-bt: $(srcdir)/config/i386/i386-builtin-types.awk \