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

[glibc] 01/01: debian/patches/git-updates.diff: update to the latest commit of the 2.22 branch



This is an automated email from the git hooks/post-receive script.

aurel32 pushed a commit to branch glibc-2.22
in repository glibc.

commit a86d54881bd240a6655788015ca8042e84d81d09
Author: Aurelien Jarno <aurelien@aurel32.net>
Date:   Sat Jan 30 12:03:59 2016 +0100

    debian/patches/git-updates.diff: update to the latest commit of the 2.22 branch
    
    - debian/patches/hppa/cvs-inline-syscall.diff: drop, merged upstream.
    - debian/patches/hppa/cvs-start.diff: drop, merged upstream.
---
 debian/changelog                            |   2 +
 debian/patches/git-updates.diff             | 364 +++++++++++++++++++++++++++-
 debian/patches/hppa/cvs-inline-syscall.diff | 116 ---------
 debian/patches/hppa/cvs-start.diff          |  44 ----
 4 files changed, 359 insertions(+), 167 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index dcd3d72..88ce1ac 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -54,6 +54,8 @@ glibc (2.22-0experimental2) UNRELEASED; urgency=medium
   * debian/patches/git-updates.diff: update to the latest commit of the
     2.22 branch.
   * debian/patches/alpha/submitted-abilist.diff: drop, merged upstream.
+  * debian/patches/hppa/cvs-inline-syscall.diff: drop, merged upstream.
+  * debian/patches/hppa/cvs-start.diff: drop, merged upstream.
   * debian/control.in/main: update VCS fields to the canonical location.
   * debian/control.in/{libc,libnss-dns-udeb,libnss-files-udeb}: rename
     XC-Package-Type into Package-Type.
diff --git a/debian/patches/git-updates.diff b/debian/patches/git-updates.diff
index 3ddc361..ba8c703 100644
--- a/debian/patches/git-updates.diff
+++ b/debian/patches/git-updates.diff
@@ -1,10 +1,52 @@
 GIT update of git://sourceware.org/git/glibc.git/release/2.22/master from glibc-2.22
 
 diff --git a/ChangeLog b/ChangeLog
-index cb9124e..3e1d770 100644
+index cb9124e..ed20b9b 100644
 --- a/ChangeLog
 +++ b/ChangeLog
