rx: Link simple.example targets with XLIBS

Commit 3961e416f6 'rx: Cleanup and build simple.example' fails to
build on Solaris 11.3 or older due to undefined socket and resolver API
symbols, including bind, getsockname, connect, recvfrom, etc:

      LD  /.../src/rx/simple.example/sample_client
    Undefined                       first referenced
     symbol                             in file
    bind                                /.../lib/libafsrpc.a(rx_user.o)
    getsockname                         /.../lib/libafsrpc.a(rx.o)
    gethostbyname                       sample_client.o
    [...]
    ld: fatal: symbol referencing errors. No output written to sample_client

This is because on Solaris, these have historically been supplied via
-lsocket, -lresolv, and other libraries as defined in the OpenAFS
variable XLIBS.

Add XLIBS to our link rules in the simple.example Makefile to avoid
these errors.

On Solaris 11.4, XLIBS is not required to build because the APIs
formerly found via XLIBS are now largely provided in libc.so instead,
with libsocket.so and libresolv.so maintained for compatibility as
filters on libc.so.

Change-Id: Id3b5d1903aa41807cca7a97d48dac9ff272101b1
Reviewed-on: https://gerrit.openafs.org/15789
Tested-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
This commit is contained in:
Mark Vitale 2024-07-26 18:37:40 -04:00 committed by Michael Meffie
parent 4f8a5b1a22
commit 10e21591ca

View File

@ -22,10 +22,10 @@ all: sample_client sample_server
install dest:
sample_client: sample_client.o ${LIBS} sample.cs.o
$(AFS_LDRULE) sample_client.o sample.cs.o ${LIBS} ${LIB_hcrypto} ${LIB_roken}
$(AFS_LDRULE) sample_client.o sample.cs.o ${LIBS} ${LIB_hcrypto} ${LIB_roken} ${XLIBS}
sample_server: sample_server.o sample.ss.o ${LIBS}
$(AFS_LDRULE) sample_server.o sample.ss.o ${LIBS} ${LIB_hcrypto} ${LIB_roken}
$(AFS_LDRULE) sample_server.o sample.ss.o ${LIBS} ${LIB_hcrypto} ${LIB_roken} ${XLIBS}
sample_client.o: sample.h
sample_server.o: sample.h