Exclude rpcent functions and NSS backends for rpc, key when excluding sunrpc.

This commit is contained in:
Roland McGrath 2015-02-06 10:43:19 -08:00
parent ac9e0e5e40
commit a1309c2bd0
13 changed files with 58 additions and 12 deletions

View File

@ -1,5 +1,33 @@
2015-02-06 Roland McGrath <roland@hack.frob.com> 2015-02-06 Roland McGrath <roland@hack.frob.com>
* inet/Versions (libc: GLIBC_2.0): Move getrpcbyname, getrpcbyname_r,
getrpcbynumber, getrpcbynumber_r, getrpcent, getrpcent_r, endrpcent,
setrpcent, and getrpcport to ...
* sunrpc/Versions (libc: GLIBC_2.0): ... here.
* inet/Versions (libc: GLIBC_2.1.2): Move getrpcbyname_r,
getrpcbynumber_r, and getrpcent_r to ...
* sunrpc/Versions (libc: GLIBC_2.1.2): ... this new set.
* inet/getrpcbyname.c: Moved ...
* sunrpc/getrpcbyname.c: ... here.
* inet/getrpcbyname_r.c: Moved ...
* sunrpc/getrpcbyname_r.c: ... here.
* inet/getrpcbynumber.c: Moved ...
* sunrpc/getrpcbynumber.c: ... here.
* inet/getrpcbynumber_r.c: Moved ...
* sunrpc/getrpcbynumber_r.c: ... here.
* inet/getrpcent.c: Moved ...
* sunrpc/getrpcent.c: ... here.
* inet/getrpcent_r.c: Moved ...
* sunrpc/getrpcent_r.c: ... here.
* inet/Makefile (routines): Move those to ...
* sunrpc/Makefile (routines): ... here.
* nss/Makefile (databases): Add key and rpc only if sunrpc appears in
the $(subdirs) list.
(CPPFLAGS-getent.c): New variable. Pass -D option to set HAVE_SUNRPC
to 0 or 1, indicating whether sunrpc appears in the $(subdirs) list.
* nss/getent.c (print_rpc, rpc_keys): Conditionalize on [HAVE_SUNRPC].
(databases): Conditionalize rpc entry on [HAVE_SUNRPC].
* elf/Makefile (routines): Include $(all-dl-routines), not just * elf/Makefile (routines): Include $(all-dl-routines), not just
$(dl-routines). $(dl-routines).
(rtld-routines): Likewise. Use = rather than :=. (rtld-routines): Likewise. Use = rather than :=.

View File

@ -37,8 +37,6 @@ routines := htonl htons \
getproto getproto_r getprtent getprtent_r getprtname getprtname_r \ getproto getproto_r getprtent getprtent_r getprtname getprtname_r \
getsrvbynm getsrvbynm_r getsrvbypt getsrvbypt_r getservent \ getsrvbynm getsrvbynm_r getsrvbypt getsrvbypt_r getservent \
getservent_r \ getservent_r \
getrpcent getrpcbyname getrpcbynumber \
getrpcent_r getrpcbyname_r getrpcbynumber_r \
ether_aton ether_aton_r ether_hton ether_line \ ether_aton ether_aton_r ether_hton ether_line \
ether_ntoa ether_ntoa_r ether_ntoh \ ether_ntoa ether_ntoa_r ether_ntoh \
rcmd rexec ruserpass \ rcmd rexec ruserpass \

View File

