OSDN Git Service

android-x86/bionic.git
7 years agoMerge "Add IOV_MAX to <limits.h>."
Treehugger Robot [Thu, 28 Jul 2016 00:20:36 +0000 (00:20 +0000)]
Merge "Add IOV_MAX to <limits.h>."

7 years agoMerge "Admit that we don't actually support thread priority inheritance."
Treehugger Robot [Wed, 27 Jul 2016 22:33:52 +0000 (22:33 +0000)]
Merge "Admit that we don't actually support thread priority inheritance."

7 years agoAdd IOV_MAX to <limits.h>.
Elliott Hughes [Wed, 27 Jul 2016 22:24:47 +0000 (15:24 -0700)]
Add IOV_MAX to <limits.h>.

strace 4.13 assumes we have IOV_MAX. POSIX says it lives here. 1024 is
a Linux kernel limitation.

Change-Id: Icb428172670e4936a459db38a6a190b7178fe9f3

7 years agoAdmit that we don't actually support thread priority inheritance.
Elliott Hughes [Wed, 27 Jul 2016 21:05:10 +0000 (14:05 -0700)]
Admit that we don't actually support thread priority inheritance.

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

7 years agoMerge "Clean up <uchar.h> and <wctype.h> transitive includes."
Treehugger Robot [Wed, 27 Jul 2016 18:44:07 +0000 (18:44 +0000)]
Merge "Clean up <uchar.h> and <wctype.h> transitive includes."

7 years agoMerge "More kernel header cleanup."
Christopher Ferris [Wed, 27 Jul 2016 17:56:55 +0000 (17:56 +0000)]
Merge "More kernel header cleanup."

7 years agoClean up <uchar.h> and <wctype.h> transitive includes.
Elliott Hughes [Wed, 27 Jul 2016 17:45:05 +0000 (10:45 -0700)]
Clean up <uchar.h> and <wctype.h> transitive includes.

Bug: http://b/30367366
Change-Id: I63212a34c54ca07223a15aa5be4da3bdc6aa38a8

7 years agoMerge changes I0262eed9,Iba9ee03a
Treehugger Robot [Wed, 27 Jul 2016 00:30:30 +0000 (00:30 +0000)]
Merge changes I0262eed9,Iba9ee03a

* changes:
  Add a temporary hack to work around __NDK_FPABI__.
  Remove _GNU_SOURCE guard on tmpnam.

7 years agoAdd a temporary hack to work around __NDK_FPABI__.
Dan Albert [Tue, 26 Jul 2016 23:27:31 +0000 (16:27 -0700)]
Add a temporary hack to work around __NDK_FPABI__.

Test: make checkbuild
Bug: http://b/27533932
Change-Id: I0262eed91b10b0dd5fe27a61fb8f35b3c062280e

7 years agoRemove _GNU_SOURCE guard on tmpnam.
Dan Albert [Tue, 26 Jul 2016 23:26:15 +0000 (16:26 -0700)]
Remove _GNU_SOURCE guard on tmpnam.

This shouldn't be guarded by _GNU_SOURCE. external/opencv3 expects
P_tmpdir to be available.

http://pubs.opengroup.org/onlinepubs/009695399/functions/tmpnam.html

Test: make checkbuild
Change-Id: Iba9ee03aec6e712356b571f7165ed1809e6227fe

7 years agoMerge "Remove #pragma GCC visibility."
Treehugger Robot [Mon, 25 Jul 2016 23:48:07 +0000 (23:48 +0000)]
Merge "Remove #pragma GCC visibility."

7 years agoRemove #pragma GCC visibility.
Elliott Hughes [Mon, 25 Jul 2016 22:57:02 +0000 (15:57 -0700)]
Remove #pragma GCC visibility.

We have better control over visibility now.

Bug: http://b/24767418
Change-Id: Ifa9a1e5af4bd4217db08422050908770247b3b69

7 years agoMerge "Stop #define'ing __func__ and __restrict."
Elliott Hughes [Mon, 25 Jul 2016 22:32:56 +0000 (22:32 +0000)]
Merge "Stop #define'ing __func__ and __restrict."

7 years agoStop #define'ing __func__ and __restrict.
Elliott Hughes [Mon, 25 Jul 2016 16:20:57 +0000 (09:20 -0700)]
Stop #define'ing __func__ and __restrict.

__STDC_VERSION__ isn't defined for __cplusplus, so we've been removing
such checks. Some got missed.

Stop defining __func__ and just use the __PRETTY_FUNCTION__ GCC extension
in <assert.h>. Also fix the #if there so that C++ gets __assert2 rather
than __assert, and rewrite the cast to work with -I rather than -isystem.

Also remove __restrict and just always use the __restrict GCC extension.

Add a trivial test for <assert.h>.

