Special Question about compiling

Discussions related to using the OSE version of VirtualBox.
Post Reply
astm
Posts: 5
Joined: 30. Jan 2018, 17:46

Special Question about compiling

Post by astm »

Hello,
Please excuse my maybe bad English, I've tried my best.

It's about the DevIoApic.cpp since Version 5.1.x
In it, there are 2 Hardware Implementations, ICH9 and 82093AA,
so in Line 48

Code: Select all

#define IOAPIC_HARDWARE_VERSION                 IOAPIC_HARDWARE_VERSION_ICH9
If I wish to build with the other Version and change the Entry to

Code: Select all

#define IOAPIC_HARDWARE_VERSION                 IOAPIC_HARDWARE_VERSION_82093AA
gcc throws me this Errormessage

Code: Select all

/home/usb/Downloads/VirtualBox-5.1.24/src/VBox/Devices/PC/DevIoApic.cpp: In Funktion »int ioapicDbgReg_GetArb(void*, PCDBGFREGDESC, PDBGFREGVAL)«:
    /home/usb/Downloads/VirtualBox-5.1.24/src/VBox/Devices/PC/DevIoApic.cpp:899:75: error: too many arguments to function »uint32_t ioapicGetArb()«
         pValue->u32 = ioapicGetArb(PDMINS_2_DATA((PPDMDEVINS)pvUser, PCIOAPIC));
                                                                               ^
    /home/usb/Downloads/VirtualBox-5.1.24/src/VBox/Devices/PC/DevIoApic.cpp:293:22: note: declared here
     DECLINLINE(uint32_t) ioapicGetArb(void)
                          ^
    kmk: *** [/home/usb/Downloads/VirtualBox-5.1.24/out/linux.amd64/release/obj/VBoxDD/PC/DevIoApic.o] Error 1
Is it possible to fix this, or is it generally impossible to build it that way ?
My knowledge about C++ is less than rudimentary, so that is why I'm asking here.
The whole thing happens on an Linux Mint 18.2 with Kernel 4.8.0,
have tried it with gcc 4.8 and 5.4

Thx, and best regards
klaus
Oracle Corporation
Posts: 1110
Joined: 10. May 2007, 14:57

Re: Special Question about compiling

Post by klaus »

Such a super special question, and then you want it for an old update of 5.1? That's hard, we can't change the past, and in general that won't motivate people in general...

In your other post (in German) you provided a tiny bit more detail, but you only vaguely referred to NT3.x there - the X matters a lot. From our experience NT3.51 works just fine in SMP configs, not needing any hacks. (NT3.5 insists on MPS 1.1, so won't be happy with the MPS 1.4 table which VirtualBox has).

Either way, the compile problem is an unnoticed typo in the end. We don't compile the old IOAPIC flavor ever. Just delete the entire rubbish inside the parentheses in line 899, like ...ioapicGetArb();

Fixed this in trunk, but see above about motivation to backport... :)
Last edited by socratis on 31. Jan 2018, 16:40, edited 1 time in total.
Reason: Added missing URL.
astm
Posts: 5
Joined: 30. Jan 2018, 17:46

Re: Special Question about compiling

Post by astm »

No, no need for an Update for 5.1, I'm happy with your Hint with the Code.
Great you fixed this in the actual Code.

The whole thing started, as I read this Article
http://www.os2museum.com/wp/nt-3-1-smp/

This Guy managed it to hack Virtualbox, but didn't tell how he made it in Precise.
My Interest was waked, so I start to investigate.
First I got managed to hack Virtualbox 5.0.40 by changing the IOAPIC_NUM_PINS from 24 to 16,
NT3.1 runs with SMP, but not very stable and NT3.5 crashed at boot.

But now, thanks to your help, I was able to build 5.2.6, with some more hacking done in the DevIoApic.cpp.
Both NT3.x runs really stable with it, as it seems, until now.

Funny thing, if this would become an Option to choose in future Versions of Vbox,
at other Side, I think there were maybe too little demand for this.
klaus
Oracle Corporation
Posts: 1110
Joined: 10. May 2007, 14:57

Re: Special Question about compiling

Post by klaus »

The os2museum site is run as a private thing by a VirtualBox dev... but not all hacks ever evolve into something which is good enough to integrate into VirtualBox. Some hacks remain one-offs, because it's not worth the effort (or due to lack of time or motivation).
Post Reply