issue:
Running any of the emulators causes a SIGSEGV during startup. The emulator window is briefly visible but closes after the SIGSEGV. The last message in the log before SIGSEGV is: "Detecting libieee1284 ParSIDs." and "use ieee1284_data_dir to change data line direction!" if running with root privileges.
things I already tried:
making a full system upgrade of all installed packages
deleting the .vice configuration data from the home folders
tested these versions:
https://aur.archlinux.org/packages/vice-gtkglext/ and https://aur.archlinux.org/packages/vice-sdl/
example startup log for x64sc from gtk version:
with root privileges:
---------------------
$ sudo x64sc
Detecting ISA HardSID boards.
Opened '/dev/port' for I/O access.
No ISA HardSID boards found.
Detecting PCI HardSID boards.
No PCI HardSID boards found.
Sampler Filedrv: Initializing chip model "MOS8565" (63 cycles per line, 312 raster lines).
*** VICE Version 3.0 ***
OS compiled for: Linux glibc 2.24
GUI compiled for: GTK+
CPU compiled for: AMD64/x86_64
Compiler used: GCC-6.3.1
Current OS: (glibc 2.24)
Current CPU: Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz
Welcome to x64sc, the free portable C64 Emulator.
Current VICE team members:
Andreas Matthies, Martin Pottendorfer, Marco van den Heuvel, Fabrizio Gennari,
Groepaz, Marcus Sutton, Kajtar Zsolt, Stefan Haubenthal, BSzili, AreaScout,
Bas Wassink.
This is free software with ABSOLUTELY NO WARRANTY.
See the "About VICE" command for more info.
X11: GTK version compiled with: 2.24 (xf86 ext:yes cairo:yes pango:yes VTE:yes hwscale:yes fullscreen:yes ui-threads:no)
XRandR: XRandR reports current display: 3520x1200@50
Loading system file `/usr/lib64/vice/C64/kernal'.
Loading system file `/usr/lib64/vice/C64/basic'.
Loading system file `/usr/lib64/vice/C64/chargen'.
Loading system file `/usr/lib64/vice/PRINTER/mps803'.
Palette: Loading palette `/usr/lib64/vice/PRINTER/mps803.vpl'.
Loading system file `/usr/lib64/vice/PRINTER/nl10-cbm'.
Palette: Loading palette `/usr/lib64/vice/PRINTER/nl10.vpl'.
NL10: Printer driver initialized.
Palette: Loading palette `/usr/lib64/vice/PRINTER/1520.vpl'.
Loading system file `/usr/lib64/vice/DRIVES/dos1540'.
Loading system file `/usr/lib64/vice/DRIVES/dos1541'.
Loading system file `/usr/lib64/vice/DRIVES/d1541II'.
Loading system file `/usr/lib64/vice/DRIVES/dos1570'.
Loading system file `/usr/lib64/vice/DRIVES/dos1571'.
Loading system file `/usr/lib64/vice/DRIVES/dos1581'.
DriveROM: Error - 2000 ROM image not found. Hardware-level 2000 emulation is not available.
DriveROM: Error - 4000 ROM image not found. Hardware-level 4000 emulation is not available.
Loading system file `/usr/lib64/vice/DRIVES/dos2031'.
Loading system file `/usr/lib64/vice/DRIVES/dos2040'.
Loading system file `/usr/lib64/vice/DRIVES/dos3040'.
Loading system file `/usr/lib64/vice/DRIVES/dos4040'.
Loading system file `/usr/lib64/vice/DRIVES/dos1001'.
Drive: Finished loading ROM images.
VIC-II: Initializing chip model "MOS8565" (63 cycles per line, 312 raster lines).
openGL: GLX_SGI_video_sync extension is supported
Sound: Available sound devices: pulse alsa uss dummy fs dump wav voc iff aiff mp3 flac ogg soundmovie
Detecting PCI CatWeasel boards.
No PCI CatWeasel found.
Detecting libieee1284 ParSIDs.
use ieee1284_data_dir to change data line direction!
use ieee1284_data_dir to change data line direction!
use ieee1284_data_dir to change data line direction!
use ieee1284_data_dir to change data line direction!
Received signal 11 (SIGSEGV), exiting.
Exiting...
without root privileges there are slight differences to the above log:
----------------------------------------------------------------------
$ x64s
Detecting ISA HardSID boards.
Could not open '/dev/port'.
Cannot get permission to access $300.
[..]
Detecting libieee1284 ParSIDs.
Received signal 11 (SIGSEGV), exiting.
Exiting...
additional info:
with "./configure --disable-parsid" it works and does not SIGSEGV anymore
This is because of a bug in the ieee1284 library.
I added --enable-libieee1284 to the current trunk and set it to be disabled by default, that should only compile in ieee1284 support when the option is given at compile time.
Can we close this bug, since it's an upstream problem and there now is a work-around for it?
Closing is fine with me and workarounds work but the upstream lib seems to be quite old, last updated in 2013, has anyone reported it upstream yet? What is the exact description for the bug in the lib?
I wasn't directly involved with debuggin this, but from what I remember there's a NULL-pointer dereference somewhere in the lib when enumerating devices.
Reporting a bug to the project seems pointless, the last code commit was six years ago and there are three open bugs which haven't gotten a reply from the dev (that I can see) in nearly ten years. Seems like an abbandoned project to me.