diff mbox

[COMMITTED] Include shlib-compat.h in many sunrpc/nis source files.

Message ID 20170604153321.11441-1-zackw@panix.com
State New
Headers show

Commit Message

Zack Weinberg June 4, 2017, 3:33 p.m. UTC
Every file that uses libc_hidden_nolink_sunrpc or
libnsl_hidden_nolink_def needs to include shlib-compat.h.  Currently,
most of them are getting it via stdio.h, because libio.h refers to
SHLIB_COMPAT when _LIBC is defined, so it includes shlib-compat.h.  My
experimental patch to not install libio.h breaks that chain; stdio.h
no longer pulls in libio.h even for internal users.

Accordingly, this patch adds #include <shlib-compat.h> to many files
in sunrpc/ and nis/.  There are also a small number of really obvious
fixups to includes that caught my eye while proofreading the patch -
not including headers twice in a row, not worrying about portability
to Ultrix anymore, sort of thing.

Tested on x86_64-linux-gnu native compilation, in the presence of the
libio patch, with and without --enable-obsolete-rpc
--enable-obsolete-nsl.  (This only turns into a visible problem if you
have the libio patch and you *don't* specify --enable-obsolete-rpc
--enable-obsolete-nsl.  But then it breaks the build.)  Committed.

zw

	* nis/nis_add.c, nis/nis_addmember.c, nis/nis_call.c
	* nis/nis_checkpoint.c, nis/nis_clone_dir.c, nis/nis_clone_obj.c
	* nis/nis_clone_res.c, nis/nis_creategroup.c, nis/nis_defaults.c
	* nis/nis_destroygroup.c, nis/nis_domain_of.c
	* nis/nis_domain_of_r.c, nis/nis_error.c, nis/nis_file.c
	* nis/nis_free.c, nis/nis_getservlist.c, nis/nis_ismember.c
	* nis/nis_local_names.c, nis/nis_lookup.c, nis/nis_mkdir.c
	* nis/nis_modify.c, nis/nis_ping.c, nis/nis_print.c
	* nis/nis_print_group_entry.c, nis/nis_remove.c
	* nis/nis_removemember.c, nis/nis_rmdir.c, nis/nis_server.c
	* nis/nis_subr.c, nis/nis_table.c, nis/nis_util.c
	* nis/nis_verifygroup.c, nis/nis_xdr.c, nis/yp_xdr.c
	* nis/ypclnt.c, nis/ypupdate_xdr.c, sunrpc/auth_des.c
	* sunrpc/auth_none.c, sunrpc/auth_unix.c, sunrpc/authdes_prot.c
	* sunrpc/authuxprot.c, sunrpc/clnt_gen.c, sunrpc/clnt_perr.c
	* sunrpc/clnt_raw.c, sunrpc/clnt_simp.c, sunrpc/clnt_tcp.c
	* sunrpc/clnt_udp.c, sunrpc/clnt_unix.c, sunrpc/des_crypt.c
	* sunrpc/des_soft.c, sunrpc/get_myaddr.c, sunrpc/key_call.c
	* sunrpc/key_prot.c, sunrpc/netname.c, sunrpc/pm_getmaps.c
	* sunrpc/pm_getport.c, sunrpc/pmap_clnt.c, sunrpc/pmap_prot.c
	* sunrpc/pmap_prot2.c, sunrpc/pmap_rmt.c, sunrpc/publickey.c
	* sunrpc/rpc_cmsg.c, sunrpc/rpc_dtable.c, sunrpc/rpc_prot.c
	* sunrpc/rpc_thread.c, sunrpc/rtime.c, sunrpc/svc.c
	* sunrpc/svc_auth.c, sunrpc/svc_raw.c, sunrpc/svc_run.c
	* sunrpc/svc_tcp.c, sunrpc/svc_udp.c, sunrpc/svc_unix.c
	* sunrpc/svcauth_des.c, sunrpc/xdr.c, sunrpc/xdr_array.c
	* sunrpc/xdr_float.c, sunrpc/xdr_intXX_t.c, sunrpc/xdr_mem.c
	* sunrpc/xdr_rec.c, sunrpc/xdr_ref.c, sunrpc/xdr_sizeof.c
	* sunrpc/xdr_stdio.c: Include shlib-compat.h.

	* sunrpc/des_crypt.c, sunrpc/des_soft.c: No need to include
	abi-versions.h as well as shlib-compat.h.
	* sunrpc/get_myaddr.c: Remove obsolete comment.
	* sunrpc/pmap_rmt.c: Remove obsolete comment and #undef.
	* sunrpc/rpc_thread.c: Include libc-lock.h only once.
	* resolv/res_libc.c: Include shlib-compat.h only once.
