1 Updating RenderScript 2 ===================== 3 4 Updating LLVM Libraries 5 ----------------------- 6 7 Loop over llvm, clang, compiler-rt (in this order): 8 9 1. 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 17 2. Test everything before submitting the patch from the previous step. 18 19 3. 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 34 4. Clean up after our working branch. 35 36 git checkout --detach 37 git branch -D working_dev 38 39 This works better because we can keep full history in *aosp/dev*, while 40 maintaining easy reverts/commits through *aosp/master*. 41 42 43 Generating New Prebuilts 44 ------------------------ 45 46 1. 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. 49 2. Update RenderScript prebuilts. 50 51 cd $ANDROID_BUILD_TOP/frameworks/rs 52 ./update_rs_prebuilts.sh 53 54 3. The prebuilts get copied to **prebuilts/sdk**, so we must upload the 55 relevant bits from there. 56 57 cd $ANDROID_BUILD_TOP/prebuilts/sdk 58 git commit -a 59 repo upload . 60 61 4. Submit CLs. 62 63 64 Testing Checklist 65 ----------------- 66 67 1. Go to **external/llvm** and run `./android_test.sh` (no known failures 68 as of 2015-10-08). 69 2. Ensure successful build for all architectures: 32- and 64- bit ARM, x86 and 70 Mips. 71 3. Run 32- and 64- bit RenderScript CTS at least for ARM and AArch64. 72 4. Test RenderScript apps: RsTest, ImageProcessing, and finally 73 RSTest\_Compatlib in compatibility mode. 74 5. 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 76 test. 77 This ensures that the rebased BitcodeReader can read the output of old 78 BitcodeWriters. 79 6. Test new APKs on an old device: test freshly built APKs for 80 RSTest\_V{11,14,16}, and ImageProcessing\_2 on an old device (say Manta) and 81 ensure they pass. 82 This ensures that the rebase did not break the 2.9 and 3.2 BitcodeWriters. 83 84 85 Checklist for CLs 86 ----------------- 87 88 The following projects will almost always have CLs as a part of the rebase. 89 Depending on the changes in LLVM, there might be updates to other projects as 90 well. 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