From nobody Thu Aug 21 15:58:19 2025 X-Original-To: dev-commits-src-main@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 4c77Jq490bz65Kln; Thu, 21 Aug 2025 15:58:19 +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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4c77Jq2HYcz3LlF; Thu, 21 Aug 2025 15:58:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1755791899; 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=9vfOsJjrvy3PqfgklrsWaBCus0KQO1BZKGSf5f6u3W8=; b=ahDaER5G2Or3oJS+Y8RtGHoTgNulgjvCjSfJqvpfF8qDzPVr2ZkxLSfJG0LkehdiHCt7pc 3mMr8K/Hps08SrKBe8c8vKPj7A8tPjrgmVLZfCD3FtNjzRAuoLKKxi2yLGbxr3+EsELg49 z8qTofCZYQ4PKNTedRAjGcmZJQqhTy9Quh2dlL3LXjqHYJ3vsdGX3Am61iKPzXTLp3Jqjh D+gnaX23QO4A3xGx+8tG5P7cA2NMaJ6JFaaB6pqgFN3+23oTPH/DDn8tSYO713bnRyDpve FmhoGVvheCQDZCV0AlGr390mUWgm3qpTMzMsNEUWZ76sUSRhpKNVLyKp05AyLA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1755791899; 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=9vfOsJjrvy3PqfgklrsWaBCus0KQO1BZKGSf5f6u3W8=; b=m2fw0LeMDereZSHBd4MibJyz0BYBCYf8hND6e0h0m+Xfyd08rRoTV8k6oxiqUDDEsJ9+IR SPDKhC+fpbrWaZiwr1s7QIHGjzn7NXLzeqUzWF7srxZCFjp1Yk1KJBYYk/299usjoXT25m wUrNgI6KJ8sPV6sWYkhjWS+j4sedeGs8PkQd+0pRZpZ0q9Pwj4dgPMIJFN8JhCVEFkI7UO 6UTWvpPAba2OKCfkgyYmy7qJwB49TCV7WM7gluy8VT/hONWe1ajAnqZaaH8UB543DWGC8g kjAt0Qw9Iso0usABtoXWmGhbD/w77Wh7j/BJ4JJJipQalSIS38qItlIVOnyjhQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1755791899; a=rsa-sha256; cv=none; b=t5fnolyys+2HTGKZW9iTNrrfb+tqmLoy6X8JRAegHWdeXgfgukPpBqVxAgmi+z7wIHfLu8 a5Hsq+0M7VEm+Ne3BQx4UkEM7mN1vV9qn/Exal4+GRnIQDDhzfyPSuc8j/0r31mJKrCItj mfA9NaVabyE1CLFUEEknuQQeKoDOUpfYp1uaXlxANl/A6N+klSL5C2Cy4slg4ADq8Tj+mq 3JN27N/3CDcu9bW67ET6fFIzvKnAoa3UtRMyWqobzqznQULP8dPlxLxv/fSflfN6YX4uxi M6QgCBSQHqZAnHIT/ty5vF8FA2b4LwH4AVBw7M/rAibfRzoM4gHKE6Y1YkU7hA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4c77Jq1psVz154m; Thu, 21 Aug 2025 15:58:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 57LFwJhm062694; Thu, 21 Aug 2025 15:58:19 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 57LFwJBY062691; Thu, 21 Aug 2025 15:58:19 GMT (envelope-from git) Date: Thu, 21 Aug 2025 15:58:19 GMT Message-Id: <202508211558.57LFwJBY062691@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: eebadc7d8590 - main - sys/conf: Remap paths for reproducibility List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: eebadc7d8590ff8d38fdbcfd90651c931e713648 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=eebadc7d8590ff8d38fdbcfd90651c931e713648 commit eebadc7d8590ff8d38fdbcfd90651c931e713648 Author: Mark Johnston AuthorDate: 2025-08-21 14:04:14 +0000 Commit: Mark Johnston CommitDate: 2025-08-21 15:56:23 +0000 sys/conf: Remap paths for reproducibility As in bsd.lib.mk and bsd.prog.mk, we need to remap paths in the kernel and in kernel modules when reproducible builds are configured. Add directives to kern.post.mk and kmod.mk to remap the src, obj and sysroot dirs. For the sysroot, we need to pass the value of the SYSROOT variable to the kernel makefiles, which involves changing Makefile.inc1. In so doing I reverted a portion of commit 35fb812adfc21; I can't see any harm in passing the SYSROOT variable down. MFC after: 1 month Sponsored by: The FreeBSD Foundation Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D50953 --- Makefile.inc1 | 2 +- sys/conf/kern.post.mk | 17 +++++++++++++++-- sys/conf/kmod.mk | 23 +++++++++++++++++++++-- 3 files changed, 37 insertions(+), 5 deletions(-) diff --git a/Makefile.inc1 b/Makefile.inc1 index d65d1c86deac..d899f994a40d 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -1051,7 +1051,7 @@ DESTDIR_MTREE= ${DISTR_MTREECMD} ${DESTDIR_MTREEFLAGS} METALOG_SORT_CMD= env -i LC_COLLATE=C sort # kernel stage -KMAKEENV= ${WMAKEENV:NSYSROOT=*} +KMAKEENV= ${WMAKEENV} KMAKE= ${TIME_ENV} ${KMAKEENV} ${MAKE} ${.MAKEFLAGS} ${KERNEL_FLAGS} KERNEL=${INSTKERNNAME} # diff --git a/sys/conf/kern.post.mk b/sys/conf/kern.post.mk index 0e4ffd92724e..1accd3fa8df4 100644 --- a/sys/conf/kern.post.mk +++ b/sys/conf/kern.post.mk @@ -372,6 +372,19 @@ _ILINKS+= x86 _ILINKS+= i386 .endif +.if ${MK_REPRODUCIBLE_BUILD} != "no" +PREFIX_SYSDIR=/usr/src/sys +PREFIX_OBJDIR=/usr/obj/usr/src/${MACHINE}.${MACHINE_CPUARCH}/sys/${KERN_IDENT} +CFLAGS+= -ffile-prefix-map=${SYSDIR}=${PREFIX_SYSDIR} +CFLAGS+= -ffile-prefix-map=${.OBJDIR}=${PREFIX_OBJDIR} +.if defined(SYSROOT) +CFLAGS+= -ffile-prefix-map=${SYSROOT}=/sysroot +.endif +.else +PREFIX_SYSDIR=${SYSDIR} +PREFIX_OBJDIR=${.OBJDIR} +.endif + # Ensure that the link exists without depending on it when it exists. # Ensure that debug info references the path in the source tree. .for _link in ${_ILINKS} @@ -379,9 +392,9 @@ _ILINKS+= i386 ${SRCS} ${DEPENDOBJS}: ${_link} .endif .if ${_link} == "machine" -CFLAGS+= -fdebug-prefix-map=./machine=${SYSDIR}/${MACHINE}/include +CFLAGS+= -fdebug-prefix-map=./machine=${PREFIX_SYSDIR}/${MACHINE}/include .else -CFLAGS+= -fdebug-prefix-map=./${_link}=${SYSDIR}/${_link}/include +CFLAGS+= -fdebug-prefix-map=./${_link}=${PREFIX_SYSDIR}/${_link}/include .endif .endfor diff --git a/sys/conf/kmod.mk b/sys/conf/kmod.mk index 645c04cdd135..0fd2d4050cf1 100644 --- a/sys/conf/kmod.mk +++ b/sys/conf/kmod.mk @@ -303,6 +303,25 @@ all: ${PROG} beforedepend: ${_ILINKS} beforebuild: ${_ILINKS} +.if ${MK_REPRODUCIBLE_BUILD} != "no" +PREFIX_SYSDIR=/usr/src/sys +CFLAGS+= -ffile-prefix-map=${SYSDIR}=${PREFIX_SYSDIR} +.if defined(KERNBUILDDIR) +PREFIX_KERNBUILDDIR=/usr/obj/usr/src/${MACHINE}.${MACHINE_CPUARCH}/sys/${KERNBUILDDIR:T} +PREFIX_OBJDIR=${PREFIX_KERNBUILDDIR}/modules/usr/src/sys/modules/${.OBJDIR:T} +CFLAGS+= -ffile-prefix-map=${KERNBUILDDIR}=${PREFIX_KERNBUILDDIR} +.else +PREFIX_OBJDIR=/usr/obj/usr/src/${MACHINE}.${MACHINE_CPUARCH}/sys/modules/${.OBJDIR:T} +.endif +CFLAGS+= -ffile-prefix-map=${.OBJDIR}=${PREFIX_OBJDIR} +.if defined(SYSROOT) +CFLAGS+= -ffile-prefix-map=${SYSROOT}=/sysroot +.endif +.else +PREFIX_SYSDIR=${SYSDIR} +PREFIX_OBJDIR=${.OBJDIR} +.endif + # Ensure that the links exist without depending on it when it exists which # causes all the modules to be rebuilt when the directory pointed to changes. # Ensure that debug info references the path in the source tree. @@ -311,9 +330,9 @@ beforebuild: ${_ILINKS} OBJS_DEPEND_GUESS+= ${_link} .endif .if ${_link} == "machine" -CFLAGS+= -fdebug-prefix-map=./machine=${SYSDIR}/${MACHINE}/include +CFLAGS+= -fdebug-prefix-map=./machine=${PREFIX_SYSDIR}/${MACHINE}/include .else -CFLAGS+= -fdebug-prefix-map=./${_link}=${SYSDIR}/${_link}/include +CFLAGS+= -fdebug-prefix-map=./${_link}=${PREFIX_SYSDIR}/${_link}/include .endif .endfor