From 97b84d4117fc082cfd91e2b13a8def0fdb6acca6 Mon Sep 17 00:00:00 2001 From: Frank Halasz Date: Sun, 1 Mar 2026 03:00:08 -0800 Subject: [PATCH] Add libbsd to ld library search for all makefile-linux* and makefile-init-linux*. Add libbsd to MAIKO_LIBRARIES (where appropriate) in CMakeLists.txt. This will support building maiko on Ubuntu 22.04 and Debian 12, where strlcat is found only in libbsd. For Ubuntu 24.04 and beyond and Debian 13 and beyond, strlcat is now in glibc (>2.38). --- CMakeLists.txt | 7 ++++++- bin/makefile-init-linux.aarch64 | 4 ++-- bin/makefile-init-linux.x86_64 | 4 ++-- bin/makefile-init-wsl1.aarch64 | 4 ++-- bin/makefile-init-wsl1.x86_64 | 4 ++-- bin/makefile-linux.386-sdl | 4 ++-- bin/makefile-linux.386-x | 4 ++-- bin/makefile-linux.aarch64-sdl | 4 ++-- bin/makefile-linux.aarch64-x | 4 ++-- bin/makefile-linux.armv7l-sdl | 4 ++-- bin/makefile-linux.armv7l-x | 4 ++-- bin/makefile-linux.x86_64-sdl | 4 ++-- bin/makefile-linux.x86_64-x | 4 ++-- bin/makefile-wsl1.aarch64-sdl | 4 ++-- bin/makefile-wsl1.aarch64-x | 4 ++-- bin/makefile-wsl1.x86_64-sdl | 4 ++-- bin/makefile-wsl1.x86_64-x | 4 ++-- 17 files changed, 38 insertions(+), 33 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index eb1f811..8c747c3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,5 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.15) PROJECT(maiko C) - SET(CMAKE_EXPORT_COMPILE_COMMANDS ON) SET(CMAKE_C_STANDARD 99) @@ -37,6 +36,11 @@ IF(NEED_LIB_M) SET(MAIKO_LIBRARIES m) ENDIF() +CHECK_LIBRARY_EXISTS(bsd strlcat "" NEED_LIB_BSD) +IF(NEED_LIB_BSD) + SET(MAIKO_LIBRARIES ${MAIKO_LIBRARIES} bsd) +ENDIF() + SET (MAIKO_RELEASE 351 CACHE STRING "Release version to build. Release: 115, 200, 201, 210, 300, 350, 351") SET_PROPERTY(CACHE MAIKO_RELEASE PROPERTY STRINGS 115 200 201 210 300 350 351) @@ -448,6 +452,7 @@ ADD_CUSTOM_COMMAND(OUTPUT vdate.c ADD_EXECUTABLE(lde src/ldeboot.c src/unixfork.c) TARGET_COMPILE_DEFINITIONS(lde PRIVATE ${MAIKO_DEFINITIONS}) TARGET_INCLUDE_DIRECTORIES(lde PRIVATE inc) +TARGET_LINK_LIBRARIES(lde ${MAIKO_LIBRARIES}) IF(MAIKO_DISPLAY_X11) # Tell it that the X11 launcher is available. TARGET_COMPILE_DEFINITIONS(lde PRIVATE ${MAIKO_DISPLAY_X11_DEFINITIONS}) diff --git a/bin/makefile-init-linux.aarch64 b/bin/makefile-init-linux.aarch64 index 52ab52b..5b4ce1d 100644 --- a/bin/makefile-init-linux.aarch64 +++ b/bin/makefile-init-linux.aarch64 @@ -21,8 +21,8 @@ OPTFLAGS = -O0 -g DEBUGFLAGS = DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm +LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd +LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-init-linux.x86_64 b/bin/makefile-init-linux.x86_64 index 8eeb208..ae6e2cf 100644 --- a/bin/makefile-init-linux.x86_64 +++ b/bin/makefile-init-linux.x86_64 @@ -21,8 +21,8 @@ OPTFLAGS = -O0 -g DEBUGFLAGS = DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm +LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd +LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-init-wsl1.aarch64 b/bin/makefile-init-wsl1.aarch64 index 5362d82..7fb5fce 100644 --- a/bin/makefile-init-wsl1.aarch64 +++ b/bin/makefile-init-wsl1.aarch64 @@ -21,8 +21,8 @@ OPTFLAGS = -O0 -g DEBUGFLAGS = DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT -D__wsl1__ -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm +LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd +LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-init-wsl1.x86_64 b/bin/makefile-init-wsl1.x86_64 index 182631f..a35a195 100644 --- a/bin/makefile-init-wsl1.x86_64 +++ b/bin/makefile-init-wsl1.x86_64 @@ -21,8 +21,8 @@ OPTFLAGS = -O0 -g DEBUGFLAGS = DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT -D__wsl1__ -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm +LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd +LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-linux.386-sdl b/bin/makefile-linux.386-sdl index 733f3c7..40f2706 100644 --- a/bin/makefile-linux.386-sdl +++ b/bin/makefile-linux.386-sdl @@ -17,8 +17,8 @@ XFLAGS = -DSDL=2 OPTFLAGS = -O2 -g3 DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -LDFLAGS = -lm -lSDL2 -LDELDFLAGS = +LDFLAGS = -lm -lSDL2 -lbsd +LDELDFLAGS = -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-linux.386-x b/bin/makefile-linux.386-x index e733b9a..62c0bc4 100644 --- a/bin/makefile-linux.386-x +++ b/bin/makefile-linux.386-x @@ -19,8 +19,8 @@ XFLAGS = -DXWINDOW OPTFLAGS = -O2 -g3 DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm +LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd +LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-linux.aarch64-sdl b/bin/makefile-linux.aarch64-sdl index 94b719c..6d450be 100644 --- a/bin/makefile-linux.aarch64-sdl +++ b/bin/makefile-linux.aarch64-sdl @@ -17,8 +17,8 @@ SDLFLAGS = -DSDL=2 OPTFLAGS = -O2 -g3 DFLAGS = $(SDLFLAGS) -DRELEASE=$(RELEASE) -LDFLAGS = -lSDL2 -lm -LDELDFLAGS = +LDFLAGS = -lSDL2 -lm -lbsd +LDELDFLAGS = -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-linux.aarch64-x b/bin/makefile-linux.aarch64-x index ff0b349..a001209 100644 --- a/bin/makefile-linux.aarch64-x +++ b/bin/makefile-linux.aarch64-x @@ -19,8 +19,8 @@ XFLAGS = -DXWINDOW OPTFLAGS = -O2 -g3 DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm +LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd +LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-linux.armv7l-sdl b/bin/makefile-linux.armv7l-sdl index da9c4cc..86e4f47 100644 --- a/bin/makefile-linux.armv7l-sdl +++ b/bin/makefile-linux.armv7l-sdl @@ -17,8 +17,8 @@ XFLAGS = -DSDL=2 OPTFLAGS = -O2 -g3 DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -LDFLAGS = -lm -lSDL2 -LDELDFLAGS = +LDFLAGS = -lm -lSDL2 -lbsd +LDELDFLAGS = -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-linux.armv7l-x b/bin/makefile-linux.armv7l-x index ee283b4..1e3740c 100644 --- a/bin/makefile-linux.armv7l-x +++ b/bin/makefile-linux.armv7l-x @@ -19,8 +19,8 @@ XFLAGS = -DXWINDOW OPTFLAGS = -O2 -g3 DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm +LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd +LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-linux.x86_64-sdl b/bin/makefile-linux.x86_64-sdl index ccf98c3..c57dca0 100644 --- a/bin/makefile-linux.x86_64-sdl +++ b/bin/makefile-linux.x86_64-sdl @@ -17,8 +17,8 @@ XFLAGS = -DSDL=2 OPTFLAGS = -O2 -g3 DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -LDFLAGS = -lm -lSDL2 -LDELDFLAGS = +LDFLAGS = -lm -lSDL2 -lbsd +LDELDFLAGS = -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-linux.x86_64-x b/bin/makefile-linux.x86_64-x index e9225aa..5cb63bb 100644 --- a/bin/makefile-linux.x86_64-x +++ b/bin/makefile-linux.x86_64-x @@ -20,8 +20,8 @@ XFLAGS = -DXWINDOW OPTFLAGS = -O2 -g3 DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm +LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd +LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-wsl1.aarch64-sdl b/bin/makefile-wsl1.aarch64-sdl index f3ce3ca..7e756e9 100644 --- a/bin/makefile-wsl1.aarch64-sdl +++ b/bin/makefile-wsl1.aarch64-sdl @@ -17,8 +17,8 @@ SDLFLAGS = -DSDL=2 OPTFLAGS = -O2 -g3 DFLAGS = $(SDLFLAGS) -DRELEASE=$(RELEASE) -D__wsl1__ -LDFLAGS = -lSDL2 -lm -LDELDFLAGS = +LDFLAGS = -lSDL2 -lm -lbsd +LDELDFLAGS = -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-wsl1.aarch64-x b/bin/makefile-wsl1.aarch64-x index 15964b5..fb57847 100644 --- a/bin/makefile-wsl1.aarch64-x +++ b/bin/makefile-wsl1.aarch64-x @@ -19,8 +19,8 @@ XFLAGS = -DXWINDOW OPTFLAGS = -O2 -g3 DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -D__wsl1__ -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm +LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd +LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-wsl1.x86_64-sdl b/bin/makefile-wsl1.x86_64-sdl index ec16b95..5bad16a 100644 --- a/bin/makefile-wsl1.x86_64-sdl +++ b/bin/makefile-wsl1.x86_64-sdl @@ -17,8 +17,8 @@ XFLAGS = -DSDL=2 OPTFLAGS = -O2 -g3 DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -D__wsl1__ -LDFLAGS = -lm -lSDL2 -LDELDFLAGS = +LDFLAGS = -lm -lSDL2 -lbsd +LDELDFLAGS = -lbsd OBJECTDIR = ../$(RELEASENAME)/ diff --git a/bin/makefile-wsl1.x86_64-x b/bin/makefile-wsl1.x86_64-x index fe1b6c0..6c12433 100644 --- a/bin/makefile-wsl1.x86_64-x +++ b/bin/makefile-wsl1.x86_64-x @@ -20,8 +20,8 @@ XFLAGS = -DXWINDOW OPTFLAGS = -O2 -g3 DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -D__wsl1__ -LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm +LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd +LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lbsd OBJECTDIR = ../$(RELEASENAME)/