Skip site navigation (1)Skip section navigation (2)
Date:      26 Jan 2006 22:05:05 -0000
From:      Dan Rench <citric@cubicone.tmetic.com>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   ports/92396: Spidermonkey fixes for 64 bit platforms
Message-ID:  <20060126220505.18999.qmail@host.tmetic.com>
Resent-Message-ID: <200601262210.k0QMA2aU056489@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         92396
>Category:       ports
>Synopsis:       Spidermonkey fixes for 64 bit platforms
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jan 26 22:10:02 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Dan Rench
>Release:        6.0-STABLE
>Organization:
>Environment:
System: FreeBSD shocklee.i.dren.ch 6.0-STABLE FreeBSD 6.0-STABLE #0: Sun Jan  8 00:29:43 CST 2006     root@shocklee.i.dren.ch:/usr/obj/usr/src/sys/GENERIC  i386

>Description:
A new version of the port which should fix 64 bit build problems
(much thanks again to Anish Mistry)
A followup to http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/91522
>How-To-Repeat:

>Fix:

# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	spidermonkey
#	spidermonkey/Makefile
#	spidermonkey/distinfo
#	spidermonkey/pkg-descr
#	spidermonkey/pkg-plist
#	spidermonkey/files
#	spidermonkey/files/patch-jstypes.h
#	spidermonkey/files/patch-config
#	spidermonkey/files/patch-warnings
#	spidermonkey/files/patch-jsopcode.c
#	spidermonkey/files/patch-jslock.c
#	spidermonkey/files/patch-jscntxt.c
#
echo c - spidermonkey
mkdir -p spidermonkey > /dev/null 2>&1
echo x - spidermonkey/Makefile
sed 's/^X//' >spidermonkey/Makefile << 'END-of-spidermonkey/Makefile'
X# Ports collection makefile for:	spidermonkey
X# Date created:	Fri Apr 18, 2003
X# Whom:	Dan Rench (citric@cubicone.tmetic.com)
X#
X# $FreeBSD: ports/lang/spidermonkey/Makefile,v 1.13 2006/01/10 23:36:54 edwin Exp $
X
XPORTNAME=	spidermonkey
XDISTVERSION=	1.5
XPORTREVISION=	1
XCATEGORIES=	lang
XMASTER_SITES=	${MASTER_SITE_MOZILLA:S/$/:src/} \
X		${MASTER_SITE_MOZILLA:S/$/:older/}
XMASTER_SITE_SUBDIR=	js/:src js/older-packages/:older
XDISTNAME=	js-${DISTVERSION}
XDISTFILES=	${DISTNAME}${EXTRACT_SUFX}:src
X
XMAINTAINER=	citric@cubicone.tmetic.com
XCOMMENT=	A standalone JavaScript interpreter from the Mozilla project
X
XCONFLICTS=	njs-[0-9]*
X
X.if !defined(WITHOUT_TEST)
XUSE_PERL5_BUILD=test harness
XPATCHFILES=	spidermonkey-patch-tests-ecma.bz2	\
X		spidermonkey-patch-tests-timezone.bz2	\
X		spidermonkey-patch-tests-js.bz2
XPATCH_SITES=	http://virtual-estates.net/~mi/port-stuff/
XBUILD_DEPENDS+=	${SITE_PERL}/Getopt/Mixed.pm:${PORTSDIR}/devel/p5-Getopt-Mixed
XLIB_DEPENDS=	nspr4.1:${PORTSDIR}/devel/nspr
XMAKE_ARGS+=	JS_THREADSAFE=YES \
X		PROG_LIBS="-lreadline -ltermcap -lm ${PTHREAD_LIBS}" \
X		LDFLAGS="-L${LOCALBASE}/lib"
XCFLAGS+=	-I${LOCALBASE}/include/nspr
X
XDISTFILES+=	js-tests-20021118${EXTRACT_SUFX}:older
Xpost-build:	test
Xpost-patch:
X	#
X	# Removing known bad tests:
X	#	https://bugzilla.mozilla.org/show_bug.cgi?id=10278
X	#	https://bugzilla.mozilla.org/show_bug.cgi?id=101964
X	#
X	cd ${WRKDIR}/tests && ${RM} js1_3/regress/function-001-n.js	\
X		js1_2/function/function-001-n.js	\
X		js1_3/Script/function-001-n.js	\
X		js1_5/Array/regress-101964.js
X
X.endif
X
XUSE_GMAKE=	YES
XMAKEFILE=	Makefile.ref
XALL_TARGET=	${OPSYS}`${UNAME} -r`_DBG.OBJ/js
XMAKE_ENV+=	CC="${CC}" CCC="${CXX}"
XINSTALLS_SHLIB=	YES
XSRC_DIR=	js/src
XWRKSRC=	${WRKDIR}/${SRC_DIR}
XEXTRACT_AFTER_ARGS=| ${TAR} -xf - \
X		--exclude js/jsd	\
X		--exclude ${SRC_DIR}/editline	\
X		--exclude ${SRC_DIR}/fdlibm	\
X		--exclude ${SRC_DIR}/liveconnect	\
X		--exclude ${SRC_DIR}/perlconnect
X
Xtest:
X	cd ${WRKDIR}/tests && ${SETENV}	\
X	    LD_LIBRARY_PATH=${WRKSRC}/${OPSYS}`${UNAME} -r`_DBG.OBJ	\
X		${PERL5} jsDriver.pl	\
X		    --shellpath ${WRKSRC}/${OPSYS}`${UNAME} -r`_DBG.OBJ/js \
X		    --engine smdebug --confail --trace --list ecma* js1_*
X
X.include <bsd.port.pre.mk>
X
Xdo-configure:
X	${CP} ${WRKSRC}/config/Linux_All.mk \
X		${WRKSRC}/config/${OPSYS}`${UNAME} -r`.mk && \
X
Xdo-install:
X	${INSTALL_PROGRAM} ${WRKSRC}/${OPSYS}`${UNAME} -r`_DBG.OBJ/js \
X		${PREFIX}/bin
X	${INSTALL_PROGRAM} ${WRKSRC}/${OPSYS}`${UNAME} -r`_DBG.OBJ/libjs.so \
X		${PREFIX}/lib
X	${CP} ${WRKSRC}/${OPSYS}`${UNAME} -r`_DBG.OBJ/jsautocfg.h ${WRKSRC}
X.for jsh in jsapi.h jsautocfg.h jscompat.h jslong.h jsosdep.h jsotypes.h jspubtd.h jstypes.h
X	@${INSTALL_DATA} ${WRKSRC}/${jsh} ${PREFIX}/include/
X.endfor
X
X.include <bsd.port.post.mk>
END-of-spidermonkey/Makefile
echo x - spidermonkey/distinfo
sed 's/^X//' >spidermonkey/distinfo << 'END-of-spidermonkey/distinfo'
XMD5 (js-1.5.tar.gz) = 863bb6462f4ce535399a7c6276ae6776
XSHA256 (js-1.5.tar.gz) = ef72a154320c9949f8de0732e8dbfa186b83feb0a5e890d90807757de9998585
XSIZE (js-1.5.tar.gz) = 958135
XMD5 (js-tests-20021118.tar.gz) = df89464084e583a075a782ad66da5370
XSHA256 (js-tests-20021118.tar.gz) = 75878c90ed8641aaddcf4cb0b277353c6e7be31e6539beffa44f33bdfe69181f
XSIZE (js-tests-20021118.tar.gz) = 803198
XMD5 (spidermonkey-patch-tests-ecma.bz2) = 73ec1e37821deff69e68eac2192a2cd2
XSHA256 (spidermonkey-patch-tests-ecma.bz2) = 9f6ef721145e12bfca1a8ecdd0e8692fc916fef792927d9503bd40bb86f15f21
XSIZE (spidermonkey-patch-tests-ecma.bz2) = 5702
XMD5 (spidermonkey-patch-tests-timezone.bz2) = 9b392c970d878f3defcd7e3e7ddeb0b5
XSHA256 (spidermonkey-patch-tests-timezone.bz2) = 94322a6541303ac66ffad5cdfdc4af8d5ec14ce74c2dc4709736941abd4bd8bf
XSIZE (spidermonkey-patch-tests-timezone.bz2) = 7658
XMD5 (spidermonkey-patch-tests-js.bz2) = 20770d4e82fff61c1bbb5ff91d2551ec
XSHA256 (spidermonkey-patch-tests-js.bz2) = f930c31005778eeb40f4d3fa10a6d65ab2991c95c990c60712f9d2696c041088
XSIZE (spidermonkey-patch-tests-js.bz2) = 3685
END-of-spidermonkey/distinfo
echo x - spidermonkey/pkg-descr
sed 's/^X//' >spidermonkey/pkg-descr << 'END-of-spidermonkey/pkg-descr'
XSpidermonkey is the JavaScript interpreter from the Mozilla project.
X
XWWW: http://www.mozilla.org/js/spidermonkey/
X
X- Dan Rench
Xcitric@cubicone.tmetic.com
END-of-spidermonkey/pkg-descr
echo x - spidermonkey/pkg-plist
sed 's/^X//' >spidermonkey/pkg-plist << 'END-of-spidermonkey/pkg-plist'
Xbin/js
Xlib/libjs.so
Xinclude/jsapi.h
Xinclude/jsautocfg.h
Xinclude/jscompat.h
Xinclude/jslong.h
Xinclude/jsosdep.h
Xinclude/jsotypes.h
Xinclude/jspubtd.h
Xinclude/jstypes.h
END-of-spidermonkey/pkg-plist
echo c - spidermonkey/files
mkdir -p spidermonkey/files > /dev/null 2>&1
echo x - spidermonkey/files/patch-jstypes.h
sed 's/^X//' >spidermonkey/files/patch-jstypes.h << 'END-of-spidermonkey/files/patch-jstypes.h'
X--- jstypes.h.orig	Sat Nov 15 00:11:04 2003
X+++ jstypes.h	Sat Jan 14 02:17:40 2006
X@@ -203,6 +203,19 @@
X #define JS_BITMASK(n)   (JS_BIT(n) - 1)
X 
X /***********************************************************************
X+** MACROS:      JS_PTR_TO_INT32
X+**              JS_PTR_TO_UINT32
X+**              JS_INT32_TO_PTR
X+**              JS_UINT32_TO_PTR
X+** DESCRIPTION:
X+** Integer to pointer and pointer to integer conversion macros.
X+***********************************************************************/
X+#define JS_PTR_TO_INT32(x)  ((jsint)((char *)(x) - (char *)0))
X+#define JS_PTR_TO_UINT32(x) ((jsuint)((char *)(x) - (char *)0))
X+#define JS_INT32_TO_PTR(x)  ((void *)((char *)0 + (jsint)(x)))
X+#define JS_UINT32_TO_PTR(x) ((void *)((char *)0 + (jsuint)(x)))
X+
X+/***********************************************************************
X ** MACROS:      JS_HOWMANY
X **              JS_ROUNDUP
X **              JS_MIN
END-of-spidermonkey/files/patch-jstypes.h
echo x - spidermonkey/files/patch-config
sed 's/^X//' >spidermonkey/files/patch-config << 'END-of-spidermonkey/files/patch-config'
X--- Makefile.ref	Fri Nov 14 19:10:55 2003
X+++ Makefile.ref	Sat Aug  6 12:25:36 2005
X@@ -56,6 +56,4 @@
X ifdef USE_MSVC
X OTHER_LIBS += fdlibm/$(OBJDIR)/fdlibm.lib
X-else
X-OTHER_LIBS += -Lfdlibm/$(OBJDIR) -lfdm
X endif
X 
X@@ -242,10 +240,6 @@
X 	$(NULL)
X 
X-PREDIRS	+= fdlibm
X-
X ifdef USE_MSVC
X FDLIBM_LIBRARY = fdlibm/$(OBJDIR)/fdlibm.lib
X-else
X-FDLIBM_LIBRARY = fdlibm/$(OBJDIR)/libfdm.a
X endif
X JSMATH_PRELINK	= $(OBJDIR)/jsmathtemp.o
X@@ -301,6 +295,6 @@
X 	link.exe -out:"$@" $(EXE_LINK_FLAGS) $^
X else
X-$(PROGRAM): $(PROG_OBJS) $(LIBRARY) $(FDLIBM_LIBRARY)
X-	$(CC) -o $@ $(CFLAGS) $(PROG_OBJS) $(LIBRARY) $(LDFLAGS) $(OTHER_LIBS) \
X+$(PROGRAM): $(PROG_OBJS) $(SHARED_LIBRARY) $(FDLIBM_LIBRARY)
X+	$(CC) -o $@ $(CFLAGS) $(PROG_OBJS) -L$(OBJDIR) -ljs $(LDFLAGS) $(OTHER_LIBS) \
X 	    $(PROG_LIBS)
X endif
X--- config/Linux_All.mk.orig	Tue May 10 15:53:44 2005
X+++ config/Linux_All.mk	Sat Dec 10 21:17:45 2005
X@@ -41,9 +41,9 @@
X # Config for all versions of Linux
X #
X 
X-CC = gcc
X-CCC = g++
X-CFLAGS +=  -Wall -Wno-format
X+CC ?= gcc
X+CCC ?= g++
X+CFLAGS +=  -Wall -Werror	# XXX do these work with non-gcc and non-icc?
X OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DHAVE_LOCALTIME_R
X 
X RANLIB = echo
X@@ -74,7 +74,7 @@
X 
X GFX_ARCH = x
X 
X-OS_LIBS = -lm -lc
X+OS_LIBS = -lm
X 
X ASFLAGS += -x assembler-with-cpp
X 
X@@ -88,16 +88,12 @@
X endif
X 
X # Use the editline library to provide line-editing support.
X-JS_EDITLINE = 1
X+JS_READLINE = 1
X 
X-ifeq ($(CPU_ARCH),x86_64)
X-# Use VA_COPY() standard macro on x86-64
X-# FIXME: better use it everywhere
X OS_CFLAGS += -DHAVE_VA_COPY -DVA_COPY=va_copy
X-endif
X 
X-ifeq ($(CPU_ARCH),x86_64)
X-# We need PIC code for shared libraries
X-# FIXME: better patch rules.mk & fdlibm/Makefile*
X+ifeq ($(CPU_ARCH),sparc64)
X OS_CFLAGS += -DPIC -fPIC
X+else
X+OS_CFLAGS += -DPIC -fpic
X endif
X--- rules.mk	Fri Nov 14 19:11:04 2003
X+++ rules.mk	Mon Aug  8 14:40:36 2005
X@@ -59,5 +59,5 @@
X TARGETS += $(SHARED_LIBRARY) $(PROGRAM)  # it is now
X else
X-TARGETS += $(LIBRARY) $(SHARED_LIBRARY) $(PROGRAM) 
X+TARGETS += $(SHARED_LIBRARY) $(PROGRAM) 
X endif
X 
END-of-spidermonkey/files/patch-config
echo x - spidermonkey/files/patch-warnings
sed 's/^X//' >spidermonkey/files/patch-warnings << 'END-of-spidermonkey/files/patch-warnings'
X--- jspubtd.h	Thu Apr  7 15:54:07 2005
X+++ jspubtd.h	Thu Aug  4 23:52:12 2005
X@@ -517,5 +517,5 @@
X (* JS_DLL_CALLBACK JSArgumentFormatter)(JSContext *cx, const char *format,
X                                         JSBool fromJS, jsval **vpp,
X-                                        va_list *app);
X+                                        va_list app);
X #endif
X 
X--- jsdhash.c	Wed Jan 14 21:00:53 2004
X+++ jsdhash.c	Fri Aug  5 00:15:04 2005
X@@ -92,5 +92,5 @@
X JS_DHashVoidPtrKeyStub(JSDHashTable *table, const void *key)
X {
X-    return (JSDHashNumber)key >> 2;
X+    return (JSDHashNumber)(uintptr_t)key >> 2;
X }
X 
X--- jsstr.c	Fri Jun  3 15:07:49 2005
X+++ jsstr.c	Fri Aug  5 01:31:08 2005
X@@ -2596,5 +2596,5 @@
X js_hash_string_pointer(const void *key)
X {
X-    return (JSHashNumber)key >> JSVAL_TAGBITS;
X+    return (JSHashNumber)(uintptr_t)key >> JSVAL_TAGBITS;
X }
X 
X--- jsobj.h	Wed Sep  1 17:33:16 2004
X+++ jsobj.h	Fri Aug  5 01:16:56 2005
X@@ -238,12 +238,12 @@
X };
X 
X-#define SHARP_BIT       ((jsatomid) 1)
X-#define BUSY_BIT        ((jsatomid) 2)
X+#define SHARP_BIT       ((uintptr_t) 1)
X+#define BUSY_BIT        ((uintptr_t) 2)
X #define SHARP_ID_SHIFT  2
X-#define IS_SHARP(he)    ((jsatomid)(he)->value & SHARP_BIT)
X-#define MAKE_SHARP(he)  ((he)->value = (void*)((jsatomid)(he)->value|SHARP_BIT))
X-#define IS_BUSY(he)     ((jsatomid)(he)->value & BUSY_BIT)
X-#define MAKE_BUSY(he)   ((he)->value = (void*)((jsatomid)(he)->value|BUSY_BIT))
X-#define CLEAR_BUSY(he)  ((he)->value = (void*)((jsatomid)(he)->value&~BUSY_BIT))
X+#define IS_SHARP(he)    ((uintptr_t)(he)->value & SHARP_BIT)
X+#define MAKE_SHARP(he)  ((he)->value = (void*)((uintptr_t)(he)->value|SHARP_BIT))
X+#define IS_BUSY(he)     ((uintptr_t)(he)->value & BUSY_BIT)
X+#define MAKE_BUSY(he)   ((he)->value = (void*)((uintptr_t)(he)->value|BUSY_BIT))
X+#define CLEAR_BUSY(he)  ((he)->value = (void*)((uintptr_t)(he)->value&~BUSY_BIT))
X 
X extern JSHashEntry *
X--- jstypes.h	Fri Nov 14 19:11:04 2003
X+++ jstypes.h	Thu Aug  4 23:54:13 2005
X@@ -378,6 +378,7 @@
X ** A JSWord is an integer that is the same size as a void*
X */
X+#include <inttypes.h>
X-typedef long JSWord;
X-typedef unsigned long JSUword;
X+typedef intptr_t JSWord;
X+typedef uintptr_t JSUword;
X 
X #include "jsotypes.h"
X--- jsosdep.h	Fri Nov 14 19:10:59 2003
X+++ jsosdep.h	Fri Aug  5 00:50:44 2005
X@@ -102,5 +102,5 @@
X #define JS_HAVE_LONG_LONG
X 
X-#elif defined(FREEBSD)
X+#elif defined(FREEBSD) || defined(__FreeBSD__)
X #define JS_HAVE_LONG_LONG
X 
X--- jsdtoa.c	Sat Apr  3 17:11:11 2004
X+++ jsdtoa.c	Fri Aug  5 00:28:15 2005
X@@ -258,5 +258,5 @@
X #define set_word1(x, y) JSDOUBLE_SET_LO32(x, y)
X 
X-#define Storeinc(a,b,c) (*(a)++ = (b) << 16 | (c) & 0xffff)
X+#define Storeinc(a,b,c) (*(a)++ = (b) << 16 | ((c) & 0xffff))
X 
X /* #define P DBL_MANT_DIG */
X@@ -990,5 +990,6 @@
X {
X     register Long L;
X-    double a;
X+    double a = 0.;	/* only need to initialize to calm the compiler.
X+			 * set_word0 and set_word1 set a, but in two stages */
X 
X     L = (word0(x) & Exp_mask) - (P-1)*Exp_msk1;
X@@ -1021,5 +1022,5 @@
X     ULong *xa, *xa0, w, y, z;
X     int32 k;
X-    double d;
X+    double d = 0.;
X #define d0 word0(d)
X #define d1 word1(d)
X@@ -1837,4 +1838,5 @@
X #ifdef Avoid_Underflow
X     if (scale) {
X+        rv0 = 0.; /* calm the compiler warning */
X         set_word0(rv0, Exp_1 - P*Exp_msk1);
X         set_word1(rv0, 0);
X--- jsatom.h	Wed Feb 11 02:21:59 2004
X+++ jsatom.h	Fri Aug  5 01:21:44 2005
X@@ -96,5 +96,5 @@
X 
X #define ALE_ATOM(ale)   ((JSAtom *) (ale)->entry.key)
X-#define ALE_INDEX(ale)  ((jsatomid) (ale)->entry.value)
X+#define ALE_INDEX(ale)  ((jsatomid)(uintptr_t)(ale)->entry.value)
X #define ALE_JSOP(ale)   ((JSOp) (ale)->entry.value)
X #define ALE_VALUE(ale)  ((jsval) (ale)->entry.value)
X--- jsatom.c	Tue Jul  6 03:49:18 2004
X+++ jsatom.c	Fri Aug  5 01:23:29 2005
X@@ -137,5 +137,5 @@
X #endif
X 
X-#define HASH_OBJECT(o)  ((JSHashNumber)(o) >> JSVAL_TAGBITS)
X+#define HASH_OBJECT(o)  ((JSHashNumber)(uintptr_t)(o) >> JSVAL_TAGBITS)
X #define HASH_INT(i)     ((JSHashNumber)(i))
X #define HASH_DOUBLE(dp) ((JSHashNumber)(JSDOUBLE_HI32(*dp) ^ JSDOUBLE_LO32(*dp)))
X@@ -834,5 +834,5 @@
X         }
X 
X-        ALE_SET_INDEX(ale, al->count++);
X+        ALE_SET_INDEX(ale, (intptr_t)al->count++);
X     }
X     return ale;
X--- jsscript.c	Fri Jul  8 21:48:08 2005
X+++ jsscript.c	Fri Aug  5 01:29:26 2005
X@@ -322,5 +322,5 @@
X     if (!JS_XDRUint32(xdr, &index))
X         return JS_FALSE;
X-    ALE_SET_INDEX(ale, index);
X+    ALE_SET_INDEX(ale, (uintptr_t)index);
X 
X     if (!JS_XDRValue(xdr, &value))
X@@ -338,5 +338,5 @@
X {
X     uint32 length;
X-    uintN i;
X+    uintptr_t i;
X     JSBool ok;
X 
X--- jsinterp.c	Fri Jun  4 21:39:32 2004
X+++ jsinterp.c	Sat Aug  6 18:56:29 2005
X@@ -1382,9 +1382,9 @@
X     jsbytecode *pc, *pc2, *endpc;
X     JSOp op, op2;
X-    const JSCodeSpec *cs;
X+    const JSCodeSpec *cs = NULL;
X     JSAtom *atom;
X     uintN argc, slot, attrs;
X     jsval *vp, lval, rval, ltmp, rtmp;
X-    jsid id;
X+    jsid id = -1L; /* initialize to something awful */
X     JSObject *withobj, *origobj, *propobj;
X     jsval iter_state;
X@@ -1398,5 +1398,5 @@
X     JSType type;
X #ifdef DEBUG
X-    FILE *tracefp;
X+    FILE *tracefp = NULL;
X #endif
X #if JS_HAS_EXPORT_IMPORT
X@@ -1475,4 +1475,5 @@
X         JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL, JSMSG_OVER_RECURSED);
X         ok = JS_FALSE;
X+        sp = NULL;
X         goto out;
X     }
X@@ -1484,4 +1485,5 @@
X     if (!newsp) {
X         ok = JS_FALSE;
X+        sp = NULL;
X         goto out;
X     }
X@@ -1517,5 +1519,5 @@
X                     }
X                 }
X-                fprintf(tracefp, " @ %d\n", sp - fp->spbase);
X+                fprintf(tracefp, " @ %td\n", sp - fp->spbase);
X             }
X         }
X@@ -4209,5 +4211,5 @@
X                     }
X                 }
X-                fprintf(tracefp, " @ %d\n", sp - fp->spbase);
X+                fprintf(tracefp, " @ %td\n", sp - fp->spbase);
X             }
X             fprintf(tracefp, "  stack: ");
X--- jsobj.c	Wed Jun  2 17:20:56 2004
X+++ jsobj.c	Sat Aug  6 19:08:39 2005
X@@ -378,5 +378,5 @@
X js_hash_object(const void *key)
X {
X-    return (JSHashNumber)key >> JSVAL_TAGBITS;
X+    return (JSHashNumber)(uintptr_t)key >> JSVAL_TAGBITS;
X }
X 
X@@ -407,5 +407,5 @@
X     if (!he) {
X         sharpid = 0;
X-        he = JS_HashTableRawAdd(table, hep, hash, obj, (void *)sharpid);
X+        he = JS_HashTableRawAdd(table, hep, hash, obj, (void *)(uintptr_t)sharpid);
X         if (!he) {
X             JS_ReportOutOfMemory(cx);
X@@ -461,8 +461,8 @@
X             return NULL;
X     } else {
X-        sharpid = (jsatomid) he->value;
X+        sharpid = (jsatomid)(uintptr_t)he->value;
X         if (sharpid == 0) {
X             sharpid = ++map->sharpgen << SHARP_ID_SHIFT;
X-            he->value = (void *) sharpid;
X+            he->value = (void *)(uintptr_t)sharpid;
X         }
X         ida = NULL;
X@@ -505,5 +505,5 @@
X         if (!he)
X             goto bad;
X-        JS_ASSERT((((jsatomid) he->value) & SHARP_BIT) == 0);
X+        JS_ASSERT((((uintptr_t)he->value) & SHARP_BIT) == 0);
X         if (!idap) {
X             JS_DestroyIdArray(cx, ida);
X@@ -534,5 +534,5 @@
X     }
X 
X-    sharpid = (jsatomid) he->value;
X+    sharpid = (jsatomid)(uintptr_t)he->value;
X     if (sharpid == 0) {
X         *sp = NULL;
X--- jsopcode.c	Thu Jun 10 00:33:52 2004
X+++ jsopcode.c	Sat Aug  6 19:13:50 2005
X@@ -181,5 +181,5 @@
X       case JOF_JUMPX:
X         off = GetJumpOffset(pc, pc);
X-        fprintf(fp, " %u (%d)", loc + off, off);
X+        fprintf(fp, " %tu (%td)", loc + off, off);
X         break;
X 
X@@ -216,8 +216,8 @@
X         high = GET_JUMP_OFFSET(pc2);
X         pc2 += JUMP_OFFSET_LEN;
X-        fprintf(fp, " defaultOffset %d low %d high %d", off, low, high);
X+        fprintf(fp, " defaultOffset %td low %d high %d", off, low, high);
X         for (i = low; i <= high; i++) {
X             off = GetJumpOffset(pc, pc2);
X-            fprintf(fp, "\n\t%d: %d", i, off);
X+            fprintf(fp, "\n\t%d: %td", i, off);
X             pc2 += jmplen;
X         }
X@@ -253,5 +253,5 @@
X             if (!cstr)
X                 return 0;
X-            fprintf(fp, "\n\t%s: %d", cstr, off);
X+            fprintf(fp, "\n\t%s: %td", cstr, off);
X             JS_free(cx, cstr);
X             npairs--;
X--- jsparse.c	Mon Mar 29 22:20:03 2004
X+++ jsparse.c	Sat Aug  6 19:15:27 2005
X@@ -876,5 +876,5 @@
X                 return NULL;
X         }
X-        ALE_SET_JSOP(ale, tc->topStmt ? JSOP_CLOSURE : JSOP_DEFFUN);
X+        ALE_SET_JSOP(ale, (uintptr_t)(tc->topStmt ? JSOP_CLOSURE : JSOP_DEFFUN));
X 
X #if JS_HAS_LEXICAL_CLOSURE
X--- jsprf.c	Wed Feb 25 08:33:42 2004
X+++ jsprf.c	Sat Aug  6 19:18:26 2005
X@@ -56,5 +56,5 @@
X */
X #ifdef HAVE_VA_COPY
X-#define VARARGS_ASSIGN(foo, bar)        VA_COPY(foo,bar)
X+#define VARARGS_ASSIGN(foo, bar)        va_copy(foo,bar)
X #elif defined(HAVE_VA_LIST_AS_ARRAY)
X #define VARARGS_ASSIGN(foo, bar)        foo[0] = bar[0]
X--- js.c	Wed Feb 11 02:21:59 2004
X+++ js.c	Sat Aug  6 19:23:09 2005
X@@ -921,5 +921,5 @@
X         delta = SN_DELTA(sn);
X         offset += delta;
X-        fprintf(gOutFile, "%3u: %5u [%4u] %-8s",
X+        fprintf(gOutFile, "%3tu: %5u [%4u] %-8s",
X                 PTRDIFF(sn, notes, jssrcnote), offset, delta,
X                 js_SrcNoteSpec[SN_TYPE(sn)].name);
X@@ -1006,5 +1006,5 @@
X     fprintf(gOutFile, "\nException table:\nstart\tend\tcatch\n");
X     while (tn->start && tn->catchStart) {
X-        fprintf(gOutFile, "  %d\t%d\t%d\n",
X+        fprintf(gOutFile, "  %td\t%td\t%td\n",
X                tn->start, tn->start + tn->length, tn->catchStart);
X         tn++;
X@@ -1222,6 +1222,6 @@
X #undef  DUMP_ATTR
X 
X-        fprintf(fp, " slot %lu flags %x shortid %d\n",
X-                sprop->slot, sprop->flags, sprop->shortid);
X+        fprintf(fp, " slot %u flags %x shortid %d\n",
X+                (unsigned)sprop->slot, (int)sprop->flags, (int)sprop->shortid);
X     }
X }
X--- jsapi.c	Wed Jun 16 17:42:39 2004
X+++ jsapi.c	Mon Aug  8 02:32:15 2005
X@@ -126,5 +126,5 @@
X static JSBool
X TryArgumentFormatter(JSContext *cx, const char **formatp, JSBool fromJS,
X-                     jsval **vpp, va_list *app)
X+                     jsval **vpp, va_list app)
X {
X     const char *format;
X@@ -264,6 +264,5 @@
X           default:
X             format--;
X-            if (!TryArgumentFormatter(cx, &format, JS_TRUE, &sp,
X-                                      JS_ADDRESSOF_VA_LIST(ap))) {
X+            if (!TryArgumentFormatter(cx, &format, JS_TRUE, &sp, ap)) {
X                 return JS_FALSE;
X             }
X@@ -367,6 +366,5 @@
X           default:
X             format--;
X-            if (!TryArgumentFormatter(cx, &format, JS_FALSE, &sp,
X-                                      JS_ADDRESSOF_VA_LIST(ap))) {
X+            if (!TryArgumentFormatter(cx, &format, JS_FALSE, &sp, ap)) {
X                 goto bad;
X             }
X@@ -2190,5 +2188,5 @@
X 
X     if (attrs & JSPROP_INDEX) {
X-        id = INT_TO_JSVAL((jsint)name);
X+        id = INT_TO_JSVAL(name);
X         atom = NULL;
X         attrs &= ~JSPROP_INDEX;
END-of-spidermonkey/files/patch-warnings
echo x - spidermonkey/files/patch-jsopcode.c
sed 's/^X//' >spidermonkey/files/patch-jsopcode.c << 'END-of-spidermonkey/files/patch-jsopcode.c'
X--- jsopcode.c.orig	Sun Aug 29 18:00:24 2004
X+++ jsopcode.c	Sat Jan 14 02:26:07 2006
X@@ -239,7 +239,7 @@
X         pc2 += jmplen;
X         npairs = GET_ATOM_INDEX(pc2);
X         pc2 += ATOM_INDEX_LEN;
X-        fprintf(fp, " offset %d npairs %u", off, (uintN) npairs);
X+        fprintf(fp, " offset %td npairs %u", off, (uintN) npairs);
X         while (npairs) {
X             atom = GET_ATOM(cx, script, pc2);
X             pc2 += ATOM_INDEX_LEN;
END-of-spidermonkey/files/patch-jsopcode.c
echo x - spidermonkey/files/patch-jslock.c
sed 's/^X//' >spidermonkey/files/patch-jslock.c << 'END-of-spidermonkey/files/patch-jslock.c'
X--- jslock.c.orig	Sat Jan 14 02:20:18 2006
X+++ jslock.c	Sat Jan 14 02:22:17 2006
X@@ -193,7 +193,9 @@
X #endif
X }
X 
X+#ifndef NSPR_LOCK
X static void js_Dequeue(JSThinLock *);
X+#endif
X 
X #ifdef DEBUG_SCOPE_COUNT
END-of-spidermonkey/files/patch-jslock.c
echo x - spidermonkey/files/patch-jscntxt.c
sed 's/^X//' >spidermonkey/files/patch-jscntxt.c << 'END-of-spidermonkey/files/patch-jscntxt.c'
X--- jscntxt.c.orig	Sat Jan 14 01:57:13 2006
X+++ jscntxt.c	Sat Jan 14 02:14:51 2006
X@@ -334,7 +334,7 @@
X {
X     const JSResolvingKey *key = (const JSResolvingKey *)ptr;
X 
X-    return ((JSDHashNumber)key->obj >> JSVAL_TAGBITS) ^ key->id;
X+    return ((JSDHashNumber)JS_PTR_TO_UINT32(key->obj) >> JSVAL_TAGBITS) ^ key->id;
X }
X 
X JS_PUBLIC_API(JSBool)
END-of-spidermonkey/files/patch-jscntxt.c
exit

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



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