Commit Graph

14944 Commits

Author SHA1 Message Date
Treehugger Robot eb38b51733 Merge "Add boot.art.rel files to system image" 2018-01-19 05:14:36 +00:00
Jaekyun Seok 0538ff796f Enforce PRODUCT_COMPATIBLE_PROPERTY for products shipping with Android P
PRODUCT_COMPATIBLE_PROPERTY will be set as true for products shipping
with Android P, and ro.actionable_compatible_property.enabled will be set
as a system default property accordingly.
But if PRODUCT_ACTIONABLE_COMPATIBLE_PROPERTY_DISABLE is set,
ro.actionable_compatible_property.enabled will be false.

Bug: 38146102
Test: tested on walleye with PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE=true
Merged-In: Ifc1279a360b140c4d94edd32db7de3c6c7317297
Change-Id: Ifc1279a360b140c4d94edd32db7de3c6c7317297
(cherry picked from commit 2528cd26c0)
2018-01-18 21:11:53 +09:00
Alex Klyubin d616e0e820 Add boot.art.rel files to system image
This file is used to verify that all differences between /system
boot*.art and /data/dalvik-cache boot*.art only consist of relocation
changes. The goal is to mitigate /data/dalvik-cache boot*.art files
being a persistence vector.

Test: Build and ensure boot.art.rel files are on the image.
Bug: 66697305
Change-Id: I41486dd541e429f2f2b4c4a521009ee5e81e50b9
2018-01-17 15:20:06 -08:00
Mathieu Chartier 8fd29b3653 Don't default my_use_profile_for_boot_image to true for PDK builds
This causes an unsatisfiable dependency on frameworks/base.

Bug: 67663308
Test: make

(cherry-picked from commit 83bae866e6)

Change-Id: Iba0c3893b49386591f84eb893abf0b577b9716a0
Merged-In: I06e45e8ca66ab6547bf1df25119dda80d44e50f6
2018-01-16 20:02:27 -08:00
Mathieu Chartier ce94494b93 Enable profile based boot image by default
Use profile based boot image instead of the compiled classes version.

Results using profile from ag/2815407
Storage savings:
Boot art+vdex+oat size: 78305556->61539326 (-17MB)

New system server profile has more methods (1.5MB -> 4MB oat) since it
has more coverage from use cases.

Ram savings (sample averages for CUJ test):
Average PSS of 3 runs (~100 samples total):
.Boot_vdex: 9359K -> 9902K
.oat_mmap: 21857K -> 13372K
.Heap: 29779K -> 29483K
.Boot_art: 15736K -> 18096K
.LinearAlloc: 9112K -> 8965K
Total PSS: 85846K -> 79819K (-6MB)

Average pages read from flash (512MB device) for CUJ tests (3 samples):
1508MB -> 1183MB

Bug: 37966211
Test: make and flash

(cherry-picked from commit bf9023ae7a)

Change-Id: Icf3039ef871b68d806ef7b7c8ad2220c3a37ce90
Merged-In: Id8f9b08490a50e2ccf39e8acc00b0c4e8ec782b0
2018-01-16 20:02:18 -08:00
Stephen Hines 504bd79e86 Merge "Remove unnecessary USE_CLANG_PLATFORM_BUILD." 2018-01-12 18:19:45 +00:00
Treehugger Robot ba4641931b Merge "Disable availability macros in libc++ on Darwin." 2018-01-11 23:44:22 +00:00
Dan Shi 6704727b69 Merge "Add a flag to disable auto-generating test configs." 2018-01-11 22:59:39 +00:00
Stephen Hines 178cf8e4d4 Remove unnecessary USE_CLANG_PLATFORM_BUILD.
This build variable is unnecessary now that GCC is completely
unsupported for Android platform builds.

Bug: http://b/64032869
Test: Builds
Change-Id: I9d44ebd7129cb2bdfbb26d37922db19c6fb9efc9
2018-01-11 14:29:23 -08:00
Dan Albert 9262b6fead Disable availability macros in libc++ on Darwin.
libc++'s headers are annotated with availability macros that indicate
which version of Mac OS was the first to ship with a libc++ feature
available in its *system's* libc++.dylib. We do not use the system's
library, but rather ship our own. As such, these availability
attributes are meaningless for us but cause build breaks when we try
to use code that would not be available in the system's dylib.

Test: removed the darwin check and checked showcommands on linux
Bug: None
Change-Id: I5f69f337baa29fcdf84b5e2fe46bf4f85904d1cd
2018-01-11 13:24:32 -08:00
Dan Shi 2035abfb8d Add a flag to disable auto-generating test configs.
Bug: 71714007
Test: m -j <module for *ts suite>
m -j NotificationStressTests
confirm NotificationStressTests.config generated

Change-Id: I372a227a07633ab8d335a8435baf5dd6081bb27e
2018-01-11 11:22:52 -08:00
Yifan Hong 1e7ab9db8f Merge "framework_cm.xml: move to hardware/interfaces" 2018-01-11 19:14:24 +00:00
Treehugger Robot 38228f2156 Merge "Switch back to llvm-ar." 2018-01-11 07:36:07 +00:00
Yifan Hong 919dcf1b6e framework_cm.xml: move to hardware/interfaces
Test: m dist
Bug: 69636193

Change-Id: Ic15a445d700552cb0973d6919ed5843bdecba363
2018-01-10 16:32:04 -08:00
Stephen Hines d612b8329a Switch back to llvm-ar.
This properly sets -format=gnu for all non-Darwin targets, because
llvm-ar is cross-platform (but defaults to the host environment).

Bug: http://b/71618641
Test: m checkbuild
Change-Id: Ib5d1c112a4ac792a11d1a0721ae6b0a5f9a42727
2018-01-10 15:55:52 -08:00
Dan Willemsen 08dc8498fe Merge "Switch to build-tools bison" 2018-01-10 21:49:28 +00:00
Treehugger Robot 9eba210e23 Merge "Remove support for stlport." 2018-01-10 00:12:48 +00:00
Treehugger Robot 8d3fde909e Merge "base_rules.mk: Don't use is_native for MULTILIB modules." 2018-01-09 05:05:30 +00:00
Treehugger Robot 139f458ced Merge "Remove armv5te" 2018-01-09 03:18:34 +00:00
Dan Willemsen ecae349e19 Switch to build-tools bison
Test: m
Test: mma external/dtc
Change-Id: Ia8e837f77238cb07e23de24f98c77aba9ff0f8dd
2018-01-08 17:38:33 -08:00
Dan Willemsen dd3a27394f Remove armv5te
This architecture only existed for unbundled use, but even the NDK is
removing support in their r17 release, so just remove support for it.

Test: build/soong/build_test.bash -only-config
Test: check buildserver configs, I don't see anything still using armv5
Change-Id: Ic183b510c9ada94438bd4cc2b9362fa438a29ced
2018-01-08 15:26:16 -08:00
Simran Basi 7160b06db9 base_rules.mk: Don't use is_native for MULTILIB modules.
Currently we determine if a test artifact has multiple build
outputs by checking if it is NATIVE_TEST, NATIVE_BENCHMARK, or
LOCAL_MULTILIB and declare the module is_native.

This is technically not true therefore let's use a different
variable to determine if we need multiple architecture directories.

Bug: 71554249
Test: make sl4a -j ; Results in an autogenerated empty configuration file.
Change-Id: I17c8f3ef7e1cd502b57e25c71688f12a35a9787d
2018-01-08 13:03:07 -08:00
Dan Albert 1759e2d2f1 Fix allowed STL types for system libraries.
Static libraries using the system STL have type
native:ndk:system:none, not native:ndk:system:shared, since no
actually linking takes place. These are still allowed to be linked to
platform modules.

Test: make checkbuild
Bug: None
Change-Id: Ib999bb0f422ec3938daa740fca5681e153d6525a
2018-01-08 12:42:20 -08:00
Yi Kong 259b2741bb Merge "Revert "Switch to llvm-ar"" 2018-01-08 19:51:19 +00:00
Yi Kong 4f2e033447 Revert "Switch to llvm-ar"
This reverts commit 5128702ed3.

Bug: 71694982
Reason for revert: Broke Mac build

Change-Id: I1044eccf943bae3c99e7527bd13989c70743b3d4
2018-01-08 18:09:54 +00:00
Yi Kong 9e700abdfa Merge "Switch to llvm-ar" 2018-01-05 22:54:53 +00:00
Dan Albert 19fbd1ce39 Remove support for stlport.
Test: make checkbuild
Bug: None
Change-Id: Iaaaecbe2608fe7a880236f3bbad0fcfcf62b5096
2018-01-05 11:49:43 -08:00
Dan Albert 94f95cf504 Remove support for gnustl.
Test: make checkbuild
Bug: None
Change-Id: Iaddd40b32f84395a76efaaa74be38770085617d5
2018-01-05 11:49:43 -08:00
Dan Albert 4297c39e75 Also restrict NDK linking by static/shared STL.
Test: make checkbuild
Bug: None
Change-Id: I0eb29ec483c069d1c12f444fd2e94cc6eb320f93
2018-01-05 11:49:43 -08:00
Stephen Hines 5128702ed3 Switch to llvm-ar
llvm-ar is required for platform LTO build.

With GNU ar, we used crsPD flags, however 'P' flag is not supported by
llvm-ar. Since none of the platform archive files are built using third
party AR, the 'P' flag should not matter to us. However we've been
relying on one side-effect of 'P', where  'ar foo.a some/path/to/obj.o'
when foo.a already has a file named 'obj.o' will be an append operation,
regardless whether the existing one is the same (ar has no way of
telling the difference). We workaround this by always appending ('q'
flag) for llvm-ar. This may result in larger intermediate archive files
(more duplication) but will not affect the final build result.

Bug: 71618641
Test: m checkbuild
Change-Id: Id96a244cfe49cecfba08cc868dd18934ecb4ff23
2018-01-04 23:50:17 -08:00
Colin Cross 96029a1276 Merge changes I9fda7fe3,I0a34b2b4,Ie64a283d
* changes:
  Clear resource_export_package outside conditionals
  Fix adbs after move from build/tools to build/make/tools
  Use proguard.jacoco.flags for EMMA_INSTRUMENT_STATIC
2018-01-05 06:22:35 +00:00
Jae Shin 8b759c08ca Merge changes Ida449978,I8c6953f1
* changes:
  Apply snapshot variant to vndk package module name
  Additionally package TARGET_2ND_ARCH variants
2018-01-05 01:16:06 +00:00
Justin Yun 4dff0c6974 BOARD_VNDK_RUNTIME_DISABLE must not be "true" for VNDK snapshot
When generating VNDK snapshot, BOARD_VNDK_RUNTIME_DISABLE must not be
'true' to have correct ld.config.txt file.

Bug: 71349776
Test: lunch aosp_arm64_ab-user; make -j vndk dist
Change-Id: I20b14addb2f4a191134a1a9943e328566ca48424
2018-01-05 09:40:47 +09:00
Colin Cross ab61f213e0 Clear resource_export_package outside conditionals
$(resource_export_package) is used by package_internal.mk outside
ifeq ($(need_compile_res),true), but only cleared inside the
conditional.  This causes unnecessary dependencies to be added
to an old value of $(resource_export_package).  In rare cases,
the dependency can be on itself, causing a dependency loop.

Bug: 71571462
Test: m checkbuild
Change-Id: I9fda7fe3bf9d208ad4ba2f8cdb184034bf43f044
2018-01-04 14:32:14 -08:00
Dan Albert 975e303ad2 Restrict NDK link type to matching STLs.
Test: make native
Bug: None
Change-Id: Ie9d9107fe0eeb425843ae2db197e1c60d14a59ca
2018-01-04 12:51:34 -08:00
Treehugger Robot b0f4677748 Merge "Apply change in prebuilt names for config files" 2018-01-04 20:16:36 +00:00
Chih-hung Hsieh bd69b7daa7 Merge "Call clang-tidy with -fno-caret-diagnostics by default." 2018-01-04 19:07:15 +00:00
Treehugger Robot ce5e4e251e Merge "Mark ANDROID_BUILD_TOP as obsolete" 2018-01-04 13:35:34 +00:00
Tobias Thierer 1644e2f1b7 Merge "Build with OpenJDK 9 -target 1.8 by default (attempt 4)." 2018-01-04 11:18:11 +00:00
Tobias Thierer 294111393e Build with OpenJDK 9 -target 1.8 by default (attempt 4).
This is cherry-picked from attempt 3, which was reverted
due to http://b/70862583.

Before this CL topic, the build toolchain for .java source files
used OpenJDK 8, targeting 1.8 (v52 class files) by default.

This CL topic switches the default to OpenJDK 9, but still
targeting 1.8 (v52 class files) by default. If USE_ERROR_PRONE
is set to true, then the default remains OpenJDK 8.

Code in the Android platform should generally be unaffected,
but if host tools that are now compiled and run using
OpenJDK 9 are causing problems for your team, then let me
know.

To manually switch back to the old behavior for now (continue
using OpenJDK 8), run this command in your shell:
export EXPERIMENTAL_USE_OPENJDK9=false

Bug: 69449021
Test: Treehugger
Test: art/test/testrunner/run_build_test_target.py -j40 art-interpreter
Test: dalvik/dx/tests/run-all-tests

(cherry picked from commit ab1e54d5f1)

