OSDN Git Service
Treehugger Robot [Wed, 10 Aug 2016 00:43:39 +0000 (00:43 +0000)]
Merge "Remove more stdio copy/paste."
Elliott Hughes [Tue, 9 Aug 2016 20:06:41 +0000 (13:06 -0700)]
Remove more stdio copy/paste.
Change-Id: Ia92629b75d2c153ecf1cec711e2f9575eef604ab
Treehugger Robot [Tue, 9 Aug 2016 15:20:38 +0000 (15:20 +0000)]
Merge "linker: fix mips build"
Dimitry Ivanov [Tue, 9 Aug 2016 13:58:55 +0000 (06:58 -0700)]
linker: fix mips build
Change-Id: I88c5ba7f33825ae9b36992b32d30579ec4a66915
Test: lunch aosp_mips-eng && mm
Treehugger Robot [Tue, 9 Aug 2016 00:57:32 +0000 (00:57 +0000)]
Merge "Don't use the same declaration to declare multiple symbol names."
Treehugger Robot [Tue, 9 Aug 2016 00:31:45 +0000 (00:31 +0000)]
Merge changes I868417f4,I57ac3667
* changes:
Extract soinfo and globals to separate files.
Move android_namespace_t to a separate file.
Josh Gao [Tue, 26 Jul 2016 23:47:48 +0000 (16:47 -0700)]
Don't use the same declaration to declare multiple symbol names.
This doesn't play well with preprocessing.
Bug: http://b/
30170081
Change-Id: Id7fc648113336dcccdfa0a6b108f3d452aaf1ed2
Dimitry Ivanov [Thu, 4 Aug 2016 18:50:36 +0000 (11:50 -0700)]
Extract soinfo and globals to separate files.
Move soinfo and globals out of linker.cpp to
separate files.
Breaking up huge linker.cpp into smaller peaces
in order to make it easier to extract part of the
code that belongs to libdl.so and remove parts of
the code that do not belong to linker
(refactoring part 2 of many)
Change-Id: I868417f4b8d2b84d0e8265e354bc7977161497e2
Dimitry Ivanov [Wed, 3 Aug 2016 23:00:10 +0000 (16:00 -0700)]
Move android_namespace_t to a separate file.
Breaking up huge linker.cpp into smaller peaces
in order to make it easier to extract part of the
code that belongs to libdl.so and remove parts of
the code that do not belong to linker
(refactoring part 1 of many)
Change-Id: I57ac36677a815800dc127c8c45c3ea806c37e247
Test: bionic-unit-tests --gtest_filter=dl*:Dl*
Elliott Hughes [Mon, 8 Aug 2016 23:04:01 +0000 (23:04 +0000)]
Merge "Update NOTICE files."
Elliott Hughes [Mon, 8 Aug 2016 19:39:56 +0000 (12:39 -0700)]
Update NOTICE files.
Change-Id: I591dc91b54804aebc05ba6f9974ef9add660ecfe
Treehugger Robot [Sat, 6 Aug 2016 01:31:18 +0000 (01:31 +0000)]
Merge "Guard fortify inlines with __ANDROID_API__."
Treehugger Robot [Sat, 6 Aug 2016 00:11:14 +0000 (00:11 +0000)]
Merge "Reimplement remove(3) without the lstat(2)."
Dan Albert [Tue, 2 Aug 2016 22:08:32 +0000 (15:08 -0700)]
Guard fortify inlines with __ANDROID_API__.
Test: make checkbuild with libc ndk_library patches applied
Change-Id: Ic5e248994c4f2702b0f4d6dfeda787187ea86017
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
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.
Dan Albert [Thu, 4 Aug 2016 22:39:05 +0000 (15:39 -0700)]
Run genversion-scripts.py.
Change-Id: I01c4d9a85d3397b02b00b4d33fafe6d9ae692ed7
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
Pirama Arumuga Nainar [Thu, 4 Aug 2016 18:23:21 +0000 (18:23 +0000)]
Merge "Guard 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.
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.
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.
Dan Albert [Tue, 2 Aug 2016 22:20:36 +0000 (15:20 -0700)]
Run genversion-scripts.py.
Change-Id: Iecc1b127c67a96aecc4e86582c1cc3291a4acf00
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
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
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.
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
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
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
Dimitry Ivanov [Tue, 2 Aug 2016 18:17:08 +0000 (18:17 +0000)]
Merge "Correct libstdc++ version"
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
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
Treehugger Robot [Tue, 2 Aug 2016 02:30:14 +0000 (02:30 +0000)]
Merge "More 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
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.
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
Treehugger Robot [Mon, 1 Aug 2016 21:33:25 +0000 (21:33 +0000)]
Merge "Update testing docs."
Dimitry Ivanov [Mon, 1 Aug 2016 21:01:28 +0000 (21:01 +0000)]
Merge "Sync linker with internal branch"
Elliott Hughes [Mon, 1 Aug 2016 21:00:45 +0000 (14:00 -0700)]
Clean up 32-bit x86 memset assembler.
Change-Id: I2d334db29226f9c60cf20220a569f1b772bf7c66
Elliott Hughes [Mon, 1 Aug 2016 20:16:37 +0000 (13:16 -0700)]
Update testing docs.
Change-Id: Ic0e1c3105d1cf8e73c0fbfd51052895beed76227
Treehugger Robot [Mon, 1 Aug 2016 20:05:43 +0000 (20:05 +0000)]
Merge "More stdio cleanup."
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*
Treehugger Robot [Mon, 1 Aug 2016 17:27:36 +0000 (17:27 +0000)]
Merge "Restore attribute alloc_size for GCC."
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
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
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.
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
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
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
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
Treehugger Robot [Fri, 29 Jul 2016 22:20:50 +0000 (22:20 +0000)]
Merge "Improvements to initialization of linker_allocator"
Treehugger Robot [Fri, 29 Jul 2016 22:13:56 +0000 (22:13 +0000)]
Merge "Upgrade to tzcode-2016f."
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
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
Dimitry Ivanov [Thu, 28 Jul 2016 22:38:08 +0000 (22:38 +0000)]
Merge "Add 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
Treehugger Robot [Thu, 28 Jul 2016 00:20:36 +0000 (00:20 +0000)]
Merge "Add IOV_MAX to <limits.h>."
Treehugger Robot [Wed, 27 Jul 2016 22:33:52 +0000 (22:33 +0000)]
Merge "Admit that we don't actually support thread priority inheritance."
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
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
Treehugger Robot [Wed, 27 Jul 2016 18:44:07 +0000 (18:44 +0000)]
Merge "Clean up <uchar.h> and <wctype.h> transitive includes."
Christopher Ferris [Wed, 27 Jul 2016 17:56:55 +0000 (17:56 +0000)]
Merge "More kernel header cleanup."
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
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.
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
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
Treehugger Robot [Mon, 25 Jul 2016 23:48:07 +0000 (23:48 +0000)]
Merge "Remove #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
Elliott Hughes [Mon, 25 Jul 2016 22:32:56 +0000 (22:32 +0000)]
Merge "Stop #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.
Treehugger Robot [Sat, 23 Jul 2016 03:51:19 +0000 (03:51 +0000)]
Merge "Remove bionic's now-unused UniquePtr."
Treehugger Robot [Sat, 23 Jul 2016 03:47:18 +0000 (03:47 +0000)]
Merge "Remove unnecessary 'extern's."
Elliott Hughes [Sat, 23 Jul 2016 02:52:46 +0000 (19:52 -0700)]
Remove bionic's now-unused UniquePtr.
Change-Id: Id77dbdd6d4255ae8317449725ef093be9422407f
Elliott Hughes [Sat, 23 Jul 2016 01:57:12 +0000 (18:57 -0700)]
Remove unnecessary 'extern's.
Change-Id: Iba2b3fb6ff88e504f1657b915120ae43d58a1e03
Treehugger Robot [Sat, 23 Jul 2016 01:48:21 +0000 (01:48 +0000)]
Merge "Always 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
Elliott Hughes [Sat, 23 Jul 2016 00:01:08 +0000 (00:01 +0000)]
Merge "Remove __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
Dimitry Ivanov [Fri, 22 Jul 2016 22:44:53 +0000 (22:44 +0000)]
Merge "Add sanity checks for e_shentsize and e_shstrndx"
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."
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
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
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
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.
Treehugger Robot [Fri, 22 Jul 2016 00:28:18 +0000 (00:28 +0000)]
Merge "Only 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
Treehugger Robot [Thu, 21 Jul 2016 08:06:33 +0000 (08:06 +0000)]
Merge "Treat "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.
Dimitry Ivanov [Thu, 21 Jul 2016 00:08:46 +0000 (00:08 +0000)]
Merge "Pass 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*
Evgenii Stepanov [Wed, 20 Jul 2016 20:31:41 +0000 (20:31 +0000)]
Merge "Align-up and randomize shared libraries."
Christopher Ferris [Wed, 20 Jul 2016 18:03:47 +0000 (18:03 +0000)]
Merge "Move/remove android only kernel uapi headers."
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
Treehugger Robot [Tue, 19 Jul 2016 21:57:27 +0000 (21:57 +0000)]
Merge "Expand the testing docs slightly."
Treehugger Robot [Tue, 19 Jul 2016 21:48:25 +0000 (21:48 +0000)]
Merge "Remove __LIBC_ABI_PUBLIC__."
Elliott Hughes [Tue, 19 Jul 2016 21:09:10 +0000 (14:09 -0700)]
Expand the testing docs slightly.
Change-Id: I4b172eefd8f456a62b24520a9f04f500a1d6bc85
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
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
Treehugger Robot [Tue, 19 Jul 2016 17:52:03 +0000 (17:52 +0000)]
Merge "Add a test for a known kernel bug."
Treehugger Robot [Mon, 18 Jul 2016 20:39:10 +0000 (20:39 +0000)]
Merge "Don't declare SYS_* constants for unavailable __NR_* constants."