Commit Graph

3527 Commits

Author SHA1 Message Date
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
yidong.zhang
f5f15f093d Merge "Fix recovery-variant VNDK libs miss-installed to recovery img" am: 52644cb29a am: 263802ebda am: 371955973a am: cd40569204
am: 8bdc4102ef

Change-Id: I0595b37712629e7ee4759e1cfdd6c77fe7b447a5
2019-08-05 15:46:54 -07: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
229264de96 Merge "Disable LTO when building with fuzzer support." am: df7d2cc9f8 am: cead9bad66 am: 35cabd5d34 am: 2aed7136c4
am: 5759698e6d

Change-Id: I9d6d22212b369dc3fecda2de4845cd5537511db8
2019-08-05 12:18:23 -07: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
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
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
Slava Shklyaev
b2790af2b5 Merge "Add neuralnetworks to ndkPrebuiltSharedLibs" am: 395ab52ee9 am: a9c30574ce am: fcc877327e am: 68fcb5bbd4
am: 2eb7035930

Change-Id: I5d97023475057d78756de2dcd56d6b9df86a7acd
2019-08-01 04:39:20 -07:00
Slava Shklyaev
a9c30574ce Merge "Add neuralnetworks to ndkPrebuiltSharedLibs"
am: 395ab52ee9

Change-Id: Ida1de881468a7e8eb0dbb3509ded14ec6ea59248
2019-08-01 03:49:09 -07:00
Slava Shklyaev
395ab52ee9 Merge "Add neuralnetworks to ndkPrebuiltSharedLibs" 2019-08-01 10:30:00 +00:00
Roland Levillain
a816fd4cb6 Merge "Handle test_per_src modules as indirect dependencies in APEXes." am: cadffcdd66 am: d571a52d49 am: b2b01f3c84 am: bd3e36d4f8
am: 1371a5f92f

Change-Id: I1c2024bb605087ca9e94ff038c412be476285e5a
2019-07-30 04:54:54 -07:00
Roland Levillain
d571a52d49 Merge "Handle test_per_src modules as indirect dependencies in APEXes."
am: cadffcdd66

Change-Id: I6e420de099250d40069a188b4eef618b0b403591
2019-07-30 04:10:50 -07:00
Roland Levillain
cadffcdd66 Merge "Handle test_per_src modules as indirect dependencies in APEXes." 2019-07-30 10:41:20 +00:00
Vic Yang
676153df8c Merge "Add sort_bss_symbols_by_size property for shared libs" am: 446441fc19 am: 6f127a7fa3 am: c52fa87d0b am: 97e074ba53
am: 286e87a639

Change-Id: I9f324058181747b25b7a97294bedde8dc009f0ce
2019-07-29 20:58:29 -07:00
Vic Yang
6f127a7fa3 Merge "Add sort_bss_symbols_by_size property for shared libs"
am: 446441fc19

Change-Id: I83344693e2d67721b1fb38eda4d72f993fa419f1
2019-07-29 20:10:54 -07:00
Peter Collingbourne
c0c773f95a Merge "Specify the API level via the triple instead of __ANDROID_API__." am: 5f66d76d69 am: cb521cb1ca am: 1213f4b978 am: 74caaca793
am: 9b72be7886

Change-Id: Id052ce2f5eed4ee4a46b1368296afc2f6b807ad1
2019-07-29 19:44:00 -07:00
Vic Yang
446441fc19 Merge "Add sort_bss_symbols_by_size property for shared libs" 2019-07-30 02:34:23 +00:00
Sasha Smundak
eab76f3873 Merge "Support source code cross-referencing for C++ and Java" am: 247de68b89 am: 61272795a7 am: 94704e9594 am: 6e405f37f8
am: 38bc1d59b6

Change-Id: Ibe87e5fe7105e1b8e9795d7a9b1abdcf5dc4f978
2019-07-29 18:58:25 -07:00
Peter Collingbourne
cb521cb1ca Merge "Specify the API level via the triple instead of __ANDROID_API__."
am: 5f66d76d69

