diff --git a/meta/recipes-extended/libtirpc/libtirpc/0001-Add-conditional-version-script-support.patch b/meta/recipes-extended/libtirpc/libtirpc/0001-Add-conditional-version-script-support.patch
new file mode 100644
index 00000000000..fdb166b9aba
--- /dev/null
+++ b/meta/recipes-extended/libtirpc/libtirpc/0001-Add-conditional-version-script-support.patch
@@ -0,0 +1,805 @@
+From 8ae9a335d56fc4aba8454159b326d809efca597f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 11 Aug 2025 21:13:59 -0700
+Subject: [PATCH] Add conditional version script support
+
+This patch adds conditional symbol versioning to libtirpc, allowing
+GSS-API, DES crypto, and RPC database symbols to be conditionally
+included in the version script based on build configuration.
+
+LLD is strict about undefined symbols referenced in a version script.
+Some libtirpc symbols (rpcsec_gss, old DES helpers, rpc database
+helpers) are optional and may not be built depending on configure
+options or missing deps. GNU ld tolerated this; LLD errors out.
+
+This change keeps the canonical symbol map in src/libtirpc.map, but
+adds a make-time rule to generate a filtered copy
+where names from disabled features are deleted. The lib is then linked
+against the generated linker map file.
+
+Fixes linking errors when these features are not available.
+
+Upstream-Status: Submitted [https://lore.kernel.org/linux-nfs/20250812041944.2767074-1-raj.khem@gmail.com/T/#u]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac                          | 50 +++++++++++++++++++++++++++
+ src/Makefile.am                       | 21 +++++++++--
+ src/{libtirpc.map => libtirpc.map.in} | 48 +++++--------------------
+ 3 files changed, 77 insertions(+), 42 deletions(-)
+ rename src/{libtirpc.map => libtirpc.map.in} (84%)
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -77,6 +77,20 @@ if test "x$enable_ipv6" != xno; then
+ 	AC_DEFINE(INET6, 1, [Define to 1 if IPv6 is available])
+ fi
+ 
++# RPC database support
++AC_ARG_ENABLE(rpcdb,
++    [AS_HELP_STRING([--enable-rpcdb], [Enable RPC Database support @<:@default=no@:>@])],
++    [], [enable_rpcdb=no],
++    [enable_rpcdb=auto])
++if test "x$enable_rpcdb" != "xno"; then
++    AC_CHECK_FUNCS([getrpcent getrpcbyname getrpcbynumber], [have_rpcdb=yes])
++
++    if test "x$have_rpcdb" = "xyes"; then
++        AC_DEFINE([RPCDB], [1], [Define if RPC database support is available])
++    fi
++fi
++AM_CONDITIONAL(RPCDB, test "x$enable_rpcdb" != xno)
++
+ AC_ARG_ENABLE(symvers,
+ 	[AS_HELP_STRING([--disable-symvers],[Disable symbol versioning @<:@default=no@:>@])],
+       [],[enable_symvers=maybe])
+@@ -97,6 +111,33 @@ fi
+ 
+ AM_CONDITIONAL(SYMVERS, test "x$enable_symvers" = xyes)
+ 
++# Generate symbol lists for version script
++if test "x$enable_gssapi" = "xyes"; then
++    GSS_SYMBOLS="_svcauth_gss; authgss_create; authgss_create_default; authgss_free_private_data; authgss_get_private_data; authgss_service; gss_log_debug; gss_log_hexdump; gss_log_status; rpc_gss_get_error; rpc_gss_get_mech_info; rpc_gss_get_mechanisms; rpc_gss_get_principal_name; rpc_gss_get_versions; rpc_gss_qop_to_num; rpc_gss_seccreate; rpc_gss_set_callback; rpc_gss_set_defaults; rpc_gss_set_svc_name; rpc_gss_svc_max_data_length;"
++
++    GSS_SYMBOLS_031="svcauth_gss_get_principal; svcauth_gss_set_svc_name;"
++else
++    GSS_SYMBOLS=""
++    GSS_SYMBOLS_031=""
++fi
++
++if test "x$enable_authdes" = "xyes"; then
++    DES_SYMBOLS="cbc_crypt; ecb_crypt; xdr_authdes_cred; xdr_authdes_verf; xdr_rpc_gss_cred; xdr_rpc_gss_data; xdr_rpc_gss_init_args; xdr_rpc_gss_init_res;"
++else
++    DES_SYMBOLS=""
++fi
++
++if test "x$enable_rpcdb" = "xyes"; then
++    RPCDB_SYMBOLS="endrpcent; getrpcent; getrpcbynumber; getrpcbyname; setrpcent;"
++else
++    RPCDB_SYMBOLS=""
++fi
++
++AC_SUBST([GSS_SYMBOLS])
++AC_SUBST([GSS_SYMBOLS_031])
++AC_SUBST([DES_SYMBOLS])
++AC_SUBST([RPCDB_SYMBOLS])
++
+ AC_CANONICAL_BUILD
+ # Check for which host we are on and setup a few things
+ # specifically based on the host
+@@ -167,7 +208,16 @@ AC_CHECK_FUNCS([getpeereid getrpcbyname
+ AC_CHECK_TYPES(struct rpcent,,, [
+       #include <netdb.h>])
+ AC_CONFIG_FILES([Makefile src/Makefile man/Makefile doc/Makefile])
++AC_CONFIG_FILES([src/libtirpc.map])
+ AC_CONFIG_FILES([libtirpc.pc])
+ AC_OUTPUT
+ 
++# Configuration summary
++AC_MSG_NOTICE([
++libtirpc configuration summary:
++  GSS-API support: $enable_gssapi
++  DES crypto support: $enable_authdes
++  RPC database support: $enable_rpcdb
++  Symbol versioning: $enable_symvers
++])
+ 
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -6,6 +6,9 @@
+ ## anything like that.
+ 
+ noinst_HEADERS = rpc_com.h debug.h
++EXTRA_DIST = libtirpc.map.in
++# Generated files
++BUILT_SOURCES = libtirpc.map
+ 
+ AM_CPPFLAGS = -I$(top_srcdir)/tirpc -include config.h -DPORTMAP -DINET6 \
+ 		-D_GNU_SOURCE -Wall -pipe
+@@ -15,10 +18,19 @@ lib_LTLIBRARIES = libtirpc.la
+ libtirpc_la_LDFLAGS = @LDFLAG_NOUNDEFINED@ -no-undefined @PTHREAD_LIBS@
+ libtirpc_la_LDFLAGS += -version-info @LT_VERSION_INFO@
+ 
++# Generate version script from template
++libtirpc.map: $(srcdir)/libtirpc.map.in
++	$(AM_V_GEN)$(SED) \
++		-e 's|@GSS_SYMBOLS@|$(GSS_SYMBOLS)|g' \
++		-e 's|@GSS_SYMBOLS_031@|$(GSS_SYMBOLS_031)|g' \
++		-e 's|@DES_SYMBOLS@|$(DES_SYMBOLS)|g' \
++		-e 's|@RPCDB_SYMBOLS@|$(RPCDB_SYMBOLS)|g' \
++		< $(srcdir)/libtirpc.map.in > $@ || rm -f $@
++
+ libtirpc_la_SOURCES = auth_none.c auth_unix.c authunix_prot.c \
+         binddynport.c bindresvport.c \
+         clnt_bcast.c clnt_dg.c clnt_generic.c clnt_perror.c clnt_raw.c clnt_simple.c \
+-        clnt_vc.c rpc_dtablesize.c getnetconfig.c getnetpath.c getrpcent.c \
++        clnt_vc.c rpc_dtablesize.c getnetconfig.c getnetpath.c \
+         getrpcport.c mt_misc.c pmap_clnt.c pmap_getmaps.c pmap_getport.c \
+         pmap_prot.c pmap_prot2.c pmap_rmt.c rpc_prot.c rpc_commondata.c \
+         rpc_callmsg.c rpc_generic.c rpc_soc.c rpcb_clnt.c rpcb_prot.c \
+@@ -34,7 +46,7 @@ endif
+ libtirpc_la_SOURCES += xdr.c xdr_rec.c xdr_array.c xdr_float.c xdr_mem.c xdr_reference.c xdr_stdio.c xdr_sizeof.c
+ 
+ if SYMVERS
+-    libtirpc_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libtirpc.map
++    libtirpc_la_LDFLAGS += -Wl,--version-script=$(builddir)/libtirpc.map
+ endif
+ 
+ ## Secure-RPC
+@@ -45,8 +57,13 @@ if GSS
+     libtirpc_la_CFLAGS = -DHAVE_RPCSEC_GSS $(GSSAPI_CFLAGS)
+ endif
+ 
++# Conditionally add RPC database sources
++if RPCDB
++		libtirpc_la_SOURCES += getrpcent.c
++endif
++
+ libtirpc_la_SOURCES += key_call.c key_prot_xdr.c getpublickey.c
+ libtirpc_la_SOURCES += netname.c netnamer.c rpcdname.c rtime.c
+ 
+-CLEANFILES	       = cscope.* *~
++CLEANFILES	       = cscope.* libtirpc.map *~
+ DISTCLEANFILES	       = Makefile.in
+--- a/src/libtirpc.map
++++ /dev/null
+@@ -1,335 +0,0 @@
+-TIRPC_0.3.0 {
+-  global:
+-    # __*
+-    __rpc_createerr;
+-    __rpc_dtbsize;
+-    __rpc_endconf;
+-    __rpc_fd2sockinfo;
+-    __rpc_fixup_addr;
+-    __rpc_get_a_size;
+-    __rpc_get_local_uid;
+-    __rpc_get_t_size;
+-    __rpc_getconf;
+-    __rpc_getconfip;
+-    __rpc_nconf2fd;
+-    __rpc_nconf2fd_flags;
+-    __rpc_nconf2sockinfo;
+-    __rpc_rawcombuf;
+-    __rpc_seman2socktype;
+-    __rpc_setconf;
+-    __rpc_sockinfo2netid;
+-    __rpc_sockisbound;
+-    __rpc_socktype2seman;
+-    __rpc_taddr2uaddr_af;
+-    __rpc_uaddr2taddr_af;
+-    __rpcgettp;
+-
+-    # _*
+-    _authenticate;
+-    _get_next_token;
+-    _gss_authenticate;
+-    _null_auth;
+-    _rpc_dtablesize;
+-    _seterr_reply;
+-    _svcauth_none;
+-    _svcauth_short;
+-    _svcauth_unix;
+-    _svcauth_gss;
+-
+-    # a*
+-    authdes_create;
+-    authdes_seccreate;
+-    authgss_create;
+-    authgss_create_default;
+-    authgss_free_private_data;
+-    authgss_get_private_data;
+-    authgss_service;
+-    authnone_create;
+-    authunix_create;
+-    authunix_create_default;
+-
+-    # b*
+-    bindresvport;
+-    bindresvport_sa;
+-
+-    # c*
+-    callrpc;
+-    cbc_crypt;
+-    clnt_broadcast;
+-    clnt_create;
+-    clnt_create_timed;
+-    clnt_create_vers;
+-    clnt_create_vers_timed;
+-    clnt_dg_create;
+-    clnt_pcreateerror;
+-    clnt_perrno;
+-    clnt_perror;
+-    clnt_raw_create;
+-    clnt_spcreateerror;
+-    clnt_sperrno;
+-    clnt_sperror;
+-    clnt_tli_create;
+-    clnt_tp_create;
+-    clnt_tp_create_timed;
+-    clnt_vc_create;
+-    clntraw_create;
+-    clnttcp_create;
+-    clntudp_bufcreate;
+-    clntudp_create;
+-    clntunix_create;
+-
+-    # e*
+-    ecb_crypt;
+-    endnetconfig;
+-    endnetpath;
+-    endrpcent;
+-
+-    # f*
+-    freenetconfigent;
+-
+-    # g*
+-    get_myaddress;
+-    getnetconfig;
+-    getnetconfigent;
+-    getnetpath;
+-    getrpcent;
+-    getrpcbynumber;
+-    getrpcbyname;
+-    getrpcport;
+-    gss_log_debug;
+-    gss_log_hexdump;
+-    gss_log_status;
+-
+-    # n*
+-    nc_perror;
+-    nc_sperror;
+-
+-    # p*
+-    pmap_getmaps;
+-    pmap_getport;
+-    pmap_rmtcall;
+-    pmap_set;
+-    pmap_unset;
+-
+-    # r*
+-    registerrpc;
+-    rpc_broadcast;
+-    rpc_broadcast_exp;
+-    rpc_call;
+-    rpc_control;
+-    rpc_createerr;
+-    rpc_gss_get_error;
+-    rpc_gss_get_mech_info;
+-    rpc_gss_get_mechanisms;
+-    rpc_gss_get_principal_name;
+-    rpc_gss_get_versions;
+-    rpc_gss_getcred;
+-    rpc_gss_is_installed;
+-    rpc_gss_max_data_length;
+-    rpc_gss_mech_to_oid;
+-    rpc_gss_qop_to_num;
+-    rpc_gss_seccreate;
+-    rpc_gss_set_callback;
+-    rpc_gss_set_defaults;
+-    rpc_gss_set_svc_name;
+-    rpc_gss_svc_max_data_length;
+-    rpc_nullproc;
+-    rpc_reg;
+-    rpcb_getaddr;
+-    rpcb_getmaps;
+-    rpcb_gettime;
+-    rpcb_rmtcall;
+-    rpcb_set;
+-    rpcb_taddr2uaddr;
+-    rpcb_uaddr2taddr;
+-    rpcb_unset;
+-
+-    # s*
+-    setnetconfig;
+-    setnetpath;
+-    setrpcent;
+-    svc_auth_reg;
+-    svc_create;
+-    svc_dg_create;
+-    svc_dg_enablecache;
+-    svc_exit;
+-    svc_fd_create;
+-    svc_fdset;
+-    svc_getreq;
+-    svc_getreq_common;
+-    svc_getreq_poll;
+-    svc_getreqset;
+-    svc_maxfd;
+-    svc_raw_create;
+-    svc_reg;
+-    svc_register;
+-    svc_run;
+-    svc_sendreply;
+-    svc_tli_create;
+-    svc_tp_create;
+-    svc_unreg;
+-    svc_unregister;
+-    svc_vc_create;
+-    svcerr_auth;
+-    svcerr_decode;
+-    svcerr_noproc;
+-    svcerr_noprog;
+-    svcerr_progvers;
+-    svcerr_systemerr;
+-    svcerr_weakauth;
+-    svcfd_create;
+-    svcraw_create;
+-    svctcp_create;
+-    svcudp_bufcreate;
+-    svcudp_create;
+-    svcunix_create;
+-    svcunixfd_create;
+-
+-    # t*
+-    taddr2uaddr;
+-
+-    # u*
+-    uaddr2taddr;
+-
+-    # x*
+-    xdr_accepted_reply;
+-    xdr_array;
+-    xdr_authdes_cred;
+-    xdr_authdes_verf;
+-    xdr_authunix_parms;
+-    xdr_bool;
+-    xdr_bytes;
+-    xdr_callhdr; xdr_callmsg;
+-    xdr_char;
+-    xdr_des_block;
+-    xdr_double;
+-    xdr_enum;
+-    xdr_float;
+-    xdr_free;
+-    xdr_hyper;
+-    xdr_int16_t;
+-    xdr_int32_t;
+-    xdr_int64_t;
+-    xdr_int8_t;
+-    xdr_int;
+-    xdr_long;
+-    xdr_longlong_t;
+-    xdr_netbuf;
+-    xdr_netobj;
+-    xdr_opaque;
+-    xdr_opaque_auth;
+-    xdr_pmap;
+-    xdr_pmaplist;
+-    xdr_pmaplist_ptr;
+-    xdr_pointer;
+-    xdr_quad_t;
+-    xdr_reference;
+-    xdr_rejected_reply;
+-    xdr_replymsg;
+-    xdr_rmtcall_args;
+-    xdr_rmtcallres;
+-    xdr_rpc_gss_cred;
+-    xdr_rpc_gss_data;
+-    xdr_rpc_gss_init_args;
+-    xdr_rpc_gss_init_res;
+-    xdr_rpcb;
+-    xdr_rpcb_entry;
+-    xdr_rpcb_entry_list_ptr;
+-    xdr_rpcb_rmtcallargs;
+-    xdr_rpcb_rmtcallres;
+-    xdr_rpcb_stat;
+-    xdr_rpcb_stat_byvers;
+-    xdr_rpcblist;
+-    xdr_rpcblist_ptr;
+-    xdr_rpcbs_addrlist;
+-    xdr_rpcbs_addrlist_ptr;
+-    xdr_rpcbs_proc;
+-    xdr_rpcbs_rmtcalllist;
+-    xdr_rpcbs_rmtcalllist_ptr;
+-    xdr_short;
+-    xdr_string;
+-    xdr_u_char;
+-    xdr_u_hyper;
+-    xdr_u_int16_t;
+-    xdr_u_int32_t;
+-    xdr_u_int64_t;
+-    xdr_u_int8_t;
+-    xdr_u_int;
+-    xdr_u_long;
+-    xdr_u_longlong_t;
+-    xdr_u_quad_t;
+-    xdr_u_short;
+-    xdr_uint16_t;
+-    xdr_uint32_t;
+-    xdr_uint64_t;
+-    xdr_uint8_t;
+-    xdr_union;
+-    xdr_vector;
+-    xdr_void;
+-    xdr_wrapstring;
+-    xdrmem_create;
+-    xdrrec_create;
+-    xdrrec_endofrecord;
+-    xdrrec_eof;
+-    xdrrec_skiprecord;
+-    xdrstdio_create;
+-    xprt_register;
+-    xprt_unregister;
+-
+-  local:
+-    *;
+-};
+-
+-TIRPC_0.3.1 {
+-    svcauth_gss_get_principal;
+-    svcauth_gss_set_svc_name;
+-} TIRPC_0.3.0;
+-
+-TIRPC_0.3.2 {
+-    getnetname;
+-    getpublicandprivatekey;
+-    getpublickey;
+-    host2netname;
+-    key_call_destroy;
+-    key_decryptsession;
+-    key_decryptsession_pk;
+-    key_encryptsession;
+-    key_encryptsession_pk;
+-    key_gendes;
+-    key_get_conv;
+-    key_setsecret;
+-    key_secretkey_is_set;
+-    key_setnet;
+-    netname2host;
+-    netname2user;
+-    rtime;
+-    user2netname;
+-    xdr_cryptkeyarg;
+-    xdr_cryptkeyarg2;
+-    xdr_cryptkeyres;
+-    xdr_getcredres;
+-    xdr_key_netstarg;
+-    xdr_key_netstres;
+-    xdr_keybuf;
+-    xdr_keystatus;
+-    xdr_netnamestr;
+-    xdr_unixcred;
+-} TIRPC_0.3.1;
+-
+-TIRPC_0.3.3 {
+-    __getpublickey_LOCAL;
+-    __key_decryptsession_pk_LOCAL;
+-    __key_encryptsession_pk_LOCAL;
+-    __key_gendes_LOCAL;
+-    xdr_sizeof;
+-    authdes_pk_create;
+-    svc_pollfd;
+-    svc_max_pollfd;
+-} TIRPC_0.3.2;
+-
+-TIRPC_PRIVATE {
+-  global:
+-    __libc_clntudp_bufcreate;
+-  # private, but used by rpcbind:
+-    __svc_clean_idle; svc_auth_none; libtirpc_set_debug;
+-};
+--- /dev/null
++++ b/src/libtirpc.map.in
+@@ -0,0 +1,303 @@
++TIRPC_0.3.0 {
++  global:
++    # __*
++    __rpc_createerr;
++    __rpc_dtbsize;
++    __rpc_endconf;
++    __rpc_fd2sockinfo;
++    __rpc_fixup_addr;
++    __rpc_get_a_size;
++    __rpc_get_local_uid;
++    __rpc_get_t_size;
++    __rpc_getconf;
++    __rpc_getconfip;
++    __rpc_nconf2fd;
++    __rpc_nconf2fd_flags;
++    __rpc_nconf2sockinfo;
++    __rpc_rawcombuf;
++    __rpc_seman2socktype;
++    __rpc_setconf;
++    __rpc_sockinfo2netid;
++    __rpc_sockisbound;
++    __rpc_socktype2seman;
++    __rpc_taddr2uaddr_af;
++    __rpc_uaddr2taddr_af;
++    __rpcgettp;
++
++    # _*
++    _authenticate;
++    _get_next_token;
++    _gss_authenticate;
++    _null_auth;
++    _rpc_dtablesize;
++    _seterr_reply;
++    _svcauth_none;
++    _svcauth_short;
++    _svcauth_unix;
++
++    # a*
++    authdes_create;
++    authdes_seccreate;
++    authnone_create;
++    authunix_create;
++    authunix_create_default;
++
++    # b*
++    bindresvport;
++    bindresvport_sa;
++
++    # c*
++    callrpc;
++    clnt_broadcast;
++    clnt_create;
++    clnt_create_timed;
++    clnt_create_vers;
++    clnt_create_vers_timed;
++    clnt_dg_create;
++    clnt_pcreateerror;
++    clnt_perrno;
++    clnt_perror;
++    clnt_raw_create;
++    clnt_spcreateerror;
++    clnt_sperrno;
++    clnt_sperror;
++    clnt_tli_create;
++    clnt_tp_create;
++    clnt_tp_create_timed;
++    clnt_vc_create;
++    clntraw_create;
++    clnttcp_create;
++    clntudp_bufcreate;
++    clntudp_create;
++    clntunix_create;
++
++    # e*
++    endnetconfig;
++    endnetpath;
++
++    # f*
++    freenetconfigent;
++
++    # g*
++    get_myaddress;
++    getnetconfig;
++    getnetconfigent;
++    getnetpath;
++    getrpcport;
++
++    # n*
++    nc_perror;
++    nc_sperror;
++
++    # p*
++    pmap_getmaps;
++    pmap_getport;
++    pmap_rmtcall;
++    pmap_set;
++    pmap_unset;
++
++    # r*
++    registerrpc;
++    rpc_broadcast;
++    rpc_broadcast_exp;
++    rpc_call;
++    rpc_control;
++    rpc_createerr;
++    rpc_nullproc;
++    rpc_reg;
++    rpcb_getaddr;
++    rpcb_getmaps;
++    rpcb_gettime;
++    rpcb_rmtcall;
++    rpcb_set;
++    rpcb_taddr2uaddr;
++    rpcb_uaddr2taddr;
++    rpcb_unset;
++
++    # s*
++    setnetconfig;
++    setnetpath;
++    svc_auth_reg;
++    svc_create;
++    svc_dg_create;
++    svc_dg_enablecache;
++    svc_exit;
++    svc_fd_create;
++    svc_fdset;
++    svc_getreq;
++    svc_getreq_common;
++    svc_getreq_poll;
++    svc_getreqset;
++    svc_maxfd;
++    svc_raw_create;
++    svc_reg;
++    svc_register;
++    svc_run;
++    svc_sendreply;
++    svc_tli_create;
++    svc_tp_create;
++    svc_unreg;
++    svc_unregister;
++    svc_vc_create;
++    svcerr_auth;
++    svcerr_decode;
++    svcerr_noproc;
++    svcerr_noprog;
++    svcerr_progvers;
++    svcerr_systemerr;
++    svcerr_weakauth;
++    svcfd_create;
++    svcraw_create;
++    svctcp_create;
++    svcudp_bufcreate;
++    svcudp_create;
++    svcunix_create;
++    svcunixfd_create;
++
++    # t*
++    taddr2uaddr;
++
++    # u*
++    uaddr2taddr;
++
++    # x*
++    xdr_accepted_reply;
++    xdr_array;
++    xdr_authunix_parms;
++    xdr_bool;
++    xdr_bytes;
++    xdr_callhdr; xdr_callmsg;
++    xdr_char;
++    xdr_des_block;
++    xdr_double;
++    xdr_enum;
++    xdr_float;
++    xdr_free;
++    xdr_hyper;
++    xdr_int16_t;
++    xdr_int32_t;
++    xdr_int64_t;
++    xdr_int8_t;
++    xdr_int;
++    xdr_long;
++    xdr_longlong_t;
++    xdr_netbuf;
++    xdr_netobj;
++    xdr_opaque;
++    xdr_opaque_auth;
++    xdr_pmap;
++    xdr_pmaplist;
++    xdr_pmaplist_ptr;
++    xdr_pointer;
++    xdr_quad_t;
++    xdr_reference;
++    xdr_rejected_reply;
++    xdr_replymsg;
++    xdr_rmtcall_args;
++    xdr_rmtcallres;
++    xdr_rpcb;
++    xdr_rpcb_entry;
++    xdr_rpcb_entry_list_ptr;
++    xdr_rpcb_rmtcallargs;
++    xdr_rpcb_rmtcallres;
++    xdr_rpcb_stat;
++    xdr_rpcb_stat_byvers;
++    xdr_rpcblist;
++    xdr_rpcblist_ptr;
++    xdr_rpcbs_addrlist;
++    xdr_rpcbs_addrlist_ptr;
++    xdr_rpcbs_proc;
++    xdr_rpcbs_rmtcalllist;
++    xdr_rpcbs_rmtcalllist_ptr;
++    xdr_short;
++    xdr_string;
++    xdr_u_char;
++    xdr_u_hyper;
++    xdr_u_int16_t;
++    xdr_u_int32_t;
++    xdr_u_int64_t;
++    xdr_u_int8_t;
++    xdr_u_int;
++    xdr_u_long;
++    xdr_u_longlong_t;
++    xdr_u_quad_t;
++    xdr_u_short;
++    xdr_uint16_t;
++    xdr_uint32_t;
++    xdr_uint64_t;
++    xdr_uint8_t;
++    xdr_union;
++    xdr_vector;
++    xdr_void;
++    xdr_wrapstring;
++    xdrmem_create;
++    xdrrec_create;
++    xdrrec_endofrecord;
++    xdrrec_eof;
++    xdrrec_skiprecord;
++    xdrstdio_create;
++    xprt_register;
++    xprt_unregister;
++    # GSS-API symbols (conditionally included)
++@GSS_SYMBOLS@
++    # DES crypto symbols (conditionally included)
++@DES_SYMBOLS@
++    # RPC database symbols (conditionally included)
++@RPCDB_SYMBOLS@
++
++  local:
++    *;
++};
++
++TIRPC_0.3.1 {
++# GSS-API symbols (conditionally included)
++@GSS_SYMBOLS_031@
++} TIRPC_0.3.0;
++
++TIRPC_0.3.2 {
++    getnetname;
++    getpublicandprivatekey;
++    getpublickey;
++    host2netname;
++    key_decryptsession;
++    key_decryptsession_pk;
++    key_encryptsession;
++    key_encryptsession_pk;
++    key_gendes;
++    key_get_conv;
++    key_setsecret;
++    key_secretkey_is_set;
++    key_setnet;
++    netname2host;
++    netname2user;
++    rtime;
++    user2netname;
++    xdr_cryptkeyarg;
++    xdr_cryptkeyarg2;
++    xdr_cryptkeyres;
++    xdr_getcredres;
++    xdr_key_netstarg;
++    xdr_key_netstres;
++    xdr_keybuf;
++    xdr_keystatus;
++    xdr_netnamestr;
++    xdr_unixcred;
++} TIRPC_0.3.1;
++
++TIRPC_0.3.3 {
++    __getpublickey_LOCAL;
++    __key_decryptsession_pk_LOCAL;
++    __key_encryptsession_pk_LOCAL;
++    __key_gendes_LOCAL;
++    xdr_sizeof;
++    authdes_pk_create;
++    svc_pollfd;
++    svc_max_pollfd;
++} TIRPC_0.3.2;
++
++TIRPC_PRIVATE {
++  global:
++    __libc_clntudp_bufcreate;
++  # private, but used by rpcbind:
++    __svc_clean_idle; svc_auth_none; libtirpc_set_debug;
++};
diff --git a/meta/recipes-extended/libtirpc/libtirpc_1.3.6.bb b/meta/recipes-extended/libtirpc/libtirpc_1.3.6.bb
index 6ea9a725dbf..184c43031a5 100644
--- a/meta/recipes-extended/libtirpc/libtirpc_1.3.6.bb
+++ b/meta/recipes-extended/libtirpc/libtirpc_1.3.6.bb
@@ -12,6 +12,7 @@ PROVIDES = "virtual/librpc"
 SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.bz2 \
            file://0001-Update-declarations-to-allow-compile-with-gcc-15.patch \
            file://0002-update-signal-and-key_call-declarations-to-allow-com.patch \
+           file://0001-Add-conditional-version-script-support.patch \
           "
 UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/libtirpc/files/libtirpc/"
 UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)/"
