The yabasanshiro-sa build was struggling to get the glut/n2 libraries
compiled and/or linked correctly. The issue went back to handling of
the n2.cmake header in retro arena.
Instead of using n2.cmake as the toolchain file, we now use the general
cmake header in toolchain/ as the toolchain file, and append n2.cmake as
an include header.
mkbuild.c in bash appears to use K&R style functions in some places, and
seem to be sufficiently tolerant to GNU17 builds, so the build is set to
-std=gnu17, which appears to build with GCC 15.x.
The zerotier-one build required libnatpmp, but it based this on /usr/lib
rather than the local cross-compilation environment.
The make-linux.mk Makefile is fairly unconventional with limited
configuration macros. But a particular combination of macro and
environment variable configuration allows us to both build the local
exp/libnatbib source, and to integrate it into the zerotier-one build.
The current 7.x version of qemu has build issues with newer
compilers, and using the updated package.mk in packages/tools/qemu seems
to fix these problems.
* Seems that meson is traded for autoconf.
* --target flags for arm and aarch64 are now explicit.
* DONT_BUILD_LEGACY_PYC=1 is used to prevent some issues with pip and
other env setup.
GCC15 raises a warning if a string is copied without its null
terminator, e.g. the literal "abcd" includes a NUL character which does
not fit in the four-character array `a`:
char a[4] = "abcd"
GRUB includes a literal token of this form, and raises a warning, which
ROCKNIX converts to an error.
This patch disables the error in GRUB. As with all `-W-no-*` disabled
warnings, this has no effect on older GCC compilers, and is safe to use.
The ncurses C++ bindings does not appear to be compatible with modern
g++ compilers (tested in 15.2.1) and produces compile-time errors. The
bindings do not seem to be used in ROCKNIX and can be safely removed.
This patch disables C++ bindings in the host build.
Signed-off-by: Marshall Ward <marshall.ward@gmail.com>