Commit Graph

2324 Commits

Author SHA1 Message Date
Colin Cross
a9ff20226e Skip failing test on mac
am: 9a4f3f7ea8

Change-Id: Ic9475bef508ba636528d17db5e17d739a734232b
2019-04-02 10:25:40 -07:00
Colin Cross
9a4f3f7ea8 Skip failing test on mac
Tests with cc_binary_host fail on mac, disable for now.

Bug: 129763458
Test: TestProto
Change-Id: Icea24ac6ffba4c5c047296cb3997a5efa95e16ee
2019-04-02 10:02:04 -07:00
Colin Cross
91c063cfdc Add support for protoc plugins
am: fe17f6f0e8

Change-Id: I7dabf4b788925fce8b477eb3c7f9e90a5f986945
2019-04-02 09:55:06 -07:00
Colin Cross
61918685aa Move proto compilation to RuleBuilder
am: 19878da6a0

Change-Id: I44eed0735702ea6fbef57753d8eec078ad3a131e
2019-04-02 09:54:59 -07:00
Colin Cross
fe17f6f0e8 Add support for protoc plugins
Add a proto.plugin property to allow specifying a custom protoc
plugin to generate the code.

Fixes: 70706119
Test: m am StreamingProtoTest
Change-Id: I1ecdd346284b42bbcc8297019d98d2cd564eb94c
2019-04-02 16:38:55 +00:00
Colin Cross
19878da6a0 Move proto compilation to RuleBuilder
Using blueprint.Rule for protoc commands was causing code duplication
because there was no good way to run the same protoc for cc, java and
python but then run custom source packaging steps for java and python.
Move most of the code into a common function that returns a
RuleBuilder, and then let java and python add their own commands at
the end of the rule.

Bug: 70706119
Test: All Soong tests
Test: m checkbuild
Change-Id: Ic692136775d273bcc4f4de99620ab4878667c83a
2019-04-02 16:38:47 +00:00
Patrice Arruda
57522e4123 Merge "Soong: Add synopsis to cc_prebuilt_* modules."
am: 6e1c3faed5

Change-Id: I57ffbbe82c03113fffbc2fa766f8a4517d684cb7
2019-04-02 08:16:04 -07:00
Patrice Arruda
3554a98e4f Soong: Add synopsis to cc_prebuilt_* modules.
Added synopsis to the following modules under cc package:
    * cc_prebuilt_binary
    * cc_prebuilt_library_shared
    * cc_prebuilt_library_static

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

Change-Id: I2ec284eb600f28d5c7f00254f441a3cc5fb684cc
2019-04-01 17:25:41 +00:00
Colin Cross
0a31c21da0 Merge "Restat clang linker outputs"
am: 51e265c5dd

Change-Id: I7f95695550cc51a5043cecab62f7907dffe1ef82
2019-03-31 11:55:47 -07:00
Colin Cross
36ae135434 Restat clang linker outputs
clang -Wl,--out-implib doesn't update its output file if it hasn't
changed, always restat the outputs.

Fixes: 129553377
Test: m checkbuild && m checkbuild
Change-Id: I2cb19e1b8280fd69c8a9b2143f55760ec05630f8
2019-03-30 00:03:24 +00:00
Pirama Arumuga Nainar
865ad54f90 Include libprofile-extras to all coverage variants
am: 65c95ff1fb

Change-Id: I74057c0921eaa76c8016d0bb8f81abaf0eb50ed8
2019-03-29 09:17:15 -07:00
Pirama Arumuga Nainar
312b5f4407 Refactor coverage support
am: ee30d5e132

Change-Id: I859c7e6c535f1d99d26fa8148bc24a930933cd39
2019-03-29 09:17:04 -07:00
Pirama Arumuga Nainar
65c95ff1fb Include libprofile-extras to all coverage variants
Bug: http://b/128524141

Include libprofile-extras (defined in system/extras/toolchain-extras) to
all modules that need a coverage variant.  Also add
'-uinit_profile_extras' when linking with coverage.  This causes the
setup code in libprofile-extras to be linked into binaries/libraries
with coverage enabled.

