OSDN Git Service

android-x86/bionic.git
8 years agoMerge "Modify ip to get the instr being executed."
Christopher Ferris [Wed, 19 Aug 2015 18:25:38 +0000 (18:25 +0000)]
Merge "Modify ip to get the instr being executed."

8 years agoMerge "Add a TLS slot for TSAN."
Dan Albert [Tue, 18 Aug 2015 22:43:47 +0000 (22:43 +0000)]
Merge "Add a TLS slot for TSAN."

8 years agoModify ip to get the instr being executed.
Christopher Ferris [Tue, 18 Aug 2015 22:41:31 +0000 (15:41 -0700)]
Modify ip to get the instr being executed.

The ip values being reported are always pointing at the next
instruction to execute, not the currently executing instruction.
Change the ip address to point at the currently executing instruction.

This fixes a problem where the next instruction is not actually
part of the same function, so if an addr2line is used, it reports
the wrong value.

This does not modify the ip for mips.

Bug: 22565486
Change-Id: Ie0df4c9727f62ce06948b9a2b0e4b7956eb6e752

8 years agoAdd a TLS slot for TSAN.
Dan Albert [Tue, 18 Aug 2015 22:09:00 +0000 (15:09 -0700)]
Add a TLS slot for TSAN.

This is so TSAN won't need to rely on pthread_getspecific for finding
the current thread state.

Change-Id: Id3befeabec0a9f7ca77b5549fbc427e22e6aaa34

8 years agoMerge "Add optimized cortex-a7/cortex-a53 memset/memcpy."
Christopher Ferris [Tue, 18 Aug 2015 17:18:11 +0000 (17:18 +0000)]
Merge "Add optimized cortex-a7/cortex-a53 memset/memcpy."

8 years agoMerge "libc: remove bcopy from memmove on 64-bit architectures"
Elliott Hughes [Tue, 18 Aug 2015 00:23:49 +0000 (00:23 +0000)]
Merge "libc: remove bcopy from memmove on 64-bit architectures"

8 years agoMerge "Don't attach linker_asan to linker in module definition."
Ying Wang [Tue, 18 Aug 2015 00:07:03 +0000 (00:07 +0000)]
Merge "Don't attach linker_asan to linker in module definition."

8 years agoDon't attach linker_asan to linker in module definition.
Ying Wang [Mon, 17 Aug 2015 23:17:03 +0000 (16:17 -0700)]
Don't attach linker_asan to linker in module definition.

With this change, we only define the rules to create the symlinks in
this Android.mk but without attaching the symlinks to the module linker.
Instead the core build system will set up the dependency whenever a
module needs these symlinks.

Bug: 22850550
Change-Id: I36c58fd411f1c27f3f638b229699d7dc1d66abb2

8 years agolibc: remove bcopy from memmove on 64-bit architectures
Jake Weinstein [Sun, 16 Aug 2015 00:44:40 +0000 (00:44 +0000)]
libc: remove bcopy from memmove on 64-bit architectures

* bcopy is deprecated on LP64 by the following commit:

  https://android.googlesource.com/platform/bionic/+/ce9ce28e5d760e32ab6c894dfaf7b8dad6de7ff6

Change-Id: I6849916f0ec4a2d0db9a360999ad1dc8edda952b

8 years agoAdd optimized cortex-a7/cortex-a53 memset/memcpy.
Christopher Ferris [Fri, 24 Jul 2015 03:27:42 +0000 (20:27 -0700)]
Add optimized cortex-a7/cortex-a53 memset/memcpy.

Add an optimized memset that is ~20% faster for cortex-a7 and
cortex-a53.

Add a 32 bit optimized cortex-a53 memcpy that is about ~20% faster
on cached data.

Fix the cortex-a15 __str{cat,cpy}_chk.S, memcpy_base.S to remove
the phony functions, since they aren't needed any more. Then add
a direct include of these for cortex-a53.

Verified the new functions by stepping through all of the major
paths and verifying the backtrace is still correct.

Bug: 22696180
Change-Id: Iec92a3f82d51243cca76c9aff9f35d920ff865ae

8 years agoMerge "Use __builtin_* in <math.h>."
Elliott Hughes [Fri, 14 Aug 2015 22:57:10 +0000 (22:57 +0000)]
Merge "Use __builtin_* in <math.h>."

