Commit Graph

21199 Commits

Author SHA1 Message Date
Treehugger Robot 05fd20c797 Merge changes Ia7200bf0,I86999bb7
* changes:
  versioner: fix leak.
  versioner: add symlink for dependencies.
2017-05-04 04:08:22 +00:00
Christopher Ferris 5725481f1e Merge "Move libc_log code into libasync_safe." 2017-05-03 17:43:35 +00:00
Dimitry Ivanov 846924ae95 Merge "Add ifunc for variable test-case" 2017-05-03 16:11:27 +00:00
Christopher Ferris 7a3681e5b6 Move libc_log code into libasync_safe.
This library is used by a number of different libraries in the system.
Make it easy for platform libraries to use this library and create
an actual exported include file.

Change the names of the functions to reflect the new name of the library.

Run clang_format on the async_safe_log.cpp file since the formatting is
all over the place.

Bug: 31919199

Test: Compiled for angler/bullhead, and booted.
Test: Ran bionic unit tests.
Test: Ran the malloc debug tests.
Change-Id: I8071bf690c17b0ea3bc8dc5749cdd5b6ad58478a
2017-05-03 08:50:43 -07:00
Treehugger Robot 6323cfad74 Merge "Shared namespaces inherit parent ns properties" 2017-05-03 01:28:35 +00:00
Dimitry Ivanov f1cb669a9c Shared namespaces inherit parent ns properties
Make shared namespace inherit namespace links and
search/permitted paths from the parent namespace.

Bug: http://b/37854032
Test: bionic_unit_tests --gtest_filter=dl*:Dl*
Change-Id: I174661d4a1dd0cbe4a378179073719aa955f3592
(cherry picked from commit ec43dd6c36)
2017-05-02 16:42:28 -07:00
Dimitry Ivanov 21975b2861 Add ifunc for variable test-case
Also move ifunc tests to clang and c++.

Test: bionic-unit-tests --gtest_filter=dlfcn.ifunc*
Change-Id: I008c4fc01470c8e4d314003c03a2b63ff9bf7fd8
2017-05-02 16:35:20 -07:00
Yabin Cui 3f4735fafa Merge "Fix pthread_barrier_smoke test (part 2)." 2017-05-02 23:20:32 +00:00
Yabin Cui ab4cddc329 Fix pthread_barrier_smoke test (part 2).
Bug:http://b/37652807
Test: run bionic-unit-tests.
Change-Id: Iaea553177956c5d08f754210273637f69d888c20
2017-05-02 16:18:13 -07:00
Treehugger Robot 85408ef2da Merge "Fix test compile errors after LLVM rebase" 2017-05-02 22:25:59 +00:00
Treehugger Robot 5c7107434b Merge "Fix pthread_barrier_smoke test." 2017-05-02 21:51:42 +00:00
Yi Kong 2d3122c90b Fix test compile errors after LLVM rebase
After the new rebase of Clang, we now support the alloc_size attribute,
so we can remove the warning about switching to alloc_size once Clang
has support.

Also fix an issue where 'false' is returned in a main method.

Test: make cts
Bug: 37752547
Change-Id: I32ee814aaa0338567cb8174a68d7ee1bfece2f75
2017-05-02 21:14:42 +00:00
Yabin Cui d5c04c5ebb Fix pthread_barrier_smoke test.
Bug: http://b/37652807
Test: run bionic-unit-tests.
Change-Id: Id7245223bc2a284efed6e710892b58947ef5d555
2017-05-02 12:57:39 -07:00
Treehugger Robot ca5e0f49ca Merge "versioner: disable container overflow checks" 2017-05-02 03:50:29 +00:00
Treehugger Robot 87a47e1bb2 Merge "linker: add android_get_exported_namespace" 2017-05-02 01:37:04 +00:00
Andreas Gampe d10d3eece1 versioner: disable container overflow checks
Temporary workaround.

Bug: 37775238
Test: ASAN_OPTIONS= SANITIZE_HOST=address m
Change-Id: If9e9df45d83f8412caafcece87337a5c9df3a1c8
2017-05-01 16:31:51 -07:00
Treehugger Robot fd478a8cba Merge "fix half-deleted comments in tests" 2017-05-01 20:17:21 +00:00
George Burgess IV cf44343c1a fix half-deleted comments in tests
they were half-deleted in If341a27756d608a0fa77ba6518e9bcc725f7632c.

Bug: None
Test: mma
Change-Id: I4e0c8208a7f2a55d273f4c87adca1d755dc98b77
2017-05-01 11:20:31 -07:00
Elliott Hughes c15117658b Merge "Restore ELF32_ST_INFO/ELF64_ST_INFO." 2017-05-01 14:42:52 +00:00
Elliott Hughes d390df1dbc Restore ELF32_ST_INFO/ELF64_ST_INFO.
Mistakenly removed years ago, along with its genuinely duplicated companions.
This patch also redefines one of those rather than use the Linux uapi header
definition, which leads to signed/unsigned warnings in calling code.

