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

r5225 - in glibc-package/trunk/debian: . patches patches/hppa



Author: aurel32
Date: 2012-04-29 13:15:33 +0000 (Sun, 29 Apr 2012)
New Revision: 5225

Added:
   glibc-package/trunk/debian/patches/hppa/cvs-cloexec-nonblock.diff
   glibc-package/trunk/debian/patches/hppa/cvs-prlimit64.diff
   glibc-package/trunk/debian/patches/hppa/cvs-stackinfo.diff
   glibc-package/trunk/debian/patches/hppa/cvs-sys_procfs_h.diff
   glibc-package/trunk/debian/patches/hppa/cvs-test-tls-support.diff
   glibc-package/trunk/debian/patches/hppa/local-EAGAIN.diff
Removed:
   glibc-package/trunk/debian/patches/hppa/submitted-stackinfo.diff
Modified:
   glibc-package/trunk/debian/changelog
   glibc-package/trunk/debian/patches/hppa/local-dlfptr.diff
   glibc-package/trunk/debian/patches/hppa/local-lowlevellock.diff
   glibc-package/trunk/debian/patches/hppa/local-stack-grows-up.diff
   glibc-package/trunk/debian/patches/hppa/submitted-nptl-carlos.diff
   glibc-package/trunk/debian/patches/series
