Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6732a8f3 authored by Evgenii Stepanov's avatar Evgenii Stepanov
Browse files

Workaround for b/30067360.

/proc/self/environ inaccessible in SurfaceFlinger
=> ASan fails to read ASAN_OPTIONS => alloc-dealloc-mismatch bug is not
suppressed and prevents the device from booting.

This is not perfect because, by enabling it in asan build only, the first several attempts to start
surfaceflinger fail while the /data partition is being encrypted. On the other hand, this does not affect
user builds, and device eventually gets up anyway.

Change-Id: I5803a1688c2218cd1c36e04473f588ca28f9689f
parent 002baffd
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -90,6 +90,19 @@

EGLAPI const char* eglQueryStringImplementationANDROID(EGLDisplay dpy, EGLint name);

// Workaround for b/30067360: /proc/self/environ inaccessible in SurfaceFlinger
// => ASan fails to read ASAN_OPTIONS => alloc-dealloc-mismatch bug is not
// suppressed and prevents the device from booting.
#ifndef __has_feature
#define __has_feature(x) 0
#endif
#if __has_feature(address_sanitizer)
__attribute__((visibility("default")))
extern "C" const char *__asan_default_options() {
  return "alloc_dealloc_mismatch=0";
}
#endif

namespace android {

// This is the phase offset in nanoseconds of the software vsync event