diff mbox series

[RFC,v2,02/14] toolchain/toolchain-external: add hexagon toolchain support

Message ID 20241219053053.2389046-3-brian.cain@oss.qualcomm.com
State Changes Requested
Headers show
Series add hexagon architecture | expand

Commit Message

Brian Cain Dec. 19, 2024, 5:30 a.m. UTC
Signed-off-by: Brian Cain <brian.cain@oss.qualcomm.com>
---
 toolchain/toolchain-external/Config.in                |  6 ++++++
 .../toolchain-external-hexagon/Config.in              |  7 +++++++
 .../toolchain-external-hexagon/Config.in.options      | 10 ++++++++++
 .../toolchain-external-hexagon.hash                   |  6 ++++++
 .../toolchain-external-hexagon.mk                     | 11 +++++++++++
 5 files changed, 40 insertions(+)
 create mode 100644 toolchain/toolchain-external/toolchain-external-hexagon/Config.in
 create mode 100644 toolchain/toolchain-external/toolchain-external-hexagon/Config.in.options
 create mode 100644 toolchain/toolchain-external/toolchain-external-hexagon/toolchain-external-hexagon.hash
 create mode 100644 toolchain/toolchain-external/toolchain-external-hexagon/toolchain-external-hexagon.mk

Comments

Thomas Petazzoni Feb. 5, 2025, 10:58 a.m. UTC | #1
Hello Brian,

On Wed, 18 Dec 2024 21:30:41 -0800
Brian Cain via buildroot <buildroot@buildroot.org> wrote:

> Signed-off-by: Brian Cain <brian.cain@oss.qualcomm.com>
> ---
>  toolchain/toolchain-external/Config.in                |  6 ++++++
>  .../toolchain-external-hexagon/Config.in              |  7 +++++++
>  .../toolchain-external-hexagon/Config.in.options      | 10 ++++++++++
>  .../toolchain-external-hexagon.hash                   |  6 ++++++
>  .../toolchain-external-hexagon.mk                     | 11 +++++++++++
>  5 files changed, 40 insertions(+)

Please update the DEVELOPERS file as part of this commit.

>  create mode 100644 toolchain/toolchain-external/toolchain-external-hexagon/Config.in
>  create mode 100644 toolchain/toolchain-external/toolchain-external-hexagon/Config.in.options
>  create mode 100644 toolchain/toolchain-external/toolchain-external-hexagon/toolchain-external-hexagon.hash
>  create mode 100644 toolchain/toolchain-external/toolchain-external-hexagon/toolchain-external-hexagon.mk

I believe the toolchain should be perhaps be named
toolchain-external-linaro-hexagon toolchain. Indeed,
toolchain-external-hexagon is too generic, and could be a name for
*any* hexagon toolchain.

> diff --git a/toolchain/toolchain-external/Config.in b/toolchain/toolchain-external/Config.in
> index e91aa16326..7bd5309671 100644
> --- a/toolchain/toolchain-external/Config.in
> +++ b/toolchain/toolchain-external/Config.in
> @@ -29,6 +29,9 @@ source "toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in"
>  # MIPS
>  source "toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in"
>  
> +# Hexagon
> +source "toolchain/toolchain-external/toolchain-external-hexagon/Config.in"
> +
>  # Bootlin toolchains, available for virtually all architectures
>  source "toolchain/toolchain-external/toolchain-external-bootlin/Config.in"
>  
> @@ -123,6 +126,9 @@ source "toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in.opt
>  # ARM big-endian
>  source "toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in.options"
>  
> +# Hexagon
> +source "toolchain/toolchain-external/toolchain-external-hexagon/Config.in.options"
> +
>  # MIPS
>  source "toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in.options"
>  
> diff --git a/toolchain/toolchain-external/toolchain-external-hexagon/Config.in b/toolchain/toolchain-external/toolchain-external-hexagon/Config.in
> new file mode 100644
> index 0000000000..256eeb87dc
> --- /dev/null
> +++ b/toolchain/toolchain-external/toolchain-external-hexagon/Config.in
> @@ -0,0 +1,7 @@
> +comment "Toolchains available for Hexagon DSP"
> +
> +config BR2_TOOLCHAIN_EXTERNAL_HEXAGON
> +	bool "Clang/LLVM Hexagon Toolchain"
> +	depends on BR2_HOSTARCH = "x86_64" || "aarch64"
> +	select BR2_TOOLCHAIN_EXTERNAL_CLANG

As of commit PATCH 02, this Config.in symbol doesn't exist, so you need
to adjust the order of the patches so that it gets added earlier.

Thanks!

Thomas
diff mbox series

Patch

diff --git a/toolchain/toolchain-external/Config.in b/toolchain/toolchain-external/Config.in
index e91aa16326..7bd5309671 100644
--- a/toolchain/toolchain-external/Config.in
+++ b/toolchain/toolchain-external/Config.in
@@ -29,6 +29,9 @@  source "toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in"
 # MIPS
 source "toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in"
 
