Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Update android-bionic.md
  • Loading branch information
MichalStrehovsky authored Jul 13, 2023
commit 3755652b11aa2a491f2452cec621a9a5ec6ce66f
8 changes: 4 additions & 4 deletions src/coreclr/nativeaot/docs/android-bionic.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ To build for Bionic:
* Ensure you have [Android NDK](https://developer.android.com/ndk/downloads) for your system downloaded and extracted somewhere.
* Update your PATH to include `{NDK_ROOT}\toolchains\llvm\prebuilt\{OS_ARCH}\bin`. Replace `{NDK_ROOT}` with the path where you extracted the NDK, and replace `{OS_ARCH}` with your host OS and architecture (e.g. windows-x86_64 or linux-x86_64). Make sure this entry is first in your path - we need to make sure that running `clang` will execute `clang` from this directory.
* You can either create a new project or use an existing project. For this guide, let's create a new one:
``sh
```sh
$ dotnet new console -o HelloBionic --aot
$ cd HelloBionic
``
```
Note: the `--aot` parameter added `<PublishAot>true</PublishAot>` to the new project.
* Publish the project:
``sh
```sh
$ dotnet publish -r linux-bionic-arm64 -p:DisableUnsupportedError=true -p:PublishAotUsingRuntimePack=true
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are the two properties going away eventually? If not, we should probably at least mention them in this doc. Their names don't make it super clear what they're doing.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PublishAotUsingRuntimePack is supposed to go away. We currently have to set this for iDevices for the same reason. We'd like to use the runtime pack for all configurations, not just iDevices/Bionic. There's an 8.0 issue on it.

``
```
* You should have a binary under `bin\Release\net8.0\linux-bionic-arm64\publish`. Copy this to an Android device. Either `adb push` or using some GUI.
* You can probably run it with `adb shell`, but I used Termux: open Termux, give it access to file system by running `termux-setup-storage`. This will give you access to phone storage under `~/storage`. Copy the binary from `~/storage/...` to `~` (internal storage is not executable and you won't be able to run stuff from it). Then `chmod +x HelloBionic` and `./HelloBionic`. You should see Hello World.

Expand Down