8 years agoUse __builtin_* in <math.h>.
Elliott Hughes [Fri, 14 Aug 2015 21:04:30 +0000 (14:04 -0700)]
Use __builtin_* in <math.h>.

Also remove cruft meant to support long-obsolete compilers. More
benchmarks.

Bug: http://b/23195789
Change-Id: Ief538e41e77a77e8013b2f4f359584e8df2c47d8

8 years agoMerge "libm: ARM: reorganize a bit to match ARM64"
Elliott Hughes [Fri, 14 Aug 2015 21:09:26 +0000 (21:09 +0000)]
Merge "libm: ARM: reorganize a bit to match ARM64"

8 years agolibm: ARM: reorganize a bit to match ARM64
Jake Weinstein [Thu, 13 Aug 2015 23:00:49 +0000 (23:00 +0000)]
libm: ARM: reorganize a bit to match ARM64

* Cleaner naming, especially if there are more ARM-specific routines in
  the future.

Change-Id: Id29db728800ccd612a906e86ccb95c1e7620514d

8 years agoMerge "[MIPS] Invalidate cached pid in vfork."
Elliott Hughes [Wed, 12 Aug 2015 02:28:25 +0000 (02:28 +0000)]
Merge "[MIPS] Invalidate cached pid in vfork."

8 years ago[MIPS] Invalidate cached pid in vfork.
Duane Sand [Wed, 12 Aug 2015 00:00:56 +0000 (17:00 -0700)]
[MIPS] Invalidate cached pid in vfork.

Bug: http://b/23008979
Change-Id: I43e0c7db42602441313af4607a992caa8c7d6221

8 years agoMerge "Fix test steps for 64-bit bionic"
Dan Albert [Wed, 12 Aug 2015 01:58:18 +0000 (01:58 +0000)]
Merge "Fix test steps for 64-bit bionic"

8 years agoMerge "Add missing include."
Dan Albert [Wed, 12 Aug 2015 00:28:07 +0000 (00:28 +0000)]
Merge "Add missing include."

8 years agoFix test steps for 64-bit bionic
Duane Sand [Wed, 12 Aug 2015 00:21:27 +0000 (17:21 -0700)]
Fix test steps for 64-bit bionic

Change-Id: Ibe76f22cdb5c0dbc69a24ffd0acffff89686ca35

8 years agoAdd missing include.
Dan Albert [Tue, 11 Aug 2015 23:46:26 +0000 (16:46 -0700)]
Add missing include.

libc++ cleaned up a leaky header.

Change-Id: I5ac0f43a075257a9138a82be379c9cffe96e0ab9

8 years agoMerge "Move up to C++14."
Dan Albert [Mon, 10 Aug 2015 23:45:48 +0000 (23:45 +0000)]
Merge "Move up to C++14."

8 years agoMove up to C++14.
Dan Albert [Mon, 10 Aug 2015 23:40:06 +0000 (16:40 -0700)]
Move up to C++14.

The default standard version is now ahead of us. Stop specifying C++11
so we get that too.

Change-Id: Ic96942cd7fd134118e29b744601b0119e49b6ac4

8 years agoMerge "Omit comment when reading --gtest_list_tests option's output."
Yabin Cui [Mon, 10 Aug 2015 22:01:07 +0000 (22:01 +0000)]
Merge "Omit comment when reading --gtest_list_tests option's output."

8 years agoMerge "Invalidate cached pid in vfork."
Elliott Hughes [Mon, 10 Aug 2015 19:47:11 +0000 (19:47 +0000)]
Merge "Invalidate cached pid in vfork."

8 years agoOmit comment when reading --gtest_list_tests option's output.
Yabin Cui [Mon, 10 Aug 2015 19:12:39 +0000 (12:12 -0700)]
Omit comment when reading --gtest_list_tests option's output.

Gtest add comments when listing typed tests. And we should omit them.

Bug: 23040880
Change-Id: If6034af301337fc06eeab294d2dbe5317a6b7f91

8 years agoInvalidate cached pid in vfork.
Elliott Hughes [Sat, 8 Aug 2015 01:27:47 +0000 (18:27 -0700)]
Invalidate cached pid in vfork.

Bug: http://b/23008979
Change-Id: I1dd900ac988cdbe10aad3abc53240c5d352891d5

8 years agoMerge "Bionic: Add a TLS slot for ART for Thread self"
Andreas Gampe [Tue, 4 Aug 2015 22:35:34 +0000 (22:35 +0000)]
Merge "Bionic: Add a TLS slot for ART for Thread self"

8 years agoMerge "name the arc4random structure mappings"
Elliott Hughes [Tue, 4 Aug 2015 00:58:57 +0000 (00:58 +0000)]
Merge "name the arc4random structure mappings"

8 years agoMerge "Cherrypick upstream fnmatch.c fix."
Elliott Hughes [Mon, 3 Aug 2015 18:22:42 +0000 (18:22 +0000)]
Merge "Cherrypick upstream fnmatch.c fix."

8 years agoCherrypick upstream fnmatch.c fix.
Elliott Hughes [Mon, 3 Aug 2015 18:11:22 +0000 (11:11 -0700)]
Cherrypick upstream fnmatch.c fix.

Bug: http://b/22855370
Change-Id: I3865cff1e2ffeb6709cea092be3770c1bebf1623

8 years agoMerge "[MIPS] Link .dex or .oat code lacking .MIPS.abiflags segment"
Elliott Hughes [Mon, 3 Aug 2015 15:17:18 +0000 (15:17 +0000)]
Merge "[MIPS] Link .dex or .oat code lacking .MIPS.abiflags segment"

8 years agoname the arc4random structure mappings
Daniel Micay [Sun, 2 Aug 2015 02:25:42 +0000 (22:25 -0400)]
name the arc4random structure mappings

Change-Id: I6e150e526f6ceee31aa9bd219fa45317d5a729cb

8 years agoMerge "add a fortified implementation of getcwd"
Yabin Cui [Sat, 1 Aug 2015 05:14:20 +0000 (05:14 +0000)]
Merge "add a fortified implementation of getcwd"

8 years agoadd a fortified implementation of getcwd
Daniel Micay [Wed, 20 May 2015 19:31:26 +0000 (15:31 -0400)]
add a fortified implementation of getcwd

Change-Id: Ice3e6d3e1ff07788305dc85f8ee4059baad5fac4

8 years ago[MIPS] Link .dex or .oat code lacking .MIPS.abiflags segment
Duane Sand [Tue, 28 Jul 2015 21:04:29 +0000 (14:04 -0700)]
[MIPS] Link .dex or .oat code lacking .MIPS.abiflags segment

This corrects an issue with mips32 Art on mips64r6 Android, where
Java ran slowly due to unintended use of kernel-trap emulation of
single-precision floating point registers. This also regressed all
Art tests due to an extra logcat line
    WARNING: linker: Using FRE=1 mode to run "..."

When targeting mips32r6, Art generates modeless or FR=1 floating point
code, same as Android's own native mips32r6 modules. So the trapping was
unneeded. Linker was confusing Art-generated modules with those from
old NDK compilers, which do need that trapping mode.

This linker filename check may become unnecessary, if Art learns how to
generate .MIPS.abiflags segments in its generated elf-like codefiles.

Change-Id: I18069d1234960c680c5df739514da09015a7fdb6

8 years agoMerge "Sync current upstream fnmatch.c."
Elliott Hughes [Fri, 31 Jul 2015 18:04:38 +0000 (18:04 +0000)]
Merge "Sync current upstream fnmatch.c."

8 years agoSync current upstream fnmatch.c.
Elliott Hughes [Fri, 31 Jul 2015 17:57:27 +0000 (10:57 -0700)]
Sync current upstream fnmatch.c.

Bug: http://b/22855370
Change-Id: I589f849aaede3b69b6b3682989bab7d8649dcd97

8 years agoMerge "Revert "add a fortified implementation of getcwd""
Elliott Hughes [Fri, 31 Jul 2015 17:33:05 +0000 (17:33 +0000)]
Merge "Revert "add a fortified implementation of getcwd""

8 years agoRevert "add a fortified implementation of getcwd"
Elliott Hughes [Fri, 31 Jul 2015 17:32:50 +0000 (17:32 +0000)]
Revert "add a fortified implementation of getcwd"

This reverts commit 89a121d43a274131cf9f84b0e685bebf1e70cc1b.

Change-Id: Ib6f6fd424acea68a063777e9f324405450e23316

8 years agoMerge "add a fortified implementation of getcwd"
Yabin Cui [Fri, 31 Jul 2015 16:55:12 +0000 (16:55 +0000)]
Merge "add a fortified implementation of getcwd"

8 years agoadd a fortified implementation of getcwd
Daniel Micay [Wed, 20 May 2015 19:31:26 +0000 (15:31 -0400)]
add a fortified implementation of getcwd

Change-Id: I95001ae4fe8f206db83e5c44d129ba11310695ce

8 years agoMerge "Stop sending SIGPIPE to debuggerd."
Elliott Hughes [Thu, 30 Jul 2015 15:10:59 +0000 (15:10 +0000)]
Merge "Stop sending SIGPIPE to debuggerd."

8 years agoStop sending SIGPIPE to debuggerd.
Elliott Hughes [Thu, 30 Jul 2015 05:24:13 +0000 (22:24 -0700)]
Stop sending SIGPIPE to debuggerd.

SIGPIPE is a pretty normal way for command-line apps to die, but because
we catch it and report it via debuggerd, we get a lot of bogus bugs. We
could catch SIGPIPE in our tools, but that's not really legit and slightly
misleading.

"But", you say, "catching SIGPIPE is useful for app bugs!". Except a trawl
through buganizer suggests it's misleading there too. Not least because
it's usually an innocent victim that dies --- the problem is usually on the
other end of the pipe (which you learn nothing about because that process
already died, which is what closed the pipe).

We also don't catch SIGALRM, which is another signal that will terminate
your process if you don't catch it, but that one actually represents a
logic error in the crashing process, so there's a stronger argument for
catching that. (Except it too is not a real source of bugs.)

Bug: http://b/20659371
Change-Id: I79820b36573ddaa9a7bad0561a52f23e7a8d15ac

8 years agoMerge "Prevent buffer over-read in linker.cpp's parse_path."
Elliott Hughes [Thu, 30 Jul 2015 00:22:48 +0000 (00:22 +0000)]
Merge "Prevent buffer over-read in linker.cpp's parse_path."

8 years agoPrevent buffer over-read in linker.cpp's parse_path.
tony.ys_liu [Wed, 29 Jul 2015 10:00:22 +0000 (18:00 +0800)]
Prevent buffer over-read in linker.cpp's parse_path.

Also, the old behavior of skipping empty entries doesn't match glibc.

Change-Id: I497774377113ab6c5d962e0f20066e2192748f06

8 years agoMerge "Remove PAGE_SIZE from <limits.h>."
Elliott Hughes [Wed, 29 Jul 2015 15:18:06 +0000 (15:18 +0000)]
Merge "Remove PAGE_SIZE from <limits.h>."

8 years agoRemove PAGE_SIZE from <limits.h>.
Elliott Hughes [Wed, 29 Jul 2015 02:52:31 +0000 (19:52 -0700)]
Remove PAGE_SIZE from <limits.h>.

It turns out that everyone's still getting PAGE_SIZE from <sys/user.h> via
<sys/ucontext.h> via <signal.h> anyway.

glibc has PAGE_SIZE in <sys/user.h> rather than <limits.h> so this part is
good. The bad part is that we have such wide transitive inclusion of
<sys/user.h>!

Bug: http://b/22735893
Change-Id: I363adffe4a27b4ca1eedf695ea621f5dd2d5ca10

8 years agoBionic: Add a TLS slot for ART for Thread self
Andreas Gampe [Wed, 29 Jul 2015 02:53:54 +0000 (19:53 -0700)]
Bionic: Add a TLS slot for ART for Thread self

To improve the performance of Thread::Current(), add a tls slot so
ART can avoid a pthreads call.

Change-Id: Icc86a2b7590734637366f9d5e41a5c6d18cc5772

8 years agoMerge "Don't transitively include <limits.h> from <sys/user.h>."
Elliott Hughes [Wed, 29 Jul 2015 01:02:37 +0000 (01:02 +0000)]
Merge "Don't transitively include <limits.h> from <sys/user.h>."

8 years agoDon't transitively include <limits.h> from <sys/user.h>.
Elliott Hughes [Wed, 29 Jul 2015 00:44:32 +0000 (17:44 -0700)]
Don't transitively include <limits.h> from <sys/user.h>.

