ports/127012: Update devel/ptmalloc to version 3

Pedro Giffuni giffunip at tutopia.com
Sun Aug 31 20:10:07 UTC 2008


>Number:         127012
>Category:       ports
>Synopsis:       Update devel/ptmalloc to version 3
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Sun Aug 31 20:10:06 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Pedro Giffuni
>Release:        7.0-Release
>Organization:
>Environment:
FreeBSD kakumen.cable.net.co 7.0-RELEASE-p3 FreeBSD 7.0-RELEASE-p3 #0: Fri Aug  8 16:42:27 COT 2008     root at kakumen.cable.net.co:/usr/src/sys/amd64/compile/GENERIC  amd64

>Description:
- Update to the new version 3: this version is newer than the one in glibc and apparently performs much better in the cases where we are likely to use it.
- Move the copyright/license to pkg-message, pkg-descr is not really meant for this.

>How-To-Repeat:
NOTE: This port is only used by graphics/xaralx, and only when jemalloc is not available so the dependency must be updated in that port: I did test xaralx with ptmalloc3 in my platform to avoid any possible incompatibility.
>Fix:
diff -ruN ptmalloc.orig/Makefile ptmalloc/Makefile
--- ptmalloc.orig/Makefile	2008-08-30 16:42:15.000000000 -0500
+++ ptmalloc/Makefile	2008-08-30 23:00:28.000000000 -0500
@@ -6,17 +6,18 @@
 # $FreeBSD: ports/devel/ptmalloc/Makefile,v 1.7 2008/08/21 07:08:31 vd Exp $
 
 PORTNAME=	ptmalloc
-PORTVERSION=	2.0
-PORTREVISION=	1
+PORTVERSION=	3.0
 CATEGORIES=	devel
 MASTER_SITES=	http://www.malloc.de/malloc/
-DISTNAME=	${PORTNAME}2-current
+DISTNAME=	${PORTNAME}3-current
 
 MAINTAINER=	giffunip at tutopia.com
 COMMENT=	Alternative threads-aware malloc
 
 USE_LD_CONFIG=	yes
-WRKSRC=	${WRKDIR}/${PORTNAME}2
+WRKSRC=	${WRKDIR}/${PORTNAME}3
+
+USE_GMAKE=	yes
 ALL_TARGET=	posix
 
 INCDIR=	include/${PORTNAME}
@@ -28,10 +29,10 @@
 
 do-install:	all
 	${MKDIR} ${PREFIX}/${INCDIR}
-	${INSTALL_DATA} ${WRKSRC}/malloc.h ${PREFIX}/${INCDIR}/
-	${INSTALL_DATA} ${WRKSRC}/malloc.so ${PREFIX}/lib/libptmalloc.so.2
-	${LN} -s ${PREFIX}/lib/ptmalloc.so.2 ${PREFIX}/lib/libptmalloc.so
-	${INSTALL_DATA} ${WRKSRC}/libmalloc.a ${PREFIX}/lib/libptmalloc.a
+	${INSTALL_DATA} ${WRKSRC}/malloc-2.8.3.h ${PREFIX}/${INCDIR}/
+	${INSTALL_DATA} ${WRKSRC}/libptmalloc3.a ${PREFIX}/lib/libptmalloc.a
+	${INSTALL_DATA} ${WRKSRC}/ptmalloc3.so ${PREFIX}/lib/libptmalloc.so.3
+	${LN} -s ${PREFIX}/lib/ptmalloc.so.3 ${PREFIX}/lib/libptmalloc.so
 
 regression-test: build
 	@cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE} check
