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
main
Nathan Bronson 9 years ago
parent fe789c5f2b
commit c745f1d2c4
  1. 6
      Makefile
  2. 4
      build_tools/fbcode_config.sh

@ -155,8 +155,10 @@ ifdef COMPILE_WITH_TSAN
EXEC_LDFLAGS += -fsanitize=thread -pie
PLATFORM_CCFLAGS += -fsanitize=thread -fPIC -DROCKSDB_TSAN_RUN
PLATFORM_CXXFLAGS += -fsanitize=thread -fPIC -DROCKSDB_TSAN_RUN
# Turn off -pg when enabling TSAN testing, because that induces
# a link failure. TODO: find the root cause
# Use PIC versions of any precompiled libraries
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 =
else
pg = -pg

@ -30,8 +30,8 @@ CFLAGS+=" -DSNAPPY"
if test -z $PIC_BUILD; then
# 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_LIBS=" /mnt/gvfs/third-party2/zlib/feb983d9667f4cf5e9da07ce75abc824764b67a1/1.2.8/gcc-4.9-glibc-2.20/4230243/lib/libz.a"
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/bdbc7c65a775f6b1c6ae43d677b1d380720dba7c/1.2.8/gcc-4.9-glibc-2.20/e9936bf/lib/libz.a"
CFLAGS+=" -DZLIB"
# location of bzip headers and libraries

Loading…
Cancel
Save