• J
    TSAN: avoid new link failure with -pg · ff1ff7c6
    Jim Meyering 提交于
    Summary:
    * Makefile (COMPILE_WITH_TSAN): Avoid a link failure by disabling
    -pg when building with TSAN enabled.
    Now that "make check" builds all $(PROGRAMS), it is linking
    a few programs that were not normally linked before.
    For example, this would fail to link with the following diagnostic:
    
      COMPILE_WITH_TSAN=1 make -j40 log_and_apply_bench
    
        CCLD     log_and_apply_bench
      ld: /usr/lib/../lib64/gcrt1.o: relocation R_X86_64_32S against `__libc_csu_fini' can not be used when making a shared object; recompile with -fPIC
      /usr/lib/../lib64/gcrt1.o: error adding symbols: Bad value
      collect2: error: ld returned 1 exit status
      Makefile:511: recipe for target 'log_and_apply_bench' failed
      make: *** [log_and_apply_bench] Error 1
    
    Since removing -pg is sufficient to get past this link
    failure, and no one cares about profiling TSAN-enabled
    binaries anyway, we will refrain from linking with -pg
    when TSAN testing is enabled.  Use a new variable, "pg"
    which is set to "-pg" in most cases, but that is made
    empty when COMPILE_WITH_TSAN is set.
    
    Test Plan:
      Now, this succeeds:
    
        rm -f log_and_apply_bench
        COMPILE_WITH_TSAN=1 make -j40 log_and_apply_bench
    
    Reviewers: igor.sugak, rven, sdong, ljin, igor
    
    Reviewed By: igor
    
    Subscribers: dhruba
    
    Differential Revision: https://reviews.facebook.net/D35943
    ff1ff7c6
Makefile 26.7 KB