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

r1970 - in glibc-package/branches/glibc-2.5/debian: . patches patches/m68k



Author: aurel32
Date: 2007-02-10 13:42:47 +0100 (Sat, 10 Feb 2007)
New Revision: 1970

Added:
   glibc-package/branches/glibc-2.5/debian/patches/m68k/cvs-m68k-update.diff
Modified:
   glibc-package/branches/glibc-2.5/debian/changelog
   glibc-package/branches/glibc-2.5/debian/patches/series
Log:
* m68k/cvs-m68k-update.diff: new patch (bits from CVS).



Modified: glibc-package/branches/glibc-2.5/debian/changelog
===================================================================
--- glibc-package/branches/glibc-2.5/debian/changelog	2007-02-10 10:20:43 UTC (rev 1969)
+++ glibc-package/branches/glibc-2.5/debian/changelog	2007-02-10 12:42:47 UTC (rev 1970)
@@ -112,6 +112,7 @@
     (workaround the missing MSG_NOSIGNAL support).
   * kfreebsd/local-amd64-dl-machine.diff: new patch from Petr Salinger (fix
     ld.so segfault on GNU/kFreeBSD amd64).
+  * m68k/cvs-m68k-update.diff: new patch (bits from CVS).
 
   [ Denis Barbier ]
   * Remove localedata/locale-en_NZ.diff (merged upstream).

