aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorMike Pall <mike>2022-04-18 01:54:00 +0200
committerMike Pall <mike>2022-04-18 01:54:00 +0200
commit5743edf3b014599c16da6c3725e06e5820b59d23 (patch)
tree40cb78535cdfc19334edc623788bd5ca5a54d111 /doc
parent1a401622fe83ae695226c94df3416e312315d659 (diff)
downloadluajit-5743edf3b014599c16da6c3725e06e5820b59d23.tar.gz
luajit-5743edf3b014599c16da6c3725e06e5820b59d23.tar.bz2
luajit-5743edf3b014599c16da6c3725e06e5820b59d23.zip
Cleanup of system and architecture support docs.
Diffstat (limited to 'doc')
-rw-r--r--doc/install.html248
1 files 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 {
14} 14}
15table.compat td { 15table.compat td {
16 border: 1px solid #bfcfff; 16 border: 1px solid #bfcfff;
17 height: 2.5em; 17 height: 1.5em;
18} 18}
19table.compat tr.compathead td { 19table.compat tr.compathead td {
20 font-weight: bold; 20 font-weight: bold;
21 border-bottom: 2px solid #bfcfff; 21 border-bottom: 2px solid #bfcfff;
22} 22}
23tr.compathead td.compatos { 23td.compatname, td.compatver {
24 vertical-align: top; 24 width: 10%;
25} 25}
26table.compat td.compatcpu { 26td.compatbits {
27 width: 18%; 27 width: 5%;
28 border-right: 2px solid #bfcfff;
29} 28}
30td.compatos { 29td.compatx {
31 width: 21%; 30 width: 21%;
32 vertical-align: middle;
33}
34td.compatno {
35 background-color: #d0d0d0;
36} 31}
37</style> 32</style>
38</head> 33</head>
@@ -91,62 +86,198 @@ For the impatient (on POSIX systems):
91<pre class="code"> 86<pre class="code">
92make &amp;&amp; sudo make install 87make &amp;&amp; sudo make install
93</pre> 88</pre>
89
90<h2 id="req">Requirements</h2>
91<h3 id="systems">Systems</h3>
92<p>
93LuaJIT currently builds out-of-the box on most systems:
94</p>
95<table class="compat">
96<tr class="compathead">
97<td class="compatname">OS</td>
98<td class="compatver">Min. Version</td>
99<td class="compatx">Requirements</td>
100<td class="compatx">LuaJIT Versions</td>
101</tr>
102<tr class="odd separate">
103<td class="compatname"><a href="#windows">Windows</a></td>
104<td class="compatver">7</td>
105<td class="compatx">x86 or x64, ARM64: TBA</td>
106<td class="compatx">v2.0 &ndash;</td>
107</tr>
108<tr class="even">
109<td class="compatname"><a href="#posix">Linux</a></td>
110<td class="compatver">&nbsp;</td>
111<td class="compatx">&nbsp;</td>
112<td class="compatx">v2.0 &ndash;</td>
113</tr>
114<tr class="odd">
115<td class="compatname"><a href="#posix">*BSD</a></td>
116<td class="compatver">&nbsp;</td>
117<td class="compatx">&nbsp;</td>
118<td class="compatx">v2.0 &ndash;</td>
119</tr>
120<tr class="even">
121<td class="compatname"><a href="#osx">macOS (OSX)</a></td>
122<td class="compatver">10.4</td>
123<td class="compatx">&nbsp;</td>
124<td class="compatx">v2.1 &ndash;</td>
125</tr>
126<tr class="odd">
127<td class="compatname"><a href="#posix">POSIX</a></td>
128<td class="compatver">&nbsp;</td>
129<td class="compatx">mmap, dlopen</td>
130<td class="compatx">v2.0 &ndash;</td>
131</tr>
132<tr class="even separate">
133<td class="compatname"><a href="#android">Android</a></td>
134<td class="compatver">4.0</td>
135<td class="compatx">Recent Android NDK</td>
136<td class="compatx">v2.0 &ndash;</td>
137</tr>
138<tr class="odd">
139<td class="compatname"><a href="#ios">iOS</a></td>
140<td class="compatver">3.0</td>
141<td class="compatx">Xcode iOS SDK</td>
142<td class="compatx">v2.1 &ndash;</td>
143</tr>
144<tr class="even separate">
145<td class="compatname"><a href="#consoles">PS3</a></td>
146<td class="compatver">&nbsp;</td>
147<td class="compatx">PS3 SDK</td>
148<td class="compatx">v2.0 &ndash; v2.1 EOL</td>
149</tr>
150<tr class="odd">
151<td class="compatname"><a href="#consoles">PS4</a></td>
152<td class="compatver">&nbsp;</td>
153<td class="compatx">PS4 SDK (ORBIS)</td>
154<td class="compatx">v2.0 &ndash;</td>
155</tr>
156<tr class="even">
157<td class="compatname"><a href="#consoles">PS5</a></td>
158<td class="compatver">&nbsp;</td>
159<td class="compatx">PS5 SDK (PROSPERO)</td>
160<td class="compatx">v2.1 &ndash;</td>
161</tr>
162<tr class="odd">
163<td class="compatname"><a href="#consoles">PS Vita</a></td>
164<td class="compatver">&nbsp;</td>
165<td class="compatx">PS Vita SDK (PSP2)</td>
166<td class="compatx">v2.0 &ndash; v2.1 EOL</td>
167</tr>
168<tr class="even">
169<td class="compatname"><a href="#consoles">Xbox 360</a></td>
170<td class="compatver">&nbsp;</td>
171<td class="compatx">Xbox 360 SDK (XEDK)</td>
172<td class="compatx">v2.0 &ndash; v2.1 EOL</td>
173</tr>
174<tr class="odd">
175<td class="compatname"><a href="#consoles">Xbox One</a></td>
176<td class="compatver">&nbsp;</td>
177<td class="compatx">Xbox One SDK (DURANGO)</td>
178<td class="compatx">v2.1 &ndash;</td>
179</tr>
180</table>
94<p> 181<p>
95LuaJIT currently builds out-of-the box on most systems. 182The codebase has compatibility defines for some more systems, but
96Here's the compatibility matrix for the supported combinations of 183without official support.
97operating systems, CPUs and compilers:
98</p> 184</p>
185<h3 id="toolchains">Toolchains</h3>
186<p>
187Building LuaJIT requires a recent toolchain based on GCC, Clang/LLVM or
188MSVC++.
189</p>
190<p>
191The Makefile-based build system requires GNU Make and supports
192cross-builds. Batch files are provided for MSVC++ builds and console
193cross-builds.
194</p>
195<h3 id="architectures">CPU Architectures</h3>
99<table class="compat"> 196<table class="compat">
100<tr class="compathead"> 197<tr class="compathead">
101<td class="compatcpu">CPU / OS</td> 198<td class="compatname">CPU</td>
102<td class="compatos"><a href="#posix">Linux</a> or<br><a href="#android">Android</a></td> 199<td class="compatbits">Bits</td>
103<td class="compatos"><a href="#posix">*BSD, Other</a></td> 200<td class="compatx">Requirements</td>
104<td class="compatos"><a href="#posix">macOS 10.4+</a> or<br><a href="#ios">iOS 3.0+</a></td> 201<td class="compatx">Variants</td>
105<td class="compatos"><a href="#windows">Windows XP<br>or later</a></td> 202<td class="compatx">LuaJIT Versions</td>
106</tr> 203</tr>
107<tr class="odd separate"> 204<tr class="odd separate">
108<td class="compatcpu">x86 (32 bit)</td> 205<td class="compatname">x86</td>
109<td class="compatos">GCC 4.x+<br>GCC 3.4</td> 206<td class="compatbits">32</td>
110<td class="compatos">GCC 4.x+<br>GCC 3.4</td> 207<td class="compatx">v2.1+: SSE2</td>
111<td class="compatos">XCode 5.0+<br>Clang</td> 208<td class="compatx">&nbsp;</td>
112<td class="compatos">MSVC<br>MinGW, Cygwin</td> 209<td class="compatx">v2.0 &ndash;</td>
210</tr>
211<tr class="even">
212<td class="compatname">x64</td>
213<td class="compatbits">64</td>
214<td class="compatx">&nbsp;</td>
215<td class="compatx">&nbsp;</td>
216<td class="compatx">v2.0 &ndash;</td>
217</tr>
218<tr class="odd">
219<td class="compatname">ARM</td>
220<td class="compatbits">32</td>
221<td class="compatx">ARMv5+, ARM9E+</td>
222<td class="compatx">hard-fp + soft-fp</td>
223<td class="compatx">v2.0 &ndash;</td>
113</tr> 224</tr>
114<tr class="even"> 225<tr class="even">
115<td class="compatcpu">x64 (64 bit)</td> 226<td class="compatname">ARM64</td>
116<td class="compatos">GCC 4.x+</td> 227<td class="compatbits">64</td>
117<td class="compatos">ORBIS (<a href="#ps4">PS4</a>)</td> 228<td class="compatx">&nbsp;</td>
118<td class="compatos">XCode 5.0+<br>Clang</td> 229<td class="compatx">ARM64le + ARM64be</td>
119<td class="compatos">MSVC</td> 230<td class="compatx">v2.1 &ndash;</td>
120</tr> 231</tr>
121<tr class="odd"> 232<tr class="odd">
122<td class="compatcpu"><a href="#cross2">ARMv5+<br>ARM9E+</a></td> 233<td class="compatname">PPC32</td>
123<td class="compatos">GCC 4.2+</td> 234<td class="compatbits">32</td>
124<td class="compatos">GCC 4.2+<br>PSP2 (<a href="#psvita">PS VITA</a>)</td> 235<td class="compatx">&nbsp;</td>
125<td class="compatos">XCode 5.0+<br>Clang</td> 236<td class="compatx">hard-fp + soft-fp</td>
126<td class="compatos compatno">&nbsp;</td> 237<td class="compatx">v2.0 &ndash; v2.1 EOL</td>
127</tr> 238</tr>
128<tr class="even"> 239<tr class="even">
129<td class="compatcpu"><a href="#cross2">PPC</a></td> 240<td class="compatname">PPC/e500</td>
130<td class="compatos">GCC 4.3+</td> 241<td class="compatbits">32</td>
131<td class="compatos">GCC 4.3+<br>GCC 4.1 (<a href="#ps3">PS3</a>)</td> 242<td class="compatx">e500v2</td>
132<td class="compatos compatno">&nbsp;</td> 243<td class="compatx">&nbsp;</td>
133<td class="compatos">XEDK (<a href="#xbox360">Xbox 360</a>)</td> 244<td class="compatx">v2.0 EOL</td>
134</tr> 245</tr>
135<tr class="odd"> 246<tr class="odd">
136<td class="compatcpu"><a href="#cross2">PPC/e500v2</a></td> 247<td class="compatname">MIPS32</td>
137<td class="compatos">GCC 4.3+</td> 248<td class="compatbits">32</td>
138<td class="compatos">GCC 4.3+</td> 249<td class="compatx">MIPS32r1 &ndash; r5</td>
139<td class="compatos compatno">&nbsp;</td> 250<td class="compatx">hard-fp + soft-fp</td>
140<td class="compatos compatno">&nbsp;</td> 251<td class="compatx">v2.0 &ndash;</td>
141</tr> 252</tr>
142<tr class="even"> 253<tr class="even">
143<td class="compatcpu"><a href="#cross2">MIPS</a></td> 254<td class="compatname">MIPS64</td>
144<td class="compatos">GCC 4.3+</td> 255<td class="compatbits">64</td>
145<td class="compatos">GCC 4.3+</td> 256<td class="compatx">MIPS64r1 &ndash; r5</td>
146<td class="compatos compatno">&nbsp;</td> 257<td class="compatx">hard-fp + soft-fp</td>
147<td class="compatos compatno">&nbsp;</td> 258<td class="compatx">v2.1 &ndash;</td>
259</tr>
260<tr class="odd">
261<td class="compatname">MIPS64</td>
262<td class="compatbits">64</td>
263<td class="compatx">MIPS64r6</td>
264<td class="compatx">hard-fp + soft-fp</td>
265<td class="compatx">v2.1 EOL</td>
266</tr>
267<tr class="even">
268<td class="compatname">RISC-V</td>
269<td class="compatbits">64</td>
270<td class="compatx">RVA22+</td>
271<td class="compatx">&nbsp;</td>
272<td class="compatx">TBA</td>
148</tr> 273</tr>
149</table> 274</table>
275<p>
276There are no plans to add historic architectures or to continue support
277for end-of-life (EOL) architectures, for which no new CPUs are commonly
278available anymore. Likewise, there are no plans to support marginal
279and/or de-facto-dead architectures.
280</p>
150 281
151<h2>Configuring LuaJIT</h2> 282<h2>Configuring LuaJIT</h2>
152<p> 283<p>
@@ -199,7 +330,7 @@ which is probably the default on your system, anyway. Simply run:
199make 330make
200</pre> 331</pre>
201<p> 332<p>
202This always builds a native x86, x64 or PPC binary, depending on the host OS 333This always builds a native binary, depending on the host OS
203you're running this command on. Check the section on 334you're running this command on. Check the section on
204<a href="#cross">cross-compilation</a> for more options. 335<a href="#cross">cross-compilation</a> for more options.
205</p> 336</p>
@@ -212,12 +343,9 @@ You can add an extra prefix to the search paths by appending the
212make PREFIX=/home/myself/lj2 343make PREFIX=/home/myself/lj2
213</pre> 344</pre>
214<p> 345<p>
215Note for macOS: you <b>must</b> set the <tt>MACOSX_DEPLOYMENT_TARGET</tt> 346Please use the LuaJIT 2.1 branch to compile for
216environment variable to a value supported by your toolchain: 347<b id="osx">macOS (OSX)</b>.
217</p> 348</p>
218<pre class="code">
219MACOSX_DEPLOYMENT_TARGET=XX.YY make
220</pre>
221<h3>Installing LuaJIT</h3> 349<h3>Installing LuaJIT</h3>
222<p> 350<p>
223The top-level Makefile installs LuaJIT by default under 351The 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
470intend to load Lua/C modules at runtime. 598intend to load Lua/C modules at runtime.
471</li></ul> 599</li></ul>
472</li> 600</li>
473<li>
474<i>Important: this relates to LuaJIT 2.0 only &mdash; use LuaJIT 2.1 to
475avoid these complications.</i><br>
476If you're building a 64 bit application on macOS which links directly or
477indirectly against LuaJIT, you need to link your main executable
478with these flags:
479<pre class="code">
480-pagezero_size 10000 -image_base 100000000
481</pre>
482</li>
483</ul> 601</ul>
484<p>Additional hints for initializing LuaJIT using the C API functions:</p> 602<p>Additional hints for initializing LuaJIT using the C API functions:</p>
485<ul> 603<ul>