Commit graph

17099 commits

Author SHA1 Message Date
Josh Gao
c80ffece02 Defer registration of the arc4random fork-detect handler.
Previously, arc4random would register a fork-detecting pthread_atfork
handler to not have to call getpid() after a fork. pthread_atfork uses
pthread_mutex_lock, which requires the current thread to be initialized,
preventing the use of arc4random for initializing the global stack guard,
which needs to happen before the main thread has been initialized.

Extract the arc4random fork-detection flag and use the existing
arc4random fork handler to set it.

Bug: http://b/29622562
Change-Id: I98c9329fa0e489c3f78cad52747eaaf2f5226b80
2016-06-28 15:52:59 -07:00
Josh Gao
3e45901439 Make getpid work before the main thread is initialized.
Bug: http://b/29622562
Test: code dependent on this change no longer crashes
Change-Id: I40936f7b35d9e58182aeb2e34e52f54088700825
2016-06-28 15:52:59 -07:00
Josh Gao
250667aaf6 Take the arc4random lock before forking.
Bug: http://b/24675038
Test: stepped through a fork call in gdb
Change-Id: I09d20ff1d103d0c005f2a0cdd9b0a8710ab2392c
2016-06-28 15:52:59 -07:00
Treehugger Robot
9158386758 Merge "Skip Clang's integrated-as for hand-coded assembly" 2016-06-27 22:39:49 +00:00
Pirama Arumuga Nainar
8d414dd2b1 Skip Clang's integrated-as for hand-coded assembly
Bug: http://b/28149048
Bug: http://b/29771478

Clang recently switched to using integrated assembler for Mips.
However, it fails to compile some of the hand-coded assembly files in
bionic.  Disable integrated-as for the time being.

Change-Id: I2eed4391f6827224da74383387bdd9105de5a857
2016-06-27 15:09:05 -07:00
Neil Fuller
bb400855c3 Merge "Update timezone data to 2016e" 2016-06-24 09:02:03 +00:00
Neil Fuller
325b14a76e Update timezone data to 2016e
Changes affecting future time stamps

    Africa/Cairo observes DST in 2016 from July 7 to the end of October.
    Guess October 27 and 24:00 transitions. (Thanks to Steffen Thorsen.)
    For future years, guess April's last Thursday to October's last
    Thursday except for Ramadan.

  Changes affecting past time stamps

    Locations while uninhabited now use '-00', not 'zzz', as a
    placeholder time zone abbreviation.  This is inspired by Internet
    RFC 3339 and is more consistent with numeric time zone
    abbreviations already used elsewhere.  The change affects several
    arctic and antarctic locations, e.g., America/Cambridge_Bay before
    1920 and Antarctica/Troll before 2005.

    Asia/Baku's 1992-09-27 transition from +04 (DST) to +04 (non-DST) was
    at 03:00, not 23:00 the previous day.  (Thanks to Michael Deckers.)

Bug: 29354265
Test: Ran CTS/android.core.tests.libcore.package.harmony_java_util
Test: Ran CTS/android.core.tests.libcore.package.harmony_java_text
Test: Ran CTS/android.core.tests.libcore.package.libcore
(cherry picked from commit 1b0ee2041c)

Change-Id: I00b892b160769faae6fc8e0df2a58211a43bc1a0
2016-06-23 16:47:20 +01:00
Chih-hung Hsieh
36ad0207d6 Merge "Fix misc-macro-parentheses warnings in bionic." 2016-06-21 18:15:36 +00:00
Treehugger Robot
801dfc03cb Merge "Lose debuggerd client code to libdebuggerd_client." 2016-06-20 20:22:18 +00:00
Treehugger Robot
835bd47cc4 Merge "Make missing public soname error message clear." 2016-06-20 19:33:23 +00:00
Christopher Ferris
523e2a9807 Make missing public soname error message clear.
If a public library is missing, make it clear that there is no
library with that soname that is missing. This can help diagnose
problems if a library exists, but the library doesn't have the right
soname.

Bug: 29400363
(cherry picked from commit 9a84d90c75)

Change-Id: Ie2306a2e28aff779d07441dc8af078256b184f8a
2016-06-20 11:36:54 -07:00
Josh Gao
3cc387eff4 Lose debuggerd client code to libdebuggerd_client.
Bug: http://b/24414818
Change-Id: I524714e081a27df4d2046f0c8eb853a1b20592e6
2016-06-15 18:33:26 -07:00
Treehugger Robot
112be469bb Merge "Don't expose all BSD extensions." 2016-06-13 23:55:22 +00:00
Elliott Hughes
9c8d711aa5 Don't expose all BSD extensions.
Just expose the ones that bionic historically leaked.

Also, many of the M_* constants in <math.h> are actually POSIX.

Change-Id: I6275df84c5866b872b71f1c8ed14e2aada12b793
2016-06-13 14:14:43 -07:00
Treehugger Robot
c713adeca1 Merge "Update symbol versions." 2016-06-13 07:55:08 +00:00
Josh Gao
95fa26e590 Update symbol versions.
Bug: http://b/28178111
Change-Id: I8e9fb919d96693dd320962775e991caf5aeb0107
2016-06-10 17:50:14 -07:00
Chih-Hung Hsieh
1a5fd9c155 Fix misc-macro-parentheses warnings in bionic.
Add parentheses around macro arguments used beside operators,
or use constexpr for simple constants.
Bug: 28705665

Change-Id: I378c8aad92d3ec8e8c4b0440b5c2c99dfe01ce79
2016-06-10 15:25:49 -07:00
Treehugger Robot
2ed5852759 Merge "Rationalize visibility." 2016-06-10 20:41:16 +00:00
Treehugger Robot
5e02bde75d Merge "Remove obsolete GCC workaround." 2016-06-10 20:29:37 +00:00
Elliott Hughes
213584bb9d Remove obsolete GCC workaround.
bionic is no longer built with GCC.

Change-Id: If01c53d8f6ec7e801bfcdc61775cc24356eb8434
2016-06-10 12:49:04 -07:00
Elliott Hughes
3ba55f8022 Rationalize visibility.
If it's C or POSIX, it's in. If it's BSD or GNU, it's guarded by __USE_BSD
or __USE_GNU.

Bug: https://code.google.com/p/android/issues/detail?id=194631
Change-Id: Ife51a21c2b37b060db56780d29c929805b199cb6
2016-06-09 17:40:19 -07:00
Treehugger Robot
93bae32c27 Merge "Fix the SIZE_T_MAX SSIZE_MAX defines." 2016-06-10 00:35:38 +00:00
Christopher Ferris
47fcffff60 Fix the SIZE_T_MAX SSIZE_MAX defines.
This should not affect the underlying values, just the types used
by the defines.

This fixes any warnings where code does something like:

  printf("%zx", SIZE_T_MAX);

Change-Id: I4beb6d382f30261e4fe133a88fb503984911326d
2016-06-09 16:35:37 -07:00
Treehugger Robot
f3c39b26b5 Merge "Add ctermid." 2016-06-09 23:21:22 +00:00
Treehugger Robot
4bc95c0f30 Merge "Clean up obsolete libm makefile cruft." 2016-06-09 22:56:19 +00:00
Elliott Hughes
20788aec00 Add ctermid.
Change-Id: I7c7c815c2725df222932db923632c8b6419741ab
2016-06-09 15:16:32 -07:00
Elliott Hughes
7581f9cee8 Clean up obsolete libm makefile cruft.
Change-Id: I52a80c182546168bc31ccc04d8bf815350dba28c
2016-06-09 15:04:27 -07:00
Elliott Hughes
70d99a1053 Merge "Add futimes, futimesat, and lutimes." 2016-06-09 17:34:41 +00:00
Elliott Hughes
449eff02d2 Add futimes, futimesat, and lutimes.
Spotted these while cleaning up <sys/cdefs.h> --- if we remove __USE_XOPEN2K8,
libchrome decides you "must" have futimes. Adding the missing functions (all
just alternative interfaces to utimensat(2) system call) lets us clean up
without breaking anything.

Change-Id: If44fab08ee3de0e31066d650d128a3c96323529b
2016-06-08 19:51:20 -07:00
Elliott Hughes
cf4c3649ad Merge "Move /vendor/bin down with /vendor/xbin." 2016-06-08 19:53:21 +00:00
Treehugger Robot
34985b60c1 Merge "More C compatibility." 2016-06-08 19:44:29 +00:00
Elliott Hughes
409e48add1 More C compatibility.
Add C11 static_assert to <assert.h>. Remove uses of __dead while we're there:
__noreturn already does the same thing on those functions.

Fix <uchar.h> so it works from C.

<stdalign.h> and <stdnoreturn.h> are provided by clang, so there's nothing
for us to do.

