[email protected]
[Top] [All Lists]

toolchain/43320: build.sh fails on Cygwin 1.7.2

Subject: toolchain/43320: build.sh fails on Cygwin 1.7.2
From:
Date: Tue, 18 May 2010 06:55:00 +0000 UTC
>Number:         43320
>Category:       toolchain
>Synopsis:       build.sh fails on Cygwin 1.7.2
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    toolchain-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue May 18 06:55:00 +0000 2010
>Originator:     Hiroyuki Bessho
>Release:        NetBSD-current as of 2010/May/5
>Organization:
        not so organized
>Environment:
System: CYGWIN_NT-6.0 1.7.2(0.225/5/3) i686
Architecture: i386
Machine: i386
>Description:
        Cross build on Cygwin newer than 2010/Mar/2 fails.
        "build.sh tools" stops with following  messages:

----------------------------------------------------------------
===> build.sh command: ./build.sh -mevbarm tools
===> build.sh started: Mon May 17 14:18:36     2010
===> NetBSD version:   5.99.29
===> MACHINE:          evbarm
===> MACHINE_ARCH:     arm
===> Build platform:   CYGWIN_NT-5.1 1.7.2(0.225/5/3) i686
===> HOST_SH:          /usr/bin/sh
/tmp/GmOYNVTk:3: *** missing separator.  Stop.
===> No $TOOLDIR/bin/nbmake, needs building.
===> Bootstrapping nbmake
checking for sh... /usr/bin/sh
checking for gcc... cc
checking for C compiler default output... a.exe

[[SNIP]]

#      link  mtree/mtree
cc -O -DNO_MD5 -DNO_RMD160 -DNO_SHA1 -DNO_SHA2 
-I/cygdrive/c/work/gt-current2/src/tools/compat/obj.evbarm 
-I/cygdrive/c/work/gt-current2/src/tools/compat/obj.evbarm/include  
-I/cygdrive/c/work/gt-current2/src/tools/mtree/../compat 
-DHAVE_NBTOOL_CONFIG_H=1  -D_FILE_OFFSET_BITS=64  -DMTREE 
-I/cygdrive/c/work/gt-current2/src/sbin/mknod   -o mtree compare.lo crc.lo 
create.lo excludes.lo misc.lo mtree.lo spec.lo verify.lo getid.lo pack_dev.lo 
-L/cygdrive/c/work/gt-current2/src/tools/compat/obj.evbarm -lnbcompat -lz
dependall ===> rpcgen
#    create  rpcgen/rpc_clntout.d
/cygdrive/c/work/gt-current2/src/obj.evbarm/tooldir.CYGWIN_NT-5.1-1.7.2-i686/bin/nbhost-mkdep
 -f rpc_clntout.d --     
-I/cygdrive/c/work/gt-current2/src/tools/compat/obj.evbarm 
-I/cygdrive/c/work/gt-current2/src/tools/compat/obj.evbarm/include  
-I/cygdrive/c/work/gt-current2/src/tools/rpcgen/../compat 
-DHAVE_NBTOOL_CONFIG_H=1  -D_FILE_OFFSET_BITS=64   
/cygdrive/c/work/gt-current2/src/tools/rpcgen/../../usr.bin/rpcgen/rpc_clntout.c
#    create  rpcgen/rpc_cout.d
/cygdrive/c/work/gt-current2/src/obj.evbarm/tooldir.CYGWIN_NT-5.1-1.7.2-i686/bin/nbhost-mkdep
 -f rpc_cout.d --     
-I/cygdrive/c/work/gt-current2/src/tools/compat/obj.evbarm 
-I/cygdrive/c/work/gt-current2/src/tools/compat/obj.evbarm/include  
-I/cygdrive/c/work/gt-current2/src/tools/rpcgen/../compat 
-DHAVE_NBTOOL_CONFIG_H=1  -D_FILE_OFFSET_BITS=64   
/cygdrive/c/work/gt-current2/src/tools/rpcgen/../../usr.bin/rpcgen/rpc_cout.c
#    create  rpcgen/rpc_hout.d
[[SNIP]]
#    create  rpcgen/rpc_util.d
/cygdrive/c/work/gt-current2/src/obj.evbarm/tooldir.CYGWIN_NT-5.1-1.7.2-i686/bin/nbhost-mkdep
 -f rpc_util.d --     
-I/cygdrive/c/work/gt-current2/src/tools/compat/obj.evbarm 
-I/cygdrive/c/work/gt-current2/src/tools/compat/obj.evbarm/include  
-I/cygdrive/c/work/gt-current2/src/tools/rpcgen/../compat 
-DHAVE_NBTOOL_CONFIG_H=1  -D_FILE_OFFSET_BITS=64   
/cygdrive/c/work/gt-current2/src/tools/rpcgen/../../usr.bin/rpcgen/rpc_util.c
#    create  rpcgen/.depend
rm -f .depend
/cygdrive/c/work/gt-current2/src/obj.evbarm/tooldir.CYGWIN_NT-5.1-1.7.2-i686/bin/nbhost-mkdep
 -d -f .depend -s .lo\ .ln rpc_clntout.d rpc_cout.d rpc_hout.d rpc_main.d 
rpc_parse.d rpc_sample.d rpc_scan.d rpc_svcout.d rpc_tblout.d rpc_util.d
#   compile  rpcgen/rpc_clntout.lo
cc -O -I/cygdrive/c/work/gt-current2/src/tools/compat/obj.evbarm 
-I/cygdrive/c/work/gt-current2/src/tools/compat/obj.evbarm/include  
-I/cygdrive/c/work/gt-current2/src/tools/rpcgen/../compat 
-DHAVE_NBTOOL_CONFIG_H=1  -D_FILE_OFFSET_BITS=64  -c -o rpc_clntout.lo.o    
/cygdrive/c/work/gt-current2/src/tools/rpcgen/../../usr.bin/rpcgen/rpc_clntout.c
In file included from 
/cygdrive/c/work/gt-current2/src/tools/rpcgen/../../usr.bin/rpcgen/rpc_clntout.c:51:
/usr/include/rpc/types.h:49: error: two or more data types in declaration 
specifiers
/usr/include/rpc/types.h:49: error: two or more data types in declaration 
specifiers
/usr/include/rpc/types.h:49: error: two or more data types in declaration 
specifiers
/usr/include/rpc/types.h:50: error: two or more data types in declaration 
specifiers
/usr/include/rpc/types.h:50: error: two or more data types in declaration 
specifiers

*** Failed target:  rpc_clntout.lo
*** Failed command: cc -O 
-I/cygdrive/c/work/gt-current2/src/tools/compat/obj.evbarm 
-I/cygdrive/c/work/gt-current2/src/tools/compat/obj.evbarm/include 
-I/cygdrive/c/work/gt-current2/src/tools/rpcgen/../compat 
-DHAVE_NBTOOL_CONFIG_H=1 -D_FILE_OFFSET_BITS=64 -c -o rpc_clntout.lo.o 
/cygdrive/c/work/gt-current2/src/tools/rpcgen/../../usr.bin/rpcgen/rpc_clntout.c
*** Error code 1

Stop.
nbmake: stopped in /cygdrive/c/work/gt-current2/src/tools/rpcgen

*** Failed target:  dependall
*** Failed command: cd "/cygdrive/c/work/gt-current2/src/tools/rpcgen"; 
/cygdrive/c/work/gt-current2/src/obj.evbarm/tooldir.CYGWIN_NT-5.1-1.7.2-i686/bin/nbmake
 realall
*** Error code 1

Stop.
nbmake: stopped in /cygdrive/c/work/gt-current2/src/tools/rpcgen

