From nobody Fri Mar 20 13:39:48 2026 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 4fckFc5FbGz6W0gJ for ; Fri, 20 Mar 2026 13:39:48 +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" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fckFc4MWJz3vRf for ; Fri, 20 Mar 2026 13:39:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1774013988; 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=5Z1uwsgr7rTqjCWzaMN1PmNcHXbgc5jkuskLWdKvRM0=; b=ehhjYBS+XzFd+xLQEA+5Dl0QG9DtZVzQGIjYV9UCIhPK1vzKZxfgXs3XtchAG5CC5nH9SJ C5kNzPnm8C5w03HaSl957rVFGNIKAPRKqMUCF8Q3pLgDpC9IJcHjLjghpkhscNETE/14ez GI98Q07QuLPIGPrFK/GfzQBOfSCy/Up+m+LjHLyTrPf99HyqrVN3vrAZAZxrtbV7aohocB Yp34EHmuCjEUPi5qTPirxOuo6u9D9uicEn22HCAyyazXzr1woRsxiIO9/cm52IQOlPiIqp EWHPXKEKgm26GEtv50AEYfRvSogJ8SlDIilKHr8yCjgAh/hP8jx4WGaWYrVeDA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1774013988; a=rsa-sha256; cv=none; b=SLq6cDbRyaZKTaeLPK7wkKVARoxxX8bi19qyBBhiVeSHK/gFPt2rHHIondDDP2mk+j+0su 9hX5PTLZ/0JcRKUggS3485YfRVObcdsYCB1VO2WGcDoY4UpOe9dVqtVsmZNFppSIaNnRBm zA6AQl3zhe9Oj/UkcwRSQqA9vDb0GUY0AXHZG4UqYtX7MmMwYTvNknhiH5bohLEDhayjZ+ rzhDwHAaLf6H0lm+kX+6Rh/QTYgCyKmUBtuTMDx+A0qMW+J4/n7hnubGYBzjQm+yIa4HFj Jr7mgZqd2MM7hsLv22NOBjPirScJRwu9pG3wSrGyHSPwh5tjjhCGEoNn9epyhg== 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=1774013988; 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=5Z1uwsgr7rTqjCWzaMN1PmNcHXbgc5jkuskLWdKvRM0=; b=ok14Wa+S60QbYlD0Np1L/khfA++CbfpcauxOzBjtZbXBCL2pPURElU8VzF73snypDQqagg H5paB+kTc/BwzzjJKWdg9Y5h+Of4yq+wrBb2P+qGIdI2cGXB+Ps9+z/5NKaARGqyx9lEog Oj7FfjFmPrIMDE+nG8Qf7NqW7DxBjV5GKYh19qABFIn0M3xtCARwao64BxAyTxihkJEshy 2jcC4ByFWzL381OkrZZqt84bLgM1RYLftSA944k/4a9hlDUBmLIORAJYe3BZUZC4sUbyYs T2fNZpPcKttd+lv5lLr/NZYkb2Vrh9fZKYqQ5p2sB+3VV4sgzG15puuoGLtIgg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fckFc3kHHzCJ5 for ; Fri, 20 Mar 2026 13:39:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3bb70 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 20 Mar 2026 13:39:48 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Ed Maste Subject: git: 17494c6e6b7d - main - build: Boostrap LLVM_BINUTILS for cross-tools 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: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: emaste X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 17494c6e6b7d5e2be34d2469566a59bbd9dceb8a Auto-Submitted: auto-generated Date: Fri, 20 Mar 2026 13:39:48 +0000 Message-Id: <69bd4e24.3bb70.7228f0e9@gitrepo.freebsd.org> The branch main has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=17494c6e6b7d5e2be34d2469566a59bbd9dceb8a commit 17494c6e6b7d5e2be34d2469566a59bbd9dceb8a Author: Ed Maste AuthorDate: 2026-03-18 15:09:53 +0000 Commit: Ed Maste CommitDate: 2026-03-20 13:38:40 +0000 build: Boostrap LLVM_BINUTILS for cross-tools Reported by: vexeduxr, jrtc27 Reviewed by: imp Sponsored by: The FreeBSD Foundation Pull request: https://github.com/freebsd/freebsd-src/pull/2084 Differential Revision: https://reviews.freebsd.org/D55923 --- Makefile.inc1 | 19 +++++++++++++++++-- share/man/man5/src.conf.5 | 13 +++++++++++++ share/mk/src.opts.mk | 1 + tools/build/options/WITHOUT_LLVM_BINUTILS_BOOTSTRAP | 12 ++++++++++++ 4 files changed, 43 insertions(+), 2 deletions(-) diff --git a/Makefile.inc1 b/Makefile.inc1 index c4696abae8cd..16cd9b695109 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -239,6 +239,12 @@ X${BINUTIL}?= ${${BINUTIL}} MK_LLD_BOOTSTRAP= no .endif +# If full paths to all standard bintuils are given, don't build LLVM binutils. +.if ${XAR:M/*} && ${XNM:M/*} && ${XOBJCOPY:M/*} && ${XRANLIB:M/*} && \ + ${XSIZE:M/*} && ${XSTRINGS:M/*} && ${XSTRIPBIN:M/*} +MK_LLVM_BINUTILS_BOOTSTRAP= no +.endif + # We also want the X_LINKER* variables if we are using an external toolchain. _WANT_TOOLCHAIN_CROSS_VARS= t .include "share/mk/bsd.linker.mk" @@ -2701,7 +2707,8 @@ _gensnmptree= usr.sbin/bsnmpd/gensnmptree # llvm-tblgen is also needed for various llvm binutils (e.g. objcopy). .if ${MK_CLANG_BOOTSTRAP} != "no" || ${MK_CLANG} != "no" || \ ${MK_LLD_BOOTSTRAP} != "no" || ${MK_LLD} != "no" || \ - ${MK_LLDB} != "no" || ${MK_LLVM_BINUTILS} != "no" + ${MK_LLDB} != "no" || \ + ${MK_LLVM_BINUTILS_BOOTSTRAP} != "no" || ${MK_LLVM_BINUTILS} != "no" _clang_tblgen= \ lib/clang/libllvmminimal \ usr.bin/clang/llvm-min-tblgen \ @@ -3061,9 +3068,16 @@ _clang= usr.bin/clang/clang .if ${MK_LLD_BOOTSTRAP} != "no" _lld= usr.bin/clang/lld .endif -.if ${MK_CLANG_BOOTSTRAP} != "no" || ${MK_LLD_BOOTSTRAP} != "no" +.if ${MK_CLANG_BOOTSTRAP} != "no" || ${MK_LLD_BOOTSTRAP} != "no" || \ + ${MK_LLVM_BINUTILS_BOOTSTRAP} != "no" _clang_libs= lib/clang .endif +.if ${MK_LLVM_BINUTILS_BOOTSTRAP}} != "no" +_llvm_binutils= usr.bin/clang/llvm-ar \ + usr.bin/clang/llvm-nm \ + usr.bin/clang/llvm-objcopy \ + usr.bin/clang/llvm-size +.endif .if ${MK_USB} != "no" _usb_tools= stand/usb/tools .endif @@ -3079,6 +3093,7 @@ cross-tools: .MAKE .PHONY ${_clang_libs} \ ${_clang} \ ${_lld} \ + ${_llvm_binutils} \ ${_elftctools} \ ${_dtrace_tools} \ ${_btxld} \ diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5 index c6b470b54919..ad503a132a2c 100644 --- a/share/man/man5/src.conf.5 +++ b/share/man/man5/src.conf.5 @@ -989,6 +989,19 @@ and .Xr objdump 1 . .Xr strings 1 is always provided by ELF Tool Chain. +.It Va WITHOUT_LLVM_BINUTILS_BOOTSTRAP +Do not build LLVM binary utilities during the bootstrap phase of +the build. +To be able to build the system alternate binary utilities must be provided via +.Ev XAR , +.Ev XNM , +.Ev XOBJCOPY , +.Ev XRANLIB , +.Ev XSIZE , +.Ev XSTRINGS , +and +.Ev XSTRIPBIN . + .It Va WITHOUT_LLVM_COV Do not build the .Xr llvm-cov 1 diff --git a/share/mk/src.opts.mk b/share/mk/src.opts.mk index 5a5bdd16298e..1cadc8450de3 100644 --- a/share/mk/src.opts.mk +++ b/share/mk/src.opts.mk @@ -124,6 +124,7 @@ __DEFAULT_YES_OPTIONS = \ LLD_BOOTSTRAP \ LLVM_ASSERTIONS \ LLVM_BINUTILS \ + LLVM_BINUTILS_BOOTSTRAP \ LLVM_COV \ LOADER_BIOS_TEXTONLY \ LOADER_GELI \ diff --git a/tools/build/options/WITHOUT_LLVM_BINUTILS_BOOTSTRAP b/tools/build/options/WITHOUT_LLVM_BINUTILS_BOOTSTRAP new file mode 100644 index 000000000000..141679d4f6a9 --- /dev/null +++ b/tools/build/options/WITHOUT_LLVM_BINUTILS_BOOTSTRAP @@ -0,0 +1,12 @@ +Do not build LLVM binary utilities during the bootstrap phase of +the build. +To be able to build the system alternate binary utilities must be provided via +.Ev XAR , +.Ev XNM , +.Ev XOBJCOPY , +.Ev XRANLIB , +.Ev XSIZE , +.Ev XSTRINGS , +and +.Ev XSTRIPBIN . +