Commit Graph

17 Commits

Author SHA1 Message Date
ian
1dcbe2ad0d Fix EABI unwind function declarations to match the function definitions.
The mismatch was noticed by clang, when using it to compile the in-tree
gcc and libstdc++.
2014-07-22 20:32:24 +00:00
pfg
e0267eeca7 libstdc++: merge non-abi changes from Apple's developer tools
Take some changes from Apple's Developer Tools 4.0 [1]:

block.patch
emergency-buffer-reduction.patch
test_cleanup.patch

vector_copy_no_alloc.patch
	problem/6473222 copy-constructing a std::vector	from an
	empty std::vector calls malloc

2008-10-27  Howard Hinnant
stl_tree_system_header.patch
	Added #pragma GCC system_header to stl_tree.h.
copy_doc.patch
	Corrected documentation concerning copy in stl_algobase.h.
string_compare.patch
	Fixed basic_string.h, basic_string.tcc, incorrect 64bit to
	32bit narrowing.

Reference:

[1] http://opensource.apple.com/source/libstdcxx/libstdcxx-39/patches-4.2.1/

Obtained from:	Apple
MFC after:	1 month
2013-11-21 16:44:36 +00:00
dim
3a90caa91b Make libsupc++'s __cxa_call_terminate() prototype consistent with the
definition.

Submitted by:	dt71@gmx.com
MFC after:	3 days
2013-06-29 20:17:14 +00:00
andrew
897e2fb505 Allow the unwind functions int libgcc_s to interact correctly with libthr.
_Unwind_ForcedUnwind in libgcc_s takes as one of it's parameters a stop
function to tell it when to stop unwinding. One of the stop function's
parameters is a _Unwind_Exception_Class. On most architectures this is an
int64_t, however on ARM EABI the gcc developers have made this a char array
with 8 items. While both of these take the same space they are passed into
the stop function differently, an int64_t is passed in in registers r2 and
r3, while the char[8] is passed in as a pointer to the first item in
register r2.

Because libthr expects the value to be an int64_t we would get incorrect
results when it passes a function that take an int64_t but libgcc passes in
a pointer to a char array including crashing.

The fix is to update libgcc_s to make it pass an int64_t to the stop
function and to libstdc++ as it expects _Unwind_Exception_Class to be an
array.
2013-02-04 09:28:36 +00:00
dim
99da76dc3d Fix a number of other clang warnings in libstdc++, which could appear
when building other C++ software with it.  Also fix one actual bug in
libsupc++, which was exposed by such a warning.  This latter fix is the
only functional change.

MFC after:	1 week
2012-10-23 18:45:32 +00:00
theraven
45fee48532 Undo the earlier revert of the ABI change in libsupc++. On further discussion,
posting an errata notice with 9.1 is the less painful solution.

Approved by:	dim (mentor)
2012-03-30 12:48:36 +00:00
theraven
87fac25d6d Revert ABI breakage in libsupc++.
Unfortunately, the ABI was broken upstream for the 4.2 release, which we
imported.  We then shipped the broken version for several years and certain
ports (e.g. libobjc2) depend on it, so we're stuck with it for now...

We should revisit this for 10.0, since we're allowed to break the ABI then, but
until then we should keep the ABI we shipped with 8.x and 9.x.

Reviewed by:	kan
Approved by:	dim (mentor)
MFC after:	1 week
2012-03-23 20:10:56 +00:00
pfg
5e6e71cda9 Update libstdc++ with small updates from the latest rev. (135556)
from the gcc 4.2 branch.
The libraries in the gcc-4_2-branch remained under the LGPLv2.

The changes can be reproduced with the following command:

svn diff svn://gcc.gnu.org/svn/gcc/branches/gcc-4_2-branch/libstdc++-v3
 -r 127959:135556

Reviewed by:	mm
Approved by:	jhb (mentor)
MFC after:	2 weeks
2011-12-21 16:36:07 +00:00
kan
6012218763 GCC 4.2.1 release C++ standard library and runtime support code. 2007-08-14 02:49:11 +00:00
kan
7865836f4b GCC 4.2.0 release C++ standard library and runtime support code. 2007-05-19 01:25:07 +00:00
kan
3b6c93380e Gcc 3.4.4 C++ support bits. 2005-06-03 03:29:38 +00:00
kan
96bad46eee Gcc 3.4.2 20040728 C++ support bits. 2004-07-28 03:12:05 +00:00
kan
a342444c67 Gcc 3.3.3 20031106 C++ support bits. 2003-11-07 02:44:01 +00:00
kan
c7bbbdd036 Gcc 3.3.1-pre 2003-07-11 C++ support bits. 2003-07-11 03:42:04 +00:00
kan
78fa66448c Gcc 3.2.2-release C++ support bits. 2003-02-10 05:47:54 +00:00
kan
c31428d211 Gcc 3.2.1-prerelease libf2c bits from the FSF anoncvs repo gcc-3_2-branch on 1-Sep-2002 00:00:01 EDT. 2002-09-01 20:39:13 +00:00
obrien
0895e1acb6 Gcc 3.1.0 pre-release's C++ support bits from the FSF anoncvs repo
on 9-May-2002 15:57:15 EDT.
2002-05-28 16:16:03 +00:00