Commit Graph

5643 Commits

Author SHA1 Message Date
Colin Cross
88f36bb683 Fix ordering of overlays
am: 68a7023436

Change-Id: I39cc6eb00b4a9d9607ad689472de96ae8273bbbb
2018-01-05 03:09:05 +00:00
Colin Cross
b88d9eedb4 Add EMMA_INSTRUMENT_STATIC support
am: 3144dfc966

Change-Id: I582b450f357c65d5610fb4c877bf56563cc8cae5
2018-01-04 23:09:14 +00:00
Colin Cross
68a7023436 Fix ordering of overlays
Device overlays are passed to Soong in highest priority to lowest
priority order, but aapt2 keeps the last value provided on the
command line.  Reverse the order that overlayGlobResults are
collected.

Bug: 71595164
Test: app_test.go
Change-Id: Ibc6b8297f1548766c5c92f3be969b89736dc8dff
2018-01-04 14:52:45 -08:00
Colin Cross
3144dfc966 Add EMMA_INSTRUMENT_STATIC support
Add jacocoagent when instrumenting with EMMA_INSTRUMENT_STATIC.

Test: m EMMA_INSTRUMENT=true EMMA_INSTRUMENT_STATIC=true
Change-Id: I451bb9d16b7f0a66fd06c2da576062b28830e470
2018-01-04 14:52:45 -08:00
Colin Cross
9ef9ffb0d0 Merge "Fix crash on test failure"
am: e7fa3b1b74

Change-Id: I7dfa51b4d937070aaaa4ccda44c794dd726fe9c0
2018-01-04 20:41:53 +00:00
Treehugger Robot
e7fa3b1b74 Merge "Fix crash on test failure" 2018-01-04 20:35:38 +00:00
Alan Leung
a7fc3b6e83 Make D8 Desugaring default.
am: e2fb6294e9

Change-Id: Ie918214ecc74185548a500df7cc7b4a55253e41d
2018-01-04 19:44:06 +00:00
Alan Leung
e2fb6294e9 Make D8 Desugaring default.
Bug: 69329508
Test: m checkbuild

Change-Id: Ie74c2b27764aa5f2d60a0d33141735808bbc6d48
2018-01-04 11:36:27 -08:00
Chih-hung Hsieh
dc15e3487e Merge "Call clang-tidy with -fno-caret-diagnostics by default."
am: 0d9868c9af

Change-Id: I76a6fa4cbe08c9a63a43a61d81d541eb5cde4665
2018-01-04 19:10:03 +00:00
Chih-hung Hsieh
0d9868c9af Merge "Call clang-tidy with -fno-caret-diagnostics by default." 2018-01-04 19:05:16 +00:00
Tobias Thierer
dd037898a4 Merge "Build with OpenJDK 9 -target 1.8 by default (attempt 4)."
am: 04ddd45f4a

Change-Id: Ia53d9644db1b9e528ab1321e02d955b2a4a1044f
2018-01-04 11:25:03 +00:00
Tobias Thierer
04ddd45f4a Merge "Build with OpenJDK 9 -target 1.8 by default (attempt 4)." 2018-01-04 11:18:11 +00:00
Tobias Thierer
18099fd856 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 13f23a2753)

Change-Id: I57abae73f9bdb21ef004a5118ff0e4ef70418ed9
Merged-in: Iac78122f58df0ebbb55134d55021ce6c57351b5f
2018-01-04 11:07:38 +00:00
Chih-Hung Hsieh
669cb9150e 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.

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

Change-Id: I34e34cddc0e7329e73b5f04da4b1458dabfcd4c8
2018-01-04 01:41:16 -08:00
Colin Cross
ce010f07f2 Merge "Fix jacoco_cli invocation"
am: 41b97b3001

Change-Id: I1f7c74aecadedd6f2cad89ba6ac5667d664041d2
2018-01-04 07:55:43 +00:00
Treehugger Robot
41b97b3001 Merge "Fix jacoco_cli invocation" 2018-01-04 07:49:52 +00:00
Jae Shin
36ea7e5a99 Add target_arch to vndk prebuilt module name
am: 43ef264b3a

