Re: RFC: linking with --no-undefined-version

From: Brooks Davis <brooks_at_freebsd.org>
Date: Thu, 18 Apr 2024 23:49:48 UTC
On Thu, Apr 18, 2024 at 04:44:31PM -0700, Steve Kargl wrote:
> On Thu, Apr 18, 2024 at 11:35:19PM +0000, Brooks Davis wrote:
> > As of LLVM 16, lld default to --no-undefined-version which means that if
> > a symbol is listed in the symbol version map it must be present or lld
> > will fail to link.  This is good because it prevents that accidental loss
> > of symbols which breaks our ABI compatibility.  Unfortunately, it's
> > somewhat complicating because our symbol version maps may vary
> > per-architecture or based on options.  As a result we added
> > --undefined-version to LDFLAGS.
> > 
> 
> Just to be clear, does this extend into /usr/ports?  I only have 3020 *.so  
> in /usr/local/lib.  I can image that some software package may have
> missing symbols.

Just the base system and things that use bmake infrastructure from base
(e.g., programs that got kicked out of base like ftpd), but dim@ already
fixed lots of symbol files in ports so I don't expect major issues.

-- Brooks