Package: olvwm
Version: 4.4.3.2p1.4-28.2
Severity: grave
Justification: renders package unusable
Dear Maintainer,
The latest version (4.4.3.2p1.4-28.2) immediately crashes with SIGSEGV
on my x86_64 system. I tried building it from source with debug
symbols, and discovered that it is not 64-bit clean (examples below).
The previous version (4.4.3.2p1.4-28.1), which was built 4 years ago,
works. It can no longer be built (because glibc no longer supports some
old APIs), but I'm guessing that the build tools from 4 years ago must
have produced machine code where all the addresses fall in the bottom
4GB of the virtual address space, so that the 64-bit uncleanliness is
hidden.
I'm not sure what to do about this. Fixing all the source code is
likely to be a large project. Is there a way to tell today's build
tools to produce machine code confined to the bottom 4GB of the virtual
address space?
Example SIGSEGVs:
In clients/olvwm-4.1/cursors.c in InitCursors() there is a gratuitous
cast of a pointer to an int before it is passed to a function that takes
a pointer:
st_insert(cursorTable, (int) p->name, (char *) p->num);
After I fixed that, there was SIGSEGV in image.c in this line:
b = (Button *) MemAlloc(sizeof(Button));
The problem is that mem.h is not included, so the compiler assumes that
MemAlloc() returns an int rather than a pointer, so the pointer gets
truncated to 32 bits.
After I fixed that, there was a SIGSEGV in states.c in this line:
cli->wmState = initstate;
but gdb said cli was optimized out, so I don't know what's going on
there. I suspect that these 64-bit issues are pervasive.
*** Reporter, please consider answering these questions, where appropriate ***
* What led up to the situation?
* What exactly did you do (or not do) that was effective (or
ineffective)?
* What was the outcome of this action?
* What outcome did you expect instead?
*** End of the template - remove these template lines ***
-- System Information:
Debian Release: 9.0
APT prefers testing
APT policy: (900, 'testing'), (800, 'stable'), (600, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 4.7.0-1-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages olvwm depends on:
ii libc6 2.24-8
ii libx11-6 2:1.6.4-2
ii libxext6 2:1.3.3-1
ii libxpm4 1:3.5.12-1
olvwm recommends no packages.
Versions of packages olvwm suggests:
pn menu <none>
pn olwm <none>
pn xview-clients <none>
-- no debconf information