summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@hack.frob.com>2015-02-06 10:43:19 -0800
committerRoland McGrath <roland@hack.frob.com>2015-02-06 10:43:19 -0800
commita1309c2bd0e7469158dfa5dec3334054fad2ed03 (patch)
tree19d19995e9ec59f3ecf94023aef485f7fc995c32
parentac9e0e5e401fa634667a8284a0db0ca886bf816b (diff)
Exclude rpcent functions and NSS backends for rpc, key when excluding sunrpc.
-rw-r--r--ChangeLog28
-rw-r--r--inet/Makefile2
-rw-r--r--inet/Versions13
-rw-r--r--nss/Makefile12
-rw-r--r--nss/getent.c4
-rw-r--r--sunrpc/Makefile2
-rw-r--r--sunrpc/Versions9
-rw-r--r--sunrpc/getrpcbyname.c (renamed from inet/getrpcbyname.c)0
-rw-r--r--sunrpc/getrpcbyname_r.c (renamed from inet/getrpcbyname_r.c)0
-rw-r--r--sunrpc/getrpcbynumber.c (renamed from inet/getrpcbynumber.c)0
-rw-r--r--sunrpc/getrpcbynumber_r.c (renamed from inet/getrpcbynumber_r.c)0
-rw-r--r--sunrpc/getrpcent.c (renamed from inet/getrpcent.c)0
-rw-r--r--sunrpc/getrpcent_r.c (renamed from inet/getrpcent_r.c)0
13 files changed, 58 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index 22b9d98018..c68c02ccaf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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 :=.
diff --git a/inet/Makefile b/inet/Makefile
index 267f0603c1..f1d871ff11 100644
--- a/inet/Makefile
+++ b/inet/Makefile
@@ -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 \
diff --git a/inet/Versions b/inet/Versions
index 06507199a9..56eb274634 100644
--- a/inet/Versions
+++ b/inet/Versions
@@ -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*
diff --git a/nss/Makefile b/nss/Makefile
index d419baf4fd..d75dad2ee6 100644
--- a/nss/Makefile
+++ b/nss/Makefile
@@ -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
diff --git a/nss/getent.c b/nss/getent.c
index 901ec5e676..34df8487a9 100644
--- a/nss/getent.c
+++ b/nss/getent.c
@@ -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
diff --git a/sunrpc/Makefile b/sunrpc/Makefile
index b65f2f559a..c29f4a96b8 100644
--- a/sunrpc/Makefile
+++ b/sunrpc/Makefile
@@ -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.
diff --git a/sunrpc/Versions b/sunrpc/Versions
index a11dd8d36c..77bc6a4c9b 100644
--- a/sunrpc/Versions
+++ b/sunrpc/Versions
@@ -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;
}
diff --git a/inet/getrpcbyname.c b/sunrpc/getrpcbyname.c
index d21abc5bc6..d21abc5bc6 100644
--- a/inet/getrpcbyname.c
+++ b/sunrpc/getrpcbyname.c
diff --git a/inet/getrpcbyname_r.c b/sunrpc/getrpcbyname_r.c
index ff43ad4801..ff43ad4801 100644
--- a/inet/getrpcbyname_r.c
+++ b/sunrpc/getrpcbyname_r.c
diff --git a/inet/getrpcbynumber.c b/sunrpc/getrpcbynumber.c
index e6930dae4a..e6930dae4a 100644
--- a/inet/getrpcbynumber.c
+++ b/sunrpc/getrpcbynumber.c
diff --git a/inet/getrpcbynumber_r.c b/sunrpc/getrpcbynumber_r.c
index f6efaf150f..f6efaf150f 100644
--- a/inet/getrpcbynumber_r.c
+++ b/sunrpc/getrpcbynumber_r.c
diff --git a/inet/getrpcent.c b/sunrpc/getrpcent.c
index e72ea8dd25..e72ea8dd25 100644
--- a/inet/getrpcent.c
+++ b/sunrpc/getrpcent.c
diff --git a/inet/getrpcent_r.c b/sunrpc/getrpcent_r.c
index 9c1a65c985..9c1a65c985 100644
--- a/inet/getrpcent_r.c
+++ b/sunrpc/getrpcent_r.c