Re: clang/llvm-tblgen --- ld: error: undefined symbol: setupterm

From: Dimitry Andric <dim_at_FreeBSD.org>
Date: Sat, 09 Oct 2021 11:58:37 UTC
On 9 Oct 2021, at 13:37, Dimitry Andric <dim@FreeBSD.org> wrote:
> 
> On 9 Oct 2021, at 09:46, FreeBSD User <freebsd@walstatt-de.de> wrote:
>> 
>> On recent CURRENT (FreeBSD 14.0-CURRENT #2 main-n249971-0525ece3554e:
>> Fri Oct  8 15:17:34 CEST 2021 amd64) building of an 13-STABLE based
>> appliance failed very early in the build process of the 13-STABLE
>> sources as shown below. 13-STABLE is most recent, since the sources are
>> fetched every time the build process is triggered.
> ...
>> /pool/home/ohartmann/Projects/router/router/apu2c4/src/tools/install.sh
>> -s -o root -g wheel -m 555   compile_et
>> /pool/home/ohartmann/Projects/router/router/apu2
>> c4/world/amd64/ALERICH_13-STABLE_amd64/pool/home/ohartmann/Projects/router/router/apu2c4/src/amd64.amd64/tmp/legacy/usr/bin/compile_et
>> --- _bootstrap-tools-usr.bin/clang/llvm-tblgen --- ld: error: undefined
>> symbol: setupterm
>>>>> referenced by Process.cpp
>>>>>             Process.o:(llvm::sys::Process::FileDescriptorHasColors(int))
> 
> It is complaining about ncurses functions; it seems that even though the link step gets -lncursesw added, it still is not able to find the symbol:

Okay, this is because recently on -CURRENT, libtinfow got split off from
libncursesw: https://cgit.freebsd.org/src/commit/?id=396851c20aebd

This affects such cross-builds obviously, and manually adding -ltinfow
to the link command line makes it link correctly.

However, the 396851c20aebd commit is probably not suitable for MFC'ing
to stable/13. Maybe we need to put some kind of kludge in
share/mk/src.libnames.mk for this, or in the top-level Makefile.inc1?

Baptiste, any ideas? :)

-Dimitry