Commit Graph

1866 Commits

Author SHA1 Message Date
Vishwath Mohan
9ccbba0200 Disable CFI for vendor variants of all components
The current VNDK ABI snapshot expects that CFI is disabled for
components that either in the include paths (from cfi-common.mk) OR
enabled directly in the makefile/blueprint. However, on non-arm64
architectures, the build system was only disabling CFI for vendor
components in the include paths.

This topic corrects it by (a) removing the include paths check to
disable CFI for vendor variants (this CL), and (b) inheriting the CFI
include paths in all product configs to ensure that when we update the
ABI we're able to move to relying exclusively
on (PRODUCT_)CFI_INCLUDE_PATHS.

Bug: 66301104
Test: ABI matches for all architectures.
Change-Id: I648edf13346b18fd88b623682e8590ed44709e0d
2018-05-28 13:57:48 -07:00
Dan Willemsen
34ec95cea8 Merge "Use new flex binary" am: 523cef04cb
am: da6bd163e2

Change-Id: Idd8eff00ced0e082e8d8f25469e25271630a614a
2018-05-25 16:02:12 -07:00
Treehugger Robot
523cef04cb Merge "Use new flex binary" 2018-05-25 22:44:35 +00:00
Vishwath Mohan
40aaea2321 Restrict CFI_INCLUDE_PATHS to Arm64
am: 1c54f66bd5

Change-Id: I379932454f8f18d7029f3fa3eb1654f4f36997c1
2018-05-25 00:24:53 -07:00
Jiyong Park
777a29f71a Merge changes from topic "recovery_available" am: c8036c17ab
am: 3936b21565

Change-Id: I9e50134baf4f7a3bf59c34e488d61bddd17e4dac
2018-05-24 23:15:49 -07:00
Jiyong Park
eebab40b19 Mark as recovery_available:true am: 6caa21aa82
am: e9ff1887fa

Change-Id: I96c6d3843197299f75062780c04a2a8b87d78c1b
2018-05-24 23:15:42 -07:00
Jiyong Park
7fbe82540d Add recovery_available to cc_genrule am: 3f736c9661
am: f1e8411c2a

Change-Id: I7ff0a6a08293024161e307171776d988eea10ec7
2018-05-24 23:15:37 -07:00
Jiyong Park
e9ff1887fa Mark as recovery_available:true
am: 6caa21aa82

Change-Id: I1e1246b5c921c3cdea1ff8a6ea9dc7659e1fce82
2018-05-24 23:07:16 -07:00
Jiyong Park
f1e8411c2a Add recovery_available to cc_genrule
am: 3f736c9661

Change-Id: I88d3a144e56ef090ffce41e28339a24bb665f89a
2018-05-24 23:07:04 -07:00
Treehugger Robot
c8036c17ab Merge changes from topic "recovery_available"
* changes:
  fix: recovery.cflags now works
  Mark as recovery_available:true
  Add recovery_available to cc_genrule
2018-05-25 05:58:01 +00:00
Vishwath Mohan
1c54f66bd5 Restrict CFI_INCLUDE_PATHS to Arm64
This CL restricts CFI_INCLUDE_PATHS and PRODUCT_CFI_INCLUDE_PATHS to
Arm64 only.

Bug: 66301104
Test: x86 targets do not respect the include paths variables
Change-Id: I66ec2fb05435535aaf5d59fdfc7a170a4fdd4f26
2018-05-24 18:36:18 -07:00
Dan Albert
e6ab4f9657 Merge changes from topic "preprocessed_ndk_headers" am: 5ae3652d99
am: 7435738d53

Change-Id: Iac614f6376163d527709ed57a37a4f3111a5dfe3
2018-05-24 17:08:48 -07:00
Jiyong Park
4a2dcb5c4b fix: recovery.cflags now works
There was a bug that recovery.cflags is ignored. Respect the property
when building for recovery.

Bug: 79146551
Test: m -j
Change-Id: I24c1c1b593c83eb1992721571c6d5c42483a41a0
2018-05-25 08:43:50 +09:00
Dan Willemsen
b7adae8aaf Use new flex binary
Test: treehugger
Change-Id: Ie1d41a3ee223a80b6f471b7b1cbede63cc7051f5
2018-05-24 15:45:21 -07:00
Dan Albert
97f9c963ad Rename preprocessed_ndk_headers to versioned_ndk_headers.
The current rule runs a specific preprocessor over the source files,
and I'm adding support for generic preprocessed headers in a follow
up patch.

