VirtualBox

Opened 5 years ago

Last modified 5 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.

Change History (1)

comment:1 by Michael Thayer, 5 years ago

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.

Note: See TracTickets for help on using tickets.

© 2023 Oracle
ContactPrivacy policyTerms of Use