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 <[EMAIL PROTECTED]>
+# DP: Patch author: GOTO Masanori <[EMAIL PROTECTED]>
+# 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  <[EMAIL PROTECTED]>
+
+       * 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 <[EMAIL PROTECTED]>
+# DP: Patch author: Daniel Jacobowitz <[EMAIL PROTECTED]>
+# 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  <[EMAIL PROTECTED]>
+
+        * 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  <[EMAIL PROTECTED]>
+
+        * 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  <[EMAIL PROTECTED]>
+
+       * 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 *


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

Reply via email to