Test: make checkbuild
Bug: None
Change-Id: I1f3193cd595f151309e6321e1b41d8d16085379d
2018-05-24 15:12:51 -07:00
Dan Albert
19ff8b4662 Add exclude_srcs property to ndk_headers modules.
Test: make checkbuild
Bug: None
Change-Id: I2778c1140ab50abc0f7dee66da35ebacef77ea72
2018-05-24 15:12:26 -07:00
Dan Albert
7122205a5a Fix typo. Properies -> Properties.
Test: make checkbuild
Bug: None
Change-Id: I0b5e3dd44f507207f2de90e922dd7016cffce118
2018-05-24 15:12:20 -07:00
Vishwath Mohan
9b87f812ea Disable CFI for vendor variants of VNDK libraries
am: 7589c82eec

Change-Id: I3d44d7c66d777df15ce8ecbd7f4577eaf293affb
2018-05-24 14:43:32 -07:00
Vishwath Mohan
7589c82eec Disable CFI for vendor variants of VNDK libraries
Enabling CFI changes the VNDK ABI from the frozen snapshot, so the
only solution for now is to temporarily disable CFI on all vendor
variants for the sake of compatibility.

Bug: 66301104
Test: ABI is consistent.
Change-Id: Ie7dca41e0f647808b08adede09a30f3c746e6bda
2018-05-23 23:39:38 -07:00
Jiyong Park
6caa21aa82 Mark as recovery_available:true
Libraries that are direct or indirect dependencies of modules installed
to recovery partition (e.g. adbd) are marked as recovery_available:
true. This allows a recovery variant of the lib is created when it is
depended by other recovery or recovery_available modules.

Bug: 79146551
Test: m -j
Change-Id: I1181fa0646d840c0194e4af2043ec228ec9eff16
2018-05-24 14:14:08 +09:00
Jiyong Park
3f736c9661 Add recovery_available to cc_genrule
recovery_available property is required in cc_genrule. Specifically,
we will mark libminijail as recovery_available:true as part of building
adbd and other stuffs for recovery. Some source code of libminijail is
created via cc_genrule, so we need recovery_available in the module
type.

Bug: 79146551
Test: m -j
Change-Id: I0cf0d9b1004dda055373573e5c5a7debd112685f
2018-05-24 14:01:54 +09:00
Vishwath Mohan
165e01b744 Merge "Allow abi diffs sanitized variants of vndk libraries on production devices." into pi-dev 2018-05-23 17:47:38 +00:00
Christopher Ferris
1a6e5c0c15 Remove cortex-a53 linker workaround for new cpus.
Bug: 78133793

Test: Built target with cortex-a53 and verified that the flag is still
Test: there.
Test: Build target with cortex-a55/cortex-a75 and verified that the flag
Test: is not there.
Test: Built and booted on a taimen, ran bionic unit tests.
Change-Id: Ibd7f497ecf46e5781cd0265463b0782babdf062a
Merged-In: Ibd7f497ecf46e5781cd0265463b0782babdf062a
(cherry picked from commit a98d721485)
2018-05-21 12:57:51 -07:00
Jayant Chowdhary
3e2f0ff226 Temporarily remove -check-all-apis from header-abi-diff invocation.
-check-all-apis currently, produces noise for some libraries
(eg:libstagefright_soft_vpxenc), so remove this till a good solution
arrives.

Bug: 79928919

Test: create abi reference for libstagefright_soft_vpxenc; m -j
      libstagefright_soft_vpxenc.vendor; no warnings about struct LAYER_CONTEXT
      layout changing.

Merged-In: I8f30700c1b619c72504ca9aef69075f6e334ba5f
Change-Id: I8f30700c1b619c72504ca9aef69075f6e334ba5f
(cherry picked from commit 39d167aa2c)
2018-05-18 11:38:34 -07:00
Jayant Chowdhary
4c9cbf2d63 Temporarily remove -check-all-apis from header-abi-diff invocation. am: 39d167aa2c
am: dd15760c35

Change-Id: Ief2cec5011d5b9066dfd12a7f2632ffa2b37e736
2018-05-18 11:37:53 -07:00
Jayant Chowdhary
39d167aa2c Temporarily remove -check-all-apis from header-abi-diff invocation.
-check-all-apis currently, produces noise for some libraries
(eg:libstagefright_soft_vpxenc), so remove this till a good solution
arrives.

Bug: 79928919

Test: create abi reference for libstagefright_soft_vpxenc; m -j
      libstagefright_soft_vpxenc.vendor; no warnings about struct LAYER_CONTEXT
      layout changing.

