Commit graph

5709 commits

Author SHA1 Message Date
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
dimitry
7edc7a525b Merge "Ignore 'extern "C++"' section in a version script"
am: cd406fa70b

Change-Id: Idacb70a08fd8cfb6e12ca296d4950a74d5045a70
2017-12-21 18:30:17 +00:00
Treehugger Robot
cd406fa70b Merge "Ignore 'extern "C++"' section in a version script" 2017-12-21 15:13:34 +00:00
Tobias Thierer
21421c5faa Merge "Make ANDROID_JAVA{8,9}_HOME available to config.mk."
am: 38501a959f

Change-Id: I1d711bec7da9943b8a7d070587669f9353d69a8b
2017-12-21 13:40:51 +00:00
Jiyong Park
0fffd6bca4 Merge "Add [soc|device|product]_specific"
am: 95fba1a8f8

Change-Id: I0b7ec832b7bdcf53e9fabad6bbd7a97d0cb77c5a
2017-12-21 13:39:42 +00:00
Colin Cross
4e914d70cd Fix jacoco filters
am: d7deceb8fa

Change-Id: Ia6e7171a7812796d323422c17c60fa26c95a53a0
2017-12-21 13:39:18 +00:00
Colin Cross
c99dbcbfd8 Add jacoco filter tests
am: 7a3139e05d

Change-Id: I76550d9f1f5fd9a038d91190c30b81e10a8d11b6
2017-12-21 13:39:14 +00:00
Tobias Thierer
38501a959f Merge "Make ANDROID_JAVA{8,9}_HOME available to config.mk." 2017-12-21 11:46:20 +00:00
Treehugger Robot
95fba1a8f8 Merge "Add [soc|device|product]_specific" 2017-12-21 09:02:20 +00:00
Colin Cross
d7deceb8fa Fix jacoco filters
Add space after -x argument for jacoco excludes.
Add .class to end of file name for jacoco includes.

Bug: 64836607
Test: jacoco_test.go
Change-Id: I4c1024755882c976f7326f7382c4f2e99a20233d
2017-12-21 04:34:46 +00:00
Colin Cross
7a3139e05d Add jacoco filter tests
Add tests for converting jacoco filters to command line arguments
to soong_zip.

Bug: 64836607
Test: jacoco_test.go
Change-Id: I969fa877e4be19bb92dcab5a796a4e4ec3fc166a
2017-12-21 04:34:26 +00:00
Nan Zhang
eec578939b Merge "Add -p, -e options in merge_zips for supporting par format."
am: 828001d59d

Change-Id: Iafbf89032534bd759592a5b2b191150f9400d7b7
2017-12-21 03:44:29 +00:00
Pirama Arumuga Nainar
29d92cef6d Merge "Add 'openmp' compiler property"
am: 91aa9f9d54

Change-Id: I6edc27d9d49d5cd347702fd70fd93f6e9afdabea
2017-12-21 03:43:55 +00:00
Dan Albert
526800c76c Merge "Update the NDK ARM ABI to armv7."
am: 3b528a802d

Change-Id: I19f0d02cc6b81dd26889e41fed412723cc026918
2017-12-21 03:43:21 +00:00
Jiyong Park
2db7692a74 Add [soc|device|product]_specific
Added three properties (soc_specific, device_specific, and
product_specific) that shows what a module is specific to.

`soc_specific: true` means that the module is specific to an SoC
(System-On-a-Chip) and thus need to be installed to vendor partition.
This has the same meaning as the old `vendor: true` setting.

`device_specific: true` means that the module is specific to the entire
hardware configuration of a device includeing the SoC and off-chip
peripherals. These modules are installed to odm partition (or /vendor/odm
when odm partition does not exist).

`product_specific: true` means that the module is specific to the
software configuration of a product such as country, network operator,
etc. These modules are installed to oem partition (or /system/oem when
oem partition does not exist). These modules are assumed to be agnostic
to hardware, so this property can't be true when either soc_specific or
device_specific is set to true.

Bug: 68187740
Test: Build. path_tests amended.
Change-Id: I44ff055d87d53b0d2676758c506060de54cbffa0
2017-12-21 12:16:29 +09:00
Treehugger Robot
828001d59d Merge "Add -p, -e options in merge_zips for supporting par format." 2017-12-21 01:27:32 +00:00
Treehugger Robot
91aa9f9d54 Merge "Add 'openmp' compiler property" 2017-12-21 00:38:45 +00:00
Treehugger Robot
3b528a802d Merge "Update the NDK ARM ABI to armv7." 2017-12-21 00:37:29 +00:00
Tobias Thierer
e59aeff5c4 Make ANDROID_JAVA{8,9}_HOME available to config.mk.
Previously, these variables were exported only by makevars.go,
but those values are not available to config.mk. This CL adds
the variable to ui/build/config.go, which also makes it
available to config.mk.