Change-Id: Idea2c10a557ba59bfc303633cdb8fedb9c4fff9e
2019-07-29 18:39:29 -07:00
Peter Collingbourne
5f66d76d69 Merge "Specify the API level via the triple instead of __ANDROID_API__." 2019-07-30 01:23:04 +00:00
Sasha Smundak
61272795a7 Merge "Support source code cross-referencing for C++ and Java"
am: 247de68b89

Change-Id: I5284d9be9865e95671ce8ec1927f74059f7fdf44
2019-07-29 18:13:05 -07:00
Treehugger Robot
247de68b89 Merge "Support source code cross-referencing for C++ and Java" 2019-07-30 00:13:12 +00:00
Vic Yang
6cd1be8993 Add sort_bss_symbols_by_size property for shared libs
If sort_bss_symbols_by_size is true, a shared library is built twice.
The first build generates an unsorted output file, which is used to
generate the symbol ordering file.  The output of the second build is
a shared library with its bss symbols sorted by their size.

With this, the only user of symbol_ordering_file, libc, is migrated to
use the new property, so we remove symbol_ordering_file support as well.

Bug: 135754984
Test: Build and check the resulting libc.so has its bss symbols sorted.
Change-Id: I5c892b44d82eb99cbc070cfa2c680be3087f3364
2019-07-29 13:25:55 -07:00
Roland Levillain
f89cd0949c Handle test_per_src modules as indirect dependencies in APEXes.
In `apex.apexBundle.GenerateAndroidBuildActions`, we used to pass the
"all tests" ("") module as `module` for all `apexFile` objects created
from a test module using `test_per_src: true`.  An immediate issue of
this situation was that the "" module is hidden from Make, which made
all the generated `apexFile` objects hidden from Make too. This would
break the construction of flattened APEXes, as they rely on Make logic
to install their files.

Instead of collecting `test_per_src` test variations' output files in
`cc.Module.GenerateAndroidBuildActions` and using them in
`apex.apexBundle.GenerateAndroidBuildActions` as part of handling the
"" variation as a direct dependency of an `apexBundle`, process them
as indirect dependencies (and do nothing for the "" variation direct
dependency).

Adjust the indirect dependency logic in
`apex.apexBundle.GenerateAndroidBuildActions` to allow not only
shared/runtime native libraries as indirect dependencies of an
`apexBundle`, but also `test_per_src` tests.

Test: m (`apex/apex_test.go` amended)
Bug: 129534335
Change-Id: I845e0f0dd3a98d61d0b7118c5eaf61f3e5335724
2019-07-29 19:21:27 +01:00
Sasha Smundak
2a4549ec98 Support source code cross-referencing for C++ and Java
Use Kythe (https://kythe.io) to build cross reference for the Android
source code. ~generate the input for it during the build. This is done
on demand: if XREF_CORPUS environment variable is set, build emits a
Ninja rule to generate Kythe input for each compilation rule. It
also emits two consolidation rules (`xref_cxx` and `xref_java`),
that depend on all Kythe input generation rules for C++ and Java.

The value of the XREF_CORPUS environment variable is recorded in the
generated files and thus passed to Kythe. For the AOSP master branch it is
`android.googlesource.com/platform/superproject`, so the command to build
all input for Kythe on that branch is:
```
XREF_CORPUS=android.googlesource.com/platform/superproject m xref_cxx xref_java
```

Each Kythe input generation rule generates a single file with .kzip
extension. Individual .kzip files have a lot of common information, so
there will be a post-build consolidation step run to combine them.
The consolidated .kzip file is then passed to Kythe backend.

The tools to generate .kzip files are provided by Kythe (it calls them
'extractors'). We are going to build them in toolbuilding branches
(clang-tools and build-tools) and check them in as binaries into master
and other PDK branches:
For C++,  `prebuilts/clang-tools/linux-x86/bin/cxx_extractor`
for Java, `prebuilts/build-tools/common/framework/javac_extractor.jar`

Bug: 121267023
Test: 1) When XREF_CORPUS is set, build generates Ninja rules to create
.kzip files; 2) When XREF_CORPUS is set, building
`xref_cxx`/`xref_java` creates .kzip files; 3) Unless XREF_CORPUS is
set, build generates the same Ninja rules as before

