Commit graph

18959 commits

Author SHA1 Message Date
Treehugger Robot
5fabe02757 Merge "Document more dynamic linker changes." 2016-11-19 00:49:39 +00:00
Elliott Hughes
1777aafa20 Document more dynamic linker changes.
Based on https://plus.google.com/+ElliottHughes/posts/dtguP8BWkc7?sfc=false.

Bug: http://b/33001640
Change-Id: I9efedaf1c17a38d4426f030dd252446e4dfbc1cb
2016-11-18 14:57:38 -08:00
Christopher Ferris
c2395be74a Merge "Enable malloc debug using environment variables" 2016-11-18 21:33:18 +00:00
Josh Gao
a7e74f09b8 Merge "Add note about pid_max to host test documentation." 2016-11-18 02:55:32 +00:00
Josh Gao
6cd1c92dc9 Add note about pid_max to host test documentation.
Bug: none
Test: none
Change-Id: I3e446744076131329201543fa29b71fc4f843728
2016-11-17 18:52:09 -08:00
Treehugger Robot
348eaa6480 Merge "versioner: ignore non-header files." 2016-11-18 02:04:24 +00:00
Treehugger Robot
ada292531e Merge "Improve dlerror_concurrent test" 2016-11-18 00:07:42 +00:00
Dimitry Ivanov
c7365eb2fa Improve dlerror_concurrent test
Add a test to check if result is thread-local, not only buffer.

Test: run bionic-unit-tests
Change-Id: Ia95f88c0d76aa86f7f439836393abd67a57dd396
2016-11-17 14:23:24 -08:00
Tamas Berghammer
ac81fe8657 Enable malloc debug using environment variables
Previously malloc debug can be enabled only using global settings
accessible to the root user only. This CL adds a new option to enable
it using environment variables making it possible to use it with pure
native (shell) applications on production builds (from shell user) and
prepares it for using it from logwrapper on production devices.

Remove the old environment variable and property since they are not
necessary.

Test: Enable malloc debug using environment variable and verify
Test: that it only affects the commands launched from the shell.
Test: Enable malloc debug using the property variable and verify
Test: that it affects all commands.
Test: Run all unit tests in 32 bit and 64 bit.
Change-Id: Iecb75a3471552f619f196ad550c5f41fcd9ce8e5
2016-11-17 13:13:27 -08:00
Christopher Ferris
a5c16983a6 Merge "Fix iswlower/iswupper." 2016-11-17 20:06:05 +00:00
Dimitry Ivanov
3613c20c59 Merge "Relax ELF header checks - warn for apps targeting pre-O" 2016-11-17 05:21:42 +00:00
Treehugger Robot
585838ba32 Merge "Remove unused includes/externals" 2016-11-17 02:48:41 +00:00
Dimitry Ivanov
12b918743d Relax ELF header checks - warn for apps targeting pre-O
Bug: http://b/32581440
Test: bionic-unit-tests --gtest_filter=dl*:Dl*
Change-Id: I2fe356c67eb9665c671758117679a29b207219e4
2016-11-16 18:43:06 -08:00
Treehugger Robot
60ba60dd25 Merge "Add and use constants for the Android API levels." 2016-11-17 02:37:37 +00:00
Josh Gao
3091f5a06e versioner: ignore non-header files.
Don't try to compile non-headers (vim swap files, etc.) that happen to
be in the header directory.

Bug: none
Test: manually created a file in libc/include
Change-Id: I2c1647ec7174dc617898dc2f07c9a80a08b69c72
2016-11-16 17:01:57 -08:00
Elliott Hughes
5bc78c8bcd Add and use constants for the Android API levels.
Test: bionic tests still pass
Change-Id: If1b619cfc9db1d3f5d91f14f2ace71058dca0c4a
2016-11-16 16:55:42 -08:00
Dimitry Ivanov
2880754368 Merge "Add original prebuilt test libraries" 2016-11-17 00:52:41 +00:00
Dimitry Ivanov
ffa45a8682 Remove unused includes/externals
Test: mm
Change-Id: I4b88602b7d0a18664cbeddfa9854e589c2886e1a
2016-11-16 15:23:37 -08:00
Elliott Hughes
f76a21a185 Fix iswlower/iswupper.
The previous conditions were just plain wrong.