diff -ruN ptmalloc.orig/distinfo ptmalloc/distinfo
--- ptmalloc.orig/distinfo	2008-08-30 16:42:15.000000000 -0500
+++ ptmalloc/distinfo	2008-08-15 01:39:12.000000000 -0500
@@ -1,3 +1,3 @@
-MD5 (ptmalloc2-current.tar.gz) = 3db9e72c01ce55da006cdc56b966d7fa
-SHA256 (ptmalloc2-current.tar.gz) = 46a5691b19557fde3c3b97c3d86649a40cf5a2a1f4129c37b360907dd1fbdd5a
-SIZE (ptmalloc2-current.tar.gz) = 78594
+MD5 (ptmalloc3-current.tar.gz) = c0b9dd5f16f8eae979166dc74b60015c
+SHA256 (ptmalloc3-current.tar.gz) = f353606f24a579597a1ff5b51009a45d75da047b3975d82c3f613f85bcf312db
+SIZE (ptmalloc3-current.tar.gz) = 82712
diff -ruN ptmalloc.orig/files/patch-Makefile ptmalloc/files/patch-Makefile
--- ptmalloc.orig/files/patch-Makefile	2008-08-30 16:42:15.000000000 -0500
+++ ptmalloc/files/patch-Makefile	2008-08-30 17:40:45.000000000 -0500
@@ -1,34 +1,32 @@
---- Makefile.orig	2006-06-05 06:13:57.000000000 -0500
-+++ Makefile	2008-06-17 20:56:10.000000000 -0500
-@@ -15,12 +15,12 @@
+--- Makefile.orig	2006-03-31 11:25:23.000000000 -0500
++++ Makefile	2008-08-30 17:37:37.000000000 -0500
+@@ -17,12 +17,12 @@
  TAR_FLAGS = --numeric-owner --exclude "*~" --exclude "debian/tmp*"
  
  #CC = /pkg/gcc-2.95.2-wg/bin/gcc
--CC = cc
+-CC = gcc
 +CC ?= cc
  
  SYS_FLAGS  =
--OPT_FLAGS  = -g -O # -O2
-+OPT_FLAGS  = -O2 # -O2
- WARN_FLAGS = #-Wall -Wstrict-prototypes
+-OPT_FLAGS  = -g -O2 #-O # -O2
++OPT_FLAGS  = -O2 #-O # -O2
+ WARN_FLAGS = -Wall -Wstrict-prototypes
 -SH_FLAGS   = -shared -fpic
 +SH_FLAGS   = -shared -fPIC
  
  INC_FLAGS  = -Isysdeps/generic
  
-@@ -35,6 +35,9 @@
- THR_FLAGS = -DUSE_TSD_DATA_HACK -D_REENTRANT
- THR_LIBS  = -lpthread
+@@ -44,17 +44,20 @@
+ MALLOC_OBJ = ptmalloc3.o malloc.o
+ LIB_MALLOC = libptmalloc3.a
  
 +# Target libraries
-+LIBS=	libmalloc.a malloc.so
++LIBS = libptmalloc3.a ptmalloc3.so
 +
- RM        = rm -f
- AR        = ar
- RANLIB    = ranlib
-@@ -46,12 +49,12 @@
+ T_SUF =
  TESTS = t-test1$(T_SUF) t-test2$(T_SUF) \
-         tst-mallocstate$(T_SUF) tst-mstats$(T_SUF)
+ 	tst-independent-alloc$(T_SUF)
+         #m-test1$(T_SUF) tst-mallocstate$(T_SUF) tst-mstats$(T_SUF)
  
 -CFLAGS = $(SYS_FLAGS) $(OPT_FLAGS) $(WARN_FLAGS) $(THR_FLAGS) $(INC_FLAGS)
 +CFLAGS += $(SYS_FLAGS) $(OPT_FLAGS) $(WARN_FLAGS) $(THR_FLAGS) $(INC_FLAGS)
@@ -39,14 +37,15 @@
 -all: $(LIB_MALLOC) $(TESTS)
 +all: $(LIBS) $(TESTS)
  
