summaryrefslogtreecommitdiffstats
path: root/classes
Commit message (Collapse)AuthorAgeFilesLines
* clang.bbclass: Remove -mno-relaxKhem Raj2022-09-121-4/+0
| | | | | | clang-15 now supports linker relaxations therefore enable it Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: Add a comment to describe RUNTIME combinationsKhem Raj2022-09-121-0/+1
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang-native.bbclass: Move to classes folderKhem Raj2022-09-031-0/+23
| | | | | | | | | | classes-recipe domain is new and will break kirkstone and need very recent bitbake, let it settle some dust before adopting it for meta-clang Fixes https://github.com/kraj/meta-clang/issues/651 Signed-off-by: Khem Raj <raj.khem@gmail.com>
* Do not use llvm-strip for nowKhem Raj2022-08-301-1/+1
| | | | | | | We need a fix for https://github.com/llvm/llvm-project/issues/57407 before we can re-enable it Signed-off-by: Khem Raj <raj.khem@gmail.com>
* toolchain-clang: Specify -ffile-compilation-dir to omit absolute file paths ↵Khem Raj2022-08-121-0/+2
| | | | | | | | | | | | in debug info Clang does not remap the src filename in asm files debug info when using -fdebug-prefix-map but gcc does [1], however, there is an option to help reproducibility with clang namely ffile-compilation-dir to remove the source directory from path. use it globally with clang compiler [1] https://github.com/llvm/llvm-project/issues/56609 Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: Use BASELIB instead of base_libdir in YOCTO_ALTERNATE_LIBDIRKhem Raj2022-04-241-1/+1
| | | | | | base_libdir may vary e.g. when using usrmerge feature Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang: Enable altivec again for ppc32Khem Raj2022-04-241-4/+0
| | | | | | This was disabled for musl issue which is not related to altivec Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: Do not export llvm-config variablesKhem Raj2022-03-291-6/+4
| | | | | | | | | exporting them changes signatures of the tasks for all recipes includeing native ones, so when meta-clang is not used it ends up building all native recipes too. Defining these variables is good enought for clang to see them in do_compile shell for target recipes Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: Export YOCTO_ALTERNATE_LIBDIR and YOCTO_ALTERNATE_EXE_PATHKhem Raj2022-03-241-0/+9
| | | | | | | These variables are used during target package compiles in packages which user llvm-config e.g. libclc Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: Be mindful of multilibs when adding tools dependenciesKhem Raj2022-03-181-2/+2
| | | | | | | This ensures that multilib prefix is respected in dependencies and can be handled when distro enables multilib Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang: Avoid double libcxx in BASE_DEFAULT_DEPSEsben Haabendal2022-03-171-1/+1
| | | | | | | When RUNTIME=="llvm" the libcxx entry will be added in a separate if clause right after this. We don't need it twice. Signed-off-by: Esben Haabendal <esben.haabendal@huawei.com>
* clang.bbclass: Remove commented codeKhem Raj2022-03-131-4/+0
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang: Use -mno-altivec for ppc 7400Khem Raj2022-03-131-7/+11
| | | | | | | | | | | Workaround qemuppc illegal instruction trap on vxor instruction emulation this instruction is emitted by clang with -mcpu=7400 on ppc32 when compiling musl/strspn.c file The crash shows up running qemu-ppc via gobject-introspection, so a long unwieldy path but we know whats happening Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang: Upgrade to latest on 14.xKhem Raj2022-03-101-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Enable __int128 for compiler-rt/ppc32 Drop redundant ppc patch which is fixed upstream already Brings these fixes * e879b2bf82ef [libcxxabi] [test] Depend on unwind only if available * 569b773323a3 [libcxx][CI] Set Arm triples to match native clang build's default * f7007c570a21 Lambdas are not necessarily locals. This resolves DR48250. * eb84577cbc23 Revert "[release] Use the Bootstrapping build for building LLVM releases" * d843bde69aab [clang][driver] Fix float128 diagnostics with glibc >= 2.32 * ba9ff030d302 [SimplifyCFG][PhaseOrdering] Defer lowering switch into an integer range comparison and branch until after at least the IPSCCP * da3953fb0315 [NFC][PhaseOrdering] Add some tests from D119839 * 8b51e5ee0a2e [NewPM][Inliner] Make inlined calls to functions in same SCC as callee exponentially expensive * 6a713120502a [llvm] [bindings/OCaml] Remove unused dep on ounit2 * 2de2a2bba998 [LICM][PhaseOrder] Don't speculate in LICM until after running loop rotate * 7d1cd3380add [NFC][PhaseOrdering] Improve test coverage for D119975 * 1f4613675051 [NFC][PhaseOrdering] spurious-peeling.ll: also test -O1/-O2 results * 36bf1a9e628d [NFC][PhaseOrdering] Precommit tests from D119965 * 67555104d23a [MachineSink] Disable if there are any irreducible cycles * 1e4fd59253c6 [CodeGen] Add test for PR53990 (NFC) * bfaed485756a [BOLT][CMAKE] Remove CMake 3.13.4 incompatible parameter * 43b4544023b7 [LLD] [COFF] Order .debug_* sections at the end, to avoid leaving gaps if stripped * e6d2aa9b0f13 [MC][WebAssembly] Fix crash when relocation addend underlows U32 * f6a4df3a0a3d [WebAssembly] Covert llvm/test/MC/WebAssembly/reloc-code.ll to asm. NFC * 9d54fe21c67f [docs] Add RISC-V release notes for LLVM 14 * 1e3d5ccab6b6 Add cmake to source release tarballs * 0205cc086e50 [OpenMP][FIX] Ensure custom state machine works * 0826716786cd [Mips] support "sp" named register * 09546e1b5103 [libc++][doc] Update the release notes. * 8f9f84c6873e [docs] clang/docs/ReleaseNotes.rst: Add blank line * aab33202d239 [docs] PowerPC release notes formatting/grammar fixes * acf67b7a0dfc [docs] Tweak wording of note re: LTO on AIX * ce1e90fc8dba [docs] Add PowerPC release notes for LLVM 14 Signed-off-by: Khem Raj <raj.khem@gmail.com>
* Revert "clang: Use GNU objdump on mips"Khem Raj2022-03-031-3/+0
| | | | This reverts commit a6cea51ab2b0923340012655ac0f13afba899e57.
* clang: Use GNU objdump on mipsKhem Raj2022-02-241-0/+3
| | | | | | | There are missing features in llvm-objdump especially for gnu-hash sections for mips Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang: set POPULATESYSROOTDEPS so that strip is presentRoss Burton2022-02-231-0/+3
| | | | | | | | | | | | do_populate_sysroot will execute the cross STRIP as part of the processing. In non-clang builds this is present via POPULATESYSROOTDEPS pulling in binutils, but in clang builds STRIP is set to llvm-strip which obviously isn't part of binutils. Set POPULATESYSROOTDEPS correctly to ensure that do_populate_sysroot has the strip binary available. Signed-off-by: Ross Burton <ross.burton@arm.com>
* clang.bbclass: Use llvm provided binutils when using toolchain-clangKhem Raj2022-02-211-0/+5
| | | | | | | These tools are better integrated with clang produced output consumption pipeline, therefore use them when using clang as compiler Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: Fix typo about big.LITTLE tune optionsyangpeng19952022-02-201-1/+1
| | | | Signed-off-by: yangpeng1995 <1336781165@qq.com>
* clang: Remove unintended dependency on gcc-runtimeEsben Haabendal2022-02-151-1/+3
| | | | | | | | | | | Commit a494bbb6ec44 ("clang: support android runtime") introduced an unrelated change causing builds with RUNTIME="llvm" and COMPILER_RT not set to get a dependency on virtual/${TARGET_PREFIX}compilerlibs. This is clearly unrelated to addition of support for android runtime, and causing unwanted depdencies to gcc-runtime for LLVM builds. Signed-off-by: Esben Haabendal <esben.haabendal@huawei.com>
* clang: support android runtimeHsia-Jun(Randy) Li2021-12-151-3/+4
| | | | Signed-off-by: Hsia-Jun(Randy) Li <randy.li@synaptics.com>
* Use GCC runtime on ppc32 and armv5Khem Raj2021-12-091-0/+4
| | | | | | | libcxx does not build for armv5 due to atomic locks issue and compile-rt cross build needs to be fixed for ppc32 Signed-off-by: Khem Raj <raj.khem@gmail.com>
* nativesdk-clang: Fix build when using RUNTIME = llvmKhem Raj2021-09-271-0/+1
| | | | | | | | | | | | We can not use nativesdk variants of libcxx and compiler-rt yet when compiling nativesdk-clang because, it will need this compiler to build them, so solve this catch-22, since we do not use the runtime built during compiler builds, use libgcc/libstdc++ to pass cmake tests during configure, this should be fine as it will be not needed for final builds where nativesdk-clang will be used, it can still default to llvm runtime on SDK host Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: Convert libc-klibc override to new syntaxKhem Raj2021-08-041-1/+1
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* recipes: Fix remaining override conversionKhem Raj2021-08-031-1/+1
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* Manually finish conversionMartin Jansa2021-08-032-5/+5
| | | | | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* meta-clang: Convert to new override syntaxSigned-off-by: Martin Jansa2021-08-032-57/+57
| | | | | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang: Depend on clang runtime when using RUNTIME = "llvm" for native packagesKhem Raj2021-07-081-0/+1
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Fix native buildKhem Raj2021-06-251-11/+13
| | | | | | | | Use libgcc with clang-native to compile it Fixes #465 Signed-off-by: Khem Raj <raj.khem@gmail.com>
* Use libgcc instead of compiler-rt on klibc appsKhem Raj2021-06-141-0/+2
| | | | | | | | | | | | | klibc does not provide libssp functions e.g. __stack_chk_guard and __stack_chk_guard which it expects from libc and compiler-rt code tend to use these functions, so when using compiler-rt it ends up with undefined symbols e.g. /usr/lib/clang/13.0.0/lib/linux/libclang_rt.builtins-armhf.a(divmoddi4.c.o): in function `__divmoddi4': divmoddi4.c:(.text+0x70): undefined reference to `__stack_chk_fail' arm-yoe-linux-gnueabi-ld.bfd: divmoddi4.c:(.text+0x74): undefined reference to `__stack_chk_guard' Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang: Do not force libgcc libunwind in rv32 and rv64Khem Raj2021-06-101-2/+0
| | | | | | | llvm unwind can work on rv32 and rv64 with latest clang so open up that option Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: Limit using clang to target recipes onlyKhem Raj2021-06-081-9/+9
| | | | | | | since toolchain-clang maybe available for native as well now, it means we have to ensure we do not use it for native recipes _yet_ Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: Adjust for clang default changesKhem Raj2021-06-081-7/+11
| | | | | | | | | | | | | | | Now that clang can pass right options automatically when RUNTIME = "llvm", adjust the variables e.g. COMPILER_RT/UNWINDLIB/LIBCPLUSPLUS are no more required to be defaulted Disable enforcing gcc runtime for packages using gcc as its no longer needed here but is taken care by RUNTIME variable as an aside it also helps in building native and nativesdk llvm runtimes Compute right dependencies based on selected RUNTIME along with COMPILER_RT/UNWINDLIB/LIBCPLUSPLUS variables Signed-off-by: Khem Raj <raj.khem@gmail.com>
* scan-build.bbclass: Fix typoKhem Raj2021-06-081-1/+1
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* replace --rtlib with -rtlibKhem Raj2021-05-191-3/+3
| | | | | | This is advertised option from clang Signed-off-by: Khem Raj <raj.khem@gmail.com>
* Replace --stdlibc=libc++ with -stdlibc=libc++Khem Raj2021-05-191-2/+2
| | | | | | | | | This ensures that it matches with CMake's understanding of this option and when its removed then it silently removes -stdlibc=libc++ but leaves the spurious '-' in the commandline which confuses the compiler as it them expects input from stdin Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: Define CMAKE_CLANG_TIDY directly using ${HOST_PREFIX}clang-tidyKhem Raj2021-04-231-4/+1
| | | | | | | There is no need for exporting CLANG_TIDY, since its not a standard variable Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang: Replace mtune with mcpu to match oe-coreKhem Raj2021-01-261-5/+5
| | | | | | Fixes Issue #415 Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: Set CCACHE_COMPILERCHECK as default valueMike Crowe2021-01-251-1/+1
| | | | | | | | | | | | | oe-core's ccache.bbclass contains: export CCACHE_COMPILERCHECK ?= "%compiler% -dumpspecs" which sets a default value and allows others to easily override the value of CCACHE_COMPILERCHECK if they wish to. Let's update clang.bbclass to also set only the default value of CCACHE_COMPILERCHECK too. Signed-off-by: Mike Crowe <mac@mcrowe.com>
* clang.bbclass: Remove -mcpu option for the octeontx2 coreKevin Hao2021-01-041-0/+3
| | | | | | | | | | The tune file for octeontx2 has been added into oe-core by commit ad4f82742c6f ("tune-octeontx2.inc: Add tune for Marvell OCTEON TX2 core"). But the clang doesn't support this core yet. So remove the -mcpu from the TUNE_CCARGS to fix the build failure for the octeontx2 core. Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
* clang: Use lld for LTO linkKhem Raj2020-11-131-1/+2
| | | | | | | | | Core uses a dumb utility called dwarfsrcfiles to grok source file names and it assumes that .o and .a files are good old ELF files, that is not true when using LTO in which case it becomes IR code, this tool starts to puke, therefore disable using this tool Signed-off-by: Khem Raj <raj.khem@gmail.com>
* lto: Override LTO variable from oe-core for thin-ltoKhem Raj2020-11-132-7/+2
| | | | | | If thin-lto is used in DISTRO_FEATURES then enable thin-lto Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: Use -mno-relax with clang for riscvKhem Raj2020-11-131-0/+4
| | | | | | lld yet does not work relaxation so accomodate for that so LTO can work Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang: Use python3 explicitly in scriptsKhem Raj2020-10-151-0/+9
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* classes/clang.bbclass: Remove -mmusl flag from toolchain.cmake.Leon Woestenberg2020-09-301-0/+1
| | | | | | | | | | The -mmusl flag is GCC specific, Clang supports MUSL differently. Prevents clang-11: error: unknown argument: '-mmusl' Verified it does not affect the GCC toolchain.cmake build. Signed-off-by: Leon Woestenberg <leon@sidebranch.com>
* clang: usrmerge workaroundOleksandr Ocheretnyi2020-07-021-0/+2
| | | | | | | | | | | | | | | |  * issue:     the openembedded-core build procedure relies on changed default dynamic loader path when the usrmerge distro feature turned on. As we can find the GCC which is used as default toolchain uses SYSTEMLIBS_DIR macro variable set to /usr/(lib|lib64) at build time and hardcodes the binaries with that default loader path.  * solution:     change the default dynamic loader location with --dyld-prefix clang option to conform the loader location (as GCC does) to openembedded-core build procedure. Signed-off-by: Oleksandr Ocheretnyi <oocheret@cisco.com>
* clang.bbclass: Define -target in HOST_CC_ARCHKhem Raj2020-05-161-0/+1
| | | | | | | This helps extra tools like clang-tidy to find arch-specific macros, headers in a cross compile environment. Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: Define CLANG_TIDY and extend it to cmake as wellKhem Raj2020-05-161-1/+8
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* cmake-native.bbclass: remove reset of CCACHEKai Kang2020-05-151-3/+0
| | | | | | | | | | It reset variable CCACHE to disable ccache. But that doesn't effect that CCACHE is set in an anonymous function from ccache.bbclass at last and ccache is always not disabled with cmake. Remove these useless piece of code. Signed-off-by: Kai Kang <kai.kang@windriver.com>
* clang.bbclass: override CCACHE_COMPILERCHECKKai Kang2020-05-151-0/+1
| | | | | | | | | | | | It fails to build compiler-rt when ccache is enabled: | ccache: error: Failure running compiler check command: %compiler% -dumpspecs Because clang doesn't recognize option '-dumpspecs' from default value of CCACHE_COMPILERCHECK, override CCACHE_COMPILERCHECK for toolchain clang in clang.bbclass. Signed-off-by: Kai Kang <kai.kang@windriver.com>