From 5743edf3b014599c16da6c3725e06e5820b59d23 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Mon, 18 Apr 2022 01:54:00 +0200 Subject: Cleanup of system and architecture support docs. --- doc/install.html | 248 ++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 183 insertions(+), 65 deletions(-) diff --git a/doc/install.html b/doc/install.html index 02e0405a..bf40bb2d 100644 --- a/doc/install.html +++ b/doc/install.html @@ -14,25 +14,20 @@ table.compat { } table.compat td { border: 1px solid #bfcfff; - height: 2.5em; + height: 1.5em; } table.compat tr.compathead td { font-weight: bold; border-bottom: 2px solid #bfcfff; } -tr.compathead td.compatos { - vertical-align: top; +td.compatname, td.compatver { + width: 10%; } -table.compat td.compatcpu { - width: 18%; - border-right: 2px solid #bfcfff; +td.compatbits { + width: 5%; } -td.compatos { +td.compatx { width: 21%; - vertical-align: middle; -} -td.compatno { - background-color: #d0d0d0; } @@ -91,62 +86,198 @@ For the impatient (on POSIX systems):
 make && sudo make install
 
+ +

Requirements

+

Systems

+

+LuaJIT currently builds out-of-the box on most systems: +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OSMin. VersionRequirementsLuaJIT Versions
Windows7x86 or x64, ARM64: TBAv2.0 –
Linux  v2.0 –
*BSD  v2.0 –
macOS (OSX)10.4 v2.1 –
POSIX mmap, dlopenv2.0 –
Android4.0Recent Android NDKv2.0 –
iOS3.0Xcode iOS SDKv2.1 –
PS3 PS3 SDKv2.0 – v2.1 EOL
PS4 PS4 SDK (ORBIS)v2.0 –
PS5 PS5 SDK (PROSPERO)v2.1 –
PS Vita PS Vita SDK (PSP2)v2.0 – v2.1 EOL
Xbox 360 Xbox 360 SDK (XEDK)v2.0 – v2.1 EOL
Xbox One Xbox One SDK (DURANGO)v2.1 –

-LuaJIT currently builds out-of-the box on most systems. -Here's the compatibility matrix for the supported combinations of -operating systems, CPUs and compilers: +The codebase has compatibility defines for some more systems, but +without official support.

+

Toolchains

+

+Building LuaJIT requires a recent toolchain based on GCC, Clang/LLVM or +MSVC++. +

+

+The Makefile-based build system requires GNU Make and supports +cross-builds. Batch files are provided for MSVC++ builds and console +cross-builds. +

+

CPU Architectures

- - - - - + + + + + - - - - - + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + + + + + + + + + + + + + + +
CPU / OSLinux or
Android
*BSD, OthermacOS 10.4+ or
iOS 3.0+
Windows XP
or later
CPUBitsRequirementsVariantsLuaJIT Versions
x86 (32 bit)GCC 4.x+
GCC 3.4
GCC 4.x+
GCC 3.4
XCode 5.0+
Clang
MSVC
MinGW, Cygwin
x8632v2.1+: SSE2 v2.0 –
x6464  v2.0 –
ARM32ARMv5+, ARM9E+hard-fp + soft-fpv2.0 –
x64 (64 bit)GCC 4.x+ORBIS (PS4)XCode 5.0+
Clang
MSVCARM6464 ARM64le + ARM64bev2.1 –
ARMv5+
ARM9E+
GCC 4.2+GCC 4.2+
PSP2 (PS VITA)
XCode 5.0+
Clang
 PPC3232 hard-fp + soft-fpv2.0 – v2.1 EOL
PPCGCC 4.3+GCC 4.3+
GCC 4.1 (PS3)
 XEDK (Xbox 360)PPC/e50032e500v2 v2.0 EOL
PPC/e500v2GCC 4.3+GCC 4.3+  MIPS3232MIPS32r1 – r5hard-fp + soft-fpv2.0 –
MIPSGCC 4.3+GCC 4.3+  MIPS6464MIPS64r1 – r5hard-fp + soft-fpv2.1 –
MIPS6464MIPS64r6hard-fp + soft-fpv2.1 EOL
RISC-V64RVA22+ TBA
+

+There are no plans to add historic architectures or to continue support +for end-of-life (EOL) architectures, for which no new CPUs are commonly +available anymore. Likewise, there are no plans to support marginal +and/or de-facto-dead architectures. +

Configuring LuaJIT

@@ -199,7 +330,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.

@@ -212,12 +343,9 @@ You can add an extra prefix to the search paths by appending the make PREFIX=/home/myself/lj2

-Note for macOS: you must set the MACOSX_DEPLOYMENT_TARGET -environment variable to a value supported by your toolchain: +Please use the LuaJIT 2.1 branch to compile for +macOS (OSX).

-
-MACOSX_DEPLOYMENT_TARGET=XX.YY make
-

Installing LuaJIT

The top-level Makefile installs LuaJIT by default under @@ -470,16 +598,6 @@ the DLL). You may link LuaJIT statically on Windows only if you don't intend to load Lua/C modules at runtime. -

  • -Important: this relates to LuaJIT 2.0 only — use LuaJIT 2.1 to -avoid these complications.
    -If you're building a 64 bit application on macOS which links directly or -indirectly against LuaJIT, you need to link your main executable -with these flags: -
    --pagezero_size 10000 -image_base 100000000
    -
    -
  • Additional hints for initializing LuaJIT using the C API functions: