parent
e007b20682
commit
adc30e028a
6 changed files with 273 additions and 0 deletions
1
srcpkgs/heaptrack-gui
Symbolic link
1
srcpkgs/heaptrack-gui
Symbolic link
|
@ -0,0 +1 @@
|
|||
heaptrack
|
70
srcpkgs/heaptrack/patches/001.compile-on-32bit.patch
Normal file
70
srcpkgs/heaptrack/patches/001.compile-on-32bit.patch
Normal file
|
@ -0,0 +1,70 @@
|
|||
# reason: current release is unable to build on 32bit arches
|
||||
# src: upstream/master
|
||||
|
||||
From 76fd2e84ba133e96d2cfdf90cb715e66e923eb8f Mon Sep 17 00:00:00 2001
|
||||
From: Milian Wolff <mail@milianw.de>
|
||||
Date: Thu, 17 May 2018 13:31:25 +0200
|
||||
Subject: [PATCH] Fix compile on 32bit
|
||||
|
||||
BUG: 394330
|
||||
---
|
||||
src/util/linewriter.h | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/src/util/linewriter.h b/src/util/linewriter.h
|
||||
index 73a7930..e895e87 100644
|
||||
--- src/util/linewriter.h
|
||||
+++ src/util/linewriter.h
|
||||
@@ -158,6 +158,11 @@ class LineWriter
|
||||
return __builtin_clzl(V);
|
||||
}
|
||||
|
||||
+ inline static unsigned clz(long long unsigned V)
|
||||
+ {
|
||||
+ return __builtin_clzll(V);
|
||||
+ }
|
||||
+
|
||||
template <typename V>
|
||||
static char* writeHexNumber(char* buffer, V value)
|
||||
{
|
||||
|
||||
|
||||
|
||||
From 49577e019ea791ee63962cdfe7e9c0c5b5c6ea4b Mon Sep 17 00:00:00 2001
|
||||
From: Milian Wolff <milian.wolff@kdab.com>
|
||||
Date: Tue, 29 May 2018 10:41:10 +0200
|
||||
Subject: [PATCH] Fix another compile error on 32bit
|
||||
|
||||
Introduce a user-defined _u64 literal for uint64_t
|
||||
and use that instead of ul/ull.
|
||||
|
||||
BUG: 394330
|
||||
---
|
||||
tests/auto/tst_io.cpp | 7 ++++++-
|
||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/auto/tst_io.cpp b/tests/auto/tst_io.cpp
|
||||
index 48abda6..fd31b31 100644
|
||||
--- tests/auto/tst_io.cpp
|
||||
+++ tests/auto/tst_io.cpp
|
||||
@@ -27,6 +27,11 @@
|
||||
|
||||
using namespace std;
|
||||
|
||||
+constexpr uint64_t operator"" _u64(unsigned long long v)
|
||||
+{
|
||||
+ return static_cast<uint64_t>(v);
|
||||
+}
|
||||
+
|
||||
TEST_CASE ("write data", "[write]") {
|
||||
TempFile file;
|
||||
REQUIRE(file.open());
|
||||
@@ -124,7 +129,7 @@ TEST_CASE ("read line 64bit", "[read]") {
|
||||
REQUIRE(reader >> module);
|
||||
REQUIRE(module == "/tmp/KDevelop-5.2.1-x86_64/usr/lib/libKF5Completion.so.5");
|
||||
|
||||
- for (uint64_t expected : {0x7f48beedc00ul, 0x0ul, 0x36854ul, 0x236858ul, 0x2700ul}) {
|
||||
+ for (auto expected : {0x7f48beedc00_u64, 0x0_u64, 0x36854_u64, 0x236858_u64, 0x2700_u64}) {
|
||||
uint64_t addr = 0;
|
||||
REQUIRE(reader >> addr);
|
||||
REQUIRE(addr == expected);
|
68
srcpkgs/heaptrack/patches/002.musl-fixes.patch
Normal file
68
srcpkgs/heaptrack/patches/002.musl-fixes.patch
Normal file
|
@ -0,0 +1,68 @@
|
|||
# reason: fix sources to work correctly with musl
|
||||
|
||||
--- src/track/heaptrack_inject.cpp
|
||||
+++ src/track/heaptrack_inject.cpp
|
||||
@@ -27,6 +27,7 @@
|
||||
#include <link.h>
|
||||
#include <malloc.h>
|
||||
#include <unistd.h>
|
||||
+#include <dlfcn.h>
|
||||
|
||||
#include <sys/mman.h>
|
||||
|
||||
--- src/track/libheaptrack.cpp
|
||||
+++ src/track/libheaptrack.cpp
|
||||
@@ -72,7 +72,7 @@
|
||||
return chrono::duration_cast<chrono::milliseconds>(clock::now() - startTime());
|
||||
}
|
||||
|
||||
-__pid_t gettid()
|
||||
+pid_t gettid()
|
||||
{
|
||||
return syscall(SYS_gettid);
|
||||
}
|
||||
|
||||
--- src/track/heaptrack_inject.cpp
|
||||
+++ src/track/heaptrack_inject.cpp
|
||||
@@ -38,9 +38,10 @@
|
||||
* @brief Experimental support for symbol overloading after runtime injection.
|
||||
*/
|
||||
|
||||
-#if __WORDSIZE == 64
|
||||
+#include <limits.h>
|
||||
+#if ULONG_MAX == 0xffffffffffffffff
|
||||
#define ELF_R_SYM(i) ELF64_R_SYM(i)
|
||||
-#elif __WORDSIZE == 32
|
||||
+#elif ULONG_MAX == 0xffffffff
|
||||
#define ELF_R_SYM(i) ELF32_R_SYM(i)
|
||||
#else
|
||||
#error unsupported word size
|
||||
|
||||
# simplify stdint.h include which failed on musl due to obscure assumptions
|
||||
--- 3rdparty/libbacktrace/backtrace.h
|
||||
+++ 3rdparty/libbacktrace/backtrace.h
|
||||
@@ -36,24 +36,8 @@
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
|
||||
-/* We want to get a definition for uintptr_t, but we still care about
|
||||
- systems that don't have <stdint.h>. */
|
||||
-#if defined(__GLIBC__) && __GLIBC__ >= 2
|
||||
-
|
||||
-#include <stdint.h>
|
||||
-
|
||||
-#elif defined(HAVE_STDINT_H)
|
||||
-
|
||||
#include <stdint.h>
|
||||
|
||||
-#else
|
||||
-
|
||||
-/* Systems that don't have <stdint.h> must provide gstdint.h, e.g.,
|
||||
- from GCC_HEADER_STDINT in configure.ac. */
|
||||
-#include "gstdint.h"
|
||||
-
|
||||
-#endif
|
||||
-
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
49
srcpkgs/heaptrack/patches/003.uint.patch
Normal file
49
srcpkgs/heaptrack/patches/003.uint.patch
Normal file
|
@ -0,0 +1,49 @@
|
|||
# src: upstream/master
|
||||
|
||||
From f540b95cc7446fbf41b4b3fa9b6f275b580de638 Mon Sep 17 00:00:00 2001
|
||||
From: Sergio Martins <smartins@kde.org>
|
||||
Date: Sun, 26 May 2019 01:48:21 +0100
|
||||
Subject: [PATCH] Use 'unsigned int' instead of 'uint'
|
||||
|
||||
The former is cross platform and makes it buildable with MSVC.
|
||||
As it's just a couple of places there's no need for a typedef.
|
||||
---
|
||||
src/analyze/accumulatedtracedata.cpp | 4 ++--
|
||||
src/util/indices.h | 2 +-
|
||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/analyze/accumulatedtracedata.cpp b/src/analyze/accumulatedtracedata.cpp
|
||||
index f3f07a7..268c17f 100644
|
||||
--- src/analyze/accumulatedtracedata.cpp
|
||||
+++ src/analyze/accumulatedtracedata.cpp
|
||||
@@ -186,7 +186,7 @@ bool AccumulatedTraceData::read(istream& in, const ParsePass pass)
|
||||
for (auto& allocation : allocations) {
|
||||
allocation.clearCost();
|
||||
}
|
||||
- uint fileVersion = 0;
|
||||
+ unsigned int fileVersion = 0;
|
||||
bool debuggeeEncountered = false;
|
||||
|
||||
// required for backwards compatibility
|
||||
@@ -385,7 +385,7 @@ bool AccumulatedTraceData::read(istream& in, const ParsePass pass)
|
||||
totalCost = {};
|
||||
fromAttached = true;
|
||||
} else if (reader.mode() == 'v') {
|
||||
- uint heaptrackVersion = 0;
|
||||
+ unsigned int heaptrackVersion = 0;
|
||||
reader >> heaptrackVersion;
|
||||
if (!(reader >> fileVersion) && heaptrackVersion == 0x010200) {
|
||||
// backwards compatibility: before the 1.0.0, I actually
|
||||
diff --git a/src/util/indices.h b/src/util/indices.h
|
||||
index ee1f777..8f21bba 100644
|
||||
--- src/util/indices.h
|
||||
+++ src/util/indices.h
|
||||
@@ -64,7 +64,7 @@ struct Index
|
||||
};
|
||||
|
||||
template <typename Base>
|
||||
-uint qHash(const Index<Base> index, uint seed = 0) noexcept
|
||||
+unsigned int qHash(const Index<Base> index, unsigned int seed = 0) noexcept
|
||||
{
|
||||
return qHash(index.index, seed);
|
||||
}
|
61
srcpkgs/heaptrack/patches/004.desktop.patch
Normal file
61
srcpkgs/heaptrack/patches/004.desktop.patch
Normal file
|
@ -0,0 +1,61 @@
|
|||
# src: upstream/master
|
||||
|
||||
From f2349d480fc30cf55281218b2b8063c4e5207abb Mon Sep 17 00:00:00 2001
|
||||
From: "Friedrich W. H. Kossebau" <kossebau@kde.org>
|
||||
Date: Tue, 5 Feb 2019 04:08:55 +0100
|
||||
Subject: [PATCH] Set StartupWMClass in desktop file
|
||||
|
||||
Used by non-Plasma unixoid X-based shells to map windows to desktop files
|
||||
e.g. in launcher UIs, which do not know about _KDE_NET_WM_DESKTOP_FILE and
|
||||
instead expect (one of) the WM_CLASS entries to match the basename of the
|
||||
desktop file by default. StartupWMClass overwrites that default.
|
||||
---
|
||||
src/analyze/gui/org.kde.heaptrack.desktop | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/analyze/gui/org.kde.heaptrack.desktop b/src/analyze/gui/org.kde.heaptrack.desktop
|
||||
index 8c92706..ddae134 100644
|
||||
--- src/analyze/gui/org.kde.heaptrack.desktop
|
||||
+++ src/analyze/gui/org.kde.heaptrack.desktop
|
||||
@@ -7,6 +7,7 @@ MimeType=application/x-heaptrack;
|
||||
Icon=heaptrack
|
||||
# FIXME: write docs!
|
||||
# X-DocPath=kcachegrind/index.html
|
||||
+StartupWMClass=heaptrack_gui
|
||||
Terminal=false
|
||||
Name=Heaptrack
|
||||
Name[ca]=Heaptrack
|
||||
|
||||
|
||||
From 30ca42deadcb3bf0a73cd37806ceca5d290fbbce Mon Sep 17 00:00:00 2001
|
||||
From: "Friedrich W. H. Kossebau" <kossebau@kde.org>
|
||||
Date: Tue, 5 Feb 2019 04:23:58 +0100
|
||||
Subject: [PATCH] Add correct desktopfilename property for heaptrack_gui
|
||||
|
||||
---
|
||||
src/analyze/gui/gui.cpp | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/analyze/gui/gui.cpp b/src/analyze/gui/gui.cpp
|
||||
index 96048b1..846d5fb 100644
|
||||
--- src/analyze/gui/gui.cpp
|
||||
+++ src/analyze/gui/gui.cpp
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <QApplication>
|
||||
#include <QCommandLineParser>
|
||||
|
||||
+#include <kcoreaddons_version.h>
|
||||
#include <KAboutData>
|
||||
#include <KLocalizedString>
|
||||
|
||||
@@ -45,7 +46,9 @@ int main(int argc, char** argv)
|
||||
QStringLiteral("http://milianw.de"));
|
||||
|
||||
aboutData.setOrganizationDomain("kde.org");
|
||||
-
|
||||
+#if KCOREADDONS_VERSION >= QT_VERSION_CHECK(5, 16, 0)
|
||||
+ aboutData.setDesktopFileName(QStringLiteral("org.kde.heaptrack"));
|
||||
+#endif
|
||||
KAboutData::setApplicationData(aboutData);
|
||||
app.setWindowIcon(QIcon::fromTheme(QStringLiteral("office-chart-area")));
|
||||
|
24
srcpkgs/heaptrack/template
Normal file
24
srcpkgs/heaptrack/template
Normal file
|
@ -0,0 +1,24 @@
|
|||
# Template file for 'heaptrack'
|
||||
pkgname=heaptrack
|
||||
version=1.1.0
|
||||
revision=1
|
||||
build_style=cmake
|
||||
hostmakedepends="qt5-qmake qt5-host-tools extra-cmake-modules kcoreaddons"
|
||||
makedepends="qt5-devel boost-devel libunwind-devel libdwarf-devel kdiagram-devel
|
||||
libzstd-devel ecm-devel ki18n-devel kitemmodels-devel kio-devel
|
||||
kconfigwidgets-devel threadweaver-devel"
|
||||
#depends="gdb"
|
||||
short_desc="Heap memory profiler for Linux"
|
||||
maintainer="Piraty <piraty1@inbox.ru>"
|
||||
license="LGPL-2.1-or-later"
|
||||
homepage="https://github.com/KDE/heaptrack"
|
||||
distfiles="https://github.com/KDE/heaptrack/archive/v${version}.tar.gz"
|
||||
checksum=bd247ac67d1ecf023ec7e2a2888764bfc03e2f8b24876928ca6aa0cdb3a07309
|
||||
|
||||
heaptrack-gui_package() {
|
||||
short_desc+=" - GUI"
|
||||
pkg_install() {
|
||||
vmove usr/bin/heaptrack_gui
|
||||
vmove usr/share
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue