Download raw body.
luajit, arm64, games/love/0.10
Currently our luajit port is for an old tagged release of luajit-2.0;
the 2.0 branch only supports arm amd64 i386 powerpc (in particular,
no arm64).
Upstream now only do rolling updates and there's a 2.1 branch with
better arch support (at least arm64, maybe riscv, not sure if any more).
Adding a second port for 2.1 to move across bit by bit would be possible
but would be a bit of a pain. So ideally I'd quite like to switch the
existing port across.
(There are many newer commits on the 2.0 tree too but no wider arch
support that I noticed).
I've successfully built all ports using luajit with 2.1 other than
games/love/0.10 (some small diffs were needed, all easy). I did runtime
tests on a few of them so far, those were successful.
How useful is love/0.10, does it still make sense to keep it?
Here's the diff I've tested so far (only tested on amd64 so far, I will
try arm64 too).
(I removed some of the MODLUA_VERSION in the Makefile, afaict luajit
only targets 5.1).
Index: Makefile
===================================================================
RCS file: /cvs/ports/lang/luajit/Makefile,v
diff -u -p -r1.34 Makefile
--- Makefile 23 Jun 2023 17:34:51 -0000 1.34
+++ Makefile 9 May 2024 16:38:11 -0000
@@ -6,19 +6,23 @@ ONLY_FOR_ARCHS = arm amd64 i386 powerpc
# no aarch64 support in luajit 2.0 branch
# games/tome4 is using embedded copy of luajit
-SHARED_LIBS += luajit-${MODLUA_VERSION} 1.0 # 2.0.5
+SHARED_LIBS += luajit-5.1 1.0 # 2.0.5
-# "Releases are only made occasionally. You're strongly encouraged to follow
-# the git branches"
+# "LuaJIT uses rolling releases. There are no release tarballs available
+# for download."
+# "Distro maintainers for distros that require the fiction of a release
+# should do frequent snapshots of a branch. Do not attempt to cherry-pick
+# or backport individual changes, no matter how self-standing individual
+# changes look (because they often are not)."
GH_ACCOUNT = LuaJIT
GH_PROJECT = LuaJIT
-GH_COMMIT = 98f95f69180d48ce49289d6428b46a9ccdd67a46
+GH_COMMIT = 5790d253972c9d78a0c2aece527eda5b134bbbf7
COMMENT = just-in-time compiler for Lua
-V = 2.0.5
-DISTNAME = LuaJIT-${V}pl20210608
+# see ${WRKSRC}/.relver
+V = 2.1.1713773202
+DISTNAME = LuaJIT-${V}
PKGNAME = ${DISTNAME:L}
-REVISION = 0
CATEGORIES = lang
@@ -33,6 +37,7 @@ WANTLIB = c m
MODULES = lang/lua
MODLUA_SA= Yes
+# luajit specifically targets the 5.1 ABI
MODLUA_VERSION= 5.1
MAKE_FLAGS += \
@@ -41,12 +46,13 @@ MAKE_FLAGS += \
CCOPT_x86="" \
INSTALL_LJLIBD="${DESTDIR}${MODLUA_DATADIR}" \
INSTALL_MAN="${DESTDIR}${PREFIX}/man/man1" \
- INSTALL_SONAME=libluajit-${MODLUA_VERSION}.so.${LIBluajit-${MODLUA_VERSION}_VERSION} \
- PREFIX="${PREFIX}"
+ INSTALL_SONAME=libluajit-5.1.so.${LIBluajit-5.1_VERSION} \
+ PREFIX="${PREFIX}" \
+ Q= E=@:
USE_GMAKE = Yes
-SUBST_VARS+= MODLUA_VERSION
+SUBST_VARS = V
pre-configure:
${SUBST_CMD} ${WRKDIST}/Makefile \
@@ -54,7 +60,8 @@ pre-configure:
${WRKDIST}/src/luaconf.h
post-install:
- mv ${PREFIX}/bin/luajit-$V ${PREFIX}/bin/luajit${MODLUA_DEP_VERSION}
+ rm ${PREFIX}/lib/libluajit-${MODLUA_VERSION}.so{,.?}
+ ln -s luajit-${V} ${PREFIX}/bin/luajit${MODLUA_DEP_VERSION}
do-test:
${WRKSRC}/src/luajit -e "print('hello world')" | grep "^hello world$$"
Index: distinfo
===================================================================
RCS file: /cvs/ports/lang/luajit/distinfo,v
diff -u -p -r1.9 distinfo
--- distinfo 3 Jul 2021 20:21:07 -0000 1.9
+++ distinfo 9 May 2024 16:38:11 -0000
@@ -1,2 +1,2 @@
-SHA256 (LuaJIT-2.0.5pl20210608-98f95f69.tar.gz) = wmjMMUjuUzRqfRu4plfFqD7otJefP7Wwj67uj4mDfdQ=
-SIZE (LuaJIT-2.0.5pl20210608-98f95f69.tar.gz) = 844346
+SHA256 (LuaJIT-2.1.1713773202-5790d253.tar.gz) = opnNOJxFaM/0yQDp6G+1ax9CK/OEl6aV9qluN2B6ZkU=
+SIZE (LuaJIT-2.1.1713773202-5790d253.tar.gz) = 1081581
Index: patches/patch-Makefile
===================================================================
RCS file: patches/patch-Makefile
diff -N patches/patch-Makefile
--- patches/patch-Makefile 11 Mar 2022 19:29:06 -0000 1.8
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,32 +0,0 @@
-Index: Makefile
---- Makefile.orig
-+++ Makefile
-@@ -17,7 +17,7 @@ MAJVER= 2
- MINVER= 0
- RELVER= 5
- VERSION= $(MAJVER).$(MINVER).$(RELVER)
--ABIVER= 5.1
-+ABIVER= ${MODLUA_VERSION}
-
- ##############################################################################
- #
-@@ -117,18 +117,13 @@ install: $(INSTALL_DEP)
- cd src && test -f $(FILE_A) && $(INSTALL_F) $(FILE_A) $(INSTALL_STATIC) || :
- $(RM) $(INSTALL_TSYM) $(INSTALL_DYN) $(INSTALL_SHORT1) $(INSTALL_SHORT2)
- cd src && test -f $(FILE_SO) && \
-- $(INSTALL_X) $(FILE_SO) $(INSTALL_DYN) && \
-- ( $(LDCONFIG) $(INSTALL_LIB) || : ) && \
-- $(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT1) && \
-- $(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT2) || :
-+ $(INSTALL_X) $(FILE_SO) $(INSTALL_DYN) || :
- cd etc && $(INSTALL_F) $(FILE_MAN) $(INSTALL_MAN)
- cd etc && $(SED_PC) $(FILE_PC) > $(FILE_PC).tmp && \
- $(INSTALL_F) $(FILE_PC).tmp $(INSTALL_PC) && \
- $(RM) $(FILE_PC).tmp
- cd src && $(INSTALL_F) $(FILES_INC) $(INSTALL_INC)
- cd src/jit && $(INSTALL_F) $(FILES_JITLIB) $(INSTALL_JITLIB)
-- $(SYMLINK) $(INSTALL_TNAME) $(INSTALL_TSYM)
-- @echo "==== Successfully installed LuaJIT $(VERSION) to $(PREFIX) ===="
-
- uninstall:
- @echo "==== Uninstalling LuaJIT $(VERSION) from $(PREFIX) ===="
Index: patches/patch-etc_luajit_pc
===================================================================
RCS file: patches/patch-etc_luajit_pc
diff -N patches/patch-etc_luajit_pc
--- patches/patch-etc_luajit_pc 11 Mar 2022 19:29:06 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,14 +0,0 @@
---- etc/luajit.pc.orig Tue May 2 04:11:00 2017
-+++ etc/luajit.pc Tue May 2 11:40:27 2017
-@@ -3,9 +3,9 @@ majver=2
- minver=0
- relver=5
- version=${majver}.${minver}.${relver}
--abiver=5.1
-+abiver=${MODLUA_VERSION}
-
--prefix=/usr/local
-+prefix=${TRUEPREFIX}
- multilib=lib
- exec_prefix=${prefix}
- libdir=${exec_prefix}/${multilib}
Index: patches/patch-src_Makefile
===================================================================
RCS file: /cvs/ports/lang/luajit/patches/patch-src_Makefile,v
diff -u -p -r1.8 patch-src_Makefile
--- patches/patch-src_Makefile 11 Mar 2022 19:29:06 -0000 1.8
+++ patches/patch-src_Makefile 9 May 2024 16:38:11 -0000
@@ -1,7 +1,7 @@
Index: src/Makefile
--- src/Makefile.orig
+++ src/Makefile
-@@ -331,6 +331,10 @@ else
+@@ -351,6 +351,10 @@ else
ifeq (GNU/kFreeBSD,$(TARGET_SYS))
TARGET_XLIBS+= -ldl
endif
@@ -12,7 +12,7 @@ Index: src/Makefile
endif
endif
endif
-@@ -568,10 +572,10 @@ endif
+@@ -608,10 +612,10 @@ endif
endif
endif
Index: patches/patch-src_host_buildvm_asm_c
===================================================================
RCS file: patches/patch-src_host_buildvm_asm_c
diff -N patches/patch-src_host_buildvm_asm_c
--- patches/patch-src_host_buildvm_asm_c 11 Mar 2022 19:29:06 -0000 1.5
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,19 +0,0 @@
-.gnu_attribute requires binutils 2.18
-
---- src/host/buildvm_asm.c.orig Tue May 2 04:11:00 2017
-+++ src/host/buildvm_asm.c Tue May 2 11:40:27 2017
-@@ -290,12 +290,14 @@ void emit_asm(BuildCtx *ctx)
- #if !(LJ_TARGET_PS3 || LJ_TARGET_PSVITA)
- fprintf(ctx->fp, "\t.section .note.GNU-stack,\"\"," ELFASM_PX "progbits\n");
- #endif
-+#if 0
- #if LJ_TARGET_PPCSPE
- /* Soft-float ABI + SPE. */
- fprintf(ctx->fp, "\t.gnu_attribute 4, 2\n\t.gnu_attribute 8, 3\n");
- #elif LJ_TARGET_PPC && !LJ_TARGET_PS3
- /* Hard-float ABI. */
- fprintf(ctx->fp, "\t.gnu_attribute 4, 1\n");
-+#endif
- #endif
- /* fallthrough */
- case BUILD_coffasm:
Index: patches/patch-src_lj_arch_h
===================================================================
RCS file: /cvs/ports/lang/luajit/patches/patch-src_lj_arch_h,v
diff -u -p -r1.7 patch-src_lj_arch_h
--- patches/patch-src_lj_arch_h 11 Mar 2022 19:29:06 -0000 1.7
+++ patches/patch-src_lj_arch_h 9 May 2024 16:38:11 -0000
@@ -5,8 +5,8 @@ ignore the gcc version check ifdef hell
Index: src/lj_arch.h
--- src/lj_arch.h.orig
+++ src/lj_arch.h
-@@ -299,7 +299,7 @@
- #endif
+@@ -446,7 +446,7 @@
+ /* -- Checks for requirements --------------------------------------------- */
/* Check for minimum required compiler versions. */
-#if defined(__GNUC__)
Index: patches/patch-src_luaconf_h
===================================================================
RCS file: patches/patch-src_luaconf_h
diff -N patches/patch-src_luaconf_h
--- patches/patch-src_luaconf_h 11 Mar 2022 19:29:06 -0000 1.3
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,15 +0,0 @@
---- src/luaconf.h.orig Tue May 2 04:11:00 2017
-+++ src/luaconf.h Tue May 2 11:42:59 2017
-@@ -35,9 +35,9 @@
- #ifndef LUA_LMULTILIB
- #define LUA_LMULTILIB "lib"
- #endif
--#define LUA_LROOT "/usr/local"
--#define LUA_LUADIR "/lua/5.1/"
--#define LUA_LJDIR "/luajit-2.0.5/"
-+#define LUA_LROOT "${TRUEPREFIX}"
-+#define LUA_LUADIR "/lua/${MODLUA_VERSION}/"
-+#define LUA_LJDIR "/luajit-2.0/"
-
- #ifdef LUA_ROOT
- #define LUA_JROOT LUA_ROOT
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/lang/luajit/pkg/PLIST,v
diff -u -p -r1.4 PLIST
--- pkg/PLIST 11 Mar 2022 19:29:06 -0000 1.4
+++ pkg/PLIST 9 May 2024 16:38:11 -0000
@@ -1,13 +1,15 @@
-@bin bin/luajit${MODLUA_DEP_VERSION}
-include/luajit-2.0/
-include/luajit-2.0/lauxlib.h
-include/luajit-2.0/lua.h
-include/luajit-2.0/lua.hpp
-include/luajit-2.0/luaconf.h
-include/luajit-2.0/luajit.h
-include/luajit-2.0/lualib.h
-@comment lib/libluajit-${MODLUA_VERSION}.so
+bin/luajit
+@bin bin/luajit-${V}
+bin/luajit${MODLUA_DEP_VERSION}
+include/luajit-2.1/
+include/luajit-2.1/lauxlib.h
+include/luajit-2.1/lua.h
+include/luajit-2.1/lua.hpp
+include/luajit-2.1/luaconf.h
+include/luajit-2.1/luajit.h
+include/luajit-2.1/lualib.h
@static-lib lib/libluajit-${MODLUA_VERSION}.a
+@comment lib/libluajit-${MODLUA_VERSION}.so
@lib lib/libluajit-${MODLUA_VERSION}.so.${LIBluajit-${MODLUA_VERSION}_VERSION}
lib/pkgconfig/luajit.pc
@man man/man1/luajit.1
@@ -15,11 +17,19 @@ share/lua/${MODLUA_VERSION}/jit/
share/lua/${MODLUA_VERSION}/jit/bc.lua
share/lua/${MODLUA_VERSION}/jit/bcsave.lua
share/lua/${MODLUA_VERSION}/jit/dis_arm.lua
+share/lua/${MODLUA_VERSION}/jit/dis_arm64.lua
+share/lua/${MODLUA_VERSION}/jit/dis_arm64be.lua
share/lua/${MODLUA_VERSION}/jit/dis_mips.lua
+share/lua/${MODLUA_VERSION}/jit/dis_mips64.lua
+share/lua/${MODLUA_VERSION}/jit/dis_mips64el.lua
+share/lua/${MODLUA_VERSION}/jit/dis_mips64r6.lua
+share/lua/${MODLUA_VERSION}/jit/dis_mips64r6el.lua
share/lua/${MODLUA_VERSION}/jit/dis_mipsel.lua
share/lua/${MODLUA_VERSION}/jit/dis_ppc.lua
share/lua/${MODLUA_VERSION}/jit/dis_x64.lua
share/lua/${MODLUA_VERSION}/jit/dis_x86.lua
share/lua/${MODLUA_VERSION}/jit/dump.lua
+share/lua/${MODLUA_VERSION}/jit/p.lua
share/lua/${MODLUA_VERSION}/jit/v.lua
share/lua/${MODLUA_VERSION}/jit/vmdef.lua
+share/lua/${MODLUA_VERSION}/jit/zone.lua
luajit, arm64, games/love/0.10