ci: fix FreeBSD and Alpine builds

- Apply workaround for libiconv on FreeBSD.
- Disable tcc bounds checking (`tcc -b`) on Alpine, since it requires
  manually linking to /usr/lib/tcc/bcheck.o (in package tcc-dev).
  No need to bother with it.  Such checks are better covered with ASAN
  on Debian and Arch Linux builds.
This commit is contained in:
CismonX 2025-03-29 17:47:18 +08:00
parent 63d8b8e213
commit f20cd2cf74
No known key found for this signature in database
GPG key ID: 3094873E29A482FB
2 changed files with 6 additions and 4 deletions

View file

@ -11,7 +11,7 @@ image: alpine/edge
packages: [
# build
autoconf, automake, libtool, autoconf-archive, pkgconf, pdpmake, tcc,
texinfo, musl-dev, tcc-dev, tcc-libs-static,
texinfo, musl-dev, tcc-libs-static,
# lib
fuse3-dev, libseccomp-dev, sqlite-dev, jansson-dev, nettle-dev,
readline-dev, tcl-dev, uriparser-dev, xxhash-dev,
@ -21,7 +21,7 @@ packages: [
sources:
- https://git.sr.ht/~cismonx/bookmarkfs
environment:
BUILD_CFLAGS: -g -b -Wall -Wunsupported -Werror=unsupported
BUILD_CFLAGS: -g -Wall -Wunsupported -Werror=unsupported
# While musl does support _GNU_SOURCE,
# here is a good place to see how well BookmarkFS works with a non-GNU libc.
BUILD_CPPFLAGS: -D_DEFAULT_SOURCE
@ -36,7 +36,8 @@ tasks:
--enable-bookmarkfs-fsck --enable-bookmarkfs-mkfs \
--enable-bookmarkctl --enable-fsck-handler-tcl \
--enable-backend-firefox --enable-backend-chromium \
CC=tcc CFLAGS="$BUILD_CFLAGS" CPPFLAGS="$BUILD_CPPFLAGS"
CFLAGS="$BUILD_CFLAGS" CPPFLAGS="$BUILD_CPPFLAGS" \
CC=tcc LD=tcc MAKE=pdpmake
- build: |
cd bookmarkfs
pdpmake

View file

@ -19,7 +19,8 @@ environment:
BUILD_CFLAGS: >-
-std=c99 -O0 -g -Wall -Wextra -Wpedantic -Wshadow
-fsanitize=address,undefined -fno-sanitize-recover
BUILD_CPPFLAGS: ""
# Workaround for libiconv. See INSTALL.md for details.
BUILD_CPPFLAGS: -D_LIBICONV_H -include /usr/include/iconv.h
tasks:
# Unlike Debian, FreeBSD Ports does not have a "dependency package" concept,
# and we have to manually create a symlink for Tcl's pkg-config file.