---
 nis/nis_add.c               | 1 +
 nis/nis_addmember.c         | 1 +
 nis/nis_call.c              | 1 +
 nis/nis_checkpoint.c        | 1 +
 nis/nis_clone_dir.c         | 1 +
 nis/nis_clone_obj.c         | 1 +
 nis/nis_clone_res.c         | 1 +
 nis/nis_creategroup.c       | 1 +
 nis/nis_defaults.c          | 1 +
 nis/nis_destroygroup.c      | 1 +
 nis/nis_domain_of.c         | 1 +
 nis/nis_domain_of_r.c       | 1 +
 nis/nis_error.c             | 1 +
 nis/nis_file.c              | 1 +
 nis/nis_free.c              | 1 +
 nis/nis_getservlist.c       | 1 +
 nis/nis_ismember.c          | 1 +
 nis/nis_local_names.c       | 1 +
 nis/nis_lookup.c            | 1 +
 nis/nis_mkdir.c             | 1 +
 nis/nis_modify.c            | 1 +
 nis/nis_ping.c              | 1 +
 nis/nis_print.c             | 1 +
 nis/nis_print_group_entry.c | 1 +
 nis/nis_remove.c            | 1 +
 nis/nis_removemember.c      | 1 +
 nis/nis_rmdir.c             | 1 +
 nis/nis_server.c            | 1 +
 nis/nis_subr.c              | 1 +
 nis/nis_table.c             | 1 +
 nis/nis_util.c              | 1 +
 nis/nis_verifygroup.c       | 1 +
 nis/nis_xdr.c               | 1 +
 nis/yp_xdr.c                | 1 +
 nis/ypclnt.c                | 1 +
 nis/ypupdate_xdr.c          | 1 +
 resolv/res_libc.c           | 5 ++---
 sunrpc/auth_des.c           | 1 +
 sunrpc/auth_none.c          | 1 +
 sunrpc/auth_unix.c          | 1 +
 sunrpc/authdes_prot.c       | 1 +
 sunrpc/authuxprot.c         | 1 +
 sunrpc/clnt_gen.c           | 1 +
 sunrpc/clnt_perr.c          | 1 +
 sunrpc/clnt_raw.c           | 1 +
 sunrpc/clnt_simp.c          | 1 +
 sunrpc/clnt_tcp.c           | 1 +
 sunrpc/clnt_udp.c           | 1 +
 sunrpc/clnt_unix.c          | 1 +
 sunrpc/des_crypt.c          | 2 +-
 sunrpc/des_soft.c           | 3 ++-
 sunrpc/get_myaddr.c         | 2 +-
 sunrpc/key_call.c           | 1 +
 sunrpc/key_prot.c           | 1 +
 sunrpc/netname.c            | 1 +
 sunrpc/pm_getmaps.c         | 1 +
 sunrpc/pm_getport.c         | 1 +
 sunrpc/pmap_clnt.c          | 1 +
 sunrpc/pmap_prot.c          | 1 +
 sunrpc/pmap_prot2.c         | 1 +
 sunrpc/pmap_rmt.c           | 5 +++--
 sunrpc/publickey.c          | 1 +
 sunrpc/rpc_cmsg.c           | 1 +
 sunrpc/rpc_dtable.c         | 1 +
 sunrpc/rpc_prot.c           | 2 +-
 sunrpc/rpc_thread.c         | 2 +-
 sunrpc/rtime.c              | 1 +
 sunrpc/svc.c                | 1 +
 sunrpc/svc_auth.c           | 1 +
 sunrpc/svc_raw.c            | 1 +
 sunrpc/svc_run.c            | 1 +
 sunrpc/svc_tcp.c            | 1 +
 sunrpc/svc_udp.c            | 1 +
 sunrpc/svc_unix.c           | 1 +
 sunrpc/svcauth_des.c        | 1 +
 sunrpc/xdr.c                | 1 +
 sunrpc/xdr_array.c          | 1 +
 sunrpc/xdr_float.c          | 1 +
 sunrpc/xdr_intXX_t.c        | 1 +
 sunrpc/xdr_mem.c            | 1 +
 sunrpc/xdr_rec.c            | 1 +
 sunrpc/xdr_ref.c            | 1 +
 sunrpc/xdr_sizeof.c         | 1 +
 sunrpc/xdr_stdio.c          | 2 ++
 84 files changed, 89 insertions(+), 10 deletions(-)
diff mbox

Patch

diff --git a/nis/nis_add.c b/nis/nis_add.c
index 3ec49c018a..a440252292 100644
--- a/nis/nis_add.c
+++ b/nis/nis_add.c
@@ -18,6 +18,7 @@ 
 
 #include <string.h>
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 #include "nis_xdr.h"
 #include "nis_intern.h"
diff --git a/nis/nis_addmember.c b/nis/nis_addmember.c
index 6b0c29530f..d2c47ab18f 100644
--- a/nis/nis_addmember.c
+++ b/nis/nis_addmember.c
@@ -19,6 +19,7 @@ 
 #include <assert.h>
 #include <string.h>
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 nis_error
 nis_addmember (const_nis_name member, const_nis_name group)
diff --git a/nis/nis_call.c b/nis/nis_call.c
index 03b15de2bc..d4f37bfb72 100644
--- a/nis/nis_call.c
+++ b/nis/nis_call.c
@@ -33,6 +33,7 @@ 
 #include "nis_xdr.h"
 #include "nis_intern.h"
 #include <libnsl.h>
+#include <shlib-compat.h>
 
 static const struct timeval RPCTIMEOUT = {10, 0};
 static const struct timeval UDPTIMEOUT = {5, 0};
diff --git a/nis/nis_checkpoint.c b/nis/nis_checkpoint.c
index 06656a476e..f148af4170 100644
--- a/nis/nis_checkpoint.c
+++ b/nis/nis_checkpoint.c
@@ -18,6 +18,7 @@ 
 
 #include <string.h>
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 #include "nis_xdr.h"
 #include "nis_intern.h"
diff --git a/nis/nis_clone_dir.c b/nis/nis_clone_dir.c
index 41e2f77210..982f475218 100644
--- a/nis/nis_clone_dir.c
+++ b/nis/nis_clone_dir.c
@@ -19,6 +19,7 @@ 
 #include <string.h>
 #include <rpc/rpc.h>
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 #include "nis_xdr.h"
 
diff --git a/nis/nis_clone_obj.c b/nis/nis_clone_obj.c
index 7299e11f6e..1d7e2e3ca5 100644
--- a/nis/nis_clone_obj.c
+++ b/nis/nis_clone_obj.c
@@ -19,6 +19,7 @@ 
 #include <string.h>
 #include <rpc/rpc.h>
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 #include "nis_xdr.h"
 
diff --git a/nis/nis_clone_res.c b/nis/nis_clone_res.c
index ca998346f8..db7716538a 100644
--- a/nis/nis_clone_res.c
+++ b/nis/nis_clone_res.c
@@ -19,6 +19,7 @@ 
 #include <string.h>
 #include <rpc/rpc.h>
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 #include "nis_xdr.h"
 
