Commit Graph

3295 Commits

Author SHA1 Message Date
Sasha Smundak
9163cae4fa Treat stl: "system" the same way as default. am: fc22e4eeba
am: 1939abdb9f

Change-Id: I4e63b7ffea16b2f8f9eba508ec93bd4c48f0f679
2019-03-25 11:21:00 -07: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
e586db7d37 Merge "ATest: GTest auto gen config support run_test_as in Android.bp ." am: 789b84b12f am: 7408bd6dc1
am: 5aacb61aec

Change-Id: I5787c4b630a69a56034365c6ceb361fab9958db9
2019-03-23 08:02:27 -07:00
yelinhsieh
5aacb61aec Merge "ATest: GTest auto gen config support run_test_as in Android.bp ." am: 789b84b12f
am: 7408bd6dc1

Change-Id: Ie988da515fb7dc00acec3801409fb97a8c398bc8
2019-03-23 07:58:20 -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
8338297f77 Merge "Pass -fsanitize-hwaddress-abi=platform when building with hwasan." am: df59655fa3 am: 15f0586f86
am: d485165c75

Change-Id: I476bf3798d4eeec998e1f56d5ae5b22ae4481e58
2019-03-21 19:40:22 -07:00
Peter Collingbourne
d485165c75 Merge "Pass -fsanitize-hwaddress-abi=platform when building with hwasan." am: df59655fa3
am: 15f0586f86

Change-Id: I793c7b21a02d2315f84c80a587e09cdfbcbc5dcd
2019-03-21 19:36:18 -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
b7700709dd Add support for no-vendor-variant VNDK am: efd249e62a am: 409b1d2375
am: 89ac74fed3

Change-Id: I11df12e61cab3d3f694573a558fe8862023e475c
2019-03-20 21:58:34 -07:00
Vic Yang
89ac74fed3 Add support for no-vendor-variant VNDK am: efd249e62a
am: 409b1d2375

Change-Id: I11cc3438265dcea0c3fc14246eac2558b9062f3b
2019-03-20 21:46:57 -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
7b504bf500 Merge "Turn on string-plus-int warning" am: 5a3f31b284 am: abc025924a
am: ca71f33520

Change-Id: Ifd8a14ac5e971e20a85eda86e1aec1ee16c357ae
2019-03-20 15:01:04 -07:00
Yi Kong
ca71f33520 Merge "Turn on string-plus-int warning" am: 5a3f31b284
am: abc025924a

Change-Id: If6f3356809774ab51db1315556fb0f3f07e8c79d
2019-03-20 14:56:00 -07:00
Yi Kong
abc025924a Merge "Turn on string-plus-int warning"
am: 5a3f31b284

Change-Id: I6e0e6a5a5d57a257edd3a62e89bf173b935abb4b
2019-03-20 14:47:14 -07:00
Yi Kong
5a3f31b284 Merge "Turn on string-plus-int warning" 2019-03-20 21:33:46 +00:00
Pirama Arumuga Nainar
7ce5003033 Enable lld for windows am: 3c21c0b1d9 am: 74eef36e44
am: c389bb4fda

Change-Id: I9b2404abf3f61895a47ba9dc312bd47a064e0295
2019-03-20 14:29:56 -07:00
Pirama Arumuga Nainar
c389bb4fda Enable lld for windows am: 3c21c0b1d9
am: 74eef36e44

Change-Id: I03db7c8ead9961578c6e4cf5717244416ef540bd
2019-03-20 14:26:52 -07:00
Pirama Arumuga Nainar
74eef36e44 Enable lld for windows
am: 3c21c0b1d9

Change-Id: Ib45b147ca91af7d43b65576ed5b416f8b1b31aff
2019-03-20 14:22:49 -07:00
Pirama Arumuga Nainar
3c21c0b1d9 Enable lld for windows
Bug: http://b/110800681

The following flags that the binutils linkers support are not available
in lld for Windows:
  -soname
  --no-undefined
  -rpath

Windows also uses "import libraries", which are stub libraries used only
for linking.  The binutils linkers accepted a DLL and treated them as an
import library.  But lld issues the following error:

  lld-link: error: ...DLL: bad file type. Did you specify a DLL instead
  of an import library?

To resolve this, pass '-out-implib=libFoo.a' to lld when linking
libFoo.dll.  Add libFoo.a as an implicit output to the 'ld' build rule.

