[all-commits] [llvm/llvm-project] 7d1f20: [clang-scan-deps] Infer the target from the execut...

Martin Storsjö via All-commits all-commits at lists.llvm.org
Mon Sep 30 23:53:36 PDT 2024


  Branch: refs/heads/release/19.x
  Home:   https://github.com/llvm/llvm-project
  Commit: 7d1f2065d68795b6fc6de4953f9f0ac719cf1c65
      https://github.com/llvm/llvm-project/commit/7d1f2065d68795b6fc6de4953f9f0ac719cf1c65
  Author: Martin Storsjö <martin at martin.st>
  Date:   2024-10-01 (Tue, 01 Oct 2024)

  Changed paths:
    A clang/test/ClangScanDeps/implicit-target.c
    M clang/tools/clang-scan-deps/ClangScanDeps.cpp

  Log Message:
  -----------
  [clang-scan-deps] Infer the target from the executable name (#108189)

This allows clang-scan-deps to work correctly when using cross compilers
with names like <triple>-clang.

(cherry picked from commit 87e1104cf0e2de0d04bee2944893fa7897277b2f)


  Commit: a0fc8a2b2b85a70c8c523ff2d1fe4ef2e86cda7f
      https://github.com/llvm/llvm-project/commit/a0fc8a2b2b85a70c8c523ff2d1fe4ef2e86cda7f
  Author: Martin Storsjö <martin at martin.st>
  Date:   2024-10-01 (Tue, 01 Oct 2024)

  Changed paths:
    M clang/tools/clang-scan-deps/CMakeLists.txt

  Log Message:
  -----------
  [clang-scan-deps] Fix builds with BUILD_SHARED_LIBS=ON

This fixes building in this configuration after
87e1104cf0e2de0d04bee2944893fa7897277b2f.

(cherry picked from commit aa3465793a250faa5426ac626989375465256658)


  Commit: 2b6c23303f7c3f6397003cdac4be6e9e6b78d957
      https://github.com/llvm/llvm-project/commit/2b6c23303f7c3f6397003cdac4be6e9e6b78d957
  Author: Martin Storsjö <martin at martin.st>
  Date:   2024-10-01 (Tue, 01 Oct 2024)

  Changed paths:
    M clang/include/clang/Tooling/CompilationDatabase.h
    M clang/lib/Tooling/CMakeLists.txt
    A clang/lib/Tooling/LocateToolCompilationDatabase.cpp
    M clang/test/ClangScanDeps/modules-extern-submodule.c
    M clang/test/ClangScanDeps/modules-full-output-tu-order.c
    M clang/test/ClangScanDeps/modules-has-include-umbrella-header.c
    M clang/test/ClangScanDeps/modules-header-sharing.m
    M clang/test/ClangScanDeps/modules-implementation-module-map.c
    M clang/test/ClangScanDeps/modules-implementation-private.m
    M clang/test/ClangScanDeps/modules-priv-fw-from-pub.m
    A clang/test/ClangScanDeps/resolve-executable-path.c
    M clang/tools/clang-scan-deps/ClangScanDeps.cpp

  Log Message:
  -----------
  [clang-scan-deps] Infer the tool locations from PATH (#108539)

This allows the clang driver to know which tool is meant to be executed,
which allows the clang driver to load the right clang config files, and
allows clang to find colocated sysroots.

This makes sure that doing `clang-scan-deps -- <tool> ...` looks up
things in the same way as if one just would execute `<tool> ...`, when
`<tool>` isn't an absolute or relative path.

(cherry picked from commit a26ec542371652e1d774696e90016fd5b0b1c191)


  Commit: 997b66e566886b8a395b852db46e7930f757b818
      https://github.com/llvm/llvm-project/commit/997b66e566886b8a395b852db46e7930f757b818
  Author: Martin Storsjö <martin at martin.st>
  Date:   2024-10-01 (Tue, 01 Oct 2024)

  Changed paths:
    M clang/tools/clang-scan-deps/ClangScanDeps.cpp

  Log Message:
  -----------
  [clang-scan-deps] Don't inspect Args[0] as an option (#109050)

Since a26ec542371652e1d774696e90016fd5b0b1c191, we expand the executable
name to an absolute path, if it isn't already one, if found in path.

This broke a couple tests in some environments; when the clang workdir
resides in a path under e.g. /opt. Tests that only use a tool name like
"clang-cl" would get expanded to the absolute path in the build tree.
The loop for finding the last "-o" like option for clang-cl command
lines would inspect all arguments, including Args[0] which is the
executable name itself. As an /opt path matches Arg.starts_with("/o"),
this would get detected as an object file output name in cases where
there was no other explicit output argument.

Thus, this fixes those tests in workdirs under e.g. /opt.

(cherry picked from commit cead9044a995910306e2e64b426fcc8042d7e0ef)


Compare: https://github.com/llvm/llvm-project/compare/aaa7027716ad...997b66e56688

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list