current binary release (probably) too highly optimized to run on older hardware
benthor opened this issue · 7 comments
I'm on a ~6 year old Core i7-7500U under Archlinux and running the current build fails with illegal hardware instruction
. I suspect (but am not entirely sure) that it's an optimized build that uses some CPU features that are not yet available on my hardware.
Ironically enough, I can not build from source using zig 0.10.1 due to a deprecation warning:
/usr/lib/zig/std/build.zig:2314:31: error: deprecated; use addIncludePath
pub const addIncludeDir = @compileError("deprecated; use addIncludePath");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
referenced by:
build: /tmp/roguelike/build.zig:47:8
runBuild: /usr/lib/zig/build_runner.zig:232:22
remaining reference traces hidden; use '-freference-trace' to see all reference traces
Yeah, this project requires Zig 0.9.1 to build at the moment. I'm holding off a port until Zig's new compiler implements certain features I need (notably async).
I'll be making a release later today, so then I'll take a look at what I can do about this.
I've just added binaries to the latest release which aren't compiled with -Drelease-safe
; let me know if those work on your machine.
Thanks for trying to help. The unoptimized build also fails
[306685.698200] traps: rl[327487] trap invalid opcode ip:e49958 sp:7ffd29356370 error:0 in rl[d03000+464000]
When I try multiple times, it always dies at the same instruction pointer but with slightly different stack pointers.
I also checked the optimized build, same story (but always dies at ip:102677d
).
Your hint about trying zig 0.9.1 helped though. Was able to compile everything, after figuring out that I needed to initialize git submodules to pull in the dependencies.
If there are some diagnostics I can run on my machine in order to help you generate more portable builds let me know.
Were you able to run the game without crashing after compiling? If so, I think the crash may be due to me leaving out an explicit target when building for linux, which causes Zig to build specifically for the hosts' CPU configuration.
Maybe I'll upload a new package that has been built explicitly for x86_64-linux-gnu.
yes, the game runs when I compile it myself using zig 0.9.1. I'll be happy to test any new binary release you build though
Ah, okay. After some investigation it turned out that I need -Dcpu=baseline
to fix this issue.
I've made another release that fixes some showstopping bugs I encountered while working on my 7drl, as well as being built with the flag.
Your new release runs fine on my machine. Thanks a lot :)