hyperrogue icon indicating copy to clipboard operation
hyperrogue copied to clipboard

bizarre compiling bug on Raspberry Pi

Open asmanel opened this issue 5 years ago • 4 comments

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)

asmanel avatar Jul 11 '18 03:07 asmanel

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?

zenorogue avatar Jul 11 '18 11:07 zenorogue

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.

Quuxplusone avatar Jul 11 '18 16:07 Quuxplusone

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.

still-flow avatar Sep 30 '20 00:09 still-flow

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.

still-flow avatar Oct 02 '20 23:10 still-flow