Commit Graph

3324 Commits

Author SHA1 Message Date
Christopher Ferris
b43fe7a838 Add an option to preserve symbols and debug_frame.
New strip option named keep_symbols_and_debug_frame, that will keep the
symbols and the .debug_frame. This is meant for use by libc.so only on
arm32. Other libraries might want to use it to keep better unwinding
information on device.

Bug: 132992102

Test: Built libc.so with this option and verified that it contains
Test: the .debug_frame section.
Change-Id: I823a28199dec8316e8b26fe31ff9f17e6b11d406
2019-05-17 17:52:18 -07:00
Colin Cross
57f3e6c30f Merge "Support using cc_prebuilt_library_shared with cc_library" am: 77c22bf008
am: e3106ff23d

Change-Id: I569390897de21972c0b35924326e8073829dfee5
2019-05-17 17:06:11 -07:00
Colin Cross
ee3ea31a24 Limit calls to strip.sh on darwin
strip.sh can use a file descriptor per .o file when run on .a files,
which can hit the system file descriptor limit on darwin.  This
causes failures when manay variants of libgcc_stripped are built
simultaneously.  Put all strip rules on darwin into a pool that
limits them to 10 concurrent processes, which will limit the file
descriptor usage to ~7500.

Fixes: 132822437
Test: no mention of darwinStripPool in out/soong/build.ninja on linux
Test: m libgcc_stripped on darwin
Change-Id: I3d4fbbd8d44d2e9059a79df113ab95336ec2c658
2019-05-17 22:51:00 +00:00
Peter Collingbourne
3478bb2a7f Teach soong not to duplicate the HWASAN runtime into each APEX.
When HWASAN is enabled, the runtime is conceptually part of Bionic (and
mutually depends on it), so it needs to be treated in the same way as the
Bionic libs.

Now there are only two copies of the runtime: the one in
/system/lib64/bootstrap (which won't be used by ordinary processes) and the
one in the runtime APEX.

This reduces the size of the HWASAN system image and fixes an issue where
multiple copies of the HWASAN runtime were being loaded into 64-bit binaries in
APEXes because the linker namespace for the binary is different from the one
for its dependent libraries outside of APEXes. HWASAN only supports loading
one copy of the runtime per process, so this was causing such binaries to
crash on startup.

Change-Id: I228896e193a035e6dfba9f6e28d0b2e12fc163ea
2019-05-17 10:00:39 -07:00
Colin Cross
815daf95b2 Add bpf_test.go to build and fix tests
bpf_test.go was not listed in testSrcs, which meant it was not run
during the build, but ran and failed with go test android/soong/...

Don't redeclare the cc module types and mutators, use exported
functions from cc/testing.go instead, which contain a new
dependency needed by cc modules.

This reapplies I4542640e8ff08e71565ed50617dbe67d86b29b69 after
fixes for mac tests.

Test: m
Test: go test android/soong/...
Change-Id: I3dc3fdedbd7063df4a2e0cadf2a4e0711b1823ad
2019-05-17 08:43:36 -07:00
Colin Cross
9a94287fc9 Move CreateTestContext to cc/testing.go
Allow CreateTestContext to be called by tests in other packages
that need cc modules.

Test: all soong tests
Change-Id: I6be04dec50632baa8cb51e55ba14d0ddc0df60b8
2019-05-17 08:43:36 -07:00
Colin Cross
33b2fb7333 Support using cc_prebuilt_library_shared with cc_library
Allow a cc_prebuilt_library_shared to share the same name as a
cc_library by always creating static and shared variants of
prebuilts so that the variants of the source module are always
a superset of the variants of the target module.

Bug: 131709055
Test: TestPrebuilts
Change-Id: I4afd6d37e6a986d08ad25aee69eca6d994febc6b
2019-05-17 08:40:42 -07:00
Inseob Kim
b3ea83a22f Merge "Generate VNDK snapshot with Soong except configs" am: 651f40bbe1
am: 62ca44a36b

Change-Id: I35f356f9590518406a2fd8d1d3c318cf529dad92
2019-05-15 15:38:29 -07:00
Evgenii Stepanov
6c8b9a0296 Disable malloc fill in HWASan.
am: 2c6484e334

Change-Id: I84cd62a3cc76006c968136b69bf4d88137b2f934
2019-05-15 15:28:45 -07:00
Treehugger Robot
651f40bbe1 Merge "Generate VNDK snapshot with Soong except configs" 2019-05-15 22:13:35 +00:00
Evgenii Stepanov
2c6484e334 Disable malloc fill in HWASan.
HWASan has a feature to fill malloc() memory with non-zero pattern.
This has found a bug or two in the past, but it also keep causing hard
to debug issues. The main problem is lack of diagnostics - use of
pattern-initialized memory is not an immediate crash. More often than
not it manifests as a subtle change in system behavior.

Having MemorySanitizer on Android would be nice...

This change does not affect any shipping configuration, but improves
stability of testing-only SANITIZE_TARGET=hwaddress build.

Bug: 132803232
Bug: 132652537
Bug: 131438232
Bug: 132810685
Test: SANITIZE_TARGET=hwasan on crosshatch successfully boots in ~100%
      attempt (up from ~99% currently).

Change-Id: I7dcbcdf1b8a5b8556e32690327b32f04879e5db1
2019-05-15 13:53:37 -07:00
Inseob Kim
1f086e2f0d Generate VNDK snapshot with Soong except configs
This is the first commit to generate VNDK snapshot with Soong: .so
files, some txt files, and notice files are captured with Soong. As
ld.config.txt is currently in Android.mk and will be deprecated soon,
configs files (and zipping all of artifacts) are still handled with
Makefile.

Bug: 131564934
Test: 1) DIST_DIR=out/dist development/vndk/snapshot/build.sh
Test: 2) try installing vndk snapshot with:
     development/vndk/snapshot/update.py

