This is a list of changes between the released versions of LuaJIT.
-The current stable version is LuaJIT 2.0.4.
+The current stable version is LuaJIT 2.0.5.
Please check the @@ -74,6 +73,43 @@ to see whether newer versions are available.
LuaJIT 2.1.0-beta3 — 2017-05-01
+-
+
- Rewrite memory block allocator. +
- Add various extension from Lua 5.2/5.3. +
- Remove old Lua 5.0 compatibility defines. +
- Set arg table before evaluating LUA_INIT and -e chunks. +
- Fix FOLD rules for math.abs() and FP negation. +
- Fix soft-float math.abs() and negation. +
- Fix formatting of some small denormals at low precision. +
- LJ_GC64: Add JIT compiler support. +
- x64/LJ_GC64: Add JIT compiler backend. +
- x86/x64: Generate BMI2 shifts and rotates, if available. +
- Windows/x86: Add full exception interoperability. +
- ARM64: Add big-endian support. +
- ARM64: Add JIT compiler backend. +
- MIPS: Fix TSETR barrier. +
- MIPS: Support MIPS16 interlinking. +
- MIPS soft-float: Fix code generation for HREF. +
- MIPS64: Add MIPS64 hard-float JIT compiler backend. +
- MIPS64: Add MIPS64 hard-float/soft-float support to interpreter. +
- FFI: Compile bitfield loads/stores. +
- Various fixes common with the 2.0 branch. +
LuaJIT 2.1.0-beta2 — 2016-03-03
+-
+
- Enable trace stitching. +
- Use internal implementation for converting FP numbers to strings. +
- Parse Unicode escape '\u{XX...}' in string literals. +
- Add MIPS soft-float support. +
- Switch MIPS port to dual-number mode. +
- x86/x64: Add support for AES-NI, AVX and AVX2 to DynASM. +
- FFI: Add ssize_t declaration. +
- FFI: Parse #line NN and #NN. +
- Various minor fixes. +
LuaJIT 2.1.0-beta1 — 2015-08-25
This is a brief summary of the major changes in LuaJIT 2.1 compared to 2.0. @@ -86,12 +122,11 @@ Please take a look at the commit history for more details.
-
-
- Add trace stitching. +
- Add trace stitching (disabled for now).
- Compile various builtins: string.char(), string.reverse(), string.lower(), string.upper(), string.rep(), string.format(), table.concat(), bit.tohex(), getfenv(0), debug.getmetatable().
- Compile string.find() for fixed string searches (no patterns).
- Compile BC_TSETM, e.g. {1,2,3,f()}. @@ -113,7 +148,6 @@ Please take a look at the commit history for more details.
- x64: Add separate port of the interpreter to LJ_GC64 mode.
- x86/x64: Drop internal x87 math functions. Use libm functions.
- x86: Remove x87 support from interpreter. SSE2 is mandatory now. -
- x86/x64: Add support for AES-NI, AVX and AVX2 to DynASM.
- PPC/e500: Drop support for this architecture.
LuaJIT 2.0.5 — 2017-05-01
+-
+
- Add workaround for MSVC 2015 stdio changes. +
- Limit mcode alloc probing, depending on the available pool size. +
- Fix overly restrictive range calculation in mcode allocation. +
- Fix out-of-scope goto handling in parser. +
- Remove internal __mode = "K" and replace with safe check. +
- Add "proto" field to jit.util.funcinfo(). +
- Fix GC step size calculation. +
- Initialize uv->immutable for upvalues of loaded chunks. +
- Fix for cdata vs. non-cdata arithmetics/comparisons. +
- Drop leftover regs in 'for' iterator assignment, too. +
- Fix PHI remarking in SINK pass. +
- Don't try to record outermost pcall() return to lower frame. +
- Add guard for obscure aliasing between open upvalues and SSA slots. +
- Remove assumption that lj_math_random_step() doesn't clobber FPRs. +
- Fix handling of non-numeric strings in arithmetic coercions. +
- Fix recording of select(n, ...) with off-trace varargs +
- Fix install for cross-builds. +
- Don't allocate unused 2nd result register in JIT compiler backend. +
- Drop marks from replayed instructions when sinking. +
- Fix unsinking check. +
- Properly handle OOM in trace_save(). +
- Limit number of arguments given to io.lines() and fp:lines(). +
- Fix narrowing of TOBIT. +
- OSX: Fix build with recent XCode. +
- x86/x64: Don't spill an explicit REF_BASE in the IR. +
- x86/x64: Fix instruction length decoder. +
- x86/x64: Search for exit jumps with instruction length decoder. +
- ARM: Fix BLX encoding for Thumb interworking calls. +
- MIPS: Don't use RID_GP as a scratch register. +
- MIPS: Fix emitted code for U32 to float conversion. +
- MIPS: Backport workaround for compact unwind tables. +
- MIPS: Fix cross-endian jit.bcsave. +
- MIPS: Fix BC_ISNEXT fallback path. +
- MIPS: Fix use of ffgccheck delay slots in interpreter. +
- FFI: Fix FOLD rules for int64_t comparisons. +
- FFI: Fix SPLIT pass for CONV i64.u64. +
- FFI: Fix ipairs() recording. +
- FFI: Don't propagate qualifiers into subtypes of complex. +
LuaJIT 2.0.4 — 2015-05-14
- Fix stack check in narrowing optimization. @@ -797,7 +872,7 @@ no point in listing differences over earlier versions.
-Copyright © 2005-2015 Mike Pall +Copyright © 2005-2018 · Contact diff --git a/love/src/jni/LuaJIT-2.1/doc/contact.html b/love/src/jni/LuaJIT-2.1/doc/contact.html index d92c3e38..2aace4b5 100644 --- a/love/src/jni/LuaJIT-2.1/doc/contact.html +++ b/love/src/jni/LuaJIT-2.1/doc/contact.html @@ -3,8 +3,7 @@
+If you want to report bugs, propose fixes or suggest enhancements, +please use the +GitHub issue tracker. +
+Please send general questions to the » LuaJIT mailing list. +
+You can also send any questions you have directly to me:
@@ -86,7 +92,7 @@ xD("fyZKB8xv\"FJytmz8.KAB0u52D")Copyright
All documentation is -Copyright © 2005-2015 Mike Pall. +Copyright © 2005-2018 Mike Pall.
@@ -94,7 +100,7 @@ Copyright © 2005-2015 Mike Pall.-Copyright © 2005-2015 Mike Pall +Copyright © 2005-2018 · Contact diff --git a/love/src/jni/LuaJIT-2.1/doc/ext_c_api.html b/love/src/jni/LuaJIT-2.1/doc/ext_c_api.html index 91dd9efb..f27b9561 100644 --- a/love/src/jni/LuaJIT-2.1/doc/ext_c_api.html +++ b/love/src/jni/LuaJIT-2.1/doc/ext_c_api.html @@ -3,8 +3,7 @@
The third argument specifies the mode, which is 'or'ed with a flag. -The flag can be LUAJIT_MODE_OFF to turn a feature on, -LUAJIT_MODE_ON to turn a feature off, or +The flag can be LUAJIT_MODE_OFF to turn a feature off, +LUAJIT_MODE_ON to turn a feature on, or LUAJIT_MODE_FLUSH to flush cached code.
@@ -179,7 +178,7 @@ Also note that this mechanism is not without overhead.
-Copyright © 2005-2015 Mike Pall +Copyright © 2005-2018 · Contact diff --git a/love/src/jni/LuaJIT-2.1/doc/ext_ffi.html b/love/src/jni/LuaJIT-2.1/doc/ext_ffi.html index 1ff22363..de57bcf2 100644 --- a/love/src/jni/LuaJIT-2.1/doc/ext_ffi.html +++ b/love/src/jni/LuaJIT-2.1/doc/ext_ffi.html @@ -3,8 +3,7 @@
-Copyright © 2005-2015 Mike Pall +Copyright © 2005-2018 · Contact diff --git a/love/src/jni/LuaJIT-2.1/doc/ext_ffi_api.html b/love/src/jni/LuaJIT-2.1/doc/ext_ffi_api.html index b095c05f..54ff0ce1 100644 --- a/love/src/jni/LuaJIT-2.1/doc/ext_ffi_api.html +++ b/love/src/jni/LuaJIT-2.1/doc/ext_ffi_api.html @@ -3,8 +3,7 @@
-Copyright © 2005-2015 Mike Pall +Copyright © 2005-2018 · Contact diff --git a/love/src/jni/LuaJIT-2.1/doc/ext_ffi_semantics.html b/love/src/jni/LuaJIT-2.1/doc/ext_ffi_semantics.html index f65fe8f3..4b03da98 100644 --- a/love/src/jni/LuaJIT-2.1/doc/ext_ffi_semantics.html +++ b/love/src/jni/LuaJIT-2.1/doc/ext_ffi_semantics.html @@ -3,8 +3,7 @@
The main use for parameterized types are libraries implementing abstract data types -(» example), +(example), similar to what can be achieved with C++ template metaprogramming. Another use case are derived types of anonymous structs, which avoids pollution of the global struct namespace. @@ -1221,13 +1220,12 @@ The following operations are currently not compiled and may exhibit suboptimal performance, especially when used in inner loops:
-
-
- Bitfield accesses and initializations.
- Vector operations.
- Table initializers.
- Initialization of nested struct/union types.
- Non-default initialization of VLA/VLS or large C types (> 128 bytes or > 16 array elements. -
- Conversions from lightuserdata to void *. +
- Bitfield initializations.
- Pointer differences for element sizes that are not a power of two.
- Calls to C functions with aggregates passed or returned by @@ -1253,7 +1251,7 @@ compiled.
-Copyright © 2005-2015 Mike Pall +Copyright © 2005-2018 · Contact diff --git a/love/src/jni/LuaJIT-2.1/doc/ext_ffi_tutorial.html b/love/src/jni/LuaJIT-2.1/doc/ext_ffi_tutorial.html index e3f01460..e0b0821f 100644 --- a/love/src/jni/LuaJIT-2.1/doc/ext_ffi_tutorial.html +++ b/love/src/jni/LuaJIT-2.1/doc/ext_ffi_tutorial.html @@ -3,8 +3,7 @@
-Copyright © 2005-2015 Mike Pall +Copyright © 2005-2018 · Contact diff --git a/love/src/jni/LuaJIT-2.1/doc/ext_jit.html b/love/src/jni/LuaJIT-2.1/doc/ext_jit.html index a569dd57..73cd3c2a 100644 --- a/love/src/jni/LuaJIT-2.1/doc/ext_jit.html +++ b/love/src/jni/LuaJIT-2.1/doc/ext_jit.html @@ -3,8 +3,7 @@
jit.arch
Contains the target architecture name: -"x86", "x64", "arm", "ppc", or "mips". +"x86", "x64", "arm", "arm64", "ppc", "mips" or "mips64".
jit.opt.* — JIT compiler optimization control
@@ -191,7 +190,7 @@ if you want to know more.-Copyright © 2005-2015 Mike Pall +Copyright © 2005-2018 · Contact diff --git a/love/src/jni/LuaJIT-2.1/doc/ext_profiler.html b/love/src/jni/LuaJIT-2.1/doc/ext_profiler.html index be63662b..d34ce6d4 100644 --- a/love/src/jni/LuaJIT-2.1/doc/ext_profiler.html +++ b/love/src/jni/LuaJIT-2.1/doc/ext_profiler.html @@ -3,8 +3,7 @@
-Copyright © 2005-2015 Mike Pall +Copyright © 2005-2018 · Contact diff --git a/love/src/jni/LuaJIT-2.1/doc/extensions.html b/love/src/jni/LuaJIT-2.1/doc/extensions.html index e034e1dc..35bd6c92 100644 --- a/love/src/jni/LuaJIT-2.1/doc/extensions.html +++ b/love/src/jni/LuaJIT-2.1/doc/extensions.html @@ -3,8 +3,7 @@
Note: LJ_GC64 mode requires a different frame layout, which implies -a different, incompatible bytecode format for ports that use this mode (e.g. -ARM64). This may be rectified in the future. +a different, incompatible bytecode format for all 64 bit ports. This may be +rectified in the future.
table.new(narray, nhash) allocates a pre-sized table
@@ -253,6 +252,10 @@ for every call. The result is uniformly distributed between 0.0 and 1.0. It's correctly scaled up and rounded for math.random(n [,m]) to preserve uniformity. ++Important: Neither this nor any other PRNG based on the simplistic +math.random() API is suitable for cryptographic use. +
io.* functions handle 64 bit file offsets
@@ -291,8 +294,8 @@ enabled:
Note: this provides only partial compatibility with Lua 5.2 at the @@ -349,6 +374,14 @@ break the Lua/C API and ABI (e.g. _ENV). LuaJIT supports some extensions from Lua 5.3:
- Unicode escape '\u{XX...}' embeds the UTF-8 encoding in string literals. +
- The argument table arg can be read (and modified) by LUA_INIT and -e chunks. +
- io.read() and file:read() accept formats with or without a leading *. +
- assert() accepts any type of error object. +
- table.move(a1, f, e, t [,a2]). +
- coroutine.isyieldable(). +
- Lua/C API extensions: +lua_isyieldable() +
C++ Exception Interoperability
@@ -365,25 +398,30 @@ the toolchain used to compile LuaJIT:-Copyright © 2005-2015 Mike Pall +Copyright © 2005-2018 · Contact diff --git a/love/src/jni/LuaJIT-2.1/doc/faq.html b/love/src/jni/LuaJIT-2.1/doc/faq.html index aebaef57..ad88c493 100644 --- a/love/src/jni/LuaJIT-2.1/doc/faq.html +++ b/love/src/jni/LuaJIT-2.1/doc/faq.html @@ -3,8 +3,7 @@
-Copyright © 2005-2015 Mike Pall +Copyright © 2005-2018 · Contact diff --git a/love/src/jni/LuaJIT-2.1/doc/install.html b/love/src/jni/LuaJIT-2.1/doc/install.html index a4cc7215..9e00b231 100644 --- a/love/src/jni/LuaJIT-2.1/doc/install.html +++ b/love/src/jni/LuaJIT-2.1/doc/install.html @@ -3,8 +3,7 @@
Clang
WinSDK
MinGW, Cygwin
MinGW, Cygwin
ORBIS (PS4)
Clang
WinSDK v7.0
Durango (Xbox One)
Durango (Xbox One)
ARM9E+
MIPS64
Please read the instructions given in these files, before changing any settings.
++All LuaJIT 64 bit ports use 64 bit GC objects by default (LJ_GC64). +For x64, you can select the old 32-on-64 bit mode by adding +XCFLAGS=-DLUAJIT_DISABLE_GC64 to the make command. +Please check the note about the +bytecode format differences, too. +
POSIX Systems (Linux, OSX, *BSD etc.)
Prerequisites
@@ -190,8 +196,8 @@ open a terminal window and change to this directory. Now unpack the archive and change to the newly created directory:-tar zxf LuaJIT-2.0.4.tar.gz -cd LuaJIT-2.0.4+tar zxf LuaJIT-2.0.5.tar.gz +cd LuaJIT-2.0.5
Building LuaJIT
The supplied Makefiles try to auto-detect the settings needed for your @@ -202,7 +208,7 @@ which is probably the default on your system, anyway. Simply run: make
-This always builds a native x86, x64 or PPC binary, depending on the host OS +This always builds a native binary, depending on the host OS you're running this command on. Check the section on cross-compilation for more options.
@@ -215,8 +221,8 @@ You can add an extra prefix to the search paths by appending the make PREFIX=/home/myself/lj2-Note for OSX: if the MACOSX_DEPLOYMENT_TARGET environment -variable is not set, then it's forced to 10.4. +Note for OSX: you must set the MACOSX_DEPLOYMENT_TARGET +environment variable to a value supported by your toolchain.
Installing LuaJIT
@@ -246,17 +252,7 @@ Either install one of the open source SDKs (» MinGW or » Cygwin), which come with a modified GCC plus the required development headers. -
--Or install Microsoft's Visual C++ (MSVC). The freely downloadable -» Express Edition -works just fine, but only contains an x86 compiler. -
--The freely downloadable -» Windows SDK -only comes with command line tools, but this is all you need to build LuaJIT. -It contains x86 and x64 compilers. +Or install Microsoft's Visual Studio (MSVC).
Next, download the source package and unpack it using an archive manager @@ -264,7 +260,7 @@ Next, download the source package and unpack it using an archive manager
Building with MSVC
-Open a "Visual Studio .NET Command Prompt", cd to the +Open a "Visual Studio Command Prompt" (either x86 or x64), cd to the directory where you've unpacked the sources and run these commands:
@@ -272,30 +268,7 @@ cd src msvcbuild
-Then follow the installation instructions below. -
-Building with the Windows SDK
--Open a "Windows SDK Command Shell" and select the x86 compiler: -
--setenv /release /x86 --
-Or select the x64 compiler: -
--setenv /release /x64 --
-Then cd to the directory where you've unpacked the sources -and run these commands: -
--cd src -msvcbuild --
+Check the msvcbuild.bat file for more options. Then follow the installation instructions below.
Building with MinGW or Cygwin
@@ -333,22 +306,36 @@ directory where luajit.exe is installedCross-compiling LuaJIT
-The GNU Makefile-based build system allows cross-compiling on any host -for any supported target, as long as both architectures have the same -pointer size. If you want to cross-compile to any 32 bit target on an -x64 OS, you need to install the multilib development package (e.g. -libc6-dev-i386 on Debian/Ubuntu) and build a 32 bit host part -(HOST_CC="gcc -m32"). +First, let's clear up some terminology:
+-
+
- Host: This is your development system, usually based on a x64 or x86 CPU. +
- Target: This is the target system you want LuaJIT to run on, e.g. Android/ARM. +
- Toolchain: This comprises a C compiler, linker, assembler and a matching C library. +
- Host (or system) toolchain: This is the toolchain used to build native binaries for your host system. +
- Cross-compile toolchain: This is the toolchain used to build binaries for the target system. They can only be run on the target system. +
+The GNU Makefile-based build system allows cross-compiling on any host +for any supported target: +
+-
+
- Yes, you need a toolchain for both your host and your target! +
- Both host and target architectures must have the same pointer size. +
- E.g. if you want to cross-compile to a 32 bit target on a 64 bit host, you need to install the multilib development package (e.g. libc6-dev-i386 on Debian/Ubuntu) and build a 32 bit host part (HOST_CC="gcc -m32"). +
- 64 bit targets always require compilation on a 64 bit host. +
You need to specify TARGET_SYS whenever the host OS and the -target OS differ, or you'll get assembler or linker errors. E.g. if -you're compiling on a Windows or OSX host for embedded Linux or Android, -you need to add TARGET_SYS=Linux to the examples below. For a -minimal target OS, you may need to disable the built-in allocator in -src/Makefile and use TARGET_SYS=Other. The examples -below only show some popular targets — please check the comments -in src/Makefile for more details. +target OS differ, or you'll get assembler or linker errors: +
+-
+
- E.g. if you're compiling on a Windows or OSX host for embedded Linux or Android, you need to add TARGET_SYS=Linux to the examples below. +
- For a minimal target OS, you may need to disable the built-in allocator in src/Makefile and use TARGET_SYS=Other. +
- Don't forget to specify the same TARGET_SYS for the install step, too. +
+Here are some examples where host and target have the same CPU:
# Cross-compile to a 32 bit binary on a multilib x64 OS @@ -366,83 +353,71 @@ use the canonical toolchain triplets for Linux.Since there's often no easy way to detect CPU features at runtime, it's -important to compile with the proper CPU or architecture settings. You -can specify these when building the toolchain yourself. Or add --mcpu=... or -march=... to TARGET_CFLAGS. For -ARM it's important to have the correct -mfloat-abi=... setting, -too. Otherwise LuaJIT may not run at the full performance of your target -CPU. +important to compile with the proper CPU or architecture settings: + +
-
+
- The best way to get consistent results is to specify the correct settings when building the toolchain yourself. +
- For a pre-built, generic toolchain add -mcpu=... or -march=... and other necessary flags to TARGET_CFLAGS. +
- For ARM it's important to have the correct -mfloat-abi=... setting, too. Otherwise LuaJIT may not run at the full performance of your target CPU. +
- For MIPS it's important to select a supported ABI (o32 on MIPS32, n64 on MIPS64) and consistently compile your project either with hard-float or soft-float compiler settings. +
+Here are some examples for targets with a different CPU than the host:
# ARM soft-float
make HOST_CC="gcc -m32" CROSS=arm-linux-gnueabi- \
TARGET_CFLAGS="-mfloat-abi=soft"
-# ARM soft-float ABI with VFP (example for Cortex-A8)
+# ARM soft-float ABI with VFP (example for Cortex-A9)
make HOST_CC="gcc -m32" CROSS=arm-linux-gnueabi- \
- TARGET_CFLAGS="-mcpu=cortex-a8 -mfloat-abi=softfp"
+ TARGET_CFLAGS="-mcpu=cortex-a9 -mfloat-abi=softfp"
-# ARM hard-float ABI with VFP (armhf, requires recent toolchain)
+# ARM hard-float ABI with VFP (armhf, most modern toolchains)
make HOST_CC="gcc -m32" CROSS=arm-linux-gnueabihf-
-# ARM64 (requires x64 host)
+# ARM64
make CROSS=aarch64-linux-
# PPC
make HOST_CC="gcc -m32" CROSS=powerpc-linux-gnu-
-# MIPS big-endian
+# MIPS32 big-endian
make HOST_CC="gcc -m32" CROSS=mips-linux-
-# MIPS little-endian
+# MIPS32 little-endian
make HOST_CC="gcc -m32" CROSS=mipsel-linux-
+
+# MIPS64 big-endian
+make CROSS=mips-linux- TARGET_CFLAGS="-mips64r2 -mabi=64"
+# MIPS64 little-endian
+make CROSS=mipsel-linux- TARGET_CFLAGS="-mips64r2 -mabi=64"
-You can cross-compile for Android using the » Android NDK. -The environment variables need to match the install locations and the -desired target platform. E.g. Android 4.0 corresponds to ABI level 14. -For details check the folder docs in the NDK directory. -
--Only a few common variations for the different CPUs, ABIs and platforms -are listed. Please use your own judgement for which combination you want -to build/deploy or which lowest common denominator you want to pick: +You can cross-compile for Android using the » Android NDK. +Please adapt the environment variables to match the install locations and the +desired target platform. E.g. Android 4.1 corresponds to ABI level 16.
-# Android/ARM, armeabi (ARMv5TE soft-float), Android 2.2+ (Froyo) -NDK=/opt/android/ndk -NDKABI=8 -NDKVER=$NDK/toolchains/arm-linux-androideabi-4.6 -NDKP=$NDKVER/prebuilt/linux-x86/bin/arm-linux-androideabi- -NDKF="--sysroot $NDK/platforms/android-$NDKABI/arch-arm" -make HOST_CC="gcc -m32" CROSS=$NDKP TARGET_FLAGS="$NDKF" +# Android/ARM64, aarch64, Android 5.0+ (L) +NDKDIR=/opt/android/ndk +NDKBIN=$NDKDIR/toolchains/llvm/prebuilt/linux-x86_64/bin +NDKCROSS=$NDKBIN/aarch64-linux-android- +NDKCC=$NDKBIN/aarch64-linux-android21-clang +make CROSS=$NDKCROSS \ + STATIC_CC=$NDKCC DYNAMIC_CC="$NDKCC -fPIC" \ + TARGET_LD=$NDKCC -# Android/ARM, armeabi-v7a (ARMv7 VFP), Android 4.0+ (ICS) -NDK=/opt/android/ndk -NDKABI=14 -NDKVER=$NDK/toolchains/arm-linux-androideabi-4.6 -NDKP=$NDKVER/prebuilt/linux-x86/bin/arm-linux-androideabi- -NDKF="--sysroot $NDK/platforms/android-$NDKABI/arch-arm" -NDKARCH="-march=armv7-a -mfloat-abi=softfp -Wl,--fix-cortex-a8" -make HOST_CC="gcc -m32" CROSS=$NDKP TARGET_FLAGS="$NDKF $NDKARCH" - -# Android/MIPS, mips (MIPS32R1 hard-float), Android 4.0+ (ICS) -NDK=/opt/android/ndk -NDKABI=14 -NDKVER=$NDK/toolchains/mipsel-linux-android-4.6 -NDKP=$NDKVER/prebuilt/linux-x86/bin/mipsel-linux-android- -NDKF="--sysroot $NDK/platforms/android-$NDKABI/arch-mips" -make HOST_CC="gcc -m32" CROSS=$NDKP TARGET_FLAGS="$NDKF" - -# Android/x86, x86 (i686 SSE3), Android 4.0+ (ICS) -NDK=/opt/android/ndk -NDKABI=14 -NDKVER=$NDK/toolchains/x86-4.6 -NDKP=$NDKVER/prebuilt/linux-x86/bin/i686-linux-android- -NDKF="--sysroot $NDK/platforms/android-$NDKABI/arch-x86" -make HOST_CC="gcc -m32" CROSS=$NDKP TARGET_FLAGS="$NDKF" +# Android/ARM, armeabi-v7a (ARMv7 VFP), Android 4.1+ (JB) +NDKDIR=/opt/android/ndk +NDKBIN=$NDKDIR/toolchains/llvm/prebuilt/linux-x86_64/bin +NDKCROSS=$NDKBIN/arm-linux-androideabi- +NDKCC=$NDKBIN/armv7a-linux-androideabi16-clang +make HOST_CC="gcc -m32" CROSS=$NDKCROSS \ + STATIC_CC=$NDKCC DYNAMIC_CC="$NDKCC -fPIC" \ + TARGET_LD=$NDKCC
-You can cross-compile for iOS 3.0+ (iPhone/iPad) using the » iOS SDK: +You can cross-compile for iOS 3.0+ (iPhone/iPad) using the » iOS SDK:
Note: the JIT compiler is disabled for iOS, because regular iOS Apps @@ -452,18 +427,12 @@ much slower than the JIT compiler. Please complain to Apple, not me. Or use Android. :-p
-# iOS/ARM (32 bit) -ISDKP=$(xcrun --sdk iphoneos --show-sdk-path) -ICC=$(xcrun --sdk iphoneos --find clang) -ISDKF="-arch armv7 -isysroot $ISDKP" -make HOST_CC="clang -m32 -arch i386" CROSS="$(dirname $ICC)/" \ - TARGET_FLAGS="$ISDKF" TARGET_SYS=iOS - # iOS/ARM64 ISDKP=$(xcrun --sdk iphoneos --show-sdk-path) ICC=$(xcrun --sdk iphoneos --find clang) ISDKF="-arch arm64 -isysroot $ISDKP" -make CROSS="$(dirname $ICC)/" TARGET_FLAGS="$ISDKF" TARGET_SYS=iOS +make DEFAULT_CC=clang CROSS="$(dirname $ICC)/" \ + TARGET_FLAGS="$ISDKF" TARGET_SYS=iOS
Cross-compiling for consoles
@@ -560,14 +529,11 @@ intend to load Lua/C modules at runtime.-pagezero_size 10000 -image_base 100000000-Also, it's recommended to rebase all (self-compiled) shared libraries -which are loaded at runtime on OSX/x64 (e.g. C extension modules for Lua). -See: man rebase
Additional hints for initializing LuaJIT using the C API functions:
@@ -653,7 +619,7 @@ to me (the upstream) and not you (the package maintainer), anyway.-Copyright © 2005-2015 Mike Pall +Copyright © 2005-2018 · Contact diff --git a/love/src/jni/LuaJIT-2.1/doc/luajit.html b/love/src/jni/LuaJIT-2.1/doc/luajit.html index 8a653e2d..a85c2015 100644 --- a/love/src/jni/LuaJIT-2.1/doc/luajit.html +++ b/love/src/jni/LuaJIT-2.1/doc/luajit.html @@ -3,8 +3,7 @@
-LuaJIT is Copyright © 2005-2015 Mike Pall, released under the +LuaJIT is Copyright © 2005-2018 Mike Pall, released under the » MIT open source license.
@@ -169,10 +168,10 @@ LuaJIT is Copyright © 2005-2015 Mike Pall, released under the
| GCC | CLANG LLVM | MSVC |
| GCC | Clang LLVM | MSVC |
| x86 | x64 | ARM | ARM64 | PPC | MIPS |
| x86 x64 | ARM ARM64 | PPC | MIPS32 MIPS64 |
| Lua 5.1 API+ABI | + JIT | + BitOp | + FFI | Drop-in DLL/.so |