Hi,
On 2022-09-14 15:37:06 -0400, Tom Lane wrote:
> John Naylor <john.naylor@postgresql.org> writes:
> > Move gramparse.h to src/backend/parser
>
> The cfbot is unhappy since this commit; some but not all tests fail with
>
> [09:33:13.793] In file included from scan.c:39:
> [09:33:13.793] ./gramparse.h:29:10: fatal error: 'gram.h' file not found
> [09:33:13.794] #include "gram.h"
> [09:33:13.794] ^~~~~~~~
> [09:33:13.839] In file included from parser.c:25:
> [09:33:13.839] ./gramparse.h:29:10: fatal error: 'gram.h' file not found
> [09:33:13.839] #include "gram.h"
> [09:33:13.839] ^~~~~~~~
>
> What I think is happening is that it was a mistake to remove
> parser/gram.h from the dependencies of backend/Makefile's
> generated-headers target: that allows builds to proceed before
> gram.h has necessarily been created. The fact that it works
> at all for anybody says that there's another dependency path
> somewhere that causes bison to get run ... but, seemingly,
> that doesn't always happen soon enough in a parallel build.
But why doesn't the below take care of it?
> # Force these dependencies to be known even without dependency info built:
> gram.o scan.o parser.o: gram.h
The only file including gram.h is gramparse.h, which in turn is only included
by parser.c, scan.l, gram.y. So this should suffice.
Greetings,
Andres Freund