History log of /freebsd-10.1-release/contrib/libstdc++/
Revision Date Author Comments
272461 03-Oct-2014 gjb

Copy stable/10@r272459 to releng/10.1 as part of
the 10.1-RELEASE process.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


269792 10-Aug-2014 ian

MFC r268993, r268893, r268994, plus partial r264070, r264082

Fix C++ exception handling for ARM EABI.

Just the part of r264070 that creates the FBSD_1.4 namespace in libc
is hand-applied, and then r264082 which creates the Versions.def entry
is MFC'd.


265220 02-May-2014 marius

MFC: r265090

Merge r133175 from upstream:

2008-03-13 Dennis Czeremin <dennis.czeremin@smiths-heimann.com>

PR libstdc++/35566
* include/bits/stl_multimap.h (multimap<>::multimap(_InputIterator,
_InputIterator)): Forward to _M_insert_equal, not _M_insert_unique.

This patch was GPL2 at the time and fixes a regression introduced with
the merge of GCC r129013 in FreeBSD r236829.

Sponsored by: Bally Wulff Games & Entertainment GmbH


263911 29-Mar-2014 dim

MFC r263774:

Revert r263694, and apply a better fix to squelch unnecessary warnings
from clang about possible keywords being treated as identifiers for the
remainder of the translation unit (a.k.a. -Wkeyword-compat), when using
libstdc++ in combination with -Wsystem-headers. This will not only fix
devd, but any C++ program using libstdc++.


259694 21-Dec-2013 pfg

MFC r258017, r258429, r258748, r258817:

Merge updates from FSF pre4.3 GCC inspired on Apple's gcc:

Updates to libiberty and mangling.
New align attribute.
Merge Apple updates to libstdc++.


259405 15-Dec-2013 pfg

MFC rr258501, r258507;
gcc: Bring updates from Google's enhanced gcc-4.2.1.

Google released and enhanced version of gcc-4.2.1 plus their local
patches for Android[1].

The patches are owned by Google and the license hasn't been changed
from the original GPLv2. We are only bringing a subset of the
available patches that may be helpful in FreeBSD, in other words,
changes specific to android are not included.

From the README.google file[1].

Patches applied to google_vendor_src_branch/gcc/gcc-4.2.1:

gcc/Makefile.in
gcc/c-common.c
gcc/c-common.h
gcc/c-opts.c
gcc/c-typeck.c
gcc/cp/typeck.c
gcc/doc/invoke.texi
gcc/flags.h
gcc/opts.c
gcc/tree-flow.h
gcc/tree-ssa-alias-warnings.c
gcc/tree-ssa-alias.c

Backport of -Wstrict-aliasing from mainline.
Silvius Rus <rus@google.com>

gcc/coverage.c:
Patch coverage_checksum_string for PR 25351.
Seongbae Park <spark@google.com>
Not yet submitted to FSF.

gcc/c-opts.c
gcc/c-ppoutput.c
gcc/c.opt
gcc/doc/cppopts.texi
libcpp/Makefile.in
libcpp/directives-only.c
libcpp/directives.c
libcpp/files.c
libcpp/include/cpplib.h
libcpp/init.c
libcpp/internal.h
libcpp/macro.c
Support for -fdirectives-only.
Ollie Wild <aaw@google.com>.
Submitted to FSF but not yet approved.

libstdc++-v3/include/ext/hashtable.h
http://b/742065
http://b/629994
Reduce min size of hashtable for hash_map, hash_set from 53 to 5

libstdc++-v3/include/ext/hashtable.h
http://b/629994
Do not iterate over buckets if hashtable is empty.

gcc/common.opt
gcc/doc/invoke.texi
gcc/flags.h
gcc/gimplify.c
gcc/opts.c
Add Saito's patch for -finstrument-functions-exclude-* options.

gcc/common.opt
gcc/doc/invoke.texi
gcc/final.c
gcc/flags.h
gcc/opts.c
gcc/testsuite/gcc.dg/Wframe-larger-than.c
Add a new flag -Wframe-larger-than- which enables a new warning
when a frame size of a function is larger than specified.
This patch hasn't been integrated into gcc mainline yet.

gcc/tree-vrp.c
Add a hack to avoid using ivopts information for pointers starting
at constant values.

Reference:

[1]
https://android.googlesource.com/toolchain/gcc/+/master/gcc-4.2.1/

Obtained from: Google Inc.


259073 07-Dec-2013 peter

Hoist all the mergeinfo up to the root in preparation for enforcing merges
to the root only. All MFC's were rerecorded to the root.

Going forward, if an MFC includes mergeinfo, it will need to be made to
the root and committed from the root. Merges with --ignore-ancestry
or diff | patch can go anywhere.

