diff -urN X/debian/patches/cross-biarch.patch gcc-4.3-4.3.2/debian/patches/cross-biarch.patch --- X/debian/patches/cross-biarch.dpatch 1969-12-31 19:00:00.000000000 -0500 +++ gcc-4.3-4.3.2/debian/patches/cross-biarch.dpatch 2010-08-24 09:19:26.000000000 -0400 @@ -0,0 +1,102 @@ +#! /bin/sh -e +# +# DP: Fix the location of target's libs in cross-build for biarch + +if [ $# -eq 3 ] && [ "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + cd ${dir} && autoconf + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + cd ${dir} && autoconf + ;; + *) + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" + exit 1;; +esac + +exit 0 + +--- config-ml.in 2010-08-24 01:48:38.000000000 -0400 ++++ config-ml.in 2010-08-24 03:56:12.000000000 -0400 +@@ -540,7 +540,12 @@ + else \ + if [ -d ../$${dir}/$${lib} ]; then \ + flags=`echo $$i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \ +- if (cd ../$${dir}/$${lib}; $(MAKE) $(FLAGS_TO_PASS) \ ++ libsuffix_="$${dir}"; \ ++ if [ "$${dir}" = "n32" ]; then libsuffix_=32; fi; \ ++ if (cd ../$${dir}/$${lib}; $(MAKE) $(subst \ ++ -B$(build_tooldir)/lib/, \ ++ -B$(build_tooldir)/lib$${libsuffix_}/, \ ++ $(FLAGS_TO_PASS)) \ + CFLAGS="$(CFLAGS) $${flags}" \ + CCASFLAGS="$(CCASFLAGS) $${flags}" \ + FCFLAGS="$(FCFLAGS) $${flags}" \ +@@ -791,6 +796,13 @@ + GCJ_=$GCJ' ' + GFORTRAN_=$GFORTRAN' ' + else ++ if [ "${ml_dir}" = "." ]; then ++ FILTER_="s!X\\(.*\\)!\\1!p" ++ elif [ "${ml_dir}" = "n32" ]; then # mips n32 -> lib32 ++ FILTER_="s!X\\(.*\\)/!\\132/!p" ++ else ++ FILTER_="s!X\\(.*\\)/!\\1${ml_dir}/!p" ++ fi + # Create a regular expression that matches any string as long + # as ML_POPDIR. + popdir_rx=`echo "${ML_POPDIR}" | sed 's,.,.,g'` +@@ -799,6 +811,8 @@ + case $arg in + -[BIL]"${ML_POPDIR}"/*) + CC_="${CC_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\1/p"`' ' ;; ++ -B*/lib/) ++ CC_="${CC_}"`echo "X${arg}" | sed -n "$FILTER_"`' ' ;; + "${ML_POPDIR}"/*) + CC_="${CC_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; + *) +@@ -811,6 +825,8 @@ + case $arg in + -[BIL]"${ML_POPDIR}"/*) + CXX_="${CXX_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; ++ -B*/lib/) ++ CXX_="${CXX_}"`echo "X${arg}" | sed -n "$FILTER_"`' ' ;; + "${ML_POPDIR}"/*) + CXX_="${CXX_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; + *) +@@ -823,6 +839,8 @@ + case $arg in + -[BIL]"${ML_POPDIR}"/*) + F77_="${F77_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; ++ -B*/lib/) ++ F77_="${F77_}"`echo "X${arg}" | sed -n "$FILTER_"`' ' ;; + "${ML_POPDIR}"/*) + F77_="${F77_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; + *) +@@ -835,6 +853,8 @@ + case $arg in + -[BIL]"${ML_POPDIR}"/*) + GCJ_="${GCJ_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; ++ -B*/lib/) ++ GCJ_="${GCJ_}"`echo "X${arg}" | sed -n "$FILTER_"`' ' ;; + "${ML_POPDIR}"/*) + GCJ_="${GCJ_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; + *) +@@ -847,6 +867,8 @@ + case $arg in + -[BIL]"${ML_POPDIR}"/*) + GFORTRAN_="${GFORTRAN_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; ++ -B*/lib/) ++ GFORTRAN_="${GFORTRAN_}"`echo "X${arg}" | sed -n "$FILTER_"`' ' ;; + "${ML_POPDIR}"/*) + GFORTRAN_="${GFORTRAN_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; + *) diff -urN X/debian/rules.patch gcc-4.3-4.3.2/debian/rules.patch --- X/debian/rules.patch 2010-08-24 01:16:53.000000000 -0400 +++ gcc-4.3-4.3.2/debian/rules.patch 2010-08-24 09:19:26.000000000 -0400 @@ -231,6 +231,9 @@ endif debian_patches += config-ml + ifeq ($(DEB_CROSS),yes) + debian_patches += cross-biarch + endif ifeq ($(DEB_TARGET_ARCH),powerpc) debian_patches += powerpc-biarch endif diff -urN X/debian/rules2 gcc-4.3-4.3.2/debian/rules2 --- X/debian/rules2 2010-08-24 01:16:53.000000000 -0400 +++ gcc-4.3-4.3.2/debian/rules2 2010-08-24 09:21:20.000000000 -0400 @@ -1719,6 +1719,10 @@ mkdir -p $(d)/$(PF)/s390-linux-gnu/lib64 cp -a $(d)/$(PF)/s390x-linux-gnu/lib64/* $(d)/$(PF)/s390-linux-gnu/lib64/ endif + ifeq ($(DEB_TARGET_ARCH),powerpc) + : # ppc 64bit build slaps libgcc and libstdc++ to powerpc64-linux-gnu + cp -a $(d)/$(PF)/powerpc64-linux-gnu/lib64/* $(d)/$(PF)/powerpc-linux-gnu/lib64/ + endif endif chmod 755 debian/dh_* diff -urN X/debian/rules.conf gcc-4.3-4.3.2/debian/rules.conf --- X/debian/rules.conf 2010-08-24 01:16:53.000000000 -0400 +++ gcc-4.3-4.3.2/debian/rules.conf 2010-08-24 14:25:39.000000000 -0400 @@ -485,7 +485,7 @@ ifeq ($(DEB_CROSS),yes) languages = c c++ objc objpp - addons = libgcc lib64gcc lib32gcc libcxx lib32cxx lib64cxx libn32cxx cdev c++dev libobjc objcdev objppdev gccxbase + addons = libgcc lib64gcc lib32gcc libn32gcc libcxx lib32cxx lib64cxx libn32cxx cdev c++dev libobjc objcdev objppdev gccxbase else languages = ada c c++ fortran java objc objpp # pascal addons = gccbase cdev c++dev fdev libgcj libgcjdev gcjdoc libgnat libs \ diff -u X/debian/rules.d/binary-libstdcxx-cross.mk gcc-4.3-4.3.2/debian/rules.d/binary-libstdcxx-cross.mk --- X/debian/rules.d/binary-libstdcxx-cross.mk 2010-08-24 01:16:53.000000000 -0400 +++ gcc-4.3-4.3.2/debian/rules.d/binary-libstdcxx-cross.mk 2010-08-24 15:37:12.000000000 -0400 @@ -265,6 +265,57 @@ trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) +$(binary_stamp)-libn32stdcxx: $(install_stamp) + dh_testdir + dh_testroot + mv $(install_stamp) $(install_stamp)-tmp + + rm -rf $(d_libn32) + dh_installdirs -p$(p_libn32) $(dirs_lib32) + DH_COMPAT=2 dh_movefiles -p$(p_libn32) $(files_lib32) + + dh_installdirs -p$(p_dbgn32) \ + $(PF)/$(DEB_TARGET_GNU_TYPE)/lib32 + mv $(d)/$(PF)/$(DEB_TARGET_GNU_TYPE)/lib32/debug $(d_dbgn32)/$(PF)/$(DEB_TARGET_GNU_TYPE)/lib32/. + + mkdir -p $(d_dbgn32) + PATH=/usr/share/dpkg-cross:$$PATH dh_strip -p$(p_libn32) --keep-debug + # The above line puts debugging information into some strange location + # that is hardcoded into dh_strip. Move it from there. + mkdir -p $(d_libn32)/usr/$(DEB_TARGET_GNU_TYPE)/lib32/debug + mv $(d_libn32)/usr/lib/debug/usr/$(DEB_TARGET_GNU_TYPE)/lib32/* $(d_libn32)/usr/$(DEB_TARGET_GNU_TYPE)/lib32/debug/ + rm -rf $(d_libn32)/usr/lib32 + # End workaround + find $(d_libn32) + tar -C $(d_libn32) -c -f - usr/$(DEB_TARGET_GNU_TYPE)/lib32/debug | tar -v -C $(d_dbgn32) -x -f - + rm -rf $(d_libn32)/usr/$(DEB_TARGET_GNU_TYPE)/lib32/debug + + dh_installdocs -p$(p_libn32) + echo "See /$(docdir)/$(p_base) for more information" \ + > $(d_libn32)/$(docdir)/$(p_libn32)/README.Debian + dh_installchangelogs -p$(p_libn32) + debian/dh_doclink -p$(p_dbgn32) $(p_libn32) + + debian/dh_rmemptydirs -p$(p_libn32) + dh_compress -p$(p_libn32) + dh_fixperms -p$(p_libn32) + dh_makeshlibs -p$(p_libn32) -V '$(p_libn32) (>= $(DEB_STDCXX_SOVERSION))' -n + sed s/$(cross_lib_arch)//g < debian/$(p_libn32)/DEBIAN/shlibs > debian/$(p_libn32)/DEBIAN/shlibs.fixed + mv debian/$(p_libn32)/DEBIAN/shlibs.fixed debian/$(p_libn32)/DEBIAN/shlibs + mkdir debian/$(p_libn32)-deps + ln -s "`readlink -e /usr/$(DEB_TARGET_GNU_TYPE)/lib32`" debian/$(p_libn32)-deps/lib + ARCH=$(DEB_TARGET_ARCH) MAKEFLAGS="CC=something" dh_shlibdeps -p$(p_libn32) -L$(p_libn32)-deps + sed 's/\(lib[^ ]*\) /\1$(cross_lib_arch) /g' < debian/$(p_libn32).substvars > debian/$(p_libn32).substvars.new + mv debian/$(p_libn32).substvars.new debian/$(p_libn32).substvars + dh_gencontrol -p$(p_libn32) -- -v$(DEB_VERSION) $(common_substvars) + #dh_gencontrol -p$(p_dbgn32) -- -v$(DEB_VERSION) $(common_substvars) + + dh_installdeb -p$(p_libn32) + dh_md5sums -p$(p_libn32) + dh_builddeb -p$(p_libn32) + + trap '' 1 2 3 15; touch $@; mv $(install_stamp)-tmp $(install_stamp) + # ---------------------------------------------------------------------- libcxxdev_deps = $(install_stamp) ifeq ($(with_libcxx),yes)