projects
/
coreboot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
crossgcc: update w32api
[coreboot.git]
/
util
/
crossgcc
/
buildgcc
diff --git
a/util/crossgcc/buildgcc
b/util/crossgcc/buildgcc
index 512b049771b814236a75843ac7f8fd44635090cb..83b7cdff4ec8ecd5cd1d5f0731246657e0ca9f52 100755
(executable)
--- a/
util/crossgcc/buildgcc
+++ b/
util/crossgcc/buildgcc
@@
-18,8
+18,8
@@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
#
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
#
-CROSSGCC_DATE="
May 18
th, 2010"
-CROSSGCC_VERSION="1.0
1
"
+CROSSGCC_DATE="
December 16
th, 2010"
+CROSSGCC_VERSION="1.0
3
"
# default settings
TARGETDIR=`pwd`/xgcc
# default settings
TARGETDIR=`pwd`/xgcc
@@
-28,15
+28,14
@@
DESTDIR=
# version numbers
GMP_VERSION=5.0.1
# version numbers
GMP_VERSION=5.0.1
-MPFR_VERSION=
2.4.2
+MPFR_VERSION=
3.0.0
MPC_VERSION=0.8.2
LIBELF_VERSION=0.8.13
MPC_VERSION=0.8.2
LIBELF_VERSION=0.8.13
-# GCC 4.5.0 is broken on some AMD boards:
-# GCC_VERSION=4.5.0 # enable for Link Time Optimization & Co
-GCC_VERSION=4.4.4
+GCC_VERSION=4.5.2
BINUTILS_VERSION=2.20.1
BINUTILS_VERSION=2.20.1
-GDB_VERSION=7.1
-W32API_VERSION=3.14
+GDB_VERSION=7.2
+W32API_VERSION=3.17-2
+W32API_VERSION_SHORT=3.17
MINGWRT_VERSION=3.18
# archive locations
MINGWRT_VERSION=3.18
# archive locations
@@
-44,11
+43,11
@@
GMP_ARCHIVE="ftp://ftp.gmplib.org/pub/gmp-${GMP_VERSION}/gmp-${GMP_VERSION}.tar.
MPFR_ARCHIVE="http://www.mpfr.org/mpfr-${MPFR_VERSION}/mpfr-${MPFR_VERSION}.tar.bz2"
MPC_ARCHIVE="http://www.multiprecision.org/mpc/download/mpc-${MPC_VERSION}.tar.gz"
LIBELF_ARCHIVE="http://www.mr511.de/software/libelf-${LIBELF_VERSION}.tar.gz"
MPFR_ARCHIVE="http://www.mpfr.org/mpfr-${MPFR_VERSION}/mpfr-${MPFR_VERSION}.tar.bz2"
MPC_ARCHIVE="http://www.multiprecision.org/mpc/download/mpc-${MPC_VERSION}.tar.gz"
LIBELF_ARCHIVE="http://www.mr511.de/software/libelf-${LIBELF_VERSION}.tar.gz"
-GCC_ARCHIVE="ftp://ftp.
gwdg.de/pub/gnu/ftp/gnu/gcc
/gcc-${GCC_VERSION}/gcc-core-${GCC_VERSION}.tar.bz2"
+GCC_ARCHIVE="ftp://ftp.
fu-berlin.de/unix/languages/gcc/releases
/gcc-${GCC_VERSION}/gcc-core-${GCC_VERSION}.tar.bz2"
BINUTILS_ARCHIVE="http://ftp.gnu.org/gnu/binutils/binutils-${BINUTILS_VERSION}.tar.bz2"
GDB_ARCHIVE="http://ftp.gnu.org/gnu/gdb/gdb-${GDB_VERSION}.tar.bz2"
BINUTILS_ARCHIVE="http://ftp.gnu.org/gnu/binutils/binutils-${BINUTILS_VERSION}.tar.bz2"
GDB_ARCHIVE="http://ftp.gnu.org/gnu/gdb/gdb-${GDB_VERSION}.tar.bz2"
-W32API_ARCHIVE="http://downloads.sourceforge.net/project/mingw/MinGW
%20API%20for%20MS-Windows/w32api-${W32API_VERSION}/w32api-${W32API_VERSION}-mingw32-src.tar.gz
"
-MINGWRT_ARCHIVE="http://downloads.sourceforge.net/project/mingw/MinGW
%20Runtime
/mingwrt-${MINGWRT_VERSION}/mingwrt-${MINGWRT_VERSION}-mingw32-src.tar.gz"
+W32API_ARCHIVE="http://downloads.sourceforge.net/project/mingw/MinGW
/BaseSystem/RuntimeLibrary/Win32-API/w32api-${W32API_VERSION_SHORT}/w32api-${W32API_VERSION}-mingw32-src.tar.lzma
"
+MINGWRT_ARCHIVE="http://downloads.sourceforge.net/project/mingw/MinGW
/BaseSystem/RuntimeLibrary/MinGW-RT
/mingwrt-${MINGWRT_VERSION}/mingwrt-${MINGWRT_VERSION}-mingw32-src.tar.gz"
GMP_DIR="gmp-${GMP_VERSION}"
MPFR_DIR="mpfr-${MPFR_VERSION}"
GMP_DIR="gmp-${GMP_VERSION}"
MPFR_DIR="mpfr-${MPFR_VERSION}"
@@
-61,6
+60,7
@@
W32API_DIR="w32api-${W32API_VERSION}-mingw32"
MINGWRT_DIR="mingwrt-${MINGWRT_VERSION}-mingw32"
SAVETEMPS=0
MINGWRT_DIR="mingwrt-${MINGWRT_VERSION}-mingw32"
SAVETEMPS=0
+SKIPGDB=0
red='\e[0;31m'
RED='\e[1;31m'
red='\e[0;31m'
RED='\e[1;31m'
@@
-89,9
+89,9
@@
searchgnu()
exit 1
}
exit 1
}
-TAR=`searchgnu tar`
-PATCH=`searchgnu patch`
-MAKE=`searchgnu make`
+TAR=`searchgnu tar`
|| exit $?
+PATCH=`searchgnu patch`
|| exit $?
+MAKE=`searchgnu make`
|| exit $?
cleanup()
{
cleanup()
{
@@
-102,7
+102,7
@@
cleanup()
myhelp()
{
myhelp()
{
- printf "Usage: $0 [-V] [-c] [-p <platform>] [-d <target directory>] [-D <dest dir>]\n"
+ printf "Usage: $0 [-V] [-c] [-p <platform>] [-d <target directory>] [-D <dest dir>]
[-G]
\n"
printf " $0 [-V|--version]\n"
printf " $0 [-h|--help]\n\n"
printf " $0 [-V|--version]\n"
printf " $0 [-h|--help]\n\n"
@@
-118,6
+118,7
@@
myhelp()
printf " (defaults to $TARGETDIR)\n\n"
printf " [-D|--destdir <dest dir>] destination directory to install cross compiler to\n"
printf " (for RPM builds, default unset)\n\n"
printf " (defaults to $TARGETDIR)\n\n"
printf " [-D|--destdir <dest dir>] destination directory to install cross compiler to\n"
printf " (for RPM builds, default unset)\n\n"
+ printf " [-G|--skip-gdb] don't build GNU debugger\n"
}
myversion()
}
myversion()
@@
-149,11
+150,11
@@
getopt - > /dev/null 2>/dev/null || gcc -o getopt getopt.c
getoptbrand="`getopt -V`"
if [ "${getoptbrand:0:6}" == "getopt" ]; then
# Detected GNU getopt that supports long options.
getoptbrand="`getopt -V`"
if [ "${getoptbrand:0:6}" == "getopt" ]; then
# Detected GNU getopt that supports long options.
- args=`getopt -l version,help,clean,directory:,platform:,jobs:,destdir:,savetemps
Vhcd:p:j:D:t
-- "$@"`
+ args=`getopt -l version,help,clean,directory:,platform:,jobs:,destdir:,savetemps
,skip-gdb Vhcd:p:j:D:tG
-- "$@"`
eval set "$args"
else
# Detected non-GNU getopt
eval set "$args"
else
# Detected non-GNU getopt
- args=`getopt Vhcd:p:j:D:t $*`
+ args=`getopt Vhcd:p:j:D:t
G
$*`
set -- $args
fi
set -- $args
fi
@@
-172,12
+173,19
@@
while true ; do
-p|--platform) shift; TARGETARCH="$1"; shift;;
-D|--destdir) shift; DESTDIR="$1"; shift;;
-j|--jobs) shift; JOBS="-j $1"; shift;;
-p|--platform) shift; TARGETARCH="$1"; shift;;
-D|--destdir) shift; DESTDIR="$1"; shift;;
-j|--jobs) shift; JOBS="-j $1"; shift;;
+ -G|--skip-gdb) shift; SKIPGDB=1;;
--) shift; break;;
-*) printf "Invalid option\n\n"; myhelp; exit 1;;
*) break;;
esac
done
--) shift; break;;
-*) printf "Invalid option\n\n"; myhelp; exit 1;;
*) break;;
esac
done
+GDB_PACKAGE="GDB"
+if [ $SKIPGDB -eq 1 ]; then
+ printf "Will skip GDB ... ${green}ok${NC}\n"
+ GDB_PACKAGE=""
+fi
+
MINGW_ARCHIVES=""
if [ "$TARGETARCH" = "i386-mingw32" ]; then
MINGW_ARCHIVES="$W32API_ARCHIVE $MINGWRT_ARCHIVE"
MINGW_ARCHIVES=""
if [ "$TARGETARCH" = "i386-mingw32" ]; then
MINGW_ARCHIVES="$W32API_ARCHIVE $MINGWRT_ARCHIVE"
@@
-230,7
+238,7
@@
if [ "$TARGETARCH" = "i386-mingw32" ]; then
fi
printf "Unpacking and patching ... \n"
fi
printf "Unpacking and patching ... \n"
-for PACKAGE in GMP MPFR MPC LIBELF GCC BINUTILS
GDB
$MINGW_PACKAGES; do
+for PACKAGE in GMP MPFR MPC LIBELF GCC BINUTILS
$GDB_PACKAGE
$MINGW_PACKAGES; do
archive=$PACKAGE"_ARCHIVE"
archive=${!archive}
dir=$PACKAGE"_DIR"
archive=$PACKAGE"_ARCHIVE"
archive=${!archive}
dir=$PACKAGE"_DIR"
@@
-239,6
+247,7
@@
for PACKAGE in GMP MPFR MPC LIBELF GCC BINUTILS GDB $MINGW_PACKAGES; do
FLAGS=zxf
test ${archive:${#archive}-2:2} = "gz" && FLAGS=zxf
test ${archive:${#archive}-3:3} = "bz2" && FLAGS=jxf
FLAGS=zxf
test ${archive:${#archive}-2:2} = "gz" && FLAGS=zxf
test ${archive:${#archive}-3:3} = "bz2" && FLAGS=jxf
+ test ${archive:${#archive}-4:4} = "lzma" && FLAGS="--lzma -xf"
$TAR $FLAGS tarballs/`basename $archive`
for patch in patches/${!dir}_*.patch; do
test -r $patch || continue
$TAR $FLAGS tarballs/`basename $archive`
for patch in patches/${!dir}_*.patch; do
test -r $patch || continue
@@
-277,7
+286,10
@@
if [ `uname` = "Darwin" ]; then
#rm .architecture_check.c .architecture_check.o
fi
#rm .architecture_check.c .architecture_check.o
fi
-mkdir -p build-gmp build-mpfr build-mpc build-libelf build-binutils build-gcc build-gdb
+mkdir -p build-gmp build-mpfr build-mpc build-libelf build-binutils build-gcc
+if [ $SKIPGDB -eq 0 ]; then
+ mkdir -p build-gdb
+fi
if [ -f build-gmp/.success ]; then
printf "Skipping GMP as it is already built\n"
else
if [ -f build-gmp/.success ]; then
printf "Skipping GMP as it is already built\n"
else
@@
-356,7
+368,7
@@
printf "Building libelf ${LIBELF_VERSION} ... "
cd build-libelf
rm -f .failed
echo "$HOSTCFLAGS"
cd build-libelf
rm -f .failed
echo "$HOSTCFLAGS"
- CFLAGS="$HOSTCFLAGS" ../${LIBELF_DIR}/configure --disable-shared --prefix=$TARGETDIR \
+ CFLAGS="$HOSTCFLAGS"
libelf_cv_elf_h_works=no
../${LIBELF_DIR}/configure --disable-shared --prefix=$TARGETDIR \
--infodir=$TARGETDIR/info CFLAGS="$HOSTCFLAGS" || touch .failed
$MAKE $JOBS || touch .failed
$MAKE install DESTDIR=$DESTDIR || touch .failed
--infodir=$TARGETDIR/info CFLAGS="$HOSTCFLAGS" || touch .failed
$MAKE $JOBS || touch .failed
$MAKE install DESTDIR=$DESTDIR || touch .failed
@@
-372,9
+384,6
@@
if [ -f build-binutils/.success ]; then
else
printf "Building binutils ${BINUTILS_VERSION} ... "
(
else
printf "Building binutils ${BINUTILS_VERSION} ... "
(
- # workaround for building binutils 2.20.1 on MINGW:
- touch binutils-${BINUTILS_VERSION}/bfd/doc/bfd.info
- # now build binutils
cd build-binutils
rm -f .failed
../binutils-${BINUTILS_VERSION}/configure --prefix=$TARGETDIR --target=${TARGETARCH} \
cd build-binutils
rm -f .failed
../binutils-${BINUTILS_VERSION}/configure --prefix=$TARGETDIR --target=${TARGETARCH} \
@@
-394,6
+403,7
@@
else
printf "Building GCC ${GCC_VERSION} ... "
(
cd build-gcc
printf "Building GCC ${GCC_VERSION} ... "
(
cd build-gcc
+ export PATH=$PATH:$DESTDIR$TARGETDIR/bin
rm -f .failed
# GCC does not honour HOSTCFLAGS at all. CFLAGS are used for
# both target and host object files. This is pretty misdesigned.
rm -f .failed
# GCC does not honour HOSTCFLAGS at all. CFLAGS are used for
# both target and host object files. This is pretty misdesigned.
@@
-419,11
+429,13
@@
fi
if [ -f build-gdb/.success ]; then
printf "Skipping GDB as it is already built\n"
if [ -f build-gdb/.success ]; then
printf "Skipping GDB as it is already built\n"
+elif [ $SKIPGDB -eq 1 ]; then
+ printf "Skipping GDB as requested by command line\n"
else
printf "Building GDB ${GDB_VERSION} ... "
(
cd build-gdb
else
printf "Building GDB ${GDB_VERSION} ... "
(
cd build-gdb
- export PATH=$PATH:$
PREFIX
/bin
+ export PATH=$PATH:$
DESTDIR$TARGETDIR
/bin
rm -f .failed
CFLAGS="$HOSTCFLAGS" ../gdb-${GDB_VERSION}/configure --prefix=$TARGETDIR --target=${TARGETARCH} \
--without-python --disable-werror --disable-nls
rm -f .failed
CFLAGS="$HOSTCFLAGS" ../gdb-${GDB_VERSION}/configure --prefix=$TARGETDIR --target=${TARGETARCH} \
--without-python --disable-werror --disable-nls