databases/tdb: fix build with lld 17

Building databases/tdb with lld 17 results in the following link errors:

  11:57:13 runner ['cc', '-Wl,--version-script=/wrkdirs/usr/ports/databases/tdb/work/tdb-1.4.7/bin/default/tdb.vscript', '-shared', '-Wl,-h,libtdb.so.1', 'lib/replace/replace.c.2.o', 'lib/replace/strptime.c.2.o', 'lib/replace/xattr.c.2.o', 'common/check.c.1.o', 'common/error.c.1.o', 'common/tdb.c.1.o', 'common/traverse.c.1.o', 'common/freelistcheck.c.1.o', 'common/lock.c.1.o', 'common/dump.c.1.o', 'common/freelist.c.1.o', 'common/io.c.1.o', 'common/open.c.1.o', 'common/transaction.c.1.o', 'common/hash.c.1.o', 'common/summary.c.1.o', 'common/rescue.c.1.o', 'common/mutex.c.1.o', '-o/wrkdirs/usr/ports/databases/tdb/work/tdb-1.4.7/bin/default/libtdb.so', '-Wl,-Bstatic', '-Wl,-Bdynamic', '-lpthread', '-fstack-protector-strong', '-Wl,-no-undefined']
  ld: error: version script assignment of 'TDB_1.2.1' to symbol 'tdb_do_delete' 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
  cc: error: linker command failed with exit code 1 (use -v to see invocation)

Since the linker version scripts are generated dynamically, suppress
errors with lld >= 17 due to these undefined symbols.

PR:		274146
Approved by:	maintainer timeout (2 weeks)
MFH:		2023Q4
This commit is contained in:
Dimitry Andric 2023-09-28 19:07:19 +02:00
parent 5a92ad2b2f
commit bc9cbb7a3a

View file

@ -52,6 +52,10 @@ CFLAGS+= ${CFLAGS_${CHOSEN_COMPILER_TYPE}}
CFLAGS_clang= -fno-color-diagnostics
CONFIGURE_ENV+= NOCOLOR=yes
MAKE_ENV+= NOCOLOR=yes
# Some symbols in tdb'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
post-patch:
@${REINPLACE_CMD} -e 's|%%PKGCONFIGDIR%%|${PKGCONFIGDIR}|g' \