Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Side by Side Diff: third_party/binutils/build-all.sh

Issue 1368233002: Upgrading binutils to 2.25 for -ggnu-pubnames (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Extra details about goma. Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/binutils/README.chromium ('k') | third_party/binutils/ehframe-race.patch » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/bin/sh 1 #!/bin/sh
2 # Copyright 2014 The Chromium Authors. All rights reserved. 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 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 # Script to build binutils for both i386 and AMD64 Linux architectures. 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 7 # Must be run on an AMD64 supporting machine which has debootstrap and sudo
8 # installed. 8 # installed.
9 # Uses Ubuntu Lucid chroots as build environment. 9 # Uses Ubuntu Lucid chroots as build environment.
10 10
11 set -e 11 set -e
12 12
13 if [ x"$(whoami)" = x"root" ]; then 13 if [ x"$(whoami)" = x"root" ]; then
14 echo "Script must not be run as root." 14 echo "Script must not be run as root."
15 exit 1 15 exit 1
16 fi 16 fi
17 sudo -v 17 sudo -v
18 18
19 OUTPUTDIR="${1:-$PWD/output-$(date +%Y%m%d-%H%M%S)}" 19 OUTPUTDIR="${1:-$PWD/output-$(date +%Y%m%d-%H%M%S)}"
20 if [ ! -d "$OUTPUTDIR" ]; then 20 if [ ! -d "$OUTPUTDIR" ]; then
21 mkdir -p "$OUTPUTDIR" 21 mkdir -p "$OUTPUTDIR"
22 fi 22 fi
23 23
24 # Download the source 24 # Download the source
25 VERSION=2.24 25 VERSION=2.25
26 wget -c http://ftp.gnu.org/gnu/binutils/binutils-$VERSION.tar.bz2 26 wget -c http://ftp.gnu.org/gnu/binutils/binutils-$VERSION.tar.bz2
27 27
28 # Verify the signature 28 # Verify the signature
29 wget -c -q http://ftp.gnu.org/gnu/binutils/binutils-$VERSION.tar.bz2.sig 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 30 if ! gpg --verify binutils-$VERSION.tar.bz2.sig; then
31 echo "GPG Signature failed to verify." 31 echo "GPG Signature failed to verify."
32 echo "" 32 echo ""
33 echo "You may need to import the vendor GPG key with:" 33 echo "You may need to import the vendor GPG key with:"
34 echo "# gpg --keyserver pgp.mit.edu --recv-key 4AE55E93" 34 echo "# gpg --keyserver pgp.mit.edu --recv-key 4AE55E93"
35 exit 1 35 exit 1
36 fi 36 fi
37 37
38 38
39 if [ ! -d binutils-$VERSION ]; then 39 if [ ! -d binutils-$VERSION ]; then
40 # Extract the source 40 # Extract the source
41 tar jxf binutils-$VERSION.tar.bz2 41 tar jxf binutils-$VERSION.tar.bz2
42 42
43 # Patch the source 43 # Patch the source
44 ( 44 (
45 cd binutils-$VERSION 45 cd binutils-$VERSION
46 patch -p1 < ../ehframe-race.patch 46 echo "unlock-thin.patch"
47 echo "=================================="
47 patch -p1 < ../unlock-thin.patch 48 patch -p1 < ../unlock-thin.patch
49 echo "----------------------------------"
50 echo
51 echo "plugin-dso-fix.patch"
52 echo "=================================="
48 patch -p1 < ../plugin-dso-fix.patch 53 patch -p1 < ../plugin-dso-fix.patch
54 echo "----------------------------------"
55 echo
49 ) 56 )
50 fi 57 fi
51 58
52 for ARCH in i386 amd64; do 59 for ARCH in i386 amd64; do
53 if [ ! -d lucid-chroot-$ARCH ]; then 60 if [ ! -d precise-chroot-$ARCH ]; then
54 # Refresh sudo credentials 61 # Refresh sudo credentials
55 sudo -v 62 sudo -v
56 63
57 # Create the chroot 64 # Create the chroot
58 echo "" 65 echo ""
59 echo "Building chroot for $ARCH" 66 echo "Building chroot for $ARCH"
60 echo "=============================" 67 echo "============================="
61 sudo debootstrap \ 68 sudo debootstrap \
62 --arch=$ARCH \ 69 --arch=$ARCH \
63 --include=build-essential,flex,bison \ 70 --include=build-essential,flex,bison \
64 lucid lucid-chroot-$ARCH 71 precise precise-chroot-$ARCH
65 echo "=============================" 72 echo "============================="
66 fi 73 fi
67 74
68 BUILDDIR=lucid-chroot-$ARCH/build 75 BUILDDIR=precise-chroot-$ARCH/build
69 76
70 # Clean up any previous failed build attempts inside chroot 77 # Clean up any previous failed build attempts inside chroot
71 if [ -d "$BUILDDIR" ]; then 78 if [ -d "$BUILDDIR" ]; then
72 sudo rm -rf "$BUILDDIR" 79 sudo rm -rf "$BUILDDIR"
73 fi 80 fi
74 81
75 # Copy data into the chroot 82 # Copy data into the chroot
76 sudo mkdir -p "$BUILDDIR" 83 sudo mkdir -p "$BUILDDIR"
77 sudo cp -a binutils-$VERSION "$BUILDDIR" 84 sudo cp -a binutils-$VERSION "$BUILDDIR"
78 sudo cp -a build-one.sh "$BUILDDIR" 85 sudo cp -a build-one.sh "$BUILDDIR"
79 86
80 # Do the build 87 # Do the build
81 PREFIX= 88 PREFIX=
82 case $ARCH in 89 case $ARCH in
83 i386) 90 i386)
84 PREFIX="setarch linux32" 91 PREFIX="setarch linux32"
85 ARCHNAME=i686-pc-linux-gnu 92 ARCHNAME=i686-pc-linux-gnu
86 ;; 93 ;;
87 amd64) 94 amd64)
88 PREFIX="setarch linux64" 95 PREFIX="setarch linux64"
89 ARCHNAME=x86_64-unknown-linux-gnu 96 ARCHNAME=x86_64-unknown-linux-gnu
90 ;; 97 ;;
91 esac 98 esac
92 echo "" 99 echo ""
93 echo "Building binutils for $ARCH" 100 echo "Building binutils for $ARCH"
94 LOGFILE="$OUTPUTDIR/build-$ARCH.log" 101 LOGFILE="$OUTPUTDIR/build-$ARCH.log"
95 if ! sudo $PREFIX chroot lucid-chroot-$ARCH /build/build-one.sh /build/binutil s-$VERSION > $LOGFILE 2>&1; then 102 if ! sudo $PREFIX chroot precise-chroot-$ARCH /build/build-one.sh /build/binut ils-$VERSION > $LOGFILE 2>&1; then
96 echo "Build failed! See $LOGFILE for details." 103 echo "Build failed! See $LOGFILE for details."
97 exit 1 104 exit 1
98 fi 105 fi
99 106
100 # Copy data out of the chroot 107 # Copy data out of the chroot
101 sudo chown -R $(whoami) "$BUILDDIR/output/" 108 sudo chown -R $(whoami) "$BUILDDIR/output/"
102 109
103 # Strip the output binaries 110 # Strip the output binaries
104 for i in "$BUILDDIR/output/$ARCHNAME/bin/*"; do 111 for i in "$BUILDDIR/output/$ARCHNAME/bin/*"; do
105 strip $i 112 strip $i
106 done 113 done
107 114
108 # Copy them out of the chroot 115 # Copy them out of the chroot
109 cp -a "$BUILDDIR/output/$ARCHNAME" "$OUTPUTDIR" 116 cp -a "$BUILDDIR/output/$ARCHNAME" "$OUTPUTDIR"
110 117
111 # Copy plugin header out of the chroot 118 # Copy plugin header out of the chroot
112 mkdir "$OUTPUTDIR/$ARCHNAME/include" 119 mkdir "$OUTPUTDIR/$ARCHNAME/include"
113 cp "$BUILDDIR/binutils-$VERSION/include/plugin-api.h" "$OUTPUTDIR/$ARCHNAME/in clude/" 120 cp "$BUILDDIR/binutils-$VERSION/include/plugin-api.h" "$OUTPUTDIR/$ARCHNAME/in clude/"
114 121
115 # Clean up chroot 122 # Clean up chroot
116 sudo rm -rf "$BUILDDIR" 123 sudo rm -rf "$BUILDDIR"
117 done 124 done
118 125
119 echo "Check you are happy with the binaries in" 126 echo "Check you are happy with the binaries in"
120 echo " $OUTPUTDIR" 127 echo " $OUTPUTDIR"
121 echo "Then" 128 echo "Then"
122 echo " * upload to Google Storage using the upload.sh script" 129 echo " * upload to Google Storage using the upload.sh script"
123 echo " * roll dependencies" 130 echo " * roll dependencies"
OLDNEW
« no previous file with comments | « third_party/binutils/README.chromium ('k') | third_party/binutils/ehframe-race.patch » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698