wget http://ftp.de.debian.org/debian/pool/main/g/gcc-4.7/gcc-4.7_4.7.1-1.diff.gz wget http://ftp.de.debian.org/debian/pool/main/g/gcc-4.7/gcc-4.7_4.7.1.orig.tar.gz gunzip gcc-4.7_4.7.1-1.diff.gz tar xvf gcc-4.7_4.7.1.orig.tar.gz mv gcc-4.7-4.7.1.orig gcc-4.7-4.7.1 patch -p 0 < gcc-4.7_4.7.1-1.diff cd gcc-4.7-4.7.1/ --- #change distrelease sed -i 's/:= sid/:= fremantle/g' debian/rules.defs #no multiarch sed -i 's/with_multiarch_lib := yes/with_multiarch_lib := no/g' debian/rules.defs sed -i 's/multiarch_stage1 := yes/multiarch_stage1 := no/g' debian/rules.defs #do not use gcc-4.4 sed -i 's/gcc-4.4/gcc/g' debian/rules2 #lower some build dependencies sed -i 's/AUTO_BUILD_DEP += autoconf2.64, automake (>= 1:1.11), automake (<< 1:1.12),/AUTO_BUILD_DEP += autoconf, automake (>= 1:1.10), automake (<< 1:1.12),/g' debian/rules.conf sed -i 's/make (>= 3.81)/make (>= 3.81) | make-3.81/g' debian/control.m4 sed -i 's/bison (>= 1:2.3)/bison (>= 1:2.3) | bison-2.4/g' debian/control.m4 sed -i 's/g++-4.4/g++/g' debian/control.m4 sed -i 's/autoconf2.64/autoconf/g' debian/control sed -i 's/automake (>= 1:1.11)/automake/g' debian/control #lower versions of documentation tools (and drop gsfonts-x11) sed -i 's/doxygen (>= 1.7.2)/doxygen (>= 1.5.1)/g' debian/rules.conf sed -i 's/gsfonts-x11, //g' debian/rules.conf sed -i 's/doxygen (>= 1.7.2)/doxygen (>= 1.5.1)/g' debian/control sed -i 's/gsfonts-x11, //g' debian/control #lower some dependency-libraries sed -i 's/GMP_BUILD_DEP = libgmp-dev (>= 2:5.0.1~),/GMP_BUILD_DEP = libgmp3-dev,/g' debian/rules.conf sed -i 's/MPFR_BUILD_DEP = libmpfr-dev (>= 3.0.0-9~),/MPFR_BUILD_DEP = libmpfr-dev,/g' debian/rules.conf sed -i 's/libelfg0-dev (>= 0.8.12),/libelfg0-dev,/g' debian/rules.conf sed -i 's/libgmp-dev (>= 2:5.0.1~)/libgmp3-dev/g' debian/control sed -i 's/libmpfr-dev (>= 3.0.0-9~)/libmpfr-dev/g' debian/control sed -i 's/libelfg0-dev (>= 0.8.12)/libelfg0-dev/g' debian/control #remove multilib sed -i 's/GCC_MULTILIB_BUILD_DEP = g++-multilib \[\$(multilib_archs)\]/GCC_MULTILIB_BUILD_DEP =/g' debian/rules.conf #lower dependencies on part2 sed -i 's/dpkg-dev (>= 1.16.0~ubuntu4)/dpkg-dev/g' debian/rules.conf sed -i 's/dpkg-dev (>= 1.16.0~ubuntu4)/dpkg-dev/g' debian/control sed -i 's/debhelper (>= 5.0.62)/debhelper/g' debian/control #lower dependency of libc6 sed -i 's/libc6-dev (>= 2.13-5)/libc6-dev/g' debian/control sed -i 's/libc_ver := 2.11/libc_ver := 2.5/g' debian/rules.conf sed -i 's/libc6-dev (>= 2.13-31) \[armel armhf\]/libc6-dev [armel armhf]/g' debian/control sed -i 's/libc6-dev (>= 2.13-31) \[armel armhf\]/libc6-dev [armel armhf]/g' debian/rules.conf #do not use gnu-unique-object (GLIBC 2.11 or above) sed -i 's/CONFARGS += --enable-gnu-unique-object/CONFARGS += --disable-gnu-unique-object/g' debian/rules2 # This bug is marked invalid on upstream: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52218 # and it is fixed on newer libc: http://sourceware.org/ml/libc-ports/2012-02/msg00079.htlibml #add block to one existing/used patch-file echo " --- a/src/libgo/runtime/proc.c 2012-06-20 14:03:10.721499031 +0300 +++ b/src/libgo/runtime/proc.c 2012-06-20 14:03:41.421651325 +0300 @@ -111,7 +111,15 @@ # else -# error unknown case for SETCONTEXT_CLOBBERS_TLS +static inline void +initcontext(void) +{ +} + +static inline void +fixcontext(ucontext_t *c __attribute__ ((unused))) +{ +} # endif " >> debian/patches/libgo-fix-arm.diff #build fakeroot dpkg-buildpackage