[MacPorts] #42358: am-utils fails to compile on Mavericks

MacPorts noreply at macports.org
Mon Feb 3 14:49:26 PST 2014


#42358: am-utils fails to compile on Mavericks
------------------------+--------------------------------
  Reporter:  greeneg@…  |      Owner:  macports-tickets@…
      Type:  defect     |     Status:  new
  Priority:  Normal     |  Milestone:
 Component:  ports      |    Version:  2.2.1
Resolution:             |   Keywords:
      Port:  am-utils   |
------------------------+--------------------------------

Comment (by cal@…):

 It seems `/usr/include/rpc/xdr.h` is missing a declaration of `bool_t`:

 {{{
 configure:25152: /usr/bin/clang -c -pipe -Os -arch x86_64
 -D_P1003_1B_VISIBLE -I/opt/local/include  conftest.c >&5
 In file included from conftest.c:168:
 /usr/include/rpc/xdr.h:126:3: error: type name requires a specifier or
 qualifier
                 bool_t  (*x_getlong)(struct __rpc_xdr *, int *);
                 ^
 /usr/include/rpc/xdr.h:126:10: error: function cannot return function type
 'int (struct __rpc_xdr *, int *)'
                 bool_t  (*x_getlong)(struct __rpc_xdr *, int *);
                         ^
 /usr/include/rpc/xdr.h:128:3: error: type name requires a specifier or
 qualifier
                 bool_t  (*x_putlong)(struct __rpc_xdr *, const int *);
                 ^
 /usr/include/rpc/xdr.h:128:10: error: function cannot return function type
 'int (struct __rpc_xdr *, const int *)'
                 bool_t  (*x_putlong)(struct __rpc_xdr *, const int *);
                         ^
 /usr/include/rpc/xdr.h:128:3: error: duplicate member 'bool_t'
                 bool_t  (*x_putlong)(struct __rpc_xdr *, const int *);
                 ^
 /usr/include/rpc/xdr.h:126:3: note: previous declaration is here
                 bool_t  (*x_getlong)(struct __rpc_xdr *, int *);
                 ^
 /usr/include/rpc/xdr.h:136:3: error: type name requires a specifier or
 qualifier
                 bool_t  (*x_getbytes)(struct __rpc_xdr *, char *, unsigned
 int);
                 ^
 /usr/include/rpc/xdr.h:136:10: error: function cannot return function type
 'int (struct __rpc_xdr *, char *, unsigned int)'
                 bool_t  (*x_getbytes)(struct __rpc_xdr *, char *, unsigned
 int);
                         ^
 /usr/include/rpc/xdr.h:136:3: error: duplicate member 'bool_t'
                 bool_t  (*x_getbytes)(struct __rpc_xdr *, char *, unsigned
 int);
                 ^
 /usr/include/rpc/xdr.h:126:3: note: previous declaration is here
                 bool_t  (*x_getlong)(struct __rpc_xdr *, int *);
                 ^
 /usr/include/rpc/xdr.h:138:3: error: type name requires a specifier or
 qualifier
                 bool_t  (*x_putbytes)(struct __rpc_xdr *, const char *,
 unsigned int);
                 ^
 /usr/include/rpc/xdr.h:138:10: error: function cannot return function type
 'int (struct __rpc_xdr *, const char *, unsigned int)'
                 bool_t  (*x_putbytes)(struct __rpc_xdr *, const char *,
 unsigned int);
                         ^
 /usr/include/rpc/xdr.h:138:3: error: duplicate member 'bool_t'
                 bool_t  (*x_putbytes)(struct __rpc_xdr *, const char *,
 unsigned int);
                 ^
 /usr/include/rpc/xdr.h:126:3: note: previous declaration is here
                 bool_t  (*x_getlong)(struct __rpc_xdr *, int *);
                 ^
 /usr/include/rpc/xdr.h:142:3: error: type name requires a specifier or
 qualifier
                 bool_t  (*x_setpostn)(struct __rpc_xdr *, unsigned int);
                 ^
 /usr/include/rpc/xdr.h:142:11: error: function cannot return function type
 'int (struct __rpc_xdr *, unsigned int)'
                 bool_t  (*x_setpostn)(struct __rpc_xdr *, unsigned int);
                         ^
 /usr/include/rpc/xdr.h:142:3: error: duplicate member 'bool_t'
                 bool_t  (*x_setpostn)(struct __rpc_xdr *, unsigned int);
                 ^
 /usr/include/rpc/xdr.h:126:3: note: previous declaration is here
                 bool_t  (*x_getlong)(struct __rpc_xdr *, int *);
                 ^
 /usr/include/rpc/xdr.h:147:3: error: type name requires a specifier or
 qualifier
                 bool_t  (*x_control)(struct __rpc_xdr *, int, void *);
                 ^
 /usr/include/rpc/xdr.h:147:10: error: function cannot return function type
 'int (struct __rpc_xdr *, int, void *)'
                 bool_t  (*x_control)(struct __rpc_xdr *, int, void *);
                         ^
 /usr/include/rpc/xdr.h:147:3: error: duplicate member 'bool_t'
                 bool_t  (*x_control)(struct __rpc_xdr *, int, void *);
                 ^
 /usr/include/rpc/xdr.h:126:3: note: previous declaration is here
                 bool_t  (*x_getlong)(struct __rpc_xdr *, int *);
                 ^
 /usr/include/rpc/xdr.h:191:16: error: function cannot return function type
 'int (XDR *, void *, unsigned int)'
 typedef bool_t (*xdrproc_t)(XDR *, void *, unsigned int);
                ^
 /usr/include/rpc/xdr.h:219:7: error: no member named 'x_getlong' in
 'struct xdr_ops'
         if (!xdr_getlong(xdrs, &l))
              ^~~~~~~~~~~~~~~~~~~~~
 /usr/include/rpc/xdr.h:205:19: note: expanded from macro 'xdr_getlong'
         (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
           ~~~~~~~~~~~~~  ^
 fatal error: too many errors emitted, stopping now [-ferror-limit=]
 20 errors generated.
 }}}

 It seems `rpc/xdr.h` should really be including `rpc/types.h`, but
 doesn't. I suppose we might be able to patch am-utils to always include
 this header before `rpc/xdr.h`.

-- 
Ticket URL: <https://trac.macports.org/ticket/42358#comment:5>
MacPorts <http://www.macports.org/>
Ports system for OS X


More information about the macports-tickets mailing list