Opened 6 years ago
Last modified 6 years ago
#18429 new defect
VirtualBox 5.2.26 fails to build due to VBoxFUSE
Reported by: | peterwwillis | Owned by: | |
---|---|---|---|
Component: | other | Version: | VirtualBox 5.2.26 |
Keywords: | Cc: | ||
Guest type: | Linux | Host type: | Linux |
Description
Hello,
I'm using a fairly ancient system (Slackware 14.2), but the following is a bug I encountered building VirtualBox, and a patch that enabled me to build it successfully.
While trying to compile, I encountered this error:
CXX VBoxFUSE - {C}/VBoxFUSE.cpp /tmp/SBo/VirtualBox-5.2.26/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:112:5: error: 'PVBOXHDD' does not name a type PVBOXHDD pDisk; ^ /tmp/SBo/VirtualBox-5.2.26/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp: In function 'bool vboxfuseNodeDestroy(PVBOXFUSENODE, bool)': /tmp/SBo/VirtualBox-5.2.26/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp:200:29: error: 'VBOXFUSEFLATIMAGE {aka struct VBOXFUSEFLATIMAGE}' has no member named 'pDisk' if (pFlatImage->pDisk) ^
After searching through the source code, and scouring the internet, I could not find a reference to PVBOXHDD anywhere.
Finally I found a very old copy of vdfuse (https://github.com/vasi/vdfuse/blob/7e10fc7aeeffae251042055bc55fb83a09120156/include/VBox/vd.h) which defined PVBOXHDD as VBOXHDD, and I found further details that revealed VBOXHDD could be referenced here as PVDISK.
I created the following patch:
--- /tmp/SBo/VirtualBox-5.2.26/src/VBox/ImageMounter/VBoxFUSE-old/VBoxFUSE.cpp 2018-10-15 10:31:04.000000000 -0400 +++ /tmp/SBo/VirtualBox-5.2.26/src/VBox/ImageMounter/VBoxFUSE/VBoxFUSE.cpp 2019-02-11 11:31:30.587919884 -0500 @@ -53,6 +53,7 @@ #include <iprt/initterm.h> #include <iprt/stream.h> +#define PVBOXHDD PVDISK /********************************************************************************************************************************* * Structures and Typedefs *
And upon continuing my build, it succeeded.
Is the source code you are trying to build code you got from our download page? It looks to me like that code should not be built at all in a normal build, and it doesn't seem to be on my system (I agree, I can't see where PVBOXHDD is expected to be defined from a quick look). If the code is from us, do you have any idea why VBoxFUSE.cpp is being built on your system? And if not, you should probably talk to whoever you got the code from.