On Thu, May 09, 2013 at 05:02:08PM -0400, Ted Unangst wrote:
> On Thu, May 09, 2013 at 09:53, Aaron wrote:
> > ping :D
>
> There is also the hotfix #1 patch that should be incorporated.
Diff to apply the hotfix below. Is this the correct way to do it, or
should I add a patch to files and apply from the Makefile?
Index: Makefile
===================================================================
RCS file: /cvs/ports/lang/luajit/Makefile,v
retrieving revision 1.7
diff -u -p -r1.7 Makefile
--- Makefile 9 May 2013 17:57:56 -0000 1.7
+++ Makefile 9 May 2013 21:32:18 -0000
@@ -8,6 +8,7 @@ SHARED_LIBS += luajit-${MODLUA_VERSION}
COMMENT = just-in-time compiler for Lua
V = 2.0.1
+REVISION = 0
DISTNAME = LuaJIT-${V}
PKGNAME = ${DISTNAME:L}
Index: patches/patch-src_lib_io_c
===================================================================
RCS file: patches/patch-src_lib_io_c
diff -N patches/patch-src_lib_io_c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_lib_io_c 9 May 2013 21:32:18 -0000
@@ -0,0 +1,35 @@
+$OpenBSD$
+--- src/lib_io.c.orig Tue Feb 19 13:15:00 2013
++++ src/lib_io.c Thu May 9 15:29:04 2013
+@@ -17,6 +17,7 @@
+ #include "lualib.h"
+
+ #include "lj_obj.h"
++#include "lj_gc.h"
+ #include "lj_err.h"
+ #include "lj_str.h"
+ #include "lj_state.h"
+@@ -152,6 +153,7 @@ static int io_file_readline(lua_State *L, FILE *fp, MS
+ if (n >= m - 64) m += m;
+ }
+ setstrV(L, L->top++, lj_str_new(L, buf, (size_t)n));
++ lj_gc_check(L);
+ return (int)ok;
+ }
+
+@@ -163,6 +165,7 @@ static void io_file_readall(lua_State *L, FILE *fp)
+ n += (MSize)fread(buf+n, 1, m-n, fp);
+ if (n != m) {
+ setstrV(L, L->top++, lj_str_new(L, buf, (size_t)n));
++ lj_gc_check(L);
+ return;
+ }
+ }
+@@ -174,6 +177,7 @@ static int io_file_readlen(lua_State *L, FILE *fp, MSi
+ char *buf = lj_str_needbuf(L, &G(L)->tmpbuf, m);
+ MSize n = (MSize)fread(buf, 1, m, fp);
+ setstrV(L, L->top++, lj_str_new(L, buf, (size_t)n));
++ lj_gc_check(L);
+ return (n > 0 || m == 0);
+ } else {
+ int c = getc(fp);
Index: patches/patch-src_lj_asm_arm_h
===================================================================
RCS file: patches/patch-src_lj_asm_arm_h
diff -N patches/patch-src_lj_asm_arm_h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_lj_asm_arm_h 9 May 2013 21:32:18 -0000
@@ -0,0 +1,11 @@
+$OpenBSD$
+--- src/lj_asm_arm.h.orig Tue Feb 19 13:15:00 2013
++++ src/lj_asm_arm.h Thu May 9 15:29:04 2013
+@@ -91,6 +91,7 @@ static MCode *asm_exitstub_gen(ASMState *as, ExitNo gr
+ *mxp++ = group*EXITSTUBS_PER_GROUP;
+ for (i = 0; i < EXITSTUBS_PER_GROUP; i++)
+ *mxp++ = ARMI_B|((-6-i)&0x00ffffffu);
++ lj_mcode_sync(as->mcbot, mxp);
+ lj_mcode_commitbot(as->J, mxp);
+ as->mcbot = mxp;
+ as->mclim = as->mcbot + MCLIM_REDZONE;
Index: patches/patch-src_lj_asm_mips_h
===================================================================
RCS file: patches/patch-src_lj_asm_mips_h
diff -N patches/patch-src_lj_asm_mips_h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_lj_asm_mips_h 9 May 2013 21:32:18 -0000
@@ -0,0 +1,11 @@
+$OpenBSD$
+--- src/lj_asm_mips.h.orig Tue Feb 19 13:15:00 2013
++++ src/lj_asm_mips.h Thu May 9 15:29:04 2013
+@@ -71,6 +71,7 @@ static void asm_sparejump_setup(ASMState *as)
+ memset(mxp+2, 0, MIPS_SPAREJUMP*8);
+ mxp += MIPS_SPAREJUMP*2;
+ lua_assert(mxp < as->mctop);
++ lj_mcode_sync(as->mcbot, mxp);
+ lj_mcode_commitbot(as->J, mxp);
+ as->mcbot = mxp;
+ as->mclim = as->mcbot + MCLIM_REDZONE;
Index: patches/patch-src_lj_def_h
===================================================================
RCS file: patches/patch-src_lj_def_h
diff -N patches/patch-src_lj_def_h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_lj_def_h 9 May 2013 21:32:18 -0000
@@ -0,0 +1,24 @@
+$OpenBSD$
+--- src/lj_def.h.orig Tue Feb 19 13:15:00 2013
++++ src/lj_def.h Thu May 9 15:29:04 2013
+@@ -243,17 +243,17 @@ static LJ_AINLINE uint32_t lj_getu32(const void *p)
+ #endif
+
+ #ifdef _M_PPC
+-#pragma intrinsic(_CountLeadingZeros)
+ unsigned int _CountLeadingZeros(long);
++#pragma intrinsic(_CountLeadingZeros)
+ static LJ_AINLINE uint32_t lj_fls(uint32_t x)
+ {
+ return _CountLeadingZeros(x) ^ 31;
+ }
+ #else
+-#pragma intrinsic(_BitScanForward)
+-#pragma intrinsic(_BitScanReverse)
+ unsigned char _BitScanForward(uint32_t *, unsigned long);
+ unsigned char _BitScanReverse(uint32_t *, unsigned long);
++#pragma intrinsic(_BitScanForward)
++#pragma intrinsic(_BitScanReverse)
+
+ static LJ_AINLINE uint32_t lj_ffs(uint32_t x)
+ {
Index: patches/patch-src_lj_str_c
===================================================================
RCS file: patches/patch-src_lj_str_c
diff -N patches/patch-src_lj_str_c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_lj_str_c 9 May 2013 21:32:18 -0000
@@ -0,0 +1,21 @@
+$OpenBSD$
+--- src/lj_str.c.orig Tue Feb 19 13:15:00 2013
++++ src/lj_str.c Thu May 9 15:29:04 2013
+@@ -48,7 +48,7 @@ static LJ_AINLINE int str_fastcmp(const char *a, const
+ {
+ MSize i = 0;
+ lua_assert(len > 0);
+- lua_assert((((uintptr_t)a + len) & (LJ_PAGESIZE-1)) <= LJ_PAGESIZE-4);
++ lua_assert((((uintptr_t)a+len-1) & (LJ_PAGESIZE-1)) <= LJ_PAGESIZE-4);
+ do { /* Note: innocuous access up to end of string + 3. */
+ uint32_t v = lj_getu32(a+i) ^ *(const uint32_t *)(b+i);
+ if (v) {
+@@ -121,7 +121,7 @@ GCstr *lj_str_new(lua_State *L, const char *str, size_
+ h ^= b; h -= lj_rol(b, 16);
+ /* Check if the string has already been interned. */
+ o = gcref(g->strhash[h & g->strmask]);
+- if (LJ_LIKELY((((uintptr_t)str + len) & (LJ_PAGESIZE-1)) <= LJ_PAGESIZE-4))
{
++ if (LJ_LIKELY((((uintptr_t)str+len-1) & (LJ_PAGESIZE-1)) <= LJ_PAGESIZE-4))
{
+ while (o != NULL) {
+ GCstr *sx = gco2str(o);
+ if (sx->len == len && str_fastcmp(str, strdata(sx), len) == 0) {