Rewrite the shared libraries for a library/binary to use the import
library instead of the DLL.  As a side-effect, this also (correctly)
uses the AdbWinApi.a that's alongside
development/host/windows/prebuilt/usb/AdbWinApi.dll

Test: Run Windows tests (go/android-llvm-windows-testing) and check
absence of regressions.

Change-Id: I15a178589aa6882caa6e7e38650cc6ef48109764
2019-03-20 21:07:47 +00:00
Peter Collingbourne
d592d7197e Pass -hwasan-allow-ifunc when building with hwasan. am: 967511a4e8 am: b34551b875
am: 7010be0096

Change-Id: Ibdc6ef96e03878b5a7e1f722f41ea348bab21037
2019-03-20 13:18:32 -07:00
Peter Collingbourne
7010be0096 Pass -hwasan-allow-ifunc when building with hwasan. am: 967511a4e8
am: b34551b875

Change-Id: I3816cfa924412b9f2be4ca64055f85e15b6c81bf
2019-03-20 13:14:30 -07:00
Peter Collingbourne
b34551b875 Pass -hwasan-allow-ifunc when building with hwasan.
am: 967511a4e8

Change-Id: Ia22447c870639cbb664e34783adfed79782d1c2b
2019-03-20 13:10:27 -07:00
Colin Cross
75bace9c07 Replace ctx.ExpandSources with android.PathsForModuleSrc am: 8a49795df1 am: 9bcee1f400
am: 3cafca1d18

Change-Id: I8945a8a775d5931489ef3f3614046207dd816f1e
2019-03-20 12:53:01 -07:00
Colin Cross
ecfa227f40 Remove ModuleSrcPath am: 07e51619a2 am: 734ad216fe
am: 055d480456

Change-Id: I386ab7a179da59477acc38571f63e652ac47d8a2
2019-03-20 12:52:44 -07:00
Colin Cross
3cafca1d18 Replace ctx.ExpandSources with android.PathsForModuleSrc am: 8a49795df1
am: 9bcee1f400

Change-Id: Ie94f2abc0526f8121e1edf3230bd63134e552ff2
2019-03-20 12:48:29 -07:00
Colin Cross
055d480456 Remove ModuleSrcPath am: 07e51619a2
am: 734ad216fe

Change-Id: I0d11c34f99116f08054cfd1cfb5abc7102c9700d
2019-03-20 12:48:15 -07:00
Colin Cross
9bcee1f400 Replace ctx.ExpandSources with android.PathsForModuleSrc
am: 8a49795df1

Change-Id: I42fc5461cff28f58039787b434527500d4e88eb6
2019-03-20 12:44:10 -07:00
Colin Cross
734ad216fe Remove ModuleSrcPath
am: 07e51619a2

Change-Id: I3afb1d6e16cd8d9492edf00616a856864a350340
2019-03-20 12:44:00 -07:00
Peter Collingbourne
967511a4e8 Pass -hwasan-allow-ifunc when building with hwasan.
Now that the toolchain and bionic both support ifuncs in
static executables, we can turn this on. Reduces size of
walleye_hwasan-userdebug system.img by 11MB.

Change-Id: I2f19b22518153328eee3fdca79d0c851cc513c3a
2019-03-20 19:42:42 +00:00
Colin Cross
8a49795df1 Replace ctx.ExpandSources with android.PathsForModuleSrc
Move the logic from ctx.ExpandSources into android.PathsForModuleSrc
and ctx.ExpandSource into android.PathForModuleSrc, and deprecate
them.  When combined with the pathDepsMutator this will let all
properties that take source paths also take filegroups or genrule
outputs, as long as they are tagged with `android:"path"`.

Test: All soong tests
Change-Id: I01625e76b5da19240e9649bf26a014eeeafcab8f
2019-03-20 19:36:13 +00:00
Colin Cross
07e51619a2 Remove ModuleSrcPath
ModuleSrcPath was designed as a type that ensured that modules only
referenced sources inside the directory that contained the Android.bp
file.  In practice they don't work very well, because allowing
filegroups and genrules as inputs to any module that takes a source
path means that the path might end up being to a file in another
source directory or to a generated file in the output directory.

Remove ModuleSrcPath, replacing it with SourcePath in the places
that need to explicitly refer to a path in the source tree, or
Path where it may be a source path or a generated path.

Make PathForModuleSrc return a Path instead of a SourcePath in
preparation for consolidation with ctx.ExpandSources, which will
make it possibly return paths to generated files.