Added: glibc-package/branches/glibc-2.5/debian/patches/m68k/cvs-m68k-update.diff
===================================================================
--- glibc-package/branches/glibc-2.5/debian/patches/m68k/cvs-m68k-update.diff	2007-02-10 10:20:43 UTC (rev 1969)
+++ glibc-package/branches/glibc-2.5/debian/patches/m68k/cvs-m68k-update.diff	2007-02-10 12:42:47 UTC (rev 1970)
@@ -0,0 +1,433 @@
+diff -Nurd ports/ChangeLog.m68k ports/ChangeLog.m68k
+--- ports/ChangeLog.m68k	2006-02-28 11:12:50.000000000 +0100
++++ ports/ChangeLog.m68k	2007-02-10 13:35:42.000000000 +0100
+@@ -1,3 +1,25 @@
++2006-10-03  Richard Sandiford  <richard@codesourcery.com>
++
++	* sysdeps/m68k/dl-trampoline.S (_dl_runtime_profile): Round up the
++	frame size to longword rather than word alignment. Add missing
++	initialization of lrv_a0 and restore a0 from it after calling
++	_dl_call_pltexit.  Adjust the stack offsets of later data accordingly,
++	fixing a previously incorrect offset for the inregs parameter.
++	* sysdeps/m68k/fpu/feholdexcpt.c (feholdexcept): Add missing 
++	libm_hidden_def.
++	* sysdeps/m68k/fpu/fesetround.c (fesetround): Add missing
++	libm_hidden_def.
++	* sysdeps/unix/sysv/linux/m68k/sysdep.h: Guard against multiple
++	inclusion.
++	* sysdeps/m68k/ldsodefs.h: New file.
++	* sysdeps/m68k/tst-audit.h: New file.
++	* sysdeps/m68k/wcpcpy.c: Likewise.
++	* sysdeps/m68k/wcpcpy_chk.c: Likewise.
++        * sysdeps/unix/sysv/linux/m68k/sys/ucontext.h (fpregset): Sync field
++	order with linux. 
++	(ucontext): Sync field order with linux.
++	* sysdeps/unix/sysv/linux/m68k/bits/siginfo.h: New file.
++
+ 2006-02-28  Roland McGrath  <roland@redhat.com>
+ 
+ 	* sysdeps/m68k/preconfigure: New file.
+diff -Nurd ports/sysdeps/m68k/dl-trampoline.S ports/sysdeps/m68k/dl-trampoline.S
+--- ports/sysdeps/m68k/dl-trampoline.S	2005-01-16 03:07:28.000000000 +0100
++++ ports/sysdeps/m68k/dl-trampoline.S	2007-02-10 13:21:53.000000000 +0100
+@@ -79,14 +79,14 @@
+ 	move.l %sp, %a2
+ 	move.l %sp, %a0
+ 	lea 28(%sp), %a1
+-	| Round framesize up to even
+-	addq.l #1, %d1
+-	lsr #1, %d1
+-	sub.l %d1, %a0
++	| Round framesize up to longword alignment
++	addq.l #3, %d1
++	and.l #-3, %d1
+ 	sub.l %d1, %a0
+ 	move.l %a0, %sp
++	lsr.l #2,%d1
+ 	jra 2f
+-1:	move.w (%a1)+, (%a0)+
++1:	move.l (%a1)+, (%a0)+
+ 2:	dbra %d1,1b
+ 	/*
+ 	   %a2+24  return address
+@@ -113,16 +113,18 @@
+ 	   %sp      %a0
+ 	*/
+ 	fmove.x %fp0, -(%sp)
++	move.l %a0, -(%sp)
+ 	move.l %d1, -(%sp)
+ 	move.l %d0, -(%sp)
+ 	pea (%sp)
+-	pea 20(%sp)
+-	move.l 40(%sp), -(%sp)
+-	move.l 40(%sp), -(%sp)
++	pea 28(%sp)
++	move.l 44(%sp), -(%sp)
++	move.l 44(%sp), -(%sp)
+ 	jbsr _dl_call_pltexit
+ 	lea 16(%sp), %sp
+ 	move.l (%sp)+, %d0
+ 	move.l (%sp)+, %d1
++	move.l (%sp)+, %a0
+ 	fmove.x (%sp)+, %fp0
+ 	lea 20(%sp), %sp
+ 	rts
+diff -Nurd ports/sysdeps/m68k/fpu/feholdexcpt.c ports/sysdeps/m68k/fpu/feholdexcpt.c
+--- ports/sysdeps/m68k/fpu/feholdexcpt.c	2001-07-06 06:55:55.000000000 +0200
++++ ports/sysdeps/m68k/fpu/feholdexcpt.c	2007-02-10 13:15:01.000000000 +0100
+@@ -37,3 +37,4 @@
+ 
+   return 0;
+ }
++libm_hidden_def (feholdexcept);
+diff -Nurd ports/sysdeps/m68k/fpu/fesetround.c ports/sysdeps/m68k/fpu/fesetround.c
+--- ports/sysdeps/m68k/fpu/fesetround.c	2001-07-06 06:55:55.000000000 +0200
++++ ports/sysdeps/m68k/fpu/fesetround.c	2007-02-10 13:13:37.000000000 +0100
+@@ -36,3 +36,4 @@
+ 
+   return 0;
+ }
++libm_hidden_def (fesetround);
+diff -Nurd ports/sysdeps/m68k/ldsodefs.h ports/sysdeps/m68k/ldsodefs.h
+--- ports/sysdeps/m68k/ldsodefs.h	1970-01-01 01:00:00.000000000 +0100
++++ ports/sysdeps/m68k/ldsodefs.h	2007-02-10 13:26:21.000000000 +0100
+@@ -0,0 +1,43 @@
++/* Run-time dynamic linker data structures for loaded ELF shared objects.
++   Copyright (C) 2006 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, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#ifndef __LDSODEFS_H
++
++#include <elf.h>
++
++struct La_m68k_regs;
++struct La_m68k_retval;
++
++#define ARCH_PLTENTER_MEMBERS						\
++    Elf32_Addr (*m68k_gnu_pltenter) (Elf32_Sym *, unsigned int,		\
++				     uintptr_t *, uintptr_t *,		\
++				     const struct La_m68k_regs *,	\
++				     unsigned int *, const char *name,  \
++				     long int *framesizep);
++
++#define ARCH_PLTEXIT_MEMBERS						\
++    unsigned int (*m68k_gnu_pltexit) (Elf32_Sym *, unsigned int,	\
++				      uintptr_t *, uintptr_t *,		\
++				      const struct La_m68k_regs *,	\
++				      struct La_m68k_retval *,		\
++				      const char *);
++
++#include_next <ldsodefs.h>
++
++#endif
+diff -Nurd ports/sysdeps/m68k/setjmp.c ports/sysdeps/m68k/setjmp.c
+--- ports/sysdeps/m68k/setjmp.c	2003-09-15 10:43:12.000000000 +0200
++++ ports/sysdeps/m68k/setjmp.c	2007-02-10 13:16:22.000000000 +0100
+@@ -54,10 +54,14 @@
+   asm volatile ("fmovem%.x %/fp0-%/fp7, %0"
+ 		: : "m" (env[0].__jmpbuf[0].__fpregs[0]));
+ #endif
+-
++#if defined NOT_IN_libc && defined IS_IN_rtld
++  /* In ld.so we never save the signal mask.  */
++  return 0;
++#else
+   /* Save the signal mask if requested.  */
+   return __sigjmp_save (env, savemask);
++#endif
+ }
+ #if !defined BSD_SETJMP && !defined BSD__SETJMP
+-hidden_def (__sigsetjmp)
++libc_hidden_def (__sigsetjmp)
+ #endif
+diff -Nurd ports/sysdeps/m68k/tst-audit.h ports/sysdeps/m68k/tst-audit.h
+--- ports/sysdeps/m68k/tst-audit.h	1970-01-01 01:00:00.000000000 +0100
++++ ports/sysdeps/m68k/tst-audit.h	2007-02-10 13:26:18.000000000 +0100
+@@ -0,0 +1,25 @@
++/* Definitions for testing PLT entry/exit auditing.  m68k version.
++   Copyright (C) 2006 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, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#define pltenter la_m68k_gnu_pltenter
++#define pltexit la_m68k_gnu_pltexit
++#define La_regs La_m68k_regs
++#define La_retval La_m68k_retval
++#define int_retval lrv_d0
+diff -Nurd ports/sysdeps/m68k/wcpcpy.c ports/sysdeps/m68k/wcpcpy.c
+--- ports/sysdeps/m68k/wcpcpy.c	1970-01-01 01:00:00.000000000 +0100
++++ ports/sysdeps/m68k/wcpcpy.c	2007-02-10 13:26:35.000000000 +0100
+@@ -0,0 +1,37 @@
++/* Copyright (C) 1996, 1997, 2006 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
++
++   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, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++/* The generic version of this file assumes that __alignof__(wchar_t) ==
++   sizeof (wchar_t).  We therefore use this port-specific implementation
++   instead.  */
++#include <wchar.h>
++
++/* Copy SRC to DEST, returning the address of the terminating L'\0' in
++   DEST.  */
++wchar_t *
++__wcpcpy (wchar_t *dest, const wchar_t *src)
++{
++  do
++    ;
++  while ((*dest++ = *src++));
++
++  return dest - 1;
++}
++
++weak_alias (__wcpcpy, wcpcpy)
+diff -Nurd ports/sysdeps/m68k/wcpcpy_chk.c ports/sysdeps/m68k/wcpcpy_chk.c
+--- ports/sysdeps/m68k/wcpcpy_chk.c	1970-01-01 01:00:00.000000000 +0100
++++ ports/sysdeps/m68k/wcpcpy_chk.c	2007-02-10 13:26:35.000000000 +0100
+@@ -0,0 +1,36 @@
++/* Copyright (C) 1996, 1997, 2005, 2006 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
++
++   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, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++/* The generic version of this file assumes that __alignof__(wchar_t) ==
++   sizeof (wchar_t).  We therefore use this port-specific implementation
++   instead.  */
++#include <wchar.h>
++
++/* Copy SRC to DEST, returning the address of the terminating L'\0' in
++   DEST.  Check for overflows.  */
++wchar_t *
++__wcpcpy_chk (wchar_t *dest, const wchar_t *src, size_t destlen)
++{
++  do
++    if (destlen-- == 0)
++      __chk_fail ();
++  while ((*dest++ = *src++));
++
++  return dest - 1;
++}
+diff -Nurd ports/sysdeps/unix/sysv/linux/m68k/bits/ucontext.h ports/sysdeps/unix/sysv/linux/m68k/bits/ucontext.h
+--- ports/sysdeps/unix/sysv/linux/m68k/bits/ucontext.h	1970-01-01 01:00:00.000000000 +0100
++++ ports/sysdeps/unix/sysv/linux/m68k/bits/ucontext.h	2007-02-10 13:32:41.000000000 +0100
+@@ -0,0 +1,113 @@
++/* Copyright (C) 1997, 1999, 2001 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, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++/* System V/m68k ABI compliant context switching support.  */
++
++#ifndef _SYS_UCONTEXT_H
++#define _SYS_UCONTEXT_H	1
++
++#include <features.h>
++#include <signal.h>
++
++/* Type for general register.  */
++typedef int greg_t;
++
++/* Number of general registers.  */
++#define NGREG	18
++
++/* Container for all general registers.  */
++typedef greg_t gregset_t[NGREG];
++
++/* Number of each register is the `gregset_t' array.  */
++enum
++{
++  R_D0 = 0,
++#define R_D0	R_D0
++  R_D1 = 1,
++#define R_D1	R_D1
++  R_D2 = 2,
++#define R_D2	R_D2
++  R_D3 = 3,
++#define R_D3	R_D3
++  R_D4 = 4,
++#define R_D4	R_D4
++  R_D5 = 5,
++#define R_D5	R_D5
++  R_D6 = 6,
++#define R_D6	R_D6
++  R_D7 = 7,
++#define R_D7	R_D7
++  R_A0 = 8,
++#define R_A0	R_A0
++  R_A1 = 9,
++#define R_A1	R_A1
++  R_A2 = 10,
++#define R_A2	R_A2
++  R_A3 = 11,
++#define R_A3	R_A3
++  R_A4 = 12,
++#define R_A4	R_A4
++  R_A5 = 13,
++#define R_A5	R_A5
++  R_A6 = 14,
++#define R_A6	R_A6
++  R_A7 = 15,
++#define R_A7	R_A7
++  R_SP = 15,
++#define R_SP	R_SP
++  R_PC = 16,
++#define R_PC	R_PC
++  R_PS = 17
++#define R_PS	R_PS
++};
++
++/* Structure to describe FPU registers.  */
++typedef struct fpregset
++{
++  int f_pcr;
++  int f_psr;
++  int f_fpiaddr;
++#ifdef __mcoldfire__
++  int f_fpregs[8][2];
++#else
++  int f_fpregs[8][3];
++#endif
++} fpregset_t;
++
++/* Context to describe whole processor state.  */
++typedef struct
++{
++  int version;
++  gregset_t gregs;
++  fpregset_t fpregs;
++} mcontext_t;
++
++#define MCONTEXT_VERSION 2
++
++/* Userlevel context.  */
++typedef struct ucontext
++{
++  unsigned long uc_flags;
++  struct ucontext *uc_link;
++  stack_t uc_stack;
++  mcontext_t uc_mcontext;
++  unsigned long uc_filler[80];
++  __sigset_t uc_sigmask;
++} ucontext_t;
++
++#endif /* sys/ucontext.h */
+diff -Nurd ports/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h ports/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
+--- ports/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h	2001-07-15 17:30:50.000000000 +0200
++++ ports/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h	2007-02-10 13:29:59.000000000 +0100
+@@ -79,10 +79,10 @@
+ /* Structure to describe FPU registers.  */
+ typedef struct fpregset
+ {
+-  int f_fpregs[8][3];
+   int f_pcr;
+   int f_psr;
+   int f_fpiaddr;
++  int f_fpregs[8][3];
+ } fpregset_t;
+ 
+ /* Context to describe whole processor state.  */
+@@ -98,12 +98,12 @@
+ /* Userlevel context.  */
+ typedef struct ucontext
+ {
+-  unsigned long int uc_flags;
++  unsigned long uc_flags;
+   struct ucontext *uc_link;
+-  __sigset_t uc_sigmask;
+   stack_t uc_stack;
+   mcontext_t uc_mcontext;
+-  long int uc_filler[174];
++  unsigned long uc_filler[80];
++  __sigset_t uc_sigmask;
+ } ucontext_t;
+ 
+ #endif /* sys/ucontext.h */
+diff -Nurd ports/sysdeps/unix/sysv/linux/m68k/sysdep.h ports/sysdeps/unix/sysv/linux/m68k/sysdep.h
+--- ports/sysdeps/unix/sysv/linux/m68k/sysdep.h	2004-10-04 22:59:37.000000000 +0200
++++ ports/sysdeps/unix/sysv/linux/m68k/sysdep.h	2007-02-10 13:07:18.000000000 +0100
+@@ -18,6 +18,9 @@
+    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA.  */
+ 
++#ifndef _LINUX_M68K_SYSDEP_H
++#define _LINUX_M68K_SYSDEP_H 1
++
+ #include <sysdeps/unix/sysdep.h>
+ #include <sysdeps/m68k/sysdep.h>
+ 
+@@ -293,3 +296,4 @@
+ #define ASM_ARGS_6	ASM_ARGS_5, "a" (_a0)
+ 
+ #endif /* not __ASSEMBLER__ */
++#endif

Modified: glibc-package/branches/glibc-2.5/debian/patches/series
===================================================================
--- glibc-package/branches/glibc-2.5/debian/patches/series	2007-02-10 10:20:43 UTC (rev 1969)
+++ glibc-package/branches/glibc-2.5/debian/patches/series	2007-02-10 12:42:47 UTC (rev 1970)
@@ -69,6 +69,7 @@
 i386/local-cmov.diff -p0
 i386/submitted-i686-timing.diff -p1
 
+m68k/cvs-m68k-update.diff -p0
 m68k/local-compat.diff -p0
 m68k/local-dwarf2-buildfix.diff -p0
 m68k/local-fpic.diff -p0



Reply to: