LLGo is licensed under Apache License 2.0. The following components retain
their own licenses. The referenced license files are included in source
checkouts, release archives, and packaged distributions. The nested runtime
module carries its own copy of LLGo's Apache-2.0 license in runtime/LICENSE.
LLGo contains source derived from the TinyGo project:
- the conservative bare-metal collector in
runtime/internal/runtime/tinygogc/gc_tinygo.go; - firmware image support in
internal/firmware/esp.go,nrfutil.go,objcopy.go, anduf2.go; - the marked flashing-support portions of
internal/flash/flash.go; - serial monitoring and panic-location support in
internal/monitor/monitor.go; - target configurations and support files under
targets.
Reference snapshots contemporaneous with the initial LLGo imports are:
The TinyGo-derived portions remain subject to the BSD 3-Clause License in
LICENSES/TinyGo-BSD-3-Clause.txt.
Independently written LLGo code remains subject to the repository's Apache
License 2.0.
LLGo distributes Go-derived source under runtime, targets/wasm_exec.js,
chore/ssadump, and selected compatibility tests.
The llgo executable also contains the Go standard library and packages from
golang.org/x/mod, golang.org/x/sync, golang.org/x/sys, and
golang.org/x/tools. The authoritative versions are recorded in go.mod and
the executable's Go build information.
These portions are licensed under the Go project's BSD 3-Clause License in
LICENSES/Go-BSD-3-Clause.txt. The nested
runtime module also carries a copy at
runtime/LICENSES/Go-BSD-3-Clause.txt.
| Component | Distributed in | License |
|---|---|---|
github.com/sigurn/crc16 and LLGo adaptations |
internal/crc16, compiled CLI |
MIT |
github.com/marcinbor85/gohex and LLGo adaptations |
internal/gohex, compiled CLI |
MIT |
github.com/blakesmith/ar and LLGo adaptations |
xtool/ar, source and development tools |
MIT |
| Hardware-vendor target support | marked files under targets/device and targets/rp2040-boot-stage2.S |
vendor notices, including the Nordic BSD license |
The original file-level notices remain in the target support sources. Firmware distributors must reproduce the applicable notices when those sources are included in a firmware image.
This list is limited to modules in the shipped Darwin, Linux, and Windows executables; development- and test-only modules are not included.
| Module | License |
|---|---|
github.com/creack/goselect |
MIT |
github.com/goplus/cobra |
Apache-2.0; compiled pflag package: BSD-3-Clause |
github.com/mattn/go-tty |
MIT |
github.com/qiniu/x |
Apache-2.0 |
github.com/xgo-dev/llvm |
Apache-2.0 WITH LLVM-exception |
github.com/xgo-dev/plan9asm |
Apache-2.0 |
go.bug.st/serial |
BSD-3-Clause |
go.yaml.in/yaml/v3 |
MIT and Apache-2.0, NOTICE |
golang.org/x/mod, x/sync, x/sys, and x/tools |
BSD-3-Clause |
LLGo can download the Espressif-maintained ESP LLVM/Clang 22 toolchain
22.1.4_20260905.
Current LLGo release archives use the LLVM 22 payload and include it under
crosscompile/clang. Darwin and Linux executables dynamically link its LLVM
library. Windows MSVC executables statically link the official LLVM 22.1.8
development libraries; Windows MinGW executables carry their MSYS2 LLVM and
transitive runtime DLLs in bin, with the component licenses preserved under
LICENSES/windows-runtime. Each ESP payload includes THIRD-PARTY-LICENSES.txt
and the component license texts for LLVM, Clang, LLD, compiler-rt, libc++,
libc++abi, and libunwind.
LLVM, Clang, LLD, libc++, libc++abi, libunwind, compiler-rt, and other
LLVM-project components are licensed under Apache License 2.0 with LLVM
Exceptions. The complete license is reproduced in
LICENSES/XGo-LLVM-Apache-2.0-WITH-LLVM-exception.txt.
Archive extraction preserves upstream license files.
LLGo downloads the following components directly from their upstream release locations when a selected target needs them. They are stored in the user's LLGo cache; they are not vendored in this source tree. Their license files remain in the extracted source or SDK directory.
The Go packages under internal/crosscompile/compile/libc and
internal/crosscompile/compile/rtlib are LLGo build manifests, not copies of
the C library sources. The manifest code itself is compiled into llgo and is
covered by LLGo's Apache-2.0 license. At cross-compilation time, those manifests
select files from the downloaded picolibc, ESP newlib, or compiler-rt tree and
build static archives in that same cached tree. The archives are then linked
into the target program, so they are not part of the llgo executable or LLGo
release archive, but their code can be incorporated into the resulting
firmware.
| Component | Download source | License location |
|---|---|---|
| WASI SDK 25 | WebAssembly/wasi-sdk |
upstream LICENSE and license files in the SDK |
| picolibc/newlib sources | goplus/picolibc |
upstream COPYING.picolibc and COPYING.NEWLIB |
| ESP newlib sources | goplus/newlib |
upstream COPYING.NEWLIB and applicable file notices |
| compiler-rt sources | goplus/compiler-rt@xtensa_release_22.1.4_20260903 |
upstream LICENSE.TXT (Apache-2.0 WITH LLVM-exception) |
Firmware or other binaries built from downloaded C library sources may carry
their own redistribution requirements. Distributors of those outputs should
retain the applicable license and copyright notices from the cached source;
in particular, picolibc and ESP newlib use per-file notices collected by their
upstream COPYING files.
BDWGC, OpenSSL, libffi, cJSON, SQLite, zlib, Python, Emscripten, QEMU, OpenOCD, flashing utilities, and platform SDK/system libraries are installed or provided separately. LLGo may link to or invoke them, but does not copy them into its source tree or release archives, except for LLVM-project components explicitly described above. Their upstream licenses therefore apply to the separate installations and to any redistributed output that incorporates them; they are not relicensed by LLGo.
Distributions containing the source, the llgo executable, the bundled
toolchain, or firmware linked with third-party runtime or target support must
retain or reproduce the applicable copyright notices, license conditions,
disclaimers, and NOTICE text described above.