diff --git a/CMake/HPHPCompiler.cmake b/CMake/HPHPCompiler.cmake index c16c1a99a501a..13042ee4310bf 100644 --- a/CMake/HPHPCompiler.cmake +++ b/CMake/HPHPCompiler.cmake @@ -1,20 +1,3 @@ -set(FREEBSD FALSE) -if("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD") - set(FREEBSD TRUE) -endif() -set(LINUX FALSE) -if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") - set(LINUX TRUE) -endif() -set(DARWIN FALSE) -if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin") - set(DARWIN TRUE) -endif() -set(WINDOWS FALSE) -if("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows") - set(WINDOWS TRUE) -endif() - # Do this until cmake has a define for ARMv8 INCLUDE(CheckCXXSourceCompiles) CHECK_CXX_SOURCE_COMPILES(" diff --git a/CMake/Options.cmake b/CMake/Options.cmake index d305fedfdf711..7150a23b29cd4 100644 --- a/CMake/Options.cmake +++ b/CMake/Options.cmake @@ -37,7 +37,10 @@ option(ENABLE_PROXYGEN_SERVER "Build the Proxygen HTTP server" ON) option(ENABLE_SPLIT_DWARF "Reduce linker memory usage by putting debugging information into .dwo files" OFF) IF (LINUX) - option(MAP_TEXT_HUGE_PAGES "Remap hot static code onto huge pages" ON) + option(MAP_TEXT_HUGE_PAGES "Remap hot static code onto huge pages" ON) + IF(${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") + option(ENABLE_FOLLY_SYMBOLIZER "Use folly::Symbolizer to obtain debug symbols when mapping text section onto huge pages" ON) + ENDIF() ENDIF() IF (NOT DEFAULT_CONFIG_DIR) diff --git a/CMake/SetOSVars.cmake b/CMake/SetOSVars.cmake new file mode 100644 index 0000000000000..6bc8383918445 --- /dev/null +++ b/CMake/SetOSVars.cmake @@ -0,0 +1,16 @@ +set(FREEBSD FALSE) +if("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD") + set(FREEBSD TRUE) +endif() +set(LINUX FALSE) +if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") + set(LINUX TRUE) +endif() +set(DARWIN FALSE) +if("${CMAKE_SYSTEM_NAME}" STREQUAL "Darwin") + set(DARWIN TRUE) +endif() +set(WINDOWS FALSE) +if("${CMAKE_SYSTEM_NAME}" STREQUAL "Windows") + set(WINDOWS TRUE) +endif() \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index e68e210c6e964..4415146bc0640 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -101,6 +101,7 @@ SET(TP_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third-party") SET(TP_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/third-party") include(MSVCDefaults) +include(SetOSVars) include(Options) include(HPHPCompiler) include(HPHPFindLibs) diff --git a/hphp/CMakeLists.txt b/hphp/CMakeLists.txt index 87f2ed78fdb9e..657b12b8afbb2 100644 --- a/hphp/CMakeLists.txt +++ b/hphp/CMakeLists.txt @@ -112,6 +112,10 @@ install(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/tools/oss-repo-mode add_definitions("-DUSE_CMAKE") +if (ENABLE_FOLLY_SYMBOLIZER) + add_definitions(-DUSE_FOLLY_SYMBOLIZER) +endif() + enable_language(ASM) link_libraries(folly) diff --git a/hphp/util/portability.h b/hphp/util/portability.h index c3e118f2fcbb8..065ab3f39a458 100644 --- a/hphp/util/portability.h +++ b/hphp/util/portability.h @@ -240,7 +240,6 @@ ////////////////////////////////////////////////////////////////////// #if FACEBOOK -#define USE_FOLLY_SYMBOLIZER 1 // Linking in libbfd is a gigantic PITA, but if folly symbolizer doesn't // work on your platform, you'll need to figure it out. #define HAVE_LIBBFD 1