Commit graph

3956 commits

Author SHA1 Message Date
Jooyung Han
c3e9263d7e Pass min_sdk_version to cc __ANDROID_SDK_VERSION__
The macro is required only for apex variants regardless of useVndk.
Before the enforcement of LLNDK sdk version, the macro was not passed to
vendor variants.

Bug: 151689896
Test: TARGET_BUILD_APPS=com.android.media.swcodec m
      libbase in swcodec apex is linked with liblog#29
      (compiled with __ANDROID_SDK_VERSIO__=29)

Merged-In: I57fa4afe027eb39b98bd94d534be9ebe11713f19
Change-Id: I57fa4afe027eb39b98bd94d534be9ebe11713f19
(cherry picked from commit 24282778ee)

Exempt-From-Owner-Approval: cp from aosp
2020-03-25 23:23:26 +00:00
Jooyung Han
67a96cd7cb Enforce min_sdk_version of apex(use_vendor:true)
Even though use_vendor:true is prohibited, there is media.swcodec apex
which is still use_vendor: true and also needs to support Android10.
(min_sdk_version: 29)

Because LLNDK stubs were provided only for the current VNDK version,
media.swcodec couldn't be built against min_sdk_version: 29.

This change introduces additional versions for LLNDK stubs which are
enforced when an apex with use_vendor: true sets min_sdk_version.

To make things easier, the versions of LLNDK stubs are borrowed from its
implementation libraries.

Bug: 147450930
Bug: 149591522
Test: TARGET_BUILD_APPS=com.android.media.swcodec m
      (with min_sdk_version: 29 set)
      check if liblog/libc/libm/libdl stubs are 29
      check if 29 stubs don't have new symbols.

Merged-In: I79946cbb4da6617138a96d2b254349d3a298e77b
Change-Id: I79946cbb4da6617138a96d2b254349d3a298e77b
(cherry picked from commit 380fc3615c)
2020-03-25 10:40:41 +09:00
Jooyung Han
89124ba39b cc: fix a utility to make C macro name
Use the result of regex.ReplaceAllString()

Bug: 149591522 (not directly related to this)
Test: m (with new unit test)
Merged-In: Ifce07547ccc067f1ee5bd8467c2fb7d7f8387b8e
Change-Id: Ifce07547ccc067f1ee5bd8467c2fb7d7f8387b8e
(cherry picked from commit b04a4997b8)
2020-03-25 10:40:24 +09:00
Yabin Cui
690c8b8b5e Switch from clang-r377782b to clang-r377782c.
Bug: 149849077
Test: N/A
Change-Id: Id8b5dd13e87d1acd8dab1431fa6859721553c49c
(cherry picked from commit 3125c990ed)
2020-03-20 11:17:30 -07:00
TreeHugger Robot
bed2ac5dd6 Merge "Fix vndk snapshot suffix on Makefile" into rvc-dev 2020-03-19 01:27:33 +00:00
Jooyung Han
61c4154ca6 Add __ANDROID_SDK_VERSION__=<ver> macro
sdk_version is passed for relevant variants.
If not specified or "current",
it maps to "10000" for platform variants, and
"min_sdk_version" of the apex for apex variants.

Bug: 150860940
Test: m (soong test)
      manually check build.ninja
Merged-In: I5102ab0c5086b5ad29d16ac45af55d32062167b4
Change-Id: I5102ab0c5086b5ad29d16ac45af55d32062167b4
(cherry picked from commit ccce2f2c23)

Exempt-From-Owner-Approval: cp from aosp
2020-03-16 16:07:07 +00:00
Jooyung Han
68e511e4fd Make __ANDROID_APEX_<NAME>__ macro optional
This is rarely used feature but cost alot for the local build and build
inra.

Bug: 150506627
Test: m
Merged-In: Iec3ada4a97c7b228f2818563fa0e81b407f2715a
Change-Id: Iec3ada4a97c7b228f2818563fa0e81b407f2715a
(cherry picked from commit c87a059c88)

Exempt-From-Owner-Approval: cp from aosp
2020-03-16 16:06:31 +00:00
Inseob Kim
7ac1fa7823 Fix vndk snapshot suffix on Makefile
When exporting Soong modules to Makefile, each VNDK snapshot module
whose version is BOARD_VNDK_VERSION has ".vendor" suffix. So makeLibName
should also return ".vendor", not the full vndk snapshot suffix like
".vndk.29.arm64.vendor".

Bug: 151274994
Test: manual build with snapshot
Change-Id: I48f606f90f6c5ca55d0a5bc29bad491c38a44f47
2020-03-14 01:30:34 +09:00
Ivan Lozano
9d790c78da Disable CFI only on incompatible variants.
Only disable CFI on incompatible variants rather than the base module.

Bug: 142157676
Test: Manual llvm-cfi-verify checks
Change-Id: I999e1dbcccc1ffb102b2fe01c47f1bda4df5e601
Merged-In: I999e1dbcccc1ffb102b2fe01c47f1bda4df5e601
(cherry picked from commit 4774a81c0f)
2020-03-13 11:59:07 -04:00
Ivan Lozano
0ad6ef5d9b Merge "Fix UBSanitized host binaries missing runtime." into rvc-dev 2020-03-13 15:52:47 +00:00
Jooyung Han
159aebf639 Add version suffix for stub modules' Android.mk
Becase there can be more than one stub libraries, LOCAL_MODULE should be
suffixed with SubName just like NDK stub.

Note that suffix should not be appended to the latest version if the
library is provided by APEX, Otherwise, those libs always need to be
referenced with suffix in .mk files.

Bug: 145796956
Test: m
Merged-In: If503fa651a63b0b215742553b250ecf5e0a30971
Change-Id: If503fa651a63b0b215742553b250ecf5e0a30971
(cherry picked from commit ad4c18765e)

Exempt-From-Owner-Approval: cherry-pick from aosp
2020-03-13 06:42:30 +00:00
Ivan Lozano
fadd6358c1 Fix UBSanitized host binaries missing runtime.
Host binaries by default use the UBSan runtime whether or not
diagnostics are requested in the module definition. The rest of the code
assumes the runtime is only needed when diag properties are set.

This makes sure to add the runtime to the dependency graph of host
binaries that are UBSanitized.

Bug: 150336284
Test: ./art/tools/dist_linux_bionic.sh com.android.art.host
Test: runtime appropriately identified as a dependency of libziparchive
Change-Id: I2704aaba4abc7f4e6d96747917c77b5147fd1d56
Merged-In: I2704aaba4abc7f4e6d96747917c77b5147fd1d56
(cherry picked from commit f3b190f8e7)
2020-03-12 14:14:27 -04:00
Jooyung Han
0c4e016428 apex: choose stub according to min_sdk_version
Native modules within APEX should be linked with proper stub version
according to its min_sdk_version.

For example, when min_sdk_version is set to "29", libfoo in the apex
would be linked to libbar of version 29 from platform, even if it has
a newer version like 30.

Bug: 145796956
Test: m nothing (soong tests)
Merged-In: I4a0b2002587bc24b7deeb5d59b6eeba5e1db5b1f
Change-Id: I4a0b2002587bc24b7deeb5d59b6eeba5e1db5b1f
(cherry picked from commit 03b5185b88)

Exempt-From-Owner-Approval: got ORV already.
2020-03-12 14:07:05 +00:00
Jiyong Park
9f14b9b5df Runtime deps to a stubs lib crosses APEX boundary
When there is a runtime depedency (via runtime_libs property) to a
library providing stable C APIs, the dependency is considered as
crossing APEX boundary. Therefore, the requested lib doesn't need to be
made available to the APEX where the requesting lib is in.

Exempt-From-Owner-Approval: cherry-pick from aosp, approved there.

Bug: 147813447
Test: m
Merged-In: I9cf8a5877850fb85b92c851e15fac921b8b7641b
(cherry picked from commit 323a4c3ab3)
Change-Id: I9cf8a5877850fb85b92c851e15fac921b8b7641b
2020-03-12 03:28:54 +00:00
TreeHugger Robot
765ccd021f Merge "Convert cc to AndroidMkEntries" into rvc-dev 2020-03-06 17:13:29 +00:00
Colin Cross
dc7319df2b Convert cc to AndroidMkEntries
Use AndroidMkEntries so the next patch can use ExtraFooters, which
doesn't exist in AndroidMkData.

Bug: 149591522
     the bug is not exactly related to this change, but it is the bug
     that the follow-up changes are trying to fix.
Test: manually diff out/soong/Android.aosp_x86_64.mk
Merged-In: Ia3006b6747813693cf7e2b536030b21f3109f538
Change-Id: Ia3006b6747813693cf7e2b536030b21f3109f538
(cherry picked from commit d80cbca76d)
2020-03-05 14:40:43 +09:00
Inseob Kim
ac775b2a0f Capture snapshot headers in parallel
VNDK and vendor snapshot singleton work in a single thread, so globbing
in singleton results in ridiculus running time. Moving codes to
GenerateAndroidBuildActions to reduce running time.

Bug: 150406226
Test: VNDK_SNAPSHOT_BUILD_ARTIFACTS=true m dist vndk vendor-snapshot
Test: vendorSnapshotSingleton build time became 0.56s (from 10s)
Test: build.ninja building time became 1m11s (from 1m21s)
Change-Id: I4a081eef5847c62ca00280ca426f5b4e10f87b59
Merged-In: I4a081eef5847c62ca00280ca426f5b4e10f87b59
(cherry picked from commit eda2e9c728)
2020-03-05 09:36:31 +09:00
Justin Yun
98df0d1c63 Enable vndk-ext for product variants
To build vndk-ext for product variants use `vndk.extends` property
with `product_specific: true` as for the vndk-ext for vendor
variants. For example:
cc_library {
    name: "libvndk_ext_product",
    product_specific: true,
    vndk: {
        enabled: true,
        extends: "libvndk",
    },
}

It will install the vndk-ext libs for product variants in
product/lib[64]/vndk/

Test: m nothing
Bug: 147778025
Change-Id: If1ee5be93c579abad302f44f18e6316f27e70019
Merged-In: If1ee5be93c579abad302f44f18e6316f27e70019
(cherry picked from commit 0ecf0b223f)
2020-03-04 04:37:02 +00:00
Ivan Lozano
c352e3e875 Add -z separate-code to default ARM64 device flags
Removing XOM had the side effect of removing "-z separate-code", which
was needed to override a new default after a recent toolchain update.
This led to some performance regressions in some tests. For now, add
this flag to the global arm64 device flags to return to the previous
behavior.

Bug: 150506341
Test: m -j
Change-Id: I26a93deb17868103eaa4b87bd7bb8416f3adbc7f
Merged-In: I54787954141d133e245dfd259a37bf4c3c8e7caa
(cherry picked from commit c80bbb46b1)
2020-03-03 14:39:35 -05:00
Automerger Merge Worker
aafbe3ab60 Merge "Allow Linux hosts to use ubsan runtime sanitizers." am: 61f7a24cea am: 10d46c9a54 am: d06e0974ce
Change-Id: I216706ee0a8fea5c496485784794006c562f0c42
2020-02-21 21:59:32 +00:00
Ivan Lozano
61f7a24cea Merge "Allow Linux hosts to use ubsan runtime sanitizers." 2020-02-21 21:16:17 +00:00
Automerger Merge Worker
7eaafe07cf Merge "Ensure consistent handling of generated headers/dirs" am: a0d58893fc am: 44242ee450 am: 4d54a5a580
Change-Id: I66ccacab3c2f411afdad5f91cd243b66ad519456
2020-02-21 09:06:19 +00:00
Treehugger Robot
a0d58893fc Merge "Ensure consistent handling of generated headers/dirs" 2020-02-21 08:19:33 +00:00
Automerger Merge Worker
7e83a01a1d Merge "Add static_libs field to target.vendor" am: 5c50e7f7c4 am: f789eab3c5 am: dc7dc18251
Change-Id: I398d0b8b2b66794b0fafba8688ba75f950ff1550
2020-02-21 04:38:44 +00:00
Treehugger Robot
5c50e7f7c4 Merge "Add static_libs field to target.vendor" 2020-02-21 03:57:05 +00:00
Chong Zhang
ed5c14632a Add static_libs field to target.vendor
test: builds with a local Android.bp that uses target.vender.static_libs

Change-Id: Id1b70660ccab26025c280497916929d303d16aff
2020-02-20 15:21:38 -08:00
Chih-hung Hsieh
78620004fc Merge "Enable bitwise-conditional-parentheses warning" 2020-02-20 21:55:28 +00:00
Paul Duffin
5efd1985d1 Ensure consistent handling of generated headers/dirs
The list of exported generated headers are all expected to be within
one of the exported generated include dirs. Previously, that was not
the case as ExportedGeneratedIncludeDirs was suitable for extracting
to common properties (which changes the output location) and
exportedGeneratedHeaders was not.

This would cause a problem if there was only one variant. In that case
the ExportedGeneratedIncludeDirs would be treated as a common property
and placed in include_gen/<x> directory while exportedGeneratedHeaders
would be treated as an arch specific property and placed in
<arch>/include_gen/<x>.

Bug: 142935992
Test: m nothing
Change-Id: Idf82a5ca551b44ec31971c7ff3bd957a4c38f396
2020-02-20 21:52:02 +00:00
Automerger Merge Worker
96574500db Merge changes from topic "soong_tests_ndk" am: 53fe467c67 am: 563533c0e6 am: 56f90a17fe
Change-Id: Ia267936ad071f362b92a788fb49b1dcb2ae44d3f
2020-02-20 21:36:00 +00:00
Automerger Merge Worker
2f4e3cc276 Move NDK test modules into cc/testing.go am: f28329de73 am: 8a9806b3b1 am: 09bb178aea
Change-Id: I84af2424f82cf9bdfbeefb1b54d96107c930a71e
2020-02-20 21:35:57 +00:00
Automerger Merge Worker
56f90a17fe Merge changes from topic "soong_tests_ndk" am: 53fe467c67 am: 563533c0e6
Change-Id: I0e2cbd23cf3471129102c850c987a6c9f20590a2
2020-02-20 21:23:29 +00:00
Automerger Merge Worker
09bb178aea Move NDK test modules into cc/testing.go am: f28329de73 am: 8a9806b3b1
Change-Id: I68825d36d7bf849b7c10d43ce5e12b94d87a7a5c
2020-02-20 21:23:27 +00:00
Ivan Lozano
9ac32c7674 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.
Test: ./art/test/testrunner/run_build_test_target.py art-linux-bionic-x64

Change-Id: Ie98979116fa3bb8accb23d1788adcc28330a9530
2020-02-20 20:27:35 +00:00
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