diff --git a/nis/nis_creategroup.c b/nis/nis_creategroup.c
index 6d5a08dc81..1d7e058710 100644
--- a/nis/nis_creategroup.c
+++ b/nis/nis_creategroup.c
@@ -19,6 +19,7 @@ 
 #include <time.h>
 #include <string.h>
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 nis_error
 nis_creategroup (const_nis_name group, unsigned int flags)
diff --git a/nis/nis_defaults.c b/nis/nis_defaults.c
index 7e6054d35d..1188a81b30 100644
--- a/nis/nis_defaults.c
+++ b/nis/nis_defaults.c
@@ -24,6 +24,7 @@ 
 #include <sys/types.h>
 #include <rpc/rpc.h>
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 #define DEFAULT_TTL 43200
 
diff --git a/nis/nis_destroygroup.c b/nis/nis_destroygroup.c
index 662d658693..fbcd5efddf 100644
--- a/nis/nis_destroygroup.c
+++ b/nis/nis_destroygroup.c
@@ -18,6 +18,7 @@ 
 
 #include <string.h>
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 nis_error
 nis_destroygroup (const_nis_name group)
diff --git a/nis/nis_domain_of.c b/nis/nis_domain_of.c
index 6e2025cbdc..68d958f75e 100644
--- a/nis/nis_domain_of.c
+++ b/nis/nis_domain_of.c
@@ -17,6 +17,7 @@ 
    <http://www.gnu.org/licenses/>.  */
 
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 nis_name
 nis_domain_of (const_nis_name name)
diff --git a/nis/nis_domain_of_r.c b/nis/nis_domain_of_r.c
index 57f99a2ced..9711eca605 100644
--- a/nis/nis_domain_of_r.c
+++ b/nis/nis_domain_of_r.c
@@ -19,6 +19,7 @@ 
 #include <errno.h>
 #include <string.h>
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 nis_name
 nis_domain_of_r (const_nis_name name, char *buffer, size_t buflen)
diff --git a/nis/nis_error.c b/nis/nis_error.c
index e55d784dfb..32b2a100f6 100644
--- a/nis/nis_error.c
+++ b/nis/nis_error.c
@@ -21,6 +21,7 @@ 
 #include <string.h>
 #include <libintl.h>
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 
 #define MF(line) MF1 (line)
diff --git a/nis/nis_file.c b/nis/nis_file.c
index c3c6c57f22..d6c1d14aae 100644
--- a/nis/nis_file.c
+++ b/nis/nis_file.c
@@ -20,6 +20,7 @@ 
 #include <stdlib.h>
 #include <string.h>
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 #include "nis_xdr.h"
 
 typedef bool_t (*iofct_t) (XDR *, void *);
diff --git a/nis/nis_free.c b/nis/nis_free.c
index 2b1580e9d5..1d3298f2a9 100644
--- a/nis/nis_free.c
+++ b/nis/nis_free.c
@@ -17,6 +17,7 @@ 
    <http://www.gnu.org/licenses/>.  */
 
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 #include "nis_xdr.h"
 
 void
diff --git a/nis/nis_getservlist.c b/nis/nis_getservlist.c
index 1f9482c7da..fba18c77ca 100644
--- a/nis/nis_getservlist.c
+++ b/nis/nis_getservlist.c
@@ -18,6 +18,7 @@ 
 
 #include <string.h>
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 #include "nis_xdr.h"
 #include "nis_intern.h"
diff --git a/nis/nis_ismember.c b/nis/nis_ismember.c
index 0006d6f80a..5aba3367f5 100644
--- a/nis/nis_ismember.c
+++ b/nis/nis_ismember.c
@@ -18,6 +18,7 @@ 
 
 #include <string.h>
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 /* internal_nis_ismember ()
    return codes: -1 principal is in -group
diff --git a/nis/nis_local_names.c b/nis/nis_local_names.c
index 090125d7de..99d8f99e27 100644
--- a/nis/nis_local_names.c
+++ b/nis/nis_local_names.c
@@ -21,6 +21,7 @@ 
 #include <unistd.h>
 #include <libintl.h>
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 nis_name
 nis_local_group (void)
diff --git a/nis/nis_lookup.c b/nis/nis_lookup.c
index 2b953cff90..f6d84abecd 100644
--- a/nis/nis_lookup.c
+++ b/nis/nis_lookup.c
@@ -21,6 +21,7 @@ 
 #include "nis_xdr.h"
 #include "nis_intern.h"
 #include <libnsl.h>
+#include <shlib-compat.h>
 
 
 nis_result *
diff --git a/nis/nis_mkdir.c b/nis/nis_mkdir.c
index bea7d18d0f..da6690cdcb 100644
--- a/nis/nis_mkdir.c
+++ b/nis/nis_mkdir.c
@@ -17,6 +17,7 @@ 
    <http://www.gnu.org/licenses/>.  */
 
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 #include "nis_xdr.h"
 #include "nis_intern.h"
diff --git a/nis/nis_modify.c b/nis/nis_modify.c
index 18d1bd1114..67315165bc 100644
--- a/nis/nis_modify.c
+++ b/nis/nis_modify.c
@@ -18,6 +18,7 @@ 
 
 #include <string.h>
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 #include "nis_xdr.h"
 #include "nis_intern.h"
diff --git a/nis/nis_ping.c b/nis/nis_ping.c
index 1924336352..b744898ba2 100644
--- a/nis/nis_ping.c
+++ b/nis/nis_ping.c
@@ -17,6 +17,7 @@ 
    <http://www.gnu.org/licenses/>.  */
 
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 #include "nis_xdr.h"
 #include "nis_intern.h"
diff --git a/nis/nis_print.c b/nis/nis_print.c
index 0ee49020a0..869f6aad61 100644
--- a/nis/nis_print.c
+++ b/nis/nis_print.c
@@ -22,6 +22,7 @@ 
 #include <stdint.h>
 
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 static const char *
 nis_nstype2str (const nstype type)
