summaryrefslogtreecommitdiffstats
path: root/contrib/libcxxrt
Commit message (Collapse)AuthorAgeFilesLines
* MFC r315947:dim2017-04-011-25/+27
| | | | | | | | Import libcxxrt master 8a853717e61d5d55cbdf74d9d0a7545da5d5ff92. Interesting fixes which were not already merged: 0c7c611 Merge C++ demangler bug fixes from ELF Tool Chain (#40) 2b208d9 __cxa_demangle_gnu3: demangle 'z' as '...', not 'ellipsis' (#41)
* MFC r315745:dim2017-03-251-9/+1
| | | | | | | | | | | | | | | | | | | Cherry-pick libcxxrt commit 8a853717e61d5d55cbdf74d9d0a7545da5d5ff92: Author: David Chisnall <theraven@FreeBSD.org> Date: Wed Mar 22 12:27:08 2017 +0000 Simplify some code. realloc() with a null pointer is equivalent to malloc, so we don't need to handle the two cases independently. Fixes #46 This should help with lang/beignet and other programs, which expect __cxa_demangle(name, NULL, NULL, &status) to return zero in status. PR: 213732
* MFC r305396:dim2016-09-071-2/+4
| | | | | Add _US_ACTION_MASK to libcxxrt's arm-specific unwind header. This value is used in newer versions of compiler-rt.
* iMFC r303400: libcxxrt: fix demangling of wchar_temaste2016-08-011-1/+1
| | | | | | | | | 'wchar_t' is 7 characters long, not 6. r303297 (MFC'd in r303398) fixed this in libelftc, but not the second copy of this file that we have in libcxxrt. PR: 208661 Approved by: re (gjb)
* MFC r303157: libcxxrt: add padding in __cxa_allocate_* to fix alignmentemaste2016-07-251-6/+24
| | | | | | | | | | | | | | The addition of the referenceCount to __cxa_allocate_exception put the unwindHeader at offset 0x58 in __cxa_exception, but it requires 16-byte alignment. In order to avoid changing the current __cxa_exception ABI (and thus breaking its consumers), add explicit padding in the allocation routines (and account for it when freeing). This is intended as a lower-risk change for FreeBSD 11. A "more correct" fix should be prepared for upstream and -CURRENT. Approved by: re (gjb) Sponsored by: The FreeBSD Foundation
* Import libcxxrt master 516a65c109eb0a01e5e95fbef455eb3215135cef.dim2016-05-052-20/+26
| | | | | | | Interesting fixes: 3adaa2e Fix _Unwind_Exception cleanup functions 286776c Check exception cleanup function ptr before calling edda626 Correct exception specifications on new and delete operators
* Compile libcxxrt as C++11, since it is only really used in combinationdim2016-03-271-1/+1
| | | | | | | | | | | | with libc++, which is also C++11. Also change one _Static_assert (which is really C11) back into static_assert, like upstream. This should help when compiling libcxxrt with newer versions of gcc, which refuse to recognize any form of static assertions, if not compiling for C++11 or higher. While here, add -nostdinc++ to CFLAGS, to prevent picking up any C++ headers outside the source tree.
* Add std::uncaught_exceptions() to libcxxrt (C++17, see N4152 and N4259).dim2015-10-051-0/+9
| | | | This has also been submitted upstream.
* MFV c3ccd112: Correct off-by-ones in free_exception of emergency buffercem2015-09-251-2/+2
| | | | | | | | | | | Note, this has been broken since import in r227825. PR: https://github.com/pathscale/libcxxrt/issues/29 Reviewed by: emaste (earlier version), kan (informally) Obtained from: Anton Rang Relnotes: yes Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D3733
* Update libcxxrt upgrade instructionsemaste2015-06-181-1/+1
| | | | The typeinfo file no longer exists upstream.
* Import libcxxrt master e64e93fe5bba67a6d52cbe5a97f8770c054bfa65.emaste2015-06-181-64/+438
| | | | | | | | This includes a number of demangler fixes obtained from upstream ELF Tool Chain. PR: 200913 Sponsored by: The FreeBSD Foundation
* Since newer versions of compiler-rt require unwind.h, and we want to usedim2015-02-261-0/+2
| | | | | | | | the copy in libcxxrt for it, fix the arm-specific header to define the _Unwind_Action type. Submitted by: andrew MFC after: 3 days
* Make libcxxrt's parsing of DWARF exception handling tables work ondim2015-02-261-10/+8
| | | | | | | | | | | architectures with strict alignment, by using memcpy() instead of directly reading fields. Reported by: Daisuke Aoyama <aoyama@peach.ne.jp> Reviewed by: imp, bapt Tested by: bapt MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D1967
* Import libcxxrt master 1cb607e89f6135bbc10f3d3b6fba1f983e258dcc.dim2015-01-311-2/+2
| | | | | | | | Interesting fixes: 1cb607e Correct gcc version check for __cxa_begin_catch() declaration with or without throw() MFC after: 3 days
* Revert r256642, not only to reduce diffs against upstream libcxxrt, butdim2015-01-311-9/+1
| | | | | | | | | | | also because it is the wrong approach: comparing typeinfo names deeply causes trouble if two loaded DSOs use independent types of the same name. In addition, this particular change was never merged to FreeBSD 10.x and 9.x, so let's get rid of it before it ends up in an 11.x release. Discussed with: theraven, joerg@netbsd
* Partially revert r273382, to reduce diffs against upstream. This was adim2015-01-301-5/+0
| | | | | | | temporary fix to solve a conflict with an older version of libc++, and it is no longer relevant. MFC after: 3 days
* Import libcxxrt master 00bc29eb6513624824a6d7db2ebc768a4216a604.dim2014-12-3011-136/+192
| | | | | | | | | | Interesting fixes: 76584a0 Reorganize code to use only 32bit atomic ops for 32bit platforms 30d2ae5 Implement __cxa_throw_bad_array_new_length Reviewed by: bapt MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D1390
* Fix build by marking the new functions as weakbapt2014-10-211-0/+10
| | | | This is a temporary fix
* Add support for __cxa_throw_bad_array_new_length in libcxxrtbapt2014-10-213-0/+22
| | | | | | | | | It is required for use with newer g++49 Differential Revision: https://reviews.freebsd.org/D982 Reviewed by: theraven Approved by: theraven MFC after: 3 weeks
* Pull in upstream libcxxrt commit 8006101, which makes its cxxabi.h filedim2014-02-071-0/+1
| | | | | | | compilable just by itself. PR: kern/184019 MFC after: 3 days
* Since C++ typeinfo objects are currently not guaranteed to be merged atdim2013-10-161-1/+9
| | | | | | | | | | | runtime by the dynamic linker, check for their equality in libcxxrt by not only comparing the typeinfo's name pointers, but also comparing the full names, if necessary. (This is similar to what GNU libstdc++ does in its default configuration.) The 'deep' check can be turned off again by defining LIBCXXRT_MERGED_TYPEINFO, and recompiling libcxxrt. Reviewed by: theraven MFC after: 3 days
* Import a new libcxxrt. This fixes some potential crashing in the demangler.theraven2013-09-233-17/+74
| | | | | Approved by: re (gjb) MFC after: 1 week
* Don't use _Unwind_Backtrace() on ARM as it's currently missing from our ↵theraven2013-08-311-0/+2
| | | | libgcc_s. andrew@ has patches to add it, so this can be reverted and sync'd with upstream later.
* Remove __attribute__((__aligned__)) that generates incorrect alignment on ↵theraven2013-08-071-1/+1
| | | | compilers that know about SSE. Code left over from old header that thought that 64 bits was the maximum alignment that anything would ever need...
* Import new libcxxrt / libc++. This brings some bug fixes, including a ↵theraven2013-07-107-121/+138
| | | | potential race condition for static initialisers.
* Merge libcxxrt c812a07cd2f95c1403baf0bbe0366e7618d1d6d3:dim2013-04-272-4/+4
| | | | | | | | | | | | | * Don't call the _fast version of the TLS accessor in terminate() or unexpected(). 1) TLS may not have been set up yet. 2) When we're in one of these functions, Really Bad Stuff has happened and potentially saving a few cycles really isn't important. * Merge in fixes from FreeBSD trunk to make atomics work with recent clang. MFC after: 1 week
* Fix a copy-and-paste error in libcxxrt.theraven2013-02-071-1/+1
|
* Import new fix from libcxxrt. This fixes the case where you attempt to rethrowtheraven2013-01-211-1/+1
| | | | | | | | an exception when you haven't caught one. This is largely a cosmetic fix, as (unless you have a very unusual terminate handler installed) it will print a nice error and then abort, rather than just aborting. MFC after: 7 days
* Fix libcxxrt / libc++ build with the clang in head.theraven2013-01-121-2/+2
| | | | Pointy hat to: theraven
* Merge new version of libcxxrt. This brings in three fixes:theraven2013-01-114-34/+132
| | | | | | | | | | - Don't treat pointers to members as pointers in catch blocks (they're usually fat pointers). - Correctly catch foreign exceptions in catchalls. - Ensure that a happens-before relationship is established when setting terminate handlers in one thread and calling them in another.
* Import new version of libcxxrt. Now works correctly with libobjc2 to implementtheraven2012-03-204-105/+182
| | | | | | the unified exception model for Objective-C++. Approved by: dim (mentor)
* Import new versions of libcxxrt and libc++.theraven2012-03-1414-42/+381
| | | | | | Please tests any C++ code you care about with -stdlib=libc++! Approved by: dim (mentor)
* Update libcxxrt to remove the pthread dependency.theraven2011-11-263-9/+89
| | | | | | Also add the license from upstream to contrib. Approved by: dim (mentor)
* Import libc++ / libcxxrt into base. Not build by default yet (usetheraven2011-11-2519-0/+6830
MK_LIBCPLUSPLUS=yes to enable). This is a work-in-progress. It works for me, but is not guaranteed to work for anyone else and may eat your dog. To build C++ using libc++, add -stdlib=libc++ to your CXX and LD flags. Bug reports welcome, bug fixes even more welcome... Approved by: dim (mentor)
OpenPOWER on IntegriCloud