[...] cc -O2 -pipe -O3 -march=native -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DSUPDRV_WITH_RELEASE_LOGGER -DVBOX -DRT_WITH_VBOX -w -DVBOX_WITH_HARDENING -DVBOX_WITH_64_BITS_GUESTS -DRT_ARCH_AMD64 -O3 -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -Iinclude -I. -Ir0drv -I. -I@ -I@/contrib/altq -fno-common -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -mno-aes -mno-avx -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -std=iso9899:1999 -Qunused-arguments -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -Wno-error-tautological-compare -Wno-error-empty-body -Wno-error-parentheses-equality -c /usr/obj/usr/src/sys/THOR/usr/ports/emulators/virtualbox-ose-kmod/work/VirtualBox-4.2.18/out/freebsd.amd64/ release/bin/src/vboxdrv/r0drv/freebsd/alloc-r0drv-freebsd.c /usr/obj/usr/src/sys/THOR/usr/ports/emulators/virtualbox-ose-kmod/work/VirtualBox-4.2.18/out/freebsd.amd64/release/bin/src/vboxdrv/r0drv/freebsd/alloc-r0drv-freebsd.c:83:76: error: too few arguments to function call, expected 10, have 9 cbAllocated, TRUE, VM_PROT_ALL, VM_PROT_ALL, 0); ^ @/vm/vm_map.h:368:1: note: 'vm_map_find' declared here int vm_map_find(vm_map_t, vm_object_t, vm_ooffset_t, vm_offset_t *, vm_size_t, ^ 1 error generated. *** Error code 1
Responsible Changed From-To: freebsd-ports-bugs->vbox Over to maintainer (via the GNATS Auto Assign Tool)
FreeBSD scorpion.kiev.ua 10.0-CURRENT FreeBSD 10.0-CURRENT #0: Fri Aug 23 00:05:21 EEST 2013 root@scorpion.kiev.ua:/usr/obj/usr/src/sys/Kernel amd64 FreeBSD clang version 3.3 (tags/RELEASE_33/final 183502) 20130610 /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.18/out/freebsd.amd64/release/lib/RuntimeBldProg.a(utf8-posix.o): In function `rtStrIconvCacheDestroy': /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.18/src/VBox/Runtime/r3/posix/utf8-posix.cpp:115: undefined reference to `libiconv_close' kmk: *** [/usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.18/out/freebsd.amd64/release/obj/scm/scm] Error 1 The failing command: @g++ -m64 -o /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.18/out/freebsd.amd64/release/obj/scm/scm /usr/ports/emulators/virtualbox-os/usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.18/out/freebsd.amd64/release/lib/RuntimeBldProg.a(utf8-posix.o): In function `rtStrIconvCacheDestroy': /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.18/src/VBox/Runtime/r3/posix/utf8-posix.cpp:115: undefined reference to `libiconv_close' kmk: *** [/usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.18/out/freebsd.amd64/release/obj/scm/scm] Error 1 The failing command: @g++ -m64 -o /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.18/out/freebsd.amd64/release/obj/scm/scm /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.18/out/freebsd.amd64/release/obj/scm/scm.o /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.18/out/freebsd.amd64/release/obj/scm/scmdiff.o /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.18/out/freebsd.amd64/release/obj/scm/scmrw.o /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.18/out/freebsd.amd64/release/obj/scm/scmstream.o /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.18/out/freebsd.amd64/release/obj/scm/scmsubversion.o -L/usr/local/lib -lpthread -lrt /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.18/out/freebsd.amd64/release/lib/RuntimeBldProg.a /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.18/out/freebsd.amd64/release/lib/VBox-kStuffStaticBldProg.a /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.18/out/freebsd.amd64/release/lib/RuntimeBldProg.a -lpthread -lssl -lcrypto *** Error code 2 Stop. make: stopped in /usr/ports/emulators/virtualbox-ose *** Error code 1 Stop. make: stopped in /usr/ports/emulators/virtualbox-ose ===>>> make failed for emulators/virtualbox-ose ===>>> Aborting update ===>>> Update for virtualbox-ose-4.2.16_2 failed ===>>> Aborting update e/work/VirtualBox-4.2.18/out/freebsd.amd64/release/obj/scm/scm.o /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.18/out/freebsd.amd64/release/obj/scm/scmdiff.o /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.18/out/freebsd.amd64/release/obj/scm/scmrw.o /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.18/out/freebsd.amd64/release/obj/scm/scmstream.o /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.18/out/freebsd.amd64/release/obj/scm/scmsubversion.o -L/usr/local/lib -lpthread -lrt /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.18/out/freebsd.amd64/release/lib/RuntimeBldProg.a /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.18/out/freebsd.amd64/release/lib/VBox-kStuffStaticBldProg.a /usr/ports/emulators/virtualbox-ose/work/VirtualBox-4.2.18/out/freebsd.amd64/release/lib/RuntimeBldProg.a -lpthread -lssl -lcrypto *** Error code 2 Stop. make: stopped in /usr/ports/emulators/virtualbox-ose *** Error code 1 Stop. make: stopped in /usr/ports/emulators/virtualbox-ose ===>>> make failed for emulators/virtualbox-ose ===>>> Aborting update ===>>> Update for virtualbox-ose-4.2.16_2 failed ===>>> Aborting update
Attached patches fix the build for me on recent amd64 10-CURRENT. I'm still seeing a bus error when I try import and OVA, but that's a separate problem. Cheers, Lawrence
Sorry but that SED magic will not be committed to the port. We need a proper patch that we can send upstream to fix it properly. It might make sense for nvidia because it's more or less a blob but the virtualbox developers try that their stock sources compile and work fine without any additional magic that is hidden in our port. So please create a diff with the reinplace_cmd magic and put proper __FreeBSD__version checks around. --=20 Bernhard Fr=F6hlich http://www.bluelife.at/
Author: decke Date: Sat Sep 21 18:41:53 2013 New Revision: 327838 URL: http://svnweb.freebsd.org/changeset/ports/327838 Log: - Fix calls of vm_map_find() after r255426 broke it and added a mmap flag. PR: ports/181971, ports/182121 Submitted by: Lawrence Stewart <lstewart@FreeBSD.org>, Dan McGregor <dan.mcgregor@usask.ca> Added: head/emulators/virtualbox-ose-additions/files/patch-src-VBox-Runtime-r0drv-freebsd-alloc-r0drv-freebsd.c (contents, props changed) head/emulators/virtualbox-ose-additions/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd_VM_MAP_FIND.c (contents, props changed) head/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Runtime-r0drv-freebsd-alloc-r0drv-freebsd.c (contents, props changed) head/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd_VM_MAP_FIND.c (contents, props changed) head/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-alloc-r0drv-freebsd.c (contents, props changed) head/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd_VM_MAP_FIND.c (contents, props changed) Added: head/emulators/virtualbox-ose-additions/files/patch-src-VBox-Runtime-r0drv-freebsd-alloc-r0drv-freebsd.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/emulators/virtualbox-ose-additions/files/patch-src-VBox-Runtime-r0drv-freebsd-alloc-r0drv-freebsd.c Sat Sep 21 18:41:53 2013 (r327838) @@ -0,0 +1,16 @@ +--- src/VBox/Runtime/r0drv/freebsd/alloc-r0drv-freebsd.c 2013-09-06 06:30:30.000000000 -0600 ++++ src/VBox/Runtime/r0drv/freebsd/alloc-r0drv-freebsd.c 2013-09-18 12:01:45.000000000 -0600 +@@ -79,8 +79,13 @@ + return VERR_NO_EXEC_MEMORY; + + /* Addr contains a start address vm_map_find will start searching for suitable space at. */ ++#if __FreeBSD_version >= 1000055 ++ int rc = vm_map_find(kernel_map, pVmObject, 0, &Addr, ++ cbAllocated, 0, VMFS_ANY_SPACE, VM_PROT_ALL, VM_PROT_ALL, 0); ++#else + int rc = vm_map_find(kernel_map, pVmObject, 0, &Addr, + cbAllocated, TRUE, VM_PROT_ALL, VM_PROT_ALL, 0); ++#endif + if (rc == KERN_SUCCESS) + { + rc = vm_map_wire(kernel_map, Addr, Addr + cbAllocated, Added: head/emulators/virtualbox-ose-additions/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd_VM_MAP_FIND.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/emulators/virtualbox-ose-additions/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd_VM_MAP_FIND.c Sat Sep 21 18:41:53 2013 (r327838) @@ -0,0 +1,48 @@ +--- src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c.orig 2013-09-06 12:30:30.000000000 +0000 ++++ src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c 2013-09-21 18:12:53.000000000 +0000 +@@ -286,9 +286,15 @@ + pMemFreeBSD->pObject = vm_object_allocate(OBJT_PHYS, cPages); + + /* No additional object reference for auto-deallocation upon unmapping. */ ++#if __FreeBSD_version >= 1000055 ++ rc = vm_map_find(kernel_map, pMemFreeBSD->pObject, 0, ++ &MapAddress, pMemFreeBSD->Core.cb, 0, VMFS_ANY_SPACE, ++ fExecutable ? VM_PROT_ALL : VM_PROT_RW, VM_PROT_ALL, 0); ++#else + rc = vm_map_find(kernel_map, pMemFreeBSD->pObject, 0, + &MapAddress, pMemFreeBSD->Core.cb, VMFS_ANY_SPACE, + fExecutable ? VM_PROT_ALL : VM_PROT_RW, VM_PROT_ALL, 0); ++#endif + + if (rc == KERN_SUCCESS) + { +@@ -551,6 +557,9 @@ + 0, /* offset */ + &MapAddress, /* addr (IN/OUT) */ + cb, /* length */ ++#if __FreeBSD_version >= 1000055 ++ 0, /* max addr */ ++#endif + pvFixed == (void *)-1 ? VMFS_ANY_SPACE : VMFS_NO_SPACE, + /* find_space */ + VM_PROT_NONE, /* protection */ +@@ -628,6 +637,9 @@ + offSub, /* Start offset in the object */ + &Addr, /* Start address IN/OUT */ + cbSub, /* Size of the mapping */ ++#if __FreeBSD_version >= 1000055 ++ 0, /* Upper bound of mapping */ ++#endif + VMFS_ANY_SPACE, /* Whether a suitable address should be searched for first */ + ProtectionFlags, /* protection flags */ + VM_PROT_ALL, /* Maximum protection flags */ +@@ -704,6 +716,9 @@ + 0, /* Start offset in the object */ + &AddrR3, /* Start address IN/OUT */ + pMemToMap->cb, /* Size of the mapping */ ++#if __FreeBSD_version >= 1000055 ++ 0, /* Upper bound of the mapping */ ++#endif + R3PtrFixed == (RTR3PTR)-1 ? VMFS_ANY_SPACE : VMFS_NO_SPACE, + /* Whether a suitable address should be searched for first */ + ProtectionFlags, /* protection flags */ Added: head/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Runtime-r0drv-freebsd-alloc-r0drv-freebsd.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Runtime-r0drv-freebsd-alloc-r0drv-freebsd.c Sat Sep 21 18:41:53 2013 (r327838) @@ -0,0 +1,16 @@ +--- src/VBox/Runtime/r0drv/freebsd/alloc-r0drv-freebsd.c 2013-09-06 06:30:30.000000000 -0600 ++++ src/VBox/Runtime/r0drv/freebsd/alloc-r0drv-freebsd.c 2013-09-18 12:01:45.000000000 -0600 +@@ -79,8 +79,13 @@ + return VERR_NO_EXEC_MEMORY; + + /* Addr contains a start address vm_map_find will start searching for suitable space at. */ ++#if __FreeBSD_version >= 1000055 ++ int rc = vm_map_find(kernel_map, pVmObject, 0, &Addr, ++ cbAllocated, 0, VMFS_ANY_SPACE, VM_PROT_ALL, VM_PROT_ALL, 0); ++#else + int rc = vm_map_find(kernel_map, pVmObject, 0, &Addr, + cbAllocated, TRUE, VM_PROT_ALL, VM_PROT_ALL, 0); ++#endif + if (rc == KERN_SUCCESS) + { + rc = vm_map_wire(kernel_map, Addr, Addr + cbAllocated, Added: head/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd_VM_MAP_FIND.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/emulators/virtualbox-ose-kmod/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd_VM_MAP_FIND.c Sat Sep 21 18:41:53 2013 (r327838) @@ -0,0 +1,48 @@ +--- src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c.orig 2013-09-06 12:30:30.000000000 +0000 ++++ src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c 2013-09-21 18:12:53.000000000 +0000 +@@ -286,9 +286,15 @@ + pMemFreeBSD->pObject = vm_object_allocate(OBJT_PHYS, cPages); + + /* No additional object reference for auto-deallocation upon unmapping. */ ++#if __FreeBSD_version >= 1000055 ++ rc = vm_map_find(kernel_map, pMemFreeBSD->pObject, 0, ++ &MapAddress, pMemFreeBSD->Core.cb, 0, VMFS_ANY_SPACE, ++ fExecutable ? VM_PROT_ALL : VM_PROT_RW, VM_PROT_ALL, 0); ++#else + rc = vm_map_find(kernel_map, pMemFreeBSD->pObject, 0, + &MapAddress, pMemFreeBSD->Core.cb, VMFS_ANY_SPACE, + fExecutable ? VM_PROT_ALL : VM_PROT_RW, VM_PROT_ALL, 0); ++#endif + + if (rc == KERN_SUCCESS) + { +@@ -551,6 +557,9 @@ + 0, /* offset */ + &MapAddress, /* addr (IN/OUT) */ + cb, /* length */ ++#if __FreeBSD_version >= 1000055 ++ 0, /* max addr */ ++#endif + pvFixed == (void *)-1 ? VMFS_ANY_SPACE : VMFS_NO_SPACE, + /* find_space */ + VM_PROT_NONE, /* protection */ +@@ -628,6 +637,9 @@ + offSub, /* Start offset in the object */ + &Addr, /* Start address IN/OUT */ + cbSub, /* Size of the mapping */ ++#if __FreeBSD_version >= 1000055 ++ 0, /* Upper bound of mapping */ ++#endif + VMFS_ANY_SPACE, /* Whether a suitable address should be searched for first */ + ProtectionFlags, /* protection flags */ + VM_PROT_ALL, /* Maximum protection flags */ +@@ -704,6 +716,9 @@ + 0, /* Start offset in the object */ + &AddrR3, /* Start address IN/OUT */ + pMemToMap->cb, /* Size of the mapping */ ++#if __FreeBSD_version >= 1000055 ++ 0, /* Upper bound of the mapping */ ++#endif + R3PtrFixed == (RTR3PTR)-1 ? VMFS_ANY_SPACE : VMFS_NO_SPACE, + /* Whether a suitable address should be searched for first */ + ProtectionFlags, /* protection flags */ Added: head/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-alloc-r0drv-freebsd.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-alloc-r0drv-freebsd.c Sat Sep 21 18:41:53 2013 (r327838) @@ -0,0 +1,16 @@ +--- src/VBox/Runtime/r0drv/freebsd/alloc-r0drv-freebsd.c 2013-09-06 06:30:30.000000000 -0600 ++++ src/VBox/Runtime/r0drv/freebsd/alloc-r0drv-freebsd.c 2013-09-18 12:01:45.000000000 -0600 +@@ -79,8 +79,13 @@ + return VERR_NO_EXEC_MEMORY; + + /* Addr contains a start address vm_map_find will start searching for suitable space at. */ ++#if __FreeBSD_version >= 1000055 ++ int rc = vm_map_find(kernel_map, pVmObject, 0, &Addr, ++ cbAllocated, 0, VMFS_ANY_SPACE, VM_PROT_ALL, VM_PROT_ALL, 0); ++#else + int rc = vm_map_find(kernel_map, pVmObject, 0, &Addr, + cbAllocated, TRUE, VM_PROT_ALL, VM_PROT_ALL, 0); ++#endif + if (rc == KERN_SUCCESS) + { + rc = vm_map_wire(kernel_map, Addr, Addr + cbAllocated, Added: head/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd_VM_MAP_FIND.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/emulators/virtualbox-ose/files/patch-src-VBox-Runtime-r0drv-freebsd-memobj-r0drv-freebsd_VM_MAP_FIND.c Sat Sep 21 18:41:53 2013 (r327838) @@ -0,0 +1,48 @@ +--- src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c.orig 2013-09-06 12:30:30.000000000 +0000 ++++ src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c 2013-09-21 18:12:53.000000000 +0000 +@@ -286,9 +286,15 @@ + pMemFreeBSD->pObject = vm_object_allocate(OBJT_PHYS, cPages); + + /* No additional object reference for auto-deallocation upon unmapping. */ ++#if __FreeBSD_version >= 1000055 ++ rc = vm_map_find(kernel_map, pMemFreeBSD->pObject, 0, ++ &MapAddress, pMemFreeBSD->Core.cb, 0, VMFS_ANY_SPACE, ++ fExecutable ? VM_PROT_ALL : VM_PROT_RW, VM_PROT_ALL, 0); ++#else + rc = vm_map_find(kernel_map, pMemFreeBSD->pObject, 0, + &MapAddress, pMemFreeBSD->Core.cb, VMFS_ANY_SPACE, + fExecutable ? VM_PROT_ALL : VM_PROT_RW, VM_PROT_ALL, 0); ++#endif + + if (rc == KERN_SUCCESS) + { +@@ -551,6 +557,9 @@ + 0, /* offset */ + &MapAddress, /* addr (IN/OUT) */ + cb, /* length */ ++#if __FreeBSD_version >= 1000055 ++ 0, /* max addr */ ++#endif + pvFixed == (void *)-1 ? VMFS_ANY_SPACE : VMFS_NO_SPACE, + /* find_space */ + VM_PROT_NONE, /* protection */ +@@ -628,6 +637,9 @@ + offSub, /* Start offset in the object */ + &Addr, /* Start address IN/OUT */ + cbSub, /* Size of the mapping */ ++#if __FreeBSD_version >= 1000055 ++ 0, /* Upper bound of mapping */ ++#endif + VMFS_ANY_SPACE, /* Whether a suitable address should be searched for first */ + ProtectionFlags, /* protection flags */ + VM_PROT_ALL, /* Maximum protection flags */ +@@ -704,6 +716,9 @@ + 0, /* Start offset in the object */ + &AddrR3, /* Start address IN/OUT */ + pMemToMap->cb, /* Size of the mapping */ ++#if __FreeBSD_version >= 1000055 ++ 0, /* Upper bound of the mapping */ ++#endif + R3PtrFixed == (RTR3PTR)-1 ? VMFS_ANY_SPACE : VMFS_NO_SPACE, + /* Whether a suitable address should be searched for first */ + ProtectionFlags, /* protection flags */ _______________________________________________ svn-ports-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-ports-all To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
State Changed From-To: open->closed Committed. Thanks!