[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#341882: marked as done (gcc-4.0: [mips] support for tri-arch on mips & mipsel)



Your message dated Mon, 4 Sep 2006 02:50:12 +0200
with message-id <17659.30788.347704.826739@gargle.gargle.HOWL>
and subject line Bug#341882: binutils fix
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--- Begin Message ---
Package: gcc-4.0
Version: 4.0.2-4.1
Severity: wishlist
Tags: patch


Please enable tri-arch support for the MIPS platforms. The attached
patch (and a corresponding patch to glibc) provide support for n32 & n64
ABIs in addition to the current o32 ABI. These patches have been tested
by building n32 & n64 version of the ltp packages.

-- System Information:
Debian Release: testing/unstable
  APT prefers testing
  APT policy: (600, 'testing')
Architecture: mipsel (mips64)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.14-rc1-Helix64-smp
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages gcc-4.0 depends on:
ii  binutils                     2.16.1-2    The GNU assembler, linker and bina
ii  cpp-4.0                      4.0.2-4.1   The GNU C preprocessor
ii  gcc-4.0-base                 4.0.2-4.1   The GNU Compiler Collection (base 
ii  libc6                        2.3.5-8.2   GNU C Library: Shared libraries an
ii  libgcc1                      1:4.0.2-4.1 GCC support library

Versions of packages gcc-4.0 recommends:
ii  libc6-dev                     2.3.5-8.2  GNU C Library: Development Librari
ii  libmudflap0-dev               4.0.2-4.1  GCC mudflap support libraries (dev

-- no debconf information
Index: debian/rules.patch
===================================================================
--- debian/rules.patch	(.../vendor/gcc-4.0/current)	(revision 145)
+++ debian/rules.patch	(.../src/gcc-4.0)	(revision 145)
@@ -102,6 +102,7 @@
 endif
 ifneq (,$(findstring /$(DEB_TARGET_ARCH)/,/mips/mipsel/))
   debian_patches += libffi-mips libmudflap-entry-point libmudflap-mips
+  debian_patches += mips-biarch
 endif
 
 ifeq ($(DEB_TARGET_ARCH_OS),kfreebsd)
Index: debian/patches/mips-biarch.dpatch
===================================================================
--- debian/patches/mips-biarch.dpatch	(.../vendor/gcc-4.0/current)	(revision 0)
+++ debian/patches/mips-biarch.dpatch	(.../src/gcc-4.0)	(revision 145)
@@ -0,0 +1,85 @@
+#! /bin/sh -e
+
+# DP: Patch author: Stuart Anderson <anderson@netsweng.com>
+# DP: Upstream status: Not submitted
+# DP: Description: add full tri-arch support. Include linux64.h also fix up
+# DP: Description: the directory names so that o32 is the default and follow
+# DP: Description: the glibc convention for 32 & 64 bit names
+
+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 -c -f --no-backup-if-mismatch -p1 < $0
+        ;;
+    -unpatch)
+        patch $pdir -c -f --no-backup-if-mismatch -R -p1 < $0
+        ;;
+    *)
+        echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+        exit 1
+esac
+exit 0
+
+*** src/gcc/config.gcc.bak	Mon Oct  3 16:12:53 2005
+--- src/gcc/config.gcc	Mon Oct  3 16:19:45 2005
+***************
+*** 1424,1430 ****
+  	gas=yes
+  	;;
+  mips*-*-linux*)				# Linux MIPS, either endian.
+!         tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} mips/linux.h"
+  	case ${target} in
+          mipsisa32*-*)
+                  target_cpu_default="MASK_SOFT_FLOAT"
+--- 1424,1431 ----
+  	gas=yes
+  	;;
+  mips*-*-linux*)				# Linux MIPS, either endian.
+!         tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} mips/linux.h mips/linux64.h"
+! 	tmake_file="${tmake_file} mips/t-linux64"
+  	case ${target} in
+          mipsisa32*-*)
+                  target_cpu_default="MASK_SOFT_FLOAT"
+
+*** src/gcc/config/mips/linux64.h.bak	Mon Oct  3 11:28:01 2005
+--- src/gcc/config/mips/linux64.h	Mon Oct  3 11:28:29 2005
+***************
+*** 23,29 ****
+     in order to make the other specs easier to write.  */
+  #define DRIVER_SELF_SPECS \
+  "%{!EB:%{!EL:%(endian_spec)}}", \
+! "%{!mabi=*: -mabi=n32}"
+  
+  #undef SUBTARGET_ASM_SPEC
+  #define SUBTARGET_ASM_SPEC "\
+--- 23,29 ----
+     in order to make the other specs easier to write.  */
+  #define DRIVER_SELF_SPECS \
+  "%{!EB:%{!EL:%(endian_spec)}}", \
+! "%{!mabi=*: -mabi=32}"
+  
+  #undef SUBTARGET_ASM_SPEC
+  #define SUBTARGET_ASM_SPEC "\
+
+*** src/gcc/config/mips/t-linux64.orig	Wed Oct 19 06:19:32 2005
+--- src/gcc/config/mips/t-linux64	Tue Oct 18 18:08:02 2005
+***************
+*** 1,5 ****
+  MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64
+! MULTILIB_DIRNAMES = n32 32 64
+  MULTILIB_OSDIRNAMES = ../lib32 ../lib ../lib64
+  
+  EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o
+--- 1,5 ----
+  MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64
+! MULTILIB_DIRNAMES = 32 . 64
+  MULTILIB_OSDIRNAMES = ../lib32 ../lib ../lib64
+  
+  EXTRA_MULTILIB_PARTS=crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o

