51 lines
1.3 KiB
Markdown
51 lines
1.3 KiB
Markdown
# Emerald GCC
|
||
|
||
[![Drone CI](https://img.shields.io/drone/build/perosar/emerald-gcc?logo=drone&logoColor=blue&server=https%3A%2F%2Fdrone.tildegit.org)](https://drone.envs.netg/perosar/emerald-gcc)
|
||
|
||
## About
|
||
|
||
A toolchain to cross compile to Android. This outputs executables that link against Android's libc(bionic).
|
||
This is a personal project.
|
||
|
||
|
||
## Why
|
||
|
||
Android’s GCC was deprecated in favor of LLVM Clang and removed from Android in January 2020.
|
||
Some projects still require GCC for building.
|
||
|
||
|
||
## How to use
|
||
|
||
- Get tarball from latest [gitea release](https://tildegit.org/perosar/emerald-gcc/releases)
|
||
- Extract
|
||
|
||
```bash
|
||
$ tar -xJf file.tar.xz
|
||
```
|
||
|
||
- Modify PATH
|
||
|
||
```bash
|
||
$ export PATH="$(pwd)/aarch64-linux-android-emerald/bin:$PATH"
|
||
```
|
||
|
||
- Test
|
||
|
||
```bash
|
||
$ aarch64-linux-android-gcc --version
|
||
$ aarch64-linux-android-gcc test.c -o test
|
||
```
|
||
|
||
- Run on Android (e.g. with Termux)
|
||
|
||
## Target
|
||
|
||
Compiled executables should run properly on Android 8 and above.
|
||
|
||
## Credits
|
||
- Patches from [its-pointless](https://github.com/its-pointless)
|
||
- Patches from [Android GCC 4.9](https://android.googlesource.com/toolchain/gcc)
|
||
- Sysroot from [NDK](https://github.com/android/ndk)
|
||
- Align fix script from [termux-ndk](https://github.com/Lzhiyong/termux-ndk/blob/master/patches/align_fix.py)
|
||
- Wiki pages from [Termux](https://github.com/termux)
|