History log of /bionic/libstdc++/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
6df7b609984479c894be81140730578896dbdd8f 15-Aug-2014 Dan Albert <danalbert@google.com> Hide C++ stuff in libc. Put it back in libstdc++.

Bug: 17062445
Change-Id: I027b186719654c2865b08c3fa83f90fa00c1e838
(cherry picked from commit fd5ee9aebc0a43c7f36a0778c7f416b39ddb870e)
ndroid.mk
rc/libstdc++.cpp
1242f7eb67c678922b55e2077d9cf2d5cdc85b15 30-Jul-2014 Elliott Hughes <enh@google.com> Remove declarations for things that don't exist.

The <grp.h> ones prevent gdb from building out of the box.

(cherry picked from commit f4c1a36a4500bc7f12e3065be3da4e8669ee011d)

Change-Id: I6958f2f1731de8c03df20b383decd414b78100aa
nclude/cstdlib
4ac83fad3cdc486c00199eef9ea2a95d354839c4 23-Jul-2014 Elliott Hughes <enh@google.com> Fix a couple of bugs in generate-NOTICE and regenerate the NOTICE files.

(cherry picked from commit 3758a244cf758046b40f630a11aed41e68c9cfc2)

Change-Id: I6ffb83b4a7b7746b095205c664cf025a72ead179
OTICE
1cd8f57cbc645730cf52412df681c8a8f3d2643d 18-Jun-2014 Dan Albert <danalbert@google.com> am b29a7f1d: am ef82c28d: Merge "Hide declaration of gets(3) for C11 and later."

* commit 'b29a7f1d29a1183c1f1a67433f36ae09cf1eee89':
Hide declaration of gets(3) for C11 and later.
3bb25acb4672875abe2ad06ddfacb1ca07c1cb60 18-Jun-2014 Dan Albert <danalbert@google.com> am b86ffd8d: am 1ef3ba2b: Merge "Revert "Hide declaration of gets(3) for C11 and later.""

* commit 'b86ffd8d82c177b393e6ed3199ee94331776afc7':
Revert "Hide declaration of gets(3) for C11 and later."
7cd4e725615678f5f70cbddc88a1ec7c1e41bbb1 18-Jun-2014 Dan Albert <danalbert@google.com> am 285a1c13: am 185c399c: Merge "Hide declaration of gets(3) for C11 and later."

* commit '285a1c13482f64813dd8f5dd54b479199c0f2569':
Hide declaration of gets(3) for C11 and later.
9635046e53e14ff44348853a9cacdffd444b35ae 18-Jun-2014 Dan Albert <danalbert@google.com> Hide declaration of gets(3) for C11 and later.

gets(3) was removed from C11.

This reverts commit 1291680c2a0c23b2163198d27e00261ca206298b.

Bug: 14500800
Change-Id: I5e5146bdbb80f2be818a17f287b112bab37d1f6d
nclude/cstdio
1291680c2a0c23b2163198d27e00261ca206298b 18-Jun-2014 Dan Albert <danalbert@google.com> Revert "Hide declaration of gets(3) for C11 and later."

Breaks stlport. checkbuild lied to me?

This reverts commit c0ce5908277a9bf18628946629dba4277e9a2281.

Change-Id: I72fb21aba7eaea96a7c3208236fd03411527fa5e
nclude/cstdio
c0ce5908277a9bf18628946629dba4277e9a2281 18-Jun-2014 Dan Albert <danalbert@google.com> Hide declaration of gets(3) for C11 and later.

gets(3) was removed from C11.

Change-Id: I4040a8a6c6d5d2a86878e8a80ca67964fbbb82a8
nclude/cstdio
fe6e646cb79fe15d7815fdb9c92cc66be56ab1d4 16-Jun-2014 Elliott Hughes <enh@google.com> Update NOTICE files.

Change-Id: I459caf48ba861372a4d0bc75f98a9cb4acc20fd5
OTICE
15b641a26731a7e42455c3ed22e1e9bdf31ea79c 15-May-2014 Elliott Hughes <enh@google.com> Move libstdc++ into libc.

The Android build system always links against libstdc++.so anyway. Having
operator new and operator delete in a separate library means we can't use
constructors and destructors on heap-allocated objects inside the C library,
which is quite an unfortunate limitation.

This will be cheaper too; on LP64 we can stop linking against the [now empty]
libstdc++.so giving the dynamic linker one less library to worry about for
every process.

There's precedent too --- we already have no libpthread or librt.

For now I'm leaving the include files where they are, and I'm generating a
dummy libstdc++.so and libstdc++.a. We can come back and clean that up later
if all goes well.

Bug: 13367666
Change-Id: I6f3e27ea7c30d03d6394965d0400c9dc87fa83db
ndroid.mk
rc/libstdc++.cpp
rc/new.cpp
rc/one_time_construction.cpp
rc/pure_virtual.cpp
rc/typeinfo.cpp
240f1e2940e7e23811ec091d3dc354550a13a385 18-Feb-2014 Elliott Hughes <enh@google.com> Clean up warnings in libstdc++.

Change-Id: Ie71a2fdf227e7a5fc9a446bb1be110da9b3a4280
ndroid.mk
rc/typeinfo.cpp
eb847bc8666842a3cfc9c06e8458ad1abebebaf0 10-Oct-2013 Elliott Hughes <enh@google.com> Fix x86_64 build, clean up intermediate libraries.

The x86_64 build was failing because clone.S had a call to __thread_entry which
was being added to a different intermediate .a on the way to making libc.so,
and the linker couldn't guarantee statically that such a relocation would be
possible.

ld: error: out/target/product/generic_x86_64/obj/STATIC_LIBRARIES/libc_common_intermediates/libc_common.a(clone.o): requires dynamic R_X86_64_PC32 reloc against '__thread_entry' which may overflow at runtime; recompile with -fPIC

This patch addresses that by ensuring that the caller and callee end up in the
same intermediate .a. While I'm here, I've tried to clean up some of the mess
that led to this situation too. In particular, this removes libc/private/ from
the default include path (except for the DNS code), and splits out the DNS
code into its own library (since it's a weird special case of upstream NetBSD
code that's diverged so heavily it's unlikely ever to get back in sync).

There's more cleanup of the DNS situation possible, but this is definitely a
step in the right direction, and it's more than enough to get x86_64 building
cleanly.

Change-Id: I00425a7245b7a2573df16cc38798187d0729e7c4
rc/one_time_construction.cpp
8f2a5a0b40fc82126c691d5c30131d908772aab7 15-Mar-2013 Elliott Hughes <enh@google.com> Clean up internal libc logging.

We only need one logging API, and I prefer the one that does no
allocation and is thus safe to use in any context.

Also use O_CLOEXEC when opening the /dev/log files.

Move everything logging-related into one header file.

Change-Id: Ic1e3ea8e9b910dc29df351bff6c0aa4db26fbb58
rc/pure_virtual.cpp
32dbc03c73dc1f9d1fcd072086d894a9eb25aecd 16-Aug-2012 Elliott Hughes <enh@google.com> Regenerate all NOTICE files with the latest version of the script.

This sorts every entry, so we should have more stability and fewer
merge conflicts in future.

Change-Id: Ifc5347dc53352da22c82d41ca59b483966fcfc6b
OTICE
ae5c64413bf72bc18d7fc81e1f5761824bc01f49 13-Aug-2012 Elliott Hughes <enh@google.com> Add dependencies on all the makefiles.

This should help prevent broken builds next time I'm messing with
assembler/compiler/linker flags...

Change-Id: I30f15a3ce3c3f3c60cad7bc59aaba9f42d792224
ndroid.mk
387d4b7de9af2afd0c37a895ff9d012eb1f66156 10-Aug-2012 Elliott Hughes <enh@google.com> Auto-generate a complete NOTICE file.

Remove the hand-collated ones, and switch to a script that pulls the
copyright headers out of every file and collects the unique ones.

Change-Id: Ied3b98b3f56241df97166c410ff81de4e0157c9d
OTICE
rc/one_time_construction.cpp
52d6233296ec84eb5b58fcbf7bc9da4b96a943aa 28-Jul-2012 Elliott Hughes <enh@google.com> Report errors to the log, not just stderr.

In particular this affects assert(3) and __cxa_pure_virtual, both of
which have managed to confuse people this week by apparently aborting
without reason. (Because stderr goes nowhere, normally.)

