1 |
Hello everyone, |
2 |
|
3 |
I am sending my weekly report this late because I figured that I had |
4 |
already discussed my findings this week on the mailing list. But my |
5 |
mentor asked me to write it nevertheless. |
6 |
|
7 |
My task was to build AOSP's LLVM toolchain, but for AArch64 host. |
8 |
Patching the build scripts for that was the easy part. But running the |
9 |
script over and over became tedious at some point. Many times, my sshfs |
10 |
caused problems with the CMakeCache, essentially forcing me to clean |
11 |
build. Other times, the OOM killer got me. |
12 |
|
13 |
Nevertheless I can report that llvm's stage1 builds for the AArch64 host |
14 |
and CMake is accepting the stage1 compilers to build the final llvm |
15 |
stage2. I have yet to fully build llvm stage2, but I am sure that my |
16 |
Mentor's kind offering of an arm64 server would check off that task. |
17 |
|
18 |
I have already explained llvm stage1 and stage2, in some depth, in the |
19 |
previous weekly report's reply chain. I'll put a brief explanation here |
20 |
anyways. |
21 |
Bascially, AOSP packages its own LLVM distribution. The idiomatic way to |
22 |
build LLVM in this case would be to build a "stage 1" compiler with your |
23 |
host toolchain and then build the "stage 2" compiler using the "stage 1" |
24 |
compiler. In AOSP's case, that stage2 compiler is used : |
25 |
- in the AOSP tree as the prebuilt toolchain, used to build AOSP. |
26 |
- as the stage1 compiler to build a version bumped LLVM toolchain |
27 |
(later used as the prebuilt toolchain in the AOSP tree). |
28 |
|
29 |
Therefore my next task would be to use that llvm toolchain (built for |
30 |
AArch64 host) in the AOSP tree and build Android on arm64 unlike the |
31 |
conventional cross-compiling method. |
32 |
|
33 |
Regards, |
34 |
Gunwant |