Bug 91522 - Spidermonkey version update to 1.5 with fixes for ia64/amd64
Summary: Spidermonkey version update to 1.5 with fixes for ia64/amd64
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: freebsd-ports-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-01-08 18:40 UTC by Dan Rench
Modified: 2006-01-29 16:32 UTC (History)
0 users

See Also:


Attachments
file.diff (19.49 KB, patch)
2006-01-08 18:40 UTC, Dan Rench
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Dan Rench 2006-01-08 18:40:08 UTC
Update source to spidermonkey 1.5 and patched (much thanks to Anish Mistry) to fix compilation problems under amd64 (and presumably ia64 too but untested) and to make the build thread-safe.

How-To-Repeat: n/a
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2006-01-08 21:31:21 UTC
State Changed
From-To: open->closed

Committed, thanks!
Comment 2 ryanlamb82 2006-01-13 00:10:03 UTC
This issue should be reopened.  Spidermonkey will not compile for me on amd64.  

cc -o FreeBSD6.0-RELEASE_DBG.OBJ/jscntxt.o -c -O2 -fno-strict-aliasing -pipe  -I/usr/local/include/nspr -Wall -Werror    -g -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DHAVE_LOCALTIME_R -DHAVE_VA_COPY -DVA_COPY=va_copy -DPIC -fpic  -DDEBUG -DDEBUG_root -DJS_THREADSAFE -DEDITLINE -I../../dist/FreeBSD6.0-RELEASE_DBG.OBJ/include -IFreeBSD6.0-RELEASE_DBG.OBJ  jscntxt.c
jscntxt.c: In function `resolving_HashKey':
jscntxt.c:337: warning: cast from pointer to integer of different size
gmake: *** [FreeBSD6.0-RELEASE_DBG.OBJ/jscntxt.o] Error 1
*** Error code 2

Stop in /usr/ports/lang/spidermonkey.

This is on a freshly installed amd64 system.  If you need any more information or if I didn't post enough output, just let me know.
Comment 3 Mark Linimon freebsd_committer freebsd_triage 2006-01-13 00:23:15 UTC
State Changed
From-To: closed->feedback

A followup claims that this problem still exists on amd64 -- can the 
maintainer confirm this?
Comment 4 Dan Rench 2006-01-16 03:00:35 UTC
Below is a new version of the port incorporating the patches Anish
Mistry sent. I was able to compile this cleanly on i386 (6.0-STABLE)
and amd64 (5.4-RELEASE).


# 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
Comment 5 Pav Lucistnik freebsd_committer freebsd_triage 2006-01-29 16:31:48 UTC
State Changed
From-To: feedback->closed

Things are happening in ports/92396 now