kraj / meta-clang

Clang C/C++ cross compiler and runtime for OpenEmbedded/Yocto Project
MIT License
162 stars 206 forks source link

version conflict between oe-core llvm and meta-clang's clang #456

Open yifan19 opened 3 years ago

yifan19 commented 3 years ago

Describe the bug

/yow-lpggp32/yyu1/yocto/b_poky/build$ bitbake -s | grep llvm
WARNING: preferred version 12.0.0 of nativesdk-llvm not available
WARNING: versions of nativesdk-llvm available: 11.1.0
WARNING: preferred version 12.0.0 of llvm-native not available
WARNING: versions of llvm-native available: 11.1.0
WARNING: preferred version 12.0.0 of llvm not available
WARNING: versions of llvm available: 11.1.0
llvm                                               :11.1.0-r0
llvm-native                                        :11.1.0-r0
llvm-project-source-12.0.0                         :12.0.0-r0
nativesdk-llvm                                     :11.1.0-r0
nativesdk-spirv-llvm-translator                    :12.0.0-r0
spirv-llvm-translator                              :12.0.0-r0
spirv-llvm-translator-native                       :12.0.0-r0

To Reproduce Steps to reproduce the behavior: use poky+meta-clang bitbake llvm

Expected behavior I think there shouldn't be any warnings since clang provides llvm

Additional context the current windriver fix. I find it really confusing. EDIT: we add an override clang-llvm when we build meta-clang dependent recipe such as chromium

diff --git a/conf/layer.conf b/conf/layer.conf
index 451bd6a..d427532 100644
--- a/conf/layer.conf
+++ b/conf/layer.conf
@@ -29,7 +29,11 @@ INHERIT += "clang"
 # Do not include clang in SDK unless user wants to
 CLANGSDK ??= "0"

-LLVMVERSION = "12.0.0"
+LLVMVERSION_clang-llvm = "11.0.1"
+
+PREFERRED_VERSION_llvm_clang-llvm = ""
+PREFERRED_VERSION_llvm-native_clang-llvm = ""
+PREFERRED_VERSION_nativesdk-llvm_clang-llvm = ""

 require conf/nonclangable.conf
 require conf/nonscanable.conf
kraj commented 3 years ago

I dont get this conflict, so I am at a loss on how this can be re-creared

zboszor commented 3 years ago

I have seen the same warning with oe-core/meta-clang master with using meta-security and building clamav from that layer which has

DEPENDS = "... llvm ..."

LLVM in oe-core is still version 12 and meta-clang master moved to LLVM 13. PREFERRED_PROVIDER_llvm[-native] = "clang[-native] in meta-clang works so it's clang that gets built and not the llvm recipe from oe-core. The warning is purely an annoyance.