Date: Fri, 11 Dec 2015 15:22:42 +0000 From: "Heyman, Jerrold" <Jerrold.Heyman@emc.com> To: "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org> Subject: <rpc/rpc.h> and rpc_createerr Message-ID: <9CDA60925D09954CA4BAD0284E2DFC43025552@MX204CL01.corp.emc.com> In-Reply-To: <1449811260.30424.50.camel@michaeleichorn.com> References: <9CDA60925D09954CA4BAD0284E2DFC43024EDE@MX204CL01.corp.emc.com> <1449811260.30424.50.camel@michaeleichorn.com>
index | next in thread | previous in thread | raw e-mail
Originally posted to freebsd-questions, which recommended I come here
I've just installed FreeBSD 10.2 in order to determine the portability
of my companies code. Built gcc4.6 out of the ports/lang area, but
see the same issue using /usr/bin/cc (clang 3.4.1).
in /usr/include/rpc/clnt.h the following snippet:
/*
* If a creation fails, the following allows the user to figure out why.
*/
struct rpc_createerr {
enum clnt_stat cf_stat;
struct rpc_err cf_error; /* userful when cf_stat == RPC_PMAPFAILURE */
};
__BEGIN_DECLS
extern struct rpc_createerr *__rpc_createeer(void);
__END_DECLS
#define rpc_createerr (*(__rpc_createeerr()))
Note that the #define becomes active once the file is included, and in
my source code I have multiple
struct rpc_createerr *ce;
declarations. Both cc and gcc cite this as an error, though for different reasons.
gcc complains that a '(' is found where a '{' is expected.
The cc error message is 'error: declaration of anyonymous struct must be a definition'.
My other ports - Linux, AIX, Solaris, Mac OSX, do not have the #define in /usr/include/rpc/clnt.h.
The HP-UX does, but it is encapsulated within a #ifdef _REENTRANT / #endif block.
Is this an actual error, or is there something on FreeBSD that I need
to do that is different than the other platforms?
Thanks in advance,
Jerry
Jerry Heyman |
Principal Software Engineer | Software is the difference between
EMC Data Domain | hardware and reality
Jerrold.Heyman@emc.com / 919.597.7812 |
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9CDA60925D09954CA4BAD0284E2DFC43025552>
