Updating RenderScript ===================== Updating LLVM Libraries ----------------------- Loop over llvm, clang, compiler-rt (in this order): 1. Do a squashed merge of *aosp/dev* to *aosp/master*. repo start update . git fetch aosp dev git merge --squash aosp/dev git commit -a repo upload . 2. Test everything before submitting the patch from the previous step. 3. Grab the squashed commit and replay it in *aosp/dev*. repo sync . git remote update git branch -D clean_master git checkout -b clean_master aosp/master git checkout working_dev Use `-s ours` to ensure that we skip the squashed set of changes. If/when we forget this, we have to do it later. git merge -s ours clean_master git push aosp refs/heads/working_dev:refs/heads/dev git branch -D clean_master 4. Clean up after our working branch. git checkout --detach git branch -D working_dev This works better because we can keep full history in *aosp/dev*, while maintaining easy reverts/commits through *aosp/master*. Generating New Prebuilts ------------------------ 1. Iteratively attempt to build the platform and fix any API differences in frameworks/compile/slang, and/or frameworks/compile/libbcc. This may entail updating the various snapshots of Bitcode Readers/Writers. 2. Update RenderScript prebuilts. cd $ANDROID_BUILD_TOP/frameworks/rs ./update_rs_prebuilts.sh 3. The prebuilts get copied to **prebuilts/sdk**, so we must upload the relevant bits from there. cd $ANDROID_BUILD_TOP/prebuilts/sdk git commit -a repo upload . 4. Submit CLs. Testing Checklist ----------------- 1. Go to **external/llvm** and run `./android_test.sh` (no known failures as of 2015-10-08). 2. Ensure successful build for all architectures: 32- and 64- bit ARM, x86 and Mips. 3. Run 32- and 64- bit RenderScript CTS at least for ARM and AArch64. 4. Test RenderScript apps: RsTest, ImageProcessing, and finally RSTest\_Compatlib in compatibility mode. 5. Test old APKs with rebased tools: grab the above apps from a different tree (i.e. without the rebase), push them to a device with the rebased tools, and test. This ensures that the rebased BitcodeReader can read the output of old BitcodeWriters. 6. Test new APKs on an old device: test freshly built APKs for RSTest\_V{11,14,16}, and ImageProcessing\_2 on an old device (say Manta) and ensure they pass. This ensures that the rebase did not break the 2.9 and 3.2 BitcodeWriters. Checklist for CLs ----------------- The following projects will almost always have CLs as a part of the rebase. Depending on the changes in LLVM, there might be updates to other projects as well. * External projects * **external/clang** * **external/compiler-rt** * **external/llvm** * **frameworks/compile/mclinker** * RenderScript projects * **frameworks/compile/libbcc** * **frameworks/compile/slang** * **frameworks/rs** * Prebuilts * **prebuilts/sdk** * CTS tests * **cts/tests/tests/renderscript** * **cts/tests/tests/renderscriptlegacy** * **cts/tests/tests/rscpp**