Commit graph

3973 commits

Author SHA1 Message Date
Chih-Hung Hsieh
5f78d55a0a Enable bitwise-conditional-parentheses warning
Bug: 148286937
Test: make
Change-Id: Ib793e35e1f3098e2cce760bcbf0f115ae5764c7f
Merged-In: Ib793e35e1f3098e2cce760bcbf0f115ae5764c7f
2020-02-20 00:58:41 -08:00
Automerger Merge Worker
f5c529e8e1 Merge "Enable bitwise-conditional-parentheses warning" into qt-qpr1-dev-plus-aosp am: f62f162956
Change-Id: Ibb956a840d6c036dfeb10c3094309f3cdbd3af9b
2020-02-20 05:25:04 +00:00
Chih-hung Hsieh
f62f162956 Merge "Enable bitwise-conditional-parentheses warning" into qt-qpr1-dev-plus-aosp 2020-02-20 05:12:17 +00:00
Colin Cross
f9aabd719a Make apex use cc.GatherRequiredDepsForTests
Remove the duplicated native modules from apex_test.go.

Test: all soong tests
Change-Id: Ib88af058d23cf37446d7a4bb571edfb1e0880854
2020-02-19 19:07:11 -08:00
Colin Cross
f28329de73 Move NDK test modules into cc/testing.go
Move the NDK modules defined in app_test.go into cc/testing.go in
preparation for using sdk_version: "current" in more tests.

Test: all soong tests
Change-Id: I80bc31225fb4562fce42781219cefbbd6affae06
2020-02-19 18:59:15 -08:00
Automerger Merge Worker
b7d11f872b Merge "Fix .vendor suffix for snapshots" am: 578b7ac691 am: 0a431d17b6 am: 5fc19eecee
Change-Id: I357b21912236ec5c8b6f7d71bf29d5d85085a52b
2020-02-20 00:51:55 +00:00
Automerger Merge Worker
02b5c6faba Merge "Do not hide VNDK prebuilts from make" am: 07f37120e5 am: 9a99c6f5e7 am: b2742ef1c1
Change-Id: I772120fb8b4069149de47d368959489b8e7f4747
2020-02-20 00:51:46 +00:00
Automerger Merge Worker
64170a9a8d Merge "Fix build error on vendor_snapshot_static" am: 5b37383464 am: 93fc33c215 am: e8bba597dd
Change-Id: I17806959ec966a68347ac1950d07d0b6b4eb18f9
2020-02-20 00:51:37 +00:00
Automerger Merge Worker
c5a8848da8 Merge "Fix header deps of sysprop_library" am: 0298d036e9 am: 2009aa299b am: 5c260af50b
Change-Id: I7e80e4b18c0951053f59ba728ca631df2a2f51c1
2020-02-20 00:51:29 +00:00
Treehugger Robot
578b7ac691 Merge "Fix .vendor suffix for snapshots" 2020-02-20 00:02:44 +00:00
Treehugger Robot
07f37120e5 Merge "Do not hide VNDK prebuilts from make" 2020-02-20 00:02:40 +00:00
Treehugger Robot
5b37383464 Merge "Fix build error on vendor_snapshot_static" 2020-02-20 00:02:34 +00:00
Treehugger Robot
0298d036e9 Merge "Fix header deps of sysprop_library" 2020-02-20 00:02:28 +00:00
Automerger Merge Worker
92f08f159d Merge "Port IdentityCredential HAL to AIDL." am: c2937d29a8 am: 14e3fc1a29 am: 3f003e3917
Change-Id: If6989f33ec6965f1c63b1a2ca72bc2f99988b488
2020-02-19 23:18:16 +00:00
Chih-Hung Hsieh
de21a358c3 Enable bitwise-conditional-parentheses warning
Bug: 148286937
Test: make
Change-Id: Ib793e35e1f3098e2cce760bcbf0f115ae5764c7f
2020-02-19 22:54:42 +00:00
David Zeuthen
c2937d29a8 Merge "Port IdentityCredential HAL to AIDL." 2020-02-19 21:14:41 +00:00
Automerger Merge Worker
2a93a35752 Merge "Revert "Another round of no-vendor-variant VNDK whitelist cleanup"" am: ae83ce656d am: ab231ee744 am: 2d0fe41f83
Change-Id: I9b46a3708408aef10313bf23615052997428c874
2020-02-19 12:21:20 +00:00
Automerger Merge Worker
5a993174dc Merge "Add support for cc_binary in module_exports" am: 23be2bf941 am: 3114b0fc94 am: ae41b77938
Change-Id: I4a3aaff388fe15da9b804981fa0c2bd75899c3b6
2020-02-19 11:41:47 +00:00
Treehugger Robot
ae83ce656d Merge "Revert "Another round of no-vendor-variant VNDK whitelist cleanup"" 2020-02-19 11:33:48 +00:00
Treehugger Robot
23be2bf941 Merge "Add support for cc_binary in module_exports" 2020-02-19 10:56:38 +00:00
Inseob Kim
ed2641f469 Fix header deps of sysprop_library
This adds public header to deps correctly.