+# Hexagon
+source "toolchain/toolchain-external/toolchain-external-hexagon/Config.in"
+
 # Bootlin toolchains, available for virtually all architectures
 source "toolchain/toolchain-external/toolchain-external-bootlin/Config.in"
 
@@ -123,6 +126,9 @@  source "toolchain/toolchain-external/toolchain-external-linaro-arm/Config.in.opt
 # ARM big-endian
 source "toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in.options"
 
+# Hexagon
+source "toolchain/toolchain-external/toolchain-external-hexagon/Config.in.options"
+
 # MIPS
 source "toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in.options"
 
diff --git a/toolchain/toolchain-external/toolchain-external-hexagon/Config.in b/toolchain/toolchain-external/toolchain-external-hexagon/Config.in
new file mode 100644
index 0000000000..256eeb87dc
--- /dev/null
+++ b/toolchain/toolchain-external/toolchain-external-hexagon/Config.in
@@ -0,0 +1,7 @@ 
+comment "Toolchains available for Hexagon DSP"
+
+config BR2_TOOLCHAIN_EXTERNAL_HEXAGON
+	bool "Clang/LLVM Hexagon Toolchain"
+	depends on BR2_HOSTARCH = "x86_64" || "aarch64"
+	select BR2_TOOLCHAIN_EXTERNAL_CLANG
+	select BR2_TOOLCHAIN_EXTERNAL_MUSL
diff --git a/toolchain/toolchain-external/toolchain-external-hexagon/Config.in.options b/toolchain/toolchain-external/toolchain-external-hexagon/Config.in.options
new file mode 100644
index 0000000000..84611fdd9a
--- /dev/null
+++ b/toolchain/toolchain-external/toolchain-external-hexagon/Config.in.options
@@ -0,0 +1,10 @@ 
+
+if BR2_TOOLCHAIN_EXTERNAL_HEXAGON
+
+config BR2_TOOLCHAIN_EXTERNAL_PREFIX
+	default "hexagon-unknown-linux-musl"
+
+config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
+	default "toolchain-external-hexagon"
+
+endif
diff --git a/toolchain/toolchain-external/toolchain-external-hexagon/toolchain-external-hexagon.hash b/toolchain/toolchain-external/toolchain-external-hexagon/toolchain-external-hexagon.hash
new file mode 100644
index 0000000000..acaa7bbe24
--- /dev/null
+++ b/toolchain/toolchain-external/toolchain-external-hexagon/toolchain-external-hexagon.hash
@@ -0,0 +1,6 @@ 
+# From https://artifacts.codelinaro.org/artifactory/codelinaro-toolchain-for-hexagon/19.1.5/SHA256SUMS:
+sha256 55b41922318f6331590ab7baa7f5dbdd99c109327a9c44a52c5e9878fab148c1  clang+llvm-19.1.5-cross-hexagon-unknown-linux-musl.tar.zst
+sha256 7dd6137d3e6f1516f9b2cf252ef3ca6b5b5b1f24e27423c69d88c32d51d6b483  clang+llvm-19.1.5-cross-hexagon-unknown-linux-musl_aarch64-linux-gnu.tar.zst
+sha256 91795d124c81d27c3829404627a2a06dab0a8683078ac898520d4a81e8853958  clang+llvm-19.1.5-cross-hexagon-unknown-linux-musl_aarch64-windows-gnu.tar.zst
+sha256 f41736f98d6d1d6f03ce6e2b6a032dca9c8d7eba126ca21acce9df7b695c41b0  clang+llvm-19.1.5-cross-hexagon-unknown-linux-musl_x86_64-linux-musl.tar.zst
+sha256 3cacc3cd0e5e531d91a9c70953d6793523c9b954e901a56d02c6b926cbca8690  clang+llvm-19.1.5-cross-hexagon-unknown-linux-musl_x86_64-windows-gnu.tar.zst
diff --git a/toolchain/toolchain-external/toolchain-external-hexagon/toolchain-external-hexagon.mk b/toolchain/toolchain-external/toolchain-external-hexagon/toolchain-external-hexagon.mk
new file mode 100644
index 0000000000..59e763a2e4
--- /dev/null
+++ b/toolchain/toolchain-external/toolchain-external-hexagon/toolchain-external-hexagon.mk
@@ -0,0 +1,11 @@ 
+################################################################################
+#
+# toolchain-external-hexagon
+#
+################################################################################
+
+TOOLCHAIN_EXTERNAL_HEXAGON_VERSION = 19.1.5
+TOOLCHAIN_EXTERNAL_HEXAGON_SITE= https://artifacts.codelinaro.org/artifactory/codelinaro-toolchain-for-hexagon/$(TOOLCHAIN_EXTERNAL_HEXAGON_VERSION)
+TOOLCHAIN_EXTERNAL_HEXAGON_SOURCE = clang+llvm-$(TOOLCHAIN_EXTERNAL_HEXAGON_VERSION)-cross-$(TOOLCHAIN_EXTERNAL_PREFIX).tar.zst
+
+$(eval $(toolchain-external-package))