Bug 185797 - [MAINTAINER UPDATE] devel/google-perftools to 2.1
Summary: [MAINTAINER UPDATE] devel/google-perftools to 2.1
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Matthias Andree
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-01-15 11:30 UTC by Yuri Victorovich
Modified: 2014-01-15 20:00 UTC (History)
0 users

See Also:


Attachments
file.diff (7.07 KB, patch)
2014-01-15 11:30 UTC, Yuri Victorovich
no flags Details | Diff
patch-perftools-2.1.patch (7.11 KB, patch)
2014-01-15 11:51 UTC, yuri
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Yuri Victorovich freebsd_committer freebsd_triage 2014-01-15 11:30:00 UTC
Update to 2.1, also fixing build issues on 10 and 11

Fix: Patch attached with submission follows:
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2014-01-15 11:30:08 UTC
Maintainer of devel/google-perftools,

Please note that PR ports/185797 has just been submitted.

If it contains a patch for an upgrade, an enhancement or a bug fix
you agree on, reply to this email stating that you approve the patch
and a committer will take care of it.

The full text of the PR can be found at:
    http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/185797

-- 
Edwin Groothuis via the GNATS Auto Assign Tool
edwin@FreeBSD.org
Comment 2 Edwin Groothuis freebsd_committer freebsd_triage 2014-01-15 11:30:09 UTC
State Changed
From-To: open->feedback

Awaiting maintainers feedback (via the GNATS Auto Assign Tool)
Comment 3 yuri 2014-01-15 11:51:49 UTC
Updated patch. Fixed DOCS part.

Please check it in ASAP. It will fix 10 package build.
Comment 4 Matthias Andree freebsd_committer freebsd_triage 2014-01-15 19:00:28 UTC
Responsible Changed
From-To: freebsd-ports-bugs->mandree

I'll take it.
Comment 5 Matthias Andree freebsd_committer freebsd_triage 2014-01-15 19:33:45 UTC
State Changed
From-To: feedback->open
Comment 6 dfilter service freebsd_committer freebsd_triage 2014-01-15 19:53:03 UTC
Author: mandree
Date: Wed Jan 15 19:52:54 2014
New Revision: 339812
URL: http://svnweb.freebsd.org/changeset/ports/339812
QAT: https://qat.redports.org/buildarchive/r339812/

Log:
  Maintainer upgrade to a new version. Also fixes FreeBSD 10+ build
  failures.
  
  Note I have revised the Makefile, and I have also added USE_GCC=any
  because we get considerably more "make check" failures with clang.
  
  PR:		ports/185261
  PR:		ports/185797
  Submitted by:	Yuri <yuri@rawbw.com> (maintainer)

Added:
  head/devel/google-perftools/files/patch-malloc_hook_mmap_freebsd.h   (contents, props changed)
  head/devel/google-perftools/files/patch-static_vars.cc   (contents, props changed)
Modified:
  head/devel/google-perftools/Makefile   (contents, props changed)
  head/devel/google-perftools/distinfo   (contents, props changed)
  head/devel/google-perftools/files/patch-pprof   (contents, props changed)
  head/devel/google-perftools/pkg-plist   (contents, props changed)

Modified: head/devel/google-perftools/Makefile
==============================================================================
--- head/devel/google-perftools/Makefile	Wed Jan 15 19:50:34 2014	(r339811)
+++ head/devel/google-perftools/Makefile	Wed Jan 15 19:52:54 2014	(r339812)
@@ -2,27 +2,37 @@
 # $FreeBSD$
 
 PORTNAME=	google-perftools
-PORTVERSION=	1.8.3
+PORTVERSION=	2.1
 CATEGORIES=	devel
 MASTER_SITES=	${MASTER_SITE_GOOGLE_CODE} \
 		${MASTER_SITE_LOCAL}
 MASTER_SITE_SUBDIR=	vd/${PORTNAME}
+DISTNAME=	gperftools-${PORTVERSION}
 
 MAINTAINER=	yuri@tsoft.com
 COMMENT=	Fast, multi-threaded malloc() and nifty performance analysis tools
 
+LICENSE=	BSD3CLAUSE
+LICENSE_FILE=	${WRKSRC}/COPYING
+
+PROJECTHOST=	gperftools
+
+WRKSRC=		${WRKDIR}/gperftools-${PORTVERSION}
+DOCSDIR=	${PREFIX}/share/doc/gperftools
+
+BUILD_DEPENDS+=	${LOCALBASE}/include/execinfo.h:${PORTSDIR}/devel/libexecinfo
+LIB_DEPENDS+=	libexecinfo.so:${PORTSDIR}/devel/libexecinfo
+
 GNU_CONFIGURE=	yes
+USE_GCC=	any # clang causes 7 more test case failures in "make check"
 USE_LDCONFIG=	yes
-MAN1=		pprof.1
 