Test: All soong tests
Change-Id: I973a78470ed14307eea5f6d0cc93942775a65715
2019-03-20 19:36:03 +00:00
Peter Collingbourne
921220e7a7 Merge "Remove workarounds for old compiler versions." am: 1b781e52e2 am: 98e6f7e4a1
am: c83efac0ba

Change-Id: If5d7ce1de76324aa7e907f54cb2c6cb20edaac56
2019-03-20 10:49:45 -07:00
Yi Kong
afe467154f Merge "Add -faddrsig to ClangExtraCflags" into stage-aosp-master 2019-03-20 17:43:51 +00:00
Yi Kong
7e8b47b313 Add -faddrsig to ClangExtraCflags
Emit address-significance table which allows linker to perform safe ICF.
Clang does not emit the table by default on Android since NDK still uses
GNU binutils.

With the flag, binary size is decreased. For Marlin:
               -fno-addrsig  -faddrsig  diff
/system/bin    28012K        27108K     -3.33%
/system/lib    88220K        86964K     -1.44%
/system/lib64  151936K       148108K    -2.58%

Test: m checkbuild
Bug: 128940110
Change-Id: I99511f038a6d4b88b5c849a0f8943c24731ab6ea
Merged-In: I99511f038a6d4b88b5c849a0f8943c24731ab6ea
(cherry picked from commit a32b5e6a6b)
2019-03-20 10:40:44 -07:00
Peter Collingbourne
98e6f7e4a1 Merge "Remove workarounds for old compiler versions."
am: 1b781e52e2

Change-Id: I05f0960ef39eb9d0f3fd8592c7a3542cae9358ad
2019-03-20 10:40:27 -07:00
Yi Kong
1b0ba94e5d Add -faddrsig to ClangExtraCflags
Emit address-significance table which allows linker to perform safe ICF.
Clang does not emit the table by default on Android since NDK still uses
GNU binutils.

With the flag, binary size is decreased. For Marlin:
               -fno-addrsig  -faddrsig  diff
/system/bin    28012K        27108K     -3.33%
/system/lib    88220K        86964K     -1.44%
/system/lib64  151936K       148108K    -2.58%

Test: m checkbuild
Bug: 128940110
Change-Id: I99511f038a6d4b88b5c849a0f8943c24731ab6ea
(cherry picked from commit a32b5e6a6b)
2019-03-20 10:35:40 -07:00
Peter Collingbourne
1b781e52e2 Merge "Remove workarounds for old compiler versions." 2019-03-20 16:33:23 +00:00
Yi Kong
2a51b3fe00 Turn on string-plus-int warning
All instances for the warning are fixed/suppressed, turn the warning
back on.

Test: m checkbuild
Bug: 128878287
Change-Id: Ifd5f9a64cb7ff1ce47f498ed38436056b493ee92
2019-03-20 00:58:46 -07:00
Yi Kong
a32b5e6a6b Add -faddrsig to ClangExtraCflags
Emit address-significance table which allows linker to perform safe ICF.
Clang does not emit the table by default on Android since NDK still uses
GNU binutils.

With the flag, binary size is decreased. For Marlin:
               -fno-addrsig  -faddrsig  diff
/system/bin    28012K        27108K     -3.33%
/system/lib    88220K        86964K     -1.44%
/system/lib64  151936K       148108K    -2.58%

Test: m checkbuild
Bug: 128940110
Change-Id: I99511f038a6d4b88b5c849a0f8943c24731ab6ea
2019-03-20 03:21:10 +00:00
Yi Kong
35badd74bf Merge "Switch clang to r353983" am: bdb1ed828d am: cc6ac6647f
am: d182fd4f26

Change-Id: I0daabff1c4ed0045115fb8fd2c7ef6542742518a
2019-03-18 21:37:39 -07:00
Yi Kong
cc6ac6647f Merge "Switch clang to r353983"
am: bdb1ed828d

Change-Id: I1852d1b722211a2bb2ba8425e4e91fe19ad66811
2019-03-18 21:29:33 -07:00
Yi Kong
bdb1ed828d Merge "Switch clang to r353983" 2019-03-19 04:21:20 +00:00
Yi Kong
6925d2b300 Switch clang to r353983
Bug: 126457671
Bug: 123638879
Bug: 128878287
Test: go/clang-r353983-testing
Change-Id: I7f16e68f0f521ff55587084932d175b704e452c9
2019-03-19 04:20:52 +00:00