diff --git a/nis/nis_print_group_entry.c b/nis/nis_print_group_entry.c
index 1f2766ee20..3a717e71d7 100644
--- a/nis/nis_print_group_entry.c
+++ b/nis/nis_print_group_entry.c
@@ -20,6 +20,7 @@ 
 #include <string.h>
 #include <libintl.h>
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 void
 nis_print_group_entry (const_nis_name group)
diff --git a/nis/nis_remove.c b/nis/nis_remove.c
index 4cfc5c533a..87c539793d 100644
--- a/nis/nis_remove.c
+++ b/nis/nis_remove.c
@@ -17,6 +17,7 @@ 
    <http://www.gnu.org/licenses/>.  */
 
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 #include "nis_xdr.h"
 #include "nis_intern.h"
diff --git a/nis/nis_removemember.c b/nis/nis_removemember.c
index 04a05ca162..af9e2a899c 100644
--- a/nis/nis_removemember.c
+++ b/nis/nis_removemember.c
@@ -19,6 +19,7 @@ 
 #include <assert.h>
 #include <string.h>
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 nis_error
 nis_removemember (const_nis_name member, const_nis_name group)
diff --git a/nis/nis_rmdir.c b/nis/nis_rmdir.c
index a0c738024f..53a0509e05 100644
--- a/nis/nis_rmdir.c
+++ b/nis/nis_rmdir.c
@@ -17,6 +17,7 @@ 
    <http://www.gnu.org/licenses/>.  */
 
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 #include "nis_xdr.h"
 #include "nis_intern.h"
diff --git a/nis/nis_server.c b/nis/nis_server.c
index 2fb16ba195..63857721f2 100644
--- a/nis/nis_server.c
+++ b/nis/nis_server.c
@@ -18,6 +18,7 @@ 
 
 #include <string.h>
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 #include "nis_xdr.h"
 #include "nis_intern.h"
diff --git a/nis/nis_subr.c b/nis/nis_subr.c
index 5c31af8840..5d93e77330 100644
--- a/nis/nis_subr.c
+++ b/nis/nis_subr.c
@@ -19,6 +19,7 @@ 
 #include <errno.h>
 #include <string.h>
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 nis_name
 nis_leaf_of (const_nis_name name)
diff --git a/nis/nis_table.c b/nis/nis_table.c
index bec41f0e88..88eb6797e6 100644
--- a/nis/nis_table.c
+++ b/nis/nis_table.c
@@ -20,6 +20,7 @@ 
 #include <string.h>
 #include <rpcsvc/nis.h>
 #include <libc-diag.h>
+#include <shlib-compat.h>
 
 #include "nis_xdr.h"
 #include "nis_intern.h"
diff --git a/nis/nis_util.c b/nis/nis_util.c
index 681280e803..fcb7120e41 100644
--- a/nis/nis_util.c
+++ b/nis/nis_util.c
@@ -18,6 +18,7 @@ 
 
 #include <string.h>
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 #include "nis_xdr.h"
 #include "nis_intern.h"
diff --git a/nis/nis_verifygroup.c b/nis/nis_verifygroup.c
index 294595931f..4fb2cc5977 100644
--- a/nis/nis_verifygroup.c
+++ b/nis/nis_verifygroup.c
@@ -18,6 +18,7 @@ 
 
 #include <string.h>
 #include <rpcsvc/nis.h>
+#include <shlib-compat.h>
 
 nis_error
 nis_verifygroup (const_nis_name group)
diff --git a/nis/nis_xdr.c b/nis/nis_xdr.c
index a7b3f8c119..3217dc51bd 100644
--- a/nis/nis_xdr.c
+++ b/nis/nis_xdr.c
@@ -19,6 +19,7 @@ 
 #include <stdint.h>
 #include <rpcsvc/nis.h>
 #include <rpcsvc/nis_callback.h> /* for "official" Solaris xdr functions */
+#include <shlib-compat.h>
 
 /* This functions do exist without beginning "_" under Solaris 2.x, but
    we have no prototypes for them. To avoid the same problems as with the
diff --git a/nis/yp_xdr.c b/nis/yp_xdr.c
index 3d8b0bf3a6..0081b4c926 100644
--- a/nis/yp_xdr.c
+++ b/nis/yp_xdr.c
@@ -31,6 +31,7 @@ 
 
 #include <rpcsvc/yp.h>
 #include <rpcsvc/ypclnt.h>
+#include <shlib-compat.h>
 
 /* The NIS v2 protocol suggests 1024 bytes as a maximum length of all fields.
    Current Linux systems don't use this limit. To remain compatible with
diff --git a/nis/ypclnt.c b/nis/ypclnt.c
index 3c4af2e0cf..a03e347685 100644
--- a/nis/ypclnt.c
+++ b/nis/ypclnt.c
@@ -29,6 +29,7 @@ 
 #include <sys/socket.h>
 #include <sys/uio.h>
 #include <libc-lock.h>
+#include <shlib-compat.h>
 
 /* This should only be defined on systems with a BSD compatible ypbind */
 #ifndef BINDINGDIR
diff --git a/nis/ypupdate_xdr.c b/nis/ypupdate_xdr.c
index 61d8880cab..bbfb2fb683 100644
--- a/nis/ypupdate_xdr.c
+++ b/nis/ypupdate_xdr.c
@@ -30,6 +30,7 @@ 
  */
 
 #include <rpcsvc/ypupd.h>
+#include <shlib-compat.h>
 
 bool_t
 xdr_yp_buf (XDR *xdrs, yp_buf *objp)
diff --git a/resolv/res_libc.c b/resolv/res_libc.c
index c52574f895..c8f158d94c 100644
--- a/resolv/res_libc.c
+++ b/resolv/res_libc.c
@@ -127,15 +127,14 @@  __thread struct __res_state *__resp = &_res;
 extern __thread struct __res_state *__libc_resp
   __attribute__ ((alias ("__resp"))) attribute_hidden;
 
+#include <shlib-compat.h>
+
 /* We declare this with compat_symbol so that it's not
    visible at link time.  Programs must use the accessor functions.  */
 #ifdef SHARED
