pkgsrc-Changes-HG archive

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

[pkgsrc/trunk]: pkgsrc/sysutils/xentools3-hvm Make it build on amd64: the amd...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/06357ff1f573
branches:  trunk
changeset: 536134:06357ff1f573
user:      bouyer <bouyer%pkgsrc.org@localhost>
date:      Sun Dec 02 18:55:30 2007 +0000

description:
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:

 sysutils/xentools3-hvm/Makefile            |  34 +++++++++++--
 sysutils/xentools3-hvm/PLIST               |   3 +-
 sysutils/xentools3-hvm/files/elf_machdep.h |  41 ++++++++++++++++
 sysutils/xentools3-hvm/files/int_types.h   |  73 ++++++++++++++++++++++++++++++
 4 files changed, 144 insertions(+), 7 deletions(-)

diffs (210 lines):

diff -r b64a0b1259d7 -r 06357ff1f573 sysutils/xentools3-hvm/Makefile
--- a/sysutils/xentools3-hvm/Makefile   Sun Dec 02 14:48:19 2007 +0000
+++ b/sysutils/xentools3-hvm/Makefile   Sun Dec 02 18:55:30 2007 +0000
@@ -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 @@
 
 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+=            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=              /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 @@
 .endif
 
 post-install:
-       for f in hvm; do \
+       for f in hvm qemu-ifup; do \
                ${INSTALL_DATA} ${WRKSRC}/examples/$$f ${EGDIR}/$$f;    \
        done
 
diff -r b64a0b1259d7 -r 06357ff1f573 sysutils/xentools3-hvm/PLIST
--- a/sysutils/xentools3-hvm/PLIST      Sun Dec 02 14:48:19 2007 +0000
+++ b/sysutils/xentools3-hvm/PLIST      Sun Dec 02 18:55:30 2007 +0000
@@ -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 -r b64a0b1259d7 -r 06357ff1f573 sysutils/xentools3-hvm/files/elf_machdep.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sysutils/xentools3-hvm/files/elf_machdep.h        Sun Dec 02 18:55:30 2007 +0000
@@ -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 -r b64a0b1259d7 -r 06357ff1f573 sysutils/xentools3-hvm/files/int_types.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sysutils/xentools3-hvm/files/int_types.h  Sun Dec 02 18:55:30 2007 +0000
@@ -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__ */



Home | Main Index | Thread Index | Old Index