New comment by Akaricchi on void-packages repository https://github.com/void-linux/void-packages/pull/49348#issuecomment-2023140980 Comment: > An easy way is to check out this branch, then do I'm not a Void user, so I think I'll just set up the i686 version of Void in a container for testing. > Isn't that a good reason to build with sse2 by default? I don't mind bumping it up to `-msse2` upstream. I only went with `-msse` by default because that's the minimum requirement for `-mfpmath=sse`, and I was somewhat more conservative about i686 support back then. > You can achieve a similar result without sse using -ffloat-store (at a cost). Not really. `-ffloat-store` only prevents individual variables from being stored in registers. It won't break up calculations in expressions, e.g. `float x = a * b / (c - d);` the whole thing will be computed in extended precision unless you move every calculation into a separate variable, which is not acceptable for Taisei. Even then, a calculation performed at 80-bit precision truncated to 64 bits may still have a slightly different result. Not to mention the overhead introduced by placing every single float variable into RAM. > BTW, do you really need level=20 for zstd? That's supposed to use a lot of memory. Maybe 19 is good enough (or you could use something like 20 if sys.maxsize > 2**32 else 19). The script definitely wasn't written with limited memory/address space in mind. I'll try 19 on i686 and see if it helps. There's an alternative solution though: you could split the package into `taisei` and `taisei-data`. The latter would be noarch and can be built just once, on a 64-bit userspace. ```sh # taisei without data cd /the/build/dir ninja src/taisei doc/GAME.html doc/ENVIRON.html doc/STORY.txt doc/README.txt meson install --destdir=/whatever --no-rebuild --tags runtime,doc,license,xdg ``` ```sh # taisei-data only cd /the/build/dir ninja resources/00-taisei.zip meson install --destdir=/whatever --no-rebuild --tags resources ``` Unfortunately `meson install` isn't smart enough to only rebuild what's needed according to `--tags`, so the build targets have to be specified manually for now. I can alleviate this problem upstream by adding some shorthand alias build targets, though.