Log:
  * patches/hppa/*: update hppa patchset from a mix of CVS, submitted and
    unknown sources patches.  Closes: #666774.



Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog	2012-04-27 14:17:34 UTC (rev 5224)
+++ glibc-package/trunk/debian/changelog	2012-04-29 13:15:33 UTC (rev 5225)
@@ -63,6 +63,8 @@
   * patches/kfreebsd/local-sys_queue_h.diff: fix STAILQ_FOREACH_SAFE.  
     Closes: #669960.
   * local/manpages/locale.1: fix warnings from "groff".  Closes: #661041.
+  * patches/hppa/*: update hppa patchset from a mix of CVS, submitted and
+    unknown sources patches.  Closes: #666774.
 
  -- Aurelien Jarno <aurel32@debian.org>  Thu, 26 Apr 2012 16:37:27 +0200
 

Added: glibc-package/trunk/debian/patches/hppa/cvs-cloexec-nonblock.diff
===================================================================
--- glibc-package/trunk/debian/patches/hppa/cvs-cloexec-nonblock.diff	                        (rev 0)
+++ glibc-package/trunk/debian/patches/hppa/cvs-cloexec-nonblock.diff	2012-04-29 13:15:33 UTC (rev 5225)
@@ -0,0 +1,470 @@
+2012-01-08  Carlos O'Donell  <carlos@systemhalted.org>
+ 
+	* ports/sysdeps/unix/sysv/linux/hppa/sys/epoll.h (EPOLLONESHOT)
+	(EPOLLET): Initialize with unsiged values.
+
+2011-10-17  Guy Martin <gmsoft@tuxicoman.be>
+
+	* ports/sysdeps/unix/sysv/linux/hppa/sys/epoll.h:
+	Fix EPOLL_CLOEXEC and EPOLL_NONBLOCK to match kernel definition.
+	* ports/sysdeps/unix/sysv/linux/hppa/sys/eventfd.h:
+	Fix EFD_CLOEXEC and EFD_NONBLOCK to match kernel definition.
+	* ports/sysdeps/unix/sysv/linux/hppa/sys/inotify.h:
+	Fix IN_CLOEXEC and IN_NONBLOCK to match kernel definition.
+	* ports/sysdeps/unix/sysv/linux/hppa/sys/signalfd.h:
+	Fix SFD_CLOEXEC and SFD_NONBLOCK to match kernel definition.
+	* ports/sysdeps/unix/sysv/linux/hppa/sys/timerfd.h:
+	Fix TFD_CLOEXEC and TFD_NONBLOCK to match kernel definition.
+
+---
+ ports/sysdeps/unix/sysv/linux/hppa/sys/epoll.h    |  144 ++++++++++++++++++++++
+ ports/sysdeps/unix/sysv/linux/hppa/sys/eventfd.h  |   54 ++++++++
+ ports/sysdeps/unix/sysv/linux/hppa/sys/inotify.h  |  105 ++++++++++++++++
+ ports/sysdeps/unix/sysv/linux/hppa/sys/signalfd.h |   66 ++++++++++
+ ports/sysdeps/unix/sysv/linux/hppa/sys/timerfd.h  |   60 +++++++++
+ 5 files changed, 429 insertions(+)
+
+--- /dev/null
++++ b/ports/sysdeps/unix/sysv/linux/hppa/sys/epoll.h
+@@ -0,0 +1,144 @@
++/* Copyright (C) 2002-2006, 2007, 2008, 2009 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	_SYS_EPOLL_H
++#define	_SYS_EPOLL_H	1
++
++#include <stdint.h>
++#include <sys/types.h>
++
++/* Get __sigset_t.  */
++#include <bits/sigset.h>
++
++#ifndef __sigset_t_defined
++# define __sigset_t_defined
++typedef __sigset_t sigset_t;
++#endif
++
++
++/* Flags to be passed to epoll_create1.  */
++enum
++  {
++    EPOLL_CLOEXEC = 010000000,
++#define EPOLL_CLOEXEC EPOLL_CLOEXEC
++    EPOLL_NONBLOCK = 00200004 /* HPUX has separate NDELAY & NONBLOCK */
++#define EPOLL_NONBLOCK EPOLL_NONBLOCK
++  };
++
++
++enum EPOLL_EVENTS
++  {
++    EPOLLIN = 0x001,
++#define EPOLLIN EPOLLIN
++    EPOLLPRI = 0x002,
++#define EPOLLPRI EPOLLPRI
++    EPOLLOUT = 0x004,
++#define EPOLLOUT EPOLLOUT
++    EPOLLRDNORM = 0x040,
++#define EPOLLRDNORM EPOLLRDNORM
++    EPOLLRDBAND = 0x080,
++#define EPOLLRDBAND EPOLLRDBAND
++    EPOLLWRNORM = 0x100,
++#define EPOLLWRNORM EPOLLWRNORM
++    EPOLLWRBAND = 0x200,
++#define EPOLLWRBAND EPOLLWRBAND
++    EPOLLMSG = 0x400,
++#define EPOLLMSG EPOLLMSG
++    EPOLLERR = 0x008,
++#define EPOLLERR EPOLLERR
++    EPOLLHUP = 0x010,
++#define EPOLLHUP EPOLLHUP
++    EPOLLRDHUP = 0x2000,
++#define EPOLLRDHUP EPOLLRDHUP
++    EPOLLONESHOT = 1u << 30,
++#define EPOLLONESHOT EPOLLONESHOT
++    EPOLLET = 1u << 31
++#define EPOLLET EPOLLET
++  };
++
++
++/* Valid opcodes ( "op" parameter ) to issue to epoll_ctl().  */
++#define EPOLL_CTL_ADD 1	/* Add a file descriptor to the interface.  */
++#define EPOLL_CTL_DEL 2	/* Remove a file descriptor from the interface.  */
++#define EPOLL_CTL_MOD 3	/* Change file descriptor epoll_event structure.  */
++
++
++typedef union epoll_data
++{
++  void *ptr;
++  int fd;
++  uint32_t u32;
++  uint64_t u64;
++} epoll_data_t;
++
++struct epoll_event
++{
++  uint32_t events;	/* Epoll events */
++  epoll_data_t data;	/* User data variable */
++};
++
++
++__BEGIN_DECLS
++
++/* Creates an epoll instance.  Returns an fd for the new instance.
++   The "size" parameter is a hint specifying the number of file
++   descriptors to be associated with the new instance.  The fd
++   returned by epoll_create() should be closed with close().  */
++extern int epoll_create (int __size) __THROW;
++
++/* Same as epoll_create but with an FLAGS parameter.  The unused SIZE
++   parameter has been dropped.  */
++extern int epoll_create1 (int __flags) __THROW;
++
++
++/* Manipulate an epoll instance "epfd". Returns 0 in case of success,
++   -1 in case of error ( the "errno" variable will contain the
++   specific error code ) The "op" parameter is one of the EPOLL_CTL_*
++   constants defined above. The "fd" parameter is the target of the
++   operation. The "event" parameter describes which events the caller
++   is interested in and any associated user data.  */
++extern int epoll_ctl (int __epfd, int __op, int __fd,
++		      struct epoll_event *__event) __THROW;
++
++
++/* Wait for events on an epoll instance "epfd". Returns the number of
++   triggered events returned in "events" buffer. Or -1 in case of
++   error with the "errno" variable set to the specific error code. The
++   "events" parameter is a buffer that will contain triggered
++   events. The "maxevents" is the maximum number of events to be
++   returned ( usually size of "events" ). The "timeout" parameter
++   specifies the maximum wait time in milliseconds (-1 == infinite).
++
++   This function is a cancellation point and therefore not marked with
++   __THROW.  */
++extern int epoll_wait (int __epfd, struct epoll_event *__events,
++		       int __maxevents, int __timeout);
++
++
++/* Same as epoll_wait, but the thread's signal mask is temporarily
++   and atomically replaced with the one provided as parameter.
++
++   This function is a cancellation point and therefore not marked with
++   __THROW.  */
++extern int epoll_pwait (int __epfd, struct epoll_event *__events,
++			int __maxevents, int __timeout,
++			__const __sigset_t *__ss);
++
++__END_DECLS
++
++#endif /* sys/epoll.h */
+--- /dev/null
++++ b/ports/sysdeps/unix/sysv/linux/hppa/sys/eventfd.h
+@@ -0,0 +1,54 @@
++/* Copyright (C) 2007, 2008, 2009 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	_SYS_EVENTFD_H
++#define	_SYS_EVENTFD_H	1
++
++#include <stdint.h>
++
++
++/* Type for event counter.  */
++typedef uint64_t eventfd_t;
++
++/* Flags for signalfd.  */
++enum
++  {
++    EFD_SEMAPHORE = 1,
++#define EFD_SEMAPHORE EFD_SEMAPHORE
++    EFD_CLOEXEC = 010000000,
++#define EFD_CLOEXEC EFD_CLOEXEC
++    EFD_NONBLOCK = 00200004 /* HPUX has separate NDELAY & NONBLOCK */
++#define EFD_NONBLOCK EFD_NONBLOCK
++  };
++
++
++__BEGIN_DECLS
++
++/* Return file descriptor for generic event channel.  Set initial
++   value to COUNT.  */
++extern int eventfd (int __count, int __flags) __THROW;
++
++/* Read event counter and possibly wait for events.  */
++extern int eventfd_read (int __fd, eventfd_t *__value);
++
++/* Increment event counter.  */
++extern int eventfd_write (int __fd, eventfd_t __value);
++
++__END_DECLS
++
++#endif /* sys/eventfd.h */
+--- /dev/null
++++ b/ports/sysdeps/unix/sysv/linux/hppa/sys/inotify.h
+@@ -0,0 +1,105 @@
++/* Copyright (C) 2005, 2006, 2008, 2009 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	_SYS_INOTIFY_H
++#define	_SYS_INOTIFY_H	1
++
++#include <stdint.h>
++
++
++/* Flags for the parameter of inotify_init1.  */
++enum
++  {
++    IN_CLOEXEC = 010000000,
++#define IN_CLOEXEC IN_CLOEXEC
++    IN_NONBLOCK = 000200004 /* HPUX has separate NDELAY & NONBLOCK */
++#define IN_NONBLOCK IN_NONBLOCK
++  };
++
++
++/* Structure describing an inotify event.  */
++struct inotify_event
++{
++  int wd;		/* Watch descriptor.  */
++  uint32_t mask;	/* Watch mask.  */
++  uint32_t cookie;	/* Cookie to synchronize two events.  */
++  uint32_t len;		/* Length (including NULs) of name.  */
++  char name __flexarr;	/* Name.  */
++};
++
++
++/* Supported events suitable for MASK parameter of INOTIFY_ADD_WATCH.  */
++#define IN_ACCESS	 0x00000001	/* File was accessed.  */
++#define IN_MODIFY	 0x00000002	/* File was modified.  */
++#define IN_ATTRIB	 0x00000004	/* Metadata changed.  */
++#define IN_CLOSE_WRITE	 0x00000008	/* Writtable file was closed.  */
++#define IN_CLOSE_NOWRITE 0x00000010	/* Unwrittable file closed.  */
++#define IN_CLOSE	 (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) /* Close.  */
++#define IN_OPEN		 0x00000020	/* File was opened.  */
++#define IN_MOVED_FROM	 0x00000040	/* File was moved from X.  */
++#define IN_MOVED_TO      0x00000080	/* File was moved to Y.  */
++#define IN_MOVE		 (IN_MOVED_FROM | IN_MOVED_TO) /* Moves.  */
++#define IN_CREATE	 0x00000100	/* Subfile was created.  */
++#define IN_DELETE	 0x00000200	/* Subfile was deleted.  */
++#define IN_DELETE_SELF	 0x00000400	/* Self was deleted.  */
++#define IN_MOVE_SELF	 0x00000800	/* Self was moved.  */
++
++/* Events sent by the kernel.  */
++#define IN_UNMOUNT	 0x00002000	/* Backing fs was unmounted.  */
++#define IN_Q_OVERFLOW	 0x00004000	/* Event queued overflowed.  */
++#define IN_IGNORED	 0x00008000	/* File was ignored.  */
++
++/* Helper events.  */
++#define IN_CLOSE	 (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)	/* Close.  */
++#define IN_MOVE		 (IN_MOVED_FROM | IN_MOVED_TO)		/* Moves.  */
++
++/* Special flags.  */
++#define IN_ONLYDIR	 0x01000000	/* Only watch the path if it is a
++					   directory.  */
++#define IN_DONT_FOLLOW	 0x02000000	/* Do not follow a sym link.  */
++#define IN_MASK_ADD	 0x20000000	/* Add to the mask of an already
++					   existing watch.  */
++#define IN_ISDIR	 0x40000000	/* Event occurred against dir.  */
++#define IN_ONESHOT	 0x80000000	/* Only send event once.  */
++
++/* All events which a program can wait on.  */
++#define IN_ALL_EVENTS	 (IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE  \
++			  | IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM	      \
++			  | IN_MOVED_TO | IN_CREATE | IN_DELETE		      \
++			  | IN_DELETE_SELF | IN_MOVE_SELF)
++
++
++__BEGIN_DECLS
++
++/* Create and initialize inotify instance.  */
++extern int inotify_init (void) __THROW;
++
++/* Create and initialize inotify instance.  */
++extern int inotify_init1 (int __flags) __THROW;
++
++/* Add watch of object NAME to inotify instance FD.  Notify about
++   events specified by MASK.  */
++extern int inotify_add_watch (int __fd, const char *__name, uint32_t __mask)
++  __THROW;
++
++/* Remove the watch specified by WD from the inotify instance FD.  */
++extern int inotify_rm_watch (int __fd, int __wd) __THROW;
++
++__END_DECLS
++
++#endif /* sys/inotify.h */
+--- /dev/null
++++ b/ports/sysdeps/unix/sysv/linux/hppa/sys/signalfd.h
+@@ -0,0 +1,66 @@
++/* Copyright (C) 2007, 2008 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	_SYS_SIGNALFD_H
++#define	_SYS_SIGNALFD_H	1
++
++#define __need_sigset_t
++#include <signal.h>
++#include <stdint.h>
++
++
++struct signalfd_siginfo
++{
++  uint32_t ssi_signo;
++  int32_t ssi_errno;
++  int32_t ssi_code;
++  uint32_t ssi_pid;
++  uint32_t ssi_uid;
++  int32_t ssi_fd;
++  uint32_t ssi_tid;
++  uint32_t ssi_band;
++  uint32_t ssi_overrun;
++  uint32_t ssi_trapno;
++  int32_t ssi_status;
++  int32_t ssi_int;
++  uint64_t ssi_ptr;
++  uint64_t ssi_utime;
++  uint64_t ssi_stime;
++  uint64_t ssi_addr;
++  uint8_t __pad[48];
++};
++
++/* Flags for signalfd.  */
++enum
++  {
++    SFD_CLOEXEC = 010000000,
++#define SFD_CLOEXEC SFD_CLOEXEC
++    SFD_NONBLOCK = 00200004 /* HPUX has separate NDELAY & NONBLOCK */
++#define SFD_NONBLOCK SFD_NONBLOCK
++  };
++
++__BEGIN_DECLS
++
++/* Request notification for delivery of signals in MASK to be
++   performed using descriptor FD.*/
++extern int signalfd (int __fd, const sigset_t *__mask, int __flags)
++  __THROW __nonnull ((2));
++
++__END_DECLS
++
++#endif /* sys/signalfd.h */
+--- /dev/null
++++ b/ports/sysdeps/unix/sysv/linux/hppa/sys/timerfd.h
+@@ -0,0 +1,60 @@
++/* Copyright (C) 2008 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	_SYS_TIMERFD_H
++#define	_SYS_TIMERFD_H	1
++
++#include <time.h>
++
++
++/* Bits to be set in the FLAGS parameter of `timerfd_create'.  */
++enum
++  {
++    TFD_CLOEXEC = 010000000,
++#define TFD_CLOEXEC TFD_CLOEXEC
++    TFD_NONBLOCK = 000200004 /* HPUX has separate NDELAY & NONBLOCK */
++#define TFD_NONBLOCK TFD_NONBLOCK
++  };
++
++
++/* Bits to be set in the FLAGS parameter of `timerfd_settime'.  */
++enum
++  {
++    TFD_TIMER_ABSTIME = 1 << 0
++#define TFD_TIMER_ABSTIME TFD_TIMER_ABSTIME
++  };
++
++
++__BEGIN_DECLS
++
++/* Return file descriptor for new interval timer source.  */
++extern int timerfd_create (clockid_t __clock_id, int __flags) __THROW;
++
++/* Set next expiration time of interval timer source UFD to UTMR.  If
++   FLAGS has the TFD_TIMER_ABSTIME flag set the timeout value is
++   absolute.  Optionally return the old expiration time in OTMR.  */
++extern int timerfd_settime (int __ufd, int __flags,
++			    __const struct itimerspec *__utmr,
++			    struct itimerspec *__otmr) __THROW;
++
++/* Return the next expiration time of UFD.  */
++extern int timerfd_gettime (int __ufd, struct itimerspec *__otmr) __THROW;
++
++__END_DECLS
++
++#endif /* sys/timerfd.h */

