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

r952 - in glibc-package/trunk/debian: . patches



Author: gotom
Date: 2005-07-17 07:24:52 +0000 (Sun, 17 Jul 2005)
New Revision: 952

Added:
   glibc-package/trunk/debian/patches/glibc235-gcc4-mips-inline.dpatch
   glibc-package/trunk/debian/patches/glibc235-gcc4-mips-sysdeps.dpatch
Modified:
   glibc-package/trunk/debian/changelog
   glibc-package/trunk/debian/patches/00list
   glibc-package/trunk/debian/patches/glibc235-gcc4-sparc-inline.dpatch
Log:
      - debian/patches/glibc235-gcc4-mips-inline.dpatch: Fix mips compilation
        breakage by changing static inline to auto inline for dl-machine.h.
      - debian/patches/glibc235-gcc4-mips-sysdeps.dpatch: Fix mips compilation
        breakage by changing large syscall arguments handling.
Add debian/patches/glibc235-gcc4-sparc-inline.dpatch changelog entry.


Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog	2005-07-17 05:27:59 UTC (rev 951)
+++ glibc-package/trunk/debian/changelog	2005-07-17 07:24:52 UTC (rev 952)
@@ -55,6 +55,10 @@
         breakage by changing static inline to auto inline for dl-machine.h.
       - debian/patches/glibc235-gcc4-sparc-mv8.dpatch: Fix obsolete gcc option
         to replace newer standard one.
+      - debian/patches/glibc235-gcc4-mips-inline.dpatch: Fix mips compilation
+        breakage by changing static inline to auto inline for dl-machine.h.
+      - debian/patches/glibc235-gcc4-mips-sysdeps.dpatch: Fix mips compilation
+        breakage by changing large syscall arguments handling.
   
     * Move /etc/locale.alias to /usr/share/locale/locale.alias.
       Don't install locale.alias.5.  (Closes: #144670, #185991, #298784)

Modified: glibc-package/trunk/debian/patches/00list
===================================================================
--- glibc-package/trunk/debian/patches/00list	2005-07-17 05:27:59 UTC (rev 951)
+++ glibc-package/trunk/debian/patches/00list	2005-07-17 07:24:52 UTC (rev 952)
@@ -69,3 +69,5 @@
 glibc235-gcc4-arm-inline
 glibc235-gcc4-sparc-inline
 glibc235-gcc4-sparc-mv8
+glibc235-gcc4-mips-inline
+glibc235-gcc4-mips-sysdeps

