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) {

Reply via email to