--- ./tirpc/rpc/xdr.h.orig 2014-11-28 09:16:53.990289976 +0000 +++ ./tirpc/rpc/xdr.h 2014-11-28 09:16:53.991289976 +0000 @@ -289,7 +289,11 @@ struct xdr_discrim { /* * These are the "generic" xdr routines. */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern bool_t xdr_void(void); extern bool_t xdr_int(XDR *, int *); extern bool_t xdr_u_int(XDR *, u_int *); @@ -332,7 +336,11 @@ extern bool_t xdr_hyper(XDR *, quad_t *) extern bool_t xdr_u_hyper(XDR *, u_quad_t *); extern bool_t xdr_longlong_t(XDR *, quad_t *); extern bool_t xdr_u_longlong_t(XDR *, u_quad_t *); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* * Common opaque bytes objects used by many rpc protocols; @@ -350,7 +358,11 @@ extern bool_t xdr_netobj(XDR *, struct * These are the public routines for the various implementations of * xdr streams. */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif /* XDR using memory buffers */ extern void xdrmem_create(XDR *, char *, u_int, enum xdr_op); @@ -371,6 +383,10 @@ extern bool_t xdrrec_skiprecord(XDR *); /* true if no more input */ extern bool_t xdrrec_eof(XDR *); extern u_int xdrrec_readbytes(XDR *, caddr_t, u_int); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif #endif /* !_TIRPC_XDR_H */ --- ./tirpc/rpc/auth_des.h.orig 2014-11-28 09:16:53.994289976 +0000 +++ ./tirpc/rpc/auth_des.h 2014-11-28 09:16:53.995289976 +0000 @@ -114,17 +114,33 @@ struct authdes_verf { * Map a des credential into a unix cred. * */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern int authdes_getucred( struct authdes_cred *, uid_t *, gid_t *, int *, gid_t * ); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern bool_t xdr_authdes_cred(XDR *, struct authdes_cred *); extern bool_t xdr_authdes_verf(XDR *, struct authdes_verf *); extern int rtime(dev_t, struct netbuf *, int, struct timeval *, struct timeval *); extern void kgetnetname(char *); extern enum auth_stat _svcauth_des(struct svc_req *, struct rpc_msg *); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif #endif /* ndef _TI_AUTH_DES_ */ --- ./tirpc/rpc/pmap_prot.h.orig 2014-11-28 09:16:53.988289976 +0000 +++ ./tirpc/rpc/pmap_prot.h 2014-11-28 09:16:53.989289976 +0000 @@ -99,10 +99,18 @@ struct pmaplist { struct pmaplist *pml_next; }; +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern bool_t xdr_pmap(XDR *, struct pmap *); extern bool_t xdr_pmaplist(XDR *, struct pmaplist **); extern bool_t xdr_pmaplist_ptr(XDR *, struct pmaplist *); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif #endif /* !_RPC_PMAP_PROT_H */ --- ./tirpc/rpc/auth.h.orig 2014-11-28 09:16:53.982289976 +0000 +++ ./tirpc/rpc/auth.h 2014-11-28 09:16:53.983289976 +0000 @@ -166,9 +166,17 @@ union des_block { char c[8]; }; typedef union des_block des_block; +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern bool_t xdr_des_block(XDR *, des_block *); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* * Authentication info. Opaque to client. @@ -279,9 +287,17 @@ auth_put(AUTH *auth) xfunc, xwhere)) +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern struct opaque_auth _null_auth; +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* * Any style authentication. These routines can be used by any @@ -302,11 +318,19 @@ int authany_wrap(void), authany_unwrap(v * int len; * int *aup_gids; */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern AUTH *authunix_create(char *, uid_t, uid_t, int, uid_t *); extern AUTH *authunix_create_default(void); /* takes no parameters */ extern AUTH *authnone_create(void); /* takes no parameters */ +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* * DES style authentication * AUTH *authsecdes_create(servername, window, timehost, ckey) @@ -315,15 +339,31 @@ __END_DECLS * const char *timehost; - optional hostname to sync with * des_block *ckey; - optional conversation key to use */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern AUTH *authdes_create (char *, u_int, struct sockaddr *, des_block *); extern AUTH *authdes_seccreate (const char *, const u_int, const char *, const des_block *); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern bool_t xdr_opaque_auth (XDR *, struct opaque_auth *); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif #define authsys_create(c,i1,i2,i3,ip) authunix_create((c),(i1),(i2),(i3),(ip)) #define authsys_create_default() authunix_create_default() @@ -331,36 +371,60 @@ __END_DECLS /* * Netname manipulation routines. */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern int getnetname(char *); extern int host2netname(char *, const char *, const char *); extern int user2netname(char *, const uid_t, const char *); extern int netname2user(char *, uid_t *, gid_t *, int *, gid_t *); extern int netname2host(char *, char *, const int); extern void passwd2des ( char *, char * ); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* * * These routines interface to the keyserv daemon * */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern int key_decryptsession(const char *, des_block *); extern int key_encryptsession(const char *, des_block *); extern int key_gendes(des_block *); extern int key_setsecret(const char *); extern int key_secretkey_is_set(void); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* * Publickey routines. */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern int getpublickey (const char *, char *); extern int getpublicandprivatekey (char *, char *); extern int getsecretkey (char *, char *, char *); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif #ifdef KERBEROS /* @@ -373,10 +437,18 @@ __END_DECLS * const char *timehost; - optional hostname to sync with * int *status; - kerberos status returned */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern AUTH *authkerb_seccreate(const char *, const char *, const char *, const u_int, const char *, int *); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* * Map a kerberos credential into a unix cred. @@ -389,20 +461,36 @@ __END_DECLS * int *groups; * */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern int authkerb_getucred(/* struct svc_req *, uid_t *, gid_t *, short *, int * */); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif #endif /* KERBEROS */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif struct svc_req; struct rpc_msg; enum auth_stat _svcauth_none (struct svc_req *, struct rpc_msg *); enum auth_stat _svcauth_short (struct svc_req *, struct rpc_msg *); enum auth_stat _svcauth_unix (struct svc_req *, struct rpc_msg *); enum auth_stat _svcauth_gss (struct svc_req *, struct rpc_msg *, bool_t *); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif #define AUTH_NONE 0 /* no authentication */ #define AUTH_NULL 0 /* backward compatibility */ --- ./tirpc/rpc/svc.h.orig 2014-11-28 09:16:53.992289976 +0000 +++ ./tirpc/rpc/svc.h 2014-11-28 09:16:53.993289976 +0000 @@ -202,11 +202,19 @@ struct svc_req { * const struct netconfig *nconf; */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern bool_t svc_reg(SVCXPRT *, const rpcprog_t, const rpcvers_t, void (*)(struct svc_req *, SVCXPRT *), const struct netconfig *); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* * Service un-registration @@ -216,9 +224,17 @@ __END_DECLS * const rpcvers_t vers; */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern void svc_unreg(const rpcprog_t, const rpcvers_t); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* * Transport registration. @@ -226,9 +242,17 @@ __END_DECLS * xprt_register(xprt) * SVCXPRT *xprt; */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern void xprt_register(SVCXPRT *); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* * Transport un-register @@ -236,9 +260,17 @@ __END_DECLS * xprt_unregister(xprt) * SVCXPRT *xprt; */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern void xprt_unregister(SVCXPRT *); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* @@ -267,7 +299,11 @@ __END_DECLS * deadlock the caller and server processes! */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern bool_t svc_sendreply(SVCXPRT *, xdrproc_t, void *); extern void svcerr_decode(SVCXPRT *); extern void svcerr_weakauth(SVCXPRT *); @@ -279,7 +315,11 @@ extern void svcerr_systemerr(SVCXPRT *); extern int rpc_reg(rpcprog_t, rpcvers_t, rpcproc_t, char *(*)(char *), xdrproc_t, xdrproc_t, char *); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* * Lowest level dispatching -OR- who owns this process anyway. @@ -308,11 +348,23 @@ extern int svc_fds; * a small program implemented by the svc_rpc implementation itself; * also see clnt.h for protocol numbers. */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern void rpctest_service(void); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern void svc_getreq(int); extern void svc_getreqset(fd_set *); extern void svc_getreq_common(int); @@ -321,7 +373,11 @@ extern void svc_getreq_poll(struct pollf extern void svc_run(void); extern void svc_exit(void); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* * Socket to use on svcxxx_create call to get default socket @@ -333,7 +389,11 @@ __END_DECLS * These are the existing service side transport implementations */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif /* * Transport independent svc_create routine. */ @@ -429,7 +489,11 @@ int svc_dg_enablecache(SVCXPRT *, const int __rpc_get_local_uid(SVCXPRT *_transp, uid_t *_uid); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* for backward compatibility */ --- ./tirpc/rpc/rpc.h.orig 2014-11-28 09:16:53.994289976 +0000 +++ ./tirpc/rpc/rpc.h 2014-11-28 09:16:53.994289976 +0000 @@ -79,7 +79,11 @@ #define UDPMSGSIZE 8800 #endif +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern int get_myaddress(struct sockaddr_in *); extern int bindresvport(int, struct sockaddr_in *) __THROW; extern int registerrpc(int, int, int, char *(*)(char [UDPMSGSIZE]), @@ -93,18 +97,30 @@ struct netbuf *uaddr2taddr(const struct struct sockaddr; extern int bindresvport_sa(int, struct sockaddr *); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* * The following are not exported interfaces, they are for internal library * and rpcbind use only. Do not use, they may change without notice. */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif int __rpc_nconf2fd(const struct netconfig *); int __rpc_nconf2fd_flags(const struct netconfig *, int); int __rpc_nconf2sockinfo(const struct netconfig *, struct __rpc_sockinfo *); int __rpc_fd2sockinfo(int, struct __rpc_sockinfo *); u_int __rpc_get_t_size(int, int, int); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif #endif /* !_RPC_RPC_H */ --- ./tirpc/rpc/svc_soc.h.orig 2014-11-28 09:16:53.998289976 +0000 +++ ./tirpc/rpc/svc_soc.h 2014-11-28 09:16:53.999289976 +0000 @@ -66,10 +66,18 @@ * void (*dispatch)(); * int protocol; like TCP or UDP, zero means do not register */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern bool_t svc_register(SVCXPRT *, u_long, u_long, void (*)(struct svc_req *, SVCXPRT *), int); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* * Service un-registration @@ -78,44 +86,84 @@ __END_DECLS * u_long prog; * u_long vers; */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern void svc_unregister(u_long, u_long); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* * Memory based rpc for testing and timing. */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern SVCXPRT *svcraw_create(void); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* * Udp based rpc. */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern SVCXPRT *svcudp_create(int); extern SVCXPRT *svcudp_bufcreate(int, u_int, u_int); extern int svcudp_enablecache(SVCXPRT *, u_long); extern SVCXPRT *svcudp6_create(int); extern SVCXPRT *svcudp6_bufcreate(int, u_int, u_int); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* * Tcp based rpc. */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern SVCXPRT *svctcp_create(int, u_int, u_int); extern SVCXPRT *svctcp6_create(int, u_int, u_int); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* * Fd based rpc. */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern SVCXPRT *svcfd_create(int, u_int, u_int); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif #endif /* !_RPC_SVC_SOC_H */ --- ./tirpc/rpc/clnt_soc.h.orig 2014-11-28 09:16:53.976289976 +0000 +++ ./tirpc/rpc/clnt_soc.h 2014-11-28 09:16:53.977289976 +0000 @@ -63,27 +63,51 @@ * u_int sendsz; * u_int recvsz; */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern CLIENT *clnttcp_create(struct sockaddr_in *, u_long, u_long, int *, u_int, u_int); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* * Raw (memory) rpc. */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern CLIENT *clntraw_create(u_long, u_long); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* IPv6 socket version */ #ifdef INET6 +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern CLIENT *clnttcp6_create(struct sockaddr_in6 *, u_long, u_long, int *, u_int, u_int); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif #endif /* @@ -107,7 +131,11 @@ __END_DECLS * u_int sendsz; * u_int recvsz; */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern CLIENT *clntudp_create(struct sockaddr_in *, u_long, u_long, struct timeval, int *); extern CLIENT *clntudp_bufcreate(struct sockaddr_in *, u_long, u_long, @@ -118,7 +146,11 @@ extern CLIENT *clntudp6_create(struct so extern CLIENT *clntudp6_bufcreate(struct sockaddr_in6 *, u_long, u_long, struct timeval, int *, u_int, u_int); #endif +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif #endif /* _RPC_CLNT_SOC_H */ --- ./tirpc/rpc/rpc_com.h.orig 2014-11-28 09:16:53.977289976 +0000 +++ ./tirpc/rpc/rpc_com.h 2014-11-28 09:16:53.978289976 +0000 @@ -57,7 +57,11 @@ #define __RPC_GETXID(now) ((u_int32_t)getpid() ^ (u_int32_t)(now)->tv_sec ^ \ (u_int32_t)(now)->tv_usec) +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern u_int __rpc_get_a_size(int); extern int __rpc_dtbsize(void); extern int _rpc_dtablesize(void); @@ -79,6 +83,10 @@ bool_t rpc_control(int,void *); char *_get_next_token(char *, int); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif #endif /* _RPC_RPCCOM_H */ --- ./tirpc/rpc/auth_unix.h.orig 2014-11-28 09:16:53.998289976 +0000 +++ ./tirpc/rpc/auth_unix.h 2014-11-28 09:16:53.998289976 +0000 @@ -69,9 +69,17 @@ struct authunix_parms { #define authsys_parms authunix_parms +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern bool_t xdr_authunix_parms(XDR *, struct authunix_parms *); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* * If a response verifier has flavor AUTH_SHORT, --- ./tirpc/rpc/pmap_rmt.h.orig 2014-11-28 09:16:53.986289976 +0000 +++ ./tirpc/rpc/pmap_rmt.h 2014-11-28 09:16:53.986289976 +0000 @@ -58,9 +58,17 @@ struct rmtcallres { xdrproc_t xdr_results; }; +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern bool_t xdr_rmtcall_args(XDR *, struct rmtcallargs *); extern bool_t xdr_rmtcallres(XDR *, struct rmtcallres *); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif #endif /* !_RPC_PMAP_RMT_H */ --- ./tirpc/rpc/des_crypt.h.orig 2014-11-28 09:16:53.987289976 +0000 +++ ./tirpc/rpc/des_crypt.h 2014-11-28 09:16:53.988289976 +0000 @@ -85,23 +85,47 @@ /* * Cipher Block Chaining mode */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif int cbc_crypt( char *, char *, unsigned int, unsigned int, char *); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* * Electronic Code Book mode */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif int ecb_crypt( char *, char *, unsigned int, unsigned int ); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* * Set des parity for a key. * DES parity is odd and in the low bit of each byte */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif void des_setparity( char *); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif #endif /* _DES_DES_CRYPT_H */ --- ./tirpc/rpc/rpcb_clnt.h.orig 2014-11-28 09:16:53.979289976 +0000 +++ ./tirpc/rpc/rpcb_clnt.h 2014-11-28 09:16:53.979289976 +0000 @@ -59,7 +59,11 @@ #include #include +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern bool_t rpcb_set(const rpcprog_t, const rpcvers_t, const struct netconfig *, const struct netbuf *); extern bool_t rpcb_unset(const rpcprog_t, const rpcvers_t, @@ -78,6 +82,10 @@ extern bool_t rpcb_getaddr(const rpcprog extern bool_t rpcb_gettime(const char *, time_t *); extern char *rpcb_taddr2uaddr(struct netconfig *, struct netbuf *); extern struct netbuf *rpcb_uaddr2taddr(struct netconfig *, char *); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif #endif /* !_RPC_RPCB_CLNT_H */ --- ./tirpc/rpc/clnt.h.orig 2014-11-28 09:16:53.984289976 +0000 +++ ./tirpc/rpc/clnt.h 2014-11-28 09:16:53.985289976 +0000 @@ -269,7 +269,11 @@ struct rpc_timers { * Generic client creation routine. Supported protocols are those that * belong to the nettype namespace (/etc/netconfig). */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern CLIENT *clnt_create(const char *, const rpcprog_t, const rpcvers_t, const char *); /* @@ -416,32 +420,60 @@ extern CLIENT *clnt_dg_create(const int, */ extern CLIENT *clnt_raw_create(rpcprog_t, rpcvers_t); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* * Print why creation failed */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern void clnt_pcreateerror(const char *); /* stderr */ extern char *clnt_spcreateerror(const char *); /* string */ +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* * Like clnt_perror(), but is more verbose in its output */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern void clnt_perrno(enum clnt_stat); /* stderr */ extern char *clnt_sperrno(enum clnt_stat); /* string */ +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* * Print an English error message, given the client error code */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern void clnt_perror(CLIENT *, const char *); /* stderr */ extern char *clnt_sperror(CLIENT *, const char *); /* string */ +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* @@ -452,9 +484,17 @@ struct rpc_createerr { struct rpc_err cf_error; /* useful when cf_stat == RPC_PMAPFAILURE */ }; +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern struct rpc_createerr *__rpc_createerr(void); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif #define get_rpc_createerr() (*(__rpc_createerr())) #define rpc_createerr (*(__rpc_createerr())) @@ -471,12 +511,20 @@ __END_DECLS * char *out; * const char *nettype; */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern enum clnt_stat rpc_call(const char *, const rpcprog_t, const rpcvers_t, const rpcproc_t, const xdrproc_t, const char *, const xdrproc_t, char *, const char *); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* * RPC broadcast interface @@ -524,7 +572,11 @@ __END_DECLS typedef bool_t (*resultproc_t)(caddr_t, ...); +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern enum clnt_stat rpc_broadcast(const rpcprog_t, const rpcvers_t, const rpcproc_t, const xdrproc_t, caddr_t, const xdrproc_t, caddr_t, @@ -534,7 +586,11 @@ extern enum clnt_stat rpc_broadcast_exp( caddr_t, const xdrproc_t, caddr_t, const resultproc_t, const int, const int, const char *); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif /* For backward compatibility */ #include --- ./tirpc/rpc/rpcent.h.orig 2014-11-28 09:16:53.996289976 +0000 +++ ./tirpc/rpc/rpcent.h 2014-11-28 09:16:53.996289976 +0000 @@ -44,7 +44,11 @@ /* #pragma ident "@(#)rpcent.h 1.13 94/04/25 SMI" */ /* @(#)rpcent.h 1.1 88/12/06 SMI */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif /* These are defined in /usr/include/rpc/netdb.h */ #if 0 @@ -62,6 +66,10 @@ extern struct rpcent *getrpcent(void); extern void setrpcent(int) __THROW; extern void endrpcent(void) __THROW; +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif #endif /* !_RPC_CENT_H */ --- ./tirpc/rpc/pmap_clnt.h.orig 2014-11-28 09:16:53.980289976 +0000 +++ ./tirpc/rpc/pmap_clnt.h 2014-11-28 09:16:53.980289976 +0000 @@ -67,7 +67,11 @@ #include #endif +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern bool_t pmap_set(u_long, u_long, int, int); extern bool_t pmap_unset(u_long, u_long); extern struct pmaplist *pmap_getmaps(struct sockaddr_in *); @@ -82,6 +86,10 @@ extern enum clnt_stat clnt_broadcast(u_l resultproc_t); extern u_short pmap_getport(struct sockaddr_in *, u_long, u_long, u_int); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif #endif /* !_RPC_PMAP_CLNT_H_ */ --- ./tirpc/rpc/auth_gss.h.orig 2014-11-28 09:16:53.989289976 +0000 +++ ./tirpc/rpc/auth_gss.h 2014-11-28 09:16:53.990289976 +0000 @@ -104,7 +104,11 @@ struct rpc_gss_init_res { #define MAXSEQ 0x80000000 /* Prototypes. */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif bool_t xdr_rpc_gss_cred __P((XDR *xdrs, struct rpc_gss_cred *p)); bool_t xdr_rpc_gss_init_args __P((XDR *xdrs, gss_buffer_desc *p)); bool_t xdr_rpc_gss_init_res __P((XDR *xdrs, struct rpc_gss_init_res *p)); @@ -126,6 +130,10 @@ void gss_log_status __P((char *m, OM_ui OM_uint32 minor)); void gss_log_hexdump __P((const u_char *buf, int len, int offset)); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif #endif /* !_TIRPC_AUTH_GSS_H */ --- ./tirpc/rpc/rpc_msg.h.orig 2014-11-28 09:16:53.996289976 +0000 +++ ./tirpc/rpc/rpc_msg.h 2014-11-28 09:16:53.997289976 +0000 @@ -161,7 +161,11 @@ struct rpc_msg { #define acpted_rply ru.RM_rmb.ru.RP_ar #define rjcted_rply ru.RM_rmb.ru.RP_dr +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif /* * XDR routine to handle a rpc message. * xdr_callmsg(xdrs, cmsg) @@ -210,6 +214,10 @@ extern bool_t xdr_rejected_reply(XDR *, * struct rpc_err *error; */ extern void _seterr_reply(struct rpc_msg *, struct rpc_err *); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif #endif /* !_TIRPC_RPC_MSG_H */ --- ./tirpc/rpc/nettype.h.orig 2014-11-28 09:16:53.981289976 +0000 +++ ./tirpc/rpc/nettype.h 2014-11-28 09:16:53.982289976 +0000 @@ -53,11 +53,19 @@ #define _RPC_TCP 7 #define _RPC_UDP 8 +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern void *__rpc_setconf(const char *); extern void __rpc_endconf(void *); extern struct netconfig *__rpc_getconf(void *); extern struct netconfig *__rpc_getconfip(const char *); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif #endif /* !_TIRPC_NETTYPE_H */ --- ./tirpc/rpc/svc_auth.h.orig 2014-11-28 09:16:53.986289976 +0000 +++ ./tirpc/rpc/svc_auth.h 2014-11-28 09:16:53.987289976 +0000 @@ -65,13 +65,21 @@ typedef struct SVCAUTH { /* * Server side authenticator */ +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern enum auth_stat _gss_authenticate(struct svc_req *, struct rpc_msg *, bool_t *); extern enum auth_stat _authenticate(struct svc_req *, struct rpc_msg *); extern int svc_auth_reg(int, enum auth_stat (*)(struct svc_req *, struct rpc_msg *)); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif #endif /* !_RPC_SVC_AUTH_H */ --- ./tirpc/rpcsvc/nis.h.orig 2014-11-28 09:16:54.001289976 +0000 +++ ./tirpc/rpcsvc/nis.h 2014-11-28 09:16:54.002289976 +0000 @@ -36,7 +36,11 @@ #include #include +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif /* * nis.h @@ -611,6 +615,10 @@ extern nis_error * nis_rmdir_3_svc (nis extern nis_error * nis_updkeys_3 (nis_name *, CLIENT *) __THROW; extern nis_error * nis_updkeys_3_svc (nis_name *, struct svc_req *) __THROW; +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif #endif /* ! _RPCSVC_NIS_H */ --- ./tirpc/rpcsvc/nislib.h.orig 2014-11-28 09:16:53.999289976 +0000 +++ ./tirpc/rpcsvc/nislib.h 2014-11-28 09:16:54.000289976 +0000 @@ -23,7 +23,11 @@ #include +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif typedef const char *const_nis_name; @@ -283,6 +287,10 @@ extern nis_error __nisfind_server (const #endif +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif #endif /* __RPCSVC_NISLIB_H__ */ --- ./tirpc/netconfig.h.orig 2014-11-28 09:16:54.003289976 +0000 +++ ./tirpc/netconfig.h 2014-11-28 09:16:54.003289976 +0000 @@ -74,7 +74,11 @@ typedef struct { #define NC_UDP "udp" #define NC_ICMP "icmp" +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern void *setnetconfig (void); extern struct netconfig *getnetconfig (void *); @@ -89,6 +93,10 @@ extern int endnetpath (void *); extern void nc_perror (const char *); extern char *nc_sperror (void); +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif #endif /* _NETCONFIG_H_ */ --- ./src/rpc_com.h.orig 2014-11-28 09:16:53.975289976 +0000 +++ ./src/rpc_com.h 2014-11-28 09:16:53.975289976 +0000 @@ -56,7 +56,11 @@ #define __RPC_GETXID(now) ((u_int32_t)getpid() ^ (u_int32_t)(now)->tv_sec ^ \ (u_int32_t)(now)->tv_usec) +#ifdef __GLIBC__ __BEGIN_DECLS +#elif defined(__cplusplus) +extern "C" { +#endif extern u_int __rpc_get_a_size(int); extern int __rpc_dtbsize(void); extern struct netconfig * __rpcgettp(int); @@ -92,6 +96,10 @@ void __xprt_set_raddr(SVCXPRT *, const s SVCXPRT **__svc_xports; int __svc_maxrec; +#ifdef __GLIBC__ __END_DECLS +#elif defined(__cplusplus) +} +#endif #endif /* _TIRPC_RPCCOM_H */