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

Bug#282880: gcc-3.4: [Patch] M32R support



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



Reply to: