SHA256
8
0
forked from pool/gperftools

2 Commits

Author SHA256 Message Date
a3fb93c095 Accepting request 1302534 from devel:libraries:c_c++
OBS-URL: https://build.opensuse.org/request/show/1302534
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gperftools?expand=0&rev=34
2025-09-03 19:07:22 +00:00
Paolo Stivanin
2dab053abe - version update to 2.17.2
2.17.2
    Couple bugs were found in the recently introduced changes. So this is
    another point release with some fixes.
  2.17.1
    There was just one fix submitted since 2.17. graysky has contributed
    build fix for (legacy, 32-bit) ARMs. Huge thanks!
  2.17
    * Salvatore Dipietro has contributed SB instruction support for
      spinlock delay loops on newer ARMs.
    * libgcc backtrace capturing method now handles deep backtraces
      better.
    * PPC+musl users can now workaround some issues building PPC-specific
      backtrace code by adding
      TCMALLOC_DISABLE_PPC_FRAME_POINTER_BACKTRACER preprocessor
      define. Much thanks to Josef Schlehofer for reporting the
      problem. See details in
      https://github.com/gperftools/gperftools/issues/1602.
    * Jackie Cui has contributed a small change to the page heap span
      selection logic that makes a big difference in reducing the amount
      of used memory in some workloads. See
      https://github.com/gperftools/gperftools/pull/1604 for further
      details.
    * [headline] heap leak checker has been amputated, as promised earlier
    * [headline] we don't ship pprof anymore. People need to get modern
      and awesome pprof implementation from github.com/google/pprof
    * we now have some basic CI infrastructure via Github Actions
    * we now have basic Bazel support
    * our docs have been slightly updated and converted to AsciiDoc format
    * we now implement C23 free{,_aligned}_sized functions (but no libc-s

OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/gperftools?expand=0&rev=68
2025-09-03 06:15:15 +00:00
7 changed files with 120 additions and 25 deletions

BIN
gperftools-2.15.tar.gz (Stored with Git LFS)

Binary file not shown.

3
gperftools-2.17.2.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bb172a54312f623b53d8b94cab040248c559decdb87574ed873e80b516e6e8eb
size 2815669

View File

@@ -0,0 +1,17 @@
Index: gperftools-2.17.2/Makefile.am
===================================================================
--- gperftools-2.17.2.orig/Makefile.am
+++ gperftools-2.17.2/Makefile.am
@@ -764,11 +764,6 @@ libprofiler_la_LDFLAGS = -export-symbols
TESTS += getpc_test
getpc_test_SOURCES = src/tests/getpc_test.cc src/getpc.h
-TESTS += profiledata_unittest
-profiledata_unittest_SOURCES = src/tests/profiledata_unittest.cc src/profiledata.cc
-profiledata_unittest_CPPFLAGS = $(gtest_CPPFLAGS)
-profiledata_unittest_LDADD = libstacktrace.la libcommon.la libgtest.la
-
TESTS += profile_handler_unittest
profile_handler_unittest_SOURCES = src/tests/profile-handler_unittest.cc src/profile-handler.cc
profile_handler_unittest_CPPFLAGS = $(gtest_CPPFLAGS)

View File

@@ -1,3 +1,89 @@
-------------------------------------------------------------------
Tue Sep 2 10:45:33 UTC 2025 - pgajdos@suse.com
- version update to 2.17.2
2.17.2
Couple bugs were found in the recently introduced changes. So this is
another point release with some fixes.
2.17.1
There was just one fix submitted since 2.17. graysky has contributed
build fix for (legacy, 32-bit) ARMs. Huge thanks!
2.17
* Salvatore Dipietro has contributed SB instruction support for
spinlock delay loops on newer ARMs.
* libgcc backtrace capturing method now handles deep backtraces
better.
* PPC+musl users can now workaround some issues building PPC-specific
backtrace code by adding
TCMALLOC_DISABLE_PPC_FRAME_POINTER_BACKTRACER preprocessor
define. Much thanks to Josef Schlehofer for reporting the
problem. See details in
https://github.com/gperftools/gperftools/issues/1602.
* Jackie Cui has contributed a small change to the page heap span
selection logic that makes a big difference in reducing the amount
of used memory in some workloads. See
https://github.com/gperftools/gperftools/pull/1604 for further
details.
* [headline] heap leak checker has been amputated, as promised earlier
* [headline] we don't ship pprof anymore. People need to get modern
and awesome pprof implementation from github.com/google/pprof
* we now have some basic CI infrastructure via Github Actions
* we now have basic Bazel support
* our docs have been slightly updated and converted to AsciiDoc format
* we now implement C23 free{,_aligned}_sized functions (but no libc-s
offer those yet anyway)
* FreeBSD bits don't depend on procfs anymore (proc maps iterator was
broken anyway; now it works)
* we don't offer mmap profiling anymore. It wasn't entirely complete
for some years now, and killing it has eliminated a lot of
complexity. MMap hooks are still part of ABI, but they do nothing.
2.16
* we've upgraded our C++ standard to C++ 17. Some fraction of our code
base was modernized.
* We've integrated (vendored copy of) GoogleTest, and most tests now
use it. GoogleTest has helped us eliminate some legacy code and
reduce the number of tests that use shell scripts.
* There are no more unnecessary wrappers around mutexes and threads
for unit tests. We now use C++ standard mutexes and threads in our
tests.
* We've done the bulk of the work necessary to enable hidden
visibility. The most significant change is that tests no longer
reach into libtcmalloc's guts. We use a special TestingPortal
interface instead. We now offer the --enable-hidden-visibility
configure option, which does what it says. But please note that
hidden visibility is off by default for now.
* autotools build was significantly refactored, modernized and
simplified.
* The cmake build has also been radically simplified. The previous
version attempted to duplicate the same complexity that we had in
the autotools build and did not do it very well. More tests now pass
under cmake. But please note that cmake support is still not
entirely functional, and we're not yet able to promise anything
about it.
* Thread-local storage access and emergency malloc integration have
been reworked. We now support emergency malloc even on systems with
emutls and similarly "bad" TLS support. As a result, backtracing is
now more reliable (e.g., on QNX).
* OSX operator new/delete performance has been improved. OSX's malloc
performance is badly compromised by its support of malloc zones, so
we cannot help much (the same applies to much of our competition
among memory allocators). But the C++ new/delete API doesn't have to
integrate with this stuff, so we now directly replace those
functions for a sizeable speedup. Note that OSX performance is still
not on par with other "prime tier" OSes due to its lack of efficient
TLS support.
* Long deprecated google/ headers have been deleted (use, e.g.,
"gperftools/tcmalloc.h" instead)
* All clang builds now use -Wthread-safety and actually check
thread-safety declarations
* Our code has stopped being incompatible with _TIME_BITS=64 on modern
GNU Linux systems (relevant only for 32-bit systems)
* OpenSolaris build has been verified and fixed when needed
- removed patches
- gperftools_fix_unassigned_malloc_in_unittest.patch (not needed)
- added patches
+ gperftools-no-profiledata_unittest.patch
-------------------------------------------------------------------
Sun Jan 28 12:32:55 UTC 2024 - Dirk Müller <dmueller@suse.com>

