diff options
-rw-r--r-- | compiler_wrapper/README.md | 69 |
1 files changed, 55 insertions, 14 deletions
diff --git a/compiler_wrapper/README.md b/compiler_wrapper/README.md index e64f01b6..e55bb669 100644 --- a/compiler_wrapper/README.md +++ b/compiler_wrapper/README.md @@ -12,31 +12,72 @@ package, including the build script, and then build from there without a dependency on toolchain-utils itself. -## Update source files +## Testing Inside the Chroot -Copy over sources and `build.py` to Chrome OS: +To test updates to the wrapper locally: + +Run `install_compiler_wrapper.sh` to install the new wrapper in the chroot: ``` -(chroot) /mnt/host/source/src/third_party/chromiumos-overlay/sys-devel/llvm/files/update\_compiler\_wrapper.sh +(chroot) ~/trunk/src/third_party/toolchain-utils/compiler_wrapper/install_compiler_wrapper.sh ``` -`build.py` is called by these ebuilds: +Then perform the tests, e.g. build with the new compiler. + + +## Updating the Wrapper for Chrome OS + +To update the wrapper for everyone, the new wrapper configuration must be copied +into chromiumos-overlay, and new revisions of the gcc and llvm ebuilds must be +created. + +Copy over sources and `build.py` to chromiumos-overlay: +``` +(chroot) /mnt/host/source/src/third_party/chromiumos-overlay/sys-devel/llvm/files/update_compiler_wrapper.sh +``` -- third_party/chromiumos-overlay/sys-devel/llvm/llvm-11.0\_pre394483\_p20200618-r3.ebuild -- third_party/chromiumos-overlay/sys-devel/gcc/gcc-\*.ebuild +Rename chromiumos-overlay/sys-devel/llvm/llvm-${VERSION}.ebuild to the next +revision number. For example, if the current version is +11.0_pre394483_p20200618-r2: +``` +(chroot) cd ~/trunk/src/third_party/chromiumos-overlay +(chroot) git mv llvm-11.0_pre394483_p20200618-r2.ebuild llvm-11.0_pre394483_p20200618-r3.ebuild +``` -## Update compiler wrappers +Rename chromiumos-overlay/sys-devel/gcc/gcc-${VERSION}.ebuild to the next +revision number. For example, if the current version is 4.9.2-r254: +``` +(chroot) cd ~/trunk/src/third_party/chromiumos-overlay +(chroot) git mv sys-devel/gcc/gcc-4.9.2-r254.ebuild sys-devel/gcc/gcc-4.9.2-r255.ebuild ``` -(chroot) /mnt/host/source/src/third|_party/toolchain-utils/compiler\_wrapper/install\_compiler\_wrapper.sh + +Edit the new ebuild file and change the number at the end to match the new revision: ``` +-# If you need to force a cros_workon uprev, change this number (you can use next +-# uprev): 254 ++# If you need to force a cros_workon uprev, change this number (you can use next ++# uprev): 255 +``` + +Commit those changes together with the changes made by +`update_compiler_wrapper.sh`. + +The changes can then be reviewed and submitted through the normal process. + + +## Paths + +`build.py` is called by these ebuilds: + +- third_party/chromiumos-overlay/sys-devel/llvm/llvm-*.ebuild +- third_party/chromiumos-overlay/sys-devel/gcc/gcc-*.ebuild + Generated wrappers are stored here: - Sysroot wrapper with ccache: - `/usr/x86_64-pc-linux-gnu/<arch>/gcc-bin/4.9.x/sysroot\_wrapper.hardened.ccache` + `/usr/x86_64-pc-linux-gnu/<arch>/gcc-bin/4.9.x/sysroot_wrapper.hardened.ccache` - Sysroot wrapper without ccache: - `/usr/x86_64-pc-linux-gnu/<arch>/gcc-bin/4.9.x/sysroot\_wrapper.hardened.noccache` + `/usr/x86_64-pc-linux-gnu/<arch>/gcc-bin/4.9.x/sysroot_wrapper.hardened.noccache` - Clang host wrapper: - `/usr/bin/clang\_host\_wrapper` + `/usr/bin/clang_host_wrapper` - Gcc host wrapper: - `/usr/x86_64-pc-linux-gnu/gcc-bin/4.9.x/host\_wrapper` - - + `/usr/x86_64-pc-linux-gnu/gcc-bin/4.9.x/host_wrapper` |