Change-Id: If957b35d7abc82dbfbb3665980e7c34afe7c789e
2019-07-26 09:16:47 -07:00
Paul Duffin
03566197ff Merge "Correct tags on StaticSharedLibraryProperties.Cflags" am: c6fa3eca11 am: 25edbe5de7 am: 773c4098b2 am: 5e76918329
am: df6d3454fe

Change-Id: I18b139ed77fa555709e9fe38c85cab13aec182a3
2019-07-26 02:42:38 -07:00
Paul Duffin
25edbe5de7 Merge "Correct tags on StaticSharedLibraryProperties.Cflags"
am: c6fa3eca11

Change-Id: I875b48b1ca3456b99285532343500ccf27e2e1f9
2019-07-26 02:00:46 -07:00
Slava Shklyaev
aef0d6e7ff Add neuralnetworks to ndkPrebuiltSharedLibs
Bug: 138207382
Test: make
Change-Id: Id0b334011446546963a2f1258d8a3b6999e4f96f
2019-07-26 08:57:54 +00:00
Paul Duffin
c6fa3eca11 Merge "Correct tags on StaticSharedLibraryProperties.Cflags" 2019-07-26 08:46:13 +00:00
Alex Light
fb8ee213d2 Merge "Disable linux_bionic fuzzers" am: 71568c7cef am: dd76f920cf am: 42d12995ab am: cde6fc859c
am: eab95457fb

Change-Id: Ifde03bb8e78918467045f493cf038cea1f26b0f3
2019-07-25 17:38:24 -07:00
Peter Collingbourne
b0e6143b9b Specify the API level via the triple instead of __ANDROID_API__.
Clang derives the value of __ANDROID_API__ from the triple these days. In a
future version of clang I plan to start making the behaviour of the HWASAN pass
dependent on the API level in the triple, so it's going to need to be accurate.

Test: walleye-userdebug boots
Change-Id: Ie5e36b5c8f6dcda084cc12b1160abbdf94765174
2019-07-25 17:18:22 -07:00
Alex Light
dd76f920cf Merge "Disable linux_bionic fuzzers"
am: 71568c7cef

Change-Id: I426c9882a97cea7fc031e5dd9d0de92cbf3c7aa7
2019-07-25 16:34:26 -07:00
Paul Duffin
5213e2b431 Correct tags on StaticSharedLibraryProperties.Cflags
Remove path as cflags are not paths.

Test: m nothing
Change-Id: Ia3f3064cb6642a67e8320ab3c472af2ad5863b52
2019-07-25 12:22:47 +01:00
Alex Light
71123ec1bc Disable linux_bionic fuzzers
fuzzers require linking to libclang_rt which does not support
linux_bionic. Therefore always disable this target.

Test: ./art/tools/build_linux_bionic_tests.sh
Bug: 138307504
Bug: 118058804
Change-Id: I12816f302d32d5ee846f90c62814744ae35c49bb
2019-07-24 21:13:05 +00:00
Dan Albert
2da19cbc20 Link libc++demangle with libc++ for the device.
libc++demangle provides __cxa_demangle, which used to be a part of
libc++.so but is being moved out to save on resources since very few
libraries need it.

Test: make checkbuild
Bug: http://b/138245375
Change-Id: Ie97225d496d7d40f8749522bf36702a2d9dcdfe7
2019-07-24 12:17:40 -07:00
Przemyslaw Szczepaniak
a797105d06 Merge "Do not install LLNDK libs moved APEX on /system" am: 1ab2b7b8c5 am: 91655856da am: 475386be75 am: 4ba655386a
am: c37235e13d

