Re: ld: error: undefined symbol: xdr_domainname in stable/13

From: Mark Millard <marklmi_at_yahoo.com>
Date: Wed, 27 Jul 2022 01:40:25 UTC
On 2022-Jul-26, at 13:14, bob prohaska <fbsd@www.zefox.net> wrote:
> 
> Just had a buildworld stop with 
> 
> ld: error: undefined symbol: xdr_domainname
>>>> referenced by yplib.c:471 (/usr/src/lib/libc/yp/yplib.c:471)
>>>>              yplib.o:(_yp_dobind) in archive /usr/obj/usr/src/arm64.aarch64/tmp/usr/lib/lib
> c.a
>>>> referenced by yplib.c:471 (/usr/src/lib/libc/yp/yplib.c:471)
>>>>              yplib.o:(_yp_dobind) in archive /usr/obj/usr/src/arm64.aarch64/tmp/usr/lib/lib
> c.a
>>>> referenced by yplib.c:0 (/usr/src/lib/libc/yp/yplib.c:0)
>>>>              yplib.o:(yp_maplist) in archive /usr/obj/usr/src/arm64.aarch64/tmp/usr/lib/lib
> c.a
>>>> referenced 1 more times
> 
> A re-run of git pull on July 26 around 1 pm PDT didn't fix it. 
> I'm using -DWITH_META_MODE, could that matter?

I do not know overall, but the source code for the routine
is generated by a tool. Your build tree should have ended
up with a:

arm64.aarch64/lib/libc/yp_xdr.c

that contains the source code for that routine --and for others.

It is the compiling of that source and linking with the result
that should provide the definition.

For reference:

# grep -r yp_xdr /usr/13S-src/ | more
/usr/13S-src/lib/libc/yp/Makefile.inc:SRCS+=    xdryp.c yp.h yp_xdr.c yplib.c
/usr/13S-src/lib/libc/yp/Makefile.inc:CLEANFILES+=      yp.h yp_xdr.c
/usr/13S-src/lib/libc/yp/Makefile.inc:yp_xdr.c: ${RPCSRC}
/usr/13S-src/lib/libc/rpc/Symbol.map:   /* From yp_xdr.c (generated by rpcgen - include/rpcsvc/yp.x) */

# more /usr/13S-src/lib/libc/yp/Makefile.inc
#       from: @(#)Makefile.inc  5.3 (Berkeley) 2/20/91
# $FreeBSD$

# yp sources
.PATH: ${LIBC_SRCTOP}/yp

SRCS+=  xdryp.c yp.h yp_xdr.c yplib.c
CLEANFILES+=    yp.h yp_xdr.c

SYM_MAPS+=      ${LIBC_SRCTOP}/yp/Symbol.map

RPCSRC= ${SRCTOP}/include/rpcsvc/yp.x
RPCGEN= RPCGEN_CPP=${CPP:Q} rpcgen -C

yp_xdr.c: ${RPCSRC}
        ${RPCGEN} -c -o ${.TARGET} ${RPCSRC}

yp.h: ${RPCSRC}
        ${RPCGEN} -h -o ${.TARGET} ${RPCSRC}

===
Mark Millard
marklmi at yahoo.com