43 lines
1.2 KiB
Bash
Executable File
43 lines
1.2 KiB
Bash
Executable File
#!/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[@]}"
|