Commit Graph

4188 Commits

Author SHA1 Message Date
Jooyung Han
f7f717875e Merge "Build VNDK APEX for VNDK-Lite" 2020-04-09 23:27:48 +00:00
Jooyung Han
73d20d086d Build VNDK APEX for VNDK-Lite
For VNDK-Lite devices, which doesn't define BOARD_VNDK_VERSION, VNDK
APEX is built with only VNDK-Sp libraries with core variants.

Bug: 141908078
Bug: 152353068
Bug: 151635128
Test: TH
Merged-In: I0d08d32473368fd158818d4c2c72fc4cfad68ce6
Change-Id: I0d08d32473368fd158818d4c2c72fc4cfad68ce6
(cherry picked from commit 65d8a6262c)

Exempt-From-Owner-Approval: cp from internal
Change-Id: I0d08d32473368fd158818d4c2c72fc4cfad68ce6
2020-04-09 23:27:25 +00:00
Julien Desprez
0eb91f4e91 Merge "Add support for order-only dependencies to RuleBuilder" into rvc-dev 2020-04-09 18:56:01 +00:00
Yi Kong
85d5968c92 Merge "Pass -Brepro ldflag to Windows builds" am: 2ae41725b5 am: 824cfb7f25
Change-Id: I233e118666c941b452434709d76c7be1d9d8a9fa
2020-04-09 17:10:31 +00:00
Automerger Merge Worker
82f316b8db Add support for order-only dependencies to RuleBuilder
Test: TestRuleBuilder
Change-Id: I1609a790dd4d0a03c8308b6e552622fe33fa2499
Bug: 153071808
Merged-In: Icfa98d6840b1dc2e273ba29c33011635d1cf93b1
2020-04-09 08:17:32 -07:00
Yi Kong
a3c22e7ee2 Pass -Brepro ldflag to Windows builds
The default build-id is generated using timestamp. Pass -Brepro to
avoid using timestamp for deterministic build.

Bug: 153462962
Test: build fastboot.exe twice, got same shasum
Change-Id: I38fe993eec23c60bfcf1b76188774bfe06839fa4
2020-04-09 15:53:11 +08:00
Jooyung Han
aed150d6ed Apex: support codenames for min_sdk_version
Apex can use codenames like "Q", "R" for its min_sdk_version property.
Also, cc_library can use codenames for its stubs.versions.

Bug: 152655956
Test: m
Merged-In: I077ad7b2ac5d90b4c8708921e43846206f05ba70
Change-Id: I077ad7b2ac5d90b4c8708921e43846206f05ba70
(cherry picked from commit 29e91d2121)
2020-04-09 16:04:17 +09:00
Jooyung Han
784472dfb8 Merge "Remove PLATFORM_VERSION_FUTURE_CODENAMES" into rvc-dev am: 045f3db022
Change-Id: I220ce66b3ed924dda7f4e68b716463893a9156e7
2020-04-08 23:56:21 +00:00
Chih-hung Hsieh
d4262977d4 Merge "Disable bugprone-reserved-identifier" am: 88a7176174 am: 8fd48a2b4b
Change-Id: I74bb709c4ca9df981bcd2e1ceaae4c85c44f97c8
2020-04-08 22:55:26 +00:00
Chih-hung Hsieh
88a7176174 Merge "Disable bugprone-reserved-identifier" 2020-04-08 22:29:26 +00:00
Colin Cross
c27185cd72 Merge "Revert^2 "Add sdk mutator for native modules"" am: ff550f3e13 am: 7af7725de1
Change-Id: I9a947c10e593f7b1647440acca4de08952e7928e
2020-04-08 18:42:10 +00:00
Colin Cross
ff550f3e13 Merge "Revert^2 "Add sdk mutator for native modules"" 2020-04-08 18:29:30 +00:00
Stephen Hines
e628a9328c Merge "Switch to clang-r377782d (10.0.6)." am: 719ea2b849 am: 3a2291f125
Change-Id: I0102545dc2a05b59d1b746ff8dc78f0c6af6d55e
2020-04-08 18:11:54 +00:00
Chih-Hung Hsieh
3d3df826c1 Disable bugprone-reserved-identifier
* Disable it for the next clang compiler update
  until all source files with this warning are fixed.

