diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-05-10 07:25:31 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-05-10 07:25:31 +0000 |
commit | 904b3e949a93a8953db41e41b256a5b27debeed4 (patch) | |
tree | b0522edde1d3c5356c95eb1ee2eae3e87befa1f3 /compiler_wrapper/reset_compiler_wrapper.sh | |
parent | 4e4201457e5f51a132101c611c79ccff9f713c8b (diff) | |
parent | 882a18888febb9cb0b9d6c6069498cbc4aa30f88 (diff) | |
download | toolchain-utils-904b3e949a93a8953db41e41b256a5b27debeed4.tar.gz |
Snap for 8564071 from 882a18888febb9cb0b9d6c6069498cbc4aa30f88 to mainline-art-releaseaml_art_331813100aml_art_331813010aml_art_331711080aml_art_331612010aml_art_331413030aml_art_331314010aml_art_331113000aml_art_331012050android13-mainline-art-release
Change-Id: I173027e1513f8b33f7aec083bf3757087435e515
Diffstat (limited to 'compiler_wrapper/reset_compiler_wrapper.sh')
-rwxr-xr-x | compiler_wrapper/reset_compiler_wrapper.sh | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/compiler_wrapper/reset_compiler_wrapper.sh b/compiler_wrapper/reset_compiler_wrapper.sh new file mode 100755 index 00000000..523e972d --- /dev/null +++ b/compiler_wrapper/reset_compiler_wrapper.sh @@ -0,0 +1,42 @@ +#!/bin/bash -eux +# +# Copyright 2021 The Chromium OS Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# If your compiler wrapper ends up broken, you can run this script to try to +# restore it to a working version. We can only use artifacts we download from +# gs://, since it's kind of hard to build a working compiler with a broken +# compiler wrapper. ;) + +if [[ ! -e "/etc/cros_chroot_version" ]]; then + echo "Run me inside of the chroot." + exit 1 +fi + +packages_to_reemerge=( + # We want to reemerge the host wrapper... + sys-devel/llvm +) + +gcc_wrappers=( + cross-x86_64-cros-linux-gnu/gcc + cross-armv7a-cros-linux-gnueabihf/gcc + cross-aarch64-cros-linux-gnu/gcc +) + +# ...and any existing target wrappers. +for gcc in "${gcc_wrappers[@]}"; do + # cheap check for whether or not the package in question is already installed + if ls /var/db/pkg/"${gcc}"-* >& /dev/null; then + packages_to_reemerge+=( "${gcc}" ) + fi +done + +# Ensure that we don't pick up any broken binpkgs for these when we install +# them below. +for pkg in "${packages_to_reemerge[@]}"; do + sudo rm -f "/var/lib/portage/pkgs/${pkg}"* +done + +sudo emerge -j16 -G "${packages_to_reemerge[@]}" |