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