Change-Id: I9a49f09385e533d6613184b2f55bfd04e52e0cd3
2018-01-04 02:09:46 +00:00
Jae Shin
43ef264b3a Add target_arch to vndk prebuilt module name
To distinguish libfoo.vndk.$VER prebuilts of various
vndk_v$VER_$ARCH phony package modules, append $ARCH to the
LOCAL_MODULE name for VNDK prebuilts.
e.g. libfoo.vndk.$VER becomes libfoo.vndk.$VER.$ARCH

Test: m -j PRODUCT_EXTRA_VNDK_VERSIONS=27
Bug: 71370248
Change-Id: I3e9ebd929111ceb48e362c500adfb4b7a94444e8
2018-01-04 11:02:39 +09:00
Colin Cross
aedcfc98d3 Add R8 support
am: 66dbc0bc32

Change-Id: I75ea64dbeea6395597483998414b719d2cc8d6ad
2018-01-04 00:17:18 +00:00
Colin Cross
95d33fe631 Fix crash on test failure
Don't check objs[0] and objs[1] if len(objs) != 2.

Test: cc_test.go
Change-Id: I2ba459a683764691ebf28db3944d7a1e9088eb76
2018-01-03 16:03:06 -08:00
Colin Cross
84c3882e64 Fix jacoco_cli invocation
jacoco_cli --dest takes a directory, not a jar name, and assumes
an output file with the same name as the input jar in that
directory.  Rename jacoco-report-classes.jar to
jacoco-report-classes/modulename.jar, and generate to
jacoco/tmp/modulename.jar before combining to the final output file
at jacoco/modulename.jar.

Bug: 69669951
Test: m EMMA_INSTRUMENT=true
Change-Id: Ia7dd881d2819ae09dfb60a00b4c1b8396629cd9a
2018-01-03 16:02:47 -08:00
Colin Cross
66dbc0bc32 Add R8 support
Add support for R8 to optimize apps and java libraries.

Test: m checkbuild
Change-Id: I2afd5d7a84912d3ab613c32c599bd1ebe60562e0
2018-01-03 14:15:57 -08:00
Colin Cross
a5c0b08f75 Merge "Refactor dexing"
am: 10d9930c06

Change-Id: I8266e047520784b8b84fe0eafe5565b3c9749495
2018-01-03 22:06:17 +00:00
Colin Cross
10d9930c06 Merge "Refactor dexing" 2018-01-03 21:59:09 +00:00
Colin Cross
550a5f6de5 Merge "Move jacoco before desugar"
am: a5fcf862ce

Change-Id: Iad33ae53ed433a21c002e1090d04707e336a18dc
2018-01-03 20:57:09 +00:00
Colin Cross
a5fcf862ce Merge "Move jacoco before desugar" 2018-01-03 20:50:50 +00:00
Colin Cross
5ba8a37e54 Merge "Update jacoco command line flags for latest version"
am: 82d1aee779

Change-Id: I96f66145b23210fd27fa9634927250d9806c5047
2018-01-03 19:57:56 +00:00
Colin Cross
82d1aee779 Merge "Update jacoco command line flags for latest version" 2018-01-03 19:45:55 +00:00
Colin Cross
193524e978 Pass OpenJDK 8's bootclasspath for host tools targeting <= 1.8.
am: 7fdd2b788c

Change-Id: Idbf1dd105dcb8bae22f8ff3acbf3fe01c911f5de
2018-01-03 05:12:34 +00:00
Colin Cross
3b986ef4e3 Add VisitDirectDepsWithTag
am: ee6143cde2

Change-Id: If146c812a022ca87d43c5e3843997edba1b550ac
2018-01-03 02:31:05 +00:00
Colin Cross
7fdd2b788c Pass OpenJDK 8's bootclasspath for host tools targeting <= 1.8.
Follow the Make change in I9b6081edfdd2c3e9a450ae8a39c4e32c3d2cda92
to explicitly pass the OpenJDK 8 bootclasspath when targeting <= 1.8.

