I did a fun and useless thing: put Doom in the terminal with Crystal.
Why did I do this? Because why not.
Honestly I fully expected this to explode. It did not.
STEP 12/20: RUN crystal build src/main.cr -o /app/bin/doomcr --release
/usr/bin/ld: /app/src/doomcr/../../build/native/libdoomgeneric.a(doomcr_bridge.o): warning: relocation against DG_ScreenBuffer' in read-only section .text’
/usr/bin/ld: _main.o3.o: in function create': /app/src/doomcr/native.cr:31:(.text+0x569f): undefined reference to doomgeneric_Create’
/usr/bin/ld: _main.o3.o: in function tick': /app/src/doomcr/native.cr:35:(.text+0x56b1): undefined reference to doomgeneric_Tick’
/usr/bin/ld: /app/src/doomcr/../../build/native/libdoomgeneric.a(doomcr_bridge.o): in function doomcr_get_screenbuffer': doomcr_bridge.c:(.text+0x67): undefined reference to DG_ScreenBuffer’
/usr/bin/ld: /app/src/doomcr/../../build/native/libdoomgeneric.a(doomcr_bridge.o): in function DG_DrawFrame': doomcr_bridge.c:(.text+0xa3): undefined reference to DG_ScreenBuffer’
/usr/bin/ld: warning: creating DT_TEXTREL in a PIE
collect2: error: ld returned 1 exit status
@zw963 Seems that the Podman build ended up with a libdoomgeneric.a that’s missing a few Doom symbols (doomgeneric_Create, doomgeneric_Tick, DG_ScreenBuffer), so the final Crystal link step fails.
I pushed a fix it will use the vendored doomgeneric instead, if it still failing maybe try to build it without the cache