-# include <shlib-compat.h>
 compat_symbol (libc, _res, _res, GLIBC_2_0);
 #endif
 
-#include <shlib-compat.h>
-
 #if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_2)
 # undef res_init
 extern int __res_init_weak (void);
diff --git a/sunrpc/auth_des.c b/sunrpc/auth_des.c
index b299c456d6..42d6b552f4 100644
--- a/sunrpc/auth_des.c
+++ b/sunrpc/auth_des.c
@@ -41,6 +41,7 @@ 
 #include <rpc/xdr.h>
 #include <netinet/in.h>		/* XXX: just to get htonl() and ntohl() */
 #include <sys/socket.h>
+#include <shlib-compat.h>
 
 #define MILLION		1000000L
 #define RTIME_TIMEOUT 5		/* seconds to wait for sync */
diff --git a/sunrpc/auth_none.c b/sunrpc/auth_none.c
index 3f8d52bafb..b1effb7a00 100644
--- a/sunrpc/auth_none.c
+++ b/sunrpc/auth_none.c
@@ -36,6 +36,7 @@ 
 
 #include <rpc/rpc.h>
 #include <libc-lock.h>
+#include <shlib-compat.h>
 
 #define MAX_MARSHAL_SIZE 20
 
diff --git a/sunrpc/auth_unix.c b/sunrpc/auth_unix.c
index 68b42d7b1f..b71612cd80 100644
--- a/sunrpc/auth_unix.c
+++ b/sunrpc/auth_unix.c
@@ -46,6 +46,7 @@ 
 #include <libintl.h>
 #include <sys/param.h>
 #include <wchar.h>
+#include <shlib-compat.h>
 
 #include <rpc/types.h>
 #include <rpc/xdr.h>
diff --git a/sunrpc/authdes_prot.c b/sunrpc/authdes_prot.c
index 164c1223ca..93b7cfc04b 100644
--- a/sunrpc/authdes_prot.c
+++ b/sunrpc/authdes_prot.c
@@ -36,6 +36,7 @@ 
 #include <rpc/xdr.h>
 #include <rpc/auth.h>
 #include <rpc/auth_des.h>
+#include <shlib-compat.h>
 
 #define ATTEMPT(xdr_op) if (!(xdr_op)) return (FALSE)
 
diff --git a/sunrpc/authuxprot.c b/sunrpc/authuxprot.c
index d37faee0c7..14fe9f56c8 100644
--- a/sunrpc/authuxprot.c
+++ b/sunrpc/authuxprot.c
@@ -37,6 +37,7 @@ 
 #include <rpc/xdr.h>
 #include <rpc/auth.h>
 #include <rpc/auth_unix.h>
+#include <shlib-compat.h>
 
 /*
  * XDR for unix authentication parameters.
diff --git a/sunrpc/clnt_gen.c b/sunrpc/clnt_gen.c
index 8dffaa9fa6..542f85dd35 100644
--- a/sunrpc/clnt_gen.c
+++ b/sunrpc/clnt_gen.c
@@ -35,6 +35,7 @@ 
 #include <rpc/rpc.h>
 #include <sys/socket.h>
 #include <netdb.h>
+#include <shlib-compat.h>
 
 /*
  * Generic client creation: takes (hostname, program-number, protocol) and
diff --git a/sunrpc/clnt_perr.c b/sunrpc/clnt_perr.c
index b4f84c92e8..f682243eae 100644
--- a/sunrpc/clnt_perr.c
+++ b/sunrpc/clnt_perr.c
@@ -36,6 +36,7 @@ 
 #include <rpc/rpc.h>
 #include <wchar.h>
 #include <libio/iolibio.h>
+#include <shlib-compat.h>
 
 static char *auth_errmsg (enum auth_stat stat) internal_function;
 
diff --git a/sunrpc/clnt_raw.c b/sunrpc/clnt_raw.c
index a149bf419b..d62a11a2ca 100644
--- a/sunrpc/clnt_raw.c
+++ b/sunrpc/clnt_raw.c
@@ -40,6 +40,7 @@ 
 #include <rpc/svc.h>
 #include <rpc/xdr.h>
 #include <libintl.h>
+#include <shlib-compat.h>
 
 #define MCALL_MSG_SIZE 24
 
diff --git a/sunrpc/clnt_simp.c b/sunrpc/clnt_simp.c
index 0ecb64ca7b..bdf6322fc4 100644
--- a/sunrpc/clnt_simp.c
+++ b/sunrpc/clnt_simp.c
@@ -40,6 +40,7 @@ 
 #include <sys/socket.h>
 #include <netdb.h>
 #include <string.h>
+#include <shlib-compat.h>
 
 struct callrpc_private_s
   {
diff --git a/sunrpc/clnt_tcp.c b/sunrpc/clnt_tcp.c
index 9bcd9125ea..e311b35a25 100644
--- a/sunrpc/clnt_tcp.c
+++ b/sunrpc/clnt_tcp.c
@@ -54,6 +54,7 @@ 
 #include <sys/socket.h>
 #include <rpc/pmap_clnt.h>
 #include <wchar.h>
+#include <shlib-compat.h>
 
 extern u_long _create_xid (void);
 
diff --git a/sunrpc/clnt_udp.c b/sunrpc/clnt_udp.c
index 6ce16eb298..df21e28f64 100644
--- a/sunrpc/clnt_udp.c
+++ b/sunrpc/clnt_udp.c
@@ -56,6 +56,7 @@ 
 
 #include <kernel-features.h>
 #include <inet/net-internal.h>
+#include <shlib-compat.h>
 
 extern u_long _create_xid (void);
 
diff --git a/sunrpc/clnt_unix.c b/sunrpc/clnt_unix.c
index 1b8c179319..8591be5580 100644
--- a/sunrpc/clnt_unix.c
+++ b/sunrpc/clnt_unix.c
@@ -55,6 +55,7 @@ 
 #include <sys/socket.h>
 #include <rpc/pmap_clnt.h>
 #include <wchar.h>
+#include <shlib-compat.h>
 
 extern u_long _create_xid (void);
 
diff --git a/sunrpc/des_crypt.c b/sunrpc/des_crypt.c
index 22a34b7f3a..a4d8b2936b 100644
--- a/sunrpc/des_crypt.c
+++ b/sunrpc/des_crypt.c
@@ -32,7 +32,7 @@ 
 
 #include <sys/types.h>
 #include <rpc/des_crypt.h>
-#include <abi-versions.h>
+#include <shlib-compat.h>
 #include "des.h"
 
 extern int _des_crypt (char *, unsigned, struct desparams *);
diff --git a/sunrpc/des_soft.c b/sunrpc/des_soft.c
index cddef5d76b..f884f8f21b 100644
--- a/sunrpc/des_soft.c
+++ b/sunrpc/des_soft.c
@@ -32,7 +32,8 @@  static char sccsid[] = "@(#)des_soft.c	2.2 88/08/10 4.0 RPCSRC; from 1.13 88/02/
  */
 
 #include <rpc/des_crypt.h>