Change-Id: Iddf47c8a3c2af2b93e91030c224993840b391a59
2019-07-24 03:02:31 -07:00
Przemyslaw Szczepaniak
91655856da Merge "Do not install LLNDK libs moved APEX on /system"
am: 1ab2b7b8c5

Change-Id: Ic161398aadf2b2ac3c0f015803be70f7c7e0c75a
2019-07-24 02:25:46 -07:00
Przemyslaw Szczepaniak
1ab2b7b8c5 Merge "Do not install LLNDK libs moved APEX on /system" 2019-07-24 09:12:18 +00:00
Roland Levillain
b8bdb7697b Merge "Fix some typos in Soong." am: 5260acef69 am: e41bbbf94c am: 574743ccf3
am: 96e9ddc53e

Change-Id: I4e66d809e7c373bd7953870b33ca0c4b29e20616
2019-07-23 13:36:56 -07:00
Roland Levillain
e41bbbf94c Merge "Fix some typos in Soong."
am: 5260acef69

Change-Id: I61050b05bf4831ca753e4a70efb5e184c379232b
2019-07-23 12:58:15 -07:00
Roland Levillain
dfe75b389c Fix some typos in Soong.
Test: m
Change-Id: I5b332ce12d70f13eca93b23060620c0ea4f46db7
2019-07-23 17:29:57 +01:00
Dan Albert
9420065f2b Merge "Remove asanLibs." am: 6303423549 am: 233d006ef7 am: 48d07678ad
am: 4d1e10778c

Change-Id: I86d794586e2112a25f4f3bd43b3e0248dcedc47b
2019-07-22 12:01:11 -07:00
Dan Albert
233d006ef7 Merge "Remove asanLibs."
am: 6303423549

Change-Id: I4c5bc78924613aa6c61399400f468f7ff7353a53
2019-07-22 11:29:26 -07:00
Dan Albert
6303423549 Merge "Remove asanLibs." 2019-07-22 18:05:10 +00:00
Przemyslaw Szczepaniak
e6fc507234 Do not install LLNDK libs moved APEX on /system
Export LLNDK_MOVED_TO_APEX_LIBRARIES which is used by make
to filter out LLNDK libs that been migrated to an APEX.
It's used by the ld.config.txt generaton, and to filter out
the vndk_package dependencies.

Test: Build&flashed crosshatch image
Bug: 137320025
Change-Id: I1449dad79edf36a628fa1ac15c35f163dbd8ee2a
2019-07-22 13:29:20 +01:00
Roland Levillain
aab6925f5e Merge "Handle test_per_src test variations as dependencies of APEX modules." am: 525d8dec66 am: 581656c377 am: 1c9d8c9e7b
am: 56a7c66d55

Change-Id: Ia10b888dea53b2b32486f100f4a70fb7f1055ffa
2019-07-22 03:16:09 -07:00
Roland Levillain
38ddbb806a Merge "Create an extra variation in test_per_src mutator collecting all outputs." am: 0934737003 am: b367e0dfe9 am: 05fc90f453
am: 0c4e581c2b

Change-Id: I118f945a8911edf804e10c0791eadf4d44c6d266
2019-07-22 03:15:49 -07:00
Roland Levillain
581656c377 Merge "Handle test_per_src test variations as dependencies of APEX modules."
am: 525d8dec66

Change-Id: I22330fc27969c39343a380cf233bdbad3aebd2ad
2019-07-22 02:49:11 -07:00
Roland Levillain
b367e0dfe9 Merge "Create an extra variation in test_per_src mutator collecting all outputs."
am: 0934737003

Change-Id: I2e60ad08f540702b350e6a2208e5e7d99ba85f7d
2019-07-22 02:48:47 -07:00