summaryrefslogtreecommitdiffstats
path: root/recipes-devtools/clang/libcxx_git.bb
Commit message (Collapse)AuthorAgeFilesLines
* libcxx: Put Package library module manifest and files in dev packageKhem Raj2024-05-261-0/+2
| | | | | | This is enabled in upcoming clang-19 Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang: Apply libunwind.pc.in and llvm-config via a patchKhem Raj2024-05-211-1/+1
| | | | | | | this will simplify things with UNPACKDIR and shared sources for all llvm derived recipes Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Pass LLVM_RUNTIME_TARGETSKhem Raj2024-03-061-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | LLVM_RUNTIME_TARGETS will define the location of triple for target correctly. This is an effort to fix the case where cross compiler will lurk into host libc++ header if libcxx-native is staged for a given recipe e.g. graphviz, it works ok if --sysroot is specified because thats how it tries to find if its a cross sysroot or not but without that it has mind of its own. e.g. try x86_64-yoe-linux-musl-clang++ -stdlib=libc++ ~/tests/iosfd.cpp -v -c ... clang -cc1 version 18.1.0 based upon LLVM 18.1.0 default target x86_64-unknown-linux-gnu ignoring nonexistent directory "/usr/lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../x86_64-pc-linux-gnu/include" ignoring nonexistent directory "/include" /mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/graphviz/8.1.0/recipe-sysroot-native/usr/bin/../include/c++/v1 /usr/local/include /usr/include /mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/graphviz/8.1.0/recipe-sysroot-native/usr/lib/clang/18/include End of search list. ... See where it is looking for c++ headers. Its not an issue for OE right now, since we always specify --sysroot in CC but still would be good to handle it amicably if possible Signed-off-by: Khem Raj <raj.khem@gmail.com>
* meta-clang: Replace RUNTIME with TC_CXX_RUNTIMEKhem Raj2023-10-251-3/+3
| | | | | | TC_CXX_RUNTIME is now defined in OE-core Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Use LLVM_ENABLE_RUNTIMES to build C++ runtime libsKhem Raj2023-02-221-1/+2
| | | | | | This is new way of building it from 16.x onwards Signed-off-by: Khem Raj <raj.khem@gmail.com>
* runtime: Enable PIC for static archives with clang runtime libsKhem Raj2023-02-061-0/+1
| | | | | | | This helps in compling shared libraries which may use e.g. static libc++.a during link Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Build libc++abi into static libc++.aKhem Raj2023-01-291-0/+1
| | | | | | | | This helps statically linking c++ runtime into binaries which use exceptions functions e.g. std::out_of_range as used in rwmem package and using -static-libstdc++ compiler flags Signed-off-by: Khem Raj <raj.khem@gmail.com>
* clang, llvm-rutime: Turn per target runtime off and use RelWithDebInfo for buildKhem Raj2022-09-121-0/+2
| | | | | | | | | | | clang can now build multiarch runtimes like debian's setup, but not all arches work equally well, e.g. arm32 bit can not handle arm and armhf case, so lets disable it for now. Use DCMAKE_BUILD_TYPE=RelWithDebInfo as it is needed to set DCMAKE_BUILD_TYPE in 15.x Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Enable installing libc++.so as linker scriptKhem Raj2022-08-301-3/+1
| | | | | | | This ensures that -stdlib=libc++ option works as expected by adding both -lc++ -c++abi to linker command in sequence Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Fix nativesdk buildingEsben Haabendal2022-04-251-0/+7
| | | | Signed-off-by: Esben Haabendal <esben.haabendal@huawei.com>
* libcxx: Drop duplicate setting of LLVM_LIBDIR_SUFFIXKhem Raj2022-03-241-2/+0
| | | | | | LLVM_LIBDIR_SUFFIX is already computed fine in clang.inc Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Install unwind_itanium.h and unwind_arm_ehabi.hKhem Raj2022-02-161-2/+4
| | | | | | | When building libunwind, install new headers which are refactored from unwind.h in clang 14.0.0 onwards Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Set CMAKE_BUILD_WITH_INSTALL_RPATHKhem Raj2021-11-261-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | cmake 3.22+ is causing install failures e.g. | -- Install configuration: "Debug" | -- Installing: /mnt/b/yoe/master/build/tmp/work/armv7at2hf-neon-yoe-linux-gnueabi/libcxx/13.0.1-r0/image/usr/lib/libc++.so.1.0 | -- Installing: /mnt/b/yoe/master/build/tmp/work/armv7at2hf-neon-yoe-linux-gnueabi/libcxx/13.0.1-r0/image/usr/lib/libc++.so.1 | -- Set runtime path of "/mnt/b/yoe/master/build/tmp/work/armv7at2hf-neon-yoe-linux-gnueabi/libcxx/13.0.1-r0/image/usr/lib/libc++.so.1.0" to "" | -- Installing: /mnt/b/yoe/master/build/tmp/work/armv7at2hf-neon-yoe-linux-gnueabi/libcxx/13.0.1-r0/image/usr/lib/libc++.so | CMake Error at cmake_install.cmake:88 (file): | file RPATH_CHANGE could not write new RPATH: | | | | to the file: | | /mnt/b/yoe/master/build/tmp/work/armv7at2hf-neon-yoe-linux-gnueabi/libcxx/13.0.1-r0/image/usr/lib/libc++.so | | Call Stack (most recent call first): | /mnt/b/yoe/master/build/tmp/work/armv7at2hf-neon-yoe-linux-gnueabi/libcxx/13.0.1-r0/build/projects/libcxx/cmake_install.cmake:56 (include) | Apply a workaround by building install time rpaths directly during build time too. Real fix perhaps will be in cmake somewhere. Signed-off-by: Khem Raj <raj.khem@gmail.com>
* recipes: Fix remaining override conversionKhem Raj2021-08-031-3/+3
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* meta-clang: Convert to new override syntaxSigned-off-by: Martin Jansa2021-08-031-19/+19
| | | | | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
* compiler-rt,libcxx: Fix native builds when using RUNTIME=llvmKhem Raj2021-07-301-0/+5
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Explicitly set LLVM_DEFAULT_TARGET_TRIPLEKhem Raj2021-07-181-0/+2
| | | | | | | | | This helps during cross-compile as new clang expects this to be set or else it deduces it and that deduction can go wrong. See commit 395271ad11b8c233db1a4e0e6a76aa52e93e5aec in clang repo Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Fix native buildKhem Raj2021-06-251-7/+17
| | | | | | | | Use libgcc with clang-native to compile it Fixes #465 Signed-off-by: Khem Raj <raj.khem@gmail.com>
* Package libunwind independentlyKhem Raj2021-06-081-2/+4
| | | | | | This helps in ensuring it pose as RPROVIDES when llvm runtime is used Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libunwind: Install headers and pkgconfig fileKhem Raj2021-06-081-0/+11
| | | | | | | This ensures it can replace nongnu libunwind Use it only when selecting RUNTIME = "llvm" Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Build undwinder when RUNTIME = "llvm"Khem Raj2021-06-081-1/+5
| | | | | | | ensure that libcxx can be built when RUNTIME = "llvm" as it might need to pass some cmake compiler tests Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Build libunwind shared lib when enabledKhem Raj2021-06-081-10/+7
| | | | | | | Use compile-rt consistently across when building libc++ and libc++abi and libunwind Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Fix build on rv32 and use compiler-rt on rv32/rv64Khem Raj2020-08-211-2/+0
| | | | Signed-off-by: Khem Raj <raj.khem@gmail.com>
* libcxx: Default to compiler-rt when it is in PACKAGECONFIGKhem Raj2020-08-041-1/+1
| | | | | | This ensures right C runtime is used as desired by user Signed-off-by: Khem Raj <raj.khem@gmail.com>
* 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>