Bug: https://github.com/android-ndk/ndk/issues/377
Test: ran tests
Change-Id: Ib25b17949f04969f12b945ca88ab87d080677cf9
2017-04-30 22:56:10 -07:00
Treehugger Robot dfe0fa4151 Merge "Include the libc/kernel/android/scsi headers in the NDK." 2017-04-28 02:48:02 +00:00
Jiyong Park 01de74e76d linker: add android_get_exported_namespace
Depending on how ld.config.txt is configured, there can be multiple
built-in namespaces created by the linker from the beginning of a
process. android_get_exported_namespace is a platform only API for
getting a handle (android_namespace_t*) to one of the built-in namespaces
with given name. The returned namespace can then be given to
android_dlopen_ext in order to explicitly specify the target namespace
where the library is searched and loaded from.

Note that this function only returns 'exported' namespaces created via
ld.config.txt file. In order to export a namespace, the visible property
should be set to true:

namespace.<name>.visible = true

Namespaces are hidden by default. Hidden namespaces and namespaces
that are created programmatically, notably 'classloader-namespace',
aren't returned by this function.

Bug: 36851137
Test: confirmed that namespaces created with ld.config.txt is retrieved.
Test: linker-unit-tests passes
Merged-in: I714b510fa24f77e42c3dfc4c827b3befa8bb2951
Change-Id: I0d05fa7e0e116009edf8ea362ab46774bc617cbf
(cherry picked from commit d7c4832e6a)
2017-04-28 10:14:28 +09:00
Josh Gao b50b8c8886 versioner: fix leak.
Replace an intentional leak of a buffer allocated by realpath with a use
of android::base::Realpath.

Bug: http://b/37727515
Test: tools/versioner/run_tests.py
Change-Id: Ia7200bf0e1c485050e860e21ff15784941366bec
2017-04-27 17:25:32 -07:00
Josh Gao 0be1dabfc6 versioner: add symlink for dependencies.
Add a symlink where dependencies used to live, so that `versioner`
works.

Test: versioner
Test: tools/versioner/run_tests.py
Change-Id: I86999bb79baad16039709306591cb9540fb533ca
2017-04-27 17:25:23 -07:00
Elliott Hughes 2fad0d5927 Include the libc/kernel/android/scsi headers in the NDK.
We have some non-upstream (but Android common kernel) scsi headers to include
in the NDK.

Bug: N/A
Test: checked out/soong/ndk/sysroot
Change-Id: If7611e1e554ada63f266ec99d95dfedb99562ae9
2017-04-27 16:26:55 -07:00
Elliott Hughes 306ea55952 Merge "Compare Pss of tested library in VerifyMemorySaving" 2017-04-27 15:40:37 +00:00
Treehugger Robot 36d5c54b5e Merge "Make dl_iterate_phdr weak in libdl." 2017-04-27 07:44:14 +00:00
Treehugger Robot 9cc08e0a1f Merge "watchpoint_imprecise test: set 4-byte watchpoints on 32-bit arches" 2017-04-27 00:42:15 +00:00
Zhenhua WANG 81aad0058c Compare Pss of tested library in VerifyMemorySaving
DlExtRelroSharingTest.VerifyMemorySaving verifies whether
android_dlopen_ext(ANDROID_DLEXT_USE_RELRO) really saves memory.

This patch compares Pss of the tested library rather than total
Pss of the process, in case different behavior of dlopen() and
android_dlopen_ext() introduces random Pss usage.

Test: DlExtRelroSharingTest.VerifyMemorySaving

Change-Id: I696eca736018fca5d9ec9385ac1c79ced280281d
2017-04-26 17:06:32 -07:00
Yi Kong 82f7208ac0 Merge "Update bionic after Clang rebase" 2017-04-26 23:00:41 +00:00
Elliott Hughes fd7c2a32e5 Merge "Make unified headers' SIGRTMIN/SIGRTMAX usable before API 21." 2017-04-26 22:16:20 +00:00
Elliott Hughes 7ba2bed0b2 Make unified headers' SIGRTMIN/SIGRTMAX usable before API 21.
Bug: https://github.com/android-ndk/ndk/issues/352
Test: built new NDK test
Change-Id: Iacebe574bbf693701949e038005a40ba6520d592
2017-04-26 14:34:36 -07:00
Yi Kong 06be3459ca Update bionic after Clang rebase
After the new rebase of Clang, we now supports alloc_size attribute, so
we can remove the warning about switching to alloc_size once Clang has
support.

Compiler.setInvocation has changed argument type from raw pointer to
shared pointer. Add version check here so that we can build under either
old rebase or the new rebase.

Test: build
Bug: 37423073
Change-Id: I4563eaf93bae6c59a4a19318f8caa92bd361b3ab
2017-04-26 10:44:12 -07:00
Pavel Labath 4a6202683a watchpoint_imprecise test: set 4-byte watchpoints on 32-bit arches
8-byte watchpoints are not supported on 32-bit kernels (at least on x86,
probably arm as well). 8-byte watchpoints are not required for this
test, so just decrease the size of watchpoints on these architectures.