Change-Id: I8f30700c1b619c72504ca9aef69075f6e334ba5f
2018-05-18 08:10:58 -07:00
Ivan Lozano
1838ef9be4 Don't export UBSan minimal runtime symbols.
When linking in the UBSan minimal runtime, don't export the symbols.
This was resulting in an edge case where symbols were sometimes
undefined at runtime on address sanitized builds if static library
dependencies were integer overflow sanitized.

Bug: 78766744
Test: readelf on libraries show either inclusion of the shared library
or no undefined symbols related to the minimal runtime.

Change-Id: Ide85c8c6b53b400ce9166ccaf96d250797fe4b24
Merged-In: Ide85c8c6b53b400ce9166ccaf96d250797fe4b24
(cherry picked from commit 59fdea2ac2)
2018-05-16 10:42:39 -07:00
George Burgess IV
739e92e036 Merge "Disable dtor inlining for clang-tidy" am: 5e011a2531
am: e4f8bd3770

Change-Id: I1177a324072e2f2689d5870d973b1cfea989e710
2018-05-15 15:41:26 -07:00
Treehugger Robot
5e011a2531 Merge "Disable dtor inlining for clang-tidy" 2018-05-15 22:15:55 +00:00
Christopher Ferris
6290b64f3d Remove cortex-a53 linker workaround for new cpus.
am: 79dff70b46

Change-Id: Ib6e6b334611973c524c850ce8133fe0885f7f0a3
2018-05-15 15:03:24 -07:00
Ivan Lozano
3262054a81 Merge "Don't export UBSan minimal runtime symbols." am: 9bf049dcbb
am: faa09cd8c2

Change-Id: Ic47917f3fece1ddd2a571c155f69ddc7761b90af
2018-05-15 13:04:26 -07:00
Christopher Ferris
79dff70b46 Remove cortex-a53 linker workaround for new cpus.
Bug: 78133793

Test: Built target with cortex-a53 and verified that the flag is still
Test: there.
Test: Build target with cortex-a55/cortex-a75 and verified that the flag
Test: is not there.
Test: Built and booted on a taimen, ran bionic unit tests.
Change-Id: Ibd7f497ecf46e5781cd0265463b0782babdf062a
2018-05-15 11:23:01 -07:00
Ivan Lozano
59fdea2ac2 Don't export UBSan minimal runtime symbols.
When linking in the UBSan minimal runtime, don't export the symbols.
This was resulting in an edge case where symbols were sometimes
undefined at runtime on address sanitized builds if static library
dependencies were integer overflow sanitized.

Bug: 78766744
Test: readelf on libraries show either inclusion of the shared library
or no undefined symbols related to the minimal runtime.

Change-Id: Ide85c8c6b53b400ce9166ccaf96d250797fe4b24
2018-05-15 08:37:18 -07:00
Jiyong Park
07ba19c49e Support recovery and recovery_available am: f9332f1c86
am: 84c2e79acf

Change-Id: I3e99976bd8277a7f318e28e2357ac3853c64d5db
2018-05-15 02:17:44 -07:00
Jiyong Park
f9332f1c86 Support recovery and recovery_available
`recovery: true` installs a module to the recovery partition.
`recovery_available: true` makes a module to be available to other
`recovery:true` or `recovery_available: true` modules.

These to are very similar to vendor, vendor_available properties, except
for the target partition.

Bug: 67916654
Bug: 64960723
Test: m -j, toybox_recovery is installed to the recovery/root/sbin
Change-Id: Iaebe0593de16c69fa70de251a61f4d018a251509
2018-05-15 16:27:12 +09:00
Dan Willemsen
5cd937bdc9 Merge "Remove the unused tags property" am: ff9d8911f6
am: ff1b69616d

Change-Id: I2800ceee079e1236992d116102ed847d28b8a223
2018-05-15 00:16:29 -07:00
Jayant Chowdhary
f267f715eb Allow abi diffs sanitized variants of vndk libraries on production devices.
Previously abi diffs were allowed only on unsanitized variants of vndk
libraries. This CL allows them on all sanitized variants which go onto
production devices, eg: cfi variants.

Bug: 66301104

Test: Without this change, for arm64 libstagefright_foundation doesn't
      get an lsdump file since we don't build an unsanitized variant
      (aosp_arm64_ab).

Test: With this change, for arm64 libstagefright_foundation does
      get an lsdump file (aosp_arm64_ab)

Merged-In: I94f82fd84fc898e4980c3f3619df9677ed723c32
Change-Id: I94f82fd84fc898e4980c3f3619df9677ed723c32
(cherry picked from commit b7e08ca830)
2018-05-14 18:34:40 -07:00
Dan Willemsen
f923f2b54c Remove the unused tags property
And fix up androidmk / bpfix to provide warnings about what to do
instead.

