Manually linking tinfo is unnecessary and results in a linker error. diff -Naur wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435/project/Makefile wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435-alpine/project/Makefile --- wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435/project/Makefile 2021-12-22 16:40:12.263507617 +0000 +++ wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435-alpine/project/Makefile 2021-12-22 16:40:41.880175306 +0000 @@ -161,7 +161,6 @@ CFLAGS += -ffunction-sections -fdata-sections LDFLAGS += -Xlinker --gc-sections #LDFLAGS += -Xlinker --print-gc-sections - LIBS += -ltinfo LDFLAGS += -static-libgcc endif wiimms-szs-tools assumes that the global variables stdin, stdout, and stderr are mutable. This is true in glibc, but false in musl. This patch removes code which attempts to mutate standard streams. diff -Naur wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435/project/dclib/dclib-color.c wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435-alpine/project/dclib/dclib-color.c --- wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435/project/dclib/dclib-color.c 2021-12-22 16:40:12.266840951 +0000 +++ wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435-alpine/project/dclib/dclib-color.c 2021-12-22 16:40:41.883508639 +0000 @@ -4848,8 +4848,6 @@ { DASSERT(ssf); - stdout = ssf->std_out; - stderr = ssf->std_err; stdlog = ssf->std_log; stdmsg = ssf->std_msg; stdwrn = ssf->std_wrn; @@ -4877,7 +4875,7 @@ if (ssf) SaveStdFiles(ssf); - stdout = stdwrn = stdmsg = f; + stdwrn = stdmsg = f; colout = colwrn = colmsg = colset ? colset : GetFileColorSet(f); // special handling for stdlog @@ -4889,7 +4887,6 @@ if (err_too) { - stderr = stdout; colerr = colout; } } Don't define non-static global variable in header file. (This variable is only ever used in one source file, so having it in the header is pointless.) diff -Naur wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435/project/dclib/lib-mkw.h wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435-alpine/project/dclib/lib-mkw.h --- wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435/project/dclib/lib-mkw.h 2021-12-22 16:40:12.266840951 +0000 +++ wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435-alpine/project/dclib/lib-mkw.h 2021-12-22 16:41:03.896842729 +0000 @@ -198,8 +198,6 @@ //----------------------------------------------------------------------------- -const MkwPointInfo_t MkwPointInfo[MPI__N+1]; - // [[24P--]] all tables extern u8 MkwPointsTab[MKW_STD_MAX_PLAYER2]; Add missing semicolon. diff -Naur wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435/project/src/lib-staticr.c wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435-alpine/project/src/lib-staticr.c --- wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435/project/src/lib-staticr.c 2021-12-22 16:40:12.270174285 +0000 +++ wiimms-szs-tools-9ae8841ec4720e74173e2f72fac33f0848bbf435-alpine/project/src/lib-staticr.c 2021-12-22 16:40:41.886841972 +0000 @@ -1922,7 +1922,7 @@ default: return 0; } - DASSERT(ri) + DASSERT(ri); if (!ri->sect[0].addr) { for ( dol_sect_info_t *ptr = ri->sect; ptr->section >= 0; ptr++ )