Change-Id: I8629e1e25bfc461fd495565bb4872c9af176cf92
2019-05-15 10:26:54 +09:00
Christopher Ferris
422687005a Merge "Remove libc_scudo library when building asan." am: d7e66d9e7c
am: 486b170bbc

Change-Id: Ifd1c9021bad87c4a74104be311a04ba73a4419b6
2019-05-13 17:30:56 -07:00
Christopher Ferris
d7e66d9e7c Merge "Remove libc_scudo library when building asan." 2019-05-14 00:12:33 +00:00
Sasha Smundak
6c0b93509d Merge "Add aaudio, amidi, camera2ndk and nativewindow NDK libraries." am: 95aabdad9c
am: f742a23db7

Change-Id: I37c42997d43bf9a583d573a1be2d6d0f5428655c
2019-05-13 11:52:34 -07:00
Treehugger Robot
95aabdad9c Merge "Add aaudio, amidi, camera2ndk and nativewindow NDK libraries." 2019-05-13 18:30:33 +00:00
Dimitry Ivanov
f8eb90728a Merge "Enable native bridge support by default for certain ndk modules" am: 9c9fd4e73a
am: 64ad4e8d72

Change-Id: I610996c9aa9a3b6bca8572e939bd4f92958da1d8
2019-05-10 03:39:39 -07:00
Dimitry Ivanov
9c9fd4e73a Merge "Enable native bridge support by default for certain ndk modules" 2019-05-10 08:16:49 +00:00
Inseob Kim
c012b19eb0 Merge "Attach global variables to Context" am: a1591ab08c
am: 66c5cac22b

Change-Id: Icaf7aa78580459fd76605ec66b5bbaac13a30c9e
2019-05-09 19:42:18 -07:00
Treehugger Robot
a1591ab08c Merge "Attach global variables to Context" 2019-05-09 22:36:30 +00:00
Christopher Ferris
753d4a69d5 Remove libc_scudo library when building asan.
Running any executable built with asan and libc_scudo results in crashes.

Bug: 131810078

Test: Built the media processes with the sanitizer enabled verifying
Test: that the libc_scudo.so shared library is not listed in the
Test: mediaextractor and the mediaswcodec binaries.
Test: Build the media processes without the sanitizer enabled verifying
Test: that the libc_scudo.so shared library is listed in the
Test: mediaextractor and the mediaswcodec binaries.
Change-Id: Ie55a0414088787ec11d85fffcb04592ed4f23c57
2019-05-09 13:35:37 -07:00
dimitry
03dc3f63f6 Enable native bridge support by default for certain ndk modules
The ndk_library, ndk_prebuilt_object and ndk_prebuilt_static_stl
modules are natural targets to have native bridge support enabled,
since they build user facing object which have to be supported for
translated architectures.

Bug: http://b/77159578
Test: make
Change-Id: Ic556f4c1c41e5b3dc92f9c290b4482dee8faed33
2019-05-09 16:37:16 +02:00
Inseob Kim
9516ee9556 Attach global variables to Context
Global variables make testing difficult, and they should attached to
Context.