- malloc.o: malloc.c malloc.h
- 	$(CC) -c $(CFLAGS) $(M_FLAGS) $<
-@@ -102,7 +105,7 @@
- posix:
- 	$(MAKE) THR_FLAGS='-DUSE_TSD_DATA_HACK -D_REENTRANT' \
-  OPT_FLAGS='$(OPT_FLAGS)' SYS_FLAGS='$(SYS_FLAGS)' CC='$(CC)' \
-- INC_FLAGS='-Isysdeps/pthread -Isysdeps/generic -I.'
-+ INC_FLAGS='-Isysdeps/pthread -Isysdeps/generic -I.'	\
-  THR_LIBS=-lpthread
+ ptmalloc3.o: ptmalloc3.c malloc-2.8.3.h
+ 	$(CC) -c $(CFLAGS) $(M_FLAGS) -DMSPACES=1 $<
+@@ -72,6 +75,9 @@
+ libptmalloc3.so: $(MALLOC_OBJ)
+ 	$(CC) $(SH_FLAGS) $(CFLAGS) $(M_FLAGS) $(MALLOC_OBJ) -o $@
  
- # posix threads with explicit initialization.  Known to be needed on HPUX.
++ptmalloc3.so: ptmalloc3.c malloc-2.8.3.h
++	$(CC) $(SH_FLAGS) $(CFLAGS) $(M_FLAGS) ptmalloc3.c -o $@
++
+ again:
+ 	$(RM) $(TESTS)
+ 	$(MAKE) $(TESTS)
diff -ruN ptmalloc.orig/pkg-descr ptmalloc/pkg-descr
--- ptmalloc.orig/pkg-descr	2008-08-30 16:42:15.000000000 -0500
+++ ptmalloc/pkg-descr	2008-08-30 20:24:26.000000000 -0500
@@ -1,28 +1,14 @@
-ptmalloc is the original version of the malloc that was later included
-in GNU libc.  This version is also but *not* exclusively LGPL:
+This package is a modified version of Doug Lea's malloc-2.8.3
+implementation adapted for multiple threads, while trying to
+avoid lock contention as much as possible.
 
-  Copyright (c) 2001-2006 Wolfram Gloger
-  
-  Permission to use, copy, modify, distribute, and sell this software
-  and its documentation for any purpose is hereby granted without fee,
-  provided that (i) the above copyright notices and this permission
-  notice appear in all copies of the software and related
-  documentation, and (ii) the name of Wolfram Gloger may not be used
-  in any advertising or publicity relating to the software.
-  
-  THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
-  EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
-  WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
-  
-  IN NO EVENT SHALL WOLFRAM GLOGER BE LIABLE FOR ANY SPECIAL,
-  INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY
-  DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-  WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY
-  THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-  PERFORMANCE OF THIS SOFTWARE.
+As part of the GNU C library, the source files may be available under
+the GNU Library General Public License (see the comments in the
+files).  But as part of this stand-alone package, the code is also
+available under the (probably less restrictive) conditions described
+in the file 'COPYRIGHT'.  In any case, there is no warranty whatsoever
+for this package.
 
-This package comes with no documentation beyond a README, which isn't
-worth installing.  It appears that the GNU libc man page malloc(3)
-applies, but it's not included here for copyright reasons.
+This release was partly funded by Pixar Animation Studios.
 
 WWW: http://www.malloc.de/en/
diff -ruN ptmalloc.orig/pkg-message ptmalloc/pkg-message
--- ptmalloc.orig/pkg-message	1969-12-31 19:00:00.000000000 -0500
+++ ptmalloc/pkg-message	2008-08-30 18:39:56.000000000 -0500
@@ -0,0 +1,19 @@
+Copyright (c) 2001-2006 Wolfram Gloger
+
+Permission to use, copy, modify, distribute, and sell this software
+and its documentation for any purpose is hereby granted without fee,
+provided that (i) the above copyright notices and this permission
+notice appear in all copies of the software and related documentation,
+and (ii) the name of Wolfram Gloger may not be used in any advertising
+or publicity relating to the software.
+
+THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
+EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+IN NO EVENT SHALL WOLFRAM GLOGER BE LIABLE FOR ANY SPECIAL,
+INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY
+DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY
+OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list