Bug: http://b/22735893
Change-Id: I27d0a1f7e2d477b8038e76bfc7fe05dd7e187344

8 years agoMerge "Remove PAGESIZE."
Elliott Hughes [Wed, 29 Jul 2015 00:09:20 +0000 (00:09 +0000)]
Merge "Remove PAGESIZE."

8 years agoRemove PAGESIZE.
Elliott Hughes [Tue, 28 Jul 2015 23:46:06 +0000 (16:46 -0700)]
Remove PAGESIZE.

This was pretty much unused, and isn't in glibc.

Bug: http://b/22735893
Change-Id: If17f0dcd931c90ef1ccb134a3950c3b0011a03f4

8 years agoMerge "Move PAGE_MASK into <sys/user.h>."
Elliott Hughes [Tue, 28 Jul 2015 23:11:18 +0000 (23:11 +0000)]
Merge "Move PAGE_MASK into <sys/user.h>."

8 years agoMove PAGE_MASK into <sys/user.h>.
Elliott Hughes [Tue, 28 Jul 2015 21:58:37 +0000 (14:58 -0700)]
Move PAGE_MASK into <sys/user.h>.

I'm removing the TODO on the assumption that being compatible with glibc
is more useful than BSD. The new internal "bionic_page.h" header factors
out some duplication between libc and the linker.

Bug: http://b/22735893
Change-Id: I4aec4dcba5886fb6f6b9290a8f85660643261321

8 years agoMerge "deprecate TARGET_USES_LOGD"
Mark Salyzyn [Tue, 28 Jul 2015 17:48:08 +0000 (17:48 +0000)]
Merge "deprecate TARGET_USES_LOGD"

8 years agodeprecate TARGET_USES_LOGD
Mark Salyzyn [Tue, 28 Jul 2015 15:51:17 +0000 (08:51 -0700)]
deprecate TARGET_USES_LOGD

This is not the kernel logger you are looking for

Bug: 22787659
Change-Id: I340d8bb5cdaa73be9565521681ee238b7033934b

8 years agoMerge "Add a regression test for a fixed strnlen bug."
Elliott Hughes [Tue, 28 Jul 2015 14:55:50 +0000 (14:55 +0000)]
Merge "Add a regression test for a fixed strnlen bug."

8 years agoAdd a regression test for a fixed strnlen bug.
Elliott Hughes [Tue, 28 Jul 2015 03:55:03 +0000 (20:55 -0700)]
Add a regression test for a fixed strnlen bug.

Bug: https://code.google.com/p/android/issues/detail?id=74741
Change-Id: I78b0114bdbe8e680b0e938af608a634e73c86eda

8 years agoMerge "Add one simple thread local storage test."
Chih-hung Hsieh [Tue, 28 Jul 2015 01:33:01 +0000 (01:33 +0000)]
Merge "Add one simple thread local storage test."

8 years agoAdd one simple thread local storage test.
Chih-Hung Hsieh [Mon, 27 Jul 2015 17:46:21 +0000 (10:46 -0700)]
Add one simple thread local storage test.

This test should pass with gcc and fail with clang,
until clang/llvm supports emutls or Android linker supports
ELF TLS models.

BUG: 21082792
Change-Id: Id8c97da52c68ec230c7d26af703f6ed32d53a4fe

8 years agoMerge "Remove pushes from memsets (krait/cortex-a9)."
Christopher Ferris [Mon, 27 Jul 2015 23:09:32 +0000 (23:09 +0000)]
Merge "Remove pushes from memsets (krait/cortex-a9)."

8 years agoMerge "add fortified implementations of fread/fwrite"
Yabin Cui [Mon, 27 Jul 2015 22:46:29 +0000 (22:46 +0000)]
Merge "add fortified implementations of fread/fwrite"

8 years agoMerge "Restore protection flags for ifunc during relocs."
Elliott Hughes [Mon, 27 Jul 2015 21:34:53 +0000 (21:34 +0000)]
Merge "Restore protection flags for ifunc during relocs."

8 years agoRemove pushes from memsets (krait/cortex-a9).
Christopher Ferris [Mon, 27 Jul 2015 20:51:31 +0000 (13:51 -0700)]
Remove pushes from memsets (krait/cortex-a9).

On the path that only uses r0 in both the krait and cortex-a9
memset, remove the push and use r3 instead.

In addition, for cortex-a9, remove the artificial function since
it's not needed since dwarf unwinding is now supported on arm.

Change-Id: Ia4ed1cc435b03627a7193215e76c8ea3335f949a

8 years agoMerge "name the atexit handler pages"
Elliott Hughes [Mon, 27 Jul 2015 18:06:35 +0000 (18:06 +0000)]
Merge "name the atexit handler pages"

8 years agoname the atexit handler pages
Daniel Micay [Sat, 25 Jul 2015 19:40:14 +0000 (15:40 -0400)]
name the atexit handler pages

Change-Id: I1718ddee7415a673b5818bc1455b8d90f1e8f9c6

8 years agoRestore protection flags for ifunc during relocs.
Dmitriy Ivanov [Sun, 26 Jul 2015 14:37:09 +0000 (07:37 -0700)]
Restore protection flags for ifunc during relocs.

IFUNC relocations require executable flag for the load
segment containing .text. When dso has text relocs linker
removes exec which causes crash during ifunc relocations.

This patch fixes this problem by restoring segments protection
for ifunc relocs.

Bug: http://b/22611399
Change-Id: Icbf3be0fec0e42bf805bcad7533e2032a2e11b9c
(cherry picked from commit de0fb393ae8136a5958fe17eee0c6285e2f7f91a)

8 years agoMerge "Use AT_PAGESZ for sysconf(_SC_PAGE_SIZE)."
Elliott Hughes [Sat, 25 Jul 2015 18:32:46 +0000 (18:32 +0000)]
Merge "Use AT_PAGESZ for sysconf(_SC_PAGE_SIZE)."

8 years agoUse AT_PAGESZ for sysconf(_SC_PAGE_SIZE).
Elliott Hughes [Sat, 25 Jul 2015 06:22:07 +0000 (23:22 -0700)]
Use AT_PAGESZ for sysconf(_SC_PAGE_SIZE).

Bug: http://b/18342333
Change-Id: Id12ed4e85a0f35d7d27202f7792df42a65a74b4e

8 years agoMerge "Make all labels local."
Christopher Ferris [Fri, 24 Jul 2015 00:47:06 +0000 (00:47 +0000)]
Merge "Make all labels local."

8 years agoadd fortified implementations of fread/fwrite
Daniel Micay [Sat, 18 Jul 2015 17:55:51 +0000 (13:55 -0400)]
add fortified implementations of fread/fwrite

A __size_mul_overflow utility is used to take advantage of the checked
overflow intrinsics in Clang and GCC (>= 5). The fallback for older
compilers is the optimized but less than ideal overflow checking pattern
used in OpenBSD.

Change-Id: Ibb0d4fd9b5acb67983e6a9f46844c2fd444f7e69

8 years agoMake all labels local.
Christopher Ferris [Thu, 23 Jul 2015 19:12:55 +0000 (12:12 -0700)]
Make all labels local.

Change the non-local labels to .L labels.

Change-Id: I720e894f2e311af8f4a0970303d8b86575fb69a5

8 years agoMerge "Don't abort when failed to write tracing message."
Yabin Cui [Thu, 23 Jul 2015 17:20:30 +0000 (17:20 +0000)]
Merge "Don't abort when failed to write tracing message."

8 years agoDon't abort when failed to write tracing message.
Yabin Cui [Wed, 22 Jul 2015 00:27:54 +0000 (17:27 -0700)]
Don't abort when failed to write tracing message.

Also make the code thread-safe with lock.

Bug: 20666100
Change-Id: I0f331a617b75280f36179c187418450230d713ef

8 years agoMerge "Add getgrgid_r/getgrnam_r."
Yabin Cui [Wed, 22 Jul 2015 03:22:26 +0000 (03:22 +0000)]
Merge "Add getgrgid_r/getgrnam_r."

8 years agoAdd getgrgid_r/getgrnam_r.
Yabin Cui [Tue, 21 Jul 2015 02:46:26 +0000 (19:46 -0700)]
Add getgrgid_r/getgrnam_r.

Bug: 22568551
Change-Id: I3c0772d119d6041063c6be53f5bcc5ea1768f0d5

