https://gitlab.synchro.net/main/sbbs/-/commit/f2244bca8b757857d4d52676
Modified Files:
src/odoors/GNUmakefile
Log Message:
odoors: fix the example programs, which could never run
LDFLAGS is used only by the five example link rules (the library
itself is linked with SHFLAGS), but it was being assigned the
shared-object flags: -shared, or -dynamiclib -single_module on Darwin.
Every example was therefore emitted as a shared object with a NULL ELF
entry point, and segfaulted the instant it was run.
Dropping those flags exposed a second problem: the examples name the
library by relative path, so libs-<OS>/libODoors.so only resolved when
the current directory happened to be src/odoors. Give them an
$ORIGIN-relative runpath, and give the library a soname; without one a
client records the relative link path as its DT_NEEDED entry, and
glibc does not consult the runpath for any name containing a slash.
Appending to LDFLAGS rather than assigning it also stops -fPIC, and
DEBUG=1's -g, from being discarded.
Co-Authored-By: Claude Opus 5 (1M context) <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net