Property changes on: debian/patches/mips-biarch.dpatch
___________________________________________________________________
Name: svn:executable
   + *

Index: debian/patches/biarch-include-mips.dpatch
===================================================================
--- debian/patches/biarch-include-mips.dpatch	(.../vendor/gcc-4.0/current)	(revision 0)
+++ debian/patches/biarch-include-mips.dpatch	(.../src/gcc-4.0)	(revision 145)
@@ -0,0 +1,59 @@
+#! /bin/sh -e
+
+# DP: mips-biarch-include.dpatch
+# DP:
+# DP: Adds biarch include directory (/usr/include/{mips/mips64}-linux-gnu)
+# DP: to the system include paths, depending on 32/64 bit mode.
+
+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 -p0 < $0
+        ;;
+    -unpatch)
+        patch $pdir -f --no-backup-if-mismatch -R -p0 < $0
+        ;;
+    *)
+        echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+        exit 1
+esac
+exit 0
+
+--- gcc/Makefile.in~	2005-04-04 21:45:13.000000000 +0200
++++ gcc/Makefile.in	2005-07-08 21:04:29.808308064 +0200
+@@ -2680,6 +2680,8 @@
+   -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \
+   -DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \
+   -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
++  -DTARGET32_MACHINE=\"mips-linux-gnu\" \
++  -DTARGET64_MACHINE=\"mips64-linux-gnu\" \
+   @TARGET_SYSTEM_ROOT_DEFINE@
+ 
+ cppdefault.o: cppdefault.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
+
+--- gcc/cppdefault.c~	2004-11-03 03:23:49.000000000 +0000
++++ gcc/cppdefault.c	2005-07-09 10:19:46.762899104 +0000
+@@ -50,9 +70,15 @@
+     /* Pick up GNU C++ generic include files.  */
+     { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 0 },
+ #endif
++#if defined (CROSS_COMPILE)
++    /* Pick up GNU C++ target-dependent include files.  */
++    { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 0, 32 },
++#else
+ #ifdef GPLUSPLUS_TOOL_INCLUDE_DIR
+     /* Pick up GNU C++ target-dependent include files.  */
+-    { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 0 },
++    { GPLUSPLUS_INCLUDE_DIR "/" TARGET32_MACHINE, "G++", 1, 1, 0, 32 },
++    { GPLUSPLUS_INCLUDE_DIR "/" TARGET64_MACHINE, "G++", 1, 1, 0, 64 },
++#endif
+ #endif
+ #ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR
+     /* Pick up GNU C++ backward and deprecated include files.  */

