Releases: qualcomm/toolchain_for_hexagon
Release list
22.1.8
This is a cross-toolchain built from public source repositories. It can make and analyze binaries for hexagon-unknown-linux-musl and hexagon-unknown-none-elf. hexagon-unknown-none-elf is a baremetal target that has very minimal platform support: simple bootstrapping, semihosting, C library.
Important
This toolchain does not have all of the headers and libraries required for targeting the commercial QuRT RTOS often used in devices that feature Hexagon DSPs.
Notable toolchain features/fixes/differences
hexagon-clangsupport: this baremetal target is built withpicolibcv1.8.11 - programs built here can be executed in the Hexagon SDK's hexagon-simeldnow has symbol versioning- For now,
eldis only included in the Ubuntu 22 x86_64 toolchain.
- For now,
- Several compiler, binutils bugfixes
- Libraries necessary for using ASan and UBSan are now included for
hexagon-unknown-linux-musl. This means you can use ASan and UBSan from linux programs like withqemu-hexagon. See toolchain examples to learn how to use these. - The toolchains built for aarch64-macos, x86_64-linux-gnu, aarch64-linux-gnu, aarch64-windows-gnu, x86_64-windows-gnu are statically linked.
- Windows x64 QEMU hexagon was omitted from this build, it will return in future releases.
These toolchains were built from the LLVM 22.1.8 release, plus some local patches in patches/llvm-project/llvmorg-22.1.8/.
Debian, architecture-independent
This archive contains a set of .deb packages that depend on clang-22, lld-22. Instead of providing a full LLVM toolchain distribution, the only items included are the compiler driver configuration, triple-prefix symlinks to clang and the sysroots for linux and baremetal. See https://apt.llvm.org/ for details on how to get a newer clang/lld installed.
Ubuntu 22.04, x86_64
Linux aarch64
- clang+llvm-22.1.8-cross-hexagon-unknown-linux-musl_aarch64-linux-gnu.tar.zst
- The executables in this toolchain are statically linked.
Linux x86_64
- clang+llvm-22.1.8-cross-hexagon-unknown-linux-musl_x86_64-linux-gnu.tar.zst
- The executables in this toolchain are statically linked.
Windows x64, arm64, macOS Apple Silicon
- unfortunately these build configurations were omitted, they'll return in a future release
SHA256SUMS of these archives
22.1.4
This is a cross-toolchain built from public source repositories. It can make and analyze binaries for hexagon-unknown-linux-musl and hexagon-unknown-none-elf. hexagon-unknown-none-elf is a baremetal target that has very minimal platform support: simple bootstrapping, semihosting, C library.
Notable toolchain features/fixes/differences
hexagon-clangsupport: this baremetal target is built withpicolibcv1.8.11 - programs built here can be executed in the Hexagon SDK's hexagon-simeldnow has symbol versioning- For now,
eldis only included in the Ubuntu 22 x86_64 toolchain.
- For now,
- Several compiler, binutils bugfixes
- Libraries necessary for using ASan and UBSan are now included for
hexagon-unknown-linux-musl. This means you can use ASan and UBSan from linux programs like withqemu-hexagon. See toolchain examples to learn how to use these. - The toolchains built for aarch64-macos, x86_64-linux-musl, aarch64-linux-musl, aarch64-windows-gnu, x86_64-windows-gnu are no longer statically linked. This means (1) that they take up much less disk space when installed and (2) they now have a system dependency which must be satisfied. That dependency is the C library for that target. For the linux ones, you must install musl's C library. This results in a toolchain that is very portable among linux systems.
- Windows x64 QEMU hexagon was omitted from this build, it will return in future releases.
These toolchains were built from the LLVM 22.1.4 release, plus some local patches in patches/llvm-project/llvmorg-22.1.4/.
Debian, architecture-independent
This archive contains a set of .deb packages that depend on clang-22, lld-22. Instead of providing a full LLVM toolchain distribution, the only items included are the compiler driver configuration, triple-prefix symlinks to clang and the sysroots for linux and baremetal. See https://apt.llvm.org/ for details on how to get a newer clang/lld installed.
Ubuntu 22.04, x86_64
Windows x64, arm64, macOS Apple Silicon
- unfortunately these build configurations were omitted, they'll return in a future release
SHA256SUMS of these archives
22.1.0
This is a cross-toolchain built from public source repositories. It can make and analyze binaries for hexagon-unknown-linux-musl and hexagon-unknown-none-elf. hexagon-unknown-none-elf is a baremetal target that has very minimal platform support: simple bootstrapping, semihosting, C library.
Notable toolchain features/fixes/differences
hexagon-clangsupport: this baremetal target is built withpicolibcv1.8.11 - programs built here can be executed in the Hexagon SDK's hexagon-simeldnow has symbol versioning- For now,
eldis only included in the Ubuntu 22 x86_64 toolchain.
- For now,
- Several compiler, binutils bugfixes
- Libraries necessary for using ASan and UBSan are now included for
hexagon-unknown-linux-musl. This means you can use ASan and UBSan from linux programs like withqemu-hexagon. See toolchain examples to learn how to use these. - The toolchains built for aarch64-macos, x86_64-linux-musl, aarch64-linux-musl, aarch64-windows-gnu, x86_64-windows-gnu are no longer statically linked. This means (1) that they take up much less disk space when installed and (2) they now have a system dependency which must be satisfied. That dependency is the C library for that target. For the linux ones, you must install musl's C library. This results in a toolchain that is very portable among linux systems.
- Windows x64 QEMU hexagon was omitted from this build, it will return in future releases.
These toolchains were built from the LLVM 22.1.0 release, plus some local patches in patches/llvm-project/llvmorg-22.1.0/.
Ubuntu 22.04, x86_64
Windows x64
Windows arm64
- clang+llvm-22.1.0-cross-hexagon-unknown-linux-musl_aarch64-windows-gnu.tar.zst
- Unfortunately we don't have a QEMU build working on this configuration yet. It's not terribly difficult to do, so if it's needed please open an issue and we can prioritize it.
macOS Apple Silicon
SHA256SUMS of these archives
v22.1.0-rc1
This is a cross-toolchain built from public source repositories. It can make and analyze binaries for hexagon-unknown-linux-musl and hexagon-unknown-none-elf. hexagon-unknown-none-elf is a baremetal target that does not have any platform support like bootstrapping/loaders nor a C library.
Notable toolchain features/fixes/differences
- Ubuntu 22.04: the x86_64 ubuntu release below is built against Ubuntu 22, which means it should generally work on 22-and-later. Previous toolchain releases were built on Ubuntu 20.
- New linker:
eld. Since the 20.1.4 release, theeldlinker is included here.eldhas richer support for hexagon than the current level of support present inlld. In order to tell clang to useeld, add the-fuse-ld=eldargument when linking.- For now,
eldis only included in the Ubuntu 22 x86_64 toolchain.
- For now,
- Several compiler, binutils bugfixes
- The toolchains built for x86_64-linux-musl, aarch64-linux-musl, aarch64-windows-gnu, x86_64-windows-gnu are no longer statically linked. This means (1) that they take up much less disk space when installed and (2) they now have a system dependency which must be satisfied. That dependency is the C library for that target. For the linux ones, you must install musl's C library.
- Windows x64 QEMU hexagon was omitted from this build, it will return in future releases.
These toolchains were built from the LLVM 22.1.0-rc1 release.
Ubuntu 22.04, x86_64
Known issues:
v21.1.8
This is a cross-toolchain built from public source repositories. It can make and analyze binaries for hexagon-unknown-linux-musl and hexagon-unknown-none-elf. hexagon-unknown-none-elf is a baremetal target that does not have any platform support like bootstrapping/loaders nor a C library.
Notable toolchain features/fixes/differences
- Ubuntu 22.04: the x86_64 ubuntu release below is built against Ubuntu 22, which means it should generally work on 22-and-later. Previous toolchain releases were built on Ubuntu 20.
- New linker:
eld. Since the 20.1.4 release, theeldlinker is included here.eldhas richer support for hexagon than the current level of support present inlld. In order to tell clang to useeld, add the-fuse-ld=eldargument when linking.- For now,
eldis only included in the Ubuntu 22 x86_64 toolchain.
- For now,
- Several compiler, binutils bugfixes
- The toolchains built for x86_64-linux-musl, aarch64-linux-musl, aarch64-windows-gnu, x86_64-windows-gnu are no longer statically linked. This means (1) that they take up much less disk space when installed and (2) they now have a system dependency which must be satisfied. That dependency is the C library for that target. For the linux ones, you must install musl's C library.
- Windows x64 QEMU hexagon was omitted from this build, it will return in future releases.
These toolchains were built from the LLVM 21.1.8 release.
Ubuntu 22.04, x86_64
Windows x64
Windows arm64
- clang+llvm-21.1.8-cross-hexagon-unknown-linux-musl_aarch64-windows-gnu.tar.zst
- Unfortunately we don't have a QEMU build working on this configuration yet. It's not terribly difficult to do, so if it's needed please open an issue and we can prioritize it.
macOS Apple Silicon
- Unfortunately we don't have a 21.1.8 build for this OS, we ran into an issue with the build (9a2aad0) and haven't fixed it yet. You can try an older release for now.
SHA256SUMS of these archives
v20.1.4
Full Changelog for toolchain build scripts: v19.1.2...v20.1.4
This is a cross-toolchain built from public source repositories. It can make and analyze binaries for hexagon-unknown-linux-musl and hexagon-unknown-none-elf. hexagon-unknown-none-elf is a baremetal target that does not have any platform support like bootstrapping/loaders nor a C library.
Notable toolchain features/fixes
- New linker:
eld. theeldlinker is included here.eldhas richer support for hexagon than the current level of support present inlld. In order to tell clang to useeld, add the-fuse-ld=eldargument when linking.- For now,
eldis only included in the Ubuntu 20 x86_64 toolchain.
- For now,
- Several compiler bugfixes
These toolchains were built from the LLVM 20.1.4 release.
Ubuntu 20.04, x86_64
Linux aarch64
Linux x86_64
- clang+llvm-20.1.4-cross-hexagon-unknown-linux-musl_x86_64-linux-musl.tar.zst
- The executables in this toolchain are statically linked. This means that it should run on nearly any
x86_64linux distro, but also the tarball is very large (>8GB compressed, 29GB decompressed).
Windows x64
Windows arm64
- clang+llvm-20.1.4-cross-hexagon-unknown-linux-musl_aarch64-windows-gnu.tar.zst
- Unfortunately we don't have a QEMU build working on this configuration yet. It's not terribly difficult to do, so if it's needed please open an issue and we can prioritize it.
macOS Apple Silicon
- Unfortunately we don't have a 20.1.4 build for this OS, we ran into an issue with the build (9a2aad0) and haven't fixed it yet. You can try an older release for now.
SHA256SUMS of these archives
v19.1.5
This is a cross-toolchain built from public source repositories. It can make and analyze binaries for hexagon-unknown-linux-musl and hexagon-unknown-none-elf. hexagon-unknown-none-elf is a baremetal target that does not have any platform support like bootstrapping/loaders nor a C library.
These toolchains were built from the LLVM 19.1.5 release.
Ubuntu 20.04, x86_64
Linux aarch64
Linux x86_64
Windows x64
Windows arm64
SHA256SUMS of these archives
Notable features/fixes
- linker fix: llvm/llvm-project#116798
- compiler fix for library link order - fix necessary to use eld
- compiler driver fix for lld linker recognition when cross-compiling
v19.1.2
This is a cross-toolchain built from public source repositories. It can make and analyze binaries for hexagon-unknown-linux-musl and hexagon-unknown-none-elf. hexagon-unknown-none-elf is a baremetal target that does not have any platform support like bootstrapping/loaders nor a C library.
These toolchains were built from the LLVM 19.1.2 release.
Ubuntu 20.04, x86_64
Linux aarch64
Linux x86_64
Windows x64
- clang+llvm-19.1.2-cross-hexagon-unknown-linux-musl_x86_64-windows-gnu.tar.xz
- qemu-hexagon-x86_64-win.tar.xz - see the wiki article on how to install the dependencies
Windows arm64
SHA256SUMS of these archives
Notable features/fixes
- new musl baseline includes
pthread_getname, this will address link errors when building rust programs for linux - linker fixes: llvm/llvm-project#108431, llvm/llvm-project#111896
- support for
__builtin_readsteadycounter - compiler fix for an assertion in HexagonConstExtenders
- Initial buildroot support (ec43b10)
v18.1.0-rc1
This is a cross-toolchain built from public source repositories. It can make and analyze binaries for hexagon-unknown-linux-musl and hexagon-unknown-none-elf. hexagon-unknown-none-elf is a baremetal target that does not have any platform support like bootstrapping/loaders nor a C library.
These toolchains were built from the LLVM 18.1.0-rc1 release candidate.
Ubuntu 20.04, x86_64
Linux aarch64
Linux x86_64
MacOS, Apple Silicon
Windows x64
- clang+llvm-18.1.0-rc1-cross-hexagon-unknown-linux-musl_x86_64-windows-gnu.tar.xz
- qemu-hexagon-x86_64-win.tar.xz - see the wiki article on how to install the dependencies
Windows arm64
v2023.12.12
This release includes:
- symlinks for the baremetal triple,
hexagon-unknown-none-elf - encodings for several instructions that were previously missing
- a statically-linked x86_64 toolchain
Binaries
- clang+llvm-12.Dec.2023-cross-hexagon-unknown-linux-musl.tar.xz
- clang+llvm-12.Dec.2023-cross-hexagon-unknown-linux-musl_aarch64-linux-gnu.tar.xz
- clang+llvm-12.Dec.2023-cross-hexagon-unknown-linux-musl_x86_64-linux-musl.tar.xz
- hexagon_rootfs_2023_Dec_14.tar.xz
- qemu-hexagon-x86_64-win.tar.xz
- SHA256SUMS