The mergeinfo in HEAD is in a bad state from years of neglect and manual
tampering and this was branched into 10.x. This confuses the coalescing
code and prevents it from doing its job.

Approved by: re (gjb, implicit)


256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


253563 23-Jul-2013 theraven

Add isnan() and isinf() to the global namespace in libstdc++'s <cmath>.

The standard (n3242, section 17.6.1.1, paragraph 4) says that, because these are
declared as macros in the C specification (even though they are
implemented as functions in the C++ library) they should be in the global
namespace.

A surprising number of configure checks rely on this. It was broken by recent
cleanups to math.h.


252387 29-Jun-2013 dim

Make libsupc++'s __cxa_call_terminate() prototype consistent with the
definition.

Submitted by: dt71@gmx.com
MFC after: 3 days


246314 04-Feb-2013 andrew

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.


244673 25-Dec-2012 andrew

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.


241959 23-Oct-2012 dim

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


241957 23-Oct-2012 dim

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


236829 10-Jun-2012 pfg

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


233699 30-Mar-2012 theraven

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)


233391 23-Mar-2012 theraven

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


233193 19-Mar-2012 dim

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


228780 21-Dec-2011 pfg

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


228328 07-Dec-2011 dim

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


223758 04-Jul-2011 attilio

With retirement of cpumask_t and usage of cpuset_t for representing a
mask of CPUs, pc_other_cpus and pc_cpumask become highly inefficient.

Remove them and replace their usage with custom pc_cpuid magic (as,
atm, pc_cpumask can be easilly represented by (1 << pc_cpuid) and
pc_other_cpus by (all_cpus & ~(1 << pc_cpuid))).

This change is not targeted for MFC because of struct pcpu members
removal and dependency by cpumask_t retirement.

MD review by: marcel, marius, alc
Tested by: pluknet
MD testing by: marcel, marius, gonzo, andreast


222813 07-Jun-2011 attilio

etire the cpumask_t type and replace it with cpuset_t usage.

This is intended to fix the bug where cpu mask objects are
capped to 32. MAXCPU, then, can now arbitrarely bumped to whatever
value. Anyway, as long as several structures in the kernel are
statically allocated and sized as MAXCPU, it is suggested to keep it
as low as possible for the time being.

Technical notes on this commit itself:
- More functions to handle with cpuset_t objects are introduced.
The most notable are cpusetobj_ffs() (which calculates a ffs(3)
for a cpuset_t object), cpusetobj_strprint() (which prepares a string
representing a cpuset_t object) and cpusetobj_strscan() (which
creates a valid cpuset_t starting from a string representation).
- pc_cpumask and pc_other_cpus are target to be removed soon.
With the moving from cpumask_t to cpuset_t they are now inefficient
and not really useful. Anyway, for the time being, please note that
access to pcpu datas is protected by sched_pin() in order to avoid
migrating the CPU while reading more than one (possible) word
- Please note that size of cpuset_t objects may differ between kernel
and userland. While this is not directly related to the patch itself,
it is good to understand that concept and possibly use the patch
as a reference on how to deal with cpuset_t objects in userland, when
accessing kernland members.
- KTR_CPUMASK is changed and now is represented through a string, to be
set as the example reported in NOTES.

Please additively note that no MAXCPU is bumped in this patch, but
private testing has been done until to MAXCPU=128 on a real 8x8x2(htt)
machine (amd64).

Please note that the FreeBSD version is not yet bumped because of
the upcoming pcpu changes. However, note that this patch is not
targeted for MFC.

People to thank for the time spent on this patch:
- sbruno, pluknet and Nicholas Esborn (nick AT desert DOT net) tested
several revision of the patches and really helped in improving
stability of this work.
- marius fixed several bugs in the sparc64 implementation and reviewed
patches related to ktr.
- jeff and jhb discussed the basic approach followed.
- kib and marcel made targeted review on some specific part of the
patch.
- marius, art, nwhitehorn and andreast reviewed MD specific part of
the patch.
- marius, andreast, gonzo, nwhitehorn and jceel tested MD specific
implementations of the patch.
- Other people have made contributions on other patches that have been
already committed and have been listed separately.

Companies that should be mentioned for having participated at several
degrees:
- Yahoo! for having offered the machines used for testing on big
count of CPUs.
- The FreeBSD Foundation for having sponsored my devsummit attendance,
which has been instrumental.
- Sandvine for having offered offices and infrastructure during
development.

(I really hope I didn't forget anyone, if it happened I apologize in
advance).


220150 29-Mar-2011 mm

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


211755 24-Aug-2010 rpaulo

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


191518 26-Apr-2009 ed

Remove even more empty directories.

