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>
* 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
$(dl-routines).
(rtld-routines): Likewise. Use = rather than :=.

View File

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

View File

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

View File

@ -31,8 +31,16 @@ routines = nsswitch getnssent getnssent_r digits_dots \
# These are the databases that go through nss dispatch.
# Caution: if you add a database here, you must add its real name
# in databases.def, too.
databases = proto service hosts network grp pwd rpc ethers \
spwd netgrp key alias sgrp
databases = proto service hosts network grp pwd ethers \
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
install-bin := getent makedb

View File

@ -700,6 +700,7 @@ protocols_keys (int number, char *key[])
return result;
}
#if HAVE_SUNRPC
/* Now is all for rpc */
static void
print_rpc (struct rpcent *rpc)
@ -745,6 +746,7 @@ rpc_keys (int number, char *key[])
return result;
}
#endif
/* for services */
static void
@ -884,7 +886,9 @@ D(netgroup)
D(networks)
D(passwd)
D(protocols)
#if HAVE_SUNRPC
D(rpc)
#endif
D(services)
D(shadow)
#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 \
svc_simple xdr_float xdr_rec publickey authdes_prot \
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)
ifneq ($(link-obsolete-rpc),yes)
# 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;
clntraw_create; clnttcp_create; clntudp_bufcreate; clntudp_create;
# e*
endrpcent;
# g*
get_myaddress; getpublickey; getsecretkey;
getrpcbyname; getrpcbyname_r; getrpcbynumber; getrpcbynumber_r;
getrpcent; getrpcent_r; getrpcport;
# p*
pmap_getmaps; pmap_getport; pmap_rmtcall; pmap_set; pmap_unset;
@ -31,6 +36,7 @@ libc {
registerrpc;
# s*
setrpcent;
svc_exit; svc_getreq; svc_getreqset; svc_register; svc_run;
svc_sendreply; svc_unregister; svcerr_auth; svcerr_decode;
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_int64_t; xdr_uint64_t;
}
GLIBC_2.1.2 {
getrpcbyname_r; getrpcbynumber_r; getrpcent_r;
}
GLIBC_2.2 {
svc_getreq_common; svc_getreq_poll; svc_max_pollfd; svc_pollfd;
}