Test: bionic tests
Change-Id: Ia6d98207b1ff98ea4c6f619912e4bcdb8a7fdd24
2016-11-16 15:19:08 -08:00
Dimitry Ivanov
416158db60 Add original prebuilt test libraries
This is the library used to produce invalid prebuilt libraries
for loader tests.

Bug: http://b/30795430
Test: not necessary - these are added for reference
Change-Id: I06e681bf826e59a76da9b49d84d26dee34920d49
2016-11-16 14:02:49 -08:00
Elliott Hughes
8945d5e43a Merge "Downgrade W+E load segments to a warning unless targeting O." 2016-11-16 19:04:18 +00:00
Christopher Ferris
bd15515cfc Merge "Fix uninitialized variable usage." 2016-11-16 18:59:02 +00:00
Christopher Ferris
a19bc2d4ed Fix uninitialized variable usage.
If the dladdr call fails, then info.dli_fname will be unitialized.
Make sure that this can't happen.

Bug: 32907235

Test: Enabled malloc debug on an angler and verified that function names
Test: still work.
Change-Id: I738e66d9f37bce07bc4c10f1f9bac11fbfdae2c7
2016-11-16 10:55:20 -08:00
Martijn Coenen
7afafce831 Merge "Fix deprecated range_x() calls." 2016-11-16 09:48:31 +00:00
Treehugger Robot
5a073a18f3 Merge "Fix getrandom syscall checking" 2016-11-16 03:23:45 +00:00
Elliott Hughes
4cc5a60f91 Downgrade W+E load segments to a warning unless targeting O.
I don't think we're getting any value from more dupes of the same dodgy
middleware, and I worry that we're hiding other, more subtle, compatibility
issues behind this one.

Test: bionic tests
Change-Id: I556cf36eac96c90976bae32621d1c133bbb8fcc7
2016-11-15 16:59:33 -08:00
Wei Wang
0741d8d82d Fix getrandom syscall checking
Test: angler
Bug: 32838381
(cherry-picked from commit 46289b4c0211fc48d8719b385a7e56d765510ebd)

Change-Id: I102ffa26d7f39a8d3572b31f04b66ae31a9e752c
2016-11-15 16:53:37 -08:00
Colin Cross
d5aa03600e Merge "Don't pack relocations in libc.so" 2016-11-15 23:38:01 +00:00
Colin Cross
4ce94d297e Don't pack relocations in libc.so
Ic9125cc1bc4c9ba9eb20d030de72e3ce1fb86fa6 disabled relocation packing
in libc.so, but the flag was dropped when we switched to Android.bp
in Ib0ba2d28bff88483b505426ba61606da314e03ab.

Bug: 20645321
Bug: 20655855
Bug: 32750616
Test: builds
Test: inspect out/build-aosp_angler.ninja
Test: run app that crashes with packed libc.so
Change-Id: Ib0630f2e342afa543bb88303fec8f9695ac583e9
2016-11-15 15:35:31 -08:00
Elliott Hughes
f97b27a9c0 Merge "Differentiate the wctype functions we need to improve." 2016-11-15 19:04:25 +00:00
Martijn Coenen
be763d85c8 Fix deprecated range_x() calls.
Test: builds with new libbenchmark.
Change-Id: I91c0e5c1b5cf75b8e551f3c59d83ac9352817c4a
2016-11-15 09:07:11 +01:00
Treehugger Robot
b3321c9614 Merge changes I72d37b7c,I7d254a10,I2e967acf
* changes:
  versioner: use a virtual filesystem for input files.
  versioner: cache -cc1 flags generated by the clang Driver.
  versioner: refactor to use CompilerInstance directly.
2016-11-15 00:54:09 +00:00
Elliott Hughes
98c6688d64 Differentiate the wctype functions we need to improve.
Some of these are genuinely fine as-is.

Test: bionic tests still pass
Change-Id: Iab6d86d818dcc5857e7932a9effa04001195386f
2016-11-14 12:55:59 -08:00
Treehugger Robot
cd9ce19e9c Merge changes I7f32dc9f,I9d88ddb1
* changes:
  Revert "Revert "Attempt to use arc4random where getauxval(AT_RANDOM) is used.""
  Revert "Revert "Update getentropy_linux.c from upstream.""
2016-11-11 22:20:18 +00:00
Josh Gao
a170d9bfc5 Revert "Revert "Attempt to use arc4random where getauxval(AT_RANDOM) is used.""
This reverts commit 60d052dda6.