Bug: 153464409
Test: WITH_TIDY=1 make
Change-Id: I126d2f5170f3883192348577e523ef99f5c5a70e
2020-04-08 10:42:16 -07:00
Stephen Hines
883a0fdfd9 Switch to clang-r377782d (10.0.6).
Bug: http://b/153164546
Test: Built aosp_blueline successfully. Kernel also verified without
needing workarounds from LLD crash.

Change-Id: I41ae5a5be0065da98dd941b16196a3f4888b86b1
2020-04-08 02:22:57 -07:00
Jooyung Han
424175d72a Remove PLATFORM_VERSION_FUTURE_CODENAMES
It has been wrong to split ALL_VERSIONS into exclusive two sets of
before/after TARGET_PLATFORM_VERSION.

And PLATFORM_VERSION_ALL_CODENAMES supports all *active* list of
non-finalized codenames.

Bug: 152960049
Test: m
Change-Id: I78ca88758998e440bea72ba2d56d90eea3ec99ae
2020-04-08 09:25:20 +09:00
TreeHugger Robot
ee42b2079d Merge "Support arch variant for data attribute" into rvc-dev 2020-04-07 22:08:45 +00:00
Automerger Merge Worker
0f2c0ad8c3 Support arch variant for data attribute
Bug: 143220441
Test: atest VtsHalDrmV1_2TargetTest
Change-Id: I2381f78b486852da267caa363b4c4cb5660c9055
Merged-In: I2381f78b486852da267caa363b4c4cb5660c9055
2020-04-07 12:52:22 -07:00
Jooyung Han
72e5c957d4 Merge "Build VNDK APEX for VNDK-Lite" into rvc-dev am: 3978d03fb7
Change-Id: Idfbf9f998c7a8228a8b873274a91bca72b9f71f5
2020-04-07 17:06:56 +00:00
Colin Cross
c511bc50dc Revert^2 "Add sdk mutator for native modules"
f8e80229fe

Change-Id: Ic30ab6b844684bfc3e8ece5a1913980d5fbf8de2
2020-04-07 16:50:32 +00:00
Jooyung Han
3978d03fb7 Merge "Build VNDK APEX for VNDK-Lite" into rvc-dev 2020-04-07 16:49:39 +00:00
Treehugger Robot
2271f611c0 Merge "Do not propagate the stub symbol file to prebuilts." am: 046280147e am: aeae600d81
Change-Id: I2edd3a881429c5ad1df840c6dcae7a39182c5b74
2020-04-07 13:19:10 +00:00
Colin Cross
4afb560a76 Merge "Revert "Add sdk mutator for native modules"" am: d66b121000 am: 193bdf5784
Change-Id: Id45f244ee8a091e31be765b48f3e173bbf6d00fd
2020-04-07 04:57:37 +00:00
Colin Cross
d66b121000 Merge "Revert "Add sdk mutator for native modules"" 2020-04-07 04:25:34 +00:00
Colin Cross
f8e80229fe Revert "Add sdk mutator for native modules"
Revert submission 1242911-sdk_version_variant

Reason for revert: b/153394225
Reverted Changes:
Ife99745fb:Use libnativewindow for platform variant of libagq...
I1bae84c43:Use libnativewindow for platform variant of androi...
I6e6021ed3:Use stl to depend on libc++
Ife99745fb:Use libnativewindow for platform variant of libRSS...
I2c9f439b9:Fix static dependency on libprotobuf-cpp-lite-ndk
Iff2aff9cf:Set sdk_version for cc_genrules used by modules wi...
I7d72934aa:Add sdk mutator for native modules
Ief378a007:Use sdk variant of Soong modules when LOCAL_SDK_VE...

