Building on musl based linux fails at signals header file: "unknown type name: '__sighandler_t' " Hey, trying to build on postmarketOS (Alpine linux based) running on a Pinebook Pro (rk3399). It gets through native_pass 0-3 while waiting on dynarec to compile and fails when done with everything that depends on dynarec at around 30%. ``` [ 1%] Building ASM object CMakeFiles/dynarec_native.dir/src/dynarec/arm64/arm64_prolog.S.o In file included from /home/user/box64/src/dynarec/arm64/dynarec_arm64_functions.c:24: /home/user/box64/src/include/signals.h:9:11: error: unknown type name '__sighandler_t' 9 | __sighandler_t _sa_handler; | ^~~~~~~~~~~~~~ /home/user/box64/src/include/signals.h:19:11: error: unknown type name '__sighandler_t' 19 | __sighandler_t _sa_handler; | ^~~~~~~~~~~~~~ ... [ 30%] Built target native_pass3 make: *** [Makefile:166: all] Error 2 ``` systeminfo: ``` 09:31:47 user@hostname ~/box64/build $ neofetch /\ user@hostname / \ --------- / \ OS: postmarketOS v22.06.3 aarch64 / \ Host: Pine64 Pinebook Pro / \ Kernel: 6.0.2 / \ Uptime: 18 mins \ \ Packages: 1334 (apk), 35 (flatpak) /\ \____ \ Shell: bash 5.1.16 / \____ \ \ Resolution: 1920x1080 / / \ \ DE: Plasma 5.24.5 / / \ ___\ WM: kwin / / \ / ____ Theme: Breeze [GTK2/3] / / \/ / \ Icons: breeze-dark [GTK2/3] / / __________/ \ Terminal: yakuake / \ \ \ CPU: (6) @ 1.416GHz / \ \ \ Memory: 2740MiB / 3873MiB / / / \ /___________/ /____________________\ ``` [this issue](https://github.com/swoole/swoole-src/issues/721) seem to run into the same problem and fix it by editing the signals header file like so: ``` sed -i "s/struct sigaction {/#ifndef __sighandler_t \ntypedef void (*__sighandler_t)(int);\n#endif\nstruct sigaction\n{/g" ../src/include/signal.h sed -i "s/union {void (*sa_handler)(int)/__sighandler_t sa_handler/g" ../usr/include/signal.h ``` which just makes my build fail at 2% with the same error: ``` 09:48:04 user@hostname ~/box64/build $ make -j$(nproc) [ 1%] Building C object CMakeFiles/dynarec_native.dir/src/dynarec/arm64/arm64_printer.c.o [ 1%] Building C object CMakeFiles/dynarec_native.dir/src/dynarec/dynarec_native.c.o [ 1%] Building C object CMakeFiles/dynarec_native.dir/src/dynarec/arm64/dynarec_arm64_functions.c.o [ 1%] Building C object CMakeFiles/dynarec_native.dir/src/dynarec/dynablock.c.o [ 1%] Building C object CMakeFiles/dynarec_native.dir/src/dynarec/arm64/dynarec_arm64_jmpnext.c.o [ 1%] Generating ../src/wrapped/generated/functions_list.txt [ 1%] Building ASM object CMakeFiles/dynarec_native.dir/src/dynarec/arm64/arm64_prolog.S.o [ 2%] Building ASM object CMakeFiles/dynarec_native.dir/src/dynarec/arm64/arm64_epilog.S.o In file included from /home/user/box64/src/dynarec/arm64/dynarec_arm64_functions.c:24: /home/user/box64/src/include/signals.h:9:11: error: unknown type name '__sighandler_t' 9 | __sighandler_t _sa_handler; | ^~~~~~~~~~~~~~ /home/user/box64/src/include/signals.h:19:11: error: unknown type name '__sighandler_t' 19 | __sighandler_t _sa_handler; | ^~~~~~~~~~~~~~ [ 2%] Building ASM object CMakeFiles/dynarec_native.dir/src/dynarec/arm64/arm64_next.S.o [ 2%] Building ASM object CMakeFiles/dynarec_native.dir/src/dynarec/arm64/arm64_lock.S.o make[2]: *** [CMakeFiles/dynarec_native.dir/build.make:104: CMakeFiles/dynarec_native.dir/src/dynarec/arm64/dynarec_arm64_functions.c.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [CMakeFiles/Makefile2:123: CMakeFiles/dynarec_native.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... [ 2%] Built target WRAPPERS make: *** [Makefile:166: all] Error 2 ``` hmm.. I'll keep digging. (I could just put my TwisterOS microSD in and boot from that but would like to make box64 compile on pmOS to try out running some other x86_64 stuff but )