git: 4fec652f2efb - main - lang/luajit-devel: add LuaJIT, development version

From: Sergey A. Osokin <osa_at_FreeBSD.org>
Date: Thu, 28 Oct 2021 01:12:27 UTC
The branch main has been updated by osa:

URL: https://cgit.FreeBSD.org/ports/commit/?id=4fec652f2efb9f18b16a84028dd9a3d17a71589b

commit 4fec652f2efb9f18b16a84028dd9a3d17a71589b
Author:     Sergey A. Osokin <osa@FreeBSD.org>
AuthorDate: 2021-10-28 01:07:36 +0000
Commit:     Sergey A. Osokin <osa@FreeBSD.org>
CommitDate: 2021-10-28 01:07:36 +0000

    lang/luajit-devel: add LuaJIT, development version
---
 lang/luajit-devel/Makefile                        | 43 +++++++++++++++++
 lang/luajit-devel/distinfo                        |  3 ++
 lang/luajit-devel/files/patch-Makefile            | 59 +++++++++++++++++++++++
 lang/luajit-devel/files/patch-etc_luajit.pc       |  9 ++++
 lang/luajit-devel/files/patch-src_Makefile        | 29 +++++++++++
 lang/luajit-devel/files/patch-src_lj__ccallback.c | 10 ++++
 lang/luajit-devel/files/patch-src_lj__prng.c      | 18 +++++++
 lang/luajit-devel/pkg-descr                       |  3 ++
 lang/luajit-devel/pkg-plist                       | 31 ++++++++++++
 9 files changed, 205 insertions(+)

