Date: Fri, 11 Dec 2015 20:33:51 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 205251] <rpc/clnt.h> and rpc_createerr macro Message-ID: <bug-205251-8@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=205251 Bug ID: 205251 Summary: <rpc/clnt.h> and rpc_createerr macro Product: Base System Version: 10.2-RELEASE Hardware: i386 OS: Any Status: New Severity: Affects Many People Priority: --- Component: kern Assignee: freebsd-bugs@FreeBSD.org Reporter: dramigan@gmail.com 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? -- You are receiving this mail because: You are the assignee for the bug.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-205251-8>