#42358 closed defect (fixed)
am-utils fails to compile on Mavericks
Reported by: | greeneg (Gary Greene) | Owned by: | macports-tickets@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.2.1 |
Keywords: | Cc: | neverpanic (Clemens Lang) | |
Port: | am-utils |
Description
When building am-utils, I get the following error:
:info:build /usr/bin/clang -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I/opt/local/include -pipe -Os -arch x86_64 -D_P1003_1B_VISIBLE -D_P1003_1B_VISIBLE -pipe -Os -arch x86_64 -D_P1003_1B_VISIBLE -c nfs_prot_xdr.c -o nfs_prot_xdr.o :info:build misc_rpc.c:160:33: error: too few arguments to function call, expected 3, have 2 :info:build if (!(*arg_xdr) (&msg_xdr, arg)) :info:build ~~~~~~~~~~ ^ :info:build 1 error generated. :info:build make[3]: *** [misc_rpc.lo] Error 1 :info:build make[3]: *** Waiting for unfinished jobs.... :info:build make[3]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_sysutils_am-utils/am-utils/work/am-utils-6.1.5/libamu' :info:build make[2]: *** [all] Error 2 :info:build make[2]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_sysutils_am-utils/am-utils/work/am-utils-6.1.5/libamu' :info:build make[1]: *** [all-recursive] Error 1 :info:build make[1]: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_sysutils_am-utils/am-utils/work/am-utils-6.1.5' :info:build make: *** [all] Error 2 :info:build make: Leaving directory `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_sysutils_am-utils/am-utils/work/am-utils-6.1.5'
I'm not positive, but it appears that the RPC headers in Mavericks are incomplete, since I see this further up in the configure stage:
:info:configure checking rpc/xdr.h usability... no :info:configure checking rpc/xdr.h presence... yes :info:configure configure: WARNING: rpc/xdr.h: present but cannot be compiled :info:configure configure: WARNING: rpc/xdr.h: check for missing prerequisite headers? :info:configure configure: WARNING: rpc/xdr.h: see the Autoconf documentation :info:configure configure: WARNING: rpc/xdr.h: section "Present But Cannot Be Compiled" :info:configure configure: WARNING: rpc/xdr.h: proceeding with the preprocessor's result :info:configure configure: WARNING: rpc/xdr.h: in the future, the compiler will take precedence :info:configure configure: WARNING: ## ---------------------------------------------------------------------- ## :info:configure configure: WARNING: ## Report this to https://bugzilla.am-utils.org/ or am-utils@am-utils.org ## :info:configure configure: WARNING: ## ---------------------------------------------------------------------- ## :info:configure checking for rpc/xdr.h... yes
Any assistance on getting this to build would be appreciated. Thanks.
Attachments (2)
Change History (11)
comment:1 Changed 11 years ago by neverpanic (Clemens Lang)
Port: | am-utils added |
---|
comment:3 Changed 11 years ago by neverpanic (Clemens Lang)
Thats main.log
, not config.log
. Unfortunately main.log
doesn't tell us why the check failed, just that it did.
Changed 11 years ago by greeneg (Gary Greene)
Attachment: | config.log added |
---|
comment:4 Changed 11 years ago by greeneg (Gary Greene)
Added. I mis-read your earlier request. Please look it over and let me know. Thanks.
comment:5 Changed 11 years ago by neverpanic (Clemens Lang)
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
.
comment:6 Changed 11 years ago by neverpanic (Clemens Lang)
Actually, that's not the issue here – the check for the header fails, but as configure prints, it's ignoring the check done with the compiler and using the result of the check done with the preprocessor. The real problem is the build error. Let me see if I can reproduce that.
comment:7 Changed 11 years ago by neverpanic (Clemens Lang)
/usr/include/rpc/xdr.h
, lines 155-190 explain the problem. I'll try to patch the call to xdrproc_t
with the third parameter; that should fix the build.
comment:8 Changed 11 years ago by neverpanic (Clemens Lang)
Cc: | cal@… added |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Fixed in r116699. Unfortunately I have no way of knowing whether the software will work as expected, though.
comment:9 Changed 11 years ago by greeneg (Gary Greene)
Thanks. I'll do some canary testing against it later this week to see if things work as expected.
When reporting bugs against ports, please set the port field and Cc the maintainer, if any (in this case, there is none).
Please attach
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_sysutils_am-utils/am-utils/work/am-utils-6.1.5/config.log
– it might provide more insight into why the headers could not be compiled.