<pre class="code">
make && sudo make install
</pre>
-<td class="compatname"><a href="#osx">macOS (OSX)</a></td>
+
+ <h2 id="req">Requirements</h2>
+ <h3 id="systems">Systems</h3>
+ <p>
+ LuaJIT currently builds out-of-the box on most systems:
+ </p>
+ <table class="compat">
+ <tr class="compathead">
+ <td class="compatname">OS</td>
+ <td class="compatver">Min. Version</td>
+ <td class="compatx">Requirements</td>
+ <td class="compatx">LuaJIT Versions</td>
+ </tr>
+ <tr class="odd separate">
+ <td class="compatname"><a href="#windows">Windows</a></td>
+ <td class="compatver">7</td>
+ <td class="compatx">x86 or x64, ARM64: TBA</td>
+ <td class="compatx">v2.0 –</td>
+ </tr>
+ <tr class="even">
+ <td class="compatname"><a href="#posix">Linux</a></td>
+ <td class="compatver"> </td>
+ <td class="compatx"> </td>
+ <td class="compatx">v2.0 –</td>
+ </tr>
+ <tr class="odd">
+ <td class="compatname"><a href="#posix">*BSD</a></td>
+ <td class="compatver"> </td>
+ <td class="compatx"> </td>
+ <td class="compatx">v2.0 –</td>
+ </tr>
+ <tr class="even">
++<td class="compatname"><a href="#posix">macOS (OSX)</a></td>
+ <td class="compatver">10.4</td>
+ <td class="compatx"> </td>
+ <td class="compatx">v2.1 –</td>
+ </tr>
+ <tr class="odd">
+ <td class="compatname"><a href="#posix">POSIX</a></td>
+ <td class="compatver"> </td>
+ <td class="compatx">mmap, dlopen</td>
+ <td class="compatx">v2.0 –</td>
+ </tr>
+ <tr class="even separate">
+ <td class="compatname"><a href="#android">Android</a></td>
+ <td class="compatver">4.0</td>
+ <td class="compatx">Recent Android NDK</td>
+ <td class="compatx">v2.0 –</td>
+ </tr>
+ <tr class="odd">
+ <td class="compatname"><a href="#ios">iOS</a></td>
+ <td class="compatver">3.0</td>
+ <td class="compatx">Xcode iOS SDK</td>
+ <td class="compatx">v2.1 –</td>
+ </tr>
+ <tr class="even separate">
+ <td class="compatname"><a href="#consoles">PS3</a></td>
+ <td class="compatver"> </td>
+ <td class="compatx">PS3 SDK</td>
+ <td class="compatx">v2.0 – v2.1 EOL</td>
+ </tr>
+ <tr class="odd">
+ <td class="compatname"><a href="#consoles">PS4</a></td>
+ <td class="compatver"> </td>
+ <td class="compatx">PS4 SDK (ORBIS)</td>
+ <td class="compatx">v2.0 –</td>
+ </tr>
+ <tr class="even">
+ <td class="compatname"><a href="#consoles">PS5</a></td>
+ <td class="compatver"> </td>
+ <td class="compatx">PS5 SDK (PROSPERO)</td>
+ <td class="compatx">v2.1 –</td>
+ </tr>
+ <tr class="odd">
+ <td class="compatname"><a href="#consoles">PS Vita</a></td>
+ <td class="compatver"> </td>
+ <td class="compatx">PS Vita SDK (PSP2)</td>
+ <td class="compatx">v2.0 – v2.1 EOL</td>
+ </tr>
+ <tr class="even">
+ <td class="compatname"><a href="#consoles">Xbox 360</a></td>
+ <td class="compatver"> </td>
+ <td class="compatx">Xbox 360 SDK (XEDK)</td>
+ <td class="compatx">v2.0 – v2.1 EOL</td>
+ </tr>
+ <tr class="odd">
+ <td class="compatname"><a href="#consoles">Xbox One</a></td>
+ <td class="compatver"> </td>
+ <td class="compatx">Xbox One SDK (DURANGO)</td>
+ <td class="compatx">v2.1 –</td>
+ </tr>
+ </table>
<p>
- 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.
</p>
+ <h3 id="toolchains">Toolchains</h3>
+ <p>
+ Building LuaJIT requires a recent toolchain based on GCC, Clang/LLVM or
+ MSVC++.
+ </p>
+ <p>
+ The Makefile-based build system requires GNU Make and supports
+ cross-builds. Batch files are provided for MSVC++ builds and console
+ cross-builds.
+ </p>
+ <h3 id="architectures">CPU Architectures</h3>
<table class="compat">
<tr class="compathead">
- <td class="compatcpu">CPU / OS</td>
- <td class="compatos"><a href="#posix">Linux</a> or<br><a href="#android">Android</a></td>
- <td class="compatos"><a href="#posix">*BSD, Other</a></td>
- <td class="compatos"><a href="#posix">macOS 10.4+</a> or<br><a href="#ios">iOS 3.0+</a></td>
- <td class="compatos"><a href="#windows">Windows 7<br>or later</a></td>
+ <td class="compatname">CPU</td>
+ <td class="compatbits">Bits</td>
+ <td class="compatx">Requirements</td>
+ <td class="compatx">Variants</td>
+ <td class="compatx">LuaJIT Versions</td>
</tr>
<tr class="odd separate">
- <td class="compatcpu">x86 (32 bit)</td>
- <td class="compatos">GCC 4.2+</td>
- <td class="compatos">GCC 4.2+</td>
- <td class="compatos">XCode 5.0+<br>Clang</td>
- <td class="compatos">MSVC<br>MinGW, Cygwin</td>
+ <td class="compatname">x86</td>
+ <td class="compatbits">32</td>
+ <td class="compatx">v2.1+: SSE2</td>
+ <td class="compatx"> </td>
+ <td class="compatx">v2.0 –</td>
+ </tr>
+ <tr class="even">
+ <td class="compatname">x64</td>
+ <td class="compatbits">64</td>
+ <td class="compatx"> </td>
+ <td class="compatx"> </td>
+ <td class="compatx">v2.0 –</td>
+ </tr>
+ <tr class="odd">
+ <td class="compatname">ARM</td>
+ <td class="compatbits">32</td>
+ <td class="compatx">ARMv5+, ARM9E+</td>
+ <td class="compatx">hard-fp + soft-fp</td>
+ <td class="compatx">v2.0 –</td>
</tr>
<tr class="even">
- <td class="compatcpu">x64 (64 bit)</td>
- <td class="compatos">GCC 4.2+</td>
- <td class="compatos">GCC 4.2+<br>ORBIS (<a href="#ps4">PS4</a>)<br>PROSPERO (<a href="#ps5">PS5</a>)</td>
- <td class="compatos">XCode 5.0+<br>Clang</td>
- <td class="compatos">MSVC<br>Durango (<a href="#xboxone">Xbox One</a>)</td>
+ <td class="compatname">ARM64</td>
+ <td class="compatbits">64</td>
+ <td class="compatx"> </td>
+ <td class="compatx">ARM64le + ARM64be</td>
+ <td class="compatx">v2.1 –</td>
</tr>
<tr class="odd">
- <td class="compatcpu"><a href="#cross2">ARMv5+<br>ARM9E+</a></td>
- <td class="compatos">GCC 4.2+</td>
- <td class="compatos">GCC 4.2+<br>PSP2 (<a href="#psvita">PS VITA</a>)</td>
- <td class="compatos">XCode 5.0+<br>Clang</td>
- <td class="compatos compatno"> </td>
+ <td class="compatname">PPC32</td>
+ <td class="compatbits">32</td>
+ <td class="compatx"> </td>
+ <td class="compatx">hard-fp + soft-fp</td>
+ <td class="compatx">v2.0 – v2.1 EOL</td>
</tr>
<tr class="even">
- <td class="compatcpu"><a href="#cross2">ARM64<br>ARM64be</a></td>
- <td class="compatos">GCC 4.8+</td>
- <td class="compatos compatno"> </td>
- <td class="compatos">XCode 6.0+<br>Clang 3.5+</td>
- <td class="compatos compatno"> </td>
+ <td class="compatname">PPC/e500</td>
+ <td class="compatbits">32</td>
+ <td class="compatx">e500v2</td>
+ <td class="compatx"> </td>
+ <td class="compatx">v2.0 EOL</td>
</tr>
<tr class="odd">
- <td class="compatcpu"><a href="#cross2">PPC</a></td>
- <td class="compatos">GCC 4.3+</td>
- <td class="compatos">GCC 4.3+<br>GCC 4.1 (<a href="#ps3">PS3</a>)</td>
- <td class="compatos compatno"> </td>
- <td class="compatos">XEDK (<a href="#xbox360">Xbox 360</a>)</td>
+ <td class="compatname">MIPS32</td>
+ <td class="compatbits">32</td>
+ <td class="compatx">MIPS32r1 – r5</td>
+ <td class="compatx">hard-fp + soft-fp</td>
+ <td class="compatx">v2.0 –</td>
</tr>
<tr class="even">
- <td class="compatcpu"><a href="#cross2">MIPS32<br>MIPS64<br>MIPS64r6</a></td>
- <td class="compatos">GCC 4.3+</td>
- <td class="compatos">GCC 4.3+</td>
- <td class="compatos compatno"> </td>
- <td class="compatos compatno"> </td>
+ <td class="compatname">MIPS64</td>
+ <td class="compatbits">64</td>
+ <td class="compatx">MIPS64r1 – r5</td>
+ <td class="compatx">hard-fp + soft-fp</td>
+ <td class="compatx">v2.1 –</td>
+ </tr>
+ <tr class="odd">
+ <td class="compatname">MIPS64</td>
+ <td class="compatbits">64</td>
+ <td class="compatx">MIPS64r6</td>
+ <td class="compatx">hard-fp + soft-fp</td>
+ <td class="compatx">v2.1 EOL</td>
+ </tr>
+ <tr class="even">
+ <td class="compatname">RISC-V</td>
+ <td class="compatbits">64</td>
+ <td class="compatx">RVA22+</td>
+ <td class="compatx"> </td>
+ <td class="compatx">TBA</td>
</tr>
</table>
+ <p>
+ 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.
+ </p>
<h2>Configuring LuaJIT</h2>
<p>