Package: gcc-3.4
Version: 3.4.4-8
Severity: wishlist
Tags: patch

Currently the 'gcc-3.4' package  FTBFS on ppc64. 

The attached patch fixes this by adding ppc64 biarch-support 
and by disabling ada for ppc64.

Regards
Andreas Jochens

diff -urN ../tmp-orig/gcc-3.4-3.4.4/debian/control.m4 ./debian/control.m4
--- ../tmp-orig/gcc-3.4-3.4.4/debian/control.m4 2005-09-06 08:06:17.000000000 
+0200
+++ ./debian/control.m4 2005-09-06 08:05:54.000000000 +0200
@@ -108,7 +108,7 @@
 Depends: ${dep:libcbiarch}
 Conflicts: ia32-libs-openoffice.org (<= 1ubuntu2)
 Replaces: ia32-libs-openoffice.org (<= 1ubuntu2)
-Description: GCC support library (ia32)
+Description: GCC support library (32-bit version)
  Shared version of the support library, a library of internal subroutines
  that GCC uses to overcome shortcomings of particular machines, or
  special needs for some languages.
diff -urN ../tmp-orig/gcc-3.4-3.4.4/debian/patches/ppc64-biarch.dpatch 
./debian/patches/ppc64-biarch.dpatch
--- ../tmp-orig/gcc-3.4-3.4.4/debian/patches/ppc64-biarch.dpatch        
1970-01-01 01:00:00.000000000 +0100
+++ ./debian/patches/ppc64-biarch.dpatch        2005-09-06 08:01:48.000000000 
+0200
@@ -0,0 +1,131 @@
+#! /bin/sh -e
+ 
+# DP: biarch patches for powerpc/ppc64
+ 
+dir=
+if [ $# -eq 3 -a "$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 -p1 < $0
+        #cd ${dir}gcc && autoconf
+        ;;
+    -unpatch)
+        patch $pdir -f --no-backup-if-mismatch -R -p1 < $0
+        #rm ${dir}gcc/configure
+        ;;
+    *)
+        echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+        exit 1
+esac
+exit 0
+
+
+diff -urN tmp/gcc/config/rs6000/t-linux64 src/gcc/config/rs6000/t-linux64
+--- tmp/gcc/config/rs6000/t-linux64    2004-03-17 15:16:48.000000000 +0000
++++ src/gcc/config/rs6000/t-linux64    2004-11-22 07:56:52.681533760 +0000
+@@ -11,9 +11,9 @@
+-MULTILIB_OPTIONS        = m64/m32 msoft-float
+-MULTILIB_DIRNAMES       = 64 32 nof
++MULTILIB_OPTIONS        = m64/m32
++MULTILIB_DIRNAMES       = 64 32
+ MULTILIB_EXTRA_OPTS     = fPIC mstrict-align
+-MULTILIB_EXCEPTIONS     = m64/msoft-float
+-MULTILIB_EXCLUSIONS     = m64/!m32/msoft-float
+-MULTILIB_OSDIRNAMES   = ../lib64 ../lib nof
+-MULTILIB_MATCHES        = $(MULTILIB_MATCHES_FLOAT)
++#MULTILIB_EXCEPTIONS     = m64/msoft-float
++#MULTILIB_EXCLUSIONS     = m64/!m32/msoft-float
++MULTILIB_OSDIRNAMES   = ../lib ../lib32
++#MULTILIB_MATCHES        = $(MULTILIB_MATCHES_FLOAT)
+ 
+ # We want fine grained libraries, so use the new code to build the
+@@ -37,8 +37,11 @@
+ mklibgcc: bispecs
+ 
+ bispecs: specs
+-      if [ x`$(GCC_FOR_TARGET) -print-multi-os-directory` = x../lib ]; then \
++      touch f-test.c; \
++      $(GCC_FOR_TARGET) -c f-test.c -o f-test.o; \
++      if [ "x`file f-test.o | grep 64-bit`" = "x" ]; then \
+         sed -e '/cc1_options/{ n; s/$$/ %{m64:-mlong-double-128}/; }' < specs 
> $@; \
+       else \
+         sed -e '/cc1_options/{ n; s/$$/ %{!m32:-mlong-double-128}/; }' < 
specs > $@; \
+-      fi
++      fi; \
++      rm f-test.c f-test.o;
+diff -urN tmp/libjava/configure.host src/libjava/configure.host
+--- tmp/libjava/configure.host 25 Nov 2004 03:46:56 -0000
++++ src/libjava/configure.host 15 Dec 2004 15:45:22 -0000
+@@ -123,10 +123,13 @@
+   powerpc64*-*)
+       sysdeps_dir=powerpc
+       libgcj_interpreter=yes
+-      if [ x`$CC -print-multi-os-directory` = x../lib64 ]; then
++      touch f-test.c
++      $CC -c f-test.c -o f-test.o
++      if [ "x`file f-test.o | grep 32-bit`" = "x" ]; then
+           libgcj_flags="${libgcj_flags} -mminimal-toc"
+       fi
+       enable_hash_synchronization_default=yes
+       slow_pthread_self=yes
++      rm f-test.c f-test.o
+       ;;
+   powerpc*-*)
+diff -urN gcc-3.4.3/config-ml.in src/config-ml.in
+--- gcc-3.4.3/config-ml.in     2004-01-05 00:41:14.000000000 +0000
++++ src/config-ml.in   2004-12-10 18:59:35.651141848 +0000
+@@ -400,7 +400,47 @@
+         ;;
+       esac
+       ;;
+-powerpc*-*-* | rs6000*-*-*)
++powerpc64-*-*)
++      case " $multidirs " in
++      *" 32 "*)
++        # We will not be able to create libraries with -m32 if
++        # we cannot even link a trivial program.  It usually
++        # indicates the 32bit libraries are missing.
++        if echo 'main() {}' > conftest.c &&
++           ${CC-gcc} -m32 conftest.c -o conftest; then
++         echo Enable only libstdc++.
++         old_multidirs="${multidirs}"
++         multidirs=""
++         for x in ${old_multidirs}; do
++           case "$x" in
++           *32* ) case ${ml_realsrcdir} in
++                     *"libstdc++-v3" ) multidirs="${multidirs} ${x}" ;;
++                     *"libf2c" ) multidirs="${multidirs} ${x}" ;;
++                     *"libobjc" ) multidirs="${multidirs} ${x}" ;;
++                     *"libiberty" ) multidirs="${multidirs} ${x}" ;;
++                     *"zlib" ) multidirs="${multidirs} ${x}" ;;
++                     *) : ;;
++                  esac 
++                  ;;
++           *) multidirs="${multidirs} ${x}" ;;
++           esac
++         done
++        else
++          echo Could not link program with -m32, disabling it.
++          old_multidirs="${multidirs}"
++          multidirs=""
++          for x in ${old_multidirs}; do
++            case "$x" in
++            *m32* ) : ;;
++            *) multidirs="${multidirs} ${x}" ;;
++            esac
++          done
++        fi
++        rm -f conftest.c conftest
++        ;;
++      esac
++      ;;
++powerpc-*-* | rs6000*-*-*)
+       if [ x$enable_aix64 = xno ]
+       then
+         old_multidirs="${multidirs}"
diff -urN ../tmp-orig/gcc-3.4-3.4.4/debian/rules.defs ./debian/rules.defs
--- ../tmp-orig/gcc-3.4-3.4.4/debian/rules.defs 2005-09-06 08:06:17.000000000 
+0200
+++ ./debian/rules.defs 2005-09-06 08:04:03.000000000 +0200
@@ -437,7 +437,7 @@
 endif
 
 with_libgnat := yes
-ada_no_cpus := arm m68k m32r
+ada_no_cpus := arm m68k m32r ppc64
 ada_no_systems := hurd-i386 kfreebsd-gnu knetbsd-gnu netbsd-elf-gnu
 ifeq ($(DEB_TARGET_ARCH_CPU), $(findstring 
$(DEB_TARGET_ARCH_CPU),$(ada_no_cpus)))
   with_ada := disabled for architecure $(DEB_TARGET_ARCH_CPU)
diff -urN ../tmp-orig/gcc-3.4-3.4.4/debian/rules.patch ./debian/rules.patch
--- ../tmp-orig/gcc-3.4-3.4.4/debian/rules.patch        2005-09-06 
08:06:17.000000000 +0200
+++ ./debian/rules.patch        2005-09-06 08:02:34.000000000 +0200
@@ -129,6 +129,9 @@
   ifeq ($(DEB_TARGET_ARCH),amd64)
     debian_patches += amd64-biarch # amd64-multilib
   endif
+  ifeq ($(DEB_TARGET_ARCH),ppc64)
+    debian_patches += ppc64-biarch
+  endif
 endif
 
 ifeq ($(DEB_TARGET_ARCH_OS),kfreebsd)


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to