Bug: http://b/29178582
Change-Id: Iebc46223868729a26d1a61eb125b76cbcb83a22d
2016-06-08 10:52:15 -07:00
Elliott Hughes
8cabd86c43 Move /vendor/bin down with /vendor/xbin.
The intention is that /vendor/*bin _extends_ rather than overrides.

Change-Id: Iad7db78f653345d79aa6f87abe0a3c2a797f71a3
2016-06-08 10:17:26 -07:00
Treehugger Robot
74669e99ce Merge "Add /vendor/xbin to root's path." 2016-06-08 01:06:49 +00:00
Elliott Hughes
30ad0dd6ad Merge "Preliminary cleanup of <sys/cdefs.h>." 2016-06-07 20:16:26 +00:00
Elliott Hughes
f4840507b5 Preliminary cleanup of <sys/cdefs.h>.
We don't support anything other than Clang and GCC, and we don't support
GCC earlier than 4.9.

Move the various synonyms for __attribute__(__whatever__) together.

Fix a __STDC__VERSION__ (for __STDC_VERSION__) typo.

Drop support for BSD _ANSI_SOURCE and _C99_SOURCE; there's enough confusing
nonsense here already, and plenty of other ways to ask for obsolete standards.

There are plenty more problems here -- what I really want to do is rationalize
our treatment of __STDC_VERSION__ -- but let's get some of this easy stuff
out of the way first.

Bug: https://code.google.com/p/android/issues/detail?id=194631
Change-Id: I7526b9770fdc01f8a4667781b65e2fb08287b20b
2016-06-06 17:35:53 -07:00
Treehugger Robot
d80d42740d Merge "Fix infinite loop if semaphore test is not run." 2016-06-06 22:26:55 +00:00
Christopher Ferris
1783941f23 Fix infinite loop if semaphore test is not run.
When using the --benchmark_filter option, all of the test objects
get created, but not all are run. Previously, if this test didn't run
it would get into an infinite loop waiting for the test to complete.
This change only waits for the test to complete if it was actually
executed.

Change-Id: I5151a0b4b3d5349b978e716ec4a02ebd8b4eae00
2016-06-06 14:13:17 -07:00
Treehugger Robot
901cc14822 Merge "Just use libstdc++ for the cxa stuff inside bionic." 2016-06-06 18:04:54 +00:00
Josh Gao
c5799dd13c Merge changes I32e726c7,I1dc9a708,I09cc335b,Ifb8a66ab,I0e2c25bc, ...
* changes:
  versioner: whitelist atexit, turn on symbol checking by default.
  versioner: add missing test.
  versioner: fix false positive with functions only available as inlines.
  versioner: improve error output slightly.
  versioner: merge stdout and stderr in the test runner.
  versioner: clean up tests, test runner.
  versioner: ignore functions that are __INTRODUCED_IN_FUTURE.
  versioner: autodetect paths when no specified.
  versioner: improve usage messages.
  Remove __cachectl.
2016-06-04 06:06:02 +00:00
Josh Gao
d8c77257ea versioner: whitelist atexit, turn on symbol checking by default.
Change-Id: I32e726c74ee618ace3a4329d46408a42732a8d9d
2016-06-03 15:01:19 -07:00
Josh Gao
4af829acb7 versioner: add missing test.
Change-Id: I1dc9a708b53dbb46af9e4b8ab69bf8ed46ab045f
2016-06-03 15:01:19 -07:00
Josh Gao
958f3b31c4 versioner: fix false positive with functions only available as inlines.
Change-Id: I09cc335b4006c6ceafcbd1bec9e50161f8262942
2016-06-03 15:01:19 -07:00
Josh Gao
173e7c0753 versioner: improve error output slightly.
Print [introduced = 9, deprecated = 10, obsoleted = 11] instead of
[9,10,11].

Change-Id: Ifb8a66abbcec92aa13086d220af7ee6fa17b0897
2016-06-03 15:01:19 -07:00
Josh Gao
658dbd920d versioner: merge stdout and stderr in the test runner.
Some of the error messages emitted by versioner (the ones where it was
invoked incorrectly) go to stderr, which meant that the test runner
ignored them. Merge stdout and stderr, and switch from testing for
exact equality to endswith, because of the compilation errors test.

Change-Id: I0e2c25bcc9dea4c12ea82a6a05b29e561a61a902
2016-06-03 15:01:18 -07:00
Josh Gao
80d909bbfb versioner: clean up tests, test runner.
Git doesn't track empty directories, so most of the tests would fail on
a fresh checkout because of dependencies/common being missing. Remove
the use of dependencies from all of the non-dependency related tests.

Change-Id: I09cc5765aae1576914c1c5d7dfa3fb666eab4a3f
2016-06-03 15:01:18 -07:00
Josh Gao
d67dbf003e versioner: ignore functions that are __INTRODUCED_IN_FUTURE.
Bug: http://b/28178111
Change-Id: I8026181e08ed8f2d59b31a37adcf8b469fb6bdaf
2016-06-03 15:01:18 -07:00
Josh Gao
9b5af7ad5e versioner: autodetect paths when no specified.
Search for the header/dependency/platform directories in a hard-coded
path relative to $ANDROID_BUILD_TOP when they're not specified.

Change-Id: I476385cfc0247e3b2009348ec37c1810a0e9a7f7
2016-06-03 15:01:18 -07:00
Josh Gao
62aaf8f8fe versioner: improve usage messages.
Don't spew all of usage when called improperly, and add a -h option
that exits cleanly.

Change-Id: I1a4517edce75afe0f9a80bc8d6c81353d6c12e99
2016-06-03 15:01:18 -07:00
Josh Gao
99a84c8316 Remove __cachectl.
bionic doesn't have an implementation for this function, but neither
does the kernel. cachectl has existed in the kernel as a stub that
returns ENOSYS for over a decade.

Bug: http://b/28178111
Change-Id: Id35f85fd143c5ea0d45d04b1021893cf5c0c749d
2016-06-03 15:01:18 -07:00