Commit Graph

56 Commits

Author SHA1 Message Date
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
andrew
165b4913d0 Fix the __glibcxx_min and __glibcxx_max macros for a signed wchar_t.
* The __glibcxx_max macro came from GCC svn r138078, the last GPLv2
  revision of this file.
* I wrote the updated __glibcxx_min macro.
2012-12-25 07:37:33 +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
dim
65bdd05e47 Fix several clang warnings in libstdc++, which were exposed by the
recent atf import.  These changes are purely cosmetic, no functional
change.

MFC after:	1 week
2012-10-23 18:36:07 +00:00
pfg
604fef60a7 Bring a couple of libstdc++ patches from Apple's llvm-gcc project.
Modified Fri Jul 10 07:44:34 2009 CDT by rafael
backport part of
http://gcc.gnu.org/ml/gcc-cvs/2007-10/msg00118.html

The patch is for libstdc++ and it was GPL2 at the time.

Modified Tue Apr 29 01:20:19 2008 CDT by asl
Backport from mainline (pre-GPLv3).
Fix for sizeof(const void*) > sizeof(unsigned long).

Approved by:	jhb (mentor)
MFC after:	2 weeks
2012-06-10 02:04:11 +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
dim
bfaebd91ec Add explicit braces to avoid dangling else in stl_tree.h. This silences
the following warning produced by clang trunk:

  In file included from /usr/src/sbin/devd/devd.cc:91:
  In file included from /usr/obj/usr/src/tmp/usr/include/c++/4.2/map:64:
  /usr/obj/usr/src/tmp/usr/include/c++/4.2/bits/stl_tree.h:987:2: error: add explicit braces to avoid dangling else [-Werror,-Wdangling-else]
	  else
	  ^

MFC after:	3 days
2012-03-19 19:01:34 +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
dim
f5c1ef3ab8 Make it possible to use the debug versions of std::map and std::multimap
with clang, by removing two unneeded using declarations.  Otherwise, you
would get errors similar to:

/usr/include/c++/4.2/debug/map.h:77:20: error: dependent using declaration resolved to type without 'typename'
      using _Base::value_compare;
                   ^

N.B.: Take care when you actually use the debug versions of any
libstdc++ header.  They are more likely to contain problems, because
they are exercised far less often, and since the standard library
complexity guarantees don't always apply anymore, compile times can
drastically increase.

MFC after:	2 weeks
2011-12-07 21:00:33 +00:00
mm
24a0f968ca Upgrade of base gcc and libstdc++ to the last GPLv2-licensed revision
(rev. 127959 of gcc-4_2-branch).

Resolved GCC bugs:
	c++: 17763, 29365, 30535, 30917, 31337, 31941, 32108, 32112, 32346,
	     32898, 32992
	debug: 32610, 32914
	libstdc++: 33084, 33128
	middle-end: 32563
	rtl-optimization: 33148
	tree-optimization: 25413, 32723
	target: 32218

Tested by:	pointyhat (miwi)
Obtained from:	gcc (gcc-4_2-branch up to rev. 127959)
PR:		gnu/153298, gnu/153959, gnu/154385
MFC after:	1 month
2011-03-29 20:53:51 +00:00
rpaulo
e94d012481 Some fixes so we can build libstdc++ with clang:
o Make the value_type, vector_type, iterator, __mutex_type types of
free_list class so we can access them
o In some cases template keywords must be inserted to treat classes as
dependent template names
o Remove two 'inline' keywords where they do not make sense

Submitted by:	Dimitry Andric <dimitry at andric.com>
Reviewed by:	trema
2010-08-24 13:38:53 +00:00
kan
4b034ee7f2 This commit was generated by cvs2svn to compensate for changes in r171827,
which included commits to RCS files with non-trunk default branches.
2007-08-14 02:49:11 +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
8a2681fa7e Remove files that are no more part of GCC distribution from FSF branch. 2007-05-19 02:42:17 +00:00
kan
23d2c3da1f This commit was generated by cvs2svn to compensate for changes in r169708,
which included commits to RCS files with non-trunk default branches.
2007-05-19 02:42:17 +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
f9e28d579a This commit was generated by cvs2svn to compensate for changes in r169691,
which included commits to RCS files with non-trunk default branches.
2007-05-19 01:25:07 +00:00
delphij
4895159b2b MFS: Remove file that was disappeared from gcc distribution.
While I'm there, add the file into ObsoleteFiles.inc.

