Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 11 Dec 2015 00:21:00 -0500
From:      "Michael B. Eichorn" <ike@michaeleichorn.com>
To:        "Heyman, Jerrold" <Jerrold.Heyman@emc.com>,  "freebsd-questions@freebsd.org" <freebsd-questions@freebsd.org>
Subject:   Re: <rpc/rpc.h> and rpc_createerr
Message-ID:  <1449811260.30424.50.camel@michaeleichorn.com>
In-Reply-To: <9CDA60925D09954CA4BAD0284E2DFC43024EDE@MX204CL01.corp.emc.com>
References:  <9CDA60925D09954CA4BAD0284E2DFC43024EDE@MX204CL01.corp.emc.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 2015-12-10 at 19:49 +0000, Heyman, Jerrold wrote:
> 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
> EMC Data Domain                        |    between hardware and
> reality
> Jerrold.Heyman@emc.com / 919.597.7812  |

The freebsd-questions hasn't been very good at answering these kind of
questions of late, you might have better luck on a more technical list
like freebsd-hackers.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1449811260.30424.50.camel>