OSDN Git Service

android-x86/bionic.git
7 years agoRefactor Config from a struct to a class.
Christopher Ferris [Thu, 6 Apr 2017 02:13:03 +0000 (19:13 -0700)]
Refactor Config from a struct to a class.

This should make it easier to add new options, and to add options that
are complex. For example, I want to modify the behavior of
record_allocs_file so that it also enables record_allocs to a default
state.

Test: All unit tests pass.
Test: Enable the backtrace option and restart.
Change-Id: Idf5cdeed06ade3bc2c8ae39d228734bf65209b4f

7 years agoMerge "Fix compare_exchange_weak tests to allow spurious failure"
Hans Boehm [Thu, 6 Apr 2017 01:02:28 +0000 (01:02 +0000)]
Merge "Fix compare_exchange_weak tests to allow spurious failure"

7 years agoMerge "libc: add const-correct string.h overloads"
Treehugger Robot [Wed, 5 Apr 2017 23:57:12 +0000 (23:57 +0000)]
Merge "libc: add const-correct string.h overloads"

7 years agoFix compare_exchange_weak tests to allow spurious failure
Hans Boehm [Wed, 5 Apr 2017 00:34:59 +0000 (17:34 -0700)]
Fix compare_exchange_weak tests to allow spurious failure

Test: Ran bionic unit tests on angler.

Bug: 36869788
Change-Id: Ic1e0e4e409ac719d5b426391a771b4858a6149ee

7 years agoMerge "libc: remove newlines in prototypes in string.h"
Treehugger Robot [Wed, 5 Apr 2017 22:28:59 +0000 (22:28 +0000)]
Merge "libc: remove newlines in prototypes in string.h"

7 years agolibc: remove newlines in prototypes in string.h
George Burgess IV [Wed, 5 Apr 2017 20:24:05 +0000 (13:24 -0700)]
libc: remove newlines in prototypes in string.h

This gives more useful diagnostics if clang needs to mention these
functions (or a parameter of them).

Bug: 36984245
Test: m on bullhead completes successfully.
Change-Id: I17c2b624d08bc9dd3f08185b30029ed0c49ebb08

7 years agolibc: add const-correct string.h overloads
George Burgess IV [Wed, 5 Apr 2017 00:34:02 +0000 (17:34 -0700)]
libc: add const-correct string.h overloads

libcxx provides const-correct overloads for a few string.h functions.
These overloads use clang's enable_if attribute, so they're preferred
over our FORTIFY'ed equivalents.

This weakens _FORTIFY_SOURCE=2 when used with some of these functions,
since clang needs to see __pass_object_size in order to pass an accurate
result for __builtin_object_size(s, 1) at a callsite. Since those
functions don't have __pass_object_size on their params, clang can't do
that. This makes LLVM lower the __builtin_object_size calls, which means
we get the same result as __builtin_object_size(s, 0).

We have to provide all of the overloads in Bionic, since enable_if is
only used to disambiguate overloads with (otherwise) the same type. In
other words:

// overload 1
char *strchr(const char *, int s) __attribute__((enable_if(1, "")));
// overload 2
char *strchr(char *, int s);

void foo() {
  char cs[1] = {};
  strchr(static_cast<const char *>(cs), '\0'); // calls overload #1.
  strchr(cs, '\0'); // calls overload #2.
}

Bug: 34747525
Test: m checkbuild on bullhead internal master + AOSP. vts -m
BionicUnitTests passes on both. Surprisingly, the only code that this
seems to break is contained in Bionic.

Change-Id: Ie406f42fb3d1c5bf940dc857889876fc39b57c90

7 years agoMerge "Add (duplicate) license from new XML file"
Neil Fuller [Wed, 5 Apr 2017 14:11:14 +0000 (14:11 +0000)]
Merge "Add (duplicate) license from new XML file"

7 years agoAdd (duplicate) license from new XML file
Neil Fuller [Wed, 5 Apr 2017 13:57:00 +0000 (14:57 +0100)]
Add (duplicate) license from new XML file

This change was forgotten when I uploaded tzlookup.xml for
review. I meant to check this with enh@. Apologies. This fixes
the the NOTICE file so others can upload.

Test: repo upload
Change-Id: I9e722952f9ae8c8d971b1c2d23d53079d85f4ae7

7 years agoMerge "Addition of a new system file for time zone data"
Neil Fuller [Wed, 5 Apr 2017 13:33:32 +0000 (13:33 +0000)]
Merge "Addition of a new system file for time zone data"

7 years agoMerge "Remove obsolete Android.mk comments"
Treehugger Robot [Wed, 5 Apr 2017 02:12:00 +0000 (02:12 +0000)]
Merge "Remove obsolete Android.mk comments"

7 years agoRemove obsolete Android.mk comments
Dan Willemsen [Tue, 4 Apr 2017 22:51:26 +0000 (15:51 -0700)]
Remove obsolete Android.mk comments

