1Updating RenderScript
2=====================
3
4Updating LLVM Libraries
5-----------------------
6
7Loop over llvm, clang, compiler-rt (in this order):
8
91. Do a squashed merge of *aosp/dev* to *aosp/master*.
10
11        repo start update .
12        git fetch aosp dev
13        git merge --squash aosp/dev
14        git commit -a
15        repo upload .
16
172. Test everything before submitting the patch from the previous step.
18
193. Grab the squashed commit and replay it in *aosp/dev*.
20
21        repo sync .
22        git remote update
23        git branch -D clean_master
24        git checkout -b clean_master aosp/master
25        git checkout working_dev
26
27    Use `-s ours` to ensure that we skip the squashed set of changes.
28    If/when we forget this, we have to do it later.
29
30        git merge -s ours clean_master
31        git push aosp refs/heads/working_dev:refs/heads/dev
32        git branch -D clean_master
33
344. Clean up after our working branch.
35
36        git checkout --detach
37        git branch -D working_dev
38
39This works better because we can keep full history in *aosp/dev*, while
40maintaining easy reverts/commits through *aosp/master*.
41
42
43Generating New Prebuilts
44------------------------
45
461. Iteratively attempt to build the platform and fix any API differences in
47   frameworks/compile/slang, and/or frameworks/compile/libbcc. This may entail
48   updating the various snapshots of Bitcode Readers/Writers.
492. Update RenderScript prebuilts.
50
51        cd $ANDROID_BUILD_TOP/frameworks/rs
52        ./update_rs_prebuilts.sh
53
543. The prebuilts get copied to **prebuilts/sdk**, so we must upload the
55relevant bits from there.
56
57        cd $ANDROID_BUILD_TOP/prebuilts/sdk
58        git commit -a
59        repo upload .
60
614. Submit CLs.
62
63
64Testing Checklist
65-----------------
66
671. Go to **external/llvm** and run `./android_test.sh` (no known failures
68as of 2015-10-08).
692. Ensure successful build for all architectures: 32- and 64- bit ARM, x86 and
70Mips.
713. Run 32- and 64- bit RenderScript CTS at least for ARM and AArch64.
724. Test RenderScript apps: RsTest, ImageProcessing, and finally
73RSTest\_Compatlib in compatibility mode.
745. Test old APKs with rebased tools: grab the above apps from a different tree
75(i.e. without the rebase), push them to a device with the rebased tools, and
76test.
77This ensures that the rebased BitcodeReader can read the output of old
78BitcodeWriters.
796. Test new APKs on an old device: test freshly built APKs for
80RSTest\_V{11,14,16}, and ImageProcessing\_2 on an old device (say Manta) and
81ensure they pass.
82This ensures that the rebase did not break the 2.9 and 3.2 BitcodeWriters.
83
84
85Checklist for CLs
86-----------------
87
88The following projects will almost always have CLs as a part of the rebase.
89Depending on the changes in LLVM, there might be updates to other projects as
90well.
91
92* External projects
93
94  * **external/clang**
95  * **external/compiler-rt**
96  * **external/llvm**
97  * **frameworks/compile/mclinker**
98
99* RenderScript projects
100
101  * **frameworks/compile/libbcc**
102  * **frameworks/compile/slang**
103  * **frameworks/rs**
104
105* Prebuilts
106  * **prebuilts/sdk**
107
108* CTS tests
109
110  * **cts/tests/tests/renderscript**
111  * **cts/tests/tests/renderscriptlegacy**
112  * **cts/tests/tests/rscpp**
113