Bug: 148123511
Bug: 149252327
Test: VNDK_SNAPSHOT_BUILD_ARTIFACTS=true m dist vndk
Change-Id: Ib8df3dfb4a068a11fc647de8588cc52889d82fba
2020-02-19 15:30:02 +09:00
Albal Tai
7667b62920 Revert "Another round of no-vendor-variant VNDK whitelist cleanup"
This reverts commit 77def87329.

Reason for revert: <cop revert, broken build 6217456 on git_master on cf_x86_phone-userdebug_coverage>

Change-Id: Iaf64cfe8fdfe62d397719f7ca5cc7679e5858d91
2020-02-19 06:17:51 +00:00
Chih-hung Hsieh
252d7449ca Merge "Enable tautological-bitwise-compare warning" 2020-02-19 04:50:11 +00:00
Inseob Kim
5f64aeccdf Fix .vendor suffix for snapshots
.vendor suffix is meant to be attached for vendor variants of
modules without "vendor: true". So when we decide whether the suffix is
needed for a snapshot module, we should check if corresponding source
module is "vendor: true" or not, instead of checking vendor_available of
the source module.

Bug: 149252327
Test: manual
Change-Id: Ibde75737ddce8e1dc974453e88832f9272a2c66e
2020-02-19 13:49:44 +09:00
Automerger Merge Worker
aaeb2930b6 Merge "Do not add ccWrapper to ccNoDeps rule" am: 8a2d1b4d86 am: d90c0b9136 am: 0090db54d6
Change-Id: Ib887df74bf1cd7e6b917029002333bec6631bffb
2020-02-19 03:24:15 +00:00
Treehugger Robot
8a2d1b4d86 Merge "Do not add ccWrapper to ccNoDeps rule" 2020-02-19 02:34:33 +00:00
Automerger Merge Worker
af7dd22e6f Merge "Another round of no-vendor-variant VNDK whitelist cleanup" am: e6c44dc8be am: 0ac6055a39 am: 80cb25a798
Change-Id: I3152d7bbd2cbe245ff54cacad46e1ce15232c351
2020-02-19 00:31:47 +00:00
Vic Yang
e6c44dc8be Merge "Another round of no-vendor-variant VNDK whitelist cleanup" 2020-02-18 23:29:08 +00:00
Chih-Hung Hsieh
15631dce8a Enable tautological-bitwise-compare warning
Bug: 148831363
Test: make
Change-Id: I31285fec578a87e0d35c177cd599dcd6a66cf934
Merged-In: I9d1ba8ef50630e40d59e402c37ad1366a8e25ea6
2020-02-18 15:14:03 -08:00
Chih-hung Hsieh
d7af130c2e Merge "Enable tautological-bitwise-compare warning" 2020-02-18 22:58:23 +00:00
Automerger Merge Worker
0980f9a3ed Merge "Switch from clang-r377782 to clang-r377782b" am: 207b18ca35 am: 8fe9f07eef am: c00ad77dd8
Change-Id: Ib8082e47221d53e3084483f7c3c15d35f30a19c9
2020-02-18 22:37:19 +00:00
Chih-hung Hsieh
207b18ca35 Merge "Switch from clang-r377782 to clang-r377782b" 2020-02-18 21:59:06 +00:00
Automerger Merge Worker
e81fff6889 Merge "Statically link the unwinder into binaries packaged into an unbundled APEX with legacy_android10_support: true." am: d8b80bc683 am: 4b20d12832 am: 7fe957e171
Change-Id: Ic27432ee08f3acd6052ceeacb56249077a5edf65
2020-02-18 21:48:42 +00:00
Automerger Merge Worker
c09d834be8 Merge "Enable bool-operation warning" am: ab392f613e am: ca4375f54b am: 3f0bd0b32a
Change-Id: Ic2a5fe1809658a52856eeb627b8ce145df9c3611
2020-02-18 21:13:50 +00:00
Peter Collingbourne
d8b80bc683 Merge "Statically link the unwinder into binaries packaged into an unbundled APEX with legacy_android10_support: true." 2020-02-18 18:12:37 +00:00
Chih-hung Hsieh
ab392f613e Merge "Enable bool-operation warning" 2020-02-18 17:52:25 +00:00
Paul Duffin
25ce04bd3a Add support for cc_binary in module_exports
Bug: 142920869
Test: m nothing
Change-Id: Ib7e16cb323806782c2186e73e13642e4485fc149
2020-02-18 16:17:35 +00:00
Kousik Kumar
2976bfd568 Do not add ccWrapper to ccNoDeps rule
The "ccNoDeps" rule was introduced to separate out ".s" compilations
from other ".S" and ".c*" compilations. The ".s" compilation does not
produce a dependency file and does not support running a preprocessor
through it.
However, it does have ".include" directives, that do NOT take a macro,
but still does the equivalent of a "#include". The compilation of ".s"
assembly files also do NOT produce a dependency file.