Test: none
Change-Id: I0419800d44a7918a4415baf840c7d30bf30a18ed

7 years agoMerge "Add kryo support."
Christopher Ferris [Tue, 4 Apr 2017 21:10:55 +0000 (21:10 +0000)]
Merge "Add kryo support."

7 years agoMerge "libc: use __bos instead of __bos0 for strchr."
Treehugger Robot [Tue, 4 Apr 2017 20:01:36 +0000 (20:01 +0000)]
Merge "libc: use __bos instead of __bos0 for strchr."

7 years agolibc: use __bos instead of __bos0 for strchr.
George Burgess IV [Tue, 4 Apr 2017 01:03:36 +0000 (18:03 -0700)]
libc: use __bos instead of __bos0 for strchr.

I dunno why I used __bos0 in the first place; clang's strrchr (and
GCC's strchr+strrchr) both use __bos.

Bug: 34747525
Test: m. Device still boots. cts -m BionicUnitTests shows no new
failures.
Change-Id: Ifec0e05a6a1144fa3e3ac70562af3ec57c09c194

7 years agoMerge "Break android_set_abort_message out of libc_logging."
Josh Gao [Tue, 4 Apr 2017 00:49:24 +0000 (00:49 +0000)]
Merge "Break android_set_abort_message out of libc_logging."
am: 1c864b630f

Change-Id: I7d8ab343a09a0e2166d0462a3b378257cb837f67

7 years agoMerge "Break android_set_abort_message out of libc_logging."
Josh Gao [Tue, 4 Apr 2017 00:40:38 +0000 (00:40 +0000)]
Merge "Break android_set_abort_message out of libc_logging."

7 years agoMerge changes I70edafb7,I96cba65e,I5142a335
Josh Gao [Mon, 3 Apr 2017 23:26:49 +0000 (23:26 +0000)]
Merge changes I70edafb7,I96cba65e,I5142a335
am: 1400acc159

Change-Id: I8a336aac72ba8fa173ef2ea3364a55d7d84fc4f5

7 years agoMerge changes I70edafb7,I96cba65e,I5142a335
Treehugger Robot [Mon, 3 Apr 2017 23:17:58 +0000 (23:17 +0000)]
Merge changes I70edafb7,I96cba65e,I5142a335

* changes:
  versioner: remove useless log message.
  versioner: fix indentation in usage.
  versioner: guard preprocessing messages with -v.

7 years agoBreak android_set_abort_message out of libc_logging.
Josh Gao [Mon, 3 Apr 2017 22:13:29 +0000 (15:13 -0700)]
Break android_set_abort_message out of libc_logging.

libc_logging is getting statically linked into the crash handler
library, resulting in two copies of the abort message code existing in
processes, one in the linker, and one in the crash handler.

Move android_set_abort_message to its own file to solve this.

Bug: http://b/36862204
Test: /data/nativetest/debuggerd_test/debuggerd_test32
Change-Id: Ie198c5a3bb07645aa43296915c9a6752693f14a9

7 years agoMerge changes I826756d9,I00e2edb2
Josh Gao [Mon, 3 Apr 2017 20:41:38 +0000 (20:41 +0000)]
Merge changes I826756d9,I00e2edb2
am: 6367f5ee55

Change-Id: I0585784475e8288fc06e5ca1089ff227f87001bd

7 years agoMerge changes I826756d9,I00e2edb2
Josh Gao [Mon, 3 Apr 2017 20:33:16 +0000 (20:33 +0000)]
Merge changes I826756d9,I00e2edb2

* changes:
  libc_logging: mention that they're async signal safe.
  linker: update dependencies.

7 years agoversioner: remove useless log message.
Josh Gao [Mon, 3 Apr 2017 18:48:55 +0000 (11:48 -0700)]
versioner: remove useless log message.

Test: tools/versioner/run_tests.py
Change-Id: I70edafb7ad6a6274e7daa508903520dbb4b399c8

7 years agoversioner: fix indentation in usage.
Josh Gao [Mon, 3 Apr 2017 18:24:48 +0000 (11:24 -0700)]
versioner: fix indentation in usage.

Test: versioner -h
Change-Id: I96cba65e53c564c8f47714c74d300e8f3dee7e82

7 years agoversioner: guard preprocessing messages with -v.
Josh Gao [Mon, 3 Apr 2017 18:24:17 +0000 (11:24 -0700)]
versioner: guard preprocessing messages with -v.

Bug: http://b/36751878
Test: tools/versioner/run_tests.py
Change-Id: I5142a33519b101548ccaec8a3bc498e446a648a7

7 years agoAdd kryo support.
Christopher Ferris [Wed, 29 Mar 2017 20:10:56 +0000 (13:10 -0700)]
Add kryo support.

Currently, using kryo is the same as using krait, but there are specialized
routines that are pending that will be used after this commit.

Bug: 36728278