Property changes on: debian/patches/biarch-include-mips.dpatch
___________________________________________________________________
Name: svn:executable
   + *

Index: debian/rules.defs
===================================================================
--- debian/rules.defs	(.../vendor/gcc-4.0/current)	(revision 145)
+++ debian/rules.defs	(.../src/gcc-4.0)	(revision 145)
@@ -568,7 +568,7 @@
 biarch_cpu := $(patsubst $(DEB_TARGET_GNU_CPU)=%, %, \
 			 $(filter $(DEB_TARGET_GNU_CPU)=%, $(biarch_map)))
 
-biarch_archs := /i386/powerpc/sparc/s390/
+biarch_archs := /i386/powerpc/sparc/s390/mips/mipsel/
 ifeq (/$(DEB_TARGET_ARCH)/,$(findstring /$(DEB_TARGET_ARCH)/,$(biarch_archs)))
   biarch := yes
   with_lib64gcc	:= yes
@@ -591,7 +591,7 @@
   export TARGET64_MACHINE
 endif
 
-biarch32_archs := /amd64/ppc64/
+biarch32_archs := /amd64/ppc64/mips/mipsel/
 ifeq (/$(DEB_TARGET_ARCH)/,$(findstring /$(DEB_TARGET_ARCH)/,$(biarch32_archs)))
   biarch32 := yes
   with_lib32gcc := yes
@@ -610,6 +610,12 @@
   export TARGET64_MACHINE
 endif
 
+ifneq (, $(filter $(DEB_TARGET_ARCH_CPU),mips mipsel))
+  # on mips, we are really tri-arch
+  TARGET32_MACHINE := $(TARGET_ALIAS)
+  TARGET64_MACHINE := $(TARGET_ALIAS)
+endif
+
 #ifeq ($(DEB_TARGET_ARCH),ia64)
 #  biarch32 := yes
 #endif
@@ -670,6 +676,15 @@
   endif
 endif
 
+# mips/mipsel build --------------------
+ifneq (, $(filter $(DEB_TARGET_ARCH_CPU),mipsel))
+  export GNUTARGET = elf64-tradlittlemips
+endif
+ifneq (, $(filter $(DEB_TARGET_ARCH_CPU),mips))
+  export GNUTARGET = elf64-tradbigmips
+endif
+
+
 # GNU locales
 force_gnu_locales := yes
 locale_no_systems := gnu knetbsd-gnu netbsdelf-gnu