We add the static library to the non-coverage variants as well but is a
no-op for them (since the '-u...' flag is not added for them).

Adding this dependency creates several circular dependencies since
coverage variants were being created for other module types that never
had any compilation or linking done during the build.  This change stops
creating coverage variants for toolchain_library, cc_prebuilt_library_*,
cc_library_headers module types (by adding a function to the linker
interface to specify whether native coverage is enabled).

Test: m NATIVE_COVERAGE=true COVERAGE_PATHS=*
Test: blueline_coverage target in internal branch (using forrest)
Change-Id: I5db876eb953639a55ba007248dd24e497f987730
2019-03-29 08:56:42 -07:00
Pirama Arumuga Nainar
ee30d5e132 Refactor coverage support
Bug: http://b/128524141

The goal is to add a static library (libprofile-extras) to modules that
require coverage.  Since the coverageMutator is a post-deps mutator, the
results of the coverageMutator are not available when the dependencies
get constructed in deps().  This change moves the detection from the
coverageMutator to begin().

Test: m NATIVE_COVERAGE=true COVERAGE_PATHS=*
Test: blueline_coverage target in internal branch (using forrest)

Change-Id: I4e7c8b31ed5060642c6218ea33c532a0f6619967
2019-03-29 08:56:42 -07:00
Patrice Arruda
3a537940a7 Merge "Soong: Add synopsis to cc_library_* modules"
am: bcf9408e44

Change-Id: Ifb84210b4c15c1b3aef011677e4938cbbd200f9b
2019-03-29 08:32:03 -07:00
Patrice Arruda
bcf9408e44 Merge "Soong: Add synopsis to cc_library_* modules" 2019-03-29 15:21:21 +00:00
Yi Kong
16bb6c063d Merge "Move -Wno-inconsistent-missing-override to ClangExtraCflags"
am: 2e03bb7296

Change-Id: I293a0167fcbdb240b31a9a53d9cc29c8acc20cf5
2019-03-28 15:49:14 -07:00
Yi Kong
2e03bb7296 Merge "Move -Wno-inconsistent-missing-override to ClangExtraCflags" 2019-03-28 22:37:47 +00:00
Patrice Arruda
83c89e0f4e Soong: Add synopsis to cc_library_* modules
Added synopsis to the following modules under cc package:
   * cc_library_static
   * cc_library_shared
   * cc_library
   * cc_library_host_static
   * cc_library_host_shared
   * cc_library_headers

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

Change-Id: I4d9bb622dc75aad9ea1b9f331c80ed56ddbc9a15
2019-03-28 10:36:26 -07:00
Inseob Kim
93079643a1 Merge "Remove libbase dependency of sysprop_library"
am: 9e50e6955f

Change-Id: I32144aef537c89ff0a623cb4e3ceaf8acff12b4d
2019-03-27 20:11:29 -07:00
Treehugger Robot
9e50e6955f Merge "Remove libbase dependency of sysprop_library" 2019-03-28 03:01:27 +00:00
Yi Kong
4d048d5972 Move -Wno-inconsistent-missing-override to ClangExtraCflags
So that projects can override the flag through cflag (CPPFlags are
appended after CFlags).

Test: m checkbuild
Change-Id: Ib72f4ed4731f41982a0eb8a90c782c09810aa8c9
2019-03-27 18:26:22 -07:00
Yi Kong
2692cfac0d Merge "Turn on new pass manager for PGO projects"
am: edd7fdd891

Change-Id: Ic7eec8832d1397f741a579121ad8ad73bbf75189
2019-03-27 15:55:47 -07:00
Patrice Arruda
3f056b869d Merge "Soong: Add synopsis to cc_object module."
am: 5c45f684dd

Change-Id: Ic48e0d6800d3e0a00f45d72a6c5994fa3414281c
2019-03-27 15:55:17 -07:00
Yi Kong
edd7fdd891 Merge "Turn on new pass manager for PGO projects" 2019-03-27 22:44:31 +00:00
Patrice Arruda
5c45f684dd Merge "Soong: Add synopsis to cc_object module." 2019-03-27 22:38:28 +00:00
Yi Kong
09836cfa49 Merge "Switch to clang-r353983b"
am: ac7f27eab0

Change-Id: I1925ea786ce8d122cb3bffebae9824f5f4e7efaf
2019-03-27 08:55:16 -07:00
Yi Kong
ac7f27eab0 Merge "Switch to clang-r353983b" 2019-03-27 15:52:05 +00:00
Nikita Ioffe
cc92d0203f Merge "Add support for clang-tidy -warnings-as-errors in Android.bp files"
am: ca57e57837

Change-Id: I8545d90aeb6eeea40a455b413796f428be9724c9
2019-03-27 03:26:03 -07:00
Nikita Ioffe
ca57e57837 Merge "Add support for clang-tidy -warnings-as-errors in Android.bp files" 2019-03-27 10:18:15 +00:00
Inseob Kim
1f959769f3 Remove libbase dependency of sysprop_library
libbase dependency is not really needed, but it has been causing build
failure while linking with static variant of sysprop_library. This cuts
the dependency and only depend on libbase_headers and liblog.

Bug: 129301987
Test: 1) flash and boot walleye
Test: 2) try to build various properties with sysprop_library.
Test: 3) sysprop_test
Change-Id: I027e01c754b782818f52103184301267d4cdd576
2019-03-27 17:27:05 +09:00
Yi Kong
5d7aeeac24 Switch to clang-r353983b
Test: TreeHugger
Bug: 122993569
Bug: 128427449
Bug: 128937182
Bug: 128973188
Change-Id: I300efbbad47973d265f636645b83dad0c4d6630a
2019-03-27 02:09:40 +00:00
Nikita Ioffe
32c4986268 Add support for clang-tidy -warnings-as-errors in Android.bp files
Test: manually change Android.bp and checked clang-tidy invocation cmd
Change-Id: I51a64b3f7da82428b896f46f739c93d76a050aaf
2019-03-26 20:47:08 +00:00
Patrice Arruda
baff0ce5e4 Soong: Add synopsis to cc_object module.
Added synopsis to the cc_object module.

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

Change-Id: Icba4522a3aafa1b8b8a0b780d111f8b48cbdd270
2019-03-26 13:41:28 -07:00
Patrice Arruda
97d123fc9f Merge "Soong: Add synopsis to several modules under cc package."
am: 0aad00631a

Change-Id: I23d31ee45bdf4067bc1a2d111d69f44e7a15e65a
2019-03-25 20:53:23 -07:00
Treehugger Robot
0aad00631a Merge "Soong: Add synopsis to several modules under cc package." 2019-03-26 03:39:13 +00:00
Yi Kong
7fc090bd63 Merge "Support LLD ThinLTO cache/threshold option"
am: ff58c0e248

Change-Id: I8f874371ed10da26a3ae7ad739fb4e26b9c96719
2019-03-25 17:15:41 -07:00
Yi Kong
ff58c0e248 Merge "Support LLD ThinLTO cache/threshold option" 2019-03-26 00:02:36 +00:00
Sasha Smundak
1939abdb9f Treat stl: "system" the same way as default.
am: fc22e4eeba

Change-Id: I1fee3988c762cdd31d7d8cc9a24c4240eaa5b4fb
2019-03-25 11:09:09 -07:00
Patrice Arruda
c249c718ab Soong: Add synopsis to several modules under cc package.
Added synopsis to the following modules under cc package:
    * cc_binary
    * cc_binary_host
    * cc_defaults
    * cc_genrule
    * cc_test
    * cc_test_host

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

Change-Id: I23b7eda449c340783d7cc592df5d2bd399255bf9
2019-03-25 14:21:29 +00:00
Sasha Smundak
fc22e4eeba Treat stl: "system" the same way as default.
Test: verify that adding `stl: "system"` does not change the module
build.

