pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/devel/gperftools



Module Name:    pkgsrc
Committed By:   adam
Date:           Thu Dec 26 17:17:43 UTC 2024

Modified Files:
        pkgsrc/devel/gperftools: Makefile PLIST distinfo
        pkgsrc/devel/gperftools/patches: patch-src_base_basictypes.h
            patch-src_symbolize.cc
Removed Files:
        pkgsrc/devel/gperftools/patches: patch-configure
            patch-src_base_sysinfo.cc

Log Message:
gperftools: updated to 2.16

gperftools-2.16

This release doesn't have major fixes or big headline features, but it has quite a lot of internal modernizations and cleanups. By the number of commits, 2.16 is going to be our biggest release ever.

This release's main focus was making our code and building infrastructure simpler, more straightforward, more portable, and more modern.

Please note that the gperftools 2.16 release will be the last release with the heap leak checker included. The time has come to drop this feature entirely. All users should migrate to relevant 
gcc/clang sanitizers.

Here are the most notable changes:

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


To generate a diff of this commit:
cvs rdiff -u -r1.25 -r1.26 pkgsrc/devel/gperftools/Makefile
cvs rdiff -u -r1.7 -r1.8 pkgsrc/devel/gperftools/PLIST
cvs rdiff -u -r1.20 -r1.21 pkgsrc/devel/gperftools/distinfo
cvs rdiff -u -r1.3 -r0 pkgsrc/devel/gperftools/patches/patch-configure
cvs rdiff -u -r1.1 -r1.2 \
    pkgsrc/devel/gperftools/patches/patch-src_base_basictypes.h \
    pkgsrc/devel/gperftools/patches/patch-src_symbolize.cc
cvs rdiff -u -r1.2 -r0 \
    pkgsrc/devel/gperftools/patches/patch-src_base_sysinfo.cc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/devel/gperftools/Makefile
diff -u pkgsrc/devel/gperftools/Makefile:1.25 pkgsrc/devel/gperftools/Makefile:1.26
--- pkgsrc/devel/gperftools/Makefile:1.25       Fri Oct  6 16:53:49 2023
+++ pkgsrc/devel/gperftools/Makefile    Thu Dec 26 17:17:42 2024
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.25 2023/10/06 16:53:49 adam Exp $
+# $NetBSD: Makefile,v 1.26 2024/12/26 17:17:42 adam Exp $
 
-DISTNAME=      gperftools-2.13
+DISTNAME=      gperftools-2.16
 CATEGORIES=    devel
 MASTER_SITES=  ${MASTER_SITE_GITHUB:=gperftools/}
 GITHUB_RELEASE=        ${DISTNAME}
@@ -10,6 +10,7 @@ HOMEPAGE=     https://github.com/gperftools/
 COMMENT=       Fast, multi-threaded malloc() and nifty performance analysis tools
 LICENSE=       modified-bsd
 
+USE_CXX_FEATURES=      c++17
 USE_LANGUAGES=         c c++
 USE_LIBTOOL=           yes
 USE_TOOLS+=            gmake perl:run

Index: pkgsrc/devel/gperftools/PLIST
diff -u pkgsrc/devel/gperftools/PLIST:1.7 pkgsrc/devel/gperftools/PLIST:1.8
--- pkgsrc/devel/gperftools/PLIST:1.7   Fri Aug 25 16:38:42 2023
+++ pkgsrc/devel/gperftools/PLIST       Thu Dec 26 17:17:42 2024
@@ -1,15 +1,6 @@
-@comment $NetBSD: PLIST,v 1.7 2023/08/25 16:38:42 adam Exp $
+@comment $NetBSD: PLIST,v 1.8 2024/12/26 17:17:42 adam Exp $
 bin/pprof
 bin/pprof-symbolize
-include/google/heap-checker.h
-include/google/heap-profiler.h
-include/google/malloc_extension.h
-include/google/malloc_extension_c.h
-include/google/malloc_hook.h
-include/google/malloc_hook_c.h
-include/google/profiler.h
-include/google/stacktrace.h
-include/google/tcmalloc.h
 include/gperftools/heap-checker.h
 include/gperftools/heap-profiler.h
 include/gperftools/malloc_extension.h

Index: pkgsrc/devel/gperftools/distinfo
diff -u pkgsrc/devel/gperftools/distinfo:1.20 pkgsrc/devel/gperftools/distinfo:1.21
--- pkgsrc/devel/gperftools/distinfo:1.20       Fri Oct  6 16:53:49 2023
+++ pkgsrc/devel/gperftools/distinfo    Thu Dec 26 17:17:42 2024
@@ -1,9 +1,7 @@
-$NetBSD: distinfo,v 1.20 2023/10/06 16:53:49 adam Exp $
+$NetBSD: distinfo,v 1.21 2024/12/26 17:17:42 adam Exp $
 