Index: debian/changelog
===================================================================
--- debian/changelog	(.../vendor/gcc-4.0/current)	(revision 145)
+++ debian/changelog	(.../src/gcc-4.0)	(revision 145)
@@ -1,3 +1,10 @@
+gcc-4.0 (4.0.2-4.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Enable triarch support for mips64 
+
+ -- Stuart Anderson <anderson@realmsys.com>  Tue, 22 Nov 2005 08:17:31 -0600
+
 gcc-4.0 (4.0.2-4) unstable; urgency=low
 
   * Configure libstdc++ using the default allocator. Background:
@@ -72,8 +79,22 @@
 
  -- Matthias Klose <doko@debian.org>  Sun, 23 Oct 2005 12:50:59 +0200
 
+gcc-4.0 (4.0.2-2.2a) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Fix TARGET32_MACHINE & TARGET64_MACHINE for tri-arch mode
+  * re-enable FORTRAN and ADA builds 
+
+ -- Stuart Anderson <anderson@realmsys.com>  Sat,  5 Nov 2005 14:16:19 -0700
+
+gcc-4.0 (4.0.2-2.1a) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Enable triarch support for mips64 
+
+ -- Stuart Anderson <anderson@realmsys.com>  Wed, 12 Oct 2005 18:34:52 -0600
+
 gcc-4.0 (4.0.2-2) unstable; urgency=low
-
   * Update to CVS 20051001, taken from the gcc-4_0-branch. Includes the
     changes between 4.0.2 RC3 and the final 4.0.2 release, missing from
     the upstream tarball. Remove patches applied upstream (gcc-c-decl,
Index: debian/rules.conf
===================================================================
--- debian/rules.conf	(.../vendor/gcc-4.0/current)	(revision 145)
+++ debian/rules.conf	(.../src/gcc-4.0)	(revision 145)
@@ -57,7 +57,7 @@
 JAVA_BUILD_DEP := xlibs-dev [java_no_archs], libgtk2.0-dev (>= 2.4.4-2) [java_no_archs], libart-2.0-dev [java_no_archs], libcairo2-dev [java_no_archs],
 #PASCAL_BUILD_DEP := libncurses5-dev [pascal_no_archs], tetex-bin [pascal_no_archs], libgmp3-dev [pascal_no_archs], help2man [pascal_no_archs],
 
-LIBC_BIARCH_BUILD_DEP = libc6-dev-amd64 [i386], libc6-dev-sparc64 [sparc], libc6-dev-s390x [s390], libc6-dev-i386 [amd64] | ia32-libs-dev [amd64], libc6-dev-powerpc [ppc64], libc6-dev-ppc64 [powerpc], lib32gcc1 [amd64 ppc64], lib64gcc1 [i386 powerpc sparc s390], lib64z1-dev [i386 powerpc sparc s390], lib32z1-dev [amd64],
+LIBC_BIARCH_BUILD_DEP = libc6-dev-amd64 [i386], libc6-dev-sparc64 [sparc], libc6-dev-s390x [s390], libc6-dev-i386 [amd64] | ia32-libs-dev [amd64], libc6-dev-powerpc [ppc64], libc6-dev-ppc64 [powerpc], lib32gcc1 [amd64 ppc64], lib64gcc1 [i386 powerpc sparc s390], lib64z1-dev [i386 powerpc sparc s390], lib32z1-dev [amd64], libc6-dev-mipsn32 [mips mipsel], libc6-dev-mipsn64 [mips mipsel],
 
 #ifeq ($(PKGSOURCE),gcc-snapshot)
 #  LIBC_BIARCH_BUILD_DEP =
@@ -83,6 +83,10 @@
     LIBC_BIARCH_DEP := libc6-s390x (>= $(libc_ver))
     LIBC_BIARCH_DEV_DEP := libc6-dev-s390x (>= $(libc_ver))
   endif
+  ifneq (, $(filter $(DEB_TARGET_ARCH),mips mipsel))
+    LIBC_BIARCH_DEP := libc6-mipsn64 (>= $(libc_ver))
+    LIBC_BIARCH_DEV_DEP := libc6-dev-mipsn64 (>= $(libc_ver))
+  endif
   LIBCXX_BIARCH_DEP = lib64stdc++$(CXX_SONAME)
 endif
 ifeq ($(biarch32),yes)
@@ -99,6 +103,10 @@
     LIBC_BIARCH_DEP := libc6-powerpc (>= $(libc_ver))
     LIBC_BIARCH_DEV_DEP := libc6-dev-powerpc (>= $(libc_ver))
   endif
+  ifneq (, $(filter $(DEB_TARGET_ARCH),mips mipsel))
+    LIBC_BIARCH_DEP := libc6-mipsn32 (>= $(libc_ver))
+    LIBC_BIARCH_DEV_DEP := libc6-dev-mipsn32 (>= $(libc_ver))
+  endif
   LIBCXX_BIARCH_DEP = lib32stdc++$(CXX_SONAME)
 endif
 
@@ -264,7 +272,8 @@
   languages = ada c c++ f95 java objc pascal treelang
   addons = cdev c++dev fastjar fdev fixincl javadev libcxx libg2c \
 	   libgcc libffi libfortran libgcj libgnat libnof libobjc libs \
-	   lib64gcc lib64cxx lib64ffi lib64gcj lib64gnat \
+	   lib64gcc lib32gcc lib64cxx lib32cxx lib64ffi lib32ffi \
+	   lib64gcj lib32gcj lib64gnat lib32gnat \
 	   lib64objc lib32objc lib64gfortran lib32gfortran \
 	   libnof objcdev proto
 endif

--- End Message ---
--- Begin Message ---
tags 341882 + wontfix
thanks

Now really closing the report.  Stuart, please see the bug log, how to
forward-port the patch to 4.1.


--- End Message ---

Reply to: