perf 模式下编译参数调整
This commit is contained in:
parent
c15caa688c
commit
5481caa840
2
build.sh
2
build.sh
@ -186,7 +186,7 @@ function build
|
||||
ln -sf ${TOPDIR}/build_clangd/compile_commands.json ${TOPDIR}/compile_commands.json
|
||||
;;
|
||||
xperf)
|
||||
do_build "$@" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_AUTO_FDO=ON -DENABLE_THIN_LTO=ON -DOB_USE_LLD=$LLD_OPTION -DENABLE_HOTFUNC=ON
|
||||
do_build "$@" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_AUTO_FDO=ON -DENABLE_THIN_LTO=ON -DOB_USE_LLD=$LLD_OPTION -DENABLE_HOTFUNC=ON -DOB_USE_CCACHE=OFF
|
||||
;;
|
||||
xdebug_asan)
|
||||
do_build "$@" -DCMAKE_BUILD_TYPE=Debug -DOB_USE_LLD=$LLD_OPTION -DOB_USE_ASAN=$ASAN_OPTION
|
||||
|
@ -62,14 +62,6 @@ if(ENABLE_AUTO_FDO)
|
||||
set(AUTO_FDO_OPT "-finline-functions -fprofile-sample-use=${CMAKE_SOURCE_DIR}/observer.prof.1702984872675")
|
||||
endif()
|
||||
|
||||
ob_define(THIN_LTO_OPT "")
|
||||
ob_define(THIN_LTO_CONCURRENCY_LINK "")
|
||||
|
||||
if(ENABLE_THIN_LTO)
|
||||
set(THIN_LTO_OPT "-flto=thin")
|
||||
set(THIN_LTO_CONCURRENCY_LINK "-Wl,--thinlto-jobs=${LTO_JOBS}")
|
||||
endif()
|
||||
|
||||
set(HOTFUNC_OPT "")
|
||||
if(ENABLE_HOTFUNC)
|
||||
set(HOTFUNC_OPT "-Wl,--no-warn-symbol-ordering,--symbol-ordering-file,${HOTFUNC_PATH}")
|
||||
@ -209,8 +201,17 @@ if (OB_USE_CCACHE)
|
||||
endif()
|
||||
endif(OB_USE_CCACHE)
|
||||
|
||||
ob_define(THIN_LTO_OPT "")
|
||||
ob_define(THIN_LTO_CONCURRENCY_LINK "")
|
||||
|
||||
if (OB_USE_CLANG)
|
||||
|
||||
if(ENABLE_THIN_LTO)
|
||||
message(STATUS "Enable LTO in perf mode for observer")
|
||||
set(THIN_LTO_OPT "-flto=thin")
|
||||
set(THIN_LTO_CONCURRENCY_LINK "-Wl,--thinlto-jobs=${LTO_JOBS}")
|
||||
endif()
|
||||
|
||||
if (OB_CC)
|
||||
message(STATUS "Using OB_CC compiler: ${OB_CC}")
|
||||
else()
|
||||
@ -243,11 +244,11 @@ if (OB_USE_CLANG)
|
||||
set(REORDER_LINK_OPT "-Wl,--no-rosegment,--build-id=sha1 ${HOTFUNC_OPT}")
|
||||
set(OB_LD_BIN "${DEVTOOLS_DIR}/bin/ld.lld")
|
||||
endif()
|
||||
set(CMAKE_CXX_FLAGS "--gcc-toolchain=${GCC9} ${DEBUG_PREFIX} ${AUTO_FDO_OPT} ${THIN_LTO_OPT} -fcolor-diagnostics ${REORDER_COMP_OPT} -fmax-type-align=8 ${CMAKE_ASAN_FLAG} -std=gnu++11")
|
||||
set(CMAKE_C_FLAGS "--gcc-toolchain=${GCC9} ${DEBUG_PREFIX} ${AUTO_FDO_OPT} ${THIN_LTO_OPT} -fcolor-diagnostics ${REORDER_COMP_OPT} -fmax-type-align=8 ${CMAKE_ASAN_FLAG}")
|
||||
set(CMAKE_CXX_LINK_FLAGS "${LD_OPT} ${THIN_LTO_CONCURRENCY_LINK} --gcc-toolchain=${GCC9} ${DEBUG_PREFIX} ${AUTO_FDO_OPT}")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${LD_OPT} -Wl,-z,noexecstack ${THIN_LTO_CONCURRENCY_LINK} ${REORDER_LINK_OPT}")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${LD_OPT} -Wl,-z,noexecstack ${PIE_OPT} ${THIN_LTO_CONCURRENCY_LINK} ${REORDER_LINK_OPT} ${CMAKE_COVERAGE_EXE_LINKER_OPTIONS}")
|
||||
set(CMAKE_CXX_FLAGS "--gcc-toolchain=${GCC9} ${DEBUG_PREFIX} ${AUTO_FDO_OPT} -fcolor-diagnostics ${REORDER_COMP_OPT} -fmax-type-align=8 ${CMAKE_ASAN_FLAG} -std=gnu++11")
|
||||
set(CMAKE_C_FLAGS "--gcc-toolchain=${GCC9} ${DEBUG_PREFIX} ${AUTO_FDO_OPT} -fcolor-diagnostics ${REORDER_COMP_OPT} -fmax-type-align=8 ${CMAKE_ASAN_FLAG}")
|
||||
set(CMAKE_CXX_LINK_FLAGS "${LD_OPT} --gcc-toolchain=${GCC9} ${DEBUG_PREFIX} ${AUTO_FDO_OPT}")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${LD_OPT} -Wl,-z,noexecstack ${REORDER_LINK_OPT}")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${LD_OPT} -Wl,-z,noexecstack ${PIE_OPT} ${REORDER_LINK_OPT} ${CMAKE_COVERAGE_EXE_LINKER_OPTIONS}")
|
||||
else() # not clang, use gcc
|
||||
if(OB_BUILD_OPENSOURCE)
|
||||
message("gcc9 not support currently, please set OB_USE_CLANG ON and we will finish it as soon as possible")
|
||||
|
@ -550,6 +550,8 @@ target_link_libraries(ob_main PUBLIC ob_base)
|
||||
add_executable(observer)
|
||||
target_link_libraries(observer
|
||||
PRIVATE
|
||||
${THIN_LTO_OPT}
|
||||
${THIN_LTO_CONCURRENCY_LINK}
|
||||
-Wl,--start-group
|
||||
ob_main
|
||||
ob_malloc
|
||||
|
Loading…
x
Reference in New Issue
Block a user