NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: toolchain/41435 (build.sh tools from netbsd-4 fails on cygwin-1.7.0)



> Synopsis: build.sh tools from netbsd-4 fails on cygwin-1.7.0
 :
> Needs more workaround for struct winsize in getarg.c and get_window_size.c.

Here is a revised patch:

- prepare src/tools/asn1_compile/roken.h based on
  src/crypto/dist/heimdal/lib/roken/roken.h.in
  and use it to build src/tools/asn1_compile and src/tools/compile_et
  (it has #includes for roken-common.h and decls for get_windows_size.c)
- add checks for system headers used in the new
  src/tools/asn1_compile/roken.h into src/tools/compat/configure.ac
- add a check for HAVE_STRUCT_WINSIZE to src/tools/compat/configure.ac
  taken from src/crypto/dist/heimdal/cf/krb-struct-winsize.m4

Tested on NetBSD/i386 5.99.22 and Cygwin 1.7.1.

Note this patch doesn't include generated files so regenerate
src/tools/compat/configure and src/tools/compat/nbtool_config.h.in
per description in src/tools/compat/configure.ac after applying patch.


Index: tools/asn1_compile/Makefile
===================================================================
RCS file: /cvsroot/src/tools/asn1_compile/Makefile,v
retrieving revision 1.4
diff -u -r1.4 Makefile
--- tools/asn1_compile/Makefile 8 Dec 2002 20:19:57 -0000       1.4
+++ tools/asn1_compile/Makefile 21 Jan 2010 16:35:47 -0000
@@ -2,5 +2,6 @@
 
 HOSTPROGNAME=  ${_TOOL_PREFIX}asn1_compile
 HOST_SRCDIR=   lib/libasn1/asn1_compile
+HOST_CPPFLAGS+=        -I${.CURDIR}
 
 .include "${.CURDIR}/../Makefile.host"
Index: tools/compat/configure.ac
===================================================================
RCS file: /cvsroot/src/tools/compat/configure.ac,v
retrieving revision 1.71
diff -u -r1.71 configure.ac
--- tools/compat/configure.ac   15 Jan 2010 11:26:25 -0000      1.71
+++ tools/compat/configure.ac   21 Jan 2010 16:35:48 -0000
@@ -81,8 +81,7 @@
 AC_CHECK_HEADERS(sys/mtio.h sys/sysmacros.h sys/syslimits.h \
        getopt.h features.h malloc.h sys/poll.h stddef.h)
 AC_CHECK_HEADERS(sys/bswap.h machine/bswap.h sys/cdefs.h machine/endian.h 
sys/endian.h \
-       sys/featuretest.h err.h inttypes.h libgen.h paths.h stdint.h util.h \
-       resolv.h arpa/nameser.h,,
+       sys/featuretest.h err.h inttypes.h libgen.h paths.h stdint.h util.h,,
        [test -f include/$ac_header || touch include/$ac_header])
 AC_CHECK_HEADERS(rpc/types.h netconfig.h,,
        [echo '#include "nbtool_config.h"' >include/$ac_header.new
@@ -225,4 +224,25 @@
     )
 ])
 
+# Check headers required by heimdal/lib/roken for asn1_compile and compile_et
+AC_CHECK_HEADERS(resolv.h syslog.h arpa/nameser.h \
+       bind/bitypes.h sys/bitypes.h netinet/in6_machtypes.h \
+       netinet/in.h netinet/in6.h netinet6/in6.h sys/uio.h)
+
+# Check struct winsize required by asn1_compile and compile_et in heimdal
+AC_MSG_CHECKING(for struct winsize)
+AC_CACHE_VAL(ac_cv_struct_winsize, [
+ac_cv_struct_winsize=no
+for i in sys/ioctl.h termios.h; do
+AC_EGREP_HEADER(
+struct[[       ]]*winsize,dnl
+$i, ac_cv_struct_winsize=yes; break)dnl
+done
+])
+if test "$ac_cv_struct_winsize" = "yes"; then
+       AC_DEFINE(HAVE_STRUCT_WINSIZE, 1,
+       [Define if struct winsize is declared in <sys/ioctl.h> or <termios.h>])
+fi
+AC_MSG_RESULT($ac_cv_struct_winsize)
+
 AC_OUTPUT
Index: tools/compile_et/Makefile
===================================================================
RCS file: /cvsroot/src/tools/compile_et/Makefile,v
retrieving revision 1.5
diff -u -r1.5 Makefile
--- tools/compile_et/Makefile   16 Nov 2003 14:14:18 -0000      1.5
+++ tools/compile_et/Makefile   21 Jan 2010 16:35:48 -0000
@@ -3,7 +3,7 @@
 HOSTPROGNAME=  ${_TOOL_PREFIX}compile_et
 HOST_SRCDIR=   usr.bin/compile_et
 HOST_SRCS=     getarg.c print_version.c warnerr.c strupr.c get_window_size.c
-HOST_CPPFLAGS= -I${DIST}/heimdal/lib/roken
+HOST_CPPFLAGS= -I${.CURDIR}/../asn1_compile -I${DIST}/heimdal/lib/roken
 
 # uncommon library functions
 .PATH: ${.CURDIR}/../../lib/libc/string
--- /dev/null   2010-01-22 01:27:36.000000000 +0900
+++ tools/asn1_compile/roken.h  2010-01-21 04:44:35.000000000 +0900
@@ -0,0 +1,156 @@
+#ifndef __ROKEN_H__
+#define __ROKEN_H__
+
+/* -*- C -*- */
+/*
+ * Copyright (c) 1995-2005 Kungliga Tekniska H skolan
+ * (Royal Institute of Technology, Stockholm, Sweden).
+ * All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 
+ * 3. Neither the name of the Institute nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/* $Heimdal: roken.h.in 18612 2006-10-19 16:35:16Z lha $
+   $NetBSD: roken.h.in,v 1.5 2008/03/22 08:37:21 mlelstv Exp $ */
+
+#include "nbtool_config.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#ifdef HAVE_STDINT_H
+#include <stdint.h>
+#endif
+#include <string.h>
+#include <signal.h>
+
+#ifdef _AIX
+struct ether_addr;
+struct sockaddr_dl;
+#endif
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+#include <inttypes.h>
+#endif
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_BITYPES_H
+#include <sys/bitypes.h>
+#endif
+#ifdef HAVE_BIND_BITYPES_H
+#include <bind/bitypes.h>
+#endif
+#ifdef HAVE_NETINET_IN6_MACHTYPES_H
+#include <netinet/in6_machtypes.h>
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_SYS_UIO_H
+#include <sys/uio.h>
+#endif
+#ifdef HAVE_GRP_H
+#include <grp.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_IN6_H
+#include <netinet/in6.h>
+#endif
+#ifdef HAVE_NETINET6_IN6_H
+#include <netinet6/in6.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif
+#ifdef HAVE_ARPA_NAMESER_H
+#include <arpa/nameser.h>
+#endif
+#ifdef HAVE_RESOLV_H
+#include <resolv.h>
+#endif
+#ifdef HAVE_SYSLOG_H
+#include <syslog.h>
+#endif
+#ifdef HAVE_FCNTL_H
+#include <fcntl.h>
+#endif
+#ifdef HAVE_ERRNO_H
+#include <errno.h>
+#endif
+#include <err.h>
+#ifdef HAVE_TERMIOS_H
+#include <termios.h>
+#endif
+#if defined(HAVE_SYS_IOCTL_H) && SunOS != 40
+#include <sys/ioctl.h>
+#endif
+#ifdef TIME_WITH_SYS_TIME
+#include <sys/time.h>
+#include <time.h>
+#elif defined(HAVE_SYS_TIME_H)
+#include <sys/time.h>
+#else
+#include <time.h>
+#endif
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#ifdef HAVE_PATHS_H
+#include <paths.h>
+#endif
+
+#include <roken-common.h>
+
+#ifndef HAVE_STRUCT_WINSIZE
+struct winsize {
+       unsigned short ws_row, ws_col;
+       unsigned short ws_xpixel, ws_ypixel;
+};
+#endif
+
+int ROKEN_LIB_FUNCTION get_window_size(int fd, struct winsize *);
+
+ROKEN_CPP_END
+#define ROKEN_VERSION 1.1
+
+#endif /* __ROKEN_H__ */

---
Izumi Tsutsui


Home | Main Index | Thread Index | Old Index