@@ -28,6 +28,12 @@ config BR2_PACKAGE_LLVM
if BR2_PACKAGE_LLVM
+config BR2_PACKAGE_HOST_LLVM_HOST_ARCH
+ string
+ default "X86" if BR2_HOSTARCH = "x86" || BR2_HOSTARCH = "x86_64"
+ default "AArch64" if BR2_HOSTARCH="aarch64"
+ default "ARM" if BR2_HOSTARCH = "arm"
+
config BR2_PACKAGE_LLVM_AMDGPU
bool "AMDGPU backend"
help
@@ -42,7 +42,10 @@ LLVM_TARGET_ARCH = $(call qstrip,$(BR2_PACKAGE_LLVM_TARGET_ARCH))
# Build backend for target architecture. This include backends like AMDGPU.
LLVM_TARGETS_TO_BUILD = $(LLVM_TARGET_ARCH)
-HOST_LLVM_CONF_OPTS += -DLLVM_TARGETS_TO_BUILD="$(subst $(space),;,$(LLVM_TARGETS_TO_BUILD))"
+HOST_LLVM_TARGETS_TO_BUILD = \
+ $(LLVM_TARGETS_TO_BUILD) \
+ $(call qstrip,$(BR2_PACKAGE_HOST_LLVM_HOST_ARCH))
+HOST_LLVM_CONF_OPTS += -DLLVM_TARGETS_TO_BUILD="$(subst $(space),;,$(HOST_LLVM_TARGETS_TO_BUILD))"
LLVM_CONF_OPTS += -DLLVM_TARGETS_TO_BUILD="$(subst $(space),;,$(LLVM_TARGETS_TO_BUILD))"
# LLVM target to use for native code generation. This is required for JIT generation.
@@ -58,6 +61,7 @@ LLVM_CONF_OPTS += -DLLVM_TARGET_ARCH=$(LLVM_TARGET_ARCH)
# output only $(LLVM_TARGET_ARCH) if not, and mesa3d won't build as
# it thinks AMDGPU backend is not installed on the target.
ifeq ($(BR2_PACKAGE_LLVM_AMDGPU),y)
+HOST_LLVM_TARGETS_TO_BUILD += AMDGPU
LLVM_TARGETS_TO_BUILD += AMDGPU
endif