Added: glibc-package/trunk/debian/patches/hppa/cvs-prlimit64.diff
===================================================================
--- glibc-package/trunk/debian/patches/hppa/cvs-prlimit64.diff	                        (rev 0)
+++ glibc-package/trunk/debian/patches/hppa/cvs-prlimit64.diff	2012-04-29 13:15:33 UTC (rev 5225)
@@ -0,0 +1,16 @@
+2012-03-31  Carlos O'Donell  <carlos@systemhalted.org>
+
+	* ports/sysdeps/unix/sysv/linux/hppa/syscalls.list: Add prlimit64
+	syscall.
+
+---
+ ports/sysdeps/unix/sysv/linux/hppa/syscalls.list |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list
++++ b/ports/sysdeps/unix/sysv/linux/hppa/syscalls.list
+@@ -35,3 +35,4 @@
+ 
+ setrlimit	-	setrlimit	i:ip	__setrlimit	setrlimit	
+ getrlimit	-	getrlimit	i:ip	__getrlimit	getrlimit	
++prlimit64	EXTRA	prlimit64	i:iipp	prlimit64

Added: glibc-package/trunk/debian/patches/hppa/cvs-stackinfo.diff
===================================================================
--- glibc-package/trunk/debian/patches/hppa/cvs-stackinfo.diff	                        (rev 0)
+++ glibc-package/trunk/debian/patches/hppa/cvs-stackinfo.diff	2012-04-29 13:15:33 UTC (rev 5225)
@@ -0,0 +1,24 @@
+2011-10-20  Carlos O'Donell  <carlos@systemhalted.org>
+ 
+	* ports/sysdeps/hppa/stackinfo.h: Include elf.h and define 
+	DEFAULT_STACK_PERMS.
+ 
+---
+ ports/sysdeps/hppa/stackinfo.h |    6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/ports/sysdeps/hppa/stackinfo.h
++++ b/ports/sysdeps/hppa/stackinfo.h
+@@ -22,6 +22,12 @@
+ #ifndef _STACKINFO_H
+ #define _STACKINFO_H	1
+ 
++#include <elf.h>
++
++/* Default to an executable stack.  PF_X can be overridden if PT_GNU_STACK is
++ * present, but it is presumed absent.  */
++#define DEFAULT_STACK_PERMS (PF_R|PF_W|PF_X)
++
+ /* On PA the stack grows up.  */
+ #define _STACK_GROWS_UP	1
+ 

Added: glibc-package/trunk/debian/patches/hppa/cvs-sys_procfs_h.diff
===================================================================
--- glibc-package/trunk/debian/patches/hppa/cvs-sys_procfs_h.diff	                        (rev 0)
+++ glibc-package/trunk/debian/patches/hppa/cvs-sys_procfs_h.diff	2012-04-29 13:15:33 UTC (rev 5225)
@@ -0,0 +1,22 @@
+2011-10-21  Carlos O'Donell  <carlos@systemhalted.org>
+
+	* ports/sysdeps/unix/sysv/linux/hppa/sys/procfs.h: Do 
+	not include signal.h and sys/ucontext.h. 
+
+---
+ ports/sysdeps/unix/sysv/linux/hppa/sys/procfs.h |    2 --
+ 1 file changed, 2 deletions(-)
+
+--- a/ports/sysdeps/unix/sysv/linux/hppa/sys/procfs.h
++++ b/ports/sysdeps/unix/sysv/linux/hppa/sys/procfs.h
+@@ -29,10 +29,8 @@
+    GDB unless you know what you are doing.  */
+ 
+ #include <features.h>
+-#include <signal.h>
+ #include <sys/time.h>
+ #include <sys/types.h>
+-#include <sys/ucontext.h>
+ #include <sys/user.h>
+ 
+ __BEGIN_DECLS

