OSDN Git Service
Josh Gao [Thu, 23 Feb 2017 03:30:22 +0000 (03:30 +0000)]
Merge "Allocate thread local buffers in __init_tls."
am:
7009f40e52
Change-Id: I11737e4ea95f517d71f4b08051f67b218c0f2c6c
Josh Gao [Thu, 23 Feb 2017 03:24:44 +0000 (03:24 +0000)]
Merge "Allocate thread local buffers in __init_tls."
Josh Gao [Wed, 22 Feb 2017 20:19:05 +0000 (12:19 -0800)]
Allocate thread local buffers in __init_tls.
Thread local buffers were using pthread_setspecific for storage with
lazy initialization. pthread_setspecific shares TLS slots between the
linker and libc.so, so thread local buffers being initialized in a
different order between libc.so and the linker meant that bad things
would happen (manifesting as snprintf not working because the
locale was mangled)
Bug: http://b/
20464031
Test: /data/nativetest64/bionic-unit-tests/bionic-unit-tests
everything passes
Test: /data/nativetest/bionic-unit-tests/bionic-unit-tests
thread_local tests are failing both before and after (KUSER_HELPERS?)
Test: /data/nativetest64/bionic-unit-tests-static/bionic-unit-tests-static
no additional failures
Change-Id: I9f445a77c6e86979f3fa49c4a5feecf6ec2b0c3f
Elliott Hughes [Wed, 22 Feb 2017 01:47:53 +0000 (01:47 +0000)]
Merge "Add timeout support to __system_property_wait."
am:
c9a840ac76
Change-Id: Ifaa6521599c8d36386cee6e980d0e10a7a6c1ef9
Treehugger Robot [Wed, 22 Feb 2017 01:43:30 +0000 (01:43 +0000)]
Merge "Add timeout support to __system_property_wait."
Elliott Hughes [Wed, 22 Feb 2017 00:42:11 +0000 (00:42 +0000)]
Merge "Downgrade the special case of pthread_t(0) to a warning."
am:
2cb4fb033f
Change-Id: If4f963995645b9d57666d0cef0661aa96d8aa2a1
Treehugger Robot [Wed, 22 Feb 2017 00:37:08 +0000 (00:37 +0000)]
Merge "Downgrade the special case of pthread_t(0) to a warning."
Elliott Hughes [Fri, 17 Feb 2017 01:13:04 +0000 (17:13 -0800)]
Add timeout support to __system_property_wait.
Bug: http://b/
35201172
Test: ran tests
Change-Id: I3a78813bf3cd50d1b308ecb3c742f923606c0cc4
Elliott Hughes [Tue, 21 Feb 2017 21:15:20 +0000 (13:15 -0800)]
Downgrade the special case of pthread_t(0) to a warning.
So far this is the only issue we've hit in vendor code, and we've hit
it several times already. Rather than try to fix bullhead (the current
problem), let's just admit that the special case of 0 is a lot less
worrying.
Also fix the test expectations to correspond to the new abort message.
Bug: http://b/
35455349 (crashes on 0)
Bug: http://b/
35622944 (tests)
Test: ran tests
Change-Id: Iec57011fa699a954ebeaec151db2193e36d1ef35
Elliott Hughes [Sun, 19 Feb 2017 05:23:49 +0000 (05:23 +0000)]
Merge "Fix a comment in the pthread_cond_t implementation."
am:
4085423525
Change-Id: Iaf8f9accf72bca7aa90cbda76014cde5683f1204
Treehugger Robot [Sun, 19 Feb 2017 05:19:54 +0000 (05:19 +0000)]
Merge "Fix a comment in the pthread_cond_t implementation."
Elliott Hughes [Sun, 19 Feb 2017 00:35:36 +0000 (16:35 -0800)]
Fix a comment in the pthread_cond_t implementation.
Bug: http://b/
34592766
Test: N/A
Change-Id: I341f837dca52865ae5f8fe9ff50ba8999e297179
Dimitry Ivanov [Sat, 18 Feb 2017 00:54:48 +0000 (00:54 +0000)]
Merge "Fix debug.ld for apps with long names and services"
am:
bc645ef068
Change-Id: If90d37eced3d4ae512da3091987a306c7f049d96
Treehugger Robot [Sat, 18 Feb 2017 00:50:47 +0000 (00:50 +0000)]
Merge "Fix debug.ld for apps with long names and services"
Dimitry Ivanov [Sat, 18 Feb 2017 00:24:46 +0000 (00:24 +0000)]
Merge "Revert "Revert "Make libc.so global"""
am:
ff3197bcc2
Change-Id: I645c686c7803c46627959caf0d47a03cb5387029
Treehugger Robot [Sat, 18 Feb 2017 00:18:26 +0000 (00:18 +0000)]
Merge "Revert "Revert "Make libc.so global"""
Dimitry Ivanov [Fri, 17 Feb 2017 22:41:30 +0000 (14:41 -0800)]
Fix debug.ld for apps with long names and services
1. There is no longer limit on property names - remove
the trimming the name of the property.
2. Make debug.ld work for processes with names ending with ":something"
This is naming convention for services:
https://developer.android.com/guide/components/services.html
Bug: http://b/
35338922
Bug: http://b/
33926793
Test: manual - set ld.debug.app property for the app
Test: from http://b/
35338922 and see that it works
Test: for the service as well.
Change-Id: Ic7c6d4edce4a5a22f144496d5c0a3e458217c6e4
Dimitry Ivanov [Thu, 16 Feb 2017 20:03:21 +0000 (12:03 -0800)]
Revert "Revert "Make libc.so global""
This reverts commit
65236d43e8e8ea2155c0d64e35f00b3c30b21147.
Bug: http://b/
35417197
Bug: http://b/
35338922
Test: vogar --classpath out/target/common/obj/JAVA_LIBRARIES/core-tests_intermediates/classes.jack --mode=device --variant=X32 dalvik.system.JniTest#testGetSuperclass
Change-Id: Ibf3bb7396e7d11ebe95e2f9267d0fc4af3fbe8c5
Dan Albert [Fri, 17 Feb 2017 22:13:05 +0000 (22:13 +0000)]
Merge "Cleanup now that we don't need __NDK_FPABI__."
am:
4731fbd6e0
Change-Id: I62dc4eaefc95d2875cb6ba383d24a2c449005d60
Treehugger Robot [Fri, 17 Feb 2017 21:11:26 +0000 (21:11 +0000)]
Merge "Cleanup now that we don't need __NDK_FPABI__."
Elliott Hughes [Fri, 17 Feb 2017 20:51:04 +0000 (20:51 +0000)]
Merge "Include the pthread_t in the "bad pthread_t" fatal abort." am:
ce958d7e5c
am:
2caaf22e1d
Change-Id: I9330d5b8f57fcf78a2ad98d394f017686333923d
Elliott Hughes [Fri, 17 Feb 2017 20:49:27 +0000 (20:49 +0000)]
Merge "Include the pthread_t in the "bad pthread_t" fatal abort."
am:
ce958d7e5c
Change-Id: Ic30b9e90c17ddc69c15b1b83d0dc568deea80420
Treehugger Robot [Fri, 17 Feb 2017 20:44:43 +0000 (20:44 +0000)]
Merge "Include the pthread_t in the "bad pthread_t" fatal abort."
Josh Gao [Fri, 17 Feb 2017 19:46:25 +0000 (19:46 +0000)]
Merge "Add tests for ptrace resumption behavior." am:
d11584665c
am:
d4233fbc5e
Change-Id: Id0ee86d392268211501183e67600bcb9c7fde1d9
Josh Gao [Fri, 17 Feb 2017 19:42:53 +0000 (19:42 +0000)]
Merge "Add tests for ptrace resumption behavior."
am:
d11584665c
Change-Id: I4a57cc866b5a7facecd9cbe0084cd0c55304d58f
Josh Gao [Fri, 17 Feb 2017 19:35:58 +0000 (19:35 +0000)]
Merge "Add tests for ptrace resumption behavior."
Dan Albert [Fri, 17 Feb 2017 19:08:53 +0000 (11:08 -0800)]
Cleanup now that we don't need __NDK_FPABI__.
Test: tools/update_headers.sh && make checkbuild
Bug: None
Change-Id: I1b9986c4d7d5da349a8ad394e8fcf64b87c89fdf
Elliott Hughes [Fri, 17 Feb 2017 18:27:45 +0000 (10:27 -0800)]
Include the pthread_t in the "bad pthread_t" fatal abort.
Also reword the message to be stronger.
Bug: http://b/
35455349
Test: manual
Change-Id: I8f34fd42f3b635c95a7b921645a016fb303ce3ad
Josh Gao [Thu, 16 Feb 2017 23:28:22 +0000 (23:28 +0000)]
Merge changes from topic 'debuggerd_inproc' am:
4509e0ec94 am:
243b4ba143
am:
82503678f0
Change-Id: I1d4efc4b34effcce377c2c83e016f6e0bcca620c
Josh Gao [Thu, 16 Feb 2017 23:23:51 +0000 (23:23 +0000)]
Merge changes from topic 'debuggerd_inproc' am:
4509e0ec94
am:
243b4ba143
Change-Id: Ief1c3ba804e4d6832340fb51e68b54d174f3a5da
Josh Gao [Thu, 16 Feb 2017 23:19:24 +0000 (23:19 +0000)]
Merge changes from topic 'debuggerd_inproc'
am:
4509e0ec94
Change-Id: I120a178e8332e650b96f708a3e68c9e3ba4e726c
Josh Gao [Thu, 16 Feb 2017 23:11:51 +0000 (23:11 +0000)]
Merge changes from topic 'debuggerd_inproc'
* changes:
linker: use fallback crash handler dumping.
linker: add android_use_fallback_allocator.
Josh Gao [Thu, 16 Feb 2017 22:12:41 +0000 (14:12 -0800)]
Add tests for ptrace resumption behavior.
Add tests that ensure that the kernel behaves properly w.r.t.
resumption of ptraced processes when the tracer dies.
Bug: http://b/
34516140
Test: /data/nativetest/bionic-unit-tests/bionic-unit-tests --gtest_filter="PtraceResumption*"
Change-Id: Id35e069a7e5edd6964637dd3f6358ad59db19792
Josh Gao [Thu, 16 Feb 2017 03:56:32 +0000 (03:56 +0000)]
Merge "Add __libc_format_buffer_va_list." am:
fec0e015ce am:
33b9640132
am:
f1d42d6acd
Change-Id: I447306ecc5218d7638181fe9a163cf5e10b0cad4
Josh Gao [Thu, 16 Feb 2017 03:53:33 +0000 (03:53 +0000)]
Merge "Add __libc_format_buffer_va_list." am:
fec0e015ce
am:
33b9640132
Change-Id: I6848c4ef176cd04daa8ca1d1799aa69f1a00678d
Josh Gao [Thu, 16 Feb 2017 03:50:03 +0000 (03:50 +0000)]
Merge "Add __libc_format_buffer_va_list."
am:
fec0e015ce
Change-Id: I1028ee851f6fdd30e93858e89a5bd741bbb54e62
Josh Gao [Thu, 16 Feb 2017 03:42:50 +0000 (03:42 +0000)]
Merge "Add __libc_format_buffer_va_list."
Dimitry Ivanov [Thu, 16 Feb 2017 02:31:59 +0000 (02:31 +0000)]
Merge "Unify linker files under one license (BSD)" am:
10a441bfcd am:
a368dd9dbf
am:
401384c3de
Change-Id: I8e26fc4518a0b89fec88e217e1ea04bf357182b2
Dimitry Ivanov [Thu, 16 Feb 2017 02:28:28 +0000 (02:28 +0000)]
Merge "Unify linker files under one license (BSD)" am:
10a441bfcd
am:
a368dd9dbf
Change-Id: Ic3da42612438aad889c916092e0293be89b9c340
Dimitry Ivanov [Thu, 16 Feb 2017 02:24:27 +0000 (02:24 +0000)]
Merge "Unify linker files under one license (BSD)"
am:
10a441bfcd
Change-Id: I63ea67e032edcdf9bc27180030b5e6b1ae2473d4
Treehugger Robot [Thu, 16 Feb 2017 02:15:54 +0000 (02:15 +0000)]
Merge "Unify linker files under one license (BSD)"
Josh Gao [Thu, 9 Feb 2017 01:27:20 +0000 (17:27 -0800)]
linker: use fallback crash handler dumping.
Bug: http://b/
34684590
Test: mma
Change-Id: I0801a83768f172308339ab2118e492b5df96acd0
Josh Gao [Thu, 9 Feb 2017 18:54:44 +0000 (10:54 -0800)]
linker: add android_use_fallback_allocator.
Add a function to enable a fallback allocator to use for crash handling
in a signal handler.
Bug: http://b/
34684590
Test: crasher PR_SET_NO_NEW_PRIVS
Change-Id: Ifa5de636164f34b8cb2fdec4471c20f8516b6dbe
Josh Gao [Wed, 15 Feb 2017 19:46:55 +0000 (11:46 -0800)]
Add __libc_format_buffer_va_list.
Bug: http://b/
35367169
Test: m
Change-Id: I133f231d3b93bdef56d06497679320a89c7188a9
Dimitry Ivanov [Wed, 15 Feb 2017 23:31:13 +0000 (15:31 -0800)]
Unify linker files under one license (BSD)
Historically we had part of the linker licensed under BSD and
another part under Apache 2 license. This commit makes all the
linker code licensed under BSD license.
Test: m
Change-Id: I11b8163ae75966b5768d3fe992679de376106515
Dan Albert [Wed, 15 Feb 2017 19:30:29 +0000 (19:30 +0000)]
Merge changes I9d06ea8a,I2d157024 am:
606ba2762e am:
cec0e2f9b1
am:
4587ac034b
Change-Id: I33c08738e7fb605bb97236f36880a61372aba769
Dan Albert [Wed, 15 Feb 2017 19:26:57 +0000 (19:26 +0000)]
Merge changes I9d06ea8a,I2d157024 am:
606ba2762e
am:
cec0e2f9b1
Change-Id: I224d0d121716b0bee40478d3011a2f625248300a
Dan Albert [Wed, 15 Feb 2017 19:24:02 +0000 (19:24 +0000)]
Merge changes I9d06ea8a,I2d157024
am:
606ba2762e
Change-Id: I85a709298e33ee2475db2e4af2312b7c9ae93e12
Treehugger Robot [Wed, 15 Feb 2017 19:14:49 +0000 (19:14 +0000)]
Merge changes I9d06ea8a,I2d157024
* changes:
Fixup API level guards for new fortify functions.
Guard the GNU strerror_r with an API check.
Daniel Micay [Wed, 15 Feb 2017 18:41:25 +0000 (18:41 +0000)]
Merge "add fortified implementations of send/sendto" am:
c54937b972 am:
0a4fb394c8
am:
63e9cd65f3
Change-Id: I23328cb633a50a5821ae7d29dc68b8abeaa06228
Daniel Micay [Wed, 15 Feb 2017 18:38:56 +0000 (18:38 +0000)]
Merge "add fortified implementations of send/sendto" am:
c54937b972
am:
0a4fb394c8
Change-Id: Ib9ba3836fa2f197388a4659906b2b0664a497098
Daniel Micay [Wed, 15 Feb 2017 18:34:27 +0000 (18:34 +0000)]
Merge "add fortified implementations of send/sendto"
am:
c54937b972
Change-Id: I74107e22aa6f3e62e9225f6201d6b70daf6ea427
Treehugger Robot [Wed, 15 Feb 2017 18:26:49 +0000 (18:26 +0000)]
Merge "add fortified implementations of send/sendto"
Dan Albert [Wed, 15 Feb 2017 03:28:18 +0000 (19:28 -0800)]
Fixup API level guards for new fortify functions.
Test: tools/update_headers.sh && make checkbuild
Bug: None
Change-Id: I9d06ea8a5ee9dc27d957f59e6e84150651ed1c76
Dan Albert [Wed, 15 Feb 2017 00:33:06 +0000 (16:33 -0800)]
Guard the GNU strerror_r with an API check.
The deprecated headers have always had only the POSIX definition
available (and it's always been available). With the unified headers
as they are now, we actually make it unavailable for C++ users (C++
implies _GNU_SOURCE) targeting below M. Adding this guard means that
pre-M users will still at least get the POSIX one.
It's not great that moving to M as your target API will actually
change the signature of your strerror_r, but I don't see a better
option here (not until we have the compatibility library, anyway).
Test: make checkbuild
Bug: None
Change-Id: I2d15702467533a826c4ec10fd973ee929d2b562a
Daniel Micay [Tue, 14 Feb 2017 01:27:59 +0000 (17:27 -0800)]
add fortified implementations of send/sendto
Bug: None
Test: Bullhead builds+boots; CtsBionicTestCases passes.
Change-Id: I2f137a100f679f7f2145d84b2f29ddd3e96a36ae
Nick Kralevich [Tue, 14 Feb 2017 23:31:09 +0000 (23:31 +0000)]
Merge "Add details on why AT_SYMLINK_NOFOLLOW is dangerous" am:
7b52454084 am:
42969056d0
am:
98aad56070
Change-Id: I3cbca82748330f968c0361c13df488c74fefe337
Nick Kralevich [Tue, 14 Feb 2017 23:13:36 +0000 (23:13 +0000)]
Merge "Add details on why AT_SYMLINK_NOFOLLOW is dangerous" am:
7b52454084
am:
42969056d0
Change-Id: Ic71a202f3c64f36e1d80af7f2fa64cf72d020626
Nick Kralevich [Tue, 14 Feb 2017 23:11:06 +0000 (23:11 +0000)]
Merge "Add details on why AT_SYMLINK_NOFOLLOW is dangerous"
am:
7b52454084
Change-Id: If9d65e973d9fda2ceb373ca050608cde52ebad25
Treehugger Robot [Tue, 14 Feb 2017 23:08:12 +0000 (23:08 +0000)]
Merge "Add details on why AT_SYMLINK_NOFOLLOW is dangerous"
Dimitry Ivanov [Tue, 14 Feb 2017 22:56:33 +0000 (22:56 +0000)]
Merge "Revert "Make libc.so global"" am:
e7ea7612f9 am:
028e306731
am:
0379c92138
Change-Id: I69c44fa749d25e44a302d95fe88ffd6306bdf92b
Dimitry Ivanov [Tue, 14 Feb 2017 22:54:35 +0000 (22:54 +0000)]
Merge "Revert "Make libc.so global"" am:
e7ea7612f9
am:
028e306731
Change-Id: If09db33cbb36328f99753b41dac2ced87f79f0a1
Dimitry Ivanov [Tue, 14 Feb 2017 22:49:33 +0000 (22:49 +0000)]
Merge "Revert "Make libc.so global""
am:
e7ea7612f9
Change-Id: I975b9aa0aaa8307592593163fef1bbfb2940f8e5
Treehugger Robot [Tue, 14 Feb 2017 22:40:58 +0000 (22:40 +0000)]
Merge "Revert "Make libc.so global""
Nick Kralevich [Tue, 14 Feb 2017 17:49:30 +0000 (09:49 -0800)]
Add details on why AT_SYMLINK_NOFOLLOW is dangerous
The comment isn't helpful as-is. Provide some clarifying information.
Test: code compiles. No functional changes.
Change-Id: I5267e0bc68857fdc8a4b3384a2a1b0d37693ee6e
Elliott Hughes [Tue, 14 Feb 2017 19:08:18 +0000 (19:08 +0000)]
Merge "Be more strict about using invalid `pthread_t`s." am:
0370905502 am:
a18e9f88c8
am:
daa5c8afa9
Change-Id: Ifd6fb9a24635b7f1cb32178247fd0e16a00502ea
Elliott Hughes [Tue, 14 Feb 2017 19:06:18 +0000 (19:06 +0000)]
Merge "Be more strict about using invalid `pthread_t`s." am:
0370905502
am:
a18e9f88c8
Change-Id: Ie74df14b7772a0f14f9b20fa3c58d6455e55e42d
Elliott Hughes [Tue, 14 Feb 2017 19:03:48 +0000 (19:03 +0000)]
Merge "Be more strict about using invalid `pthread_t`s."
am:
0370905502
Change-Id: I476dfe579855d06ea7a1ab34888642f43c58725b
Dimitry Ivanov [Tue, 14 Feb 2017 19:03:26 +0000 (19:03 +0000)]
Revert "Make libc.so global"
This reverts commit
879177c9e12df4efe9f17ff3536005c258f625e8.
Bug: http://b/
26833548
Change-Id: I23e0b34777d18e369063185da14c57994807da29
Elliott Hughes [Tue, 14 Feb 2017 18:32:18 +0000 (18:32 +0000)]
Merge "Be more strict about using invalid `pthread_t`s."
Elliott Hughes [Tue, 14 Feb 2017 03:56:24 +0000 (03:56 +0000)]
Merge "Add __system_property_wait and return the serial in __system_property_read_callback." am:
ade3be476f am:
c9df674347
am:
520814a223
Change-Id: Id98cf76455a07eae901ea28aef2c273480722c70
Elliott Hughes [Tue, 14 Feb 2017 03:54:22 +0000 (03:54 +0000)]
Merge "Add __system_property_wait and return the serial in __system_property_read_callback." am:
ade3be476f
am:
c9df674347
Change-Id: I62ca9f6f84cfb91875a6b5d9cf4aa47fb4299655
Elliott Hughes [Tue, 14 Feb 2017 03:52:23 +0000 (03:52 +0000)]
Merge "Add __system_property_wait and return the serial in __system_property_read_callback."
am:
ade3be476f
Change-Id: I33c5acd3ebba551723639aa2b2540603e2434b4c
Treehugger Robot [Tue, 14 Feb 2017 03:48:23 +0000 (03:48 +0000)]
Merge "Add __system_property_wait and return the serial in __system_property_read_callback."
Elliott Hughes [Tue, 14 Feb 2017 01:59:29 +0000 (17:59 -0800)]
Be more strict about using invalid `pthread_t`s.
Another release, another attempt to remove the global thread list.
But this time, let's admit that it's not going away. We can switch to using
a read/write lock for the global thread list, and to aborting rather than
quietly returning ESRCH if we're given an invalid pthread_t.
This change affects pthread_detach, pthread_getcpuclockid,
pthread_getschedparam/pthread_setschedparam, pthread_join, and pthread_kill:
instead of returning ESRCH when passed an invalid pthread_t, if you're
targeting O or above, they'll abort with the message "attempt to use
invalid pthread_t".
Note that this doesn't change behavior as much as you might think: the old
lookup only held the global thread list lock for the duration of the lookup,
so there was still a race between that and the dereference in the caller,
given that callers actually need the tid to pass to some syscall or other,
and sometimes update fields in the pthread_internal_t struct too.
(This patch replaces such users with calls to pthread_gettid_np, which
at least makes the TOCTOU window smaller.)
We can't check thread->tid against 0 to see whether a pthread_t is still
valid because a dead thread gets its thread struct unmapped along with its
stack, so the dereference isn't safe.
Taking the affected functions one by one:
* pthread_getcpuclockid and pthread_getschedparam/pthread_setschedparam
should be fine. Unsafe calls to those seem highly unlikely.
* Unsafe pthread_detach callers probably want to switch to
pthread_attr_setdetachstate instead, or using
pthread_detach(pthread_self()) from the new thread's start routine
rather than doing the detach in the parent.
* pthread_join calls should be safe anyway, because a joinable thread
won't actually exit and unmap until it's joined. If you're joining an
unjoinable thread, the fix is to stop marking it detached. If you're
joining an already-joined thread, you need to rethink your design.
* Unsafe pthread_kill calls aren't portably fixable. (And are obviously
inherently non-portable as-is.) The best alternative on Android is to
use pthread_gettid_np at some point that you know the thread to be
alive, and then call kill/tgkill directly.
That's still not completely safe because if you're too late, the tid
may have been reused, but then your code is inherently unsafe anyway.
Bug: http://b/
19636317
Test: ran tests
Change-Id: I0372c4428e8a7f1c3af5c9334f5d9c25f2c73f21
Dimitry Ivanov [Mon, 13 Feb 2017 21:54:30 +0000 (21:54 +0000)]
Merge "Do not use std::vector in android_namespace_t::is_accessible" am:
9fc52deab1 am:
62b5ca5a11
am:
c42072bedf
Change-Id: Ic8238d945ea6f154a13861ab527ebb72f9c12c7b
Dimitry Ivanov [Mon, 13 Feb 2017 21:51:31 +0000 (21:51 +0000)]
Merge "Do not use std::vector in android_namespace_t::is_accessible" am:
9fc52deab1
am:
62b5ca5a11
Change-Id: Ib861240a66a23655f10ea346d4648c13a5f6e5f2
Dimitry Ivanov [Mon, 13 Feb 2017 21:49:30 +0000 (21:49 +0000)]
Merge "Do not use std::vector in android_namespace_t::is_accessible"
am:
9fc52deab1
Change-Id: I0449e82bb130e9eed59ccf932a97ce69c16b7a4d
Treehugger Robot [Mon, 13 Feb 2017 21:43:48 +0000 (21:43 +0000)]
Merge "Do not use std::vector in android_namespace_t::is_accessible"
Elliott Hughes [Sat, 11 Feb 2017 02:13:46 +0000 (18:13 -0800)]
Add __system_property_wait and return the serial in __system_property_read_callback.
In order to implement android::base::WaitForProperty well, we need a way to
wait not for *any* property to change (__system_property_wait_any), but to
specifically wait for the property represented by a given `prop_info` to
change.
The android::base::WaitForProperty implementation, like attempts to cache
system properties in the past, also needs a way to keep serials and values
in sync, but the existing functions don't provide a cheap way to get a
consistent snapshot. Change the __system_property_read_callback callback's
type to include the serial corresponding to the given value.
Add a test, slightly clean up some of the existing tests (and name them to
include the names of the functions they're testing, in our usual style).
Bug: http://b/
35201172
Test: ran tests
Change-Id: Ibc8ebe2e88eef1e333a1bd3dd7f68135f1ba7fb5
Dimitry Ivanov [Mon, 13 Feb 2017 20:40:57 +0000 (20:40 +0000)]
Merge "Make libc.so global" am:
5b74e9b2f5 am:
96a8cfcd09
am:
eb108f8e0d
Change-Id: I6ad39544746d87b0b737bfeb5323125f8ff24a48
Dimitry Ivanov [Mon, 13 Feb 2017 20:38:25 +0000 (20:38 +0000)]
Merge "Make libc.so global" am:
5b74e9b2f5
am:
96a8cfcd09
Change-Id: I04bfd1c0165b5ff9f4af16511031f66393902be9
Dimitry Ivanov [Mon, 13 Feb 2017 20:35:55 +0000 (20:35 +0000)]
Merge "Make libc.so global"
am:
5b74e9b2f5
Change-Id: Ie5dc459b78b4b7fad148af3196aeec6df1faba59
Treehugger Robot [Mon, 13 Feb 2017 20:29:51 +0000 (20:29 +0000)]
Merge "Make libc.so global"
George Burgess IV [Mon, 13 Feb 2017 19:52:52 +0000 (19:52 +0000)]
Merge "Match __bos0 to __pass_object_size0 in FORTIFY" am:
572b1dde03 am:
ae80a17b4f
am:
20c5fe3a2b
Change-Id: Iad9923bdecdf8a10686dc62c25e644071b9bda98
George Burgess IV [Mon, 13 Feb 2017 19:50:22 +0000 (19:50 +0000)]
Merge "Match __bos0 to __pass_object_size0 in FORTIFY" am:
572b1dde03
am:
ae80a17b4f
Change-Id: I27b09cb45c33858a2a42df4fecedeace024f1cf0
George Burgess IV [Mon, 13 Feb 2017 19:47:53 +0000 (19:47 +0000)]
Merge "Match __bos0 to __pass_object_size0 in FORTIFY"
am:
572b1dde03
Change-Id: Ic2993a4692105f18d24573297479ce7f57964dea
Treehugger Robot [Mon, 13 Feb 2017 19:39:28 +0000 (19:39 +0000)]
Merge "Match __bos0 to __pass_object_size0 in FORTIFY"
Dimitry Ivanov [Mon, 13 Feb 2017 18:49:40 +0000 (10:49 -0800)]
Do not use std::vector in android_namespace_t::is_accessible
Avoid constructing vector and walking all the parents of a soinfo
to check if it is accessible. The most likely scenario that the
very first check returns true.
Bug: http://b/
35313368
Test: bionic-unit-tests --gtest_filter=dl*:Dl*
Change-Id: I06c65cf61ed1c30e5e454a169de4c41038863587
Dimitry Ivanov [Mon, 13 Feb 2017 17:17:21 +0000 (09:17 -0800)]
Make libc.so global
This is a way to avoid loading multiple libc.so
when non-default namespace search path includes
/system/lib. This is used by some art tests.
Bug: http://b/
26833548
Test: m -j32 test-art-target-run-test-004-JniTest
Change-Id: I919d3a0560bd3c9ac19df21a235641a667f0f017
Dimitry Ivanov [Sat, 11 Feb 2017 19:37:58 +0000 (19:37 +0000)]
Merge "Replace public library list with shared lib sonames (part 2/2)" am:
2cb4dfbb8c am:
ae80d78b5b
am:
f3dde6d7e9
Change-Id: Ie589574e4e49949b8384d0924f2d4647b277f1ba
Dimitry Ivanov [Sat, 11 Feb 2017 19:33:28 +0000 (19:33 +0000)]
Merge "Replace public library list with shared lib sonames (part 2/2)" am:
2cb4dfbb8c
am:
ae80d78b5b
Change-Id: I18aed24818f8bd26b6561c311ce434b85bb702f1
Dimitry Ivanov [Sat, 11 Feb 2017 19:29:37 +0000 (19:29 +0000)]
Merge "Replace public library list with shared lib sonames (part 2/2)"
am:
2cb4dfbb8c
Change-Id: Ie62e6810486fce1c2e84df7991ba11c8d69a6fef
Dimitry Ivanov [Sat, 11 Feb 2017 19:26:48 +0000 (19:26 +0000)]
Merge "Replace public library list with shared lib sonames (part 2/2)"
Dimitry Ivanov [Sat, 11 Feb 2017 06:06:21 +0000 (06:06 +0000)]
Merge "loader: fix d-tor call order" am:
c9fb1774c5 am:
636354190d
am:
c78b116a5e
Change-Id: I1f4d2e5313d52adf2b1159710b2029755da51b21
Dimitry Ivanov [Sat, 11 Feb 2017 06:01:50 +0000 (06:01 +0000)]
Merge "loader: fix d-tor call order" am:
c9fb1774c5
am:
636354190d
Change-Id: Ia3ac8ab43e7891be0fb60b7581bd15079996093a
Dimitry Ivanov [Sat, 11 Feb 2017 05:54:20 +0000 (05:54 +0000)]
Merge "loader: fix d-tor call order"
am:
c9fb1774c5
Change-Id: I99b0284fcb0b5d0b3ec011b969d174a1ad8db32e
Dimitry Ivanov [Sat, 11 Feb 2017 05:50:53 +0000 (05:50 +0000)]
Merge "loader: fix d-tor call order"
George Burgess IV [Fri, 10 Feb 2017 21:56:22 +0000 (13:56 -0800)]
Match __bos0 to __pass_object_size0 in FORTIFY
pass_object_size(N) forwards the result of __builtin_object_size(param,
N) to a function. So, a function that looks like:
size_t foo(void *const p __pass_object_size) { return __bos0(p); }
int bar = foo(baz);
would effectively be turned into
size_t foo(void *const p, size_t sz) { return sz; }
int bar = foo(baz, __bos(baz)); // note that this is not __bos0
This is bad, since if we're using __bos0, we want more relaxed
objectsize checks.
__bos0 should be more permissive than __bos in all cases, so this
change Should Be Fineā¢.
This change also makes GCC and clang share another function's
implementation (recv). I just realized we need to add special
diagnostic-related overloads bits for clang to it, but I can do that in
another patch.
Bug: None
Test: Bullhead builds and boots; CtsBionicTestCases passes.
Change-Id: I6818d0041328ab5fd0946a1e57321a977c1e1250
Dimitry Ivanov [Fri, 10 Feb 2017 19:04:20 +0000 (11:04 -0800)]
loader: fix d-tor call order
In the case when there are multiple dependencies on
the same library in the local_group the unload may
in some situations (covered now by tests) result
calling d-tors for some libraries prematurely.
In order to have correct call order loader checks if this
is last dependency in local group before adding it to BFS
queue.
Bug: http://b/
35201832
Test: bionic-unit-tests --gtest_filter=dl*:Dl*
Test: bionic-unit-tests-glibc --gtest_filter=dl*
Change-Id: I4c6955b9032acc7147a51d9f09b61d9e0818700c