Commit Graph

6456 Commits

Author SHA1 Message Date
Martijn Coenen
4ed6f97d8f Merge "Add trace flag for cpp/Java AIDL generation." into pi-dev 2018-03-28 06:53:35 +00:00
Nan Zhang
ea4c2971d2 Fix the flaky build breakage for droiddoc target. am: e42777a05a
am: d368414bb4

Change-Id: Ic444461ecf07f7e0637cd9407b3c6a0113da8483
2018-03-28 05:29:47 +00:00
Nan Zhang
e42777a05a Fix the flaky build breakage for droiddoc target.
ExpandSourcesSubDir was calling SourceFileProducer.Srcs(), and then
doing:
moduleSrcs = append(moduleSrcs[:j], moduleSrcs[j+1:]...)
This modifies the backing store of the slice, which may affect the
original data stored in the SourceFileProducer.  Make all Srcs
implementations return slice that points to a copy of the backing
array.

Test: m out/target/common/obj/PACKAGING/checkpublicapi-current-timestamp
Bug: b/76179848 b/76397326
Change-Id: I2432ce196984814daafc5aa9a2746e81de74494c
2018-03-28 05:12:15 +00:00
Jayant Chowdhary
06ec9d1e22 Merge "Fix omission of llndk libraries during abi dump creation." am: 215cedde6a
am: 208f567c05

Change-Id: Ie8e99c4eb2e5000f0fa624ff4fb0c94062319536
2018-03-27 23:22:27 +00:00
Treehugger Robot
215cedde6a Merge "Fix omission of llndk libraries during abi dump creation." 2018-03-27 22:48:40 +00:00
Chih-hung Hsieh
cc866d6f32 Merge "Switch to clang 7.0" am: 055fa01693
am: 538ee81f0d

Change-Id: I33fe0f8e56bb554a1539dc624da42e836cf16c79
2018-03-27 18:57:25 +00:00
Chih-hung Hsieh
055fa01693 Merge "Switch to clang 7.0" 2018-03-27 18:38:19 +00:00
Jayant Chowdhary
fa920fabda Fix omission of llndk libraries during abi dump creation.
We omit vendor unavailable modules. This should not apply to llndk
libraries since currently, we do abi checks on their system variants.

Bug: 77101345

Test: m -j libc creates libc.so.lsdump

Test: m -j libjpeg.vendor creates libjpeg.so.lsdump

Test: m -j external/cblas still does not create libblas.so.lsdump

Change-Id: I5522c1cd471bfba8a1f632270ab2f167b4b17117
2018-03-27 11:30:18 -07:00
Ryan Prichard
ce8f6b0965 Remove an extraneous space character. am: 05206118dc
am: e293641152

Change-Id: If36f69d1f0b7d7a019c03ee1764a2912e094ffb4
2018-03-27 07:39:27 +00:00
Martijn Coenen
22071ca4b4 Add trace flag for cpp/Java AIDL generation.
The AIDL code generator can now include trace code in every generated
AIDL call. We don't want to enable this by default for all interfaces
for two reasons:
1) Potential performance overhead
2) For Java targets, the code depends on @hide APIs in android.os.Trace,
   and I haven't found a clean way to determine whether a target is
   allowed to use @hide stuff in the SDK. LOCAL_PRIVATE_PLATFORM_APIS
   is almost it, but it's not set for the core framework (which is
   exactly one of the things we'd like to trace).

Bug: 74416314
Test: verify correct code is generated when flag is set
Change-Id: Ic6ab8aee3e708207813da3e803911a844ff3e52b
Merged-In: Ic6ab8aee3e708207813da3e803911a844ff3e52b
2018-03-27 07:22:55 +00:00
Ryan Prichard
05206118dc Remove an extraneous space character.
The space prevents "repo upload" from running on my machine:

    $ repo upload .
    [COMMIT 50e35bea87f0] Use Soong modules for the NDK's extra STL libraries
    [FAILED] gofmt
      FILES: ('cc/cc.go',)    <standard input>
    [FAILED] repohooks for platform/build/soong failed
    FATAL: Preupload failed due to above error(s).
    For more info, please see:
    https://android.googlesource.com/platform/tools/repohooks/

