mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-11-13 15:47:23 +00:00
waf-samba: Link with --undefined-version
wafsamba generates version scripts that name symbols which may not exist in the library: _end, __bss_start and _edata are always listed as local, and the per-version nodes carry symbols from older ABI signature files that were later removed (e.g. tdb_do_delete). GNU ld ignores these, but lld rejects them by default: ld.lld: error: version script assignment of 'local' to symbol '_end' failed: symbol not defined meta-clang used to add -Wl,--undefined-version for libtalloc, libtdb, libtevent, libldb and samba. Since the scripts are generated by design this way, do it once in the class for all its users; binutils accepts the option too. FreeBSD ports do the same for talloc and tdb. Tested: libtalloc, libtdb, libtevent, libldb ptest images pass on qemux86-64 with clang/lld; samba builds. AI-Generated: Uses Claude Code Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
This commit is contained in:
1 file changed
+4
@@ -24,6 +24,10 @@ CONFIGUREOPTS = " --prefix=${prefix} \
|
||||
# avoids build breaks when using no-static-libs.inc
|
||||
DISABLE_STATIC = ""
|
||||
|
||||
# wafsamba version scripts name symbols that may not exist (_end, __bss_start,
|
||||
# _edata, and symbols from older ABI versions); lld rejects those by default
|
||||
LDFLAGS += "-Wl,--undefined-version"
|
||||
|
||||
def get_waf_parallel_make(d):
|
||||
pm = d.getVar('PARALLEL_MAKE')
|
||||
if pm:
|
||||
|
||||
Reference in new issue
Block a user