-@@ -1,3 +1,271 @@
+@@ -1,3 +1,313 @@
++2016-01-27  Paul Eggert  <eggert@cs.ucla.edu>
++
++	[BZ #18240]
++	* misc/hsearch_r.c (isprime, __hcreate_r): Protect against
++	unsigned int wraparound.
++
++2016-01-27  Florian Weimer  <fweimer@redhat.com>
++
++	[BZ #18240]
++	* misc/bug18240.c: New test.
++	* misc/Makefile (tests): Add it.
++
++2015-08-25  Ondřej Bílka  <neleai@seznam.cz>
++
++	[BZ #18240]
++	* misc/hsearch_r.c (__hcreate_r): Handle overflow.
++
++2015-10-27  Ludovic Courtès  <ludo@gnu.org>
++
++	* locale/loadlocale.c (_nl_intern_locale_data): Change assertion
++	on CNT to a conditional jump to 'puntdata'.
++
++2015-08-18  Alan Modra  <amodra@gmail.com>
++
++	[BZ #18421]
++	* sysdeps/hppa/start.S [SHARED]: Use .section .data.rel.ro and define
++	.Lp__global.
++	(_start): Load %dp via .Lp__global.
++	[!SHARED]: Use .section .rodata.
++
++2015-08-09  John David Anglin  <danglin@gcc.gnu.org>
++
++	[BZ #18480]
++	* sysdeps/unix/sysv/linux/hppa/sysdep.h (LOAD_ARGS_0, LOAD_ARGS_1,
++	LOAD_ARGS_2, LOAD_ARGS_3, LOAD_ARGS_4, LOAD_ARGS_5, LOAD_ARGS_6):
++	Define.
++	(LOAD_REGS_0, LOAD_REGS_1, LOAD_REGS_2, LOAD_REGS_3, LOAD_REGS_4,
++	LOAD_REGS_5, LOAD_REGS_6): Update.
++	(INTERNAL_SYSCALL): Update using new LOAD defines.
++	(INTERNAL_SYSCALL_NCS): Likewise.
++	* sysdeps/unix/sysv/linux/hppa/syscall.c (syscall): Likewise.
++
 +2015-09-26  Paul Pluzhnikov  <ppluzhnikov@google.com>
 +
 +	[BZ #18985]
@@ -277,7 +319,7 @@ index cb9124e..3e1d770 100644
  
  	* version.h (RELEASE): Set to "stable".
 diff --git a/NEWS b/NEWS
-index 4c31de7..5a1ebdc 100644
+index 4c31de7..d1daf9b 100644
 --- a/NEWS
 +++ b/NEWS
 @@ -5,6 +5,16 @@ See the end for copying conditions.
@@ -288,8 +330,8 @@ index 4c31de7..5a1ebdc 100644
 +
 +* The following bugs are resolved with this release:
 +
-+  17905, 18589, 18743, 18778, 18781, 18787, 18796, 18870, 18887, 18921,
-+  18928, 18969, 18985, 19018, 19058, 19174, 19178.
++  17905, 18420, 18421, 18480, 18589, 18743, 18778, 18781, 18787, 18796,
++  18870, 18887, 18921, 18928, 18969, 18985, 19018, 19058, 19174, 19178.
 +
 +* The LD_POINTER_GUARD environment variable can no longer be used to
 +  disable the pointer guard feature.  It is always enabled.
@@ -1151,6 +1193,24 @@ index ffc5c7f..a565d9d 100644
    _NL_NUM_LC_COLLATE,
  
    /* LC_CTYPE category: character classification.
+diff --git a/locale/loadlocale.c b/locale/loadlocale.c
+index fdba6e9..dcbb833 100644
+--- a/locale/loadlocale.c
++++ b/locale/loadlocale.c
+@@ -121,9 +121,10 @@ _nl_intern_locale_data (int category, const void *data, size_t datasize)
+       switch (category)
+ 	{
+ #define CATTEST(cat) \
+-	case LC_##cat:							      \
+-	  assert (cnt < (sizeof (_nl_value_type_LC_##cat)		      \
+-			 / sizeof (_nl_value_type_LC_##cat[0])));	      \
++	case LC_##cat:						\
++	  if (cnt >= (sizeof (_nl_value_type_LC_##cat)		\
++		      / sizeof (_nl_value_type_LC_##cat[0])))	\
++	    goto puntdata;					\
+ 	  break
+ 	  CATTEST (NUMERIC);
+ 	  CATTEST (TIME);
 diff --git a/locale/localeinfo.h b/locale/localeinfo.h
 index bdab9fe..1d2ee00 100644
 --- a/locale/localeinfo.h
@@ -1218,7 +1278,7 @@ index 6388bae..2c9d72d 100644
  endif
  
 diff --git a/misc/Makefile b/misc/Makefile
-index aecb0da..2f5edf6 100644
+index aecb0da..12055ce 100644
 --- a/misc/Makefile
 +++ b/misc/Makefile
 @@ -76,7 +76,8 @@ install-lib := libg.a
@@ -1227,10 +1287,148 @@ index aecb0da..2f5edf6 100644
  tests := tst-dirname tst-tsearch tst-fdset tst-efgcvt tst-mntent tst-hsearch \
 -	 tst-error1 tst-pselect tst-insremque tst-mntent2 bug-hsearch1
 +	 tst-error1 tst-pselect tst-insremque tst-mntent2 bug-hsearch1 \
-+	 tst-mntent-blank-corrupt tst-mntent-blank-passno
++	 tst-mntent-blank-corrupt tst-mntent-blank-passno bug18240
  ifeq ($(run-built-tests),yes)
  tests-special += $(objpfx)tst-error1-mem.out
  endif
+diff --git a/misc/bug18240.c b/misc/bug18240.c
+new file mode 100644
+index 0000000..4b26865
+--- /dev/null
++++ b/misc/bug18240.c
+@@ -0,0 +1,75 @@
++/* Test integer wraparound in hcreate.
++   Copyright (C) 2016 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
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <http://www.gnu.org/licenses/>.  */
++
++#include <errno.h>
++#include <limits.h>
++#include <search.h>
++#include <stdbool.h>
++#include <stdio.h>
++#include <stdlib.h>
++
++static void
++test_size (size_t size)
++{
++  int res = hcreate (size);
++  if (res == 0)
++    {
++      if (errno == ENOMEM)
++        return;
++      printf ("error: hcreate (%zu): %m\n", size);
++      exit (1);
++    }
++  char *keys[100];
++  for (int i = 0; i < 100; ++i)
++    {
++      if (asprintf (keys + i, "%d", i) < 0)
++        {
++          printf ("error: asprintf: %m\n");
++          exit (1);
++        }
++      ENTRY e = { keys[i], (char *) "value" };
++      if (hsearch (e, ENTER) == NULL)
++        {
++          printf ("error: hsearch (\"%s\"): %m\n", keys[i]);
++          exit (1);
++        }
++    }
++  hdestroy ();
++
++  for (int i = 0; i < 100; ++i)
++    free (keys[i]);
++}
++
++static int
++do_test (void)
++{
++  test_size (500);
++  test_size (-1);
++  test_size (-3);
++  test_size (INT_MAX - 2);
++  test_size (INT_MAX - 1);
++  test_size (INT_MAX);
++  test_size (((unsigned) INT_MAX) + 1);
++  test_size (UINT_MAX - 2);
++  test_size (UINT_MAX - 1);
++  test_size (UINT_MAX);
++  return 0;
++}
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+diff --git a/misc/hsearch_r.c b/misc/hsearch_r.c
+index 9f55e84..661f0f6 100644
+--- a/misc/hsearch_r.c
++++ b/misc/hsearch_r.c
+@@ -19,7 +19,7 @@
+ #include <errno.h>
+ #include <malloc.h>
+ #include <string.h>
+-
++#include <stdint.h>
+ #include <search.h>
+ 
+ /* [Aho,Sethi,Ullman] Compilers: Principles, Techniques and Tools, 1986
+@@ -46,15 +46,12 @@ static int
+ isprime (unsigned int number)
+ {
+   /* no even number will be passed */
+-  unsigned int div = 3;
+-
+-  while (div * div < number && number % div != 0)
+-    div += 2;
+-
+-  return number % div != 0;
++  for (unsigned int div = 3; div <= number / div; div += 2)
++    if (number % div == 0)
++      return 0;
++  return 1;
+ }
+ 
+-
+ /* Before using the hash table we must allocate memory for it.
+    Test for an existing table are done. We allocate one element
+    more as the found prime number says. This is done for more effective
+@@ -81,10 +78,19 @@ __hcreate_r (nel, htab)
+      use will not work.  */
+   if (nel < 3)
+     nel = 3;
+-  /* Change nel to the first prime number not smaller as nel. */
+-  nel |= 1;      /* make odd */
+-  while (!isprime (nel))
+-    nel += 2;
++
++  /* Change nel to the first prime number in the range [nel, UINT_MAX - 2],
++     The '- 2' means 'nel += 2' cannot overflow.  */
++  for (nel |= 1; ; nel += 2)
++    {
++      if (UINT_MAX - 2 < nel)
++	{
++	  __set_errno (ENOMEM);
++	  return 0;
++	}
++      if (isprime (nel))
++	break;
++    }
+ 
+   htab->size = nel;
+   htab->filled = 0;
 diff --git a/misc/mntent_r.c b/misc/mntent_r.c
 index 6159873..4f26998 100644
 --- a/misc/mntent_r.c
@@ -1741,6 +1939,50 @@ index b707c19..89d8baf 100644
      return (void *) value;
  }
 +rtld_hidden_def (_dl_symbol_address)
+diff --git a/sysdeps/hppa/start.S b/sysdeps/hppa/start.S
+index 64d8c3e..cc4f243 100644
+--- a/sysdeps/hppa/start.S
++++ b/sysdeps/hppa/start.S
+@@ -42,7 +42,11 @@
+ 	/* Have the linker create plabel words so we get PLABEL32
+ 	   relocs and not 21/14.  The use of 21/14 relocs is only
+ 	   supported in the latest dynamic linker.  */
+-	.section	.rodata
++#ifdef SHARED
++	.section	.data.rel.ro,"aw",@progbits
++#else
++	.section	.rodata,"a",@progbits
++#endif
+ 	.align 4
+ .Lpmain:
+ 	.word P%main
+@@ -52,6 +56,10 @@
+ 	.word P%__libc_csu_fini
+ .Lp__libc_csu_init:
+ 	.word P%__libc_csu_init
++#ifdef SHARED
++.Lp__global:
++	.word $global$
++#endif
+ 
+ 	.text
+ 	.align 4
+@@ -122,10 +130,14 @@ _start:
+ 	/* void *stack_end (7th argument) */
+ 	stw	%sp, -60(%sp)
+ 
++#ifdef SHARED
++	addil	LT'.Lp__global, %r19
++	ldw	RT'.Lp__global(%r1), %dp
++#else
+ 	/* load global */
+ 	ldil	L%$global$, %dp
+ 	ldo	R%$global$(%dp), %dp
+-
++#endif
+ 	bl	__libc_start_main,%r2
+ 	nop
+ 	/* die horribly if it returned (it shouldn't) */
 diff --git a/sysdeps/nacl/Makefile b/sysdeps/nacl/Makefile
 index 6749a44..1748886 100644
 --- a/sysdeps/nacl/Makefile
@@ -2191,6 +2433,114 @@ index cf0ad90..224e1f3 100644
  GLIBC_2.3
   GLIBC_2.3 A
   __ctype_b_loc F
+diff --git a/sysdeps/unix/sysv/linux/hppa/syscall.c b/sysdeps/unix/sysv/linux/hppa/syscall.c
+index aff67a8..958fa47 100644
+--- a/sysdeps/unix/sysv/linux/hppa/syscall.c
++++ b/sysdeps/unix/sysv/linux/hppa/syscall.c
+@@ -43,9 +43,10 @@ syscall (long int __sysno, ...)
+   va_end (args);
+ 
+   {
++    LOAD_ARGS_6 (arg0, arg1, arg2, arg3, arg4, arg5)
+     register unsigned long int __res asm("r28");
+     PIC_REG_DEF
+-    LOAD_ARGS_6 (arg0, arg1, arg2, arg3, arg4, arg5)
++    LOAD_REGS_6
+     asm volatile (SAVE_ASM_PIC
+ 		  "	ble  0x100(%%sr2, %%r0)	\n"
+ 		  "	copy %1, %%r20		\n"
+diff --git a/sysdeps/unix/sysv/linux/hppa/sysdep.h b/sysdeps/unix/sysv/linux/hppa/sysdep.h
+index d20a04b..cb1f163 100644
+--- a/sysdeps/unix/sysv/linux/hppa/sysdep.h
++++ b/sysdeps/unix/sysv/linux/hppa/sysdep.h
+@@ -400,9 +400,10 @@ L(pre_end):					ASM_LINE_SEP	\
+ ({									\
+ 	long __sys_res;							\
+ 	{								\
++		LOAD_ARGS_##nr(args)					\
+ 		register unsigned long __res asm("r28");		\
+ 		PIC_REG_DEF						\
+-		LOAD_ARGS_##nr(args)					\
++		LOAD_REGS_##nr						\
+ 		/* FIXME: HACK save/load r19 around syscall */		\
+ 		asm volatile(						\
+ 			SAVE_ASM_PIC					\
+@@ -425,9 +426,10 @@ L(pre_end):					ASM_LINE_SEP	\
+ ({									\
+ 	long __sys_res;							\
+ 	{								\
++		LOAD_ARGS_##nr(args)					\
+ 		register unsigned long __res asm("r28");		\
+ 		PIC_REG_DEF						\
+-		LOAD_ARGS_##nr(args)					\
++		LOAD_REGS_##nr						\
+ 		/* FIXME: HACK save/load r19 around syscall */		\
+ 		asm volatile(						\
+ 			SAVE_ASM_PIC					\
+@@ -443,27 +445,44 @@ L(pre_end):					ASM_LINE_SEP	\
+ 	__sys_res;							\
+  })
+ 
+-
+-
+ #define LOAD_ARGS_0()
+-#define LOAD_ARGS_1(r26)						\
+-  register unsigned long __r26 __asm__("r26") = (unsigned long)(r26);	\
++#define LOAD_REGS_0
++#define LOAD_ARGS_1(a1)							\
++  register unsigned long __x26 = (unsigned long)(a1);			\
+   LOAD_ARGS_0()
+-#define LOAD_ARGS_2(r26,r25)						\
+-  register unsigned long __r25 __asm__("r25") = (unsigned long)(r25);	\
+-  LOAD_ARGS_1(r26)
+-#define LOAD_ARGS_3(r26,r25,r24)					\
+-  register unsigned long __r24 __asm__("r24") = (unsigned long)(r24);	\
+-  LOAD_ARGS_2(r26,r25)
+-#define LOAD_ARGS_4(r26,r25,r24,r23)					\
+-  register unsigned long __r23 __asm__("r23") = (unsigned long)(r23);	\
+-  LOAD_ARGS_3(r26,r25,r24)
+-#define LOAD_ARGS_5(r26,r25,r24,r23,r22)				\
+-  register unsigned long __r22 __asm__("r22") = (unsigned long)(r22);	\
+-  LOAD_ARGS_4(r26,r25,r24,r23)
+-#define LOAD_ARGS_6(r26,r25,r24,r23,r22,r21)				\
+-  register unsigned long __r21 __asm__("r21") = (unsigned long)(r21);	\
+-  LOAD_ARGS_5(r26,r25,r24,r23,r22)
++#define LOAD_REGS_1							\
++  register unsigned long __r26 __asm__("r26") = __x26;			\
++  LOAD_REGS_0
++#define LOAD_ARGS_2(a1,a2)						\
++  register unsigned long __x25 = (unsigned long)(a2);			\
++  LOAD_ARGS_1(a1)
++#define LOAD_REGS_2							\
++  register unsigned long __r25 __asm__("r25") = __x25;			\
++  LOAD_REGS_1
++#define LOAD_ARGS_3(a1,a2,a3)						\
++  register unsigned long __x24 = (unsigned long)(a3);			\
++  LOAD_ARGS_2(a1,a2)
++#define LOAD_REGS_3							\
++  register unsigned long __r24 __asm__("r24") = __x24;			\
++  LOAD_REGS_2
++#define LOAD_ARGS_4(a1,a2,a3,a4)					\
++  register unsigned long __x23 = (unsigned long)(a4);			\
++  LOAD_ARGS_3(a1,a2,a3)
++#define LOAD_REGS_4							\
++  register unsigned long __r23 __asm__("r23") = __x23;			\
++  LOAD_REGS_3
++#define LOAD_ARGS_5(a1,a2,a3,a4,a5)					\
++  register unsigned long __x22 = (unsigned long)(a5);			\
++  LOAD_ARGS_4(a1,a2,a3,a4)
++#define LOAD_REGS_5							\
++  register unsigned long __r22 __asm__("r22") = __x22;			\
++  LOAD_REGS_4
++#define LOAD_ARGS_6(a1,a2,a3,a4,a5,a6)					\
++  register unsigned long __x21 = (unsigned long)(a6);			\
++  LOAD_ARGS_5(a1,a2,a3,a4,a5)
++#define LOAD_REGS_6							\
++  register unsigned long __r21 __asm__("r21") = __x21;			\
++  LOAD_REGS_5
+ 
+ /* Even with zero args we use r20 for the syscall number */
+ #define ASM_ARGS_0
 diff --git a/sysdeps/unix/sysv/linux/microblaze/sysdep.h b/sysdeps/unix/sysv/linux/microblaze/sysdep.h
 index 83c0340..9d5c542 100644
 --- a/sysdeps/unix/sysv/linux/microblaze/sysdep.h
diff --git a/debian/patches/hppa/cvs-inline-syscall.diff b/debian/patches/hppa/cvs-inline-syscall.diff
deleted file mode 100644
index 7f4382b..0000000
--- a/debian/patches/hppa/cvs-inline-syscall.diff
+++ /dev/null
@@ -1,116 +0,0 @@
-2015-08-09  John David Anglin  <danglin@gcc.gnu.org>
-
-	[BZ #18480]
-	* sysdeps/unix/sysv/linux/hppa/sysdep.h (LOAD_ARGS_0, LOAD_ARGS_1,
-	LOAD_ARGS_2, LOAD_ARGS_3, LOAD_ARGS_4, LOAD_ARGS_5, LOAD_ARGS_6):
-	Define.
-	(LOAD_REGS_0, LOAD_REGS_1, LOAD_REGS_2, LOAD_REGS_3, LOAD_REGS_4,
-	LOAD_REGS_5, LOAD_REGS_6): Update.
-	(INTERNAL_SYSCALL): Update using new LOAD defines.
-	(INTERNAL_SYSCALL_NCS): Likewise.
-	* sysdeps/unix/sysv/linux/hppa/syscall.c (syscall): Likewise.
-
---- a/sysdeps/unix/sysv/linux/hppa/syscall.c
-+++ b/sysdeps/unix/sysv/linux/hppa/syscall.c
-@@ -43,9 +43,10 @@ syscall (long int __sysno, ...)
-   va_end (args);
- 
-   {
-+    LOAD_ARGS_6 (arg0, arg1, arg2, arg3, arg4, arg5)
-     register unsigned long int __res asm("r28");
-     PIC_REG_DEF
--    LOAD_ARGS_6 (arg0, arg1, arg2, arg3, arg4, arg5)
-+    LOAD_REGS_6
-     asm volatile (SAVE_ASM_PIC
- 		  "	ble  0x100(%%sr2, %%r0)	\n"
- 		  "	copy %1, %%r20		\n"
---- a/sysdeps/unix/sysv/linux/hppa/sysdep.h
-+++ b/sysdeps/unix/sysv/linux/hppa/sysdep.h
-@@ -400,9 +400,10 @@ L(pre_end):					ASM_LINE_SEP	\
- ({									\
- 	long __sys_res;							\
- 	{								\
-+		LOAD_ARGS_##nr(args)					\
- 		register unsigned long __res asm("r28");		\
- 		PIC_REG_DEF						\
--		LOAD_ARGS_##nr(args)					\
-+		LOAD_REGS_##nr						\
- 		/* FIXME: HACK save/load r19 around syscall */		\
- 		asm volatile(						\
- 			SAVE_ASM_PIC					\
-@@ -425,9 +426,10 @@ L(pre_end):					ASM_LINE_SEP	\
- ({									\
- 	long __sys_res;							\
- 	{								\
-+		LOAD_ARGS_##nr(args)					\
- 		register unsigned long __res asm("r28");		\
- 		PIC_REG_DEF						\
--		LOAD_ARGS_##nr(args)					\
-+		LOAD_REGS_##nr						\
- 		/* FIXME: HACK save/load r19 around syscall */		\
- 		asm volatile(						\
- 			SAVE_ASM_PIC					\
-@@ -443,27 +445,44 @@ L(pre_end):					ASM_LINE_SEP	\
- 	__sys_res;							\
-  })
- 
--
--
- #define LOAD_ARGS_0()
--#define LOAD_ARGS_1(r26)						\
--  register unsigned long __r26 __asm__("r26") = (unsigned long)(r26);	\
-+#define LOAD_REGS_0
-+#define LOAD_ARGS_1(a1)							\
-+  register unsigned long __x26 = (unsigned long)(a1);			\
-   LOAD_ARGS_0()
--#define LOAD_ARGS_2(r26,r25)						\
--  register unsigned long __r25 __asm__("r25") = (unsigned long)(r25);	\
--  LOAD_ARGS_1(r26)
--#define LOAD_ARGS_3(r26,r25,r24)					\
--  register unsigned long __r24 __asm__("r24") = (unsigned long)(r24);	\
--  LOAD_ARGS_2(r26,r25)
--#define LOAD_ARGS_4(r26,r25,r24,r23)					\
--  register unsigned long __r23 __asm__("r23") = (unsigned long)(r23);	\
--  LOAD_ARGS_3(r26,r25,r24)
--#define LOAD_ARGS_5(r26,r25,r24,r23,r22)				\
--  register unsigned long __r22 __asm__("r22") = (unsigned long)(r22);	\
--  LOAD_ARGS_4(r26,r25,r24,r23)
--#define LOAD_ARGS_6(r26,r25,r24,r23,r22,r21)				\
--  register unsigned long __r21 __asm__("r21") = (unsigned long)(r21);	\
--  LOAD_ARGS_5(r26,r25,r24,r23,r22)
-+#define LOAD_REGS_1							\
-+  register unsigned long __r26 __asm__("r26") = __x26;			\
-+  LOAD_REGS_0
-+#define LOAD_ARGS_2(a1,a2)						\
-+  register unsigned long __x25 = (unsigned long)(a2);			\
-+  LOAD_ARGS_1(a1)
-+#define LOAD_REGS_2							\
-+  register unsigned long __r25 __asm__("r25") = __x25;			\
-+  LOAD_REGS_1
-+#define LOAD_ARGS_3(a1,a2,a3)						\
-+  register unsigned long __x24 = (unsigned long)(a3);			\
-+  LOAD_ARGS_2(a1,a2)
-+#define LOAD_REGS_3							\
-+  register unsigned long __r24 __asm__("r24") = __x24;			\
-+  LOAD_REGS_2
-+#define LOAD_ARGS_4(a1,a2,a3,a4)					\
-+  register unsigned long __x23 = (unsigned long)(a4);			\
-+  LOAD_ARGS_3(a1,a2,a3)
-+#define LOAD_REGS_4							\
-+  register unsigned long __r23 __asm__("r23") = __x23;			\
-+  LOAD_REGS_3
-+#define LOAD_ARGS_5(a1,a2,a3,a4,a5)					\
-+  register unsigned long __x22 = (unsigned long)(a5);			\
-+  LOAD_ARGS_4(a1,a2,a3,a4)
-+#define LOAD_REGS_5							\
-+  register unsigned long __r22 __asm__("r22") = __x22;			\
-+  LOAD_REGS_4
-+#define LOAD_ARGS_6(a1,a2,a3,a4,a5,a6)					\
-+  register unsigned long __x21 = (unsigned long)(a6);			\
-+  LOAD_ARGS_5(a1,a2,a3,a4,a5)
-+#define LOAD_REGS_6							\
-+  register unsigned long __r21 __asm__("r21") = __x21;			\
-+  LOAD_REGS_5
- 
- /* Even with zero args we use r20 for the syscall number */
- #define ASM_ARGS_0
diff --git a/debian/patches/hppa/cvs-start.diff b/debian/patches/hppa/cvs-start.diff
deleted file mode 100644
index 0c88f07..0000000
--- a/debian/patches/hppa/cvs-start.diff
+++ /dev/null
@@ -1,44 +0,0 @@
-Index: glibc-2.21/sysdeps/hppa/start.S
-===================================================================
---- glibc-2.21.orig/sysdeps/hppa/start.S
-+++ glibc-2.21/sysdeps/hppa/start.S
-@@ -42,7 +42,11 @@
- 	/* Have the linker create plabel words so we get PLABEL32
- 	   relocs and not 21/14.  The use of 21/14 relocs is only
- 	   supported in the latest dynamic linker.  */
--	.section	.rodata
-+#ifdef SHARED
-+	.section	.data.rel.ro,"aw",@progbits
-+#else
-+	.section	.rodata,"a",@progbits
-+#endif
- 	.align 4
- .Lpmain:
- 	.word P%main
-@@ -52,6 +56,10 @@
- 	.word P%__libc_csu_fini
- .Lp__libc_csu_init:
- 	.word P%__libc_csu_init
-+#ifdef SHARED
-+.Lp__global:
-+	.word $global$
-+#endif
- 
- 	.text
- 	.align 4
-@@ -122,10 +130,14 @@ _start:
- 	/* void *stack_end (7th argument) */
- 	stw	%sp, -60(%sp)
- 
-+#ifdef SHARED
-+	addil	LT'.Lp__global, %r19
-+	ldw	RT'.Lp__global(%r1), %dp
-+#else
- 	/* load global */
- 	ldil	L%$global$, %dp
- 	ldo	R%$global$(%dp), %dp
--
-+#endif
- 	bl	__libc_start_main,%r2
- 	nop
- 	/* die horribly if it returned (it shouldn't) */

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-glibc/glibc.git


Reply to: