This change allows an executable to call its destructor functions
(declared with __attribute__((destructor))) to be properly called
when it normally exits.
Note that this is different from calling the destructors of a shared
library when it is unloaded with dlclose() or through program exit,
which are already supported.
Bug: 3106500
Change-Id: I1412ef5407f13b613fc6cb6103e0a691dbee4b1a
(We remove the declaration for on_exit() from the C library headers,
so do the same for the C++ <cstdlib>)
Change-Id: I31a21d5643068cd160724908dd8156863a44d95a
This matches recent changes in the NDK header.
We enclose missing functions in #if 0 .. #endif blocks
with a clear "MISSING" in comments in order to locate
them later.
Change-Id: I87b3a62e777897e75c9243360fb0a82bcc53d9fb
1. Make the feature test work by excluding known-deficient processors, so
we don't have to maintain a complete list of all the processors that support
REV and REV16.
2. Don't abuse 'register' to get an effect similar to GCC's +l constraint,
but which was unnecessarily restrictive.
3. Fix __swap64md so _x isn't clobbered, breaking 64-bit swaps.
4. Make <byteswap.h> (which declars bswap_16 and friends) use <endian.h>
rather than <sys/endian.h>, so we get the machine-dependent implementations.
(git cherry-pick of 3cf53d1a78)
This reverts commit 80fba9a2fe,
which caused the system to not boot anymore, aborting with:
"java.lang.RuntimeException: Missing static main on com.android.server.SystemServer".
Change-Id: I745e0a23c728cccf5f95a3c7642d544478a4e57e
ARMv6 ISA has several instructions to handle data in different byte order.
For endian conversion (byte swapping) of single data words, it might be a
good idea to use the REV/REV16 instruction simply.
(git cherry-pick -e aa35095517)
Change-Id: Id6cca2e5e0a978f5abbee6d48876dfa8fa198f6a
Return a valid pointer (not NULL) when the character "c" is at the end of "src".
Change-Id: Iab0b677943f2c8a9fbb255c44689f5d6dc3535d7
Example:
memccpy(dest, "xzy", 'y', 3) should return dest+3 rather than null.
(We've been missing the zoneinfo.* files for the host dalvikvm. My fix for
gingerbread will have to wait for someone to return from vacation, but I can
commit here in advance, and I need to so that I can submit
https://android-git.corp.google.com/g/60790 which -- amongst other things --
makes lack of time zone data a hard failure, rather than just silently
pretending all time zones are UTC.)
Bug: 2870945
git cherry-pick --no-commit 18a859aff4
Change-Id: I66647e824c5fee9b8d2c63085e2a58e5910a5544
(We've been missing the zoneinfo.* files for the host dalvikvm. My fix for
gingerbread will have to wait for someone to return from vacation, but I can
commit here in advance, and I need to so that I can submit
https://android-git.corp.google.com/g/60790 which -- amongst other things --
makes lack of time zone data a hard failure, rather than just silently
pretending all time zones are UTC.)
Bug: 2870945
Change-Id: I95163629c229c6da646af9aae4a0ba976ad5fe6c
Previously, the malloc leak checking code would crash in qsort()
if null entries existed in its bookkeeping table. This change
makes the comparison function detect null entries and sort them
to the end safely.
Change-Id: I88244a7df1e289dd9d7992ce29606d505bd63079