git: 22548a3b8070 - stable/13 - Simplify and speed up the kyua build

Alex Richardson arichardson at FreeBSD.org
Thu Aug 5 09:25:44 UTC 2021


The branch stable/13 has been updated by arichardson:

URL: https://cgit.FreeBSD.org/src/commit/?id=22548a3b807084fe67f8ec4d9e9094fcef868e12

commit 22548a3b807084fe67f8ec4d9e9094fcef868e12
Author:     Alex Richardson <arichardson at FreeBSD.org>
AuthorDate: 2021-07-02 08:21:04 +0000
Commit:     Alex Richardson <arichardson at FreeBSD.org>
CommitDate: 2021-08-05 08:56:47 +0000

    Simplify and speed up the kyua build
    
    Instead of having multiple kyua libraries, just include the files as part
    of usr.bin/kyua. Previously, we would build each kyua source up to four
    times: once as a .o file and once as a .pieo. Additionally, the kyua
    libraries might be built again for compat32. As all the kyua libraries
    amount to 102 C++ sources the build time is significant (especially when
    using an assertions enabled compiler). This change ensures that we build
    306 fewer .cpp source files as part of buildworld.
    
    Reviewed By:    brooks
    MFC after:      1 week
    Differential Revision: https://reviews.freebsd.org/D30967
    
    Remove lib/kyua from the build
    
    I forgot to include this line in 2eb9ad427475190e87d026de4ca7fc296947f2a0.
    
    Reported by:    Jenkins CI
    MFC after:      1 week
    Fixes:          2eb9ad427475190ei ("Simplify and speed up the kyua build")
    
    Revert "Remove lib/kyua from the build"
    
    Accidentally removed it from the wrong file...
    
    This reverts commit 8ec4ba8a76aaf256942ac5996d45cc29022641ae.
    
    Remove lib/kyua from the build
    
    I forgot to include this line in 2eb9ad427475190e87d026de4ca7fc296947f2a0.
    
    Reported by:    Jenkins CI
    MFC after:      1 week
    Fixes:          2eb9ad427475190ei ("Simplify and speed up the kyua build")
    
    (cherry picked from commit 2eb9ad427475190e87d026de4ca7fc296947f2a0)
    (cherry picked from commit 8ec4ba8a76aaf256942ac5996d45cc29022641ae)
    (cherry picked from commit 89da04fcaa33f100a60d06770f7424e5b7f1312f)
    (cherry picked from commit c951566915886330612bee880d6ece0d65bf9f5d)
---
 lib/Makefile                         |   1 -
 lib/kyua/Makefile                    |  10 ---
 lib/kyua/Makefile.inc                |  20 -----
 lib/kyua/Makefile.kyua               |  11 ---
 lib/kyua/cli/Makefile                |  29 --------
 lib/kyua/drivers/Makefile            |  12 ---
 lib/kyua/engine/Makefile             |  22 ------
 lib/kyua/model/Makefile              |  13 ----
 lib/kyua/store/Makefile              |  18 -----
 lib/kyua/utils/Makefile              |  65 ----------------
 share/mk/src.libnames.mk             |  30 --------
 usr.bin/kyua/Makefile                | 140 +++++++++++++++++++++++++++++++++--
 {lib => usr.bin}/kyua/config.h       |   0
 {lib => usr.bin}/kyua/utils/defs.hpp |   0
 14 files changed, 135 insertions(+), 236 deletions(-)

diff --git a/lib/Makefile b/lib/Makefile
index 35cba77d7d06..3c218415d9ca 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -216,7 +216,6 @@ SUBDIR.${MK_RADIUS_SUPPORT}+=	libradius
 SUBDIR.${MK_SENDMAIL}+=	libmilter libsm libsmdb libsmutil
 SUBDIR.${MK_TELNET}+=	libtelnet
 SUBDIR.${MK_TESTS_SUPPORT}+=	atf
-SUBDIR.${MK_TESTS_SUPPORT}.${MK_CXX}+=	kyua
 SUBDIR.${MK_TESTS_SUPPORT}.${MK_CXX}+=	liblutok
 SUBDIR.${MK_TESTS}+=	tests
 SUBDIR.${MK_UNBOUND}+=	libunbound
