Commit Graph

14448 Commits

Author SHA1 Message Date
Colin Cross
f3d807778d Merge changes I918b4878,I85238d93,Iefee8a91
am: a48f8c8070

Change-Id: Icaea636b21c37c1017d11f104b100805c77459ab
2019-08-08 17:50:47 -07:00
Treehugger Robot
a48f8c8070 Merge changes I918b4878,I85238d93,Iefee8a91
* changes:
  Add an output file tag for proguard dictionaries
  Add InstallBypassMake
  Document wokaround for yama ptrace restrictions
2019-08-09 00:12:27 +00:00
Steven Moreland
043eab7ad3 Merge "-D__ANDROID_NDK__ for SDK builds."
am: 08f9262577

Change-Id: I79f4746e3f9096f36b19eb2c0ac0c720a6410c52
2019-08-08 09:56:14 -07:00
Steven Moreland
08f9262577 Merge "-D__ANDROID_NDK__ for SDK builds." 2019-08-08 16:22:53 +00:00
Steven Moreland
c324729692 -D__ANDROID_NDK__ for SDK builds.
The NDK is built like this. Having it for app builds within the Android
build system allows us to distinguish platform code from app code.

This is specifically to distinguish AIDL interfaces using libbinder_ndk.
'myBinder-ndk_platform' libs will use additional functionality that
'myBinder-ndk' libs won't use (in the future, these may be separate
variants with the same name, see b/121157555).

Bug: 136027762
Test: using this to distinuish code in NDK vs platform code
Change-Id: I4de6f2e066982e7573ffd28cda44407d9e5648e4
2019-08-07 13:06:06 -07:00
Alexander Smundak
73d9ff761f Merge "Allow reading zipfile list from a file."
am: 02ed5df4ac

Change-Id: I2888ac8c6b03bcfc09739e5329bc872d92a2e9a1
2019-08-07 10:16:20 -07:00
Alexander Smundak
02ed5df4ac Merge "Allow reading zipfile list from a file." 2019-08-07 17:02:53 +00:00
Anna Trostanetski
eb2c46d576 Merge "Create a module that extracts and installs compat_config."
am: bc93803081

Change-Id: I46d1844f3c4496b1c978fdb3a9894098130fee6e
2019-08-07 09:34:25 -07:00
Anna Trostanetski
bc93803081 Merge "Create a module that extracts and installs compat_config." 2019-08-07 15:46:43 +00:00
Jooyung Han
825001b111 Merge "Add TEST_MAPPING for build/soong/apex"
am: 289eb5bed0

Change-Id: I9596e72eb87a7bdcb5cb01bf98dda5b87d850d62
2019-08-07 07:48:53 -07:00
Treehugger Robot
289eb5bed0 Merge "Add TEST_MAPPING for build/soong/apex" 2019-08-07 14:31:23 +00:00
Paul Duffin
c9c0f52ea5 Merge changes from topic "restrict-libandroidicu-usages"
am: d5a57d8fc5

Change-Id: I5c6fa0a1806bbbb502564d96a8f28a110162c6e8
2019-08-07 04:10:21 -07:00
Paul Duffin
d5a57d8fc5 Merge changes from topic "restrict-libandroidicu-usages"
* changes:
  Support restrictions based on a module's OsClass
  Support restrictions based on a module's dependencies
2019-08-07 10:34:19 +00:00
Jooyung Han
07149d36aa Add TEST_MAPPING for build/soong/apex
build/soong/apex is highly coupled with system/apex.
So it is reasonable to "import" presubmit tests from system/apex.

Test: atest --test-mapping build/soong/apex
Bug: 138984456
Change-Id: I7447e04a63b86486daef0f2a7642842101c0029f
2019-08-07 17:33:24 +09:00
Yifan Hong
101b37b9fc Merge "Add cc_*.target.recovery.static_libs"
am: fb4ecc42ce

Change-Id: I1ba9b00bff32791fcf1c0bb0adcd7b88b127eafa
2019-08-06 21:10:48 -07:00
Treehugger Robot
fb4ecc42ce Merge "Add cc_*.target.recovery.static_libs" 2019-08-07 03:45:17 +00:00
Hsin-Yi Chen
36528dc386 Merge "Skip ABI checks for APEX variants of opt-in libraries"
am: ff7321b32a

Change-Id: I575b12dec299d080a3bf9b0389517f5d49784b53
2019-08-06 19:36:50 -07:00
Hsin-Yi Chen
ff7321b32a Merge "Skip ABI checks for APEX variants of opt-in libraries" 2019-08-07 02:00:43 +00:00
Stephen Hines
b28643b33f Merge "Add support for AUTO_*_INITIALIZE to build/soong."
am: 7f0560d962

Change-Id: I2d964d462a29539252b3f76544a096028f48c668
2019-08-06 14:39:36 -07:00
Sasha Smundak
1459a9259e Allow reading zipfile list from a file.
Android build generates 180K+ zip files that are to be merged and the
result passed to the indexing pipeline to generate the source code
cross-reference. Their names cannot be passed on the command line,
hence the need for this change. That required extensive changes to
the code as it no longer can be assumed that all the input files can
be kept open.

Bug: 121267023
Test: internal + treehugger + combine index files
Change-Id: I0a829f96ff7187ad967fb6b8cede387501ec57cc
2019-08-06 14:23:35 -07:00
Stephen Hines
7f0560d962 Merge "Add support for AUTO_*_INITIALIZE to build/soong." 2019-08-06 21:04:04 +00:00
atrost
db25ac07a5 Create a module that extracts and installs compat_config.
Currently it extracts from the provided jar file compat/compat_config.xml
(generated by compat-changeid-annotation-processor) and installs on
/system/etc/sysconfig.
Future improvements:
 - Merge all the configs going for the system image into one, so that
   duplicate change ids across modules are failing the build instead of
   runtime.
 - Support uploading the config onto APEX for APEX modules.

Test: flashed device locally, config files found and read by
com.android.server.compat.CompatConfig.
Bug: 138222363

Change-Id: I64b11fdc466f746702e7e73f612794e024de2288
2019-08-06 19:21:46 +01:00
Colin Cross
2d975b197e Add an output file tag for proguard dictionaries
Allow modules to depend on the proguard dictionary of another module
using module{.proguard_map}.

Bug: 122332855
Test: m checkbuild
Change-Id: I918b487872c1a8ef8a51c0b994277efb0512d157
2019-08-06 09:45:04 -07:00
Colin Cross
607d8587e4 Add InstallBypassMake
Allow modules to mark themselves as InstallBypassMake, which will
cause android.PathForModuleInstall to return a path in $OUT_DIR
instead of $OUT_DIR/soong.  This can be used for modules that
can handle installation to the final location on their own.  The
main blocker for most modules is support for the "required" property,
which requires adding dependencies on the installed location of
other modules.

Bug: 122332855
Test: m checkbuild
Change-Id: I85238d937ff30335167d4b3fec79bbefc734b5e1
2019-08-06 09:45:04 -07:00
Colin Cross
8baf29fb10 Document wokaround for yama ptrace restrictions
Fixes: 138580915
Test: m checkbuild
Change-Id: Iefee8a914225d465a1feb37690a54423be332841
2019-08-06 09:44:39 -07:00
Paul Duffin
f1c9bbee88 Support restrictions based on a module's OsClass
Bug: 137543088
Test: m nothing
Change-Id: Ibb05f222594d8180746b612c04ab1538a1cf3c0b
2019-08-06 11:09:09 +01:00
Paul Duffin
3578188fac Support restrictions based on a module's dependencies
Adds a neverallow InDirectDeps(deps) verb that will allow a neverallow
rule to restrict access to a specific dependency, irrespective of how
it is specified.

Bug: 137543088
Test: m nothing
Change-Id: I0c6bb702d55175e9b78b79e86e96924c5dd83efa
2019-08-06 11:09:02 +01:00
Hsin-Yi Chen
af17d74a1a Skip ABI checks for APEX variants of opt-in libraries
Test: make findlsdumps
Bug: 138219814
Change-Id: I2ae6fadad5af4f7b648aa15307a0bd11339ffc7c
2019-08-06 17:54:01 +08:00
Yifan Hong
e7efbc8c78 Add cc_*.target.recovery.static_libs
Test: use static_libs in target.recovery

Change-Id: Ib2a10d09e205932be83e74274a641fd8544f7188
2019-08-05 19:56:44 -07:00
Jooyung Han
3873fcd58d Merge changes from topic "put-dep-in-apex"
am: d62b4af8b7

Change-Id: Ie21cdc47015a8870a915b2bcc5e49c08f4578da4
2019-08-05 17:34:05 -07:00
Jooyung Han
3c6423ef1a Put dependency in apex_manifest.json
am: e16330393a

Change-Id: I1090b2cc5154e7fefb1a16655ac874799fab740f
2019-08-05 17:33:57 -07:00
Treehugger Robot
d62b4af8b7 Merge changes from topic "put-dep-in-apex"
* changes:
  Add jsonmodify tool
  Put dependency in apex_manifest.json
2019-08-06 00:21:11 +00:00
yidong.zhang
263802ebda Merge "Fix recovery-variant VNDK libs miss-installed to recovery img"
am: 52644cb29a

Change-Id: I05db8d67248c11dce6a04d90ae53705ddc3f9228
2019-08-05 15:20:49 -07:00
Treehugger Robot
52644cb29a Merge "Fix recovery-variant VNDK libs miss-installed to recovery img" 2019-08-05 22:02:46 +00:00
Mitch Phillips
cead9bad66 Merge "Disable LTO when building with fuzzer support."
am: df7d2cc9f8

Change-Id: Ie4f0e1c6266cca662c4eb133ce2bd9ce85b1dcd9
2019-08-05 11:39:28 -07:00
Kun Niu
fb6a70e5a1 Merge "Build module from source branch instead of using prebuilds when coverage is enabled."
am: a535be6012

Change-Id: Ia5f294ceec3d15f7455792a91eef1330e0131f4f
2019-08-05 11:38:53 -07:00
Mitch Phillips
df7d2cc9f8 Merge "Disable LTO when building with fuzzer support." 2019-08-05 18:18:51 +00:00
Kun Niu
a535be6012 Merge "Build module from source branch instead of using prebuilds when coverage is enabled." 2019-08-05 18:04:49 +00:00
Mitch Phillips
34b493fec5 Disable LTO when building with fuzzer support.
Bug: 131771163

LTO is currently broken when building with SANITIZE_TARGET=fuzzer. The
compiler bug is currently being addressed upstream (see linked bug), but
we have applied a local workaround in the build system to disable LTO
when building using the fuzzer config.

There is a bug here however. In the sanitizer mutator we explicitly
remove -flto and add -fno-lto. The sanitizer mutator runs after the LTO
mutator, so (in general) this works just fine. The problem exists when a
target specifies an explicit 'lto: { ... }' flag in their Android.bp. In
this case, the sanitizer mutator disables LTO, then the flags are parsed
from the Android.bp, re-enabling LTO.

This patch fixes this issue. If the sanitizer mutator has added the
-fsanitize=fuzzer-no-link flags, then the LTO mutator won't add the LTO
flags after this fact.

Test: Build a target with SANITIZE_TARGET=fuzzer (or a cc_fuzz target),
where there is an explitiy 'lto: { ... }' and watch it now succeed in
building.

Change-Id: I6643909417f666539c23469816926b806e204b06
2019-08-02 16:57:55 -07:00
Kun Niu
10c9f83f26 Build module from source branch instead of using prebuilds when coverage is enabled.
Test: successfully get coverage data from coverage build.
Bug: 137865099
Change-Id: I7df96c2b2c2ec2859393fb2c19ffe1081d112c96
2019-08-02 10:13:46 -07:00
yidong.zhang
d06ecc8af1 Fix recovery-variant VNDK libs miss-installed to recovery img
When no-vendor-variant VNDK is enabled,the vendor variant of VNDK
libraries are not installed.This should not be fit for recovery module.
Recovery module deps should be always installed.

Bug: 138812833
Test: `adb reboot recovery;` recovery mode boot ok

Change-Id: I0c3b8ac0fb0176677ddd94ba7216dd068f2eb81b
2019-08-02 16:24:15 +08:00
Dan Willemsen
57d5786d59 Merge "Remove support for ONE_SHOT_MAKEFILE"
am: d778b93168

Change-Id: I32ef15cf94df3524e4e805327d4af246c95226a6
2019-08-01 14:31:53 -07:00
Dan Willemsen
d778b93168 Merge "Remove support for ONE_SHOT_MAKEFILE" 2019-08-01 21:11:02 +00:00
Elliott Hughes
4177df9567 Merge "Reland "Remove product_is_iot.""
am: 80e071d1da

Change-Id: I875289d3b5f88034b4e1256054b41fb9e05dfdd1
2019-08-01 11:59:54 -07:00
Elliott Hughes
80e071d1da Merge "Reland "Remove product_is_iot."" 2019-08-01 18:24:26 +00:00
Jooyung Han
04329f131a Add jsonmodify tool
This tool is used to modify apex_manifest.json when building apex
module.

Here's the usage:

usage: jsonmodify [-h] [-o output] [-v path value] [-s path value]
                     [-r path] [-a path [value ...]]
                     [input]

positional arguments:
  input                 JSON file

optional arguments:
  -h, --help            show this help message and exit
  -o output, --out output
                        write result to a file. If omitted, print to stdout
  -v path value, --value path value
                        set value of the key specified by path. If path
                        doesn't exist, creates new one.
  -s path value, --replace path value
                        replace value of the key specified by path. If path
                        doesn't exist, no op.
  -r path, --remove path
                        remove the key specified by path. If path doesn't
                        exist, no op.
  -a path [value ...], --append_list path [value ...]
                        append values to the list specified by path. If path
                        doesn't exist, creates new list for it.

Bug: 138695532
Test: m jsonmodify
Test: echo {} | jsonmodify -v name hello -a list.nested a b c
{
  "name": "hello",
  "list": {
    "nested": [
      "a",
      "b",
      "c"
    ]
  }
}

Change-Id: I2cd043c614b3ad2306a0c27ccee302633c6d2525
2019-08-02 00:08:05 +09:00
Jooyung Han
e16330393a Put dependency in apex_manifest.json
To generate ld.config.txt dynamically(b/123722631), each APEX should
provide some dependency information:
a) list of libraries which other APEXes(or system) can use from this apex
b) list of libraries which this apex uses from other APEXes(or system)

This change puts dependency information in apex_manifest.json at
build-time with two additional keys:
a) provideNativeLibs
b) requireNativeLibs

Bug: 138695532
Test: m (runs soong tests)
Test: find $OUT/apex -name apex_manifest.json  -exec cat {} \;
 (shows contents of apex_manifest.json files)

Change-Id: Iaad12c8c35454222ad177ce923cce76ef12a8a5a
2019-08-01 23:45:37 +09:00
Elliott Hughes
1f3a239953 Reland "Remove product_is_iot."
This reverts commit 5089c11b1e.

Change-Id: Iaedc22e63560a01ab01859982dc627569a421025
Test: treehugger
2019-08-01 14:42:12 +00:00
Roland Levillain
1334934d12 Merge "Materialize the copy commands of an APEX rule as a Ninja response file."
am: ec5fc70856

Change-Id: I518abfeba6fcd55ba05745304552c7f741e2e632
2019-08-01 07:24:35 -07:00
Roland Levillain
ec5fc70856 Merge "Materialize the copy commands of an APEX rule as a Ninja response file." 2019-08-01 13:51:22 +00:00