OSDN Git Service

android-x86/bionic.git
8 years agoReimplement remove(3) without the lstat(2).
Elliott Hughes [Fri, 5 Aug 2016 22:53:03 +0000 (15:53 -0700)]
Reimplement remove(3) without the lstat(2).

This assumes that it's more likely we're unlinking a file than a directory,
though even if that's not true, as long as a failed unlink(2) is cheaper
than a successful lstat(2) -- which seems likely since there's no data to
copy -- we still win.

Change-Id: I0210e9cd3d31b8cf1813c55c810262ef327382ed

8 years agoMerge changes I01c4d9a8,Ic34734b4
Treehugger Robot [Thu, 4 Aug 2016 23:56:55 +0000 (23:56 +0000)]
Merge changes I01c4d9a8,Ic34734b4

* changes:
  Run genversion-scripts.py.
  Annotate libdl.map.txt.

8 years agoRun genversion-scripts.py.
Dan Albert [Thu, 4 Aug 2016 22:39:05 +0000 (15:39 -0700)]
Run genversion-scripts.py.

Change-Id: I01c4d9a85d3397b02b00b4d33fafe6d9ae692ed7

8 years agoAnnotate libdl.map.txt.
Dan Albert [Thu, 4 Aug 2016 20:43:20 +0000 (13:43 -0700)]
Annotate libdl.map.txt.

Test: readelf diff between soong generated stubs and prebuilts/ndk
Bug: http://b/30465923
Change-Id: Ic34734b40870c8b628449458798c0343648e4e97

8 years agoMerge "Guard include of uchar.h in stdatomic.h"
Pirama Arumuga Nainar [Thu, 4 Aug 2016 18:23:21 +0000 (18:23 +0000)]
Merge "Guard include of uchar.h in stdatomic.h"

8 years agoGuard include of uchar.h in stdatomic.h
Pirama Arumuga Nainar [Thu, 4 Aug 2016 16:40:18 +0000 (09:40 -0700)]
Guard include of uchar.h in stdatomic.h

Bionic stdatomic.h is also used for the host (via a copy in
prebuilts/clang).  Revert to guarding the include of uchar.h based on
__STDC_VERSION__, so it is included only when needed.

Change-Id: I5b45c7f5d16da223478512104702a3e4e5a975ae
Test: bionic tests on host and Angler.  Confirmed failures I am
      seeing are KIs.

8 years agoMerge changes Iecc1b127,Ib67f07db,I7672d34c
Treehugger Robot [Wed, 3 Aug 2016 17:50:37 +0000 (17:50 +0000)]
Merge changes Iecc1b127,Ib67f07db,I7672d34c

* changes:
  Run genversion-scripts.py.
  Only check arch tag if we have *any* arch tags.
  Add pylintrc.

8 years agoMerge changes Ib5962ea3,I8c1a7464,I06ce7c31
Treehugger Robot [Wed, 3 Aug 2016 00:22:11 +0000 (00:22 +0000)]
Merge changes Ib5962ea3,I8c1a7464,I06ce7c31

* changes:
  Add version information for legacy inlines.
  versioner: remove unnecessary kernel/common symlink.
  versioner: add symlink for kernel/android/uapi.

8 years agoRun genversion-scripts.py.
Dan Albert [Tue, 2 Aug 2016 22:20:36 +0000 (15:20 -0700)]
Run genversion-scripts.py.

Change-Id: Iecc1b127c67a96aecc4e86582c1cc3291a4acf00

8 years agoOnly check arch tag if we have *any* arch tags.
Dan Albert [Tue, 2 Aug 2016 22:19:26 +0000 (15:19 -0700)]
Only check arch tag if we have *any* arch tags.

With the introduction of new tags for ndk_library, we'll have a lot
of tags that aren't architecture tags. If we have something tagged
`introduced=21`, it should be in all architectures.

Change-Id: Ib67f07db14625f6903919c181050316eb183bed5

8 years agoAdd pylintrc.
Dan Albert [Tue, 2 Aug 2016 22:15:09 +0000 (15:15 -0700)]
Add pylintrc.

Disable all the style differences present in genversion-scripts.py.

Change-Id: I7672d34c4f7698ba445968dd5d9f5ef1fdc60056

8 years agoMerge changes Iedab3259,I333fe8ae
Treehugger Robot [Tue, 2 Aug 2016 21:44:20 +0000 (21:44 +0000)]
Merge changes Iedab3259,I333fe8ae

* changes:
  Put bsd_signal back.
  Unversion some symbols for the NDK.

8 years agoAdd version information for legacy inlines.
Josh Gao [Tue, 26 Jul 2016 23:34:40 +0000 (16:34 -0700)]
Add version information for legacy inlines.

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

8 years agoversioner: remove unnecessary kernel/common symlink.
Josh Gao [Wed, 27 Jul 2016 23:29:31 +0000 (16:29 -0700)]
versioner: remove unnecessary kernel/common symlink.

The target was moved by commit 5956b4e, but none of the headers
contained were actually necessary to compile any bionic headers.

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

8 years agoversioner: add symlink for kernel/android/uapi.
Josh Gao [Tue, 26 Jul 2016 21:04:01 +0000 (14:04 -0700)]
versioner: add symlink for kernel/android/uapi.

The android-only kernel headers were moved to their own directory by
commit d6e8b8c. Add a new symlink to match.

Change-Id: I06ce7c3167fbb1e058e4a137fae9375bb5792a46

8 years agoMerge "Correct libstdc++ version"
Dimitry Ivanov [Tue, 2 Aug 2016 18:17:08 +0000 (18:17 +0000)]
Merge "Correct libstdc++ version"

8 years agoPut bsd_signal back.
Dan Albert [Sat, 30 Jul 2016 00:45:21 +0000 (17:45 -0700)]
Put bsd_signal back.

With this change (and all the others below it in the stack), the only
difference between the arm android-9 libc.so in r13-beta1 and the one
we are now generating is the addition of LIBC_N and LIBC_O versions.

Test: make ndk, readelf stub libc.so to check symbol exists
Bug: https://github.com/android-ndk/ndk/issues/160
Change-Id: Iedab32592b2d979f3cc922ffd4ed406427de3dda

8 years agoUnversion some symbols for the NDK.
Dan Albert [Sat, 30 Jul 2016 00:37:08 +0000 (17:37 -0700)]
Unversion some symbols for the NDK.

These functions were erroneously released in LIBC_PRIVATE for M, but
in fact need to be public. Since we need to be able to load them on M
even if they were built for a lower platform (and M needs to load on
newer platforms), we need to unversion them.

Change-Id: I333fe8ae7380cc2a5dbd699414399ec52f602383

8 years agoMerge "More stdio one-liners."
Treehugger Robot [Tue, 2 Aug 2016 02:30:14 +0000 (02:30 +0000)]
Merge "More stdio one-liners."

8 years agoMore stdio one-liners.
Elliott Hughes [Mon, 1 Aug 2016 23:35:17 +0000 (16:35 -0700)]
More stdio one-liners.

This actually turns up a bug in fmemopen, so I guess that's what I'll
look at next...

Change-Id: I2971ecd1b5a3a3c7f43c22d985f88e389af89e97

8 years agoMerge changes I2d334db2,Iab9fbc73
Treehugger Robot [Mon, 1 Aug 2016 23:25:59 +0000 (23:25 +0000)]
Merge changes I2d334db2,Iab9fbc73

* changes:
  Clean up 32-bit x86 memset assembler.
  Fix x86 __memset_chk.

8 years agoCorrect libstdc++ version
Dimitry Ivanov [Mon, 1 Aug 2016 22:45:42 +0000 (15:45 -0700)]
Correct libstdc++ version

The version script is introduced in O

Bug: http://b/28987948
Change-Id: Icd0a27d1b67e8227e44aa6e771816f0e6ed489b8

8 years agoMerge "Update testing docs."
Treehugger Robot [Mon, 1 Aug 2016 21:33:25 +0000 (21:33 +0000)]
Merge "Update testing docs."

8 years agoMerge "Sync linker with internal branch"
Dimitry Ivanov [Mon, 1 Aug 2016 21:01:28 +0000 (21:01 +0000)]
Merge "Sync linker with internal branch"

8 years agoClean up 32-bit x86 memset assembler.
Elliott Hughes [Mon, 1 Aug 2016 21:00:45 +0000 (14:00 -0700)]
Clean up 32-bit x86 memset assembler.

Change-Id: I2d334db29226f9c60cf20220a569f1b772bf7c66

8 years agoUpdate testing docs.
Elliott Hughes [Mon, 1 Aug 2016 20:16:37 +0000 (13:16 -0700)]
Update testing docs.

Change-Id: Ic0e1c3105d1cf8e73c0fbfd51052895beed76227

8 years agoMerge "More stdio cleanup."
Treehugger Robot [Mon, 1 Aug 2016 20:05:43 +0000 (20:05 +0000)]
Merge "More stdio cleanup."

8 years agoSync linker with internal branch
Dimitry Ivanov [Thu, 21 Jul 2016 18:33:40 +0000 (11:33 -0700)]
Sync linker with internal branch

This change includes dlwarning implementation and
the compatibility greylist for apps targeting pre-N.

Change-Id: Ibf02a07cc58cbbb1a5aef4ac34558c5d43e4305f
Test: Run bionic-unit-tests --gtest_filter=dl*:Dl*

8 years agoMerge "Restore attribute alloc_size for GCC."
Treehugger Robot [Mon, 1 Aug 2016 17:27:36 +0000 (17:27 +0000)]
Merge "Restore attribute alloc_size for GCC."

8 years agoFix x86 __memset_chk.
Lev Rumyantsev [Sat, 30 Jul 2016 00:55:42 +0000 (17:55 -0700)]
Fix x86 __memset_chk.