Added: glibc-package/trunk/debian/patches/glibc235-gcc4-mips-inline.dpatch
===================================================================
--- glibc-package/trunk/debian/patches/glibc235-gcc4-mips-inline.dpatch	2005-07-17 05:27:59 UTC (rev 951)
+++ glibc-package/trunk/debian/patches/glibc235-gcc4-mips-inline.dpatch	2005-07-17 07:24:52 UTC (rev 952)
@@ -0,0 +1,110 @@
+#! /bin/sh -e
+
+# All lines beginning with `# DP:' are a description of the patch.
+# DP: Description: Make glibc-2.3.5 compile with gcc-4.0 on arm for inline
+#		   functions of dl-machine.h.
+# DP: Related bugs: 
+# DP: Dpatch author: GOTO Masanori <gotom@debian.org>
+# DP: Patch author: GOTO Masanori <gotom@debian.org>
+# DP: Upstream status: In CVS / Debian-Specific
+# DP: Status Details: 
+# DP: Date: 2005-07-17
+
+PATCHLEVEL=0
+
+if [ $# -ne 2 ]; then
+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+    exit 1
+fi
+case "$1" in
+    -patch) patch -d "$2" -f --no-backup-if-mismatch -p$PATCHLEVEL < $0;;
+    -unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p$PATCHLEVEL < $0;;
+    *)
+	echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+	exit 1
+esac
+exit 0
+
+# append the patch here and adjust the -p? flag in the patch calls.
+2005-07-17  GOTO Masanori  <gotom@debian.org>
+
+	* sysdeps/mips/dl-machine.h: Use auto inline.
+
+--- sysdeps/mips/dl-machine.h	2005-07-17 00:36:51.000000000 +0900
++++ sysdeps/mips/dl-machine.h.new	2005-07-17 00:40:18.000000000 +0900
+@@ -528,7 +528,11 @@
+ /* Perform the relocation specified by RELOC and SYM (which is fully resolved).
+    MAP is the object containing the reloc.  */
+ 
+-static inline void
++#if __GNUC__ >= 4 
++  auto inline void 
++#else 
++  static inline void 
++#endif 
+ #ifdef RTLD_BOOTSTRAP
+   __attribute__ ((always_inline))
+ #endif
+@@ -635,14 +639,28 @@
+     }
+ }
+ 
+-static inline void
++#if __GNUC__ >= 4 
++  auto inline void 
++#else 
++  static inline void 
++#endif 
++#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2) 
++  __attribute ((always_inline)) 
++#endif 
+ elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc,
+ 			  void *const reloc_addr)
+ {
+   /* XXX Nothing to do.  There is no relative relocation, right?  */
+ }
+ 
+-static inline void
++#if __GNUC__ >= 4 
++  auto inline void 
++#else 
++  static inline void 
++#endif 
++#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2) 
++  __attribute ((always_inline)) 
++#endif 
+ elf_machine_lazy_rel (struct link_map *map,
+ 		      ElfW(Addr) l_addr, const ElfW(Rel) *reloc)
+ {
+@@ -651,7 +669,14 @@
+ 
+ #ifndef RTLD_BOOTSTRAP
+ /* Relocate GOT. */
+-static inline void
++#if __GNUC__ >= 4 
++  auto inline void 
++#else 
++  static inline void 
++#endif 
++#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2) 
++  __attribute ((always_inline)) 
++#endif 
+ elf_machine_got_rel (struct link_map *map, int lazy)
+ {
+   ElfW(Addr) *got;
+@@ -738,7 +763,14 @@
+ /* Set up the loaded object described by L so its stub function
+    will jump to the on-demand fixup code __dl_runtime_resolve.  */
+ 
+-static inline int
++#if __GNUC__ >= 4 
++  auto inline int
++#else 
++  static inline int
++#endif 
++#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2) 
++  __attribute ((always_inline)) 
++#endif 
+ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
+ {
+ # ifndef RTLD_BOOTSTRAP

Added: glibc-package/trunk/debian/patches/glibc235-gcc4-mips-sysdeps.dpatch
===================================================================
--- glibc-package/trunk/debian/patches/glibc235-gcc4-mips-sysdeps.dpatch	2005-07-17 05:27:59 UTC (rev 951)
+++ glibc-package/trunk/debian/patches/glibc235-gcc4-mips-sysdeps.dpatch	2005-07-17 07:24:52 UTC (rev 952)
@@ -0,0 +1,438 @@
+#! /bin/sh -e
+
+# All lines beginning with `# DP:' are a description of the patch.
+# DP: Description: Make glibc-2.3.5 compile with gcc-4.0 on mips for
+#		   the breakage of large syscall arguments handling.
+# DP: Related bugs: 
+# DP: Dpatch author: GOTO Masanori <gotom@debian.org>
+# DP: Patch author: Daniel Jacobowitz <dan@codesourcery.com>
+# DP: Upstream status: In CVS
+# DP: Status Details: 
+# DP: Date: 2005-07-17
+
+PATCHLEVEL=0
+
+if [ $# -ne 2 ]; then
+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+    exit 1
+fi
+case "$1" in
+    -patch) patch -d "$2" -f --no-backup-if-mismatch -p$PATCHLEVEL < $0;;
+    -unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p$PATCHLEVEL < $0;;
+    *)
+	echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+	exit 1
+esac
+exit 0
+
+# append the patch here and adjust the -p? flag in the patch calls.
+2005-03-28  Daniel Jacobowitz  <dan@codesourcery.com>
+
+        * sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
+        (INTERNAL_SYSCALL_NCS): New.
+        (INTERNAL_SYSCALL): Update for non-constant support.
+        (internal_syscall0): Likewise.
+        (internal_syscall1): Likewise.
+        (internal_syscall2): Likewise.
+        (internal_syscall3): Likewise.
+        (internal_syscall4): Likewise.
+        (internal_syscall5): Likewise.
+        (internal_syscall6): Likewise.
+        (internal_syscall7): Likewise.
+
+2005-03-28  Daniel Jacobowitz  <dan@codesourcery.com>
+
+        * sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
+        (internal_syscall5): Use register operands instead of non-lvalue
+        memory operands.
+        (internal_syscall6): Likewise.
+        (internal_syscall7): Likewise.
+
+Index: sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
+===================================================================
+RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h,v
+retrieving revision 1.2
+retrieving revision 1.4
+diff -u -p -r1.2 -r1.4
+--- sysdeps/unix/sysv/linux/mips/mips32/sysdep.h	18 Oct 2004 05:16:06 -0000	1.2
++++ sysdeps/unix/sysv/linux/mips/mips32/sysdep.h	28 Mar 2005 09:17:26 -0000	1.4
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
++/* Copyright (C) 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+ 
+    The GNU C Library is free software; you can redistribute it and/or
+@@ -48,12 +48,12 @@
+ #undef INLINE_SYSCALL
+ #define INLINE_SYSCALL(name, nr, args...)                               \
+   ({ INTERNAL_SYSCALL_DECL(err);					\
+-     long result_var = INTERNAL_SYSCALL (name, err, nr, args);      	\
+-     if ( INTERNAL_SYSCALL_ERROR_P (result_var, err) )  		\
+-       {                                                                \
+-         __set_errno (INTERNAL_SYSCALL_ERRNO (result_var, err));      	\
+-         result_var = -1L;                               		\
+-       }                                                                \
++     long result_var = INTERNAL_SYSCALL (name, err, nr, args);		\
++     if ( INTERNAL_SYSCALL_ERROR_P (result_var, err) )			\
++       {								\
++	 __set_errno (INTERNAL_SYSCALL_ERRNO (result_var, err));	\
++	 result_var = -1L;						\
++       }								\
+      result_var; })
+ 
+ #undef INTERNAL_SYSCALL_DECL
+@@ -66,209 +66,218 @@
+ #define INTERNAL_SYSCALL_ERRNO(val, err)     (val)
+ 
+ #undef INTERNAL_SYSCALL
+-#define INTERNAL_SYSCALL(name, err, nr, args...) internal_syscall##nr(name, err, args)
++#define INTERNAL_SYSCALL(name, err, nr, args...) \
++	internal_syscall##nr (, "li\t$2, %2\t\t\t# " #name "\n\t",	\
++			      "i" (SYS_ify (name)), err, args)
++
++#undef INTERNAL_SYSCALL_NCS
++#define INTERNAL_SYSCALL_NCS(number, err, nr, args...) \
++	internal_syscall##nr (= number, , "r" (__v0), err, args)
+ 
+-#define internal_syscall0(name, err, dummy...) 				\
+-({ 									\
++#define internal_syscall0(ncs_init, cs_init, input, err, dummy...)	\
++({									\
+ 	long _sys_result;						\
+ 									\
+ 	{								\
+-	register long __v0 asm("$2"); 					\
+-	register long __a3 asm("$7"); 					\
+-	__asm__ volatile ( 						\
+-	".set\tnoreorder\n\t" 						\
+-	"li\t$2, %2\t\t\t# " #name "\n\t"				\
+-	"syscall\n\t" 							\
+-	".set reorder" 							\
+-	: "=r" (__v0), "=r" (__a3) 					\
+-	: "i" (SYS_ify(name))						\
+-	: __SYSCALL_CLOBBERS); 						\
++	register long __v0 asm("$2") ncs_init;				\
++	register long __a3 asm("$7");					\
++	__asm__ volatile (						\
++	".set\tnoreorder\n\t"						\
++	cs_init								\
++	"syscall\n\t"							\
++	".set reorder"							\
++	: "=r" (__v0), "=r" (__a3)					\
++	: input								\
++	: __SYSCALL_CLOBBERS);						\
+ 	err = __a3;							\
+ 	_sys_result = __v0;						\
+ 	}								\
+ 	_sys_result;							\
+ })
+ 
+-#define internal_syscall1(name, err, arg1) 				\
+-({ 									\
++#define internal_syscall1(ncs_init, cs_init, input, err, arg1)		\
++({									\
+ 	long _sys_result;						\
+ 									\
+ 	{								\
+-	register long __v0 asm("$2"); 					\
+-	register long __a0 asm("$4") = (long) arg1; 			\
+-	register long __a3 asm("$7"); 					\
+-	__asm__ volatile ( 						\
+-	".set\tnoreorder\n\t" 						\
+-	"li\t$2, %3\t\t\t# " #name "\n\t"				\
+-	"syscall\n\t" 							\
+-	".set reorder" 							\
+-	: "=r" (__v0), "=r" (__a3) 					\
+-	: "r" (__a0), "i" (SYS_ify(name)) 				\
+-	: __SYSCALL_CLOBBERS); 						\
++	register long __v0 asm("$2") ncs_init;				\
++	register long __a0 asm("$4") = (long) arg1;			\
++	register long __a3 asm("$7");					\
++	__asm__ volatile (						\
++	".set\tnoreorder\n\t"						\
++	cs_init								\
++	"syscall\n\t"							\
++	".set reorder"							\
++	: "=r" (__v0), "=r" (__a3)					\
++	: input, "r" (__a0)						\
++	: __SYSCALL_CLOBBERS);						\
+ 	err = __a3;							\
+ 	_sys_result = __v0;						\
+ 	}								\
+ 	_sys_result;							\
+ })
+ 
+-#define internal_syscall2(name, err, arg1, arg2) 			\
+-({ 									\
++#define internal_syscall2(ncs_init, cs_init, input, err, arg1, arg2)	\
++({									\
+ 	long _sys_result;						\
+ 									\
+ 	{								\
+-	register long __v0 asm("$2"); 					\
+-	register long __a0 asm("$4") = (long) arg1; 			\
+-	register long __a1 asm("$5") = (long) arg2; 			\
+-	register long __a3 asm("$7"); 					\
+-	__asm__ volatile ( 						\
+-	".set\tnoreorder\n\t" 						\
+-	"li\t$2, %4\t\t\t# " #name "\n\t" 				\
+-	"syscall\n\t" 							\
+-	".set\treorder" 						\
+-	: "=r" (__v0), "=r" (__a3) 					\
+-	: "r" (__a0), "r" (__a1), "i" (SYS_ify(name))			\
+-	: __SYSCALL_CLOBBERS); 						\
++	register long __v0 asm("$2") ncs_init;				\
++	register long __a0 asm("$4") = (long) arg1;			\
++	register long __a1 asm("$5") = (long) arg2;			\
++	register long __a3 asm("$7");					\
++	__asm__ volatile (						\
++	".set\tnoreorder\n\t"						\
++	cs_init								\
++	"syscall\n\t"							\
++	".set\treorder"						\
++	: "=r" (__v0), "=r" (__a3)					\
++	: input, "r" (__a0), "r" (__a1)					\
++	: __SYSCALL_CLOBBERS);						\
+ 	err = __a3;							\
+ 	_sys_result = __v0;						\
+ 	}								\
+ 	_sys_result;							\
+ })
+ 
+-#define internal_syscall3(name, err, arg1, arg2, arg3) 			\
+-({ 									\
++#define internal_syscall3(ncs_init, cs_init, input, err, arg1, arg2, arg3)\
++({									\
+ 	long _sys_result;						\
+ 									\
+ 	{								\
+-	register long __v0 asm("$2"); 					\
+-	register long __a0 asm("$4") = (long) arg1; 			\
+-	register long __a1 asm("$5") = (long) arg2; 			\
+-	register long __a2 asm("$6") = (long) arg3; 			\
+-	register long __a3 asm("$7"); 					\
+-	__asm__ volatile ( 						\
+-	".set\tnoreorder\n\t" 						\
+-	"li\t$2, %5\t\t\t# " #name "\n\t" 				\
+-	"syscall\n\t" 							\
+-	".set\treorder" 						\
+-	: "=r" (__v0), "=r" (__a3) 					\
+-	: "r" (__a0), "r" (__a1), "r" (__a2), "i" (SYS_ify(name)) 	\
+-	: __SYSCALL_CLOBBERS); 						\
++	register long __v0 asm("$2") ncs_init;				\
++	register long __a0 asm("$4") = (long) arg1;			\
++	register long __a1 asm("$5") = (long) arg2;			\
++	register long __a2 asm("$6") = (long) arg3;			\
++	register long __a3 asm("$7");					\
++	__asm__ volatile (						\
++	".set\tnoreorder\n\t"						\
++	cs_init								\
++	"syscall\n\t"							\
++	".set\treorder"						\
++	: "=r" (__v0), "=r" (__a3)					\
++	: input, "r" (__a0), "r" (__a1), "r" (__a2)			\
++	: __SYSCALL_CLOBBERS);						\
+ 	err = __a3;							\
+ 	_sys_result = __v0;						\
+ 	}								\
+ 	_sys_result;							\
+ })
+ 
+-#define internal_syscall4(name, err, arg1, arg2, arg3, arg4) 		\
+-({ 									\
++#define internal_syscall4(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4)\
++({									\
+ 	long _sys_result;						\
+ 									\
+ 	{								\
+-	register long __v0 asm("$2"); 					\
+-	register long __a0 asm("$4") = (long) arg1; 			\
+-	register long __a1 asm("$5") = (long) arg2; 			\
+-	register long __a2 asm("$6") = (long) arg3; 			\
+-	register long __a3 asm("$7") = (long) arg4; 			\
+-	__asm__ volatile ( 						\
+-	".set\tnoreorder\n\t" 						\
+-	"li\t$2, %5\t\t\t# " #name "\n\t" 				\
+-	"syscall\n\t" 							\
+-	".set\treorder" 						\
+-	: "=r" (__v0), "+r" (__a3) 					\
+-	: "r" (__a0), "r" (__a1), "r" (__a2), "i" (SYS_ify(name)) 	\
+-	: __SYSCALL_CLOBBERS); 						\
++	register long __v0 asm("$2") ncs_init;				\
++	register long __a0 asm("$4") = (long) arg1;			\
++	register long __a1 asm("$5") = (long) arg2;			\
++	register long __a2 asm("$6") = (long) arg3;			\
++	register long __a3 asm("$7") = (long) arg4;			\
++	__asm__ volatile (						\
++	".set\tnoreorder\n\t"						\
++	cs_init								\
++	"syscall\n\t"							\
++	".set\treorder"						\
++	: "=r" (__v0), "+r" (__a3)					\
++	: input, "r" (__a0), "r" (__a1), "r" (__a2)			\
++	: __SYSCALL_CLOBBERS);						\
+ 	err = __a3;							\
+ 	_sys_result = __v0;						\
+ 	}								\
+ 	_sys_result;							\
+ })
+ 
+-#define internal_syscall5(name, err, arg1, arg2, arg3, arg4, arg5) 	\
+-({ 									\
++/* We need to use a frame pointer for the functions in which we
++   adjust $sp around the syscall, or debug information and unwind
++   information will be $sp relative and thus wrong during the syscall.  As
++   of GCC 3.4.3, this is sufficient.  */
++#define FORCE_FRAME_POINTER alloca (4)
++
++#define internal_syscall5(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4, arg5)\
++({									\
+ 	long _sys_result;						\
+ 									\
++	FORCE_FRAME_POINTER;						\
+ 	{								\
+-	register long __v0 asm("$2"); 					\
+-	register long __a0 asm("$4") = (long) arg1; 			\
+-	register long __a1 asm("$5") = (long) arg2; 			\
+-	register long __a2 asm("$6") = (long) arg3; 			\
+-	register long __a3 asm("$7") = (long) arg4; 			\
+-	__asm__ volatile ( 						\
+-	".set\tnoreorder\n\t" 						\
+-	"lw\t$2, %6\n\t" 						\
+-	"subu\t$29, 32\n\t" 						\
+-	"sw\t$2, 16($29)\n\t" 						\
+-	"li\t$2, %5\t\t\t# " #name "\n\t" 				\
+-	"syscall\n\t" 							\
+-	"addiu\t$29, 32\n\t" 						\
+-	".set\treorder" 						\
+-	: "=r" (__v0), "+r" (__a3) 					\
+-	: "r" (__a0), "r" (__a1), "r" (__a2), "i" (SYS_ify(name)), 	\
+-	  "m" ((long)arg5) 						\
+-	: __SYSCALL_CLOBBERS); 						\
++	register long __v0 asm("$2") ncs_init;				\
++	register long __a0 asm("$4") = (long) arg1;			\
++	register long __a1 asm("$5") = (long) arg2;			\
++	register long __a2 asm("$6") = (long) arg3;			\
++	register long __a3 asm("$7") = (long) arg4;			\
++	__asm__ volatile (						\
++	".set\tnoreorder\n\t"						\
++	"subu\t$29, 32\n\t"						\
++	"sw\t%6, 16($29)\n\t"						\
++	cs_init								\
++	"syscall\n\t"							\
++	"addiu\t$29, 32\n\t"						\
++	".set\treorder"						\
++	: "=r" (__v0), "+r" (__a3)					\
++	: input, "r" (__a0), "r" (__a1), "r" (__a2),			\
++	  "r" ((long)arg5)						\
++	: __SYSCALL_CLOBBERS);						\
+ 	err = __a3;							\
+ 	_sys_result = __v0;						\
+ 	}								\
+ 	_sys_result;							\
+ })
+ 
+-#define internal_syscall6(name, err, arg1, arg2, arg3, arg4, arg5, arg6)\
+-({ 									\
++#define internal_syscall6(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4, arg5, arg6)\
++({									\
+ 	long _sys_result;						\
+ 									\
++	FORCE_FRAME_POINTER;						\
+ 	{								\
+-	register long __v0 asm("$2"); 					\
+-	register long __a0 asm("$4") = (long) arg1; 			\
+-	register long __a1 asm("$5") = (long) arg2; 			\
+-	register long __a2 asm("$6") = (long) arg3; 			\
+-	register long __a3 asm("$7") = (long) arg4; 			\
+-	__asm__ volatile ( 						\
+-	".set\tnoreorder\n\t" 						\
+-	"lw\t$2, %6\n\t" 						\
+-	"lw\t$8, %7\n\t" 						\
+-	"subu\t$29, 32\n\t" 						\
+-	"sw\t$2, 16($29)\n\t" 						\
+-	"sw\t$8, 20($29)\n\t" 						\
+-	"li\t$2, %5\t\t\t# " #name "\n\t" 				\
+-	"syscall\n\t" 							\
+-	"addiu\t$29, 32\n\t" 						\
+-	".set\treorder" 						\
+-	: "=r" (__v0), "+r" (__a3) 					\
+-	: "r" (__a0), "r" (__a1), "r" (__a2), "i" (SYS_ify(name)), 	\
+-	  "m" ((long)arg5), "m" ((long)arg6)				\
+-	: __SYSCALL_CLOBBERS); 						\
++	register long __v0 asm("$2") ncs_init;				\
++	register long __a0 asm("$4") = (long) arg1;			\
++	register long __a1 asm("$5") = (long) arg2;			\
++	register long __a2 asm("$6") = (long) arg3;			\
++	register long __a3 asm("$7") = (long) arg4;			\
++	__asm__ volatile (						\
++	".set\tnoreorder\n\t"						\
++	"subu\t$29, 32\n\t"						\
++	"sw\t%6, 16($29)\n\t"						\
++	"sw\t%7, 20($29)\n\t"						\
++	cs_init								\
++	"syscall\n\t"							\
++	"addiu\t$29, 32\n\t"						\
++	".set\treorder"						\
++	: "=r" (__v0), "+r" (__a3)					\
++	: input, "r" (__a0), "r" (__a1), "r" (__a2),			\
++	  "r" ((long)arg5), "r" ((long)arg6)				\
++	: __SYSCALL_CLOBBERS);						\
+ 	err = __a3;							\
+ 	_sys_result = __v0;						\
+ 	}								\
+ 	_sys_result;							\
+ })
+ 
+-#define internal_syscall7(name, err, arg1, arg2, arg3, arg4, arg5, arg6, arg7)\
+-({ 									\
++#define internal_syscall7(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4, arg5, arg6, arg7)\
++({									\
+ 	long _sys_result;						\
+ 									\
++	FORCE_FRAME_POINTER;						\
+ 	{								\
+-	register long __v0 asm("$2"); 					\
+-	register long __a0 asm("$4") = (long) arg1; 			\
+-	register long __a1 asm("$5") = (long) arg2; 			\
+-	register long __a2 asm("$6") = (long) arg3; 			\
+-	register long __a3 asm("$7") = (long) arg4; 			\
+-	__asm__ volatile ( 						\
+-	".set\tnoreorder\n\t" 						\
+-	"lw\t$2, %6\n\t" 						\
+-	"lw\t$8, %7\n\t" 						\
+-	"lw\t$9, %8\n\t" 						\
+-	"subu\t$29, 32\n\t" 						\
+-	"sw\t$2, 16($29)\n\t" 						\
+-	"sw\t$8, 20($29)\n\t" 						\
+-	"sw\t$9, 24($29)\n\t" 						\
+-	"li\t$2, %5\t\t\t# " #name "\n\t" 				\
+-	"syscall\n\t" 							\
+-	"addiu\t$29, 32\n\t" 						\
+-	".set\treorder" 						\
+-	: "=r" (__v0), "+r" (__a3) 					\
+-	: "r" (__a0), "r" (__a1), "r" (__a2), "i" (SYS_ify(name)), 	\
+-	  "m" ((long)arg5), "m" ((long)arg6), "m" ((long)arg7)		\
+-	: __SYSCALL_CLOBBERS); 						\
++	register long __v0 asm("$2") ncs_init;				\
++	register long __a0 asm("$4") = (long) arg1;			\
++	register long __a1 asm("$5") = (long) arg2;			\
++	register long __a2 asm("$6") = (long) arg3;			\
++	register long __a3 asm("$7") = (long) arg4;			\
++	__asm__ volatile (						\
++	".set\tnoreorder\n\t"						\
++	"subu\t$29, 32\n\t"						\
++	"sw\t%6, 16($29)\n\t"						\
++	"sw\t%7, 20($29)\n\t"						\
++	"sw\t%8, 24($29)\n\t"						\
++	cs_init								\
++	"syscall\n\t"							\
++	"addiu\t$29, 32\n\t"						\
++	".set\treorder"						\
++	: "=r" (__v0), "+r" (__a3)					\
++	: input, "r" (__a0), "r" (__a1), "r" (__a2),			\
++	  "r" ((long)arg5), "r" ((long)arg6), "r" ((long)arg7)		\
++	: __SYSCALL_CLOBBERS);						\
+ 	err = __a3;							\
+ 	_sys_result = __v0;						\
+ 	}								\

Modified: glibc-package/trunk/debian/patches/glibc235-gcc4-sparc-inline.dpatch
===================================================================
--- glibc-package/trunk/debian/patches/glibc235-gcc4-sparc-inline.dpatch	2005-07-17 05:27:59 UTC (rev 951)
+++ glibc-package/trunk/debian/patches/glibc235-gcc4-sparc-inline.dpatch	2005-07-17 07:24:52 UTC (rev 952)
@@ -27,6 +27,11 @@
 exit 0
 
 # append the patch here and adjust the -p? flag in the patch calls.
+2005-07-17  GOTO Masanori  <gotom@debian.org>
+
+	* sysdeps/sparc/sparc32/dl-machine.h: Use auto inline.
+	* sysdeps/sparc/sparc64/dl-machine.h: Likewise.
+
 --- sysdeps/sparc/sparc32/dl-machine.h.org	2005-07-15 06:14:11.000000000 +0900
 +++ sysdeps/sparc/sparc32/dl-machine.h	2005-07-15 06:59:13.000000000 +0900
 @@ -411,7 +411,14 @@ elf_machine_plt_value (struct link_map *



Reply to: