summaryrefslogtreecommitdiffstats
path: root/libcxxabi
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix some formatting I messed up in r225187.Dan Albert2015-01-051-1/+1
| | | | llvm-svn: 225194
* Make the Unwinder -Werror clean.Dan Albert2015-01-055-95/+110
| | | | | | | Mostly just format string fixes. Tested clean on arm, x86, and x86_64 Linux. llvm-svn: 225187
* Typo.Joerg Sonnenberger2015-01-041-1/+1
| | | | llvm-svn: 225136
* [cmake/multilib] Teach libc++abi's CMake build to support multilibChandler Carruth2014-12-295-24/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | libdir suffixes like 'lib64' or 'lib32'. This support is currently very rhudimentary. We define a variable LIBCXXABI_LIBDIR_SUFFIX. In a standalone build of libc++abi this can be directly set as a cached variable to control the multilib suffix used. When building libc++abi within a larger LLVM build, it is hard wired to whatever LLVM libdir suffix has been selected. If this doesn't work for someone, just let me know. I'm happy to change it. Unfortunately, libc++abi's lit setup made this somewhat problematic to change. It was setting variables up in a way that caused the resulting build to not work with lit at all. To fix that, I've moved some variables around in the CMake build to more closely match where and how they are defined in the libc++ CMake build. This includes specifically defining a library root variable in the CMake build where the libdir suffix can be applied, and then using that rather than re-computing it from the object directory in the lit config. This is essentially new functionality for libc++abi so I don't expect it to have any impact for folks until they start setting these variables. However, I know libc++abi is built in a diverse set of environments so just let me know if this causes you any problems. llvm-svn: 224927
* Silence warnings in libunwind.Logan Chien2014-12-212-6/+9
| | | | | | | | | | | | | | * Remove the embedded directive undefined behavior by moving the the #ifdef out of the macro arguments. [-Wembedded-directive] * Remove the local variable shadowing warning by renaming frameInfo in UnwindLevel1-gcc-ext.c. [-Wshadow] * Explicitly cast the function pointer to void pointer to avoid the comparison between function pointer and void pointer. [-Wpedantic] llvm-svn: 224690
* [libunwind] improve x86_64 comments in compact_unwind_encoding.hNick Kledzik2014-12-201-3/+7
| | | | llvm-svn: 224657
* [libunwind] fix comment in compact_unwind_encoding.hNick Kledzik2014-12-201-1/+1
| | | | llvm-svn: 224656
* [libcxxabi] Add __cxa_thread_atexit for TLS support on Linux.Dan Albert2014-12-186-0/+79
| | | | | | | | | | | | | | | | | | | | | Summary: Fixes PR21738. The implementation for this is handled by __cxa_thread_atexit_impl, which is supplied by libc. More information: https://sourceware.org/glibc/wiki/Destructor%20support%20for%20thread_local%20variables Reviewers: mclow.lists, EricWF, jroelofs Reviewed By: jroelofs Subscribers: majnemer, cfe-commits Differential Revision: http://reviews.llvm.org/D6708 llvm-svn: 224477
* Use the newer python syntax for exceptionsJustin Bogner2014-12-131-1/+1
| | | | | | | We've dropped support for python 2.5, so now we can use the forward compatible "except ... as" syntax. llvm-svn: 224182
* Fix comment on end of #endif to match #ifEric Fiselier2014-11-251-1/+1
| | | | llvm-svn: 222719
* Use lit.util.executeCommand instead of our own versionEric Fiselier2014-11-251-20/+2
| | | | llvm-svn: 222718
* [libcxxabi] Refactor building and testing libc++abi without threadsEric Fiselier2014-11-247-3/+33
| | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch adds CMake support for building and testing libc++abi without threads. 1. Add `LIBCXXABI_ENABLE_THREADS` option to CMake. 2. Propagate `LIBCXXABI_ENABLE_THREADS` to lit via lit.site.cfg.in 3. Configure tests for `LIBCXXABI_ENABLE_THREADS=OFF Currently the test suite does not work when libc++abi is built without threads because that information does not propagate to the test suite. Reviewers: danalbert, mclow.lists, jroelofs Reviewed By: jroelofs Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D6393 llvm-svn: 222702
* [libcxxabi] Refactor test timing logic and disable by default.Eric Fiselier2014-11-247-43/+69
| | | | | | | | | | | | | | | | | | Summary: When using LIT the timing output is entirely unused but introduces a dependency on `<chrono>`. When libc++ is built without a montonic clock this causes some of the tests to fail. This patch factors out all of the timing logic into `support/timer.hpp` and disables it by default. To enable the timing you must define `LIBCXXABI_TIME_TESTS`. Reviewers: mclow.lists, danalbert, jroelofs Reviewed By: jroelofs Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D6391 llvm-svn: 222701
* [libcxxabi] Delay adjustment of pointer to prevent referencing invalid memory.Eric Fiselier2014-11-241-7/+11
| | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch delays the dereference adjustment until we are sure the thrown type is a pointer type. It is possible the thrown type is not a pointer and is smaller than `sizeof(void*)`. If the thrown type is is smaller than `sizeof(void*)` the deference adjustment will result in a heap buffer overflow. I audited all the call sites of `can_catch(...)` and there are no places where `adjustedPtr` is used if `can_catch(...)` returns false. For this reason the patch should not introduce any functionality change. This patch fixes the following tests when using ASAN: * unwind_01.cpp * unwind_02.cpp * unwind_04.cpp Reviewers: danalbert, jroelofs, mclow.lists Reviewed By: mclow.lists Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D6353 llvm-svn: 222674
* Ensure llvm-sanitizer is found by the tests when using sanitizers.Eric Fiselier2014-11-211-6/+22
| | | | llvm-svn: 222496
* [libcxxabi] Cleanup memory in tests to placate ASAN.Eric Fiselier2014-11-213-12/+15
| | | | | | | | | | | | | | Summary: ASAN fires on these tests because they don't clean up their memory. Reviewers: danalbert, jroelofs, mclow.lists Reviewed By: jroelofs Subscribers: dblaikie, cfe-commits Differential Revision: http://reviews.llvm.org/D6281 llvm-svn: 222493
* Remove accidentally commited line in commit. SorryEric Fiselier2014-11-191-2/+0
| | | | llvm-svn: 222314
* Add support for LLVM_USE_SANITIZER=Thread to test suiteEric Fiselier2014-11-181-0/+3
| | | | llvm-svn: 222260
* [libcxxabi] Refactor CMakeLists.txt's handling of compile and link flags to ↵Eric Fiselier2014-11-183-55/+60
| | | | | | | | | | | | | | | | | | suppress warnings. Summary: This patch mirrors the recent change to libc++ found here http://reviews.llvm.org/D6277. This fixes PR20395 (http://llvm.org/bugs/show_bug.cgi?id=20395). Reviewers: jroelofs, mclow.lists, danalbert Reviewed By: danalbert Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D6286 llvm-svn: 222252
* Add -g -fno-omit-frame-pointer when compiling tests with sanitizersEric Fiselier2014-11-141-0/+1
| | | | llvm-svn: 222053
* Make sure only NEON enabled devices save/restore D16+ registersRenato Golin2014-11-072-2/+2
| | | | llvm-svn: 221532
* Move ARM failure from FIXME to XFAILRenato Golin2014-11-071-5/+1
| | | | llvm-svn: 221515
* Add support for UNSUPPORTED tag to litEric Fiselier2014-11-061-1/+12
| | | | llvm-svn: 221460
* Disable backtrace libcxxabi test on ARMRenato Golin2014-11-051-0/+5
| | | | | | | | _Unwind_Backtrace is not clearly defined in EHABI and needs more testing. A bug was created with some initial investigation done http://llvm.org/PR21444. This test fails with both libunwind and libgcc_s. llvm-svn: 221348
* Fix unicode chars into ascii in comment lines.NAKAMURA Takumi2014-10-271-6/+6
| | | | llvm-svn: 220668
* Change uses of `sys.platform == 'linux2' to `sys.platform.startswith('linux')Eric Fiselier2014-10-231-3/+3
| | | | | | | | Although the current method is valid up till python 3.3 (which is not supported) this seems to be a clearer way of checking for linux and moves the tests towards python 3 compatibility. llvm-svn: 220535
* Only link the tests against -ldl on linuxEric Fiselier2014-10-231-1/+1
| | | | llvm-svn: 220509
* [libcxxabi] Add support for running libc++abi tests with sanitizersEric Fiselier2014-10-232-0/+26
| | | | | | | | | | | | | | Summary: Add support for LLVM_USE_SANITIZER to the libc++abi tests. Currently, if libc++abi is configured with LLVM_USE_SANITIZER then none of the tests will pass. Reviewers: jroelofs, mclow.lists, danalbert Reviewed By: danalbert Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D5926 llvm-svn: 220464
* Add an .arcconfig for libc++abi.Dan Albert2014-10-171-0/+4
| | | | llvm-svn: 220050
* [libcxxabi] Document the standalone build's requirements on llvm-config and ↵Eric Fiselier2014-10-172-1/+13
| | | | | | | | | | | llvm sources. The current documentation does not explain that the standalone build requires the LLVM sources. This patch updates the documentation to reflect this requirement and explains how to manually specify the location of the required files. llvm-svn: 220049
* Correctly export _Unwind_[GS]et(GR|IP) for EHABI.Dan Albert2014-10-134-27/+25
| | | | | | | | | | | | | | | | | | These need to have normal linkage instead of being static inline as many libraries expect to be able to declare these and have the linker find them rather than needing to include the header. http://mentorembedded.github.io/cxx-abi/abi-eh.html Also clean up some warnings while I'm here. Reviewers: jroelofs, kledzik Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D5754 llvm-svn: 219629
* Use __atomic_exchange_n instead of Clang's __sync_swapReid Kleckner2014-10-032-8/+10
| | | | | | | | | | | Also remove an extra extern "C" from a global variable redeclaration. This allows building libcxxabi with GCC on my system. Reviewers: majnemer Differential Revision: http://reviews.llvm.org/D5604 llvm-svn: 219012
* Support Cortex-m0Jonathan Roelofs2014-10-023-21/+70
| | | | | | | | | As the title says... also, fix all the ARM asm return sequences so that they work on processors without the BX instruction. http://reviews.llvm.org/D5314 llvm-svn: 218869
* Adding ABI support for __cxa_throw_bad_array_new_length.Aaron Ballman2014-09-114-0/+48
| | | | llvm-svn: 217604
* ARM Unwind syntaxRenato Golin2014-09-112-6/+30
| | | | | | | | | | | This patch fixes the bad argument that GAS accepted but the IAS didn't, ie. {#0x20}, moving it to {0x20} which both accept. It also makes the ARMv7+ save/restore correct by using VFP instructions rather than old co-processor ones. Fixes PR20529. llvm-svn: 217585
* Implement post-review comments for r216730Jonathan Roelofs2014-09-091-2/+16
| | | | | | Feedback was 'this could use better comments'. llvm-svn: 217459
* Remove an unused typedef from __class_type_info::search_below_dstAlexander Potapenko2014-09-081-1/+0
| | | | | | to fix the -Wunused-local-typedef warning. llvm-svn: 217367
* Use correct __ARM_ARCH macroRenato Golin2014-09-072-2/+2
| | | | llvm-svn: 217341
* s/LIBCXXABI_SINGLE_THREADED/LIBCXXABI_HAS_NO_THREADS/ for consistency with ↵Jonathan Roelofs2014-09-056-18/+16
| | | | | | | | | libcxx Also remove the audotedection part so that if you're crazy enough to want a single-threaded abi library, you'll say so explicitly in the build. llvm-svn: 217262
* Allow LIBCXXABI_SINGLE_THREADED to be defined by build scriptsJonathan Roelofs2014-09-021-1/+2
| | | | llvm-svn: 216952
* Add missing include to a test case.Dan Albert2014-08-291-0/+1
| | | | | | | Some platforms get size_t defined transitively by another include, but Android does not. llvm-svn: 216738
* Make _Unwind_Backtrace() work on ARM.Dan Albert2014-08-296-31/+152
| | | | | | | | | | | | | | | | | | | | | | Summary: Since the personality functions do the actual unwinding on ARM, and will also stop unwinding when they encounter a handler, we invoke _Unwind_VRS_Interpret() directly form _Unwind_Backtrace(). To simplify, the logic for decoding an EHT is moved out of unwindOneFrame() and into its own function, decode_eht_entry(). Unlike unwindOneFrame(), which could only handle ARM's compact personality function entries (section 6.3) decode_eht_entry() can handle the generic entries (section 6.2). Reviewers: jroelofs Reviewed By: jroelofs Subscribers: piman, aemerson, cfe-commits Differential Revision: http://reviews.llvm.org/D5112 llvm-svn: 216730
* Remove strict dependency on llvm-config.Dan Albert2014-08-261-22/+20
| | | | | | | | | | | | | | | | | Depending on llvm-config allows for a few nice things (auto-detecting LLVM source tree, version numbers, etc), but it's makes bootstrapping a pain. Keep the llvm-config features around, but also fall back to being able to configure based on -DLLVM_PATH=path/to/llvm. Reviewers: jroelofs, loladiro Reviewed By: loladiro Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D5016 llvm-svn: 216482
* Add baremetal ARM support to libcxxabi/libunwindJonathan Roelofs2014-08-213-2/+40
| | | | | | http://reviews.llvm.org/D4993 llvm-svn: 216202
* Improve logging of aborts for Android.Dan Albert2014-08-191-2/+21
| | | | | | | | In Android, stderr only goes to the console, and as such will only ever be seen by adb shell users. Since very few developers will ever actually see that, also send the abort message to logcat and the tombstone. llvm-svn: 215983
* libcxxabi must link to dl if using bundled unwindJonathan Roelofs2014-08-182-0/+2
| | | | | | | Patch by Ismail Donmez http://reviews.llvm.org/D4953 llvm-svn: 215950
* Fix the CMake build on Mac when setting MACOSX_DEPLOYMENT_TARGET=10.6Hans Wennborg2014-08-121-1/+1
| | | | | | | The build file was trying to use LIBCXXABI_VERSION, which isn't set anywhere. llvm-svn: 215465
* Update CREDITS.txt with the list of folks who worked on ARM EHABI supportJonathan Roelofs2014-08-051-0/+25
| | | | llvm-svn: 214877
* Fix a copy-pasta in r214573Jonathan Roelofs2014-08-051-1/+0
| | | | llvm-svn: 214873
* [unwinder] Tell the assembler that functions are functions so that the ↵Jonathan Roelofs2014-08-011-0/+19
| | | | | | | | | | linker knows how to link them. This fixes an interworking problem when the unwinder/libcxxabi is built for Thumb. When unw_getcontext is not marked as a function, 'bl' is used for the branch instead of 'bx'. llvm-svn: 214573
OpenPOWER on IntegriCloud