git: 62f3971e6c06 - stable/14 - libarchive: Clean up the build configuration
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 08 Jun 2026 23:01:09 UTC
The branch stable/14 has been updated by des:
URL: https://cgit.FreeBSD.org/src/commit/?id=62f3971e6c062d67660e4236e6106cc51e6492f0
commit 62f3971e6c062d67660e4236e6106cc51e6492f0
Author: Dag-Erling Smørgrav <des@FreeBSD.org>
AuthorDate: 2026-06-04 13:12:23 +0000
Commit: Dag-Erling Smørgrav <des@FreeBSD.org>
CommitDate: 2026-06-08 23:00:52 +0000
libarchive: Clean up the build configuration
* Move settings duplicated in libarchive, bsdcat, bsdcpio, bsdtar, and
bsdunzip into libarchive's Makefile.inc.
* Drop some CFLAGS that merely duplicated some of the contents of our
platform configuration header.
MFC after: 1 week
Reviewed by: mm
Differential Revision: https://reviews.freebsd.org/D57307
(cherry picked from commit eb3a0a74a069d0f294e1596504676459282bb308)
libarchive: Fix typo in sed command
MFC after: 1 week
Fixes: eb3a0a74a069 ("libarchive: Clean up the build configuration")
Reported by: Shawn Webb <shawn.webb@hardenedbsd.org>
(cherry picked from commit ba0d22eacd6008e9f3b7395b41056de2423aef3d)
---
lib/libarchive/Makefile | 7 ++-----
lib/libarchive/Makefile.inc | 16 +++++++++++-----
lib/libarchive/tests/Makefile | 8 ++++----
usr.bin/bsdcat/Makefile | 17 ++++++-----------
usr.bin/bsdcat/tests/Makefile | 14 ++++++--------
usr.bin/cpio/Makefile | 18 +++++-------------
usr.bin/cpio/tests/Makefile | 14 ++++++--------
usr.bin/tar/Makefile | 13 +++----------
usr.bin/tar/tests/Makefile | 12 ++++++------
usr.bin/unzip/Makefile | 14 ++++----------
usr.bin/unzip/tests/Makefile | 12 ++++++------
11 files changed, 59 insertions(+), 86 deletions(-)
diff --git a/lib/libarchive/Makefile b/lib/libarchive/Makefile
index fed73c388318..f9c5f758382c 100644
--- a/lib/libarchive/Makefile
+++ b/lib/libarchive/Makefile
@@ -1,7 +1,8 @@
.include <src.opts.mk>
+.include "Makefile.inc"
+
PACKAGE=lib${LIB}
-_LIBARCHIVEDIR= ${SRCTOP}/contrib/libarchive
LIB= archive
@@ -9,10 +10,6 @@ LIB= archive
# It has no real relation to the libarchive version number.
SHLIB_MAJOR= 7
-CFLAGS+= -I${.OBJDIR}
-CFLAGS+= -I${SRCTOP}/sys/contrib/zstd/lib
-.include "Makefile.inc"
-
.if ${MACHINE_ARCH:Marm*} != "" || ${MACHINE_ARCH:Mpowerpc*} != ""
NO_WCAST_ALIGN= yes
.if ${MACHINE_ARCH:M*64*} == ""
diff --git a/lib/libarchive/Makefile.inc b/lib/libarchive/Makefile.inc
index 755a39ec01e8..514ce205d560 100644
--- a/lib/libarchive/Makefile.inc
+++ b/lib/libarchive/Makefile.inc
@@ -2,11 +2,17 @@
# them in sync we can get run-time crashes while running tests due to mismatches
# between structures such as archive_md5_ctx, etc.
-LIBADD= z bz2 lzma bsdxml zstd
-CFLAGS+= -DHAVE_BZLIB_H=1 -DHAVE_LIBLZMA=1 -DHAVE_LZMA_H=1 \
- -DHAVE_ZSTD_H=1 -DHAVE_LIBZSTD=1 -DHAVE_ZSTD_compressStream=1 \
- -DHAVE_SYSCONF=1
-CFLAGS+= -DPLATFORM_CONFIG_H=\"${.CURDIR}/config_freebsd.h\"
+_LIBARCHIVEDIR= ${SRCTOP}/contrib/libarchive
+LIBARCHIVE_VERSION_ONLY_STRING!= \
+ sed -n '/define.*ARCHIVE_VERSION_ONLY_STRING/{s,[^0-9.],,gp;q;}' \
+ ${_LIBARCHIVEDIR}/libarchive/archive.h
+
+LIBADD+= z bz2 lzma bsdxml zstd
+CFLAGS+= -DPLATFORM_CONFIG_H=\"config_freebsd.h\"
+CFLAGS+= -I${SRCTOP}/lib/libarchive
+CFLAGS+= -I${_LIBARCHIVEDIR}/libarchive
+CFLAGS+= -I${_LIBARCHIVEDIR}/libarchive_fe
+CFLAGS+= -I${SRCTOP}/sys/contrib/zstd/lib
.if ${MK_OPENSSL} != "no"
CFLAGS+= -DWITH_OPENSSL
diff --git a/lib/libarchive/tests/Makefile b/lib/libarchive/tests/Makefile
index 3a03725054f4..3210938bc117 100644
--- a/lib/libarchive/tests/Makefile
+++ b/lib/libarchive/tests/Makefile
@@ -1,11 +1,11 @@
.include <src.opts.mk>
+.include "${SRCTOP}/lib/libarchive/Makefile.inc"
+
PACKAGE= tests
WARNS?= 3
-_LIBARCHIVEDIR= ${SRCTOP}/contrib/libarchive
-
ATF_TESTS_SH+= functional_test
TEST_METADATA.functional_test+= timeout="600"
@@ -14,8 +14,8 @@ BINDIR= ${TESTSDIR}
PROGS+= libarchive_test
-CFLAGS+= -I${.CURDIR} -I${.CURDIR:H} -I${.OBJDIR}
-CFLAGS+= -I${_LIBARCHIVEDIR}/libarchive -I${_LIBARCHIVEDIR}/libarchive/test
+CFLAGS+= -I${.OBJDIR}
+CFLAGS+= -I${_LIBARCHIVEDIR}/libarchive/test
CFLAGS+= -I${_LIBARCHIVEDIR}/test_utils
CFLAGS+= -I${SRCTOP}/sys/contrib/zstd/lib
diff --git a/usr.bin/bsdcat/Makefile b/usr.bin/bsdcat/Makefile
index 0377a4c48f5f..ce10aefd4c58 100644
--- a/usr.bin/bsdcat/Makefile
+++ b/usr.bin/bsdcat/Makefile
@@ -1,12 +1,9 @@
.include <src.opts.mk>
-_LIBARCHIVEDIR= ${SRCTOP}/contrib/libarchive
-_LIBARCHIVECONFDIR= ${SRCTOP}/lib/libarchive
+.include "${SRCTOP}/lib/libarchive/Makefile.inc"
PROG= bsdcat
-BSDCAT_VERSION_STRING!= sed -n '/define.*ARCHIVE_VERSION_ONLY_STRING/{s,[^0-9.],,gp;q;}' \
- ${_LIBARCHIVEDIR}/libarchive/archive.h
.PATH: ${_LIBARCHIVEDIR}/cat
SRCS= bsdcat.c cmdline.c
@@ -14,15 +11,13 @@ SRCS= bsdcat.c cmdline.c
.PATH: ${_LIBARCHIVEDIR}/libarchive_fe
SRCS+= lafe_err.c
-CFLAGS+= -DBSDCAT_VERSION_STRING=\"${BSDCAT_VERSION_STRING}\"
-CFLAGS+= -DPLATFORM_CONFIG_H=\"${_LIBARCHIVECONFDIR}/config_freebsd.h\"
-CFLAGS+= -I${_LIBARCHIVEDIR}/cat -I${_LIBARCHIVEDIR}/libarchive_fe
-
LIBADD= archive
-.if ${MK_ICONV} != "no"
-CFLAGS+= -DHAVE_ICONV=1 -DHAVE_ICONV_H=1 -DICONV_CONST=const
-.endif
+CFLAGS+= -DBSDCAT_VERSION_STRING=\"${LIBARCHIVE_VERSION_ONLY_STRING}\"
+CFLAGS+= -I${_LIBARCHIVEDIR}/cat
+
+#SYMLINKS=bsdcat ${BINDIR}/cat
+#MLINKS= bsdcat.1 cat.1
HAS_TESTS=
SUBDIR.${MK_TESTS}+= tests
diff --git a/usr.bin/bsdcat/tests/Makefile b/usr.bin/bsdcat/tests/Makefile
index 02382137aa16..f75ebeac2aea 100644
--- a/usr.bin/bsdcat/tests/Makefile
+++ b/usr.bin/bsdcat/tests/Makefile
@@ -1,7 +1,8 @@
+.include <src.opts.mk>
-PACKAGE= tests
+.include "${SRCTOP}/lib/libarchive/Makefile.inc"
-_LIBARCHIVEDIR= ${SRCTOP}/contrib/libarchive
+PACKAGE= tests
ATF_TESTS_SH+= functional_test
@@ -9,13 +10,10 @@ BINDIR= ${TESTSDIR}
PROGS+= bsdcat_test
-CFLAGS+= -DPLATFORM_CONFIG_H=\"${SRCTOP}/lib/libarchive/config_freebsd.h\"
-CFLAGS+= -I${SRCTOP}/lib/libarchive -I${.OBJDIR}
-
CFLAGS+= -I${.OBJDIR}
-CFLAGS+= -I${_LIBARCHIVEDIR}/cat -I${_LIBARCHIVEDIR}/cat/test
-CFLAGS+= -I${_LIBARCHIVEDIR}/libarchive
-CFLAGS+= -I${_LIBARCHIVEDIR}/libarchive_fe -I${_LIBARCHIVEDIR}/test_utils
+CFLAGS+= -I${_LIBARCHIVEDIR}/cat
+CFLAGS+= -I${_LIBARCHIVEDIR}/cat/test
+CFLAGS+= -I${_LIBARCHIVEDIR}/test_utils
CFLAGS.test_utils.c+= -Wno-cast-align
diff --git a/usr.bin/cpio/Makefile b/usr.bin/cpio/Makefile
index a52a12ea361b..594bd86fdbd5 100644
--- a/usr.bin/cpio/Makefile
+++ b/usr.bin/cpio/Makefile
@@ -1,12 +1,9 @@
.include <src.opts.mk>
-_LIBARCHIVEDIR= ${SRCTOP}/contrib/libarchive
-_LIBARCHIVECONFDIR= ${SRCTOP}/lib/libarchive
+.include "${SRCTOP}/lib/libarchive/Makefile.inc"
PROG= bsdcpio
-BSDCPIO_VERSION_STRING!= sed -n '/define.*ARCHIVE_VERSION_ONLY_STRING/{s,[^0-9.],,gp;q;}' \
- ${_LIBARCHIVEDIR}/libarchive/archive.h
.PATH: ${_LIBARCHIVEDIR}/cpio
SRCS= cpio.c cmdline.c
@@ -14,18 +11,13 @@ SRCS= cpio.c cmdline.c
.PATH: ${_LIBARCHIVEDIR}/libarchive_fe
SRCS+= lafe_err.c line_reader.c passphrase.c
-CFLAGS+= -DBSDCPIO_VERSION_STRING=\"${BSDCPIO_VERSION_STRING}\"
-CFLAGS+= -DPLATFORM_CONFIG_H=\"${_LIBARCHIVECONFDIR}/config_freebsd.h\"
-CFLAGS+= -I${_LIBARCHIVEDIR}/cpio -I${_LIBARCHIVEDIR}/libarchive_fe
-
LIBADD= archive
-.if ${MK_ICONV} != "no"
-CFLAGS+= -DHAVE_ICONV=1 -DHAVE_ICONV_H=1 -DICONV_CONST=const
-.endif
+CFLAGS+= -DBSDCPIO_VERSION_STRING=\"${LIBARCHIVE_VERSION_ONLY_STRING}\"
+CFLAGS+= -I${_LIBARCHIVEDIR}/tar
-SYMLINKS=bsdcpio ${BINDIR}/cpio
-MLINKS= bsdcpio.1 cpio.1
+SYMLINKS= bsdcpio ${BINDIR}/cpio
+MLINKS= bsdcpio.1 cpio.1
HAS_TESTS=
SUBDIR.${MK_TESTS}+= tests
diff --git a/usr.bin/cpio/tests/Makefile b/usr.bin/cpio/tests/Makefile
index e06f7fc34de3..0db109c1e379 100644
--- a/usr.bin/cpio/tests/Makefile
+++ b/usr.bin/cpio/tests/Makefile
@@ -1,7 +1,8 @@
+.include <src.opts.mk>
-PACKAGE= tests
+.include "${SRCTOP}/lib/libarchive/Makefile.inc"
-_LIBARCHIVEDIR= ${SRCTOP}/contrib/libarchive
+PACKAGE= tests
ATF_TESTS_SH+= functional_test
@@ -9,13 +10,10 @@ BINDIR= ${TESTSDIR}
PROGS+= bsdcpio_test
-CFLAGS+= -DPLATFORM_CONFIG_H=\"${SRCTOP}/lib/libarchive/config_freebsd.h\"
-CFLAGS+= -I${SRCTOP}/lib/libarchive -I${.OBJDIR}
-
CFLAGS+= -I${.OBJDIR}
-CFLAGS+= -I${_LIBARCHIVEDIR}/cpio -I${_LIBARCHIVEDIR}/cpio/test
-CFLAGS+= -I${_LIBARCHIVEDIR}/libarchive
-CFLAGS+= -I${_LIBARCHIVEDIR}/libarchive_fe -I${_LIBARCHIVEDIR}/test_utils
+CFLAGS+= -I${_LIBARCHIVEDIR}/cpio
+CFLAGS+= -I${_LIBARCHIVEDIR}/cpio/test
+CFLAGS+= -I${_LIBARCHIVEDIR}/test_utils
# Uncomment to link against dmalloc
#LDADD+= -L/usr/local/lib -ldmalloc
diff --git a/usr.bin/tar/Makefile b/usr.bin/tar/Makefile
index 8b0d3e4a6cf0..0452e084bee2 100644
--- a/usr.bin/tar/Makefile
+++ b/usr.bin/tar/Makefile
@@ -1,11 +1,9 @@
.include <src.opts.mk>
-_LIBARCHIVEDIR= ${SRCTOP}/contrib/libarchive
+.include "${SRCTOP}/lib/libarchive/Makefile.inc"
PACKAGE= runtime
PROG= bsdtar
-BSDTAR_VERSION_STRING!= sed -n '/define.*ARCHIVE_VERSION_ONLY_STRING/{s,[^0-9.],,gp;q;}' \
- ${_LIBARCHIVEDIR}/libarchive/archive.h
.PATH: ${_LIBARCHIVEDIR}/tar
SRCS= bsdtar.c \
@@ -23,14 +21,9 @@ SRCS+= lafe_err.c \
LIBADD= archive
-.if ${MK_ICONV} != "no"
-CFLAGS+= -DHAVE_ICONV=1 -DHAVE_ICONV_H=1 -DICONV_CONST=const
-.endif
+CFLAGS+= -DBSDTAR_VERSION_STRING=\"${LIBARCHIVE_VERSION_ONLY_STRING}\"
+CFLAGS+= -I${_LIBARCHIVEDIR}/tar
-CFLAGS+= -DBSDTAR_VERSION_STRING=\"${BSDTAR_VERSION_STRING}\"
-CFLAGS+= -DPLATFORM_CONFIG_H=\"${SRCTOP}/lib/libarchive/config_freebsd.h\"
-CFLAGS+= -I${_LIBARCHIVEDIR}/tar -I${_LIBARCHIVEDIR}/libarchive
-CFLAGS+= -I${_LIBARCHIVEDIR}/libarchive_fe
SYMLINKS= bsdtar ${BINDIR}/tar
MLINKS= bsdtar.1 tar.1
diff --git a/usr.bin/tar/tests/Makefile b/usr.bin/tar/tests/Makefile
index fe3dd3e8e6ed..45db3abf7bc2 100644
--- a/usr.bin/tar/tests/Makefile
+++ b/usr.bin/tar/tests/Makefile
@@ -1,18 +1,18 @@
+.include <src.opts.mk>
+
+.include "${SRCTOP}/lib/libarchive/Makefile.inc"
PACKAGE= tests
WARNS?= 3
-_LIBARCHIVEDIR= ${SRCTOP}/contrib/libarchive
-
ATF_TESTS_SH+= functional_test
BINDIR= ${TESTSDIR}
-CFLAGS+= -DPLATFORM_CONFIG_H=\"${SRCTOP}/lib/libarchive/config_freebsd.h\"
-CFLAGS+= -I${SRCTOP}/lib/libarchive -I${.OBJDIR}
-CFLAGS+= -I${_LIBARCHIVEDIR}/libarchive
-CFLAGS+= -I${_LIBARCHIVEDIR}/tar -I${_LIBARCHIVEDIR}/tar/test
+CFLAGS+= -I${.OBJDIR}
+CFLAGS+= -I${_LIBARCHIVEDIR}/tar
+CFLAGS+= -I${_LIBARCHIVEDIR}/tar/test
CFLAGS+= -I${_LIBARCHIVEDIR}/test_utils
CFLAGS.test_utils.c+= -Wno-cast-align
diff --git a/usr.bin/unzip/Makefile b/usr.bin/unzip/Makefile
index e359ca162e73..bf00df8f1eee 100644
--- a/usr.bin/unzip/Makefile
+++ b/usr.bin/unzip/Makefile
@@ -1,26 +1,21 @@
.include <src.opts.mk>
-_LIBARCHIVEDIR= ${SRCTOP}/contrib/libarchive
-_LIBARCHIVECONFDIR= ${SRCTOP}/lib/libarchive
+.include "${SRCTOP}/lib/libarchive/Makefile.inc"
PROG= bsdunzip
-BSDUNZIP_VERSION_STRING!= sed -n '/define.*ARCHIVE_VERSION_ONLY_STRING/{s,[^0-9.],,gp;q;}' \
- ${_LIBARCHIVEDIR}/libarchive/archive.h
-
.PATH: ${_LIBARCHIVEDIR}/unzip
SRCS= bsdunzip.c
.PATH: ${_LIBARCHIVEDIR}/libarchive_fe
SRCS+= cmdline.c lafe_err.c lafe_getline.c passphrase.c
-CFLAGS+= -DBSDUNZIP_VERSION_STRING=\"${BSDUNZIP_VERSION_STRING}\"
-CFLAGS+= -DPLATFORM_CONFIG_H=\"${_LIBARCHIVECONFDIR}/config_freebsd.h\"
-CFLAGS+= -I${_LIBARCHIVEDIR}/unzip -I${_LIBARCHIVEDIR}/libarchive_fe
-
LIBADD= archive
+CFLAGS+= -DBSDUNZIP_VERSION_STRING=\"${LIBARCHIVE_VERSION_ONLY_STRING}\"
+CFLAGS+= -I${_LIBARCHIVEDIR}/unzip
+
SYMLINKS=bsdunzip ${BINDIR}/unzip
MLINKS= bsdunzip.1 unzip.1
@@ -28,4 +23,3 @@ HAS_TESTS=
SUBDIR.${MK_TESTS}+= tests
.include <bsd.prog.mk>
-# DO NOT DELETE
diff --git a/usr.bin/unzip/tests/Makefile b/usr.bin/unzip/tests/Makefile
index fd5254a55912..0e55c49d07b5 100644
--- a/usr.bin/unzip/tests/Makefile
+++ b/usr.bin/unzip/tests/Makefile
@@ -1,3 +1,6 @@
+.include <src.opts.mk>
+
+.include "${SRCTOP}/lib/libarchive/Makefile.inc"
PACKAGE= tests
@@ -9,13 +12,10 @@ BINDIR= ${TESTSDIR}
PROGS+= bsdunzip_test
-CFLAGS+= -DPLATFORM_CONFIG_H=\"${SRCTOP}/lib/libarchive/config_freebsd.h\"
-CFLAGS+= -I${SRCTOP}/lib/libarchive -I${.OBJDIR}
-
CFLAGS+= -I${.OBJDIR}
-CFLAGS+= -I${_LIBARCHIVEDIR}/unzip -I${_LIBARCHIVEDIR}/unzip/test
-CFLAGS+= -I${_LIBARCHIVEDIR}/libarchive
-CFLAGS+= -I${_LIBARCHIVEDIR}/libarchive_fe -I${_LIBARCHIVEDIR}/test_utils
+CFLAGS+= -I${_LIBARCHIVEDIR}/unzip
+CFLAGS+= -I${_LIBARCHIVEDIR}/unzip/test
+CFLAGS+= -I${_LIBARCHIVEDIR}/test_utils
# Uncomment to link against dmalloc
#LDADD+= -L/usr/local/lib -ldmalloc