8 years agoMerge "libc: arch-x86: implement kernel vdso time functions"
Elliott Hughes [Wed, 22 Jul 2015 01:51:00 +0000 (01:51 +0000)]
Merge "libc: arch-x86: implement kernel vdso time functions"

8 years agolibc: arch-x86: implement kernel vdso time functions
Robert Jarzmik [Wed, 15 Jul 2015 13:26:43 +0000 (15:26 +0200)]
libc: arch-x86: implement kernel vdso time functions

This patch give the possibility of time vdso support on 32bit kernel.
If the 32bit x86 kernel provides gettimeofday() and clock_gettime()
primitives in vdso. In this case make bionic use them. If the kernel
doesn't provide them, fallback to the legacy system call versions.

Change-Id: I87b772a9486fa356903e1f98f486ab9eb0b6f6f7
Signed-off-by: Robert Jarzmik <robert.jarzmik@intel.com>
Signed-off-by: Mingwei Shi <mingwei.shi@intel.com>
8 years agoMerge "We don't have CXX_BARE any more"
Ying Wang [Tue, 21 Jul 2015 21:10:22 +0000 (21:10 +0000)]
Merge "We don't have CXX_BARE any more"

8 years agoWe don't have CXX_BARE any more
Ying Wang [Tue, 21 Jul 2015 01:51:30 +0000 (18:51 -0700)]
We don't have CXX_BARE any more

Now we have split CXX_WRAPPER from TARGET_CXX and CXX_BARE isn't needed
any more.

Bug: 22612634
Change-Id: I52c78b0d1b325910e875a786d17f780731778b4b
(cherry-pick from commit 9d11a7087c860195bf23f2825a7fe70d43ff7b78)

8 years agoMerge "Use a less misleading name for the code that sets up the main thread."
Elliott Hughes [Tue, 21 Jul 2015 20:28:15 +0000 (20:28 +0000)]
Merge "Use a less misleading name for the code that sets up the main thread."

9 years agoUse a less misleading name for the code that sets up the main thread.
Elliott Hughes [Tue, 21 Jul 2015 18:57:09 +0000 (11:57 -0700)]
Use a less misleading name for the code that sets up the main thread.

Change-Id: I50c1b0a3b633cf8bc40a6bd86f12adb6b91e2888

9 years agoMerge "Add support for non-zero vaddr in maps."
Christopher Ferris [Tue, 21 Jul 2015 17:29:09 +0000 (17:29 +0000)]
Merge "Add support for non-zero vaddr in maps."

9 years agoMerge "Revert "Revert "make vdso function pointers read-only at runtime"""
Elliott Hughes [Tue, 21 Jul 2015 02:15:19 +0000 (02:15 +0000)]
Merge "Revert "Revert "make vdso function pointers read-only at runtime"""

9 years agoMerge "Revert "Stop libc from cross-referencing unwind symbols""
Dan Albert [Tue, 21 Jul 2015 00:22:20 +0000 (00:22 +0000)]
Merge "Revert "Stop libc from cross-referencing unwind symbols""

9 years agoRevert "Stop libc from cross-referencing unwind symbols"
Dan Albert [Mon, 20 Jul 2015 23:56:51 +0000 (16:56 -0700)]
Revert "Stop libc from cross-referencing unwind symbols"

This reverts commit cd13b14e98d4921af126667fae0cf6613a5615c5.

Bug: http://b/19958712
Change-Id: I7cc7f69728c42c37e129aee30d761c4cd7e30e94

9 years agoRevert "Revert "make vdso function pointers read-only at runtime""
Elliott Hughes [Mon, 20 Jul 2015 22:34:27 +0000 (22:34 +0000)]
Revert "Revert "make vdso function pointers read-only at runtime""

This reverts commit 1946856b1f18a27c51ba30bb9e304f25b722ee05.

This goes back to the original scheme of PROT_NONEing a page within
libc. Allocating a new page didn't fail safe for cases where these
functions are called from the dynamic linker.

Bug: http://b/22568628
Change-Id: I3e7241c8b54c27ea4a898bc952375c1e9ae38c80

9 years agoMerge "Fix dt_runpath test."
Dmitriy Ivanov [Mon, 20 Jul 2015 18:31:07 +0000 (18:31 +0000)]
Merge "Fix dt_runpath test."