diff --git a/lib/kyua/Makefile b/lib/kyua/Makefile
deleted file mode 100644
index 1a1ea8bf5828..000000000000
--- a/lib/kyua/Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
-# $FreeBSD$
-
-SUBDIR=		cli	\
-		drivers	\
-		engine	\
-		model	\
-		store	\
-		utils
-
-.include <bsd.subdir.mk>
diff --git a/lib/kyua/Makefile.inc b/lib/kyua/Makefile.inc
deleted file mode 100644
index 52f19d3140b3..000000000000
--- a/lib/kyua/Makefile.inc
+++ /dev/null
@@ -1,20 +0,0 @@
-# $FreeBSD$
-
-KYUA_LIBDIR:=	${.PARSEDIR}
-
-.include "${KYUA_LIBDIR}/Makefile.kyua"
-
-LIB_CXX=        kyua_${KYUA_LIB}
-INTERNALLIB=
-
-.PATH: ${KYUA_SRCDIR}/${KYUA_LIB}
-CFLAGS+=	-I${KYUA_LIBDIR} \
-		-I${KYUA_SRCDIR} \
-		-I${SRCTOP}/contrib/lutok/include
-
-CFLAGS+=	-DHAVE_CONFIG_H
-
-# kyua uses auto_ptr
-CFLAGS+=        -Wno-deprecated-declarations
-
-.include "${.PARSEDIR}/../Makefile.inc"
diff --git a/lib/kyua/Makefile.kyua b/lib/kyua/Makefile.kyua
deleted file mode 100644
index 1fd30a135409..000000000000
--- a/lib/kyua/Makefile.kyua
+++ /dev/null
@@ -1,11 +0,0 @@
-# $FreeBSD$
-
-KYUA_VERSION=	0.13
-
-KYUA_CONFDIR=	/etc/kyua
-KYUA_DOCDIR=	/usr/share/doc/kyua
-KYUA_EGDIR=	/usr/share/examples/kyua
-KYUA_MISCDIR=	/usr/share/kyua/misc
-KYUA_STOREDIR=	/usr/share/kyua/store
-
-KYUA_SRCDIR=	${SRCTOP}/contrib/kyua
diff --git a/lib/kyua/cli/Makefile b/lib/kyua/cli/Makefile
deleted file mode 100644
index b5de51607c12..000000000000
--- a/lib/kyua/cli/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-# $FreeBSD$
-
-KYUA_LIB=	cli
-INTERNALLIB=
-LIBADD=		kyua_drivers kyua_engine kyua_model kyua_store kyua_utils
-CFLAGS+=	-DKYUA_CONFDIR=\"${KYUA_CONFDIR}\"		\
-		-DKYUA_DOCDIR=\"${KYUA_DOCDIR}\"		\
-		-DKYUA_MISCDIR=\"${KYUA_MISCDIR}\"		\
-		-DPACKAGE=\"kyua\"				\
-		-DPACKAGE_NAME=\"Kyua\"				\
-		-DPACKAGE_VERSION=\"${KYUA_VERSION}\"		\
-		-DVERSION=\"${KYUA_VERSION}\"
-
-SRCS=	cmd_about.cpp		\
-	cmd_config.cpp		\
-	cmd_db_exec.cpp		\
-	cmd_db_migrate.cpp	\
-	cmd_debug.cpp		\
-	cmd_help.cpp		\
-	cmd_list.cpp		\
-	cmd_report.cpp		\
-	cmd_report_html.cpp	\
-	cmd_report_junit.cpp	\
-	cmd_test.cpp		\
-	common.cpp		\
-	config.cpp		\
-	main.cpp
-
-.include <bsd.lib.mk>
diff --git a/lib/kyua/drivers/Makefile b/lib/kyua/drivers/Makefile
deleted file mode 100644
index adf9c0601269..000000000000
--- a/lib/kyua/drivers/Makefile
+++ /dev/null
@@ -1,12 +0,0 @@
-# $FreeBSD$
-
-KYUA_LIB=	drivers
-LIBADD=		kyua_model kyua_engine kyua_store
-
-SRCS=	debug_test.cpp		\
-	list_tests.cpp		\
-	report_junit.cpp	\
-	run_tests.cpp		\
-	scan_results.cpp
-
-.include <bsd.lib.mk>
diff --git a/lib/kyua/engine/Makefile b/lib/kyua/engine/Makefile
deleted file mode 100644
index 4f0c9053c692..000000000000
--- a/lib/kyua/engine/Makefile
+++ /dev/null
@@ -1,22 +0,0 @@
-# $FreeBSD$
-
-KYUA_LIB=	engine
-LIBADD=		lutok kyua_utils
-CFLAGS=		-DKYUA_ARCHITECTURE=\"${MACHINE_ARCH}\"	\
-		-DKYUA_PLATFORM=\"${MACHINE}\"
-
-SRCS=	atf.cpp			\
-	atf_list.cpp		\
-	atf_result.cpp		\
-	config.cpp		\
-	exceptions.cpp		\
-	filters.cpp		\
-	kyuafile.cpp		\
-	plain.cpp		\
-	requirements.cpp	\
-	scanner.cpp		\
-	tap.cpp			\
-	tap_parser.cpp		\
-	scheduler.cpp
-
-.include <bsd.lib.mk>
diff --git a/lib/kyua/model/Makefile b/lib/kyua/model/Makefile
deleted file mode 100644
index d4a0b91587e7..000000000000
--- a/lib/kyua/model/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-# $FreeBSD$
-
-KYUA_LIB=	model
-LIBADD=		lutok
-
-SRCS=	context.cpp		\
-	exceptions.cpp		\
-	metadata.cpp		\
-	test_case.cpp		\
-	test_program.cpp	\
-	test_result.cpp
-
-.include <bsd.lib.mk>
diff --git a/lib/kyua/store/Makefile b/lib/kyua/store/Makefile
deleted file mode 100644
index 39753691873e..000000000000
--- a/lib/kyua/store/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-# $FreeBSD$
-
-KYUA_LIB=	store
-LIBADD=		kyua_model kyua_utils sqlite3
-
-CFLAGS+=	-DKYUA_STOREDIR=\"${KYUA_STOREDIR}\"
-
-SRCS=	dbtypes.cpp		\
-	exceptions.cpp		\
-	layout.cpp		\
-	metadata.cpp		\
-	migrate.cpp		\
-	read_backend.cpp	\
-	read_transaction.cpp	\
-	write_backend.cpp	\
-	write_transaction.cpp
-
-.include <bsd.lib.mk>
diff --git a/lib/kyua/utils/Makefile b/lib/kyua/utils/Makefile
deleted file mode 100644
index 740b395d6951..000000000000
--- a/lib/kyua/utils/Makefile
+++ /dev/null
@@ -1,65 +0,0 @@
-# $FreeBSD$
-
-KYUA_LIB=	utils
-LIBADD=		lutok
-
-CFLAGS+=	-I${SRCTOP}/contrib/sqlite3
-CFLAGS+=	-DGDB=\"/usr/local/bin/gdb\"
-
-SRCS=	datetime.cpp			\
-	env.cpp				\
-	memory.cpp			\
-	passwd.cpp			\
-	sanity.cpp			\
-	stacktrace.cpp			\
-	stream.cpp			\
-	units.cpp			\
-	cmdline/base_command.cpp	\
-	cmdline/exceptions.cpp		\
-	cmdline/globals.cpp		\
-	cmdline/options.cpp		\
-	cmdline/parser.cpp		\
-	cmdline/ui.cpp			\
-	cmdline/ui_mock.cpp		\
-	config/exceptions.cpp		\
-	config/keys.cpp			\
-	config/lua_module.cpp		\
-	config/nodes.cpp		\
-	config/parser.cpp		\
-	config/tree.cpp			\
-	format/exceptions.cpp		\
-	format/formatter.cpp		\
-	fs/auto_cleaners.cpp		\
-	fs/directory.cpp		\
-	fs/exceptions.cpp		\
-	fs/lua_module.cpp		\
-	fs/operations.cpp		\
-	fs/path.cpp			\
-	logging/operations.cpp		\
-	process/child.cpp		\
-	process/deadline_killer.cpp	\
-	process/exceptions.cpp		\
-	process/executor.cpp		\
-	process/fdstream.cpp		\
-	process/isolation.cpp		\
-	process/operations.cpp		\
-	process/status.cpp		\
-	process/system.cpp		\
-	process/systembuf.cpp		\
-	signals/exceptions.cpp		\
-	signals/interrupts.cpp		\
-	signals/misc.cpp		\
-	signals/programmer.cpp		\
-	signals/timer.cpp		\
-	sqlite/c_gate.cpp		\
-	sqlite/database.cpp		\
-	sqlite/exceptions.cpp		\
-	sqlite/statement.cpp		\
-	sqlite/transaction.cpp		\
-	text/exceptions.cpp		\
-	text/operations.cpp		\
-	text/regex.cpp			\
-	text/table.cpp			\
-	text/templates.cpp		\
-
-.include <bsd.lib.mk>
diff --git a/share/mk/src.libnames.mk b/share/mk/src.libnames.mk
index 249443f1dcf2..93ae9caf1a2d 100644
--- a/share/mk/src.libnames.mk
+++ b/share/mk/src.libnames.mk
@@ -41,12 +41,6 @@ _INTERNALLIBS=	\
 		fifolog \
 		ifconfig \
 		ipf \
