1.. _toolchain: 2 3================= 4Pigweed Toolchain 5================= 6Pigweed Toolchain is an LLVM/Clang toolchain for embedded use cases. 7 8.. _toolchain-background: 9 10---------- 11Background 12---------- 13Our toolchain philosophy is to co-evolve the support for embedded use cases in 14the LLVM project as we onboard new projects to use the Clang/LLVM toolchain 15distributed by us. Teams at Google that we partner with make contributions to the 16LLVM project regularly. Recent contributions include: 17 18* Compiler optimizations 19* LLVM ``libc`` library support 20* Improvements to the LLD linker 21 22.. _live at HEAD: https://abseil.io/about/philosophy#we-recommend-that-you-choose-to-live-at-head 23 24We follow the `live at HEAD`_ model and do all development in LLVM which enables 25us to rapidly adopt new features and provide fast feedback to the LLVM community. 26We continuously build new versions of the Clang toolchain binaries and distribute 27them to our users. Pigweed's toolchain version is periodically updated along with 28code changes necessary to the Pigweed codebase itself to be compatible with and 29take advantage of new toolchain features as soon as they land. 30 31For more information, check out the following presentation: 32 33.. raw:: html 34 35 <iframe width="560" height="315" 36 src="https://www.youtube.com/embed/0HvgvBUPTyw" 37 title="LLVM Toolchain for Embedded Systems" 38 frameborder="0" 39 allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" 40 referrerpolicy="strict-origin-when-cross-origin" 41 allowfullscreen></iframe> 42 43.. _toolchain-prebuilts: 44 45--------- 46Prebuilts 47--------- 48.. _CIPD Packages: https://chrome-infra-packages.appspot.com/p/fuchsia/third_party/clang 49 50The toolchain can be downloaded from `CIPD Packages`_. It includes 51a cross-compiler that can target the following architectures. 52 53Embedded targets: 54 55* ARM 32-bit 56 57 * ARMv6 58 59 * ARMv7 60 61 * ARMv8 62 63* RISC-V 32-bit 64 65Host targets: 66 67* Linux 68* Windows\ :sup:`1` 69* macOS\ :sup:`2` 70 71:sup:`1` Contains some limitations around user-side licensing. 72 73:sup:`2` MLInliner is not supported yet. 74 75.. _toolchain-support: 76 77------- 78Support 79------- 80`File a bug <https://pwbug.dev>`_ or talk to the Pigweed 81team on `Discord <https://discord.com/invite/M9NSeTA>`_. 82