mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Make building with LTO work on macOS
When building with -flto, the backend binary must keep many otherwise unused symbols to make them available to dynamically loaded modules / extensions. This has been done via -Wl,--export-dynamic on many platforms for years. This flag is not supported by the macOS linker, though. Here it's called -Wl,-export_dynamic instead. Thus, make configure pick up on this variant of the flag as well. Meson has the logic upstream as of version 1.5.0. Without this fix, building with -flto fails with errors similar to [1] and [2]. [1]: https://postgr.es/m/1581936537572-0.post%40n3.nabble.com [2]: https://postgr.es/m/21800.1499270547%40sss.pgh.pa.us Author: Wolfgang Walther <walther@technowledgy.de> Discussion: https://www.postgresql.org/message-id/flat/427c7c25-e8e1-4fc5-a1fb-01ceff185e5b@technowledgy.de
This commit is contained in:
@ -2398,7 +2398,13 @@ fi
|
||||
# For linkers that understand --export-dynamic, add that to the LDFLAGS_EX_BE
|
||||
# (backend specific ldflags). One some platforms this will always fail (e.g.,
|
||||
# windows), but on others it depends on the choice of linker (e.g., solaris).
|
||||
# macOS uses -export_dynamic instead. (On macOS, the option is only
|
||||
# needed when also using -flto, but we add it anyway since it's
|
||||
# harmless.)
|
||||
PGAC_PROG_CC_LD_VARFLAGS_OPT(LDFLAGS_EX_BE, [-Wl,--export-dynamic], $link_test_func)
|
||||
if test x"$LDFLAGS_EX_BE" = x""; then
|
||||
PGAC_PROG_CC_LD_VARFLAGS_OPT(LDFLAGS_EX_BE, [-Wl,-export_dynamic], $link_test_func)
|
||||
fi
|
||||
AC_SUBST(LDFLAGS_EX_BE)
|
||||
|
||||
# Create compiler version string
|
||||
|
Reference in New Issue
Block a user