[Buildroot] [RFC PATCH v3 5/9] llvm: add config to build backend for host arch

Valentin Korenblit valentin.korenblit at smile.fr
Mon Jun 11 09:06:47 UTC 2018


Hi Joseph,

On 10/06/2018 22:54, Joseph Kogut wrote:
> Signed-off-by: Joseph Kogut <joseph.kogut at gmail.com>
> ---
>   package/llvm/Config.in | 9 +++++++++
>   package/llvm/llvm.mk   | 5 +++++
>   2 files changed, 14 insertions(+)
>
> diff --git a/package/llvm/Config.in b/package/llvm/Config.in
> index 83e94660eb..e9c461b92f 100644
> --- a/package/llvm/Config.in
> +++ b/package/llvm/Config.in
> @@ -11,6 +11,15 @@ config BR2_PACKAGE_LLVM_TARGET_ARCH
>   	default "ARM" if BR2_arm || BR2_armeb
>   	default "X86" if BR2_i386 || BR2_x86_64
>   
> +config BR2_PACKAGE_LLVM_HOST_ARCH
> +	string
> +	default "AArch64" if BR2_HOSTARCH="aarch64"
> +	default "X86" if BR2_HOSTARCH = "x86" || BR2_HOSTARCH = "x86_64"
> +	default "ARM" if BR2_HOSTARCH = "arm"
> +
> +config BR2_PACKAGE_HOST_LLVM_ENABLE_HOST_ARCH
> +	bool
> +

I think we could rename this option BR2_PACKAGE_LLVM_ENABLE_HOST_ARCH
and make it user-selectable:

config BR2_PACKAGE_LLVM_ENABLE_HOST_ARCH
	bool "Build backend for host architecture"

>   config BR2_PACKAGE_LLVM
>   	bool "llvm"
>   	depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS
> diff --git a/package/llvm/llvm.mk b/package/llvm/llvm.mk
> index 3abf428989..04e99eb5b4 100644
> --- a/package/llvm/llvm.mk
> +++ b/package/llvm/llvm.mk
> @@ -59,6 +59,11 @@ ifeq ($(BR2_PACKAGE_LLVM_AMDGPU),y)
>   LLVM_TARGETS_TO_BUILD += AMDGPU
>   endif
>   
> +# Build backend for host architecture
> +ifeq ($(BR2_PACKAGE_LLVM_ENABLE_HOST_ARCH),y)
> +LLVM_TARGETS_TO_BUILD += $(call qstrip,$(BR2_PACKAGE_LLVM_HOST_ARCH))
> +endif
> +

The only problem I see here is that we are going to build the backend for
the host architecture also for the target, which is not necessary. Maybe
we can use another variable like HOST_LLVM_TARGETS_TO_BUILD. This will
break the compatibility of llvm-config for host and target when passing
--targets-built but I don't think this should be a problem.

>   # Use native llvm-tblgen from host-llvm (needed for cross-compilation)
>   LLVM_CONF_OPTS += -DLLVM_TABLEGEN=$(HOST_DIR)/bin/llvm-tblgen
>   

Best regards,

Valentin



More information about the buildroot mailing list