Because they don't produce a dependency file AND because RBE's input
processor does not yet support finding dependencies for these files, I'm
making this change to not prepend rewrapper for these commands.

Test: Tested by running a build with this change and ensuring the ".s"
compilations aren't being sent to rewrapper.

Change-Id: I60bb14ff92596e4992e9f675bdc199f1440d4327
2020-02-18 08:00:17 -08:00
Jaewoong Jung
a4003406ed Merge "Simple refactoring of prefix related functions." am: 36b6aec26a am: 9bc4a38707 am: 7f2487d5cc
Change-Id: Ia383f411632524fa2fb3fb238f754900564172c7
2020-02-18 15:48:38 +00:00
Chih-Hung Hsieh
287a13fc7e Switch from clang-r377782 to clang-r377782b
Bug: 149509676
Test: make checkbuild
Change-Id: I30c4cda700522968da443cebd3a67a1c428ba2ef
2020-02-18 07:48:13 +00:00
Inseob Kim
c3b1a166d2 Fix build error on vendor_snapshot_static
Without this, Makefile wasn't able to link against
vendor_snapshot_static library.

Bug: 149252327
Test: manual linking
Change-Id: Idd65656b58d12f8489827df081ef08e40ceb5af9
2020-02-18 12:42:54 +09:00
Inseob Kim
2b96bf5441 Do not hide VNDK prebuilts from make
Flattened APEXes don't install modules hidden from make. This CL unhides
VNDK prebuilt modules to make VNDK APEX work correctly. The suffix for
VNDK prebuilt is still omitted if the version of prebuilt is same with
BOARD_VNDK_VERSION.

Bug: 149542527
Test: build arm64 GSI and flash
Test: Set BOARD_VNDK_VERSION and build
Change-Id: I54a7c14c93eccfefc81603ec3bb474a031bc55af
2020-02-17 19:01:13 +09:00
Jaewoong Jung
3aff5787e2 Simple refactoring of prefix related functions.
Rename the two prefix-in-list funcs so that their usages are clearer.
Also find and replace all the code that essentially does either.

This introduces additional loops in some places, but I think the added
readability and simplicity outweighs the performance degradation, which
should be negligible anyway.

