[arch-commits] Commit in heaptrack/repos (3 files)

Bartłomiej Piotrowski bpiotrowski at archlinux.org
Sat Dec 30 23:05:57 UTC 2017


    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 <arojas at 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 <mail at 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);



More information about the arch-commits mailing list