I just used `hidesvn find . -type d -empty' to figure out which
directories are empty. This means I couldn't easily figure out which
directories only contained empty subdirectories.


191517 26-Apr-2009 ed

Remove empty directories from the HEAD.

Discussed with: developers, imp


171828 14-Aug-2007 kan

This commit was generated by cvs2svn to compensate for changes in r171827,
which included commits to RCS files with non-trunk default branches.


169709 19-May-2007 kan

This commit was generated by cvs2svn to compensate for changes in r169708,
which included commits to RCS files with non-trunk default branches.


169692 19-May-2007 kan

This commit was generated by cvs2svn to compensate for changes in r169691,
which included commits to RCS files with non-trunk default branches.


162838 30-Sep-2006 delphij

This commit was generated by cvs2svn to compensate for changes in r162837,
which included commits to RCS files with non-trunk default branches.


161654 26-Aug-2006 kan

This commit was generated by cvs2svn to compensate for changes in r161653,
which included commits to RCS files with non-trunk default branches.


146898 03-Jun-2005 kan

This commit was generated by cvs2svn to compensate for changes in r146897,
which included commits to RCS files with non-trunk default branches.


133583 12-Aug-2004 kan

This commit was generated by cvs2svn to compensate for changes in r133582,
which included commits to RCS files with non-trunk default branches.


132721 28-Jul-2004 kan

This commit was generated by cvs2svn to compensate for changes in r132720,
which included commits to RCS files with non-trunk default branches.


124155 05-Jan-2004 kan

This commit was generated by cvs2svn to compensate for changes in r124154,
which included commits to RCS files with non-trunk default branches.


122183 07-Nov-2003 kan

This commit was generated by cvs2svn to compensate for changes in r122182,
which included commits to RCS files with non-trunk default branches.


119259 22-Aug-2003 kan

This commit was generated by cvs2svn to compensate for changes in r119258,
which included commits to RCS files with non-trunk default branches.


117398 11-Jul-2003 kan

This commit was generated by cvs2svn to compensate for changes in r117397,
which included commits to RCS files with non-trunk default branches.


110615 10-Feb-2003 kan

This commit was generated by cvs2svn to compensate for changes in r110614,
which included commits to RCS files with non-trunk default branches.


107607 04-Dec-2002 obrien

This commit was generated by cvs2svn to compensate for changes in r107606,
which included commits to RCS files with non-trunk default branches.


107331 27-Nov-2002 obrien

Remove files no longer part of the gcc_3_2_anoncvs_20021009 libstdc++.

Approved by: re(jhb)


104755 10-Oct-2002 kan

This commit was generated by cvs2svn to compensate for changes in r104754,
which included commits to RCS files with non-trunk default branches.


103448 17-Sep-2002 kan

This commit was generated by cvs2svn to compensate for changes in r103447,
which included commits to RCS files with non-trunk default branches.


102783 01-Sep-2002 kan

This commit was generated by cvs2svn to compensate for changes in r102782,
which included commits to RCS files with non-trunk default branches.


97404 28-May-2002 obrien

This commit was generated by cvs2svn to compensate for changes in r97403,
which included commits to RCS files with non-trunk default branches.


89885 27-Jan-2002 peter

This commit was generated by cvs2svn to compensate for changes in r89884,
which included commits to RCS files with non-trunk default branches.


74484 19-Mar-2001 obrien

This commit was generated by cvs2svn to compensate for changes in r74483,
which included commits to RCS files with non-trunk default branches.


61242 04-Jun-2000 obrien

This commit was generated by cvs2svn to compensate for changes in r61241,
which included commits to RCS files with non-trunk default branches.


60968 27-May-2000 obrien

This commit was generated by cvs2svn to compensate for changes in r60967,
which included commits to RCS files with non-trunk default branches.


58810 30-Mar-2000 obrien

This commit was generated by cvs2svn to compensate for changes in r58809,
which included commits to RCS files with non-trunk default branches.


57845 09-Mar-2000 obrien

This commit was generated by cvs2svn to compensate for changes in r57844,
which included commits to RCS files with non-trunk default branches.


56386 22-Jan-2000 obrien

This commit was generated by cvs2svn to compensate for changes in r56385,
which included commits to RCS files with non-trunk default branches.


52747 01-Nov-1999 obrien

This commit was generated by cvs2svn to compensate for changes in r52746,
which included commits to RCS files with non-trunk default branches.


52738 01-Nov-1999 obrien

Describe how I did this.


52278 16-Oct-1999 obrien

This commit was generated by cvs2svn to compensate for changes in r52277,
which included commits to RCS files with non-trunk default branches.


51921 04-Oct-1999 obrien

This commit was generated by cvs2svn to compensate for changes in r51920,
which included commits to RCS files with non-trunk default branches.