*** Failed target:  dependall-rpcgen
*** Failed command: _makedirtarget() { dir="$1"; shift; target="$1"; shift; 
case "${dir}" in /*) this="${dir}/"; real="${dir}" ;; .) this=""; 
real="/cygdrive/c/work/gt-current2/src/tools" ;; *) this="${dir}/"; 
real="/cygdrive/c/work/gt-current2/src/tools/${dir}" ;; esac; show=${this:-.}; 
echo "${target} ===> ${show%/}${1:+ (with: [email protected])}"; cd "${real}" && 
/cygdrive/c/work/gt-current2/src/obj.evbarm/tooldir.CYGWIN_NT-5.1-1.7.2-i686/bin/nbmake
 _THISDIR_="${this}" "[email protected]" ${target}; }; _makedirtarget rpcgen dependall
*** Error code 1

Stop.
nbmake: stopped in /cygdrive/c/work/gt-current2/src/tools

ERROR: Failed to make dependall in "tools"
----------------------------------------------------------------

  This happens because u_quad_t and quad_t are defined in
<rpc/types.h> instead of <sys/types.h> on Cygwin.  (Those
definitions were added on 2010/Mar/2.)

  tools/compat/configure can't find those definitions and
HAVE_U_QUAD_T is left undefined in mbtool_config.h to enable
definitions of quad_t and u_quad_t in compat_defs.h.  This results
in compile error when <rpc/types.h> is included as in
rpcgen/rpc_clntout.c.

>How-To-Repeat:
  run "build.sh tools" on Cygwin
>Fix:
  Here's a patch to workaround the problem.
I myself don't like this patch very much.  Wiser souls may find better solution.

diff -r 209f1ce1629b -r 675176593633 src/tools/compat/configure.ac
--- a/src/tools/compat/configure.ac     Thu May 06 23:05:46 2010 +0900
+++ b/src/tools/compat/configure.ac     Mon May 17 17:11:48 2010 +0900
@@ -95,12 +95,24 @@
 
 # Typedefs.
 AC_TYPE_SIZE_T
-AC_CHECK_TYPES([id_t, long long, u_long, u_char, u_short, u_int, u_quad_t])
+AC_CHECK_TYPES([id_t, long long, u_long, u_char, u_short, u_int])
 AC_CHECK_TYPE(socklen_t, [AC_DEFINE([HAVE_SOCKLEN_T], 1,
                          [Define if you have the socklen_t type.])],,
 [#include <sys/types.h>
 #include <sys/socket.h>])
 
+AC_CHECK_TYPE(u_quad_t,[AC_DEFINE([HAVE_U_QUAD_T], 1, 
+                                                  [Define if you have the type 
u_quad_t])],
+[unset ac_cv_type_u_quad_t
+AC_CHECK_TYPE(u_quad_t, [
+   AC_DEFINE([HAVE_U_QUAD_T_IN_RPC_TYPES_H], 1,
+    [Define if u_quad_t is defined in <rpc/types.h> instead of <sys/types.h> 
as in Cygwin])
+   ],, [[
+#ifdef HAVE_RPC_TYPES_H
+#include <rpc/types.h>
+#endif
+]])])
+
 dnl XXX - This is UGLY.  Need a better way to homogenize the bitsized types,
 dnl including use of compiler primitive types via AC_CHECK_SIZEOF.
 dnl
diff -r 209f1ce1629b -r 675176593633 src/usr.bin/rpcgen/rpc_clntout.c
--- a/src/usr.bin/rpcgen/rpc_clntout.c  Thu May 06 23:05:46 2010 +0900
+++ b/src/usr.bin/rpcgen/rpc_clntout.c  Mon May 17 17:11:48 2010 +0900
@@ -31,6 +31,11 @@
 
 #if HAVE_NBTOOL_CONFIG_H
 #include "nbtool_config.h"
+#if !defined(HAVE_U_QUAD_T) && defined(HAVE_U_QUAD_T_IN_RPC_TYPES_H)
+/* use definitions in <rpc/types.h> for Cygwin*/
+#undef u_quad_t
+#undef quad_t
+#endif
 #endif
 
 #include <sys/cdefs.h>
diff -r 209f1ce1629b -r 675176593633 src/usr.bin/rpcgen/rpc_parse.c
--- a/src/usr.bin/rpcgen/rpc_parse.c    Thu May 06 23:05:46 2010 +0900
+++ b/src/usr.bin/rpcgen/rpc_parse.c    Mon May 17 17:11:48 2010 +0900
@@ -31,6 +31,11 @@
 
 #if HAVE_NBTOOL_CONFIG_H
 #include "nbtool_config.h"
+#if !defined(HAVE_U_QUAD_T) && defined(HAVE_U_QUAD_T_IN_RPC_TYPES_H)
+/* use definitions in <rpc/types.h> for Cygwin */
+#undef u_quad_t
+#undef quad_t
+#endif
 #endif
 
 #include <sys/cdefs.h>


<Prev in Thread] Current Thread [Next in Thread>