From 00bfaca0c3c923bd8f2db0992762a15b8b79e74f Mon Sep 17 00:00:00 2001 From: Vladimir Marko Date: Thu, 26 Apr 2018 16:04:44 +0100 Subject: Fix CodeBuffer implementation mismatch. Test: Rely on TreeHugger. Bug: 64359573 (cherry picked from commit 9b00771ae42e6ca9031ce5095ae08cc9a2feaa72) Change-Id: Ic5f1e9548db625884350949cdfdbc44f222d4b95 --- Android.bp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Android.bp b/Android.bp index 3b2900bf..5f63861f 100644 --- a/Android.bp +++ b/Android.bp @@ -72,6 +72,14 @@ cc_defaults { // Explicitly enable the write-strings warning. VIXL uses // const correctly when handling string constants. "-Wwrite-strings", + + // As we can load both libvixl-arm.so and libvixl-arm64.so in the + // same process, and some functions are emitted in both libraries, + // flags for selecting implementation details for these functions + // must be shared to emit identical code. Otherwise we can get + // undefined behavior, especially with link-time optimization. + // b/64359573 + "-DVIXL_CODE_BUFFER_MALLOC", ], local_include_dirs: ["src"], native_coverage: false, @@ -84,7 +92,6 @@ cc_defaults { name: "vixl-arm", defaults: ["vixl-common"], cppflags: [ - "-DVIXL_CODE_BUFFER_MALLOC", "-DVIXL_INCLUDE_TARGET_T32", ], srcs: ["src/aarch32/*.cc"], @@ -95,7 +102,6 @@ cc_defaults { defaults: ["vixl-common"], cppflags: [ "-DVIXL_INCLUDE_SIMULATOR_AARCH64", - "-DVIXL_CODE_BUFFER_MMAP", "-DVIXL_INCLUDE_TARGET_A64", ], srcs: ["src/aarch64/*.cc"], -- cgit v1.2.3