summaryrefslogtreecommitdiff
path: root/sysutils/xentools3-hvm
diff options
context:
space:
mode:
authorbouyer <bouyer@pkgsrc.org>2007-12-02 18:55:30 +0000
committerbouyer <bouyer@pkgsrc.org>2007-12-02 18:55:30 +0000
commit8be3ad1a3e4884fa20e7e11d3f4ebc4a894a1c7c (patch)
treec35a54e87a64b23f49fc0a50f07d733bdc4e3b1a /sysutils/xentools3-hvm
parentf516cb504f36c4ce137965f1754065af5fc524ae (diff)
downloadpkgsrc-8be3ad1a3e4884fa20e7e11d3f4ebc4a894a1c7c.tar.gz
Make it build on amd64: the amd64 headers don't deal very well with gcc -m32,
so add custom version of the i386 headers required by this package to build. While here install the qemu-ifup script in examples. Bump PKGREVISION.
Diffstat (limited to 'sysutils/xentools3-hvm')
-rw-r--r--sysutils/xentools3-hvm/Makefile34
-rw-r--r--sysutils/xentools3-hvm/PLIST3
-rw-r--r--sysutils/xentools3-hvm/files/elf_machdep.h41
-rw-r--r--sysutils/xentools3-hvm/files/int_types.h73
4 files changed, 144 insertions, 7 deletions
diff --git a/sysutils/xentools3-hvm/Makefile b/sysutils/xentools3-hvm/Makefile
index 0fdecb6adc0..88db870722f 100644
--- a/sysutils/xentools3-hvm/Makefile
+++ b/sysutils/xentools3-hvm/Makefile
@@ -1,7 +1,8 @@
-# $NetBSD: Makefile,v 1.1.1.1 2007/06/14 19:42:12 bouyer Exp $
+# $NetBSD: Makefile,v 1.2 2007/12/02 18:55:30 bouyer Exp $
#
VERSION= 3.1.0
+PKGREVISION= 1
DISTNAME= xen-${VERSION}-src
PKGNAME= xentools3-hvm-${VERSION}
CATEGORIES= sysutils
@@ -17,7 +18,8 @@ BUILD_DEPENDS+= dev86-[0-9]*:../../devel/dev86 # needed to build firmware
PKG_SYSCONFSUBDIR= xen
-ONLY_FOR_PLATFORM= Linux-2.[46]*-i386 NetBSD-*-i386
+ONLY_FOR_PLATFORM= Linux-2.[46]*-i386 Linux-2.[46]*-x86_64
+ONLY_FOR_PLATFORM+= NetBSD-*-i386 NetBSD-*-x86_64
CONFLICTS= xentools30-*
@@ -31,7 +33,13 @@ USE_TOOLS+= perl
USE_TOOLS+= gmake
MAKE_ENV+= EGDIR=${EGDIR:Q}
MAKE_ENV+= MV=${MV:Q} PYTHON=${PYTHONBIN:Q} SED=${SED:Q}
-MAKE_ENV+= XEN_TARGET_ARCH="x86_32"
+.if ${MACHINE_ARCH} == "i386"
+MAKE_ENV+= XEN_TARGET_ARCH="x86_32" XEN_COMPILE_ARCH="x86_32"
+.elif ${MACHINE_ARCH} == "x86_64"
+MAKE_ENV+= XEN_TARGET_ARCH="x86_64" XEN_COMPILE_ARCH="x86_64"
+.else
+MAKE_ENV+= XEN_TARGET_ARCH="unsupported"
+.endif
PYTHON_VERSIONS_ACCEPTED= 24 23
SUBST_CLASSES+= paths
@@ -65,11 +73,25 @@ PROCPATH= /kern
PROCPATH= /proc
.endif
+CONF_FILES_PERMS+= ${EGDIR}/qemu-ifup ${PKG_SYSCONFDIR}/scripts/qemu-ifup \
+ ${ROOT_USER} ${ROOT_GROUP} 0755
+
+OWN_DIRS= ${PKG_SYSCONFDIR}/scripts
+
pre-build:
${MKDIR} ${WRKSRC}/libxc/xen/NetBSD
- ${TEST} -f ${WRKSRC}/libxc/xen/NetBSD/xenio.h || ${CP} ${FILESDIR}/xenio.h ${WRKSRC}/libxc/xen/NetBSD
- ${TEST} -f ${WRKSRC}/libxc/xen/NetBSD/xenio3.h || ${CP} ${FILESDIR}/xenio3.h ${WRKSRC}/libxc/xen/NetBSD
+ ${TEST} -f ${WRKSRC}/libxc/xen/NetBSD/xenio.h || \
+ ${CP} ${FILESDIR}/xenio.h ${WRKSRC}/libxc/xen/NetBSD
+ ${TEST} -f ${WRKSRC}/libxc/xen/NetBSD/xenio3.h || \
+ ${CP} ${FILESDIR}/xenio3.h ${WRKSRC}/libxc/xen/NetBSD
${CP} ${FILESDIR}/NetBSD.mk ${WRKSRC}/../config/
+.if ${MACHINE_ARCH} == "x86_64"
+ ${MKDIR} ${WRKSRC}/libxc/machine
+ ${TEST} -f ${WRKSRC}/libxc/machine/int_types.h || \
+ ${CP} ${FILESDIR}/int_types.h ${WRKSRC}/libxc/machine
+ ${TEST} -f ${WRKSRC}/libxc/machine/elf_machdep.h || \
+ ${CP} ${FILESDIR}/elf_machdep.h ${WRKSRC}/libxc/machine
+.endif
.if ${OPSYS} == "NetBSD"
post-build:
@@ -82,7 +104,7 @@ post-build:
.endif
post-install:
- for f in hvm; do \
+ for f in hvm qemu-ifup; do \
${INSTALL_DATA} ${WRKSRC}/examples/$$f ${EGDIR}/$$f; \
done
diff --git a/sysutils/xentools3-hvm/PLIST b/sysutils/xentools3-hvm/PLIST
index 011e5e13e61..c52809359f7 100644
--- a/sysutils/xentools3-hvm/PLIST
+++ b/sysutils/xentools3-hvm/PLIST
@@ -1,7 +1,8 @@
-@comment $NetBSD: PLIST,v 1.1.1.1 2007/06/14 19:42:12 bouyer Exp $
+@comment $NetBSD: PLIST,v 1.2 2007/12/02 18:55:31 bouyer Exp $
lib/xen/boot/hvmloader
libexec/qemu-dm
share/examples/xen/hvm
+share/examples/xen/qemu-ifup
share/xen/qemu/keymaps/ar
share/xen/qemu/keymaps/common
share/xen/qemu/keymaps/da
diff --git a/sysutils/xentools3-hvm/files/elf_machdep.h b/sysutils/xentools3-hvm/files/elf_machdep.h
new file mode 100644
index 00000000000..34fdf61921d
--- /dev/null
+++ b/sysutils/xentools3-hvm/files/elf_machdep.h
@@ -0,0 +1,41 @@
+/* $NetBSD: elf_machdep.h,v 1.1 2007/12/02 18:55:31 bouyer Exp $ */
+
+#ifndef __i386__
+#include <amd64/elf_machdep.h>
+#else /* !__i386__ */
+/* i386 ELF definitions for gcc -m32 */
+
+#define ELF32_MACHDEP_ENDIANNESS ELFDATA2LSB
+#define ELF32_MACHDEP_ID_CASES \
+ case EM_386: \
+ case EM_486: \
+ break;
+
+#define ELF64_MACHDEP_ENDIANNESS XXX /* break compilation */
+#define ELF64_MACHDEP_ID_CASES \
+ /* no 64-bit ELF machine types supported */
+
+#define ELF32_MACHDEP_ID EM_386
+
+#define ARCH_ELFSIZE 32 /* MD native binary size */
+
+/* i386 relocations */
+#define R_386_NONE 0
+#define R_386_32 1
+#define R_386_PC32 2
+#define R_386_GOT32 3
+#define R_386_PLT32 4
+#define R_386_COPY 5
+#define R_386_GLOB_DAT 6
+#define R_386_JMP_SLOT 7
+#define R_386_RELATIVE 8
+#define R_386_GOTOFF 9
+#define R_386_GOTPC 10
+/* The following relocations are GNU extensions. */
+#define R_386_16 20
+#define R_386_PC16 21
+#define R_386_8 22
+#define R_386_PC8 23
+
+#define R_TYPE(name) __CONCAT(R_386_,name)
+#endif /* !__i386__ */
diff --git a/sysutils/xentools3-hvm/files/int_types.h b/sysutils/xentools3-hvm/files/int_types.h
new file mode 100644
index 00000000000..1cb43124ae7
--- /dev/null
+++ b/sysutils/xentools3-hvm/files/int_types.h
@@ -0,0 +1,73 @@
+/* $NetBSD: int_types.h,v 1.1 2007/12/02 18:55:31 bouyer Exp $ */
+
+/*-
+ * Copyright (c) 1990 The Regents of the University of California.
+ * 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 University 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 REGENTS 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 REGENTS 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.
+ *
+ * from: @(#)types.h 7.5 (Berkeley) 3/9/91
+ */
+
+#ifndef __i386__
+#include <amd64/int_types.h>
+#else /* !__i386__ */
+/* i386 types definitions for gcc -m32 */
+#ifndef _I386_INT_TYPES_H_
+#define _I386_INT_TYPES_H_
+
+#include <sys/cdefs.h>
+
+/*
+ * 7.18.1 Integer types
+ */
+
+/* 7.18.1.1 Exact-width integer types */
+
+typedef signed char __int8_t;
+typedef unsigned char __uint8_t;
+typedef short int __int16_t;
+typedef unsigned short int __uint16_t;
+typedef int __int32_t;
+typedef unsigned int __uint32_t;
+#ifdef __COMPILER_INT64__
+typedef __COMPILER_INT64__ __int64_t;
+typedef __COMPILER_UINT64__ __uint64_t;
+#else
+/* LONGLONG */
+typedef long long int __int64_t;
+/* LONGLONG */
+typedef unsigned long long int __uint64_t;
+#endif
+
+#define __BIT_TYPES_DEFINED__
+
+/* 7.18.1.4 Integer types capable of holding object pointers */
+
+typedef int __intptr_t;
+typedef unsigned int __uintptr_t;
+
+#endif /* !_I386_INT_TYPES_H_ */
+#endif /* !__i386__ */