Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 15 Jan 2014 19:52:55 +0000 (UTC)
From:      Matthias Andree <mandree@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r339812 - in head/devel/google-perftools: . files
Message-ID:  <201401151952.s0FJqtAc097387@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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%%



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201401151952.s0FJqtAc097387>