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