-		kyua_cli \
-		kyua_drivers \
-		kyua_engine \
-		kyua_model \
-		kyua_store \
-		kyua_utils \
 		lpr \
 		lua \
 		lutok \
@@ -270,12 +264,6 @@ _DP_bsnmp=	crypto
 _DP_geom=	bsdxml sbuf
 _DP_cam=	sbuf
 _DP_kvm=	elf
-_DP_kyua_cli=		kyua_drivers kyua_engine kyua_model kyua_store kyua_utils
-_DP_kyua_drivers=	kyua_model kyua_engine kyua_store
-_DP_kyua_engine=	lutok kyua_utils
-_DP_kyua_model=		lutok
-_DP_kyua_utils=		lutok
-_DP_kyua_store=		kyua_model kyua_utils sqlite3
 _DP_casper=	nv
 _DP_cap_dns=	nv
 _DP_cap_fileargs=	nv
@@ -498,24 +486,6 @@ _LIB_OBJTOP?=	${OBJTOP}
 LIBELFTCDIR=	${_LIB_OBJTOP}/lib/libelftc
 LIBELFTC?=	${LIBELFTCDIR}/libelftc${PIE_SUFFIX}.a
 
-LIBKYUA_CLIDIR=	${_LIB_OBJTOP}/lib/kyua/cli
-LIBKYUA_CLI?=	${LIBKYUA_CLIDIR}/libkyua_cli${PIE_SUFFIX}.a
-
-LIBKYUA_DRIVERSDIR=	${_LIB_OBJTOP}/lib/kyua/drivers
-LIBKYUA_DRIVERS?=	${LIBKYUA_DRIVERSDIR}/libkyua_drivers${PIE_SUFFIX}.a
-
-LIBKYUA_ENGINEDIR=	${_LIB_OBJTOP}/lib/kyua/engine
-LIBKYUA_ENGINE?=	${LIBKYUA_ENGINEDIR}/libkyua_engine${PIE_SUFFIX}.a
-
-LIBKYUA_MODELDIR=	${_LIB_OBJTOP}/lib/kyua/model
-LIBKYUA_MODEL?=		${LIBKYUA_MODELDIR}/libkyua_model${PIE_SUFFIX}.a
-
-LIBKYUA_STOREDIR=	${_LIB_OBJTOP}/lib/kyua/store
-LIBKYUA_STORE?=		${LIBKYUA_STOREDIR}/libkyua_store${PIE_SUFFIX}.a
-
-LIBKYUA_UTILSDIR=	${_LIB_OBJTOP}/lib/kyua/utils
-LIBKYUA_UTILS?=		${LIBKYUA_UTILSDIR}/libkyua_utils${PIE_SUFFIX}.a
-
 LIBLUADIR=	${_LIB_OBJTOP}/lib/liblua
 LIBLUA?=	${LIBLUADIR}/liblua${PIE_SUFFIX}.a
 