@ -7,8 +7,7 @@ libc {
rexecoptions; rexecoptions;
# e* # e*
endaliasent; endhostent; endnetent; endnetgrent; endprotoent; endrpcent; endaliasent; endhostent; endnetent; endnetgrent; endprotoent; endservent;
endservent;
# e* # e*
ether_aton; ether_aton_r; ether_hostton; ether_line; ether_ntoa; ether_aton; ether_aton_r; ether_hostton; ether_line; ether_ntoa;
@ -21,9 +20,8 @@ libc {
gethostent_r; getnetbyaddr; getnetbyaddr_r; getnetbyname; gethostent_r; getnetbyaddr; getnetbyaddr_r; getnetbyname;
getnetbyname_r; getnetent; getnetent_r; getnetgrent; getnetgrent_r; getnetbyname_r; getnetent; getnetent_r; getnetgrent; getnetgrent_r;
getprotobyname; getprotobyname_r; getprotobynumber; getprotobyname; getprotobyname_r; getprotobynumber;
getprotobynumber_r; getprotoent; getprotoent_r; getrpcbyname; getprotobynumber_r; getprotoent; getprotoent_r;
getrpcbyname_r; getrpcbynumber; getrpcbynumber_r; getrpcent; getrpcent_r; getservbyname; getservbyname_r; getservbyport;
getrpcport; getservbyname; getservbyname_r; getservbyport;
getservbyport_r; getservent; getservent_r; getservbyport_r; getservent; getservent_r;
# h* # h*
@ -41,7 +39,7 @@ libc {
rcmd; rexec; rresvport; ruserok; ruserpass; rcmd; rexec; rresvport; ruserok; ruserpass;
# s* # s*
setaliasent; setnetent; setnetgrent; setprotoent; setrpcent; setservent; setaliasent; setnetent; setnetgrent; setprotoent; setservent;
} }
GLIBC_2.1 { GLIBC_2.1 {
# variables in normal name space # variables in normal name space
@ -55,8 +53,7 @@ libc {
getaliasbyname_r; getaliasent_r; gethostbyaddr_r; gethostbyname2_r; getaliasbyname_r; getaliasent_r; gethostbyaddr_r; gethostbyname2_r;
gethostbyname_r; gethostent_r; getnetbyaddr_r; getnetbyname_r; gethostbyname_r; gethostent_r; getnetbyaddr_r; getnetbyname_r;
getnetent_r; getnetgrent_r; getprotobyname_r; getprotobynumber_r; getnetent_r; getnetgrent_r; getprotobyname_r; getprotobynumber_r;
getprotoent_r; getrpcbyname_r; getrpcbynumber_r; getrpcent_r; getprotoent_r; getservbyname_r;
getservbyname_r;
} }
GLIBC_2.2 { GLIBC_2.2 {
# i* # i*

View File

@ -31,8 +31,16 @@ routines = nsswitch getnssent getnssent_r digits_dots \
# These are the databases that go through nss dispatch. # These are the databases that go through nss dispatch.
# Caution: if you add a database here, you must add its real name # Caution: if you add a database here, you must add its real name
# in databases.def, too. # in databases.def, too.
databases = proto service hosts network grp pwd rpc ethers \ databases = proto service hosts network grp pwd ethers \
spwd netgrp key alias sgrp spwd netgrp alias sgrp
ifneq (,$(filter sunrpc,$(subdirs)))
databases += key rpc
have-sunrpc := 1
else
have-sunrpc := 0
endif
CPPFLAGS-getent.c = -DHAVE_SUNRPC=$(have-sunrpc)
others := getent makedb others := getent makedb
install-bin := getent makedb install-bin := getent makedb

View File

@ -700,6 +700,7 @@ protocols_keys (int number, char *key[])
return result; return result;
} }
#if HAVE_SUNRPC
/* Now is all for rpc */ /* Now is all for rpc */
static void static void
print_rpc (struct rpcent *rpc) print_rpc (struct rpcent *rpc)
@ -745,6 +746,7 @@ rpc_keys (int number, char *key[])
return result; return result;
} }
#endif
/* for services */ /* for services */
static void static void
@ -884,7 +886,9 @@ D(netgroup)
D(networks) D(networks)
D(passwd) D(passwd)
D(protocols) D(protocols)
#if HAVE_SUNRPC
D(rpc) D(rpc)
#endif
D(services) D(services)
D(shadow) D(shadow)
#undef D #undef D

View File

@ -76,6 +76,8 @@ routines := auth_none authuxprot bindrsvprt clnt_raw clnt_simp \
pmap_rmt rpc_prot rpc_common rpc_cmsg svc_auth svc_authux svc_raw \ pmap_rmt rpc_prot rpc_common rpc_cmsg svc_auth svc_authux svc_raw \
svc_simple xdr_float xdr_rec publickey authdes_prot \ svc_simple xdr_float xdr_rec publickey authdes_prot \
des_crypt des_impl des_soft key_prot openchild rtime svcauth_des \ des_crypt des_impl des_soft key_prot openchild rtime svcauth_des \
getrpcent getrpcbyname getrpcbynumber \
getrpcent_r getrpcbyname_r getrpcbynumber_r \
clnt_unix svc_unix create_xid $(need-export-routines) clnt_unix svc_unix create_xid $(need-export-routines)
ifneq ($(link-obsolete-rpc),yes) ifneq ($(link-obsolete-rpc),yes)
# We only add the RPC for compatibility to libc.so. # We only add the RPC for compatibility to libc.so.

View File

@ -21,8 +21,13 @@ libc {
clnt_perror; clnt_spcreateerror; clnt_sperrno; clnt_sperror; clnt_perror; clnt_spcreateerror; clnt_sperrno; clnt_sperror;
clntraw_create; clnttcp_create; clntudp_bufcreate; clntudp_create; clntraw_create; clnttcp_create; clntudp_bufcreate; clntudp_create;
# e*
endrpcent;
# g* # g*
get_myaddress; getpublickey; getsecretkey; get_myaddress; getpublickey; getsecretkey;
getrpcbyname; getrpcbyname_r; getrpcbynumber; getrpcbynumber_r;
getrpcent; getrpcent_r; getrpcport;
# p* # p*
pmap_getmaps; pmap_getport; pmap_rmtcall; pmap_set; pmap_unset; pmap_getmaps; pmap_getport; pmap_rmtcall; pmap_set; pmap_unset;
@ -31,6 +36,7 @@ libc {
registerrpc; registerrpc;
# s* # s*
setrpcent;
svc_exit; svc_getreq; svc_getreqset; svc_register; svc_run; svc_exit; svc_getreq; svc_getreqset; svc_register; svc_run;
svc_sendreply; svc_unregister; svcerr_auth; svcerr_decode; svc_sendreply; svc_unregister; svcerr_auth; svcerr_decode;
svcerr_noproc; svcerr_noprog; svcerr_progvers; svcerr_systemerr; svcerr_noproc; svcerr_noprog; svcerr_progvers; svcerr_systemerr;
@ -106,6 +112,9 @@ libc {
xdr_hyper; xdr_u_hyper; xdr_longlong_t; xdr_u_longlong_t; xdr_hyper; xdr_u_hyper; xdr_longlong_t; xdr_u_longlong_t;
xdr_int64_t; xdr_uint64_t; xdr_int64_t; xdr_uint64_t;
} }
GLIBC_2.1.2 {
getrpcbyname_r; getrpcbynumber_r; getrpcent_r;
}
GLIBC_2.2 { GLIBC_2.2 {
svc_getreq_common; svc_getreq_poll; svc_max_pollfd; svc_pollfd; svc_getreq_common; svc_getreq_poll; svc_max_pollfd; svc_pollfd;
} }