On 15/02/2023 3:21 pm, Anthony PERARD wrote:
> Unfortunatly, --default-symver doesn't work on FreeBSD 12, with LLVM's
> LD. Instead, we will generate a temporary version-script.

It was all builds, not just FreeBSD 12, and not really FreeBSD either.

LLD simply doesn't understand the --default-symver.

It's just that the FreeBSD builds are the only ones where we're using
LLD.  All the gitlab clang tests are clang+binutils, not clang+llvm.  We
ought to change this irrespective.

> diff --git a/tools/libs/libs.mk b/tools/libs/libs.mk
> index 0e4b5e0bd0..cab8e9704a 100644
> --- a/tools/libs/libs.mk
> +++ b/tools/libs/libs.mk
> @@ -72,6 +77,10 @@ headers.lst: FORCE
>       @{ set -e; $(foreach h,$(LIBHEADERS),echo $(h);) } > $@.tmp
>       @$(call move-if-changed,$@.tmp,$@)
>  
> +libxen$(LIBNAME).map.tmp: FORCE
> +     echo 'VERS_$(MAJOR).$(MINOR) { global: *; };' >.$@.tmp
> +     $(call move-if-changed,.$@.tmp,$@)

It has come up in the past that using literally VERS_ is buggy, because
anyone who copy&pastes too much of the canonical reference will end up
making a compatible binary.

Xen's stable libraries are buggy, and at some point we really do need to
bump them all to 2.0 to fix this.

VERS should be a library reference, so libxen$(LIBNAME) in our case.  I
suggest we take this opportunity to fix the unstable libraries.

~Andrew

Reply via email to