Test: Built and booted a sailfish using kryo.
Change-Id: Id7510640673c31f7536367041212db6d96a564f0

7 years agoMerge "Cleanup ANDROID_DNS_MODE and BIONIC_DNSCACHE"
Nick Kralevich [Mon, 3 Apr 2017 17:26:26 +0000 (17:26 +0000)]
Merge "Cleanup ANDROID_DNS_MODE and BIONIC_DNSCACHE"
am: 4df5ca1e02

Change-Id: I899ca838e59469348cd9bd25296ab9ac8e298291

7 years agoMerge "Cleanup ANDROID_DNS_MODE and BIONIC_DNSCACHE"
Treehugger Robot [Mon, 3 Apr 2017 17:21:53 +0000 (17:21 +0000)]
Merge "Cleanup ANDROID_DNS_MODE and BIONIC_DNSCACHE"

7 years agoCleanup ANDROID_DNS_MODE and BIONIC_DNSCACHE
Nick Kralevich [Sat, 1 Apr 2017 16:54:19 +0000 (09:54 -0700)]
Cleanup ANDROID_DNS_MODE and BIONIC_DNSCACHE

For security reasons, when a binary is executed which causes a security
transition (eg, a setuid binary, setgid binary, filesystem capabilities,
or SELinux domain transition), the AT_SECURE flag is set. This causes
certain blacklisted environment variables to be stripped before the
process is executed. The list of blacklisted environment variables is
stored in UNSAFE_VARIABLE_NAMES. Generally speaking, most environment
variables used internally by libc show up in this list.

Add ANDROID_DNS_MODE to the list of unsafe variables.
Similar to RESOLV_HOST_CONF and RES_OPTIONS (which are already
blacklisted), this variable controls how name resolution requests are
handled. Allowing ANDROID_DNS_MODE to be set across a security
boundary could induce resolution failures or otherwise impact
name resolution.

Remove BIONIC_DNSCACHE. This does not appear to be used, and setting
this variable across a security boundary could cause name resolution
problems.

Test: Android compiles and runs with no obvious problems.
Change-Id: I835a7b42d6afbc9c67866594c7951cfd9b355d81

7 years agoMerge "Fix lookup logic for linked namespaces"
Dimitry Ivanov [Sun, 2 Apr 2017 02:20:13 +0000 (02:20 +0000)]
Merge "Fix lookup logic for linked namespaces"
am: 6a2c7f5a68

Change-Id: I6af8cccc6ca6a18ced2f4843621563319fdc29f5

7 years agoMerge "Fix lookup logic for linked namespaces"
Treehugger Robot [Sun, 2 Apr 2017 02:14:45 +0000 (02:14 +0000)]
Merge "Fix lookup logic for linked namespaces"

7 years agoMerge "Only use environment variables on the host."
Elliott Hughes [Sat, 1 Apr 2017 07:41:13 +0000 (07:41 +0000)]
Merge "Only use environment variables on the host."
am: 5d8b8310aa

Change-Id: I4439714a733487a76221e789805b50ce958829f4

7 years agoMerge "Only use environment variables on the host."
Treehugger Robot [Sat, 1 Apr 2017 07:35:14 +0000 (07:35 +0000)]
Merge "Only use environment variables on the host."

7 years agoOnly use environment variables on the host.
Elliott Hughes [Fri, 31 Mar 2017 22:35:21 +0000 (15:35 -0700)]
Only use environment variables on the host.

It's faster and safer to skip them on the device, where we know where
everything is anyway.

(cherrypick of cf6365690cc68bdd7e16648fb7881ba0b5cae93d.)

Bug: http://b/36807787
Test: ran tests
Change-Id: I0bb7879cc46f194152c67ddaf072cbebb424f789

7 years agoMerge "Expand whitelist"
Paul Lawrence [Sat, 1 Apr 2017 00:15:45 +0000 (00:15 +0000)]
Merge "Expand whitelist"
am: 7cf467bd23

Change-Id: Id4baef4988302e5178d5e7bf850f3e9a028b3162

7 years agoMerge "Expand whitelist"
Treehugger Robot [Sat, 1 Apr 2017 00:07:11 +0000 (00:07 +0000)]
Merge "Expand whitelist"

7 years agoMerge "Refactor sanitized library on-disk layout - bionic."
Vishwath Mohan [Fri, 31 Mar 2017 16:41:24 +0000 (16:41 +0000)]
Merge "Refactor sanitized library on-disk layout - bionic."
am: 2a41bf4190

Change-Id: I4f62c79e7f5e93c42e3f168609557e9f48a83a5b

7 years agoMerge "Refactor sanitized library on-disk layout - bionic."
Treehugger Robot [Fri, 31 Mar 2017 16:35:51 +0000 (16:35 +0000)]
Merge "Refactor sanitized library on-disk layout - bionic."

7 years agoExpand whitelist
Paul Lawrence [Thu, 30 Mar 2017 22:24:13 +0000 (15:24 -0700)]
Expand whitelist

Bug: 36726183
Test: Builds, call 90 added to policy

(cherry picked from commit 3ba8223b9ac3db1642931876d19127ca6a9a0914)

Change-Id: Ib8db1b764ce22aadf8050031d40040dd6c0e669e

7 years agoAddition of a new system file for time zone data
Neil Fuller [Thu, 30 Mar 2017 17:12:49 +0000 (18:12 +0100)]
Addition of a new system file for time zone data

This file is to replace the time_zones_by_country.xml
file from frameworks/base/core/res/res/xml/

This new file is intended to be updated outside of
an OTA, unlike time_zones_by_country.xml.

The tzlookup.xml file is read by code in libcore, not
frameworks/base.

The format of the file is slightly different from
time_zones_by_country.xml but the information is the
same as the current version. It was generated using
a sed transform and manual coallescing of the
<country> elements / comments:

sed 's/<timezones>$/<timezones>\n  <countryzones>/' frameworks/base/core/res/res/xml/time_zones_by_country.xml \
    | sed 's/<\/timezones>/  <\/countryzones>\n<\/timezones>/' \
    | sed 's/<timezone\( code=\"..\">\)/<country\1\n      <id>/g' \
    | sed 's/<\/timezone>/<\/id>\n    <\/country>/g'

The time_zones_by_country.xml file will be deleted
in a follow up change when the new code is wired into
the code that uses this data.

Test: See associated libcore change that will ensure the file
      is kept in sync with tzdata when applying IANA rules
      changes.
Bug: 25338903
Change-Id: I8912307bf6a41750ac06ffce9143e8055ea4e7c5

7 years agoRefactor sanitized library on-disk layout - bionic.
Vishwath Mohan [Wed, 29 Mar 2017 22:31:34 +0000 (15:31 -0700)]
Refactor sanitized library on-disk layout - bionic.

This CL changes the linker to point to the newly refactored location
of ASAN-ified libraries on disk.

This supports changes made by the following CLs -
https://android-review.googlesource.com/#/c/359087/
https://android-review.googlesource.com/#/c/359389/

Which refactor the on-disk location as follows:
/data/lib* --> /data/asan/system/lib*
/data/vendor/* --> /data/asan/vendor/*

There are a couple of advantages to this, including better isolation
from other components, and more transparent linker renaming and
SELinux policies.

Bug: 36574794
Bug: 36674745
Test: m -j40 && SANITIZE_TARGET="address" m -j40 and the device
boots. All sanitized libraries are correctly located in /data/asan/*.

Change-Id: Iad8b298a66c38eb0f6327f6b51027f0728aa7a40

7 years agoMerge "Revert "isnan and isinf aren't functions.""
Dan Albert [Fri, 31 Mar 2017 02:32:27 +0000 (02:32 +0000)]
Merge "Revert "isnan and isinf aren't functions.""
am: 6d225bdf7c

Change-Id: I57dedc84133b553f84a3eea4cd654a3ebe45aba4

7 years agoMerge "Revert "isnan and isinf aren't functions.""
Treehugger Robot [Fri, 31 Mar 2017 02:27:13 +0000 (02:27 +0000)]
Merge "Revert "isnan and isinf aren't functions.""

7 years agoRevert "isnan and isinf aren't functions."
Dan Albert [Thu, 30 Mar 2017 23:34:27 +0000 (16:34 -0700)]
Revert "isnan and isinf aren't functions."

While this change is correct, GNU libstdc++ 4.9 isn't able to handle a
standard compliant C library. Its <cmath> will `#undef isnan` from
math.h and only adds the function overloads to the std namespace,
making it impossible to use both <cmath> (which gets included by a
lot of other standard headers) and ::isnan.

We're going to have to revert this until we can start turning down
support for gnustl.

This reverts commit e76ee993ff30a639d24c7db6a080c14d1b1a10f2.

Bug: https://code.google.com/p/android/issues/detail?id=271629
Test: make checkbuild
Change-Id: I394f50271430e78ab801d85c3ee4e87019eda6af

7 years agoMerge "Add more ptrace process resumption tests."
Josh Gao [Thu, 30 Mar 2017 01:40:54 +0000 (01:40 +0000)]
Merge "Add more ptrace process resumption tests."
am: ccec0f4c11

Change-Id: Ia951508d38a146fb879e3a7aa34e3b1bc4d6169f

7 years agoMerge "Add more ptrace process resumption tests."
Josh Gao [Thu, 30 Mar 2017 01:33:57 +0000 (01:33 +0000)]
Merge "Add more ptrace process resumption tests."

7 years agoMerge "Fix x86 system calls made from ELF preinit."
Elliott Hughes [Wed, 29 Mar 2017 23:14:56 +0000 (23:14 +0000)]
Merge "Fix x86 system calls made from ELF preinit."
am: 12a07044db

Change-Id: I6377f5bcc5edfc725c923b596490aa74e55ea224

7 years agoMerge "Fix x86 system calls made from ELF preinit."
Elliott Hughes [Wed, 29 Mar 2017 23:08:17 +0000 (23:08 +0000)]
Merge "Fix x86 system calls made from ELF preinit."

7 years agoFix lookup logic for linked namespaces
Dimitry Ivanov [Mon, 27 Mar 2017 21:11:02 +0000 (14:11 -0700)]
Fix lookup logic for linked namespaces

When looking for already loaded libraries include
linked namespaces to the search, but check if
the library is accessible from the main namespace.

Bug: http://b/36008422
Bug: http://b/35417197
Bug: http://b/34052337
Bug: http://b/36660652
Bug: https://issuetracker.google.com/36636090
Test: run bionic-unit-tests --gtest_filter=dl*:Dl*
Change-Id: Ic7c1d48114da3ca5dc6512ef03f595dd17b6ed17

7 years agoAdd more ptrace process resumption tests.
Josh Gao [Wed, 29 Mar 2017 22:01:15 +0000 (15:01 -0700)]
Add more ptrace process resumption tests.

Add tests to verify that ptrace unlink happens immediately for unreaped
processes.

Test: /data/nativetest/bionic-unit-tests/bionic-unit-tests --gtest_filter="Ptrace*"
Test: /data/nativetest64/bionic-unit-tests/bionic-unit-tests --gtest_filter="Ptrace*"
Change-Id: I9803ee5be2a0686c21556598ecf17348df09f601

7 years agoFix x86 system calls made from ELF preinit.
Elliott Hughes [Wed, 29 Mar 2017 20:48:02 +0000 (13:48 -0700)]
Fix x86 system calls made from ELF preinit.

Used by CFI, so broke cfi_test#early_init@x86, but I've added a specific
test for this (and a similar test for getauxval from preinit, which this
patch does not fix).

Bug: http://b/35885875
Test: ran tests
Change-Id: I43885bedfb88c0a26b4474bd3c27a87dec7bbc97

7 years agoMerge changes from topic 'no-bionic-prebuilts'
Dan Albert [Wed, 29 Mar 2017 18:05:14 +0000 (18:05 +0000)]
Merge changes from topic 'no-bionic-prebuilts'
am: aa0b5054c5

Change-Id: I3a9d7e295163da53babfe5d539d04166eed3224a

7 years agoMerge changes from topic 'no-bionic-prebuilts'
Treehugger Robot [Wed, 29 Mar 2017 17:59:25 +0000 (17:59 +0000)]
Merge changes from topic 'no-bionic-prebuilts'

* changes:
  Build the versioner even on unbundled branches.
  Revert "Revert "Run the versioner as part of the build.""

7 years agoMerge "linker: log only real dlerrors"
Dimitry Ivanov [Tue, 28 Mar 2017 20:48:35 +0000 (20:48 +0000)]
Merge "linker: log only real dlerrors"
am: df3b922fcf

Change-Id: I4608d63d8be71adaad664fbe685d0ec51ec19a27

7 years agoMerge "linker: log only real dlerrors"
Dimitry Ivanov [Tue, 28 Mar 2017 20:40:45 +0000 (20:40 +0000)]
Merge "linker: log only real dlerrors"

7 years agolinker: log only real dlerrors
Dimitry Ivanov [Tue, 28 Mar 2017 18:08:58 +0000 (11:08 -0700)]
linker: log only real dlerrors

Currently linker reports all potential dlerrors
for example if library was not found in 'this'
namespace - it initializes linker error buffer
with not found message but when consequent
search in linked namespace succeeds this message
is droped because dlopen was successful.

This commit avoids logging false positive error
messages when debug.ld.* set to dlerror.

Test: manual
Change-Id: I480694a1b1bbacd6bd1d8505cd2ee491710964cc

7 years agoMerge "Expose seccomp table"
Paul Lawrence [Tue, 28 Mar 2017 01:58:29 +0000 (01:58 +0000)]
Merge "Expose seccomp table"
am: 4b43140142

Change-Id: If4a0e4194e2b15bd2ce3bdc81c078074e462b1f9

7 years agoMerge "Expose seccomp table"
Treehugger Robot [Tue, 28 Mar 2017 01:54:12 +0000 (01:54 +0000)]
Merge "Expose seccomp table"

7 years agoMerge "bionic: arm64: generic: strcmp: align to 64B cache line"
Christopher Ferris [Tue, 28 Mar 2017 01:34:28 +0000 (01:34 +0000)]
Merge "bionic: arm64: generic: strcmp: align to 64B cache line"
am: f785a6cbff

Change-Id: I3b5b76a6c9a0881c9f82012161254dbd480d062b

7 years agoMerge "bionic: arm64: generic: strcmp: align to 64B cache line"
Christopher Ferris [Tue, 28 Mar 2017 01:27:17 +0000 (01:27 +0000)]
Merge "bionic: arm64: generic: strcmp: align to 64B cache line"

7 years agoMerge "Make anonymous namespace isoalted."
Dimitry Ivanov [Tue, 28 Mar 2017 01:09:57 +0000 (01:09 +0000)]
Merge "Make anonymous namespace isoalted."
am: 6b0f17e588

Change-Id: Ibecb1efa6b81242ffc1ffc6d5f60a13785fc8578

7 years agoMerge "Make anonymous namespace isoalted."
Dimitry Ivanov [Tue, 28 Mar 2017 00:59:08 +0000 (00:59 +0000)]
Merge "Make anonymous namespace isoalted."

7 years agoExpose seccomp table
Paul Lawrence [Mon, 27 Mar 2017 22:38:37 +0000 (15:38 -0700)]
Expose seccomp table

Test: Run with internal cl
      https://googleplex-android-review.git.corp.google.com/#/c/2028102/
      and make sure passes
Bug: 20890063
Change-Id: Id78e5ea843554a5d3750b8f9b350f28ad4dca99b

7 years agoMake anonymous namespace isoalted.
Dimitry Ivanov [Mon, 27 Mar 2017 22:42:17 +0000 (15:42 -0700)]
Make anonymous namespace isoalted.

This addresses outstanding todo for anonymous namespace
and fixes an app compatibility bug.

Bug: http://b/36008422
Test: start app from http://b/36008422 and make sure it runs
Change-Id: Ie148418b944379ee1000e7274f2f6c1eca511d6c

7 years agoBuild the versioner even on unbundled branches.
Dan Albert [Mon, 27 Mar 2017 20:28:27 +0000 (13:28 -0700)]
Build the versioner even on unbundled branches.

This is needed to generate the NDK, so unbundled projects using the
NDK need to build this. If they don't need the NDK, they should just
remove bionic from their manifest.

Test: make checkbuild
Bug: None
Change-Id: I7db816c4a341cf34d4d11739dc64182af630ad63

7 years agoRevert "Revert "Run the versioner as part of the build.""
Dan Albert [Wed, 22 Mar 2017 22:28:05 +0000 (15:28 -0700)]
Revert "Revert "Run the versioner as part of the build.""

This reverts commit 69c7562f5983ed5bc1d330b1f44b5cf506efb60e.

Test: make checkbuild
Change-Id: Ie443029398c01b45e0a0317a8074808b064f35d4

7 years agoMerge "Revert "linker: add more directories to default lib paths""
Dimitry Ivanov [Sat, 25 Mar 2017 07:49:41 +0000 (07:49 +0000)]
Merge "Revert "linker: add more directories to default lib paths""
am: 840ae69408

Change-Id: I49d120109ead5daa672bf7dff916029828c6b94e

7 years agoMerge "Revert "linker: add more directories to default lib paths""
Dimitry Ivanov [Sat, 25 Mar 2017 07:46:18 +0000 (07:46 +0000)]
Merge "Revert "linker: add more directories to default lib paths""

7 years agoMerge "Load namespace configuration from ld.config.txt"
Dimitry Ivanov [Sat, 25 Mar 2017 05:21:08 +0000 (05:21 +0000)]
Merge "Load namespace configuration from ld.config.txt"
am: deca8effd0

Change-Id: Iaf23427acf6a1e5a6336dc43838d1678b364a277

7 years agoMerge "Load namespace configuration from ld.config.txt"
Treehugger Robot [Sat, 25 Mar 2017 05:17:31 +0000 (05:17 +0000)]
Merge "Load namespace configuration from ld.config.txt"

7 years agoMerge "Disable compat_elf_hash_and_relocation_tables test for x86"
Dimitry Ivanov [Fri, 24 Mar 2017 23:06:39 +0000 (23:06 +0000)]
Merge "Disable compat_elf_hash_and_relocation_tables test for x86"
am: fe96db819b

Change-Id: I6ff32babeeb514cd00704e797a713ac4149dc868

7 years agoMerge "Disable compat_elf_hash_and_relocation_tables test for x86"
Dimitry Ivanov [Fri, 24 Mar 2017 23:02:54 +0000 (23:02 +0000)]
Merge "Disable compat_elf_hash_and_relocation_tables test for x86"

7 years agoLoad namespace configuration from ld.config.txt
Dimitry Ivanov [Tue, 7 Mar 2017 19:19:05 +0000 (11:19 -0800)]
Load namespace configuration from ld.config.txt

This change allows customization of default namespace
configuration for different executables. It also enables
target_sdk_version setup for binaries (note that this
option should explicitly be enabled in ld.config.txt).

Bug: http://b/30706810
Bug: http://b/30435785
Test: run linker-unit-tests/bionic-unit-tests, boot angler
Change-Id: Ibbe87209acf1538fc9cec04944f3d22a190c38f1

7 years agoDisable compat_elf_hash_and_relocation_tables test for x86
Dimitry Ivanov [Fri, 24 Mar 2017 17:58:23 +0000 (10:58 -0700)]
Disable compat_elf_hash_and_relocation_tables test for x86

Bug: http://b/36571076
Test: run bionic-unit-tests on fugu
Change-Id: I2f901bc99e55f15b06fe6a5b0d7a125d1b8241a8

7 years agoMerge "loader: stop relying on AT_BASE"
Dimitry Ivanov [Fri, 24 Mar 2017 02:06:22 +0000 (02:06 +0000)]
Merge "loader: stop relying on AT_BASE"
am: ad8dcd6023

Change-Id: Ie7a4ffd40a91d2b87468dc3374414cb4e6bed993

7 years agoMerge "loader: stop relying on AT_BASE"
Treehugger Robot [Fri, 24 Mar 2017 02:03:57 +0000 (02:03 +0000)]
Merge "loader: stop relying on AT_BASE"

7 years agoloader: stop relying on AT_BASE
Dimitry Ivanov [Thu, 23 Mar 2017 23:17:15 +0000 (16:17 -0700)]
loader: stop relying on AT_BASE

android loader should not rely on the fact
that AT_BASE is set because kernel currently
does not set it when linker is run standalone
(The linker does not have PT_INTERP set)

This commit replaces AT_BASE with calculated value.

Bug: http://b/30739481
Bug: http://b/35890756
Test: run bionic-unit-tests --gtest_filter=dl*
Change-Id: Ic2eb73e4452624b1f2e05f46e99e4c17df0bbc3f

7 years agoMerge "Expand whitelist"
Paul Lawrence [Thu, 23 Mar 2017 20:46:25 +0000 (20:46 +0000)]
Merge "Expand whitelist"
am: 58df5b2b86

Change-Id: I58f915835c2b0617c2bc846f2d021ce0747013c1

7 years agoMerge "Expand whitelist"
Treehugger Robot [Thu, 23 Mar 2017 20:41:34 +0000 (20:41 +0000)]
Merge "Expand whitelist"

7 years agoExpand whitelist
Paul Lawrence [Thu, 23 Mar 2017 19:20:00 +0000 (12:20 -0700)]
Expand whitelist

Bug: 36449658
Test: Builds
Change-Id: I610da03e7a3cede218d1657f53797ab72cbdf317

7 years agoMerge "Verify at least 2 frames out of signal handler."
Christopher Ferris [Thu, 23 Mar 2017 19:15:50 +0000 (19:15 +0000)]
Merge "Verify at least 2 frames out of signal handler."
am: 8f804d71d0

Change-Id: I101d82f95345ebda7d385142301e5fa3e35daeed

7 years agoMerge "Verify at least 2 frames out of signal handler."
Christopher Ferris [Thu, 23 Mar 2017 19:12:20 +0000 (19:12 +0000)]
Merge "Verify at least 2 frames out of signal handler."

7 years agoVerify at least 2 frames out of signal handler.
Christopher Ferris [Thu, 23 Mar 2017 02:05:50 +0000 (19:05 -0700)]
Verify at least 2 frames out of signal handler.

Modify the test slightly to make sure that the unwinder properly unwinds
through at least 2 frames outside of the signal handler. This guarantees
that if the first frame outside of the handler happens to be garbage,
this test will fail.

Bug: 34468756

Test: Ran the unit tests on fugu, angler (both 32 bit and 64 bit).
Change-Id: I6b76ac9fc1df9ed6fd5bbcc6f5fa4bf458354dff

7 years agoMerge "Fix problem that we don't block syscalls below min value"
Paul Lawrence [Wed, 22 Mar 2017 19:38:55 +0000 (19:38 +0000)]
Merge "Fix problem that we don't block syscalls below min value"
am: 4d099d1576

Change-Id: Iaa83772727fd8cb4b9468cd7033523afabe6baed

7 years agoMerge "Fix problem that we don't block syscalls below min value"
Treehugger Robot [Wed, 22 Mar 2017 19:33:07 +0000 (19:33 +0000)]
Merge "Fix problem that we don't block syscalls below min value"

7 years agoFix problem that we don't block syscalls below min value
Paul Lawrence [Wed, 22 Mar 2017 15:03:51 +0000 (08:03 -0700)]
Fix problem that we don't block syscalls below min value

The check that we are not below the lowest permitted syscall was
off by one, so we always allowed them, rather than always denying
them

Test: Check arm64 boots, chrome and maps work
      mips and mips64 emulators boot
      Note that arm, x86 and x86_64 already allow syscall 0 so there
      will be no functional change there

Change-Id: I85873f1d04124e634e648bd47c027f280f1d6dbd

7 years agoMerge "Update timezone data to 2017b"
Joachim Sauer [Wed, 22 Mar 2017 13:16:05 +0000 (13:16 +0000)]
Merge "Update timezone data to 2017b"
am: 341bb25a19

Change-Id: Ie617b4613a4faa33ae95d8e610b3f854caa989b8

7 years agoMerge "Update timezone data to 2017b"
Joachim Sauer [Wed, 22 Mar 2017 13:11:45 +0000 (13:11 +0000)]
Merge "Update timezone data to 2017b"

7 years agoMerge "Add systrace output for dlclose/dlsym calls"
Dimitry Ivanov [Tue, 21 Mar 2017 22:15:51 +0000 (22:15 +0000)]
Merge "Add systrace output for dlclose/dlsym calls"
am: 5153938e9a

Change-Id: I7c9914ae9b309e9c8d0369503546772b2b5b491e

7 years agoMerge "Add systrace output for dlclose/dlsym calls"
Treehugger Robot [Tue, 21 Mar 2017 22:06:08 +0000 (22:06 +0000)]
Merge "Add systrace output for dlclose/dlsym calls"

7 years agoMerge "POSIX support varies by API level."
Elliott Hughes [Tue, 21 Mar 2017 20:22:13 +0000 (20:22 +0000)]
Merge "POSIX support varies by API level."
am: 8ebfc0d3a3

Change-Id: Ifa732c7835620aaf1d12ad9b3a97253fad3f14b3

7 years agoMerge "POSIX support varies by API level."
Treehugger Robot [Tue, 21 Mar 2017 20:11:35 +0000 (20:11 +0000)]
Merge "POSIX support varies by API level."

7 years agoMerge "pthread barrier and spinlock types should only appear at API level 24."
Elliott Hughes [Tue, 21 Mar 2017 19:20:41 +0000 (19:20 +0000)]
Merge "pthread barrier and spinlock types should only appear at API level 24."
am: 72b6f4fae2

Change-Id: I497096763a796e0e69643d2240d3608eb169104d

7 years agoMerge "pthread barrier and spinlock types should only appear at API level 24."
Elliott Hughes [Tue, 21 Mar 2017 19:14:05 +0000 (19:14 +0000)]
Merge "pthread barrier and spinlock types should only appear at API level 24."

7 years agoPOSIX support varies by API level.
Elliott Hughes [Tue, 21 Mar 2017 18:24:13 +0000 (11:24 -0700)]
POSIX support varies by API level.

Bug: https://github.com/android-ndk/ndk/issues/332
Test: builds
Change-Id: I249c214d34244a1149ba6b1160e8eafc2cdbcdea

7 years agoAdd systrace output for dlclose/dlsym calls
Dimitry Ivanov [Tue, 21 Mar 2017 17:29:06 +0000 (10:29 -0700)]
Add systrace output for dlclose/dlsym calls

Bug: http://b/27195126
Test: manual: adb shell atrace -t 5 bionic
      and run bionic-unit-tests --gtest_filter=dl*

Change-Id: I9e93a069dd440bb643890d9952913938442ac375

7 years agopthread barrier and spinlock types should only appear at API level 24.
Elliott Hughes [Tue, 21 Mar 2017 16:39:56 +0000 (09:39 -0700)]
pthread barrier and spinlock types should only appear at API level 24.

Bug: https://github.com/android-ndk/ndk/issues/336
Test: builds
Change-Id: I938d9d7ea879d1dbc355f14e100f1ea31a51a1f0

7 years agoUpdate timezone data to 2017b
Joachim Sauer [Tue, 21 Mar 2017 15:25:34 +0000 (15:25 +0000)]
Update timezone data to 2017b

IANA changes:

  Briefly: Haiti has resumed DST.

  Changes to past and future time stamps

    Haiti resumed observance of DST in 2017.  (Thanks to Steffen Thorsen.)

  Changes to past time stamps

    Liberia changed from -004430 to +00 on 1972-01-07, not 1972-05-01.

    Use "MMT" to abbreviate Liberia's time zone before 1972, as "-004430"
    is one byte over the POSIX limit.  (Problem reported by Derick Rethans.)

Bug: 36470257
Test: CtsLibcoreTestCases / CtsBionicTestCases
Change-Id: I5a8ffb60232410d88ffa67c7702dd234ff05f61d

7 years agoMerge changes Ib2bad794,I82436292
Dimitry Ivanov [Mon, 20 Mar 2017 22:39:50 +0000 (22:39 +0000)]
Merge changes Ib2bad794,I82436292
am: e98d1e68ce

Change-Id: I9a7976262216e9196bb1bc5a5b2bd5736346b109

7 years agoMerge changes Ib2bad794,I82436292
Dimitry Ivanov [Mon, 20 Mar 2017 22:34:36 +0000 (22:34 +0000)]
Merge changes Ib2bad794,I82436292

* changes:
  Add systrace output for dlopen calls
  Add end() method to bionic's ScopedTrace class