Test: m nothing
Test: TreeHugger
Change-Id: I37e2276ca0c815105ed0031f23c0b1264b480e4f
2020-02-14 14:33:49 -08:00
Chih-Hung Hsieh
45709ee8f1 Enable tautological-bitwise-compare warning
Bug: 148831363
Test: make
Change-Id: I9d1ba8ef50630e40d59e402c37ad1366a8e25ea6
2020-02-14 13:25:09 -08:00
Vic Yang
77def87329 Another round of no-vendor-variant VNDK whitelist cleanup
Bug: 148082691
Test: Build success
Change-Id: Id33fd52ec3cae33322131cd9d1227522af6f2bca
2020-02-14 19:02:25 +00:00
Chih-Hung Hsieh
0e5bb2786f Enable bool-operation warning
Bug: 148287141
Test: make
Change-Id: Icec118284025d0631ad3db64e19c5efe3c21ce13
2020-02-14 10:34:44 -08:00
Ivan Lozano
58ed939a67 Merge "Remove execute-only support." am: d0bf3dbea8 am: 5d1461877d am: 50522fe8b8
Change-Id: I3cb63d6ca2070e296e46bd803fdeca1ea75d78f9
2020-02-14 15:26:59 +00:00
Ivan Lozano
d0bf3dbea8 Merge "Remove execute-only support." 2020-02-14 14:42:49 +00:00
Peter Collingbourne
dc4f986b2a Statically link the unwinder into binaries packaged into an unbundled APEX with legacy_android10_support: true.
Bug: 149075752
Test: tapas com.android.conscrypt com.android.tethering arm64
Test: m out/target/product/generic_arm64/{,symbols/}apex/com.android.{tethering,conscrypt}/lib64/libc++.so
Test: Verified that unwinder was dynamically linked to tethering's
Test: libc++ and statically linked to conscrypt's.
Test: lunch flame-userdebug && m
Test: Verified that unwinder was dynamically linked to /system/lib64/libc++.so
Change-Id: I98eed7cb4316962b19b5c12e150c224c25d0e91d
2020-02-13 22:29:44 -08:00
Treehugger Robot
6a3876a027 Merge "Bump the macOS version to 10.10." am: edb3174967 am: b4ea5e1069 am: b2f0dae04c
Change-Id: I392fd55f63fb01163b581afc798d48efedcd3350
2020-02-14 06:29:19 +00:00
Elliott Hughes
7622713c8d Bump the macOS version to 10.10.
Android Studio only claims to support macOS 10.10 and later, so we
probably shouldn't bother with anything older either.

Test: treehugger
Change-Id: I478cb52221198d7b7e2247dfbee4cd86d5bbd1a8
2020-02-13 16:23:12 -08:00
Chih-hung Hsieh
6b83521f90 Merge "Switch from clang-r370808b to clang-r377782" am: 8744cdffeb am: 1c04724bbd am: b0847994f6
Change-Id: If8aa3a6ad9a294feec95f10921d39291000c3f1e
2020-02-13 22:21:19 +00:00
Chih-hung Hsieh
8744cdffeb Merge "Switch from clang-r370808b to clang-r377782" 2020-02-13 21:46:35 +00:00
Ivan Lozano
8107b85189 Remove execute-only support.
With kernel support being removed for execute-only memory layouts,
remove support for XOM until there's kernel support again.

This allows us to gain the code-size improvements from
"-z noseparate-code".

Bug: 147300048
Test: Compiled binaries no longer marked XOM by default.
Change-Id: Ie84bdd2ca025e8b14867008291bf9ce143b5e999
2020-02-13 13:50:34 -05:00
Automerger Merge Worker
a6f4ef8d2f Merge "Bump our macOS target version to 10.9." am: 3375433ed2 am: ad6e56e993 am: 43297215ea
Change-Id: I6ae9ac061befaa05948e6925b60055a22f7e2bca
2020-02-13 16:36:16 +00:00
Elliott Hughes
3375433ed2 Merge "Bump our macOS target version to 10.9." 2020-02-13 16:02:19 +00:00
Automerger Merge Worker
064ac1feda Merge "Add vendor snapshot modules" am: f048446f92 am: 7dbfe9a852 am: f5b69a3e9d
Change-Id: I853e86515a8268a4224344b890f54490f44844cf
2020-02-13 11:51:51 +00:00
Treehugger Robot
f048446f92 Merge "Add vendor snapshot modules" 2020-02-13 11:01:10 +00:00
Automerger Merge Worker
768608acea Merge "Disable PGO profile use in Clang-based coverage builds" am: 64a075c789 am: 6a22b910e5 am: d95f7cf789
Change-Id: I8079004f2531aed58e93663e87a9fdf8bc9539a6
2020-02-13 07:30:03 +00:00
Elliott Hughes
632dbb3dc2 Bump our macOS target version to 10.9.
https://developer.apple.com/documentation/xcode/notarizing_macos_software_before_distribution/resolving_common_notarization_issues
says "notarization only works for binaries linked against macOS 10.9
or later".

Test: N/A
Bug: http://b/143105198
Change-Id: If66f81caa2f074bf70a75094da578295aa9f58ad
2020-02-12 18:31:35 -08:00
Pirama Arumuga Nainar
807d49bc43 Disable PGO profile use in Clang-based coverage builds
Bug: http://b/143977934

Clang errors that -fprofile-use and -fprofile-instr-generate are
incompatible.

Test: m CLANG_COVERAGE=true COVERAGE_PATHS="*" on cf_x86_phone target
Change-Id: I584b615639fcef86668b7fa34b7511b4820d9548
2020-02-12 15:12:07 -08:00
Chih-Hung Hsieh
9d9555e348 Switch from clang-r370808b to clang-r377782
Allow new clang compiler warnings until they are
fixed or suppressed in all branches.