9 years agoFix dt_runpath test.
Dmitriy Ivanov [Mon, 20 Jul 2015 17:47:49 +0000 (10:47 -0700)]
Fix dt_runpath test.

Bfd linker produces DT_RPATH instead of DT_RUNPATH
unless --enable-new-dtags option is specified.

Bug: http://b/22560945
Change-Id: I71bdc5137b899ab736e55c5a9574cfbba8e1983b

9 years agoMerge "<sys/time.h> should include [most of] <sys/select.h>."
Elliott Hughes [Mon, 20 Jul 2015 17:36:52 +0000 (17:36 +0000)]
Merge "<sys/time.h> should include [most of] <sys/select.h>."

9 years agoMerge "Revert "make vdso function pointers read-only at runtime""
Elliott Hughes [Mon, 20 Jul 2015 17:30:49 +0000 (17:30 +0000)]
Merge "Revert "make vdso function pointers read-only at runtime""

9 years agoRevert "make vdso function pointers read-only at runtime"
Elliott Hughes [Mon, 20 Jul 2015 17:30:33 +0000 (17:30 +0000)]
Revert "make vdso function pointers read-only at runtime"

This reverts commit df1a3c6d21702e3e96cfcddadee4a50bfac82110.

This change prevented N9 from booting (http://b/22568628).

Change-Id: I071d6d6a0ae7881d65641839e665acdcf58462b4

9 years ago<sys/time.h> should include [most of] <sys/select.h>.
Elliott Hughes [Sat, 18 Jul 2015 02:10:24 +0000 (19:10 -0700)]
<sys/time.h> should include [most of] <sys/select.h>.

Found by trying to build c-ares with bionic.

Change-Id: I38684abcb806ef1e8806c68b4a6dd9200f48849e

9 years agoMerge "Add all the glibc one-line "synonym" header files."
Elliott Hughes [Fri, 17 Jul 2015 21:42:03 +0000 (21:42 +0000)]
Merge "Add all the glibc one-line "synonym" header files."

9 years agoAdd all the glibc one-line "synonym" header files.
Elliott Hughes [Fri, 17 Jul 2015 20:59:36 +0000 (13:59 -0700)]
Add all the glibc one-line "synonym" header files.

Ported code keeps needing these one by one, so let's just add the whole
set...

Change-Id: I9662b256aeaa1b0ffb22354130e503f0c4aa472b

9 years agoMerge "make vdso function pointers read-only at runtime"
Elliott Hughes [Fri, 17 Jul 2015 18:13:31 +0000 (18:13 +0000)]
Merge "make vdso function pointers read-only at runtime"

9 years agomake vdso function pointers read-only at runtime
Daniel Micay [Fri, 17 Jul 2015 16:13:27 +0000 (12:13 -0400)]
make vdso function pointers read-only at runtime

Global, writable function pointers are low-hanging fruit for hijacking
control flow with an overflow from a global buffer or an arbitrary write
vulnerability. This moves the function pointer table into a dedicated
page and makes it read-only at runtime, similar to RELRO.

This increases the memory usage of the library by just under one page.
This could be avoided by having the linker load the vdso by replacing
weak symbols. It's not significant within the Zygote spawning model
though because it's read-only after early init.

Change-Id: Id7a49c96c1b15c2e1926528304b3c54a81e78caf

9 years agoMerge "Fix potential race condition on dlopen"
Dmitriy Ivanov [Fri, 17 Jul 2015 17:49:20 +0000 (17:49 +0000)]
Merge "Fix potential race condition on dlopen"

9 years agoFix potential race condition on dlopen
Dmitriy Ivanov [Fri, 17 Jul 2015 17:36:10 +0000 (10:36 -0700)]
Fix potential race condition on dlopen

  Call to find_containing_library should be guarded.

Change-Id: I985a903da48b83bcd35e957a979158eb9b80e70b

9 years agoAdd support for non-zero vaddr in maps.
Christopher Ferris [Thu, 16 Jul 2015 21:49:17 +0000 (14:49 -0700)]
Add support for non-zero vaddr in maps.

If a map has a non-zero vaddr then it needs to be added to the
computed relative offset.

Bug: 22532054
Change-Id: If55015165d25ecc4b530f674b481c8c7ef760a23