git: 242979f142ce - main - databases/ldb15: fix build with lld 17

From: Dimitry Andric <dim_at_FreeBSD.org>
Date: Sun, 19 Nov 2023 20:10:36 UTC
The branch main has been updated by dim:

URL: https://cgit.FreeBSD.org/ports/commit/?id=242979f142ce076beb442e76560495e0c8a2031f

commit 242979f142ce076beb442e76560495e0c8a2031f
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2023-11-19 20:06:14 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2023-11-19 20:10:10 +0000

    databases/ldb15: fix build with lld 17
    
    Building databases/ldb15 with lld 17 results in the following link
    errors:
    
      ld: error: version script assignment of 'LDB_0.9.10' to symbol 'ldb_connect_backend' failed: symbol not defined
      ld: error: version script assignment of 'LDB_0.9.10' to symbol 'ldb_init_module_chain' failed: symbol not defined
      ld: error: version script assignment of 'LDB_0.9.10' to symbol 'ldb_load_modules_list' failed: symbol not defined
      ld: error: version script assignment of 'LDB_0.9.18' to symbol 'ldb_asq_init' failed: symbol not defined
      ld: error: version script assignment of 'LDB_0.9.18' to symbol 'ldb_paged_results_init' failed: symbol not defined
      ld: error: version script assignment of 'LDB_0.9.18' to symbol 'ldb_paged_searches_init' failed: symbol not defined
      ld: error: version script assignment of 'LDB_0.9.18' to symbol 'ldb_rdn_name_init' failed: symbol not defined
      ld: error: version script assignment of 'LDB_0.9.18' to symbol 'ldb_sample_init' failed: symbol not defined
      ld: error: version script assignment of 'LDB_0.9.18' to symbol 'ldb_server_sort_init' failed: symbol not defined
      ld: error: version script assignment of 'LDB_0.9.18' to symbol 'ldb_skel_init' failed: symbol not defined
      ld: error: version script assignment of 'LDB_0.9.18' to symbol 'ldb_tdb_init' failed: symbol not defined
      ld: error: version script assignment of 'local' to symbol '_end' failed: symbol not defined
      ld: error: version script assignment of 'local' to symbol '__bss_start' failed: symbol not defined
      ld: error: version script assignment of 'local' to symbol '_edata' failed: symbol not defined
    
    Since the linker version scripts are generated dynamically, suppress
    errors with lld >= 17 due to these undefined symbols.
    
    PR:             273753
    MFH:            2023Q4
---
 databases/ldb15/Makefile | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/databases/ldb15/Makefile b/databases/ldb15/Makefile
index 45ab23c06f82..5ec63c0bdcc0 100644
--- a/databases/ldb15/Makefile
+++ b/databases/ldb15/Makefile
@@ -109,13 +109,20 @@ PLIST_FILES+=		include/pyldb.h \
 
 .include <bsd.port.pre.mk>
 
+CFLAGS+=		-I${LOCALBASE}/include
+LDFLAGS+=		-L${LOCALBASE}/lib
+
+# Some symbols in ldb's linker version scripts are not defined, but since the
+# scripts are generated dynamically, suppress errors with lld >= 17 due to these
+# undefined symbols.
+LDFLAGS+=		-Wl,--undefined-version
+
 .if ! ${PORT_OPTIONS:MMANPAGES}
 CONFIGURE_ENV+=		XSLTPROC="true"
 .else
 BUILD_DEPENDS+=		${LOCALBASE}/share/xsl/docbook/manpages/docbook.xsl:textproc/docbook-xsl \
 			xsltproc:textproc/libxslt
 .endif
-CONFIGURE_ENV+=		CFLAGS=-I${LOCALBASE}/include LDFLAGS=-L${LOCALBASE}/lib
 
 # No fancy color error messages
 .if ${COMPILER_TYPE} == "clang"