From 9bf280fa934b0d3df0adf86cc35748859524a153 Mon Sep 17 00:00:00 2001 From: TSnake41 Date: Sat, 11 Apr 2020 12:25:44 +0200 Subject: [PATCH 1/3] 3ds: add luajit --- 3ds/luajit/PKGBUILD | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 3ds/luajit/PKGBUILD diff --git a/3ds/luajit/PKGBUILD b/3ds/luajit/PKGBUILD new file mode 100644 index 00000000..85941603 --- /dev/null +++ b/3ds/luajit/PKGBUILD @@ -0,0 +1,44 @@ +# Contributor: Teddy Astie + +pkgname=3ds-luajit +pkgver=2.0.5 +pkgrel=1 +pkgdesc='Just-in-time compiler and drop-in replacement for Lua 5.1 (for Nintendo 3DS homebrew development)' +arch=('any') +url='http://luajit.org/' +license=('MIT') +options=(!strip) +makedepends=('3ds-pkg-config' 'devkitpro-pkgbuild-helpers' '3ds-libdl') +source=("https://luajit.org/download/LuaJIT-$pkgver.tar.gz") +sha256sums=('874b1f8297c697821f561f9b73b57ffd419ed8f4278c82e05b48806d30c1e979') +groups=('3ds-portlibs') + +build() { + cd LuaJIT-$pkgver + source /opt/devkitpro/3dsvars.sh + + # We need to "patch" lj_arch.h to assume the existence of libdl on a non-POSIX platform. + # This looks weird, but in the pkg-config file, libdl is linked regardless if it is + # actually used or not. This patch harmonize the implementation and allow to use the full + # LuaJIT FFI API (based on libdl). + # + # Redefine LJ_TARGET_DLOPEN with 1 (instead of LJ_TARGET_POSIX) + echo -e "#undef LJ_TARGET_DLOPEN\n#define LJ_TARGET_DLOPEN 1\n" >> src/lj_arch.h + + echo $CFLAGS + touch src/luajit src/jit/vmdef.lua + make TARGET_SYS=OTHER TARGET_FLAGS="$CFLAGS -I$PORTLIBS_PREFIX/include" TARGET_T=libluajit.a BUILDMODE=static \ + HOST_CC="gcc -m32" XCFLAGS="-DLUAJIT_USE_SYSMALLOC" CFLAGS="" LDFLAGS="" LIBS="" HOST_CFLAGS="" HOST_LIBS="" HOST_LDFLAGS="" \ + CROSS=arm-none-eabi- PREFIX=${PORTLIBS_PREFIX} DESTDIR=$pkgdir amalg +} + +package() { + cd LuaJIT-$pkgver + source /opt/devkitpro/3dsvars.sh + + make PREFIX=$PORTLIBS_PREFIX DESTDIR=$pkgdir INSTALL_DEP= install + + cd $pkgdir$PORTLIBS_PREFIX + + rm -rf bin share lib/lua +} From 32d06e47abc1d34e97b4f68985bfeedb30db4781 Mon Sep 17 00:00:00 2001 From: TSnake41 Date: Tue, 14 Apr 2020 15:28:38 +0200 Subject: [PATCH 2/3] Cleaned up PKGBUILD. --- 3ds/luajit/PKGBUILD | 25 ++++++++++--------------- 3ds/luajit/luajit.pc.patch | 9 +++++++++ 2 files changed, 19 insertions(+), 15 deletions(-) create mode 100644 3ds/luajit/luajit.pc.patch diff --git a/3ds/luajit/PKGBUILD b/3ds/luajit/PKGBUILD index 85941603..00a1caca 100644 --- a/3ds/luajit/PKGBUILD +++ b/3ds/luajit/PKGBUILD @@ -8,28 +8,24 @@ arch=('any') url='http://luajit.org/' license=('MIT') options=(!strip) -makedepends=('3ds-pkg-config' 'devkitpro-pkgbuild-helpers' '3ds-libdl') -source=("https://luajit.org/download/LuaJIT-$pkgver.tar.gz") -sha256sums=('874b1f8297c697821f561f9b73b57ffd419ed8f4278c82e05b48806d30c1e979') +makedepends=('3ds-pkg-config' 'devkitpro-pkgbuild-helpers') +source=("https://luajit.org/download/LuaJIT-$pkgver.tar.gz" "luajit.pc.patch") +sha256sums=('874b1f8297c697821f561f9b73b57ffd419ed8f4278c82e05b48806d30c1e979' + 'b993f4bfb7dab888f909f6973996783d481d4cf767eca1d8a68df45202fcab9e') groups=('3ds-portlibs') build() { cd LuaJIT-$pkgver source /opt/devkitpro/3dsvars.sh - # We need to "patch" lj_arch.h to assume the existence of libdl on a non-POSIX platform. - # This looks weird, but in the pkg-config file, libdl is linked regardless if it is - # actually used or not. This patch harmonize the implementation and allow to use the full - # LuaJIT FFI API (based on libdl). - # - # Redefine LJ_TARGET_DLOPEN with 1 (instead of LJ_TARGET_POSIX) - echo -e "#undef LJ_TARGET_DLOPEN\n#define LJ_TARGET_DLOPEN 1\n" >> src/lj_arch.h + patch etc/luajit.pc ../luajit.pc.patch - echo $CFLAGS touch src/luajit src/jit/vmdef.lua - make TARGET_SYS=OTHER TARGET_FLAGS="$CFLAGS -I$PORTLIBS_PREFIX/include" TARGET_T=libluajit.a BUILDMODE=static \ - HOST_CC="gcc -m32" XCFLAGS="-DLUAJIT_USE_SYSMALLOC" CFLAGS="" LDFLAGS="" LIBS="" HOST_CFLAGS="" HOST_LIBS="" HOST_LDFLAGS="" \ - CROSS=arm-none-eabi- PREFIX=${PORTLIBS_PREFIX} DESTDIR=$pkgdir amalg + make BUILDMODE=static \ + TARGET_FLAGS="$CFLAGS -I$PORTLIBS_PREFIX/include" TARGET_T=libluajit.a \ + CFLAGS="" LDFLAGS="" LIBS="" HOST_CFLAGS="" HOST_LIBS="" HOST_LDFLAGS="" \ + HOST_CC="gcc -m32" XCFLAGS="-DLUAJIT_USE_SYSMALLOC" CROSS=${TOOL_PREFIX} \ + amalg } package() { @@ -39,6 +35,5 @@ package() { make PREFIX=$PORTLIBS_PREFIX DESTDIR=$pkgdir INSTALL_DEP= install cd $pkgdir$PORTLIBS_PREFIX - rm -rf bin share lib/lua } diff --git a/3ds/luajit/luajit.pc.patch b/3ds/luajit/luajit.pc.patch new file mode 100644 index 00000000..6c27ca59 --- /dev/null +++ b/3ds/luajit/luajit.pc.patch @@ -0,0 +1,9 @@ +--- etc/luajit.pc 2020-04-14 15:22:35.324534900 +0200 ++++ etc/luajit-patched.pc 2020-04-14 15:22:39.540172300 +0200 +@@ -21,5 +21,5 @@ + Version: ${version} + Requires: + Libs: -L${libdir} -l${libname} +-Libs.private: -Wl,-E -lm -ldl ++Libs.private: -Wl,-E -lm + Cflags: -I${includedir} From fac03b3eec4020a08723c90099c8342f25877163 Mon Sep 17 00:00:00 2001 From: TSnake41 Date: Tue, 14 Apr 2020 18:38:20 +0200 Subject: [PATCH 3/3] Use sed instead of a patch. --- 3ds/luajit/PKGBUILD | 8 ++++---- 3ds/luajit/luajit.pc.patch | 9 --------- 2 files changed, 4 insertions(+), 13 deletions(-) delete mode 100644 3ds/luajit/luajit.pc.patch diff --git a/3ds/luajit/PKGBUILD b/3ds/luajit/PKGBUILD index 00a1caca..22b2a366 100644 --- a/3ds/luajit/PKGBUILD +++ b/3ds/luajit/PKGBUILD @@ -9,16 +9,16 @@ url='http://luajit.org/' license=('MIT') options=(!strip) makedepends=('3ds-pkg-config' 'devkitpro-pkgbuild-helpers') -source=("https://luajit.org/download/LuaJIT-$pkgver.tar.gz" "luajit.pc.patch") -sha256sums=('874b1f8297c697821f561f9b73b57ffd419ed8f4278c82e05b48806d30c1e979' - 'b993f4bfb7dab888f909f6973996783d481d4cf767eca1d8a68df45202fcab9e') +source=("https://luajit.org/download/LuaJIT-$pkgver.tar.gz") +sha256sums=('874b1f8297c697821f561f9b73b57ffd419ed8f4278c82e05b48806d30c1e979') groups=('3ds-portlibs') build() { cd LuaJIT-$pkgver source /opt/devkitpro/3dsvars.sh - patch etc/luajit.pc ../luajit.pc.patch + # Remove link options. + sed -i -e "s| *-Wl,-E||g" -e "s|-ldl||g" etc/luajit.pc touch src/luajit src/jit/vmdef.lua make BUILDMODE=static \ diff --git a/3ds/luajit/luajit.pc.patch b/3ds/luajit/luajit.pc.patch deleted file mode 100644 index 6c27ca59..00000000 --- a/3ds/luajit/luajit.pc.patch +++ /dev/null @@ -1,9 +0,0 @@ ---- etc/luajit.pc 2020-04-14 15:22:35.324534900 +0200 -+++ etc/luajit-patched.pc 2020-04-14 15:22:39.540172300 +0200 -@@ -21,5 +21,5 @@ - Version: ${version} - Requires: - Libs: -L${libdir} -l${libname} --Libs.private: -Wl,-E -lm -ldl -+Libs.private: -Wl,-E -lm - Cflags: -I${includedir}