When __memset_chk_fail moved to C++, we didn't take into account
that the stack wasn't set up correctly for the jump from assembler.
Presumably no one had run the 32-bit x86 tests until now!

Bug: http://b/30513094
Change-Id: Iab9fbc731b6bfecd7ca4d3f3844d0568a5d30d86

8 years agoRestore attribute alloc_size for GCC.
Elliott Hughes [Sat, 30 Jul 2016 16:58:15 +0000 (09:58 -0700)]
Restore attribute alloc_size for GCC.

clang doesn't support attribute alloc_size, but GCC uses it to give
diagnostics where clang can't, and we had a test for one such case.

Bug: http://b/30513330
Change-Id: I4c14771258992d6bea684db7f91d60312642662f

8 years agoMerge changes I946cde38,I4b8e0ea1,I2e8141a8
Treehugger Robot [Sat, 30 Jul 2016 02:07:16 +0000 (02:07 +0000)]
Merge changes I946cde38,I4b8e0ea1,I2e8141a8

* changes:
  Mark LIBC_O as being a future version.
  Mark LIBC_N as being introduced in android-24.
  Annotate the libc version map with NDK info.

8 years agoMark LIBC_O as being a future version.
Dan Albert [Fri, 29 Jul 2016 00:41:57 +0000 (17:41 -0700)]
Mark LIBC_O as being a future version.

None of these symbols are in the NDK yet. Skip them.

Change-Id: I946cde38e767190c396593d562babc90457973fb

8 years agoMark LIBC_N as being introduced in android-24.
Dan Albert [Fri, 29 Jul 2016 01:08:42 +0000 (18:08 -0700)]
Mark LIBC_N as being introduced in android-24.

Change-Id: I4b8e0ea1fc9b42c1f98f36ae7aaaae2c6322e16b

8 years agoAnnotate the libc version map with NDK info.
Dan Albert [Thu, 28 Jul 2016 06:56:54 +0000 (23:56 -0700)]
Annotate the libc version map with NDK info.

Generated by running
https://android-review.googlesource.com/#/c/251477/ for libc.

Test: make checkbuild with
https://android-review.googlesource.com/#/q/branch:master+topic:ndk_library-libc-libm
Change-Id: I2e8141a83c1d79fd89b5e5c4432400b8301ba347

8 years agoMore stdio cleanup.
Elliott Hughes [Fri, 29 Jul 2016 23:31:52 +0000 (16:31 -0700)]
More stdio cleanup.

Time to get back to cleaning up stdio, so start with a bunch of easy
one-liners...

Change-Id: I8df5fdc72500a89b977bfaa6c64c3639198d4e3e

8 years agoMerge "Improvements to initialization of linker_allocator"
Treehugger Robot [Fri, 29 Jul 2016 22:20:50 +0000 (22:20 +0000)]
Merge "Improvements to initialization of linker_allocator"

8 years agoMerge "Upgrade to tzcode-2016f."
Treehugger Robot [Fri, 29 Jul 2016 22:13:56 +0000 (22:13 +0000)]
Merge "Upgrade to tzcode-2016f."

8 years agoImprovements to initialization of linker_allocator
Dimitry Ivanov [Fri, 29 Jul 2016 20:25:33 +0000 (13:25 -0700)]
Improvements to initialization of linker_allocator

Make linker_allocator independent of the order of global constructors.

Bug: http://b/30483811
Change-Id: I18a323175661b8e1c9e398f2d6112f7a08d2cceb
Test: boot the device with I3ac91758a1a043146c65f2ae0f36fcfbe372c30f

8 years agoUpgrade to tzcode-2016f.
Elliott Hughes [Fri, 29 Jul 2016 21:04:17 +0000 (14:04 -0700)]
Upgrade to tzcode-2016f.

No significant changes other than a default implementation of strftime_l.

Change-Id: I6edd2c03e5e7559f012c0c87d43f7109d641d3ca

8 years agoMerge "Add symbol versions to libstdc++.so"
Dimitry Ivanov [Thu, 28 Jul 2016 22:38:08 +0000 (22:38 +0000)]
Merge "Add symbol versions to libstdc++.so"

8 years agoAdd symbol versions to libstdc++.so
Dimitry Ivanov [Thu, 28 Jul 2016 20:52:17 +0000 (13:52 -0700)]
Add symbol versions to libstdc++.so

Bug: http://b/28987948
Change-Id: I3853528bd432ceab37e4867f2c4112d9ee0b40dc

8 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>."

8 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."

8 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

8 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

8 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."

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

8 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

8 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.

8 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

8 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

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

8 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

8 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."

8 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.

8 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."

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

8 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

8 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

8 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>."

8 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

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

8 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

8 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"

8 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."

8 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

8 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

8 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

8 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.

8 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."

8 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

8 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."

8 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.

8 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"

8 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*

8 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."

8 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."

8 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

8 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."

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

8 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

8 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

8 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"