Bug: 149591340
Change-Id: I798fa902c779469c6382b6699351e5d12bf14785
Fixes: 153394225
2020-04-07 04:21:21 +00:00
Colin Cross
365d94c660 Merge "Add sdk mutator for native modules" am: f5d6756a35 am: 0cc91697fe
Change-Id: I96646663a8455e7a4e8184e0a2db6b22b11b75e3
2020-04-07 02:35:40 +00:00
Colin Cross
f5d6756a35 Merge "Add sdk mutator for native modules" 2020-04-07 01:52:11 +00:00
Martin Stjernholm
bdd0dffc1b Do not propagate the stub symbol file to prebuilts.
This partially reverts https://r.android.com/1278193. The propagated
symbol files contain all versions, even though only one is applicable
in a given SDK snapshot.

It's uncertain what repercussions this might have, but one is that if
we were to update a snapshot for a fixed version then it might change
because the symbol file contains new versions that aren't applicable.
Since the symbol file isn't actually needed at this point it's better
to wait with this step until the use cases for it are more clear.

Test: m nothing
Test: Create an SDK snapshot with Bionic libs, drop it into a
  master-art tree without bionic/ in it, build ART APEXes, and check
  that the Soong phase completes (specifically that the stubs are
  detected even without symbol files).
Bug: 152481980
Change-Id: Ic79f89bc6d11d0b6552fa20791f5680ff9a40c0d
2020-04-06 23:03:53 +01:00
Treehugger Robot
678c8de79c Merge changes from topic "no_whitelisting_apex_available" am: b9e4a3fdf4 am: bf4bc941a2
Change-Id: Ife369d5943e70b4d5a6836ca19d514dd1c38d658
2020-04-05 09:51:31 +00:00
Treehugger Robot
b9e4a3fdf4 Merge changes from topic "no_whitelisting_apex_available"
* changes:
  Remove some apex_available whitelist for the adbd APEX
  Make ndk_prebuilt_* be available to any apex
2020-04-05 09:10:47 +00:00
Jooyung Han
7e62fbe8e1 Merge "Apex: support codenames for min_sdk_version" into rvc-dev am: 95148f607e
Change-Id: Ib64f83d89dd7adeafa2b42bc81c7dd012fe13ff8
2020-04-05 00:32:30 +00:00
Jooyung Han
95148f607e Merge "Apex: support codenames for min_sdk_version" into rvc-dev 2020-04-05 00:14:37 +00:00
Stephen Hines
c1de1977a0 Clean up unused flags for LLD.
Since Android only uses LLD, we shouldn't be default adding flags that
just get stripped by a later pass such as:

-Wl,-m,aarch64_elf64_le_vec
-fuse-ld=gold

Remaining query for `-fuse-ld=gold`:
https://source.corp.google.com/search?q=%5C-fuse-ld%3Dgold%20file:.*%5C.(bp%7Cmk%7Cgo)&sq=package:%5Eandroid$
Remaining query for `elf64_le_vec`:
https://source.corp.google.com/search?q=elf64_le_vec%20file:.*%5C.(bp%7Cmk%7Cgo)&sq=package:%5Eandroid$

Bug: http://b/148819762
Test: Built aosp_blueline
Change-Id: I4e064a1e3e0c54721f3f08af8d717f28f6d348f8
2020-04-03 20:18:17 -07:00
Treehugger Robot
4c76d9f9e0 Merge "Minor refactoring to put mock filesystem init closer to tests." am: 3d568ddd34 am: d7be8455c8
Change-Id: Id71e1a5ddc403cffe5262f325ec80835d348b6af
2020-04-03 17:28:28 +00:00
Treehugger Robot
9db9599fdd Merge "Propagate stubs to the SDK for libraries that have them." am: 237690224e am: 77a6c1d43b
Change-Id: I374853e8ef26118e38ba737c90bba3489660728e
2020-04-03 17:28:21 +00:00
Treehugger Robot
3d568ddd34 Merge "Minor refactoring to put mock filesystem init closer to tests." 2020-04-03 17:03:16 +00:00
Treehugger Robot
237690224e Merge "Propagate stubs to the SDK for libraries that have them." 2020-04-03 17:03:12 +00:00
Yi Kong
e6a9e64f70 Add platform-wide sampling PGO option
This causes the compiler to emit some additional debug infomation that
will be used for sampling PGO. These debug infomation will get stripped
so it only affects intermediate files.

Test: build
Bug: 79161490
Bug: 153039105
Change-Id: Ie4d1d5ffbd311ba6e268cb94a618f5272be246ef
Merged-In: Ie4d1d5ffbd311ba6e268cb94a618f5272be246ef
(cherry picked from commit ceb5b76c91)
2020-04-03 12:00:04 +00:00
Jiyong Park
ea97f51a29 Don't allow a lib having stubs to become a member of VNDK
If a lib has stubs, that means the library provides stable C APIs and
the APIs are guaranteed to be maintained in a backwards compatible
manner. Then there is no reason to have the same library in VNDK,
because VNDK is for libraries (usually having C++ interfaces) where API
stability across the yearly releases is hard (or impossible) to be
guaranteed.

This change triggers an error when the build system finds a VNDK lib
which has stubs defined. Users are suggested to make the lib an LLNDK
one.

Bug: 151303316
Test: m
Change-Id: Id305196a9d5a6fc7e7f9c02f3fa076859dc9a282
2020-04-03 05:57:38 +00:00
Dan Willemsen
2071132e99 Fix long mac test times; only initialize host settings once
It looks like sometime in late February our Mac builds started taking
~10 minutes longer than before. On my local workstation the Soong tests
were taking >25 minutes before completing (likely because I don't have
the older SDKs installed, and we iterate from older to newer to find the
oldest installed SDK).

Most of this time was spend running the `xcrun` tools to interrogate the
system about which Mac SDKs are installed and where the tools are. This
will never change during any build or test, so wrap it all in a
sync.Once so that we only ever call them once.

And remove the macSdkPath variable, which has been unused for years and
no longer works (as we don't allow the use of xcode-select during the
build).

Bug: 153010389
Test: prebuilts/build-tools/build-prebuilts.sh on a Mac
Change-Id: I39b2d49739e628e4c11bec4805b25039115d2fd0
Merged-In: I39b2d49739e628e4c11bec4805b25039115d2fd0
(cherry picked from commit 6ba5367a70)
2020-04-02 14:53:36 -07:00
Martin Stjernholm
adeb088c8b Minor refactoring to put mock filesystem init closer to tests.
Test: m nothing
Change-Id: I39449b52d39d8e4351ff5a193df5804f281a017f
2020-04-02 22:39:12 +01:00
Martin Stjernholm
c5dd4f7c1f Propagate stubs to the SDK for libraries that have them.
Necessary to make the APEX build logic treat the libraries as API
boundaries rather than dependencies to bundle.

The .so files in the snapshots are the compiled stub libraries in this
case. They are strictly speaking redundant since they can be generated
from the .map.txt files in the snapshots, but doing that would require
extending the cc_prebuilt_library(_shared) module types with a full
compiler pass etc, and that would break a lot of assumptions in the cc
package.

Test: m nothing
Test: Create an SDK snapshot with Bionic libs, drop it into a
  master-art tree without bionic/ in it, build ART APEXes, and check
  that the Soong phase completes (specifically no errors about various
  APEX libs requiring libc that is not available to them).
Bug: 152481980
Change-Id: I31b928e6261198b6dd6f6b17196e714f07b64172
2020-04-02 22:39:12 +01:00
Jooyung Han
29e91d2121 Apex: support codenames for min_sdk_version
Apex can use codenames like "Q", "R" for its min_sdk_version property.
Also, cc_library can use codenames for its stubs.versions.