Change-Id: I55fbde223e4a4695df7524213e1bf3671da84e8e
2019-03-24 14:17:56 -07:00
yelinhsieh
7408bd6dc1 Merge "ATest: GTest auto gen config support run_test_as in Android.bp ."
am: 789b84b12f

Change-Id: I87f3520d5bda43abde35246cd6a300f7292d7061
2019-03-23 07:53:22 -07:00
yelinhsieh
9fc6040efe ATest: GTest auto gen config support run_test_as in Android.bp .
Feature request from developer, support setting uid in Android.bp.

This relands I5604af5f20c45728d19f4c01396a20a74997f8a8 on top of
I2210c15b84f9b30e1cc23b426d463b34cf9ef94f.

Bug: 113359343

Test: source build/envsetup.sh ; lunch
    vim platform_testing/tests/example/native/Android.bp
    add
    test_options: {
        run_test_as: "1234",
    },
    in cc_test
    make hello_world_test
    cat out/target/product/xxxx/testcases/hello_world_test/hello_world_test.config
    Will see  <option name="run-test-as" value="1234" />
    below <test class="com.android.tradefed.testtype.GTest" >

Change-Id: I0b167c44c00ff0eab51443fc93dd8fa2abbe54cf
2019-03-23 04:42:48 +00:00
Yi Kong
630b960fb5 Support LLD ThinLTO cache/threshold option
LLD has different option syntax for specifying ThinLTO cache. Change it
to LLD syntax and drop the support for GOLD, since there aren't many
projects that are linked with it.

Test: USE_THINLTO_CACHE=true m
Change-Id: I5c6c5281a05793414a6387d52ae48d9b43822ee9
2019-03-22 21:32:45 -07:00
Peter Collingbourne
15f0586f86 Merge "Pass -fsanitize-hwaddress-abi=platform when building with hwasan."
am: df59655fa3

Change-Id: Ib441f3fde7714feb4671d039a9b8ed4d9994ddfe
2019-03-21 19:32:16 -07:00
Yi Kong
69c1ed91d8 Turn on new pass manager for PGO projects
With new pass manager, dex2oat benchmark showed 1.61% performance
improvement though binary size saw an increase of 3.37%.

For Googlers, detailed benchmark results are in go/android-pgo-npm.

Test: m checkbuild
Bug: 118894695
Change-Id: I1687886acac7f61e67265a9c73997fb241ad31e6
2019-03-21 23:43:42 +00:00
Peter Collingbourne
e726ba56ac Pass -fsanitize-hwaddress-abi=platform when building with hwasan.
Reduces size of walleye_hwasan-userdebug system.img by another 4.5MB.

Bug: 122363025
Change-Id: I6d15c237dc5f330ad574a73147b2b2c712fe125e
2019-03-21 16:22:00 -07:00
Vic Yang
409b1d2375 Add support for no-vendor-variant VNDK
am: efd249e62a

Change-Id: I14b2a2ea2e613949f4f4394e58784ad1f54a8d3f
2019-03-20 21:40:07 -07:00
Vic Yang
efd249e62a Add support for no-vendor-variant VNDK
When no-vendor-variant VNDK is enabled, the vendor variant of VNDK
libraries are not installed.  Since not all VNDK libraries will be
ready for this, we keep a list of library names in cc/vndk.go to
indicate which libraries must have their vendor variants always
installed regardless of whether no-vendor-variant VNDK is enabled.

Also add --remove-build-id option to the strip script to facilitate
the check of functional identity of the two variants.

Bug: 119423884
Test: Add a dummy VNDK library and build with
      TARGET_VNDK_USE_CORE_VARIANT := true, with the corresponding
      build/make change.

Change-Id: Ieb1589488690e1cef1e310669a8b47a8b8759dac
2019-03-21 04:29:24 +00:00
Yi Kong
abc025924a Merge "Turn on string-plus-int warning"
am: 5a3f31b284

Change-Id: I6e0e6a5a5d57a257edd3a62e89bf173b935abb4b
2019-03-20 14:47:14 -07:00