#!/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[@]}"