musl libc build, rather than glibc

We've had reports of a couple of issues building against musl libc.

Issues reported:
  - build procedures utilize cat for Guidebook-creation, and cat
    is deprecated in distros that use musl libc.

  - some of the CRASHREPORT code is using library functions that
    are not available in the musl libc environment. The reported
    functions were backtrace() and backtrace_symbols(), which use
    header file /usr/include/execinfo.h.

So we'll try to accommodate this. Since we don't have a means of
autodetecting the musl libc situation during the build (as of yet), the
builder will have to specify 'make musl=1' on the make command line.

Specifying 'musl=1' on the make command line will:
1. ensure that NOCRASHREPORT gets defined in the C preprocessor.
2. set COLCMD to be '../util/stripbs' instead of 'col -bx'.

Closes #1393
This commit is contained in:
nhmall
2025-03-10 17:14:24 -04:00
parent 719166f9ec
commit bddca2ded5
6 changed files with 79 additions and 5 deletions

View File

@@ -194,6 +194,20 @@ CPLUSPLUS_NEEDED = 1
endif
endif
ifeq "$(musl)" "1"
MUSL=1
endif
ifeq "$(MUSL)" "1"
ifneq "$(NOCRASHREPORT)" "1"
NOCRASHREPORT=1
endif
WINCFLAGS += -DMUSL_LIBC
# use this instead of col -bx
COLCMD = ../util/stripbs
else
WINCFLAGS += -DGNU_LIBC
endif
ifeq "$(NOCRASHREPORT)" "1"
WINCFLAGS += -DNOCRASHREPORT
endif