Approved by:	maintainer (kan)
2006-09-30 09:44:58 +00:00
delphij
a75be3918a This commit was generated by cvs2svn to compensate for changes in r162837,
which included commits to RCS files with non-trunk default branches.
2006-09-30 09:44:58 +00:00
kan
42689eaf54 Gcc 3.4.6 C++ support bits (as of 2006/08/25 #116475). 2006-08-26 21:29:46 +00:00
kan
98048dc01d This commit was generated by cvs2svn to compensate for changes in r161653,
which included commits to RCS files with non-trunk default branches.
2006-08-26 21:29:46 +00:00
kan
3b6c93380e Gcc 3.4.4 C++ support bits. 2005-06-03 03:29:38 +00:00
kan
c9b991bc78 This commit was generated by cvs2svn to compensate for changes in r146897,
which included commits to RCS files with non-trunk default branches.
2005-06-03 03:29:38 +00:00
kan
d42790ccc0 Remove files that are not part of GCC 3.4.x from the vendor branch. 2004-08-12 16:41:42 +00:00
kan
1cd197c850 This commit was generated by cvs2svn to compensate for changes in r133582,
which included commits to RCS files with non-trunk default branches.
2004-08-12 16:41:42 +00:00
kan
96bad46eee Gcc 3.4.2 20040728 C++ support bits. 2004-07-28 03:12:05 +00:00
kan
52be83b6ad This commit was generated by cvs2svn to compensate for changes in r132720,
which included commits to RCS files with non-trunk default branches.
2004-07-28 03:12:05 +00:00
kan
dee16d1152 Remove bits which are not part of GCC 3.3.x anymore. 2004-01-05 21:04:41 +00:00
kan
3d7ca51615 This commit was generated by cvs2svn to compensate for changes in r124154,
which included commits to RCS files with non-trunk default branches.
2004-01-05 21:04:41 +00:00
kan
a342444c67 Gcc 3.3.3 20031106 C++ support bits. 2003-11-07 02:44:01 +00:00
kan
a510563f44 This commit was generated by cvs2svn to compensate for changes in r122182,
which included commits to RCS files with non-trunk default branches.
2003-11-07 02:44:01 +00:00
kan
772b3187f8 Gcc 3.3.1-release C++ support bits. 2003-08-22 02:57:05 +00:00
kan
7babb3c344 This commit was generated by cvs2svn to compensate for changes in r119258,
which included commits to RCS files with non-trunk default branches.
2003-08-22 02:57:05 +00:00
kan
c7bbbdd036 Gcc 3.3.1-pre 2003-07-11 C++ support bits. 2003-07-11 03:42:04 +00:00
kan
97107edf1b This commit was generated by cvs2svn to compensate for changes in r117397,
which included commits to RCS files with non-trunk default branches.
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
52f9958890 This commit was generated by cvs2svn to compensate for changes in r110614,
which included commits to RCS files with non-trunk default branches.
2003-02-10 05:47:54 +00:00
obrien
ee820e9f24 Gcc 3.2.1 release virgin vendor import. (19-Nov-2002) 2002-12-04 16:53:59 +00:00
obrien
666198711c This commit was generated by cvs2svn to compensate for changes in r107606,
which included commits to RCS files with non-trunk default branches.
2002-12-04 16:53:59 +00:00
obrien
40ebdb9335 Remove files no longer part of the gcc_3_2_anoncvs_20021009 libstdc++.
Approved by:	re(jhb)
2002-11-27 18:52:04 +00:00
kan
05dc917ee7 Gcc 3.2.1-prerelease C++ support bits from the FSF anoncvs repo gcc-3_2-branch on October 9th 2002 20:15 EST. 2002-10-10 04:40:44 +00:00
kan
d28dfe2607 Gcc 3.2.1-prerelease C++ support bits from the FSF anoncvs repo gcc-3_2-branch on 16-Sep-2002 13:23:11 EDT. 2002-09-17 04:04:04 +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
cvs2svn
efbfe7b228 This commit was manufactured by cvs2svn to create branch 'VENDOR-gcc'. 2002-05-17 19:47:49 +00:00
peter
2ecfd8bd04 Remove files that have been removed from vendor branch 2002-01-27 22:41:09 +00:00
obrien
c9b52a085e Virgin import of GCC 2.95.3's libstdc++ 2001-03-19 20:51:52 +00:00
obrien
dbfeddd336 Import of a GCC 2.96 SNAPSHOT taken from the trunk of the GCC anoncvs
server on 3-June-2000.
2000-06-04 08:30:31 +00:00
obrien
890b30850f Bring in bug fixes from the GCC anoncvs server's "gcc-2_95-branch"
branch as of May 26th, 2000.  [these are changes March 31 - May 24th]
2000-05-27 02:25:28 +00:00