aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorMike Pall <mike>2011-04-28 19:41:34 +0200
committerMike Pall <mike>2011-04-28 19:41:34 +0200
commit0ba34ffe50e9572e27cebb8c2fae4d46862114ef (patch)
treeabc04617cb945a0c21d6537f20e91857596aa1f2 /doc
parent7ff84097976f09dfa306e0fb20103292bef9aee3 (diff)
downloadluajit-0ba34ffe50e9572e27cebb8c2fae4d46862114ef.tar.gz
luajit-0ba34ffe50e9572e27cebb8c2fae4d46862114ef.tar.bz2
luajit-0ba34ffe50e9572e27cebb8c2fae4d46862114ef.zip
ARM: Fix ABI and build issues for iOS. Now works on iOS 3.0+.
Diffstat (limited to 'doc')
-rw-r--r--doc/install.html42
1 files changed, 27 insertions, 15 deletions
diff --git a/doc/install.html b/doc/install.html
index de934abc..f6c99c17 100644
--- a/doc/install.html
+++ b/doc/install.html
@@ -97,14 +97,14 @@ make &amp;&amp; sudo make install
97<p> 97<p>
98LuaJIT currently builds out-of-the box on most systems. 98LuaJIT currently builds out-of-the box on most systems.
99Here's the compatibility matrix for the supported combinations of 99Here's the compatibility matrix for the supported combinations of
100operating system, CPU and compilers: 100operating systems, CPUs and compilers:
101</p> 101</p>
102<table class="compat"> 102<table class="compat">
103<tr class="compathead"> 103<tr class="compathead">
104<td class="compatcpu">CPU / OS</td> 104<td class="compatcpu">CPU / OS</td>
105<td class="compatos"><a href="#posix">Linux</a> or<br><a href="#cross">Android</a></td> 105<td class="compatos"><a href="#posix">Linux</a> or<br><a href="#android">Android</a></td>
106<td class="compatos"><a href="#posix">*BSD, other</a></td> 106<td class="compatos"><a href="#posix">*BSD, Other</a></td>
107<td class="compatos"><a href="#posix">OSX<br>10.3-10.6</a></td> 107<td class="compatos"><a href="#posix">OSX 10.3+</a> or<br><a href="#ios">iOS 3.0+</a></td>
108<td class="compatos"><a href="#windows">Windows<br>98/XP/Vista/7</a></td> 108<td class="compatos"><a href="#windows">Windows<br>98/XP/Vista/7</a></td>
109</tr> 109</tr>
110<tr class="odd separate"> 110<tr class="odd separate">
@@ -122,10 +122,10 @@ operating system, CPU and compilers:
122<td class="compatos">MSVC + SDK v7.0<br>WinSDK v7.0</td> 122<td class="compatos">MSVC + SDK v7.0<br>WinSDK v7.0</td>
123</tr> 123</tr>
124<tr class="odd"> 124<tr class="odd">
125<td class="compatcpu">ARM</td> 125<td class="compatcpu">ARMv5+<br>ARM9E+</td>
126<td class="compatos">GCC 4.2+</td>
126<td class="compatos">GCC 4.2+</td> 127<td class="compatos">GCC 4.2+</td>
127<td class="compatos">GCC 4.2+</td> 128<td class="compatos">GCC 4.2+</td>
128<td class="compatos compatno">&nbsp;</td>
129<td class="compatos compatno">&nbsp;</td> 129<td class="compatos compatno">&nbsp;</td>
130</tr> 130</tr>
131<tr class="even"> 131<tr class="even">
@@ -342,14 +342,6 @@ installing the <tt>mingw32</tt> package and running:
342make HOST_CC="gcc -m32" CROSS=i586-mingw32msvc- TARGET_SYS=Windows 342make HOST_CC="gcc -m32" CROSS=i586-mingw32msvc- TARGET_SYS=Windows
343</pre> 343</pre>
344<p> 344<p>
345Whenever the <b>host OS and the target OS differ</b>, you need to specify
346<tt>TARGET_SYS</tt> or you'll get assembler or linker errors. E.g. if
347you're compiling on a Windows or OSX host for embedded Linux or Android,
348you need to add <tt>TARGET_SYS=Linux</tt> to the examples below. For a
349minimal target OS, you may need to disable the built-in allocator in
350<tt>src/Makefile</tt> and use <tt>TARGET_SYS=Other</tt>.
351</p>
352<p>
353You can cross-compile for an <b>ARM target</b> on an x86 or x64 host 345You can cross-compile for an <b>ARM target</b> on an x86 or x64 host
354system using a standard GNU cross-compile toolchain (Binutils, GCC, 346system using a standard GNU cross-compile toolchain (Binutils, GCC,
355EGLIBC). The <tt>CROSS</tt> prefix may vary depending on the 347EGLIBC). The <tt>CROSS</tt> prefix may vary depending on the
@@ -359,7 +351,7 @@ EGLIBC). The <tt>CROSS</tt> prefix may vary depending on the
359make HOST_CC="gcc -m32" CROSS=arm-linux-gnueabi- TARGET=arm 351make HOST_CC="gcc -m32" CROSS=arm-linux-gnueabi- TARGET=arm
360</pre> 352</pre>
361<p> 353<p>
362You can cross-compile for <b>Android (ARM)</b> using the <a href="http://developer.android.com/sdk/ndk/index.html"><span class="ext">&raquo;</span>&nbsp;Android NDK</a>. 354You can cross-compile for <b id="android">Android (ARM)</b> using the <a href="http://developer.android.com/sdk/ndk/index.html"><span class="ext">&raquo;</span>&nbsp;Android NDK</a>.
363The environment variables need to match the install locations and the 355The environment variables need to match the install locations and the
364desired target platform. E.g. Android&nbsp;2.2 corresponds to ABI level&nbsp;8: 356desired target platform. E.g. Android&nbsp;2.2 corresponds to ABI level&nbsp;8:
365</p> 357</p>
@@ -372,6 +364,18 @@ NDKF="--sysroot $NDK/platforms/android-$NDKABI/arch-arm"
372make HOST_CC="gcc -m32" CROSS=$NDKP TARGET_FLAGS="$NDKF" TARGET=arm 364make HOST_CC="gcc -m32" CROSS=$NDKP TARGET_FLAGS="$NDKF" TARGET=arm
373</pre> 365</pre>
374<p> 366<p>
367You can cross-compile for <b id="ios">iOS 3.0+</b> (iPhone/iPad) using the <a href="http://developer.apple.com/devcenter/ios/index.action"><span class="ext">&raquo;</span>&nbsp;iOS SDK</a>.
368The environment variables need to match the iOS SDK version:
369</p>
370<pre class="code">
371ISDK=/Developer/Platforms/iPhoneOS.platform/Developer
372ISDKVER=iPhoneOS4.3.sdk
373ISDKP=$ISDK/usr/bin/
374ISDKF="-arch armv6 -isysroot $ISDK/SDKs/$ISDKVER"
375make HOST_CC="gcc -m32 -arch i386" CROSS=$ISDKP TARGET_FLAGS="$ISDKF" \
376 TARGET=arm TARGET_SYS=iOS
377</pre>
378<p>
375You can cross-compile for a <b>PPC/e500v2 target</b> on an x86 or x64 host system 379You can cross-compile for a <b>PPC/e500v2 target</b> on an x86 or x64 host system
376using a standard GNU cross-compile toolchain (Binutils, GCC, EGLIBC). 380using a standard GNU cross-compile toolchain (Binutils, GCC, EGLIBC).
377The <tt>CROSS</tt> prefix may vary depending on the <tt>--target</tt> 381The <tt>CROSS</tt> prefix may vary depending on the <tt>--target</tt>
@@ -380,6 +384,14 @@ of the toolchain:
380<pre class="code"> 384<pre class="code">
381make HOST_CC="gcc -m32" CROSS=powerpc-e500v2-linux-gnuspe- TARGET=ppcspe 385make HOST_CC="gcc -m32" CROSS=powerpc-e500v2-linux-gnuspe- TARGET=ppcspe
382</pre> 386</pre>
387<p>
388Whenever the <b>host OS and the target OS differ</b>, you need to specify
389<tt>TARGET_SYS</tt> or you'll get assembler or linker errors. E.g. if
390you're compiling on a Windows or OSX host for embedded Linux or Android,
391you need to add <tt>TARGET_SYS=Linux</tt> to the examples above. For a
392minimal target OS, you may need to disable the built-in allocator in
393<tt>src/Makefile</tt> and use <tt>TARGET_SYS=Other</tt>.
394</p>
383 395
384<h2 id="embed">Embedding LuaJIT</h2> 396<h2 id="embed">Embedding LuaJIT</h2>
385<p> 397<p>