Bug: 152655956
Test: vendor/google/build/build_mainline_modules.sh
Change-Id: I077ad7b2ac5d90b4c8708921e43846206f05ba70
2020-04-02 23:26:41 +09:00
Treehugger Robot
c7917b522a Merge "Fix long mac test times; only initialize host settings once" am: 131db09396 am: f4669bc1f2
Change-Id: Ie55eac9535a07039c5f46358bac9992cba208b33
2020-04-02 04:21:07 +00:00
Treehugger Robot
131db09396 Merge "Fix long mac test times; only initialize host settings once" 2020-04-02 03:50:59 +00:00
Jooyung Han
7556839772 Enforce apex.min_sdk_version for bundled builds
Previously, when Q-targeting apexes are bundled-built, they are built
against the latest stubs.

It was because unwinder is linked dynamically in R and APIs are provided
by libc while Q apexes should run on Q where libc doesn't provide those
APIs. To make Q apexes run on Q device, libc++ should be linked with
static unwinder. But, because libc++ with static unwinder may cause problem
on HWASAN build, Q apexes were built against the latest stubs for bundled
build.

However, Q apexes should be built against Q stubs.

Now, only for HWASAN builds, Q apexes are built against the latest stubs
(and native modules are not linked with static unwinder).

Bug: 151912436
Test: TARGET_SANITIZE=hwaddress m
      => Q apexes(media, resolv, ..) are linked with the latest stubs
      m
      => Q apexes are linked with Q stubs,
         and Q apexes' libc++ is linked with static unwinder
Merged-In: If32f1b547e6d93e3955c7521eec8aef5851f908c
Change-Id: If32f1b547e6d93e3955c7521eec8aef5851f908c
(cherry picked from commit 7406660685)

Exempt-From-Owner-Approval: cp from internal
Change-Id: If32f1b547e6d93e3955c7521eec8aef5851f908c
2020-04-02 03:34:30 +00:00
Colin Cross
82e192c3ae Add sdk mutator for native modules
Compiling native modules against the NDK disables platform features
like ASAN.  For anything shipped on the system image there is no
reason to compile against the NDK.  Add a new mutator to Soong that
creates a platform and an SDK variant for modules that set
sdk_version, and ignore sdk_version for the platform variant.  The
SDK variant will be used for embedding in APKs that may be installed
on older platforms.  Apexes use their own variants that enforce
backwards compatibility.

Test: sdk_test.go
Test: TestJNIPackaging
Bug: 149591340
Change-Id: I7d72934aaee2e1326cc0ba5f29f51f14feec4521
2020-04-01 16:09:05 -07:00
Dan Willemsen
6ba5367a70 Fix long mac test times; only initialize host settings once
It looks like sometime in late February our Mac builds started taking
~10 minutes longer than before. On my local workstation the Soong tests
were taking >25 minutes before completing (likely because I don't have
the older SDKs installed, and we iterate from older to newer to find the
oldest installed SDK).

Most of this time was spend running the `xcrun` tools to interrogate the
system about which Mac SDKs are installed and where the tools are. This
will never change during any build or test, so wrap it all in a
sync.Once so that we only ever call them once.

And remove the macSdkPath variable, which has been unused for years and
no longer works (as we don't allow the use of xcode-select during the
build).

Bug: 153010389
Test: prebuilts/build-tools/build-prebuilts.sh on a Mac
Change-Id: I39b2d49739e628e4c11bec4805b25039115d2fd0
2020-04-01 14:44:58 -07:00
Jooyung Han
d15e45afc1 Merge "Enforce apex.min_sdk_version for bundled builds" into rvc-dev am: 42d7718086
Change-Id: Ic8e957c4f52542b39a3a6b5f9e8d3f910fe61ca8
2020-04-01 15:52:33 +00:00
Jooyung Han
42d7718086 Merge "Enforce apex.min_sdk_version for bundled builds" into rvc-dev 2020-04-01 15:37:23 +00:00