Commit Graph

2324 Commits

Author SHA1 Message Date
Treehugger Robot
48db2b15fb Merge "Revert "Remove armv7-a without neon support"" 2019-02-20 12:56:37 +00:00
Treehugger Robot
e67c20ce90 Merge "Override module's C flags when coverage is enabled" 2019-02-20 05:40:18 +00:00
Dan Albert
8818f49989 Revert "Remove armv7-a without neon support"
Unfortunately we still need to build the NDK sysroot as non-NEON
since that's still supported, though it's no longer the default.

This reverts commit f4e0601c7e.

Test: treehugger
Test: rebuilt NDK sysroot and imported into the NDK, ran NDK tests
Bug: None
2019-02-19 13:53:01 -08:00
Yu Shan
76dd005e68 Add 16bit and 32bit nanopb library.
When compiling nanopb static library, we need to add 16bit or 32bit
flag if we need to use 16bit or 32bit size, default is 8bit.

Change-Id: Ib74478996cb2487accc1e46a32fba8170214c47f
Test: None
Bug: b/122292884
2019-02-19 12:05:02 -08:00
Pirama Arumuga Nainar
c7679de4ab Override module's C flags when coverage is enabled
Bug: http://b/116873221

Disable -Wframe-larger-than because building without optimization can
make frame larger.  Building dng_sdk with coverage results in a bigger
stack frame than the limit in C flags.

Get optimization level back to -O0 if module has a non-default
optimization level.  Not doing so causes link failures with
libneuralnetworks.so.

Test: Build with coverage.
Change-Id: I36b2979bb6a73023458c8de3241e975845bd36eb
2019-02-19 10:00:27 -08:00
yangbill
4f41bc2bed [SOONG] Not auto-generate test config if test_suite is cts
Current soong use source code's under cts as the rule for judgement.
Should change to use test_suites define instead.

Bug: 124313692
Test: m hello_world_test, make sure test config be auog-enerated.
      Modified platform_testing/tests/example/native/Android.bp
      m hello_world_test, make sure test config not be auto-generatetd.

Change-Id: I1bc5216f73329d2a82d9ff29ccbede436dd2976c
2019-02-19 22:25:50 +08:00
Pirama Arumuga Nainar
dd739bbdf2 Merge "Enable coverage for vendor-related libraries" 2019-02-19 05:19:41 +00:00
Logan Chien
8a851cfce8 Merge "Print --llndk to create_reference_dumps command" 2019-02-19 03:48:12 +00:00
Logan Chien
6227fed029 Print --llndk to create_reference_dumps command
This commands adds `--llndk` to `create_reference_dump.py` command if
the module with incompatible ABI changes is an LLNDK or a NDK lib. This
prevents people from uploading a CL that simply removes ABI dumps (the
result even when the uploader runs the command).

Bug: 124620774
Test: Make an incompatible ABI changes in libaaudio and see the flag.
Change-Id: I9f07f879193bd4d73f5924baff298d28d6fe1506
2019-02-18 13:35:36 +08:00
Colin Cross
40e3373d41 Add more paths helper methods
Add PathsForOutput to convert multiple strings into WritablePaths.

Add OutputPath.InSameDir to build a new OutputPath pointing to a
file in the same directory as an existing OutputPath.

Add WritablePathForTesting and WritablePathsForTesting that mirror
PathForTesting and PathsForTesting but return WritablePaths.

Add PathContextForTesting to return a minimal PathContext
implementation.

Test: paths_test.go
Change-Id: I9708eb164b273514a96dae0a260ef9a963fb9bcf
2019-02-16 17:08:07 -08:00
Pirama Arumuga Nainar
2f289aca6e Enable coverage for vendor-related libraries
Bug: http://b/116873221

Enable coverage for libraries that use VNDK and those that have vendor
variants.  This previously caused a redefinition error in the
Android-<product>.mk but was indirectly fixed when
https://android-review.googlesource.com/c/platform/build/soong/+/906394
disabled coverage for LLNDK stub libraries.

Test: m NATIVE_COVERAGE=true COVERAGE_PATHS=frameworks nothing
Change-Id: Iccbc1c15c68562449ffffe7bbcc3d22419d84bfe
2019-02-15 15:24:47 -08:00
Yi Kong
da69c65b88 Merge "Annotate No_libcrt with arch_variant"
am: 4e3c60128f