Bug: 70862583
Test: java_test.go
Test: javap -c -p out/soong/.intermediates/external/guava/guava/linux_glibc_common/javac/classes/com/google/common/hash/AbstractStreamingHashFunction\$AbstractStreamingHasher.class  | grep ByteBuffer.flip
      shows java/nio/Buffer return type in signature.

Change-Id: Ief66bbf6e3a4220b3afb2e02009bd0157d4c7fae
2018-01-02 18:23:43 -08:00
Colin Cross
f0056cb2ed Refactor dexing
Move dexing support into java/dex.go, including the rules and logic
from builder.go and the function from java.go.

Test: no change to build.ninja
Change-Id: I098d2a9774e28079ba44791679a0db6f876fe3e6
2018-01-02 18:23:43 -08:00
Colin Cross
e6ddff68be Move jacoco before desugar
R8 will replace desugar+proguard+dx, which will mean jacoco has to
run before desugar.  In preparation, move jacoco before desugar now.

Test: m EMMA_INSTRUMENT=true EMMA_INSTRUMENT_FRAMEWORK=true SKIP_BOOT_JARS_CHECK=true WITH_DEXPREOPT=false tests
Change-Id: I5d98d2300ce83496f9b82c9b973f679701448474
2018-01-02 18:23:43 -08:00
Colin Cross
ee6143cde2 Add VisitDirectDepsWithTag
Add a method on ModuleContext and TopDownMutatorContext to visit
direct dependencies that have a given dependency tag.

Test: m checkbuild
Change-Id: Ib875563091dcae6b7282b3e3427d0eb07d8c8af5
2018-01-02 18:23:43 -08:00
Colin Cross
cda9710157 Move string list utility functions to android package
am: b4330e222b

Change-Id: Ie94e23c3005da8a9f1597b7582bc9abaa8038016
2017-12-28 19:27:04 +00:00
Colin Cross
b4330e222b Move string list utility functions to android package
Test: m checkbuild
Change-Id: I50a7ccf9fd7ed82b688e3eb90489c0bc0af33287
2017-12-28 17:41:02 +00:00
Colin Cross
1535b003a1 Merge "Reimplement ioutil.ReadDir with a version that avoids calling lstat"
am: ba5b43ee44

Change-Id: I09cf6e5b0925f44b33ce52c83263f00a52d778a5
2017-12-27 23:06:54 +00:00
Colin Cross
ba5b43ee44 Merge "Reimplement ioutil.ReadDir with a version that avoids calling lstat" 2017-12-27 23:04:28 +00:00
Colin Cross
637ad1deaf Merge changes Id2749d70,Ie705f064
am: 737a7f66c3

Change-Id: If13c4ed2ededa15d2f8c12fe65ddfa8b44912c55
2017-12-23 02:50:09 +00:00
Treehugger Robot
737a7f66c3 Merge changes Id2749d70,Ie705f064
* changes:
  Add a DirEntryInfo interface that is a subset of os.FileInfo
  Move android/soong/fs to android/soong/finder/fs
2017-12-23 02:43:17 +00:00
Steven Moreland
c53f4ca97c Merge "neverallows in Soong"
am: 19454d50e3

Change-Id: Iadb0d3e72d85e1a856bf15bf1c4aaea2a282e973
2017-12-23 01:15:14 +00:00
Treehugger Robot
19454d50e3 Merge "neverallows in Soong" 2017-12-23 01:08:44 +00:00
Colin Cross
ae7fd6baf3 Reimplement ioutil.ReadDir with a version that avoids calling lstat
ioutil.ReadDir returns []os.FileInfo, which contains information on
each entry in the directory that is only available by calling
os.Lstat on the entry.  Finder only the name and type (regular,
directory or symlink) of the files, which on Linux kernels >= 2.6.4
is available in the return values of syscall.Getdents.

Replace ioutil.ReadDir with a call that uses syscall.Getdents
directly and collects the type information from the result.

Testing with:
rm -f /tmp/db && strace -fc finder -names Android.mk,Android.bp,Blueprints,CleanSpec.mk,TEST_MAPPING -exclude-dirs .git,.repo -prune-files .out-dir,.find-ignore -db /tmp/db .

Before:
  7.01   52.688304          63    833398         1 lstat
  1.90   14.246644          68    210523           getdents64
  1.25    9.370471          90    104286         1 openat

After:
  3.48   12.201385         117    104286         1 openat
  3.06   10.729138          51    210523           getdents64
  1.70    5.951892          57    104283         1 lstat

Pros:
Avoids 729115 calls to lstat.

Cons:
Requires copying ~200 lines of finicky buffer parsing code.
Puts all getdents calls (and possibly fallback lstat calls) onto
a non-blocking file descriptor, which will cause it to block a
thread and not just a goroutine.
Only works on Linux and Darwin.

Bug: 70897635
Test: m checkbuild
Change-Id: Iab9f82c38c8675d0b73b4e90540bb9e4d2ee52c1
2017-12-22 13:56:17 -08:00
Colin Cross
a88c883e3e Add a DirEntryInfo interface that is a subset of os.FileInfo
ioutil.ReadDir returns []os.FileInfo, which contains information on
each entry in the directory that is only available by calling
os.Lstat on the entry.  Finder only the name and type (regular,
directory or symlink) of the files, which on Linux kernels >= 2.6.4
is available in the return values of syscall.Getdents.

In preparation for using syscall.Getdents, switch filesystem.ReadDir
to return an interface that only contains the information that will
be available from syscall.Getdents.

Bug: 70897635
Test: m checkbuild
Change-Id: Id2749d709a0f7b5a61abedde68549d4bf208a568
2017-12-22 13:56:17 -08:00
Colin Cross
8d6395c09d Move android/soong/fs to android/soong/finder/fs
The fs package is specific to finder, move it inside finder.

Bug: 70897635
Test: m checkbuild
Change-Id: Ie705f064a832141702a8e87fd59ed75c01018504
2017-12-22 13:56:17 -08:00
Colin Cross
8010cbf6bb Strip module-info.class files when combining jars
am: 7b60cdd6e5

Change-Id: I3385a72716142df0047f7f99bf3270808e7ae7e2
2017-12-22 06:16:52 +00:00
Colin Cross
4d9b7af491 Remove --no-locals -> --release translation
am: c5de1b6cb2

Change-Id: I05bdbbee3fa9e18fbc376583f4bb9f68f46acf15
2017-12-22 03:29:27 +00:00
Colin Cross
6abc973a9c Update jacoco command line flags for latest version
jacoco_cli wants --quiet and --dest instead of -quiet and -dest.

Bug: 69669951
Test: m EMMA_INSTRUMENT=true EMMA_INSTRUMENT_FRAMEWORK=true SKIP_BOOT_JARS_CHECK=true WITH_DEXPREOPT=false tests
Change-Id: I72b3d0a21c5fa02a58914953d3d794065f59bd18
2017-12-21 14:29:56 -08:00
Colin Cross
7b60cdd6e5 Strip module-info.class files when combining jars
Combining static jars from dependencies may bring in module-info.class
files, which don't make sense once multiple modules have been combined,
and sometimes confuse downstream tools like desugar.  Strip them out
like make does when combining jars.

Test: m checkbuild
Change-Id: I560c5acfcc6e1be9adf604c22cf200581f92f702
2017-12-21 14:29:56 -08:00
Colin Cross
c5de1b6cb2 Remove --no-locals -> --release translation
--no-locals is never used any more, remove the translation.

Bug: 70886092
Test: m checkbuild
Change-Id: Ie89aaad618c12c288d7e7bca863834cf7ee824fb
2017-12-21 13:01:49 -08:00