OSDN Git Service
Elliott Hughes [Wed, 10 Sep 2014 22:20:40 +0000 (15:20 -0700)]
Fix signal trampolines.
* LP32 should use sa_restorer too. gdb expects this, and future (>= 3.15) x86
kernels will apparently stop supporting the case where SA_RESTORER isn't
set.
* gdb and libunwind care about the exact instruction sequences, so we need to
modify the code slightly in a few cases to match what they're looking for.
* gdb also cares about the exact function names (for some architectures),
so we need to use __restore and __restore_rt rather than __sigreturn and
__rt_sigreturn.
* It's possible that we don't have a VDSO; dl_iterate_phdr shouldn't assume
that getauxval(AT_SYSINFO_EHDR) will return a non-null pointer.
This fixes unwinding through a signal handler in gdb for all architectures.
It doesn't fix libunwind for arm and arm64. I'll keep investigating that...
(cherry picked from commit
36f451a6d93b6807944d99fa23396e039c47e845)
Bug:
17436734
Change-Id: Ic1ea1184db6655c5d96180dc07bcc09628e647cb
Elliott Hughes [Fri, 24 Oct 2014 03:29:42 +0000 (20:29 -0700)]
Use mxcr_mask instead of mxcsr_mask to match glibc.
Bug:
18097559
(cherry picked from commit
f485547b9267263e1de220a3cc368deaec367191)
Change-Id: I242105faa8210abc9635a951b25b127cd64ed23c
Elliott Hughes [Wed, 22 Oct 2014 19:31:02 +0000 (12:31 -0700)]
Update bionic to tzdata2014i.
From the release notes:
Changes affecting future time stamps
Pacific/Fiji will observe DST from 2014-11-02 02:00 to
2015-01-18 03:00. (Thanks to Ken Rylander for the heads-up.)
Guess that future years will use a similar pattern.
A new Zone Pacific/Bougainville, for the part of Papua New
Guinea that plans to switch from UTC+10 to UTC+11 on
2014-12-28 at 02:00. (Thanks to Kiley Walbom for the
heads-up.)
Changes affecting time zone abbreviations
Since Belarus is not changing its clocks even though Moscow
is, the time zone abbreviation in Europe/Minsk is changing
from FET to its more-traditional value MSK on 2014-10-26 at
01:00. (Thanks to Alexander Bokovoy for the heads-up about
Belarus.)
The new abbreviation IDT stands for the pre-1976 use of UT+8
in Indochina, to distinguish it better from ICT (UT+7).
Changes affecting past time stamps
Many time stamps have been corrected for Asia/Ho_Chi_Minh
before 1976 (thanks to Trần Ngọc Quân for an indirect pointer
to Trần Tiến Bình's authoritative book). Asia/Ho_Chi_Minh has
been added to zone1970.tab, to give tzselect users in Vietnam
two choices, since north and south Vietnam disagreed after our
1970 cutoff.
Asia/Phnom_Penh and Asia/Vientiane have been turned into
links, as they differed from existing zones only for older
time stamps. As usual, these changes affect pre-1970 time
stamps only. Their old contents have been moved to the
'backzone' file.
Bug:
18085936
(cherry picked from commit
a05c2a2a705c8298154db6665cbbb4dbe3cdbbd5)
Change-Id: If0253cc1515e1bc98e99c6e24eec797836ca7c27
Christopher Ferris [Wed, 22 Oct 2014 20:16:18 +0000 (20:16 +0000)]
Merge "Fix generic __memcpy_chk implementation." into lmp-mr1-dev
Christopher Ferris [Wed, 22 Oct 2014 19:43:44 +0000 (19:43 +0000)]
Merge "Fix race condition in timer disarm/delete." into lmp-mr1-dev
Christopher Ferris [Fri, 17 Oct 2014 21:08:54 +0000 (14:08 -0700)]
Fix generic __memcpy_chk implementation.
- Clean up the labels (add .L to make them local).
- Change to using cfi directives.
- Fix unwinding of the __memcpy_chk fail path.
Bug:
18033671
(cherry pick from commit
7123d4371a5e04337b1de5f8cdf6cdc1e08e9cad)
Change-Id: Ife93bcbfc1949ef29fc8e2dc515b7120632b82b1
Dmitriy Ivanov [Tue, 21 Oct 2014 19:09:18 +0000 (12:09 -0700)]
Rename library_offset to library_fd_offset
replace lseek() and use pread() instead
add test for library_fd_offset > file_size case
Bug:
17762003
(cherry picked from commit
a6c1279098f24a675d0df74ce1946f5d534b425e)
Change-Id: Ie117c745081ee33d07db5341115ff6c8e98b0dec
Ying Wang [Wed, 8 Oct 2014 23:22:03 +0000 (16:22 -0700)]
Build dlext_testzip as custom module.
Use $(BUILD_SYSTEM)/base_rules to build it as custom module, so that
it's exposed to utilities like mm/mmma etc.
Bug:
17887283
Bug:
17762003
(cherry picked from commit
667853d47770fbdb54aaf0b3261b0d4882725770)
Change-Id: I405797d16f20dc09e5d84b93b6727b634db2fc2c
Christopher Ferris [Tue, 21 Oct 2014 02:09:19 +0000 (19:09 -0700)]
Fix race condition in timer disarm/delete.
When setting a repeat timer using the SIGEV_THREAD mechanism, it's possible
that the callback can be called after the timer is disarmed or deleted.
This happens because the kernel can generate signals that the timer thread
will continue to handle even after the timer is supposed to be off.
Add two new tests to verify that disarming/deleting doesn't continue to
call the callback.
Modify the repeat test to finish more quickly than before.
Refactor the Counter implementation a bit.
Bug:
18039727
Change-Id: I73192c915cdacf608521b1792c54e5af14a34907
Dmitriy Ivanov [Sat, 4 Oct 2014 00:52:44 +0000 (17:52 -0700)]
Add file_offset parameter to android_extinfo
Bug:
17762003
(cherry picked from commit
07e5bc152d8a3ad4c50808bb86f3c0f2c5e2f514)
Change-Id: I72d527831384ff5dde013a4c8dfe639fbec165f5
Hans Boehm [Wed, 1 Oct 2014 01:31:04 +0000 (18:31 -0700)]
Make memory_order_acquire visible in global namespace
We were missing that using directive when including <atomic>.
Bug:
17736764
Change-Id: Ie8ca92a952749415567bcd5fa21d56629a364660
(cherry picked from commit
76ac4d0853c3bba0c65edc98a9cdf932c452e252)
Christopher Ferris [Mon, 13 Oct 2014 19:36:56 +0000 (19:36 +0000)]
Merge "Return total footprint, not high water mark." into lmp-mr1-dev
Christopher Ferris [Fri, 10 Oct 2014 15:40:21 +0000 (08:40 -0700)]
Return total footprint, not high water mark.
The mallinfo usmblks value returned by dlmalloc is a little misleading.
It's not the current max, it's the historical high water mark. This
leads to dumpsys meminfo producing native memory numbers that don't add up.
Change this to the real total footprint, not this high water mark.
Bug:
17265653
Change-Id: Id0293a1b50c9b0be8795405049f537a51ab0e8b7
Christopher Ferris [Fri, 10 Oct 2014 20:47:00 +0000 (20:47 +0000)]
am
c891e240: Add back symbols to fix Greed for Glory franchise.
* commit '
c891e24073830e07ba7373dee554ff2c70e1d313':
Add back symbols to fix Greed for Glory franchise.
Elliott Hughes [Thu, 9 Oct 2014 21:01:47 +0000 (14:01 -0700)]
Fix pthread_attr_getstack under valgrind.
valgrind seems to mess with the stack enough that the kernel will
report "[stack:pid]" rather than "[stack]" in /proc/self/maps, so
switch to the task-specific file instead to force "[stack]". (There
are two conditions in the kernel code that decides which form to
output.)
Bug:
17897476
(cherry picked from commit
9afb2f2106a5d659854c175c574c1c31e0e205a2)
Change-Id: I92c331ef6fb5868af49e75bc595710d290a95f5b
Christopher Ferris [Fri, 10 Oct 2014 01:31:01 +0000 (18:31 -0700)]
Add back symbols to fix Greed for Glory franchise.
Bug:
17813018
Change-Id: Id939426ee5303117b9601e7915fcfec5024fc621
Christopher Ferris [Thu, 9 Oct 2014 22:02:00 +0000 (22:02 +0000)]
am
c9734d24: Re-add dlmalloc for 32 bit.
* commit '
c9734d24d92f4737f5ab3808c77d816a1b084582':
Re-add dlmalloc for 32 bit.
Christopher Ferris [Thu, 9 Oct 2014 05:48:20 +0000 (22:48 -0700)]
Re-add dlmalloc for 32 bit.
It turns out that appportable has a version that calls dlmalloc directly.
Re-add the dlmalloc symbol for 32 bit only as a compatibility shim that
calls malloc.
Bug:
17881362
Change-Id: I8f20963b0b8d323489dc083e4063779e0d1d7447
Elliott Hughes [Wed, 8 Oct 2014 05:24:46 +0000 (05:24 +0000)]
am
1543fdf6: Work around a bug in Immersion\'s libImmEmulatorJ.so.
* commit '
1543fdf616ddebee7819214437527f380e5c743b':
Work around a bug in Immersion's libImmEmulatorJ.so.
Dan Albert [Tue, 7 Oct 2014 18:10:36 +0000 (11:10 -0700)]
Inline helpers need to be exported unmangled.
__open_2() is used by the fortify implementation of open(2) in
fcntl.h, and as such needs an unmangled C name. For some reason
(inlining?), this doesn't cause problems at the default optimization
level, but does for -O0.
The rest of these didn't cause build failures, but they look suspect
and probably will, we just haven't caught them yet.
(cherry-pick of
658727e111ed6dee7be5239494f0764f7b1b02f8 with conflicts
in stdio.h and string.h.)
Bug:
17784968
Change-Id: I7391a7a8999ee204eaf6abd14a3d5373ea419d5b
Nick Kralevich [Mon, 6 Oct 2014 21:49:00 +0000 (14:49 -0700)]
cdefs.h: add artificial attribute to FORTIFY_SOURCE functions
Otherwise the gcc compiler warning doesn't show up.
Add -Wno-error to fortify related tests. Fortify related tests
are expected to be examples of bad programs, and in many
cases shouldn't compile cleanly. Rewriting them to compile
cleanly isn't feasible nor desirable.
Bug:
17784968
(cherry picked from commit
1aaa17802c92d99ae170245c2b2f15a6c27b133e)
Change-Id: Ib6df1a3f44b55b1fff222e78395c10c51cd39817
Elliott Hughes [Tue, 7 Oct 2014 23:02:11 +0000 (16:02 -0700)]
Work around a bug in Immersion's libImmEmulatorJ.so.
This library calls pthread_mutex_lock and pthread_mutex_unlock with a NULL
pthread_mutex_t*. This gives them (and their users) one release to fix things.
Bug:
17443936
(cherry picked from commit
7d3f553f989f830976efa92ddc3c84661d4d42aa)
Change-Id: Ie26bbecd3a74d61113b51c18832872499b97ee86
(cherry picked from commit
b5e7eba6d1b97e471996fcfe7dbde7cbba7512ef)
Elliott Hughes [Tue, 7 Oct 2014 23:02:11 +0000 (16:02 -0700)]
Work around a bug in Immersion's libImmEmulatorJ.so.
This library calls pthread_mutex_lock and pthread_mutex_unlock with a NULL
pthread_mutex_t*. This gives them (and their users) one release to fix things.
Bug:
17443936
(cherry picked from commit
7d3f553f989f830976efa92ddc3c84661d4d42aa)
Change-Id: Ie26bbecd3a74d61113b51c18832872499b97ee86
Elliott Hughes [Tue, 7 Oct 2014 18:51:36 +0000 (18:51 +0000)]
Merge "Improve <sys/cdefs.h>." into lmp-mr1-dev
Elliott Hughes [Mon, 18 Aug 2014 21:45:42 +0000 (14:45 -0700)]
Improve <sys/cdefs.h>.
Fix and use __RENAME (and lose ___RENAME --- two underscores should be
enough for anybody). This was the point of this change, because I want
to use __RENAME to support the two basename variants and the two
strerror_r variants.
Lose a bunch of macros that weren't being used.
Lose three dead files from the DNS code.
Bug:
17784968
(cherry picked from commit
2cfb4e8e2e217ef0e4140dcbf9b3da809781158c)
Change-Id: I5e96146f92c0521248c78c0933bec5e9a9818222
Christopher Ferris [Tue, 7 Oct 2014 17:42:39 +0000 (17:42 +0000)]
am
2cf15571: am
40bc7cd4: (-s ours) DO NOT MERGE Re-add .save directive for arm assembler code.
* commit '
2cf155713aaba451065d593335d544f2ada24ddf':
DO NOT MERGE Re-add .save directive for arm assembler code.
Christopher Ferris [Tue, 7 Oct 2014 15:27:36 +0000 (15:27 +0000)]
am
40bc7cd4: (-s ours) DO NOT MERGE Re-add .save directive for arm assembler code.
* commit '
40bc7cd4ed9fb848a7b3d934f69669f64ceed707':
DO NOT MERGE Re-add .save directive for arm assembler code.
Elliott Hughes [Tue, 7 Oct 2014 00:30:34 +0000 (00:30 +0000)]
Merge "further cleanup memcpy fortify implementation" into lmp-mr1-dev
Christopher Ferris [Tue, 7 Oct 2014 00:20:10 +0000 (00:20 +0000)]
am
d11eac34: Force export symbols on all x86 variants in libc.
* commit '
d11eac3455a059a092ceee92eda9905e1d661e94':
Force export symbols on all x86 variants in libc.
Nick Kralevich [Sun, 5 Oct 2014 13:52:24 +0000 (06:52 -0700)]
further cleanup memcpy fortify implementation
Bug:
17784968
(cherry picked from commit
b84f667e9312611536a564700daea11c12b6fcfa)
Change-Id: I68fc2cc0a1ee7f0887edf3681eb83ef678de1383
Christopher Ferris [Mon, 6 Oct 2014 22:11:28 +0000 (15:11 -0700)]
Force export symbols on all x86 variants in libc.
For silvermont, the __popcountsi2 symbol does not get exported by libc.
But for atom, this symbol is exported. Since we already exported this symbol
for previous releases, it's better to just follow through and force
the export, but only for 32 bit. x86 64 bit will not export this symbol.
Bug:
17681440
Change-Id: I6c62245f0960910f64baaaf6d9d090bf3ea5f435
Nick Kralevich [Sat, 4 Oct 2014 22:20:00 +0000 (15:20 -0700)]
string.h: remove unused variable
(cherry picked from commit
48be71d02b6cc4e6493d38cdd6b7779032c38901)
Bug:
17784968
Change-Id: Iac7732fb4f7fe42977cb9f62472bb636e17e5232
Alex Van Brunt [Sat, 4 Oct 2014 16:44:11 +0000 (16:44 +0000)]
am
a5087148: Reimplement clock(3) using clock_gettime(3)
* commit '
a508714800242b294291060641ed35d719bdc857':
Reimplement clock(3) using clock_gettime(3)
Alex Van Brunt [Fri, 26 Sep 2014 20:32:47 +0000 (13:32 -0700)]
Reimplement clock(3) using clock_gettime(3)
Unlike times(), clock_gettime() is implemented as a vDSO on many architectures.
So, using clock_gettime() will return a more accurate time and do so with less
overhead because it does have the overhead of calling into the kernel.
It is also significantly more accurate because it measures the actual time in
nanoseconds rather than the number of ticks (typically 1 millisecond or more).
Bug:
17814435
(cherry picked from commit
8d0b2dbf2154d5da17ff09b1d4f864d281362ad2)
Change-Id: Id4945d9f387330518f78669809639952e9227ed9
Elliott Hughes [Sat, 4 Oct 2014 00:06:27 +0000 (00:06 +0000)]
am
ea9800e9: Explain why clock(3) isn\'t broken.
* commit '
ea9800e98598c71fe76c4e2a0d0498b6bd490a83':
Explain why clock(3) isn't broken.
Elliott Hughes [Fri, 12 Sep 2014 23:33:37 +0000 (16:33 -0700)]
Explain why clock(3) isn't broken.
Bug:
17441123
Bug:
17814435
(cherry picked from commit
f83c208b82c78dad07f4065f63bdd354f5ef9951)
Change-Id: I2065afe73b79a8d86404edee16e983625d902cdc
Ningsheng Jian [Tue, 16 Sep 2014 07:22:10 +0000 (15:22 +0800)]
Fix gdb could not get shared library list issue
Get dynamic flags from phdr table's correct entry rather the first
entry, so that the following DT_DEBUG entry can be set.
Also fix the undefined reference to LoadTask::deleter issue under gcc
-O0 option.
Bug:
17524778
(cherry picked from commit
e93be99da0614ff38cbf8b2bb0624ff1dc79b8d0)
Change-Id: I347792dab25c7b19c3fc690e03d20899ce1e26e0
Dmitriy Ivanov [Wed, 1 Oct 2014 23:26:49 +0000 (16:26 -0700)]
L-MR1 specific fixes
Reset soinfo version to 0.
Disable ifunc test for arm64 because of old toolchain
in lmp-mr1-dev branch
Note: this commit should be reverted in -plus-aosp branch.
Change-Id: I2d6d996d43bc35d5d4975c745779f43a988b31e6
Dmitriy Ivanov [Tue, 9 Sep 2014 17:21:42 +0000 (10:21 -0700)]
Fix unload of recursively linked library
Expanded test for recursive libs. Fixed bug with unnecessary
soinfo_free of already loaded library.
(cherry picked from commit
a6ac54a215d6b64f5cc5a59b66c1dbfbb41ea9f5)
Change-Id: I6907c723d9fbdf6b2777f3f236b1e29b0843edd6
Dmitriy Ivanov [Thu, 11 Sep 2014 22:16:03 +0000 (15:16 -0700)]
Add IFUNC support for arm64 and IRELATIVE reloc
There are number of changes in the way IFUNC related relocations are done:
1. IRELATIVE relocations are now supported for x86/x86_64 and arm64.
2. IFUNC relocations are now relying on static linker to generate
them in correct order - this removes necessety of additional
relocation pass for ifuncs.
3. Related to 2: rela?.dyn relocations are preformed before .plt ones.
4. Ifunc are resolved on symbol lookup this approach allowed to avoid
mprotect(PROT_WRITE) call on r-x program segments.
Bug:
17399706
Bug:
17177284
(cherry picked from commit
9aea164457c269c475592da36b4655d45f55c7bc)
Change-Id: Ie19d900fc203beb93faf8943b0d06d534a6de4ad
Dmitriy Ivanov [Mon, 8 Sep 2014 23:22:22 +0000 (16:22 -0700)]
Refactoring: C++11 style DISABLE_ bionic marcos
Enable the -std=gnu++11 flag for libstdc++ static and
dynamic libs.
ScopeGuard uses DISABLE_ macros instead of '= delete';
(cherry picked from commit
d9ff7226613014056c9edd79a68dc5af939107a0)
Change-Id: If2573d080770e18b36b56106f2369f7bb682cd3c
Dmitriy Ivanov [Thu, 4 Sep 2014 19:47:07 +0000 (12:47 -0700)]
Reset enviroment for math_tests
Bug:
17390824
(cherry picked from commit
7b956ede3f0f40bd8a085a8ad3729bb3e0e030f2)
Change-Id: I5d804ceb5e69533584161bfed6787529cd8296fb
Dmitriy Ivanov [Fri, 5 Sep 2014 23:42:53 +0000 (16:42 -0700)]
Load libraries in breadth-first order
This patch fixes the problem with symbol search order
for dlsym(RTLD_DEFAULT/RTLD_NEXT, .) by loading libraries
and ld_preloads in correct order.
Bug: https://code.google.com/p/android/issues/detail?id=74255
Attempt: 2
(cherry picked from commit
14669a939d113214a4a20b9318fca0992d5453f0)
Change-Id: Id87540c96a2242220967b6fa5d84ddcd829e2b97
Dmitriy Ivanov [Fri, 5 Sep 2014 21:57:59 +0000 (14:57 -0700)]
Revert "Load libraries in breadth-first order"
This reverts commit
a3ad450a2e3fb6b3fe359683b247eba20896f646.
(cherry picked from commit
498eb18b82a425f9f30132e4832f327b2ee0e545)
Change-Id: Iec7eab83d0c0ed1604e1e8ea3f9e9d0ce1d29680
Dmitriy Ivanov [Fri, 5 Sep 2014 01:23:00 +0000 (18:23 -0700)]
Fix order of soinfo links (repairs libcxx tests).
(cherry picked from commit
b2a30ee8d209154efc367db11b4167a5d6db605f)
Change-Id: I59c5333bc050cbbea14051cea9220be2f64ee383
Dmitriy Ivanov [Tue, 29 Jul 2014 21:21:45 +0000 (14:21 -0700)]
Load libraries in breadth-first order
This patch fixes the problem with symbol search order
for dlsym(RTLD_DEFAULT/RTLD_NEXT, .) by loading libraries
and ld_preloads in correct order.
Bug: https://code.google.com/p/android/issues/detail?id=74255
(cherry picked from commit
a3ad450a2e3fb6b3fe359683b247eba20896f646)
Change-Id: I1125de10272c84e4f075cbc72859c1f6b3e89943
Chih-Hung Hsieh [Thu, 4 Sep 2014 22:19:52 +0000 (15:19 -0700)]
Enable clang compilation with libc but not linker.
Clang is still disabled for x86 and x86_64 long double code,
for x86_64 special assembly instruction, and the linker module.
BUG:
17163651
BUG:
17302991
BUG:
17403674
(cherry picked from commit
b58db8b083ce41798a5310616e4f20885cec611f)
Change-Id: I916c05056d37a9c287b0a5ae3b1a209d98c8f70e
Dmitriy Ivanov [Tue, 2 Sep 2014 18:47:23 +0000 (11:47 -0700)]
Encapsulate soinfo_link_image and soinfo_relocate
Also get rid of needed[] array for these functions
(cherry picked from commit
29bbc9dd4c606de9187e46d8899a2a744715c967)
Change-Id: Id208621f66afa2e02a6b3facacee7d874466d81b
Dmitriy Ivanov [Tue, 2 Sep 2014 16:45:40 +0000 (09:45 -0700)]
Implement LinkedList::visit()
(cherry picked from commit
a4926058496c1c24c00ac07e42d45048dac7c487)
Change-Id: I59554be45c910bfe33494016595a5ade9daad230
Dmitriy Ivanov [Mon, 1 Sep 2014 23:15:52 +0000 (16:15 -0700)]
Introduce size-based r/w allocators
(cherry picked from commit
0cd83ebb0e9784827d9ec0a8028a710e73a28b2b)
Change-Id: Ib037bd5313c9a78b6051482f14e789aa820b4dd1
Dmitriy Ivanov [Fri, 29 Aug 2014 21:01:48 +0000 (14:01 -0700)]
Erase elements in LinkedList::remove_if
(cherry picked from commit
4bea498544bb1377f610520d7f58856382a6e5fc)
Change-Id: I1ffe248bc2b7572f38fbd987e9c6db5ecbd4559d
Dmitriy Ivanov [Fri, 29 Aug 2014 19:02:36 +0000 (12:02 -0700)]
Replace NULL with nullptr
(cherry picked from commit
851135bf9941b3813adb9b4f43d76e040c4ba157)
Change-Id: Ic4997907680db7472ef38ffb0f0ca66fff37b797
Dmitriy Ivanov [Tue, 26 Aug 2014 22:56:31 +0000 (15:56 -0700)]
Remove unnecessary calls to LinkedList::clear()
(cherry picked from commit
608217e1674d8fd8b334fe18c753b6c4638ed783)
Change-Id: I031359d79b2e77977ace197ef410e41539dc0ce6
Dmitriy Ivanov [Tue, 26 Aug 2014 21:16:52 +0000 (14:16 -0700)]
Enable __cxa_atexit && __cxa_finalize for linker
This allows adding destructors to classes used
for global variables.
(cherry picked from commit
14241402de0faa4b244b1bd6b1f0799ce169b880)
Change-Id: I1d8776130d1e01a8c53d23a2949f5010f4c96b16
Dmitriy Ivanov [Fri, 22 Aug 2014 19:25:04 +0000 (12:25 -0700)]
Bump soinfo version
This includes:
1. Placing has_ifunc after fields with version = 0
2. Switch to has_min_version(v) function.
3. Minor soinfo initialization refactoring (placement new + ctor)
(cherry picked from commit
0d15094287fe0f288d9c258953143fc1998b6b5a)
Change-Id: Idf135fdd3d4826b5653f32add2adc6db5d4a4f95
Dmitriy Ivanov [Thu, 21 Aug 2014 20:54:03 +0000 (13:54 -0700)]
Run constructors before resolving ifunc functions
Bug:
17177284
(cherry picked from commit
9598b8c415e2fa9f240508185fe8c964b83f538d)
Change-Id: I2c9631ee1cd77f8cf95ec0216a35b605c8786454
Brigid Smith [Wed, 23 Jul 2014 18:22:25 +0000 (11:22 -0700)]
Added test for ifunc support in dynamic linker.
ifuncs now work in i386 and x86_64 when called in the same library as
well as in a different library.
Bug:
6657325
(cherry picked from commit
c5a13efa9bc4264be0a9a9e37c00633af01584ed)
Change-Id: I321d780bc2f9bd1baa749e1acacd2683aefe827b
Elliott Hughes [Wed, 1 Oct 2014 18:02:51 +0000 (18:02 +0000)]
Merge "Update bionic to tzdata 2014h." into lmp-mr1-dev
Elliott Hughes [Wed, 1 Oct 2014 00:35:38 +0000 (17:35 -0700)]
Update bionic to tzdata 2014h.
From the release notes:
Changes affecting past time stamps
America/Jamaica's 1974 spring-forward transition was Jan. 6, not Apr. 28.
Shanks says Asia/Novokuznetsk switched from LMT (not "NMT") on 1924-05-01,
not 1920-01-06. The old entry was based on a misinterpretation of Shanks.
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/Blantyre, Africa/Bujumbura,
Africa/Gaborone, Africa/Harare, Africa/Kigali, Africa/Lubumbashi,
Africa/Lusaka, Africa/Maseru, and Africa/Mbabane.
Bug:
17731498
(cherry picked from commit
0c8fb51e6b8cfcd00d453cb5ebfa516f02009854)
Change-Id: Icf8a9cbd309951b4ffc20c74eb1e78c1e39c222f
Elliott Hughes [Wed, 1 Oct 2014 00:30:01 +0000 (17:30 -0700)]
Fix update-tzdata.py to rebuild icu4c .dat file.
Bug:
17731498
(cherry picked from commit
f8896c6c93fd698b129742780878123a3a19ae07)
Change-Id: If97e1ccf593a2ed6c2356077e660d6fd88a05875
Elliott Hughes [Thu, 25 Sep 2014 03:06:29 +0000 (03:06 +0000)]
Merge "Re-expose more stdio implementation details for LP32." into lmp-dev
Elliott Hughes [Thu, 25 Sep 2014 00:20:53 +0000 (17:20 -0700)]
Re-expose more stdio implementation details for LP32.
Keeps a variety of apps running.
Bug:
17047819
Change-Id: I55882ec95f2b59a5df76e5a89c23aa315609e01d
Christopher Ferris [Wed, 24 Sep 2014 23:01:18 +0000 (16:01 -0700)]
Fix sys_stat.mkfifo when not run as root.
It's not allowed for a shell user to create a fifo in /data/local/tmp.
Make the test do nothing if not run as root.
Bug:
17646702
Change-Id: I932262fa233eae8b5dd607a2398a47c50a208701
Dan Albert [Tue, 23 Sep 2014 22:32:24 +0000 (15:32 -0700)]
Fix incorrect parameter types for locale funcs.
strtoll(3), strtoull(3), wcstoll(3), and wcstoull(3) all take an _int_
as a base, not a size_t. This is an ABI compatibility issue.
Bug:
17628622
Change-Id: I17f8eead34ce2112005899fc30162067573023ec
(cherry picked from commit
3c5037f1b3b747e79d17a5f717d9f9c365132d33)
Christopher Ferris [Sun, 14 Sep 2014 19:08:37 +0000 (12:08 -0700)]
Pull input.h from v3.16.1 kernel headers.
Bug:
17407564
Change-Id: Idcfc40a7254605280e3d5474c61ae1ab7b2b7b51
Elliott Hughes [Thu, 11 Sep 2014 23:41:11 +0000 (16:41 -0700)]
Expose __swsetup for LP32 binary compatibility.
Bug:
17476127
Change-Id: I0ef1355ac913d782c268a638f88642d6cfc236c2
Elliott Hughes [Thu, 11 Sep 2014 23:11:43 +0000 (16:11 -0700)]
Add pthread_gettid_np and re-expose __get_thread for LP32.
A lot of third-party code calls the private __get_thread symbol,
often as part of a backport of bionic's pthread_rwlock implementation.
Hopefully this will go away for LP64 (since you're guaranteed the
real implementation there), but there are still APIs that take a tid
and no way to convert between a pthread_t and a tid. pthread_gettid_np
is a public API for that. To aid the transition, make __get_thread
available again for LP32.
Bug:
14079438
Change-Id: I43fabc7f1918250d31d4665ffa4ca352d0dbeac1
Elliott Hughes [Thu, 11 Sep 2014 17:10:08 +0000 (10:10 -0700)]
Fix mips __fadvise64.S build failure.
Bug:
12449798
(cherry picked from commit
9990b3973bdfcda5419c06886215147a878222f1)
Change-Id: Iba92e2aa262666a59fc38b870dfd9f4082eeb628
Elliott Hughes [Thu, 11 Sep 2014 15:43:05 +0000 (15:43 +0000)]
Merge "Add posix_fadvise(3)." into lmp-dev
Elliott Hughes [Thu, 11 Sep 2014 00:39:00 +0000 (17:39 -0700)]
Add posix_fadvise(3).
Bug:
12449798
Change-Id: I07cbf3f670a0d1304b68148325a774f266b5c433
Lorenzo Colitti [Mon, 8 Sep 2014 09:09:43 +0000 (18:09 +0900)]
When comparing DNS server configs, also compare number of servers
Bug:
16070602
Change-Id: I605f1cca50b08479ebcad290b3bd179f59be8a96
Elliott Hughes [Mon, 8 Sep 2014 22:25:01 +0000 (15:25 -0700)]
Ensure __set_errno is still visible on LP32.
The use of the .hidden directive to avoid going via the PLT for
__set_errno had the side-effect of actually making __set_errno
hidden (which is odd because assembler directives don't usually
affect symbols defined in a different file --- you can't even
create a weak reference to a symbol that's defined in a different
file).
This change switches the system call stubs over to a new always-hidden
__set_errno_internal and has a visible __set_errno on LP32 just for
binary compatibility with old NDK apps.
Bug:
17423135
Change-Id: I6b6d7a05dda85f923d22e5ffd169a91e23499b7b
Elliott Hughes [Mon, 8 Sep 2014 18:07:07 +0000 (18:07 +0000)]
Merge "Don't expose non-standard basename_r and dirname_r in LP64." into lmp-dev
Elliott Hughes [Mon, 8 Sep 2014 17:25:33 +0000 (10:25 -0700)]
Add arc4random_addrandom binary compatibility.
This was in <stdlib.h> in older releases. It's no longer used, but we can
preserve backwards compatibility by making it a no-op.
Bug:
16205834
Change-Id: Idde7b46df4f253e39675600bcf82352879a716e7
Christopher Ferris [Sat, 6 Sep 2014 19:58:39 +0000 (19:58 +0000)]
Merge "Add dlmalloc_usable_size for 32 bit arches." into lmp-dev
Christopher Ferris [Fri, 5 Sep 2014 23:39:22 +0000 (16:39 -0700)]
Add dlmalloc_usable_size for 32 bit arches.
Bug:
17337831
Change-Id: I50c50559a5dfa083c85f064042bc0726718c988b
Elliott Hughes [Fri, 5 Sep 2014 23:12:42 +0000 (16:12 -0700)]
Don't expose non-standard basename_r and dirname_r in LP64.
Bug:
17407423
Change-Id: I47fe499a4c396bf09d7b78fd828728d04777398b
Elliott Hughes [Thu, 4 Sep 2014 23:09:25 +0000 (16:09 -0700)]
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
Elliott Hughes [Wed, 3 Sep 2014 22:53:11 +0000 (15:53 -0700)]
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
Elliott Hughes [Tue, 2 Sep 2014 21:39:02 +0000 (21:39 +0000)]
Merge "Upgrade bionic to tzdata2014g." into lmp-dev
Hans Boehm [Thu, 28 Aug 2014 22:21:32 +0000 (15:21 -0700)]
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)
Elliott Hughes [Tue, 2 Sep 2014 16:44:33 +0000 (09:44 -0700)]
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
Hans Boehm [Tue, 26 Aug 2014 22:58:15 +0000 (15:58 -0700)]
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)
Hans Boehm [Tue, 19 Aug 2014 23:14:01 +0000 (16:14 -0700)]
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)
Dmitriy Ivanov [Mon, 1 Sep 2014 21:08:54 +0000 (21:08 +0000)]
Merge "Look into ld_preloads before current library" into lmp-dev
Elliott Hughes [Fri, 29 Aug 2014 22:54:11 +0000 (15:54 -0700)]
Use __GNUC_PREREQ rather than __GNUC_PREREQ__ to match glibc.
Bug:
16874785
(cherry picked from commit
e0c56efddf55ad40cb35b2c22e1dd9b4b50df159)
Change-Id: I9c922ba019f648766fc399d1c4e35e789e25acd4
Dmitriy Ivanov [Fri, 29 Aug 2014 17:15:25 +0000 (10:15 -0700)]
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
Elliott Hughes [Wed, 27 Aug 2014 22:32:01 +0000 (15:32 -0700)]
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
Elliott Hughes [Wed, 27 Aug 2014 23:49:56 +0000 (23:49 +0000)]
Merge "Fix pthread_getattr_np for the main thread." into lmp-dev
Christopher Ferris [Wed, 27 Aug 2014 22:42:11 +0000 (22:42 +0000)]
Merge "Replace snprintf calls in linker." into lmp-dev
Christopher Ferris [Wed, 27 Aug 2014 03:48:11 +0000 (20:48 -0700)]
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
Elliott Hughes [Wed, 27 Aug 2014 17:25:23 +0000 (17:25 +0000)]
Merge "call uselocale() before freelocale() to make sure that g_local_key has a valid locale." into lmp-dev
Wally Yau [Tue, 26 Aug 2014 16:47:23 +0000 (09:47 -0700)]
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
Christopher Ferris [Tue, 26 Aug 2014 22:47:42 +0000 (15:47 -0700)]
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
Elliott Hughes [Tue, 26 Aug 2014 00:26:50 +0000 (17:26 -0700)]
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
Elliott Hughes [Fri, 22 Aug 2014 02:23:53 +0000 (19:23 -0700)]
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
Elliott Hughes [Wed, 20 Aug 2014 19:14:21 +0000 (12:14 -0700)]
Fix some 32-bit-isms in <stdio.h>.
Bug:
17157793
Change-Id: I8290e240b92e5617f4c12c0eacad6e622e677b6a
Dan Albert [Mon, 18 Aug 2014 21:37:42 +0000 (14:37 -0700)]
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)
Dmitriy Ivanov [Tue, 19 Aug 2014 12:14:39 +0000 (12:14 +0000)]
Merge "Revert "Add support for protected local symbol lookup."" into lmp-dev
Dmitriy Ivanov [Mon, 18 Aug 2014 22:08:51 +0000 (15:08 -0700)]
Revert "Add support for protected local symbol lookup."
This reverts commit
d97e9f546ea195686a78e539315b273393609b9e.
Bug:
17107521
Change-Id: I2b81ce2b5a4a2d166133a2626e49d81b6aef3672