Skip to content

Commit

Permalink
docs: Add toolchain homepage
Browse files Browse the repository at this point in the history
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
Show file tree
Hide file tree
Showing 5 changed files with 89 additions and 1 deletion.
1 change: 1 addition & 0 deletions docs/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ sphinx_docs_library(
"python_build.rst",
"targets.rst",
"third_party_support.rst",
"toolchain.rst",
],
strip_prefix = "docs/",
target_compatible_with = incompatible_with_mcu(),
Expand Down
1 change: 1 addition & 0 deletions docs/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -435,6 +435,7 @@ pw_doc_gen("docs") {
"python_build.rst",
"targets.rst",
"third_party_support.rst",
"toolchain.rst",
]
output_directory = target_gen_dir
deps = [
Expand Down
6 changes: 5 additions & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,11 @@ def pygments_monkeypatch_style(mod_name, cls):
html_baseurl = 'https://pigweed.dev/'

# Hide "Section Navigation" on homepage and changelog.
html_sidebars = {'index': [], 'changelog': []}
html_sidebars = {
'index': [],
'changelog': [],
'toolchain': [],
}

html_context = {
'default_mode': 'dark',
Expand Down
1 change: 1 addition & 0 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,7 @@ Talk to us
Source code <https://cs.pigweed.dev/pigweed>
docs/showcases/index
docs/concepts/index
Toolchain <toolchain>
docs/3p/index
docs/community/index
Developing & contributing <docs/contributing/index>
Expand Down
81 changes: 81 additions & 0 deletions docs/toolchain.rst
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>`_.

0 comments on commit 9337bf2

Please sign in to comment.