-BLAKE2s (gperftools-2.13.tar.gz) = 3cbc3cafd4f5ae712dc93a8149b33b2baddd3f442cbb34f70b534e5afea09b31
-SHA512 (gperftools-2.13.tar.gz) = 2a18ed4eb6cab84a33452cd3b1319840ca6e4c48ab90531758c2339bf4a71042cdc26ed16d5d46406e48d9ffe0e518e4779193d0cd729c246d71dbc8920d2bd9
-Size (gperftools-2.13.tar.gz) = 1503107 bytes
-SHA1 (patch-configure) = 1ff0ea42642f42d1ba6459c35c36f6db0e008007
-SHA1 (patch-src_base_basictypes.h) = 259488af84dcd7bc2114acdb3943d193b743ddb2
-SHA1 (patch-src_base_sysinfo.cc) = 8d3c4cbc930c8625e0aca9aba6bba3a35b80fbd5
-SHA1 (patch-src_symbolize.cc) = fdbc603dba286b45d092c3447b80a537549bd78d
+BLAKE2s (gperftools-2.16.tar.gz) = 1fe22e57673fd7997cebc693277787d7d0b4bc78cfe4c16e3529f7e08ce75215
+SHA512 (gperftools-2.16.tar.gz) = 26947f553122020bec79e99ee0f42b929c8dd3024ba0c440efb3b813bf210b28280fa428d0fbfb7f6fc4f3e1d66995347f0df892d9d1180e1b2705589e7c7495
+Size (gperftools-2.16.tar.gz) = 2405927 bytes
+SHA1 (patch-src_base_basictypes.h) = 2a818c3eac1d0116f3ef75a283680e03d9f93035
+SHA1 (patch-src_symbolize.cc) = 81c6b1b406098c03653f078efa8e8e8dec6465c2

Index: pkgsrc/devel/gperftools/patches/patch-src_base_basictypes.h
diff -u pkgsrc/devel/gperftools/patches/patch-src_base_basictypes.h:1.1 pkgsrc/devel/gperftools/patches/patch-src_base_basictypes.h:1.2
--- pkgsrc/devel/gperftools/patches/patch-src_base_basictypes.h:1.1     Sun Sep 18 19:28:23 2022
+++ pkgsrc/devel/gperftools/patches/patch-src_base_basictypes.h Thu Dec 26 17:17:42 2024
@@ -1,15 +1,15 @@
-$NetBSD: patch-src_base_basictypes.h,v 1.1 2022/09/18 19:28:23 he Exp $
+$NetBSD: patch-src_base_basictypes.h,v 1.2 2024/12/26 17:17:42 adam Exp $
 
 Add support for NetBSD/powerpc, recognized via __powerpc__.
 
---- src/base/basictypes.h.orig 2022-05-31 03:32:13.000000000 +0000
+--- src/base/basictypes.h.orig 2024-09-20 20:51:40.000000000 +0000
 +++ src/base/basictypes.h
-@@ -371,7 +371,7 @@ class AssignAttributeStartEnd {
+@@ -200,7 +200,7 @@ inline void bit_store(Dest *dest, const
  #if defined(HAVE___ATTRIBUTE__)
  # if (defined(__i386__) || defined(__x86_64__))
  #   define CACHELINE_ALIGNED __attribute__((aligned(64)))
--# elif (defined(__PPC__) || defined(__PPC64__))
-+# elif (defined(__PPC__) || defined(__PPC64__) || defined(__powerpc__))
+-# elif (defined(__PPC__) || defined(__PPC64__) || defined(__ppc__) || defined(__ppc64__))
++# elif (defined(__PPC__) || defined(__PPC64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc__))
  #   define CACHELINE_ALIGNED __attribute__((aligned(16)))
  # elif (defined(__arm__))
  #   define CACHELINE_ALIGNED __attribute__((aligned(64)))
Index: pkgsrc/devel/gperftools/patches/patch-src_symbolize.cc
diff -u pkgsrc/devel/gperftools/patches/patch-src_symbolize.cc:1.1 pkgsrc/devel/gperftools/patches/patch-src_symbolize.cc:1.2
--- pkgsrc/devel/gperftools/patches/patch-src_symbolize.cc:1.1  Thu Nov 28 12:19:58 2019
+++ pkgsrc/devel/gperftools/patches/patch-src_symbolize.cc      Thu Dec 26 17:17:42 2024
@@ -1,19 +1,19 @@
-$NetBSD: patch-src_symbolize.cc,v 1.1 2019/11/28 12:19:58 bouyer Exp $
+$NetBSD: patch-src_symbolize.cc,v 1.2 2024/12/26 17:17:42 adam Exp $
 
 Get program pathname from sysctl on NetBSD
 
---- src/symbolize.cc.orig      2017-12-09 17:29:18.000000000 +0100
-+++ src/symbolize.cc   2019-11-27 18:40:56.000000000 +0100
-@@ -60,7 +60,7 @@
- #include "base/commandlineflags.h"
+--- src/symbolize.cc.orig      2024-09-23 18:10:35.000000000 +0000
++++ src/symbolize.cc
+@@ -61,7 +61,7 @@
  #include "base/logging.h"
  #include "base/sysinfo.h"
+ #include "base/proc_maps_iterator.h"
 -#if defined(__FreeBSD__)
 +#if defined(__FreeBSD__) || defined(__NetBSD__)
  #include <sys/sysctl.h>
  #endif
  
-@@ -97,7 +97,7 @@
+@@ -141,7 +141,7 @@ static const char* GetProgramInvocationN
        return NULL;
    }
    return program_invocation_name;



Home | Main Index | Thread Index | Old Index