Linker errors with --no-undefined-version
GNU ld/gold/ld.lld support --no-undefined-version
. lld 16 has defaulted to --no-undefined-version
. (https://maskray.me/blog/2020-11-15-explain-gnu-linker-options#no-undefined-version)
With this option, the default ../../configure && make -j $(nproc)
build has many errors.
ld.lld: error: version script assignment of 'LIBXML2_2.4.30' to symbol 'xmlXPtrBuildNodeList' failed: symbol not defined
ld.lld: error: version script assignment of 'LIBXML2_2.4.30' to symbol 'xmlXPtrEvalRangePredicate' failed: symbol not defined
ld.lld: error: version script assignment of 'LIBXML2_2.4.30' to symbol 'xmlXPtrFreeLocationSet' failed: symbol not defined
ld.lld: error: version script assignment of 'LIBXML2_2.4.30' to symbol 'xmlXPtrLocationSetAdd' failed: symbol not defined
ld.lld: error: version script assignment of 'LIBXML2_2.4.30' to symbol 'xmlXPtrLocationSetCreate' failed: symbol not defined
ld.lld: error: version script assignment of 'LIBXML2_2.4.30' to symbol 'xmlXPtrLocationSetDel' failed: symbol not defined
ld.lld: error: version script assignment of 'LIBXML2_2.4.30' to symbol 'xmlXPtrLocationSetMerge' failed: symbol not defined
ld.lld: error: version script assignment of 'LIBXML2_2.4.30' to symbol 'xmlXPtrLocationSetRemove' failed: symbol not defined
ld.lld: error: version script assignment of 'LIBXML2_2.4.30' to symbol 'xmlXPtrNewCollapsedRange' failed: symbol not defined
ld.lld: error: version script assignment of 'LIBXML2_2.4.30' to symbol 'xmlXPtrNewLocationSetNodeSet' failed: symbol not defined
ld.lld: error: version script assignment of 'LIBXML2_2.4.30' to symbol 'xmlXPtrNewLocationSetNodes' failed: symbol not defined
ld.lld: error: version script assignment of 'LIBXML2_2.4.30' to symbol 'xmlXPtrNewRange' failed: symbol not defined
ld.lld: error: version script assignment of 'LIBXML2_2.4.30' to symbol 'xmlXPtrNewRangeNodeObject' failed: symbol not defined
ld.lld: error: version script assignment of 'LIBXML2_2.4.30' to symbol 'xmlXPtrNewRangeNodePoint' failed: symbol not defined
ld.lld: error: version script assignment of 'LIBXML2_2.4.30' to symbol 'xmlXPtrNewRangeNodes' failed: symbol not defined
ld.lld: error: version script assignment of 'LIBXML2_2.4.30' to symbol 'xmlXPtrNewRangePointNode' failed: symbol not defined
ld.lld: error: version script assignment of 'LIBXML2_2.4.30' to symbol 'xmlXPtrNewRangePoints' failed: symbol not defined
ld.lld: error: version script assignment of 'LIBXML2_2.4.30' to symbol 'xmlXPtrRangeToFunction' failed: symbol not defined
ld.lld: error: version script assignment of 'LIBXML2_2.4.30' to symbol 'xmlXPtrWrapLocationSet' failed: symbol not defined
ld.lld: error: version script assignment of 'LIBXML2_2.4.30' to symbol 'attribute' failed: symbol not defined
If some symbols are only defined in some modes, consider preprocessing the version script file with $CC -E
or providing multiple --version-script=
files.