[all-commits] [llvm/llvm-project] 4794bd: [Driver] Multilib YAML parsing
Michael Platings via All-commits
all-commits at lists.llvm.org
Tue Jun 13 22:47:26 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 4794bdab7aed92e699db29e031bfe71f4005326f
https://github.com/llvm/llvm-project/commit/4794bdab7aed92e699db29e031bfe71f4005326f
Author: Michael Platings <michael.platings at arm.com>
Date: 2023-06-14 (Wed, 14 Jun 2023)
Changed paths:
M clang/include/clang/Driver/Multilib.h
M clang/lib/Driver/Multilib.cpp
M clang/unittests/Driver/MultilibTest.cpp
Log Message:
-----------
[Driver] Multilib YAML parsing
The format includes a ClangMinimumVersion entry to avoid a potential
source of subtle errors if an older version of Clang were to be used
with a multilib.yaml that requires a newer Clang to work correctly.
This feature is comparable to CMake's cmake_minimum_required.
Reviewed By: peter.smith
Differential Revision: https://reviews.llvm.org/D142932
Commit: a794ab92b41f00ba29b5852c34a510173638dcc0
https://github.com/llvm/llvm-project/commit/a794ab92b41f00ba29b5852c34a510173638dcc0
Author: Michael Platings <michael.platings at arm.com>
Date: 2023-06-14 (Wed, 14 Jun 2023)
Changed paths:
M clang/include/clang/Driver/Options.td
M clang/include/clang/Driver/ToolChain.h
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/ToolChain.cpp
M clang/lib/Driver/ToolChains/Arch/ARM.cpp
M clang/lib/Driver/ToolChains/Arch/ARM.h
A clang/test/Driver/print-multi-selection-flags.c
Log Message:
-----------
[Driver] Add -print-multi-flags-experimental option
This option causes the flags used for selecting multilibs to be printed.
This is an experimental feature that is documented in detail in D143587.
Differential Revision: https://reviews.llvm.org/D142933
Commit: b4eebc8674e1f1dc1ef08fa7648ca494a119449d
https://github.com/llvm/llvm-project/commit/b4eebc8674e1f1dc1ef08fa7648ca494a119449d
Author: Michael Platings <michael.platings at arm.com>
Date: 2023-06-14 (Wed, 14 Jun 2023)
Changed paths:
M clang/lib/Driver/ToolChain.cpp
M clang/lib/Driver/ToolChains/Arch/ARM.cpp
M clang/lib/Driver/ToolChains/Arch/ARM.h
M clang/lib/Driver/ToolChains/BareMetal.cpp
A clang/test/Driver/baremetal-multilib.yaml
M clang/test/Driver/baremetal.cpp
M clang/test/Driver/lit.local.cfg
Log Message:
-----------
[Driver] Enable multilib.yaml in the BareMetal ToolChain
The default location for multilib.yaml is lib/clang-runtimes, without
any target-specific suffix. This will allow multilibs for different
architectures to share a common include directory.
To avoid breaking the arm-execute-only.c CHECK-NO-EXECUTE-ONLY-ASM
test, add a ForMultilib argument to getARMTargetFeatures.
Since the presence of multilib.yaml can change the exact location of a
library, relax the baremetal.cpp test.
Differential Revision: https://reviews.llvm.org/D142986
Commit: edc1130c0ac0e52ac5e347127972313ba928fe9a
https://github.com/llvm/llvm-project/commit/edc1130c0ac0e52ac5e347127972313ba928fe9a
Author: Michael Platings <michael.platings at arm.com>
Date: 2023-06-14 (Wed, 14 Jun 2023)
Changed paths:
M clang/include/clang/Driver/Multilib.h
M clang/include/clang/Driver/ToolChain.h
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/Multilib.cpp
M clang/lib/Driver/ToolChain.cpp
M clang/lib/Driver/ToolChains/BareMetal.cpp
M clang/lib/Driver/ToolChains/CSKYToolChain.cpp
M clang/lib/Driver/ToolChains/Fuchsia.cpp
M clang/lib/Driver/ToolChains/Gnu.cpp
M clang/lib/Driver/ToolChains/Gnu.h
M clang/lib/Driver/ToolChains/Hexagon.cpp
M clang/lib/Driver/ToolChains/Hurd.cpp
M clang/lib/Driver/ToolChains/Linux.cpp
M clang/lib/Driver/ToolChains/MipsLinux.cpp
M clang/lib/Driver/ToolChains/OHOS.cpp
M clang/lib/Driver/ToolChains/RISCVToolchain.cpp
M clang/test/Driver/fuchsia.cpp
M clang/unittests/Driver/MultilibBuilderTest.cpp
M clang/unittests/Driver/MultilibTest.cpp
Log Message:
-----------
[Driver] Enable selecting multiple multilibs
This will enable layering multilibs on top of each other.
For example a multilib containing only a no-exceptions libc++ could be
layered on top of a multilib containing C libs. This avoids the need
to duplicate the C library for every libc++ variant.
This change doesn't expose the functionality externally, it only opens
the functionality up to be potentially used by ToolChain classes.
Differential Revision: https://reviews.llvm.org/D143059
Commit: ab2c80bb125634816e39a1e4787a5a103cd03a74
https://github.com/llvm/llvm-project/commit/ab2c80bb125634816e39a1e4787a5a103cd03a74
Author: Michael Platings <michael.platings at arm.com>
Date: 2023-06-14 (Wed, 14 Jun 2023)
Changed paths:
M clang/lib/Driver/ToolChains/BareMetal.cpp
M clang/lib/Driver/ToolChains/BareMetal.h
A clang/test/Driver/baremetal-multilib-layered.yaml
Log Message:
-----------
[Driver] BareMetal ToolChain multilib layering
This enables layering baremetal multilibs on top of each other.
For example a multilib containing only a no-exceptions libc++ could be
layered on top of a multilib containing C libs. This avoids the need
to duplicate the C library for every libc++ variant.
Differential Revision: https://reviews.llvm.org/D143075
Commit: a5aeba737694f56daacfbe8f78601cbd14f5d359
https://github.com/llvm/llvm-project/commit/a5aeba737694f56daacfbe8f78601cbd14f5d359
Author: Michael Platings <michael.platings at arm.com>
Date: 2023-06-14 (Wed, 14 Jun 2023)
Changed paths:
A clang/docs/Multilib.rst
M clang/docs/index.rst
Log Message:
-----------
[Docs] Multilib design
Reviewed By: peter.smith, MaskRay
Differential Revision: https://reviews.llvm.org/D143587
Compare: https://github.com/llvm/llvm-project/compare/fba9fd1afa70...a5aeba737694
More information about the All-commits
mailing list