Suppress lld 16 errors about undefined symbols in version maps

lld >= 16 turned on --no-undefined-version by default, which results in
errors whenever symbols are mentioned in version maps, but are not
actually defined in the binary.

Since we have quite a few instances of symbols that are defined or not,
depending on various compile-time settings, suppress this lld check for
the time being.

MFC after:	1 week
This commit is contained in:
Dimitry Andric 2023-04-17 18:00:20 +02:00
parent a6b55ee6be
commit 2ba84b4bcd

View File

@ -262,6 +262,13 @@ SHLIB_NAME_FULL=${SHLIB_NAME}
.if !empty(VERSION_MAP)
${SHLIB_NAME_FULL}: ${VERSION_MAP}
LDFLAGS+= -Wl,--version-script=${VERSION_MAP}
# lld >= 16 turned on --no-undefined-version by default, but we have several
# symbols in our version maps that may or may not exist, depending on
# compile-time defines.
.if ${LINKER_TYPE} == "lld" && ${LINKER_VERSION} >= 160000
LDFLAGS+= -Wl,--undefined-version
.endif
.endif
.if defined(LIB) && !empty(LIB) || defined(SHLIB_NAME)