Bug: 145916209
Test: make checkbuild
Change-Id: Ic873b8d705dacd0d92f9031b3960e01283090363
2020-02-12 21:50:07 +00:00
David Zeuthen
b71fe84c64 Port IdentityCredential HAL to AIDL.
Bug: 111446262
Test: atest android.security.identity.cts
Test: VtsHalIdentityTargetTest
Test: android.hardware.identity-support-lib-test
Change-Id: Ibd5403f52e2d59237e77757c3f334c13b26f3d9d
2020-02-12 10:05:03 -05:00
Automerger Merge Worker
db7d85cc51 Merge "<apex_name>-deps-info correctly tracks dependencies" am: 2bb26d3fad am: 39b51a899f am: 5a14677e31
Change-Id: I54d0ececcb8e0a6c92ce13666f922a42cc80efbd
2020-02-12 01:18:44 +00:00
Jiyong Park
2bb26d3fad Merge "<apex_name>-deps-info correctly tracks dependencies" 2020-02-12 00:47:21 +00:00
Automerger Merge Worker
9f5ce38759 Merge "Revert "Allow Linux hosts to use ubsan runtime sanitizers."" am: 2d743b54c7 am: aa47e5748a am: 77788f6370
Change-Id: I0da5b2f437350cf7b7d2b31c3f07c45af9bb951d
2020-02-11 21:12:12 +00:00
Ivan Lozano
2d743b54c7 Merge "Revert "Allow Linux hosts to use ubsan runtime sanitizers."" 2020-02-11 20:23:36 +00:00
Ivan Lozano
9e37faa3ab Revert "Allow Linux hosts to use ubsan runtime sanitizers."
This reverts commit dbc5000c5b.

Reason for revert: Build breakage.

Change-Id: Ia6a1b58f156e4cc071562043c2f99f78b45b7968
Exempt-From-Owner-Approval: Reverting change due to build breakage.
2020-02-11 20:21:01 +00:00
Automerger Merge Worker
ba713d62d2 Merge "Allow Linux hosts to use ubsan runtime sanitizers." am: 0dbb324a83 am: 3121be5eae am: df5e1287a9
Change-Id: I2f93ed369b044d604b460808695345c5ef914ffd
2020-02-11 19:06:38 +00:00
Ivan Lozano
0dbb324a83 Merge "Allow Linux hosts to use ubsan runtime sanitizers." 2020-02-11 18:37:17 +00:00
Automerger Merge Worker
470eb0caca Merge "Implement vendor snapshot" am: 705cd4600d am: 7f811dcd28 am: 144cbd9211
Change-Id: If142df7cecd1f2468df240d06c6cb9458ea9eadb
2020-02-11 00:27:29 +00:00
Treehugger Robot
705cd4600d Merge "Implement vendor snapshot" 2020-02-10 23:40:50 +00:00
Treehugger Robot
c17a04dbbb Merge "Add android.hardware.light-ndk_platform to vndkMustUseVendorVariantList" 2020-02-07 20:22:52 +00:00
Jiyong Park
678c881a4f <apex_name>-deps-info correctly tracks dependencies
The APEX dependency is more correctly tracked. Previously, the
dependency was tracked while we gather modules that will be installed to
an APEX. This actually was incorrect because we skipped many dependency
types that we don't need to follow to gather the modules list, such as
the headers dependency.

Now, the dependency is tracked directly when a module is mutated for an
APEX. In other words, if a module is mutated for an apex X, then the
module will appear in the X-deps-into.txt file.

This change also changes the format of the txt file. It now clearly
shows why a module is included in the APEX by showing the list of
modules that depend on the module.

Bug: 146323213
Test: m
Change-Id: I0a70cf9cce56e36565f9d55683fdaace8748a081
2020-02-07 18:53:12 +09:00
Automerger Merge Worker
87ca9098fa Merge changes I38fb22b2,I281bdefe,Ieaaa590c am: df51b061cd am: 4fb6707eeb am: d2a674a3f8
Change-Id: I764fa0c6293aa7676ed1a091061efb0f5af1d9c6
2020-02-07 04:30:04 +00:00
Colin Cross
df51b061cd Merge changes I38fb22b2,I281bdefe,Ieaaa590c
* changes:
  Add product_variables.native_coverage.src
  Fix product variables in defaults modules
  Fix product variable zero value check
