Yes, indeed! I will revert most of it. Thanks for checking! Pedro.
>________________________________ > From: Yuri Pankov <yuri.pan...@gmail.com> >To: Pedro F. Giffuni <p...@freebsd.org> >Cc: src-committ...@freebsd.org; svn-src-...@freebsd.org; >svn-src-head@freebsd.org >Sent: Sunday, September 2, 2012 4:16 PM >Subject: Re: svn commit: r240060 - in head: include/rpc sys/rpc > >On Sun, 2 Sep 2012 21:04:40 +0000 (UTC), Pedro F. Giffuni wrote: >> Author: pfg >> Date: Sun Sep 2 21:04:40 2012 >> New Revision: 240060 >> URL: http://svn.freebsd.org/changeset/base/240060 >> >> Log: >> Fix RPC headers for C++ >> >> C++ mangling will cause trouble with variables like __rpc_xdr >> in xdr.h so rename this to XDR. >> While here add proper C++ guards to RPC headers. >> >> PR: 137443 >> MFC after: 2 weeks >> >> Modified: >> head/include/rpc/auth.h >> head/include/rpc/auth_unix.h >> head/include/rpc/clnt.h >> head/include/rpc/clnt_soc.h >> head/include/rpc/des_crypt.h >> head/include/rpc/nettype.h >> head/include/rpc/pmap_clnt.h >> head/include/rpc/pmap_rmt.h >> head/include/rpc/rpc_com.h >> head/include/rpc/rpc_msg.h >> head/include/rpc/rpcb_clnt.h >> head/include/rpc/rpcent.h >> head/include/rpc/rpcsec_gss.h >> head/include/rpc/svc.h >> head/include/rpc/svc_soc.h >> head/include/rpc/xdr.h >> head/sys/rpc/rpc_com.h >> head/sys/rpc/xdr.h >> >> Modified: head/include/rpc/auth.h >> ============================================================================== >> --- head/include/rpc/auth.h Sun Sep 2 18:54:51 2012 (r240059) >> +++ head/include/rpc/auth.h Sun Sep 2 21:04:40 2012 (r240060) >> @@ -51,6 +51,10 @@ >> #include <sys/cdefs.h> >> #include <sys/socket.h> >> >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> + >> #define MAX_AUTH_BYTES 400 >> #define MAXNETNAMELEN 255 /* maximum length of network user's name */ >> >> @@ -366,4 +370,8 @@ __END_DECLS >> #define RPCSEC_GSS_KRB5I 390004 >> #define RPCSEC_GSS_KRB5P 390005 >> >> +#ifdef __cplusplus >> +} >> +#endif >> + >> #endif /* !_RPC_AUTH_H */ >> >> Modified: head/include/rpc/auth_unix.h >> ============================================================================== >> --- head/include/rpc/auth_unix.h Sun Sep 2 18:54:51 2012 (r240059) >> +++ head/include/rpc/auth_unix.h Sun Sep 2 21:04:40 2012 (r240060) >> @@ -48,6 +48,10 @@ >> #define _RPC_AUTH_UNIX_H >> #include <sys/cdefs.h> >> >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> + >> /* The machine name is part of a credential; it may not exceed 255 bytes */ >> #define MAX_MACHINE_NAME 255 >> >> @@ -81,4 +85,8 @@ struct short_hand_verf { >> struct opaque_auth new_cred; >> }; >> >> +#ifdef __cplusplus >> +} >> +#endif >> + >> #endif /* !_RPC_AUTH_UNIX_H */ >> >> Modified: head/include/rpc/clnt.h >> ============================================================================== >> --- head/include/rpc/clnt.h Sun Sep 2 18:54:51 2012 (r240059) >> +++ head/include/rpc/clnt.h Sun Sep 2 21:04:40 2012 (r240060) >> @@ -64,6 +64,10 @@ >> #include <netconfig.h> >> #include <sys/un.h> >> >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> + >> /* >> * Well-known IPV6 RPC broadcast address. >> */ >> @@ -551,6 +555,10 @@ extern enum clnt_stat rpc_broadcast_exp( >> const int, const char *); >> __END_DECLS >> >> +#ifdef __cplusplus >> +} >> +#endif >> + >> /* For backward compatibility */ >> #include <rpc/clnt_soc.h> >> >> >> Modified: head/include/rpc/clnt_soc.h >> ============================================================================== >> --- head/include/rpc/clnt_soc.h Sun Sep 2 18:54:51 2012 (r240059) >> +++ head/include/rpc/clnt_soc.h Sun Sep 2 21:04:40 2012 (r240060) >> @@ -49,6 +49,10 @@ >> >> #include <sys/cdefs.h> >> >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> + >> #define UDPMSGSIZE 8800 /* rpc imposed limit on udp msg size */ >> >> /* >> @@ -103,4 +107,8 @@ extern CLIENT *clntudp_bufcreate(struct >> struct timeval, int *, u_int, u_int); >> __END_DECLS >> >> +#ifdef __cplusplus >> +} >> +#endif >> + >> #endif /* _RPC_CLNT_SOC_H */ >> >> Modified: head/include/rpc/des_crypt.h >> ============================================================================== >> --- head/include/rpc/des_crypt.h Sun Sep 2 18:54:51 2012 (r240059) >> +++ head/include/rpc/des_crypt.h Sun Sep 2 21:04:40 2012 (r240060) >> @@ -47,6 +47,10 @@ >> #include <sys/cdefs.h> >> #include <rpc/rpc.h> >> >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> + >> #define DES_MAXDATA 8192 /* max bytes encrypted in one call */ >> #define DES_DIRMASK (1 << 0) >> #define DES_ENCRYPT (0*DES_DIRMASK) /* Encrypt */ >> @@ -103,4 +107,8 @@ __BEGIN_DECLS >> void des_setparity( char *); >> __END_DECLS >> >> +#ifdef __cplusplus >> +} >> +#endif >> + >> #endif /* _DES_DES_CRYPT_H */ >> >> Modified: head/include/rpc/nettype.h >> ============================================================================== >> --- head/include/rpc/nettype.h Sun Sep 2 18:54:51 2012 (r240059) >> +++ head/include/rpc/nettype.h Sun Sep 2 21:04:40 2012 (r240060) >> @@ -44,6 +44,10 @@ >> >> #include <netconfig.h> >> >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> + >> #define _RPC_NONE 0 >> #define _RPC_NETPATH 1 >> #define _RPC_VISIBLE 2 >> @@ -61,4 +65,8 @@ extern struct netconfig *__rpc_getconf(v >> extern struct netconfig *__rpc_getconfip(const char *); >> __END_DECLS >> >> +#ifdef __cplusplus >> +} >> +#endif >> + >> #endif /* !_RPC_NETTYPE_H */ >> >> Modified: head/include/rpc/pmap_clnt.h >> ============================================================================== >> --- head/include/rpc/pmap_clnt.h Sun Sep 2 18:54:51 2012 (r240059) >> +++ head/include/rpc/pmap_clnt.h Sun Sep 2 21:04:40 2012 (r240060) >> @@ -66,6 +66,10 @@ >> #define _RPC_PMAP_CLNT_H_ >> #include <sys/cdefs.h> >> >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> + >> __BEGIN_DECLS >> extern bool_t pmap_set(u_long, u_long, int, int); >> extern bool_t pmap_unset(u_long, u_long); >> @@ -83,4 +87,8 @@ extern u_short pmap_getport(struct sock >> u_long, u_long, u_int); >> __END_DECLS >> >> +#ifdef __cplusplus >> +} >> +#endif >> + >> #endif /* !_RPC_PMAP_CLNT_H_ */ >> >> Modified: head/include/rpc/pmap_rmt.h >> ============================================================================== >> --- head/include/rpc/pmap_rmt.h Sun Sep 2 18:54:51 2012 (r240059) >> +++ head/include/rpc/pmap_rmt.h Sun Sep 2 21:04:40 2012 (r240060) >> @@ -44,6 +44,10 @@ >> #define _RPC_PMAP_RMT_H >> #include <sys/cdefs.h> >> >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> + >> struct rmtcallargs { >> u_long prog, vers, proc, arglen; >> caddr_t args_ptr; >> @@ -62,4 +66,8 @@ extern bool_t xdr_rmtcall_args(XDR *, st >> extern bool_t xdr_rmtcallres(XDR *, struct rmtcallres *); >> __END_DECLS >> >> +#ifdef __cplusplus >> +} >> +#endif >> + >> #endif /* !_RPC_PMAP_RMT_H */ >> >> Modified: head/include/rpc/rpc_com.h >> ============================================================================== >> --- head/include/rpc/rpc_com.h Sun Sep 2 18:54:51 2012 (r240059) >> +++ head/include/rpc/rpc_com.h Sun Sep 2 21:04:40 2012 (r240060) >> @@ -42,9 +42,13 @@ >> #ifndef _RPC_RPCCOM_H >> #define _RPC_RPCCOM_H >> >> +/* #pragma ident "@(#)rpc_com.h 1.11 93/07/05 SMI" */ >> + >> #include <sys/cdefs.h> >> >> -/* #pragma ident "@(#)rpc_com.h 1.11 93/07/05 SMI" */ >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> >> /* >> * The max size of the transport, if the size cannot be determined >> @@ -80,4 +84,8 @@ char *_get_next_token(char *, int); >> >> __END_DECLS >> >> +#ifdef __cplusplus >> +} >> +#endif >> + >> #endif /* _RPC_RPCCOM_H */ >> >> Modified: head/include/rpc/rpc_msg.h >> ============================================================================== >> --- head/include/rpc/rpc_msg.h Sun Sep 2 18:54:51 2012 (r240059) >> +++ head/include/rpc/rpc_msg.h Sun Sep 2 21:04:40 2012 (r240060) >> @@ -43,6 +43,10 @@ >> #ifndef _RPC_RPC_MSG_H >> #define _RPC_RPC_MSG_H >> >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> + >> #define RPC_MSG_VERSION ((u_int32_t) 2) >> #define RPC_SERVICE_PORT ((u_short) 2048) >> >> @@ -211,4 +215,8 @@ extern bool_t xdr_rejected_reply(XDR *, >> extern void _seterr_reply(struct rpc_msg *, struct rpc_err *); >> __END_DECLS >> >> +#ifdef __cplusplus >> +} >> +#endif >> + >> #endif /* !_RPC_RPC_MSG_H */ >> >> Modified: head/include/rpc/rpcb_clnt.h >> ============================================================================== >> --- head/include/rpc/rpcb_clnt.h Sun Sep 2 18:54:51 2012 (r240059) >> +++ head/include/rpc/rpcb_clnt.h Sun Sep 2 21:04:40 2012 (r240060) >> @@ -61,6 +61,10 @@ >> #include <rpc/types.h> >> #include <rpc/rpcb_prot.h> >> >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> + >> __BEGIN_DECLS >> extern bool_t rpcb_set(const rpcprog_t, const rpcvers_t, >> const struct netconfig *, const struct netbuf *); >> @@ -82,4 +86,8 @@ extern char *rpcb_taddr2uaddr(struct net >> extern struct netbuf *rpcb_uaddr2taddr(struct netconfig *, char *); >> __END_DECLS >> >> +#ifdef __cplusplus >> +} >> +#endif >> + >> #endif /* !_RPC_RPCB_CLNT_H */ >> >> Modified: head/include/rpc/rpcent.h >> ============================================================================== >> --- head/include/rpc/rpcent.h Sun Sep 2 18:54:51 2012 (r240059) >> +++ head/include/rpc/rpcent.h Sun Sep 2 21:04:40 2012 (r240060) >> @@ -45,6 +45,9 @@ >> /* #pragma ident "@(#)rpcent.h 1.13 94/04/25 SMI" */ >> /* @(#)rpcent.h 1.1 88/12/06 SMI */ >> >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> >> struct rpcent { >> char *r_name; /* name of server for this rpc program */ >> @@ -64,4 +67,8 @@ extern void setrpcent(int); >> extern void endrpcent(void); >> __END_DECLS >> >> +#ifdef __cplusplus >> +} >> +#endif >> + >> #endif /* !_RPC_CENT_H */ >> >> Modified: head/include/rpc/rpcsec_gss.h >> ============================================================================== >> --- head/include/rpc/rpcsec_gss.h Sun Sep 2 18:54:51 2012 (r240059) >> +++ head/include/rpc/rpcsec_gss.h Sun Sep 2 21:04:40 2012 (r240060) >> @@ -29,6 +29,10 @@ >> #ifndef _RPCSEC_GSS_H >> #define _RPCSEC_GSS_H >> >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> + >> #include <gssapi/gssapi.h> >> >> #ifndef MAX_GSS_MECH >> @@ -176,4 +180,8 @@ bool_t __rpc_gss_set_error(int rpc_gss_e >> >> __END_DECLS >> >> +#ifdef __cplusplus >> +} >> +#endif >> + >> #endif /* !_RPCSEC_GSS_H */ >> >> Modified: head/include/rpc/svc.h >> ============================================================================== >> --- head/include/rpc/svc.h Sun Sep 2 18:54:51 2012 (r240059) >> +++ head/include/rpc/svc.h Sun Sep 2 21:04:40 2012 (r240060) >> @@ -65,6 +65,10 @@ >> * parameters, struct svc_req * and SVCXPRT *, defined below. >> */ >> >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> + >> /* >> * Service control requests >> */ >> @@ -467,6 +471,9 @@ int __rpc_get_local_uid(SVCXPRT *_transp >> >> __END_DECLS >> >> +#ifdef __cplusplus >> +} >> +#endif >> >> /* for backward compatibility */ >> #include <rpc/svc_soc.h> >> >> Modified: head/include/rpc/svc_soc.h >> ============================================================================== >> --- head/include/rpc/svc_soc.h Sun Sep 2 18:54:51 2012 (r240059) >> +++ head/include/rpc/svc_soc.h Sun Sep 2 21:04:40 2012 (r240060) >> @@ -49,6 +49,10 @@ >> * with TS-RPC >> */ >> >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> + >> /* >> * Approved way of getting address of caller >> */ >> @@ -113,4 +117,8 @@ __BEGIN_DECLS >> extern SVCXPRT *svcfd_create(int, u_int, u_int); >> __END_DECLS >> >> +#ifdef __cplusplus >> +} >> +#endif >> + >> #endif /* !_RPC_SVC_SOC_H */ >> >> Modified: head/include/rpc/xdr.h >> ============================================================================== >> --- head/include/rpc/xdr.h Sun Sep 2 18:54:51 2012 (r240059) >> +++ head/include/rpc/xdr.h Sun Sep 2 21:04:40 2012 (r240060) >> @@ -43,6 +43,10 @@ >> #define _RPC_XDR_H >> #include <sys/cdefs.h> >> >> +#ifdef __cplusplus >> +extern "C" { >> +#endif >> + >> /* >> * XDR provides a conventional way for converting between C data >> * types and an external bit-string representation. Library supplied >> @@ -97,26 +101,26 @@ enum xdr_op { >> * an operations vector for the particular implementation (e.g. see >>xdr_mem.c), >> * and two private fields for the use of the particular implementation. >> */ >> -typedef struct __rpc_xdr { >> +typedef struct XDR { >> enum xdr_op x_op; /* operation; fast additional param */ >> const struct xdr_ops { >> /* get a long from underlying stream */ >> - bool_t (*x_getlong)(struct __rpc_xdr *, long *); >> + bool_t (*x_getlong)(struct XDR *, long *); >> /* put a long to " */ >> - bool_t (*x_putlong)(struct __rpc_xdr *, const long *); >> + bool_t (*x_putlong)(struct XDR *, const long *); >> /* get some bytes from " */ >> - bool_t (*x_getbytes)(struct __rpc_xdr *, char *, u_int); >> + bool_t (*x_getbytes)(struct XDR *, char *, u_int); >> /* put some bytes to " */ >> - bool_t (*x_putbytes)(struct __rpc_xdr *, const char *, u_int); >> + bool_t (*x_putbytes)(struct XDR *, const char *, u_int); >> /* returns bytes off from beginning */ >> - u_int (*x_getpostn)(struct __rpc_xdr *); >> + u_int (*x_getpostn)(struct XDR *); >> /* lets you reposition the stream */ >> - bool_t (*x_setpostn)(struct __rpc_xdr *, u_int); >> + bool_t (*x_setpostn)(struct XDR *, u_int); >> /* buf quick ptr to buffered data */ >> - int32_t *(*x_inline)(struct __rpc_xdr *, u_int); >> + int32_t *(*x_inline)(struct XDR *, u_int); >> /* free privates of this xdr_stream */ >> - void (*x_destroy)(struct __rpc_xdr *); >> - bool_t (*x_control)(struct __rpc_xdr *, int, void *); >> + void (*x_destroy)(struct XDR *); >> + bool_t (*x_control)(struct XDR *, int, void *); >> } *x_ops; >> char * x_public; /* users' data */ >> void * x_private; /* pointer to private data */ >> @@ -366,4 +370,8 @@ extern bool_t xdrrec_eof(XDR *); >> extern u_int xdrrec_readbytes(XDR *, caddr_t, u_int); >> __END_DECLS >> >> +#ifdef __cplusplus >> +} >> +#endif >> + >> #endif /* !_RPC_XDR_H */ >> >> Modified: head/sys/rpc/rpc_com.h >> ============================================================================== >> --- head/sys/rpc/rpc_com.h Sun Sep 2 18:54:51 2012 (r240059) >> +++ head/sys/rpc/rpc_com.h Sun Sep 2 21:04:40 2012 (r240060) >> @@ -114,8 +114,8 @@ extern int __rpc_sockisbound(struct sock >> extern int bindresvport(struct socket *so, struct sockaddr *sa); >> >> struct xucred; >> -struct __rpc_xdr; >> -bool_t xdr_authunix_parms(struct __rpc_xdr *xdrs, uint32_t *time, struct >> xucred *cred); >> +struct XDR; >> +bool_t xdr_authunix_parms(struct XDR *xdrs, uint32_t *time, struct xucred >> *cred); >> #endif >> >> __END_DECLS >> >> Modified: head/sys/rpc/xdr.h >> ============================================================================== >> --- head/sys/rpc/xdr.h Sun Sep 2 18:54:51 2012 (r240059) >> +++ head/sys/rpc/xdr.h Sun Sep 2 21:04:40 2012 (r240060) >> @@ -97,26 +97,26 @@ enum xdr_op { >> * an operations vector for the particular implementation (e.g. see >>xdr_mem.c), >> * and two private fields for the use of the particular implementation. >> */ >> -typedef struct __rpc_xdr { >> +typedef struct XDR { >> enum xdr_op x_op; /* operation; fast additional param */ >> const struct xdr_ops { >> /* get a long from underlying stream */ >> - bool_t (*x_getlong)(struct __rpc_xdr *, long *); >> + bool_t (*x_getlong)(struct XDR *, long *); >> /* put a long to " */ >> - bool_t (*x_putlong)(struct __rpc_xdr *, const long *); >> + bool_t (*x_putlong)(struct XDR *, const long *); >> /* get some bytes from " */ >> - bool_t (*x_getbytes)(struct __rpc_xdr *, char *, u_int); >> + bool_t (*x_getbytes)(struct XDR *, char *, u_int); >> /* put some bytes to " */ >> - bool_t (*x_putbytes)(struct __rpc_xdr *, const char *, u_int); >> + bool_t (*x_putbytes)(struct XDR *, const char *, u_int); >> /* returns bytes off from beginning */ >> - u_int (*x_getpostn)(struct __rpc_xdr *); >> + u_int (*x_getpostn)(struct XDR *); >> /* lets you reposition the stream */ >> - bool_t (*x_setpostn)(struct __rpc_xdr *, u_int); >> + bool_t (*x_setpostn)(struct XDR *, u_int); >> /* buf quick ptr to buffered data */ >> - int32_t *(*x_inline)(struct __rpc_xdr *, u_int); >> + int32_t *(*x_inline)(struct XDR *, u_int); >> /* free privates of this xdr_stream */ >> - void (*x_destroy)(struct __rpc_xdr *); >> - bool_t (*x_control)(struct __rpc_xdr *, int, void *); >> + void (*x_destroy)(struct XDR *); >> + bool_t (*x_control)(struct XDR *, int, void *); >> } *x_ops; >> char * x_public; /* users' data */ >> void * x_private; /* pointer to private data */ > >Don't __BEGIN_DECLS and __END_DECLS do exactly that? i.e. it looks like >some of the #ifdef's you added are redundant. > > > _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"