Commit Graph

3228 Commits

Author SHA1 Message Date
Jiyong Park 2907459e43 filegroup.path is used to specify the include path for aidl files
filegroup {
    name: "foo",
    srcs: ["srcs/aidl/com/android/**/*.aidl"],
    path: "srcs/aidl",
}

cc_library { // or java_library, etc.
    name: "bar",
    srcs: [":foo"],
}

automatically adds "-Ipath/to/foo/srcs/aidl" when compiling the aidl
files from foo for bar. This allows us to omit aidl include path
when using sources in other places via file group.

Bug: 135922046
Test: m (unit tests added)
Change-Id: I9b42f316f2858fb6da72c2f58a314f391416e809
2019-07-19 11:31:31 +09:00
Colin Cross eec9b286b0 Disable cc_fuzz darwin host modules
The fuzzer runtime is not present for darwin host modules, disable
cc_fuzz modules when targeting darwin.

Test: m on darwin
Change-Id: I9da319e00e36c3e0a5912329de7890a6409f1a55
2019-07-18 16:23:45 -07:00
Mitch Phillips d47d87d7d0 Merge "Add the cc_fuzz target."
am: 178f8fb732

Change-Id: I4a1a2f68054dde52442798f9fa08e04536a02cc7
2019-07-18 14:07:12 -07:00
Treehugger Robot 178f8fb732 Merge "Add the cc_fuzz target." 2019-07-18 20:38:33 +00:00
Christopher Ferris 6373d0fd39 Merge "Add liblog as shared dependency for isolated tests."
am: cc9a246063

Change-Id: Ib2d2dd62c148ba08e2c64d21b53a8f489b5a8e59
2019-07-18 12:21:18 -07:00
Christopher Ferris cc9a246063 Merge "Add liblog as shared dependency for isolated tests." 2019-07-18 19:00:46 +00:00
Paul Duffin a37832a3c3 Add header_libs to cc_object
Needed to allow removal of the include_dirs property from the
asm_defines.s module. Also, adds ObjectLinkerProperties to cc_defaults
so that default settings of header_libs are correctly prepended to the
properties in cc_object.

Bug: 35624006
Test: m cpp-define-generator-asm-support - compare output before and after change
Change-Id: Ib95d79c5eba4a89b7ab04b6c62090b720ec7e9fe
2019-07-18 15:58:58 +01:00
Jeff Vander Stoep 8b2bd15423 Renderscript: rename .rs extension to .rscript
Reserve .rs extension for Rust.

Bug: 137365032
Test: make checkbuild
Test: cd frameworks/compile/slang/tests
    ./slang_tests.py
    Test: atest CtsRenderscriptTestCases
    Test: CtsRsCppTestCases

Exempt-From-Owner-Approval: Clean CP
Change-Id: I0458009b8bb64a012fece364835d5b78d52e15e9
Merged-In: I0458009b8bb64a012fece364835d5b78d52e15e9
(cherry picked from commit 41ce1c0d82)
(cherry picked from commit a50b16974a)
2019-07-18 04:02:38 +00:00
Jeffrey Vander Stoep 38aaf75e44 Merge "Renderscript: rename .rs extension to .rscript" 2019-07-18 02:02:00 +00:00
Christopher Ferris 34cbba6e16 Add liblog as shared dependency for isolated tests.
If liblog is a static library, then unit tests cannot properly
override log functions.

Test: Build isolated tests and run them.
Change-Id: Id202c5950518408ce66ceea70988dde8080fd1f9
2019-07-17 15:46:29 -07:00
Jeff Vander Stoep d612627169 Renderscript: rename .rs extension to .rscript
Reserve .rs extension for Rust.

Bug: 137365032
Test: make checkbuild
Test: cd frameworks/compile/slang/tests
    ./slang_tests.py
    Test: atest CtsRenderscriptTestCases
    Test: CtsRsCppTestCases

Change-Id: I0458009b8bb64a012fece364835d5b78d52e15e9
Merged-In: I0458009b8bb64a012fece364835d5b78d52e15e9
2019-07-17 18:57:32 +00:00
Colin Cross 9dbe4eea79 Merge changes from topic "buildnumberfromfile"
am: 223e6a65b6

Change-Id: I4e2f0514434ddf6833d03334dbf36869d762214e
2019-07-16 19:59:12 -07:00
Colin Cross 223e6a65b6 Merge changes from topic "buildnumberfromfile"
* changes:
  Allow jar wrapper to take quoted arguments
  Add rspfile support to RuleBuilder
  Prepare droiddoc for using RuleBuilder
  Manually escape BuildNumberFromFile
  Fix android.Expand and ninja escaping
  Add RuleBuilder helper functions for built and prebuilt tools
  Add documentation to droiddoc.go module types
2019-07-17 02:45:03 +00:00
Peter Collingbourne d0ae5425be Merge "Use LLD for partialLd."
am: 2e16e2d9e1

Change-Id: I1492850ecfaa0f3bd42ca6b4308fc13f31d3e939
2019-07-16 18:18:23 -07:00
Mitch Phillips da9a463794 Add the cc_fuzz target.
Adds the cc_fuzz target via a cc_fuzz module. Also implements the
libclang runtime interface for the x86 toolchain to allow host-built
fuzzers.

Bug: 133261679
Bug: 137398545

Test: Build a fuzzer (with all topic patches), notice that you now
have a host-built fuzzer :)

Change-Id: I7fa069603415f40b3f12a002c253fca6e2aa1988
2019-07-16 16:30:53 -07:00
Peter Collingbourne 84d8385ae1 Use LLD for partialLd.
Clang will soon start using relocations that are currently unsupported by
the version of ld.bfd that Android uses when HWASAN is enabled. This will
cause partialLd to fail since the clang driver defaults to ld.bfd.

Switch to using LLD, since it will support those relocations.

Change-Id: I0964f53dc63773f3b52bb377f863df9c39961a07
2019-07-16 14:14:36 -07:00
Colin Cross 5822b552ef Manually escape BuildNumberFromFile
Change ctx.Config().BuildNumberFromFile() to be unescaped, and then
escape it manually where necessary.  This will allow passing
ctx.Config().BuildNumberFromFile() to RuleBuilder, which will handle
the necessary escaping.

Test: no change to out/soong/build.ninja
Change-Id: I5329ab2ba70ccea49958864488aa81794a7e4b56
2019-07-16 10:23:41 -07:00
Dimitry Ivanov 1866802e07 Merge "Make relative path for native_bridge binaries configurable"
am: 2ca7a8835e

Change-Id: I2cc8f8145c6464cf0ab91a602a5861ffc5a24505
2019-07-16 02:43:41 -07:00
Dimitry Ivanov 2ca7a8835e Merge "Make relative path for native_bridge binaries configurable" 2019-07-16 09:17:35 +00:00
dimitry 8d6dde8831 Make relative path for native_bridge binaries configurable
This change introduces NativeBridgeRelativePath and
NativeBridgeSecondaryRelativePath product variables to
make relative path to native_bridge binaries configurable.

It also removes moves information about native bridge
host architecture to Target and sets it during decodeTargetProductVariables

Test: make PRODUCT-cf_x86_phone-userdebug dist
Change-Id: Ie736e81eae507e1775566ce9f29135011b12af27
2019-07-15 20:04:07 +02:00
Elliott Hughes 0a4996eae5 Merge "Stop defining unused USE_SSSE3."
am: b940a1499b

Change-Id: I1ffdadb67b35ef899db10b49253f2c93073527c7
2019-07-13 10:23:29 -07:00
Treehugger Robot b940a1499b Merge "Stop defining unused USE_SSSE3." 2019-07-13 16:59:49 +00:00
Elliott Hughes b22dcfe05c Stop defining unused USE_SSSE3.
This copy & paste has even made it into the fuchsia configuration...

Test: builds
Change-Id: If22615fdf04448c058db014d93155e6264fb3eb2
2019-07-12 22:40:45 -07:00
Mitch Phillips 88cddcf297 Merge "Re-enable ASAN globals instrumentation for devices."
am: 68c9eed6b2

Change-Id: I8a29cd64cd1c9a60adcc1bc8858163a1589cc20e
2019-07-12 13:20:19 -07:00
Stephen Hines 66c8b446aa Add support for AUTO_*_INITIALIZE to build/soong.
Bug: http://b/131390872
Test: Builds with/without AUTO_ZERO_INITIALIZE set.
Test: Builds with/without AUTO_PATTERN_INITIALIZE set.

Change-Id: If085ec53c619e2cebc86ca23f7039298160d99ae
2019-07-12 02:22:10 -07:00
Mitch Phillips cba311bcfc Re-enable ASAN globals instrumentation for devices.
ASan globals instrumentation apparently broke the build in the pass.
This is now a customer feature to get this up and running, let's see if
it works.

Bug: 137312732

Test: Build the platform, deploy and run an asan-ified test (maybe
resolv_integration_test?).

Change-Id: Ic4ee0db617c290d8a3fec52db4b90bc4772696b8
2019-07-11 17:16:58 -07:00
Colin Cross ee94d6ab14 Add RuleBuilder helper functions for built and prebuilt tools
Replace the common pattern of:
cmd.Tool(ctx.Config().HostToolPath(ctx, "tool"))
with:
cmd.BuiltTool("tool")

And similarly for PrebuiltBuildTool.

Test: m checkbuild
Change-Id: I7d63188505362c7df6a3b3e7330b4a2cca5a2409
2019-07-11 13:05:19 -07:00
Jiyong Park 6374a89990 Merge "Use ctx.Target().NativeBridge to detect if the arch is translated or not"
am: f378a85523

Change-Id: I1d2fb8391f9339e0f27dce606b67ca0c192c8e5e
2019-07-10 18:24:05 -07:00
Jiyong Park acbf6c76c6 Use ctx.Target().NativeBridge to detect if the arch is translated or not
Bug: 137015854
Test: m
Test: build cf_x86_phone and ensure there is no dangling symlink
/system/lib/arm/libm.so

Change-Id: I0f5efdb9e1f5e4e213ca4ebaa28ace0a130b36a6
2019-07-10 18:07:38 +09:00
Pirama Arumuga Nainar ce09846256 Merge changes from topic "gcov-prefix-permissions-fix"
am: bc53fefd6a

Change-Id: I9c4a91abd6e114abedbfb6e0916678cab2da2d6c
2019-07-09 08:57:21 -07:00
Pirama Arumuga Nainar e3493d33a7 Refactor libprofile-extras to be added as a whole static library
am: 82fe59b656

Change-Id: Idfa4b3fdbf4f7ffa461652464c557aa5dc44e523
2019-07-09 08:57:15 -07:00
Pirama Arumuga Nainar bc53fefd6a Merge changes from topic "gcov-prefix-permissions-fix"
* changes:
  Wrap getenv when linking a coverage-enabled binary
  Refactor libprofile-extras to be added as a whole static library
2019-07-09 15:32:48 +00:00
Inseob Kim f23a2bfa6f Merge "[trivial] Remove dead code"
am: fccc52f46b

Change-Id: Ieac00d1f29b5077836e68748f2e2e41df17315ec
2019-07-08 17:27:49 -07:00
Inseob Kim 0ce291ebee [trivial] Remove dead code
Bug: N/A
Test: m
Change-Id: Ia278008249f5fc1cf5fd7d29e55e2e54f1d6f3ca
2019-07-04 14:39:22 +09:00
Pirama Arumuga Nainar 100bbdc8f3 Wrap getenv when linking a coverage-enabled binary
The wrapper to getenv() appends the effective userid (euid) of the
current process to GCOV_PREFIX.  This avoids conflicts and permissions
issues when multiple processes try to create/access the same directories
and files under /data/misc/trace.

Test: Verify that coverage files are written to
/data/misc/trace/<euid>/proc/... instead of /data/misc/trace/proc/...

Change-Id: If58081a12b2b9bc40cfcbf64c99beafe198d07af
2019-07-03 15:28:54 -07:00
Pirama Arumuga Nainar 82fe59b656 Refactor libprofile-extras to be added as a whole static library
Bug: http://b/134177005
Bug: http://b/116873221

Previously, the libprofile-extras dependency was added as a
LateStaticLib and the constructor in this library was included during
linking with the '-uinit_profile_extras' linker flag.  This was done
because at the deps() stage, the exact binaries that need coverage are
not known (in fact the coverage-enabled variants are not created yet).

This meant that for a link command, if one of the shared libraries
already exported the constructor, the output of the link command did not
load/link libprofile-extras.

For other reasons, we now want to add more symbols to this library that
need to be linked into all libraries and executables.  To accomplish
that, refactor the dependency handling so libprofile-extras can be added
as a 'WholeStaticLib'.

This is done by creating a new dependency type (with a coverageDepTag
dependency tag) to add libprofile-extras as a dependency for all modules
that can potentially link with coverage.  During the flags() call, this
dependency is moved as a WholeStaticLib dependency iff coverage is
enabled in this link step.

There are a few NFC changes as well:
- deps() takes a DepsContext parameter.
- flags() has an extra PathDeps parameter and return value.
- add useSdk() helper to cc.Module.

Test: Build with coverage and check that we can generate coverage using
SIGUSR1 and the debug.coverage.flush sysprop.

Change-Id: I7e7d8201956a150febbda5bb1794f8ece016db8b
2019-07-03 15:28:50 -07:00
jaishank 3cb1f6a532 Merge "Disabled avx avx2 avx512 compiler flags by default. Library components can enable the flags based on performance impact" am: dd5cf7574b
am: 1b4699a2cf

Change-Id: I553cab57535513558e3d976e0d3e5c6a4532a02b
2019-06-28 14:28:05 -07:00
Colin Cross d3c8c1ed26 Merge "Treat .cxx files as c++" am: 35bb770e0e
am: 6598f20be5

Change-Id: Ib62c7134007c7e7ed9d838a377261c9b3d169213
2019-06-28 14:27:47 -07:00
Treehugger Robot dd5cf7574b Merge "Disabled avx avx2 avx512 compiler flags by default. Library components can enable the flags based on performance impact" 2019-06-28 21:14:33 +00:00
Colin Cross d34ab7c6b2 Treat .cxx files as c++
Fixes: 135749365
Fixes: 135667566
Test: m checkbuild
Change-Id: If47274812dfe781ebbb9f8a60a395650573727d5
2019-06-27 14:46:10 -07:00
jaishank 7e84969f96 Disabled avx avx2 avx512 compiler flags by default.
Library components can enable the flags based on
performance impact

Test: run-test gtest
Change-Id: I41c4464cffd2b0e830d4ab1c5a25b378e2a25129
Signed-off-by: jaishank <jaishankar.rajendran@intel.com>
2019-06-27 10:36:23 +05:30
Hsin-Yi Chen 01cc4601fb Merge "Generate ABI dumps for libraries without source" am: 30057808e1
am: 1ee24e40dd

Change-Id: I8fc879a871e43f276b9e9fa4d6ce25be38063dd6
2019-06-26 19:42:08 -07:00
Hsin-Yi Chen 30057808e1 Merge "Generate ABI dumps for libraries without source" 2019-06-27 02:08:34 +00:00
Dan Willemsen 079e8ac9bf Merge "Use prebuilt m4 for bison too" am: 02f6880c27
am: 257400347a

Change-Id: I3ddd5f905685fbf6b1a102bb800e854c0a304291
2019-06-25 22:20:02 -07:00
Dan Willemsen c4a6aa83e8 Use prebuilt m4 for bison too
Bison is currently looking for m4 directly in `/usr/bin/m4`, instead of
through $PATH, so it hadn't been tracked via the $PATH interposer
checks. But if you don't install m4 at all, it starts failing.

Bug: 117561006
Bug: 130111713
Test: Run on a machine without m4, build passes
Change-Id: I3fbad64127c183de79c17511e979fd5df946eb80
2019-06-25 16:12:12 -07:00
Hsin-Yi Chen f6a95467e2 Generate ABI dumps for libraries without source
This commit enables ABI diff for libraries without source.
Stub libraries are excluded.

Test: ./create_reference_dumps.py -products aosp_arm64
Test: make
Bug: 135728451
Change-Id: Idbe276db6f5e057175fc098f0226cb38996faa17
2019-06-25 15:06:13 +08:00
Colin Cross e0318dec1b Merge changes Ia77090da,I95a57f76 am: e264f22bec
am: 0240f5cea1

Change-Id: I61e3e45e533cb62c548fcd09b2bf5eb3890e0a38
2019-06-21 10:51:45 -07:00
Colin Cross e264f22bec Merge changes Ia77090da,I95a57f76
* changes:
  Fix data races in finder_test.go
  Optimize sanitizerRuntimeDepsMutator
2019-06-21 17:01:23 +00:00
Mitch Phillips a87c8005b4 Merge "Remove experimental pass manager for fuzzer builds." am: c4be0815d8
am: 07c9775cef

Change-Id: I333316ff6041b6139b86bed5469885b42b6be96d
2019-06-20 18:17:19 -07:00
Treehugger Robot c4be0815d8 Merge "Remove experimental pass manager for fuzzer builds." 2019-06-21 00:51:26 +00:00
Dan Willemsen 9178a6ccb7 Merge "Use prebuilt m4 instead of system m4" am: d9cf7fc48e
am: 809fb63cc1

Change-Id: Icfc74137bafb6333538553d9bde9dc6f8e57a42d
2019-06-20 16:18:02 -07:00
Colin Cross 0b90833ea8 Optimize sanitizerRuntimeDepsMutator
sanitizerRuntimeDepsMutator only modifies the currently visited
module, it can visit modules in parallel.

Also, stop recursing into modules that are not static dependencies,
and stop recursing if the module already has all modifications that
the mutator could make.

Test: m checkbuild
Change-Id: I95a57f763a91940f1854ba3c587a2f70e8baba97
2019-06-20 15:23:41 -07:00
Dan Willemsen c69d715d72 Use prebuilt m4 instead of system m4
Bug: 117561006
Test: treehugger
Change-Id: I588d867d95cc52963ce764018a9c09b26973c8c3
2019-06-19 12:50:32 -07:00
Nick Desaulniers 8414bef84d Merge "Switch to clang-r353983d" am: 2deb017c04
am: f1b45a21a4

