Building of spirv-mesa and spirv64-mesa CLC targets (which are required
for Mesa to work) requires a working llvm-spirv tool (provided by the
spirv-llvm-translator-native package). Make clang build-depend on the
corresponding recipe in order to be able to build requried targets.
Fixes: 4178fe97371b ("clang: split SPIRV-LLVM-Translator to its own recipe")
(From OE-Core rev: 177aaa7912f317da4a17a57081eb4f5667ef2c02)
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add logic to deduce compiler-rt target architecture based on tune
features
Cleanup the cmake options for native/nativesdk/target recipes
(From OE-Core rev: 579d4d85574624e39140fb74f6d37dcd7bf363a6)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Using target triple confuses the native system compiler to find
libgcc and C runtime during compiler-rt-native build
Fixes
| /home/khem/yoe/build/tmp/hosttools/ld: cannot find crtbeginS.o: No such file or directory
| /home/khem/yoe/build/tmp/hosttools/ld: cannot find -lgcc: No such file or directory
| /home/khem/yoe/build/tmp/hosttools/ld: cannot find -lgcc_s: No such file or directory
| clang: error: linker command failed with exit code 1 (use -v to see invocation)
| ninja: build stopped: subcommand failed.
(From OE-Core rev: 1d4676d6b7c0fe40ab4f808dda436dc2f2915fd8)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
arm architecture < v6 does not have the dmb support, therefore do
not add the sync primitives to compiler-rt builtins build
(From OE-Core rev: e1b143860b221600f7dab5c08e5b187aefb851dd)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
OE does not rely on tuple to deduce hardfloat ABI, but clang/llvm does
arm-yoe-linux-gnueabi is used for both soft and softfp and hardfp float
ABIs in OE, LLVM expects arm-yoe-linux-gnueabihf for it to be treated as
hardfloat ABI, and look for correct name for rt libraries.
We know when we compile them with Hard-float ABI so rename them in such
case so clang can find it when using -rtlib=compiler-rt it needs to
has 'armhf' suffix
(From OE-Core rev: b369e99cb27bd327ab244335b637f0ad3393d9b8)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-stdlib is needed in both cxxflags and ldflags since c++ compiler
will use these to chose the right c++ headers and libraries during link
-rtlib and -unwindlib are only needed during linking
Use LLVM_HOST_TRIPLE during cross compiling compiler-rt for target
this is used by cmake to compute target and compiler triples
Fix LLVM_RUNTIME_TARGETS to use HOST_ARCH, it does not need cross
compile triple which HOST_SYS is passing here
(From OE-Core rev: d1ae4087c548a78e90687b64764f621b070e3ec5)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Specify CMAKE_C_COMPILER_TARGET and COMPILER_RT_DEFAULT_TARGET_ARCH
in common for native/target/nativesdk
set COMPILER_RT_DEFAULT_TARGET_ARCH to use HOST_ARCH across all recipe
variants
It is not needed to set COMPILER_RT_DEFAULT_TARGET_ARCH for powerpc anymore
as it is already fixed by setting COMPILER_RT_DEFAULT_TARGET_ARCH to
HOST_ARCH
(From OE-Core rev: 945e9a799ddbb28c169155368f1998cb8e9f455f)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
On target its sufficient to build what mesa needs + one host target
It should speed up the build.
Fix bug in function mapping target architecture to LLVM backend
Reduces size of libLLVM
Before - 131M May 6 20:42 ./clang-libllvm/usr/lib/libLLVM.so.20.1
After - 93M May 6 18:47 ./clang-libllvm/usr/lib/libLLVM.so.20.1
(From OE-Core rev: 0e1c55d2631200f8c9890eac8d26c404f28862d3)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
They can consume quite a bit of build space, we don't debug them as often
(From OE-Core rev: 107c344a627c29a2c6a1a47f57d3d63e74bbb112)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This makes it build for all architectures e.g. riscv/mips/ppc etc.
Using clang-native to build all variants of recipe makes it easier to
handle compiling with various distros choosing different runtimes
(From OE-Core rev: 4df1f0da627e0985312ae4a330e7f0800c0c87a5)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The translator is not a part of the same source tree. As such it has
tendency to break on clang upgrades. Split it to its own recipe in order
to ease handling of clang.
This also makes it use SPIR-V headers provided by the spirv-headers
recipe instead of vendoring them in.
(From OE-Core rev: 4178fe97371bce0bd63b19f57b872ccefd1ec45c)
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We are using clang-native to build the native versions of these recipes
but we are missing the needed compiler flags to let it c/c++ runtime
appropriately. This also ensures that meta-clang does not have to worry
about the compiler settings for nativesdk/native pieces separately.
(From OE-Core rev: b3b97ff790f42c5844c9f6aaeab9e23d355febfa)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Brings following fixes
* 923a5c4f83d2 Revert "[ARM][ConstantIslands] Correct MinNoSplitDisp calculation (#114590)"
* 86f5891c5986 [llvm][Hexagon] Promote operand v2i1 to v2i32 (#135409)
* d55c3c20520a [libc++] Fix misplaced _LIBCPP_POP_MACROS (#134874)
* 9420327ad768 [Clang] Fix a lambda pattern comparison mismatch after ecc7e6ce4 (#133863)
* 4da7285e636e Silence -Wcast-function-type warnings on idiomatic Windows code (#135660)
* c5109be53b7e [LV] Disable epilogue vectorization for FindLastIV if start is poison.
* 91a3f14d9497 [LV] Add tests with FindLastIV and epilogue vectorization.
* 2131242240f7 [LLVM][MemCpyOpt] Unify alias tags if we optimize allocas (#129537)
* 86c98536380b [libc++] Fix deployment targets that were incorrectly bumped (#134278)
* dfd6f123362a [libc++] Guard additional headers with _LIBCPP_HAS_LOCALIZATION (#131921)
* dc9d4f9a7008 [lldb] Respect LaunchInfo::SetExecutable in ProcessLauncherPosixFork (#133093)
* 9c7d72869876 [LoongArch] Move fix-tle-le-sym-type test to test/MC. NFC (#133839)
* 0c30835a63db [X86][AVX10] Remove VAES and VPCLMULQDQ feature from AVX10.1 (#135489)
* 2e0966408283 [X86] Backport saturate-convert intrinsics renaming & YMM rounding intrinsics removal in AVX10.2
* 0dd4235473d4 [SCEV] Use ashr to adjust constant multipliers (#135534)
* a141e58685fd [llvm][CodeGen] avoid repeated interval calculation in window scheduler (#132352)
* d88cd35023b4 [llvm][CodeGen] Fix the empty interval issue in Window Scheduler (#129204)
* 73d1e8598eda [CodeGen] Avoid repeated hash lookups (NFC) (#130237)
* 7034995f1029 [clang] Handle Binary StingLiteral kind in one more place (#132201)
* 2e7710eaffdd [clang] Introduce "binary" StringLiteral for #embed data (#127629)
* e0db588f3db4 [IR] Fix assertion error in User new/delete edge case (#129914)
* d5bb7b866e59 Avoid a race condition in opt-viewer/optrecord (#131214)
* d15fef4209f1 [IndVarSimplify] Handle the case where both operands are the same when widening IV (#135207)
* 91647ae0dffe [X86][SSE] Don't emit SSE2 load instructions in SSE1-only mode (#134547)
* d05543ed0796 [clang-format] Keep the space between `not` and a unary operator (#135035)
* 81220e68a496 [fatlto] Add coroutine passes when using FatLTO with ThinLTO (#134434)
* edb54a7821fe Release/20.x: [clang-format] Set C11 instead of C17 for LK_C
* 4181e829d1db [LLDB][LoongArch] Fix build errors about NT_LOONGARCH_HW_{BREAK,WATCH} (#126020)
* 7436329bfee9 Revert "[clang] [ARM] Explicitly enable NEON for Windows/Darwin targets (#122095)"
* a0c8959cc880 [X86] When expanding LCMPXCHG16B_SAVE_RBX, substitute RBX in base (#134109)
* a8b5fe017a5e [libc++] Add missing release note for LLVM 20 about zip_view (#134144)
* 41aefdbebe64 cuda clang: Fix argument order for __reduce_max_sync (#132881)
* 19c2e1c12d47 [clang-tidy] Fix broken HeaderFilterRegex when read from config file (#133582)
* ac31db0463c0 [Sanitizers][Darwin][Test] XFAIL malloc_zone.cpp
* 53141e4e3c65 [clang] Do not infer lifetimebound for functions with void return type (#131997)
* cf7bb13f0c7f [TailDuplicator] Determine if computed gotos using `blockaddress` (#132536)
* 656289ffa0a6 Bump version to 20.1.3 (#134187)
(From OE-Core rev: 2199334354162a6304c4b0d4f35efb67e8e7d36b)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This paves the way to spin out these packages out of clang in future
specifically spirv-llvm-translator which is not yet part of llvm monorepo
(From OE-Core rev: fc58a1ee75737851d6e97be8a0b7ac739819efc8)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This can ensure that meta-clang does not carry them and can rely on core layer
while mesa can use them too.
Omit time stamps in openmp from generated files to improve
reproducibility
fix the issue that:
| file /usr/include/llvm/Config/llvm-config.h conflicts between attempted installs of lib32-llvm-dev-20.1.2-r0.core2_32 and llvm-dev-20.1.2-r0.core2_64
(From OE-Core rev: d77e398095228b34851762858a76640e3c2cb0ab)
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>