2020-02-07 03:35:04 +00:00
Ivailo Karamanolev
876180cf36 Add android.hardware.light-ndk_platform to vndkMustUseVendorVariantList
aidl libs need to be differentiated because they explicitly set
different system/vendor stabilities.

Bug: 142230898
Test: make checkbuild
Change-Id: I1eb8b77a8e15f962eb6a352c87b1a43ca2160758
Merged-In: Ib09baa946faff8334f7c50568db5e6735dfbbfe2
2020-02-07 04:03:49 +01:00
Treehugger Robot
3b6791c2bc Merge "More cleanup of no-vendor-variant VNDK whitelist" 2020-02-07 02:15:03 +00:00
Colin Cross
eabaedd520 Fix product variables in defaults modules
Product variables structs are generated at runtime to contain only
the properties that apply to the current module.  Defaults modules
always contained all product variable properties. Defaults modules
apply their properties to the target module using
proptools.PrependProperties, which prepends structs that have
matching types.  Filtered property structs had a different type
and were dropped.

Even after adding filtering to the defaults product variable
properties, defaults modules may contain more property structs
than the target module they are applied to, so the product
variables struct for the defaults module could contain more
fields than the product variables struct for the target module.
Use proptools.PrependMatchingProperties when applying defaults
of product variables instead, which will apply matching properties
across types.

Test: defaults_test.go
Test: variable_test.go
Change-Id: I281bdefef92053457a3b7b65383493a4e7d999df
2020-02-06 17:43:29 -08:00
Jiyong Park
1fd192302c Merge changes from topic "apex_available"
* changes:
  shared_lib dependency from a static lib crosses the APEX boundary
  apex_available tracks static dependencies
2020-02-06 22:56:08 +00:00
Vic Yang
78792dcf45 More cleanup of no-vendor-variant VNDK whitelist
Bug: 148082691
Test: Build success
Change-Id: Icad28af29e80908c0d353f6fc70913678fd82064
Merged-In: Icad28af29e80908c0d353f6fc70913678fd82064
2020-02-06 11:14:33 -08:00
TreeHugger Robot
fc89d8f52d Merge "More cleanup of no-vendor-variant VNDK whitelist" 2020-02-06 19:10:25 +00:00
Inseob Kim
eec88e1de8 Add vendor snapshot modules
This implements four modules (static/shared/header libraries, and
binaries) for vendor snapshot. These modules will override source
modules if BOARD_VNDK_VERSION != current.

Bug: 65377115
Test: 1) VNDK_SNAPSHOT_BUILD_ARTIFACTS=true m dist vndk vendor-snapshot
Test: 2) install snapshot under source tree
Test: 3) set BOARD_VNDK_VERSION and boot cuttlefish
Change-Id: I24ddb4c3aa6abeab60bbfd31bcbd8753e2592dc5
2020-02-07 02:59:24 +09:00
Inseob Kim
8471cdaced Implement vendor snapshot
Vendor snapshot can be captured with "m dist vendor-snapshot". With
vendor snapshot and vndk snapshot, older version of /vendor and newer
version of /system will be able to be built together by setting
BOARD_VNDK_VERSION to past vendor's version.

Only vendor modules under AOSP are to be captured. In detail, modules
under following directories are ignored:
- device/
- vendor/
- hardware/, except for interfaces/, libhardware/, libhardware_legacy/,
  and ril/

Test modules (cc_test, etc.) and sanitized modules are also ignored.

Bug: 65377115
Test: m dist vendor-snapshot
Change-Id: If7a2f6de7f36deee936930c0ccf7c47c4a0cebf6
2020-02-07 02:58:29 +09:00
Ivan Lozano
dbc5000c5b Allow Linux hosts to use ubsan runtime sanitizers.
Linux host prebuilts for UBSan runtime are available now, so we can enable
these. There's a bit more work to be done for Windows/Darwin support, so
that's left to another CL.

Bug: 148289941
Test: Build host binary with integer overflow sanitization enabled.
Change-Id: I9b06a63da6f0d6644273085ad6ffd42677fa2baa
2020-02-06 09:59:34 -05:00
Automerger Merge Worker
c8626b3c39 Merge "Support missing a shared library variant." am: 9acd7c3d36 am: 4af7e2e09e am: 3203fefa3c
Change-Id: I0fadd06568c60f34e5e56b8724ca5412766b114f
2020-02-06 08:57:17 +00:00
Nicolas Geoffray
9acd7c3d36 Merge "Support missing a shared library variant." 2020-02-06 08:14:15 +00:00
Jiyong Park
d7536ba58d shared_lib dependency from a static lib crosses the APEX boundary
cc_library_static {
    name: "libfoo",
    shared_libs: ["libbar"],
}

