| From: | Andres Freund <andres(at)anarazel(dot)de> | 
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> | 
| Cc: | Aleksander Alekseev <aleksander(at)timescale(dot)com>, PostgreSQL Development <pgsql-hackers(at)postgresql(dot)org> | 
| Subject: | Re: [RFC] building postgres with meson | 
| Date: | 2022-08-10 17:19:35 | 
| Message-ID: | 20220810171935.7k5zgnjwqzalzmtm@awork3.anarazel.de | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
Hi,
On 2022-06-02 10:26:09 -0700, Andres Freund wrote:
> > Could we have the meson build check that, say, if gram.c exists it
> > is newer than gram.y?  Or get it to ignore an in-tree gram.c?
>
> I suspect the problem with ignoring is gram.h, that's probably a bit harder to
> ignore.
I tried to ignore various generated files in the source tree, but I don't
think it's doable for all of them. Consider
e.g. src/backend/utils/misc/guc-file.c which is gets built via #include
"guc-file.c" from gram.c
Because it's a "" include, the search path starts in the current directory and
only then -I is searched. To my knowledge there's no way of changing
that. Quoting the gcc manpage:
       -I dir
       -iquote dir
       -isystem dir
       -idirafter dir
           Add the directory dir to the list of directories to be searched for header files during preprocessing.  If dir begins with = or $SYSROOT, then
           the = or $SYSROOT is replaced by the sysroot prefix; see --sysroot and -isysroot.
           Directories specified with -iquote apply only to the quote form of the directive, "#include "file"".  Directories specified with -I, -isystem, or
           -idirafter apply to lookup for both the "#include "file"" and "#include <file>" directives.
           You can specify any number or combination of these options on the command line to search for header files in several directories.  The lookup
           order is as follows:
1. For the quote form of the include directive, the directory of the current file is searched first.
           2.  For the quote form of the include directive, the directories specified by -iquote options are searched in left-to-right order, as they appear
               on the command line.
           3.  Directories specified with -I options are scanned in left-to-right order.
           [...]
Except for copying guc.c from source to build tree before building, I don't
see a way of ignoring the in-build-tree guc-file.c.
Not sure what a good way of dealing with this is. For now I'll make it just
error out if there's any known such file in the source tree, but that's not a
good solution forever.  If it were just "normal" build leftovers I'd propose
to (optionally) just remove them, but that's not good for tarballs.
Greetings,
Andres Freund
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Ibrar Ahmed | 2022-08-10 17:42:31 | Re: Get the statistics based on the application name and IP address | 
| Previous Message | Bruce Momjian | 2022-08-10 17:19:01 | Re: [PATCH] CF app: add "Returned: Needs more interest" |