summaryrefslogtreecommitdiffstats
path: root/recipes-devtools/clang/libcxx_git.bb
Commit message (Collapse)AuthorAgeFilesLines
* libcxx: Fix linking based upon chosen compiler runtimeKhem Raj2020-08-011-5/+6
| | | | | | | | | | | | | | | | | | | | | | libcxx can use either libgcc_s or llvm libunwind for unwinder functionality, the defaults are platform dependent, therefore with this patch we make intentional choice based on RUNTIME settings chosen, e.g. when using GNU runtime we use libgcc and also ensure that it add right compiler options to build as well, since libcxx build looks C runtime by calling $($CC --print-libgcc-file-name) to build libc++abi.so unless we use right -rtlib option it will result in linking wrong library Enable RTTI as well do not enable llvm unwinder unless we chose llvm runtime, even that might not work since libpthread from glibc explicitly dlopens libgcc_s.so to enable unwinding https://github.com/bminor/glibc/blob/5f72f9800b250410cad3abfeeb09469ef12b2438/sysdeps/nptl/unwind-forcedunwind.c#L53...L58 Fixes Issue #332 Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx,compiler-rt: Use python3 during buildKhem Raj2020-01-201-1/+1
| | | | | | py2 is gone from oe-core Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang: stay closer to cmake.bbclassDaniel McGregor2020-01-201-17/+3
| | | | | | | | | | | Allow more of the cmake variables coming from the OE environment through, otherwise the release C flags and CXX flags get reset to LLVM's default, which greatly extend build times. Also switch to using cmake.bbclass's do_compile and do_install commands. There's no need to call ninja directly anymore. Signed-off-by: Daniel McGregor <daniel.mcgregor@vecima.com>
* libcxx: Fix build on architectures with baselib != libKhem Raj2019-12-201-1/+3
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* Compute LLVM_LIBDIR_SUFFIX correctly on multiarch environmentHiroshi Hatake2019-12-161-1/+1
| | | | Co-authored-by: INAJIMA Daisuke <inajima@soum.co.jp>
* clang: Merge libunwind back into libcxxKhem Raj2019-10-091-2/+13
| | | | | | | | 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-2/+0
| | | | | | THUMB_TUNE_CCARGS is gone from oe-core Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Add packageconfig for compiler-rt useKhem Raj2019-10-021-4/+4
| | | | | | | | | | This helps in disabling compiler-rt e.g. on risc-v if we need to enable exceptions then we need to use libgcc_s, since llvm-libunwind is not yet ported to risc-v For ppc, enable compiler-rt Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Introduce packageconfigs for unwind and exceptions atomics supportKhem Raj2019-10-021-29/+16
| | | | | | Fix build on armv5 Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Pass OE LDFLAGS via CMAKE_SHARED_LINKER_FLAGSKhem Raj2019-10-011-6/+7
| | | | | | | | | | | setting these flags via CMake cmdline means that LDFLAGS that OE expects to insert via environment wont be respected anymore, therefore its better to pass it along during configure, so we get the desired flags into linker Fixes Issue #188 Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang-runtime: Use INHIBIT_DEFAULT_DEPS = "1"Khem Raj2019-10-011-0/+3
| | | | | | | 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>
* runtime: Automatically add llvm-libunwind based on COMPILER_RT asking for ↵Khem Raj2019-09-281-10/+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-33/+18
| | | | | | | 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>
* libcxx: support multilibAnuj Mittal2019-09-181-1/+2
| | | | | | Use LLVM_LIBDIR_SUFFIX with the correct value of suffix derived using baselib. Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
* libcxx: Facilitate building without llvm libunwindKhem Raj2019-09-091-10/+15
| | | | | | | | | | | | | | | | | | | | | | | when llvm unwind library is disabled, build was not picking up libgcc automatically since we still use, compiler-rt for C runtime, therefore introduce it via special CMAKE_SHARED_LINKER_FLAGS in packageconfig Bundle static unwind library into libcxx-abi library and bundle libcxx-abi.a into libc++.a this helps in just specifying lc++ and no other flags are needed. Also bundle static libunwind and cxx-abi but not into shared libc++, this would avoid adding them explicitly on linker cmdline in packages when doing static linking Use PREFERRED_PROVIDER_libunwind to determine if unwind packageconfig should be enabled or not Pass -fno-exceptions on arm, otherwise it links in unwinding routines which it expects to link from libgcc_s, we really don't need this when doing cmake checks so disable exceptions during cmake checks Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Add ^libunwind-locale-.* to PACKAGES_DYNAMICKhem Raj2019-09-091-0/+2
| | | | | | | this should help when libcxx is preferred to provide libunwind and help masking the packages coming from libunwind recipe Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Fix build on ppcKhem Raj2019-09-021-0/+5
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Always use clang to compile libcxxKhem Raj2019-08-261-0/+2
| | | | | | It really does not build with gcc dont force it Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Do not hardcode llvm ar/ranlib/nmKhem Raj2019-08-261-3/+3
| | | | | | This helps in building with gcc Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Link with libgcc when using gcc to buildKhem Raj2019-08-241-0/+2
| | | | | | Fixes build errors due to missing unwind symbols Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Disable llvm libunwind when using gcc as system compilerKhem Raj2019-08-201-1/+1
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: RProvide rest of libunwind packagesKhem Raj2019-08-191-2/+3
| | | | | | | This ensures that llvm libunwind is used always, even for sdks Move depends above as per recipe styleguides Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Add libunwind to PROVIDES not only RPROVIDES.Piotr Tworek2019-08-171-1/+1
| | | | | | | | | | | | Without this bitbake will still pull standard libunwind package when building recipes depending on libunwind. If such recipe also happens to pull libcxx the build will fail when assembling the sysroot because both libcxx and libunwind provide libunwind.so. This problem has been observed when building libstd-rs from meta-rust layer agains musl libc. Signed-off-by: Piotr Tworek <tworaz@tworaz.net>
* libcxx: Provide libunwind and fix risv supportKhem Raj2019-08-121-3/+17
| | | | | | 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-3/+2
| | | | | | | 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: Upgrade to 9.x-rcXKhem Raj2019-08-121-4/+3
| | | | | | | dont package six.py, its provided by python3-six package default to lp64d ABI and rv64gc ISA. Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Enable libunwind on mipsKhem Raj2019-05-261-1/+0
| | | | | | This now builds for mips so lets enable it Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx, compiler-rt: Use forcevariable to specify TOOLCHAIN overrideKhem Raj2019-03-121-1/+2
| | | | | | | This may already be specified by another low priority override to point to gcc but we want to always use clang for compiling these packages Signed-off-by: Khem Raj <raj.khem@gmail.com>
* compiler-rt,libcxx: Add --stdlib=libc++ to compiler flagsKhem Raj2019-02-231-4/+5
| | | | | | | | | | - We do not need it with CXX - adding to compiler flag makes sure that libcxx headers are used even when C (clang) compiler is used - Eventually libcxx should provide virtual/${TARGET_PREFIX}compilerlibs add it in comments Signed-off-by: Khem Raj <raj.khem@gmail.com>
* compiler-rt: Disable standalone buildKhem Raj2019-02-091-0/+4
| | | | | | | | | | | standalone build starts to look for c++ headers which then are fed from libstc++ because libcxx is not built yet, instead let build use it from in-tree libcxx enable llvm-ar/llvm-ranlib/llvm-nm to provide ar/ranlib/nm respectively, this helps with lto enabled builds for libcxx Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Make libunwind as static libraryKhem Raj2019-02-071-18/+14
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* compiler-rt,libcxx: Remove --rtlib=compiler-rtKhem Raj2019-01-261-0/+1
| | | | | | This avoids catch-22 Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx,compiler-rt: Append to CXX along with TARGET_CXXFLAGS to carry ↵Khem Raj2019-01-241-1/+2
| | | | | | | | -stdlib flag Since TARGET_CXXFLAGS does not get passed into all packages Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Use compiler-rt for C runtimeKhem Raj2019-01-241-1/+2
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang: Update license checksumsKhem Raj2019-01-191-3/+3
| | | | | | The only change is update to the year in license files Signed-off-by: Khem Raj <raj.khem@gmail.com>
* recipes: Rework llvm/clang/compiler-rt/libcxx/lldb recipesKhem Raj2018-12-271-22/+8
| | | | | | | | | | | | | | This is an overhaul of clang/llvm project related recipes * switch to using a flat mono repo for all clang/llvm projects * Add llvm-project-source recipe which will prepare source tree in work-shared for all recipes much like kernel and gcc * build lld as part of clang recipes, its much easier and saves build time and hopefully nativesdk version will be built now for free * switch to official git repos at git://github.com/llvm-project * Adjust all recipes to use shared sources Signed-off-by: Khem Raj <raj.khem@gmail.com>
* Disable generating libcxx.so as script for native and nativesdk caseKhem Raj2018-09-091-1/+3
| | | | | | | | This confuses the libcxx build system and it tries to edit rpaths in .so files and fails miserably on libcxx.so if it is a linker script Signed-off-by: Khem Raj <raj.khem@gmail.com>
* disable linunwind for risv64Khem Raj2018-09-091-0/+1
| | | | | | RISC-V support in clang is missing for now Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Disable llvm libunwind on ppcKhem Raj2018-09-091-1/+2
| | | | | | | | It fails to build libunwind/src/UnwindRegistersSave.S:561: Error: unrecognized opcode: `extern' Signed-off-by: Khem Raj <raj.khem@gmail.com>
* recipes: Upgrade to clang 7.0.0 Release (rc2)Khem Raj2018-09-091-0/+2
| | | | | | | | | | | | | | | | | - Update compiler-rt/llvm/clang/lld licence checksums Triggerred due to copyright year update to 2018 Add libunwind and libcxxabi license to checksum list too - Switch to https protocol for fetching from github - Fix _finite functions on musl - Package new .so files built with clang - package libLLVM-${MAJOR_VER}.so as well since llvm-7 generates it without MINOR_VERSION Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Add libunwind to PACKAGECONFIGMichael Davis2018-07-101-16/+16
| | | | | | | Allow libunwind to be turned off and on using PACKAGECONFIG Default to ON Signed-off-by: Michael Davis <michael.davis@essvote.com>
* libcxx: include staticdev into SDKKhem Raj2018-05-151-0/+2
| | | | | | This helps statically linking C++ programs when building with clang Signed-off-by: Khem Raj <raj.khem@gmail.com>
* recipes: Drop setting NINJA_STATUSKhem Raj2018-04-191-4/+4
| | | | | | This is no longer needed Signed-off-by: Khem Raj <raj.khem@gmail.com>
* llvm/libunwind: Fix install targetRobin Lee2018-03-031-1/+1
| | | | Signed-off-by: Robin Lee <cheeselee@fedoraproject>
* libcxx: Add settings to build with libcxx as default C++ standard libraryRobin Lee2018-03-031-0/+1
| | | | Signed-off-by: Robin Lee <cheeselee@fedoraproject>
* libcxx: Disable libunwind on all mipsKhem Raj2017-09-181-6/+11
| | | | | | llvm libunwind is still not ported to mips Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Divide compile step into smaller stepsKhem Raj2017-09-141-1/+3
| | | | | | | | There seems to be some race between libcxx and libcxx-abi resulting in FAILED: lib/libc++.so.1.0 x86_64-bec-linux-musl-ld: cannot find -lc++abi Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Fix build on ARM due to libcxxabi not finding libunwind sourcesKhem Raj2017-08-271-2/+3
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* llvm-libunwind: DeleteKhem Raj2017-07-311-6/+14
| | | | | | build llvm libunwind along with libcxx Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Merge libcxxabi needs into libcxxKhem Raj2017-07-311-10/+13
| | | | | | | | | This is preferred way of building libc++ and it also means we do not need musl specific tweaks since top level build from llvm already know musl and make right choices Signed-off-by: Khem Raj <raj.khem@gmail.com>