@@ -25,6 +25,14 @@ menuconfig BR2_PACKAGE_MESA3D
if BR2_PACKAGE_MESA3D
+config BR2_PACKAGE_MESA3D_LLVM
+ bool "mesa3d w/ llvm"
+ depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS
+ select BR2_PACKAGE_LLVM
+
+comment "mesa3d w/ llvm needs a llvm compiler"
+ depends on !BR2_PACKAGE_LLVM_ARCH_SUPPORTS
+
# inform the .mk file of gallium, dri or vulkan driver selection
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
bool
@@ -32,6 +32,21 @@ ifeq ($(BR2_SHARED_STATIC_LIBS),y)
MESA3D_CONF_OPTS += --disable-static
endif
+ifeq ($(BR2_PACKAGE_MESA3D_LLVM),y)
+# Mesa want to build libgallium.a unconditionally, so it can't be linked dynamically with llvm shared libraries.
+MESA3D_DEPENDENCIES += host-llvm llvm
+MESA3D_CONF_OPTS += \
+ --with-llvm-prefix=$(STAGING_DIR)/usr \
+ --disable-llvm-shared-libs \
+ --enable-llvm
+else
+# Avoid automatic search of llvm-config
+MESA3D_CONF_OPTS += \
+ --with-llvm-prefix=$(STAGING_DIR)/usr \
+ --disable-llvm-shared-libs \
+ --disable-llvm
+endif
+
# The Sourcery MIPS toolchain has a special (non-upstream) feature to
# have "compact exception handling", which unfortunately breaks with
# mesa3d, so we disable it here by passing -mno-compact-eh.
@@ -219,7 +234,4 @@ else
MESA3D_CONF_OPTS += --disable-lmsensors
endif
-# Avoid automatic search of llvm-config
-MESA3D_CONF_OPTS += --with-llvm-prefix=$(STAGING_DIR)/usr/bin
-
$(eval $(autotools-package))