-LICENSE=	BSD
-LICENSE_FILE=	${WRKSRC}/COPYING
+CONFIGURE_ARGS+=CPPFLAGS=-I${LOCALBASE}/include LIBS=-lexecinfo LDFLAGS=-L${LOCALBASE}/lib
 
-USES=	pathfix
+.include <bsd.port.options.mk>
 
-NO_STAGE=	yes
 post-patch:
-.if defined(NOPORTDOCS)
+.if empty(PORT_OPTIONS:MDOCS)
 	${REINPLACE_CMD} -e \
 		'/^install-data-am:/ s|install-dist_docDATA||' \
 		${WRKSRC}/Makefile.in
@@ -30,10 +40,14 @@ post-patch:
 
 post-build:
 	@${ECHO}
-	@${ECHO} "Please run 'make check' and verify there are no failing testcases on your system."
+	@${ECHO} "Please run 'make check'. Two testcases are known to fail."
 	@${ECHO} "Report any testcase failures to http://code.google.com/p/google-perftools/issues/list"
 	@${ECHO}
 
+post-install:
+	${MKDIR} ${STAGEDIR}${PREFIX}/libdata
+	${MV} ${STAGEDIR}${PREFIX}/lib/pkgconfig ${STAGEDIR}${PREFIX}/libdata
+
 # four of the tests are known to fail on 7.0, uncomment this as soon as this is fixed
 #regression-test: check
 

Modified: head/devel/google-perftools/distinfo
==============================================================================
--- head/devel/google-perftools/distinfo	Wed Jan 15 19:50:34 2014	(r339811)
+++ head/devel/google-perftools/distinfo	Wed Jan 15 19:52:54 2014	(r339812)
@@ -1,2 +1,2 @@
-SHA256 (google-perftools-1.8.3.tar.gz) = 6ad744b34abb24312631740d9912f4667993b02e5f59b91246c31a2a911a9d59
-SIZE (google-perftools-1.8.3.tar.gz) = 1265062
+SHA256 (gperftools-2.1.tar.gz) = f3ade29924f89409d8279ab39e00af7420593baa4941c318db42e70ead7e494f
+SIZE (gperftools-2.1.tar.gz) = 1319896

Added: head/devel/google-perftools/files/patch-malloc_hook_mmap_freebsd.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/google-perftools/files/patch-malloc_hook_mmap_freebsd.h	Wed Jan 15 19:52:54 2014	(r339812)
@@ -0,0 +1,58 @@
+--- src/malloc_hook_mmap_freebsd.h	2014-01-15 00:52:17.000000000 -0800
++++ src/malloc_hook_mmap_freebsd.h	2014-01-15 01:12:48.000000000 -0800
+@@ -39,6 +39,7 @@
+ #include <sys/syscall.h>
+ #include <sys/mman.h>
+ #include <errno.h>
++#include <dlfcn.h>
+ 
+ // Make sure mmap doesn't get #define'd away by <sys/mman.h>
+ #undef mmap
+@@ -73,43 +74,11 @@
+ }
+ 
+ static inline void* do_sbrk(intptr_t increment) {
+-  void* curbrk = 0;
++  static void *(*libc_sbrk)(intptr_t);
++  if (libc_sbrk == NULL)
++    libc_sbrk = (void *(*)(intptr_t))dlsym(RTLD_NEXT, "sbrk");
+ 
+-#if defined(__x86_64__) || defined(__amd64__)
+-# ifdef PIC
+-  __asm__ __volatile__(
+-      "movq .curbrk@GOTPCREL(%%rip), %%rdx;"
+-      "movq (%%rdx), %%rax;"
+-      "movq %%rax, %0;"
+-      : "=r" (curbrk)
+-      :: "%rdx", "%rax");
+-# else
+-  __asm__ __volatile__(
+-      "movq .curbrk(%%rip), %%rax;"
+-      "movq %%rax, %0;"
+-      : "=r" (curbrk)
+-      :: "%rax");
+-# endif
+-#else
+-  __asm__ __volatile__(
+-      "movl .curbrk, %%eax;"
+-      "movl %%eax, %0;"
+-      : "=r" (curbrk)
+-      :: "%eax");
+-#endif
+-
+-  if (increment == 0) {
+-    return curbrk;
+-  }
+-
+-  char* prevbrk = static_cast<char*>(curbrk);
+-  void* newbrk = prevbrk + increment;
+-
+-  if (brk(newbrk) == -1) {
+-    return reinterpret_cast<void*>(static_cast<intptr_t>(-1));
+-  }
+-
+-  return prevbrk;
++  return libc_sbrk(increment);
+ }
+ 
+ 

