hyperrogue
hyperrogue copied to clipboard
bizarre compiling bug on Raspberry Pi
Some days ago, I tried to compile the version 10.4j on my Raspberry Pi (the OS is Raspbian).
It failed, producing this huge and bizarre output 'output_bug.txt)
It seems from this bizarre output that you are using a rather old gcc (maybe specifying -std=c++11
would help?), and the actual error is that you are trying to compile savepng.c while it has been renamed to savepng.cpp. Does the new Makefile.simple fix these problems?
https://twitter.com/thepracticaldev/status/716390583217029124 suggests that adding -Wno-psabi
will silence all the "parameter passing for ... will change in GCC 7.1" warnings. (This became the default in GCC later on.)
The filename savepng-loc.o
does suggest that autotools are involved somehow. ;) I, too, bet that you can fix the problem by doing git pull
and then make -f Makefile.simple CXXFLAGS=-Wno-psabi
.
Finally, some use for my Pi besides being a fancy dust-collector. So, in order of nondecreasing success:
-
autotools
build straight up fails due to running out of memory (that being 1G RAM + 1.5G swap), taking the obscenely long 2 hours to get to that point. Doesn't feel worth to test it anymore. -
Makefile.simple
build succeeds after ~1 hour. Game runs, albeit sluggishly. More on that later. -
mymake
takes only about 20 minutes. Game runs same as above.
All the builds were done with GCC 8 -- the latest stable version in the RaspiOS repos. Clang (also far-from-bleeding-edge) is available; haven't tested it.
All produced "notes" about the ABI changed in GCC 7.1. I didn't use any CXXFLAGS
beyond those already built-in.
Some words about performance: with default options it's atrocious. Disabling GL, antialiasing and 3D tile display mode, and enabling -O2
brings FPS to about 15-20, which is tolerable. (I seem to recall there being a define
-switch for lower-end systems?)
At last, logs for completeness' sake.
Just for fun, I have set up a workflow runner on Pi -- here's an output from it testing mymake
build. This one has had -Wno-psabi
option patched in, which indeed had resulted in changed in GCC 7.1
notes clearing up. Also, the build time of ~30 minutes is close to the typical value I observed.