From 4b09b2fbc4da81e0115f1ed179e671033399de0b Mon Sep 17 00:00:00 2001 From: Kefu Chai <kchai@redhat.com> Date: Mon, 6 Aug 2018 04:17:47 +0800 Subject: [PATCH] cmake,make-dist: revert "build gperftools if WITH_STATIC_LIBSTDCXX" as the higher version of libstdc++ is backward compatible with the lower ones. so there is no need to statically link against C++ libraries. they can always use the libstdc++ ships with the distro. This reverts commit a6c73b6ac1d81cc9f467aa38e5afb146d5dea6c2 Signed-off-by: Kefu Chai <kchai@redhat.com> --- CMakeLists.txt | 12 +++------ cmake/modules/Buildgperftools.cmake | 42 ----------------------------- make-dist | 24 ----------------- src/perfglue/CMakeLists.txt | 8 +----- 4 files changed, 4 insertions(+), 82 deletions(-) delete mode 100644 cmake/modules/Buildgperftools.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index ba65aa9f3187d..e7892c4394993 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -316,11 +316,7 @@ endif(WITH_LZ4) #if allocator is set on command line make sure it matches below strings if(ALLOCATOR) if(${ALLOCATOR} MATCHES "tcmalloc(_minimal)?") - if(GPERFTOOLS_USE_STATIC_LIBS) - include(Buildgperftools) - else() - find_package(gperftools REQUIRED) - endif() + find_package(gperftools REQUIRED) set(HAVE_LIBTCMALLOC ON) elseif(${ALLOCATOR} STREQUAL "jemalloc") find_package(JeMalloc REQUIRED) @@ -329,10 +325,8 @@ if(ALLOCATOR) message(FATAL_ERROR "Unsupported allocator selected: ${ALLOCATOR}") endif() else(ALLOCATOR) - if(NOT GPERFTOOLS_USE_STATIC_LIBS) - find_package(gperftools) - set(HAVE_LIBTCMALLOC ${gperftools_FOUND}) - endif() + find_package(gperftools) + set(HAVE_LIBTCMALLOC ${gperftools_FOUND}) if(NOT gperftools_FOUND) find_package(JeMalloc) endif() diff --git a/cmake/modules/Buildgperftools.cmake b/cmake/modules/Buildgperftools.cmake deleted file mode 100644 index 5242b4cd1c13a..0000000000000 --- a/cmake/modules/Buildgperftools.cmake +++ /dev/null @@ -1,42 +0,0 @@ -if(EXISTS ${CMAKE_SOURCE_DIR}/src/gperftools/configure) - set(gperftools_SOURCE_DIR - SOURCE_DIR ${CMAKE_SOURCE_DIR}/src/gperftools) -else() - set(gperftools_SOURCE_DIR - URL https://github.com/gperftools/gperftools/releases/download/gperftools-2.7/gperftools-2.7.tar.gz - URL_HASH SHA256=1ee8c8699a0eff6b6a203e59b43330536b22bbcbe6448f54c7091e5efb0763c9) -endif() - -set(gperftools_ROOT_DIR ${CMAKE_CURRENT_BINARY_DIR}/gperftools) -include(ExternalProject) -# override the $DESTDIR specified by debian's dh-make, as it sets $DESTDIR -# environment variable globally, which instructs GNU automake to install the -# artifacts to the specified $DESTDIR instead of <INSTALL_DIR>, where the -# headers and libraries are expected. if $DESTDIR is specified, the artifacts -# will be installed into ${DESTDIR}/${prefix}. and the default ${prefix} is -# /user/local, so pass an empty string to "configure" -ExternalProject_Add(gperftools_ext - ${gperftools_SOURCE_DIR} - CONFIGURE_COMMAND <SOURCE_DIR>/configure --disable-libunwind --disable-stacktrace-via-backtrace --enable-frame-pointers --prefix= CXXFLAGS=-fPIC - BUILD_COMMAND $(MAKE) - INSTALL_DIR ${gperftools_ROOT_DIR} - INSTALL_COMMAND $(MAKE) install DESTDIR=<INSTALL_DIR>) - -# create the directory so cmake won't complain when looking at the imported -# target -file(MAKE_DIRECTORY ${gperftools_ROOT_DIR}/include) - -foreach(component tcmalloc tcmalloc_minimal profiler) - add_library(gperftools::${component} STATIC IMPORTED) - set_target_properties(gperftools::${component} PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES ${gperftools_ROOT_DIR}/include - IMPORTED_LINK_INTERFACE_LANGUAGES "CXX" - IMPORTED_LOCATION ${gperftools_ROOT_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}${component}${CMAKE_STATIC_LIBRARY_SUFFIX}) - add_dependencies(gperftools::${component} gperftools_ext) -endforeach() - -find_package(Threads) -foreach(component tcmalloc profiler) - set_target_properties(gperftools::${component} PROPERTIES - INTERFACE_LINK_LIBRARIES "Threads::Threads") -endforeach() diff --git a/make-dist b/make-dist index e0aeadf11ab6b..eb9aa7b0f2bf3 100755 --- a/make-dist +++ b/make-dist @@ -61,28 +61,6 @@ download_boost() { rm -rf src/boost } -download_gperftools() { - version=$1 - shift - sha256=$1 - shift - dname=gperftools-$version - fname=$dname.tar.gz - url=https://github.com/gperftools/gperftools/releases/download/$dname/$fname - - if ! wget -c --no-verbose -O $fname $url; then - echo "Download of $url failed" - exit 1 - elif [ $(sha256sum $fname | awk '{print $1}') != $sha256 ]; then - echo "Error: failed to download gperftools: SHA256 mismatch." - exit 1 - fi - tar xzf $fname -C src - mv src/$dname src/gperftools - tar cf ${outfile}.gperftools.tar ${outfile}/src/gperftools - rm -rf src/gperftools -} - _python_autoselect() { python_command= for interpreter in python2.7 python3 ; do @@ -157,11 +135,9 @@ download_boost $boost_version 2684c972994ee57fc5632e03bf044746f6eb45d4920c343937 https://dl.bintray.com/boostorg/release/$boost_version/source \ https://downloads.sourceforge.net/project/boost/boost/$boost_version \ https://download.ceph.com/qa -download_gperftools 2.7 1ee8c8699a0eff6b6a203e59b43330536b22bbcbe6448f54c7091e5efb0763c9 build_dashboard_frontend tar --concatenate -f $outfile.all.tar $outfile.version.tar tar --concatenate -f $outfile.all.tar $outfile.boost.tar -tar --concatenate -f $outfile.all.tar $outfile.gperftools.tar tar --concatenate -f $outfile.all.tar $outfile.tar tar --concatenate -f $outfile.all.tar dashboard_frontend.tar mv $outfile.all.tar $outfile.tar diff --git a/src/perfglue/CMakeLists.txt b/src/perfglue/CMakeLists.txt index b1654c73c79eb..11546e98e5373 100644 --- a/src/perfglue/CMakeLists.txt +++ b/src/perfglue/CMakeLists.txt @@ -11,13 +11,7 @@ endif() option(WITH_PROFILER "build extra profiler binaries" OFF) if(WITH_PROFILER) - if(GPERFTOOLS_USE_STATIC_LIBS) - if(NOT TARGET gperftools::profiler) - include(Buildgperftools) - endif() - else() - find_package(gperftools REQUIRED profiler) - endif() + find_package(gperftools REQUIRED profiler) add_library(cpu_profiler STATIC cpu_profiler.cc) target_link_libraries(cpu_profiler