-#include <abi-versions.h>
+#include <shlib-compat.h>
+
 /*
  * Table giving odd parity in the low bit for ASCII characters
  */
diff --git a/sunrpc/get_myaddr.c b/sunrpc/get_myaddr.c
index 24407b53ec..df334e4134 100644
--- a/sunrpc/get_myaddr.c
+++ b/sunrpc/get_myaddr.c
@@ -42,9 +42,9 @@ 
 #include <net/if.h>
 #include <ifaddrs.h>
 #include <sys/ioctl.h>
-/* Order of following two #includes reversed by roland@gnu */
 #include <netinet/in.h>
 #include <arpa/inet.h>
+#include <shlib-compat.h>
 
 /*
  * don't use gethostbyname, which would invoke yellow pages
diff --git a/sunrpc/key_call.c b/sunrpc/key_call.c
index a0d9a2a0d1..b871c04648 100644
--- a/sunrpc/key_call.c
+++ b/sunrpc/key_call.c
@@ -49,6 +49,7 @@ 
 #include <sys/socket.h>
 #include <rpc/key_prot.h>
 #include <libc-lock.h>
+#include <shlib-compat.h>
 
 #define KEY_TIMEOUT	5	/* per-try timeout in seconds */
 #define KEY_NRETRY	12	/* number of retries */
diff --git a/sunrpc/key_prot.c b/sunrpc/key_prot.c
index 2899c9a448..3659bab1d3 100644
--- a/sunrpc/key_prot.c
+++ b/sunrpc/key_prot.c
@@ -29,6 +29,7 @@ 
  */
 
 #include <rpc/key_prot.h>
+#include <shlib-compat.h>
 
 bool_t
 xdr_keystatus (XDR * xdrs, keystatus * objp)
diff --git a/sunrpc/netname.c b/sunrpc/netname.c
index c694311372..9aee3e4042 100644
--- a/sunrpc/netname.c
+++ b/sunrpc/netname.c
@@ -20,6 +20,7 @@ 
 #include <unistd.h>
 #include <string.h>
 #include <rpc/rpc.h>
+#include <shlib-compat.h>
 
 #include "nsswitch.h"
 
diff --git a/sunrpc/pm_getmaps.c b/sunrpc/pm_getmaps.c
index 6f7ad10ef6..88c44f0154 100644
--- a/sunrpc/pm_getmaps.c
+++ b/sunrpc/pm_getmaps.c
@@ -44,6 +44,7 @@ 
 #include <libintl.h>
 #include <unistd.h>
 #include <not-cancel.h>
+#include <shlib-compat.h>
 
 
 /*
diff --git a/sunrpc/pm_getport.c b/sunrpc/pm_getport.c
index 000a01fa81..54d2e439d2 100644
--- a/sunrpc/pm_getport.c
+++ b/sunrpc/pm_getport.c
@@ -38,6 +38,7 @@ 
 #include <rpc/pmap_prot.h>
 #include <rpc/pmap_clnt.h>
 #include <sys/socket.h>
+#include <shlib-compat.h>
 
 /*
  * Create a socket that is locally bound to a non-reserve port. For
diff --git a/sunrpc/pmap_clnt.c b/sunrpc/pmap_clnt.c
index 5d7d185766..69b4907b3a 100644
--- a/sunrpc/pmap_clnt.c
+++ b/sunrpc/pmap_clnt.c
@@ -45,6 +45,7 @@ 
 #include <rpc/rpc.h>
 #include <rpc/pmap_prot.h>
 #include <rpc/pmap_clnt.h>
+#include <shlib-compat.h>
 
 /*
  * Same as get_myaddress, but we try to use the loopback
diff --git a/sunrpc/pmap_prot.c b/sunrpc/pmap_prot.c
index 0919d0917d..d8d75a7b47 100644
--- a/sunrpc/pmap_prot.c
+++ b/sunrpc/pmap_prot.c
@@ -35,6 +35,7 @@ 
 #include <rpc/types.h>
 #include <rpc/xdr.h>
 #include <rpc/pmap_prot.h>
+#include <shlib-compat.h>
 
 
 bool_t
diff --git a/sunrpc/pmap_prot2.c b/sunrpc/pmap_prot2.c
index 01f158d6b8..c414db0298 100644
--- a/sunrpc/pmap_prot2.c
+++ b/sunrpc/pmap_prot2.c
@@ -35,6 +35,7 @@ 
 #include <rpc/types.h>
 #include <rpc/xdr.h>
 #include <rpc/pmap_prot.h>
+#include <shlib-compat.h>
 
 
 /*
diff --git a/sunrpc/pmap_rmt.c b/sunrpc/pmap_rmt.c
index e54fe14470..c036d889ef 100644
--- a/sunrpc/pmap_rmt.c
+++ b/sunrpc/pmap_rmt.c
@@ -44,12 +44,13 @@ 
 #include <sys/socket.h>
 #include <stdio.h>
 #include <errno.h>
-#undef	 _POSIX_SOURCE		/* Ultrix <sys/param.h> needs --roland@gnu */
-#include <sys/param.h>		/* Ultrix needs before net/if --roland@gnu */
+#include <sys/param.h>
 #include <net/if.h>
 #include <ifaddrs.h>
 #include <sys/ioctl.h>
 #include <arpa/inet.h>