Change-Id: Ia170a78cb583297f5a7eeb24656b914c5bc50fab
2019-02-15 12:46:14 -08:00
Yi Kong
4e3c60128f Merge "Annotate No_libcrt with arch_variant" 2019-02-15 20:39:25 +00:00
Pirama Arumuga Nainar
48a609233b Merge "Do not enable coverage for platform/llndk stub libraries"
am: ff1b5c7b90

Change-Id: If62904ecb83ad3a3f0419ebb758b9f3d2b045143
2019-02-15 11:11:53 -08:00
Yi Kong
410d834752 Annotate No_libcrt with arch_variant
libcrt is crashing libc on x86/x86_64 for unknown reason. This enables
us to disable libcrt for these architectures for libc for now.

Test: m checkbuild
Bug: 29275768
Change-Id: I5a717286b3d9cc1ba8cdcd33bafb9c225de4aff8
2019-02-15 10:07:18 -08:00
Pirama Arumuga Nainar
8113835940 Do not enable coverage for platform/llndk stub libraries
Bug: http://b/116873221

These are used only for linking, and secondly, don't link with libc or
other system libraries.

Test: Build system/core/libnativeloader with coverage
Change-Id: I37eae572a5eaa00f0e8c72bc1453e967b5bcb577
2019-02-14 15:39:31 -08:00
Jiyong Park
548f147804 Remove prefer_sanitize.* properties
am: f97782b18c

Change-Id: I89cf55ff2cea384e1cf25c59f538dc185088a0cc
2019-02-13 21:42:27 -08:00
Jiyong Park
f97782b18c Remove prefer_sanitize.* properties
The properties are no longer required as an APEX module is mutated with
required sanitizers which are gathered by scanning the sanitizers that
are enabled for its direct dependencies.

Bug: 124128094
Test: m on marlin
The extractor libs are found under /system/apex/com.android.media

Merged-In: I55961d400dcbac067a5c0dcecb90e399d4991a70
Change-Id: I55961d400dcbac067a5c0dcecb90e399d4991a70
(cherry picked from commit abda0eb76b)
2019-02-14 12:30:49 +09:00
Pirama Arumuga Nainar
fd183f3742 Extend coverage mutator to allow variants with coverage on and off
am: 1acd4475f2

Change-Id: I3b3dcf65f68bae50f3476e70d690a9ff63c2fb2d
2019-02-13 16:26:03 -08:00
Pirama Arumuga Nainar
1acd4475f2 Extend coverage mutator to allow variants with coverage on and off
Bug: http://b/116873221

This allows us to enable coverage for a module (typically static
libraries) even if a dependent module cannot build with coverage.  In
this case, the dependent module can just pick the variant with coverage
off.

- Create the following variants from the coverage mutator:
  - "" (empty): Don't build  with coverage and always pick the
                non-coverage variants for dependents.  This variant is
                created for modules with 'native_coverage: false'.
  - "cov":      If this module's path is covered by the COVERAGE_PATHS
                option, build this module with coverage.  If not, build
                this module without coverage.  In either case, pick
                coverage variants ("cov") for dependencies if available.

- Do not enable coverage:
  - for NDK stub libraries
  - if sdk_version < 23 since libc doesn't export 'stderr' which is
    needed by the coverage/profile runtime library.
  - for VNDK libraries

Test: In AOSP: m COVERAGE_PATHS=system/security NATIVE_COVERAGE=true nothing

Change-Id: I4d08790d35cdeaf12fb3c4f999d69a870e65836a
2019-02-14 00:05:42 +00:00
Inseob Kim
92053b977e Create sysprop_library soong module
am: c0907f191a

Change-Id: I5ec9366b92ab8ca07ed41c93b8e2324a301a2bed
2019-02-13 15:57:16 -08:00
Inseob Kim
c0907f191a Create sysprop_library soong module
A newly introduced sysprop_library soong module will generate a
java_sdk_library and a cc_library from .sysprop description files.
Both Java modules and C++ modules can link against sysprop_library
module, thus giving consistency for using generated sysprop API.

As Java controls accessibility of Internal / System properties with
@hide and @SystemApi, 2 different header files will be created. And
build system will selectively expose depending on the property owner
and the place where the client libraries go into.