Change-Id: If3444510dbf9767c5c825a5414f0046f5c272449
2019-06-17 10:40:40 -07:00
Mitch Phillips 74384758a6 Remove experimental pass manager for fuzzer builds.
Sanitizer coverage is currently broken with the experimental pass
manager. See b/133876586 for more information. The patch is currently
being worked on upstream (https://reviews.llvm.org/D62888), but is not
ready yet. Hence, we disable it here (similar to the LTO bug).

Bug: 133876586
Test: Build anything with SANITIZE_TARGET='fuzzer', verify that it has
'sancov' symbols.

Change-Id: I4302a8cf05300015aaff137f40b61d5685dc3fea
2019-06-17 10:33:52 -07:00
Nick Desaulniers 2deb017c04 Merge "Switch to clang-r353983d" 2019-06-17 16:25:51 +00:00
Inseob Kim bd4435b2e0 Merge "sysprop_library: Rename system scope to public" am: b1856799b1
am: 653ac78cbc

Change-Id: I0938fb362e86739b9c7d870bcb514118dd8b23ea
2019-06-15 23:22:47 -07:00
Treehugger Robot b1856799b1 Merge "sysprop_library: Rename system scope to public" 2019-06-16 06:08:14 +00:00
Evgenii Stepanov d7344ad0ca Disable new LLVM pass manager for HWASan. am: 1c69e83030
am: b85d386af5

Change-Id: I443bdbf313216591841272cbe51491fd6bd51fbd
2019-06-15 14:13:04 -07:00
Evgenii Stepanov 1c69e83030 Disable new LLVM pass manager for HWASan.
Current Android toolchain does not support hwasan with new pm.

Bug: 135298400
Test: manual, inspect the binaries for calls to __hwasan_init
Change-Id: I126c59e6ecabc3a1699e1bf34c546568b6e8a21f
2019-06-14 18:39:59 -07:00
Nick Desaulniers 36a39c9852 Switch to clang-r353983d
Test: build+boot sargo, TreeHugger
Bug: 131714073
Change-Id: Ieec2500027a78b80147f86b2bdaeaedaa1c18360
2019-06-14 16:31:34 -07:00
Dan Shi a2e7deb129 Merge "Support require_root in auto-gen test configs" am: 9314e1124b
am: c22778c363

Change-Id: Ie9c3248937ccce23a55a99d29e65a2e88aabd4d2
2019-06-14 15:45:20 -07:00
Dan Shi 9314e1124b Merge "Support require_root in auto-gen test configs" 2019-06-14 22:21:39 +00:00
Pirama Arumuga Nainar fcd0182d26 Merge "Remove redundant -fexperimental-new-pass-manager" am: 50b382a9e3
am: bd6e734a8a

Change-Id: I01fa59cb0df22850d1d55dd7752bae936dd43acd
2019-06-14 14:41:06 -07:00
Pirama Arumuga Nainar 50b382a9e3 Merge "Remove redundant -fexperimental-new-pass-manager" 2019-06-14 21:02:45 +00:00
Dan Shi 37ee3b8f49 Support require_root in auto-gen test configs
require_root is added to allow auto-generated test config to include
RootTargetPreparer so the test runs with root permission.

Bug: 134509111
Test: add "require_root: true" to init_benchmarks and libpower_test
  build the modules, confirm the extra target preparer is added in the
  test configs.

Change-Id: Ia07503e338935d6aa92560e7cf7b18d2a4c51243
2019-06-14 11:10:13 -07:00
Pirama Arumuga Nainar 3a25405acc Remove redundant -fexperimental-new-pass-manager
This is now turned on by default (cc/config/clang.go).

Test: N/A
Change-Id: I61bcf2049448b4200ca303ebcad555cc24a43c18
2019-06-14 09:54:23 -07:00
Dan Willemsen ebb0478869 Merge changes If25be604,I0a310229,I44155630 am: 42d33779cd
am: f32716e448

Change-Id: I08a9a38e59896cbec930d6087f96eaa9b327d4cc
2019-06-14 01:29:49 -07:00
Treehugger Robot 42d33779cd Merge changes If25be604,I0a310229,I44155630
* changes:
  Add another jar used by kotlinc
  Actually depend on the headers from renderscript
  Fix a few missing dependencies in APEX building
2019-06-13 17:40:01 +00:00
Yi Kong 6731da7fe2 Merge "Move darwin to llvm-ar" am: 4821597065
am: 5c54831a17

Change-Id: Ib8e327b77ec1702de52d3faa1c5920c74630ba16
2019-06-12 23:20:20 -07:00
Dan Willemsen b085b9b907 Actually depend on the headers from renderscript
Instead of having all the object compilations depend on a stamp file,
instead depend on the headers, which are already available in the build
graph.

This allows my RBE builds to just find the headers, instead of having to
walk the graph to find the other outputs.

Test: treehugger
Test: build a system image with RBE
Change-Id: I0a310229be26d7bd399e074a4350d5be038f8661
2019-06-13 05:21:37 +00:00
Yi Kong 823532df31 Move darwin to llvm-ar
Test: build
Bug: 71618641
Change-Id: Ib45963bc9e295afe39752a270f7b5a1197335c69
2019-06-12 19:16:25 -07:00
Colin Cross 31de2eaf51 Merge changes Ia17b2bcb,Ic71892c3,Id2b23b9e,I435ee7aa,I85112506, ... am: 72ea641dff
am: 98a6f300fa

Change-Id: I84683c2204afb5792ec11e2c608dca288e9431ec
2019-06-12 13:52:07 -07:00
Dan Willemsen 3fea9cbe7f Merge "Convert cc aidl to rule builder" am: 733728b42c
am: b29f7672a1

Change-Id: I2c1e300e268467d1b91b4aa93ac3754d890bfcd0
2019-06-12 13:50:02 -07:00
Colin Cross 72ea641dff Merge changes Ia17b2bcb,Ic71892c3,Id2b23b9e,I435ee7aa,I85112506, ...
* changes:
  Consolidate *MutatorContext and ModuleContext into BaseModuleContext
  Add test for missing defaults modules with AllowMissingDependencies
  Capture missing dependency error rules
  Share buildDir for android/soong/android tests
  Reimplement AddMissingDependencies
  Add GenerateAndroidBuildActions to DefaultsModuleBase
2019-06-12 20:19:55 +00:00
Dan Willemsen 733728b42c Merge "Convert cc aidl to rule builder" 2019-06-12 20:08:46 +00:00
Jiyong Park 4852239e35 Merge "Let genrule be mutatable by the apex mutator" am: 7b8afc798a
am: 8e5d79cc67

Change-Id: I674e8eedc63b632e1c775b9f06deeb4388b893ae
2019-06-12 11:57:55 -07:00
Treehugger Robot 7b8afc798a Merge "Let genrule be mutatable by the apex mutator" 2019-06-12 18:39:28 +00:00
Jiyong Park fc752ca1ac Let genrule be mutatable by the apex mutator
genrule modules were not mutated by the apex mutator. As a result, a
module that is mutated for an apex have depended on the genrule modules
host_bionic_linker_{asm|flags} that are not mutated for the APEX.

This in turn caused an inconsistency problem because the
host_bionic_linker_* genrules use the dynamic linker that isn't mutated
for APEX as an input, while the outputs of the genrules are used by
modules mutated for APEX. The inconsistency caused b/135008828.

Fixing this issue by correctly let genrule to be mutated by the apex
mutator.

Bug: 135008828
Test: checkout master-art-host
ALLOW_MISSING_DEPENDENCIES=true DIST_DIR=out/dist
./art/tools/dist_linux_bionic.sh -j50 showcommands
com.android.runtime.host
is passing

Change-Id: I92d90400c61d3951f6202d932832d0cb63c95a7d
2019-06-12 13:28:11 +09:00
Oliver Nguyen f3906b64f6 Merge "Package coverage files as a zip." am: 7268fd494d
am: 85cefe661b

Change-Id: I9937d797b9447e921c56dbf8c3b01c05f0514648
2019-06-11 19:28:00 -07:00
Treehugger Robot 7268fd494d Merge "Package coverage files as a zip." 2019-06-12 02:00:01 +00:00
Oliver Nguyen c743414d42 Package coverage files as a zip.
Test: make NATIVE_COVERAGE=true COVERAGE_PATHS="*"
Change-Id: I955212a20ea19c854ebc88635252a1d174ea8f7f
2019-06-11 16:04:11 -07:00
Inseob Kim 5cefbd289d sysprop_library: Rename system scope to public
In the first design, public sysprops have been accessible from Java
modules linking against SDK. But SDK modules shouldn't do, because
sysprop_library isn't for the apps. This renames system to public, so
that only public(System till now) and internal scopes remain from now.

Bug: 131637873
Test: m && sysprop_test
Change-Id: I548007d4a6018922f98d3d13915cee1d66070086
2019-06-11 23:31:32 +09:00
Roland Levillain bcb2d44966 Merge "Have `symlink_preferred_arch: true` honor the `stem` property." am: d7607c1c99
am: 299abf19c3

Change-Id: If982b553818062f476298027f0ae19b9e6699a06
2019-06-11 07:01:03 -07:00
Roland Levillain d7607c1c99 Merge "Have `symlink_preferred_arch: true` honor the `stem` property." 2019-06-11 13:45:25 +00:00
Inseob Kim 434e298b5d Merge "Separate exported includes out of flags" am: b879fb6b4b
am: 6011640688

Change-Id: I2128da11b37b5a378cfb64039968cd9695a34ec3
2019-06-10 22:12:21 -07:00
Treehugger Robot b879fb6b4b Merge "Separate exported includes out of flags" 2019-06-11 04:57:47 +00:00
Dan Willemsen f8bd602f3f Merge "Add dependency to version script when linking stub libraries" am: d1fcc4a93d
am: 2cb02169d4

Change-Id: Icb497c8eb70c22bc5ff8c4b402d2277756c5078c
2019-06-10 21:16:11 -07:00
Treehugger Robot d1fcc4a93d Merge "Add dependency to version script when linking stub libraries" 2019-06-11 03:59:42 +00:00
Josh Gao 8563a453d6 Merge "Revert "Revert "Revert "Revert "Enable lld for windows""""" am: a1738e2c00
am: 1697e781bb

Change-Id: I6ceaffde7b71606ca5a6d086502fcc6e52e24266
2019-06-10 19:00:22 -07:00
Inseob Kim 7c8b645347 Merge "Fix sysprop_library build err when using filegroup" am: 4b0cc8c3c5
am: 6364f4732a

Change-Id: Ibb1c9b593efe79d6de25ee828bfde9510fc8f9cb
2019-06-10 18:49:19 -07:00
Josh Gao a1738e2c00 Merge "Revert "Revert "Revert "Revert "Enable lld for windows""""" 2019-06-11 01:43:42 +00:00
Inseob Kim 6937844c29 Separate exported includes out of flags
Exported includes have been maintained along with other C/C++ flags.
This makes dependencies unclear, and users have had to parse flags to
get exported directories. This separates exported includes and
exported flags, thus making data more structured and explicit.

Bug: 132818174
Test: m
Change-Id: I5c25ac2224988c4a67e4db6fd6e4d39090b74041
2019-06-11 10:37:56 +09:00
Treehugger Robot 4b0cc8c3c5 Merge "Fix sysprop_library build err when using filegroup" 2019-06-11 01:21:44 +00:00
Dan Willemsen 939408aa22 Add dependency to version script when linking stub libraries
This isn't an effective issue with local builds currently, since the
version script is generated from the same rule as the sources used to
compile the objects that are also used in the link command. But if we
ever separated those paths or adopted restat, we could miss this
dependency.

This is also required for my RBE build to actually expose this file to
the link step.

Test: treehugger
Change-Id: I32bbb18cf7edddc88759d4f445d081868f3e9b44
2019-06-10 18:02:25 -07:00
Colin Cross 59037628f4 Add GenerateAndroidBuildActions to DefaultsModuleBase
Add an empty GenerateAndroidBuildActiosn to DefaultsModuleBase
so that every defaults module doesn't need to provide one.  This
will also allow adding an implementation in the next patch.

Test: m checkbuild
Change-Id: I13554bdb3a287c2f18e1efab74d4f08a1ba8620c
2019-06-10 13:51:17 -07:00
Josh Gao 75a50a2c15 Revert "Revert "Revert "Revert "Enable lld for windows""""
This reverts commit b20200b3f5.

Bug: http://b/110800681
Test: manual
Change-Id: Id3eb45ed29f3977fef3da241ec2c43755116d60c
2019-06-10 12:59:11 -07:00
Colin Cross 9d5d72f7a6 Merge changes I9f8df94f,I2d7f5c56,I0ebb7381,Ieefcfc1a am: a6bf56d4be
am: 236ac108f5

Change-Id: Ia0777130add15aceb17739f5dcb613ca4e1bf172
2019-06-10 10:00:33 -07:00
Colin Cross a6bf56d4be Merge changes I9f8df94f,I2d7f5c56,I0ebb7381,Ieefcfc1a
* changes:
  Consolidate *MutatorContext and ModuleContext into BaseModuleContext
  Consolidate baseContext, BaseContext, and BaseModuleContext
  Rename ModuleBase receivers
  Remove repetition in android package names
2019-06-10 16:38:11 +00:00
Inseob Kim da63a49338 Fix sysprop_library build err when using filegroup
.sysprop files are intended to be used only with sysprop_library, and we
can prevent build error by specifying dependencies upon CreateModule.

Bug: 131708148
Test: 1) try building sysprop_library module.
Test: 2) see liblog is correctly linked.
Change-Id: I702cedc255ee0b6a30c15e474dd6a88d9607b145
2019-06-10 14:18:13 +00:00
Roland Levillain 9efb8c773f Have `symlink_preferred_arch: true` honor the `stem` property.
If a module defines a `stem` property, use it to name the symlink
created for `symlink_preferred_arch: true` (instead of the module's
name).

Also always require suffixes when using `symlink_preferred_arch: true`.

Test: m
Change-Id: Ia8a56f94d21599194797ef8b259f5f03e08cb16a
2019-06-10 15:03:44 +01:00
Josh Gao adb1511181 Merge "Revert "Revert "Revert "Enable lld for windows"""" am: 46160c6423
am: 118d99de1e

Change-Id: Id8073e33bd20ab63d4c6bace043ad8387f6d8ddd
2019-06-07 15:55:46 -07:00
Josh Gao b20200b3f5 Revert "Revert "Revert "Enable lld for windows"""
This reverts commit 6d8c0a50bc.

The switchover to lld appears to be making adb crash on exit for unclear
reasons. Revert it as a quick fix pending further investigation.

Bug: http://b/134613180
Test: adb.exe under windbg
Change-Id: Ibdf5981c3c6828b3684974b7c30a7c96449c64c5
2019-06-07 12:34:18 -07:00
Colin Cross 0ea8ba82fc Consolidate baseContext, BaseContext, and BaseModuleContext
blueprint.BaseModuleContext is the set of methods available to all
module-specific calls (GenerateBuildActions or mutators).  The
android package split the same functionality across baseContext (nee
androidBaseContext), BaseModuleContext, and BaseContext.
Consolidate all of them into android.BaseModuleContext.

Test: m checkbuild
Change-Id: I2d7f5c56fd4424032cb93edff6dc730ff33e4f1e
2019-06-06 20:01:31 -07:00
Roland Levillain 7b7aaf7e2f Merge "Allow arch-specific `symlink_preferred_arch` properties." am: 42729b481a
am: d0814ca920

Change-Id: If31f5553207a024f447c0b5b232a8490e5a2a81d
2019-06-06 12:25:19 -07:00
Treehugger Robot 42729b481a Merge "Allow arch-specific `symlink_preferred_arch` properties." 2019-06-06 19:10:41 +00:00
Dan Willemsen 1945a4b47d Convert cc aidl to rule builder
This fixes an incremental build issue where we didn't clean up old aidl
header files (or necessarily notice that they were updated).

We do this by declaring the header files as outputs in the build graph,
but this means that the src file name needs to be convertible to the
aidl package name, as that's how the header file paths are created. In
many cases, filegroups can be used to strip path prefixes from the aidl
files.

Bug: 112114177
Test: treehugger
Change-Id: If534ff3dbfac329dea9a7402e30be74495754160
2019-06-06 08:23:53 -07:00
Jaewoong Jung 6a98d5d59b Merge "android_app stl property bug fix" am: 4f67c42d76
am: 58d0f0cf69

Change-Id: Ic14f463f27b8413e0d4960658c41407763d79ba6
2019-06-05 13:47:32 -07:00
Jaewoong Jung 4f67c42d76 Merge "android_app stl property bug fix" 2019-06-05 20:16:13 +00:00
Roland Levillain d9bf9be007 Allow arch-specific `symlink_preferred_arch` properties.
Test: m
Bug: 133864678
Change-Id: Ia6e62156adda2b3a51220552bbe4dab738753674
2019-06-05 19:38:45 +01:00
Colin Cross d6e75e4ef9 Merge "Support tagged module references" am: b4c35f3378
am: a360b2b335

Change-Id: I61cff6302236ed5c67b86682563eaeae9d0e3363
2019-06-05 10:34:40 -07:00
Treehugger Robot b4c35f3378 Merge "Support tagged module references" 2019-06-05 17:17:32 +00:00
Yi Kong 37e223acba Merge "Clean up no_libgcc" am: 4cb61bed13
am: 98c2e16956

Change-Id: Ieda5df559695429ca26fe6fa48b9a4dc12d43302
2019-06-04 19:39:46 -07:00
Yi Kong 4cb61bed13 Merge "Clean up no_libgcc" 2019-06-05 00:58:35 +00:00
Jaewoong Jung 710756a6ff android_app stl property bug fix
When it is set to c++_shared, the added dependency should be
libc++_shared, not libc++.

Fixes: 130891985
Test: app_test.go, atest 'CtsNdkBinderTestCases' w/ conversion CL
Change-Id: I0e50e0d5bf511aa6e52d16cd715a185721011255
2019-06-04 12:36:00 -07:00
Colin Cross 41955e8895 Support tagged module references
There are cases where a module needs to refer to an intermediate
output of another module instead of its final output.  For example,
a module may want to use the .jar containing .class files from
another module whose final output is a .jar containing classes.dex
files.  Support a new ":module{.tag}" format in any property that
is annotated with `android:"path"`, which will query the target
module for its ".tag" output(s).

Test: path_properties_test.go, paths_test.go
Test: no unexpected changes in build.ninja
Change-Id: Icd3c9b0d83ff125771767c04046fcffb9fc3f65a
2019-06-04 10:22:51 -07:00
Colin Cross 9cc712aa51 Merge changes I88973671,If5a3b53a am: 2406a123ba
am: 5a927378ea

Change-Id: Ibba9c6d25e075943ffd8d91ee5929a9b591bd25a
2019-06-03 23:30:30 -07:00
Treehugger Robot 2406a123ba Merge changes I88973671,If5a3b53a
* changes:
  Fix nondeterminstic iteration of vndk modules map
  Fix data race and ordering consistency in apex modules
2019-06-04 06:10:00 +00:00
Ryan Prichard 50a38af826 Merge "Omit .gnu_debuglink sections in object files" am: e29e2473d2
am: b78d3c1b70

Change-Id: I8a83acd15739c4ae2bd52bb3b450f09bd4c9f872
2019-06-03 16:35:31 -07:00
Ryan Prichard e29e2473d2 Merge "Omit .gnu_debuglink sections in object files" 2019-06-03 23:15:38 +00:00
Yi Kong e7fe9913d6 Clean up no_libgcc
no_libgcc is no longer needed anywhere. Move all occurances to no_libcrt
and remove no_libgcc.

Test: build
Change-Id: I6dd49db71d05d7685aa90cc837627f65e6742d6d
2019-06-03 15:52:40 -07:00
Colin Cross 4c2c46f0a7 Fix nondeterminstic iteration of vndk modules map
Sort the list of libraries when iterating over the vndk modules
map to avoid a non-deterministic output file.

Test: m nothing && mv out/soong/build.ninja /tmp && m nothing && diff -u out/soong/build.ninja /tmp/build.ninja
Change-Id: I889736715dab491bb7e69f3499ab1a5e2c876171
2019-06-03 15:52:27 -07:00
Ryan Prichard f979d73428 Omit .gnu_debuglink sections in object files
I'm not sure if these sections are used, but by adding them to
libgcc_stripped.a, we can end up with multiple .gnu_debuglink sections in
an executable, where the first two unhelpfully point at "libgcc.a". e.g.:

$ readelf -SW -x.gnu_debuglink out/target/product/walleye/system/bin/bootstrap/linker64
...

Section Headers:
  ...
  [18] .gnu_debuglink    PROGBITS        0000000000000000 10f19c 000020 00      0   0  1
  ...
  [22] .gnu_debuglink    PROGBITS        0000000000000000 18a2c8 000010 00      0   0  4
  ...

Hex dump of section '.gnu_debuglink':
  0x00000000 6c696267 63632e61 00000000 3d5f65d8 libgcc.a....=_e.
  0x00000010 6c696267 63632e61 00000000 3d5f65d8 libgcc.a....=_e.

Hex dump of section '.gnu_debuglink':
  0x00000000 6c696e6b 65723634 00000000 f85db7ea linker64.....]..