Bug: none
Test: repo upload
Change-Id: I6b5de8f5d4edb38ca26a999e561df10262844b3d
2018-03-27 05:09:37 +00:00
Justin Yun
f0249c882e Set __ANDROID_API__ for vendor modules to vndk version. am: 732aa6afdf
am: e194a56a01

Change-Id: I1093e689f14f029db238bf4a838c0def8493a502
2018-03-27 01:37:27 +00:00
Chih-Hung Hsieh
3ede294729 Switch to clang 7.0
* Suppress more noisy new warnings at global level.
* Add -no-pie to partial link .o files, with -r.
* Revert workaround of b/72706604, no need of
  -Wl,-plugin-opt,-emulated-tls
* Filter out clang 7.0 unknown flag "-Wno-extended-offsetof"

Bug: 72706604
Bug: 72412006
Test: make checkbuild
Change-Id: I7ff45465c4bd771991f42b40f68dc35586045656
2018-03-26 18:04:47 -07:00
Justin Yun
732aa6afdf Set __ANDROID_API__ for vendor modules to vndk version.
When building vendor modules with BOARD_VNDK_VERSION=current, the
API of the vendor modules will be current PLATFORM_VNDK_VERSION.
__ANDROID_API_FUTURE__ will be used as before if the version is a
CODENAME.

If BOARD_VNDK_VERSION is not "current", that means the VNDK version
of the vendor modules is BOARD_VNDK_VERSION.

Bug: 74833244
Test: Build and check boot.
Change-Id: I383c76a36101e39c70575b463880b52d3e9d90bb
2018-03-27 08:21:19 +09:00
Martijn Coenen
10224739d4 Add trace flag for cpp/Java AIDL generation. am: eab15645fe
am: 85a70e8369

Change-Id: Ie2bea1ee84ce4a773cefea3548d27796e5cf2115
2018-03-26 22:58:09 +00:00
Martijn Coenen
eab15645fe Add trace flag for cpp/Java AIDL generation.
The AIDL code generator can now include trace code in every generated
AIDL call. We don't want to enable this by default for all interfaces
for two reasons:
1) Potential performance overhead
2) For Java targets, the code depends on @hide APIs in android.os.Trace,
   and I haven't found a clean way to determine whether a target is
   allowed to use @hide stuff in the SDK. LOCAL_PRIVATE_PLATFORM_APIS
   is almost it, but it's not set for the core framework (which is
   exactly one of the things we'd like to trace).

Bug: 74416314
Test: verify correct code is generated when flag is set
Change-Id: Ic6ab8aee3e708207813da3e803911a844ff3e52b
Merged-In: Ic6ab8aee3e708207813da3e803911a844ff3e52b
2018-03-26 09:59:02 +02:00
Logan Chien
2682eba786 Merge "Use PlatformVndkVersion to find ABI dump by default" am: 8e10408ccf
am: 4ce86efb67

Change-Id: I365c12d947a1624e35cf9fb0480409870c315e85
2018-03-24 06:53:51 +00:00
Rahul Chaudhry
eae3a62827 Merge "Revert "Disable relocation_packer and migrate to SHT_RELR sections."" am: fd5059ff10
am: c9e08d397c

Change-Id: I845618811532032f7d9193e954ecf750041f2aa6
2018-03-24 06:52:47 +00:00
Logan Chien
b7515421d1 Use PlatformVndkVersion to find ABI dump by default
This commit changes "current" to ctx.DeviceConfig.PlatformVndkVersion().
This change make it possible to place ABI dumps in
prebuilts/abi-dumps/vndk/${version} instead of
prebuilts/abi-dumps/vndk/current.

If BOARD_VNDK_VERSION is not specified or is equal to "current",
PLATFORM_VNDK_VERSION (either PLATFORM_SDK_VERSION or
PLATFORM_VERSION_CODENAME) will be chosen.  Currently,
BOARD_VNDK_VERSION is always equal to "current" because both system and
vendor images are built in a single source tree.

In the future, if the system image and vendor images are separately
built in different source trees, BOARD_VNDK_VERSION will be set to other
values and we should respect that value.

Test: Create an ABI dump under
prebuilts/abi-dumps/vndk/${PLATFORM_VNDK_VERSION}, make some ABI
breakages, and see whether the checks are working.

Bug: 76036094

Merged-In: I6242e0c71ebd9acd5c4a3497c67539cb3e6663f3
Change-Id: I6242e0c71ebd9acd5c4a3497c67539cb3e6663f3
(cherry picked from commit a8f5158594)
2018-03-23 16:31:04 -07:00
Rahul Chaudhry
ccf4f83887 Revert "Disable relocation_packer and migrate to SHT_RELR sections."
This reverts commit fa00dfda13.

Reason for revert: New Build Breakages in git_pi-dev-plus-aosp-without-vendor/aosp_walleye-userdebug and git_pi-dev-plus-aosp/aosp_crosshatch-userdebug

Change-Id: Iec9e695cccc3f206df67f0c01cfd4c2c3023dcec
2018-03-23 19:02:56 +00:00
Rahul Chaudhry
b007f56ba8 Merge "Disable relocation_packer and migrate to SHT_RELR sections." am: 71bfb262b9
am: 6ad7e6a605

Change-Id: Ic0c3e14c3e1b3e91f45572134e45b9f865180d07
2018-03-23 17:53:05 +00:00
Dan Willemsen
b785b61621 Allow proto properties in cc/java_defaults
(cherry picked from commit 6424d17a2d)

Bug: 73175642
Test: Add proto.canonical_path_from_root: true in a cc_defaults
Test: Add proto.canonical_path_from_root: true in a java_defaults
Merged-In: I9ddfc8af0025705a34b6e487225f1f98915054c3
Change-Id: I9ddfc8af0025705a34b6e487225f1f98915054c3
2018-03-22 20:51:04 -07:00
Rahul Chaudhry
fa00dfda13 Disable relocation_packer and migrate to SHT_RELR sections.
Proposal for adding SHT_RELR sections in the generic-abi is at
https://groups.google.com/forum/#!topic/generic-abi/bX460iggiKg

Comparison with relocation_packer for aosp_marlin-userdebug:
$ du -B1 -s */out/target/product/marlin/system
 996958208      base/out/target/product/marlin/system
1008340992      no_pack/out/target/product/marlin/system
 997801984      sht_relr/out/target/product/marlin/system

base contains a build with current settings.
no_pack contains a build with relocation_packer disabled.
sht_relr contains a build with SHT_RELR sections enabled.

relocation_packer was saving 11,382,784 bytes (no_pack - base).
SHT_RELR sections are saving 10,539,008 bytes (no_pack - sht_relr).

Bug: None
Test: Built aosp_marlin-userdebug image, boots on device.
Test: Built aosp_x86_64-userdebug image, boots in emulator.
Change-Id: I448dc95baa4976b68ce2659b80498539426775f9
2018-03-22 15:17:34 -07:00
Ivan Lozano
3cc0480d16 Merge "Add minimal-runtime support for integer overflows." into pi-dev 2018-03-22 20:17:38 +00:00
Ivan Lozano
954f430e97 Add minimal-runtime support for integer overflows.
Adds Soong support for -fsanitze-minimal-runtime when using
the integer overflow sanitizers. This makes the crashes due to these
sanitizers less mysterious.

Bug: 64091660
Test: Compiled and checked the generated compiler commands
Test: Checked program that overflows for the abort reason

Change-Id: Ieeceaf6c35c8371592952d3b8b977aefc11601c5
Merged-In: Ieeceaf6c35c8371592952d3b8b977aefc11601c5
(cherry picked from commit 30c5db2f47)
2018-03-21 10:04:53 -07:00
Logan Chien
a8f5158594 Use PlatformVndkVersion to find ABI dump by default
This commit changes "current" to ctx.DeviceConfig.PlatformVndkVersion().
This change make it possible to place ABI dumps in
prebuilts/abi-dumps/vndk/${version} instead of
prebuilts/abi-dumps/vndk/current.

If BOARD_VNDK_VERSION is not specified or is equal to "current",
PLATFORM_VNDK_VERSION (either PLATFORM_SDK_VERSION or
PLATFORM_VERSION_CODENAME) will be chosen.  Currently,
BOARD_VNDK_VERSION is always equal to "current" because both system and
vendor images are built in a single source tree.

In the future, if the system image and vendor images are separately
built in different source trees, BOARD_VNDK_VERSION will be set to other
values and we should respect that value.

