summaryrefslogtreecommitdiffstats
path: root/classes
Commit message (Collapse)AuthorAgeFilesLines
* cmake-native.bbclass: Add include and libdir from native sysrootKhem Raj2020-02-211-0/+8
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang: Use 64bit long double on musl/ppc64leKhem Raj2020-01-231-0/+1
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* armeb: Disable compiler-rtKhem Raj2019-11-201-0/+3
| | | | | | compile-rt is not fully ported for ARM big-endian therefore disable it Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: Define RUNTIME variable to select compiler runtimeKhem Raj2019-11-181-6/+8
| | | | | | | RUNTIME can be 'llvm' or 'gnu' defaults to 'gnu' Use this variable for selecting stdc++ and c runtime Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang: Merge libunwind back into libcxxKhem Raj2019-10-091-15/+2
| | | | | | | | Do not export libunwind to other recipes besides libcxx itself, we use non-gnu libunwind on linux in general and its not a drop in replacement as of yet Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang: Remove editing THUMB_TUNE_CCARGSKhem Raj2019-10-021-1/+0
| | | | | | THUMB_TUNE_CCARGS is gone from oe-core Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang-runtime: Use INHIBIT_DEFAULT_DEPS = "1"Khem Raj2019-10-011-4/+10
| | | | | | | This ensures that clang-runtime elements e.g. llvm-libunwind can be used with gcc as well Signed-off-by: Khem Raj <raj.khem@gmail.com>
* llvm-libunwind: Fix linunwind providersKhem Raj2019-09-281-0/+8
| | | | | | | | | | | | libunwind can be either nongnu libunwind ( from OE-Core ) or from llvm and when using clang and using --unwindlib=libunwind we know we have to use llvm libunwind implementation, so remove libunwind from DEPENDS and add llvm-libunwind to depends Drop providing libunwind from llvm-libunwind since its not needed anymore Signed-off-by: Khem Raj <raj.khem@gmail.com>
* runtime: Automatically add llvm-libunwind based on COMPILER_RT asking for ↵Khem Raj2019-09-281-6/+2
| | | | | | --unwindlib=libunwind Signed-off-by: Khem Raj <raj.khem@gmail.com>
* llvm-libunwind: New reecipe for llvm unwinder split from libcxxKhem Raj2019-09-191-1/+1
| | | | | | | Its easier to provide it as replacement for nongnu libunwind bundled into libcxx was getting harder when it came to replacement Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: Do not set LIBCPLUSPLUS and COMPILER_RT when compiler != clangKhem Raj2019-09-181-5/+12
| | | | | | | | | | | | | * Add compiler-rt and libcxx only when these libs are used via cmdline * libffi still need to disable internal asm on arm <= v6 * Add compiler-rt to linker only when compiler-rt is used in compiler cmdline * Set BASE_DEFAULT_DEPS instead of munging BASEEDEPENDS directly Signed-off-by: Khem Raj <raj.khem@gmail.com>
* scan-build: Limit scans to target recipes onlyKhem Raj2019-09-161-24/+27
| | | | | | | | Add a blacklist for scanning, add packages which are not scannable Add --force-analyze-debug-code and -analyze-headers to default set of scan options Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: compiler-rt does not compile for ppc32Khem Raj2019-09-021-0/+1
| | | | | | Use libgcc Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: Use -mlong-double-64 on ppc64/muslKhem Raj2019-09-021-0/+1
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Disable llvm libunwind when using gcc as system compilerKhem Raj2019-08-201-1/+2
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Provide libunwind and fix risv supportKhem Raj2019-08-121-2/+10
| | | | | | Use llvm libunwind as default for clang toolchain Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx,compiler-rt: Add --unwindlib=libunwind to COMPILER_RTKhem Raj2019-08-121-1/+1
| | | | | | | This is new way of enabling llvm unwinder as default unwinder now build shared libunwind which is needed for new option Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang:bbclass: Do not use compiler-rt/libcxx for recipes which use gccKhem Raj2019-03-031-0/+3
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: Redefine ar/nm/ranlibKhem Raj2019-02-251-0/+3
| | | | | | | | OE-core now points to gcc-* variants of these variables which will not be installed when a package is built with clang moreover llvm version would be needed for thin-lto to work anyway Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: Define COMPILER_RT and LIBCPLUSPLUSKhem Raj2019-02-231-0/+6
| | | | | | | LIBCPLUSPLUS and COMPILER_RT are variables to indicate if clang c/c++ runtime should be used as well or not Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: Remove compilerlibs from BASEDEPENDSKhem Raj2019-02-231-1/+1
| | | | | | We do not need it when using clang Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: Set nativesk ldso location correctly during linkKhem Raj2019-02-111-3/+8
| | | | | | | | | | Add aarch64 host support Enable lld via LDFLGS instead of TOOLCHAIN_FLAGS which also get passed to compiler Add relative rpaths so the liraries from SDK sysroot are preferred over sdk host when SDK is used Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang: Fix nativesdk builds to use clang-nativeKhem Raj2019-02-111-0/+4
| | | | | | | | | | - User lld for linking nativesdk-clang - Enable LTO to build nativesdk-clang - Use -static-libgcc when using gold/lld for nativesdk clang build - Use llvm wrappers for ar ranlib and nm to help LTO - Package and create cross versions of lld Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang: Enable LTO and lld based on distro knobsKhem Raj2019-02-092-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | Add to local.conf or distro config the following to enable lto flavors and lld linker DISTRO_FEATURES += "thin-lto" DISTRO_FEATURES += "full-lto" DISTRO_FEATURES += "lld" Add lto.bbclass To enable LTO is currently per recipe, or globally to enable globally add following to global config meta-data e.g. local.conf INHRIT += "lto" other-wise enable LTO per recipe using inherit lto to recipe via bbappend or in main recipe Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Make libunwind as static libraryKhem Raj2019-02-071-1/+0
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang: Enable a cross version of clang-tidyKhem Raj2019-01-311-0/+1
| | | | | | define CLANG_TIDY_EXE which is used by some build systems e.g. cmake Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: Do not add lld-native to forced clang depsKhem Raj2018-12-271-1/+1
| | | | | | lld is being folded into clang recipe itself Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang: Switch to using own internal assemblerKhem Raj2018-12-271-1/+1
| | | | | | | | There still are some recipes which do not build with internal assembler, due to GNU'isms or other bugs in inline assembly, but its small enough number to fix or pin to external assembler Signed-off-by: Khem Raj <raj.khem@gmail.com>
* build native lld along with cross clangKhem Raj2018-09-091-1/+1
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* scan-build.bbclass: Rename tasksKhem Raj2018-05-171-13/+13
| | | | | | | buildscan -> scanbuild viewscan -> scanview Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang: Drop -D__extern_always_inline=inlineKhem Raj2018-05-171-1/+1
| | | | | | | | | It was a workaround which was supposed to go away one day and that day has arrived We should fix the packages if they need such a workaround Signed-off-by: Khem Raj <raj.khem@gmail.com>
* scan-build: Change pwd to B for buildscan taskKhem Raj2018-05-151-2/+3
| | | | | | | Drop -C <src> from make invocation this helps in making it more generic Signed-off-by: Khem Raj <raj.khem@gmail.com>
* scan-build.bbclass: Do not depend on clang-nativeKhem Raj2018-05-151-20/+20
| | | | | | | | | | - Dependency on clang-native causes circular dependency - Use spaces instead of tabs in shell functions - Convert do_configure_prepend into a prefunc, makes it work with non-shell do_configure - Use TARGET_CC_ARCH instead of HOST_CC_ARCH Signed-off-by: Khem Raj <raj.khem@gmail.com>
* scan-build: Add mechanism to run static analysis using clangKhem Raj2018-05-151-1/+55
| | | | | | Implements issues #44 Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang,llvm,lld: Update to latest on release_50Khem Raj2017-10-051-0/+3
| | | | | | Drop upstreamed patches Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Disable libunwind on all mipsKhem Raj2017-09-181-0/+1
| | | | | | llvm libunwind is still not ported to mips Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: Prepend instead of appending to overridesKhem Raj2017-09-101-1/+1
| | | | | | | Right now it becomes highest priority override which we dont want Signed-off-by: Khem Raj <raj.khem@gmail.com>
* classes: Do not replace armv7ve with armv7a anymoreKhem Raj2017-08-291-3/+0
| | | | | | clang-5.0 supports the option now Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang: fix nativesdk buildMing Liu2017-08-231-0/+47
| | | | | | | | | | | | | | | | | | | | | I could not manage to build nativesdk-clang, I encountered errors as follows: (trimmed for purpose) | ../gcc/x86_64-pokysdk-linux/6.3.0/ld:: | cannot find crt1.o: No such file or directory | cannot find crtbegin.o: No such file or directory | cannot find -lgcc | cannot find -lgcc_s After some investigation, I found it's caused by the llvm native tools could not compile with crosssdk toolchains. (special linking flags are needed) So we introduce a cmake-native class with a task to generate a native toolchain file, it will be used to build llvm native tools by passed with CROSS_TOOLCHAIN_FLAGS_NATIVE. Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang: Switch c++ default to gnu++14 standardKhem Raj2017-08-121-1/+1
| | | | | | | | | | | | | | | Using cmdline options -std doesnt always work e.g. boost where it uses c++ driver (clang++) to invoke compilation but then passes '-x c' to choose the language for compilation Which ends in errors like below error: invalid argument '-std=c++14' not allowed with 'C' Therefore change the defaults in driver itself to use gnu++14 which is default with g++ from gcc7+ too. Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang++: Default to c++14 stdKhem Raj2017-08-121-1/+1
| | | | | | | | | | latest gcc7 also defaults to c++14, some packages have started to use c++11 and newer features without specifying -std option and rightly so now that gcc defaults are c++14, applications can safely assume c++14 as default Signed-off-by: Khem Raj <raj.khem@gmail.com>
* llvm-libunwind: DeleteKhem Raj2017-07-311-3/+2
| | | | | | build llvm libunwind along with libcxx Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang: Default to PIE when GCCPIE is setKhem Raj2017-07-291-2/+0
| | | | | | | | This matches with OE-Core expectations and we do not need to inject PIE flags manually via SECURITY_CFLAGS which does not always work Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: Add -pie -fPIE to SECURITY_PIE_CFLAGS explicitlyKhem Raj2017-07-211-0/+3
| | | | | | | | gcc in core now is configured with these options but clang does not have a configuration level knob so we still need to pass it old way Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: Add -Qunused-arguments to clang argumentsKhem Raj2017-06-091-1/+1
| | | | | | | | GCC ignores unused arguements by default, but Clang needs this extra parameter to stop printing warnings about LDFLAGS passed during compiling stage and CFLAGS passed during linking stage. Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: Disable llvm-libunwind for mipsKhem Raj2017-03-231-0/+1
| | | | | | Its not ported to mips yet Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang.bbclass: Add CCACHE prefix and use HOST_PREFIX instead of TARGET_PREFIXKhem Raj2017-03-211-4/+4
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang: Add clang runtime to dependencies when toolchain is clangKhem Raj2017-03-161-2/+2
| | | | | | A step towards unplugging gcc runtime Signed-off-by: Khem Raj <raj.khem@gmail.com>
* Ony use llvm-libunwind if clang is selectedRoss Burton2016-05-251-0/+3
|
* clang-libs: Fix build on x86_64 and use gcc for all cross recipesKhem Raj2016-05-081-0/+1
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>