Modified: head/devel/google-perftools/files/patch-pprof
==============================================================================
--- head/devel/google-perftools/files/patch-pprof	Wed Jan 15 19:50:34 2014	(r339811)
+++ head/devel/google-perftools/files/patch-pprof	Wed Jan 15 19:52:54 2014	(r339812)
@@ -1,6 +1,19 @@
---- src/pprof.orig	2010-06-16 19:42:24.000000000 -0700
-+++ src/pprof	2010-06-16 19:43:19.000000000 -0700
-@@ -3369,7 +3369,7 @@
+--- src/pprof.orig	2012-02-03 15:39:48.000000000 -0800
++++ src/pprof	2013-05-03 10:29:08.000000000 -0700
+@@ -752,10 +752,9 @@
+   # (Stop once we find one.)
+   # Works best if the browser is already running.
+   my @alt = (
+-    "/etc/alternatives/gnome-www-browser",
+-    "/etc/alternatives/x-www-browser",
+-    "google-chrome",
++    "chrome",
+     "firefox",
++    "opera"
+   );
+   foreach my $b (@alt) {
+     if (system($b, $fname) == 0) {
+@@ -4345,7 +4344,7 @@
      my $finish;
      my $offset;
      my $lib;
@@ -9,4 +22,3 @@
        # Full line from /proc/self/maps.  Example:
        #   40000000-40015000 r-xp 00000000 03:01 12845071   /lib/ld-2.3.2.so
        $start = HexExtend($1);
-

Added: head/devel/google-perftools/files/patch-static_vars.cc
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/google-perftools/files/patch-static_vars.cc	Wed Jan 15 19:52:54 2014	(r339812)
@@ -0,0 +1,10 @@
+--- src/static_vars.cc	2014-01-14 17:23:28.000000000 -0800
++++ src/static_vars.cc	2014-01-14 17:28:39.000000000 -0800
+@@ -37,6 +37,7 @@
+ #include "common.h"
+ #include "sampler.h"           // for Sampler
+ #include "base/googleinit.h"
++#include <pthread.h>
+ 
+ namespace tcmalloc {
+ 

Modified: head/devel/google-perftools/pkg-plist
==============================================================================
--- head/devel/google-perftools/pkg-plist	Wed Jan 15 19:50:34 2014	(r339811)
+++ head/devel/google-perftools/pkg-plist	Wed Jan 15 19:52:54 2014	(r339812)
@@ -8,35 +8,45 @@ 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
+include/gperftools/malloc_extension_c.h
+include/gperftools/malloc_hook.h
+include/gperftools/malloc_hook_c.h
+include/gperftools/profiler.h
+include/gperftools/stacktrace.h
+include/gperftools/tcmalloc.h
 lib/libprofiler.a
 lib/libprofiler.la
 lib/libprofiler.so
-lib/libprofiler.so.1
+lib/libprofiler.so.3
 lib/libtcmalloc.a
 lib/libtcmalloc.la
 lib/libtcmalloc.so
-lib/libtcmalloc.so.2
+lib/libtcmalloc.so.5
 lib/libtcmalloc_and_profiler.a
 lib/libtcmalloc_and_profiler.la
 lib/libtcmalloc_and_profiler.so
-lib/libtcmalloc_and_profiler.so.2
+lib/libtcmalloc_and_profiler.so.5
 lib/libtcmalloc_debug.a
 lib/libtcmalloc_debug.la
 lib/libtcmalloc_debug.so
-lib/libtcmalloc_debug.so.2
+lib/libtcmalloc_debug.so.5
 lib/libtcmalloc_minimal.a
 lib/libtcmalloc_minimal.la
 lib/libtcmalloc_minimal.so
-lib/libtcmalloc_minimal.so.2
+lib/libtcmalloc_minimal.so.5
 lib/libtcmalloc_minimal_debug.a
 lib/libtcmalloc_minimal_debug.la
 lib/libtcmalloc_minimal_debug.so
-lib/libtcmalloc_minimal_debug.so.2
+lib/libtcmalloc_minimal_debug.so.5
 libdata/pkgconfig/libprofiler.pc
 libdata/pkgconfig/libtcmalloc.pc
 libdata/pkgconfig/libtcmalloc_debug.pc
 libdata/pkgconfig/libtcmalloc_minimal.pc
 libdata/pkgconfig/libtcmalloc_minimal_debug.pc
+man/man1/pprof.1.gz
 %%PORTDOCS%%%%DOCSDIR%%/AUTHORS
 %%PORTDOCS%%%%DOCSDIR%%/ChangeLog
 %%PORTDOCS%%%%DOCSDIR%%/INSTALL
@@ -86,5 +96,6 @@ libdata/pkgconfig/libtcmalloc_minimal_de
 %%PORTDOCS%%%%DOCSDIR%%/tcmalloc.html
 %%PORTDOCS%%%%DOCSDIR%%/threadheap.dot
 %%PORTDOCS%%%%DOCSDIR%%/threadheap.gif
+@dirrmtry include/gperftools
 @dirrmtry include/google
 %%PORTDOCS%%@dirrm %%DOCSDIR%%
_______________________________________________
svn-ports-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-ports-all
To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
Comment 7 Matthias Andree freebsd_committer freebsd_triage 2014-01-15 19:53:54 UTC
State Changed
From-To: open->closed

Maintainer update committed, with changes as described in the PRs and 
commit log entry.