-
Notifications
You must be signed in to change notification settings - Fork 78
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bug: 373454866 Change-Id: Iea27fe90e0f3ff0522f5becc9e7ed57d74b3eb72 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/247593 Lint: Lint 🤖 <[email protected]> Presubmit-Verified: CQ Bot Account <[email protected]> Commit-Queue: Auto-Submit <[email protected]> Pigweed-Auto-Submit: Kayce Basques <[email protected]> Reviewed-by: Amit Uttamchandani <[email protected]>
- Loading branch information
Kayce Basques
authored and
CQ Bot Account
committed
Jan 5, 2025
1 parent
79b08cb
commit 9337bf2
Showing
5 changed files
with
89 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
.. _toolchain: | ||
|
||
================= | ||
Pigweed Toolchain | ||
================= | ||
Pigweed Toolchain is an LLVM/Clang toolchain for embedded use cases. | ||
|
||
.. _toolchain-background: | ||
|
||
---------- | ||
Background | ||
---------- | ||
Our toolchain philosophy is to co-evolve the support for embedded use cases in | ||
the LLVM project as we onboard new projects to use the Clang/LLVM toolchain | ||
distributed by us. Teams at Google that we partner with make contributions to the | ||
LLVM project regularly. Recent contributions include: | ||
|
||
* Compiler optimizations | ||
* LLVM ``libc`` library support | ||
* Improvements to the LLD linker | ||
|
||
.. _live at HEAD: https://abseil.io/about/philosophy#we-recommend-that-you-choose-to-live-at-head | ||
|
||
We follow the `live at HEAD`_ model and do all development in LLVM which enables | ||
us to rapidly adopt new features and provide fast feedback to the LLVM community. | ||
We continuously build new versions of the Clang toolchain binaries and distribute | ||
them to our users. Pigweed's toolchain version is periodically updated along with | ||
code changes necessary to the Pigweed codebase itself to be compatible with and | ||
take advantage of new toolchain features as soon as they land. | ||
|
||
For more information, check out the following presentation: | ||
|
||
.. raw:: html | ||
|
||
<iframe width="560" height="315" | ||
src="https://www.youtube.com/embed/0HvgvBUPTyw" | ||
title="LLVM Toolchain for Embedded Systems" | ||
frameborder="0" | ||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" | ||
referrerpolicy="strict-origin-when-cross-origin" | ||
allowfullscreen></iframe> | ||
|
||
.. _toolchain-prebuilts: | ||
|
||
--------- | ||
Prebuilts | ||
--------- | ||
.. _CIPD Packages: https://chrome-infra-packages.appspot.com/p/fuchsia/third_party/clang | ||
|
||
The toolchain can be downloaded from `CIPD Packages`_. It includes | ||
a cross-compiler that can target the following architectures. | ||
|
||
Embedded targets: | ||
|
||
* ARM 32-bit | ||
|
||
* ARMv6 | ||
|
||
* ARMv7 | ||
|
||
* ARMv8 | ||
|
||
* RISC-V 32-bit | ||
|
||
Host targets: | ||
|
||
* Linux | ||
* Windows\ :sup:`1` | ||
* macOS\ :sup:`2` | ||
|
||
:sup:`1` Contains some limitations around user-side licensing. | ||
|
||
:sup:`2` MLInliner is not supported yet. | ||
|
||
.. _toolchain-support: | ||
|
||
------- | ||
Support | ||
------- | ||
`File a bug <https://pwbug.dev>`_ or talk to the Pigweed | ||
team on `Discord <https://discord.com/invite/M9NSeTA>`_. |