Re: [RFC] building postgres with meson - v13 - Mailing list pgsql-hackers

From Andres Freund
Subject Re: [RFC] building postgres with meson - v13
Date
Msg-id 20220926194435.4hhrwu7d6anrapc3@awork3.anarazel.de
Whole thread Raw
In response to Re: [RFC] building postgres with meson - v13  (Andres Freund <andres@anarazel.de>)
Responses Re: [RFC] building postgres with meson - v13
List pgsql-hackers
Hi,

On 2022-09-26 09:35:16 -0700, Andres Freund wrote:
> > 9c00d355d0e9 meson: Add PGXS compatibility
> >
> > This looks like a reasonable direction to me.  How complete is it?  It
> > says it works for some extensions but not others.  How do we define
> > the target line here?
>
> Yea, those are good questions.
>
>
> > How complete is it?
>
> It's a bit hard to know. I think the most important stuff is there. But
> there's no clear "API" around pgxs. E.g. we don't (yet?) have an exactly
> equivalent definition of 'host', because that's very config.guess specific.
>
> There's lots of shortcuts - e.g. with meson we don't need an equivalent to
> PGAC_CHECK_STRIP, so we need to make up something for Makefile.global.
>
> Noah suggested using $(error something), but that only works if $variable is
> only used in recursively expanded variables - the errors end up confusing.

Looking through a few of the not-nicely-replaced things, I think we can
simplify at least some away:

- RANLIB: most platforms use AROPT = crs, making ranlib unnecessary. {free,
  net, open}bsd don't currently, but all support it from what I know

- with_gnu_ld: this is only used on solaris, to set export_dynamic = -Wl,-E
  when using a gnu ld. How about moving this to configure instead, and just
  checking if -Wl,-E links?

- FLEXFLAGS: As a configure input this is afaict unused and undocumented - and
  it's not clear why it'd be useful? Not that an empty replacement is a
  meaningful effort


I'm not sure what to do about:
- autodepend - I'm inclined to set it to true when using a gcc like
  compiler. I think extension authors won't be happy if suddenly their
  extensions don't rebuild reliably anymore. An --enable-depend like
  setting doesn't make sense for meson, so we don't have anything to source it
  from.
- {LDAP,UUID,ICU}_{LIBS,CFLAGS} - might some extension need them?


For some others I think it's ok to not have replacement. Would be good for
somebody to check my thinking though:

- LIBOBJS, PG_CRC32C_OBJS, TAS: Not needed because we don't build
  the server / PLs with the generated makefile
- ZIC: only needed to build tzdata as part of server build
- MSGFMT et al: translation doesn't appear to be supported by pgxs, correct?
- XMLLINT et al: docs don't seem to be supported by pgxs
- GENHTML et al: supporting coverage for pgxs-in-meson build doesn't seem worth it
- WINDRES: I don't think extensions are bothering to generate rc files on windows


I'll include an updated pgxs-compat patch in the next post of the series (in a
few hours).

Greetings,

Andres Freund



pgsql-hackers by date:

Previous
From: Stephen Frost
Date:
Subject: Re: has_privs_of_role vs. is_member_of_role, redux
Next
From: Peter Geoghegan
Date:
Subject: Re: [RFC] building postgres with meson - v13