diff options
author | bouyer <bouyer@pkgsrc.org> | 2007-12-02 18:55:30 +0000 |
---|---|---|
committer | bouyer <bouyer@pkgsrc.org> | 2007-12-02 18:55:30 +0000 |
commit | 8be3ad1a3e4884fa20e7e11d3f4ebc4a894a1c7c (patch) | |
tree | c35a54e87a64b23f49fc0a50f07d733bdc4e3b1a /sysutils/xentools3-hvm | |
parent | f516cb504f36c4ce137965f1754065af5fc524ae (diff) | |
download | pkgsrc-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/Makefile | 34 | ||||
-rw-r--r-- | sysutils/xentools3-hvm/PLIST | 3 | ||||
-rw-r--r-- | sysutils/xentools3-hvm/files/elf_machdep.h | 41 | ||||
-rw-r--r-- | sysutils/xentools3-hvm/files/int_types.h | 73 |
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__ */ |