Skip to content

Releases: qualcomm/toolchain_for_hexagon

22.1.8

Choose a tag to compare

@androm3da androm3da released this 16 Jul 02:55

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-clang support: this baremetal target is built with picolibc v1.8.11 - programs built here can be executed in the Hexagon SDK's hexagon-sim
  • eld now has symbol versioning
    • For now, eld is only included in the Ubuntu 22 x86_64 toolchain.
  • 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 with qemu-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

Linux 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.4

Choose a tag to compare

@androm3da androm3da released this 26 Apr 15:23

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-clang support: this baremetal target is built with picolibc v1.8.11 - programs built here can be executed in the Hexagon SDK's hexagon-sim
  • eld now has symbol versioning
    • For now, eld is only included in the Ubuntu 22 x86_64 toolchain.
  • 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 with qemu-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

Choose a tag to compare

@androm3da androm3da released this 03 Mar 17:18

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-clang support: this baremetal target is built with picolibc v1.8.11 - programs built here can be executed in the Hexagon SDK's hexagon-sim
  • eld now has symbol versioning
    • For now, eld is only included in the Ubuntu 22 x86_64 toolchain.
  • 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 with qemu-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

macOS Apple Silicon

SHA256SUMS of these archives

v22.1.0-rc1

Choose a tag to compare

@androm3da androm3da released this 20 Jan 22:33

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, the eld linker is included here. eld has richer support for hexagon than the current level of support present in lld. In order to tell clang to use eld, add the -fuse-ld=eld argument when linking.
    • For now, eld is only included in the Ubuntu 22 x86_64 toolchain.
  • 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

Choose a tag to compare

@androm3da androm3da released this 14 Jan 16:20

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, the eld linker is included here. eld has richer support for hexagon than the current level of support present in lld. In order to tell clang to use eld, add the -fuse-ld=eld argument when linking.
    • For now, eld is only included in the Ubuntu 22 x86_64 toolchain.
  • 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

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

Choose a tag to compare

@androm3da androm3da released this 01 May 05:10

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. the eld linker is included here. eld has richer support for hexagon than the current level of support present in lld. In order to tell clang to use eld, add the -fuse-ld=eld argument when linking.
    • For now, eld is only included in the Ubuntu 20 x86_64 toolchain.
  • Several compiler bugfixes

These toolchains were built from the LLVM 20.1.4 release.

Ubuntu 20.04, x86_64

Linux aarch64

Linux x86_64

Windows x64

Windows arm64

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

Choose a tag to compare

@androm3da androm3da released this 14 Dec 17:43

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

v19.1.2

Choose a tag to compare

@androm3da androm3da released this 19 Oct 13:36

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

Windows arm64

SHA256SUMS of these archives

Notable features/fixes

v18.1.0-rc1

Choose a tag to compare

@androm3da androm3da released this 07 Feb 13:56

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

Windows arm64

v2023.12.12

Choose a tag to compare

@androm3da androm3da released this 14 Dec 21:42

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