Change-Id: Ie96b4bc8ce0ad8c924ac737083cf9fe0182aee4d
Test: bionic-unit-tests-static --gtest_filter=sys_ptrace.*
Bug: 37662849
2017-04-26 11:33:17 +01:00
Dan Albert db98fed03d Make dl_iterate_phdr weak in libdl.
This needs to be defined as weak because it is also defined in libc.a.
Without this, static executables will have a multiple definition
error.

Test: make checkbuild
Bug: None
Change-Id: If2024ef4191c8ab7cf087d21d76fefdc92b58da1
2017-04-25 15:42:42 -07:00
Elliott Hughes 5deddda68e Merge "Add basic tests for <link.h>." 2017-04-24 17:52:13 +00:00
Christopher Ferris 6c8881d99c Merge "Update static functions/macro definitions." 2017-04-22 19:16:39 +00:00
Christopher Ferris ee1e0a34ae Update static functions/macro definitions.
Fix the list of static functions coming from swab.h to match the
ones exported by glibc.

Force the definition of __HAVE_BUILTIN_BSWAP{16,32,64}__ so the headers
use the builtin.

Add a unit test to guarantee that kernel header updates do not break this.

Test: Built and booted angler.
Test: Built the bionic unit tests for arm, arm64, mips, x86, x86_64.
Test: Ran the new test on angler and glibc.

Change-Id: I4ce229e3f198c204186d72bf22dd97b5cdf239e4
2017-04-21 20:59:53 -07:00
Elliott Hughes 7c10abb4a4 Add basic tests for <link.h>.
The dl_iterate_phdr test is new, but the exidx test is largely copy & paste
from ndk_translation.

Bug: http://b/31556066
Test: ran tests
Change-Id: If754f1459ef1d789ee98a89cd2215188edca51da
2017-04-21 17:35:06 -07:00
Treehugger Robot 1328b96faf Merge "loader: enable loading libraries from tmpfs" 2017-04-22 00:09:50 +00:00
Dimitry Ivanov bf34ba3641 loader: enable loading libraries from tmpfs
This change adds two tests for dlopen from temporary files.
1. One Uses memfd_create() can be used to load libraries directly
from memory. This requires relaxing namespace accessibility check
in order to make this work in isolated namespaces.
2. Another checks that open with O_TMPFILE works.

Bug: http://b/37245203
Test: bionic-unit-tests --gtest_filter=dl*:Dl*
Change-Id: I3be1d7198ca17e7f1ba022a0d86c64d59a493506
(cherry picked from commit bb8b22a087)
2017-04-21 14:45:07 -07:00
Elliott Hughes e54e64bd60 Merge "Make the _Unwind_Ptr declaration match clang's." 2017-04-21 19:52:32 +00:00
Elliott Hughes f2c6ad6338 Make the _Unwind_Ptr declaration match clang's.
Bug: https://issuetracker.google.com/37126620
Test: builds, boots angler
Change-Id: I7d4a9b998f2e5c4c7b0beed87807d7b76a564c5c
2017-04-21 19:52:21 +00:00
Yi Kong 61e932ee65 Merge "Remove unused lambda captures" 2017-04-21 19:48:58 +00:00
Treehugger Robot 802e2fd87c Merge "DO NOT MERGE: The future is now." 2017-04-21 01:10:23 +00:00
Josh Gao 2e8e5e60b6 DO NOT MERGE: The future is now.
__INTRODUCED_IN_FUTURE -> __INTRODUCED_IN(26)

Bug: http://b/37437368
Test: treehugger
Change-Id: I601a23da83b65a0cd582cc840ed3856a9031b673
(cherry picked from commit cb302f932a)
2017-04-20 16:57:25 -07:00
Yi Kong ff6c8de4f5 Remove unused lambda captures
Clean up. This fixes build under -Wunused-lambda-capture.

Test: build
Change-Id: Ic12aa39e14ed55dbb28cf55303f9c4258179037d
2017-04-20 14:37:56 -07:00
Josh Gao ee1c45f88f Merge "Add syscalls that aren't currently used to the seccomp whitelist." 2017-04-20 19:52:53 +00:00
Treehugger Robot 627ed91625 Merge "Decode the common EM_ values." 2017-04-20 02:45:03 +00:00
Elliott Hughes 72007ee68f Decode the common EM_ values.
We know what "3" and "40" are, but most folks not on our team don't.

I don't think we need to support all the weird values, because only the
supported architectures actually occur in practice.

Bug: N/A
Test: manually overwrote aarch64 libcrypto.so with an x86-64 .so and ran "date"
Test: CANNOT LINK EXECUTABLE "date": "/system/lib64/libcrypto.so" has unexpected e_machine: 62 (EM_X86_64)
Change-Id: Ic4c6325fe7968f0c96fc0bfe15a50ed922a5ba55
2017-04-19 17:49:43 -07:00