Test: Create an ABI dump under
prebuilts/abi-dumps/vndk/${PLATFORM_VNDK_VERSION}, make some ABI
breakages, and see whether the checks are working.

Bug: 76036094
Change-Id: I6242e0c71ebd9acd5c4a3497c67539cb3e6663f3
2018-03-21 14:54:31 +08:00
Colin Cross
61ea4cf419 Merge "Mark generated renderscript header files as implicit outputs" am: bfe65a32bb
am: 3e7c9ec5b3

Change-Id: I0dc4a12032a175eea3afbeef8ae04c526f479f2c
2018-03-20 08:22:50 +00:00
Treehugger Robot
bfe65a32bb Merge "Mark generated renderscript header files as implicit outputs" 2018-03-20 08:04:32 +00:00
Colin Cross
80e6054eab Mark generated renderscript header files as implicit outputs
If a generated renderscript header is referenced by a cpp file
clang will insert a depsfile dependency on the header.  If the
generator rule does not include the header as an output, ninja
will not consider the cpp file dirty after the generator runs,
and not rebuild it.  On the next build, it will see that the
timestamp of the generated header is new and consider the cpp
file dirty.

Mark the header files as implicit outputs of the generator.

Bug: 75982985
Test: m libstagefright_mediafilter
      touch frameworks/av/media/libstagefright/filters/saturationARGB.rs
      m libstagefright_mediafilter
      m libstagefright_mediafilter

Change-Id: I3ac899322fe9cae2a6e4171092740339ef844494
2018-03-19 22:44:29 -07:00
Yi Kong
155ee3fcf9 Merge "Add opt-in option to turn on ThinLTO caching" am: 04a0fe3245
am: 341f92df33

Change-Id: Ic69ee703e467ea3570fb22102261105599e716ac
2018-03-19 22:26:54 +00:00
Yi Kong
04a0fe3245 Merge "Add opt-in option to turn on ThinLTO caching" 2018-03-19 22:03:15 +00:00
Chih-Hung Hsieh
63eb06037a Merge "Use armv7a-linux-androideabi for arm device triple." am: 4d693a7a27
am: ada684f304

Change-Id: I6055f1e39c3bb843b30199c8a0a58bf048203b46
2018-03-19 21:08:49 +00:00
Chih-Hung Hsieh
1e7d1bf1c7 Use armv7a-linux-androideabi for arm device triple.
* This is a workaround of llvm LTO bug.
* Keep using current NDK include directory path.
  NDKTriple is default ClangTriple but kept as GccTriple for arm device.

Bug: 72619014
Test: make checkbuild
Change-Id: I5dc63c99760325c60bc2da98fd6a3125cef7267d
2018-03-19 11:19:06 -07:00
Logan Chien
b1ed497ca8 Add unit tests for android/neverallow.go
Bug: 74506774
Test: lunch aosp_walleye-userdebug && make  # runs unit tests

Merged-In: Ibde685d7213713be219681cb039ad58a43d9c377
Change-Id: Ibde685d7213713be219681cb039ad58a43d9c377
2018-03-16 17:45:42 +08:00
Logan Chien
d44aa3b5c8 Extract failIfErrored() to android/testing.go
Bug: 74506774
Test: lunch aosp_walleye-userdebug && make  # runs unit tests

Merged-In: I1c09412d5988dca2cc1c5f041893b313ab1c163a
Change-Id: I1c09412d5988dca2cc1c5f041893b313ab1c163a
2018-03-16 17:45:42 +08:00
Logan Chien
2ced34b14e Merge changes I406c5bef,Ibde685d7,I1c09412d am: 45d4f09f2f
am: 6eaae1a84a

Change-Id: I1cf47a14f8245d01a783d98cff0c2fec46e1193b
2018-03-16 02:19:45 +00:00
Logan Chien
45d4f09f2f Merge changes I406c5bef,Ibde685d7,I1c09412d
* changes:
  Allow VNDK extensions under vendor or device
  Add unit tests for android/neverallow.go
  Extract failIfErrored() to android/testing.go
