docs: Added documentation for building for Linux Emulator
authorPrajwal A N <an.prajwal@samsung.com>
Wed, 13 Jul 2016 05:13:06 +0000 (14:13 +0900)
committerPrajwal A N <an.prajwal@samsung.com>
Thu, 14 Jul 2016 01:50:19 +0000 (10:50 +0900)
Adding documentation for building corefx for Linux ARM Emulator

Signed-off-by: Prajwal A N <an.prajwal@samsung.com>
Commit migrated from https://github.com/dotnet/corefx/commit/6885fa46e740d6750efe7b009074ecc34eacb229

docs/libraries/building/cross-building.md

index 3a14f05..8c765f2 100644 (file)
@@ -91,4 +91,24 @@ The output is at bin/<BuildOS>.AnyCPU.Debug.
     drwx------  33 lgs lgs  4096  3  6 21:33 Windows_NT.AnyCPU.Debug
     drwx------  33 lgs lgs  4096  3  6 19:36 Windows_NT.AnyCPU.Release
 
+Building corefx for Linux ARM Emulator
+=======================================
 
+It is possible to build corefx binaries (native and managed) for the Linux ARM Emulator (latest version provided here: [#3805](https://github.com/dotnet/coreclr/issues/3805)).
+The `scripts/arm32_ci_script.sh` script does this.
+
+The following instructions assume that:
+* You have set up the extracted emulator at `/opt/linux-arm-emulator` (such that `/opt/linux-arm-emulator/platform/rootfs-t30.ext4` exists)
+* The mount path for the emulator rootfs is `/opt/linux-arm-emulator-root` (change this path if you have a working directory at this path).
+
+All the following instructions are for the Release mode. Change the commands and files accordingly for the Debug mode.
+
+To just build the native and managed corefx binaries for the Linux ARM Emulator, run the following command:
+```
+prajwal@ubuntu ~/corefx $ ./scripts/arm32_ci_script.sh \
+    --emulatorPath=/opt/linux-arm-emulator \
+    --mountPath=/opt/linux-arm-emulator-root \
+    --buildConfig=Release
+```
+
+The Linux ARM Emulator is based on the soft floating point and thus the native binaries are generated for the arm-softfp architecture. The corefx binaries generated by the above command can be found at `~/corefx/bin/Linux.arm-softfp.Release`, `~/corefx/bin/Linux.AnyCPU.Release`, `~/corefx/bin/Unix.AnyCPU.Release`, and `~/corefx/bin/AnyOS.AnyCPU.Release`.