Commit Graph

15939 Commits

Author SHA1 Message Date
Orion Hodson 4b5438a9ea Make apex_available respect AllowMissingDependencies
When SOONG_ALLOW_MISSING_DEPENDENCIES is defined in the build, don't
fail if an apex_available entry is not available. This is for smaller
Android manifests that may not include all APEX projects (e.g. master-art).

Bug: 142300164
Test: able to build from master-art manifest.
Change-Id: Ice1274f7dd143c4b1bf756e2cde93e217266affa
2019-10-08 10:40:51 +01:00
Jiyong Park 6064472edb Merge "Remove no_apex in favor or apex_available"
am: e89b8fb919

Change-Id: Icf8cfdd3945291fd15a15a751ca761842abbbfe6
2019-10-07 22:41:59 -07:00
Treehugger Robot e89b8fb919 Merge "Remove no_apex in favor or apex_available" 2019-10-08 05:33:29 +00:00
Dan Willemsen cffbc4d146 Restore previous behavior of `get_build_var TMPDIR`
am: b6699a1414

Change-Id: Ie9511c72acc7f9cf77612fa19c5380acd5b85b24
2019-10-07 19:02:05 -07:00
Dan Willemsen b6699a1414 Restore previous behavior of `get_build_var TMPDIR`
My previous change makes TMPDIR a temporary directory that's removed
before we exit. So instead of starting ckati to get this value to a
directory that no longer exists, return the semi-stable value that we
use during a normal build.

Fixes: 142277335
Test: get_build_var TMPDIR
Change-Id: I37d1219b1fda09f131dee17ef7b91e475d3e39ad
2019-10-07 15:29:23 -07:00
Colin Cross bcf54fb631 Merge "Shard gensrcs modules into multiple commands"
am: e8ba308dcf

Change-Id: Ia708dce6b2e7e78cc413b378839244d933d6c00e
2019-10-07 15:23:04 -07:00
Colin Cross e8ba308dcf Merge "Shard gensrcs modules into multiple commands" 2019-10-07 22:03:54 +00:00
Colin Cross 362051eef3 Merge "Filter product variable property structs"
am: 2334757d24

Change-Id: Iee8f1d0cb3ac2e01032b569727f9ed48e6783273
2019-10-07 14:07:35 -07:00
Colin Cross 2e7e4df578 Merge "Remove old-style support for translated second architectures"
am: c6136c9d65

Change-Id: I14c7ceb6e1f34f902a7fe71727773498b13b0078
2019-10-07 14:06:45 -07:00
Colin Cross 2334757d24 Merge "Filter product variable property structs" 2019-10-07 20:53:44 +00:00
Treehugger Robot c6136c9d65 Merge "Remove old-style support for translated second architectures" 2019-10-07 20:48:07 +00:00
Dan Willemsen cb4c89f56e Merge "Fix dumpvars $PATH / $TMPDIR"
am: bd7c98ce22

Change-Id: I90941bddfa832d6953a620d1bec19e8c740fa27c
2019-10-07 12:55:28 -07:00
Treehugger Robot bd7c98ce22 Merge "Fix dumpvars $PATH / $TMPDIR" 2019-10-07 19:29:17 +00:00
Colin Cross e33b763897 Merge "Add symlinks to sh_binary in soong"
am: 8b0dc4be07

Change-Id: Ifac96bb40de8a4f183acecd305618cb677dd95c1
2019-10-07 10:53:37 -07:00
Colin Cross 4d39ed3b61 Merge changes from topics "soong_java_aidl", "soong_java_proto"
am: 63c7727dec

Change-Id: I8653107ddca531c74b2bdb458d0e67b3689e2bc0
2019-10-07 10:53:11 -07:00
Colin Cross 8b0dc4be07 Merge "Add symlinks to sh_binary in soong" 2019-10-07 17:47:45 +00:00
Colin Cross 63c7727dec Merge changes from topics "soong_java_aidl", "soong_java_proto"
* changes:
  Shard aidl compiles into srcjars
  Shard java proto files into groups of 100
  Support deps files with no output
2019-10-07 17:33:00 +00:00
Chih-hung Hsieh 1caec5fc37 Merge "Fix defaults of BaseCompilerProperties"
am: 3776d9546a

Change-Id: Ia5caf06a944c54c2cf00f1a0049415b1eaa48a4a
2019-10-06 22:05:56 -07:00
Jooyung Han bb2ab91c6d Merge "Rename vndk apex according to vndk version"
am: 36aecc1f6d

Change-Id: I305cd3efa081e9141b374e485885e613b33a293a
2019-10-06 22:05:29 -07:00
Chih-hung Hsieh 3776d9546a Merge "Fix defaults of BaseCompilerProperties" 2019-10-07 04:46:30 +00:00
Treehugger Robot 36aecc1f6d Merge "Rename vndk apex according to vndk version" 2019-10-07 04:44:45 +00:00
Rashed Abdel-Tawab 6a34131da4
Add symlinks to sh_binary in soong
This allows us to change `logpersist.start` to `sh_binary` and unblocks
breakpad symbol uploading

Test: convert logpersist.start to sh_binary and verify symlinks are correct
Change-Id: I1b86c512df73a336205ca35216445a08e43bb879
2019-10-04 20:51:44 -07:00
Colin Cross c080617c8b Shard aidl compiles into srcjars
Group aidl files into groups of 50 and compile them together into a
srcjar.

Bug: 124333557
Test: m checkbuild
Change-Id: I18e0858eab434071d3ff0039bb21e07c7311b601
2019-10-04 14:00:36 -07:00
Colin Cross 9516a6c3f2 Shard java proto files into groups of 100
Group protoc calls to generate java files into groups of 100
to avoid having a srcjar for every proto file.

Test: m checkbuild
Change-Id: I72a5efaabad24c975282df321d00ec2d7900645e
2019-10-04 14:00:36 -07:00
Colin Cross 5274d581eb Support deps files with no output
AIDL generates a deps file with no output listed temporarily pass it
through without error in the makedeps parser.

Bug: 141372861
Test: m checkbuild
Change-Id: I8c6740833dbc2ff3318dfc424ec497728cfc48d2
2019-10-04 14:00:36 -07:00
Dan Willemsen 4e2456bc09 Fix dumpvars $PATH / $TMPDIR
Instead of just using the host $PATH during dumpvars, use our path
configuration from the regular build. But instead of creating a ton of
symlinks to the interposer, just use a small directory of symlinks. This
only takes ~3ms (vs ~300ms), at the expense of error logging. Since we
do just about the same product configuration at the start of the build,
we can just rely on the logging there.

This fixes warnings printed by the Mac build, since we using the host
`date` instead of the toybox version:

usage: date [-jnRu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
            [-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]
usage: date [-jnRu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
            [-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]

TMPDIR was being shared with the main build, but we're allowed to run in
parallel. If a build is started while we're running, our TMPDIR may be
cleared. Instead, create our own temporary directory, which doesn't need
to be a stable value (as we never do caching here).

Fixes: 141893400
Test: (on mac) source build/envsetup.sh; lunch
Change-Id: I0ff536e71dc5649cae26daa0087eb80861704021
2019-10-04 12:53:51 -07:00
Colin Cross eb767a021e Merge "Use localPool consistently for UseGoma() == true"
am: 96ce6ab143

Change-Id: I0dee88625929e1d523a1df3a8547fc40353bea43
2019-10-04 12:04:05 -07:00
Treehugger Robot 96ce6ab143 Merge "Use localPool consistently for UseGoma() == true" 2019-10-04 18:36:07 +00:00
Anton Hansson fe077deaff Merge "Add partition subdirs to system_other"
am: 332f35fc92

Change-Id: Idce320622fbcaa14555deb5fbfbedff60138df11
2019-10-03 23:52:38 -07:00
Anton Hansson 332f35fc92 Merge "Add partition subdirs to system_other" 2019-10-04 06:30:55 +00:00
Colin Cross 43f21552b3 Merge "Use -nostdlib++ instead of -nodefaultlibs"
am: 92e03dfb3e

Change-Id: I57ca60fddad13e20f0ff799c86f06547ec7c4e0e
2019-10-03 20:36:43 -07:00
Colin Cross 92e03dfb3e Merge "Use -nostdlib++ instead of -nodefaultlibs" 2019-10-04 03:26:11 +00:00
Colin Cross f7a17daefe Use -nostdlib++ instead of -nodefaultlibs
Host builds using libc++ used -nodefaultlibs to turn off the default
C++ runtime, and then added back all the other necessary libraries.
Clang supports -nostdlib++ since https://reviews.llvm.org/D47115
that removes the C++ runtime without affecting the other default
libraries.  Use -nostdlib++, and remove the lists of default
libraries.

Test: m checkbuild
Change-Id: I722bd6596a1f3f5819f2767c29c0fa1e8b3ec0e8
2019-10-03 16:09:01 -07:00
Colin Cross 789fc863bb Merge changes from topic "install"
am: 4acb77e76a

Change-Id: Id5785b4df6fa91a457e5a3234819cd2de9644cb5
2019-10-03 15:06:55 -07:00
Colin Cross 21daf4e438 Separate InstallPath from OutputPath
am: 70dda7e3da

Change-Id: Ic581d093d61e2b1f413b8b9dfdc8ee75a6806d54
2019-10-03 15:06:48 -07:00
Colin Cross 5c17b4e9bb Add InstallInRoot to allow modules to install into root partition
am: 90ba5f4e98

Change-Id: I73a597b875c336624b0016302c3710177bb0a658
2019-10-03 15:06:40 -07:00
Colin Cross 4acb77e76a Merge changes from topic "install"
* changes:
  Replace RelPathString() with ToMakePath()
  Separate InstallPath from OutputPath
  Add InstallInRoot to allow modules to install into root partition
2019-10-03 21:50:57 +00:00
Alexander Smundak accaafc07c Merge "Fix corpus name."
am: 5ffade1efb

Change-Id: I8ce2de9b7ab14836e5ac471a0381683c657c3165
2019-10-03 10:10:04 -07:00
Colin Cross 70dda7e3da Separate InstallPath from OutputPath
Create a new type InstallPath that is similar to OutputPath to
differentiate intermediates output paths from installed output
paths.

RelPathString is a poorly defined, undocumented function that is
primarily used to get an install path relative to out/soong to
generate an equivalent install path for Make relative to $(OUT_DIR).
Move it to InstallPath for now, and fix the one remaining user on
OutputPath.

Add a method to create an NDK install path so that ndk_sysroot.go
doesn't have to do it manually with PathForOutput.

Bug: 141877526
Test: m checkbuild
Change-Id: I83c5a0bd1fd6c3dba8d3b6d20d039f64f353ddd5
2019-10-03 10:07:53 -07:00
Colin Cross ff6c33d885 Replace RelPathString() with ToMakePath()
Add a ToMakePath() method that returns a new path that points out
out/ instead of out/soong/, and replace the
"$(OUT_DIR)/" + path.RelPathString()
pattern with
path.ToMakePath().String()

Bug: 141877526
Test: m checkbuild
Change-Id: I391b9f2ed78c83a58d905d48355ce9b01d610d16
2019-10-03 10:07:53 -07:00
Colin Cross 90ba5f4e98 Add InstallInRoot to allow modules to install into root partition
If InstallInRoot() returns true the module will be installed to
$OUT/root or $OUT/recovery/root.

Bug: 141877526
Test: m checkbuild
Test: no change to build.ninja or Android-${TARGET_PRODUCT}.mk
Test: TestPathForModuleInstall
Change-Id: Id6e435c6019f11eeb5806528fd464dbf220b88d9
2019-10-03 10:07:46 -07:00
Alexander Smundak 5ffade1efb Merge "Fix corpus name." 2019-10-03 16:54:55 +00:00
Chih-Hung Hsieh 961a30c714 Fix defaults of BaseCompilerProperties
* Edition and Deny_warnings should not be set when
  constructing a BaseCompilerProperties, or the
  initialized values will reject values inherited from rust_defaults.
* Use getEdition and getDenyWarnings to retrieve those properties
  with defaults from config.

Bug: 141699953
Test: mm in rust projects
Change-Id: Id1ae357caeaf656cd33732bf4e54920e206f4ead
2019-10-03 09:47:06 -07:00
Logan Chien 4942edd7b5 Merge "Add BUILD_BROKEN_PREBUILT_ELF_FILES to dumpvars.go"
am: 65ab468452

Change-Id: Ib207758e5ad3ba13531d1669cc2f771b3bbec4e0
2019-10-03 09:15:49 -07:00
Logan Chien 65ab468452 Merge "Add BUILD_BROKEN_PREBUILT_ELF_FILES to dumpvars.go" 2019-10-03 15:51:09 +00:00
Anton Hansson 12b8d427c7 Move odexes of non-system apps into system_other
Previously, the patterns in SYSTEM_OTHER_ODEX_FILTER only matched
subpaths of /system. Broaden this to match /<p> as well as /system/<p>.

Because SYSTEM_OTHER_ODEX_FILTER includes system_ext and product apps,
the immediate effect of this is that the odex and vdex files of
apps on those partitions move to system_other for A/B devices.

This makes the product and system_ext partitions smaller, which
in turn makes OTAs smaller.

Bug: 141707536
Test: soong unit tests
Test: (adb shell dumpsys package com.android.stk &&
       adb shell dumpsys package com.android.quicksearchbox) | grep -i dexopt -A3;
      verify dexpreopt state is 'prebuilt' for both
Test: adb shell find /data/dalvik-cache -name '*QuickSearch*.vdex' | wc -l == 1
Test: adb shell find /data/dalvik-cache -name '*Stk*.vdex' | wc -l == 1

Change-Id: I6e1e6d89c5822d48b522e7e6d77a363ed9f0e05b
2019-10-03 14:52:37 +01:00
Anton Hansson 43ab0bc24a Add partition subdirs to system_other
...and move odex/vdex files into the dir corresponding to their
source app's partition.

Bug: 141707536
Test: soong unit test
Test: lunch aosp_blueline && m
Change-Id: I90a7a6c97e0eb2706951a2317a1a65a59ca974fa
2019-10-03 14:21:30 +01:00
Anton Hansson 497161012d Merge "Beef up system_other odex tests"
am: a9e13f785f

Change-Id: I8c3bfc0dad405572b61de0c563bb16cf5e9dcece
2019-10-03 04:13:23 -07:00
Anton Hansson a9e13f785f Merge "Beef up system_other odex tests" 2019-10-03 11:01:03 +00:00
Colin Cross cd2af25aaf Merge "Hide static from cc_library_shared and vice versa"
am: 62be1e3e33

Change-Id: Iaee677069a5b7901a1b790e7fa6b164e85bfada8
2019-10-02 15:19:50 -07:00