Bug: 80125326
Bug: 122170616
Test: 1) Create sysprop_library module.
Test: 2) Create empty txt files under prebuilts/sdk.
Test: 3) Create api directory, make update-api, and see changes.
Test: 4) Try to link against sysprop_library with various clients.
Test: 5) Soc_specific, Device_specific, Product_specific, recovery flags
work as intended.
Change-Id: I78dc5780ccfbb4b69e5c61dec26b94e92d43c333
2019-02-13 23:32:51 +00:00
Yi Kong
908b3fa509 Merge "Use no_libcrt property instead of hard coding projects to exclude"
am: 02e4b568dc

Change-Id: I7e143026e60cb2263ce2a37b5bd856ea133ac128
2019-02-13 14:59:10 -08:00
Yi Kong
19408a3aaa Use no_libcrt property instead of hard coding projects to exclude
Test: m checkbuild
Change-Id: Id4d3605a5cd45dd43b752a9d270df0a20024dbd0
2019-02-12 09:41:18 -08:00
Jiyong Park
d563bc7b92 Merge "Static variant of a stubs lib is correctly tracked"
am: eebdf43337

Change-Id: I431341b18a2601b25fa459c0fb108ce9ae36b860
2019-02-08 21:08:03 -08:00
Treehugger Robot
eebdf43337 Merge "Static variant of a stubs lib is correctly tracked" 2019-02-09 04:56:07 +00:00
Jiyong Park
11e6e5c76c Merge "Handle the case when a symbol is annotated with "# apex vndk""
am: 3415780021

