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)