Test: m blueprint_tools  (runs the tests, ensures there aren't any tags left)
Change-Id: I1a3ad8600211050420041740207d6957f44463c8
2018-05-15 00:33:11 +00:00
Jayant Chowdhary
2a9b72b43c Merge "Allow abi diffs sanitized variants of vndk libraries on production devices." am: ce617bbbdb
am: 516bc12773

Change-Id: Ib743113b3d093a7d1a52033377329ec080af2031
2018-05-14 17:27:33 -07:00
Jayant Chowdhary
ce617bbbdb Merge "Allow abi diffs sanitized variants of vndk libraries on production devices." 2018-05-14 23:54:49 +00:00
George Burgess IV
030ccee01c Disable dtor inlining for clang-tidy
LLVM r328258 turned on a feature called temporary dtor inlining by
default for all of C++ in clang-tidy. This feature appears to be
somewhat over-aggressive when objects are being passed by value. For
example, given:

void foo(std::unique_ptr<int> i);

void bar() {
  auto x = std::make_unique<int>();
  int *i = x.get();
  foo(std::move(x));
  *i = 99;
}

...clang-tidy will complain about `*i = 99;` being a definite
use-after-free. This is incorrect, however: `foo` could stash the
`unique_ptr` it's given in a global, or a class member, or ...

Until upstream fixes this bug, it's probably best to keep this disabled.

Bug: None
Test: Ran the analyzer across Android locally. Nothing broke; number of
complaints dropped significantly.

Change-Id: I806c7ead34b61f4a88a7e6ec1c94751836a21e70
2018-05-14 16:30:46 -07:00
Christopher Ferris
01dd3fb504 Add support for cortex-a55/cortex-a75.
Bug: 78133793

Test: Builds when using cortex-a75 as a target.
Change-Id: Ie3fbe40b15f4d89eeba0d630a82097122fc83b33
(cherry picked from commit 0612597a41)
2018-05-11 11:23:00 -07:00
Christopher Ferris
0026c37438 Merge "Add support for cortex-a55/cortex-a75." am: 9623892890
am: c6752f63e3

Change-Id: Icd948d532b0896ffc290942fc3382184ae085d19
2018-05-11 11:13:13 -07:00
Christopher Ferris
ba14a8f4bb Add support for cortex-a55/cortex-a75.
Bug: 78133793
Bug: 78242072

Test: Builds when using cortex-a75 as a target.
Change-Id: Ie3fbe40b15f4d89eeba0d630a82097122fc83b33
Merged-In: Ie3fbe40b15f4d89eeba0d630a82097122fc83b33
(cherry picked from commit 0612597a41)
2018-05-11 00:43:39 +00:00
Jayant Chowdhary
b7e08ca830 Allow abi diffs sanitized variants of vndk libraries on production devices.
Previously abi diffs were allowed only on unsanitized variants of vndk
libraries. This CL allows them on all sanitized variants which go onto
production devices, eg: cfi variants.

Bug: 66301104

Test: Without this change, for arm64 libstagefright_foundation doesn't
      get an lsdump file since we don't build an unsanitized variant
      (aosp_arm64_ab).

Test: With this change, for arm64 libstagefright_foundation does
      get an lsdump file (aosp_arm64_ab)

Change-Id: I94f82fd84fc898e4980c3f3619df9677ed723c32
2018-05-10 15:32:18 -07:00
yangbill
d80b9a3068 Merge "Build System: Fix rpath error if native executable under testcase folder." am: cfedb7bdb3
am: 70ccb36e75

Change-Id: Ia852f849810445c8bd0d2d01c10d4de8c64e3ec6
2018-05-09 17:56:43 -07:00
Treehugger Robot
cfedb7bdb3 Merge "Build System: Fix rpath error if native executable under testcase folder." 2018-05-10 00:41:27 +00:00
Yi Kong
2b4168754a Merge "Take Enable_profile_use into account when checking if PGO is enabled" am: ea144bf779
am: 9522351748

Change-Id: Ife84ad856fe58f96fe1eb8aa568e56c2928ef0bf
2018-05-08 12:52:11 -07:00
Yi Kong
ea144bf779 Merge "Take Enable_profile_use into account when checking if PGO is enabled" 2018-05-08 19:37:29 +00:00
android-build-prod (mdb)
78ca3047ea Merge changes I52f88bfd,I4263b7d5 am: 720f04b964
am: d2bb2b5c6c

Change-Id: Ia5ff67a34bc96467778e13766b7779ea1f2aa0cd
2018-05-07 18:21:39 -07:00