Bug 272991 - emulators/virtualbox-ose-additions: build failed on 14-current "error: no member named 'auto_ptr' in namespace 'std'"
Summary: emulators/virtualbox-ose-additions: build failed on 14-current "error: no mem...
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: amd64 Any
: --- Affects Some People
Assignee: Virtualbox Team (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-08-07 04:32 UTC by rachid
Modified: 2023-09-21 01:43 UTC (History)
9 users (show)

See Also:
bugzilla: maintainer-feedback? (vbox)


Attachments
Patch to fix build errors on 14-CURRENT (4.15 KB, patch)
2023-08-17 03:46 UTC, takahiro.kurosawa
grahamperrin: maintainer-approval? (vbox)
Details | Diff
VBoxManage showvminfo --machinereadable fbsd14 (2.56 KB, text/plain)
2023-08-17 13:36 UTC, groenveld
no flags Details
Patch to workaround panic on the INVARIANTS kernel (3.98 KB, patch)
2023-08-18 06:42 UTC, takahiro.kurosawa
grahamperrin: maintainer-approval? (vbox)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description rachid 2023-08-07 04:32:02 UTC
The build of virtualbox-ose-additions is failing on the following errors.

kBuild: Compiling VBoxDnDHostR3Lib - /usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/src/VBox/GuestHost/DragAndDrop/DnDUtils.cpp
kBuild: Compiling VBoxDnDHostR3Lib - /usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/src/VBox/HostServices/common/client.cpp
2 warnings generated.
kBuild: Compiling VBoxDnDHostR3Lib - /usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/src/VBox/HostServices/common/message.cpp
In file included from /usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/src/VBox/HostServices/common/client.cpp:25:
/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/include/VBox/HostServices/Service.h:201:22: error: no member named 'auto_ptr' in namespace 'std'
                std::auto_ptr<AbstractService> apService;
                ~~~~~^
/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/include/VBox/HostServices/Service.h:201:31: error: 'AbstractService' does not refer to a value
                std::auto_ptr<AbstractService> apService;
                              ^
/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/include/VBox/HostServices/Service.h:178:7: note: declared here
class AbstractService: public RTCNonCopyable
      ^
/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/include/VBox/HostServices/Service.h:201:48: error: use of undeclared identifier 'apService'
                std::auto_ptr<AbstractService> apService;
                                               ^
/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/include/VBox/HostServices/Service.h:205:21: error: use of undeclared identifier 'apService'
                    apService = std::auto_ptr<AbstractService>(new T(pTable->pHelpers));
                    ^
/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/include/VBox/HostServices/Service.h:205:38: error: no member named 'auto_ptr' in namespace 'std'
                    apService = std::auto_ptr<AbstractService>(new T(pTable->pHelpers));
                                ~~~~~^
/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/include/VBox/HostServices/Service.h:205:47: error: 'AbstractService' does not refer to a value
                    apService = std::auto_ptr<AbstractService>(new T(pTable->pHelpers));
                                              ^
/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/include/VBox/HostServices/Service.h:178:7: note: declared here
class AbstractService: public RTCNonCopyable
      ^
/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/include/VBox/HostServices/Service.h:234:26: error: use of undeclared identifier 'apService'
                    rc = apService->init(pTable);
                         ^
/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/include/VBox/HostServices/Service.h:238:45: error: use of undeclared identifier 'apService'
                        pTable->pvService = apService.release();
                                            ^
8 errors generated.
kmk: *** [/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/out/freebsd.amd64/release/obj/VBoxDnDHostR3Lib/src/VBox/HostServices/common/client.o] Error 1
The failing command:
@c++ -c -O2 -g -pipe -pedantic -Wshadow -Wall -Wextra -Wno-missing-field-initializers -Wno-unused -Wno-trigraphs -fdiagnostics-show-option -Wno-unused-parameter -Wno-language-extension-token  -Wno-gnu-folding-constant -Wno-gnu-anonymous-struct  -Wno-string-plus-int -Wno-nested-anon-types -Wno-variadic-macros -Wno-long-long -Wno-return-type-c-linkage -Wno-overloaded-virtual -Wno-array-bounds -Wno-ignored-qualifiers -Wno-variadic-macros -O2 -mtune=generic -fno-omit-frame-pointer -fno-strict-aliasing -fvisibility=hidden -DVBOX_HAVE_VISIBILITY_HIDDEN -DRT_USE_VISIBILITY_DEFAULT -fvisibility-inlines-hidden  -fPIC -m64 -I/usr/local/include -I/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/out/freebsd.amd64/release/obj/VBoxDnDHostR3Lib/dtrace -I/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/include -I/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/out/freebsd.amd64/release -DVBOX -DVBOX_OSE -DVBOX_WITH_64_BITS_GUESTS -DRT_OS_FREEBSD -D__FREEBSD__ -DRT_ARCH_AMD64 -D__AMD64__ -DVBOX_WITH_DEBUGGER -DVBOX_WITH_HARDENING -DRTPATH_APP_PRIVATE=\"/usr/local/lib/virtualbox\" -DRTPATH_APP_PRIVATE_ARCH=\"/usr/local/lib/virtualbox\" -DRTPATH_SHARED_LIBS=\"/usr/local/lib/virtualbox\" -DRTPATH_APP_DOCS=\"/usr/local/lib/virtualbox\" -DIN_RING3 -DGC_ARCH_BITS=64 -DPIC -DHC_ARCH_BITS=64 -Wp,-MD,/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/out/freebsd.amd64/release/obj/VBoxDnDHostR3Lib/src/VBox/HostServices/common/client.o.dep -Wp,-MT,/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/out/freebsd.amd64/release/obj/VBoxDnDHostR3Lib/src/VBox/HostServices/common/client.o -Wp,-MP -o /usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/out/freebsd.amd64/release/obj/VBoxDnDHostR3Lib/src/VBox/HostServices/common/client.o  /usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/src/VBox/HostServices/common/client.cpp
kmk: *** Waiting for unfinished jobs....
In file included from /usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/src/VBox/HostServices/common/message.cpp:18:
/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/include/VBox/HostServices/Service.h:201:22: error: no member named 'auto_ptr' in namespace 'std'
                std::auto_ptr<AbstractService> apService;
                ~~~~~^
/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/include/VBox/HostServices/Service.h:201:31: error: 'AbstractService' does not refer to a value
                std::auto_ptr<AbstractService> apService;
                              ^
/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/include/VBox/HostServices/Service.h:178:7: note: declared here
class AbstractService: public RTCNonCopyable
      ^
/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/include/VBox/HostServices/Service.h:201:48: error: use of undeclared identifier 'apService'
                std::auto_ptr<AbstractService> apService;
                                               ^
/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/include/VBox/HostServices/Service.h:205:21: error: use of undeclared identifier 'apService'
                    apService = std::auto_ptr<AbstractService>(new T(pTable->pHelpers));
                    ^
/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/include/VBox/HostServices/Service.h:205:38: error: no member named 'auto_ptr' in namespace 'std'
                    apService = std::auto_ptr<AbstractService>(new T(pTable->pHelpers));
                                ~~~~~^
/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/include/VBox/HostServices/Service.h:205:47: error: 'AbstractService' does not refer to a value
                    apService = std::auto_ptr<AbstractService>(new T(pTable->pHelpers));
                                              ^
/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/include/VBox/HostServices/Service.h:178:7: note: declared here
class AbstractService: public RTCNonCopyable
      ^
/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/include/VBox/HostServices/Service.h:234:26: error: use of undeclared identifier 'apService'
                    rc = apService->init(pTable);
                         ^
/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/include/VBox/HostServices/Service.h:238:45: error: use of undeclared identifier 'apService'
                        pTable->pvService = apService.release();
                                            ^
8 errors generated.
kmk: *** [/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/out/freebsd.amd64/release/obj/VBoxDnDHostR3Lib/src/VBox/HostServices/common/message.o] Error 1
The failing command:
@c++ -c -O2 -g -pipe -pedantic -Wshadow -Wall -Wextra -Wno-missing-field-initializers -Wno-unused -Wno-trigraphs -fdiagnostics-show-option -Wno-unused-parameter -Wno-language-extension-token  -Wno-gnu-folding-constant -Wno-gnu-anonymous-struct  -Wno-string-plus-int -Wno-nested-anon-types -Wno-variadic-macros -Wno-long-long -Wno-return-type-c-linkage -Wno-overloaded-virtual -Wno-array-bounds -Wno-ignored-qualifiers -Wno-variadic-macros -O2 -mtune=generic -fno-omit-frame-pointer -fno-strict-aliasing -fvisibility=hidden -DVBOX_HAVE_VISIBILITY_HIDDEN -DRT_USE_VISIBILITY_DEFAULT -fvisibility-inlines-hidden  -fPIC -m64 -I/usr/local/include -I/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/out/freebsd.amd64/release/obj/VBoxDnDHostR3Lib/dtrace -I/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/include -I/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/out/freebsd.amd64/release -DVBOX -DVBOX_OSE -DVBOX_WITH_64_BITS_GUESTS -DRT_OS_FREEBSD -D__FREEBSD__ -DRT_ARCH_AMD64 -D__AMD64__ -DVBOX_WITH_DEBUGGER -DVBOX_WITH_HARDENING -DRTPATH_APP_PRIVATE=\"/usr/local/lib/virtualbox\" -DRTPATH_APP_PRIVATE_ARCH=\"/usr/local/lib/virtualbox\" -DRTPATH_SHARED_LIBS=\"/usr/local/lib/virtualbox\" -DRTPATH_APP_DOCS=\"/usr/local/lib/virtualbox\" -DIN_RING3 -DGC_ARCH_BITS=64 -DPIC -DHC_ARCH_BITS=64 -Wp,-MD,/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/out/freebsd.amd64/release/obj/VBoxDnDHostR3Lib/src/VBox/HostServices/common/message.o.dep -Wp,-MT,/usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/out/freebsd.amd64/release/obj/VBoxDnDHostR3Lib/src/VBox/HostServices/common/message.o -Wp,-MP -o /usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/out/freebsd.amd64/release/obj/VBoxDnDHostR3Lib/src/VBox/HostServices/common/message.o  /usr/ports/emulators/virtualbox-ose-additions/work/VirtualBox-6.1.46/src/VBox/HostServices/common/message.cpp
kmk: *** Exiting with status 2
*** Error code 2

Stop.
make[1]: stopped in /usr/ports/emulators/virtualbox-ose-additions
*** Error code 1

Stop.
make: stopped in /usr/ports/emulators/virtualbox-ose-additions

see also https://www.mail-archive.com/freebsd-pkg-fallout@freebsd.org/msg2168502.html
Comment 1 groenveld 2023-08-15 17:46:11 UTC
(In reply to rachid from comment #0)
Compiling with devel/llvm14 gets me past the C++ but back to the VFS incompatibility in bug #271515
John
groenveld@acm.org
Comment 2 takahiro.kurosawa 2023-08-17 03:46:22 UTC
Created attachment 244159 [details]
Patch to fix build errors on 14-CURRENT

I've made a patch that fixes build errors on 14-CURRENT.
Comment 3 Corvin Köhne freebsd_committer freebsd_triage 2023-08-17 07:21:28 UTC
(In reply to takahiro.kurosawa from comment #2)

LGTM. Tested on 13.2 and CURRENT. Both compile. If someone from vbox@FreeBSD.org approves it, I'm going to merge it.
Comment 4 groenveld 2023-08-17 13:36:24 UTC
Created attachment 244169 [details]
VBoxManage showvminfo --machinereadable fbsd14

(In reply to takahiro.kurosawa from comment #2)

On host and guest:
$ uname -srvKU
FreeBSD 14.0-ALPHA1 FreeBSD 14.0-ALPHA1 amd64 1400094 #0 main-n264678-136fc495615f: Fri Aug 11 08:18:04 UTC 2023     root@releng1.nyi.freebsd.org:/usr/obj/usr/src/amd64.amd64/sys/GENERIC 1400094 1400094

I have attached VBoxManage showvminfo --machinereadable fbsd14.

Here's the crash in guest upon kldload vboxguest:

 KLD '/boot/modules/vboxguest.ko' is newer than the linker.hints file
vboxguest0 port 0xc140-0xc15f mem 0x88000000-0x883fffff,0x88420000-0x88423fff irq 20 at device 4.0 on pci0
panic: mutex Giant owned at /usr/src/sys/kern/kern_synch.c:501
cpuid = 0
time = 1692264146
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe005f9624b0
vpanic() at vpanic+0x132/frame 0xfffffe005f9625e0
panic() at panic+0x43/frame 0xfffffe005f962640
__mtx_assert() at __mtx_assert+0xc4/frame 0xfffffe005f962650
mi_switch() at mi_switch+0x6f/frame 0xfffffe005f962670
sleepq_switch() at sleepq_switch+0x104/frame 0xfffffe005f9626b0
rtR0SemEventMultiBsdWait() at rtR0SemEventMultiBsdWait+0x293/frame 0xfffffe005f962710
vgdrvHgcmAsyncWaitCallbackWorker() at vgdrvHgcmAsyncWaitCallbackWorker+0x110/frame 0xfffffe005f962750
VbglR0HGCMInternalConnect() at VbglR0HGCMInternalConnect+0x12d/frame 0xfffffe005f9627a0
vgdrvIoCtl_HGCMConnect() at vgdrvIoCtl_HGCMConnect+0x42/frame 0xfffffe005f9627e0
VGDrvCommonProcessOptionsFromHost() at VGDrvCommonProcessOptionsFromHost+0x1e8/frame 0xfffffe005f9628e0
vgdrvFreeBSDAttach() at vgdrvFreeBSDAttach+0x1dc/frame 0xfffffe005f962920
device_attach() at device_attach+0x3bc/frame 0xfffffe005f962960
device_probe_and_attach() at device_probe_and_attach+0x70/frame 0xfffffe005f962990
pci_driver_added() at pci_driver_added+0xf2/frame 0xfffffe005f9629d0
devclass_driver_added() at devclass_driver_added+0x39/frame 0xfffffe005f962a10
devclass_add_driver() at devclass_add_driver+0x138/frame 0xfffffe005f962a50
module_register_init() at module_register_init+0xb0/frame 0xfffffe005f962a80
linker_load_module() at linker_load_module+0xbd2/frame 0xfffffe005f962d80
kern_kldload() at kern_kldload+0x16f/frame 0xfffffe005f962dd0
sys_kldload() at sys_kldload+0x5c/frame 0xfffffe005f962e00
amd64_syscall() at amd64_syscall+0x138/frame 0xfffffe005f962f30
fast_syscall_common() at fast_syscall_common+0xf8/frame 0xfffffe005f962f30
--- syscall (304, FreeBSD ELF64, kldload), rip = 0x709e5112ba, rsp = 0x709d3c7da8, rbp = 0x709d3c8320 ---
KDB: enter: panic
[ thread pid 832 tid 100160 ]
Stopped at      kdb_enter+0x32: movq    $0,0xe29a73(%rip)
db> 

John
groenveld@acm.org
Comment 5 Corvin Köhne freebsd_committer freebsd_triage 2023-08-18 06:14:27 UTC
(In reply to groenveld from comment #4)

Is this related to the build? We should fix the build in the first step and then any runtime issues.
Comment 6 takahiro.kurosawa 2023-08-18 06:42:36 UTC
Created attachment 244185 [details]
Patch to workaround panic on the INVARIANTS kernel

(In reply to groenveld from comment #4)

Hi John,
Here is an additional patch for you.
You need to "make config" and enable the INVARIANTS option before building
the port.  Please test the patch and report how it works.
Comment 7 groenveld 2023-08-18 12:57:32 UTC
(In reply to takahiro.kurosawa from comment #6)

Thank you, that worked:

# uname -srvKU
FreeBSD 14.0-ALPHA1 FreeBSD 14.0-ALPHA1 amd64 1400094 #0 main-n264678-136fc495615f: Fri Aug 11 08:18:04 UTC 2023     root@releng1.nyi.freebsd.org:/usr/obj/usr/src/amd64.amd64/sys/GENERIC 1400094 1400094

# kldload vboxguest
warning: KLD '/boot/modules/vboxguest.ko' is newer than the linker.hints file
vboxguest0 port 0xc140-0xc15f mem 0x88000000-0x883fffff,0x88420000-0x88423fff irq 20 at device 4.0 on pci0
vboxguest: loaded successfully

John
groenveld@acm.org
Comment 8 Robert Cina 2023-09-02 19:43:27 UTC
I am seeing the same errors building virtualbox-ose-additions using poudriere on 13.2-stable on amd64.

error: no member named 'auto_ptr' in namespace 'std'
                std::auto_ptr<AbstractService> apService;
Comment 9 Robert Cina 2023-09-02 20:27:51 UTC
I can confirm that the first patch to correct build errors on 14-CURRENT also works to build virtualbox-ose-additions on my 13.2-stable amd64 machine.
Comment 10 Ronald Klop freebsd_committer freebsd_triage 2023-09-12 11:33:12 UTC
With the patch "Patch to fix build errors on 14-CURRENT" virtualbox-ose-additions 6.1.46 builds _and_ runs fine on my 14-CURRENT guest in a VirtualBox on Windows 10 host.
Comment 11 Ronald Klop freebsd_committer freebsd_triage 2023-09-12 11:37:16 UTC
(In reply to Ronald Klop from comment #10)
BTW:
FreeBSD 14.0-CURRENT (GENERIC-NODEBUG) #22 main-n263787-5581cf903fda-dirty: Sun Jun 25 00:27:12 CEST 2023

So not the latest version.

Please commit the build fix so it is easier to test the pkg.
Comment 12 commit-hook freebsd_committer freebsd_triage 2023-09-12 12:01:18 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=de862b33d480559301360c44d840ae12ee4bcfb4

commit de862b33d480559301360c44d840ae12ee4bcfb4
Author:     Kurosawa Takahiro <takahiro.kurosawa@gmail.com>
AuthorDate: 2023-09-12 11:55:04 +0000
Commit:     Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2023-09-12 12:00:14 +0000

    emulators/virtualbox-ose: fix build errors on CURRENT

    PR:                     272991
    Reviewed by:            corvink, manu
    Approved by:            manu, vbox (maintainer timeout)

 emulators/virtualbox-ose-additions/Makefile                    |  2 ++
 .../files/patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs.h   | 10 ++++++++--
 .../patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vfsops.c |  2 +-
 .../patch-src_VBox_Additions_freebsd_vboxvfs_vboxvfs__vnops.c  |  2 +-
 4 files changed, 12 insertions(+), 4 deletions(-)