Date: Saturday, December 30, 2017 @ 23:05:55 Author: bpiotrowski Revision: 277500
archrelease: copy trunk to community-staging-x86_64 Added: heaptrack/repos/community-staging-x86_64/ heaptrack/repos/community-staging-x86_64/PKGBUILD (from rev 277499, heaptrack/trunk/PKGBUILD) heaptrack/repos/community-staging-x86_64/heaptrack-glibc-2.26.patch (from rev 277499, heaptrack/trunk/heaptrack-glibc-2.26.patch) ----------------------------+ PKGBUILD | 38 ++++++++++++++ heaptrack-glibc-2.26.patch | 114 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 152 insertions(+) Copied: heaptrack/repos/community-staging-x86_64/PKGBUILD (from rev 277499, heaptrack/trunk/PKGBUILD) =================================================================== --- community-staging-x86_64/PKGBUILD (rev 0) +++ community-staging-x86_64/PKGBUILD 2017-12-30 23:05:55 UTC (rev 277500) @@ -0,0 +1,38 @@ +# Maintainer: Antonio Rojas <aro...@archlinux.org> + +pkgname=heaptrack +pkgver=1.0.0 +pkgrel=3 +arch=(x86_64) +pkgdesc="A heap memory profiler for Linux" +url="http://milianw.de/tag/heaptrack" +license=(GPL) +depends=(kdiagram threadweaver kitemmodels kio boost-libs) +makedepends=(extra-cmake-modules boost python sparsehash) +source=(http://download.kde.org/stable/$pkgname/$pkgver/src/$pkgname-$pkgver.tar.xz{,.sig} + heaptrack-glibc-2.26.patch) +sha256sums=('01d87ea1b424a67f943483ff141c0a32a46c5b6109834e2e832ebef898a4474f' + 'SKIP' + '39a04e0bacb99ecd91d1d8225b944cc9c852853813520b7538b10bcd5ec6d591') +validpgpkeys=(3D8568869097C65C98F8D2760C0EB212CD1D1393) # Milian Wolff <m...@milianw.de> + +prepare() { + mkdir -p build + + cd $pkgname-$pkgver + patch -p1 -i ../heaptrack-glibc-2.26.patch # fix build with glibc 2.26 +} + +build() { + cd build + cmake ../$pkgname-$pkgver \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DBUILD_TESTING=OFF + make +} + +package(){ + cd build + make DESTDIR="$pkgdir" install +} Copied: heaptrack/repos/community-staging-x86_64/heaptrack-glibc-2.26.patch (from rev 277499, heaptrack/trunk/heaptrack-glibc-2.26.patch) =================================================================== --- community-staging-x86_64/heaptrack-glibc-2.26.patch (rev 0) +++ community-staging-x86_64/heaptrack-glibc-2.26.patch 2017-12-30 23:05:55 UTC (rev 277500) @@ -0,0 +1,114 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 8cc25bd..5df5f4d 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -73,6 +73,11 @@ if (NOT HAVE_LINUX_HEADERS) + message(FATAL_ERROR "You are missing some Linux headers required to compile heaptrack.") + endif() + ++# cfree() does not exist in glibc 2.26+. ++# See: https://bugs.kde.org/show_bug.cgi?id=383889 ++include(CheckSymbolExists) ++check_symbol_exists(cfree malloc.h HAVE_CFREE) ++ + set(BIN_INSTALL_DIR "bin") + set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)") + set(LIB_INSTALL_DIR "lib${LIB_SUFFIX}") +diff --git a/src/track/heaptrack_inject.cpp b/src/track/heaptrack_inject.cpp +index 0bf75f8..2956613 100644 +--- a/src/track/heaptrack_inject.cpp ++++ b/src/track/heaptrack_inject.cpp +@@ -18,6 +18,7 @@ + */ + + #include "libheaptrack.h" ++#include "util/config.h" + + #include <cstdlib> + #include <cstring> +@@ -43,12 +44,6 @@ + #error unsupported word size + #endif + +-#if defined(_BSD_SOURCE) || defined(_SVID_SOURCE) || defined(__USE_MISC) +-#define HAVE_CFREE 1 +-#else +-#define HAVE_CFREE 0 +-#endif +- + namespace { + + namespace Elf { +diff --git a/src/track/heaptrack_preload.cpp b/src/track/heaptrack_preload.cpp +index b106bcd..343b193 100644 +--- a/src/track/heaptrack_preload.cpp ++++ b/src/track/heaptrack_preload.cpp +@@ -18,6 +18,7 @@ + */ + + #include "libheaptrack.h" ++#include "util/config.h" + + #include <cstdio> + #include <cstdlib> +@@ -30,7 +31,6 @@ + using namespace std; + + #define HAVE_ALIGNED_ALLOC defined(_ISOC11_SOURCE) +-#define HAVE_CFREE (defined(_BSD_SOURCE) || defined(_SVID_SOURCE) || defined(__USE_MISC)) + + namespace { + +diff --git a/src/util/config.h.cmake b/src/util/config.h.cmake +index d24034a..8239ae3 100644 +--- a/src/util/config.h.cmake ++++ b/src/util/config.h.cmake +@@ -30,4 +30,8 @@ + + #define HEAPTRACK_DEBUG_BUILD @HEAPTRACK_DEBUG_BUILD@ + ++// cfree() does not exist in glibc 2.26+. ++// See: https://bugs.kde.org/show_bug.cgi?id=383889 ++#cmakedefine01 HAVE_CFREE ++ + #endif // HEAPTRACK_CONFIG_H +diff --git a/tests/manual/CMakeLists.txt b/tests/manual/CMakeLists.txt +index 63f9526..4bbbbb6 100644 +--- a/tests/manual/CMakeLists.txt ++++ b/tests/manual/CMakeLists.txt +@@ -2,6 +2,10 @@ set(CMAKE_BUILD_TYPE Debug) + + add_executable(test_c test.c) + add_executable(test_cpp test.cpp) ++set_target_properties(test_cpp PROPERTIES ++ INCLUDE_DIRECTORIES ${CMAKE_CURRENT_BINARY_DIR}/../../src/ ++) ++ + add_executable(threaded threaded.cpp) + target_link_libraries(threaded ${CMAKE_THREAD_LIBS_INIT}) + +diff --git a/tests/manual/test.cpp b/tests/manual/test.cpp +index e3f1870..1e9c267 100644 +--- a/tests/manual/test.cpp ++++ b/tests/manual/test.cpp +@@ -1,6 +1,8 @@ + #include <cstdio> + #include <cstdlib> + ++#include "util/config.h" ++ + #define HAVE_ALIGNED_ALLOC defined(_ISOC11_SOURCE) + + struct Foo +@@ -60,7 +62,11 @@ int main() + + buf = calloc(5, 5); + printf("calloc: %p\n", buf); ++#if HAVE_CFREE + cfree(buf); ++#else ++ free(buf); ++#endif + + #if HAVE_ALIGNED_ALLOC + buf = aligned_alloc(16, 160);