Test: Treehugger
Bug: 70862583
Bug: 70521453
Change-Id: Ib54660e4b08ab751265b30004630cf1bb8c0041b
2017-12-20 23:14:37 +00:00
Dan Albert
d3c8ca4469 Update the NDK ARM ABI to armv7.
We don't support armv5 any more, and we can't build bionic as armv5.

Test: build/soong/scripts/build-ndk-prebuilts.sh
Bug: https://github.com/android-ndk/ndk/issues/272
Change-Id: I4026d48e7d5db78f6aa4e9796da1ec9cf10021ca
2017-12-20 14:48:39 -08:00
Nan Zhang
5925b0fda4 Add -p, -e options in merge_zips for supporting par format.
Move __init__.py files population to merge_zips, and add options: -p, and
-e. Since par needs entry_point.txt to search the program entry point, so
add -e option to support it.

Test: ./merge_zips -p -e entry_point.txt out in1.zip in2.zip
Bug: 70568913
Change-Id: Ida10faf125e1b94dffc98b30240db3b90fd75b25
2017-12-20 12:57:10 -08:00
Steven Moreland
3fac38f544 Merge "Remove sepolicy_split from soong."
am: 57603998a6

Change-Id: Ic9d2bcfc4f02216b2824bc28f6da44d91f458f68
2017-12-20 19:15:33 +00:00
Treehugger Robot
57603998a6 Merge "Remove sepolicy_split from soong." 2017-12-20 19:10:32 +00:00
Pirama Arumuga Nainar
fadb7b511a Add 'openmp' compiler property
Bug: http://b/70692399

If a module has 'openmp: true', add '-fopenmp' to CFlags during any
compile step and pass the libomp runtime to the linker during any link
step.

Test: Build samples in http://aosp/572924
Change-Id: Ic2a6410ec69aae548edaf582ee41659b0058561e
2017-12-19 23:14:19 -08:00
Pirama Arumuga Nainar
3867026195 Merge "Add compile-time pathDeps as implicit dependencies"
am: 6f86613420

Change-Id: Ib78d30affbd69b6af308e159d5db56dd026e1b59
2017-12-20 04:09:48 +00:00
Treehugger Robot
6f86613420 Merge "Add compile-time pathDeps as implicit dependencies" 2017-12-20 04:05:39 +00:00
Alan Leung
3a3fff0368 Merge "Prep D8 default instead of CompatDX in build/soong"
am: 731c8dac6d

Change-Id: I5aad8b886b9619ffe33441392aee6510d33b521a
2017-12-20 02:05:01 +00:00
Alan Leung
731c8dac6d Merge "Prep D8 default instead of CompatDX in build/soong" 2017-12-20 02:00:45 +00:00
Colin Cross
2d1b27c08b Merge "Ensure -I . is the first protoc argument"
am: 32bf18b10a

Change-Id: If870b412d8b8f8cac0d9de57b355f53cb5e6f3ae
2017-12-20 00:45:34 +00:00
Treehugger Robot
32bf18b10a Merge "Ensure -I . is the first protoc argument" 2017-12-20 00:37:30 +00:00
Chih-Hung Hsieh
c7a4d098ae Merge "Add default -Werror to hardware/libhardware/modules"
am: 750e6fab06

Change-Id: I90362712d5e1d643687a36b65379a651e78e919d
2017-12-20 00:15:01 +00:00
Treehugger Robot
750e6fab06 Merge "Add default -Werror to hardware/libhardware/modules" 2017-12-20 00:08:36 +00:00
Pirama Arumuga Nainar
70ba5a38d1 Add compile-time pathDeps as implicit dependencies
Bug: http://b/70820751
Bug: http://b/70857959

Clang does not output file dependencies from the -fprofile-use= flag
during -MD/-MM.  Add this and other path dependencies as implicit Ninja
dependencies.  Generated header dependencies are retained as OrderOnly
dependencies.

Test: Perturb profdata files for hwui/skia in internal branch and verify
that the sources get rebuilt.

Change-Id: I3247d995ee27a4882172eb15ff36acf56536b6f7
2017-12-19 15:44:38 -08:00
Steven Moreland
65b3fd900a neverallows in Soong
Straightforward way of expressing policy inspired by a similar
syntax in SELinux.

Bug: 70165717
Test: no neverallows hit
Test: manually checking neverallow rules by changing them/adding violations
Change-Id: I7e15a0094d1861391bfe21a2ea30797d7593c142
2017-12-19 15:26:08 -08:00
Steven Moreland
0afa55ae12 Remove sepolicy_split from soong.
No longer needed.

Bug: 62019611
Test: manual
Change-Id: Id485e6db4cc9b5a7cf553e5089fd85b667c7c660
2017-12-19 20:41:21 +00:00