ports/92396: Spidermonkey fixes for 64 bit platforms
Dan Rench
citric at cubicone.tmetic.com
Thu Jan 26 22:10:15 UTC 2006
>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 at 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 at 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 at 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 at 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:
More information about the freebsd-ports-bugs
mailing list