Bug: http://b/27729263
Change-Id: I7f32dc9f9a1f21fda3213f10da940821e1bdd63f
2016-11-10 17:02:45 -08:00
Josh Gao
98d655ce96 Revert "Revert "Update getentropy_linux.c from upstream.""
This reverts commit b3fbee449c.

Bug: http://b/27729263
Change-Id: I9d88ddb11466d203514ae805f4681c92e4b63c24
2016-11-10 17:02:37 -08:00
Josh Gao
78b8a1430d versioner: use a virtual filesystem for input files.
Use an InMemoryFileSystem to store and share input files across
compilations.

This improves the result of `time versioner` further, from:
    versioner  109.12s user 17.43s system 2433% cpu 5.201 total
to:
    versioner  112.20s user 1.38s system 2416% cpu 4.700 total

Bug: http://b/32748936
Test: python run_tests.py
Change-Id: I72d37b7c30850b8399cc40338247700fe3e7b2f9
2016-11-09 18:12:10 -08:00
Josh Gao
b5c496346f versioner: cache -cc1 flags generated by the clang Driver.
Profiling showed that majority of time spent by versioner was being
spent in the x86 and x86_64 driver statting random files in /usr/lib,
looking for a toolchain. Hardcode a list of per-target flags which
correspond to a subset of the ones generated by clang, and use those
instead of calling out to Driver.

This changes the result of `time versioner` from:
    versioner  156.57s user 1180.08s system 4109% cpu 32.525 total
to:
    versioner  109.12s user 17.43s system 2433% cpu 5.201 total

Bug: http://b/32748936
Test: python run_tests.py
Change-Id: I7d254a105bf1a283cbba0546321b04e308e703d1
2016-11-09 18:10:15 -08:00
Josh Gao
16016df79f versioner: refactor to use CompilerInstance directly.
This will make it easier to switch over to a virtual filesystem,
which should drastically improve performance.

This also fixes an issue with warning/error reporting.

Bug: http://b/32748936
Test: python run_tests.py
Change-Id: I2e967acf75db29c95f3a03f4f94cccd22c367ad5
2016-11-09 13:50:07 -08:00
Treehugger Robot
84e269d5af Merge "versioner: don't always hide future decls." 2016-11-09 02:07:17 +00:00
Treehugger Robot
64fc6b5e20 Merge "Document how to run the benchmarks." 2016-11-09 01:20:58 +00:00
Treehugger Robot
b08fde95cb Merge "Fix error case to print newlines properly." 2016-11-09 00:33:12 +00:00
Josh Gao
9ae2b9a521 versioner: don't always hide future decls.
Bug: http://b/32748732
Test: python run_tests.py
Change-Id: I8f799015ebb1017f5e7d1324fb4c724e12a268bc
2016-11-08 16:28:07 -08:00
Elliott Hughes
9163d846d6 Document how to run the benchmarks.
Test: N/A
Change-Id: I13bf4f1b5a218e06e68ff8eb8156843175f2648a
2016-11-08 15:41:02 -08:00
Christopher Ferris
4dd2785f05 Fix error case to print newlines properly.
Bug: 32640542

Test: Built and ran on a failing device.
Change-Id: I81a578af7608c741819062bd54aa8e348a621b83
2016-11-08 14:05:18 -08:00
Dimitry Ivanov
8bfaac0f8a Merge "Eliminate deadlock in forked child due to delayed resetting mutex lock" 2016-11-08 20:59:42 +00:00
Elliott Hughes
bfc6ce6424 Merge "Remove bogus OPEN_MAX and CHILD_MAX constants." 2016-11-08 01:05:48 +00:00
Treehugger Robot
59a3439fe8 Merge "Add legacy inlines for fenv APIs." 2016-11-07 23:51:41 +00:00
Treehugger Robot
15ae549658 Merge "Show amount of parallelism in gtest output." 2016-11-07 22:48:49 +00:00
Elliott Hughes
ff5f17bc8a Remove bogus OPEN_MAX and CHILD_MAX constants.
These are BSD-isms that don't make sense on Linux but do lead people astray.

Bug: http://b/32678775
Test: builds & boots
Change-Id: If6d3636f5f8d1b392b08c997dba2afde61b31fb6
2016-11-07 14:03:00 -08:00