+#include <shlib-compat.h>
+
 #define MAX_BROADCAST_SIZE 1400
 
 extern u_long _create_xid (void);
diff --git a/sunrpc/publickey.c b/sunrpc/publickey.c
index 5209f7bdf2..ca6e4303d4 100644
--- a/sunrpc/publickey.c
+++ b/sunrpc/publickey.c
@@ -20,6 +20,7 @@ 
 #include <errno.h>
 #include <rpc/netdb.h>
 #include <rpc/auth_des.h>
+#include <shlib-compat.h>
 
 #include "nsswitch.h"
 
diff --git a/sunrpc/rpc_cmsg.c b/sunrpc/rpc_cmsg.c
index 62d95fcc83..ec8cc6ccca 100644
--- a/sunrpc/rpc_cmsg.c
+++ b/sunrpc/rpc_cmsg.c
@@ -34,6 +34,7 @@ 
 #include <string.h>
 #include <sys/param.h>
 #include <rpc/rpc.h>
+#include <shlib-compat.h>
 
 /*
  * XDR a call message
diff --git a/sunrpc/rpc_dtable.c b/sunrpc/rpc_dtable.c
index 81ddf8f55a..7fe48e1811 100644
--- a/sunrpc/rpc_dtable.c
+++ b/sunrpc/rpc_dtable.c
@@ -31,6 +31,7 @@ 
 
 #include <unistd.h>
 #include <rpc/clnt.h>
+#include <shlib-compat.h>
 
 /*
  * Cache the result of getdtablesize(), so we don't have to do an
diff --git a/sunrpc/rpc_prot.c b/sunrpc/rpc_prot.c
index f47c6befe4..46582f2a35 100644
--- a/sunrpc/rpc_prot.c
+++ b/sunrpc/rpc_prot.c
@@ -39,8 +39,8 @@ 
  */
 
 #include <sys/param.h>
-
 #include <rpc/rpc.h>
+#include <shlib-compat.h>
 
 /* * * * * * * * * * * * * * XDR Authentication * * * * * * * * * * * */
 
diff --git a/sunrpc/rpc_thread.c b/sunrpc/rpc_thread.c
index e5225c5caf..ccbf9bb69b 100644
--- a/sunrpc/rpc_thread.c
+++ b/sunrpc/rpc_thread.c
@@ -1,10 +1,10 @@ 
 #include <stdio.h>
-#include <libc-lock.h>
 #include <rpc/rpc.h>
 #include <assert.h>
 
 #include <libc-lock.h>
 #include <libc-tsd.h>
+#include <shlib-compat.h>
 
 #ifdef _RPC_THREAD_SAFE_
 
diff --git a/sunrpc/rtime.c b/sunrpc/rtime.c
index d224624f8b..e3cffe26d4 100644
--- a/sunrpc/rtime.c
+++ b/sunrpc/rtime.c
@@ -49,6 +49,7 @@ 
 #include <rpc/auth_des.h>
 #include <errno.h>
 #include <netinet/in.h>
+#include <shlib-compat.h>
 
 #define NYEARS	(u_long)(1970 - 1900)
 #define TOFFSET (u_long)(60*60*24*(365*NYEARS + (NYEARS/4)))
diff --git a/sunrpc/svc.c b/sunrpc/svc.c
index 03f963018c..f713e2eb72 100644
--- a/sunrpc/svc.c
+++ b/sunrpc/svc.c
@@ -59,6 +59,7 @@ 
 #include <rpc/pmap_clnt.h>
 #include <sys/poll.h>
 #include <time.h>
+#include <shlib-compat.h>
 
 #ifdef _RPC_THREAD_SAFE_
 #define xports RPC_THREAD_VARIABLE(svc_xports_s)
diff --git a/sunrpc/svc_auth.c b/sunrpc/svc_auth.c
index f33bda2f20..5bca9557e3 100644
--- a/sunrpc/svc_auth.c
+++ b/sunrpc/svc_auth.c
@@ -34,6 +34,7 @@ 
 #include <rpc/rpc.h>
 #include <rpc/svc.h>
 #include <rpc/svc_auth.h>
+#include <shlib-compat.h>
 
 /*
  * svcauthsw is the bdevsw of server side authentication.
diff --git a/sunrpc/svc_raw.c b/sunrpc/svc_raw.c
index 99bfdfebe8..4787203613 100644
--- a/sunrpc/svc_raw.c
+++ b/sunrpc/svc_raw.c
@@ -36,6 +36,7 @@ 
 
 #include <rpc/rpc.h>
 #include <rpc/svc.h>
+#include <shlib-compat.h>
 
 /*
  * This is the "network" that we will be moving data over
diff --git a/sunrpc/svc_run.c b/sunrpc/svc_run.c
index 90dfc94056..e563707fcc 100644
--- a/sunrpc/svc_run.c
+++ b/sunrpc/svc_run.c
@@ -36,6 +36,7 @@ 
 #include <libintl.h>
 #include <sys/poll.h>
 #include <rpc/rpc.h>
+#include <shlib-compat.h>
 
 /* This function can be used as a signal handler to terminate the
    server loop.  */
diff --git a/sunrpc/svc_tcp.c b/sunrpc/svc_tcp.c
index db855a3f51..fd9c1e83ca 100644
--- a/sunrpc/svc_tcp.c
+++ b/sunrpc/svc_tcp.c
@@ -64,6 +64,7 @@ 
 
 #include <wchar.h>
 #include <libio/iolibio.h>
