Fix TSAN build for fbcode

Summary:
TSAN builds for gcc 4.9 need a PIC version of the libraries
taken from the fbcode platform.  This is accomplished by assuming every
.a has a _pic.a sibling, and by fixing the third-party2 zlib build.

Test Plan: make COMPILE_WITH_TSAN=1 check

Reviewers: sdong, igor

Reviewed By: igor

Subscribers: dhruba

Differential Revision: https://reviews.facebook.net/D50331
This commit is contained in:
Nathan Bronson 2015-11-06 09:04:28 -08:00
parent fe789c5f2b
commit c745f1d2c4
2 changed files with 6 additions and 4 deletions

View File

@ -155,8 +155,10 @@ ifdef COMPILE_WITH_TSAN
EXEC_LDFLAGS += -fsanitize=thread -pie EXEC_LDFLAGS += -fsanitize=thread -pie
PLATFORM_CCFLAGS += -fsanitize=thread -fPIC -DROCKSDB_TSAN_RUN PLATFORM_CCFLAGS += -fsanitize=thread -fPIC -DROCKSDB_TSAN_RUN
PLATFORM_CXXFLAGS += -fsanitize=thread -fPIC -DROCKSDB_TSAN_RUN PLATFORM_CXXFLAGS += -fsanitize=thread -fPIC -DROCKSDB_TSAN_RUN
# Turn off -pg when enabling TSAN testing, because that induces # Use PIC versions of any precompiled libraries
# a link failure. TODO: find the root cause EXEC_LDFLAGS := $(shell echo "$(EXEC_LDFLAGS)" | sed -e 's/[.]a /_pic.a /g')
# Turn off -pg when enabling TSAN testing, because that induces
# a link failure. TODO: find the root cause
pg = pg =
else else
pg = -pg pg = -pg

View File

@ -30,8 +30,8 @@ CFLAGS+=" -DSNAPPY"
if test -z $PIC_BUILD; then if test -z $PIC_BUILD; then
# location of zlib headers and libraries # location of zlib headers and libraries
ZLIB_INCLUDE=" -I /mnt/gvfs/third-party2/zlib/feb983d9667f4cf5e9da07ce75abc824764b67a1/1.2.8/gcc-4.9-glibc-2.20/4230243/include/" ZLIB_INCLUDE=" -I /mnt/gvfs/third-party2/zlib/bdbc7c65a775f6b1c6ae43d677b1d380720dba7c/1.2.8/gcc-4.9-glibc-2.20/e9936bf/include/"
ZLIB_LIBS=" /mnt/gvfs/third-party2/zlib/feb983d9667f4cf5e9da07ce75abc824764b67a1/1.2.8/gcc-4.9-glibc-2.20/4230243/lib/libz.a" ZLIB_LIBS=" /mnt/gvfs/third-party2/zlib/bdbc7c65a775f6b1c6ae43d677b1d380720dba7c/1.2.8/gcc-4.9-glibc-2.20/e9936bf/lib/libz.a"
CFLAGS+=" -DZLIB" CFLAGS+=" -DZLIB"
# location of bzip headers and libraries # location of bzip headers and libraries