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
This commit is contained in:
Ben Gras 2014-03-18 11:43:08 +01:00 committed by Lionel Sambuc
parent 0b79eac642
commit 5b851f3a9c
3 changed files with 26 additions and 14 deletions

View file

@ -28,6 +28,7 @@ then
cd dist && \ cd dist && \
cat ../patches/* | patch -p1 && \ cat ../patches/* | patch -p1 && \
cp ../files/yyscript.h gold && \ cp ../files/yyscript.h gold && \
cp ../files/yyscript.c gold cp ../files/yyscript.c gold && \
rm -f ld/configdoc.texi
fi fi

View file

@ -1,15 +1,21 @@
#!/bin/sh #!/bin/sh
set -e
# Make sure we're in our directory (i.e., where this shell script is) # Make sure we're in our directory (i.e., where this shell script is)
echo $0 echo $0
cd `dirname $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 # Configure fetch method
URL="http://www.minix3.org/distfiles-minix/gcc-4.5.3.tar.bz2" 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" BACKUP_URL="ftp://ftp.gwdg.de/pub/misc/gcc/releases/gcc-4.5.3/gcc-4.5.3.tar.bz2"
FETCH=ftp FETCH=ftp
which curl >/dev/null if which curl >/dev/null
if [ $? -eq 0 ]; then then
FETCH="curl -O -f" FETCH="curl -O -f"
fi fi
@ -32,16 +38,21 @@ then
fi fi
fi fi
tar -oxjf gcc-4.5.3.tar.bz2 && \ tar -oxjf gcc-4.5.3.tar.bz2
mv gcc-4.5.3 dist && \ mv gcc-4.5.3 dist
cd dist && \ cd dist
rm -rf $DELETEDIRS && \ rm -rf $DELETEDIRS
cat ../patches/* | patch -p1 && \ for f in gcc/doc/gccinstall.info gcc/doc/gccint.info
cp ../files/minix.h gcc/config/ && \ do # This is a hack to remove NUL characters in these .info
cp ../files/t-minix gcc/config/ && \ # files. They make some patch(1)es fail.
cp ../files/minix-spec.h gcc/config/ && \ $SED 's/^..\[index..\]$/[index]/' <$f >k && mv k $f
cp ../files/arm-minix.h gcc/config/arm/minix.h && \ done
cp ../files/i386-minix.h gcc/config/i386/minix.h && \ 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/ cp ../files/gcov-minix-fs-wrapper.h gcc/
fi fi

View file

@ -34,7 +34,7 @@ GNUHOSTDIST?= ${.CURDIR}/../../gnu/dist/${MODULE}
# the corresponding ${.CURDIR}, which also conveniently hides from git. # the corresponding ${.CURDIR}, which also conveniently hides from git.
.if exists(${GNUHOSTDIST:H}/fetch.sh) .if exists(${GNUHOSTDIST:H}/fetch.sh)
${GNUHOSTDIST:H}/.gitignore: ${GNUHOSTDIST:H}/fetch.sh ${GNUHOSTDIST:H}/.gitignore: ${GNUHOSTDIST:H}/fetch.sh
${HOST_SH} ${GNUHOSTDIST:H}/fetch.sh SED=${TOOL_SED} ${HOST_SH} ${GNUHOSTDIST:H}/fetch.sh
@test -e ${GNUHOSTDIST}/configure @test -e ${GNUHOSTDIST}/configure
@echo "${MODULE:U${.CURDIR:T}:C,gcc[0-9]*,gcc,}-*.tar.*z*" >> $@ @echo "${MODULE:U${.CURDIR:T}:C,gcc[0-9]*,gcc,}-*.tar.*z*" >> $@
@echo ${GNUHOSTDIST:T} >> $@ @echo ${GNUHOSTDIST:T} >> $@