Bug: none
Test: m libgcc_stripped linker
Test: no .gnu_debuglink section in libgcc_stripped.a
Test: only one .gnu_debuglink section in system/bin/bootstrap/linker64
Change-Id: I0c47a9acd6d52f5cbc5bfa8b67d072ebb075a242
2019-05-31 15:07:16 -07:00
Dimitry Ivanov 4fb0004f6b Merge "Skip native_bridge modules when installing vndk snapshot" am: 656833e0c8
am: 441c715fe8

Change-Id: Ie8425f616d0393101637ff2d63ba957fa26a49ea
2019-05-31 06:12:32 -07:00
Dimitry Ivanov 656833e0c8 Merge "Skip native_bridge modules when installing vndk snapshot" 2019-05-31 12:51:55 +00:00
Mitch Phillips bfeade6424 Fix fuzzer builds [#2].
- Updates the fuzzer builds to use SANITIZE_TARGET='fuzzer' instead of
'coverage'.
- Removed an old dependency that made fuzzer builds without ASan
an error.
- Fixed up the build flags to allow fuzzers to be built. Previously, the
coverage flags were manually provided. As the toolchain has moved on,
these flags are no longer compatible with libFuzzer, and so I've updated
them to use the correct, compatible flags.
- Added a dependency mutator for fuzzer coverage.

Bug: 121042685
Test: With all patches in the bug merged, build a fuzzer using
'SANITIZE_TARGET=fuzzer mmma <your_fuzzer>'.

Change-Id: Ib6246980f77bc4babe587b1e88038aa12228fa83
Merged-In: Ib6246980f77bc4babe587b1e88038aa12228fa83
2019-05-30 16:49:42 +00:00
Mitch Phillips 5a6ea6cf3b Fix fuzzer builds [#2].
- Updates the fuzzer builds to use SANITIZE_TARGET='fuzzer' instead of
'coverage'.
- Removed an old dependency that made fuzzer builds without ASan
an error.
- Fixed up the build flags to allow fuzzers to be built. Previously, the
coverage flags were manually provided. As the toolchain has moved on,
these flags are no longer compatible with libFuzzer, and so I've updated
them to use the correct, compatible flags.
- Added a dependency mutator for fuzzer coverage.

Bug: 121042685
Test: With all patches in the bug merged, build a fuzzer using
'SANITIZE_TARGET=fuzzer mmma <your_fuzzer>'.

This is the qt-dev-plus-aosp cherrypick of aosp/954925. See the AOSP
commit for further information.

Change-Id: Ib6246980f77bc4babe587b1e88038aa12228fa83
2019-05-28 15:46:11 -07:00
Jooyung Han 519f9f337e Merge "exports LOCAL_SOONG_VNDK_VERSION for VNDK libs" am: 75fcf98038
am: e1d405b385

Change-Id: Ib30ccf47efd65401e2f59d2d18c94c6599674782
2019-05-24 20:05:45 -07:00
Treehugger Robot 75fcf98038 Merge "exports LOCAL_SOONG_VNDK_VERSION for VNDK libs" 2019-05-25 00:16:31 +00:00
Yi Kong 8973bd7683 Merge "Enable the experimental LLVM new pass manager" am: 2adb7eec9a
am: c0377c2a12

Change-Id: Ia4af6b0c9be34bea2aff6d7c536a38420ebb567d
2019-05-24 11:17:33 -07:00
Yi Kong 2adb7eec9a Merge "Enable the experimental LLVM new pass manager" 2019-05-24 17:33:26 +00:00
Dimitry Ivanov c44f7bbd9f Merge "Fix override for native_bridge modules" am: acce05a58c
am: ed0b1aa02f

Change-Id: Ie0887663e9366f0cfd7319e8026c67b33b62c79c
2019-05-24 06:11:32 -07:00
Dimitry Ivanov acce05a58c Merge "Fix override for native_bridge modules" 2019-05-24 12:47:24 +00:00
Dimitry Ivanov 16e7643f54 Merge "Apply native_bridge suffix to all cc_modules" am: 7636b362e1
am: 158ca2bfa2

Change-Id: I09fd0978f62c8812b3ba7e3ea02608b278448a11
2019-05-24 01:47:32 -07:00
Dimitry Ivanov 7636b362e1 Merge "Apply native_bridge suffix to all cc_modules" 2019-05-24 08:28:55 +00:00
dimitry 51ea18a437 Skip native_bridge modules when installing vndk snapshot
Do not install natively bridged libraries as part of vndk snapshot.

Bug: http://b/77159578
Test: Enable 4arch build -> make
Change-Id: I519ef92ca356ee6438abb3c85fa639af2170c2ef
2019-05-23 13:35:13 +02:00
dimitry db41747c8b Fix override for native_bridge modules
Native_bridge modules should override only native_bridge modules
and not regular ones.

Bug: http://b/77159578
Test: make 4-arch product
Change-Id: I79d96736082397abeb36d653840679a7aa0edbf5
2019-05-23 13:35:13 +02:00
dimitry 4320449c97 Apply native_bridge suffix to all cc_modules
This fixes the problem with cc_object not having this suffix and
as a result overriding non-bridged variants for modules using mk files.

Bug: http://b/77159578
Test: build 4arch product
Change-Id: Ie958f997c6f54f93d8b2987ca5ba605004e1eb70
2019-05-23 13:31:10 +02:00
Jooyung Han a579e144c6 Merge "soong: fix wrong link type for VNDKs" am: 18bb34d633
am: b0aca51ad6

Change-Id: I87f4534284f563a58e8b4f0777a9f68d9a451c14
2019-05-23 03:20:17 -07:00
Colin Cross a78a8691d6 Merge "Cut darwinStripPool from 10 to 5" am: ecca61f0f2
am: bf96a947f1

Change-Id: I7ccd87d793f0451568f4ef27371fc32d7fd2f8ea
2019-05-23 03:17:43 -07:00
Treehugger Robot 18bb34d633 Merge "soong: fix wrong link type for VNDKs" 2019-05-23 07:32:24 +00:00
Yi Kong 2fc3248b6b Enable the experimental LLVM new pass manager
For walleye, the overall binary size is decreased by ~1.1%.

For Googlers, http://go/android-llvm-newpm

Test: build
Bug: 131855431
Change-Id: I6726cd3de0d528b773fb23eae1a7c5c360e29807
2019-05-23 07:17:27 +00:00
Jooyung Han 380029182c soong: fix wrong link type for VNDKs
Do not rely on 'module.Name()' to decide VNDK link type.
Some prebuilt modules such as libclang_rt_prebuilt_library_shared and
vndk_prebuilt may have different naming schemes.(prefix/suffix)
And llndk_library module has '.llndk' suffix.

Instead, use VNDK-related properties (e.g. vndk.enabled,
vendor_available, etc.).

Bug: 132800095
Test: m & check LOCAL_SOONG_LINK_TYPE for prebuilts
Change-Id: I06b0c182aeab16969c44a86397f02be4beb80bbd
2019-05-23 12:24:51 +09:00
Colin Cross badf8d691f Cut darwinStripPool from 10 to 5
Failures in strip.sh are still occurring with darwinStripPool set to
10, try 5.

Bug: 132822437
Test: none
Change-Id: I2df247c89b6d8f6e741d4e17057b06ff9ec72b40
2019-05-23 02:09:07 +00:00
Peter Collingbourne 51e434c8d3 Restore the test for bionic being in an APEX. am: 49a25cbc7c
am: 34acae298d

Change-Id: Iea6a09d95f04bcc4715cb35907e3d00aa7f81e88
2019-05-22 01:14:22 -07:00
Peter Collingbourne 49a25cbc7c Restore the test for bionic being in an APEX.
This was removed in
https://android-review.googlesource.com/c/platform/build/soong/+/950885
because it appeared that bionic was always in an APEX, but apparently the
ART host tests have bionic outside of an APEX.

Test: art/test/testrunner/run_build_test_target.py -j50 art-linux-bionic-x64
Change-Id: I0b99462e8636da53c87f9250093689aaaf9ea695
2019-05-21 16:15:29 -07:00
Christopher Ferris 6ac2ce2433 Merge "Add an option to preserve symbols and debug_frame." am: 8a7469a0d7
am: 0361ccc398

Change-Id: I0243a02b8b83b3cd33d9680d531cdd14dcc650a1
2019-05-21 15:41:20 -07:00
Christopher Ferris 8a7469a0d7 Merge "Add an option to preserve symbols and debug_frame." 2019-05-21 18:09:08 +00:00
Jooyung Han 76106d977e exports LOCAL_SOONG_VNDK_VERSION for VNDK libs
For vndk_prebuilt_shared module, it is set by 'version' property.
For other vndk libs(e.g. cc_library with vndk.enabled), it is set as
PLATFORM_VNDK_VERSION.

Background:
To support "skip installing current VNDK".

You can get a system.img without current VNDK libs.
This may help when you want a smaller system.img given that the image
will be used with a specific version (not current) of vendor image.

Bug: 132140714
Test: m TARGET_SKIP_CURRENT_VNDK=true && see if current VNDK is not
installed

Change-Id: I1c603efc3e95fe8bdf870f2de91994077899fca7
2019-05-21 14:56:27 +09:00
Peter Collingbourne e690f5894e Merge "Teach soong not to duplicate the HWASAN runtime into each APEX." am: 90b6561d5d
am: 369f315575

Change-Id: I152a188cf3f2607c1deeaf2993312ee3821eeb81
2019-05-20 21:50:16 -07:00
Peter Collingbourne 90b6561d5d Merge "Teach soong not to duplicate the HWASAN runtime into each APEX." 2019-05-21 02:29:46 +00:00
Colin Cross dd761b255d Merge "Limit calls to strip.sh on darwin" am: 288a1e2957
am: 131a9a8dcb

Change-Id: I910226b14dfd2c40c0d0306697128ad98a6bbb34
2019-05-17 20:27:18 -07:00
Treehugger Robot 288a1e2957 Merge "Limit calls to strip.sh on darwin" 2019-05-18 01:57:37 +00:00
Colin Cross 1f547cfaac Merge changes I3dc3fded,Ic1276329,I6be04dec am: 045f0f1f30
am: 4c18d670df

Change-Id: I0c32a4d28740aa23c4a8ee90a879b19374f915ed
2019-05-17 18:40:13 -07:00
Christopher Ferris b43fe7a838 Add an option to preserve symbols and debug_frame.
New strip option named keep_symbols_and_debug_frame, that will keep the
symbols and the .debug_frame. This is meant for use by libc.so only on
arm32. Other libraries might want to use it to keep better unwinding
information on device.

Bug: 132992102

Test: Built libc.so with this option and verified that it contains
Test: the .debug_frame section.
Change-Id: I823a28199dec8316e8b26fe31ff9f17e6b11d406
2019-05-17 17:52:18 -07:00
Colin Cross 57f3e6c30f Merge "Support using cc_prebuilt_library_shared with cc_library" am: 77c22bf008
am: e3106ff23d

Change-Id: I569390897de21972c0b35924326e8073829dfee5
2019-05-17 17:06:11 -07:00
Colin Cross ee3ea31a24 Limit calls to strip.sh on darwin
strip.sh can use a file descriptor per .o file when run on .a files,
which can hit the system file descriptor limit on darwin.  This
causes failures when manay variants of libgcc_stripped are built
simultaneously.  Put all strip rules on darwin into a pool that
limits them to 10 concurrent processes, which will limit the file
descriptor usage to ~7500.

Fixes: 132822437
Test: no mention of darwinStripPool in out/soong/build.ninja on linux
Test: m libgcc_stripped on darwin
Change-Id: I3d4fbbd8d44d2e9059a79df113ab95336ec2c658
2019-05-17 22:51:00 +00:00
Peter Collingbourne 3478bb2a7f Teach soong not to duplicate the HWASAN runtime into each APEX.
When HWASAN is enabled, the runtime is conceptually part of Bionic (and
mutually depends on it), so it needs to be treated in the same way as the
Bionic libs.

Now there are only two copies of the runtime: the one in
/system/lib64/bootstrap (which won't be used by ordinary processes) and the
one in the runtime APEX.

This reduces the size of the HWASAN system image and fixes an issue where
multiple copies of the HWASAN runtime were being loaded into 64-bit binaries in
APEXes because the linker namespace for the binary is different from the one
for its dependent libraries outside of APEXes. HWASAN only supports loading
one copy of the runtime per process, so this was causing such binaries to
crash on startup.

Change-Id: I228896e193a035e6dfba9f6e28d0b2e12fc163ea
2019-05-17 10:00:39 -07:00
Colin Cross 815daf95b2 Add bpf_test.go to build and fix tests
bpf_test.go was not listed in testSrcs, which meant it was not run
during the build, but ran and failed with go test android/soong/...

Don't redeclare the cc module types and mutators, use exported
functions from cc/testing.go instead, which contain a new
dependency needed by cc modules.

This reapplies I4542640e8ff08e71565ed50617dbe67d86b29b69 after
fixes for mac tests.

Test: m
Test: go test android/soong/...
Change-Id: I3dc3fdedbd7063df4a2e0cadf2a4e0711b1823ad
2019-05-17 08:43:36 -07:00
Colin Cross 9a94287fc9 Move CreateTestContext to cc/testing.go
Allow CreateTestContext to be called by tests in other packages
that need cc modules.

Test: all soong tests
Change-Id: I6be04dec50632baa8cb51e55ba14d0ddc0df60b8
2019-05-17 08:43:36 -07:00
Colin Cross 33b2fb7333 Support using cc_prebuilt_library_shared with cc_library
Allow a cc_prebuilt_library_shared to share the same name as a
cc_library by always creating static and shared variants of
prebuilts so that the variants of the source module are always
a superset of the variants of the target module.

Bug: 131709055
Test: TestPrebuilts
Change-Id: I4afd6d37e6a986d08ad25aee69eca6d994febc6b
2019-05-17 08:40:42 -07:00
Inseob Kim b3ea83a22f Merge "Generate VNDK snapshot with Soong except configs" am: 651f40bbe1
am: 62ca44a36b

Change-Id: I35f356f9590518406a2fd8d1d3c318cf529dad92
2019-05-15 15:38:29 -07:00
Evgenii Stepanov 6c8b9a0296 Disable malloc fill in HWASan.
am: 2c6484e334

Change-Id: I84cd62a3cc76006c968136b69bf4d88137b2f934
2019-05-15 15:28:45 -07:00
Treehugger Robot 651f40bbe1 Merge "Generate VNDK snapshot with Soong except configs" 2019-05-15 22:13:35 +00:00
Evgenii Stepanov 2c6484e334 Disable malloc fill in HWASan.
HWASan has a feature to fill malloc() memory with non-zero pattern.
This has found a bug or two in the past, but it also keep causing hard
to debug issues. The main problem is lack of diagnostics - use of
pattern-initialized memory is not an immediate crash. More often than
not it manifests as a subtle change in system behavior.

Having MemorySanitizer on Android would be nice...

This change does not affect any shipping configuration, but improves
stability of testing-only SANITIZE_TARGET=hwaddress build.

Bug: 132803232
Bug: 132652537
Bug: 131438232
Bug: 132810685
Test: SANITIZE_TARGET=hwasan on crosshatch successfully boots in ~100%
      attempt (up from ~99% currently).

Change-Id: I7dcbcdf1b8a5b8556e32690327b32f04879e5db1
2019-05-15 13:53:37 -07:00
Inseob Kim 1f086e2f0d Generate VNDK snapshot with Soong except configs
This is the first commit to generate VNDK snapshot with Soong: .so
files, some txt files, and notice files are captured with Soong. As
ld.config.txt is currently in Android.mk and will be deprecated soon,
configs files (and zipping all of artifacts) are still handled with
Makefile.

Bug: 131564934
Test: 1) DIST_DIR=out/dist development/vndk/snapshot/build.sh
Test: 2) try installing vndk snapshot with:
     development/vndk/snapshot/update.py

Change-Id: I8629e1e25bfc461fd495565bb4872c9af176cf92
2019-05-15 10:26:54 +09:00
Christopher Ferris 422687005a Merge "Remove libc_scudo library when building asan." am: d7e66d9e7c
am: 486b170bbc

Change-Id: Ifd1c9021bad87c4a74104be311a04ba73a4419b6
2019-05-13 17:30:56 -07:00
Christopher Ferris d7e66d9e7c Merge "Remove libc_scudo library when building asan." 2019-05-14 00:12:33 +00:00
Sasha Smundak 6c0b93509d Merge "Add aaudio, amidi, camera2ndk and nativewindow NDK libraries." am: 95aabdad9c
am: f742a23db7

Change-Id: I37c42997d43bf9a583d573a1be2d6d0f5428655c
2019-05-13 11:52:34 -07:00
Treehugger Robot 95aabdad9c Merge "Add aaudio, amidi, camera2ndk and nativewindow NDK libraries." 2019-05-13 18:30:33 +00:00
Dimitry Ivanov f8eb90728a Merge "Enable native bridge support by default for certain ndk modules" am: 9c9fd4e73a
am: 64ad4e8d72

Change-Id: I610996c9aa9a3b6bca8572e939bd4f92958da1d8
2019-05-10 03:39:39 -07:00
Dimitry Ivanov 9c9fd4e73a Merge "Enable native bridge support by default for certain ndk modules" 2019-05-10 08:16:49 +00:00
Inseob Kim c012b19eb0 Merge "Attach global variables to Context" am: a1591ab08c
am: 66c5cac22b

Change-Id: Icaf7aa78580459fd76605ec66b5bbaac13a30c9e
2019-05-09 19:42:18 -07:00
Treehugger Robot a1591ab08c Merge "Attach global variables to Context" 2019-05-09 22:36:30 +00:00
Christopher Ferris 753d4a69d5 Remove libc_scudo library when building asan.
Running any executable built with asan and libc_scudo results in crashes.

Bug: 131810078

Test: Built the media processes with the sanitizer enabled verifying
Test: that the libc_scudo.so shared library is not listed in the
Test: mediaextractor and the mediaswcodec binaries.
Test: Build the media processes without the sanitizer enabled verifying
Test: that the libc_scudo.so shared library is listed in the
Test: mediaextractor and the mediaswcodec binaries.
Change-Id: Ie55a0414088787ec11d85fffcb04592ed4f23c57
2019-05-09 13:35:37 -07:00
dimitry 03dc3f63f6 Enable native bridge support by default for certain ndk modules
The ndk_library, ndk_prebuilt_object and ndk_prebuilt_static_stl
modules are natural targets to have native bridge support enabled,
since they build user facing object which have to be supported for
translated architectures.

Bug: http://b/77159578
Test: make
Change-Id: Ic556f4c1c41e5b3dc92f9c290b4482dee8faed33
2019-05-09 16:37:16 +02:00
Inseob Kim 9516ee9556 Attach global variables to Context
Global variables make testing difficult, and they should attached to
Context.

Bug: N/A
Test: m
Change-Id: Ic671dda755e99d036c7ddce0eed114496374d7ec
2019-05-09 12:29:58 +09:00
Sasha Smundak b500ce53e2 Add aaudio, amidi, camera2ndk and nativewindow NDK libraries.
Various CTS tests refer to them.
Test: treehugger
Change-Id: I455063b02ec872c430edb1c619d38323d7ffd488
2019-05-07 19:29:53 -07:00
Yi Kong 94b9b2655d Exclude libgcc_stripped wherever libgcc is excluded
Test: manual testing
Bug: 130267141
Bug: 29275768
Change-Id: Idbe82ea4a3e5cb9a9a7c194dd0a4d8a282d56c03
Merged-In: Icc0d50e403dc4a3592e5bf389101cdef129042df
(cherry picked from commit 3d8792f7dd)
2019-05-07 21:12:49 +00:00
Yi Kong b0e95c1e60 Revert "Revert "Strip libgcc to only keep fallback symbols""
This reverts commit 619cd098b6.

Test: manual testing
Bug: 130267141
Change-Id: Ie156d4a3255be0ad082cda35c22bac4359852f22
Merged-In: I5b349fa6138e51663bf3b67109b880b4356da8e8
Exempt-From-Owner-Approval: Cherry pick
2019-05-07 21:11:31 +00:00
Yi Kong fcd11c7c71 Merge "Exclude libgcc_stripped wherever libgcc is excluded" am: 3277c39c6b
am: 29ae56ede9

Change-Id: Iaeb5531631c175af08b2e0d96dfccd4ad25ea080
2019-05-07 09:42:38 -07:00
Yi Kong 29ae56ede9 Merge "Exclude libgcc_stripped wherever libgcc is excluded"
am: 3277c39c6b

Change-Id: Idbe82ea4a3e5cb9a9a7c194dd0a4d8a282d56c03
2019-05-06 20:13:01 -07:00
Yi Kong 3d8792f7dd Exclude libgcc_stripped wherever libgcc is excluded
Test: manual testing
Bug: 130267141
Bug: 29275768
Change-Id: Icc0d50e403dc4a3592e5bf389101cdef129042df
2019-05-06 16:18:33 -07:00
Patrice Arruda 628e320278 Merge "Soong: Add synopsis to ndk_prebuilt_* modules." am: e0dbdd87f0
am: 2a38d89734

Change-Id: Iebf89c24fc2786564e79223f3654d84f1714e90c
2019-05-06 11:49:58 -07:00
Patrice Arruda 2a38d89734 Merge "Soong: Add synopsis to ndk_prebuilt_* modules."
am: e0dbdd87f0

Change-Id: I757be447a4868755799c0cb40d21ed52989f9e7a
2019-05-06 11:37:08 -07:00
Treehugger Robot e0dbdd87f0 Merge "Soong: Add synopsis to ndk_prebuilt_* modules." 2019-05-06 18:12:12 +00:00
Colin Cross 619cd098b6 Revert "Strip libgcc to only keep fallback symbols"
This reverts commit bd475367c3.

Reason for revert: b/130267141
Bug: 29275768
Bug: 130267141
Merged-In: I5b349fa6138e51663bf3b67109b880b4356da8e8
Change-Id: Ieab56390b27240ef7f2f52a48a673809da7bcf8e
2019-05-06 17:29:49 +00:00
dimitry 46becd866e Merge "Add native_bridge target to Android.bp" am: ec89e4c65c
am: 9da19e15ee

Change-Id: I49ecaa7fdb8bd283c9a8df00ddb6572bab9d140d
2019-05-03 16:47:46 -07:00
dimitry 9da19e15ee Merge "Add native_bridge target to Android.bp"
am: ec89e4c65c

Change-Id: I90803e4cac6fccdaaabc9d1ba3fb01491bb9bd65
2019-05-03 16:08:33 -07:00
Treehugger Robot ec89e4c65c Merge "Add native_bridge target to Android.bp" 2019-05-03 22:23:00 +00:00
dimitry 1f33e40972 Add native_bridge target to Android.bp
This allows us to build guest libraries for the native bridge for
arm/arm64 architectures.

Bug: http://b/77159578
Test: make
Change-Id: I35520ca456105ddadd456c78a4eb1e6de39147c5
2019-05-03 15:33:28 +02:00
Yi Kong bd475367c3 Strip libgcc to only keep fallback symbols
We use libgcc as fallback for symbols not present in libclang_rt
builtins, however we didn't know what exact symbols were being used,
some may not be intended to fallback.

Create libgcc_stripped, which only contains unwind symbols from libgcc.

Bug: 29275768
Test: bionic-unit-tests
Change-Id: I98df02ead7f6cca4e76ec92d4f880de4e03f5b5c
Merged-In: I5b349fa6138e51663bf3b67109b880b4356da8e8
(cherry picked from commit acee27cd72)
2019-05-03 08:24:10 +00:00
Yi Kong b5624d7620 Merge "Strip libgcc to only keep fallback symbols" am: 940ef9bc89
am: 6e14640082

Change-Id: I7597fa6208f143555f04ddb300db1c3f26b4d853
2019-05-03 01:22:07 -07:00
Yi Kong 6e14640082 Merge "Strip libgcc to only keep fallback symbols"
am: 940ef9bc89

Change-Id: I98df02ead7f6cca4e76ec92d4f880de4e03f5b5c
2019-05-03 01:17:03 -07:00
Evgenii Stepanov a3c3d65fdc Merge "Disable hwasan memory stats." into qt-dev
am: ead8b42a1d

Change-Id: I2ce1afff3c3ca8fdb0976943a905994053b4966a
2019-05-02 16:26:12 -07:00
Evgenii Stepanov d98ccb44f2 Disable hwasan memory stats.
Disable a debugging feature in hwasan that seems to be causing flaky selinux
denials in the boot test:

05-02 12:11:11.360  1663  1663 I auditd  : type=1400 audit(0.0:8): avc: denied { read } for comm="iptables-wrappe" path="/proc/1015/statm" dev="proc" ino=30968 scontext=u:r:netutils_wrapper:s0 tcontext=u:r:netmgrd:s0 tclass=file permissive=0

I could not reproduce this locally, but this feature has no users and
I've verified that things keep working without it.

This does not affect any shipped product.

Bug: 131438232
Bug: 112438058
Bug: 131845076
Test: crosshatch_hwasan boot test
Change-Id: I08d46d19151e6d5221cdd56fd6864dae224fae25
2019-05-02 12:52:32 -07:00
Yi Kong acee27cd72 Strip libgcc to only keep fallback symbols
We use libgcc as fallback for symbols not present in libclang_rt
builtins, however we didn't know what exact symbols were being used,
some may not be intended to fallback.

Create libgcc_stripped, which only contains unwind symbols from libgcc.

Bug: 29275768
Test: bionic-unit-tests
Change-Id: I5b349fa6138e51663bf3b67109b880b4356da8e8
2019-04-30 10:07:00 -07:00
Logan Chien f7a6c944d4 Merge "Support opt-in ABI checks" am: 23803f9365
am: 5b70a03268

Change-Id: Id45f014546d9d85439350bf85d69e558149f82fc
2019-04-29 11:05:11 -07:00
Logan Chien 5b70a03268 Merge "Support opt-in ABI checks"
am: 23803f9365

Change-Id: I2ff8f34a79d8cd7ed6975ccf2cd5ee7a709c44ef
2019-04-29 10:59:30 -07:00
Logan Chien 23803f9365 Merge "Support opt-in ABI checks" 2019-04-29 17:40:06 +00:00
Patrice Arruda 65eb0a42e2 Merge "Soong: Add synopsis to kernel_headers module under cc package." am: f3c5e4816c
am: 58f381b714

Change-Id: I70e8b3a991f31be3358dbc4c89a75ad4b7c7e551
2019-04-26 22:34:29 -07:00
Patrice Arruda 58f381b714 Merge "Soong: Add synopsis to kernel_headers module under cc package."
am: f3c5e4816c

Change-Id: I8512002dde76af8f29d2d355079f375545a58d18
2019-04-26 22:29:30 -07:00
Patrice Arruda 8c8563746c Soong: Add synopsis to ndk_prebuilt_* modules.
Added synopsis to the following modules under cc package:
   * ndk_prebuilt_object
   * ndk_prebuilt_static_stl
   * ndk_prebuilt_shared_stl

Bug: b/128337482
Test: Generated the documentation and verified that the synopsis was
added to each of the module.

Change-Id: Icca7418268a0328b622014da8a077b26800075fd
2019-04-26 18:36:57 -07:00
Patrice Arruda cb5142c2d1 Soong: Add synopsis to kernel_headers module under cc package.
Added kernel_headers synopsis.

Bug: b/128337482
Test: Generated the documentation and verified that the synopsis
      was added to the kernel_headers module.

Change-Id: I3d23fa2408c387883e62dea0742e72a96868ecb4
2019-04-26 15:19:21 -07:00
Logan Chien 41eabe63e8 Support opt-in ABI checks
This commit allows a module to opt in for ABI checks even when it is
not an LLNDK/VNDK module.

Bug: 131421213
Test: Add `header_abi_checker { enabled: true, }` to some module
Change-Id: Ie09d262e651cbb44d7d0eba652f55dc1e1e52962
2019-04-27 01:55:50 +08:00
Colin Cross 3533a273fa Merge "Fix tests with cc_binary_host on mac" am: 588c1ee5f8
am: 34f52a3894

Change-Id: I868f475487e3b0b761ba2c1f7b160751365372d4
2019-04-22 21:26:51 -07:00
Colin Cross 34f52a3894 Merge "Fix tests with cc_binary_host on mac"
am: 588c1ee5f8

Change-Id: Ib708699fa03549edc180e038890b1262ca7476dc
2019-04-22 21:22:50 -07:00
Colin Cross 9c6241f768 Fix tests with cc_binary_host on mac
cc_binary_host on mac uses ctx.Config().HostSystemTool(), which needs
PATH in the test environment.  Copy it from the original environment.

Fixes: 129763458
Test: proto_test.go
Change-Id: I41c1acdceee7c35036148256adafb471871034df
2019-04-22 15:55:56 -07:00
Yi Kong 7a3161c25b Merge "Switch to clang-r353983c" am: db52ce88b0
am: bafbdf4239

Change-Id: I50cd88d304d9a16496d9500a2506f5e7200cf2a0
2019-04-19 17:14:03 -07:00
Yi Kong bafbdf4239 Merge "Switch to clang-r353983c"
am: db52ce88b0

Change-Id: I80437802cdb52b22bad0e2c67f57b596cc75451a
2019-04-19 16:30:25 -07:00
Yi Kong ac9e61536f Switch to clang-r353983c
Test: TreeHugger
Bug: 129712936
Change-Id: Ie1545f174017dbceab25a4e420c015230d74e97a
Merged-In: I15f1db69de86ad8b9f2a0ae086fa2df87835948a
(cherry picked from commit 09ecee7686)
2019-04-19 15:22:11 -07:00
Yi Kong 09ecee7686 Switch to clang-r353983c
Test: TreeHugger
Bug: 129712936
Change-Id: I15f1db69de86ad8b9f2a0ae086fa2df87835948a
2019-04-19 16:23:18 +00:00
Jiyong Park a1bc838ce1 Fix: HideFromMake is not registered to llndk_* module types
llndk_* module types are not initialized via cc.Module.Init(). As a
consequence, mutated properties like HideFromMake, etc. were not
registered and this caused problem when the mutated properties are set
by one of the mutators like the sanitizerMutator. Specifically, both
asan and non-asan variant of an llndk_header were both exported to Make
although HideFromMake was set to true for the non-asan variant.

Fixing this bug by explicitly registering BaseProperties struct which
contains the mutated properties.

Bug: 130652996
Test: Following works:
$ lunch aosp_cf_x86_pasan-userdebug
$ mkdir frameworks/native/test && mkdir frameworks/native/test/include
$ cat > frameworks/native/test/Android.bp
llndk_headers {
    name: "test_headers",
    export_include_dirs: ["include"],
}
^D
$ SANITIZE_TARGET='address' make

Change-Id: I44e3668460448d79382617df61171b0ab5b4d98d
Merged-In: I44e3668460448d79382617df61171b0ab5b4d98d
2019-04-18 14:41:51 -07:00
Pirama Arumuga Nainar 6f8716cf42 Merge "Revert "Revert "Enable lld for windows""" am: cd9a1e2e73
am: 93b008e5b8

Change-Id: I7efda949709415f333db20b78eca6a358ebe30e6
2019-04-18 08:47:41 -07:00
Pirama Arumuga Nainar 93b008e5b8 Merge "Revert "Revert "Enable lld for windows"""
am: cd9a1e2e73

Change-Id: Ib112923a601eebe26a95a5f8a714b2d862c2c6d6
2019-04-18 08:43:12 -07:00
Pirama Arumuga Nainar cd9a1e2e73 Merge "Revert "Revert "Enable lld for windows""" 2019-04-18 15:26:42 +00:00
Jiyong Park 55646a3ca3 Merge "Fix: HideFromMake is not registered to llndk_* module types" am: 587fb4de9a
am: 9e4d9a2ccd

Change-Id: I094794d9e54002e1c3e6309f8609193d8c25daad
2019-04-17 08:03:40 -07:00
Jiyong Park 9e4d9a2ccd Merge "Fix: HideFromMake is not registered to llndk_* module types"
am: 587fb4de9a

Change-Id: If0bcd3d4a523a5867b28f787578dd192c8bfd68b
2019-04-17 07:58:32 -07:00
Jiyong Park 5e676fe9f0 Fix: HideFromMake is not registered to llndk_* module types
llndk_* module types are not initialized via cc.Module.Init(). As a
consequence, mutated properties like HideFromMake, etc. were not
registered and this caused problem when the mutated properties are set
by one of the mutators like the sanitizerMutator. Specifically, both
asan and non-asan variant of an llndk_header were both exported to Make
although HideFromMake was set to true for the non-asan variant.

Fixing this bug by explicitly registering BaseProperties struct which
contains the mutated properties.

Bug: 130652996
Test: Following works:
$ lunch aosp_cf_x86_pasan-userdebug
$ mkdir frameworks/native/test && mkdir frameworks/native/test/include
$ cat > frameworks/native/test/Android.bp
llndk_headers {
    name: "test_headers",
    export_include_dirs: ["include"],
}
^D
$ SANITIZE_TARGET='address' make

Change-Id: I44e3668460448d79382617df61171b0ab5b4d98d
2019-04-17 13:17:47 +09:00
Pirama Arumuga Nainar 6d8c0a50bc Revert "Revert "Enable lld for windows""
This reverts commit 61166dc047.

One difference from the earlier change is that import libraries are now
using the '.lib' extension instead of '.a' to prevent clash with
AdbWinApi.a.

Bug: http://b/110800681

The following flags that the binutils linkers support are not
available in lld for Windows:
  -soname
  --no-undefined
  -rpath

Windows also uses "import libraries", which are stub libraries used only
for linking.  The binutils linkers accepted a DLL and treated them as an
import library.  But lld issues the following error:

  lld-link: error: ...DLL: bad file type. Did you specify a DLL instead
  of an import library?

To resolve this, pass '-out-implib=libFoo.lib' to lld when linking
libFoo.dll to get lld to generate an import library.  Add libFoo.lib as
an implicit output to the 'ld' build rule.

Rewrite the shared libraries when building a library/binary to use the
import library instead of the DLL.  As a side-effect, this also uses the
newly-created AdbWinApi.lib that's alongside
development/host/windows/prebuilt/usb/AdbWinApi.dll

Test: Run Windows tests (go/android-llvm-windows-testing) and check
absence of regressions.  Also check that the following commands pass:
      $ adb.exe devices
      $ fastboot.exe devices

Change-Id: I34e07d345e0207086ac8e8ea12525d8c322b20fd
2019-04-16 16:22:03 -07:00
Patrice Arruda 9761b49928 Merge "Soong: Add synopsis to ndk_* modules." am: 8196356248
am: 500f586c53

Change-Id: Iccbbcf20c3ed0f9f29179e61527aada54ad057a7
2019-04-16 09:31:26 -07:00
Patrice Arruda 500f586c53 Merge "Soong: Add synopsis to ndk_* modules."
am: 8196356248

Change-Id: Ibc6feab13e7b3bc08983def893d15a770ab61451
2019-04-16 09:28:43 -07:00
Patrice Arruda 8196356248 Merge "Soong: Add synopsis to ndk_* modules." 2019-04-16 16:14:46 +00:00
Patrice Arruda 7e83210077 Merge "Soong: Add synopsis to several modules under the cc package." am: 3cbdeddaf0
am: 7ac9db2012

Change-Id: If1c72243e37ad40e938029777386800287e71e0c
2019-04-16 09:12:53 -07:00
Patrice Arruda 7ac9db2012 Merge "Soong: Add synopsis to several modules under the cc package."
am: 3cbdeddaf0

Change-Id: Ideab6818d25905e1484f4ce0b5253a98248ca562
2019-04-16 09:07:48 -07:00
Patrice Arruda 3cbdeddaf0 Merge "Soong: Add synopsis to several modules under the cc package." 2019-04-16 15:43:55 +00:00
Dan Willemsen c74ce7d85f Convert yacc to a single RuleBuilder rule am: 4e0aa23dd3
am: e71c0691ad

Change-Id: I8e5b153cfeb7887777065dc8ee33d04dda36e613
2019-04-15 17:51:03 -07:00
Dan Willemsen e71c0691ad Convert yacc to a single RuleBuilder rule
am: 4e0aa23dd3

Change-Id: I5d629683fa99cbbc0b6f97517a1cb9c5e8c6bb89
2019-04-15 17:24:18 -07:00
Dan Willemsen 4e0aa23dd3 Convert yacc to a single RuleBuilder rule
So that <module>/gen/yacc/... is (re)created by a single rule, previous
files are removed, and location.hh is in the build graph when it is
produced.

Test: treehugger
Change-Id: I2f6e47ea07f315e10ae1cb8ad50697e7123d0285
2019-04-15 14:52:05 -07:00
TreeHugger Robot 353222b81d Merge "Fix package path of android/soong/android pctx" into qt-dev 2019-04-12 17:24:18 +00:00
Christopher Ferris e0728ccb3a Merge "Do not re-export _Unwind_XXX symbols."
am: 41eed99dc7

Change-Id: I71ecd9be29895f799728d341e5407043e4af1812
2019-04-11 21:58:45 -07:00
Christopher Ferris c3a1e22060 Do not re-export _Unwind_XXX symbols.
Bug: 130267141

Test: All system shared libraries do not contain global _Unwind_XXX symbols.
Change-Id: I79673753bb8197041bfe8ffb016d9f5fdf4cada5
Merged-In: I79673753bb8197041bfe8ffb016d9f5fdf4cada5
(cherry picked from commit cf78867417)
2019-04-11 17:54:48 -07:00
Christopher Ferris 06af038ad0 Merge "Do not re-export _Unwind_XXX symbols." into qt-dev
am: 8f8b1f1746

Change-Id: Ief4cd4264b80acb1c9b553aec2fda275cdd3dde5
2019-04-11 15:48:49 -07:00
Logan Chien a85b0a12db Merge "Add --llndk for NDK libs as well" am: b10243dc4e
am: 09b2c81f09

Change-Id: Ide2c9829a1fc94ce68884b77005354cabbfaa08a
2019-04-11 11:11:08 -07:00
Logan Chien 09b2c81f09 Merge "Add --llndk for NDK libs as well"
am: b10243dc4e

Change-Id: I4756fb19c5ac88c1897f19f5217326c337a45c86
2019-04-11 09:51:48 -07:00
Logan Chien 62f1f9488e Add --llndk for NDK libs as well
This commit add `--llndk` to the command line option for
`create_reference_dumps.py` as well.

Bug: 124620774
Bug: 130324828
Test: lunch aosp_arm64-userdebug && make
Change-Id: I117864209b8cf8c934fd3aa1086b7691c1c449e3
2019-04-11 05:40:57 +00:00
Christopher Ferris cf78867417 Do not re-export _Unwind_XXX symbols.
Bug: 130267141

Test: All system shared libraries do not contain global _Unwind_XXX symbols.
Change-Id: I79673753bb8197041bfe8ffb016d9f5fdf4cada5
2019-04-10 19:23:47 -07:00
Colin Cross 713ef2b424 Fix package path of android/soong/android pctx
android/soong/common was renamed to android/soong/android long
ago, but the pctx package path was still "android/soong/common".
This required all users of rules defined in android/soong/android
to import "android/soong/android" and then
pctx.Import("android/soong/common").

Bug: 130298888
Test: m checkbuild
Change-Id: I20d096522760538f7cfc2bec3d4bfeba99b275d4
2019-04-10 16:49:27 -07:00
Patrice Arruda 6ea42118f2 Soong: Add synopsis to ndk_* modules.
Added synopsis to the following modules under cc package:
    * ndk_headers
    * ndk_library
    * versioned_ndk_headers
    * preprocessed_ndk_headers

Bug: b/128337482
Test: Generated the documentation and verified that the synopsis was
added to each of the module.

Change-Id: I2146919528cf039ed9327b3358de5b1bdb28275a
2019-04-09 18:50:44 -07:00
George Burgess IV 5522cbdde4 Merge "Remove our clang-tidy wrapper" am: 45a5a287af
am: ea2835bb72

Change-Id: Ibd66c5dd3850437948ba56682631338881468876
2019-04-05 18:27:39 -07:00
George Burgess IV ea2835bb72 Merge "Remove our clang-tidy wrapper"
am: 45a5a287af

Change-Id: Ie120d7f322039f6b382769fb68fd1785b3902096
2019-04-05 17:17:25 -07:00
George Burgess IV c4624c0189 Remove our clang-tidy wrapper
Looks like the reason for it existing has been fixed. It should probably
just be removed.

Bug: None
Test: WITH_TIDY=1 m

Change-Id: I770b2fec4ac44f265ff31731c9c0bd4da14d5b0f
2019-04-04 17:58:00 -07:00
Patrice Arruda 69f5263d51 Merge "Soong: Add synopsis to vndk_prebuilt_shared module under cc package." am: fc453c79f2
am: efd2678e8c

Change-Id: I0d1d31f8bcfb0de7a93118641b182c28068a844b
2019-04-04 17:43:08 -07:00
Patrice Arruda efd2678e8c Merge "Soong: Add synopsis to vndk_prebuilt_shared module under cc package."
am: fc453c79f2

Change-Id: Ieffcdfeb0fe47af75b0344e0bb2428545ec120fe
2019-04-04 12:01:10 -07:00
Treehugger Robot fc453c79f2 Merge "Soong: Add synopsis to vndk_prebuilt_shared module under cc package." 2019-04-04 18:51:11 +00:00
Vic Yang 8f68cbd21d Merge "Blacklist more libraries from no-vendor-variant VNDK" am: f3f1467051
am: fba522bd64

Change-Id: Iceb901408082e2a5b85bad18505f4a01c8abbaed
2019-04-04 08:58:20 -07:00
Vic Yang fba522bd64 Merge "Blacklist more libraries from no-vendor-variant VNDK"
am: f3f1467051

Change-Id: Iba0a4248bfc4e72e470849e3878ca26d9d0906b0
2019-04-04 01:50:54 -07:00
Colin Cross 11fbb890c9 Fix package path of android/soong/android pctx am: cc0ce80ed5
am: a1c57b4664

Change-Id: Ifba10892f902e70bd0a52a82a20bd5f1b64a61de
2019-04-04 01:39:57 -07:00
Treehugger Robot f3f1467051 Merge "Blacklist more libraries from no-vendor-variant VNDK" 2019-04-04 08:33:02 +00:00
Colin Cross a1c57b4664 Fix package path of android/soong/android pctx
am: cc0ce80ed5

Change-Id: Ia266af299fe1a0c8b2f9467c845ceb61cb8236bc
2019-04-03 21:21:10 -07:00
Colin Cross cc0ce80ed5 Fix package path of android/soong/android pctx
android/soong/common was renamed to android/soong/android long
ago, but the pctx package path was still "android/soong/common".
This required all users of rules defined in android/soong/android
to import "android/soong/android" and then
pctx.Import("android/soong/common").

Test: m checkbuild
Change-Id: I20d096522760538f7cfc2bec3d4bfeba99b275d4
2019-04-04 03:59:34 +00:00
Christopher Ferris 2000f21705 Make libc_scudo always go first.
am: 134f8f6f00

Change-Id: Ib7b568406b3822ece9cf0825957d7a8b8ff6aa01
2019-04-03 16:09:15 -07:00
Christopher Ferris 134f8f6f00 Make libc_scudo always go first.
In addition, add Shared_libs to malloc_not_svelte.

Bug: 123689570

Test: Verified that libc_scudo is first wherever it is added.
Change-Id: Ibdc5dbd019a382630a727c270f846aa4446f8d99
Merged-In: Ibdc5dbd019a382630a727c270f846aa4446f8d99
2019-04-03 14:54:12 -07:00
Patrice Arruda ea3fcdffc2 Soong: Add synopsis to several modules under the cc package.
Added synopsis to the following modules under cc package:
    * llndk_headers
    * llndk_library
    * vendor_public_library
    * toolchain_library

Bug: b/128337482
Test: Generated the documentation and verified that the synopsis was
added to each of the module.

Change-Id: I0f6e3b01b478d46afeacbe6fc8e05f96d6217c7d
2019-04-03 14:43:03 -07:00
Christopher Ferris 673f43b05f Merge "Make libc_scudo always go first." 2019-04-03 20:44:41 +00:00
Patrice Arruda ad0315089c Soong: Add synopsis to vndk_prebuilt_shared module under cc package.
Added vndk_prebuilt_shared synopsis.

Bug: b/128337482
Test: Generated the documentation and verified that the synopsis
      was added to the vndk_prebuilt_shared module.

Change-Id: Id40246de65985b8b3b357744083c1d32c872e2ff
2019-04-03 09:07:51 -07:00
Josh Gao 2a5d962ab8 Revert "Enable lld for windows" am: 61166dc047 am: 87fd9dec38
am: 2278b4ea57

Change-Id: I34146cab38c87a85b981eaa4102bab99e626298e
2019-04-02 22:03:25 -07:00
Josh Gao 2278b4ea57 Revert "Enable lld for windows" am: 61166dc047
am: 87fd9dec38

Change-Id: I0f9345529010c691cd86af3a63c9723e740b8c64
2019-04-02 21:06:08 -07:00
Josh Gao 87fd9dec38 Revert "Enable lld for windows"
am: 61166dc047

Change-Id: Ib2088c56f593472c41efcf69ef0ae309db95cd9a
2019-04-02 20:45:04 -07:00
Josh Gao 61166dc047 Revert "Enable lld for windows"
This reverts commit 3c21c0b1d9.

Reason for revert: appears to break AdbWinUsb.dll usage by fastboot (and adb?)

Bug: http://b/129420419
Bug: http://b/110800681
Change-Id: I36d6d87f2e830e08e257ab42d470e49cdbb95819
2019-04-03 00:59:14 +00:00
Christopher Ferris 25bda7ea49 Make libc_scudo always go first.
In addition, add Shared_libs to malloc_not_svelte.

Bug: 123689570

Test: Verified that libc_scudo is first wherever it is added.
Change-Id: Ibdc5dbd019a382630a727c270f846aa4446f8d99
2019-04-02 15:31:29 -07:00
Vic Yang db1cb10a50 Blacklist more libraries from no-vendor-variant VNDK
These VNDK libraries did not have both core and vendor variants built
for the cuttlefish target when I initially build the list, and thus
they were missed.  Add them back.

Bug: 119423884
Test: Build walleye with no-vendor-variant VNDK enabled.
Change-Id: If446256251eb2e185b0cdba95ce5c1e4f1fb8820
2019-04-02 13:10:23 -07:00
Colin Cross 6e5df47f16 Skip failing test on mac am: 9a4f3f7ea8 am: a9ff20226e
am: 0c39a64d3a

Change-Id: I12bedeced21bc8f8f6bba8b7ff20e7ed09cadaab
2019-04-02 11:07:14 -07:00
Colin Cross 0c39a64d3a Skip failing test on mac am: 9a4f3f7ea8
am: a9ff20226e

Change-Id: Ibd82f3d895774000a57ead77e987b2007beda076
2019-04-02 10:34:50 -07:00
Colin Cross 32762a08eb Add support for protoc plugins am: fe17f6f0e8 am: 91c063cfdc
am: 7299e418df

Change-Id: I30e57f6678343f57233831775b62afa1f043a450
2019-04-02 10:31:28 -07:00
Colin Cross 57205f3cb4 Move proto compilation to RuleBuilder am: 19878da6a0 am: 61918685aa
am: c8a3eb9110

Change-Id: If3922ee1900d6f3888c7291997ac49d4a939c065
2019-04-02 10:31:13 -07:00
Colin Cross a9ff20226e Skip failing test on mac
am: 9a4f3f7ea8

Change-Id: Ic9475bef508ba636528d17db5e17d739a734232b
2019-04-02 10:25:40 -07:00
Colin Cross 7299e418df Add support for protoc plugins am: fe17f6f0e8
am: 91c063cfdc

Change-Id: I7bda9f891c55b5ad4fa412952583af1e3764ffc3
2019-04-02 10:13:43 -07:00
Colin Cross c8a3eb9110 Move proto compilation to RuleBuilder am: 19878da6a0
am: 61918685aa

Change-Id: I0cbb9ae4a408e8dd8316c41c7f2f3816da951364
2019-04-02 10:13:31 -07:00
Colin Cross 9a4f3f7ea8 Skip failing test on mac
Tests with cc_binary_host fail on mac, disable for now.

Bug: 129763458
Test: TestProto
Change-Id: Icea24ac6ffba4c5c047296cb3997a5efa95e16ee
2019-04-02 10:02:04 -07:00
Colin Cross 91c063cfdc Add support for protoc plugins
am: fe17f6f0e8

Change-Id: I7dabf4b788925fce8b477eb3c7f9e90a5f986945
2019-04-02 09:55:06 -07:00
Colin Cross 61918685aa Move proto compilation to RuleBuilder
am: 19878da6a0

Change-Id: I44eed0735702ea6fbef57753d8eec078ad3a131e
2019-04-02 09:54:59 -07:00
Colin Cross fe17f6f0e8 Add support for protoc plugins
Add a proto.plugin property to allow specifying a custom protoc
plugin to generate the code.

Fixes: 70706119
Test: m am StreamingProtoTest
Change-Id: I1ecdd346284b42bbcc8297019d98d2cd564eb94c
2019-04-02 16:38:55 +00:00
Colin Cross 19878da6a0 Move proto compilation to RuleBuilder
Using blueprint.Rule for protoc commands was causing code duplication
because there was no good way to run the same protoc for cc, java and
python but then run custom source packaging steps for java and python.
Move most of the code into a common function that returns a
RuleBuilder, and then let java and python add their own commands at
the end of the rule.

Bug: 70706119
Test: All Soong tests
Test: m checkbuild
Change-Id: Ic692136775d273bcc4f4de99620ab4878667c83a
2019-04-02 16:38:47 +00:00
Patrice Arruda 6a40626601 Merge "Soong: Add synopsis to cc_prebuilt_* modules." am: 6e1c3faed5 am: 57522e4123
am: 5a4767e5d8

Change-Id: Ieefc6c2fdf520b7ec24a9f2a014fdd39adedf5c9
2019-04-02 08:24:12 -07:00
Patrice Arruda 5a4767e5d8 Merge "Soong: Add synopsis to cc_prebuilt_* modules." am: 6e1c3faed5
am: 57522e4123

Change-Id: I5f7a326b95b51419dc0c5e80e952ec758618e74d
2019-04-02 08:20:08 -07:00
Patrice Arruda 57522e4123 Merge "Soong: Add synopsis to cc_prebuilt_* modules."
am: 6e1c3faed5

Change-Id: I57ffbbe82c03113fffbc2fa766f8a4517d684cb7
2019-04-02 08:16:04 -07:00
Patrice Arruda 3554a98e4f Soong: Add synopsis to cc_prebuilt_* modules.
Added synopsis to the following modules under cc package:
    * cc_prebuilt_binary
    * cc_prebuilt_library_shared
    * cc_prebuilt_library_static

Bug: b/128337482
Test: Generated the documentation and verified that the synopsis was
added to each of the module.

Change-Id: I2ec284eb600f28d5c7f00254f441a3cc5fb684cc
2019-04-01 17:25:41 +00:00
Colin Cross f8c794f323 Merge "Restat clang linker outputs" am: 51e265c5dd am: 0a31c21da0
am: 50ec199881

Change-Id: Id3d9476d1e38f400012ef6ef90ae146be66ba7fa
2019-03-31 12:04:55 -07:00
Colin Cross 50ec199881 Merge "Restat clang linker outputs" am: 51e265c5dd
am: 0a31c21da0

Change-Id: I1673d9eba4399e26235b92b53f240d91842b1ee4
2019-03-31 11:59:51 -07:00
Colin Cross 0a31c21da0 Merge "Restat clang linker outputs"
am: 51e265c5dd

Change-Id: I7f95695550cc51a5043cecab62f7907dffe1ef82
2019-03-31 11:55:47 -07:00
Colin Cross 36ae135434 Restat clang linker outputs
clang -Wl,--out-implib doesn't update its output file if it hasn't
changed, always restat the outputs.

Fixes: 129553377
Test: m checkbuild && m checkbuild
Change-Id: I2cb19e1b8280fd69c8a9b2143f55760ec05630f8
2019-03-30 00:03:24 +00:00
Pirama Arumuga Nainar 0727bda73d Include libprofile-extras to all coverage variants am: 65c95ff1fb am: 865ad54f90
am: ef7a035152

Change-Id: If8958a71e5110651c883eee91597251845a02be5
2019-03-29 09:31:40 -07:00
Pirama Arumuga Nainar 5f4da30d62 Refactor coverage support am: ee30d5e132 am: 312b5f4407
am: 2bccc05cbf

Change-Id: Ie2a491d4865015f7d3c062e0390a03de0ca14bc8
2019-03-29 09:31:24 -07:00
Pirama Arumuga Nainar ef7a035152 Include libprofile-extras to all coverage variants am: 65c95ff1fb
am: 865ad54f90

Change-Id: I4afb3bf93ebda7d25957b988bf627481ad7889ca
2019-03-29 09:22:33 -07:00
Pirama Arumuga Nainar 2bccc05cbf Refactor coverage support am: ee30d5e132
am: 312b5f4407

Change-Id: I0aaf75cf2d0701a8f490a2b2bd2bdb388add63c3
2019-03-29 09:22:21 -07:00
Pirama Arumuga Nainar 865ad54f90 Include libprofile-extras to all coverage variants
am: 65c95ff1fb

Change-Id: I74057c0921eaa76c8016d0bb8f81abaf0eb50ed8
2019-03-29 09:17:15 -07:00
Pirama Arumuga Nainar 312b5f4407 Refactor coverage support
am: ee30d5e132

Change-Id: I859c7e6c535f1d99d26fa8148bc24a930933cd39
2019-03-29 09:17:04 -07:00
Pirama Arumuga Nainar 65c95ff1fb Include libprofile-extras to all coverage variants
Bug: http://b/128524141

Include libprofile-extras (defined in system/extras/toolchain-extras) to
all modules that need a coverage variant.  Also add
'-uinit_profile_extras' when linking with coverage.  This causes the
setup code in libprofile-extras to be linked into binaries/libraries
with coverage enabled.

We add the static library to the non-coverage variants as well but is a
no-op for them (since the '-u...' flag is not added for them).

Adding this dependency creates several circular dependencies since
coverage variants were being created for other module types that never
had any compilation or linking done during the build.  This change stops
creating coverage variants for toolchain_library, cc_prebuilt_library_*,
cc_library_headers module types (by adding a function to the linker
interface to specify whether native coverage is enabled).

Test: m NATIVE_COVERAGE=true COVERAGE_PATHS=*
Test: blueline_coverage target in internal branch (using forrest)
Change-Id: I5db876eb953639a55ba007248dd24e497f987730
2019-03-29 08:56:42 -07:00
Pirama Arumuga Nainar ee30d5e132 Refactor coverage support
Bug: http://b/128524141

The goal is to add a static library (libprofile-extras) to modules that
require coverage.  Since the coverageMutator is a post-deps mutator, the
results of the coverageMutator are not available when the dependencies
get constructed in deps().  This change moves the detection from the
coverageMutator to begin().

Test: m NATIVE_COVERAGE=true COVERAGE_PATHS=*
Test: blueline_coverage target in internal branch (using forrest)

Change-Id: I4e7c8b31ed5060642c6218ea33c532a0f6619967
2019-03-29 08:56:42 -07:00
Patrice Arruda a5d59cce58 Merge "Soong: Add synopsis to cc_library_* modules" am: bcf9408e44 am: 3a537940a7
am: 64c7368b39

Change-Id: I6f1db1d06a91ed7ec181ef9aa44f031affe8cc46
2019-03-29 08:50:13 -07:00
Patrice Arruda 64c7368b39 Merge "Soong: Add synopsis to cc_library_* modules" am: bcf9408e44
am: 3a537940a7

Change-Id: I4827491b28f6501a1c72eb578f4b15a29761dee0
2019-03-29 08:36:02 -07:00
Patrice Arruda 3a537940a7 Merge "Soong: Add synopsis to cc_library_* modules"
am: bcf9408e44

Change-Id: Ifb84210b4c15c1b3aef011677e4938cbbd200f9b
2019-03-29 08:32:03 -07:00
Patrice Arruda bcf9408e44 Merge "Soong: Add synopsis to cc_library_* modules" 2019-03-29 15:21:21 +00:00
Yi Kong ee2a987501 Merge "Move -Wno-inconsistent-missing-override to ClangExtraCflags" am: 2e03bb7296 am: 16bb6c063d
am: b82e51d36e

Change-Id: I5d528f6121701394ff26a7cd040a6ea40bc94106
2019-03-28 16:05:29 -07:00
Yi Kong b82e51d36e Merge "Move -Wno-inconsistent-missing-override to ClangExtraCflags" am: 2e03bb7296
am: 16bb6c063d

Change-Id: I857212fc41601d918f57809eb2855316c8a8d640
2019-03-28 15:53:18 -07:00
Yi Kong 16bb6c063d Merge "Move -Wno-inconsistent-missing-override to ClangExtraCflags"
am: 2e03bb7296

Change-Id: I293a0167fcbdb240b31a9a53d9cc29c8acc20cf5
2019-03-28 15:49:14 -07:00
Yi Kong 2e03bb7296 Merge "Move -Wno-inconsistent-missing-override to ClangExtraCflags" 2019-03-28 22:37:47 +00:00
Patrice Arruda 83c89e0f4e Soong: Add synopsis to cc_library_* modules
Added synopsis to the following modules under cc package:
   * cc_library_static
   * cc_library_shared
   * cc_library
   * cc_library_host_static
   * cc_library_host_shared
   * cc_library_headers

Bug: b/128337482
Test: Generated the documentation and verified that the synopsis was
added to each of the module.

Change-Id: I4d9bb622dc75aad9ea1b9f331c80ed56ddbc9a15
2019-03-28 10:36:26 -07:00
Inseob Kim 64d8e8bbce Merge "Remove libbase dependency of sysprop_library" am: 9e50e6955f am: 93079643a1
am: 918b8ed0b2

Change-Id: If5d70d42b9fe1c320e22950ff98892b6a233b653
2019-03-27 20:19:38 -07:00