Commit Graph

17 Commits

Author SHA1 Message Date
Ian Lepore
1f6f6cd7e2 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
Pedro F. Giffuni
096464d39c 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
Dimitry Andric
914922decc 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 Turner
93c7e89712 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
Dimitry Andric
387c85f1ca 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
David Chisnall
52076325c4 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
David Chisnall
a45e9cc023 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
Pedro F. Giffuni
05a636f0bd 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
Alexander Kabaev
0995a43fe6 GCC 4.2.1 release C++ standard library and runtime support code. 2007-08-14 02:49:11 +00:00
Alexander Kabaev
f8a1b7d9d8 GCC 4.2.0 release C++ standard library and runtime support code. 2007-05-19 01:25:07 +00:00
Alexander Kabaev
f260e61b15 Gcc 3.4.4 C++ support bits. 2005-06-03 03:29:38 +00:00
Alexander Kabaev
ffeaf689a2 Gcc 3.4.2 20040728 C++ support bits. 2004-07-28 03:12:05 +00:00
Alexander Kabaev
bbe4dd5dec Gcc 3.3.3 20031106 C++ support bits. 2003-11-07 02:44:01 +00:00
Alexander Kabaev
1b86b14eac Gcc 3.3.1-pre 2003-07-11 C++ support bits. 2003-07-11 03:42:04 +00:00
Alexander Kabaev
61e268fb5f Gcc 3.2.2-release C++ support bits. 2003-02-10 05:47:54 +00:00
Alexander Kabaev
ca6500fcd0 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
David E. O'Brien
00db7afddd 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