Skip site navigation (1)Skip section navigation (2)
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>