diff --git a/usr.bin/kyua/Makefile b/usr.bin/kyua/Makefile
index e27c8603f11b..966927709a06 100644
--- a/usr.bin/kyua/Makefile
+++ b/usr.bin/kyua/Makefile
@@ -2,14 +2,20 @@
 
 .include <src.opts.mk>
 
-.include "${SRCTOP}/lib/kyua/Makefile.kyua"
-
+KYUA_CONFDIR=	/etc/kyua
+KYUA_DOCDIR=	/usr/share/doc/kyua
+KYUA_EGDIR=	/usr/share/examples/kyua
+KYUA_MISCDIR=	/usr/share/kyua/misc
+KYUA_STOREDIR=	/usr/share/kyua/store
+KYUA_VERSION=	0.13
+
+KYUA_SRCDIR=	${SRCTOP}/contrib/kyua
 .PATH: ${KYUA_SRCDIR}
 
 PACKAGE=	tests
 PROG_CXX=	kyua
 SRCS=		main.cpp
-LIBADD=		kyua_cli kyua_drivers kyua_engine kyua_model kyua_store
+LIBADD=		lutok sqlite3
 
 MAN=		kyua-about.1 \
 		kyua-config.1 \
@@ -26,10 +32,134 @@ MAN=		kyua-about.1 \
 		kyua.conf.5 \
 		kyuafile.5
 