Bug: N/A
Test: m
Change-Id: Ic671dda755e99d036c7ddce0eed114496374d7ec
2019-05-09 12:29:58 +09:00
Sasha Smundak
b500ce53e2 Add aaudio, amidi, camera2ndk and nativewindow NDK libraries.
Various CTS tests refer to them.
Test: treehugger
Change-Id: I455063b02ec872c430edb1c619d38323d7ffd488
2019-05-07 19:29:53 -07:00
Yi Kong
94b9b2655d Exclude libgcc_stripped wherever libgcc is excluded
Test: manual testing
Bug: 130267141
Bug: 29275768
Change-Id: Idbe82ea4a3e5cb9a9a7c194dd0a4d8a282d56c03
Merged-In: Icc0d50e403dc4a3592e5bf389101cdef129042df
(cherry picked from commit 3d8792f7dd)
2019-05-07 21:12:49 +00:00
Yi Kong
b0e95c1e60 Revert "Revert "Strip libgcc to only keep fallback symbols""
This reverts commit 619cd098b6.

Test: manual testing
Bug: 130267141
Change-Id: Ie156d4a3255be0ad082cda35c22bac4359852f22
Merged-In: I5b349fa6138e51663bf3b67109b880b4356da8e8
Exempt-From-Owner-Approval: Cherry pick
2019-05-07 21:11:31 +00:00
Yi Kong
fcd11c7c71 Merge "Exclude libgcc_stripped wherever libgcc is excluded" am: 3277c39c6b
am: 29ae56ede9

Change-Id: Iaeb5531631c175af08b2e0d96dfccd4ad25ea080
2019-05-07 09:42:38 -07:00
Yi Kong
29ae56ede9 Merge "Exclude libgcc_stripped wherever libgcc is excluded"
am: 3277c39c6b

Change-Id: Idbe82ea4a3e5cb9a9a7c194dd0a4d8a282d56c03
2019-05-06 20:13:01 -07:00
Yi Kong
3d8792f7dd Exclude libgcc_stripped wherever libgcc is excluded
Test: manual testing
Bug: 130267141
Bug: 29275768
Change-Id: Icc0d50e403dc4a3592e5bf389101cdef129042df
2019-05-06 16:18:33 -07:00
Patrice Arruda
628e320278 Merge "Soong: Add synopsis to ndk_prebuilt_* modules." am: e0dbdd87f0
am: 2a38d89734

Change-Id: Iebf89c24fc2786564e79223f3654d84f1714e90c
2019-05-06 11:49:58 -07:00
Patrice Arruda
2a38d89734 Merge "Soong: Add synopsis to ndk_prebuilt_* modules."
am: e0dbdd87f0

Change-Id: I757be447a4868755799c0cb40d21ed52989f9e7a
2019-05-06 11:37:08 -07:00
Treehugger Robot
e0dbdd87f0 Merge "Soong: Add synopsis to ndk_prebuilt_* modules." 2019-05-06 18:12:12 +00:00
Colin Cross
619cd098b6 Revert "Strip libgcc to only keep fallback symbols"
This reverts commit bd475367c3.

Reason for revert: b/130267141
Bug: 29275768
Bug: 130267141
Merged-In: I5b349fa6138e51663bf3b67109b880b4356da8e8
Change-Id: Ieab56390b27240ef7f2f52a48a673809da7bcf8e
2019-05-06 17:29:49 +00:00
dimitry
46becd866e Merge "Add native_bridge target to Android.bp" am: ec89e4c65c
am: 9da19e15ee

Change-Id: I49ecaa7fdb8bd283c9a8df00ddb6572bab9d140d
2019-05-03 16:47:46 -07:00
dimitry
9da19e15ee Merge "Add native_bridge target to Android.bp"
am: ec89e4c65c

Change-Id: I90803e4cac6fccdaaabc9d1ba3fb01491bb9bd65
2019-05-03 16:08:33 -07:00
Treehugger Robot
ec89e4c65c Merge "Add native_bridge target to Android.bp" 2019-05-03 22:23:00 +00:00
dimitry
1f33e40972 Add native_bridge target to Android.bp
This allows us to build guest libraries for the native bridge for
arm/arm64 architectures.

Bug: http://b/77159578
Test: make
Change-Id: I35520ca456105ddadd456c78a4eb1e6de39147c5
2019-05-03 15:33:28 +02:00
Yi Kong
bd475367c3 Strip libgcc to only keep fallback symbols
We use libgcc as fallback for symbols not present in libclang_rt
builtins, however we didn't know what exact symbols were being used,
some may not be intended to fallback.