cc_library {
   name: "libbar",
}

If libfoo is part of an APEX, then libbar is no longer considered as a
member of the APEX, because it isn't actually linked to libfoo.

To distinguish such a shared lib dependency from a static library from a
shared lib dependency from a shared library, a new dep type
SharedFromStaticDepTag is introduced. It is treated exactly the same as
SharedDepTag, except when we determine whether a dependency is crossing
the APEX boundary or not.

This allows us to check the apex_available property more correctly.
Previously, modules were incorrectly considered as being used for an
APEX due to the shared lib dependency from a static lib.

As a good side effect, this also reduces the number of APEX variants.
Specifically, on aosp_arm64, the number of the generated modules were
reduced from 44745 to 44180.

Exempt-From-Owner-Approval: cherry-pick from internal

Bug: 147671264
Test: m

Merged-In: I899ccb9eae1574effef77ca1bc3a0df145983861
(cherry picked from commit 931b676a69)
Change-Id: I899ccb9eae1574effef77ca1bc3a0df145983861
2020-02-06 14:45:43 +09:00
Jiyong Park
0f80c1848a apex_available tracks static dependencies
This change fixes a bug that apex_available is not enforced for static
dependencies. For example, a module with 'apex_available:
["//apex_available:platform"]' was able to be statically linked to any
APEX. This was happening because the check was done on the modules that
are actually installed to an APEX. Static dependencies of the modules
were not counted as they are not installed to the APEX as files.

Fixing this bug by doing the check by traversing the tree in the method
checkApexAvailability.

This change includes a few number of related changes:

1) DepIsInSameApex implementation for cc.Module was changed as well.
Previuosly, it returned false only when the dependency is actually a
stub variant of a lib. Now, it returns false when the dependency has one
or more stub variants. To understand why, we need to recall that when
there is a dependency to a lib having stubs, we actually create two
dependencies: to the non-stub variant and to the stub variant during the
DepsMutator phase. And later in the build action generation phase, we
choose one of them depending on the context. Also recall that an APEX
variant is created only when DepIsInSameApex returns true. Given these,
with the previous implementatin of DepIsInSameApex, we did create apex
variants of the non-stub variant of the dependency, while not creating
the apex variant for the stub variant. This is not right; we needlessly
created the apex variant. The extra apex variant has caused no harm so
far, but since the apex_available check became more correct, it actually
breaks the build. To fix the issue, we stop creating the APEX variant
both for non-stub and stub variants.

2) platform variant is created regardless of the apex_available value.
This is required for the case when a library X that provides stub is in
an APEX A and is configured to be available only for A. In that case,
libs in other APEX can't use the stub library since the stub library is
mutated only for apex A. By creating the platform variant for the stub
library, it can be used from outside as the default dependency variation
is set to the platform variant when creating the APEX variations.

3) The ApexAvailableWhitelist is added with the dependencies that were
revealed with this change.

Exempt-From-Owner-Approval: cherry-pick from internal

Bug: 147671264
Test: m

Merged-In: Iaedc05494085ff4e8af227a6392bdd0c338b8e6e
(cherry picked from commit fa89944c79)
Change-Id: Iaedc05494085ff4e8af227a6392bdd0c338b8e6e
2020-02-06 14:45:08 +09:00
Jiyong Park
931b676a69 shared_lib dependency from a static lib crosses the APEX boundary
cc_library_static {
    name: "libfoo",
    shared_libs: ["libbar"],
}

cc_library {
   name: "libbar",
}

If libfoo is part of an APEX, then libbar is no longer considered as a
member of the APEX, because it isn't actually linked to libfoo.

To distinguish such a shared lib dependency from a static library from a
shared lib dependency from a shared library, a new dep type
SharedFromStaticDepTag is introduced. It is treated exactly the same as
SharedDepTag, except when we determine whether a dependency is crossing
the APEX boundary or not.

This allows us to check the apex_available property more correctly.
Previously, modules were incorrectly considered as being used for an
APEX due to the shared lib dependency from a static lib.

As a good side effect, this also reduces the number of APEX variants.
Specifically, on aosp_arm64, the number of the generated modules were
reduced from 44745 to 44180.

Bug: 147671264
Test: m