Bug: http://b/30353757
Change-Id: Ie49bb417976293d3a9692b516e28fe3c0ae0a6d9
Test: ran bionic unit tests.

7 years agoMerge "Remove bionic's now-unused UniquePtr."
Treehugger Robot [Sat, 23 Jul 2016 03:51:19 +0000 (03:51 +0000)]
Merge "Remove bionic's now-unused UniquePtr."

7 years agoMerge "Remove unnecessary 'extern's."
Treehugger Robot [Sat, 23 Jul 2016 03:47:18 +0000 (03:47 +0000)]
Merge "Remove unnecessary 'extern's."

7 years agoRemove bionic's now-unused UniquePtr.
Elliott Hughes [Sat, 23 Jul 2016 02:52:46 +0000 (19:52 -0700)]
Remove bionic's now-unused UniquePtr.

Change-Id: Id77dbdd6d4255ae8317449725ef093be9422407f

7 years agoRemove unnecessary 'extern's.
Elliott Hughes [Sat, 23 Jul 2016 01:57:12 +0000 (18:57 -0700)]
Remove unnecessary 'extern's.

Change-Id: Iba2b3fb6ff88e504f1657b915120ae43d58a1e03

7 years agoMerge "Always include <sys/cdefs.h>."
Treehugger Robot [Sat, 23 Jul 2016 01:48:21 +0000 (01:48 +0000)]
Merge "Always include <sys/cdefs.h>."

7 years agoAlways include <sys/cdefs.h>.
Elliott Hughes [Fri, 22 Jul 2016 21:56:18 +0000 (14:56 -0700)]
Always include <sys/cdefs.h>.

I made a mistake caught by code review earlier, so let's try to be
safer by default.

This patch also moves all our "forwarding" headers to the guardless
just-include-the-other-thing style that we usually use. (Where we
have a comment explaining where the header comes from, I've kept
that.)

Change-Id: I37342cf5e2563c6a269b2ba61a697069b1c7913b

7 years agoMerge "Remove __BIONIC_LEGACY_INLINE."
Elliott Hughes [Sat, 23 Jul 2016 00:01:08 +0000 (00:01 +0000)]
Merge "Remove __BIONIC_LEGACY_INLINE."

7 years agoRemove __BIONIC_LEGACY_INLINE.
Josh Gao [Fri, 22 Jul 2016 22:26:36 +0000 (15:26 -0700)]
Remove __BIONIC_LEGACY_INLINE.

Don't use the same declaration to declare both static and non-static
functions, to make life easier for versioner.

