summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/recipes-extended/libtirpc/libtirpc/0001-Add-conditional-version-script-support.patch810
-rw-r--r--meta/recipes-extended/libtirpc/libtirpc_1.3.6.bb4
2 files changed, 814 insertions, 0 deletions
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 0000000000..2764f65284
--- /dev/null
+++ b/meta/recipes-extended/libtirpc/libtirpc/0001-Add-conditional-version-script-support.patch
@@ -0,0 +1,810 @@
1From 8ae9a335d56fc4aba8454159b326d809efca597f Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 11 Aug 2025 21:13:59 -0700
4Subject: [PATCH] Add conditional version script support
5
6This patch adds conditional symbol versioning to libtirpc, allowing
7GSS-API, DES crypto, and RPC database symbols to be conditionally
8included in the version script based on build configuration.
9
10LLD is strict about undefined symbols referenced in a version script.
11Some libtirpc symbols (rpcsec_gss, old DES helpers, rpc database
12helpers) are optional and may not be built depending on configure
13options or missing deps. GNU ld tolerated this; LLD errors out.
14
15This change keeps the canonical symbol map in src/libtirpc.map, but
16adds a make-time rule to generate a filtered copy
17where names from disabled features are deleted. The lib is then linked
18against the generated linker map file.
19
20Fixes linking errors when these features are not available.
21
22Upstream-Status: Submitted [https://lore.kernel.org/linux-nfs/20250812180809.2182301-1-raj.khem@gmail.com/T/#u]
23Signed-off-by: Khem Raj <raj.khem@gmail.com>
24---
25 configure.ac | 50 +++++++++++++++++++++++++++
26 src/Makefile.am | 21 +++++++++--
27 src/{libtirpc.map => libtirpc.map.in} | 48 +++++--------------------
28 3 files changed, 77 insertions(+), 42 deletions(-)
29 rename src/{libtirpc.map => libtirpc.map.in} (84%)
30
31--- a/configure.ac
32+++ b/configure.ac
33@@ -77,6 +77,19 @@ if test "x$enable_ipv6" != xno; then
34 AC_DEFINE(INET6, 1, [Define to 1 if IPv6 is available])
35 fi
36
37+# RPC database support
38+AC_ARG_ENABLE(rpcdb,
39+ [AS_HELP_STRING([--enable-rpcdb], [Enable RPC Database support @<:@default=no@:>@])],
40+ [], [enable_rpcdb=no])
41+AM_CONDITIONAL(RPCDB, test "x$enable_rpcdb" = xyes)
42+if test "x$enable_rpcdb" != "xno"; then
43+ AC_CHECK_FUNCS([getrpcent getrpcbyname getrpcbynumber], [have_rpcdb=yes])
44+
45+ if test "x$have_rpcdb" = "xyes"; then
46+ AC_DEFINE([RPCDB], [1], [Define if RPC database support is available])
47+ fi
48+fi
49+
50 AC_ARG_ENABLE(symvers,
51 [AS_HELP_STRING([--disable-symvers],[Disable symbol versioning @<:@default=no@:>@])],
52 [],[enable_symvers=maybe])
53@@ -97,6 +110,33 @@ fi
54
55 AM_CONDITIONAL(SYMVERS, test "x$enable_symvers" = xyes)
56
57+# Generate symbol lists for version script
58+if test "x$enable_gssapi" = "xyes"; then
59+ 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;"
60+
61+ GSS_SYMBOLS_031="svcauth_gss_get_principal; svcauth_gss_set_svc_name;"
62+else
63+ GSS_SYMBOLS=""
64+ GSS_SYMBOLS_031=""
65+fi
66+
67+if test "x$enable_authdes" = "xyes"; then
68+ 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;"
69+else
70+ DES_SYMBOLS=""
71+fi
72+
73+if test "x$enable_rpcdb" = "xyes"; then
74+ RPCDB_SYMBOLS="endrpcent; getrpcent; getrpcbynumber; getrpcbyname; setrpcent;"
75+else
76+ RPCDB_SYMBOLS=""
77+fi
78+
79+AC_SUBST([GSS_SYMBOLS])
80+AC_SUBST([GSS_SYMBOLS_031])
81+AC_SUBST([DES_SYMBOLS])
82+AC_SUBST([RPCDB_SYMBOLS])
83+
84 AC_CANONICAL_BUILD
85 # Check for which host we are on and setup a few things
86 # specifically based on the host
87@@ -167,7 +207,16 @@ AC_CHECK_FUNCS([getpeereid getrpcbyname
88 AC_CHECK_TYPES(struct rpcent,,, [
89 #include <netdb.h>])
90 AC_CONFIG_FILES([Makefile src/Makefile man/Makefile doc/Makefile])
91+AC_CONFIG_FILES([src/libtirpc.map])
92 AC_CONFIG_FILES([libtirpc.pc])
93 AC_OUTPUT
94
95+# Configuration summary
96+AC_MSG_NOTICE([
97+libtirpc configuration summary:
98+ GSS-API support: $enable_gssapi
99+ DES crypto support: $enable_authdes
100+ RPC database support: $enable_rpcdb
101+ Symbol versioning: $enable_symvers
102+])
103
104--- a/src/Makefile.am
105+++ b/src/Makefile.am
106@@ -6,6 +6,9 @@
107 ## anything like that.
108
109 noinst_HEADERS = rpc_com.h debug.h
110+EXTRA_DIST = libtirpc.map.in
111+# Generated files
112+BUILT_SOURCES = libtirpc.map
113
114 AM_CPPFLAGS = -I$(top_srcdir)/tirpc -include config.h -DPORTMAP -DINET6 \
115 -D_GNU_SOURCE -Wall -pipe
116@@ -15,10 +18,19 @@ lib_LTLIBRARIES = libtirpc.la
117 libtirpc_la_LDFLAGS = @LDFLAG_NOUNDEFINED@ -no-undefined @PTHREAD_LIBS@
118 libtirpc_la_LDFLAGS += -version-info @LT_VERSION_INFO@
119
120+# Generate version script from template
121+libtirpc.map: $(srcdir)/libtirpc.map.in
122+ $(AM_V_GEN)$(SED) \
123+ -e 's|@GSS_SYMBOLS@|$(GSS_SYMBOLS)|g' \
124+ -e 's|@GSS_SYMBOLS_031@|$(GSS_SYMBOLS_031)|g' \
125+ -e 's|@DES_SYMBOLS@|$(DES_SYMBOLS)|g' \
126+ -e 's|@RPCDB_SYMBOLS@|$(RPCDB_SYMBOLS)|g' \
127+ < $(srcdir)/libtirpc.map.in > $@ || rm -f $@
128+
129 libtirpc_la_SOURCES = auth_none.c auth_unix.c authunix_prot.c \
130 binddynport.c bindresvport.c \
131 clnt_bcast.c clnt_dg.c clnt_generic.c clnt_perror.c clnt_raw.c clnt_simple.c \
132- clnt_vc.c rpc_dtablesize.c getnetconfig.c getnetpath.c getrpcent.c \
133+ clnt_vc.c rpc_dtablesize.c getnetconfig.c getnetpath.c \
134 getrpcport.c mt_misc.c pmap_clnt.c pmap_getmaps.c pmap_getport.c \
135 pmap_prot.c pmap_prot2.c pmap_rmt.c rpc_prot.c rpc_commondata.c \
136 rpc_callmsg.c rpc_generic.c rpc_soc.c rpcb_clnt.c rpcb_prot.c \
137@@ -34,19 +46,23 @@ endif
138 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
139
140 if SYMVERS
141- libtirpc_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libtirpc.map
142+ libtirpc_la_LDFLAGS += -Wl,--version-script=$(builddir)/libtirpc.map
143 endif
144
145 ## Secure-RPC
146 if GSS
147- libtirpc_la_SOURCES += auth_gss.c authgss_prot.c svc_auth_gss.c \
148- rpc_gss_utils.c
149- libtirpc_la_LIBADD = $(GSSAPI_LIBS)
150- libtirpc_la_CFLAGS = -DHAVE_RPCSEC_GSS $(GSSAPI_CFLAGS)
151+libtirpc_la_SOURCES += auth_gss.c authgss_prot.c svc_auth_gss.c rpc_gss_utils.c
152+libtirpc_la_LIBADD = $(GSSAPI_LIBS)
153+libtirpc_la_CFLAGS = -DHAVE_RPCSEC_GSS $(GSSAPI_CFLAGS)
154+endif
155+
156+# Conditionally add RPC database sources
157+if RPCDB
158+libtirpc_la_SOURCES += getrpcent.c
159 endif
160
161 libtirpc_la_SOURCES += key_call.c key_prot_xdr.c getpublickey.c
162 libtirpc_la_SOURCES += netname.c netnamer.c rpcdname.c rtime.c
163
164-CLEANFILES = cscope.* *~
165+CLEANFILES = cscope.* libtirpc.map *~
166 DISTCLEANFILES = Makefile.in
167--- a/src/libtirpc.map
168+++ /dev/null
169@@ -1,335 +0,0 @@
170-TIRPC_0.3.0 {
171- global:
172- # __*
173- __rpc_createerr;
174- __rpc_dtbsize;
175- __rpc_endconf;
176- __rpc_fd2sockinfo;
177- __rpc_fixup_addr;
178- __rpc_get_a_size;
179- __rpc_get_local_uid;
180- __rpc_get_t_size;
181- __rpc_getconf;
182- __rpc_getconfip;
183- __rpc_nconf2fd;
184- __rpc_nconf2fd_flags;
185- __rpc_nconf2sockinfo;
186- __rpc_rawcombuf;
187- __rpc_seman2socktype;
188- __rpc_setconf;
189- __rpc_sockinfo2netid;
190- __rpc_sockisbound;
191- __rpc_socktype2seman;
192- __rpc_taddr2uaddr_af;
193- __rpc_uaddr2taddr_af;
194- __rpcgettp;
195-
196- # _*
197- _authenticate;
198- _get_next_token;
199- _gss_authenticate;
200- _null_auth;
201- _rpc_dtablesize;
202- _seterr_reply;
203- _svcauth_none;
204- _svcauth_short;
205- _svcauth_unix;
206- _svcauth_gss;
207-
208- # a*
209- authdes_create;
210- authdes_seccreate;
211- authgss_create;
212- authgss_create_default;
213- authgss_free_private_data;
214- authgss_get_private_data;
215- authgss_service;
216- authnone_create;
217- authunix_create;
218- authunix_create_default;
219-
220- # b*
221- bindresvport;
222- bindresvport_sa;
223-
224- # c*
225- callrpc;
226- cbc_crypt;
227- clnt_broadcast;
228- clnt_create;
229- clnt_create_timed;
230- clnt_create_vers;
231- clnt_create_vers_timed;
232- clnt_dg_create;
233- clnt_pcreateerror;
234- clnt_perrno;
235- clnt_perror;
236- clnt_raw_create;
237- clnt_spcreateerror;
238- clnt_sperrno;
239- clnt_sperror;
240- clnt_tli_create;
241- clnt_tp_create;
242- clnt_tp_create_timed;
243- clnt_vc_create;
244- clntraw_create;
245- clnttcp_create;
246- clntudp_bufcreate;
247- clntudp_create;
248- clntunix_create;
249-
250- # e*
251- ecb_crypt;
252- endnetconfig;
253- endnetpath;
254- endrpcent;
255-
256- # f*
257- freenetconfigent;
258-
259- # g*
260- get_myaddress;
261- getnetconfig;
262- getnetconfigent;
263- getnetpath;
264- getrpcent;
265- getrpcbynumber;
266- getrpcbyname;
267- getrpcport;
268- gss_log_debug;
269- gss_log_hexdump;
270- gss_log_status;
271-
272- # n*
273- nc_perror;
274- nc_sperror;
275-
276- # p*
277- pmap_getmaps;
278- pmap_getport;
279- pmap_rmtcall;
280- pmap_set;
281- pmap_unset;
282-
283- # r*
284- registerrpc;
285- rpc_broadcast;
286- rpc_broadcast_exp;
287- rpc_call;
288- rpc_control;
289- rpc_createerr;
290- rpc_gss_get_error;
291- rpc_gss_get_mech_info;
292- rpc_gss_get_mechanisms;
293- rpc_gss_get_principal_name;
294- rpc_gss_get_versions;
295- rpc_gss_getcred;
296- rpc_gss_is_installed;
297- rpc_gss_max_data_length;
298- rpc_gss_mech_to_oid;
299- rpc_gss_qop_to_num;
300- rpc_gss_seccreate;
301- rpc_gss_set_callback;
302- rpc_gss_set_defaults;
303- rpc_gss_set_svc_name;
304- rpc_gss_svc_max_data_length;
305- rpc_nullproc;
306- rpc_reg;
307- rpcb_getaddr;
308- rpcb_getmaps;
309- rpcb_gettime;
310- rpcb_rmtcall;
311- rpcb_set;
312- rpcb_taddr2uaddr;
313- rpcb_uaddr2taddr;
314- rpcb_unset;
315-
316- # s*
317- setnetconfig;
318- setnetpath;
319- setrpcent;
320- svc_auth_reg;
321- svc_create;
322- svc_dg_create;
323- svc_dg_enablecache;
324- svc_exit;
325- svc_fd_create;
326- svc_fdset;
327- svc_getreq;
328- svc_getreq_common;
329- svc_getreq_poll;
330- svc_getreqset;
331- svc_maxfd;
332- svc_raw_create;
333- svc_reg;
334- svc_register;
335- svc_run;
336- svc_sendreply;
337- svc_tli_create;
338- svc_tp_create;
339- svc_unreg;
340- svc_unregister;
341- svc_vc_create;
342- svcerr_auth;
343- svcerr_decode;
344- svcerr_noproc;
345- svcerr_noprog;
346- svcerr_progvers;
347- svcerr_systemerr;
348- svcerr_weakauth;
349- svcfd_create;
350- svcraw_create;
351- svctcp_create;
352- svcudp_bufcreate;
353- svcudp_create;
354- svcunix_create;
355- svcunixfd_create;
356-
357- # t*
358- taddr2uaddr;
359-
360- # u*
361- uaddr2taddr;
362-
363- # x*
364- xdr_accepted_reply;
365- xdr_array;
366- xdr_authdes_cred;
367- xdr_authdes_verf;
368- xdr_authunix_parms;
369- xdr_bool;
370- xdr_bytes;
371- xdr_callhdr; xdr_callmsg;
372- xdr_char;
373- xdr_des_block;
374- xdr_double;
375- xdr_enum;
376- xdr_float;
377- xdr_free;
378- xdr_hyper;
379- xdr_int16_t;
380- xdr_int32_t;
381- xdr_int64_t;
382- xdr_int8_t;
383- xdr_int;
384- xdr_long;
385- xdr_longlong_t;
386- xdr_netbuf;
387- xdr_netobj;
388- xdr_opaque;
389- xdr_opaque_auth;
390- xdr_pmap;
391- xdr_pmaplist;
392- xdr_pmaplist_ptr;
393- xdr_pointer;
394- xdr_quad_t;
395- xdr_reference;
396- xdr_rejected_reply;
397- xdr_replymsg;
398- xdr_rmtcall_args;
399- xdr_rmtcallres;
400- xdr_rpc_gss_cred;
401- xdr_rpc_gss_data;
402- xdr_rpc_gss_init_args;
403- xdr_rpc_gss_init_res;
404- xdr_rpcb;
405- xdr_rpcb_entry;
406- xdr_rpcb_entry_list_ptr;
407- xdr_rpcb_rmtcallargs;
408- xdr_rpcb_rmtcallres;
409- xdr_rpcb_stat;
410- xdr_rpcb_stat_byvers;
411- xdr_rpcblist;
412- xdr_rpcblist_ptr;
413- xdr_rpcbs_addrlist;
414- xdr_rpcbs_addrlist_ptr;
415- xdr_rpcbs_proc;
416- xdr_rpcbs_rmtcalllist;
417- xdr_rpcbs_rmtcalllist_ptr;
418- xdr_short;
419- xdr_string;
420- xdr_u_char;
421- xdr_u_hyper;
422- xdr_u_int16_t;
423- xdr_u_int32_t;
424- xdr_u_int64_t;
425- xdr_u_int8_t;
426- xdr_u_int;
427- xdr_u_long;
428- xdr_u_longlong_t;
429- xdr_u_quad_t;
430- xdr_u_short;
431- xdr_uint16_t;
432- xdr_uint32_t;
433- xdr_uint64_t;
434- xdr_uint8_t;
435- xdr_union;
436- xdr_vector;
437- xdr_void;
438- xdr_wrapstring;
439- xdrmem_create;
440- xdrrec_create;
441- xdrrec_endofrecord;
442- xdrrec_eof;
443- xdrrec_skiprecord;
444- xdrstdio_create;
445- xprt_register;
446- xprt_unregister;
447-
448- local:
449- *;
450-};
451-
452-TIRPC_0.3.1 {
453- svcauth_gss_get_principal;
454- svcauth_gss_set_svc_name;
455-} TIRPC_0.3.0;
456-
457-TIRPC_0.3.2 {
458- getnetname;
459- getpublicandprivatekey;
460- getpublickey;
461- host2netname;
462- key_call_destroy;
463- key_decryptsession;
464- key_decryptsession_pk;
465- key_encryptsession;
466- key_encryptsession_pk;
467- key_gendes;
468- key_get_conv;
469- key_setsecret;
470- key_secretkey_is_set;
471- key_setnet;
472- netname2host;
473- netname2user;
474- rtime;
475- user2netname;
476- xdr_cryptkeyarg;
477- xdr_cryptkeyarg2;
478- xdr_cryptkeyres;
479- xdr_getcredres;
480- xdr_key_netstarg;
481- xdr_key_netstres;
482- xdr_keybuf;
483- xdr_keystatus;
484- xdr_netnamestr;
485- xdr_unixcred;
486-} TIRPC_0.3.1;
487-
488-TIRPC_0.3.3 {
489- __getpublickey_LOCAL;
490- __key_decryptsession_pk_LOCAL;
491- __key_encryptsession_pk_LOCAL;
492- __key_gendes_LOCAL;
493- xdr_sizeof;
494- authdes_pk_create;
495- svc_pollfd;
496- svc_max_pollfd;
497-} TIRPC_0.3.2;
498-
499-TIRPC_PRIVATE {
500- global:
501- __libc_clntudp_bufcreate;
502- # private, but used by rpcbind:
503- __svc_clean_idle; svc_auth_none; libtirpc_set_debug;
504-};
505--- /dev/null
506+++ b/src/libtirpc.map.in
507@@ -0,0 +1,303 @@
508+TIRPC_0.3.0 {
509+ global:
510+ # __*
511+ __rpc_createerr;
512+ __rpc_dtbsize;
513+ __rpc_endconf;
514+ __rpc_fd2sockinfo;
515+ __rpc_fixup_addr;
516+ __rpc_get_a_size;
517+ __rpc_get_local_uid;
518+ __rpc_get_t_size;
519+ __rpc_getconf;
520+ __rpc_getconfip;
521+ __rpc_nconf2fd;
522+ __rpc_nconf2fd_flags;
523+ __rpc_nconf2sockinfo;
524+ __rpc_rawcombuf;
525+ __rpc_seman2socktype;
526+ __rpc_setconf;
527+ __rpc_sockinfo2netid;
528+ __rpc_sockisbound;
529+ __rpc_socktype2seman;
530+ __rpc_taddr2uaddr_af;
531+ __rpc_uaddr2taddr_af;
532+ __rpcgettp;
533+
534+ # _*
535+ _authenticate;
536+ _get_next_token;
537+ _gss_authenticate;
538+ _null_auth;
539+ _rpc_dtablesize;
540+ _seterr_reply;
541+ _svcauth_none;
542+ _svcauth_short;
543+ _svcauth_unix;
544+
545+ # a*
546+ authdes_create;
547+ authdes_seccreate;
548+ authnone_create;
549+ authunix_create;
550+ authunix_create_default;
551+
552+ # b*
553+ bindresvport;
554+ bindresvport_sa;
555+
556+ # c*
557+ callrpc;
558+ clnt_broadcast;
559+ clnt_create;
560+ clnt_create_timed;
561+ clnt_create_vers;
562+ clnt_create_vers_timed;
563+ clnt_dg_create;
564+ clnt_pcreateerror;
565+ clnt_perrno;
566+ clnt_perror;
567+ clnt_raw_create;
568+ clnt_spcreateerror;
569+ clnt_sperrno;
570+ clnt_sperror;
571+ clnt_tli_create;
572+ clnt_tp_create;
573+ clnt_tp_create_timed;
574+ clnt_vc_create;
575+ clntraw_create;
576+ clnttcp_create;
577+ clntudp_bufcreate;
578+ clntudp_create;
579+ clntunix_create;
580+
581+ # e*
582+ endnetconfig;
583+ endnetpath;
584+
585+ # f*
586+ freenetconfigent;
587+
588+ # g*
589+ get_myaddress;
590+ getnetconfig;
591+ getnetconfigent;
592+ getnetpath;
593+ getrpcport;
594+
595+ # n*
596+ nc_perror;
597+ nc_sperror;
598+
599+ # p*
600+ pmap_getmaps;
601+ pmap_getport;
602+ pmap_rmtcall;
603+ pmap_set;
604+ pmap_unset;
605+
606+ # r*
607+ registerrpc;
608+ rpc_broadcast;
609+ rpc_broadcast_exp;
610+ rpc_call;
611+ rpc_control;
612+ rpc_createerr;
613+ rpc_nullproc;
614+ rpc_reg;
615+ rpcb_getaddr;
616+ rpcb_getmaps;
617+ rpcb_gettime;
618+ rpcb_rmtcall;
619+ rpcb_set;
620+ rpcb_taddr2uaddr;
621+ rpcb_uaddr2taddr;
622+ rpcb_unset;
623+
624+ # s*
625+ setnetconfig;
626+ setnetpath;
627+ svc_auth_reg;
628+ svc_create;
629+ svc_dg_create;
630+ svc_dg_enablecache;
631+ svc_exit;
632+ svc_fd_create;
633+ svc_fdset;
634+ svc_getreq;
635+ svc_getreq_common;
636+ svc_getreq_poll;
637+ svc_getreqset;
638+ svc_maxfd;
639+ svc_raw_create;
640+ svc_reg;
641+ svc_register;
642+ svc_run;
643+ svc_sendreply;
644+ svc_tli_create;
645+ svc_tp_create;
646+ svc_unreg;
647+ svc_unregister;
648+ svc_vc_create;
649+ svcerr_auth;
650+ svcerr_decode;
651+ svcerr_noproc;
652+ svcerr_noprog;
653+ svcerr_progvers;
654+ svcerr_systemerr;
655+ svcerr_weakauth;
656+ svcfd_create;
657+ svcraw_create;
658+ svctcp_create;
659+ svcudp_bufcreate;
660+ svcudp_create;
661+ svcunix_create;
662+ svcunixfd_create;
663+
664+ # t*
665+ taddr2uaddr;
666+
667+ # u*
668+ uaddr2taddr;
669+
670+ # x*
671+ xdr_accepted_reply;
672+ xdr_array;
673+ xdr_authunix_parms;
674+ xdr_bool;
675+ xdr_bytes;
676+ xdr_callhdr; xdr_callmsg;
677+ xdr_char;
678+ xdr_des_block;
679+ xdr_double;
680+ xdr_enum;
681+ xdr_float;
682+ xdr_free;
683+ xdr_hyper;
684+ xdr_int16_t;
685+ xdr_int32_t;
686+ xdr_int64_t;
687+ xdr_int8_t;
688+ xdr_int;
689+ xdr_long;
690+ xdr_longlong_t;
691+ xdr_netbuf;
692+ xdr_netobj;
693+ xdr_opaque;
694+ xdr_opaque_auth;
695+ xdr_pmap;
696+ xdr_pmaplist;
697+ xdr_pmaplist_ptr;
698+ xdr_pointer;
699+ xdr_quad_t;
700+ xdr_reference;
701+ xdr_rejected_reply;
702+ xdr_replymsg;
703+ xdr_rmtcall_args;
704+ xdr_rmtcallres;
705+ xdr_rpcb;
706+ xdr_rpcb_entry;
707+ xdr_rpcb_entry_list_ptr;
708+ xdr_rpcb_rmtcallargs;
709+ xdr_rpcb_rmtcallres;
710+ xdr_rpcb_stat;
711+ xdr_rpcb_stat_byvers;
712+ xdr_rpcblist;
713+ xdr_rpcblist_ptr;
714+ xdr_rpcbs_addrlist;
715+ xdr_rpcbs_addrlist_ptr;
716+ xdr_rpcbs_proc;
717+ xdr_rpcbs_rmtcalllist;
718+ xdr_rpcbs_rmtcalllist_ptr;
719+ xdr_short;
720+ xdr_string;
721+ xdr_u_char;
722+ xdr_u_hyper;
723+ xdr_u_int16_t;
724+ xdr_u_int32_t;
725+ xdr_u_int64_t;
726+ xdr_u_int8_t;
727+ xdr_u_int;
728+ xdr_u_long;
729+ xdr_u_longlong_t;
730+ xdr_u_quad_t;
731+ xdr_u_short;
732+ xdr_uint16_t;
733+ xdr_uint32_t;
734+ xdr_uint64_t;
735+ xdr_uint8_t;
736+ xdr_union;
737+ xdr_vector;
738+ xdr_void;
739+ xdr_wrapstring;
740+ xdrmem_create;
741+ xdrrec_create;
742+ xdrrec_endofrecord;
743+ xdrrec_eof;
744+ xdrrec_skiprecord;
745+ xdrstdio_create;
746+ xprt_register;
747+ xprt_unregister;
748+ # GSS-API symbols (conditionally included)
749+@GSS_SYMBOLS@
750+ # DES crypto symbols (conditionally included)
751+@DES_SYMBOLS@
752+ # RPC database symbols (conditionally included)
753+@RPCDB_SYMBOLS@
754+
755+ local:
756+ *;
757+};
758+
759+TIRPC_0.3.1 {
760+# GSS-API symbols (conditionally included)
761+@GSS_SYMBOLS_031@
762+} TIRPC_0.3.0;
763+
764+TIRPC_0.3.2 {
765+ getnetname;
766+ getpublicandprivatekey;
767+ getpublickey;
768+ host2netname;
769+ key_decryptsession;
770+ key_decryptsession_pk;
771+ key_encryptsession;
772+ key_encryptsession_pk;
773+ key_gendes;
774+ key_get_conv;
775+ key_setsecret;
776+ key_secretkey_is_set;
777+ key_setnet;
778+ netname2host;
779+ netname2user;
780+ rtime;
781+ user2netname;
782+ xdr_cryptkeyarg;
783+ xdr_cryptkeyarg2;
784+ xdr_cryptkeyres;
785+ xdr_getcredres;
786+ xdr_key_netstarg;
787+ xdr_key_netstres;
788+ xdr_keybuf;
789+ xdr_keystatus;
790+ xdr_netnamestr;
791+ xdr_unixcred;
792+} TIRPC_0.3.1;
793+
794+TIRPC_0.3.3 {
795+ __getpublickey_LOCAL;
796+ __key_decryptsession_pk_LOCAL;
797+ __key_encryptsession_pk_LOCAL;
798+ __key_gendes_LOCAL;
799+ xdr_sizeof;
800+ authdes_pk_create;
801+ svc_pollfd;
802+ svc_max_pollfd;
803+} TIRPC_0.3.2;
804+
805+TIRPC_PRIVATE {
806+ global:
807+ __libc_clntudp_bufcreate;
808+ # private, but used by rpcbind:
809+ __svc_clean_idle; svc_auth_none; libtirpc_set_debug;
810+};
diff --git a/meta/recipes-extended/libtirpc/libtirpc_1.3.6.bb b/meta/recipes-extended/libtirpc/libtirpc_1.3.6.bb
index 6ea9a725db..31521bbcca 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"
12SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.bz2 \ 12SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.bz2 \
13 file://0001-Update-declarations-to-allow-compile-with-gcc-15.patch \ 13 file://0001-Update-declarations-to-allow-compile-with-gcc-15.patch \
14 file://0002-update-signal-and-key_call-declarations-to-allow-com.patch \ 14 file://0002-update-signal-and-key_call-declarations-to-allow-com.patch \
15 file://0001-Add-conditional-version-script-support.patch \
15 " 16 "
16UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/libtirpc/files/libtirpc/" 17UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/libtirpc/files/libtirpc/"
17UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)/" 18UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)/"
@@ -24,8 +25,11 @@ inherit autotools pkgconfig
24PACKAGECONFIG ??= "\ 25PACKAGECONFIG ??= "\
25 ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \ 26 ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
26" 27"
28PACKAGECONFIG:append:libc-musl = " rpcdb"
29
27PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6" 30PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6"
28PACKAGECONFIG[gssapi] = "--enable-gssapi,--disable-gssapi,krb5" 31PACKAGECONFIG[gssapi] = "--enable-gssapi,--disable-gssapi,krb5"
32PACKAGECONFIG[rpcdb] = "--enable-rpcdb,--disable-rpcdb,"
29 33
30do_install:append() { 34do_install:append() {
31 test -e ${D}${sysconfdir}/netconfig && chown root:root ${D}${sysconfdir}/netconfig 35 test -e ${D}${sysconfdir}/netconfig && chown root:root ${D}${sysconfdir}/netconfig