Change-Id: I899ccb9eae1574effef77ca1bc3a0df145983861
2020-02-06 09:16:19 +09:00
Jiyong Park
fa89944c79 apex_available tracks static dependencies
This change fixes a bug that apex_available is not enforced for static
dependencies. For example, a module with 'apex_available:
["//apex_available:platform"]' was able to be statically linked to any
APEX. This was happening because the check was done on the modules that
are actually installed to an APEX. Static dependencies of the modules
were not counted as they are not installed to the APEX as files.

Fixing this bug by doing the check by traversing the tree in the method
checkApexAvailability.

This change includes a few number of related changes:

1) DepIsInSameApex implementation for cc.Module was changed as well.
Previuosly, it returned false only when the dependency is actually a
stub variant of a lib. Now, it returns false when the dependency has one
or more stub variants. To understand why, we need to recall that when
there is a dependency to a lib having stubs, we actually create two
dependencies: to the non-stub variant and to the stub variant during the
DepsMutator phase. And later in the build action generation phase, we
choose one of them depending on the context. Also recall that an APEX
variant is created only when DepIsInSameApex returns true. Given these,
with the previous implementatin of DepIsInSameApex, we did create apex
variants of the non-stub variant of the dependency, while not creating
the apex variant for the stub variant. This is not right; we needlessly
created the apex variant. The extra apex variant has caused no harm so
far, but since the apex_available check became more correct, it actually
breaks the build. To fix the issue, we stop creating the APEX variant
both for non-stub and stub variants.

2) platform variant is created regardless of the apex_available value.
This is required for the case when a library X that provides stub is in
an APEX A and is configured to be available only for A. In that case,
libs in other APEX can't use the stub library since the stub library is
mutated only for apex A. By creating the platform variant for the stub
library, it can be used from outside as the default dependency variation
is set to the platform variant when creating the APEX variations.

3) The ApexAvailableWhitelist is added with the dependencies that were
revealed with this change.

Bug: 147671264
Test: m

Change-Id: Iaedc05494085ff4e8af227a6392bdd0c338b8e6e
2020-02-06 09:16:19 +09:00
Vic Yang
f36dceef4d More cleanup of no-vendor-variant VNDK whitelist
Bug: 148082691
Test: Build success
Change-Id: Icad28af29e80908c0d353f6fc70913678fd82064
2020-02-05 15:21:55 -08:00
Automerger Merge Worker
020f3b8886 Merge "Dedup adding of arch/common properties to cc library snapshot" am: 26a6eb7971 am: af3948b120 am: f14a1746e5
Change-Id: Iaa2df6f64906251bf6434c3cff0fb50fb563c100
2020-02-04 23:32:30 +00:00
Paul Duffin
74fc190d90 Dedup adding of arch/common properties to cc library snapshot
Some additional, possibly arch specific, properties need adding to
cc library (e.g. recovery_available). This dedups and cleans up the
code involved to simply the addition of those new properties.

Bug: 142918168
Test: m nothing
Change-Id: I0963aa02e9504af1ae9b427ff1016e7c481465f4
2020-02-04 18:48:31 +00:00
Nicolas Geoffray
0b78766fbc Support missing a shared library variant.
When SOONG_ALLOW_MISSING_DEPENDENCIES is set, it should be OK to miss
shared library variants.

Test: master-art manifest, use bionic stubs
Bug: 142935992
Change-Id: Ie0054acfef7c4406594a87378a7029380a9fda50
2020-02-04 18:27:55 +00:00
Automerger Merge Worker
5af05cc080 Merge "Disable no-vendor-variant VNDK for CFI modules" am: 6cee077b0b am: 4e702abe65 am: 24f82725ab
Change-Id: Ic852d1d25cff79aa7d0574428ef84d62dc304de9
2020-02-03 21:44:09 +00:00
Vic Yang
6cee077b0b Merge "Disable no-vendor-variant VNDK for CFI modules" 2020-02-03 21:09:47 +00:00
Automerger Merge Worker
5426c89024 Merge "Switch to r370808b." am: ab2053ffab am: ee7726901a am: 1d6ab48772
Change-Id: I424662a5968b93d6a3e180db34a0631731f17d4f
2020-02-03 18:37:23 +00:00
Stephen Hines
ab2053ffab Merge "Switch to r370808b." 2020-02-03 18:06:41 +00:00
Automerger Merge Worker
a7f9df3c6c Merge "Fix writing module_bp_cc_deps.json" am: 4136c9b9ea am: 52010cc9c3 am: 4544d561d9
Change-Id: I0d4a8878946848f3bf851aa3cf412c65c9a013e5
2020-02-01 06:52:53 +00:00