Commit Graph

6123 Commits

Author SHA1 Message Date
Rupert Shuttleworth
095081c6d7 Add bp2build support for cc_library_static.
Also refactor bp2build-related code for cc_library_headers.

(Retry of previous CL after the presubmit failed to detect a merge conflict)

Test: Added unit test.

Test: bp2build-sync.py write; bazel build //bionic/... still works (but bp2build is disabled for most cc_library_static targets for other reasons)
Change-Id: I2f4405c2fea305623bbc6daaaf62808b0c074216
2021-03-25 15:16:11 +00:00
Paul Duffin
db462dd987 Disallow non-existent paths in sdk package
Test behavior was changed a while ago so that tests by default ignore
non-existent source paths (unless they explicitly check for/rely on
them). Prior to that CheckSnapshot() could detect when files were
missing from the snapshot but it no longer can.

This change disallows non-existent source files in all the sdk tests
which means that they are disallowed when processing the snapshots as
they use the same preparers as were used to process the sources.

This caused a test failure which has been temporarily ignored and has
a TODO and bug associated with it.

Bug: 183184375
Test: m nothing
Change-Id: I969d8515d20ef5ae515f2b5f93d8ed4e4f8ede75
2021-03-25 12:53:22 +00:00
Treehugger Robot
9cacf2e311 Merge "Enable safe ICF for all devices" am: f7e79a591c am: 660e778db6 am: ef42232afb
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1649333

Change-Id: I1e1eb1e3b82b2ff1f59f01fac59049cdf6e581cf
2021-03-25 10:52:47 +00:00
Treehugger Robot
f7e79a591c Merge "Enable safe ICF for all devices" 2021-03-25 08:59:00 +00:00
Jingwen Chen
7c8de8545d Merge "Revert "Add bp2build support for cc_library_static."" am: 8b086655cd am: 1763a4add1 am: 8729dfc636
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1652233

Change-Id: I6e5d18b5ec499179cbe167bce7702bb0d51b2c5d
2021-03-25 08:08:45 +00:00
Rupert Shuttleworth
1b5200cb4f Merge "Add bp2build support for cc_library_static." am: d3e10104b0 am: 76d01a0522 am: ce8062d357
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1594371

Change-Id: I36cb39f43847e2a4a56bce6920a2f304ebf2df0a
2021-03-25 08:08:31 +00:00
Jingwen Chen
8b086655cd Merge "Revert "Add bp2build support for cc_library_static."" 2021-03-25 06:14:03 +00:00
Jingwen Chen
f9410540a8 Revert "Add bp2build support for cc_library_static."
Revert submission 1594391-bp2build-cc_library_static

Reason for revert: Broke the build on aosp-master
Reverted Changes:
Ib16ccf31a:Add cc_library_static macro to help with bp2build ...
I37c856be2:Add bp2build support for cc_library_static.

Change-Id: Ie94d5bc6da81758cd4e0461c08a810a29643c971
2021-03-25 06:11:59 +00:00
Rupert Shuttleworth
d3e10104b0 Merge "Add bp2build support for cc_library_static." 2021-03-25 05:39:39 +00:00
Jingwen Chen
a6a6d1acb6 Merge "bp2build: add allowlist for package-level conversions." am: 95c6eb3959 am: cf615d8640 am: a7b2d95cf6
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1625820

Change-Id: I57f618c5c3b7e4524c44e29c61a6de2547a225b7
2021-03-24 23:51:18 +00:00
Rupert Shuttleworth
21e743df41 Add bp2build support for cc_library_static.
Also refactor bp2build-related code for cc_library_headers.

Test: Added unit test.

Test: bp2build-sync.py write; bazel build //bionic/... still works (but bp2build is disabled for most cc_library_static targets for other reasons)

Change-Id: I37c856be20a47b154909338a22a7dba1ab55693f
2021-03-24 13:56:44 +00:00
Jingwen Chen
12b4c2706d bp2build: add allowlist for package-level conversions.
This CL adds the support for specifying lists of directories in
build/soong/android/bazel.go, which are then written into
out/soong/bp2build/MANIFEST. Using this configuration,
modules/directories can either default to bp2build_available: true or
false, while still retaining the ability to opt-in or out at the module level.

It also ensures that ConvertWithBp2Build returns true iff the module
type has a registered bp2build converter.

Test: go tests
Test: demo.sh full
Test: TreeHugger presubmits for bp2build and mixed builds.

Change-Id: I0e0f6f4b1b2ec045f2f1c338f7084defc5d23a55
2021-03-24 02:27:19 -04:00
Ryo Hashimoto
5818b9344f Enable safe ICF for all devices
--icf=safe has been enabled for arm and arm64.
Do the same thing for all devices.

