Re: build of main broken? (ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_...' failed: symbol not defined)

From: Dimitry Andric <dim_at_FreeBSD.org>
Date: Fri, 24 May 2024 14:54:07 UTC
On 24 May 2024, at 15:19, Matteo Riondato <matteo@freebsd.org> wrote:
> 
> I’m trying to build 59aa64914aeb1b2cccc0d4fc39ead2ee159a1e5b from main-62adeb92df, and got the error below.
> 
> I cannot immediately trace it back to any recent commit, so I’m a bit surprised by it.
> 
> Any hint?
> 
> --------------------------------------------------------------
>>>> stage 4.2: building libraries
> --------------------------------------------------------------
> cd /usr/src;  time env MACHINE_ARCH=amd64  MACHINE=amd64  CPUTYPE=skylake-avx512 BUILD_TOOLS_META=.NOMETA CC="/usr/local/bin/ccache cc -target x86_64-unknown-freebsd15.0 --sysroot=/usr/obj/usr/src/amd64.amd64/tmp -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin" CXX="/usr/local/bin/ccache c++  -target x86_64-unknown-freebsd15.0 --sysroot=/usr/obj/usr/src/amd64.amd64/tmp -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin"  CPP="cpp -target x86_64-unknown-freebsd15.0 --sysroot=/usr/obj/usr/src/amd64.amd64/tmp -B/usr/obj/usr/src/amd64.amd64/tmp/usr/bin"  AS="as" AR="ar" ELFCTL="elfctl" LD="ld"  LLVM_LINK="" NM=nm OBJCOPY="objcopy"  RANLIB=ranlib STRINGS=  SIZE="size" STRIPBIN="strip"  INSTALL="install -U"  PATH=/usr/obj/usr/src/amd64.amd64/tmp/bin:/usr/obj/usr/src/amd64.amd64/tmp/usr/sbin:/usr/obj/usr/src/amd64.amd64/tmp/usr/bin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/sbin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/bin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/bin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin  SYSROOT=/usr/obj/usr/src/amd64.amd64/tmp make  -f Makefile.inc1  BWPHASE=libraries  DESTDIR=/usr/obj/usr/src/amd64.amd64/tmp -DNO_FSCHG MK_HTML=no -DNO_LINT MK_MAN=no  MK_PROFILE=no MK_TESTS=no MK_TESTS_SUPPORT=no  libraries
> cd /usr/src;  make -f Makefile.inc1 _prereq_libs;  make -f Makefile.inc1 _startup_libs;  make -f Makefile.inc1 _prebuild_libs -DLIBCRYPTO_WITHOUT_SUBDIRS;  make -f Makefile.inc1 _generic_libs
> Building /usr/obj/usr/src/amd64.amd64/lib/libcompiler_rt/_libinstall
> Building /usr/obj/usr/src/amd64.amd64/lib/libcompiler_rt/_installlinks
> Building /usr/obj/usr/src/amd64.amd64/lib/libssp_nonshared/_libinstall
> Building /usr/obj/usr/src/amd64.amd64/lib/libgcc_eh/_libinstall
> Building /usr/obj/usr/src/amd64.amd64/lib/libgcc_eh/_INCSINS
> installing DIRS FILESDIR
> install -U  -d -m 0755 -o root  -g wheel  /usr/obj/usr/src/amd64.amd64/tmp/usr/lib
> Building /usr/obj/usr/src/amd64.amd64/lib/csu/amd64/_FILESINS_Scrt1.o
> Building /usr/obj/usr/src/amd64.amd64/lib/csu/amd64/_FILESINS_crt1.o
> Building /usr/obj/usr/src/amd64.amd64/lib/csu/amd64/_FILESINS_gcrt1.o
> Building /usr/obj/usr/src/amd64.amd64/lib/csu/amd64/_FILESINS_crtbegin.o
> Building /usr/obj/usr/src/amd64.amd64/lib/csu/amd64/_FILESINS_crtbeginS.o
> Building /usr/obj/usr/src/amd64.amd64/lib/csu/amd64/_FILESINS_crtbeginT.o
> Building /usr/obj/usr/src/amd64.amd64/lib/csu/amd64/_FILESINS_crtend.o
> Building /usr/obj/usr/src/amd64.amd64/lib/csu/amd64/_FILESINS_crtendS.o
> Building /usr/obj/usr/src/amd64.amd64/lib/csu/amd64/_FILESINS_crti.o
> Building /usr/obj/usr/src/amd64.amd64/lib/csu/amd64/_FILESINS_crtn.o
> Building /usr/obj/usr/src/amd64.amd64/lib/libsys/_libinstall
> Building /usr/obj/usr/src/amd64.amd64/lib/libsys/_INCSINS
> Building /usr/obj/usr/src/amd64.amd64/lib/libc/libc.so.7
> building shared library libc.so.7
> ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_domainname' failed: symbol not defined
> ld: error: version script assignment of 'FBSD_1.0' to symbol 'xdr_keydat' failed: symbol not defined

In lib/libc/rpc/Symbol.map there is:

        /* From yp_xdr.c (generated by rpcgen - include/rpcsvc/yp.x) */
        xdr_domainname;
        xdr_keydat;

so maybe the rpcgen step went wrong somehow? Do you have WITHOUT_NIS enabled?

-Dimitry