libchrome: Fix for building with asan.

Introduce USE_ASAN variable which should be set by libchrome ebuild.
Do not use the linker flags "-z,defs" when USE_ASAN is set since
it is not supported by address sanitizer.

BUG=chromium:809148
TEST=libchrome builds with asan.

Change-Id: I01565d5912cf8988213993110e606aa67a516781
Reviewed-on: https://chromium-review.googlesource.com/927104
Commit-Ready: Manoj Gupta <manojgupta@chromium.org>
Tested-by: Manoj Gupta <manojgupta@chromium.org>
Reviewed-by: Luis Hector Chavez <lhchavez@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
diff --git a/SConstruct b/SConstruct
index 3540b3d..5a22f81 100644
--- a/SConstruct
+++ b/SConstruct
@@ -14,6 +14,7 @@
 BASE_VER = os.environ.get('BASE_VER', '0')
 PKG_CONFIG = os.environ.get('PKG_CONFIG', 'pkg-config')
 CHROME_INCLUDE_PATH = os.environ.get('CHROME_INCLUDE_PATH', '.')
+USE_ASAN = os.environ.get('USE_ASAN', '0')
 USE_CRYPTO = os.environ.get('USE_CRYPTO', '1')
 USE_DBUS = os.environ.get('USE_DBUS', '1')
 USE_TIMERS = os.environ.get('USE_TIMERS', '1')
@@ -398,12 +399,16 @@
   if name != corename:
     libs += [corename]
 
+  linkflags = ['-Wl,--as-needed', '-Wl,-soname,lib%s.so' % name]
+  # Address sanitizer builds do not support -z,defs.
+  if USE_ASAN != '1':
+    linkflags += ['-Wl,-z,defs']
+
   e = env.Clone()
   e.Append(
     LIBS = Split(libs),
     LIBPATH = ['.'],
-    LINKFLAGS = ['-Wl,--as-needed', '-Wl,-z,defs',
-                 '-Wl,-soname,lib%s.so' % name],
+    LINKFLAGS = linkflags,
   )
   if pc_libs:
     e.ParseConfig(PKG_CONFIG + ' --cflags --libs %s' % pc_libs)