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
