Hello community,

here is the log from the commit of package heaptrack for openSUSE:Factory 
checked in at 2017-09-04 12:36:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/heaptrack (Old)
 and      /work/SRC/openSUSE:Factory/.heaptrack.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "heaptrack"

Mon Sep  4 12:36:14 2017 rev:2 rq:520370 version:1.0.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/heaptrack/heaptrack.changes      2017-05-03 
15:55:39.985132463 +0200
+++ /work/SRC/openSUSE:Factory/.heaptrack.new/heaptrack.changes 2017-09-04 
12:36:15.971987209 +0200
@@ -1,0 +2,6 @@
+Sat Sep  2 15:03:19 UTC 2017 - [email protected]
+
+- Add fix-build.patch to fix build with glibc 2.26 in Factory
+  (kde#383889)
+
+-------------------------------------------------------------------

New:
----
  fix-build.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ heaptrack.spec ++++++
--- /var/tmp/diff_new_pack.dJ1qEX/_old  2017-09-04 12:36:17.139822905 +0200
+++ /var/tmp/diff_new_pack.dJ1qEX/_new  2017-09-04 12:36:17.143822342 +0200
@@ -26,6 +26,8 @@
 Group:          Development/Tools/Other
 Url:           https://userbase.kde.org/Heaptrack
 Source0:        
https://download.kde.org/stable/heaptrack/%{version}/src/%{name}-%{version}.tar.xz
+# PATCH-FIX-UPSTREAM
+Patch:          fix-build.patch
 # Needs office-chart-area icon
 BuildRequires:  breeze5-icons
 BuildRequires:  extra-cmake-modules
@@ -63,6 +65,7 @@
 
 %prep
 %setup -q
+%patch -p1
 # Disable building tests, they're not used and post-build-checks trips over it
 sed -i"" '/add_subdirectory(tests)/d' CMakeLists.txt
 

++++++ fix-build.patch ++++++
>From f0a682550118b7019e74af71d9e8624902b8a984 Mon Sep 17 00:00:00 2001
From: Milian Wolff <[email protected]>
Date: Thu, 31 Aug 2017 09:51:34 +0200
Subject: Use check_symbol_exists() to check if cfree() is available

Thanks to Daniel Vratil for the initial work.

heaptrack now compiles on Fedora rawhide and Arch Linux x86_64
with glibc 2.26 or newer.

Differential Revision: https://phabricator.kde.org/D7621
---
 CMakeLists.txt                  | 5 +++++
 src/track/heaptrack_inject.cpp  | 7 +------
 src/track/heaptrack_preload.cpp | 6 +-----
 src/util/config.h.cmake         | 4 ++++
 tests/manual/CMakeLists.txt     | 4 ++++
 tests/manual/test.cpp           | 6 ++++++
 6 files changed, 21 insertions(+), 11 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0cdde70..7ff93df 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 93508e0..c24a266 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 d8dde24..b77774a 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;
 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 7bad362..861c1f7 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 fe9602b..8996201 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 a77dbd7..4c7b0d2 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);
-- 
cgit v0.11.2


Reply via email to