Re: Build with LTO / -flto on macOS
Peter Eisentraut <peter@eisentraut.org>
From: Peter Eisentraut <peter@eisentraut.org>
To: Wolfgang Walther <walther@technowledgy.de>,
PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Andres Freund <andres@anarazel.de>
Date: 2024-06-03T14:32:01Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Make building with LTO work on macOS
- 73275f093f89 18.0 landed
-
Require memory barrier support.
- 83aadbeb96f0 18.0 landed
-
Require compiler barrier support.
- a011dc399cc8 18.0 landed
-
autoconf: Move export_dynamic determination to configure
- 9db49fc5bfdc 16.0 cited
On 03.06.24 16:22, Wolfgang Walther wrote: > Building with clang and -flto on macOS currently fails with errors > similar to [1]. This is because the --export-dynamic flag is called > -export_dynamic [2] instead and we have not been passing this variant to > the linker, so far. It's probably worth clarifying that this option is needed on macOS only if LTO is also enabled. For standard (non-LTO) builds, the export-dynamic behavior is already the default on macOS (otherwise nothing in PostgreSQL would work). I don't think we explicitly offer LTO builds as part of the make build system, so anyone trying this would do it sort of self-service, by passing additional options to configure or make. In which case they might as well pass the -export_dynamic option along in the same way? I don't mind addressing this in PG18, but I would hesitate with backpatching. With macOS, it's always hard to figure out whether these kinds of options work the same way going versions back.