+#include <shlib-compat.h>
 
 /*
  * Ops vector for TCP/IP based rpc service handle
diff --git a/sunrpc/svc_udp.c b/sunrpc/svc_udp.c
index 5f6219f91c..1592bcca9e 100644
--- a/sunrpc/svc_udp.c
+++ b/sunrpc/svc_udp.c
@@ -64,6 +64,7 @@ 
 
 #include <wchar.h>
 #include <libio/iolibio.h>
+#include <shlib-compat.h>
 
 #define rpc_buffer(xprt) ((xprt)->xp_p1)
 #ifndef MAX
diff --git a/sunrpc/svc_unix.c b/sunrpc/svc_unix.c
index 47f1f8487d..a8da3b2262 100644
--- a/sunrpc/svc_unix.c
+++ b/sunrpc/svc_unix.c
@@ -64,6 +64,7 @@ 
 #include <stdlib.h>
 #include <libintl.h>
 #include <wchar.h>
+#include <shlib-compat.h>
 
 /*
  * Ops vector for AF_UNIX based rpc service handle
diff --git a/sunrpc/svcauth_des.c b/sunrpc/svcauth_des.c
index a0f961db12..8e6cb86e39 100644
--- a/sunrpc/svcauth_des.c
+++ b/sunrpc/svcauth_des.c
@@ -53,6 +53,7 @@ 
 #include <rpc/svc_auth.h>
 #include <rpc/svc.h>
 #include <rpc/des_crypt.h>
+#include <shlib-compat.h>
 
 #define debug(msg)		/*printf("svcauth_des: %s\n", msg) */
 
diff --git a/sunrpc/xdr.c b/sunrpc/xdr.c
index bfabf337c7..8b0b91995b 100644
--- a/sunrpc/xdr.c
+++ b/sunrpc/xdr.c
@@ -44,6 +44,7 @@ 
 
 #include <rpc/types.h>
 #include <rpc/xdr.h>
+#include <shlib-compat.h>
 
 
 /*
diff --git a/sunrpc/xdr_array.c b/sunrpc/xdr_array.c
index 99a1d5d245..18383d437e 100644
--- a/sunrpc/xdr_array.c
+++ b/sunrpc/xdr_array.c
@@ -41,6 +41,7 @@ 
 #include <libintl.h>
 #include <limits.h>
 #include <wchar.h>
+#include <shlib-compat.h>
 
 #define LASTUNSIGNED	((u_int)0-1)
 
diff --git a/sunrpc/xdr_float.c b/sunrpc/xdr_float.c
index 4ce8ae7a9c..844a96e56e 100644
--- a/sunrpc/xdr_float.c
+++ b/sunrpc/xdr_float.c
@@ -40,6 +40,7 @@ 
 
 #include <rpc/types.h>
 #include <rpc/xdr.h>
+#include <shlib-compat.h>
 
 /*
  * NB: Not portable.
diff --git a/sunrpc/xdr_intXX_t.c b/sunrpc/xdr_intXX_t.c
index 1eb7d03901..4fd9ada687 100644
--- a/sunrpc/xdr_intXX_t.c
+++ b/sunrpc/xdr_intXX_t.c
@@ -22,6 +22,7 @@ 
 #include <rpc/xdr.h>
 
 #include <stdint.h>
+#include <shlib-compat.h>
 
 /* XDR 64bit integers */
 bool_t
diff --git a/sunrpc/xdr_mem.c b/sunrpc/xdr_mem.c
index 8b98589594..46a1f6f190 100644
--- a/sunrpc/xdr_mem.c
+++ b/sunrpc/xdr_mem.c
@@ -38,6 +38,7 @@ 
 #include <string.h>
 #include <limits.h>
 #include <rpc/rpc.h>
+#include <shlib-compat.h>
 
 static bool_t xdrmem_getlong (XDR *, long *);
 static bool_t xdrmem_putlong (XDR *, const long *);
diff --git a/sunrpc/xdr_rec.c b/sunrpc/xdr_rec.c
index 9d79ace4b7..fafa591c7c 100644
--- a/sunrpc/xdr_rec.c
+++ b/sunrpc/xdr_rec.c
@@ -50,6 +50,7 @@ 
 #include <libintl.h>
 #include <wchar.h>
 #include <libio/iolibio.h>
+#include <shlib-compat.h>
 
 static bool_t xdrrec_getlong (XDR *, long *);
 static bool_t xdrrec_putlong (XDR *, const long *);
diff --git a/sunrpc/xdr_ref.c b/sunrpc/xdr_ref.c
index 2b7ebc8e11..eab3b74227 100644
--- a/sunrpc/xdr_ref.c
+++ b/sunrpc/xdr_ref.c
@@ -41,6 +41,7 @@ 
 #include <libintl.h>
 #include <wchar.h>
 #include <libio/iolibio.h>
+#include <shlib-compat.h>
 
 #define LASTUNSIGNED	((u_int)0-1)
 
diff --git a/sunrpc/xdr_sizeof.c b/sunrpc/xdr_sizeof.c
index 56e870a455..1592406d64 100644
--- a/sunrpc/xdr_sizeof.c
+++ b/sunrpc/xdr_sizeof.c
@@ -38,6 +38,7 @@ 
 #include <rpc/xdr.h>
 #include <sys/types.h>
 #include <stdlib.h>
+#include <shlib-compat.h>
 
 /* ARGSUSED */
 static bool_t
diff --git a/sunrpc/xdr_stdio.c b/sunrpc/xdr_stdio.c
index faa646d29a..6ab514b664 100644
--- a/sunrpc/xdr_stdio.c
+++ b/sunrpc/xdr_stdio.c
@@ -40,6 +40,8 @@ 
 #include <rpc/xdr.h>
 
 #include <libio/iolibio.h>
+#include <shlib-compat.h>
+
 #define fflush(s) _IO_fflush (s)
 #define fread(p, m, n, s) _IO_fread (p, m, n, s)
 #define ftell(s) _IO_ftell (s)