View File

@@ -1,7 +1,7 @@
#
# spec file for package gperftools
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2025 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,15 +17,17 @@
Name: gperftools
Version: 2.15
Version: 2.17.2
Release: 0
Summary: Performance Tools for C++
License: BSD-3-Clause
Group: Development/Libraries/C and C++
URL: https://github.com/gperftools/gperftools
Source0: %{url}/releases/download/gperftools-%{version}/gperftools-%{version}.tar.gz
Patch1: %{name}_fix_unassigned_malloc_in_unittest.patch
Patch2: %{name}_gcc46.patch
# profiledata_unittest fails (aborts) during osc build, but succeeds
# after chroot to buildroot & make check
Patch3: gperftools-no-profiledata_unittest.patch
BuildRequires: autoconf >= 2.59
BuildRequires: automake
BuildRequires: gcc-c++
@@ -156,6 +158,11 @@ export CFLAGS="%{optflags} -fno-strict-aliasing $VALGRIND_FL"
--docdir=%{_defaultdocdir}/%{name}
%make_build
%check
%ifnarch i586
make check
%endif
%install
%make_install
find %{buildroot} -type f -name "*.la" -delete -print
@@ -174,7 +181,6 @@ find %{buildroot} -type f -name "*.la" -delete -print
%postun -n libtcmalloc_and_profiler4 -p /sbin/ldconfig
%files
%{_bindir}/pprof-symbolize
%files -n libprofiler0
%{_libdir}/libprofiler.so.0*
@@ -195,7 +201,6 @@ find %{buildroot} -type f -name "*.la" -delete -print
%{_libdir}/libtcmalloc_and_profiler.so.4*
%files devel
%{_includedir}/google
%{_includedir}/gperftools
%{_libdir}/libprofiler.so
%{_libdir}/libtcmalloc.so

View File

@@ -1,13 +0,0 @@
Index: google-perftools-1.8/src/tests/heap-checker_unittest.cc
===================================================================
--- google-perftools-1.8.orig/src/tests/heap-checker_unittest.cc
+++ google-perftools-1.8/src/tests/heap-checker_unittest.cc
@@ -681,7 +681,7 @@ static void ScopedDisabledLeaks() {
HeapLeakChecker::Disabler disabler;
AllocHidden(3 * sizeof(int));
TransLeaks();
- (void)malloc(10); // Direct leak
+ void* p = malloc(10); // Direct leak
}
// have different disabled leaks

View File

@@ -1,8 +1,8 @@
Index: gperftools-2.13/src/base/elf_mem_image.h
Index: gperftools-2.17.2/src/base/elf_mem_image.h
===================================================================
--- gperftools-2.13.orig/src/base/elf_mem_image.h
+++ gperftools-2.13/src/base/elf_mem_image.h
@@ -47,6 +47,7 @@
--- gperftools-2.17.2.orig/src/base/elf_mem_image.h
+++ gperftools-2.17.2/src/base/elf_mem_image.h
@@ -44,6 +44,7 @@
#define HAVE_ELF_MEM_IMAGE 1