diff options
author | Mike Pall <mike> | 2022-04-18 01:54:00 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2022-04-18 01:54:00 +0200 |
commit | 5743edf3b014599c16da6c3725e06e5820b59d23 (patch) | |
tree | 40cb78535cdfc19334edc623788bd5ca5a54d111 | |
parent | 1a401622fe83ae695226c94df3416e312315d659 (diff) | |
download | luajit-5743edf3b014599c16da6c3725e06e5820b59d23.tar.gz luajit-5743edf3b014599c16da6c3725e06e5820b59d23.tar.bz2 luajit-5743edf3b014599c16da6c3725e06e5820b59d23.zip |
Cleanup of system and architecture support docs.
-rw-r--r-- | doc/install.html | 248 |
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 | } |
15 | table.compat td { | 15 | table.compat td { |
16 | border: 1px solid #bfcfff; | 16 | border: 1px solid #bfcfff; |
17 | height: 2.5em; | 17 | height: 1.5em; |
18 | } | 18 | } |
19 | table.compat tr.compathead td { | 19 | table.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 | } |
23 | tr.compathead td.compatos { | 23 | td.compatname, td.compatver { |
24 | vertical-align: top; | 24 | width: 10%; |
25 | } | 25 | } |
26 | table.compat td.compatcpu { | 26 | td.compatbits { |
27 | width: 18%; | 27 | width: 5%; |
28 | border-right: 2px solid #bfcfff; | ||
29 | } | 28 | } |
30 | td.compatos { | 29 | td.compatx { |
31 | width: 21%; | 30 | width: 21%; |
32 | vertical-align: middle; | ||
33 | } | ||
34 | td.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"> |
92 | make && sudo make install | 87 | make && sudo make install |
93 | </pre> | 88 | </pre> |
89 | |||
90 | <h2 id="req">Requirements</h2> | ||
91 | <h3 id="systems">Systems</h3> | ||
92 | <p> | ||
93 | LuaJIT 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 –</td> | ||
107 | </tr> | ||
108 | <tr class="even"> | ||
109 | <td class="compatname"><a href="#posix">Linux</a></td> | ||
110 | <td class="compatver"> </td> | ||
111 | <td class="compatx"> </td> | ||
112 | <td class="compatx">v2.0 –</td> | ||
113 | </tr> | ||
114 | <tr class="odd"> | ||
115 | <td class="compatname"><a href="#posix">*BSD</a></td> | ||
116 | <td class="compatver"> </td> | ||
117 | <td class="compatx"> </td> | ||
118 | <td class="compatx">v2.0 –</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"> </td> | ||
124 | <td class="compatx">v2.1 –</td> | ||
125 | </tr> | ||
126 | <tr class="odd"> | ||
127 | <td class="compatname"><a href="#posix">POSIX</a></td> | ||
128 | <td class="compatver"> </td> | ||
129 | <td class="compatx">mmap, dlopen</td> | ||
130 | <td class="compatx">v2.0 –</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 –</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 –</td> | ||
143 | </tr> | ||
144 | <tr class="even separate"> | ||
145 | <td class="compatname"><a href="#consoles">PS3</a></td> | ||
146 | <td class="compatver"> </td> | ||
147 | <td class="compatx">PS3 SDK</td> | ||
148 | <td class="compatx">v2.0 – v2.1 EOL</td> | ||
149 | </tr> | ||
150 | <tr class="odd"> | ||
151 | <td class="compatname"><a href="#consoles">PS4</a></td> | ||
152 | <td class="compatver"> </td> | ||
153 | <td class="compatx">PS4 SDK (ORBIS)</td> | ||
154 | <td class="compatx">v2.0 –</td> | ||
155 | </tr> | ||
156 | <tr class="even"> | ||
157 | <td class="compatname"><a href="#consoles">PS5</a></td> | ||
158 | <td class="compatver"> </td> | ||
159 | <td class="compatx">PS5 SDK (PROSPERO)</td> | ||
160 | <td class="compatx">v2.1 –</td> | ||
161 | </tr> | ||
162 | <tr class="odd"> | ||
163 | <td class="compatname"><a href="#consoles">PS Vita</a></td> | ||
164 | <td class="compatver"> </td> | ||
165 | <td class="compatx">PS Vita SDK (PSP2)</td> | ||
166 | <td class="compatx">v2.0 – 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"> </td> | ||
171 | <td class="compatx">Xbox 360 SDK (XEDK)</td> | ||
172 | <td class="compatx">v2.0 – 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"> </td> | ||
177 | <td class="compatx">Xbox One SDK (DURANGO)</td> | ||
178 | <td class="compatx">v2.1 –</td> | ||
179 | </tr> | ||
180 | </table> | ||
94 | <p> | 181 | <p> |
95 | LuaJIT currently builds out-of-the box on most systems. | 182 | The codebase has compatibility defines for some more systems, but |
96 | Here's the compatibility matrix for the supported combinations of | 183 | without official support. |
97 | operating systems, CPUs and compilers: | ||
98 | </p> | 184 | </p> |
185 | <h3 id="toolchains">Toolchains</h3> | ||
186 | <p> | ||
187 | Building LuaJIT requires a recent toolchain based on GCC, Clang/LLVM or | ||
188 | MSVC++. | ||
189 | </p> | ||
190 | <p> | ||
191 | The Makefile-based build system requires GNU Make and supports | ||
192 | cross-builds. Batch files are provided for MSVC++ builds and console | ||
193 | cross-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"> </td> |
112 | <td class="compatos">MSVC<br>MinGW, Cygwin</td> | 209 | <td class="compatx">v2.0 –</td> |
210 | </tr> | ||
211 | <tr class="even"> | ||
212 | <td class="compatname">x64</td> | ||
213 | <td class="compatbits">64</td> | ||
214 | <td class="compatx"> </td> | ||
215 | <td class="compatx"> </td> | ||
216 | <td class="compatx">v2.0 –</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 –</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"> </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 –</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"> </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"> </td> | 237 | <td class="compatx">v2.0 – 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"> </td> | 243 | <td class="compatx"> </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 – r5</td> |
139 | <td class="compatos compatno"> </td> | 250 | <td class="compatx">hard-fp + soft-fp</td> |
140 | <td class="compatos compatno"> </td> | 251 | <td class="compatx">v2.0 –</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 – r5</td> |
146 | <td class="compatos compatno"> </td> | 257 | <td class="compatx">hard-fp + soft-fp</td> |
147 | <td class="compatos compatno"> </td> | 258 | <td class="compatx">v2.1 –</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"> </td> | ||
272 | <td class="compatx">TBA</td> | ||
148 | </tr> | 273 | </tr> |
149 | </table> | 274 | </table> |
275 | <p> | ||
276 | There are no plans to add historic architectures or to continue support | ||
277 | for end-of-life (EOL) architectures, for which no new CPUs are commonly | ||
278 | available anymore. Likewise, there are no plans to support marginal | ||
279 | and/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: | |||
199 | make | 330 | make |
200 | </pre> | 331 | </pre> |
201 | <p> | 332 | <p> |
202 | This always builds a native x86, x64 or PPC binary, depending on the host OS | 333 | This always builds a native binary, depending on the host OS |
203 | you're running this command on. Check the section on | 334 | you'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 | |||
212 | make PREFIX=/home/myself/lj2 | 343 | make PREFIX=/home/myself/lj2 |
213 | </pre> | 344 | </pre> |
214 | <p> | 345 | <p> |
215 | Note for macOS: you <b>must</b> set the <tt>MACOSX_DEPLOYMENT_TARGET</tt> | 346 | Please use the LuaJIT 2.1 branch to compile for |
216 | environment variable to a value supported by your toolchain: | 347 | <b id="osx">macOS (OSX)</b>. |
217 | </p> | 348 | </p> |
218 | <pre class="code"> | ||
219 | MACOSX_DEPLOYMENT_TARGET=XX.YY make | ||
220 | </pre> | ||
221 | <h3>Installing LuaJIT</h3> | 349 | <h3>Installing LuaJIT</h3> |
222 | <p> | 350 | <p> |
223 | The top-level Makefile installs LuaJIT by default under | 351 | 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 | |||
470 | intend to load Lua/C modules at runtime. | 598 | intend 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 — use LuaJIT 2.1 to | ||
475 | avoid these complications.</i><br> | ||
476 | If you're building a 64 bit application on macOS which links directly or | ||
477 | indirectly against LuaJIT, you need to link your main executable | ||
478 | with 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> |