From nobody Mon Sep 18 18:40:27 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RqDBN12Djz4tbDp; Mon, 18 Sep 2023 18:40:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4RqDBM75pdz3gWh; Mon, 18 Sep 2023 18:40:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1695062428; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=h9E7SEdNqBWbElrgv1UJiWog/MM4kbl80B15ZEsDJv0=; b=jv66z9Ewd4vDA4uyhUP0eff/i1n0TuIeTIXEFCe0ECeMaFaxPg2vUAHcGHILXYR9/F3QTO vtAbON8HUR5+HseMsHL5GVWzCchLdwtJOMq6No1LZhbtKkSl0q5e9WDBqSb7Hnucr7Qp6B roOsEEjUUhE8xKSfeCLirlJw1912/VkwZGwc7KKqs/Ubx9iEFXaKmB/lqhnL2W26o84IAO PL7DtcNuMvDmzrJMZb/Ie6Eb17EJtaSLzoHTMgGnNBkovvuPFtzqueLQV8bBqA8+wfDuFH CYs1mzv4hN/nlUs7TQJZ6qWQKfwWMNxLeXwhKKKRnXaT1YRw0y/9PqZtTb5uWQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1695062428; a=rsa-sha256; cv=none; b=lze//9KJ9bcSGBjNZ5+vGlv2HsfR+fanHk7YGX/CW+JjWh9A5XIClzyIktZScTSKdeCTbO uoECs1LYE5Eg9a05oBufE3Lr/g8UvLOclMp49/g3aHpsdqp+bCWm+8UHP9xire1dlUsigY abs1S6LXnlfqXuq4EiEVI0nvK3WWUfECD+qd8ZtzsWURIUFVteQFdMuE22hzqhOASIJ/ja iTHaPlzqcoUvOucbHha498LGT1Ao9M79AseXUqO4+VlPmQ5GwzEMQqzMTAalQCGsQYeDNR JkE2uUdsCbHZ9nGSgt3+Brrzh+HU4pVf0w7obmPBjhp72J8OlkvBwAAhQEgHTw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1695062428; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=h9E7SEdNqBWbElrgv1UJiWog/MM4kbl80B15ZEsDJv0=; b=Kvh7uPMSb95YUJX/uYOiIJCDBjyQOROd/dDvPfdAeiQjKSB3fXT/xwWn2VOY1Ishjzpd/b eAepgGpFK2wscyCFLFdVPJpmC4tRYkYh5TwfZACSWCVgAkOu8BEty+WaQIoNkOLWTjyJw+ 55ylLD+qXF8GLFayXkL6FDgGsI1qI4i9QmPQO2oCyG5G8JFMa75XWLJfKJaX5V7nlhEqNL 5Fh4rbpQVQv6N9Elvo43+otaim3eQ+dVZA5ScQKUA7rdw2C6Fu2Bi3wa6LV4S9IigQ+buK 2Bj0pV54b2GD0D85C7dQlQ8vtm1Twde2hRAFl2GAtqvo8fLQW0/0ANty3gqxZg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RqDBM5zBRzj0W; Mon, 18 Sep 2023 18:40:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 38IIeRnP020311; Mon, 18 Sep 2023 18:40:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38IIeRoM020308; Mon, 18 Sep 2023 18:40:27 GMT (envelope-from git) Date: Mon, 18 Sep 2023 18:40:27 GMT Message-Id: <202309181840.38IIeRoM020308@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Simon J. Gerraty" Subject: git: 40b9b2995f0f - main - Update jobs.mk to leverage -jC List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: sjg X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 40b9b2995f0f4b09cbdc9aa88f1f21f05bd1cc88 Auto-Submitted: auto-generated The branch main has been updated by sjg: URL: https://cgit.FreeBSD.org/src/commit/?id=40b9b2995f0f4b09cbdc9aa88f1f21f05bd1cc88 commit 40b9b2995f0f4b09cbdc9aa88f1f21f05bd1cc88 Author: Simon J. Gerraty AuthorDate: 2023-09-18 18:40:07 +0000 Commit: Simon J. Gerraty CommitDate: 2023-09-18 18:40:07 +0000 Update jobs.mk to leverage -jC With bmake-20230909 we can use -j1.5C to use 1.5*ncpu bmake will set .MAKE.JOBS.C=yes if this is supported, and in that case jobs.mk will use JOB_MAX_C as default for JOB_MAX. Remove logic from local.sys.mk which is now handled by jobs.mk Also use latest dirdeps-targets.mk and meta.{autodep,subdir}.mk --- share/mk/dirdeps-targets.mk | 11 ++++++----- share/mk/jobs.mk | 24 ++++++++++++++++-------- share/mk/local.sys.mk | 20 -------------------- share/mk/meta.autodep.mk | 11 ++++++++--- share/mk/meta.subdir.mk | 4 ++-- 5 files changed, 32 insertions(+), 38 deletions(-) diff --git a/share/mk/dirdeps-targets.mk b/share/mk/dirdeps-targets.mk index 6201efe1e402..821ae50e3ffa 100644 --- a/share/mk/dirdeps-targets.mk +++ b/share/mk/dirdeps-targets.mk @@ -1,5 +1,5 @@ # RCSid: -# $Id: dirdeps-targets.mk,v 1.24 2020/12/11 18:15:43 sjg Exp $ +# $Id: dirdeps-targets.mk,v 1.25 2023/05/11 05:07:28 sjg Exp $ # # @(#) Copyright (c) 2019-2020 Simon J. Gerraty # @@ -113,16 +113,17 @@ tqtdeps := ${DIRDEPS_TARGETS_MACHINE_LIST:@m@${tdeps:M*.$m,*}@:S,/${.MAKE.DEPEND .endif # now work out what we want in DIRDEPS +DIRDEPS = ${ptdeps} .if empty(REQUESTED_MACHINE) # we want them all just as found -DIRDEPS = ${ptdeps} ${mqtdeps} ${tqtdeps} +DIRDEPS += ${mqtdeps} ${tqtdeps} .else # we only want those that match REQUESTED_MACHINE/REQUESTED_TARGET_SPEC # or REQUESTED_TARGET_SPEC (TARGET_SPEC) -DIRDEPS = \ - ${ptdeps:@d@$d.${REQUESTED_TARGET_SPEC:U${TARGET_SPEC:U${REQUESTED_MACHINE}}}@} \ +DIRDEPS += \ ${mqtdeps:M*.${REQUESTED_MACHINE}} \ - ${tqtdeps:M*.${REQUESTED_TARGET_SPEC:U${TARGET_SPEC}}} + ${tqtdeps:M*.${REQUESTED_TARGET_SPEC:U${TARGET_SPEC}}} \ + .endif # clean up DIRDEPS := ${DIRDEPS:O:u} diff --git a/share/mk/jobs.mk b/share/mk/jobs.mk index 62fe9eeae030..0643e6481082 100644 --- a/share/mk/jobs.mk +++ b/share/mk/jobs.mk @@ -1,4 +1,4 @@ -# $Id: jobs.mk,v 1.9 2023/04/27 18:10:27 sjg Exp $ +# $Id: jobs.mk,v 1.14 2023/09/11 16:52:44 sjg Exp $ # # @(#) Copyright (c) 2012-2023, Simon J. Gerraty # @@ -29,11 +29,14 @@ # # ${MAKE} -j${JOB_MAX} target > ${JOB_LOGDIR}/target.log 2>&1 # -# JOB_MAX defaults to 8 but should normally be derrived based on the -# number of cpus available. The wrapper script 'mk' makes that easy. +# JOB_MAX should be something like 1.2 - 1.5 times the number of +# available CPUs. +# If bmake sets .MAKE.JOBS.C=yes we can use -jC and +# JOB_MAX defaults to JOB_MAX_C (default 1.33C). +# Otherwise we use 8. # -now_utc ?= ${%s:L:gmtime} +now_utc ?= ${%s:L:localtime} .if !defined(start_utc) start_utc := ${now_utc} .endif @@ -70,14 +73,19 @@ NEWLOG = : .endif .if ${.MAKE.JOBS:U0} > 0 -JOB_MAX= ${.MAKE.JOBS} +JOB_MAX = ${.MAKE.JOBS} .else # This should be derrived from number of cpu's -JOB_MAX?= 8 -JOB_ARGS+= -j${JOB_MAX} +.if ${.MAKE.JOBS.C:Uno} == "yes" +# 1.2 - 1.5 times nCPU works well on most machines that support -jC +JOB_MAX_C ?= 1.33C +JOB_MAX ?= ${JOB_MAX_C} +.endif +JOB_MAX ?= 8 +JOB_ARGS += -j${JOB_MAX} .endif -# we need to reset .MAKE.LEVEL to 0 do that +# we need to reset .MAKE.LEVEL to 0 so that # build orchestration works as expected (DIRDEPS_BUILD) ${.TARGETS:M*-jobs}: @${NEWLOG} ${JOB_NEWLOG_ARGS} ${JOB_LOG} diff --git a/share/mk/local.sys.mk b/share/mk/local.sys.mk index 2f684ba0975c..59b1a7c14a7c 100644 --- a/share/mk/local.sys.mk +++ b/share/mk/local.sys.mk @@ -58,26 +58,6 @@ _PREMK_LIBDIR:= ${LIBDIR} .include "src.sys.mk" .-include -.if make(*-jobs) && empty(JOB_MAX) -# provide a reasonable? default for JOB_MAX based on ncpu -JOB_MAX_FACTOR?= 1.33 -NPROC?= ${(type nproc || true) 2> /dev/null:L:sh:M/*:[1]} -NPROC:= ${NPROC} -.if !empty(NPROC) -ncpu!= ${NPROC} -.elif ${.MAKE.OS:NDarwin:NFreeBSD} == "" -ncpu!= sysctl -n hw.ncpu -.endif -.if ${ncpu:U0} > 1 -.if ${JOB_MAX_FACTOR} == 1 -JOB_MAX:= ${ncpu} -.else -jm!= echo ${ncpu} \* ${JOB_MAX_FACTOR} | bc -JOB_MAX:= ${jm:R} -.endif -.endif -.endif - # this will be set via local.meta.sys.env.mk if appropriate MK_host_egacy?= no diff --git a/share/mk/meta.autodep.mk b/share/mk/meta.autodep.mk index cd08ac3b3520..6785d2ebf874 100644 --- a/share/mk/meta.autodep.mk +++ b/share/mk/meta.autodep.mk @@ -1,4 +1,4 @@ -# $Id: meta.autodep.mk,v 1.56 2022/09/09 17:44:29 sjg Exp $ +# $Id: meta.autodep.mk,v 1.59 2023/08/19 17:35:32 sjg Exp $ # # @(#) Copyright (c) 2010, Simon J. Gerraty @@ -139,6 +139,10 @@ FORCE_DPADD += ${_nonlibs:@x@${DPADD:M*/$x}@} .END: gendirdeps .endif +.if ${LOCAL_DEPENDS_GUARD:U} == "no" +.depend: +.endif + # if we don't have OBJS, then .depend isn't useful .if !target(.depend) && (!empty(OBJS) || ${.ALLTARGETS:M*.o} != "") # some makefiles and/or targets contain @@ -206,7 +210,8 @@ _depend = .endif .if ${UPDATE_DEPENDFILE} == "yes" -gendirdeps: ${_DEPENDFILE} +gendirdeps: beforegendirdeps .WAIT ${_DEPENDFILE} +beforegendirdeps: .endif .if !target(${_DEPENDFILE}) @@ -300,7 +305,7 @@ ${_DEPENDFILE}: .PRECIOUS CLEANFILES += *.meta filemon.* *.db # these make it easy to gather some stats -now_utc = ${%s:L:gmtime} +now_utc = ${%s:L:localtime} start_utc := ${now_utc} meta_stats= meta=${empty(.MAKE.META.FILES):?0:${.MAKE.META.FILES:[#]}} \ diff --git a/share/mk/meta.subdir.mk b/share/mk/meta.subdir.mk index 39cf875d6b77..d9caae4edbcc 100644 --- a/share/mk/meta.subdir.mk +++ b/share/mk/meta.subdir.mk @@ -1,4 +1,4 @@ -# $Id: meta.subdir.mk,v 1.12 2020/08/19 17:51:53 sjg Exp $ +# $Id: meta.subdir.mk,v 1.13 2021/01/05 22:24:37 sjg Exp $ # # @(#) Copyright (c) 2010, Simon J. Gerraty @@ -17,7 +17,7 @@ .if !defined(NO_SUBDIR) && !empty(SUBDIR) .if make(destroy*) || make(clean*) .MAKE.MODE = compat -.if !commands(destroy) +.if !commands(obj) .-include .endif .elif ${.MAKE.LEVEL} == 0