summaryrefslogtreecommitdiffstats
path: root/libcxxabi
Commit message (Collapse)AuthorAgeFilesLines
* Bump version to 10.0.1Tom Stellard2020-04-131-1/+1
|
* Drop git version suffixAaron Puchert2020-02-171-1/+1
| | | | | | | | | | | | | | Summary: Also fix the version for libcxxabi, which was stuck in the past. Reviewers: hans, mclow.lists Reviewed By: hans Subscribers: mgorny, christof, libcxx-commits, llvm-commits, ldionne Tags: #libc, #llvm Differential Revision: https://reviews.llvm.org/D74586
* [libcxxabi] Fix layout of __cxa_exception for win64Martin Storsjö2020-02-041-5/+5
| | | | | | | | | | | | Win64 isn't LP64, it's LLP64, but there's no __LLP64__ predefined - just check _WIN64 in addition to __LP64__. This fixes compilation after static asserts about the struct layout were added in f2a436058fcbc11291e73badb44e243f61046183. Differential Revision: https://reviews.llvm.org/D73838 (cherry picked from commit 09dc884eb2e4a433eb8c5ed20a17108091279295)
* [libcxxabi] Insert padding in __cxa_exception struct for compatibilitySteven Wu2020-02-031-0/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Preserve the old ABI for __cxa_exception and __cxa_dependent_exception on 64 bit platforms or ARM_EHABI platforms. After r276215, libunwind in llvm-project labels _Unwind_Exception to be double word aligned. That change implictly adds a padding before unwindHeader field in __cxa_exception and __cxa_dependent_exception. Preserve the same negative offsets in those struct by moving the padding to the beginning of the field. The assumption here is that if the ABI is not aware of the padding before unwindHeader and put the referenceCount/primaryException in there, no padding should exist before unwindHeader. Reviewers: EricWF, mclow.lists, ldionne, jroelofs, dexonsmith, rjmccall, compnerd, phosek, ahatanak Reviewed By: rjmccall Subscribers: hans, smeenai, kristof.beyls, christof, jkorous, ributzka, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D72543 (cherry picked from commit f2a436058fcbc11291e73badb44e243f61046183)
* [demangle] Copy back some NFC commits from LLVMErik Pilkington2020-01-092-8/+8
|
* [libcxxabi] Allow tests to link with static libc++abi/libc++ even if the ↵Sergej Jaskiewicz2020-01-093-3/+33
| | | | | | | | | | | | | | | | | | | | | | | shared version is present Summary: Right now the only way to force libc++abi tests to link with the static version of libc++abi is to set `LIBCXXABI_ENABLE_SHARED` to `OFF`. However, this doesn't work when libc++abi is built as standalone project because of [this](https://github.com/llvm/llvm-project/blob/54c522420347e58aa7bae1892cf5c5672b57c875/libcxxabi/CMakeLists.txt#L503-L519). This change allows specifying the version of the library for tests to link with. This is useful for remote testing, for example, with `SSHExecutor`, where we _have_ to link with libc++abi statically. Two new CMake options are introduced here: `LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXXABI` and `LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXX`. They can be set to `OFF` to tell the test utility to link tests with the static libraries. It shouldn't break anything, because the default values of these options are set such that the test utility will behave the same way. Reviewers: EricWF, mclow.lists, phosek, mehdi_amini, ldionne, jroelofs, bcraig Subscribers: mgorny, christof, ldionne, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D71894
* [libc++abi] Fix non-constant initialization of default terminateEric Fiselier2019-12-111-6/+8
| | | | handlers.
* [libcxx{,abi}] Don't link libpthread and libdl on FuchsiaPetr Hosek2019-12-061-5/+13
| | | | | | | | | These are a part of the libc so linking these explicitly isn't necessary and embedding these as deplibs causes link time error. This issues was introduced in a9b5fff which changed how we emit deplibs. Differential Revision: https://reviews.llvm.org/D71135
* [libcxx{,abi}] Emit deplibs only when detected by CMakeMichał Górny2019-12-025-5/+7
| | | | | | | | This is a followup to 35bc5276ca3. It fixes the dependent libs usage in libcxx and libcxxabi to link pthread and rt libraries only if CMake detects them, rather than based on explicit platform blacklist. Differential Revision: https://reviews.llvm.org/D70888
* [libcxxabi] Prevent cmake from removing our explicit system C++ include pathsSam Clegg2019-11-121-0/+7
| | | | | | | | | | | | We build with `-nostdinc++` and add our own header path via `LIBCXXABI_LIBCXX_INCLUDES`. However cmake tried to be clever and if `LIBCXXABI_LIBCXX_INCLUDES` happens to match the compilers system path it will remove the `-I` flag meaning we can't access any C++ headers. Ideally cmake would be able see that we are using `-nostdinc++` and disable this behaviour. Differential Revision: https://reviews.llvm.org/D69973
* [demangle] NFC: get rid of NodeOrStringErik Pilkington2019-11-042-63/+19
| | | | | | This class was a bit overengineered, and was triggering some PVS warnings. Instead, put strings into a NameType and let clients unconditionally treat it as a Node.
* [www] Change URLs to HTTPS.Stephan T. Lavavej2019-10-242-42/+42
| | | | | | | | | | | | | | | | | | | | | | This changes most URLs in llvm's html files to HTTPS. Most changes were search-and-replace with manual verification; some changes were manual. For a few URLs, the websites were performing redirects or had changed their anchors; I fixed those up manually. This consistently uses the official https://wg21.link redirector. This also strips trailing whitespace and fixes a couple of typos. Fixes D69363. There are a very small number of dead links for which I don't know any replacements (they are equally dead as HTTP or HTTPS): https://llvm.org/cmds/llvm2cpp.html https://llvm.org/devmtg/2010-11/videos/Grosser_Polly-desktop.mp4 https://llvm.org/devmtg/2010-11/videos/Grosser_Polly-mobile.mp4 https://llvm.org/devmtg/2011-11/videos/Grosser_PollyOptimizations-desktop.mov https://llvm.org/devmtg/2011-11/videos/Grosser_PollyOptimizations-mobile.mp4 https://llvm.org/perf/db_default/v4/nts/22463 https://polly.llvm.org/documentation/memaccess.html
* P1152R4: Fix deprecation warnings in libc++ testsuite and in uses of ↵Richard Smith2019-10-191-8/+8
| | | | | | | | | | | | | | | | is_invocable that would internally conjure up a deprecated function type. Summary: The implementation of P1152R4 in Clang has resulted in some deprecation warnings appearing in the libc++ and libc++abi test suite. Fix or suppress these warnings. Reviewers: mclow.lists, EricWF Subscribers: christof, ldionne, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D68879 llvm-svn: 375307
* [libc++abi] Introduce a LIBCXXABI_LIBRARY_VERSION optionLouis Dionne2019-10-072-1/+6
| | | | | | | | That option controls the 'VERSION' attribute of the libc++abi shared library, which in turn controls the name of the actual dylib being produced. llvm-svn: 373949
* [libc++abi] Do not define -Dcxxabi_shared_EXPORTS when building libc++abiLouis Dionne2019-10-071-1/+3
| | | | | | | CMake sets adds that definition automatically, but we don't need or use it. llvm-svn: 373940
* [libc++abi] Remove redundant link flags on Apple platformsLouis Dionne2019-10-071-18/+1
| | | | | | | | | | | | | | | These flags are already set when we create the cxxabi_shared target using the SOVERSION and VERSION target properties, and the install_name was already being overriden to '@rpath/libc++abi.1.dylib' by CMake because no 'CMAKE_INSTALL_NAME_DIR' option was specified. So this is effectively a removal of dead code with no intended functionality change. The only think we're losing here is that we used to link against libSystem.B.dylib instead of libSystem.dylib when building libc++abi for macOS 10.6 -- however, I strongly suspect nobody's building libc++abi from source for that target anymore. llvm-svn: 373934
* [libc++abi] Link against libSystem on Apple platformsLouis Dionne2019-10-042-3/+9
| | | | | | | | On Apple platforms, libSystem is an umbrella for all other system libraries, and libpthread (and friends) are actually just symlinks to libSystem. llvm-svn: 373770
* [libc++abi] Do not export some implementation-detail functionsLouis Dionne2019-10-032-8/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Those functions started being mistakenly exported from the libc++abi shared library after commit r344152 in 2018. Removing these symbols is technically an ABI break. However, they are not part of the C++ ABI, they haven't ever been re-exported from libc++, and they are not declared in any public header, so it's very unlikely that calls to these functions exist out there. Also, the functions have reserved names, so any impacted user would have to have tried really hard being broken by this removal. Note that avoiding this kind of problem is exactly why we're now controlling exported symbols explicitly with a textual list. Also note that applying the hidden visibility attribute is necessary because the list of exported symbols is only used on Apple platforms for the time being. Reviewers: phosek, mclow.lists, EricWF Subscribers: christof, jkorous, dexonsmith, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D68357 llvm-svn: 373602
* [NFC][libc++abi] Convert stray tabs to spacesLouis Dionne2019-10-022-10/+10
| | | | llvm-svn: 373524
* [libc++abi] Remove uses of C++ headers when possibleLouis Dionne2019-10-017-24/+21
| | | | | | | | | | This reduces the (circular) dependency of libc++abi on a C++ standard library. Outside of the demangler which uses fancier C++ features, the only C++ headers now required by libc++abi are pretty much <new> and <exception>, and that's because libc++abi defines some types that are declared in those headers. llvm-svn: 373381
* [NFC][libc++abi] Remove trailing whitespace from sourcesLouis Dionne2019-10-016-86/+86
| | | | llvm-svn: 373379
* [libc++] Update link to Itanium C++ ABI documentationLouis Dionne2019-10-011-1/+1
| | | | llvm-svn: 373372
* [libc++abi] Remove redundant #include of <string.h>Louis Dionne2019-10-011-20/+14
| | | | | | | <string.h> is always included, so we don't need the additional #include only in the _WIN32 case. llvm-svn: 373365
* [Testing] unbreak after r372963David Zarzycki2019-09-261-0/+1
| | | | llvm-svn: 372967
* [libcxxabi] Fix arm build failer with libgccAdhemerval Zanella2019-09-252-2/+12
| | | | | | | | | | | | | | | | | | | | Both arm32 armv7/armv8 bots which do not use compiler-rt are failing to a linking issue: [100%] Built target cxxabi_static CMakeFiles/cxxabi_shared.dir/cxa_demangle.cpp.o: In function `(anonymous namespace)::itanium_demangle::OutputStream::writeUnsigned(unsigned long long, bool)': /home/buildslave/buildslave/libcxx-libcxxabi-libunwind-armv7-linux-noexceptions/llvm/projects/libcxxabi/src/demangle/Utility.h:55: undefined reference to `__aeabi_uldivmod' /home/buildslave/buildslave/libcxx-libcxxabi-libunwind-armv7-linux-noexceptions/llvm/projects/libcxxabi/src/demangle/Utility.h:56: undefined reference to `__aeabi_uldivmod' clang-6.0: error: linker command failed with exit code 1 (use -v to see invocation) It seems after r371273 OutputStream is used more extensively and is pulling OutputStream::writeUnsigned (which thus requires unsigned integer module). The straightfoward fix is to explicit link against libgcc if compiler-rt is not used. llvm-svn: 372921
* Update XFAIL list for new GCC versionsEric Fiselier2019-09-131-1/+1
| | | | llvm-svn: 371881
* Fix incorrect demangling of call operator of lambda with explicitRichard Smith2019-09-092-5/+6
| | | | | | template parameters due to registering template parameters twice. llvm-svn: 371469
* Simplify demangler rule for lambda-expressions to match discussion onRichard Smith2019-09-092-45/+19
| | | | | | cxx-abi list. llvm-svn: 371462
* Synchronize LLVM's copy of libc++abi's demangler with the libc++abiRichard Smith2019-09-071-1/+2
| | | | | | | | | version after r371273. Also fix a minor issue in r371273 that only surfaced after template instantiation from LLVM's use of the demangler. llvm-svn: 371274
* Implement demangling support for C++20 lambda expression extensions.Richard Smith2019-09-063-31/+429
| | | | | | | | | | | | | | | | | | | | | | | | | This implements demangling support for the mangling extensions specified in https://github.com/itanium-cxx-abi/cxx-abi/pull/85, much of which is implemented in Clang r359967 and r371004. Specifically, this provides demangling for: * <template-param-decl> in <lambda-sig> * <template-param> with non-zero level * lambda-expression literals (not emitted by Clang yet) * nullptr literals * string literals (The final two seem unrelated, but handling them was necessary in order to disambiguate between lambda expressions and the other forms of literal for which we have a type but no value.) When demangling a <lambda-sig>, we form template parameters with no corresponding argument, so we cannot substitute in the argument in the demangling. Instead we invent synthetic names for the template parameters (eg, '[]<typename $T>($T *x)'). llvm-svn: 371273
* Provide a meaningful diagnostic when LLVM_PATH doesn't point to a directoryLouis Dionne2019-08-191-0/+3
| | | | llvm-svn: 369312
* [libcxxabi] __cxa_guard_require: test guard byte with != 0 instead of == 1Fangrui Song2019-08-161-1/+1
| | | | llvm-svn: 369109
* [libcxxabi] Define _LIBCXXABI_GUARD_ABI_ARM on WebAssemblySam Clegg2019-08-141-1/+2
| | | | | | | | | | This matches ItaniumCXXABI.cpp. Fixes PR42680 Differential Revision: https://reviews.llvm.org/D64961 llvm-svn: 368783
* small follow-up to r368604Nico Weber2019-08-121-3/+3
| | | | llvm-svn: 368605
* libcxxabi: Rename .hpp files to .hNico Weber2019-08-1216-20/+20
| | | | | | | | LLVM uses .h as its extension for header files. Differential Revision: https://reviews.llvm.org/D65981 llvm-svn: 368604
* Remove outdated comment about clang not populating src2dst_offsetBenjamin Kramer2019-08-121-1/+0
| | | | | | Clang has been setting this since r174293 (of 2013 vintage). llvm-svn: 368580
* [libc++abi] Fix tests when pstl is enabledLouis Dionne2019-08-082-0/+4
| | | | llvm-svn: 368286
* [libc++] Take 2: Integrate the PSTL into libc++Louis Dionne2019-08-051-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This commit allows specifying LIBCXX_ENABLE_PARALLEL_ALGORITHMS when configuring libc++ in CMake. When that option is enabled, libc++ will assume that the PSTL can be found somewhere on the CMake module path, and it will provide the C++17 parallel algorithms based on the PSTL (that is assumed to be available). The commit also adds support for running the PSTL tests as part of the libc++ test suite. The first attempt to commit this failed because it exposed a bug in the tests for modules. Now that this has been fixed, it should be safe to commit this. Reviewers: EricWF Subscribers: mgorny, christof, jkorous, dexonsmith, libcxx-commits, mclow.lists, EricWF Tags: #libc Differential Revision: https://reviews.llvm.org/D60480 llvm-svn: 367903
* [runtimes] Don't depend on libpthread on AndroidYi Kong2019-07-224-4/+4
| | | | | | | | | | r362048 added support for ELF dependent libraries, but broke Android build since Android does not have libpthread. Remove the dependency on the Android build. Differential Revision: https://reviews.llvm.org/D65098 llvm-svn: 366734
* Revert "[libc++] Integrate the PSTL into libc++"Louis Dionne2019-07-191-11/+0
| | | | | | | This reverts r366593, which caused unforeseen breakage on the build bots. I'm reverting until the problems have been figured out and fixed. llvm-svn: 366603
* [libc++] Integrate the PSTL into libc++Louis Dionne2019-07-191-0/+11
| | | | | | | | | | | | | | | | | | | | | | Summary: This commit allows specifying LIBCXX_ENABLE_PARALLEL_ALGORITHMS when configuring libc++ in CMake. When that option is enabled, libc++ will assume that the PSTL can be found somewhere on the CMake module path, and it will provide the C++17 parallel algorithms based on the PSTL (that is assumed to be available). The commit also adds support for running the PSTL tests as part of the libc++ test suite. Reviewers: rodgert, EricWF Subscribers: mgorny, christof, jkorous, dexonsmith, libcxx-commits, mclow.lists, EricWF Tags: #libc Differential Revision: https://reviews.llvm.org/D60480 llvm-svn: 366593
* [libcxxabi] Don't process exceptions in cxa_handlers when they're disabledPetr Hosek2019-07-123-1/+7
| | | | | | | | | | | When exceptions are disabled, avoid their processing altogether. This avoids pulling in the depenency on demangler significantly reducing binary size when statically linking against libc++abi built without exception support. Differential Revision: https://reviews.llvm.org/D64191 llvm-svn: 365944
* [demangle] Support for C++2a char8_tErik Pilkington2019-06-282-0/+7
| | | | llvm-svn: 364677
* [libcxxabi] Use an explicit list to export symbols from the dylibLouis Dionne2019-06-275-0/+416
| | | | | | | | | | | | Reviewers: EricWF Subscribers: mgorny, christof, jkorous, dexonsmith, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D63345 llvm-svn: 364586
* [demangle] Special case clang's creative mangling of __uuidof expressions.Erik Pilkington2019-06-182-0/+34
| | | | llvm-svn: 363752
* [libcxxabi] Remove the unused buildit scriptLouis Dionne2019-06-181-99/+0
| | | | | | | | | | | | | | Summary: I'm pretty sure it's not used anymore, at least it isn't used at Apple. Reviewers: EricWF, Bigcheese Subscribers: christof, jkorous, dexonsmith, jfb, mstorsjo, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D63297 llvm-svn: 363737
* [demangle] Vendor extended types shouldn't be considered substitution candidatesErik Pilkington2019-06-102-2/+9
| | | | llvm-svn: 362983
* [libcxx] Use libtool when merging archives on Apple platformsPetr Hosek2019-06-021-0/+5
| | | | | | | | | | ar doesn't produce the correct results when used for linking static archives on Apple platforms, so instead use libtool -static which is the official way to build static archives on those platforms. Differential Revision: https://reviews.llvm.org/D62770 llvm-svn: 362311
* [libcxx][libcxxabi] Remove the unused CMake checksPetr Hosek2019-05-301-32/+1
| | | | | | | | | | | These seemed to have been used in the past but were since removed by the add_compile_flags_if_supported functions that combine these these checks and adding the flag, but the original checks were never removed. Differential Revision: https://reviews.llvm.org/D62566 llvm-svn: 362058
* [runtimes] Use -Wunknown-pragmas for the pragma checkPetr Hosek2019-05-301-0/+4
| | | | | | | This is a follow up to r362055, we need -Wunknown-pragmas otherwise the check is going to succeed it the pragma isn't supported. llvm-svn: 362057
OpenPOWER on IntegriCloud