Change-Id: I2567afe4afab0f9a71d87f3cafffb21f35fdf0a0
2019-02-08 10:57:34 -08:00
Treehugger Robot
3415780021 Merge "Handle the case when a symbol is annotated with "# apex vndk"" 2019-02-08 18:46:44 +00:00
Jiyong Park
1431765f8d Handle the case when a symbol is annotated with "# apex vndk"
This change fixes a bug that a symbol is omitted for apex (or vndk) when
it is annotated with "# vndk apex" (or "# apex vndk).

Bug: 123349183
Test: python3 test_gen_stub_libs.py

Change-Id: I344d6e70732bae8877cb16bbe881edb79fe90670
2019-02-08 20:36:26 +09:00
Colin Cross
e5bc0d6253 Make MakeVarsContext a PathContext
am: 65494b962b

Change-Id: I1a2eab146c5f5327591c44faf224b562aac86610
2019-02-07 17:45:24 -08:00
Colin Cross
65494b962b Make MakeVarsContext a PathContext
Expose all of SingletonContext to makeVarsContext, and then export
the subset of it that is used through MakeVarsContext.SingletonContext,
plus what is necessary for PathContext, directly through
MakeVarsContext.

Test: m checkbuild
Change-Id: Ie00f36e577fe110b6fa03b901da489d8547773c6
2019-02-07 22:31:04 +00:00
Aurimas Liutikas
aa6f7adb24 Merge "Update NDK library list"
am: 7cf14099b7

Change-Id: I2963a3359f1e20f67990ba0473340ad70bbcecbe
2019-02-07 12:57:13 -08:00
Jiyong Park
e4bb986106 Static variant of a stubs lib is correctly tracked
cc.Module.staticVariant is used to track the corresponding static
variant of a shared variant. This change fixes a problem that the
staticVariant field is not correctly set when the lib is with stubs:
{...}. This was happening because the staticVariant was set by adding
dependency from shared variant to static variant to reuse object files.
However, for a lib with stubs, the dependency was not created because it
does not make sense to share object files for stubs lib where source
code is auto-generated.

Fixing the issue by adding dependency to the static variant with a
different dependency tag whose only purpose is to set staticVariant
field.

Bug: 122885634
Test: m (cc_test amended)
Change-Id: I7f97cbb4c4a28bf9a93839d3b91ee140835aa6af
2019-02-08 00:47:46 +09:00
Dan Willemsen
63833a3882 Return early after NDK->non-NDK library link error
am: 155d17c1da

Change-Id: I8d11bf8c71a3df036e5545f6d796ce970813e123
2019-02-06 22:58:33 -08:00
Dan Willemsen
62b9cf952c Update NDK library list
Apparently this isn't autogenerated based on the list of ndk_library
modules?

Fixes: 124019854
Test: try to use libsync from a cc_library with sdk_version: "current"
Change-Id: I5016e1b7d77ed9255bf4b185c168efe8d0b73d12
2019-02-06 18:41:27 -08:00
Dan Willemsen
155d17c1da Return early after NDK->non-NDK library link error
Otherwise the code after this assumes that the "to" library is an NDK
library and panics when it isn't.

Bug: 124019854
Test: trigger error, no longer see panic
Change-Id: I88d10e8d882285e24b4f42d0cf85c2d658348617
2019-02-06 18:30:02 -08:00
Jiyong Park
8893e6af05 Don't emit symbol for stubs libraries
am: 47e4fcb6d3

Change-Id: I1a3eb5401c79881469d290c5bc959ef96be725a3
2019-02-06 05:51:18 -08:00
Jiyong Park
47e4fcb6d3 Don't emit symbol for stubs libraries
The stubs libraries are buildtime-only artifacts. Since they are not
used at runtime, no need to emit symbol files for them

Test: m
Change-Id: I54410e9289b4bf61e23581386b56ade8fba18dfa
2019-02-06 22:40:29 +09:00
Colin Cross
9053375b93 Merge changes Ifcb338e6,Ie509ed80,I270fed60,Id825cb75,I92a963bd
am: cc2d11961c

Change-Id: Iede0d74591eb60148ddd7c187b403ece2fc8dde5
2019-02-05 21:19:03 -08:00
Colin Cross
571cccfcbc Prepare for a type-safe OnceKey
Add an opaque OnceKey type and use it for all calls to Once in
build/soong.  A future patch will convert the arguments to
Once* to OnceKey once users outside build/soong have been updated.

Test: onceper_test.go
Change-Id: Ifcb338e6e603e804e507203c9508d30ffb2df966
2019-02-06 01:52:41 +00:00
Dan Willemsen
959223fdb1 Merge "Stop exporting the windows toolchain to Make"
am: a55b12bec2

Change-Id: I1ffb84b75a0916124ae161a0863994c90d97d522
2019-02-05 13:11:11 -08:00
Dan Willemsen
a55b12bec2 Merge "Stop exporting the windows toolchain to Make" 2019-02-05 20:45:27 +00:00
Kostya Kortchinsky
ff2fe20afc Merge "Add option to disable Scudo globally [Soong]"
am: 66b1193d55

Change-Id: I38866e353d0a66eea0b73f13b43d593946775d39
2019-02-05 06:55:29 -08:00
Kostya Kortchinsky
66b1193d55 Merge "Add option to disable Scudo globally [Soong]" 2019-02-05 14:45:39 +00:00
Jiyong Park
2121073534 APEX respects relative_install_path
am: b7c24df220

Change-Id: I78a018e6116ddb88025b98d66f442ce36776a4c0
2019-02-05 04:14:58 -08:00
Jiyong Park
b7c24df220 APEX respects relative_install_path
relative_install_path for cc_library is respected by APEX.

relative_install_path for cc_binary is not yet respected because doing
it will break the path to the dynamic linker in the runtime APEX.
That change should be done along with changes in init, bionic, etc.

Bug: 123721777
Test: m (apex_test.go amended)
Change-Id: I855f8eda0d4255d563861ac96d0d3e2c669e9a2a
2019-02-05 21:00:41 +09:00
Stephen Hines
1d24874e86 Merge "Use llvm-{strip,objcopy} by default"
am: 363cab0bea

Change-Id: I313eb1919e524d31cd470791fee0ef2ea29ad86f
2019-02-04 19:19:38 -08:00
Stephen Hines
363cab0bea Merge "Use llvm-{strip,objcopy} by default" 2019-02-05 03:13:14 +00:00
Kostya Kortchinsky
d5275c8657 Add option to disable Scudo globally [Soong]
This adds an option in Soong to turn off Scudo globally.

Bug: 123228023
Test: enable Scudo for tombstoned, lunch marlin_svelte-eng && m -j, and
make sure that Scudo is not linked in
out/target/product/marlin/system/bin/tombstoned
Test: enable Scudo for tombstoned, lunch marlin-userdebug && m -j, and
make sure that Scudo is linked in
out/target/product/marlin/system/bin/tombstoned

Change-Id: I0b0992446953fc4074bde94507b66f92764c8143
Merged-In: I0b0992446953fc4074bde94507b66f92764c8143
2019-02-04 12:29:17 -08:00
Colin Cross
2f27762373 Merge changes I545a832a,I85a51b04
am: 54956abf1f

Change-Id: Ieb7d59d1593807cb1b02b820dfed08a25bf441b6
2019-02-04 09:51:57 -08:00