Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 11 Nov 2018 15:30:29 +0000 (UTC)
From:      Roman Bogorodskiy <novel@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r484695 - in head/emulators/qemu: . files
Message-ID:  <201811111530.wABFUT5W040900@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: novel
Date: Sun Nov 11 15:30:28 2018
New Revision: 484695
URL: https://svnweb.freebsd.org/changeset/ports/484695

Log:
  emulators/qemu: fix build on 12 and -CURRENT
  
  Build fails with:
  
  hw/rdma/vmw/pvrdma_cmd.c:19:10: fatal error: 'linux/types.h' file not found
  
  Add two upstream commits to fix this issue:
  
   * 72221d03b85fcfba27a47a2af08ee59150550ced to not include linux/types.h
   * 21ab34c9543fe1b6d31b3edbd01a397e7e090d00 to split PVRDMA from RDMA as
     pvrdma device can't be used on FreeBSD as mremap() system call is
     missing
  
  PR:		232968
  Reported by:	Trond.Endrestol@ximalas.info
  Approved by:	portmgr (build fix blanket)
  Obtained from:	upstream
  MFH:		2018Q4

Added:
  head/emulators/qemu/files/patch-rdma-pvrdma-split   (contents, props changed)
Modified:
  head/emulators/qemu/Makefile

Modified: head/emulators/qemu/Makefile
==============================================================================
--- head/emulators/qemu/Makefile	Sun Nov 11 13:39:51 2018	(r484694)
+++ head/emulators/qemu/Makefile	Sun Nov 11 15:30:28 2018	(r484695)
@@ -3,6 +3,7 @@
 
 PORTNAME=	qemu
 PORTVERSION=	2.12.1
+PORTREVISION=	1
 CATEGORIES=	emulators
 MASTER_SITES=	https://download.qemu.org/
 DIST_SUBDIR=	qemu/${PORTVERSION}

Added: head/emulators/qemu/files/patch-rdma-pvrdma-split
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/emulators/qemu/files/patch-rdma-pvrdma-split	Sun Nov 11 15:30:28 2018	(r484695)
@@ -0,0 +1,123 @@
+diff --git configure configure
+index 457684a7e6..3da60d8436 100755
+--- configure
++++ configure
+@@ -353,6 +353,7 @@ hax="no"
+ hvf="no"
+ whpx="no"
+ rdma=""
++pvrdma=""
+ gprof="no"
+ debug_tcg="no"
+ debug="no"
+@@ -1308,6 +1309,10 @@ for opt do
+   ;;
+   --disable-rdma) rdma="no"
+   ;;
++  --enable-pvrdma) pvrdma="yes"
++  ;;
++  --disable-pvrdma) pvrdma="no"
++  ;;
+   --with-gtkabi=*) gtkabi="$optarg"
+   ;;
+   --disable-vte) vte="no"
+@@ -1593,7 +1598,8 @@ disabled with --disable-FEATURE, default is enabled if available:
+   hax             HAX acceleration support
+   hvf             Hypervisor.framework acceleration support
+   whpx            Windows Hypervisor Platform acceleration support
+-  rdma            Enable RDMA-based migration and PVRDMA support
++  rdma            Enable RDMA-based migration
++  pvrdma          Enable PVRDMA support
+   vde             support for vde network
+   netmap          support for netmap network
+   linux-aio       Linux AIO support
+@@ -2971,6 +2977,48 @@ EOF
+   fi
+ fi
+ 
++##########################################
++# PVRDMA detection
++
++cat > $TMPC <<EOF &&
++#include <sys/mman.h>
++
++int
++main(void)
++{
++    char buf = 0;
++    void *addr = &buf;
++    addr = mremap(addr, 0, 1, MREMAP_MAYMOVE | MREMAP_FIXED);
++
++    return 0;
++}
++EOF
++
++if test "$rdma" = "yes" ; then
++    case "$pvrdma" in
++    "")
++        if compile_prog "" ""; then
++            pvrdma="yes"
++        else
++            pvrdma="no"
++        fi
++        ;;
++    "yes")
++        if ! compile_prog "" ""; then
++            error_exit "PVRDMA is not supported since mremap is not implemented"
++        fi
++        pvrdma="yes"
++        ;;
++    "no")
++        pvrdma="no"
++        ;;
++    esac
++else
++    if test "$pvrdma" = "yes" ; then
++        error_exit "PVRDMA requires rdma suppport"
++    fi
++    pvrdma="no"
++fi
+ 
+ ##########################################
+ # VNC SASL detection
+@@ -5820,6 +5868,7 @@ if test "$tcg" = "yes" ; then
+ fi
+ echo "malloc trim support $malloc_trim"
+ echo "RDMA support      $rdma"
++echo "PVRDMA support    $pvrdma"
+ echo "fdt support       $fdt"
+ echo "membarrier        $membarrier"
+ echo "preadv support    $preadv"
+@@ -6568,6 +6617,10 @@ if test "$rdma" = "yes" ; then
+   echo "RDMA_LIBS=$rdma_libs" >> $config_host_mak
+ fi
+ 
++if test "$pvrdma" = "yes" ; then
++  echo "CONFIG_PVRDMA=y" >> $config_host_mak
++fi
++
+ if test "$have_rtnetlink" = "yes" ; then
+   echo "CONFIG_RTNETLINK=y" >> $config_host_mak
+ fi
+diff --git hw/rdma/Makefile.objs hw/rdma/Makefile.objs
+index 3504c39d21..bd36cbf51c 100644
+--- hw/rdma/Makefile.objs
++++ hw/rdma/Makefile.objs
+@@ -1,4 +1,4 @@
+-ifeq ($(CONFIG_RDMA),y)
++ifeq ($(CONFIG_PVRDMA),y)
+ obj-$(CONFIG_PCI) += rdma_utils.o rdma_backend.o rdma_rm.o
+ obj-$(CONFIG_PCI) += vmw/pvrdma_dev_ring.o vmw/pvrdma_cmd.o \
+                      vmw/pvrdma_qp_ops.o vmw/pvrdma_main.o
+diff --git hw/rdma/vmw/pvrdma_cmd.c hw/rdma/vmw/pvrdma_cmd.c
+index 99019d8741..bd14b4bc47 100644
+--- hw/rdma/vmw/pvrdma_cmd.c
++++ hw/rdma/vmw/pvrdma_cmd.c
+@@ -16,7 +16,6 @@
+ #include "qemu/osdep.h"
+ #include "qemu/error-report.h"
+ #include "cpu.h"
+-#include <linux/types.h>
+ #include "hw/hw.h"
+ #include "hw/pci/pci.h"
+ #include "hw/pci/pci_ids.h"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201811111530.wABFUT5W040900>