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

Bug#282880: marked as done (gcc-3.4: [Patch] M32R support)



Your message dated Tue, 30 Nov 2004 04:02:22 -0500
with message-id <E1CZ3tu-0000UG-00@newraff.debian.org>
and subject line Bug#282880: fixed in gcc-3.4 3.4.3-2
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)

--------------------------------------
Received: (at submit) by bugs.debian.org; 25 Nov 2004 05:35:44 +0000
>From gniibe@hawthorn.m17n.org Wed Nov 24 21:35:44 2004
Return-path: <gniibe@hawthorn.m17n.org>
Received: from hawthorn.m17n.org (mokkei.gniibe.org) [192.47.44.64] 
	by spohr.debian.org with esmtp (Exim 3.35 1 (Debian))
	id 1CXCIB-0007Nx-00; Wed, 24 Nov 2004 21:35:43 -0800
Received: from gniibe by mokkei.gniibe.org with local (Exim 4.34)
	id 1CXCHf-0003NX-NE; Thu, 25 Nov 2004 14:35:11 +0900
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
From: NIIBE Yutaka <gniibe@fsij.org>
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: gcc-3.4: [Patch] M32R support
X-Mailer: reportbug 2.63
Date: Thu, 25 Nov 2004 14:35:11 +0900
Message-Id: <[🔎] E1CXCHf-0003NX-NE@mokkei.gniibe.org>
Sender: NIIBE Yutaka <gniibe@hawthorn.m17n.org>
Delivered-To: submit@bugs.debian.org
X-Spam-Checker-Version: SpamAssassin 2.60-bugs.debian.org_2004_03_25 
	(1.212-2003-09-23-exp) on spohr.debian.org
X-Spam-Status: No, hits=-5.4 required=4.0 tests=BAYES_01,HAS_PACKAGE,
	UPPERCASE_25_50 autolearn=no version=2.60-bugs.debian.org_2004_03_25
X-Spam-Level: 

Package: gcc-3.4
Version: 3.4.3-1
Severity: wishlist

We're building Debian M32R (http://www.linux-m32r.org/).
Could you please include following patches?

  * debian/rules.patch: Added M32R support.
  * debian/rules.defs: Disable Java and  Ada for M32R.
  * debian/patches/m32r-{fixes,gotoff,libffi,limits,stack}.dpatch: New files.
  * debian/patches/autoreconf.dpatch: Enable again.
  
 -- NIIBE Yutaka <gniibe@fsij.org>  Wed, 24 Nov 2004 18:10:14 +0900

diff -u gcc-3.4-3.4.3/debian/patches/autoreconf.dpatch gcc-3.4-3.4.3/debian/patches/autoreconf.dpatch
--- gcc-3.4-3.4.3/debian/patches/autoreconf.dpatch
+++ gcc-3.4-3.4.3/debian/patches/autoreconf.dpatch
@@ -12,11 +12,13 @@
 fi
 case "$1" in
     -patch)
+        patch $pdir -f --no-backup-if-mismatch -p0 < $0
 	for i in libf2c libjava/libltdl libobjc libstdc++-v3 zlib; do
 		(cd ${dir}/${i} ; autoreconf --force)
 	done
         ;;
     -unpatch)
+        patch $pdir -f --no-backup-if-mismatch -R -p0 < $0
 	echo unable to unpatch autoreconf.
         ;;
     *)
@@ -26,0 +29,12 @@
+
+--- libtool.m4~	2004-09-09 19:06:00.000000000 +0900
++++ libtool.m4	2004-09-09 19:10:12.000000000 +0900
+@@ -680,7 +680,7 @@
+ # This must be Linux ELF.
+ linux-gnu*)
+   case $host_cpu in
+-  alpha* | mips* | hppa* | i*86 | powerpc* | sparc* | ia64* | sh* )
++  alpha* | m32r* | mips* | hppa* | i*86 | ia64* | powerpc* | sh* | sparc* )
+     lt_cv_deplibs_check_method=pass_all ;;
+   *)
+     # glibc up to 2.1.1 does not perform some relocations on ARM
diff -u gcc-3.4-3.4.3/debian/rules.patch gcc-3.4-3.4.3/debian/rules.patch
--- gcc-3.4-3.4.3/debian/rules.patch
+++ gcc-3.4-3.4.3/debian/rules.patch
@@ -79,6 +79,9 @@
 ifeq ($(DEB_TARGET_ARCH),amd64)
   debian_patches += amd64-biarch # amd64-multilib
 endif
+ifeq ($(DEB_TARGET_GNU_CPU),m32r)
+  debian_patches += autoreconf m32r-gotoff m32r-stack m32r-libffi m32r-fixes m32r-limits
+endif
 ifeq ($(DEB_TARGET_GNU_CPU),alpha)
   debian_patches += # alpha-ieee
 endif
diff -u gcc-3.4-3.4.3/debian/rules.defs gcc-3.4-3.4.3/debian/rules.defs
--- gcc-3.4-3.4.3/debian/rules.defs
+++ gcc-3.4-3.4.3/debian/rules.defs
@@ -210,7 +210,7 @@
 endif
 
 java_no_cpus := mips mipsel
-java_no_systems := hurd-i386 kfreebsd-gnu knetbsd-gnu netbsd-elf-gnu
+java_no_systems := hurd-i386 kfreebsd-gnu knetbsd-gnu netbsd-elf-gnu m32r-linux
 ifeq ($(DEB_TARGET_GNU_CPU), $(findstring $(DEB_TARGET_GNU_CPU),$(java_no_cpus)))
   with_java := disabled for architecture $(DEB_TARGET_GNU_CPU)
 endif
@@ -416,7 +420,7 @@
 endif
 
 with_libgnat := yes
-ada_no_cpus := arm m68k
+ada_no_cpus := arm m68k m32r
 ada_no_systems := hurd-i386 kfreebsd-gnu knetbsd-gnu netbsd-elf-gnu
 ifeq ($(DEB_TARGET_GNU_CPU), $(findstring $(DEB_TARGET_GNU_CPU),$(ada_no_cpus)))
   with_ada := disabled for architecure $(DEB_TARGET_GNU_CPU)
@@ -441,7 +445,7 @@
 
 ifeq ($(with_ada),yes)
   enabled_languages += ada
-  libada_no_cpus := alpha mips mipsel powerpc s390 sparc
+  libada_no_cpus := alpha mips mipsel powerpc s390 sparc m32r
   ifeq ($(DEB_TARGET_GNU_CPU), $(findstring $(DEB_TARGET_GNU_CPU),$(libada_no_cpus)))
     with_libgnat := disabled for architecure $(DEB_TARGET_GNU_CPU)
   endif