On bertha_x86_64, this CL makes system.raw.img 4.4MB smaller.

Bug: 182446785
Test: build

Change-Id: Ifd597cd8496c49b55df269f22e01b1c50dc8f6e8
2021-03-24 13:00:32 +09:00
Pirama Arumuga Nainar
bedca74471 [pgo] Do not explicitly link profile runtime
Bug: http://b/181740505

Explicitly adding dependency to profile runtime causes apex dependency
errors.  We're already passing -fprofile-instr-generate to the linker so
depending on the profile runtimes is unnecessary.

Test: pgo-coral-config1 on internal release branch and run tests on
      APCT.
Change-Id: Ie54785726c7ac044e5a5a2299073d02d45d5e0a7
2021-03-23 18:07:30 -07:00
Treehugger Robot
41cfa60853 Merge "Handle include_build_directory prop in bp2build" am: dca349a782 am: a5be000743 am: 421020e361
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1646268

Change-Id: I1e3dd722eb55d03feaba5a273dd55c750c8c099f
2021-03-23 16:36:28 +00:00
Treehugger Robot
dca349a782 Merge "Handle include_build_directory prop in bp2build" 2021-03-23 14:39:19 +00:00
Ryan Prichard
29b9de083e Switch platform-NDK unwinder to LLVM libunwind.a prebuilt
Link against the libunwind.a shipped with the NDK so it matches what's
linked into the NDK's libc++_shared.so.

Bug: http://b/153025717
Test: device boots, manually inspect some linker command lines
Change-Id: Icc79844f5e70f0eaa97ea758449c30fbddd030d2
2021-03-22 13:46:54 -07:00
Pirama Arumuga Nainar
e7c30b32c0 Merge "Switch to clang r416183 12.0.4." am: 679d5308ec am: 042fce9dfd am: 59fed69211
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1640559

Change-Id: I301bb50687a8f8a613b30ae9af11c193465de1f9
2021-03-22 20:37:26 +00:00
Pirama Arumuga Nainar
679d5308ec Merge "Switch to clang r416183 12.0.4." 2021-03-22 16:26:13 +00:00
Jiyong Park
fdaa5f7164 Versioned CRT objects are built with correct __ANDROID_API__
Background: `min_sdk_version` of a crt object is the oldest SDK version
that the crt object supports. When it's set to for example 16, Soong
creates a number of versioned variants of the crt object starting from
16 to the latest version. The variant for version X is provided to NDK
clients having `min_sdk_version` set to X.

Problem: all versioned variants of a crt object were built with `-target
<arch>-linux-android16`. Therefore they all have been with `#define __ANDROID_API__
16`.  This is because the mutated variants still have the same
min_sdk_version property and the clang triple follows min_sdk_version,
not sdk_version. This is too conservative and against our intention to
provide the latest crt object that matches with the min_sdk_version of
the client.

In the other hand, the platform(non-sdk) variant of the crt object
doesn't have such a problem. min_sdk_version is completely ignored.
However, this is a bug and will be fixed by aosp/1640364. As a side
effect of the fixing, the platform variant will begin to built with a
very old __ANDROID_API__ which unnecessarily turns off the new platform
features like the TLS segment over-alignment.

This change fixes the problems:

* For the versioned variants of crt objects, we set both
`min_sdk_version` and `sdk_versio` to the version that the variant is
created for.

* For the platform variant of crt objects, `min_sdk_version` is force
reset to "current".

Bug: 183191008
Test: m

Change-Id: I8c9d0fcea816de8cd1532dac4a47eee4f726c037
2021-03-23 01:18:31 +09:00
Jiyong Park
a008fb08cf Always respect min_sdk_version
Background:
When compiling cc_* modules, min_sdk_version determines the "version"
part of the clang triple: -target <arch>-linux-android<version>. The
version part is used to make sure that calls to the APIs that are added
after the version are guarded with a runtime check (i.e.
__builtin_available).

Previously, min_sdk_version was used as the version part only when the
cc_* module is unbundled (e.g. built for an APEX or built with SDK). In
other words, min_sdk_version has been ignored for the platform variants.
They were built with the version number 10000.

This was problematic for Mainline module tests. Since they are neither
part of an APEX nor built with SDK (because they need to have access to
some of the module-only APIs), they are built with the version number
10000. As a side effect, __builtin_available macro are expanded to 1 at
build time - because 10000 is higher than any API versions. When such a
test built in the latest platform source tree runs on a device running
an old platform, it tries to call an API that might not be available on
the platform and experience a crash, due to the lack of the runtime
check.

This change fixes the problem by using min_sdk_version as the "version"
part of the clang triple, regardless of the module's variant. Then
__builtin_available macro in the tests doesn't expand to 1, but to a
function call to the libclang_rt.builtin library which checks the system
property ro.build.version.sdk.

Bug: N/A
Test: run resolv_stress_test

Change-Id: I88f64c5a35f1b5276c3350e177b116932011a940
2021-03-23 01:18:31 +09:00
Treehugger Robot
8de6291424 Merge "Revert "[strip.sh] Move remaining GNU binutils usage to llvm binutils"" am: f2be52c4dc am: 7ce29d53bf am: 62701ff807
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1647203

Change-Id: I421b4ee552ec335a363c0393100352982b1161a1
2021-03-20 21:24:27 +00:00
Treehugger Robot
f2be52c4dc Merge "Revert "[strip.sh] Move remaining GNU binutils usage to llvm binutils"" 2021-03-20 19:25:23 +00:00
David Srbecky
33dfba1d9c Revert "[strip.sh] Move remaining GNU binutils usage to llvm binutils"
This reverts commit ad50ce8349.

Bug: 183237575
Reason for revert: Breaks stack unwinding

Change-Id: I256dc77525687fb3e670355587b1eac72158b274
2021-03-20 14:46:15 +00:00
Colin Cross
6dee49ca7f Merge changes Iab4e09d9,Icf2f24dd,I15be5ef1,Ic0db9619 am: d2db7953a0 am: fa5bd82ef0 am: 5c2afde7f1
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1634812

Change-Id: Ic4b43962a5ac32605216fec53a1b2e5803874191
2021-03-19 19:20:57 +00:00
Yi Kong
d28df8630d Merge "[strip.sh] Move remaining GNU binutils usage to llvm binutils" am: 00d54280d0 am: dd3494b8e4 am: 55163399f5
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1235781

Change-Id: I04470e88b6848c10137368d6b8d7d91c99f1fd01
2021-03-19 17:25:14 +00:00
Colin Cross
d2db7953a0 Merge changes Iab4e09d9,Icf2f24dd,I15be5ef1,Ic0db9619
* changes:
  Run lint actions in sbox
  Support sbox-in-RBE
  Move android package on top of remotexec
  Support sandboxing inputs in RuleBuilder
2021-03-19 17:25:14 +00:00
Liz Kammer
a4aa43072b Handle include_build_directory prop in bp2build
Test: go test cc tests
Test: generate bp2build, sync bp2build, bazel build //bionic/...
Bug: 181794963
Change-Id: I8dcef585e3025ef6f44d22430ed67b1e0429dca0
2021-03-19 12:33:34 -04:00
Yi Kong
00d54280d0 Merge "[strip.sh] Move remaining GNU binutils usage to llvm binutils" 2021-03-19 15:32:49 +00:00
Jingwen Chen
eafb095afe Merge "bp2build: cc_library_headers converter should only include that module type" am: b1672af5d2 am: 5d622ec767 am: b1ab70742c
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1645006

Change-Id: I269f513856d3b1a4bd1d83ea1fce7a550220a507
2021-03-19 11:31:25 +00:00
Jingwen Chen
b1672af5d2 Merge "bp2build: cc_library_headers converter should only include that module type" 2021-03-19 09:18:15 +00:00
Yi Kong
ad50ce8349 [strip.sh] Move remaining GNU binutils usage to llvm binutils
With clang r377782, llvm binutils implements all the necessary
funtionaility for strip.sh. We can finally get rid of all the fallback
GNU binutils usage.

Test: m
Bug: 141010852
Bug: 135627985
Change-Id: I110f6028dab7f599decf59a5cb1b927b35e11857
2021-03-19 12:28:44 +08:00
Justin Yun
43ad83767b Merge "Define __ANDROID_VENDOR__ and __ANDROID_PRODUCT__" am: b1d5479783 am: 2d0020dbbd am: 76e4387707
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1620648

Change-Id: I507c493b93fc1fdfefe7f2d01e50e2c22e036368
2021-03-19 01:50:55 +00:00
Pirama Arumuga Nainar
c7d23478e1 Switch to clang r416183 12.0.4.
Bug: http://b/181927912

Test: go/android-llvm-testing-dashboard tag: test_clang_r416183
      go/android-llvm-windows-testing
      go/ab/P20855845 sdk_phone_armv7-sdk_mac build on Forrest
      Forrest run L21700000838126631 for CtsNNAPITestCases

Change-Id: If677b57616348ae52704494f40c7b1ed470bb5f4
2021-03-19 01:14:20 +00:00
Justin Yun
b1d5479783 Merge "Define __ANDROID_VENDOR__ and __ANDROID_PRODUCT__" 2021-03-18 23:33:43 +00:00
Colin Cross
77cdcfdeaf Move android package on top of remotexec
Remove the references to the android package in remotexec so that
the android package can reference the remoteexec package.  This
will allow RuleBuilder to integrate directly with remoteexec.

Bug: 182612695
Test: m checkbuild
Change-Id: I15be5ef126d8aacbd605518638f341daf6f31bb3
2021-03-18 16:17:34 -07:00
Jingwen Chen
c7846f38fa bp2build: cc_library_headers converter should only include that module type
Test: bp2build; bazel build //bionic/...
Change-Id: I34768b51098c5b801e7c6d9b3a95ec0f37c3bb09
2021-03-18 18:35:39 -04:00
Colin Cross
ecd91c9ffa Add explicit rspfile argument to RuleBuilderCommand.FlagWithRspFileInputList am: 70c4741215 am: 37225a7b05 am: 27a4326c78
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1634804

Change-Id: I6a33941387ce9d6054c49f61b41d4f9a4b911e36
2021-03-17 22:21:53 +00:00
Liz Kammer
a801072f60 Merge "Temporarily disable cc_objects in mixed builds" am: 39d3830205 am: f84f690929 am: f0946b0715
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1640582

Change-Id: I21f5c94906565d2f712199a0cc9826b1b8c35935
2021-03-17 16:19:39 +00:00
Liz Kammer
16d355ac92 Merge changes from topic "mixed-bp2build" am: a5f86249a4 am: 2b6af78207 am: dd93334831
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1607554

Change-Id: Iff4681eca0b887c43f7faccf2e1418671a2f2088
2021-03-17 16:19:36 +00:00
Christopher Parsons
944c00991a Merge "Refactor and cleanup of cquery processing" am: bc3f7e0276 am: 70f670df1a am: 8e0d430822
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1629139

Change-Id: I08f029d182ef715b64ca5c40944709691a959ad6
2021-03-17 16:18:52 +00:00
Justin DeMartino
89bcfecf6a Merge "Allow extending of the list of directories to be scanned for VSDK" am: dd1decf7f6 am: e7c7a5e8d6 am: 1bbe7b54ec
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1603623

Change-Id: I749bf59c09bc250e342953b4760695408aa8b513
2021-03-17 16:18:07 +00:00
Colin Cross
70c4741215 Add explicit rspfile argument to RuleBuilderCommand.FlagWithRspFileInputList
Using $out.rsp as the rsp file adds extra complexity around keeping
the $ unescaped.  Make callers to FlagWithRspFileInputList provide
an explicit path for the rsp file instead.

Bug: 182612695
Test: rule_builder_test.go
Change-Id: I3f531d80c1efa8a9d09aac0a63790c5b11a9f0c6
2021-03-16 16:52:56 -07:00
Liz Kammer
39d3830205 Merge "Temporarily disable cc_objects in mixed builds" 2021-03-16 21:40:04 +00:00
Liz Kammer
a5f86249a4 Merge changes from topic "mixed-bp2build"
* changes:
  Support autoconverted modules in mixed builds
  Use handcrafted build targets in bp2build
2021-03-16 21:40:04 +00:00
Christopher Parsons
bc3f7e0276 Merge "Refactor and cleanup of cquery processing" 2021-03-16 21:12:01 +00:00
Liz Kammer
bdc609972c Support autoconverted modules in mixed builds
modules converted with bp2build_available are will also be available to
be used in mixed builds.

Test: build/bazel/scripts/milestone-2/demo.sh full
Test: go tests
Change-Id: I49f16ec3ba5bb11dfed8066af069c27eb04371fb
2021-03-16 15:11:49 -04:00
Chris Parsons
944e7d01aa Refactor and cleanup of cquery processing
Test: USE_BAZEL_ANALYSIS=1 m libc
Change-Id: Iaf9a92e84d39c132e2444a8aaafd79505a12b8ec
2021-03-16 14:39:16 -04:00
Liz Kammer
57355683d4 Temporarily disable cc_objects in mixed builds
Bug: 181794963
Test: generate bp2build targets and run mixed builds
Change-Id: If4562fe8ed7bde88141b40166eca9d01f6538106
2021-03-16 13:34:48 -04:00
Justin DeMartino
383bfb392f Allow extending of the list of directories to be scanned for VSDK
Bug: 180925851
Bug: 181564692
Test: m nothing, manually
Change-Id: Ifff95db4c9ec362322fecca08f7fd1a7b60755c0
2021-03-15 23:14:47 +00:00