Change-Id: I119be15bd95747722114b970400b740fa47bf9e0
Merged-in: Ic42a518c90515b497e5cecec444ded373e403a4b
2018-01-04 11:08:14 +00:00
Chih-Hung Hsieh 4d31b9da8c Call clang-tidy with -fno-caret-diagnostics by default.
* clang -fno-caret-diagnostics
  suppresses warning source lines, carets, and
  the stats line of "n warnings generated"
* clang-tidy -extra-arg-before=-fno-caret-diagnotics
  only suppresses the "n warnings generated" line.
* Pass this flag and -quiet to clang-tidy when
  WITH_TIDY is not 1 or true.
* Remove redundant quotation marks around -extra-arg-before.

Bug: 69051430
Test: normal build and build with WITH_TIDY=1

Change-Id: I9021ee315edc977c15dda6ab246a00182f31fad1
2018-01-04 01:31:37 -08:00
Jae Shin 240d97a249 Apply snapshot variant to vndk package module name
VNDK snapshot phony package, vndk_v$VER, is redefined to
separate phony packages per VNDK snapshot build variant,
vndk_v$VER_$VARIANT, where $VARIANT is defined as the primary
$TARGET_ARCH of the build target.

Accordingly, top level Android.bp file under prebuilts/vndk/v$VER
is redefined as separate Android.bp files for each snapshot
variant at prebuilts/vndk/v$VER/$VARIANT/Android.bp.

Test: m -j PRODUCT_EXTRA_VNDK_VERSIONS=27 (after installing
snapshot to prebuilts/vndk/v27)
Bug: 71370248

Change-Id: Ida449978090fe8a4f16376c991d34fa0945be596
2018-01-04 10:23:19 +09:00
Jae Shin 893fca6e46 Additionally package TARGET_2ND_ARCH variants
Redefine VNDK snapshot top level dir with $(TARGET_PRODUCT) and
additionally package TARGET_2ND_ARCH build variants of libs since
they are needed by 32bit processes running on a 64bit device.

Test: m -j vndk dist
Bug: 71370248
Change-Id: I8c6953f1b52b61caf413559bab56b294479b6d86
2018-01-04 10:23:10 +09:00
Jae Shin 77c07dd6d0 Apply change in prebuilt names for config files
The suffix for VNDK config files ld.config.txt,
llndk.libraries.txt, and vndksp.libraries.txt has been changed to
*.$(PLATFORM_VNDK_VERSION).txt.

Refactor the paths-of-intermediates function such that instead of
parsing filenames from list of modules within the function,
provide the function a list of preprocessed
module_name:file_name pairs.

Bug: 70918357
Test: m -j vndk dist
Change-Id: I2d69b7822cef4c709e15a53f99c7ab2efb22406c
2018-01-04 10:07:30 +09:00
Dan Willemsen 07699636b0 Mark ANDROID_BUILD_TOP as obsolete
All users have been removed.

Test: check the build_test logs from aosp/master -> goog/master
Change-Id: I99e5630d7c13882c7667b0499c4f55633fa4535a
2018-01-03 15:15:38 -08:00
Colin Cross 5e0986cb51 Add R8 support to Soong.
Move R8_COMPAT_PROGUARD definition to Soong.
Copy the proguard_dictionary file so that the find
command that builds proguard_dict.zip can find it.

Test: m checkbuild
Change-Id: I28b2fce26ccb6225be0bd71802a43fe63df85daa
2018-01-03 14:21:35 -08:00
Colin Cross dc4a6b8513 Use proguard.jacoco.flags for EMMA_INSTRUMENT_STATIC
Add proguard.jacoco.flags whenever EMMA_INSTRUMENT_STATIC is set
so that com.vladium.emma.rt.RT is not stripped.

Test: m EMMA_INSTRUMENT=true EMMA_INSTRUMENT_STATIC=true
Change-Id: Ie64a283d95e8bbf426cd39675d70a3a58768ebc7
2018-01-03 14:21:35 -08:00
Colin Cross 20e06d25ac Fix dependency on Soong jacoco report classes
The dependency on the Soong jacoco report classes was mistakenly
using $(common_javalib.jar) which was never set, so was using
the value from the last module.  Use $(LOCAL_BUILT_MODULE)
instead.

Test: m checkbuild
Change-Id: If502d67f9e5e0c107de44e96cbf232406c027e44
2018-01-03 14:21:35 -08:00
Colin Cross 2c2cb33830 Merge "Remove LOCAL_PROGUARD_ENABLED := nosystem" 2018-01-03 22:20:41 +00:00
Colin Cross f9a1e6a72a Merge "Move jacoco before desugar" 2018-01-03 20:50:50 +00:00