[Buildroot] [PATCH 1/3] package: arm-gnu-rm-toolchain: Add ARM-RM toolchain
Thomas Petazzoni
thomas.petazzoni at bootlin.com
Mon Feb 4 14:48:36 UTC 2019
Hello,
Title should be:
package/arm-gnu-rm-toolchain: new package
On Mon, 4 Feb 2019 16:31:35 +0200
<kostap at marvell.com> wrote:
> Add host-only ARM RM toolchain for supporting firmware
"host-only" doesn't mean much here. It's a cross-compilation toolchain,
so it's not really "host-only".
> This patch installs pre-build bate metal ARM GNU-RM toolchain
pre-build -> "a pre-built"
> into the host file system folder /opt/gcc-arm for covering the
> above mentioned cases.
"into the host filesystem folder /opt/gcc-arm" ->
$(HOST_DIR)/opt/gcc-arm
> diff --git a/package/Config.in.host b/package/Config.in.host
> index 16b474fc9d..41dfd76785 100644
> --- a/package/Config.in.host
> +++ b/package/Config.in.host
> @@ -67,5 +67,6 @@ menu "Host utilities"
> source "package/xorriso/Config.in.host"
> source "package/zip/Config.in.host"
> source "package/zstd/Config.in.host"
> + source "package/arm-gnu-rm-toolchain/Config.in.host"
I don't think we need a Config.in.host option for this.
> diff --git a/package/arm-gnu-rm-toolchain/Config.in.host b/package/arm-gnu-rm-toolchain/Config.in.host
> new file mode 100644
> index 0000000000..3341760acd
> --- /dev/null
> +++ b/package/arm-gnu-rm-toolchain/Config.in.host
> @@ -0,0 +1,13 @@
> +config BR2_PACKAGE_HOST_ARM_GNU_RM_TOOLCHAIN
> + bool "host arm-gnu-rm-toolchain"
> + depends on BR2_HOSTARCH = "x86_64"
> + select BR2_HOSTARCH_NEEDS_IA32_LIBS
These two lines together don't make sense. If you select
BR2_HOSTARCH_NEEDS_IA32_LIBS, it's because the pre-built binaries are
for x86 32 bits, and therefore the 32 bit compat libraries are needed
when running on a x86-64 system. If pre-built binaries are for x86 32
bits, then surely the dependency on BR2_HOSTARCH = "x86_64" is not
correct.
But anyway as stated above, I don't think a Config.in.host file is
needed here.
> diff --git a/package/arm-gnu-rm-toolchain/arm-gnu-rm-toolchain.mk b/package/arm-gnu-rm-toolchain/arm-gnu-rm-toolchain.mk
> new file mode 100644
> index 0000000000..be02130f28
> --- /dev/null
> +++ b/package/arm-gnu-rm-toolchain/arm-gnu-rm-toolchain.mk
> @@ -0,0 +1,22 @@
> +################################################################################
> +#
> +# arm-gnu-rm-toolchain
> +#
> +################################################################################
> +
> +ARM_GNU_RM_TOOLCHAIN_SITE = https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2018q2
> +ARM_GNU_RM_TOOLCHAIN_VERSION = 7-2018-q2-update
> +ARM_GNU_RM_TOOLCHAIN_SOURCE = gcc-arm-none-eabi-$(ARM_GNU_RM_TOOLCHAIN_VERSION)-linux.tar.bz2
> +
> +define HOST_ARM_GNU_RM_TOOLCHAIN_EXTRACT_CMDS
> + $(TAR) xf $(HOST_ARM_GNU_RM_TOOLCHAIN_DL_DIR)/$(ARM_GNU_RM_TOOLCHAIN_SOURCE) -C $(BUILD_DIR)
> + mv $(BUILD_DIR)/gcc-arm-none-eabi-$(ARM_GNU_RM_TOOLCHAIN_VERSION)/* $(@D)
> + rmdir $(BUILD_DIR)/gcc-arm-none-eabi-$(ARM_GNU_RM_TOOLCHAIN_VERSION)/
> +endef
Why do you need custom extract commands ? It seems to be just a regular
tarball.
> +
> +define HOST_ARM_GNU_RM_TOOLCHAIN_INSTALL_CMDS
> + mkdir -p $(HOST_DIR)/opt/gcc-arm/
> + cp -a $(@D)/* $(HOST_DIR)/opt/gcc-arm/
Install in gcc-arm-none-eabi so that it's clear it's a bare-metal
toolchain.
Thanks,
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
More information about the buildroot
mailing list