Added: glibc-package/trunk/debian/patches/hppa/cvs-test-tls-support.diff
===================================================================
--- glibc-package/trunk/debian/patches/hppa/cvs-test-tls-support.diff	                        (rev 0)
+++ glibc-package/trunk/debian/patches/hppa/cvs-test-tls-support.diff	2012-04-29 13:15:33 UTC (rev 5225)
@@ -0,0 +1,545 @@
+2011-10-20  Carlos O'Donell  <carlos@systemhalted.org>
+ 
+	* ports/sysdeps/hppa/elf/configure.in: Always test for TLS support
+	and error out if missing.
+	* ports/sysdeps/hppa/elf/configure: Regenerate.
+	* ports/sysdeps/hppa/configure: Regenerate.
+
+
+---
+ ports/sysdeps/hppa/configure                            |   94 ++++++++++++++-
+ ports/sysdeps/hppa/dl-tls.h                             |    3 
+ ports/sysdeps/hppa/elf/configure                        |   98 ++++++++++++++--
+ ports/sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h |   82 +++++++++++--
+ ports/sysdeps/unix/sysv/linux/hppa/sysdep.h             |   67 +++++-----
+ 5 files changed, 283 insertions(+), 61 deletions(-)
+
+--- a/ports/sysdeps/hppa/configure
++++ b/ports/sysdeps/hppa/configure
+@@ -1,19 +1,101 @@
++
++# as_fn_set_status STATUS
++# -----------------------
++# Set $? to STATUS, without forking.
++as_fn_set_status ()
++{
++  return $1
++} # as_fn_set_status
++
++# as_fn_exit STATUS
++# -----------------
++# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
++as_fn_exit ()
++{
++  set +e
++  as_fn_set_status $1
++  exit $1
++} # as_fn_exit
++if expr a : '\(a\)' >/dev/null 2>&1 &&
++   test "X`expr 00001 : '.*\(...\)'`" = X001; then
++  as_expr=expr
++else
++  as_expr=false
++fi
++
++if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
++  as_basename=basename
++else
++  as_basename=false
++fi
++
++as_me=`$as_basename -- "$0" ||
++$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
++        X"$0" : 'X\(//\)$' \| \
++        X"$0" : 'X\(/\)' \| . 2>/dev/null ||
++$as_echo X/"$0" |
++    sed '/^.*\/\([^/][^/]*\)\/*$/{
++           s//\1/
++           q
++         }
++         /^X\/\(\/\/\)$/{
++           s//\1/
++           q
++         }
++         /^X\/\(\/\).*/{
++           s//\1/
++           q
++         }
++         s/.*/./; q'`
++
++
++  as_lineno_1=$LINENO as_lineno_1a=$LINENO
++  as_lineno_2=$LINENO as_lineno_2a=$LINENO
++  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
++  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
++  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
++  sed -n '
++    p
++    /[$]LINENO/=
++  ' <$as_myself |
++    sed '
++      s/[$]LINENO.*/&-/
++      t lineno
++      b
++      :lineno
++      N
++      :loop
++      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
++      t loop
++      s/-\n.*//
++    ' >$as_me.lineno &&
++  chmod +x "$as_me.lineno" ||
++    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
++
++  # Don't try to exec as it changes $[0], causing all sort of problems
++  # (the dirname of $[0] is not the place where we might find the
++  # original and so on.  Autoconf is especially sensitive to this).
++  . "./$as_me.lineno"
++  # Exit status is that of the last command.
++  exit
++}
++
+ # This file is generated from configure.in by Autoconf.  DO NOT EDIT!
+ 
+-{ $as_echo "$as_me:$LINENO: checking for assembler line separator" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for assembler line separator" >&5
+ $as_echo_n "checking for assembler line separator... " >&6; }
+-if test "${libc_cv_asm_line_sep+set}" = set; then
++if test "${libc_cv_asm_line_sep+set}" = set; then :
+   $as_echo_n "(cached) " >&6
+ else
+   cat > conftest.s <<EOF
+ nop ; is_old_puffin
+ EOF
+ if { ac_try='${CC-cc} -c $ASFLAGS conftest.s 1>&5'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
++  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  test $ac_status = 0; }; }; then
+   libc_cv_asm_line_sep='!'
+ else
+   if test -z "$enable_hacker_mode"; then
+@@ -25,7 +107,7 @@
+ fi
+ rm -f conftest*
+ fi
+-{ $as_echo "$as_me:$LINENO: result: $libc_cv_asm_line_sep" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_asm_line_sep" >&5
+ $as_echo "$libc_cv_asm_line_sep" >&6; }
+ cat >>confdefs.h <<_ACEOF
+ #define ASM_LINE_SEP $libc_cv_asm_line_sep
+--- a/ports/sysdeps/hppa/dl-tls.h
++++ b/ports/sysdeps/hppa/dl-tls.h
+@@ -27,3 +27,6 @@
+ 
+ 
+ extern void *__tls_get_addr (tls_index *ti);
++
++/* Value used for dtv entries for which the allocation is delayed.  */
++#define TLS_DTV_UNALLOCATED	((void *) -1l)
+--- a/ports/sysdeps/hppa/elf/configure
++++ b/ports/sysdeps/hppa/elf/configure
+@@ -1,12 +1,94 @@
++
++# as_fn_set_status STATUS
++# -----------------------
++# Set $? to STATUS, without forking.
++as_fn_set_status ()
++{
++  return $1
++} # as_fn_set_status
++
++# as_fn_exit STATUS
++# -----------------
++# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
++as_fn_exit ()
++{
++  set +e
++  as_fn_set_status $1
++  exit $1
++} # as_fn_exit
++if expr a : '\(a\)' >/dev/null 2>&1 &&
++   test "X`expr 00001 : '.*\(...\)'`" = X001; then
++  as_expr=expr
++else
++  as_expr=false
++fi
++
++if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
++  as_basename=basename
++else
++  as_basename=false
++fi
++
++as_me=`$as_basename -- "$0" ||
++$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
++        X"$0" : 'X\(//\)$' \| \
++        X"$0" : 'X\(/\)' \| . 2>/dev/null ||
++$as_echo X/"$0" |
++    sed '/^.*\/\([^/][^/]*\)\/*$/{
++           s//\1/
++           q
++         }
++         /^X\/\(\/\/\)$/{
++           s//\1/
++           q
++         }
++         /^X\/\(\/\).*/{
++           s//\1/
++           q
++         }
++         s/.*/./; q'`
++
++
++  as_lineno_1=$LINENO as_lineno_1a=$LINENO
++  as_lineno_2=$LINENO as_lineno_2a=$LINENO
++  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
++  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
++  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
++  sed -n '
++    p
++    /[$]LINENO/=
++  ' <$as_myself |
++    sed '
++      s/[$]LINENO.*/&-/
++      t lineno
++      b
++      :lineno
++      N
++      :loop
++      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
++      t loop
++      s/-\n.*//
++    ' >$as_me.lineno &&
++  chmod +x "$as_me.lineno" ||
++    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
++
++  # Don't try to exec as it changes $[0], causing all sort of problems
++  # (the dirname of $[0] is not the place where we might find the
++  # original and so on.  Autoconf is especially sensitive to this).
++  . "./$as_me.lineno"
++  # Exit status is that of the last command.
++  exit
++}
++
+ # This file is generated from configure.in by Autoconf.  DO NOT EDIT!
+  # Local configure fragment for sysdeps/hppa/elf.
+ 
+ if test "$usetls" != no; then
+ # Check for support of thread-local storage handling in assembler and
+ # linker.
+-{ $as_echo "$as_me:$LINENO: checking for hppa TLS support" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for hppa TLS support" >&5
+ $as_echo_n "checking for hppa TLS support... " >&6; }
+-if test "${libc_cv_hppa_tls+set}" = set; then
++if test "${libc_cv_hppa_tls+set}" = set; then :
+   $as_echo_n "(cached) " >&6
+ else
+   cat > conftest.s <<\EOF
+@@ -41,23 +123,21 @@
+ ; Done all the TLS tests.
+ EOF
+ if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
++  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  test $ac_status = 0; }; }; then
+   libc_cv_hppa_tls=yes
+ else
+   libc_cv_hppa_tls=no
+ fi
+ rm -f conftest*
+ fi
+-{ $as_echo "$as_me:$LINENO: result: $libc_cv_hppa_tls" >&5
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_hppa_tls" >&5
+ $as_echo "$libc_cv_hppa_tls" >&6; }
+ if test $libc_cv_hppa_tls = yes; then
+-  cat >>confdefs.h <<\_ACEOF
+-#define HAVE_TLS_SUPPORT 1
+-_ACEOF
++  $as_echo "#define HAVE_TLS_SUPPORT 1" >>confdefs.h
+ 
+ fi
+ fi
+--- a/ports/sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h
++++ b/ports/sysdeps/unix/sysv/linux/hppa/nptl/sysdep-cancel.h
+@@ -61,11 +61,53 @@
+    
+ # undef PSEUDO
+ # define PSEUDO(name, syscall_name, args)				\
++	ENTRY (__##syscall_name##_nocancel)				\
++	DOARGS_##args					ASM_LINE_SEP	\
++	stwm TREG, 64(%sp)				ASM_LINE_SEP	\
++	.cfi_offset TREG, 0				ASM_LINE_SEP	\
++	.cfi_adjust_cfa_offset 64			ASM_LINE_SEP	\
++	stw %sp, -4(%sp)				ASM_LINE_SEP	\
++	.cfi_offset 30, -4				ASM_LINE_SEP	\
++	stw %r19, -32(%sp)				ASM_LINE_SEP	\
++	.cfi_offset 19, -32				ASM_LINE_SEP	\
++	/* Save r19 */					ASM_LINE_SEP	\
++	SAVE_PIC(TREG)					ASM_LINE_SEP	\
++	/* Do syscall, delay loads # */			ASM_LINE_SEP	\
++	ble  0x100(%sr2,%r0)				ASM_LINE_SEP	\
++	ldi SYS_ify (syscall_name), %r20 /* delay */	ASM_LINE_SEP	\
++	ldi NO_ERROR,%r1				ASM_LINE_SEP	\
++	cmpb,>>=,n %r1,%ret0,L(pre_nc_end)		ASM_LINE_SEP	\
++	/* Restore r19 from TREG */			ASM_LINE_SEP	\
++	LOAD_PIC(TREG) /* delay */			ASM_LINE_SEP	\
++	SYSCALL_ERROR_HANDLER				ASM_LINE_SEP	\
++	/* Use TREG for temp storage */			ASM_LINE_SEP	\
++	copy %ret0, TREG /* delay */			ASM_LINE_SEP	\
++	/* OPTIMIZE: Don't reload r19 */		ASM_LINE_SEP	\
++	/* do a -1*syscall_ret0 */			ASM_LINE_SEP	\
++	sub %r0, TREG, TREG				ASM_LINE_SEP	\
++	/* Store into errno location */			ASM_LINE_SEP	\
++	stw TREG, 0(%sr0,%ret0)				ASM_LINE_SEP	\
++	/* return -1 as error */			ASM_LINE_SEP	\
++	ldi -1, %ret0					ASM_LINE_SEP	\
++L(pre_nc_end):						ASM_LINE_SEP	\
++	/* No need to LOAD_PIC */			ASM_LINE_SEP	\
++	/* Undo frame */				ASM_LINE_SEP	\
++	ldwm -64(%sp),TREG				ASM_LINE_SEP	\
++	.cfi_adjust_cfa_offset -64			ASM_LINE_SEP	\
++	/* Restore rp before exit */			ASM_LINE_SEP	\
++	ldw -20(%sp), %rp				ASM_LINE_SEP	\
++	.cfi_restore 2					ASM_LINE_SEP	\
++	ret						ASM_LINE_SEP	\
++	END(__##syscall_name##_nocancel)		ASM_LINE_SEP	\
++	/**********************************************/ASM_LINE_SEP	\
+ 	ENTRY (name)							\
+ 	DOARGS_##args					ASM_LINE_SEP	\
+ 	stwm TREG, 64(%sp)				ASM_LINE_SEP	\
++	.cfi_adjust_cfa_offset 64			ASM_LINE_SEP	\
+ 	stw %sp, -4(%sp)				ASM_LINE_SEP	\
++	.cfi_offset 30, -4				ASM_LINE_SEP	\
+ 	stw %r19, -32(%sp)				ASM_LINE_SEP	\
++	.cfi_offset 19, -32				ASM_LINE_SEP	\
+ 	/* Done setting up frame, continue... */	ASM_LINE_SEP	\
+ 	SINGLE_THREAD_P					ASM_LINE_SEP	\
+ 	cmpib,<>,n 0,%ret0,L(pseudo_cancel)		ASM_LINE_SEP	\
+@@ -128,26 +170,40 @@
+ 	/* No need to LOAD_PIC */			ASM_LINE_SEP	\
+ 	/* Undo frame */				ASM_LINE_SEP	\
+ 	ldwm -64(%sp),TREG				ASM_LINE_SEP	\
++	.cfi_adjust_cfa_offset -64			ASM_LINE_SEP	\
+ 	/* Restore rp before exit */			ASM_LINE_SEP	\
+-	ldw -20(%sp), %rp				ASM_LINE_SEP
++	ldw -20(%sp), %rp				ASM_LINE_SEP	\
++	.cfi_restore 2					ASM_LINE_SEP
+ 
+ /* Save arguments into our frame */
+ # define PUSHARGS_0	/* nothing to do */
+-# define PUSHARGS_1	PUSHARGS_0 stw %r26, -36(%sr0,%sp)	ASM_LINE_SEP
+-# define PUSHARGS_2	PUSHARGS_1 stw %r25, -40(%sr0,%sp)	ASM_LINE_SEP
+-# define PUSHARGS_3	PUSHARGS_2 stw %r24, -44(%sr0,%sp)	ASM_LINE_SEP
+-# define PUSHARGS_4	PUSHARGS_3 stw %r23, -48(%sr0,%sp)	ASM_LINE_SEP
+-# define PUSHARGS_5	PUSHARGS_4 stw %r22, -52(%sr0,%sp)	ASM_LINE_SEP 
+-# define PUSHARGS_6	PUSHARGS_5 stw %r21, -56(%sr0,%sp)	ASM_LINE_SEP
++# define PUSHARGS_1	PUSHARGS_0 stw %r26, -36(%sr0,%sp)	ASM_LINE_SEP	\
++			.cfi_offset 26, -36			ASM_LINE_SEP
++# define PUSHARGS_2	PUSHARGS_1 stw %r25, -40(%sr0,%sp)	ASM_LINE_SEP	\
++			.cfi_offset 25, -40			ASM_LINE_SEP
++# define PUSHARGS_3	PUSHARGS_2 stw %r24, -44(%sr0,%sp)	ASM_LINE_SEP	\
++			.cfi_offset 24, -44			ASM_LINE_SEP
++# define PUSHARGS_4	PUSHARGS_3 stw %r23, -48(%sr0,%sp)	ASM_LINE_SEP	\
++			.cfi_offset 23, -48			ASM_LINE_SEP
++# define PUSHARGS_5	PUSHARGS_4 stw %r22, -52(%sr0,%sp)	ASM_LINE_SEP	\
++			.cfi_offset 22, -52			ASM_LINE_SEP
++# define PUSHARGS_6	PUSHARGS_5 stw %r21, -56(%sr0,%sp)	ASM_LINE_SEP	\
++			.cfi_offset 21, -56			ASM_LINE_SEP
+ 
+ /* Bring them back from the stack */
+ # define POPARGS_0	/* nothing to do */
+-# define POPARGS_1	POPARGS_0 ldw -36(%sr0,%sp), %r26	ASM_LINE_SEP
+-# define POPARGS_2	POPARGS_1 ldw -40(%sr0,%sp), %r25	ASM_LINE_SEP
+-# define POPARGS_3	POPARGS_2 ldw -44(%sr0,%sp), %r24	ASM_LINE_SEP
+-# define POPARGS_4	POPARGS_3 ldw -48(%sr0,%sp), %r23	ASM_LINE_SEP
+-# define POPARGS_5	POPARGS_4 ldw -52(%sr0,%sp), %r22	ASM_LINE_SEP
+-# define POPARGS_6	POPARGS_5 ldw -56(%sr0,%sp), %r21	ASM_LINE_SEP
++# define POPARGS_1	POPARGS_0 ldw -36(%sr0,%sp), %r26	ASM_LINE_SEP	\
++			.cfi_restore 26				ASM_LINE_SEP
++# define POPARGS_2	POPARGS_1 ldw -40(%sr0,%sp), %r25	ASM_LINE_SEP	\
++			.cfi_restore 25				ASM_LINE_SEP
++# define POPARGS_3	POPARGS_2 ldw -44(%sr0,%sp), %r24	ASM_LINE_SEP	\
++			.cfi_restore 24				ASM_LINE_SEP
++# define POPARGS_4	POPARGS_3 ldw -48(%sr0,%sp), %r23	ASM_LINE_SEP	\
++			.cfi_restore 23				ASM_LINE_SEP
++# define POPARGS_5	POPARGS_4 ldw -52(%sr0,%sp), %r22	ASM_LINE_SEP	\
++			.cfi_restore 22				ASM_LINE_SEP
++# define POPARGS_6	POPARGS_5 ldw -56(%sr0,%sp), %r21	ASM_LINE_SEP	\
++			.cfi_restore 21				ASM_LINE_SEP
+ 
+ # ifdef IS_IN_libpthread
+ #  ifdef PIC
+--- a/ports/sysdeps/unix/sysv/linux/hppa/sysdep.h
++++ b/ports/sysdeps/unix/sysv/linux/hppa/sysdep.h
+@@ -22,7 +22,6 @@
+ 
+ #include <asm/unistd.h>
+ #include <sysdeps/generic/sysdep.h>
+-#include <sys/syscall.h>
+ 
+ /* In order to get __set_errno() definition in INLINE_SYSCALL.  */
+ #ifndef __ASSEMBLER__
+@@ -35,32 +34,28 @@
+ #undef SYS_ify
+ #define SYS_ify(syscall_name)	(__NR_##syscall_name)
+ 
++/* The vfork, fork, and clone syscalls clobber r19
++ * and r21. We list r21 as either clobbered or as an
++ * input to a 6-argument syscall. We must save and
++ * restore r19 in both PIC and non-PIC cases.
++ */ 
+ /* WARNING: TREG must be a callee saves register so 
+    that it doesn't have to be restored after a call 
+    to another function */
+-#ifdef PIC
+-# define TREG %r3
+-# define SAVE_PIC(SREG) copy %r19, SREG ASM_LINE_SEP
+-# define LOAD_PIC(LREG) copy LREG, %r19 ASM_LINE_SEP
+-/* Inline assembly defines */
+-# define TREG_ASM "%r4" /* Cant clobber r3, it holds framemarker */
+-# define SAVE_ASM_PIC	"       copy %%r19, %" TREG_ASM "\n"
+-# define LOAD_ASM_PIC	"       copy %" TREG_ASM ", %%r19\n"
+-# define CLOB_TREG	TREG_ASM ,
+-# define PIC_REG_DEF	register unsigned long __r19 asm("r19");
+-# define PIC_REG_USE	, "r" (__r19)
+-#else
+-# define TREG %r3
+-# define SAVE_PIC(SREG) nop ASM_LINE_SEP
+-# define LOAD_PIC(LREG) nop ASM_LINE_SEP
++#define TREG 4
++#define SAVE_PIC(SREG) \
++	copy %r19, SREG ASM_LINE_SEP	\
++	.cfi_register 19, SREG
++#define LOAD_PIC(LREG) \
++	copy LREG , %r19 ASM_LINE_SEP	\
++	.cfi_restore 19
+ /* Inline assembly defines */
+-# define TREG_ASM 
+-# define SAVE_ASM_PIC	"nop \n"
+-# define LOAD_ASM_PIC	"nop \n"
+-# define CLOB_TREG
+-# define PIC_REG_DEF
+-# define PIC_REG_USE
+-#endif
++#define TREG_ASM "%r4" /* Cant clobber r3, it holds framemarker */
++#define SAVE_ASM_PIC	"       copy %%r19, %" TREG_ASM "\n"
++#define LOAD_ASM_PIC	"       copy %" TREG_ASM ", %%r19\n"
++#define CLOB_TREG	TREG_ASM ,
++#define PIC_REG_DEF	register unsigned long __r19 asm("r19");
++#define PIC_REG_USE	, "r" (__r19)
+ 
+ #ifdef __ASSEMBLER__
+ 
+@@ -127,12 +122,14 @@
+ 	.align ALIGNARG(4)				ASM_LINE_SEP	\
+ 	.export C_SYMBOL_NAME(name)			ASM_LINE_SEP	\
+ 	.type	C_SYMBOL_NAME(name),@function		ASM_LINE_SEP	\
++	cfi_startproc					ASM_LINE_SEP	\
+ 	C_LABEL(name)					ASM_LINE_SEP	\
+ 	.PROC						ASM_LINE_SEP	\
+ 	.CALLINFO FRAME=64,CALLS,SAVE_RP,ENTRY_GR=3	ASM_LINE_SEP	\
+ 	.ENTRY						ASM_LINE_SEP	\
+ 	/* SAVE_RP says we do */			ASM_LINE_SEP	\
+ 	stw %rp, -20(%sr0,%sp)				ASM_LINE_SEP	\
++	.cfi_offset 2, -20				ASM_LINE_SEP	\
+ 	/*FIXME: Call mcount? (carefull with stack!) */
+ 
+ /* Some syscall wrappers do not call other functions, and
+@@ -142,18 +139,21 @@
+ 	.align ALIGNARG(4)				ASM_LINE_SEP	\
+ 	.export C_SYMBOL_NAME(name)			ASM_LINE_SEP	\
+ 	.type	C_SYMBOL_NAME(name),@function		ASM_LINE_SEP	\
++	cfi_startproc					ASM_LINE_SEP	\
+ 	C_LABEL(name)					ASM_LINE_SEP	\
+ 	.PROC						ASM_LINE_SEP	\
+ 	.CALLINFO FRAME=64,NO_CALLS,SAVE_RP,ENTRY_GR=3	ASM_LINE_SEP	\
+ 	.ENTRY						ASM_LINE_SEP	\
+ 	/* SAVE_RP says we do */			ASM_LINE_SEP	\
+ 	stw %rp, -20(%sr0,%sp)				ASM_LINE_SEP	\
++	.cfi_offset 2, -20				ASM_LINE_SEP	\
+ 	/*FIXME: Call mcount? (carefull with stack!) */
+ 
+ #undef	END
+ #define END(name)							\
+   	.EXIT						ASM_LINE_SEP	\
+ 	.PROCEND					ASM_LINE_SEP	\
++	cfi_endproc					ASM_LINE_SEP	\
+ .size	C_SYMBOL_NAME(name), .-C_SYMBOL_NAME(name)	ASM_LINE_SEP
+ 
+ /* If compiled for profiling, call `mcount' at the start 
+@@ -170,9 +170,7 @@
+    which means
+ 	ENTRY(name)
+ 	DO_CALL(...)
+-	nop
+-	bv 0(2)
+-	nop
++	bv,n 0(2)
+ */
+ 
+ #define	PSEUDO(name, syscall_name, args)			\
+@@ -180,8 +178,7 @@
+   /* If necc. load args from stack */		ASM_LINE_SEP	\
+   DOARGS_##args					ASM_LINE_SEP	\
+   DO_CALL (syscall_name, args)			ASM_LINE_SEP	\
+-  UNDOARGS_##args				ASM_LINE_SEP	\
+-  nop						ASM_LINE_SEP
++  UNDOARGS_##args				ASM_LINE_SEP
+ 
+ #define ret \
+   /* Return value set by ERRNO code */		ASM_LINE_SEP	\
+@@ -196,8 +193,7 @@
+   ENTRY_LEAF (name)				ASM_LINE_SEP	\
+   DOARGS_##args					ASM_LINE_SEP	\
+   DO_CALL_NOERRNO (syscall_name, args)		ASM_LINE_SEP	\
+-  UNDOARGS_##args				ASM_LINE_SEP	\
+-  nop						ASM_LINE_SEP
++  UNDOARGS_##args				ASM_LINE_SEP
+ 
+ #define ret_NOERRNO ret
+ 
+@@ -211,8 +207,7 @@
+   ENTRY_LEAF (name)				ASM_LINE_SEP	\
+   DOARGS_##args					ASM_LINE_SEP	\
+   DO_CALL_ERRVAL (syscall_name, args)		ASM_LINE_SEP	\
+-  UNDOARGS_##args				ASM_LINE_SEP	\
+-  nop						ASM_LINE_SEP
++  UNDOARGS_##args				ASM_LINE_SEP
+ 
+ #define ret_ERRVAL ret
+ 
+@@ -290,8 +285,12 @@
+ #define DO_CALL(syscall_name, args)				\
+ 	/* Create a frame */			ASM_LINE_SEP	\
+ 	stwm TREG, 64(%sp)			ASM_LINE_SEP	\
++	.cfi_offset TREG, 0			ASM_LINE_SEP	\
++	.cfi_adjust_cfa_offset 64		ASM_LINE_SEP	\
+ 	stw %sp, -4(%sp)			ASM_LINE_SEP	\
++	.cfi_offset 30, -4			ASM_LINE_SEP	\
+ 	stw %r19, -32(%sp)			ASM_LINE_SEP	\
++	.cfi_offset 19, -32			ASM_LINE_SEP	\
+ 	/* Save r19 */				ASM_LINE_SEP	\
+ 	SAVE_PIC(TREG)				ASM_LINE_SEP	\
+ 	/* Do syscall, delay loads # */		ASM_LINE_SEP	\
+@@ -314,8 +313,10 @@
+ L(pre_end):					ASM_LINE_SEP	\
+ 	/* Restore our frame, restoring TREG */	ASM_LINE_SEP	\
+ 	ldwm -64(%sp), TREG			ASM_LINE_SEP	\
++	.cfi_adjust_cfa_offset -64		ASM_LINE_SEP	\
+ 	/* Restore return pointer */		ASM_LINE_SEP	\
+-	ldw -20(%sp),%rp			ASM_LINE_SEP
++	ldw -20(%sp),%rp			ASM_LINE_SEP	\
++	.cfi_restore 2				ASM_LINE_SEP
+ 
+ /* We do nothing with the return, except hand it back to someone else */
+ #undef  DO_CALL_NOERRNO

Added: glibc-package/trunk/debian/patches/hppa/local-EAGAIN.diff
===================================================================
--- glibc-package/trunk/debian/patches/hppa/local-EAGAIN.diff	                        (rev 0)
+++ glibc-package/trunk/debian/patches/hppa/local-EAGAIN.diff	2012-04-29 13:15:33 UTC (rev 5225)
@@ -0,0 +1,103 @@
+---
+ nptl/pthread_mutex_trylock.c                 |    3 ++-
+ nptl/sysdeps/pthread/aio_misc.h              |    4 ++--
+ nptl/sysdeps/pthread/gai_misc.h              |    4 ++--
+ nptl/sysdeps/unix/sysv/linux/sem_timedwait.c |    2 +-
+ nptl/sysdeps/unix/sysv/linux/sem_wait.c      |    4 ++--
+ sunrpc/clnt_udp.c                            |    2 +-
+ 6 files changed, 10 insertions(+), 9 deletions(-)
+
+--- a/nptl/pthread_mutex_trylock.c
++++ b/nptl/pthread_mutex_trylock.c
+@@ -240,7 +240,8 @@
+ 							  private), 0, 0);
+ 
+ 	    if (INTERNAL_SYSCALL_ERROR_P (e, __err)
+-		&& INTERNAL_SYSCALL_ERRNO (e, __err) == EWOULDBLOCK)
++		&& ((INTERNAL_SYSCALL_ERRNO (e, __err) == EWOULDBLOCK)
++		    || (INTERNAL_SYSCALL_ERRNO (e, __err) == EAGAIN)))
+ 	      {
+ 		THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
+ 
+--- a/nptl/sysdeps/pthread/aio_misc.h
++++ b/nptl/sysdeps/pthread/aio_misc.h
+@@ -51,7 +51,7 @@
+ 	  {								      \
+ 	    status = lll_futex_timed_wait (futexaddr, oldval, timeout,	      \
+ 					   LLL_PRIVATE);		      \
+-	    if (status != -EWOULDBLOCK)					      \
++	    if (status != -EWOULDBLOCK && status != -EAGAIN)		      \
+ 	      break;							      \
+ 									      \
+ 	    oldval = *futexaddr;					      \
+@@ -66,7 +66,7 @@
+ 	else if (status == -ETIMEDOUT)					      \
+ 	  result = EAGAIN;						      \
+ 	else								      \
+-	  assert (status == 0 || status == -EWOULDBLOCK);		      \
++	  assert (status == 0 || status == -EWOULDBLOCK || status == -EAGAIN);\
+ 									      \
+ 	pthread_mutex_lock (&__aio_requests_mutex);			      \
+       }									      \
+--- a/nptl/sysdeps/pthread/gai_misc.h
++++ b/nptl/sysdeps/pthread/gai_misc.h
+@@ -52,7 +52,7 @@
+ 	  {								      \
+ 	    status = lll_futex_timed_wait (futexaddr, oldval, timeout,	      \
+ 					   LLL_PRIVATE);		      \
+-	    if (status != -EWOULDBLOCK)					      \
++	    if (status != -EWOULDBLOCK && status != -EAGAIN)		      \
+ 	      break;							      \
+ 									      \
+ 	    oldval = *futexaddr;					      \
+@@ -67,7 +67,7 @@
+ 	else if (status == -ETIMEDOUT)					      \
+ 	  result = EAGAIN;						      \
+ 	else								      \
+-	  assert (status == 0 || status == -EWOULDBLOCK);		      \
++	  assert (status == 0 || status == -EWOULDBLOCK || status == -EAGAIN);\
+ 									      \
+ 	pthread_mutex_lock (&__gai_requests_mutex);			      \
+       }									      \
+--- a/nptl/sysdeps/unix/sysv/linux/sem_timedwait.c
++++ b/nptl/sysdeps/unix/sysv/linux/sem_timedwait.c
+@@ -90,7 +90,7 @@
+       /* Disable asynchronous cancellation.  */
+       __pthread_disable_asynccancel (oldtype);
+ 
+-      if (err != 0 && err != -EWOULDBLOCK)
++      if (err != 0 && err != -EWOULDBLOCK && err != -EAGAIN)
+ 	{
+ 	  __set_errno (-err);
+ 	  err = -1;
+--- a/nptl/sysdeps/unix/sysv/linux/sem_wait.c
++++ b/nptl/sysdeps/unix/sysv/linux/sem_wait.c
+@@ -62,7 +62,7 @@
+       /* Disable asynchronous cancellation.  */
+       __pthread_disable_asynccancel (oldtype);
+ 
+-      if (err != 0 && err != -EWOULDBLOCK)
++      if (err != 0 && err != -EWOULDBLOCK && err != -EAGAIN)
+ 	{
+ 	  __set_errno (-err);
+ 	  err = -1;
+@@ -107,7 +107,7 @@
+       /* Disable asynchronous cancellation.  */
+       __pthread_disable_asynccancel (oldtype);
+     }
+-  while (err == 0 || err == -EWOULDBLOCK);
++  while (err == 0 || err == -EWOULDBLOCK || err == -EAGAIN);
+ 
+   __set_errno (-err);
+   return -1;
+--- a/sunrpc/clnt_udp.c
++++ b/sunrpc/clnt_udp.c
+@@ -456,7 +456,7 @@
+       while (inlen < 0 && errno == EINTR);
+       if (inlen < 0)
+ 	{
+-	  if (errno == EWOULDBLOCK)
++	  if (errno == EWOULDBLOCK || errno == EAGAIN)
+ 	    continue;
+ 	  cu->cu_error.re_errno = errno;
+ 	  return (cu->cu_error.re_status = RPC_CANTRECV);

Modified: glibc-package/trunk/debian/patches/hppa/local-dlfptr.diff
===================================================================
--- glibc-package/trunk/debian/patches/hppa/local-dlfptr.diff	2012-04-27 14:17:34 UTC (rev 5224)
+++ glibc-package/trunk/debian/patches/hppa/local-dlfptr.diff	2012-04-29 13:15:33 UTC (rev 5225)
@@ -1,6 +1,7 @@
 ---
+ ports/sysdeps/hppa/dl-fptr.h    |    3 +++
  ports/sysdeps/hppa/dl-machine.h |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
+ 2 files changed, 5 insertions(+), 1 deletion(-)
 
 --- a/ports/sysdeps/hppa/dl-machine.h
 +++ b/ports/sysdeps/hppa/dl-machine.h
@@ -14,3 +15,15 @@
  
  /* Return nonzero iff ELF header is compatible with the running host.  */
  static inline int
+--- a/ports/sysdeps/hppa/dl-fptr.h
++++ b/ports/sysdeps/hppa/dl-fptr.h
+@@ -22,6 +22,9 @@
+ 
+ #include <sysdeps/generic/dl-fptr.h>
+ 
++/* Initialize function pointer code. Call before relocation processing.  */
++extern void _dl_fptr_init (void);
++
+ /* There are currently 33 dynamic symbols in ld.so.
+    ELF_MACHINE_BOOT_FPTR_TABLE_LEN needs to be at least that big.  */
+ #define ELF_MACHINE_BOOT_FPTR_TABLE_LEN 64	

Modified: glibc-package/trunk/debian/patches/hppa/local-lowlevellock.diff
===================================================================
--- glibc-package/trunk/debian/patches/hppa/local-lowlevellock.diff	2012-04-27 14:17:34 UTC (rev 5224)
+++ glibc-package/trunk/debian/patches/hppa/local-lowlevellock.diff	2012-04-29 13:15:33 UTC (rev 5225)
@@ -1,13 +1,13 @@
 2010-02-11  Aurelien Jarno  <aurelien@aurel32.net>
 
-	* sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h: remove
-	useless <sysdep.h> include. Move <tls.h> include to...
-	* sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c: here.
+	* ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h:
+	remove useless <sysdep.h> include. Move <tls.h> include to...
+	* ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c: here.
 
 ---
- ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c |    1 +
- ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h |    2 --
- 2 files changed, 1 insertion(+), 2 deletions(-)
+ ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c |    1 
+ ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h |   20 ++++++++---------
+ 2 files changed, 11 insertions(+), 10 deletions(-)
 
 --- a/ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c
 +++ b/ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c
@@ -32,3 +32,32 @@
  
  /* HPPA only has one atomic read and modify memory operation,
     load and clear, so hppa uses a kernel helper routine to implement
+@@ -290,18 +288,20 @@
+   __lll_robust_timedlock (&(futex), abstime, id, private)
+ 
+ #define __lll_unlock(futex, private) \
+-  (void)					\
+-  ({ int val = atomic_exchange_rel (futex, 0);  \
+-     if (__builtin_expect (val > 1, 0))         \
+-       lll_futex_wake (futex, 1, private);      \
++  (void)						\
++  ({ int *__futex = (futex);				\
++     int val = atomic_exchange_rel (__futex, 0);	\
++     if (__builtin_expect (val > 1, 0))			\
++       lll_futex_wake (__futex, 1, private);		\
+   })
+ #define lll_unlock(futex, private) __lll_unlock(&(futex), private)
+ 
+ #define  __lll_robust_unlock(futex,private) \
+-  (void)                                               \
+-    ({ int val = atomic_exchange_rel (futex, 0);       \
+-       if (__builtin_expect (val & FUTEX_WAITERS, 0))  \
+-         lll_futex_wake (futex, 1, private);           \
++  (void)						\
++    ({ int *__futex = (futex);				\
++       int val = atomic_exchange_rel (__futex, 0);	\
++       if (__builtin_expect (val & FUTEX_WAITERS, 0))	\
++         lll_futex_wake (__futex, 1, private);		\
+     })
+ #define lll_robust_unlock(futex, private) \
+   __lll_robust_unlock(&(futex), private)

Modified: glibc-package/trunk/debian/patches/hppa/local-stack-grows-up.diff
===================================================================
--- glibc-package/trunk/debian/patches/hppa/local-stack-grows-up.diff	2012-04-27 14:17:34 UTC (rev 5224)
+++ glibc-package/trunk/debian/patches/hppa/local-stack-grows-up.diff	2012-04-29 13:15:33 UTC (rev 5225)
@@ -1,10 +1,10 @@
 ---
- nptl/allocatestack.c         |   22 +++++++++++++++-------
- nptl/pthread_attr_getstack.c |    6 +++++-
- nptl/pthread_attr_setstack.c |   10 +++++++++-
- nptl/pthread_create.c        |   12 +++++++++---
- nptl/pthread_getattr_np.c    |   15 ++++++++++++++-
- 5 files changed, 52 insertions(+), 13 deletions(-)
+ nptl/allocatestack.c         |   35 +++++++++++++++++++++++++----------
+ nptl/pthread_attr_getstack.c |    4 ++++
+ nptl/pthread_attr_setstack.c |    8 ++++++++
+ nptl/pthread_create.c        |   19 ++++++++++++++++---
+ nptl/pthread_getattr_np.c    |   12 ++++++++++++
+ 5 files changed, 65 insertions(+), 13 deletions(-)
 
 --- a/nptl/allocatestack.c
 +++ b/nptl/allocatestack.c
@@ -69,9 +69,30 @@
  	  char *guard = (char *) (((uintptr_t) pd - guardsize) & ~pagesize_m1);
  #endif
  	  if (mprotect (guard, guardsize, PROT_NONE) != 0)
-@@ -724,7 +733,6 @@
+@@ -678,9 +687,13 @@
+ 			prot) != 0)
+ 	    goto mprot_error;
+ #elif _STACK_GROWS_UP
+-	  if (mprotect ((char *) pd - pd->guardsize,
+-			pd->guardsize - guardsize, prot) != 0)
+-	    goto mprot_error;
++	  char *new_guard = (char *) (((uintptr_t) pd - guardsize) & ~pagesize_m1);
++	  char *old_guard = (char *) (((uintptr_t) pd - pd->guardsize) & ~pagesize_m1);
++	  /* The guard size difference might be > 0, but once rounded
++	     to the nearest page the size difference might be zero.  */
++	  if (old_guard - new_guard > 0)
++	    if (mprotect (old_guard, new_guard - old_guard, prot) != 0)
++	      goto mprot_error;
+ #endif
+ 
+ 	  pd->guardsize = guardsize;
+@@ -723,8 +736,10 @@
+ #elif _STACK_GROWS_DOWN
    *stack = stacktop;
  #elif _STACK_GROWS_UP
++  /* We don't use stacktop. In _STACK_GROWS_UP the start
++     of the stack is simply stackblock (lowest address of
++     the stored block of memory for the stack).  */
    *stack = pd->stackblock;
 -  assert (*stack > 0);
  #endif
@@ -79,12 +100,6 @@
    return 0;
 --- a/nptl/pthread_attr_getstack.c
 +++ b/nptl/pthread_attr_getstack.c
-@@ -1,4 +1,4 @@
--/* Copyright (C) 2002 Free Software Foundation, Inc.
-+/* Copyright (C) 2002, 2010 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
- 
 @@ -33,7 +33,11 @@
    iattr = (struct pthread_attr *) attr;
  
@@ -99,12 +114,6 @@
    return 0;
 --- a/nptl/pthread_attr_setstack.c
 +++ b/nptl/pthread_attr_setstack.c
-@@ -1,4 +1,4 @@
--/* Copyright (C) 2002, 2003, 2006 Free Software Foundation, Inc.
-+/* Copyright (C) 2002, 2003, 2006, 2010 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
- 
 @@ -48,7 +48,11 @@
  #endif
  
@@ -131,7 +140,7 @@
    return 0;
 --- a/nptl/pthread_create.c
 +++ b/nptl/pthread_create.c
-@@ -392,12 +392,18 @@
+@@ -392,12 +392,25 @@
  #ifdef _STACK_GROWS_DOWN
    char *sp = CURRENT_STACK_FRAME;
    size_t freesize = (sp - (char *) pd->stackblock) & ~pagesize_m1;
@@ -142,27 +151,27 @@
    if (freesize > PTHREAD_STACK_MIN)
      madvise (pd->stackblock, freesize - PTHREAD_STACK_MIN, MADV_DONTNEED);
 +#else
-+  char *sp = CURRENT_STACK_FRAME;
-+  size_t freesize = ((char *) pd->stackblock + pd->stackblock_size - sp) 
-+		     & ~pagesize_m1;
-+  void *freeblock = (void *) (sp + PTHREAD_STACK_MIN);
-+  assert (freesize < pd->stackblock_size);
-+  if (freesize > PTHREAD_STACK_MIN)
-+    madvise (freeblock, freesize - PTHREAD_STACK_MIN, MADV_DONTNEED);
++  /* Page aligned start of memory to free (higher than or equal 
++     to current sp plus the minimum stack size).  */
++  void *freeblock = (void*)((size_t)(CURRENT_STACK_FRAME 
++				     + PTHREAD_STACK_MIN 
++				     + pagesize_m1) 
++				    & ~pagesize_m1);
++  char *free_end = (char *) (((uintptr_t) pd - pd->guardsize) & ~pagesize_m1);
++  /* Is there any space to free?  */
++  if (free_end > (char *)freeblock)
++    {
++      size_t freesize = (size_t)(free_end - (char *)freeblock);
++      assert (freesize < pd->stackblock_size);
++      madvise (freeblock, freesize, MADV_DONTNEED);
++    }
 +#endif
  
    /* If the thread is detached free the TCB.  */
    if (IS_DETACHED (pd))
 --- a/nptl/pthread_getattr_np.c
 +++ b/nptl/pthread_getattr_np.c
-@@ -1,4 +1,5 @@
--/* Copyright (C) 2002, 2003, 2004, 2006, 2007 Free Software Foundation, Inc.
-+/* Copyright (C) 2002, 2003, 2004, 2006, 2007, 
-+   2010 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
- 
-@@ -61,7 +62,11 @@
+@@ -61,7 +61,11 @@
    if (__builtin_expect (thread->stackblock != NULL, 1))
      {
        iattr->stacksize = thread->stackblock_size;
@@ -174,7 +183,7 @@
      }
    else
      {
-@@ -110,13 +115,21 @@
+@@ -110,13 +114,21 @@
  		    {
  		      /* Found the entry.  Now we have the info we need.  */
  		      iattr->stacksize = rl.rlim_cur;

Modified: glibc-package/trunk/debian/patches/hppa/submitted-nptl-carlos.diff
===================================================================
--- glibc-package/trunk/debian/patches/hppa/submitted-nptl-carlos.diff	2012-04-27 14:17:34 UTC (rev 5224)
+++ glibc-package/trunk/debian/patches/hppa/submitted-nptl-carlos.diff	2012-04-29 13:15:33 UTC (rev 5225)
@@ -5,12 +5,11 @@
  nptl/pthread_barrier_wait.c   |    2 +-
  nptl/sysdeps/pthread/Makefile |    2 ++
  stdio-common/Makefile         |    2 +-
- sunrpc/clnt_udp.c             |    2 +-
- 7 files changed, 55 insertions(+), 24 deletions(-)
+ 6 files changed, 54 insertions(+), 23 deletions(-)
 
 --- a/elf/rtld.c
 +++ b/elf/rtld.c
-@@ -392,14 +392,14 @@
+@@ -393,14 +393,14 @@
       know it is available.  We do not have to clear the memory if we
       do not have to use the temporary bootstrap_map.  Global variables
       are initialized to zero by default.  */
@@ -234,14 +233,3 @@
  CFLAGS-vfwprintf.c = -Wno-uninitialized
  CFLAGS-tst-printf.c = -Wno-format
  CFLAGS-tstdiomisc.c = -Wno-format
---- a/sunrpc/clnt_udp.c
-+++ b/sunrpc/clnt_udp.c
-@@ -456,7 +456,7 @@
-       while (inlen < 0 && errno == EINTR);
-       if (inlen < 0)
- 	{
--	  if (errno == EWOULDBLOCK)
-+	  if (errno == EWOULDBLOCK || errno == EAGAIN)
- 	    continue;
- 	  cu->cu_error.re_errno = errno;
- 	  return (cu->cu_error.re_status = RPC_CANTRECV);

Deleted: glibc-package/trunk/debian/patches/hppa/submitted-stackinfo.diff
===================================================================
--- glibc-package/trunk/debian/patches/hppa/submitted-stackinfo.diff	2012-04-27 14:17:34 UTC (rev 5224)
+++ glibc-package/trunk/debian/patches/hppa/submitted-stackinfo.diff	2012-04-29 13:15:33 UTC (rev 5225)
@@ -1,15 +0,0 @@
-2011-03-11  Aurelien Jarno  <aurelien@aurel32.net>
-
-	* sysdeps/hppa/stackinfo.h: Define DEFAULT_STACK_PERMS with PF_X.
-
---- a/ports/sysdeps/hppa/stackinfo.h
-+++ b/ports/sysdeps/hppa/stackinfo.h
-@@ -25,4 +25,8 @@
- /* On PA the stack grows up.  */
- #define _STACK_GROWS_UP	1
- 
-+/* Default to an executable stack.  PF_X can be overridden if PT_GNU_STACK is
-+ * present, but it is presumed absent.  */
-+#define DEFAULT_STACK_PERMS (PF_R|PF_W|PF_X)
-+
- #endif	/* stackinfo.h */

Modified: glibc-package/trunk/debian/patches/series
===================================================================
--- glibc-package/trunk/debian/patches/series	2012-04-27 14:17:34 UTC (rev 5224)
+++ glibc-package/trunk/debian/patches/series	2012-04-29 13:15:33 UTC (rev 5225)
@@ -107,7 +107,12 @@
 hppa/local-lowlevellock.diff
 hppa/submitted-fcntl_h.diff
 hppa/submitted-libm-hidden.diff
-hppa/submitted-stackinfo.diff
+hppa/cvs-stackinfo.diff
+hppa/local-EAGAIN.diff
+hppa/cvs-sys_procfs_h.diff
+hppa/cvs-test-tls-support.diff
+hppa/cvs-cloexec-nonblock.diff
+hppa/cvs-prlimit64.diff
 
 hurd-i386/local-dl-dynamic-weak.diff
 hurd-i386/local-enable-ldconfig.diff


Reply to: