From nobody Sun Jul 6 21:02:58 2025 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 4bb0FZ4wcHz61nlJ; Sun, 06 Jul 2025 21:02:58 +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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4bb0FZ4Fywz3dpJ; Sun, 06 Jul 2025 21:02:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1751835778; 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=pM1Cy5Kw4UZjwy569XgkU6F+y2HlBRIJx9svrsLA9JU=; b=LSAUGytCZLbQhgXXVnU/pif926CqoeEFWIeSIkmCi5Ld/dFF2vU/AN9geAVUHj8/1v27JK AtT9t66b3Vbtc+MZNBGAqDyTju123MWDBVt+rJYO2opblvVg6Eem3AyS49uf+54CTcfQOe PXh2nvMKpbQhxDGB5bJLA2o/iZ4cyVuq8yeBCK/4DvStqmTOrof55xSIlkaoMUNLy569Hy dtrH1dk4ftqLldc9Qw+nJiv8hdThTr0agP2QqLVDt00Hpe62Q5Nkg90aH77vBOHRJ4ng9x zpeV6GlogBK3Ck9dNrSlBOvlOHAgJca+YS4htCEKozdvhMfGJATz1FsYJFysGg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1751835778; 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=pM1Cy5Kw4UZjwy569XgkU6F+y2HlBRIJx9svrsLA9JU=; b=Y/OUcA1F4Q6oE68/23lJJbXstPy023TyqKN27XgL3HfeNT+YC1/8nwbrVSVtYuXDxfqGsg d986IW0DVeiJ7ROEQxDms3y4nIq03b0mi07G+RpWOg4xMk1ggGVGXYOpOs2dectiilMvVd 9ONu8VcNCZT3vs3o0mmWuKvLKFlnHyuWMDE7zJuRV/7nKjDn0BWwvpF5mPO/gvlSK5hSQ0 NaDri4Q7yoo3oSPtFE9XgSR+boD9LKfJ+SEkU7d6B9bHDaLO8BairX4+W61vtlidM03OTA I3kTTg5OndAdNmXYNJZ2L81+X68Dq3qp234m9ci2qWphGdQI3c7dFgQE42aPRg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1751835778; a=rsa-sha256; cv=none; b=ngBTo5nm+EMFhXv05eoGaGxz08z0EJR94WmY6ihhrrpVOjKpGeieAvgRG8TJ/YFNMR4YJq TNIEeGGp8w4nkJ26ABi95/W8hTfbnQZTpe3XSECk/wSGugRq0W+IYTBsswopvXRgyL4+i6 aDMZIRJ8TeGxNh6h+cvNuWJ36PHsONQAdyYD890FpTPo2j31wDwO4Pb9SZN25LOIRsrFiB q26VHEXt8rHFR1OKZDyxJUzuCI0taRpIGqPj8q55fl4H2uc9Y/KMB6ob27CZul8M8Anba5 8/8+V8gbrcoq3RUJJ6FHIo8e+z6L9Ki2go62Re93EIdwIq+Hv9PwAEq4j8GheA== 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 4bb0FZ3lDLz64J; Sun, 06 Jul 2025 21:02:58 +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 566L2wrM084072; Sun, 6 Jul 2025 21:02:58 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 566L2wDT084069; Sun, 6 Jul 2025 21:02:58 GMT (envelope-from git) Date: Sun, 6 Jul 2025 21:02:58 GMT Message-Id: <202507062102.566L2wDT084069@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Lexi Winter Subject: git: d3c06bed2c16 - main - clang: install clang-scan-deps 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: ivy X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d3c06bed2c16b434dd49958dee5de8c55ad00b85 Auto-Submitted: auto-generated The branch main has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=d3c06bed2c16b434dd49958dee5de8c55ad00b85 commit d3c06bed2c16b434dd49958dee5de8c55ad00b85 Author: Lexi Winter AuthorDate: 2025-07-06 20:42:58 +0000 Commit: Lexi Winter CommitDate: 2025-07-06 21:02:52 +0000 clang: install clang-scan-deps clang-scan-deps is used to generate dependency information from C++20 modules according to proposed standard ISO/IEC WG21 P1689R5[0]. It is required by common build tools (e.g., CMake) to build C++ sources that use modules. Since this is a core build tool, install it by default, not gated behind MK_CLANG_EXTRAS. [0] https://www.open-std.org/JTC1/SC22/WG21/docs/papers/2022/p1689r5.html MFC after: 3 days Reviewed by: kevans, dim Approved by: kevans (mentor) Requested by: jbo Differential Revision: https://reviews.freebsd.org/D51044 --- lib/clang/libclang/Makefile | 6 +++++ usr.bin/clang/Makefile | 4 ++++ usr.bin/clang/clang-scan-deps/Makefile | 26 ++++++++++++++++++++++ .../clang-scan-deps/clang-scan-deps-driver.cpp | 18 +++++++++++++++ 4 files changed, 54 insertions(+) diff --git a/lib/clang/libclang/Makefile b/lib/clang/libclang/Makefile index dc9e0010e309..7eb2c99b25c8 100644 --- a/lib/clang/libclang/Makefile +++ b/lib/clang/libclang/Makefile @@ -841,6 +841,11 @@ SRCS_MIN+= Tooling/ArgumentsAdjusters.cpp SRCS_MIN+= Tooling/CommonOptionsParser.cpp SRCS_MIN+= Tooling/CompilationDatabase.cpp SRCS_MIN+= Tooling/Core/Replacement.cpp +SRCS_MIN+= Tooling/DependencyScanning/DependencyScanningFilesystem.cpp +SRCS_MIN+= Tooling/DependencyScanning/DependencyScanningService.cpp +SRCS_MIN+= Tooling/DependencyScanning/DependencyScanningTool.cpp +SRCS_MIN+= Tooling/DependencyScanning/DependencyScanningWorker.cpp +SRCS_MIN+= Tooling/DependencyScanning/ModuleDepCollector.cpp SRCS_MIN+= Tooling/ExpandResponseFilesCompilationDatabase.cpp SRCS_MIN+= Tooling/FileMatchTrie.cpp SRCS_MIN+= Tooling/GuessTargetAndModeCompilationDatabase.cpp @@ -848,6 +853,7 @@ SRCS_MIN+= Tooling/Inclusions/HeaderIncludes.cpp SRCS_MIN+= Tooling/Inclusions/IncludeStyle.cpp SRCS_MIN+= Tooling/InterpolatingCompilationDatabase.cpp SRCS_MIN+= Tooling/JSONCompilationDatabase.cpp +SRCS_MIN+= Tooling/LocateToolCompilationDatabase.cpp SRCS_MIN+= Tooling/Refactoring.cpp SRCS_MIN+= Tooling/RefactoringCallbacks.cpp SRCS_MIN+= Tooling/Tooling.cpp diff --git a/usr.bin/clang/Makefile b/usr.bin/clang/Makefile index a0cc015590f0..e2debfb8c582 100644 --- a/usr.bin/clang/Makefile +++ b/usr.bin/clang/Makefile @@ -5,6 +5,10 @@ SUBDIR+= clang .endif .if !defined(TOOLS_PREFIX) +.if ${MK_CLANG} != "no" +SUBDIR+= clang-scan-deps +.endif + # LLVM binutils are needed to support features such as LTO, so we build them # by default if clang is enabled. If MK_LLVM_BINUTILS is set, we also use them # as the default binutils (ar,nm,addr2line, etc.). diff --git a/usr.bin/clang/clang-scan-deps/Makefile b/usr.bin/clang/clang-scan-deps/Makefile new file mode 100644 index 000000000000..16fecdb88867 --- /dev/null +++ b/usr.bin/clang/clang-scan-deps/Makefile @@ -0,0 +1,26 @@ +.include + +PROG_CXX= clang-scan-deps +MAN= + +SRCDIR= clang/tools/clang-scan-deps +SRCS+= ClangScanDeps.cpp \ + clang-scan-deps-driver.cpp + +.include "${SRCTOP}/lib/clang/clang.pre.mk" + +CFLAGS+= -I${.OBJDIR} +TDFILE= Opts.td +INCFILE= ${TDFILE:.td=.inc} +GENOPT= -gen-opt-parser-defs + +${INCFILE}: ${TDFILE} + ${LLVM_TBLGEN} ${GENOPT} -I ${LLVM_SRCS}/include -d ${.TARGET:C/$/.d/} \ + -o ${.TARGET} ${.ALLSRC} +TGHDRS+= ${INCFILE} + +DEPENDFILES+= ${TGHDRS:C/$/.d/} +DPSRCS+= ${TGHDRS} +CLEANFILES+= ${TGHDRS} ${TGHDRS:C/$/.d/} + +.include "../clang.prog.mk" diff --git a/usr.bin/clang/clang-scan-deps/clang-scan-deps-driver.cpp b/usr.bin/clang/clang-scan-deps/clang-scan-deps-driver.cpp new file mode 100644 index 000000000000..f941cc434ff6 --- /dev/null +++ b/usr.bin/clang/clang-scan-deps/clang-scan-deps-driver.cpp @@ -0,0 +1,18 @@ +//===-- driver-template.cpp -----------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "llvm/Support/LLVMDriver.h" +#include "llvm/ADT/ArrayRef.h" +#include "llvm/Support/InitLLVM.h" + +int clang_scan_deps_main(int argc, char **, const llvm::ToolContext &); + +int main(int argc, char **argv) { + llvm::InitLLVM X(argc, argv); + return clang_scan_deps_main(argc, argv, {argv[0], nullptr, false}); +}