Bug: 6852995
Bug: 6840813
Change-Id: I7f5d17d5ddda439e217b7932096702dc013b9142
ndroid.mk
rc/one_time_construction.cpp
rc/pure_virtual.cpp
762a4fe2eed6a36b14d3b378c2974ad355d97d54 16-Apr-2012 Elliott Hughes <enh@google.com> resolved conflicts for merge of 35d592cc to master

Change-Id: I8184302daf61814d26c837f9920b4e68d96d7f65
ee18fb4aacc9b67b397a0b000dda6e350ad5b3f0 28-Mar-2012 Fengwei Yin <fengwei.yin@intel.com> libstdc++: Fix x86 thread-safe one-time-construction implementation.

The root of the problem is that the existing implementation is based on the
ARM C++ ABI, which mandates a different guard variable layout than the
Itanium/x86 C++ one.

This patch modifies the implementation in a way that satisfies both ABIs (and
doesn't require changing the toolchains).

Change-Id: I885e9adc7f088b9c0a78355bd752f1e6aeec9f07
Signed-off-by: Fengwei Yin <fengwei.yin@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
rc/one_time_construction.cpp
e31bfae2baa96742f998155ee26e56c826a8ce3a 15-Nov-2011 David 'Digit' Turner <digit@android.com> bionic: Do not use <sys/atomics.h> for platform code.

We're going to modify the __atomic_xxx implementation to provide
full memory barriers, to avoid problems for NDK machine code that
link to these functions.

First step is to remove their usage from our platform code.
We now use inlined versions of the same functions for a slight
performance boost.

+ remove obsolete atomics_x86.c (was never compiled)

NOTE: This improvement was benchmarked on various devices.
Comparing a pthread mutex lock + atomic increment + unlock
we get:

- ARMv7 emulator, running on a 2.4 GHz Xeon:
before: 396 ns after: 288 ns

- x86 emulator in KVM mode on same machine:
before: 27 ns after: 27 ns

- Google Nexus S, in ARMv7 mode (single-core):
before: 82 ns after: 76 ns

- Motorola Xoom, in ARMv7 mode (multi-core):
before: 121 ns after: 120 ns

The code has also been rebuilt in ARMv5TE mode for correctness.

Change-Id: Ic1dc72b173d59b2e7af901dd70d6a72fb2f64b17
rc/one_time_construction.cpp
7c72513bfa2a10f48e3205e7d8bf66f6ee1a7082 14-Jun-2011 David 'Digit' Turner <digit@android.com> libstdc++: make operator new call abort on failure.

This change ensures that operator new will call abort() in case
of memory allocation failure. Note that due to our usage of memory
overcommit, this can only happen under very rare circumstances
(i.e. trying to allocate memory larger than the larger free range
of virtual address space, or when memory is corrutped in various
ways).

Change-Id: I128b8bf626216e899c22a00f24492cd148a1fc94
rc/new.cpp
1aa6708cc2b7792a647ada960a66a1e0146fb209 11-Oct-2010 David 'Digit' Turner <digit@google.com> Fix the build. Oops.

(We remove the declaration for on_exit() from the C library headers,
so do the same for the C++ <cstdlib>)

Change-Id: I31a21d5643068cd160724908dd8156863a44d95a
nclude/cstdlib
d466780c7cedb41edcf13f28ad900556c6aaa5b2 11-Jun-2010 David 'Digit' Turner <digit@google.com> Add missing SMP barriers to libstdc++

Change-Id: I20a8dcd2e3316ac60237e800c682cacc8e59e187
ndroid.mk
rc/one_time_construction.cpp
0621a279adfb981ea1f0564e7fc8280cda78e043 26-Jun-2010 David 'Digit' Turner <digit@google.com> libstdc++: use extern "C++" in all our C++ system headers.

This is needed to build an independent toolchain with g++ that doesn't think
that all these headers are in C.

Change-Id: Ie9a8ccfcab7780d6a4e5722777d61c2b1b312001
nclude/cctype
nclude/cmath
nclude/csetjmp
nclude/csignal
nclude/cstddef
nclude/cstdio
nclude/cstdlib
nclude/cstring
nclude/ctime
nclude/new
nclude/typeinfo
8f92500fa93d174d077af28d8af3e3cb732e0aff 31-Jan-2010 André Goddard Rosa <andre.goddard@gmail.com> optimize delete/delete[] operators by removing unneeded branch

Remove redundant not NULL check already done in free().

Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
rc/new.cpp
194d3fa048cf909ca592dd56fa538dc9cd3f5ddb 13-Nov-2009 Jean-Baptiste Queru <jbq@google.com> eclair snapshot
nclude/cstring
348065586a2e6154d6cff36afa6e00af6bbc5918 10-Jul-2009 David 'Digit' Turner <digit@google.com> Add new C++ headers <cerrno> and <cfloat>

Also add std::malloc/realloc/calloc/free to <cstdlib>
Rename <cwchar_is_not_supported> to <cwchar>
nclude/cerrno
nclude/cfloat
nclude/cstdlib
nclude/cwchar
nclude/cwchar_is_not_supported
8169573c8744ee3a484ea74bd5e06a8a4f708e37 18-May-2009 David 'Digit' Turner <digit@google.com> Add <cmath> standard C++ header.
This is needed for upcoming STLport experimentation.
nclude/cmath
89b62a18a00f89b0b5f215a1f461aa432421fb63 10-Apr-2009 Niko Catania <> AI 145714: Added cstring wrapper around string.h.
In new, include cstddef which declares std::size_t.
BUG=1601432

Automated import of CL 145714
nclude/cstring
nclude/cwchar_is_not_supported
nclude/cwctype_is_not_supported
nclude/new
00a18f62a7c97299cea017578ec7ec179215492b 08-Apr-2009 Niko Catania <> AI 145059: (Almost) final set of wrapper around the C headers for stdc++ and their tests.
The only one left is cstring.
* bionic/libstdc++/include/cstdlib:
* bionic/libstdc++/include/cstdio:
* bionic/libstdc++/include/cstdint:
* bionic/libstdc++/include/csignal:
* bionic/libstdc++/include/csetjmp:
Added header file.
Checks the bionic headers file were picked up instead of the host ones.
Added test for new header files
* system/extras/tests/bionic/libstdc++/Android.mk:
Added tests for the new header files.
EXTRA_CFLAGS: include the bionic header files.
BUG=1601432

Automated import of CL 145059
nclude/cassert
nclude/csetjmp
nclude/csignal
nclude/cstddef
nclude/cstdint
nclude/cstdio
nclude/cstdlib
88f8a4ab8534cb21280f8aa0bf557f81ba4e31fa 02-Apr-2009 Niko Catania <> AI 144236: Added new C to stdc++ header files: cassert, cctype, climits, ctime.
QA Impact:None
BUG=1601432

Automated import of CL 144236
nclude/cassert
nclude/cctype
nclude/climits
nclude/ctime
416ceb861c4daf1bc36809e007ae245814794bd0 30-Mar-2009 Niko Catania <> AI 143504: Completed cstddef to be non empty and similar to the gnu stl implementation.
Even if we don't want to have a bloated stl implementation, having empty
files around is probably not very good either.
Added a test to make sure the header file compiles on host and kila-eng.
QA Impact: In system/extras/test/bionic/libstdc++ build the tests using:
mm BIONIC_TESTS=1
to build the host and target tests.
BUG=1601432

Automated import of CL 143504
nclude/cstddef
1dc9e472e19acfe6dc7f41e429236e7eef7ceda1 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
ndroid.mk
ODULE_LICENSE_BSD
OTICE
nclude/cstddef
nclude/new
nclude/stl_pair.h
nclude/typeinfo
nclude/utility
rc/new.cpp
rc/one_time_construction.cpp
rc/pure_virtual.cpp
rc/typeinfo.cpp
1767f908af327fa388b1c66883760ad851267013 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
ndroid.mk
ODULE_LICENSE_BSD
OTICE
nclude/cstddef
nclude/new
nclude/stl_pair.h
nclude/typeinfo
nclude/utility
rc/new.cpp
rc/one_time_construction.cpp
rc/pure_virtual.cpp
rc/typeinfo.cpp
4e468ed2eb86a2406e14f1eca82072ee501d05fd 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
nclude/stl_pair.h
nclude/utility
a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
ndroid.mk
ODULE_LICENSE_BSD
OTICE
nclude/cstddef
nclude/new
nclude/typeinfo
rc/new.cpp
rc/one_time_construction.cpp
rc/pure_virtual.cpp
rc/typeinfo.cpp