2018-03-16 01:57:31 +00:00
Logan Chien
ee97c3ed75 Add unit tests for android/neverallow.go
Bug: 74506774
Test: lunch aosp_walleye-userdebug && make  # runs unit tests
Change-Id: Ibde685d7213713be219681cb039ad58a43d9c377
2018-03-15 11:02:38 +08:00
Logan Chien
4203971351 Extract failIfErrored() to android/testing.go
Bug: 74506774
Test: lunch aosp_walleye-userdebug && make  # runs unit tests
Change-Id: I1c09412d5988dca2cc1c5f041893b313ab1c163a
2018-03-15 11:02:38 +08:00
Dan Willemsen
15b159179d Add DistPath to reference the dist folder am: bc0c509267
am: bb8f0eed0f

Change-Id: Ic15f59a508065bbc2ef139413cdc76f49886fd3a
2018-03-14 00:33:38 +00:00
Dan Willemsen
74edf2fdbe Switch PackageContext functions to take a ctx am: 54daaf0371
am: f34acc112e

Change-Id: I11d13250bbe1b40179b764799ca607b2bacc607b
2018-03-14 00:33:31 +00:00
Yi Kong
8aeaa7158a Add opt-in option to turn on ThinLTO caching
Allow developers to enable ThinLTO caching on their local build by
setting USE_THINLTO_CACHE environment variable.

This significantly speeds up incremental ThinLTO builds by caching
intermediate results. An incremental ART build (by `touch
compiler/compiler.cc`) reduced from 01:32 to 00:45.

We put the cache under out/soong/thinlto-cache as the cache can be
valid across different targets, and allows us to set a global cache
pruning policy.

The current cache policy is sufficient for current list of
ThinLTO-enabled projects, we can tune it up/down in the future.

Test: USE_THINLTO_CACHE=true m
Bug: 62839002
Change-Id: I4838fe833a1d8fbc73d743da6d19e3698dc89600
2018-03-12 16:54:58 -07:00
Dan Willemsen
bc0c509267 Add DistPath to reference the dist folder
Instead of open-coding the logic of whether there is one, or where to
find it.

Test: diff out/soong/build.ninja without dist
Test: diff out/soong/build.ninja with dist specified
Change-Id: Ia3f1ef335e2d6e2175343338d04867d778a50300
2018-03-12 15:48:30 -07:00
Dan Willemsen
54daaf0371 Switch PackageContext functions to take a ctx
So that the Path and similar functions can be used directly, without
manually adding something like configErrorWrapper (it just uses it all
the time now).

Test: out/soong/build.ninja is identical
Change-Id: I8cb524b09a84d0b8357d7c3501c71270af411e17
2018-03-12 15:48:26 -07:00
Dan Willemsen
04f97ce059 Remove obsolete Brillo variable am: a052599bb6
am: 567eda6a7d

Change-Id: I69edc621c71a4a5dc80595392b8914e1cca07e52
2018-03-12 22:04:12 +00:00
Dan Willemsen
a052599bb6 Remove obsolete Brillo variable
Test: none
Change-Id: I6a5ce57b317f0cdae1abef15def01e6a31e18d3e
2018-03-10 15:29:03 -08:00
Dan Willemsen
961d48233d Merge "Use xz prebuilt" am: 9c6bc37da1
am: f1f4fca756

Change-Id: Ifb1f626935e89dae2fe65b4fec67a24de70d49d1
2018-03-10 03:12:13 +00:00
Treehugger Robot
9c6bc37da1 Merge "Use xz prebuilt" 2018-03-10 03:00:29 +00:00
Pirama Arumuga Nainar
fb7f985c84 Use a versioned profile file if available
Bug: http://b/74395273

Update profile-search logic to look for profile files named
<profile_file>.<arbitrary-version> in the profileProject and use that if
available.  This works around an issue where ccache serves stale cache
entries when the profile file has changed.

Test: touch toolchain/pgo-profiles/art/dex2oat.profdata.foo and check it
gets used.

Change-Id: I3de095c263b952cede25af7d0b63dc7280914d76
Merged-In: I3de095c263b952cede25af7d0b63dc7280914d76
(cherry picked from commit 8aed42c798)
2018-03-09 13:18:28 -08:00
Dan Willemsen
0944244d42 Merge "Revert "Fix absolute paths in clang debug output"" am: 19e62e5ebf
am: 6efd825af7

Change-Id: I3c7bd0f5f22289b926ea4d1c841c4f1c79e71cd0
2018-03-09 21:16:04 +00:00