diff --git a/lang/luajit-devel/Makefile b/lang/luajit-devel/Makefile
new file mode 100644
index 000000000000..2098e7f2e060
--- /dev/null
+++ b/lang/luajit-devel/Makefile
@@ -0,0 +1,43 @@
+# Created by: Sergey A. Osokin <osa@FreeBSD.org>
+
+PORTNAME=	luajit
+DISTVERSION=	2.1.0.20211027
+CATEGORIES=	lang
+PKGNAMESUFFIX=	-devel
+DISTNAME=	LuaJIT-${DISTVERSION}
+
+MAINTAINER=	osa@FreeBSD.org
+COMMENT=	Just-In-Time Compiler for Lua
+
+LICENSE=	MIT PD
+LICENSE_COMB=	multi
+LICENSE_FILE=	${WRKSRC}/COPYRIGHT
+
+IGNORE_riscv64=		fails to compile: lj_arch.h:73:2: No support for this architecture (yet)
+
+#CONFLICTS_INSTALL=	luajit luajit-openresty
+
+USES=		cpe gmake
+USE_LDCONFIG=	yes
+MAKE_ARGS=	CC=${CC} CCOPT= CCOPT_x86= Q=
+
+USE_GITHUB=	yes
+GH_TUPLE=	LuaJIT:LuaJIT:b4b2dce
+
+LUAJIT_VERSION=	2.1.0-beta3
+LUAJIT_SOVERSION=	2.1.0
+
+PLIST_SUB+=	VERSION=${LUAJIT_VERSION} SOVERSION=${LUAJIT_SOVERSION}
+
+.include <bsd.port.options.mk>
+
+.if ${ARCH:Mpowerpc*} || ${ARCH:Mmips*}
+USE_GCC=yes
+.endif
+
+post-install:
+	${LN} -sf ${PORTNAME}-${DISTVERSION} \
+		${STAGEDIR}${PREFIX}/bin/${PORTNAME}
+	${INSTALL_MAN} ${WRKSRC}/etc/luajit.1 ${STAGEDIR}${MAN1PREFIX}/man/man1
+
+.include <bsd.port.mk>
diff --git a/lang/luajit-devel/distinfo b/lang/luajit-devel/distinfo
new file mode 100644
index 000000000000..721ce9c35dca
--- /dev/null
+++ b/lang/luajit-devel/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1635381636
+SHA256 (LuaJIT-LuaJIT-2.1.0.20211027-b4b2dce_GH0.tar.gz) = c7becd27db80379f720ecabbe267c7a936a2465f2a7d7eb38d6ea7006ece1f42
+SIZE (LuaJIT-LuaJIT-2.1.0.20211027-b4b2dce_GH0.tar.gz) = 1071183
diff --git a/lang/luajit-devel/files/patch-Makefile b/lang/luajit-devel/files/patch-Makefile
new file mode 100644
index 000000000000..c3e37d347c2d
--- /dev/null
+++ b/lang/luajit-devel/files/patch-Makefile
@@ -0,0 +1,59 @@
+--- Makefile.orig	2019-06-26 21:12:49 UTC
++++ Makefile
+@@ -25,7 +25,7 @@ ABIVER=  5.1
+ # Change the installation path as needed. This automatically adjusts
+ # the paths in src/luaconf.h, too. Note: PREFIX must be an absolute path!
+ #
+-export PREFIX= /usr/local
++#export PREFIX= /usr/local
+ export MULTILIB= lib
+ ##############################################################################
+ 
+@@ -34,6 +34,7 @@ INSTALL_BIN=   $(DPREFIX)/bin
+ INSTALL_LIB=   $(DPREFIX)/$(MULTILIB)
+ INSTALL_SHARE= $(DPREFIX)/share
+ INSTALL_INC=   $(DPREFIX)/include/luajit-$(MAJVER).$(MINVER)
++INSTALL_LIBD=  $(DPREFIX)/libdata
+ 
+ INSTALL_LJLIBD= $(INSTALL_SHARE)/luajit-$(VERSION)
+ INSTALL_JITLIB= $(INSTALL_LJLIBD)/jit
+@@ -41,8 +42,7 @@ INSTALL_LMODD= $(INSTALL_SHARE)/lua
+ INSTALL_LMOD= $(INSTALL_LMODD)/$(ABIVER)
+ INSTALL_CMODD= $(INSTALL_LIB)/lua
+ INSTALL_CMOD= $(INSTALL_CMODD)/$(ABIVER)
+-INSTALL_MAN= $(INSTALL_SHARE)/man/man1
+-INSTALL_PKGCONFIG= $(INSTALL_LIB)/pkgconfig
++INSTALL_PKGCONFIG= $(INSTALL_LIBD)/pkgconfig
+ 
+ INSTALL_TNAME= luajit-$(VERSION)
+ INSTALL_TSYMNAME= luajit
+@@ -63,8 +63,8 @@ INSTALL_T= $(INSTALL_BIN)/$(INSTALL_TNAME)
+ INSTALL_TSYM= $(INSTALL_BIN)/$(INSTALL_TSYMNAME)
+ INSTALL_PC= $(INSTALL_PKGCONFIG)/$(INSTALL_PCNAME)
+ 
+-INSTALL_DIRS= $(INSTALL_BIN) $(INSTALL_LIB) $(INSTALL_INC) $(INSTALL_MAN) \
+-  $(INSTALL_PKGCONFIG) $(INSTALL_JITLIB) $(INSTALL_LMOD) $(INSTALL_CMOD)
++INSTALL_DIRS= $(INSTALL_INC) \
++  $(INSTALL_PKGCONFIG) $(INSTALL_JITLIB)
+ UNINSTALL_DIRS= $(INSTALL_JITLIB) $(INSTALL_LJLIBD) $(INSTALL_INC) \
+   $(INSTALL_LMOD) $(INSTALL_LMODD) $(INSTALL_CMOD) $(INSTALL_CMODD)
+ 
+@@ -121,10 +121,8 @@ install: $(INSTALL_DEP)
+ 	$(RM) $(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) || :
+-	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
+@@ -143,7 +141,6 @@ uninstall:
+ 	for file in $(FILES_INC); do \
+ 	  $(UNINSTALL) $(INSTALL_INC)/$$file; \
+ 	  done
+-	$(LDCONFIG) $(INSTALL_LIB)
+ 	$(RMDIR) $(UNINSTALL_DIRS) || :
+ 	@echo "==== Successfully uninstalled LuaJIT $(VERSION) from $(PREFIX) ===="
+ 
diff --git a/lang/luajit-devel/files/patch-etc_luajit.pc b/lang/luajit-devel/files/patch-etc_luajit.pc
new file mode 100644
index 000000000000..8867dc0b4be8
--- /dev/null
+++ b/lang/luajit-devel/files/patch-etc_luajit.pc
@@ -0,0 +1,9 @@
+--- etc/luajit.pc.orig	2019-06-26 21:12:49 UTC
++++ etc/luajit.pc
+@@ -21,5 +21,5 @@ URL: http://luajit.org
+ Version: ${version}
+ Requires:
+ Libs: -L${libdir} -l${libname}
+-Libs.private: -Wl,-E -lm -ldl
++Libs.private: -Wl,-E -lm
+ Cflags: -I${includedir}
diff --git a/lang/luajit-devel/files/patch-src_Makefile b/lang/luajit-devel/files/patch-src_Makefile
new file mode 100644
index 000000000000..88511431f17a
--- /dev/null
+++ b/lang/luajit-devel/files/patch-src_Makefile
@@ -0,0 +1,29 @@
+--- src/Makefile.orig	2019-06-26 21:12:49 UTC
++++ src/Makefile
+@@ -24,7 +24,7 @@ NODOTABIVER= 51
+ # removing the '#' in front of them. Make sure you force a full recompile
+ # with "make clean", followed by "make" if you change any options.
+ #
+-DEFAULT_CC = gcc
++DEFAULT_CC = cc
+ #
+ # LuaJIT builds as a native 32 or 64 bit binary by default.
+ CC= $(DEFAULT_CC)
+@@ -36,7 +36,7 @@ CC= $(DEFAULT_CC)
+ # to slow down the C part by not omitting it. Debugging, tracebacks and
+ # unwinding are not affected -- the assembler part has frame unwind
+ # information and GCC emits it where needed (x64) or with -g (see CCDEBUG).
+-CCOPT= -O2 -fomit-frame-pointer
++#CCOPT= -O2 -fomit-frame-pointer
+ # Use this if you want to generate a smaller binary (but it's slower):
+ #CCOPT= -Os -fomit-frame-pointer
+ # Note: it's no longer recommended to use -O3 with GCC 4.x.
+@@ -47,7 +47,7 @@ CCOPT= -O2 -fomit-frame-pointer
+ # x86/x64 only: For GCC 4.2 or higher and if you don't intend to distribute
+ # the binaries to a different machine you could also use: -march=native
+ #
+-CCOPT_x86= -march=i686 -msse -msse2 -mfpmath=sse
++#CCOPT_x86= -march=i686 -msse -msse2 -mfpmath=sse
+ CCOPT_x64=
+ CCOPT_arm=
+ CCOPT_arm64=
diff --git a/lang/luajit-devel/files/patch-src_lj__ccallback.c b/lang/luajit-devel/files/patch-src_lj__ccallback.c
new file mode 100644
index 000000000000..40d0cc76b15b
--- /dev/null
+++ b/lang/luajit-devel/files/patch-src_lj__ccallback.c
@@ -0,0 +1,10 @@
+--- src/lj_ccallback.c.orig	2020-10-28 11:55:44 UTC
++++ src/lj_ccallback.c
+@@ -20,6 +20,7 @@
+ #include "lj_mcode.h"
+ #include "lj_trace.h"
+ #include "lj_vm.h"
++#include "lualib.h"
+ 
+ /* -- Target-specific handling of callback slots -------------------------- */
+ 
diff --git a/lang/luajit-devel/files/patch-src_lj__prng.c b/lang/luajit-devel/files/patch-src_lj__prng.c
new file mode 100644
index 000000000000..f22f32475546
--- /dev/null
+++ b/lang/luajit-devel/files/patch-src_lj__prng.c
@@ -0,0 +1,18 @@
+--- src/lj_prng.c.orig	2021-10-27 20:58:55.107726000 -0400
++++ src/lj_prng.c	2021-10-27 21:00:37.533971000 -0400
+@@ -109,6 +109,7 @@
+ #include <sys/syscall.h>
+ #else
+ 
++#ifndef LJ_TARGET_HAS_GETENTROPY
+ #if LJ_TARGET_OSX && !LJ_TARGET_IOS
+ /*
+ ** In their infinite wisdom Apple decided to disallow getentropy() in the
+@@ -120,6 +121,7 @@
+ #include <Availability.h>
+ #if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200
+ #define LJ_TARGET_HAS_GETENTROPY	1
++#endif
+ #endif
+ #endif
+ #elif (LJ_TARGET_BSD && !defined(__NetBSD__)) || LJ_TARGET_SOLARIS || LJ_TARGET_CYGWIN
diff --git a/lang/luajit-devel/pkg-descr b/lang/luajit-devel/pkg-descr
new file mode 100644
index 000000000000..8ecd78affa87
--- /dev/null
+++ b/lang/luajit-devel/pkg-descr
@@ -0,0 +1,3 @@
+LuaJIT is a Just-In-Time Compiler for the Lua programming language.
+
+WWW: https://luajit.org/luajit.html
diff --git a/lang/luajit-devel/pkg-plist b/lang/luajit-devel/pkg-plist
new file mode 100644
index 000000000000..018c0d90e318
--- /dev/null
+++ b/lang/luajit-devel/pkg-plist
@@ -0,0 +1,31 @@
+bin/luajit
+bin/luajit-%%VERSION%%
+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
+lib/libluajit-5.1.a
+lib/libluajit-5.1.so
+lib/libluajit-5.1.so.2
+lib/libluajit-5.1.so.%%SOVERSION%%
+libdata/pkgconfig/luajit.pc
+share/luajit-%%VERSION%%/jit/bc.lua
+share/luajit-%%VERSION%%/jit/bcsave.lua
+share/luajit-%%VERSION%%/jit/dis_arm.lua
+share/luajit-%%VERSION%%/jit/dis_arm64.lua
+share/luajit-%%VERSION%%/jit/dis_arm64be.lua
+share/luajit-%%VERSION%%/jit/dis_mips.lua
+share/luajit-%%VERSION%%/jit/dis_mips64.lua
+share/luajit-%%VERSION%%/jit/dis_mips64el.lua
+share/luajit-%%VERSION%%/jit/dis_mipsel.lua
+share/luajit-%%VERSION%%/jit/dis_ppc.lua
+share/luajit-%%VERSION%%/jit/dis_x64.lua
+share/luajit-%%VERSION%%/jit/dis_x86.lua
+share/luajit-%%VERSION%%/jit/dump.lua
+share/luajit-%%VERSION%%/jit/p.lua
+share/luajit-%%VERSION%%/jit/v.lua
+share/luajit-%%VERSION%%/jit/vmdef.lua
+share/luajit-%%VERSION%%/jit/zone.lua
+man/man1/luajit.1.gz