aqemu
aqemu copied to clipboard
Nonexistent dependencies and segmentation fault
I've just built Aqemu on Kubuntu with cmake and it appears that there's an error in the dependencies and it's trying to use a dependency that does not exist, emu-system-ppcemb, that I can't find any mention of it online. This leads to Segmentation fault (core dumped), which appears to be fatal.
I thought this might have been a misspelling of ppc or ppc64, but those are shown to be separate dependencies in the output in #80 and in apt if you search with them with apt search qemu-system*.
Unlike the error in #72, deleting the config cannot fix the issue as this is present OOTB.
- This nonexistent dependency needs to be removed because it's prevent execution entirely, especially because:
- Personally, I think that the error message for missing dependencies should be much easier to understand; trying to use the executable will simply crash with no information, and you only get the rather unhelpful error in the console, making this much more of a bother than it needs to be.
Here's a dump of what's printed in the console after running aqemu:
AQEMU Warning [2] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-ppcemb" element!
AQEMU Warning [4] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-ppcemb" element!
Segmentation fault (core dumped)
I did some research and found one mention of it here, https://wiki.qemu.org/ChangeLog/3.1
The "qemu-system-ppcemb" target has been removed. "qemu-system-ppc" or "qemu-system-ppc64" should be used instead.
Meaning, those two targets were added at some point but qemu-system-ppcemb wasn't removed.
Recompiled after commenting out the short piece of code that tries to use qemu-system-pccemb in src/System_Info.cpp and aqemu works fine. I don't know enough to be able to solve it myself, but I can say that it is for sure this section of code. I think that the exact parts that are giving the two warnings are the two ad.System =Device.map("")
ad = Available_Devices();
ad.System = Device_Map( "Power PC EMB 32Bit", "qemu-system-ppcemb" );
ad.CPU_List += CPU_PPC;
ad.Machine_List += Machine_PPC_0_10_0;
ad.Network_Card_List += Network_Card_PPC;
ad.Video_Card_List += QEMU_Video_Cards_v0_10_0;
ad.Audio_Card_List = Audio_Card_PPC;
ad.PSO_Initial_Graphic_Mode = true;
System_Info::Emulator_QEMU_2_0[ "qemu-system-ppcemb" ] = ad;
ad = Available_Devices();
ad.System = Device_Map( "Power PC 64Bit", "qemu-system-ppc64" );
sorry to bother I did the same thing and it still gives the same error.
AQEMU Warning [2] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-ppcemb" element!
AQEMU Warning [4] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-ppcemb" element!
AQEMU Warning [6] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-ppcemb" element!
AQEMU Warning [8] >>>
Sender: bool Emulator::Load( const QString &path )
Message: No "qemu-system-ppcemb" element!
Segmentation fault