Fix DropdownPopupWindow accessibility.
[chromium-blink-merge.git] / third_party / binutils / build-all.sh
blobfc00db19921463bae49642f8fb3c776c10ecd6c5
1 #!/bin/sh
2 # Copyright 2014 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
6 # Script to build binutils for both i386 and AMD64 Linux architectures.
7 # Must be run on an AMD64 supporting machine which has debootstrap and sudo
8 # installed.
9 # Uses Ubuntu Lucid chroots as build environment.
11 set -e
13 if [ x"$(whoami)" = x"root" ]; then
14 echo "Script must not be run as root."
15 exit 1
17 sudo -v
19 OUTPUTDIR="${1:-$PWD/output-$(date +%Y%m%d-%H%M%S)}"
20 if [ ! -d "$OUTPUTDIR" ]; then
21 mkdir -p "$OUTPUTDIR"
24 # Download the source
25 VERSION=2.24
26 wget -c http://ftp.gnu.org/gnu/binutils/binutils-$VERSION.tar.bz2
28 # Verify the signature
29 wget -c -q http://ftp.gnu.org/gnu/binutils/binutils-$VERSION.tar.bz2.sig
30 if ! gpg --verify binutils-$VERSION.tar.bz2.sig; then
31 echo "GPG Signature failed to verify."
32 echo ""
33 echo "You may need to import the vendor GPG key with:"
34 echo "# gpg --keyserver pgp.mit.edu --recv-key 4AE55E93"
35 exit 1
39 if [ ! -d binutils-$VERSION ]; then
40 # Extract the source
41 tar jxf binutils-$VERSION.tar.bz2
43 # Patch the source
45 cd binutils-$VERSION
46 patch -p1 < ../ehframe-race.patch
50 for ARCH in i386 amd64; do
51 if [ ! -d lucid-chroot-$ARCH ]; then
52 # Refresh sudo credentials
53 sudo -v
55 # Create the chroot
56 echo ""
57 echo "Building chroot for $ARCH"
58 echo "============================="
59 sudo debootstrap \
60 --arch=$ARCH \
61 --include=build-essential,flex,bison \
62 lucid lucid-chroot-$ARCH
63 echo "============================="
66 BUILDDIR=lucid-chroot-$ARCH/build
68 # Clean up any previous failed build attempts inside chroot
69 if [ -d "$BUILDDIR" ]; then
70 sudo rm -rf "$BUILDDIR"
73 # Copy data into the chroot
74 sudo mkdir -p "$BUILDDIR"
75 sudo cp -a binutils-$VERSION "$BUILDDIR"
76 sudo cp -a build-one.sh "$BUILDDIR"
78 # Do the build
79 PREFIX=
80 case $ARCH in
81 i386)
82 PREFIX="setarch linux32"
83 ARCHNAME=i686-pc-linux-gnu
85 amd64)
86 PREFIX="setarch linux64"
87 ARCHNAME=x86_64-unknown-linux-gnu
89 esac
90 echo ""
91 echo "Building binutils for $ARCH"
92 LOGFILE="$OUTPUTDIR/build-$ARCH.log"
93 if ! sudo $PREFIX chroot lucid-chroot-$ARCH /build/build-one.sh /build/binutils-$VERSION > $LOGFILE 2>&1; then
94 echo "Build failed! See $LOGFILE for details."
95 exit 1
98 # Copy data out of the chroot
99 sudo chown -R $(whoami) "$BUILDDIR/output/"
101 # Strip the output binaries
102 for i in "$BUILDDIR/output/$ARCHNAME/bin/*"; do
103 strip $i
104 done
106 # Copy them out of the chroot
107 cp -a "$BUILDDIR/output/$ARCHNAME" "$OUTPUTDIR"
109 # Clean up chroot
110 sudo rm -rf "$BUILDDIR"
111 done
113 echo "Check you are happy with the binaries in"
114 echo " $OUTPUTDIR"
115 echo "Then"
116 echo " * upload to Google Storage using the upload.sh script"
117 echo " * roll dependencies"