10315 Commits

Author SHA1 Message Date
The Android Automerger
d0beefdcd3 merge in lmp-release history after reset to 47ed03f70c6c9addc7f05e4ee4dc71c96d215105 2014-09-07 06:08:57 -07:00
Christopher Ferris
47ed03f70c Merge "Add dlmalloc_usable_size for 32 bit arches." into lmp-dev 2014-09-06 19:58:40 +00:00
The Android Automerger
ee809b90e8 merge in lmp-release history after reset to dc3814bcf916b58ec11251a530c4ecacb6e2b7c9 2014-09-06 08:50:41 -07:00
The Android Automerger
b2c6088b1e merge in lmp-release history after reset to 5beddb7d642524ecb6655ab2823caf2add679917 2014-09-06 06:08:46 -07:00
Christopher Ferris
1c365cb494 Add dlmalloc_usable_size for 32 bit arches.
Bug: 17337831
Change-Id: I50c50559a5dfa083c85f064042bc0726718c988b
2014-09-05 18:37:30 -07:00
Elliott Hughes
f0e9458ea5 Don't expose non-standard basename_r and dirname_r in LP64.
Bug: 17407423
Change-Id: I47fe499a4c396bf09d7b78fd828728d04777398b
2014-09-05 16:12:42 -07:00
Elliott Hughes
5beddb7d64 Fix pthread_attr_getstack__main_thread.
There were two problems here:

* This would fail when run with unlimited stack, because it didn't know
  that bionic reports unlimited stacks as 8MiB.

* This would leave RLIMIT_STACK small, causing failures to exec (so the
  popen and system tests would fail).

(cherry-pick of 27a9aed81978af792cb06035a1619c8141a5fb5b plus the
new ScopeGuard.h from a3ad450a2e3fb6b3fe359683b247eba20896f646.)

Bug: 17394276
Change-Id: I5b92dc64ca089400223b2d9a3743e9b9d57c1bc2
2014-09-04 20:34:03 -07:00
The Android Automerger
dc3814bcf9 merge in lmp-release history after reset to 1e010d60397db706cd3d1c4d5701a2bced441aa8 2014-09-04 06:09:31 -07:00
Elliott Hughes
1e010d6039 Add back a dummy arc4random_stir for compatibility.
The current arc4random implementation stirs itself as needed, but we
need to keep an arc4random_stir symbol around for binary compatibility.

Bug: 17291075
Change-Id: Iaf6171c3ec65c39c1868364d5b35ea280e29a363
2014-09-03 15:53:11 -07:00
The Android Automerger
d9bead2357 merge in lmp-release history after reset to cb093d1f55701da419d1013cc3e6fbb8aea3e957 2014-09-03 06:09:05 -07:00
Elliott Hughes
cb093d1f55 Merge "Upgrade bionic to tzdata2014g." into lmp-dev 2014-09-02 21:39:03 +00:00
Hans Boehm
9ac60bf82b Make stdatomic.h work with gcc4.6 host compiler
This is needed to make L work correctly, and bionic tests pass
again, after applying the equivalent of
commit 00aaea364501b3b0abe58dae461136159df1e356 there.

It makes the preexisting code that uses __sync implementations
much more useful, although we should no longer be exercising that
code in AOSP.

Specifically fixes:

We were invoking __has_extension and __has_builtin for GCC compilations.
They're clang specific. Restructured the tests.

The __sync implementation was not defining the LOCK_FREE macros.

ATOMIC_VAR_INIT was using named field initializations.  These are a
C, not C++, feature, that is not supported by g++ 4.6.

The stdatomic bionic test still failed with 4.6 and glibc with our
questionable LOCK_FREE macro implementation.  Don't run that piece
with 4.6.

In L, this is a prerequisite for fixing:

    Bug:16880454
    Bug:16513433