-CFLAGS+=	-I${KYUA_SRCDIR}
-
+CFLAGS+=	-I${KYUA_SRCDIR} -I${.CURDIR}
+CFLAGS+=	-I${SRCTOP}/contrib/lutok/include
+CFLAGS+=	-I${SRCTOP}/contrib/sqlite3
 # kyua uses auto_ptr
 CFLAGS+=	-Wno-deprecated-declarations
+CFLAGS+=	-DHAVE_CONFIG_H
+
+# We compile the kyua libraries as part of the main executable as this saves
+# compile time and we don't install them anyway.
+CFLAGS+=	-DGDB=\"/usr/local/bin/gdb\"			\
+		-DKYUA_ARCHITECTURE=\"${MACHINE_ARCH}\"		\
+		-DKYUA_CONFDIR=\"${KYUA_CONFDIR}\"		\
+		-DKYUA_DOCDIR=\"${KYUA_DOCDIR}\"		\
+		-DKYUA_MISCDIR=\"${KYUA_MISCDIR}\"		\
+		-DKYUA_PLATFORM=\"${MACHINE}\"			\
+		-DKYUA_STOREDIR=\"${KYUA_STOREDIR}\"		\
+		-DPACKAGE=\"kyua\"				\
+		-DPACKAGE_NAME=\"Kyua\"				\
+		-DPACKAGE_VERSION=\"${KYUA_VERSION}\"		\
+		-DVERSION=\"${KYUA_VERSION}\"
+
+SRCS+=	utils/datetime.cpp			\
+	utils/env.cpp				\
+	utils/memory.cpp			\
+	utils/passwd.cpp			\
+	utils/sanity.cpp			\
+	utils/stacktrace.cpp			\
+	utils/stream.cpp			\
+	utils/units.cpp				\
+	utils/cmdline/base_command.cpp		\
+	utils/cmdline/exceptions.cpp		\
+	utils/cmdline/globals.cpp		\
+	utils/cmdline/options.cpp		\
+	utils/cmdline/parser.cpp		\
+	utils/cmdline/ui.cpp			\
+	utils/cmdline/ui_mock.cpp		\
+	utils/config/exceptions.cpp		\
+	utils/config/keys.cpp			\
+	utils/config/lua_module.cpp		\
+	utils/config/nodes.cpp			\
+	utils/config/parser.cpp			\
+	utils/config/tree.cpp			\
+	utils/format/exceptions.cpp		\
+	utils/format/formatter.cpp		\
+	utils/fs/auto_cleaners.cpp		\
+	utils/fs/directory.cpp			\
+	utils/fs/exceptions.cpp			\
+	utils/fs/lua_module.cpp			\
+	utils/fs/operations.cpp			\
+	utils/fs/path.cpp			\
+	utils/logging/operations.cpp		\
+	utils/process/child.cpp			\
+	utils/process/deadline_killer.cpp	\
+	utils/process/exceptions.cpp		\
+	utils/process/executor.cpp		\
+	utils/process/fdstream.cpp		\
+	utils/process/isolation.cpp		\
+	utils/process/operations.cpp		\
+	utils/process/status.cpp		\
+	utils/process/system.cpp		\
+	utils/process/systembuf.cpp		\
+	utils/signals/exceptions.cpp		\
+	utils/signals/interrupts.cpp		\
+	utils/signals/misc.cpp			\
+	utils/signals/programmer.cpp		\
+	utils/signals/timer.cpp			\
+	utils/sqlite/c_gate.cpp			\
+	utils/sqlite/database.cpp		\
+	utils/sqlite/exceptions.cpp		\
+	utils/sqlite/statement.cpp		\
+	utils/sqlite/transaction.cpp		\
+	utils/text/exceptions.cpp		\
+	utils/text/operations.cpp		\
+	utils/text/regex.cpp			\
+	utils/text/table.cpp			\
+	utils/text/templates.cpp
+
+SRCS+=	model/context.cpp	\
+	model/exceptions.cpp	\
+	model/metadata.cpp	\
+	model/test_case.cpp	\
+	model/test_program.cpp	\
+	model/test_result.cpp
+
+SRCS+=	engine/atf.cpp			\
+	engine/atf_list.cpp		\
+	engine/atf_result.cpp		\
+	engine/config.cpp		\
+	engine/exceptions.cpp		\
+	engine/filters.cpp		\
+	engine/kyuafile.cpp		\
+	engine/plain.cpp		\
+	engine/requirements.cpp		\
+	engine/scanner.cpp		\
+	engine/tap.cpp			\
+	engine/tap_parser.cpp		\
+	engine/scheduler.cpp
+
+SRCS+=	store/dbtypes.cpp		\
+	store/exceptions.cpp		\
+	store/layout.cpp		\
+	store/metadata.cpp		\
+	store/migrate.cpp		\
+	store/read_backend.cpp		\
+	store/read_transaction.cpp	\
+	store/write_backend.cpp		\
+	store/write_transaction.cpp
+
+SRCS+=	drivers/debug_test.cpp		\
+	drivers/list_tests.cpp		\
+	drivers/report_junit.cpp	\
+	drivers/run_tests.cpp		\
+	drivers/scan_results.cpp
+
+SRCS+=	cli/cmd_about.cpp		\
+	cli/cmd_config.cpp		\
+	cli/cmd_db_exec.cpp		\
+	cli/cmd_db_migrate.cpp		\
+	cli/cmd_debug.cpp		\
+	cli/cmd_help.cpp		\
+	cli/cmd_list.cpp		\
+	cli/cmd_report.cpp		\
+	cli/cmd_report_html.cpp		\
+	cli/cmd_report_junit.cpp	\
+	cli/cmd_test.cpp		\
+	cli/common.cpp			\
+	cli/config.cpp			\
+	cli/main.cpp
 
 FILESGROUPS=	DOCS MISC STORE
 
diff --git a/lib/kyua/config.h b/usr.bin/kyua/config.h
similarity index 100%
rename from lib/kyua/config.h
rename to usr.bin/kyua/config.h
diff --git a/lib/kyua/utils/defs.hpp b/usr.bin/kyua/utils/defs.hpp
similarity index 100%
rename from lib/kyua/utils/defs.hpp
rename to usr.bin/kyua/utils/defs.hpp


More information about the dev-commits-src-all mailing list