only in patch2:
unchanged:
--- gcc-3.4-3.4.3.orig/debian/patches/m32r-gotoff.dpatch
+++ gcc-3.4-3.4.3/debian/patches/m32r-gotoff.dpatch
@@ -0,0 +1,76 @@
+#! /bin/sh -e
+# 
+#
+# DP: Bug fix of static variable access with GOTOFF
+
+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 -p1 < $0;;
+       -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;;
+	*)
+		echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+		exit 1;;
+esac
+
+exit 0
+
+--- gcc-3.4.1/gcc/config/m32r/m32r.c.orig	2004-09-09 18:26:50.000000000 +0900
++++ gcc-3.4.1/gcc/config/m32r/m32r.c	2004-09-09 18:27:30.000000000 +0900
+@@ -2207,6 +2207,15 @@
+       else
+         address = reg;
+ 
++      current_function_uses_pic_offset_table = 1;
++      if (GET_CODE (orig) == LABEL_REF
++          || GET_CODE (orig) == SYMBOL_REF && SYMBOL_REF_LOCAL_P (orig))
++        {
++          emit_insn (gen_gotoff_load_addr (reg, orig));
++          emit_insn (gen_addsi3 (reg, reg, pic_offset_table_rtx));
++          return reg;
++        }
++
+       emit_insn (gen_pic_load_addr (address, orig));
+ 
+       emit_insn (gen_addsi3 (address, address, pic_offset_table_rtx));
+@@ -2214,8 +2223,7 @@
+ 
+       RTX_UNCHANGING_P (pic_ref) = 1;
+       insn = emit_move_insn (reg, pic_ref);
+-      current_function_uses_pic_offset_table = 1;
+ #if 0
+       /* Put a REG_EQUAL note on this insn, so that it can be optimized
+          by loop.  */
+
+--- gcc-3.4.1/gcc/config/m32r/m32r.md.orig	2004-09-09 18:26:50.000000000 +0900
++++ gcc-3.4.1/gcc/config/m32r/m32r.md	2004-09-09 18:27:30.000000000 +0900
+@@ -31,7 +31,8 @@
+   [(UNSPEC_LOAD_SDA_BASE	2)
+    (UNSPEC_SET_CBIT		3)
+    (UNSPEC_PIC_LOAD_ADDR	4)
+-   (UNSPEC_GET_PC		5)])
++   (UNSPEC_GET_PC		5)
++   (UNSPEC_GOTOFF		6)])
+ 
+ ;; Insn type.  Used to default other attribute values.
+ (define_attr "type"
+@@ -2711,7 +2712,15 @@
+   "ld24 %0,%#%1"
+   [(set_attr "type" "int4")])
+ 
++(define_insn "gotoff_load_addr"
++  [(set (match_operand:SI 0 "register_operand" "=r")
++        (unspec:SI [(match_operand 1 "" "")] UNSPEC_GOTOFF))]
++  "flag_pic"
++  "seth %0,%#shigh(%1@GOTOFF)\;add3 %0,%0,low(%1@GOTOFF)"
++  [(set_attr "type" 	"int4")
++   (set_attr "length"	"8")])
++
+ ;; Load program counter insns.
+ 
+ (define_insn "get_pc"
only in patch2:
unchanged:
--- gcc-3.4-3.4.3.orig/debian/patches/m32r-fixes.dpatch
+++ gcc-3.4-3.4.3/debian/patches/m32r-fixes.dpatch
@@ -0,0 +1,89 @@
+#! /bin/sh -e
+# 
+#
+# DP: fix for shared libgcc
+
+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 -p2 < $0;;
+       -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p2 < $0;;
+	*)
+		echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+		exit 1;;
+esac
+
+exit 0
+
+--- gcc-3.4-3.4.2/src/gcc/config.gcc.orig	2004-04-22 00:12:35.000000000 +0900
++++ gcc-3.4-3.4.2/src/gcc/config.gcc	2004-11-17 21:23:21.000000000 +0900
+@@ -1304,7 +1304,7 @@
+ m32r-*-linux*)
+ 	tm_file="dbxelf.h elfos.h svr4.h linux.h ${tm_file} m32r/linux.h"
+ 	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
+-	tmake_file="m32r/t-linux"
++	tmake_file="t-slibgcc-elf-ver m32r/t-linux"
+ 	gnu_ld=yes
+ 	use_fixproto=yes
+ 	if test x$enable_threads = xyes; then
+@@ -1314,7 +1314,7 @@
+ m32rle-*-linux*)
+ 	tm_file="dbxelf.h elfos.h svr4.h linux.h m32r/little.h ${tm_file} m32r/linux.h"
+ 	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
+-	tmake_file="m32r/t-linux"
++	tmake_file="t-slibgcc-elf-ver m32r/t-linux"
+ 	gnu_ld=yes
+ 	use_fixproto=yes
+ 	if test x$enable_threads = xyes; then
+--- gcc-3.4-3.4.2/src/gcc/config/m32r/t-linux.orig	2003-12-31 19:33:02.000000000 +0900
++++ gcc-3.4-3.4.2/src/gcc/config/m32r/t-linux	2004-11-17 21:18:50.000000000 +0900
+@@ -23,7 +23,6 @@
+ # to produce a shared library, but since we don't know ahead of time when
+ # we will be doing that, we just always use -fpic when compiling the
+ # routines in initfini.c.
+-# -fpic currently isn't supported for the m32r.
+ 
+ CRTSTUFF_T_CFLAGS_S = -fPIC
+ 
+@@ -40,3 +39,12 @@
+ CROSS_LIBGCC1 =
+ LIBGCC1_TEST =
+ 
++# Override t-slibgcc-elf-ver to export some libgcc symbols with
++# the symbol versions that glibc used.
++SHLIB_MAPFILES += $(srcdir)/libgcc-std.ver \
++	$(srcdir)/config/m32r/libgcc-glibc.ver
++
++# Use unwind-dw2-fde-glibc
++LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c \
++  $(srcdir)/unwind-sjlj.c $(srcdir)/gthr-gnat.c $(srcdir)/unwind-c.c
++LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c gthr-gnat.c
+--- /dev/null	2004-11-01 19:04:23.000000000 +0900
++++ gcc-3.4-3.4.2/src/gcc/config/m32r/libgcc-glibc.ver	2004-11-17 21:11:56.000000000 +0900
+@@ -0,0 +1,21 @@
++# In order to work around the very problems that force us to now generally
++# create a libgcc.so, glibc reexported a number of routines from libgcc.a.
++# By now choosing the same version tags for these specific routines, we
++# maintain enough binary compatibility to allow future versions of glibc
++# to defer implementation of these routines to libgcc.so via DT_AUXILIARY.
++
++# Note that we cannot use the default libgcc-glibc.ver file on m32r,
++# because GLIBC_2.0 does not exist on this architecture, as the first 
++# ever glibc release on the platform was GLIBC_2.3.
++
++%inherit GCC_3.0 GLIBC_2.3
++GLIBC_2.3 {
++  __register_frame
++  __register_frame_table
++  __deregister_frame
++  __register_frame_info
++  __deregister_frame_info
++  __frame_state_for
++  __register_frame_info_table
++}
++
only in patch2:
unchanged:
--- gcc-3.4-3.4.3.orig/debian/patches/m32r-libffi.dpatch
+++ gcc-3.4-3.4.3/debian/patches/m32r-libffi.dpatch
@@ -0,0 +1,873 @@
+#! /bin/sh -e
+# 
+#
+# DP: Author: Kazuhiro Inaoka
+# DP: libffi implementation
+
+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 -p1 < $0
+		cd ${dir}libffi && autoconf
+		;;
+       -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;;
+	*)
+		echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+		exit 1;;
+esac
+
+exit 0
+
+--- gcc-3.4.1/libffi/Makefile.am.orig	2004-11-02 22:25:42.000000000 +0900
++++ gcc-3.4.1/libffi/Makefile.am	2004-11-12 12:20:22.000000000 +0900
+@@ -9,6 +9,7 @@ EXTRA_DIST = LICENSE ChangeLog.v1 \
+ 	src/arm/ffi.c src/arm/sysv.S src/arm/ffitarget.h \
+ 	src/mips/ffi.c src/mips/n32.S src/mips/o32.S \
+ 	src/mips/ffitarget.h \
++	src/m32r/ffi.c src/m32r/sysv.S src/m32r/ffitarget.h \
+ 	src/m68k/ffi.c src/m68k/sysv.S src/m68k/ffitarget.h \
+ 	src/pa/ffi.c src/pa/linux.S src/pa/ffitarget.h \
+ 	src/powerpc/ffi.c src/powerpc/sysv.S \
+@@ -25,7 +26,6 @@ EXTRA_DIST = LICENSE ChangeLog.v1 \
+ 	src/x86/ffi.c src/x86/sysv.S src/x86/win32.S \
+ 	src/x86/ffi64.c src/x86/unix64.S src/x86/ffitarget.h
+ 
+-
+ VPATH = @srcdir@:@srcdir@/src:@srcdir@/src/@TARGETDIR@
+ 
+ ## ################################################################
+@@ -105,6 +105,7 @@ TARGET_SRC_S390 =  src/s390/sysv.S src/s
+ TARGET_SRC_X86_64 = src/x86/ffi64.c src/x86/unix64.S src/x86/ffi.c src/x86/sysv.S
+ TARGET_SRC_SH =  src/sh/sysv.S src/sh/ffi.c
+ TARGET_SRC_SH64 =  src/sh64/sysv.S src/sh64/ffi.c
++TARGET_SRC_M32R = src/m32r/sysv.S src/m32r/ffi.c
+ 
+ ##libffi_la_SOURCES = src/debug.c src/prep_cif.c src/types.c $(TARGET_SRC_@TARGET@)
+ ## Work around automake deficiency
+@@ -178,6 +179,10 @@ if PA
+ libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_PA)
+ libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_PA)
+ endif
++if M32R
++libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_M32R)
++libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_M32R)
++endif
+ 
+ AM_CFLAGS = -Wall -g -fexceptions
+ 
+--- gcc-3.4.1/libffi/Makefile.in.orig	2004-11-12 16:52:34.000000000 +0900
++++ gcc-3.4.1/libffi/Makefile.in	2004-11-12 16:57:15.000000000 +0900
+@@ -95,26 +95,7 @@ AUTOMAKE_OPTIONS = cygnus
+ 
+ SUBDIRS = include testsuite
+ 
+-EXTRA_DIST = LICENSE ChangeLog.v1 \
+-	src/alpha/ffi.c src/alpha/osf.S src/alpha/ffitarget.h \
+-	src/arm/ffi.c src/arm/sysv.S src/arm/ffitarget.h \
+-	src/mips/ffi.c src/mips/n32.S src/mips/o32.S \
+-	src/mips/ffitarget.h \
+-	src/m68k/ffi.c src/m68k/sysv.S src/m68k/ffitarget.h \
+-	src/pa/ffi.c src/pa/linux.S src/pa/ffitarget.h \
+-	src/powerpc/ffi.c src/powerpc/sysv.S \
+-	src/powerpc/linux64.S src/powerpc/linux64_closure.S \
+-	src/powerpc/ppc_closure.S src/powerpc/asm.h \
+-	src/powerpc/aix.S src/powerpc/darwin.S \
+-	src/powerpc/aix_closure.S src/powerpc/darwin_closure.S \
+-	src/powerpc/ffi_darwin.c src/powerpc/ffitarget.h \
+-	src/s390/ffi.c src/s390/sysv.S src/s390/ffitarget.h \
+-	src/sh/ffi.c src/sh/sysv.S src/sh/ffitarget.h \
+-	src/sh64/ffi.c src/sh64/sysv.S src/sh64/ffitarget.h \
+-	src/sparc/v8.S src/sparc/v9.S src/sparc/ffitarget.h \
+-	src/sparc/ffi.c \
+-	src/x86/ffi.c src/x86/sysv.S src/x86/win32.S \
+-	src/x86/ffi64.c src/x86/unix64.S src/x86/ffitarget.h
++EXTRA_DIST = LICENSE ChangeLog.v1 	src/alpha/ffi.c src/alpha/osf.S src/alpha/ffitarget.h 	src/arm/ffi.c src/arm/sysv.S src/arm/ffitarget.h 	src/mips/ffi.c src/mips/n32.S src/mips/o32.S 	src/mips/ffitarget.h 	src/m32r/ffi.c src/m32r/sysv.S src/m32r/ffitarget.h 	src/m68k/ffi.c src/m68k/sysv.S src/m68k/ffitarget.h 	src/pa/ffi.c src/pa/linux.S src/pa/ffitarget.h 	src/powerpc/ffi.c src/powerpc/sysv.S 	src/powerpc/linux64.S src/powerpc/linux64_closure.S 	src/powerpc/ppc_closure.S src/powerpc/asm.h 	src/powerpc/aix.S src/powerpc/darwin.S 	src/powerpc/aix_closure.S src/powerpc/darwin_closure.S 	src/powerpc/ffi_darwin.c src/powerpc/ffitarget.h 	src/s390/ffi.c src/s390/sysv.S src/s390/ffitarget.h 	src/sh/ffi.c src/sh/sysv.S src/sh/ffitarget.h 	src/sh64/ffi.c src/sh64/sysv.S src/sh64/ffitarget.h 	src/sparc/v8.S src/sparc/v9.S src/sparc/ffitarget.h 	src/sparc/ffi.c 	src/x86/ffi.c src/x86/sysv.S src/x86/win32.S 	src/x86/ffi64.c src/x86/unix64.S src/x86/ffitarget.h
+ 
+ 
+ VPATH = @srcdir@:@srcdir@/src:@srcdir@/src/@TARGETDIR@
+@@ -122,41 +103,7 @@ VPATH = @srcdir@:@srcdir@/src:@srcdir@/s
+ # Work around what appears to be a GNU make bug handling MAKEFLAGS
+ # values defined in terms of make variables, as is the case for CC and
+ # friends when we are called from the top level Makefile.
+-AM_MAKEFLAGS = \
+-	"AR_FLAGS=$(AR_FLAGS)" \
+-	"CC_FOR_BUILD=$(CC_FOR_BUILD)" \
+-	"CFLAGS=$(CFLAGS)" \
+-	"CXXFLAGS=$(CXXFLAGS)" \
+-	"CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
+-	"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
+-	"INSTALL=$(INSTALL)" \
+-	"INSTALL_DATA=$(INSTALL_DATA)" \
+-	"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
+-	"INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
+-	"JC1FLAGS=$(JC1FLAGS)" \
+-	"LDFLAGS=$(LDFLAGS)" \
+-	"LIBCFLAGS=$(LIBCFLAGS)" \
+-	"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
+-	"MAKE=$(MAKE)" \
+-	"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
+-	"PICFLAG=$(PICFLAG)" \
+-	"PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
+-	"RUNTESTFLAGS=$(RUNTESTFLAGS)" \
+-	"SHELL=$(SHELL)" \
+-	"exec_prefix=$(exec_prefix)" \
+-	"infodir=$(infodir)" \
+-	"libdir=$(libdir)" \
+-	"prefix=$(prefix)" \
+-	"AR=$(AR)" \
+-	"AS=$(AS)" \
+-	"CC=$(CC)" \
+-	"CXX=$(CXX)" \
+-	"LD=$(LD)" \
+-	"LIBCFLAGS=$(LIBCFLAGS)" \
+-	"NM=$(NM)" \
+-	"PICFLAG=$(PICFLAG)" \
+-	"RANLIB=$(RANLIB)" \
+-	"DESTDIR=$(DESTDIR)"
++AM_MAKEFLAGS =  	"AR_FLAGS=$(AR_FLAGS)" 	"CC_FOR_BUILD=$(CC_FOR_BUILD)" 	"CFLAGS=$(CFLAGS)" 	"CXXFLAGS=$(CXXFLAGS)" 	"CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" 	"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" 	"INSTALL=$(INSTALL)" 	"INSTALL_DATA=$(INSTALL_DATA)" 	"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" 	"INSTALL_SCRIPT=$(INSTALL_SCRIPT)" 	"JC1FLAGS=$(JC1FLAGS)" 	"LDFLAGS=$(LDFLAGS)" 	"LIBCFLAGS=$(LIBCFLAGS)" 	"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" 	"MAKE=$(MAKE)" 	"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" 	"PICFLAG=$(PICFLAG)" 	"PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" 	"RUNTESTFLAGS=$(RUNTESTFLAGS)" 	"SHELL=$(SHELL)" 	"exec_prefix=$(exec_prefix)" 	"infodir=$(infodir)" 	"libdir=$(libdir)" 	"prefix=$(prefix)" 	"AR=$(AR)" 	"AS=$(AS)" 	"CC=$(CC)" 	"CXX=$(CXX)" 	"LD=$(LD)" 	"LIBCFLAGS=$(LIBCFLAGS)" 	"NM=$(NM)" 	"PICFLAG=$(PICFLAG)" 	"RANLIB=$(RANLIB)" 	"DESTDIR=$(DESTDIR)"
+ 
+ 
+ MAKEOVERRIDES = 
+@@ -189,44 +136,46 @@ TARGET_SRC_S390 = src/s390/sysv.S src/s3
+ TARGET_SRC_X86_64 = src/x86/ffi64.c src/x86/unix64.S src/x86/ffi.c src/x86/sysv.S
+ TARGET_SRC_SH = src/sh/sysv.S src/sh/ffi.c
+ TARGET_SRC_SH64 = src/sh64/sysv.S src/sh64/ffi.c
++TARGET_SRC_M32R = src/m32r/sysv.S src/m32r/ffi.c
+ 
+-libffi_la_common_SOURCES = src/debug.c src/prep_cif.c src/types.c \
+-		src/raw_api.c src/java_raw_api.c
++libffi_la_common_SOURCES = src/debug.c src/prep_cif.c src/types.c 		src/raw_api.c src/java_raw_api.c
+ 
+-@MIPS_IRIX_TRUE@libffi_la_SOURCES = @MIPS_IRIX_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_IRIX)
+-@MIPS_LINUX_TRUE@libffi_la_SOURCES = @MIPS_LINUX_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_LINUX)
+-@X86_TRUE@libffi_la_SOURCES = @X86_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_X86)
+-@X86_WIN32_TRUE@libffi_la_SOURCES = @X86_WIN32_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_X86_WIN32)
+-@SPARC_TRUE@libffi_la_SOURCES = @SPARC_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_SPARC)
+-@ALPHA_TRUE@libffi_la_SOURCES = @ALPHA_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_ALPHA)
+-@IA64_TRUE@libffi_la_SOURCES = @IA64_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_IA64)
+-@M68K_TRUE@libffi_la_SOURCES = @M68K_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_M68K)
+-@PA_TRUE@libffi_la_SOURCES = @PA_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_PA)
+-@POWERPC_TRUE@libffi_la_SOURCES = @POWERPC_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC)
+-@POWERPC_AIX_TRUE@libffi_la_SOURCES = @POWERPC_AIX_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_AIX)
+-@POWERPC_DARWIN_TRUE@libffi_la_SOURCES = @POWERPC_DARWIN_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_DARWIN)
+-@ARM_TRUE@libffi_la_SOURCES = @ARM_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_ARM)
+-@S390_TRUE@libffi_la_SOURCES = @S390_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_S390)
+-@X86_64_TRUE@libffi_la_SOURCES = @X86_64_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_X86_64)
+-@SH_TRUE@libffi_la_SOURCES = @SH_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_SH)
+-@SH64_TRUE@libffi_la_SOURCES = @SH64_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_SH64)
+-@MIPS_IRIX_TRUE@libffi_convenience_la_SOURCES = @MIPS_IRIX_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_IRIX)
+-@MIPS_LINUX_TRUE@libffi_convenience_la_SOURCES = @MIPS_LINUX_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_LINUX)
+-@X86_TRUE@libffi_convenience_la_SOURCES = @X86_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_X86)
+-@X86_WIN32_TRUE@libffi_convenience_la_SOURCES = @X86_WIN32_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_X86_WIN32)
+-@SPARC_TRUE@libffi_convenience_la_SOURCES = @SPARC_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_SPARC)
+-@ALPHA_TRUE@libffi_convenience_la_SOURCES = @ALPHA_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_ALPHA)
+-@IA64_TRUE@libffi_convenience_la_SOURCES = @IA64_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_IA64)
+-@M68K_TRUE@libffi_convenience_la_SOURCES = @M68K_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_M68K)
+-@PA_TRUE@libffi_convenience_la_SOURCES = @PA_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_PA)
+-@POWERPC_TRUE@libffi_convenience_la_SOURCES = @POWERPC_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC)
+-@POWERPC_AIX_TRUE@libffi_convenience_la_SOURCES = @POWERPC_AIX_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_AIX)
+-@POWERPC_DARWIN_TRUE@libffi_convenience_la_SOURCES = @POWERPC_DARWIN_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_DARWIN)
+-@ARM_TRUE@libffi_convenience_la_SOURCES = @ARM_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_ARM)
+-@S390_TRUE@libffi_convenience_la_SOURCES = @S390_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_S390)
+-@X86_64_TRUE@libffi_convenience_la_SOURCES = @X86_64_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_X86_64)
+-@SH_TRUE@libffi_convenience_la_SOURCES = @SH_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_SH)
+-@SH64_TRUE@libffi_convenience_la_SOURCES = @SH64_TRUE@$(libffi_la_common_SOURCES) $(TARGET_SRC_SH64)
++@MIPS_IRIX_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_IRIX)
++@MIPS_LINUX_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_LINUX)
++@X86_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86)
++@X86_WIN32_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86_WIN32)
++@SPARC_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SPARC)
++@ALPHA_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_ALPHA)
++@IA64_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_IA64)
++@M68K_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_M68K)
++@POWERPC_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC)
++@POWERPC_AIX_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_AIX)
++@POWERPC_DARWIN_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_DARWIN)
++@ARM_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_ARM)
++@S390_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_S390)
++@X86_64_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86_64)
++@SH_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SH)
++@SH64_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SH64)
++@PA_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_PA)
++@M32R_TRUE@libffi_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_M32R)
++@MIPS_IRIX_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_IRIX)
++@MIPS_LINUX_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_MIPS_LINUX)
++@X86_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86)
++@X86_WIN32_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86_WIN32)
++@SPARC_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SPARC)
++@ALPHA_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_ALPHA)
++@IA64_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_IA64)
++@M68K_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_M68K)
++@POWERPC_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC)
++@POWERPC_AIX_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_AIX)
++@POWERPC_DARWIN_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_POWERPC_DARWIN)
++@ARM_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_ARM)
++@S390_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_S390)
++@X86_64_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_X86_64)
++@SH_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SH)
++@SH64_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_SH64)
++@PA_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_PA)
++@M32R_TRUE@libffi_convenience_la_SOURCES = $(libffi_la_common_SOURCES) $(TARGET_SRC_M32R)
+ 
+ AM_CFLAGS = -Wall -g -fexceptions
+ 
+@@ -246,122 +195,43 @@ LDFLAGS = @LDFLAGS@
+ LIBS = @LIBS@
+ libffi_convenience_la_LDFLAGS = 
+ libffi_convenience_la_LIBADD = 
+-@X86_64_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo \
+-@X86_64_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
+-@X86_64_TRUE@src/java_raw_api.lo src/x86/ffi64.lo src/x86/unix64.lo \
+-@X86_64_TRUE@src/x86/ffi.lo src/x86/sysv.lo
+-@M68K_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
+-@M68K_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+-@M68K_TRUE@src/m68k/ffi.lo src/m68k/sysv.lo
+-@POWERPC_DARWIN_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo \
+-@POWERPC_DARWIN_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
+-@POWERPC_DARWIN_TRUE@src/java_raw_api.lo src/powerpc/ffi_darwin.lo \
+-@POWERPC_DARWIN_TRUE@src/powerpc/darwin.lo \
+-@POWERPC_DARWIN_TRUE@src/powerpc/darwin_closure.lo
+-@ALPHA_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo \
+-@ALPHA_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
+-@ALPHA_TRUE@src/java_raw_api.lo src/alpha/ffi.lo src/alpha/osf.lo
+-@ARM_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
+-@ARM_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+-@ARM_TRUE@src/arm/sysv.lo src/arm/ffi.lo
+-@PA_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
+-@PA_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+-@PA_TRUE@src/pa/ffi.lo src/pa/linux.lo
+-@POWERPC_AIX_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo \
+-@POWERPC_AIX_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
+-@POWERPC_AIX_TRUE@src/java_raw_api.lo src/powerpc/ffi_darwin.lo \
+-@POWERPC_AIX_TRUE@src/powerpc/aix.lo src/powerpc/aix_closure.lo
+-@POWERPC_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo \
+-@POWERPC_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
+-@POWERPC_TRUE@src/java_raw_api.lo src/powerpc/ffi.lo \
+-@POWERPC_TRUE@src/powerpc/sysv.lo src/powerpc/ppc_closure.lo \
+-@POWERPC_TRUE@src/powerpc/linux64.lo src/powerpc/linux64_closure.lo
+-@MIPS_LINUX_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo \
+-@MIPS_LINUX_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
+-@MIPS_LINUX_TRUE@src/java_raw_api.lo src/mips/ffi.lo src/mips/o32.lo
+-@SH_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
+-@SH_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo src/sh/sysv.lo \
+-@SH_TRUE@src/sh/ffi.lo
+-@X86_WIN32_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo \
+-@X86_WIN32_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
+-@X86_WIN32_TRUE@src/java_raw_api.lo src/x86/ffi.lo src/x86/win32.lo
+-@SPARC_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo \
+-@SPARC_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
+-@SPARC_TRUE@src/java_raw_api.lo src/sparc/ffi.lo src/sparc/v8.lo \
+-@SPARC_TRUE@src/sparc/v9.lo
+-@SH64_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
+-@SH64_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+-@SH64_TRUE@src/sh64/sysv.lo src/sh64/ffi.lo
+-@S390_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
+-@S390_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+-@S390_TRUE@src/s390/sysv.lo src/s390/ffi.lo
+-@MIPS_IRIX_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo \
+-@MIPS_IRIX_TRUE@src/prep_cif.lo src/types.lo src/raw_api.lo \
+-@MIPS_IRIX_TRUE@src/java_raw_api.lo src/mips/ffi.lo src/mips/o32.lo \
+-@MIPS_IRIX_TRUE@src/mips/n32.lo
+-@X86_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
+-@X86_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+-@X86_TRUE@src/x86/ffi.lo src/x86/sysv.lo
+-@IA64_TRUE@libffi_convenience_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
+-@IA64_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+-@IA64_TRUE@src/ia64/ffi.lo src/ia64/unix.lo
++@SH_TRUE@libffi_convenience_la_OBJECTS = 
++@IA64_TRUE@libffi_convenience_la_OBJECTS = 
++@X86_TRUE@libffi_convenience_la_OBJECTS = 
++@POWERPC_TRUE@libffi_convenience_la_OBJECTS = 
++@MIPS_IRIX_TRUE@libffi_convenience_la_OBJECTS = 
++@MIPS_LINUX_TRUE@libffi_convenience_la_OBJECTS = 
++@SPARC_TRUE@libffi_convenience_la_OBJECTS = 
++@POWERPC_AIX_TRUE@libffi_convenience_la_OBJECTS = 
++@ARM_TRUE@libffi_convenience_la_OBJECTS = 
++@ALPHA_TRUE@libffi_convenience_la_OBJECTS = 
++@M32R_TRUE@libffi_convenience_la_OBJECTS = 
++@S390_TRUE@libffi_convenience_la_OBJECTS = 
++@PA_TRUE@libffi_convenience_la_OBJECTS = 
++@M68K_TRUE@libffi_convenience_la_OBJECTS = 
++@SH64_TRUE@libffi_convenience_la_OBJECTS = 
++@X86_WIN32_TRUE@libffi_convenience_la_OBJECTS = 
++@X86_64_TRUE@libffi_convenience_la_OBJECTS = 
++@POWERPC_DARWIN_TRUE@libffi_convenience_la_OBJECTS = 
+ libffi_la_LIBADD = 
+-@X86_64_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
+-@X86_64_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+-@X86_64_TRUE@src/x86/ffi64.lo src/x86/unix64.lo src/x86/ffi.lo \
+-@X86_64_TRUE@src/x86/sysv.lo
+-@M68K_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
+-@M68K_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+-@M68K_TRUE@src/m68k/ffi.lo src/m68k/sysv.lo
+-@POWERPC_DARWIN_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
+-@POWERPC_DARWIN_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+-@POWERPC_DARWIN_TRUE@src/powerpc/ffi_darwin.lo src/powerpc/darwin.lo \
+-@POWERPC_DARWIN_TRUE@src/powerpc/darwin_closure.lo
+-@ALPHA_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
+-@ALPHA_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+-@ALPHA_TRUE@src/alpha/ffi.lo src/alpha/osf.lo
+-@ARM_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo src/types.lo \
+-@ARM_TRUE@src/raw_api.lo src/java_raw_api.lo src/arm/sysv.lo \
+-@ARM_TRUE@src/arm/ffi.lo
+-@PA_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo src/types.lo \
+-@PA_TRUE@src/raw_api.lo src/java_raw_api.lo src/pa/linux.lo \
+-@PA_TRUE@src/pa/ffi.lo
+-@POWERPC_AIX_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
+-@POWERPC_AIX_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+-@POWERPC_AIX_TRUE@src/powerpc/ffi_darwin.lo src/powerpc/aix.lo \
+-@POWERPC_AIX_TRUE@src/powerpc/aix_closure.lo
+-@POWERPC_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
+-@POWERPC_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+-@POWERPC_TRUE@src/powerpc/ffi.lo src/powerpc/sysv.lo \
+-@POWERPC_TRUE@src/powerpc/ppc_closure.lo src/powerpc/linux64.lo \
+-@POWERPC_TRUE@src/powerpc/linux64_closure.lo
+-@MIPS_LINUX_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
+-@MIPS_LINUX_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+-@MIPS_LINUX_TRUE@src/mips/ffi.lo src/mips/o32.lo
+-@SH_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo src/types.lo \
+-@SH_TRUE@src/raw_api.lo src/java_raw_api.lo src/sh/sysv.lo \
+-@SH_TRUE@src/sh/ffi.lo
+-@X86_WIN32_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
+-@X86_WIN32_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+-@X86_WIN32_TRUE@src/x86/ffi.lo src/x86/win32.lo
+-@SPARC_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
+-@SPARC_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+-@SPARC_TRUE@src/sparc/ffi.lo src/sparc/v8.lo src/sparc/v9.lo
+-@SH64_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
+-@SH64_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+-@SH64_TRUE@src/sh64/sysv.lo src/sh64/ffi.lo
+-@S390_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
+-@S390_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+-@S390_TRUE@src/s390/sysv.lo src/s390/ffi.lo
+-@MIPS_IRIX_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
+-@MIPS_IRIX_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+-@MIPS_IRIX_TRUE@src/mips/ffi.lo src/mips/o32.lo src/mips/n32.lo
+-@X86_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo src/types.lo \
+-@X86_TRUE@src/raw_api.lo src/java_raw_api.lo src/x86/ffi.lo \
+-@X86_TRUE@src/x86/sysv.lo
+-@IA64_TRUE@libffi_la_OBJECTS =  src/debug.lo src/prep_cif.lo \
+-@IA64_TRUE@src/types.lo src/raw_api.lo src/java_raw_api.lo \
+-@IA64_TRUE@src/ia64/ffi.lo src/ia64/unix.lo
++@SH_TRUE@libffi_la_OBJECTS = 
++@IA64_TRUE@libffi_la_OBJECTS = 
++@X86_TRUE@libffi_la_OBJECTS = 
++@POWERPC_TRUE@libffi_la_OBJECTS = 
++@MIPS_IRIX_TRUE@libffi_la_OBJECTS = 
++@MIPS_LINUX_TRUE@libffi_la_OBJECTS = 
++@SPARC_TRUE@libffi_la_OBJECTS = 
++@POWERPC_AIX_TRUE@libffi_la_OBJECTS = 
++@ARM_TRUE@libffi_la_OBJECTS = 
++@ALPHA_TRUE@libffi_la_OBJECTS = 
++@M32R_TRUE@libffi_la_OBJECTS = 
++@S390_TRUE@libffi_la_OBJECTS = 
++@PA_TRUE@libffi_la_OBJECTS = 
++@M68K_TRUE@libffi_la_OBJECTS = 
++@SH64_TRUE@libffi_la_OBJECTS = 
++@X86_WIN32_TRUE@libffi_la_OBJECTS = 
++@X86_64_TRUE@libffi_la_OBJECTS = 
++@POWERPC_DARWIN_TRUE@libffi_la_OBJECTS = 
+ CFLAGS = @CFLAGS@
+ COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+ LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+@@ -526,7 +396,7 @@ maintainer-clean-recursive:
+ 	dot_seen=no; \
+ 	rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
+ 	  rev="$$subdir $$rev"; \
+-	  test "$$subdir" = "." && dot_seen=yes; \
++	  test "$$subdir" != "." || dot_seen=yes; \
+ 	done; \
+ 	test "$$dot_seen" = "no" && rev=". $$rev"; \
+ 	target=`echo $@ | sed s/-recursive//`; \
+@@ -568,7 +438,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCE
+ 	  awk '    { files[$$0] = 1; } \
+ 	       END { for (i in files) print i; }'`; \
+ 	test -z "$(ETAGS_ARGS)fficonfig.h.in$$unique$(LISP)$$tags" \
+-	  || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags fficonfig.h.in $$unique $(LISP) -o $$here/TAGS)
++	  || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags fficonfig.h.in $$unique $(LISP))
+ 
+ mostlyclean-tags:
+ 
+@@ -618,9 +488,10 @@ distdir: $(DISTFILES)
+ 	mkdir $(distdir)
+ 	-chmod 777 $(distdir)
+ 	$(mkinstalldirs) $(distdir)/src/alpha $(distdir)/src/arm \
+-	   $(distdir)/src/m68k $(distdir)/src/mips $(distdir)/src/pa \
+-	   $(distdir)/src/powerpc $(distdir)/src/s390 $(distdir)/src/sh \
+-	   $(distdir)/src/sh64 $(distdir)/src/sparc $(distdir)/src/x86
++	   $(distdir)/src/m32r $(distdir)/src/m68k $(distdir)/src/mips \
++	   $(distdir)/src/pa $(distdir)/src/powerpc $(distdir)/src/s390 \
++	   $(distdir)/src/sh $(distdir)/src/sh64 $(distdir)/src/sparc \
++	   $(distdir)/src/x86
+ 	@for file in $(DISTFILES); do \
+ 	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
+ 	  if test -d $$d/$$file; then \
+--- gcc-3.4.1/libffi/configure.in.orig	2004-11-02 22:25:28.000000000 +0900
++++ gcc-3.4.1/libffi/configure.in	2004-11-12 12:14:04.000000000 +0900
+@@ -88,6 +88,7 @@ x86_64-*-linux*) TARGET=X86_64; TARGETDI
+ sh-*-linux* | sh[[34]]*-*-linux*) TARGET=SH; TARGETDIR=sh;;
+ sh64-*-linux* | sh5*-*-linux*) TARGET=SH64; TARGETDIR=sh64;;
+ hppa-*-linux* | parisc-*-linux*) TARGET=PA; TARGETDIR=pa;;
++m32r*-*-linux* ) TARGET=M32R; TARGETDIR=m32r;;
+ esac
+ 
+ AC_SUBST(AM_RUNTESTFLAGS)
+@@ -113,6 +114,7 @@ AM_CONDITIONAL(X86_64, test x$TARGET = x
+ AM_CONDITIONAL(SH, test x$TARGET = xSH)
+ AM_CONDITIONAL(SH64, test x$TARGET = xSH64)
+ AM_CONDITIONAL(PA, test x$TARGET = xPA)
++AM_CONDITIONAL(M32R, test x$TARGET = xM32R)
+ 
+ case x$TARGET in
+   xMIPS*) TARGET=MIPS ;;
+--- gcc-3.4.1/libffi/src/m32r/ffi.c	1970-01-01 09:00:00.000000000 +0900
++++ gcc-3.4.1/libffi/src/m32r/ffi.c	2004-10-22 11:16:10.000000000 +0900
+@@ -0,0 +1,246 @@
++/* -----------------------------------------------------------------------
++   ffi.c - Copyright (c) 2004  Renesas Technology
++   
++   M32R Foreign Function Interface 
++
++   Permission is hereby granted, free of charge, to any person obtaining
++   a copy of this software and associated documentation files (the
++   ``Software''), to deal in the Software without restriction, including
++   without limitation the rights to use, copy, modify, merge, publish,
++   distribute, sublicense, and/or sell copies of the Software, and to
++   permit persons to whom the Software is furnished to do so, subject to
++   the following conditions:
++
++   The above copyright notice and this permission notice shall be included
++   in all copies or substantial portions of the Software.
++
++   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
++   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
++   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
++   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
++   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
++   OTHER DEALINGS IN THE SOFTWARE.
++   ----------------------------------------------------------------------- */
++
++#include <ffi.h>
++#include <ffi_common.h>
++
++#include <stdlib.h>
++
++/* ffi_prep_args is called by the assembly routine once stack space
++   has been allocated for the function's arguments */
++
++/*@-exportheader@*/
++void ffi_prep_args(char *stack, extended_cif *ecif)
++/*@=exportheader@*/
++{
++  register unsigned int i;
++  register int tmp;
++  register unsigned int avn;
++  register void **p_argv;
++  register char *argp;
++  register ffi_type **p_arg;
++
++  tmp = 0;
++  argp = stack;
++
++  if ( ecif->cif->rtype->type == FFI_TYPE_STRUCT && ecif->cif->rtype->size > 8 ) {
++    *(void **) argp = ecif->rvalue;
++    argp += 4;
++  }
++
++  avn = ecif->cif->nargs;
++  p_argv = ecif->avalue;
++
++  for (i = ecif->cif->nargs, p_arg = ecif->cif->arg_types;
++       (i != 0) && (avn != 0);
++       i--, p_arg++)
++    {
++      size_t z;
++
++      /* Align if necessary */
++      if (((*p_arg)->alignment - 1) & (unsigned) argp) {
++	argp = (char *) ALIGN(argp, (*p_arg)->alignment);
++      }
++
++      if (avn != 0) 
++	{
++	  avn--;
++	  z = (*p_arg)->size;
++	  if (z < sizeof(int))
++	    {
++	      z = sizeof(int);
++	      switch ((*p_arg)->type)
++		{
++		case FFI_TYPE_SINT8:
++		  *(signed int *) argp = (signed int)*(SINT8 *)(* p_argv);
++		  break;
++		  
++		case FFI_TYPE_UINT8:
++		  *(unsigned int *) argp = (unsigned int)*(UINT8 *)(* p_argv);
++		  break;
++		  
++		case FFI_TYPE_SINT16:
++		  *(signed int *) argp = (signed int)*(SINT16 *)(* p_argv);
++		  break;
++		  
++		case FFI_TYPE_UINT16:
++		  *(unsigned int *) argp = (unsigned int)*(UINT16 *)(* p_argv);
++		  break;
++		  
++		case FFI_TYPE_STRUCT:
++	  	  z = (*p_arg)->size;
++	  	  if ( (*p_arg)->alignment != 1 )
++	          	memcpy(argp, *p_argv, z);
++		  else
++	          	memcpy(argp + 4 - z, *p_argv, z);
++	  	  z = sizeof(int);
++		  break;
++
++		default:
++		  FFI_ASSERT(0);
++		}
++	    }
++	  else if (z == sizeof(int))
++	    {
++	       *(unsigned int *) argp = (unsigned int)*(UINT32 *)(* p_argv);
++	    }
++	  else
++	    {
++	      if ( (*p_arg)->type == FFI_TYPE_STRUCT )
++	        {
++		  if ( z > 8 )
++		    {
++		      *(unsigned int *) argp = (unsigned int)(void *)(* p_argv);
++		      z = sizeof(void *);
++		    }
++		  else
++		    {
++	              memcpy(argp, *p_argv, z);
++		      z = 8;
++		    }
++	        }
++	      else
++	        { /* double or long long 64bit */
++	          memcpy(argp, *p_argv, z);
++	        }
++	    }
++	  p_argv++;
++	  argp += z;
++	}
++    }
++  
++  return;
++}
++
++/* Perform machine dependent cif processing */
++ffi_status ffi_prep_cif_machdep(ffi_cif *cif)
++{
++  /* Set the return type flag */
++  switch (cif->rtype->type)
++    {
++    case FFI_TYPE_VOID:
++      cif->flags = (unsigned) cif->rtype->type;
++      break;
++
++    case FFI_TYPE_STRUCT:
++      if (cif->rtype->size <= 4)
++	{
++          cif->flags = FFI_TYPE_INT;
++	}
++      else if (cif->rtype->size <= 8)
++	{
++          cif->flags = FFI_TYPE_DOUBLE;
++	}
++      else
++	{
++          cif->flags = (unsigned) cif->rtype->type;
++	}
++      break;
++
++    case FFI_TYPE_SINT64:
++    case FFI_TYPE_UINT64:
++    case FFI_TYPE_DOUBLE:
++      cif->flags = FFI_TYPE_DOUBLE;
++      break;
++
++    case FFI_TYPE_FLOAT:
++    default:
++      cif->flags = FFI_TYPE_INT;
++      break;
++    }
++
++  return FFI_OK;
++}
++
++/*@-declundef@*/
++/*@-exportheader@*/
++extern void ffi_call_SYSV(void (*)(char *, extended_cif *), 
++			  /*@out@*/ extended_cif *, 
++			  unsigned, unsigned, 
++			  /*@out@*/ unsigned *, 
++			  void (*fn)());
++/*@=declundef@*/
++/*@=exportheader@*/
++
++void ffi_call(/*@dependent@*/ ffi_cif *cif, 
++	      void (*fn)(), 
++	      /*@out@*/ void *rvalue, 
++	      /*@dependent@*/ void **avalue)
++{
++  extended_cif ecif;
++
++  ecif.cif = cif;
++  ecif.avalue = avalue;
++  
++  /* If the return value is a struct and we don't have a return	*/
++  /* value address then we need to make one		        */
++
++  if ((rvalue == NULL) && 
++      (cif->rtype->type == FFI_TYPE_STRUCT))
++    {
++      /*@-sysunrecog@*/
++      ecif.rvalue = alloca(cif->rtype->size);
++      /*@=sysunrecog@*/
++    }
++  else
++    ecif.rvalue = rvalue;
++    
++  
++  switch (cif->abi) 
++    {
++    case FFI_SYSV:
++      /*@-usedef@*/
++      ffi_call_SYSV(ffi_prep_args, &ecif, cif->bytes, 
++		    cif->flags, ecif.rvalue, fn);
++      if ( cif->rtype->type == FFI_TYPE_STRUCT )
++	{
++	  int size = cif->rtype->size;
++	  int align = cif->rtype->alignment;
++	  if (size < 4)
++	    {
++	      if ( align == 1 )
++	        *(unsigned long *)(ecif.rvalue) <<= (4 - size)*8;
++	    }
++	  else if ( 4 < size && size < 8 )
++	    {
++	       if ( align == 1 )
++	         {
++	            memcpy(ecif.rvalue, ecif.rvalue + 8-size, size);
++	         }
++	       else if (align == 2)
++	         {
++		    if (size & 1) size += 1;
++		    if (size != 8)
++	              memcpy(ecif.rvalue, ecif.rvalue + 8-size, size);
++	         }
++	    }
++	}
++      /*@=usedef@*/
++      break;
++    default:
++      FFI_ASSERT(0);
++      break;
++    }
++}
+--- gcc-3.4.1/libffi/src/m32r/ffitarget.h	1970-01-01 09:00:00.000000000 +0900
++++ gcc-3.4.1/libffi/src/m32r/ffitarget.h	2004-10-22 10:22:24.000000000 +0900
+@@ -0,0 +1,48 @@
++/* -----------------------------------------------------------------*-C-*-
++   ffitarget.h - Copyright (c) 2004  Renesas Technology.
++   Target configuration macros for M32R.
++
++   Permission is hereby granted, free of charge, to any person obtaining
++   a copy of this software and associated documentation files (the
++   ``Software''), to deal in the Software without restriction, including
++   without limitation the rights to use, copy, modify, merge, publish,
++   distribute, sublicense, and/or sell copies of the Software, and to
++   permit persons to whom the Software is furnished to do so, subject to
++   the following conditions:
++
++   The above copyright notice and this permission notice shall be included
++   in all copies or substantial portions of the Software.
++
++   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
++   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
++   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
++   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
++   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
++   OTHER DEALINGS IN THE SOFTWARE.
++
++   ----------------------------------------------------------------------- */
++
++#ifndef LIBFFI_TARGET_H
++#define LIBFFI_TARGET_H
++
++/* ---- Generic type definitions ----------------------------------------- */
++
++#ifndef LIBFFI_ASM
++typedef unsigned long          ffi_arg;
++typedef signed long            ffi_sarg;
++
++typedef enum ffi_abi {
++  FFI_FIRST_ABI = 0,
++  FFI_SYSV,
++  FFI_DEFAULT_ABI = FFI_SYSV,
++  FFI_LAST_ABI = FFI_DEFAULT_ABI + 1
++} ffi_abi;
++#endif
++
++#define FFI_CLOSURES 1
++#define FFI_TRAMPOLINE_SIZE 24
++#define FFI_NATIVE_RAW_API 0
++
++#endif
++
+--- gcc-3.4.1/libffi/src/m32r/sysv.S	1970-01-01 09:00:00.000000000 +0900
++++ gcc-3.4.1/libffi/src/m32r/sysv.S	2004-10-22 10:22:24.000000000 +0900
+@@ -0,0 +1,122 @@
++/* -----------------------------------------------------------------------
++   sysv.S - Copyright (c) 2004 Renesas Technology
++   
++   M32R Foreign Function Interface 
++
++   Permission is hereby granted, free of charge, to any person obtaining
++   a copy of this software and associated documentation files (the
++   ``Software''), to deal in the Software without restriction, including
++   without limitation the rights to use, copy, modify, merge, publish,
++   distribute, sublicense, and/or sell copies of the Software, and to
++   permit persons to whom the Software is furnished to do so, subject to
++   the following conditions:
++
++   The above copyright notice and this permission notice shall be included
++   in all copies or substantial portions of the Software.
++
++   THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
++   OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
++   IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR
++   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
++   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
++   OTHER DEALINGS IN THE SOFTWARE.
++   ----------------------------------------------------------------------- */
++
++#define LIBFFI_ASM	
++#include <fficonfig.h>
++#include <ffi.h>
++#ifdef HAVE_MACHINE_ASM_H
++#include <machine/asm.h>
++#else
++/* XXX these lose for some platforms, I'm sure. */
++#define CNAME(x) x
++#define ENTRY(x) .globl CNAME(x)! .type CNAME(x),%function! CNAME(x):
++#endif
++	
++.text
++
++	/* R0:   ffi_prep_args */
++	/* R1:   &ecif */
++	/* R2:   cif->bytes */
++	/* R3:   fig->flags */
++	/* sp+0: ecif.rvalue */
++	/* sp+4: fn */
++
++	/* This assumes we are using gas. */
++ENTRY(ffi_call_SYSV)
++	/* Save registers */
++	push	fp
++	push	lr
++	push	r3
++	push	r2
++	push	r1
++	push	r0
++	mv	fp, sp
++
++	/* Make room for all of the new args. */
++	sub	sp, r2
++
++	/* Place all of the ffi_prep_args in position */
++	mv	lr, r0	
++	mv	r0, sp
++	/* R1 already set */
++
++	/* And call */
++	jl	lr
++
++	/* move first 4 parameters in registers */
++	ld	r0, @(0,sp)
++	ld	r1, @(4,sp)
++	ld	r2, @(8,sp)
++        ld	r3, @(12,sp)
++
++	/* and adjust stack */
++	ld	lr, @(8,fp)
++        cmpi	lr, #16
++	bc	adjust_stack
++	ldi	lr, #16
++adjust_stack:
++        add	sp, lr
++
++	/* call function */
++	ld	lr, @(28,fp)
++	jl	lr	
++
++	/* Remove the space we pushed for the args */
++	mv	sp, fp	
++
++	/* Load R2 with the pointer to storage for the return value */
++	ld	r2, @(24,sp)
++
++	/* Load R3 with the return type code */
++	ld	r3, @(12,sp)
++
++	/* If the return value pointer is NULL, assume no return value. */
++	beqz	r2, epilogue
++
++/* return INT */
++	ldi	r4, #FFI_TYPE_INT
++	bne	r3, r4, return_double
++	st	r0, @r2	
++	bra	epilogue
++
++return_double:
++/* return DOUBLE or LONGDOUBLE */
++	ldi	r4, #FFI_TYPE_DOUBLE
++	bne	r3, r4, epilogue
++	st	r0, @r2	
++	st	r1, @(4,r2)
++
++epilogue:
++	pop	r0
++	pop	r1
++	pop	r2
++	pop	r3
++	pop	lr
++	pop	fp
++        jmp lr
++
++.ffi_call_SYSV_end:
++        .size    CNAME(ffi_call_SYSV),.ffi_call_SYSV_end-CNAME(ffi_call_SYSV)
++
+--- gcc-3.4.1/libffi/src/types.c	2004-03-12 10:35:31.000000000 +0900
++++ gcc-3.4.1/libffi/src/types.c	2004-10-22 10:22:24.000000000 +0900
+@@ -53,7 +53,7 @@ FFI_INTEGRAL_TYPEDEF(pointer, 4, 4, FFI_
+ 
+ #endif
+ 
+-#if defined X86 || defined X86_WIN32 || defined ARM || defined M68K
++#if defined X86 || defined X86_WIN32 || defined ARM || defined M68K || defined M32R
+ 
+ FFI_INTEGRAL_TYPEDEF(uint64, 8, 4, FFI_TYPE_UINT64);
+ FFI_INTEGRAL_TYPEDEF(sint64, 8, 4, FFI_TYPE_SINT64);
+@@ -76,7 +76,7 @@ FFI_INTEGRAL_TYPEDEF(sint64, 8, 8, FFI_T
+ FFI_INTEGRAL_TYPEDEF(double, 8, 4, FFI_TYPE_DOUBLE);
+ FFI_INTEGRAL_TYPEDEF(longdouble, 12, 4, FFI_TYPE_LONGDOUBLE);
+ 
+-#elif defined ARM || defined SH || defined POWERPC_AIX || defined POWERPC_DARWIN
++#elif defined ARM || defined SH || defined M32R || defined POWERPC_AIX || defined POWERPC_DARWIN
+ 
+ FFI_INTEGRAL_TYPEDEF(double, 8, 4, FFI_TYPE_DOUBLE);
+ FFI_INTEGRAL_TYPEDEF(longdouble, 8, 4, FFI_TYPE_LONGDOUBLE);
only in patch2:
unchanged:
--- gcc-3.4-3.4.3.orig/debian/patches/m32r-stack.dpatch
+++ gcc-3.4-3.4.3/debian/patches/m32r-stack.dpatch
@@ -0,0 +1,36 @@
+#! /bin/sh -e
+# 
+#
+# DP: Author: NIIBE Yutaka
+# DP: Status: Not yet in CVS
+# DP: Stack protection support
+
+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 -p1 < $0;;
+       -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;;
+	*)
+		echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+		exit 1;;
+esac
+
+exit 0
+
+2004-11-12  NIIBE Yutaka  <gniibe@fsij.org>
+
+	* config/m32r/linux.h (TARGET_ASM_FILE_END): Defined for stack
+	protection.
+
+--- gcc-3.4.2/gcc/config/m32r/linux.h.orig	2003-12-31 19:33:02.000000000 +0900
++++ gcc-3.4.2/gcc/config/m32r/linux.h	2004-11-12 11:32:02.000000000 +0900
+@@ -102,3 +102,4 @@
+                                                                                 
+ #define TARGET_OS_CPP_BUILTINS() LINUX_TARGET_OS_CPP_BUILTINS()
+ 
++#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
only in patch2:
unchanged:
--- gcc-3.4-3.4.3.orig/debian/patches/m32r-limits.dpatch
+++ gcc-3.4-3.4.3/debian/patches/m32r-limits.dpatch
@@ -0,0 +1,32 @@
+#! /bin/sh -e
+# 
+#
+# DP: Author: NIIBE Yutaka <gniibe@fsij.org>
+# DP: Status: experimental, only tested for Debian m32r
+
+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 -p1 < $0;;
+       -unpatch) patch $pdir -f --no-backup-if-mismatch -R -p1 < $0;;
+	*)
+		echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+		exit 1;;
+esac
+
+exit 0
+
+--- gcc-3.4.3/gcc/config/m32r/t-linux~	2004-11-24 22:17:07.000000000 +0900
++++ gcc-3.4.3/gcc/config/m32r/t-linux	2004-11-24 22:18:51.000000000 +0900
+@@ -48,3 +48,6 @@ SHLIB_MAPFILES += $(srcdir)/config/m32r/
+ LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde-glibc.c \
+   $(srcdir)/unwind-sjlj.c $(srcdir)/gthr-gnat.c $(srcdir)/unwind-c.c
+ LIB2ADDEHDEP = unwind.inc unwind-dw2-fde.h unwind-dw2-fde.c gthr-gnat.c
++
++# We're GNU system, where GNU C library is native C library.
++CROSS_SYSTEM_HEADER_DIR = $(gcc_tooldir)/include

---------------------------------------
Received: (at 282880-close) by bugs.debian.org; 30 Nov 2004 09:08:03 +0000
>From katie@ftp-master.debian.org Tue Nov 30 01:08:03 2004
Return-path: <katie@ftp-master.debian.org>
Received: from newraff.debian.org [208.185.25.31] (mail)
	by spohr.debian.org with esmtp (Exim 3.35 1 (Debian))
	id 1CZ3zP-0007AK-00; Tue, 30 Nov 2004 01:08:03 -0800
Received: from katie by newraff.debian.org with local (Exim 3.35 1 (Debian))
	id 1CZ3tu-0000UG-00; Tue, 30 Nov 2004 04:02:22 -0500
From: Matthias Klose <doko@debian.org>
To: 282880-close@bugs.debian.org
X-Katie: $Revision: 1.54 $
Subject: Bug#282880: fixed in gcc-3.4 3.4.3-2
Message-Id: <E1CZ3tu-0000UG-00@newraff.debian.org>
Sender: Archive Administrator <katie@ftp-master.debian.org>
Date: Tue, 30 Nov 2004 04:02:22 -0500
Delivered-To: 282880-close@bugs.debian.org
X-Spam-Checker-Version: SpamAssassin 2.60-bugs.debian.org_2004_03_25 
	(1.212-2003-09-23-exp) on spohr.debian.org
X-Spam-Status: No, hits=-6.0 required=4.0 tests=BAYES_00,HAS_BUG_NUMBER 
	autolearn=no version=2.60-bugs.debian.org_2004_03_25
X-Spam-Level: 

Source: gcc-3.4
Source-Version: 3.4.3-2

We believe that the bug you reported is fixed in the latest version of
gcc-3.4, which is due to be installed in the Debian FTP archive:

cpp-3.4-doc_3.4.3-2_all.deb
  to pool/main/g/gcc-3.4/cpp-3.4-doc_3.4.3-2_all.deb
cpp-3.4_3.4.3-2_i386.deb
  to pool/main/g/gcc-3.4/cpp-3.4_3.4.3-2_i386.deb
fastjar_3.4.3-2_i386.deb
  to pool/main/g/gcc-3.4/fastjar_3.4.3-2_i386.deb
g++-3.4_3.4.3-2_i386.deb
  to pool/main/g/gcc-3.4/g++-3.4_3.4.3-2_i386.deb
g77-3.4-doc_3.4.3-2_all.deb
  to pool/main/g/gcc-3.4/g77-3.4-doc_3.4.3-2_all.deb
g77-3.4_3.4.3-2_i386.deb
  to pool/main/g/gcc-3.4/g77-3.4_3.4.3-2_i386.deb
gcc-3.4-base_3.4.3-2_i386.deb
  to pool/main/g/gcc-3.4/gcc-3.4-base_3.4.3-2_i386.deb
gcc-3.4-doc_3.4.3-2_all.deb
  to pool/main/g/gcc-3.4/gcc-3.4-doc_3.4.3-2_all.deb
gcc-3.4_3.4.3-2.diff.gz
  to pool/main/g/gcc-3.4/gcc-3.4_3.4.3-2.diff.gz
gcc-3.4_3.4.3-2.dsc
  to pool/main/g/gcc-3.4/gcc-3.4_3.4.3-2.dsc
gcc-3.4_3.4.3-2_i386.deb
  to pool/main/g/gcc-3.4/gcc-3.4_3.4.3-2_i386.deb
gcj-3.4_3.4.3-2_i386.deb
  to pool/main/g/gcc-3.4/gcj-3.4_3.4.3-2_i386.deb
gij-3.4_3.4.3-2_i386.deb
  to pool/main/g/gcc-3.4/gij-3.4_3.4.3-2_i386.deb
gnat-3.4-doc_3.4.3-2_all.deb
  to pool/main/g/gcc-3.4/gnat-3.4-doc_3.4.3-2_all.deb
gnat-3.4_3.4.3-2_i386.deb
  to pool/main/g/gcc-3.4/gnat-3.4_3.4.3-2_i386.deb
gobjc-3.4_3.4.3-2_i386.deb
  to pool/main/g/gcc-3.4/gobjc-3.4_3.4.3-2_i386.deb
gpc-2.1-3.4-doc_3.4.3-2_all.deb
  to pool/main/g/gcc-3.4/gpc-2.1-3.4-doc_3.4.3-2_all.deb
gpc-2.1-3.4_3.4.3-2_i386.deb
  to pool/main/g/gcc-3.4/gpc-2.1-3.4_3.4.3-2_i386.deb
lib64gcc1_3.4.3-2_i386.deb
  to pool/main/g/gcc-3.4/lib64gcc1_3.4.3-2_i386.deb
lib64stdc++6_3.4.3-2_i386.deb
  to pool/main/g/gcc-3.4/lib64stdc++6_3.4.3-2_i386.deb
libffi3-dev_3.4.3-2_i386.deb
  to pool/main/g/gcc-3.4/libffi3-dev_3.4.3-2_i386.deb
libffi3_3.4.3-2_i386.deb
  to pool/main/g/gcc-3.4/libffi3_3.4.3-2_i386.deb
libgcc1_3.4.3-2_i386.deb
  to pool/main/g/gcc-3.4/libgcc1_3.4.3-2_i386.deb
libgcj5-awt_3.4.3-2_i386.deb
  to pool/main/g/gcc-3.4/libgcj5-awt_3.4.3-2_i386.deb
libgcj5-common_3.4.3-2_all.deb
  to pool/main/g/gcc-3.4/libgcj5-common_3.4.3-2_all.deb
libgcj5-dev_3.4.3-2_i386.deb
  to pool/main/g/gcc-3.4/libgcj5-dev_3.4.3-2_i386.deb
libgcj5_3.4.3-2_i386.deb
  to pool/main/g/gcc-3.4/libgcj5_3.4.3-2_i386.deb
libgnat-3.4_3.4.3-2_i386.deb
  to pool/main/g/gcc-3.4/libgnat-3.4_3.4.3-2_i386.deb
libstdc++6-dbg_3.4.3-2_i386.deb
  to pool/main/g/gcc-3.4/libstdc++6-dbg_3.4.3-2_i386.deb
libstdc++6-dev_3.4.3-2_i386.deb
  to pool/main/g/gcc-3.4/libstdc++6-dev_3.4.3-2_i386.deb
libstdc++6-doc_3.4.3-2_all.deb
  to pool/main/g/gcc-3.4/libstdc++6-doc_3.4.3-2_all.deb
libstdc++6-pic_3.4.3-2_i386.deb
  to pool/main/g/gcc-3.4/libstdc++6-pic_3.4.3-2_i386.deb
libstdc++6_3.4.3-2_i386.deb
  to pool/main/g/gcc-3.4/libstdc++6_3.4.3-2_i386.deb
treelang-3.4_3.4.3-2_i386.deb
  to pool/main/g/gcc-3.4/treelang-3.4_3.4.3-2_i386.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 282880@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Matthias Klose <doko@debian.org> (supplier of updated gcc-3.4 package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.7
Date: Thu, 25 Nov 2004 23:25:10 +0100
Source: gcc-3.4
Binary: g77-3.4-doc gcc-3.4-base libstdc++6 lib64gcj5-awt gnat-3.4 libobjc1 libgcj5 libgcc1 gcc-3.4 lib64g2c0 gobjc-3.4 libstdc++6-0 gcc-3.4-nof libgcc2 libstdc++6-dev libstdc++6-doc protoize libgnat-3.4 libgcj5-dev libstdc++6-0-pic libgcj5-common lib64stdc++6 libstdc++6-dbg lib32stdc++6-0 gij-3.4 lib32gcc1 lib64gnat-3.4 lib64objc1 cpp-3.4 lib64gcj5 gcc-3.4-hppa64 gcc-3.4-soft-float libstdc++6-0-dev libgcj5-awt cpp-3.4-doc libgcj-common libffi3-dev gcc-3.4-doc libg2c0-dev gpc-2.1-3.4-doc lib64gcc1 fastjar treelang-3.4 libffi3 fixincludes libg2c0 lib32stdc++6 libstdc++6-pic lib64ffi3 gnat-3.4-doc libstdc++6-0-dbg gcj-3.4 gpc-2.1-3.4 g++-3.4 g77-3.4
Architecture: source i386 all
Version: 3.4.3-2
Distribution: unstable
Urgency: high
Maintainer: Debian GCC maintainers <debian-gcc@lists.debian.org>
Changed-By: Matthias Klose <doko@debian.org>
Description: 
 cpp-3.4    - The GNU C preprocessor
 cpp-3.4-doc - Documentation for the GNU C preprocessor (cpp)
 fastjar    - Jar creation utility
 g++-3.4    - The GNU C++ compiler
 g77-3.4    - The GNU Fortran 77 compiler
 g77-3.4-doc - Documentation for the GNU Fortran compiler (g77)
 gcc-3.4    - The GNU C compiler
 gcc-3.4-base - The GNU Compiler Collection (base package)
 gcc-3.4-doc - Documentation for the GNU compilers (gcc, gobjc, g++)
 gcj-3.4    - The GNU compiler for Java(TM)
 gij-3.4    - The GNU Java bytecode interpreter
 gnat-3.4   - The GNU Ada compiler
 gnat-3.4-doc - Documentation for the GNU Ada compiler (gnat)
 gobjc-3.4  - The GNU Objective-C compiler
 gpc-2.1-3.4 - The GNU Pascal compiler
 gpc-2.1-3.4-doc - Documentation for the GNU Pascal compiler (gpc)
 lib64gcc1  - GCC support library (64bit)
 lib64stdc++6 - The GNU Standard C++ Library v3 (64bit)
 libffi3    - Foreign Function Interface library runtime
 libffi3-dev - Foreign Function Interface library (development files)
 libgcc1    - GCC support library
 libgcj5    - Java runtime library for use with gcj
 libgcj5-awt - AWT peer runtime libraries for use with gcj
 libgcj5-common - Java runtime library for use with gcj (jar files)
 libgcj5-dev - Java development headers and static library for use with gcj
 libgnat-3.4 - Runtime library for GNU Ada applications
 libstdc++6 - The GNU Standard C++ Library v3
 libstdc++6-dbg - The GNU Standard C++ Library v3 (debugging files)
 libstdc++6-dev - The GNU Standard C++ Library v3 (development files)
 libstdc++6-doc - The GNU Standard C++ Library v3 (documentation files)
 libstdc++6-pic - The GNU Standard C++ Library v3 (shared library subset kit)
 treelang-3.4 - The GNU Treelang compiler
Closes: 282880
Changes: 
 gcc-3.4 (3.4.3-2) unstable; urgency=high
 .
   * Tighten dependency on binutils (>= 2.15-5). Add libunwind support
     on ia64. Include the libunwind shared library in the libgcc1 package.
     For sarge, we cannot introduce another required package; after the release
     of sarge libgcc1 will depend on libunwind7 on ia64.
   * Updated to gcc-3.4 CVS 20041127.
     - Fix PR 14838, ICE on hppa. Addresses: #272673.
     - Applies backport of patch to fix PR17813.
   * Add M32R support (NIIBE Yutaka). Closes: #282880.
     - debian/rules.patch: Added M32R support.
     - debian/rules.defs: Disable Java and Ada for M32R.
     - debian/patches/m32r-{fixes,gotoff,libffi,limits,stack}.dpatch: New files.
     - debian/patches/autoreconf.dpatch: Enable again.
Files: 
 f9c8d37197a0a14a1ddaf371dac01bf1 2830 devel optional gcc-3.4_3.4.3-2.dsc
 c353e3056185c0287a31902edd133dce 4768878 devel optional gcc-3.4_3.4.3-2.diff.gz
 dda6e0184c93c703257be932e0e1ef17 181560 doc optional cpp-3.4-doc_3.4.3-2_all.deb
 45304444e977a596e00c6adeaa0991ab 2028846 libs optional libgcj5-common_3.4.3-2_all.deb
 5d30a323aff90dff36845863a97bac4d 4249220 doc optional libstdc++6-doc_3.4.3-2_all.deb
 c2451141cc581ad3c24a5969d34b7600 628868 doc optional g77-3.4-doc_3.4.3-2_all.deb
 da2fa60faadf4ee85d22e9ed19054eb6 896336 doc optional gnat-3.4-doc_3.4.3-2_all.deb
 0b99312a4d4a206c3ea5eee64a998583 468718 doc optional gpc-2.1-3.4-doc_3.4.3-2_all.deb
 d5a5a66536e72822e4481df552972f48 1473802 doc optional gcc-3.4-doc_3.4.3-2_all.deb
 cf64c8e906bc00d32cb2fcf298461832 158138 devel optional gcc-3.4-base_3.4.3-2_i386.deb
 820a4bc55a9c989abee76c9e6bda0e62 79312 libs required libgcc1_3.4.3-2_i386.deb
 2c2f7bbc7dbba5603b78c5d28372e027 83346 libs optional lib64gcc1_3.4.3-2_i386.deb
 e5eead7d5bf8524d19ae3cfaa2cce766 1703730 interpreters optional cpp-3.4_3.4.3-2_i386.deb
 eff9dcabedfb3d8db4b401965fe08d16 1742456 devel optional gobjc-3.4_3.4.3-2_i386.deb
 7f6c16862bd40307b65e8c050efe6bb7 13258 devel optional gij-3.4_3.4.3-2_i386.deb
 f02685ff817dafd9da585d39f4ac0a08 3665226 libs optional libgcj5_3.4.3-2_i386.deb
 afa4be9c58f554962f2002a461f07a49 186552 libs optional libgcj5-awt_3.4.3-2_i386.deb
 0a480b22ba1466958bd617c631917e14 2040552 devel optional gcj-3.4_3.4.3-2_i386.deb
 d0623b7b4ce05b2a0e19d70a70f26f2c 6859662 libdevel optional libgcj5-dev_3.4.3-2_i386.deb
 dd31cfd4d2855ea467909092dff49cb2 117926 devel optional fastjar_3.4.3-2_i386.deb
 818be114e6623cf55d896e6853b1ab20 78478 libs optional libffi3_3.4.3-2_i386.deb
 57ebf0fd53211e66dbd0e30bca5359c7 8860 libdevel optional libffi3-dev_3.4.3-2_i386.deb
 26dffa24e8cda5959bf8e6320884799c 1938654 devel optional g++-3.4_3.4.3-2_i386.deb
 3f1d78b76cb858164853a6beb1711df9 324406 libs optional lib64stdc++6_3.4.3-2_i386.deb
 e8db83327cca92f6436d975eb5431ae7 319754 libs optional libstdc++6_3.4.3-2_i386.deb
 4981048856b4e4eadfa88c5571bcd960 1300892 libdevel optional libstdc++6-dev_3.4.3-2_i386.deb
 f8679edb0bcb91aeb2f286224c688516 754658 libdevel extra libstdc++6-pic_3.4.3-2_i386.deb
 b7384b58c029ee21c4c49672594d9b9b 9064412 libdevel extra libstdc++6-dbg_3.4.3-2_i386.deb
 bcfb6580eef7c1d15daa259841c27f24 1859290 devel optional g77-3.4_3.4.3-2_i386.deb
 a0772eea04931c5f78c47bb71bf7dbbc 727662 libs optional libgnat-3.4_3.4.3-2_i386.deb
 ec185d2592d00070a5bde221ccda440d 7131512 devel optional gnat-3.4_3.4.3-2_i386.deb
 746c8ac35e438e0019e886a491e6d3d8 2986072 devel optional treelang-3.4_3.4.3-2_i386.deb
 0645ae2495f5df8f3002e9f1632fa56c 2246932 devel optional gpc-2.1-3.4_3.4.3-2_i386.deb
 4514b456dbd73d46e66a1a8082f626d0 1484872 devel optional gcc-3.4_3.4.3-2_i386.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)

iD8DBQFBqe5fStlRaw+TLJwRAg6hAJ0eR9TFjoGizTwycpme3QJQolleUwCfX4Lm
kyFr/laqylPcYMKxMzDEQKs=
=nbSm
-----END PGP SIGNATURE-----



Reply to: