summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/clang
Commit message (Collapse)AuthorAgeFilesLines
* lldb: don't build rpaths into binariesRoss Burton9 hours1-0/+1
| | | | | | | | | | | | | | | | | LLDB defaults to adding rpaths into the binaries which are then stripped by CMake on install. However, this rpath removal is implemented by editing the binary instead of relinking at install time, so the final binary will have an entry in the dynstr section which is all nulls but is as long as the build path. Obviously this breaks reproducibility, so disable the use of rpaths in LLDB to remove this problem. (From OE-Core rev: d96e0458b696a7359d310cbe112c5dc2fc60f97d) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lldb: remove incorrect comment about llvm vs clangRoss Burton9 hours1-1/+0
| | | | | | | | | | LLDB links to clang libraries, so it really does need clang and not just LLVM. (From OE-Core rev: 1a37bb2f0bbdbd599e1d5967eae1ecde4eff6a80) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* clang: ensure the native-built tblgen binaries are usedRoss Burton2 days1-5/+2
| | | | | | | | | | | | Set LLVM_HEADERS_TBLGEN so that we don't build another copy of tblgen. Also remove LLVM_OPTIMIZED_TABLEGEN, this is redundant as we're not building a tablegen binary in this recipe anymore. (From OE-Core rev: 259a3e9a8281c4e9ab73dee82738f359f029b78d) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* clang: remove PYTHON_EXECUTABLE assignmentsRoss Burton2 days1-4/+0
| | | | | | | | | The cmake.bbclass already does this. (From OE-Core rev: 85c1aecdf847b97409930d915a90ab850e92bc38) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* clang: improve LLVM target selection logicRoss Burton2 days1-9/+11
| | | | | | | | | | | | | | | | | The GPU targets are incredibly slow to build, so if the DISTRO_FEATURES doesn't include opengl or vulkan assume that the user will not be using a GPU and disable them. Alternatively, a distribution could state that they'll only be using one of the backends, and set LLVM_TARGETS_GPU explicitly. On my build machine, disabling the GPU targets reduces the build time of clang-native from 21m to 16m. (From OE-Core rev: 2273a0685757421f39541a352d77b67e5ba604d3) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* libclc: split out of clangRoss Burton2 days4-11/+107
| | | | | | | | | | | | | | | | | | | | | | Split the libclc subproject out of the clang recipe and into a dedicated libclc recipe. This is useful because libclc is the OpenCL runtime library and as such isn't target-specific and needs a native clang to build, not a target libllvm. Verified that nothing is dropped by adding clang and libclc to an image and verifying that the file list is the same before and after this change. We need to patch the libclc CMakeLists to allow it to use an out-of-tree prepare_builtins binary, discussion is ongoing with upstream to resolve this properly. (From OE-Core rev: 33a8742a1280b4c6779a7aa487c2dd4a713babe6) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* clang: Default to use lld if ld-is-lld is in DISTRO_FEATURESKhem Raj2 days1-0/+1
| | | | | | | | | | | This ensures that default system linker is used correctly based upon distro features, current default remain same i.e. uses BFD linker (From OE-Core rev: 33e7c85e92ddbc35989e7afcaf5fe4c14efdefab) 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>
* clang: remove obsolete 'terminfo' PACKAGECONFIGRoss Burton7 days1-3/+1
| | | | | | | | | | Neither LLVM_ENABLE_TERMINFO or COMPILER_RT_TERMINFO_LIB are used in the current CMakeLists. (From OE-Core rev: 134880baa4a971660e0800f70404d15c758fb7db) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lldb: fix typo in lzma PACKAGECONFIGRoss Burton7 days1-1/+1
| | | | | | | | | Accidentally duplicated the beginning of the variable name. (From OE-Core rev: 1484e2cf36428fbe7f5095ec881fdd018eea344b) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* clang: Upgrade to 20.1.8 releaseKhem Raj7 days2-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Brings following fixes * 87f0227cb601 [InstCombine] Avoid folding `select(umin(X, Y), X)` with min/max values in false arm (#143020) * df43f93388b7 [PhaseOrdering] Add test for #139050 (NFC) * 25bcf1145fd7 [RISCV] Fix assertion failure when using -fstack-clash-protection (#135248) * 6fb913d3e2ec [RelLookupTableConverter] Drop unnamed_addr for GVs in entries to avoid generating GOTPCREL relocations (#146068) * 0c9f909b7976 [AArch64][SME] Fix restoring callee-saves from FP with hazard padding (#143371) * fa792cd4c630 [AsmPrinter] Always emit global equivalents if there is non-global uses (#145648) * ce455b382c08 [objcopy][MachO] Revert special handling of encryptable binaries (#144058) * 0de59a293f7a [X86] Ignore NSW when DstSVT is i32 (#131755) * 9af763f038f7 [gtest] Fix building on OpenBSD/sparc64 (#145225) * 1daceb20611f [LoongArch] Pass OptLevel to LoongArchDAGToDAGISel correctly * b21155f97a0a [LoongArch] Precommit test case to show bug in LoongArchISelDagToDag * da18fb9f04ce [LoongArch] Fix xvshuf instructions lowering (#145868) * 65ce78f338cf [LoongArch] Pre-commit test for fixing xvshuf instructions. NFC * 5532d5b745e4 [AArch64] Ensure the LR is preserved if we must call __arm_get_current_vg (#145760) * 5ac3ce819688 [WebAssembly] Fix inline assembly with vector types (#146574) * b83658b7e2c8 Bump version to 20.1.8 (From OE-Core rev: 4c6e132d6e5e49426c911d0fa9215957eb43f186) 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>
* clang: set CVE_PRODUCTRoss Burton7 days2-0/+4
| | | | | | | | | | | | | | | There are a number of recipes that are part of the LLVM Project, so set CVE_PRODUCT to llvm:llvm in common.inc to ensure that all of the recipes are covered. Also add llvm:clang in the clang recipe, as there are a number of CVEs with that product name. (From OE-Core rev: 319e97643c1e342491931b6274996d1c8caa7d33) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* clang: remove clang-lldb-python packageRoss Burton7 days1-1/+1
| | | | | | | | | | v1 of the lldb patchset was accidentally merged, which didn't remove this package from the clang recipe. (From OE-Core rev: f389f14983cf87238f9a073b50837583596735ea) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* lldb: add new recipe, split out of clangRoss Burton9 days2-47/+60
| | | | | | | | | | | | | | | | LLDB takes a reasonable amount of time to compile, but also isn't an essential component of the LLVM suite. Instead of always building it when we build clang, split it out into a separate recipe. On my build machine where clang takes 21 minutes to build with lldb, it takes 19 minutes without lldb. (From OE-Core rev: 9da4900aa5a37718bd42f277d5a1805ec897b1b4) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* llvm-tblgen-native: add new recipeRoss Burton9 days2-6/+31
| | | | | | | | | | | | | | | | Building the LLVM projects often means using the TableGen tools (llvm-tblgen etc). We currently build them as part of clang-native, but I am teasing the clang recipe into its component parts and having to build llvm-native or lldb-native simply for one tool isn't ideal. Instead, add a native recipe that simply builds the tablegen binaries for llvm, clang, and lldb (From OE-Core rev: fbf63e03fe09ca74022c9d06442b4f1021b71d57) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* clang: move BPN assignment from common.incRoss Burton9 days5-2/+5
| | | | | | | | | | | | | | There's a BPN assignment in common.inc which means all recipes need to either be called clang, or set BPN themselves. Move the assignment to the clang recipes. For now I'm leaving the existing BPN assignments in the other recipes, in case there are complex multilib-related reasons to retain them. (From OE-Core rev: fc7e8c3e5c19a1885bec564c8fc07df5a13c8bd4) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* compiler-rt: Fix install location for native buildsKhem Raj9 days2-21/+32
| | | | | | | | | | | | | | | | Currently, clang when used for native builds and uses --rtlib=compiler-rt does not find the LLVM runtime because its installed in different directory than where compiler expects it to be. As a result, build fails for packages using clang in both capacity ( native and cross ) e.g. qtwebengine Make the build work across native sanitizers as well. (From OE-Core rev: 4d55698330ce6720cab5dfe9b4e00efeb40ba6e6) 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>
* compiler-rt: Use clang for native compile as wellKhem Raj9 days1-3/+4
| | | | | | | | (From OE-Core rev: 0c3ab984e72db424aa2684f5e2073a165b4b0910) 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>
* compiler-rt,libcxx: Use clang for native-libcxx and gcc for compiler-rt-nativeKhem Raj2025-07-043-5/+7
| | | | | | | | | | | | | compiler-rt configure calls for c++ compiler which can cause C++ runtime to not be detected on some Yocto autobuilder workers running ubuntu 24.04 therefore let it use gcc for native version Set TOOLCHAIN_NATIVE for using clang for libcxx (From OE-Core rev: d54512c1c0a98516077b77d5414af47d8c2b8c39) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* clang: Upgrade to 20.1.7Khem Raj2025-07-032-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Brings following fixes * 6146a88f6049 [LoongArch] Fix '-mno-lsx' option not disabling LASX feature (#143821) * 9ba132be8eea [clan-reply] Backport PTU error recovery to 20.x * 199e02a36433 Disable clangd/test/module_dependencies.test on Windows * 02aec86e4d0d [clangd] [Modules] Fix to correctly handle module dependencies (#142828) * c4f257cb74b5 [llvm-rc] Allow ALT on non-virtkey accelerators (#143374) * 6fa0cdf3720b release/20.x: [clang] Don't evaluate the initializer of constexpr-unknown parameters. (#142498) * 337beb73abfe [libc++] Add _LIBCPP_NO_UNIQUE_ADDRESS to flat_{,multi}map::value_compare (#137594) * b8e10ca59b6a [libc++] Fix check for _LIBCPP_HAS_NO_WIDE_CHARACTERS in features.py (#131675) * 2da24c36c7df [libcxx] Provide locale conversions to tests through lit substitution (#105651) * 253e9321c8b6 [release/20.x] Update release notes for SystemZ changes (#140060) * acf86c5c4dbe [CVP] Keep `ReachableCaseCount` in sync with range of condition (#142302) * 2481e590eec7 [AArch64][SME] Fix accessing the emergency spill slot with hazard padding (#142190) * 22a3e6b19409 release/20.x: [AArch64] Handle XAR with v1i64 operand types (#141754) * e5dd4f129454 [clangd] Guard against trivial FunctionProtoTypeLoc when creating inlay hints (#143087) * f6532710ace8 [clang-format] Correctly annotate token-pasted function decl names (#142337) * e0586e278f96 [RelLookupTableConverter] Drop unnamed_addr to avoid generating GOTPCREL relocations (#142304) * 7759bb57c243 (origin/users/mizvekov/GH139019) [clang] Serialization: support hashing null template arguments * 7cf14539b644 Bump version to 20.1.7 (From OE-Core rev: 293a471e0ee8c7f487b138d858c9b87a0e61c063) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* clang: multilib-header fix for llvm/Config/llvm-config.h and ↵Liu Yiding2025-06-261-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | clang/Config/config.h Error: Transaction test error: file /usr/include/clang/Config/config.h conflicts between attempted installs of lib32-clang-dev-20.1.4-r0.core2_32 and clang-dev-20.1.4-r0.core2_64 file /usr/include/llvm/Config/llvm-config.h conflicts between attempted installs of lib32-clang-dev-20.1.4-r0.core2_32 and clang-dev-20.1.4-r0.core2_64 reproduce steps: 1. Add in local.conf the following lines: MACHINE ?= "qemux86-64" require conf/multilib.conf MULTILIBS ?= "multilib:lib32" DEFAULTTUNE:virtclass-multilib-lib32 ?= "core2-32" 2. add lib32-llvm-dev llvm-dev to core-image-minimal.bb IMAGE_INSTALL = "packagegroup-core-boot ${CORE_IMAGE_EXTRA_INSTALL} lib32-clang-dev clang-dev" 3. $ bitbake core-image-minimal (From OE-Core rev: e2631fd1b47ed2d2b877426c4f253e6edea24ece) Signed-off-by: Liu Yiding <liuyd.fnst@fujitsu.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: remove consecutive blank linesAlexander Kanavin2025-06-203-3/+0
| | | | | | | | | | | | | | | | | Some of them were introduced by mass-removal of S = WORKDIR/git assignments; rather than try to fix up (or redo) just these, I've run this sed command over the whole tree: sed -i -z -E 's/([ \t\f\v\r]*\n){3,}/\n\n/g' `find . -name *.bb -o -name *.inc` The rationale is that more than one empty line is wasting vertical screen space, and does nothing for readability. (From OE-Core rev: cedc4ff7c9bcfb22a20e43e47f9759f4007a4f1a) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gcc/clang: set S to be in UNPACKDIRAlexander Kanavin2025-06-201-1/+2
| | | | | | | | | | | | This and some further commits allows removing the 'backwards compatibility magic' in do_unpack that moves unpacked sources to where S is set to. (From OE-Core rev: 6b2f14cd2d110113f1065bdc818ec4e9dbd4b054) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* toolchain: Provide abstraction for recipe specific toolchain selectionRichard Purdie2025-06-162-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change implements a toolchain selection mechanism. Selection is made using a set of variables, primarily PREFERRED_TOOLCHAIN_TARGET which defaults to gcc. It uses the familiar name for toolchain e.g. "gcc" which selects GNU compiler + binutils as default C/C++ toolchain or "clang" which will use LLVM/Clang Compiler. Layers an add their own toolchain definitions too. There are also PREFERRED_TOOLCHAIN_NATIVE and PREFERRED_TOOLCHAIN_SDK which will ulitmately allow selection of the toolchain used for the native/cross and nativesdk/crosssdk compilers. This currently isn't functional but is essential to the patch to ensure things are set to the existing gcc support in those cases. Users would most commonly want to set: PREFERRED_TOOLCHAIN_TARGET ?= "clang" in local.conf or other distro specific global configuration metadata. It is also selectable at recipe scope, since not all packages are buildable with either clang or gcc, a recipe can explicitly require a given toolchain using the TOOLCAHIN variable, e.g. glibc can not be built with clang therefore glibc recipe sets: TOOLCHAIN = "gcc" The TOOLCHAIN variable is distinct from the user preference so recipes with specific requirements can be identified. This also allows different polcies to be be specified for native/SDK cases in the future. (From OE-Core rev: 45bdedd213aff8df3214b95ef2a8551c0abd93a0) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* compiler-rt/libcxx: Use clang as compilerRichard Purdie2025-06-093-0/+6
| | | | | | (From OE-Core rev: e75b2dee39fc0a35f764caa6b72af2a0b9beb165) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* clang: Upgrade to 20.1.6 minor releaseKhem Raj2025-06-022-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Brings following commits * 47addd4540b4 [libclc] Include isnan implementation for SPIR-V targets * 4b6e5a286653 [clang-format] Handle Java text blocks (#141334) * 0e1ef696f1fe [Driver] Fix _XOPEN_SOURCE definition on Solaris (#137141) * 5d99a97583e1 [MachO] Improve bounds check (#141083) * aa804fd3e624 [sanitizer_common] Remove interceptors for deprecated struct termio (#137403) * 53393e26d5f4 [LoongArch] Prevent R0/R1 allocation for rj operand of [G]CSRXCHG (#140862) * 6fcb1c127b40 [LoongArch] Fix assertion failure for annotate tablejump (#140907) * 15ec590e389b release/20.x: [clang-format] Fix the indent of StartOfName after AttributeMacro (#140361) * 802f4f75372e [clang-format] Handle raw string literals containing JSON code (#140666) * 9b0832508ede [SDAG] Ensure load is included in output chain of sincos expansion (#140525) * 8a36b8e3ab46 [clang][analyzer] Handle CXXParenInitListExpr alongside InitListExpr * 070cf62530ea [Clang] Demote mixed enumeration arithmetic error to a warning (#131811) * a169f5ca4e4f Correct position of CFI Instruction for Pointer Authentication" * 5befd1fb3c97 [Clang][AST] Fix HandleLValueBase to deal with references (#140105) * e3d2c00ccee4 [LLD][COFF] Allow -arm64xsameaddress in ARM64EC directives (#139631) * 85e06a761483 [LoongArch] Fix fp_to_uint/fp_to_sint conversion errors for lasx (#137129) * ff2e8f93f609 Fix test pfalse-v4i1.ll added in #138712 to require asserts. * 1e4d39e07757 Bump version to 20.1.6 (From OE-Core rev: 84e4f1556e074e5b771c66dac8ba2ce47beb89d0) 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>
* clang: Upgrade to 20.1.5 releaseKhem Raj2025-05-2740-145/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Brings following fixes * 7b09d7b44638 [analyzer] Workaround for slowdown spikes (unintended scope increase) (#136720) * a708fb737a78 [RISCV] Allow `Zicsr`/`Zifencei` to duplicate with `g` (#136842) * 1c0368417f55 [clang][analysis] Fix flaky clang/test/Analysis/live-stmts.cpp test (2nd attempt) (#127406) * 0439d1d36312 [Clang] Fix handling of reference types in tryEvaluateBuiltinObjectSize (#138247) * 74ed1ac61104 [sanitizer_common] Fix build on ppc64+musl (#120036) * 2d079b96a5fb release/20.x: [clang-format] Fix a crash on formatting missing r_paren/r_brace (#138230) * 2cacf46f35c8 [X86][TargetLowering] Avoid deleting temporary nodes in `getNegatedExpression` (#139029) * f233430d977b [AArch64] Fix feature list for FUJITSU-MONAKA processor (#139212) * 41c36d940804 [clang] Fix unused variable warning in MS mangler from constant matrix patch * 72ad9be1e337 [Clang][MicrosoftMangle] Implement mangling for ConstantMatrixType (#134930) * 0019b7d0ae0b [wasm-ld] Refactor WasmSym from static globals to per-link context (#134970) * b7b834e2a20e [RTSan][Darwin] Adjust OSSpinLock/_os_nospin_lock interceptor and tests (#132867) * f811c7df0a10 [rtsan][Apple] Add interceptor for _os_nospin_lock_lock (#131034) * 4370072022e5 [clang] Forward TPL of NestedNameSpecifier * d34d5296095b Support z17 processor name and scheduler description * a7166c373946 release/20.x: [clang-format] RemoveParentheses shouldn't remove empty parentheses (#138229) * 5429418cb064 [clang] Add support for Debian 14 Forky and Debian 15 Duke (#138460) * be087ab35970 [libc++] Re-introduce _LIBCPP_DISABLE_AVAILABILITY (#134158) * 2b34040173f7 [clang-repl] Fix destructor for interpreter for the cuda negation case (#138091) * ae97a56d363f [Hexagon] Add missing patterns to select PFALSE and PTRUE (#138712) * 2386c377db4f [BasicAA] Gracefully handle large LocationSize (#138528) * 961ce35e2957 [OpenMP] Add pre sm_70 load hack back in (#138589) * 009f3c10d1c1 [LLD][COFF] Don't dllimport from static libraries (#134443) * 70eed33971d9 [InstCombine] Do not combine shuffle+bitcast if the bitcast is eliminable. (#135769) * 6ddf2e5d10f8 [clang-tidy] Do not pass any file when listing checks in run_clang_ti… (#137286) * 8272e451613d [flang] Exempt construct entities from SAVE check for PURE (#131383) * 069ef671e0ab [AArch64][SME] Allow spills of ZT0 around SME ABI routines again (#136726) * a38e1ae2041d [AArch64][SME2] Don't preserve ZT0 around SME ABI routines (#132722) * be4097b6ee57 Fix crash lowering stack guard on OpenBSD/aarch64. (#125416) * aecbb2364a7c [Clang] Fix the trailing comma regression (#136273) * ebfae55af454 Bump version to 20.1.5 (From OE-Core rev: 07a1c1d765f220b1f75e503404d689524a8c14ef) 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>
* compiler-rt-sanitizers: Fix build on mipsKhem Raj2025-05-272-0/+36
| | | | | | | | | | | uintptr_t size is not consistent between compiler-rt and clang for mips (From OE-Core rev: 7f2b80c8eaaf226d3c9faed93e9c93879de50b54) 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>
* clang: Include the libclang python bindings in the buildLuca Fancellu2025-05-271-2/+5
| | | | | | | | | | | Modify the clang recipe to provide also the python module 'clang' when building libclang. (From OE-Core rev: 091fb8f51b5fdd3cb8e53e540d3c6feb8c40f8d5) Signed-off-by: Luca Fancellu <luca.fancellu@arm.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* clang: build-depend on spirv-llvm-translator-nativeDmitry Baryshkov2025-05-221-1/+1
| | | | | | | | | | | | | | 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>
* compiler-rt-sanitizers: Fix native builds on aarch64 build hostsKhem Raj2025-05-151-6/+11
| | | | | | | | | | | | | 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>
* compile-rt: Fix building compiler-native on aarch64 build hosts.Khem Raj2025-05-151-2/+4
| | | | | | | | | | | | | | | | | | 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>
* compiler-rt: Exclude sync builtins from build when arm < v6Khem Raj2025-05-152-0/+62
| | | | | | | | | | | 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>
* compiler-rt: Map the COMPILER_RT_DEFAULT_TARGET_ARCHKhem Raj2025-05-151-1/+10
| | | | | | | | | | | COMPILER_RT_DEFAULT_TARGET_ARCH is not 1 to 1 match with HOST_ARCH especially for armv5/arm4 (From OE-Core rev: 71f7db2e5d264bc6ed50fae48567ae674af9a700) 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>
* clang: Upgrade to 20.1.4Khem Raj2025-05-122-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Brings following fixes * ec28b8f9cc7f [libcxx] [test] Extend mingw workarounds for armv7/aarch64 too (#136419) * 8c2dc1b5aa7f [clang-repl] Implement LoadDynamicLibrary for clang-repl wasm use cases (#133037) * 02afcbf63fee [SystemZ] Fix compile time regression in adjustInliningThreshold(). (#137527) * c877757659e8 [clang-repl] : Fix clang-repl crash with --cuda flag (#136404) * f4779c389868 [InstCombine] Preserve signbit semantics of NaN with fold to fabs (#136648) * 57a31e183dc8 [InstCombine] Do not fold logical is_finite test (#136851) * 1cf8c7797d2b [GlobalOpt] Do not promote malloc if there are atomic loads/stores (#137158) * 24805c2e0817 [lldb] Use correct path for lldb-server executable (#131519) * 182e8b7f8a71 [clang-format] Correctly annotate kw_operator in using decls (#136545) * 425d1aad294f [RISCV] Handle scalarized reductions in getArithmeticReductionCost * 2d7ad98ec0a8 [clang][analyzer] Fix error path of builtin overflow (#136345) * e7ae5532bc27 [clang-format] Fix mismatched break in BlockIndent (#124998) * 8f288eb619db [lldb][test] Adjust TestTargetReadInstructionsFlavor skipIfs * d76ec6a75d39 [lldb] Fix SBTarget::ReadInstruction with flavor (#134626) * 62072e7f877e [clang][AST] Handle implicit first argument in CallExpr::getBeginLoc() * 581772ed077e [LoongArch] Don't crash on instruction prefetch intrinsics (#135760) * 89adc2d4f93b [HEXAGON] Fix corner cases for hwloops pass (#135439) * 78f6719ca9b5 [GlobalMerge][PPC] Don't merge globals in llvm.metadata section (#131801) * ab0074fe306f Bump version to 20.1.4 (From OE-Core rev: a94a08b86f08e4fbf038abbda6d210b11edb0dd6) 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>
* compiler-rt: Rename the rt libraries if compiled with arm hardfloat ABIKhem Raj2025-05-121-1/+6
| | | | | | | | | | | | | | | | 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>
* libcxx: Fix cflags and ldflags for using compiler runtimeKhem Raj2025-05-121-4/+4
| | | | | | | | | | | | | | | | | | -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>
* compiler-rt: Consolidate and fix cmake argumentsKhem Raj2025-05-121-8/+2
| | | | | | | | | | | | | | | | | 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>
* clang: fix upstream version checkAlexander Kanavin2025-05-091-0/+2
| | | | | | | (From OE-Core rev: 0dfdaca8405f4f1a9c188f736a99c39b7f8272b3) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* clang: Build limited targets for target clang recipeKhem Raj2025-05-091-5/+9
| | | | | | | | | | | | | | | | | 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>
* clang: Space optimize clang recipesKhem Raj2025-05-091-2/+0
| | | | | | | | | 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>
* compiler-rt: Always use clang for compilerKhem Raj2025-05-081-11/+18
| | | | | | | | | | | | | 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>
* compiler-rt-sanitizers: Omit the musl architecture restrictionsKhem Raj2025-05-081-6/+0
| | | | | | | | | | | sanitizers are working fine on arm/aarch64 as well. Remove the compatible host restriction (From OE-Core rev: 3ebe53ddc99643f96a87e751766f02f0b2203a07) 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>
* clang: split SPIRV-LLVM-Translator to its own recipeDmitry Baryshkov2025-05-084-86/+4
| | | | | | | | | | | | | | | 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>
* libcxx,compiler-rt-sanitizers: Add cflags to build with clang compilerKhem Raj2025-05-052-0/+11
| | | | | | | | | | | | 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>
* clang: Upgrade to 20.1.3Khem Raj2025-05-052-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* clang: RPROVIDE spirv-llvm-translator and libclcKhem Raj2025-05-051-0/+3
| | | | | | | | | | 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>
* clang: Merge llvm/clang family recipes from meta-clangKhem Raj2025-05-0552-0/+3847
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>