Change-Id: I9b61e42307f96a114dce7552b6ead4ad1c544eab
(cherry picked from commit 32429606bf696d3b2ca555f132a0d60c566d0bd0)
2014-09-02 11:37:02 -07:00
Elliott Hughes
b519ea4903 Upgrade bionic to tzdata2014g.
From the release notes:

  Changes affecting future time stamps

    Turks & Caicos is switching from US eastern time to UTC-4 year-round,
    modeled as a switch from EST/EDT to AST on 2014-11-02 at 02:00.

  Changes affecting past time stamps

    Time in Russia or the USSR before 1926 or so has been corrected by
    a few seconds in the following zones: Asia/Irkutsk,
    Asia/Krasnoyarsk, Asia/Omsk, Asia/Samarkand, Asia/Tbilisi,
    Asia/Vladivostok, Asia/Yakutsk, Europe/Riga, Europe/Samara.  For
    Asia/Yekaterinburg the correction is a few minutes.  (Thanks to
    Vladimir Karpinsky.)

    The Portuguese decree of 1911-05-26 took effect on 1912-01-01.
    This affects 1911 time stamps in Africa/Bissau, Africa/Luanda,
    Atlantic/Azores, and Atlantic/Madeira.  Also, Lisbon's pre-1912
    GMT offset was -0:36:45 (rounded from -0:36:44.68), not -0:36:32.
    (Thanks to Stephen Colebourne for pointing to the decree.)

    Asia/Dhaka ended DST on 2009-12-31 at 24:00, not 23:59.

    A new file 'backzone' contains data which may appeal to
    connoisseurs of old time stamps, although it is out of scope for
    the tz database, is often poorly sourced, and contains some data
    that is known to be incorrect.  The new file is not recommended
    for ordinary use and its entries are not installed by default.
    (Thanks to Lester Caine for the high-quality Jersey, Guernsey, and
    Isle of Man entries.)

    Some more zones have been turned into links, when they differed
    from existing zones only for older time stamps.  As usual,
    these changes affect UTC offsets in pre-1970 time stamps only.
    Their old contents have been moved to the 'backzone' file.
    The affected zones are: Africa/Bangui, Africa/Brazzaville,
    Africa/Douala, Africa/Kinshasa, Africa/Libreville, Africa/Luanda,
    Africa/Malabo, Africa/Niamey, and Africa/Porto-Novo.

Bug: 17277574

(cherry picked from commit 9685c30a2375635f7410e60eff2f0559f7e84df6)

Change-Id: I6120be3a0ec76af2d07ca6f9ea6f83d81d215803
2014-09-02 11:33:16 -07:00
Hans Boehm
2b10e2f122 Undefine _Atomic before redefining
Stdatomic.h was potentially redefining _Atomic, in spite of a
prior definition by <atomic>.  This could cause g++ builds that
included <stdatomic.h> with an available <atomic> header to break.

A functional stdatomic.h is a prerequisite for fixing the
following bugs.  This is the middle of 3 AOSP updates to
bionics stdatomic.h that are needded to get there.

Bug:16880454
Bug:16513433

Change-Id: I562c7115118c0587d594d4d5b62d25101e47bfd8
(cherry picked from commit 3e4a0099a179d7acee63d78c8fc4c3cc7b0bae42)
2014-09-02 10:32:34 -07:00
Hans Boehm
c8cf3513ec Fix, generalize stdatomic.h; improve test.
We seem to use this stdatomic.h sometimes, and slightly different prebuilts
at other times, making them all difficult to test, and making it unclear
which one we're testing.  This generalizes the bionic header so that it
can be used directly as the prebuilt header as well.  So long as they
don't diverge again, that should somewhat improve test coverage.

Use the correct builtin for atomic_is_lock_free.

Fix atomic_flag_init.

Turn on atomic tests even with __GLIBC__, since they now appear to pass.

Include uchar.h in stdatomic.h where needed.

Add a basic memory ordering test.

Fix bit-rotted comments in bionic tests makefile.

Prerequisite for fixing b/16880454 and

Bug:16513433

Change-Id: If6a14c1075b379395ba5d93357d56025c0ffab68
(cherry picked from commit 00aaea364501b3b0abe58dae461136159df1e356)
2014-09-02 10:32:33 -07:00
The Android Automerger
8c673ec8e9 merge in lmp-release history after reset to c191a8adee7ff000b6dd71ee336a12118e2a4733 2014-09-02 06:09:09 -07:00
Dmitriy Ivanov
c191a8adee Merge "Look into ld_preloads before current library" into lmp-dev 2014-09-01 21:08:55 +00:00
The Android Automerger
daebe2764b merge in lmp-release history after reset to b2eb09a9ed9e08d9e49f4245d1959b2ca3fbaaf8 2014-09-01 07:54:46 -07:00
The Android Automerger
2fcb94d52c merge in lmp-release history after reset to b2eb09a9ed9e08d9e49f4245d1959b2ca3fbaaf8 2014-08-31 09:30:23 -07:00
Elliott Hughes
b2eb09a9ed Use __GNUC_PREREQ rather than __GNUC_PREREQ__ to match glibc.
Bug: 16874785

(cherry picked from commit e0c56efddf55ad40cb35b2c22e1dd9b4b50df159)

Change-Id: I9c922ba019f648766fc399d1c4e35e789e25acd4
2014-08-29 16:10:57 -07:00
Dmitriy Ivanov
05e190c093 Look into ld_preloads before current library
Change lookup order during relocation so that
 ld_preloads always precede caller (unless caller
 is main executable).

 Asan needs this change in order to intercept libc->libc
 calls.