(Also, remove __BIONIC_LEGACY_INLINE from two functions in termios.h
that weren't actually legacy inlines.)

Bug: http://b/30170081
Change-Id: Ibb73377d77a2b4cee016289b7c46a01452e45fae

7 years agoMerge "Add sanity checks for e_shentsize and e_shstrndx"
Dimitry Ivanov [Fri, 22 Jul 2016 22:44:53 +0000 (22:44 +0000)]
Merge "Add sanity checks for e_shentsize and e_shstrndx"

7 years agoMerge "Make it possible to build bionic with -I instead of -isystem."
Elliott Hughes [Fri, 22 Jul 2016 21:35:02 +0000 (21:35 +0000)]
Merge "Make it possible to build bionic with -I instead of -isystem."

7 years agoMake it possible to build bionic with -I instead of -isystem.
Elliott Hughes [Fri, 22 Jul 2016 18:36:17 +0000 (11:36 -0700)]
Make it possible to build bionic with -I instead of -isystem.

Various things:

* work around -Wnullability-completeness.
* use C++ casts in C++ and C casts in C.
* stop using attributes clang doesn't support (such as `warning`).
* remove duplicate definitions of XATTR_CREATE and XATTR_REPLACE.

Change-Id: I07649e46275b28a23ca477deea119fe843999533

7 years agoAdd sanity checks for e_shentsize and e_shstrndx
Dimitry Ivanov [Fri, 22 Jul 2016 19:50:59 +0000 (12:50 -0700)]
Add sanity checks for e_shentsize and e_shstrndx

This helps us avoid situations when malformed elf-files
are mistakenly loaded, - which might result in unexpected
behavior.

Bug: http://b/30166532
Test: bionic-unit-tests --gtest_filter=dl*:Dl*
Change-Id: Idd6b4fa20e1d69a9f8d8391ba69c724d930fee51

7 years agoMore kernel header cleanup.
Christopher Ferris [Wed, 20 Jul 2016 19:28:56 +0000 (12:28 -0700)]
More kernel header cleanup.

Modify the generate script to add a new option and copy the types.h
arm header file since it's not currently being created properly. Also
manually generate the arm types.h uapi header since it's not being
properly generated right now.

Modify both generate scripts to delete the target directories before
adding the files to handle moved/deleted header files.

Move the common/scsi headers into android and delete the common
directory. Change the scripts to reflect this change.

Update the scsi headers since they've been modified in upstream kernels.

Bug: 30072483

Change-Id: Ia43d4b238b6a041350d60cc30184ecbd4829d7d5

7 years agoMerge changes I7718b1ba,I648adc35
Treehugger Robot [Fri, 22 Jul 2016 19:20:58 +0000 (19:20 +0000)]
Merge changes I7718b1ba,I648adc35

* changes:
  Only initialize the global stack protector once.
  Make getpid work before TLS has been initialized.

7 years agoMerge "Only define sa_family_t once."
Treehugger Robot [Fri, 22 Jul 2016 00:28:18 +0000 (00:28 +0000)]
Merge "Only define sa_family_t once."

7 years agoOnly define sa_family_t once.
Elliott Hughes [Thu, 21 Jul 2016 23:38:43 +0000 (16:38 -0700)]
Only define sa_family_t once.

Change-Id: Icf700910c836d22c8a27ad026ec8af11697edd5a

7 years agoMerge "Treat "persist.sys.timezone" as being a Java-format timezone."
Treehugger Robot [Thu, 21 Jul 2016 08:06:33 +0000 (08:06 +0000)]
Merge "Treat "persist.sys.timezone" as being a Java-format timezone."

7 years agoTreat "persist.sys.timezone" as being a Java-format timezone.
Elliott Hughes [Thu, 21 Jul 2016 00:23:54 +0000 (17:23 -0700)]
Treat "persist.sys.timezone" as being a Java-format timezone.

POSIX and Java disagree about the sign in a timezone string like "GMT+3".
This means that if you set "persist.sys.timezone" to such a string, native
code and Java code disagree about what time it is. Resolve this by
translating to POSIX form for native code.

Bug: http://b/25463955
Change-Id: I7c08c459dd8514348a12ce419edcbfbfe8f6d327
Test: manually tested with setprop and date.

7 years agoMerge "Pass argc/argv/envp to dso constructors"
Dimitry Ivanov [Thu, 21 Jul 2016 00:08:46 +0000 (00:08 +0000)]
Merge "Pass argc/argv/envp to dso constructors"

7 years agoPass argc/argv/envp to dso constructors
Dimitry Ivanov [Wed, 20 Jul 2016 22:33:07 +0000 (15:33 -0700)]
Pass argc/argv/envp to dso constructors

The glibc implementation of the loader passes argc/argv/envp
to all elf constructors. This change makes bionic linker
behave in the same way.

Bug: http://b/30145768
Change-Id: I1c65c42aa5305a5b133c64b5748205bbde869e0e
Test: run bionic-unit-tests --gtest_filter=dl*:Dl*

7 years agoMerge "Align-up and randomize shared libraries."
Evgenii Stepanov [Wed, 20 Jul 2016 20:31:41 +0000 (20:31 +0000)]
Merge "Align-up and randomize shared libraries."

7 years agoMerge "Move/remove android only kernel uapi headers."
Christopher Ferris [Wed, 20 Jul 2016 18:03:47 +0000 (18:03 +0000)]
Merge "Move/remove android only kernel uapi headers."

7 years agoAlign-up and randomize shared libraries.
Evgenii Stepanov [Fri, 15 Jul 2016 23:31:42 +0000 (16:31 -0700)]
Align-up and randomize shared libraries.

This change implements the following property:
  Any 2**N aligned memory region on size 2**N contains no more than one DSO.

The value N can be configured, with 16 or 18 looking like a good choice.
Additionally, DSOs are loaded at random page-aligned address inside these large
regions.

This change has dual purpose:
1. Larger values of N allow a lot more compact CFI shadow implementation.
   See change I14dfea630de468eb5620e7f55f92b1397ba06217.
   For example, CFI shadow for the system_server process has the following size (RSS, KB):
   152 for N = 12, 32 for N = 16, 16 for N = 18.
2. Extra randomization is good for security.

This change does not result in extra RAM usage, because everything is still page-aligned.
It does result in a bit more VM fragmentation because of the gaps between shared libraries.
As it turns out, this fragmentation is barely noticeable because the kernel creates new mapping
at the highest possible address, and we do enough small mappings to almost completely fill the
gaps (ex. in the Zygote the gaps are filled with .ttf file mappings and thread stacks).

I've measured VM fragmentation as the sum of all VM gaps (unmapped regions) that are larger
than 1MB according to /proc/$PID/maps. On aosp_angler-userdebug, the numbers are (in GB):

                |   N = 12  |  N = 18
system_server   |   521.9   |  521.1
zygote64        |   522.1   |  521.3
zygote32        |   2.55    |  2.55
mediaserver     |   4.00    |  4.00

Change-Id: Ia6df840dd409c82837efd1f263be420d9723c84a

7 years agoMerge "Expand the testing docs slightly."
Treehugger Robot [Tue, 19 Jul 2016 21:57:27 +0000 (21:57 +0000)]
Merge "Expand the testing docs slightly."

7 years agoMerge "Remove __LIBC_ABI_PUBLIC__."
Treehugger Robot [Tue, 19 Jul 2016 21:48:25 +0000 (21:48 +0000)]
Merge "Remove __LIBC_ABI_PUBLIC__."

7 years agoExpand the testing docs slightly.
Elliott Hughes [Tue, 19 Jul 2016 21:09:10 +0000 (14:09 -0700)]
Expand the testing docs slightly.

Change-Id: I4b172eefd8f456a62b24520a9f04f500a1d6bc85

7 years agoRemove __LIBC_ABI_PUBLIC__.
Elliott Hughes [Tue, 19 Jul 2016 20:56:46 +0000 (13:56 -0700)]
Remove __LIBC_ABI_PUBLIC__.

We have much better control over visibility now, so we don't need to
pollute the headers with cruft.

Bug: http://b/24767418
Change-Id: I349f4c3bc30102477375ad9f80926e560c7c1d8b

7 years agoMove/remove android only kernel uapi headers.
Christopher Ferris [Mon, 18 Jul 2016 23:27:22 +0000 (16:27 -0700)]
Move/remove android only kernel uapi headers.

Move all of the uapi kernel headers that are only found in the android
kernel, and are still used by the tree into their own directory.

Delete all of these files that are not used.

Also, delete binder.h from the linux directory since it already exists
in the linux/android directory.

Bug: 30072483
Change-Id: I879f16e366f7670b8be3546b0a9cf9567fce6526

8 years agoMerge "Add a test for a known kernel bug."
Treehugger Robot [Tue, 19 Jul 2016 17:52:03 +0000 (17:52 +0000)]
Merge "Add a test for a known kernel bug."

8 years agoMerge "Don't declare SYS_* constants for unavailable __NR_* constants."
Treehugger Robot [Mon, 18 Jul 2016 20:39:10 +0000 (20:39 +0000)]
Merge "Don't declare SYS_* constants for unavailable __NR_* constants."

8 years agoDon't declare SYS_* constants for unavailable __NR_* constants.
Elliott Hughes [Fri, 15 Jul 2016 22:47:47 +0000 (15:47 -0700)]
Don't declare SYS_* constants for unavailable __NR_* constants.

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

8 years agoMerge "Convert linker from Android.mk to Android.bp"
Treehugger Robot [Fri, 15 Jul 2016 22:31:13 +0000 (22:31 +0000)]
Merge "Convert linker from Android.mk to Android.bp"

8 years agoMerge "Put the legacy stdio fds back for pre-M."
Treehugger Robot [Fri, 15 Jul 2016 21:33:00 +0000 (21:33 +0000)]
Merge "Put the legacy stdio fds back for pre-M."

8 years agoMerge "Add an alias for _CTYPE_N."
Treehugger Robot [Fri, 15 Jul 2016 20:56:01 +0000 (20:56 +0000)]
Merge "Add an alias for _CTYPE_N."

8 years agoConvert linker from Android.mk to Android.bp
Colin Cross [Thu, 14 Jul 2016 23:05:46 +0000 (16:05 -0700)]
Convert linker from Android.mk to Android.bp

Change-Id: Ibf7da301defb2fd7e24fb3f4cd2e967a8f376497

8 years agoPut the legacy stdio fds back for pre-M.
Dan Albert [Fri, 15 Jul 2016 18:32:23 +0000 (11:32 -0700)]
Put the legacy stdio fds back for pre-M.

Change-Id: I2e397b04cba2969b9f9a3767b9b2fd12a289fcd2

8 years agoAdd an alias for _CTYPE_N.
Dan Albert [Fri, 15 Jul 2016 18:31:11 +0000 (11:31 -0700)]
Add an alias for _CTYPE_N.

gnustl is using this. It would be easy to change gnustl to *not* use
it for Android, but we've had this in released NDKs for years now so
we probably need this anyway.

Change-Id: I398a550664bf4ccbd9ea54f53c65428293a599a4

8 years agoMerge "Force pthread_cond_timedwait_relative_np using CLOCK_MONOTONIC."
Yabin Cui [Fri, 15 Jul 2016 01:29:28 +0000 (01:29 +0000)]
Merge "Force pthread_cond_timedwait_relative_np using CLOCK_MONOTONIC."

8 years agoMerge "Fix clean mma in bionic"
Treehugger Robot [Fri, 15 Jul 2016 00:52:37 +0000 (00:52 +0000)]
Merge "Fix clean mma in bionic"

8 years agoAdd a test for a known kernel bug.
Elliott Hughes [Fri, 15 Jul 2016 00:07:17 +0000 (17:07 -0700)]
Add a test for a known kernel bug.

Bug: http://b/27265969
Change-Id: I981cb6a91015bd17d362987ed12c8ca638987c5b

8 years agoFix clean mma in bionic
Colin Cross [Thu, 14 Jul 2016 23:53:18 +0000 (16:53 -0700)]
Fix clean mma in bionic

Change-Id: If2410c5ff9c08372098e5ec831e33e4da0e04b30

8 years agoMerge "Convert bionic benchmarks and tests to Android.bp"
Treehugger Robot [Thu, 14 Jul 2016 21:05:27 +0000 (21:05 +0000)]
Merge "Convert bionic benchmarks and tests to Android.bp"

8 years agoMerge "Fix typo in the comment"
Treehugger Robot [Thu, 14 Jul 2016 20:11:20 +0000 (20:11 +0000)]
Merge "Fix typo in the comment"

8 years agoMerge "Convert malloc_debug from Android.mk to Android.bp"
Colin Cross [Thu, 14 Jul 2016 19:43:29 +0000 (19:43 +0000)]
Merge "Convert malloc_debug from Android.mk to Android.bp"

8 years agoMerge "Move relocation_packer from Android.mk to Android.bp"
Treehugger Robot [Thu, 14 Jul 2016 19:34:47 +0000 (19:34 +0000)]
Merge "Move relocation_packer from Android.mk to Android.bp"

8 years agoConvert bionic benchmarks and tests to Android.bp
Colin Cross [Mon, 11 Jul 2016 23:20:06 +0000 (16:20 -0700)]
Convert bionic benchmarks and tests to Android.bp

The compile-time tests and a few custom libraries for dynamic linker
testing are still compiled in make.

Also converts the make rules to run tests on the host to shell scripts
in tests/run-on-host.sh and benchmarks/run-on-host.sh

Change-Id: I6f174b3a69d58c4ed74d29f4e79332d483681534

8 years agoFix typo in the comment
Dimitry Ivanov [Thu, 14 Jul 2016 18:15:44 +0000 (11:15 -0700)]
Fix typo in the comment

Addressing review comment from change I11bc2567b0cff89f48699ec74015991fee5b137b

Change-Id: I5d479ef61421c86fae06167815aa0a2681d9142d

8 years agoMerge "linker: Improve elf-file validation"
Dimitry Ivanov [Thu, 14 Jul 2016 18:12:59 +0000 (18:12 +0000)]
Merge "linker: Improve elf-file validation"

8 years agoMerge "Support 32-bit ARM vdso."
Elliott Hughes [Thu, 14 Jul 2016 16:54:23 +0000 (16:54 +0000)]
Merge "Support 32-bit ARM vdso."

8 years agoConvert malloc_debug from Android.mk to Android.bp
Colin Cross [Wed, 13 Jul 2016 18:15:21 +0000 (11:15 -0700)]
Convert malloc_debug from Android.mk to Android.bp

Change-Id: I60ad376d222a92a29263c2804dcd1bd0d3c383d0

8 years agoMove relocation_packer from Android.mk to Android.bp
Colin Cross [Wed, 13 Jul 2016 21:01:45 +0000 (14:01 -0700)]
Move relocation_packer from Android.mk to Android.bp

Change-Id: I3d24f8513fe3ca19900705d4861ab797464e0930

8 years agoMerge "Fix dlext.ns_smoke test"
Treehugger Robot [Thu, 14 Jul 2016 00:22:34 +0000 (00:22 +0000)]
Merge "Fix dlext.ns_smoke test"

8 years agolinker: Improve elf-file validation
Dimitry Ivanov [Thu, 14 Jul 2016 00:06:36 +0000 (17:06 -0700)]
linker: Improve elf-file validation

1. Make sure that the .dynamic section offset and size matches
   PT_DYNAMIC segment offset and filesz
2. No section offset can be 0

Bug: http://b/16548758
Bug: http://b/29637134
Change-Id: I11bc2567b0cff89f48699ec74015991fee5b137b
Test: Install and start the app from http://b/29637134

8 years agoFix dlext.ns_smoke test
Dimitry Ivanov [Wed, 13 Jul 2016 23:28:20 +0000 (16:28 -0700)]
Fix dlext.ns_smoke test

Check for updated error_message

Change-Id: I0f0dd59a6deba016d37d0ccc80113b62db86c1c2
Test: adb shell bionic-unit-tests32/64 --gtest_filter=dlext.ns*

8 years agoForce pthread_cond_timedwait_relative_np using CLOCK_MONOTONIC.
Yabin Cui [Wed, 13 Jul 2016 22:53:25 +0000 (15:53 -0700)]
Force pthread_cond_timedwait_relative_np using CLOCK_MONOTONIC.

Previous patch changed pthread_cond_timedwait_relative_np to use
CLOCK_REALTIME, which causes app compatibility problem. So change
it back to CLOCK_MONOTONIC.

Bug: 30106240
Change-Id: I8e04058e92ede098f4f9f8d133f094001921441e

8 years agoMerge "Use trivial types to avoid calls to new for globals"
Dimitry Ivanov [Wed, 13 Jul 2016 18:45:00 +0000 (18:45 +0000)]
Merge "Use trivial types to avoid calls to new for globals"

8 years agoUse trivial types to avoid calls to new for globals
Dimitry Ivanov [Wed, 13 Jul 2016 17:24:06 +0000 (10:24 -0700)]
Use trivial types to avoid calls to new for globals

To avoid initialization ordering problem avoid constructing
non-trivial global objects for linker_logger.

This patch also adds explicit check for bloc_size_ on alloc

Change-Id: I2cb3b13a10b7fac1f52a20038af77266d3e1da96

8 years agoMerge "linker: Enable debug logging via properties"
Treehugger Robot [Tue, 12 Jul 2016 22:27:19 +0000 (22:27 +0000)]
Merge "linker: Enable debug logging via properties"

8 years agolinker: Enable debug logging via properties
Dimitry Ivanov [Tue, 12 Jul 2016 01:11:39 +0000 (18:11 -0700)]
linker: Enable debug logging via properties

This patch lets developers tune logging of dlopen/dlerror with
setting system property.

Note that for security purposes this option is disabled on user build
for non-debuggable apps.

For starters there are 3 debug options:
 dlerror - enables logging of all dlerrors
 dlopen - traces dlopen calls

To enable system-wide logging (works only for userdebug/eng builds)
use debug.ld.all property.

To enable logging for particular app use debug.ld.app.<appname> property.

Example: Running "adb shell setprop debug.ld.all dlerror,dlopen" will log all
dlerror message as well as trace all calls to dlopen.

Bug: http://b/29458203
Change-Id: I2392c80a795509e16fe5689d0500d18b99772a64

8 years agoSupport 32-bit ARM vdso.
Elliott Hughes [Tue, 12 Jul 2016 20:55:51 +0000 (13:55 -0700)]
Support 32-bit ARM vdso.

Linux 4.1 added this.

Bug: http://b/19198045
Change-Id: I28be802ff403a61dd6733a001411b3ff05fef5a5

8 years agoMerge "Rename Android.soong.mk to Android.mk"
Colin Cross [Tue, 12 Jul 2016 16:15:53 +0000 (16:15 +0000)]
Merge "Rename Android.soong.mk to Android.mk"

8 years agoRename Android.soong.mk to Android.mk
Colin Cross [Mon, 11 Jul 2016 23:54:20 +0000 (16:54 -0700)]
Rename Android.soong.mk to Android.mk

Soong is always on now, so we don't have to distinguish between
makefiles that should be ignored because Soong is handling them with an
Android.bp file, and makefiles that are still needed with Soong.  All
obsolete Android.mk files have been removed, rename all Android.soong.mk
files to Android.mk.

Change-Id: Ic0494e1800dec13a9f5714559cffe3a5ebe49418

8 years agoMerge "Update the kernel header documentation."
Christopher Ferris [Fri, 8 Jul 2016 22:31:14 +0000 (22:31 +0000)]
Merge "Update the kernel header documentation."

8 years agoUpdate the kernel header documentation.
Christopher Ferris [Fri, 8 Jul 2016 22:25:21 +0000 (15:25 -0700)]
Update the kernel header documentation.

Change the references to using the android kernel source, to use
the linux stable source code repository.

Change-Id: Ibc6c90fc67c80bef235459bb3af31656f4d403ac

8 years agoMerge "Add the record alloc option."
Treehugger Robot [Fri, 8 Jul 2016 21:59:18 +0000 (21:59 +0000)]
Merge "Add the record alloc option."

8 years agoAdd the record alloc option.
Christopher Ferris [Wed, 20 Apr 2016 19:30:58 +0000 (12:30 -0700)]
Add the record alloc option.

This option adds the ability to record all of the allocation requests
and dump them to a file when a signal is sent to the process.

Included in this change, redo the option processing to add a new
string option.

Bug: 27747898

Change-Id: Ida043362e38b5eb1d459c99db9c2581015dab366

8 years agoMerge "Update timezone data to 2016f"
Neil Fuller [Thu, 7 Jul 2016 12:57:02 +0000 (12:57 +0000)]
Merge "Update timezone data to 2016f"

8 years agoUpdate timezone data to 2016f
Neil Fuller [Wed, 6 Jul 2016 14:26:15 +0000 (15:26 +0100)]
Update timezone data to 2016f

The 2016f release of the tz code and data is available. It reflects the
following changes, which were either circulated on the tz mailing list
or are relatively minor technical or administrative changes:

   Changes affecting future time stamps

     The Egyptian government changed its mind on short notice, and
     Africa/Cairo will not introduce DST starting 2016-07-07 after all.
     (Thanks to Mina Samuel.)

     Asia/Novosibirsk switches from +06 to +07 on 2016-07-24 at 02:00.
     (Thanks to Stepan Golosunov.)

   Changes to past and future time stamps

     Asia/Novokuznetsk and Asia/Novosibirsk now use numeric time zone
     abbreviations instead of invented ones.

   Changes affecting past time stamps

     Europe/Minsk's 1992-03-29 spring-forward transition was at 02:00
not 00:00.
     (Thanks to Stepan Golosunov.)

Note: Paul Eggert changed the key used to sign the tzdata bundle and
the new public key cannot be found. The changes to the data since
2016e have been verified visually.

Change-Id: I11b49d9916e67313978fd893acf091e9f99f6d33
Test: Ran CTS/android.core.tests.libcore.package.harmony_java_util
Test: Ran CTS/android.core.tests.libcore.package.harmony_java_text
Test: Ran CTS/android.core.tests.libcore.package.libcore
Bug: 29991153

8 years agoMerge "x86-64's va_list is not a pointer type."
Elliott Hughes [Thu, 30 Jun 2016 20:48:04 +0000 (20:48 +0000)]
Merge "x86-64's va_list is not a pointer type."

8 years agox86-64's va_list is not a pointer type.
Elliott Hughes [Thu, 30 Jun 2016 20:47:16 +0000 (13:47 -0700)]
x86-64's va_list is not a pointer type.

Change-Id: I680feeb641d5411ac481daaae6fa1580e74c5563

8 years agoMerge "Revert "Skip Clang's integrated-as for hand-coded assembly""
Treehugger Robot [Thu, 30 Jun 2016 20:33:41 +0000 (20:33 +0000)]
Merge "Revert "Skip Clang's integrated-as for hand-coded assembly""

8 years agoOnly initialize the global stack protector once.
Josh Gao [Wed, 29 Jun 2016 23:47:53 +0000 (16:47 -0700)]
Only initialize the global stack protector once.

Before, dynamic executables would initialize the global stack protector
twice, once for the linker, and once for the executable. This worked
because the result was the same for both initializations, because it
used getauxval(AT_RANDOM), which won't be the case once arc4random gets
used for it.

Bug: http://b/29622562
Change-Id: I7718b1ba8ee8fac7127ab2360cb1088e510fef5c
Test: ran the stack protector tests on angler (32/64bit, static/dynamic)

8 years agoMake getpid work before TLS has been initialized.
Josh Gao [Wed, 29 Jun 2016 23:19:25 +0000 (16:19 -0700)]
Make getpid work before TLS has been initialized.

Bug: http://b/29622562
Change-Id: I648adc35c04604a7e8bc649c425f07a723e96d3a
Test: code dependent on this change no longer crashes

8 years agoMerge "Apparently mips and x86's va_list is a pointer type."
Elliott Hughes [Thu, 30 Jun 2016 19:48:19 +0000 (19:48 +0000)]
Merge "Apparently mips and x86's va_list is a pointer type."

8 years agoApparently mips and x86's va_list is a pointer type.
Elliott Hughes [Thu, 30 Jun 2016 19:46:21 +0000 (12:46 -0700)]
Apparently mips and x86's va_list is a pointer type.

And clang won't let you have a function declaration where some arguments
have nullability specifiers and others don't.

Change-Id: I450b0221a3f7f068d5fe971dfbc0ba91d25710e8

8 years agoMerge "Remove __nonnull (in favor of _Nonnull)."
Treehugger Robot [Thu, 30 Jun 2016 18:04:38 +0000 (18:04 +0000)]
Merge "Remove __nonnull (in favor of _Nonnull)."

8 years agoRemove __nonnull (in favor of _Nonnull).
Elliott Hughes [Thu, 30 Jun 2016 16:12:40 +0000 (09:12 -0700)]
Remove __nonnull (in favor of _Nonnull).

It's a dangerous pain in the ass, and we're only using it in one place, and
that's a mistake too.

Change-Id: Ida1d1286aaa1343bdee95fa092fcb45ff3258f77

8 years agoRevert "Skip Clang's integrated-as for hand-coded assembly"
Pirama Arumuga Nainar [Thu, 30 Jun 2016 00:16:54 +0000 (00:16 +0000)]
Revert "Skip Clang's integrated-as for hand-coded assembly"

This reverts commit 8d414dd2b1d9503f6d4b3d9310796be50a824ede.

Reverting this since https://android-review.googlesource.com/#/c/244800/ adds -fno-integrated-as globally.

Change-Id: I29f53a385c16f44ead5dc744b0f2dd18a4af1731

8 years agoMerge changes I98c9329f,I40936f7b,I09d20ff1
Treehugger Robot [Wed, 29 Jun 2016 21:45:34 +0000 (21:45 +0000)]
Merge changes I98c9329f,I40936f7b,I09d20ff1

* changes:
  Defer registration of the arc4random fork-detect handler.
  Make getpid work before the main thread is initialized.
  Take the arc4random lock before forking.

8 years agoDefer registration of the arc4random fork-detect handler.
Josh Gao [Fri, 24 Jun 2016 23:18:21 +0000 (16:18 -0700)]
Defer registration of the arc4random fork-detect handler.

Previously, arc4random would register a fork-detecting pthread_atfork
handler to not have to call getpid() after a fork. pthread_atfork uses
pthread_mutex_lock, which requires the current thread to be initialized,
preventing the use of arc4random for initializing the global stack guard,
which needs to happen before the main thread has been initialized.

Extract the arc4random fork-detection flag and use the existing
arc4random fork handler to set it.

Bug: http://b/29622562
Change-Id: I98c9329fa0e489c3f78cad52747eaaf2f5226b80

8 years agoMake getpid work before the main thread is initialized.
Josh Gao [Fri, 24 Jun 2016 23:13:33 +0000 (16:13 -0700)]
Make getpid work before the main thread is initialized.

Bug: http://b/29622562
Test: code dependent on this change no longer crashes
Change-Id: I40936f7b35d9e58182aeb2e34e52f54088700825

8 years agoTake the arc4random lock before forking.
Josh Gao [Fri, 24 Jun 2016 20:04:09 +0000 (13:04 -0700)]
Take the arc4random lock before forking.

Bug: http://b/24675038
Test: stepped through a fork call in gdb
Change-Id: I09d20ff1d103d0c005f2a0cdd9b0a8710ab2392c

8 years agoMerge "Skip Clang's integrated-as for hand-coded assembly"
Treehugger Robot [Mon, 27 Jun 2016 22:39:48 +0000 (22:39 +0000)]
Merge "Skip Clang's integrated-as for hand-coded assembly"

8 years agoSkip Clang's integrated-as for hand-coded assembly
Pirama Arumuga Nainar [Sat, 25 Jun 2016 19:53:06 +0000 (12:53 -0700)]
Skip Clang's integrated-as for hand-coded assembly

Bug: http://b/28149048
Bug: http://b/29771478

Clang recently switched to using integrated assembler for Mips.
However, it fails to compile some of the hand-coded assembly files in
bionic.  Disable integrated-as for the time being.

Change-Id: I2eed4391f6827224da74383387bdd9105de5a857

8 years agoMerge "Update timezone data to 2016e"
Neil Fuller [Fri, 24 Jun 2016 09:02:03 +0000 (09:02 +0000)]
Merge "Update timezone data to 2016e"

8 years agoUpdate timezone data to 2016e
Neil Fuller [Wed, 15 Jun 2016 13:55:44 +0000 (14:55 +0100)]
Update timezone data to 2016e

  Changes affecting future time stamps

    Africa/Cairo observes DST in 2016 from July 7 to the end of October.
    Guess October 27 and 24:00 transitions. (Thanks to Steffen Thorsen.)
    For future years, guess April's last Thursday to October's last
    Thursday except for Ramadan.

  Changes affecting past time stamps

    Locations while uninhabited now use '-00', not 'zzz', as a
    placeholder time zone abbreviation.  This is inspired by Internet
    RFC 3339 and is more consistent with numeric time zone
    abbreviations already used elsewhere.  The change affects several
    arctic and antarctic locations, e.g., America/Cambridge_Bay before
    1920 and Antarctica/Troll before 2005.

    Asia/Baku's 1992-09-27 transition from +04 (DST) to +04 (non-DST) was
    at 03:00, not 23:00 the previous day.  (Thanks to Michael Deckers.)

Bug: 29354265
Test: Ran CTS/android.core.tests.libcore.package.harmony_java_util
Test: Ran CTS/android.core.tests.libcore.package.harmony_java_text
Test: Ran CTS/android.core.tests.libcore.package.libcore
(cherry picked from commit 1b0ee2041c5ccf4053be8648e0cfbe45c102aeb7)

Change-Id: I00b892b160769faae6fc8e0df2a58211a43bc1a0