Create libgcc_stripped, which only contains unwind symbols from libgcc.

Bug: 29275768
Test: bionic-unit-tests
Change-Id: I98df02ead7f6cca4e76ec92d4f880de4e03f5b5c
Merged-In: I5b349fa6138e51663bf3b67109b880b4356da8e8
(cherry picked from commit acee27cd72)
2019-05-03 08:24:10 +00:00
Yi Kong
b5624d7620 Merge "Strip libgcc to only keep fallback symbols" am: 940ef9bc89
am: 6e14640082

Change-Id: I7597fa6208f143555f04ddb300db1c3f26b4d853
2019-05-03 01:22:07 -07:00
Yi Kong
6e14640082 Merge "Strip libgcc to only keep fallback symbols"
am: 940ef9bc89

Change-Id: I98df02ead7f6cca4e76ec92d4f880de4e03f5b5c
2019-05-03 01:17:03 -07:00
Evgenii Stepanov
a3c3d65fdc Merge "Disable hwasan memory stats." into qt-dev
am: ead8b42a1d

Change-Id: I2ce1afff3c3ca8fdb0976943a905994053b4966a
2019-05-02 16:26:12 -07:00
Evgenii Stepanov
d98ccb44f2 Disable hwasan memory stats.
Disable a debugging feature in hwasan that seems to be causing flaky selinux
denials in the boot test:

05-02 12:11:11.360  1663  1663 I auditd  : type=1400 audit(0.0:8): avc: denied { read } for comm="iptables-wrappe" path="/proc/1015/statm" dev="proc" ino=30968 scontext=u:r:netutils_wrapper:s0 tcontext=u:r:netmgrd:s0 tclass=file permissive=0

I could not reproduce this locally, but this feature has no users and
I've verified that things keep working without it.

This does not affect any shipped product.

Bug: 131438232
Bug: 112438058
Bug: 131845076
Test: crosshatch_hwasan boot test
Change-Id: I08d46d19151e6d5221cdd56fd6864dae224fae25
2019-05-02 12:52:32 -07:00
Yi Kong
acee27cd72 Strip libgcc to only keep fallback symbols
We use libgcc as fallback for symbols not present in libclang_rt
builtins, however we didn't know what exact symbols were being used,
some may not be intended to fallback.

Create libgcc_stripped, which only contains unwind symbols from libgcc.

Bug: 29275768
Test: bionic-unit-tests
Change-Id: I5b349fa6138e51663bf3b67109b880b4356da8e8
2019-04-30 10:07:00 -07:00
Logan Chien
f7a6c944d4 Merge "Support opt-in ABI checks" am: 23803f9365
am: 5b70a03268

Change-Id: Id45f014546d9d85439350bf85d69e558149f82fc
2019-04-29 11:05:11 -07:00
Logan Chien
5b70a03268 Merge "Support opt-in ABI checks"
am: 23803f9365

Change-Id: I2ff8f34a79d8cd7ed6975ccf2cd5ee7a709c44ef
2019-04-29 10:59:30 -07:00
Logan Chien
23803f9365 Merge "Support opt-in ABI checks" 2019-04-29 17:40:06 +00:00
Patrice Arruda
65eb0a42e2 Merge "Soong: Add synopsis to kernel_headers module under cc package." am: f3c5e4816c
am: 58f381b714

Change-Id: I70e8b3a991f31be3358dbc4c89a75ad4b7c7e551
2019-04-26 22:34:29 -07:00
Patrice Arruda
58f381b714 Merge "Soong: Add synopsis to kernel_headers module under cc package."
am: f3c5e4816c

Change-Id: I8512002dde76af8f29d2d355079f375545a58d18
2019-04-26 22:29:30 -07:00
Patrice Arruda
8c8563746c Soong: Add synopsis to ndk_prebuilt_* modules.
Added synopsis to the following modules under cc package:
   * ndk_prebuilt_object
   * ndk_prebuilt_static_stl
   * ndk_prebuilt_shared_stl

Bug: b/128337482
Test: Generated the documentation and verified that the synopsis was
added to each of the module.

Change-Id: Icca7418268a0328b622014da8a077b26800075fd
2019-04-26 18:36:57 -07:00
Patrice Arruda
cb5142c2d1 Soong: Add synopsis to kernel_headers module under cc package.
Added kernel_headers synopsis.

Bug: b/128337482
Test: Generated the documentation and verified that the synopsis
      was added to the kernel_headers module.

Change-Id: I3d23fa2408c387883e62dea0742e72a96868ecb4
2019-04-26 15:19:21 -07:00