Bug: 15432753
Change-Id: If69aa16efe59aa35bb30e96feb83d08f1efbec86
2014-08-29 11:46:06 -07:00
Elliott Hughes
67f1f3b171 Have pthread_attr_getstack for the main thread report RLIMIT_STACK...
...rather than just what's already mapped in. This seems somewhat
contrary to POSIX's "All pages within the stack described by stackaddr
and stacksize shall be both readable and writable by the thread", but
it's what glibc does.

Bug: 17111575

(cherry picked from commit 9e4ffa7032eaab308876b8e3da86b05c3c613878)

Change-Id: I73f219a569917b2e4546c09436d7ef5231facc07
2014-08-27 16:50:53 -07:00
Elliott Hughes
a0eeb0b69f Merge "Fix pthread_getattr_np for the main thread." into lmp-dev 2014-08-27 23:49:56 +00:00
Christopher Ferris
20dc3f8fa4 Replace snprintf calls in linker.
When enabling debug malloc, the snprintf calls in the linker fails to
update the buffer.

The problem is that snprintf makes a call to pthread_getspecific that
returns a valid pointer, but the data it points to is zero. This should
never happen and causes the snprintf to stop and do nothing.

Temporarily replace snprintf with a different implementation to work
around this issue.

Bug: 16874447
Bug: 17302493
Change-Id: I7a500f28adf153150cf2812fae745ff41f1c48d3
2014-08-27 16:12:09 -07:00
Christopher Ferris
598d25bf78 Merge "Replace snprintf calls in linker." into lmp-dev 2014-08-27 22:42:11 +00:00
Christopher Ferris
172955a4e3 Replace snprintf calls in linker.
When enabling debug malloc, the snprintf calls in the linker fails to
update the buffer.

The problem is that snprintf makes a call to pthread_getspecific that
returns a valid pointer, but the data it points to is zero. This should
never happen and causes the snprintf to stop and do nothing.

Temporarily replace snprintf with a different implementation to work
around this issue.

Bug: 16874447
Bug: 17302493
Change-Id: I7a500f28adf153150cf2812fae745ff41f1c48d3
2014-08-27 15:30:43 -07:00
Elliott Hughes
6cc4e3b6ce Merge "call uselocale() before freelocale() to make sure that g_local_key has a valid locale." into lmp-dev 2014-08-27 17:25:23 +00:00
Wally Yau
8a46cf0fcf call uselocale() before freelocale() to make sure that g_local_key has a valid locale.
For tests that call uselocale(), the locale is stored in the
g_userlocale_key thread-specific key. If freelocale() is called later,
then g_uselocal_key points to a deleted pointer. CTS eventually calls
vfprintf to print the result, which calls MB_CUR_MAX and MB_CUR_MAX
accesses the deleted locale stored in g_uselocale_key, causing unpredictable
errors.

Fixed the tests by calling uselocale() with the old locale before
calling freelocale.

Bug: 17299565
Change-Id: I87efa2a9b16999a11d587f68d3aeedcbe6ac8a2c
2014-08-27 17:22:29 +00:00
The Android Automerger
54a6221cc2 merge in lmp-release history after reset to 3f7635f4906c53fa744731efc35235456b7d93bf 2014-08-27 06:09:31 -07:00
Christopher Ferris
3f7635f490 Use the default unwind code.
This speeds up the debug malloc code by using the original unwinding code.
The only catch is that it has to link in the libc++ arm unwind code or
there will be crashes when attempting to unwind through libc++ compiled
code.

Bug: 16874447
Change-Id: Ifdbbcbd4137d668b25cf3c2bd59535e06ebfa5a7
2014-08-26 16:02:51 -07:00
Elliott Hughes
6421823410 Fix pthread_getattr_np for the main thread.
On most architectures the kernel subtracts a random offset to the stack
pointer in create_elf_tables by calling arch_align_stack before writing
the auxval table and so on. On all but x86 this doesn't cause a problem
because the random offset is less than a page, but on x86 it's up to two
pages. This means that our old technique of rounding the stack pointer
doesn't work. (Our old implementation of that technique was wrong too.)

It's also incorrect to assume that the main thread's stack base and size
are constant. Likewise to assume that the main thread has a guard page.
The main thread is not like other threads.

This patch switches to reading /proc/self/maps (and checking RLIMIT_STACK)
whenever we're asked.

Bug: 17111575
Signed-off-by: Fengwei Yin <fengwei.yin@intel.com>

(cherry picked from commit 57b7a6110e7e8b446fc23cce4765ff625ee0a105)

