minix/external/gpl3/gcc/fetch.sh
Ben Gras 5b851f3a9c patch(1) problems workaround
. NUL input in 2 source files cause patch(1)
	  to truncate the input (and fail the patches); a sed
	  command removes the NULs
	. in binutils/ld, configdoc.texi is patched to be removed
	  but some patch(1)es leave an empty file, causing build problems;
	  this file is explicitly removed.

Change-Id: Iec38d3992b0df4f7bbb9a87b1320005ab3272ff1
2014-07-28 17:05:20 +02:00

58 lines
1.5 KiB
Bash
Executable file

#!/bin/sh
set -e
# Make sure we're in our directory (i.e., where this shell script is)
echo $0
cd `dirname $0`
# Default sed: whatever's in $PATH; set by the buildsystem to be the
# host-built sed tool we know supports the syntax we use
: ${SED=sed}
# Configure fetch method
URL="http://www.minix3.org/distfiles-minix/gcc-4.5.3.tar.bz2"
BACKUP_URL="ftp://ftp.gwdg.de/pub/misc/gcc/releases/gcc-4.5.3/gcc-4.5.3.tar.bz2"
FETCH=ftp
if which curl >/dev/null
then
FETCH="curl -O -f"
fi
# Remove a few directories from the start, so we do not end up with a 165MB patch...
DELETEDIRS="include/elf
libada libjava libffi libgfortran
boehm-gc gnattools
gcc/ada gcc/fortran gcc/java
gcc/testsuite/ada gcc/testsuite/gnat gcc/testsuite/gnat.dg
gcc/testsuite/gfortran.dg gcc/testsuite/gfortran.fortran-torture
"
# Fetch sources if not available
if [ ! -d dist ];
then
if [ ! -f gcc-4.5.3.tar.bz2 ];
then
$FETCH $URL
if [ $? -ne 0 ]; then
$FETCH $BACKUP_URL
fi
fi
tar -oxjf gcc-4.5.3.tar.bz2
mv gcc-4.5.3 dist
cd dist
rm -rf $DELETEDIRS
for f in gcc/doc/gccinstall.info gcc/doc/gccint.info
do # This is a hack to remove NUL characters in these .info
# files. They make some patch(1)es fail.
$SED 's/^..\[index..\]$/[index]/' <$f >k && mv k $f
done
cat ../patches/* | patch -p1
cp ../files/minix.h gcc/config/
cp ../files/t-minix gcc/config/
cp ../files/minix-spec.h gcc/config/
cp ../files/arm-minix.h gcc/config/arm/minix.h
cp ../files/i386-minix.h gcc/config/i386/minix.h
cp ../files/gcov-minix-fs-wrapper.h gcc/
fi