git: 15d19c74ba1a - main - databases/ldb20: fix build with lld 17

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

URL: https://cgit.FreeBSD.org/ports/commit/?id=15d19c74ba1a393fb74ec983c06b61cce329cc8a

commit 15d19c74ba1a393fb74ec983c06b61cce329cc8a
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2023-11-19 20:05:41 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2023-11-19 20:10:10 +0000

    databases/ldb20: fix build with lld 17
    
    Building databases/ldb20 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 'LDB_1.1.25' to symbol 'ldb_unpack_data_only_attr_list' failed: symbol not defined
      ld: error: version script assignment of 'LDB_1.1.27' to symbol 'ldb_unpack_data_only_attr_list_flags' 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/ldb20/Makefile | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/databases/ldb20/Makefile b/databases/ldb20/Makefile
index 3b0940130908..8ab39ba4fa56 100644
--- a/databases/ldb20/Makefile
+++ b/databases/ldb20/Makefile
@@ -90,7 +90,13 @@ PLIST_FILES=		include/ldb_version.h \
 
 .include <bsd.port.pre.mk>
 
-CONFIGURE_ENV+=		CFLAGS=-I${LOCALBASE}/include LDFLAGS=-L${LOCALBASE}/lib
+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"