Change-Id: I87e679ee1c0db8092f2d1221c8e7c1461545c5a4
2014-08-26 12:55:01 -07:00
The Android Automerger
489b5d23fd merge in lmp-release history after reset to 84d0683a824fa02dbaa6d1b56a79223804b54e80 2014-08-26 06:09:09 -07:00
The Android Automerger
5f17e16e92 merge in lmp-release history after reset to 84d0683a824fa02dbaa6d1b56a79223804b54e80 2014-08-25 06:08:46 -07:00
The Android Automerger
3bd669c605 merge in lmp-release history after reset to 84d0683a824fa02dbaa6d1b56a79223804b54e80 2014-08-24 06:08:24 -07:00
The Android Automerger
cb278332cb merge in lmp-release history after reset to 84d0683a824fa02dbaa6d1b56a79223804b54e80 2014-08-23 06:09:07 -07:00
Elliott Hughes
84d0683a82 Fix unistd.getpid_caching_and_clone.
This test only works if you're root (strictly: if you have permission to
CLONE_NEWNS), so it's useful to us when we're doing ad hoc testing (since
that's usually done as root), but it's not useful as part of CTS or when
running the tests on the host.

Bug: 16705621
Bug: 17170200
Change-Id: Ia92c871b15f7e45fc174bb59bc95540fd00ae745
2014-08-21 19:23:53 -07:00
The Android Automerger
fe9787ece9 merge in lmp-release history after reset to 1506fc178e9dcd873eaf95535ac7625ebb59388f 2014-08-21 06:09:26 -07:00
Elliott Hughes
2d80400a9e Fix some 32-bit-isms in <stdio.h>.
Bug: 17157793
Change-Id: I8290e240b92e5617f4c12c0eacad6e622e677b6a
2014-08-20 12:14:21 -07:00
The Android Automerger
bae5898f3d merge in lmp-release history after reset to 1506fc178e9dcd873eaf95535ac7625ebb59388f 2014-08-20 06:08:54 -07:00
Dan Albert
1506fc178e Expose android_set_abort_message().
Removes the leading underscores from __android_set_abort_message() and
moves its declaration into a public header file.

Bug: 17059126
Change-Id: I470c79db47ec783ea7a54b800f8b78ecbe7479ab
(cherry picked from commit ce6b1abbb1da797e716d8ec03da4e3b6304fd11d)
(cherry picked from commit 3a25ab952befbe908f6df45805683ebe3bf65863)
2014-08-19 18:46:45 +00:00
The Android Automerger
08f6f664ed merge in lmp-release history after reset to 6df7b609984479c894be81140730578896dbdd8f 2014-08-19 06:08:52 -07:00
Dmitriy Ivanov
e3ad34b3bc Merge "Revert "Add support for protected local symbol lookup."" into lmp-dev 2014-08-18 21:31:41 +00:00
Dmitriy Ivanov
9419420919 Revert "Add support for protected local symbol lookup."
This reverts commit d97e9f546ea195686a78e539315b273393609b9e.

Bug: 17107521
Change-Id: I2b81ce2b5a4a2d166133a2626e49d81b6aef3672
2014-08-18 15:11:50 -07:00
Christopher Ferris
a0108accb2 Fix leak_realloc, copy entire allocation.
Bug: 16874447
Change-Id: Ie54a73fd75529961195fa5173d9116d0ae897b03
2014-08-18 14:10:28 -07:00
Dan Albert
6df7b60998 Hide C++ stuff in libc. Put it back in libstdc++.
Bug: 17062445
Change-Id: I027b186719654c2865b08c3fa83f90fa00c1e838
(cherry picked from commit fd5ee9aebc0a43c7f36a0778c7f416b39ddb870e)
2014-08-18 13:56:07 -07:00
The Android Automerger
58df7d814e merge in lmp-release history after reset to d8e007695c755bba75b7243077271b6d655d818a 2014-08-18 06:08:40 -07:00
The Android Automerger
147ce71ddc merge in lmp-release history after reset to d8e007695c755bba75b7243077271b6d655d818a 2014-08-17 07:14:34 -07:00
Christopher Ferris
9e56ce4cd3 Merge "Fix leak_realloc, copy entire allocation." into lmp-dev 2014-08-16 04:01:11 +00:00
Christopher Ferris
5df0839cea Fix leak_realloc, copy entire allocation.
Bug: 16874447
Change-Id: Ie54a73fd75529961195fa5173d9116d0ae897b03
2014-08-15 18:55:53 -07:00
Dmitriy Ivanov
d8e007695c Merge "Keep symbols for linker" into lmp-dev 2014-08-15 21:23:40 +00:00