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

r1658 - in glibc-package/branches/glibc-2.4/debian: . patches patches/arm patches/hppa sysdeps



Author: schizo
Date: 2006-06-18 16:21:12 +0000 (Sun, 18 Jun 2006)
New Revision: 1658

Added:
   glibc-package/branches/glibc-2.4/debian/patches/arm/cvs-portshead.patch
Modified:
   glibc-package/branches/glibc-2.4/debian/changelog
   glibc-package/branches/glibc-2.4/debian/patches/hppa/cvs-portshead.patch
   glibc-package/branches/glibc-2.4/debian/patches/series
   glibc-package/branches/glibc-2.4/debian/sysdeps/arm.mk
Log:
    - Add arm/cvs-portshead.patch (update arm code to ports HEAD)


Modified: glibc-package/branches/glibc-2.4/debian/changelog
===================================================================
--- glibc-package/branches/glibc-2.4/debian/changelog	2006-06-16 01:31:59 UTC (rev 1657)
+++ glibc-package/branches/glibc-2.4/debian/changelog	2006-06-18 16:21:12 UTC (rev 1658)
@@ -42,6 +42,7 @@
     - Disable hppa/submitted-sysdeps.diff, hppa/local-gcc-4-profile.diff,
       hppa/submitted-iitlbp.diff, hppa/cvs-pie-relocs.diff,
       hppa/cvs-no-ldbl-128.diff.
+    - Add arm/cvs-portshead.patch (update arm code to ports HEAD)
 
   [ Denis Barbier ]
     - Remove locale/complex-collate.diff (merged upstream).

Added: glibc-package/branches/glibc-2.4/debian/patches/arm/cvs-portshead.patch
===================================================================
--- glibc-package/branches/glibc-2.4/debian/patches/arm/cvs-portshead.patch	2006-06-16 01:31:59 UTC (rev 1657)
+++ glibc-package/branches/glibc-2.4/debian/patches/arm/cvs-portshead.patch	2006-06-18 16:21:12 UTC (rev 1658)
@@ -0,0 +1,666 @@
+--- glibc/ports/ChangeLog.arm	2006-03-02 10:23:41.000000000 -0500
++++ glibc/ports/ChangeLog.arm	2006-06-14 21:53:57.000000000 -0400
+@@ -1,3 +1,61 @@
++2006-06-08  Mark Shinwell  <shinwell@codesourcery.com>
++
++        * sysdeps/arm/nptl/pthreaddef.h (CURRENT_STACK_FRAME): Add -12.
++
++2006-06-08  Daniel Jacobowitz  <dan@codesourcery.com>
++
++	* sysdeps/unix/sysv/linux/arm/bits/fcntl.h: Reformat.
++	(SPLICE_F_MOVE, SPLICE_F_NONBLOCK, SPLICE_F_MORE, SPLICE_F_GIFT):
++	Define.
++
++2006-05-30  Daniel Jacobowitz  <dan@codesourcery.com>
++
++	* sysdeps/arm/initfini.c: New file.
++
++2006-05-30  Daniel Jacobowitz  <dan@codesourcery.com>
++
++	* sysdeps/arm/dl-machine.h (elf_machine_dynamic): Rewrite to load
++	_GLOBAL_OFFSET_TABLE_ explicitly.
++
++2006-05-30  Daniel Jacobowitz  <dan@codesourcery.com>
++
++	* sysdeps/unix/sysv/linux/arm/kernel-features.h: Add conditionals
++	for __ASSUME_TRUNCATE64_SYSCALL, __ASSUME_MMAP2_SYSCALL,
++	__ASSUME_STAT64_SYSCALL, __ASSUME_FCNTL64, and
++	__ASSUME_VFORK_SYSCALL.
++
++2006-05-05  Daniel Jacobowitz  <dan@codesourcery.com>
++
++	* sysdeps/unix/sysv/linux/arm/bits/mman.h: Update error message
++	for consistency with other ports.
++	(MADV_REMOVE, MADV_DONTFORK, MADV_DOFORK): Define.
++
++2006-05-05  Lior Balkohen  <balkohen@gmail.com>
++
++	* sysdeps/unix/sysv/linux/arm/bits/fcntl.h: Remove
++	LINUX_FADV_ASYNC_WRITE and LINUX_FADV_WRITE_WAIT.
++	Define SYNC_FILE_RANGE_WAIT_BEFORE, SYNC_FILE_RANGE_WRITE
++	and SYNC_FILE_RANGE_WAIT_AFTER.
++	Declare sync_file_range, vmsplice, splice and tee.
++
++2006-03-27  Lior Balkohen  <balkohen@gmail.com>
++
++	* sysdeps/unix/sysv/linux/arm/bits/fcntl.h: Define
++	LINUX_FADV_ASYNC_WRITE and LINUX_FADV_WRITE_WAIT.
++
++2006-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
++
++	* sysdeps/unix/sysv/linux/arm/eabi/socket.S: Delete.
++	* sysdeps/unix/sysv/linux/arm/eabi/syscalls.list,
++	sysdeps/unix/sysv/linux/arm/kernel-features.h,
++	sysdeps/unix/sysv/linux/arm/eabi/umount.c: New files.
++	* sysdeps/unix/sysv/linux/arm/eabi/linuxthreads/sysdep-cancel.h
++	(DOCARGS_6, UNDOCARGS_6, RESTORE_LR_6): Define.
++	* sysdeps/unix/sysv/linux/arm/eabi/nptl/sysdep-cancel.h
++	(DOCARGS_6, UNDOCARGS_6, RESTORE_LR_6): Define.
++	* sysdeps/unix/sysv/linux/arm/eabi/sysdep.h: Undefine
++	__NR_stime and __NR_alarm.
++
+ 2006-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
+ 
+ 	* sysdeps/unix/sysv/linux/arm/linuxthreads/sysdep-cancel.h
+--- glibc/ports/sysdeps/arm/dl-machine.h	2005-11-16 13:08:52.000000000 -0500
++++ glibc/ports/sysdeps/arm/dl-machine.h	2006-06-07 13:38:29.000000000 -0400
+@@ -46,13 +46,19 @@
+ 
+ 
+ /* Return the link-time address of _DYNAMIC.  Conveniently, this is the
+-   first element of the GOT.  This must be inlined in a function which
+-   uses global data.  */
++   first element of the GOT.  We used to use the PIC register to do this
++   without a constant pool reference, but GCC 4.2 will use a pseudo-register
++   for the PIC base, so it may not be in r10.  */
+ static inline Elf32_Addr __attribute__ ((unused))
+ elf_machine_dynamic (void)
+ {
+-  register Elf32_Addr *got asm ("r10");
+-  return *got;
++  Elf32_Addr dynamic;
++  asm ("ldr %0, 2f\n"
++       "1: add %0, pc, %0\n"
++       "b 3f\n"
++       "2: .word _GLOBAL_OFFSET_TABLE_ - (1b+8)\n"
++       "3:" : "=r" (dynamic));
++  return dynamic;
+ }
+ 
+ 
+--- glibc/ports/sysdeps/arm/initfini.c	1969-12-31 19:00:00.000000000 -0500
++++ glibc/ports/sysdeps/arm/initfini.c	2006-05-30 11:31:04.000000000 -0400
+@@ -0,0 +1,42 @@
++/* Special .init and .fini section support.  ARM 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.
++
++   In addition to the permissions in the GNU Lesser General Public
++   License, the Free Software Foundation gives you unlimited
++   permission to link the compiled version of this file with other
++   programs, and to distribute those programs without any restriction
++   coming from the use of this file. (The GNU Lesser General Public
++   License restrictions do apply in other respects; for example, they
++   cover modification of the file, and distribution when not linked
++   into another program.)
++
++   Note that people who make modified versions of this file are not
++   obligated to grant this special exception for their modified
++   versions; it is their choice whether to do so. The GNU Lesser
++   General Public License gives permission to release a modified
++   version without this exception; this exception also makes it
++   possible to release a modified version which carries forward this
++   exception.
++
++   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.  */
++
++/* Prevent this function from being inlined.  Otherwise half of its
++   constant pool will end up in crti and the other half in crtn.  */
++
++static void call_gmon_start (void) __attribute__((noinline));
++
++#include <sysdeps/generic/initfini.c>
+--- glibc/ports/sysdeps/arm/nptl/pthreaddef.h	2005-11-16 14:03:42.000000000 -0500
++++ glibc/ports/sysdeps/arm/nptl/pthreaddef.h	2006-06-14 21:53:57.000000000 -0400
+@@ -30,8 +30,16 @@
+ #define TCB_ALIGNMENT		16
+ 
+ 
+-/* Location of current stack frame.  */
+-#define CURRENT_STACK_FRAME	__builtin_frame_address (0)
++/* Location of current stack frame.
++
++   __builtin_frame_address (0) returns the value of the hard frame
++   pointer, which will point at the location of the saved PC on the
++   stack.  Below this in memory is the remainder of the linkage info,
++   occupying 12 bytes.  Therefore in order to address from
++   CURRENT_STACK_FRAME using "struct layout", we need to have the macro
++   return the hard FP minus 12.  Of course, this makes no sense
++   without the obsolete APCS stack layout...  */
++#define CURRENT_STACK_FRAME	(__builtin_frame_address (0) - 12)
+ 
+ 
+ /* XXX Until we have a better place keep the definitions here.  */
+--- glibc/ports/sysdeps/unix/sysv/linux/arm/bits/fcntl.h	2004-08-23 03:28:44.000000000 -0400
++++ glibc/ports/sysdeps/unix/sysv/linux/arm/bits/fcntl.h	2006-06-14 21:53:58.000000000 -0400
+@@ -1,5 +1,5 @@
+ /* O_*, F_*, FD_* bit values for Linux.
+-   Copyright (C) 1995-1998, 2000, 2004 Free Software Foundation, Inc.
++   Copyright (C) 1995-1998, 2000, 2004, 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
+@@ -21,35 +21,34 @@
+ # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
+ #endif
+ 
+-
+ #include <sys/types.h>
++#ifdef __USE_GNU
++# include <bits/uio.h>
++#endif
++
+ 
+ /* open/fcntl - O_SYNC is only implemented on blocks devices and on files
+    located on an ext2 file system */
+-#define O_ACCMODE	  0003
+-#define O_RDONLY	    00
+-#define O_WRONLY	    01
+-#define O_RDWR		    02
+-#define O_CREAT		  0100	/* not fcntl */
+-#define O_EXCL		  0200	/* not fcntl */
+-#define O_NOCTTY	  0400	/* not fcntl */
+-#define O_TRUNC		 01000	/* not fcntl */
+-#define O_APPEND	 02000
+-#define O_NONBLOCK	 04000
++#define O_ACCMODE	   0003
++#define O_RDONLY	     00
++#define O_WRONLY	     01
++#define O_RDWR		     02
++#define O_CREAT		   0100	/* not fcntl */
++#define O_EXCL		   0200	/* not fcntl */
++#define O_NOCTTY	   0400	/* not fcntl */
++#define O_TRUNC		  01000	/* not fcntl */
++#define O_APPEND	  02000
++#define O_NONBLOCK	  04000
+ #define O_NDELAY	O_NONBLOCK
+-#define O_SYNC		010000
+-#define O_FSYNC		O_SYNC
+-#define O_ASYNC		020000
++#define O_SYNC		 010000
++#define O_FSYNC		 O_SYNC
++#define O_ASYNC		 020000
+ 
+ #ifdef __USE_GNU
+-# define O_DIRECTORY	040000	/* Must be a directory.	 */
++# define O_DIRECTORY	 040000	/* Must be a directory.	 */
+ # define O_NOFOLLOW	0100000	/* Do not follow links.	 */
+ # define O_DIRECT	0200000	/* Direct disk access.	*/
+-# define O_NOATIME	01000000 /* Do not set atime.  */
+-#endif
+-
+-#ifdef __USE_LARGEFILE64
+-# define O_LARGEFILE	0400000
++# define O_NOATIME     01000000 /* Do not set atime.  */
+ #endif
+ 
+ /* For now Linux has synchronisity options for data and read operations.
+@@ -60,13 +59,16 @@
+ # define O_RSYNC	O_SYNC	/* Synchronize read operations.	 */
+ #endif
+ 
++#ifdef __USE_LARGEFILE64
++# define O_LARGEFILE	0400000
++#endif
++
+ /* Values for the second argument to `fcntl'.  */
+ #define F_DUPFD		0	/* Duplicate file descriptor.  */
+ #define F_GETFD		1	/* Get file descriptor flags.  */
+ #define F_SETFD		2	/* Set file descriptor flags.  */
+ #define F_GETFL		3	/* Get file status flags.  */
+ #define F_SETFL		4	/* Set file status flags.  */
+-
+ #ifndef __USE_FILE_OFFSET64
+ # define F_GETLK	5	/* Get record locking info.  */
+ # define F_SETLK	6	/* Set record locking info (non-blocking).  */
+@@ -104,12 +106,12 @@
+ #define F_WRLCK		1	/* Write lock.	*/
+ #define F_UNLCK		2	/* Remove lock.	 */
+ 
+-/* for old implementation of bsd flock () */
++/* For old implementation of bsd flock().  */
+ #define F_EXLCK		4	/* or 3 */
+ #define F_SHLCK		8	/* or 4 */
+ 
+ #ifdef __USE_BSD
+-/* Operations for bsd flock(), also used by the kernel implementation */
++/* Operations for bsd flock(), also used by the kernel implementation.	*/
+ # define LOCK_SH	1	/* shared lock */
+ # define LOCK_EX	2	/* exclusive lock */
+ # define LOCK_NB	4	/* or'd with one of the above to prevent
+@@ -180,10 +182,54 @@
+ # define POSIX_FADV_NOREUSE	5 /* Data will be accessed once.  */
+ #endif
+ 
++
++#ifdef __USE_GNU
++/* Flags for SYNC_FILE_RANGE.  */
++# define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
++					     in the range before performing the
++					     write.  */
++# define SYNC_FILE_RANGE_WRITE		2 /* Initiate writeout of all those
++					     dirty pages in the range which are
++					     not presently under writeback.  */
++# define SYNC_FILE_RANGE_WAIT_AFTER	4 /* Wait upon writeout of all pages in
++					     the range after performing the
++					     write.  */
++
++/* Flags for SPLICE and VMSPLICE.  */
++# define SPLICE_F_MOVE		1	/* Move pages instead of copying.  */
++# define SPLICE_F_NONBLOCK	2	/* Don't block on the pipe splicing
++					   (but we may still block on the fd
++					   we splice from/to).  */
++# define SPLICE_F_MORE		4	/* Expect more data.  */
++# define SPLICE_F_GIFT		8	/* Pages passed in are a gift.  */
++#endif
++
+ __BEGIN_DECLS
+ 
++#ifdef __USE_GNU
++
+ /* Provide kernel hint to read ahead.  */
+ extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
+     __THROW;
+ 
++
++/* Selective file content synch'ing.  */
++extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to,
++			    unsigned int __flags);
++
++
++/* Splice address range into a pipe.  */
++extern int vmsplice (int __fdout, const struct iovec *__iov, size_t __count,
++		     unsigned int __flags);
++
++/* Splice two files together.  */
++extern int splice (int __fdin, int __fdout, size_t __len, unsigned int __flags)
++    __THROW;
++
++/* In-kernel implementation of tee for pipe buffers.  */
++extern int tee (int __fdin, int __fdout, size_t __len, unsigned int __flags)
++    __THROW;
++
++#endif
++
+ __END_DECLS
+--- glibc/ports/sysdeps/unix/sysv/linux/arm/bits/mman.h	2005-10-31 15:41:32.000000000 -0500
++++ glibc/ports/sysdeps/unix/sysv/linux/arm/bits/mman.h	2006-05-12 11:16:26.000000000 -0400
+@@ -1,5 +1,5 @@
+ /* Definitions for POSIX memory map interface.  Linux/ARM version.
+-   Copyright (C) 1997, 2000, 2003, 2005 Free Software Foundation, Inc.
++   Copyright (C) 1997, 2000, 2003, 2005, 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
+@@ -18,7 +18,7 @@
+    02111-1307 USA.  */
+ 
+ #ifndef _SYS_MMAN_H
+-# error "Never include this file directly.  Use <sys/mman.h> instead"
++# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
+ #endif
+ 
+ /* The following definitions basically come from the kernel headers.
+@@ -88,6 +88,9 @@
+ # define MADV_SEQUENTIAL 2	/* Expect sequential page references.  */
+ # define MADV_WILLNEED	 3	/* Will need these pages.  */
+ # define MADV_DONTNEED	 4	/* Don't need these pages.  */
++# define MADV_REMOVE	 9	/* Remove these pages and resources.  */
++# define MADV_DONTFORK	 10	/* Do not inherit across fork.  */
++# define MADV_DOFORK	 11	/* Do inherit across fork.  */
+ #endif
+ 
+ /* The POSIX people had to invent similar names for the same things.  */
+--- glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/linuxthreads/sysdep-cancel.h	2005-11-16 13:08:53.000000000 -0500
++++ glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/linuxthreads/sysdep-cancel.h	2006-05-12 11:16:26.000000000 -0400
+@@ -53,9 +53,9 @@
+     UNDOARGS_##args;							\
+     cmn r0, $4096;
+ 
+-/* DOARGS pushes four bytes on the stack for five arguments, and nothing
+-   otherwise.  In order to preserve doubleword alignment, sometimes we must
+-   save an extra register.  */
++/* DOARGS pushes four bytes on the stack for five arguments, eight bytes for
++   six arguments, and nothing for fewer.  In order to preserve doubleword
++   alignment, sometimes we must save an extra register.  */
+ 
+ # define DOCARGS_0	stmfd sp!, {r7, lr}
+ # define UNDOCARGS_0
+@@ -81,6 +81,10 @@
+ # define UNDOCARGS_5	ldmfd sp!, {r0, r1, r2, r3}
+ # define RESTORE_LR_5	ldmfd sp!, {r4, r7, lr}
+ 
++# define DOCARGS_6	stmfd sp!, {r0, r1, r2, r3, r7, lr}
++# define UNDOCARGS_6	ldmfd sp!, {r0, r1, r2, r3}
++# define RESTORE_LR_6	RESTORE_LR_0
++
+ # ifdef IS_IN_libpthread
+ #  define CENABLE	bl PLTJMP(__pthread_enable_asynccancel)
+ #  define CDISABLE	bl PLTJMP(__pthread_disable_asynccancel)
+--- glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/nptl/sysdep-cancel.h	2005-11-16 14:03:42.000000000 -0500
++++ glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/nptl/sysdep-cancel.h	2006-05-12 11:16:26.000000000 -0400
+@@ -64,9 +64,9 @@
+     UNDOARGS_##args;							\
+     cmn r0, $4096;
+ 
+-/* DOARGS pushes four bytes on the stack for five arguments, and nothing
+-   otherwise.  In order to preserve doubleword alignment, sometimes we must
+-   save an extra register.  */
++/* DOARGS pushes four bytes on the stack for five arguments, eight bytes for
++   six arguments, and nothing for fewer.  In order to preserve doubleword
++   alignment, sometimes we must save an extra register.  */
+ 
+ # define RESTART_UNWIND .fnend; .fnstart; .save {r7, lr}
+ 
+@@ -94,6 +94,10 @@
+ # define UNDOCARGS_5	ldmfd sp!, {r0, r1, r2, r3}; .fnend; .fnstart; .save {r4}; .save {r7, lr}; .pad #4
+ # define RESTORE_LR_5	ldmfd sp!, {r4, r7, lr}
+ 
++# define DOCARGS_6	.save {r4, r5}; stmfd sp!, {r0, r1, r2, r3, r7, lr}; .save {r7, lr}; .pad #20
++# define UNDOCARGS_6	ldmfd sp!, {r0, r1, r2, r3}; .fnend; .fnstart; .save {r4, r5}; .save {r7, lr}
++# define RESTORE_LR_6	RESTORE_LR_0
++
+ # ifdef IS_IN_libpthread
+ #  define CENABLE	bl PLTJMP(__pthread_enable_asynccancel)
+ #  define CDISABLE	bl PLTJMP(__pthread_disable_asynccancel)
+--- glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/socket.S	2005-11-16 14:03:42.000000000 -0500
++++ glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/socket.S	1969-12-31 19:00:00.000000000 -0500
+@@ -1,131 +0,0 @@
+-/* Copyright (C) 1995, 1996, 1997, 1998, 2003, 2005
+-   Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-
+-   The GNU C Library is free software; you can redistribute it and/or
+-   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.  */
+-
+-#include <sysdep-cancel.h>
+-#include <socketcall.h>
+-
+-#define P(a, b) P2(a, b)
+-#define P2(a, b) a##b
+-
+-	.text
+-/* The socket-oriented system calls are handled unusally in Linux.
+-   They are all gated through the single `socketcall' system call number.
+-   `socketcall' takes two arguments: the first is the subcode, specifying
+-   which socket function is being called; and the second is a pointer to
+-   the arguments to the specific function.
+-
+-   The .S files for the other calls just #define socket and #include this.  */
+-
+-#ifndef __socket
+-# ifndef NO_WEAK_ALIAS
+-#  define __socket P(__,socket)
+-# else
+-#  define __socket socket
+-# endif
+-#endif
+-
+-#define PUSHARGS_1	str a1, [sp, $-8]!; .pad #8
+-#define PUSHARGS_2	stmfd sp!, {a1, a2}; .pad #8
+-#define PUSHARGS_3	stmfd sp!, {a1, a2, a3, a4}; .pad #16	/* a4 pushed for padding */
+-#define PUSHARGS_4	stmfd sp!, {a1, a2, a3, a4}; .pad #16
+-#define PUSHARGS_5	stmfd sp!, {a1, a2, a3, a4}; .pad #16	/* Caller has already pushed arg 5 */
+-#define PUSHARGS_6	stmfd sp!, {a1, a2, a3, a4}; .pad #16
+-
+-#define POPARGS_1	add sp, sp, #8
+-#define POPARGS_2	add sp, sp, #8
+-#define POPARGS_3	add sp, sp, #16
+-#define POPARGS_4	add sp, sp, #16
+-#define POPARGS_5	add sp, sp, #16
+-#define POPARGS_6	add sp, sp, #16
+-
+-#ifndef NARGS
+-#define NARGS 3			/* If we were called with no wrapper, this is really socket() */
+-#endif
+-
+-#if defined NEED_CANCELLATION && defined CENABLE
+-	PSEUDO_PROLOGUE
+-#endif
+-
+-.globl __socket
+-ENTRY (__socket)
+-	.fnstart
+-
+-	/* This code previously moved sp into ip and stored the args using
+-	   stmdb ip!, {a1-a4}.  It did not modify sp, so the stack never had
+-	   to be restored after the syscall completed.  It saved an
+-	   instruction and meant no stack cleanup work was required.
+-
+-	   This will not work in the case of a socket call being interrupted
+-	   by a signal.  If the signal handler uses any stack the arguments
+-	   to socket will be trashed.  The results of a restart of any
+-	   socket call are then unpredictable. */
+-
+-	/* Push args onto the stack.  */
+-	P(PUSHARGS_,NARGS)
+-
+-#if defined NEED_CANCELLATION && defined CENABLE
+-	SINGLE_THREAD_P
+-	bne 1f
+-#endif
+-
+-        /* Do the system call trap.  */
+-	mov a1, $P(SOCKOP_,socket)
+-	mov a2, sp
+-	DO_CALL (socketcall, 0)
+-
+-	/* Pop args off the stack */
+-	P(POPARGS_,NARGS)
+-
+-	/* r0 is < 0 if there was an error.  */
+-	cmn r0, $124
+-	RETINSTR(cc, r14)
+-	b PLTJMP(SYSCALL_ERROR)
+-
+-#if defined NEED_CANCELLATION && defined CENABLE
+-1:
+-	stmfd sp!, {r7, lr}
+-	.save {r7, lr}
+-	CENABLE
+-	mov ip, r0
+-
+-	mov r0, #P(SOCKOP_,socket)
+-	add r1, sp, #8
+-	mov r7, #SYS_ify(socketcall)
+-	swi 0x0
+-
+-	mov r7, r0
+-	mov r0, ip
+-	CDISABLE
+-	mov r0, r7
+-	ldmfd sp!, {r7, lr}
+-
+-	P(POPARGS_,NARGS)
+-
+-	/* r0 is < 0 if there was an error.  */
+-	cmn r0, $124
+-	RETINSTR(cc, r14)
+-	b PLTJMP(SYSCALL_ERROR)
+-#endif
+-
+-	.fnend
+-PSEUDO_END (__socket)
+-
+-#ifndef NO_WEAK_ALIAS
+-weak_alias (__socket, socket)
+-#endif
+--- glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/syscalls.list	1969-12-31 19:00:00.000000000 -0500
++++ glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/syscalls.list	2006-03-21 15:54:56.000000000 -0500
+@@ -0,0 +1,34 @@
++# File name	Caller	Syscall name	# args	Strong name	Weak names
++
++# semaphore and shm system calls
++msgctl		-	msgctl		i:iip	__msgctl	msgctl
++msgget		-	msgget		i:ii	__msgget	msgget
++msgrcv		-	msgrcv		Ci:ibnii __msgrcv	msgrcv
++msgsnd		-	msgsnd		Ci:ibni	__msgsnd	msgsnd
++shmat		-	shmat		i:ipi	__shmat		shmat
++shmctl		-	shmctl		i:iip	__shmctl	shmctl
++shmdt		-	shmdt		i:s	__shmdt		shmdt
++shmget		-	shmget		i:iii	__shmget	shmget
++semop		-	semop		i:ipi	__semop		semop
++semtimedop	-	semtimedop	i:ipip	semtimedop
++semget		-	semget		i:iii	__semget	semget
++semctl		-	semctl		i:iiii	__semctl	semctl
++
++# proper socket implementations:
++accept		-	accept		Ci:iBN	__libc_accept	__accept accept
++bind		-	bind		i:ipi	__bind		bind
++connect		-	connect		Ci:ipi	__libc_connect	__connect_internal __connect connect
++getpeername	-	getpeername	i:ipp	__getpeername	getpeername
++getsockname	-	getsockname	i:ipp	__getsockname	getsockname
++getsockopt	-	getsockopt	i:iiiBN	__getsockopt	getsockopt
++listen		-	listen		i:ii	__listen	listen
++recv		-	recv		Ci:ibni	__libc_recv	__recv recv
++recvfrom	-	recvfrom	Ci:ibniBN	__libc_recvfrom	__recvfrom recvfrom
++recvmsg		-	recvmsg		Ci:ipi	__libc_recvmsg	__recvmsg recvmsg
++send		-	send		Ci:ibni	__libc_send	__send send
++sendmsg		-	sendmsg		Ci:ipi	__libc_sendmsg	__sendmsg sendmsg
++sendto		-	sendto		Ci:ibnibn	__libc_sendto	__sendto sendto
++setsockopt	-	setsockopt	i:iiibn	__setsockopt	setsockopt
++shutdown	-	shutdown	i:ii	__shutdown	shutdown
++socket		-	socket		i:iii	__socket	socket
++socketpair	-	socketpair	i:iiif	__socketpair	socketpair
+--- glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/sysdep.h	2005-11-16 14:03:42.000000000 -0500
++++ glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/sysdep.h	2006-05-12 11:16:26.000000000 -0400
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2005
++/* Copyright (C) 2005, 2006
+    Free Software Foundation, Inc.
+ 
+    This file is part of the GNU C Library.
+@@ -29,6 +29,12 @@
+ # error Kernel headers are too old
+ #endif
+ 
++/* Don't use stime, even if the kernel headers define it.  We have
++   settimeofday, and some EABI kernels have removed stime.  Similarly
++   use setitimer to implement alarm.  */
++#undef __NR_stime
++#undef __NR_alarm
++
+ /* The ARM EABI user interface passes the syscall number in r7, instead
+    of in the swi.  This is more efficient, because the kernel does not need
+    to fetch the swi from memory to find out the number; which can be painful
+--- glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/umount.c	1969-12-31 19:00:00.000000000 -0500
++++ glibc/ports/sysdeps/unix/sysv/linux/arm/eabi/umount.c	2006-03-21 15:54:56.000000000 -0500
+@@ -0,0 +1,31 @@
++/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Contributed by David Huggins-Daines <dhd@debian.org>, 2000.
++
++   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.  */
++
++/* Since we don't have an oldumount system call, do what the kernel
++   does down here.  */
++
++extern long int __umount2 (const char *name, int flags);
++
++long int
++__umount (const char *name)
++{
++  return __umount2 (name, 0);
++}
++
++weak_alias (__umount, umount);
+--- glibc/ports/sysdeps/unix/sysv/linux/arm/kernel-features.h	1969-12-31 19:00:00.000000000 -0500
++++ glibc/ports/sysdeps/unix/sysv/linux/arm/kernel-features.h	2006-06-07 13:38:32.000000000 -0400
+@@ -0,0 +1,49 @@
++/* Set flags signalling availability of kernel features based on given
++   kernel version number.
++   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.  */
++
++/* The utimes syscall was added before 2.6.1.  */
++#if __LINUX_KERNEL_VERSION >= 132609
++# define __ASSUME_UTIMES	1
++#endif
++
++/* The new getrlimit syscall was added sometime before 2.4.6.  */
++#if __LINUX_KERNEL_VERSION >= 132102
++#define __ASSUME_NEW_GETRLIMIT_SYSCALL	1
++#endif
++
++/* On ARM the truncate64/ftruncate64/mmap2/stat64/lstat64/fstat64
++   syscalls were introduced in 2.3.35.  */
++#if __LINUX_KERNEL_VERSION >= 131875
++# define __ASSUME_TRUNCATE64_SYSCALL	1
++# define __ASSUME_MMAP2_SYSCALL		1
++# define __ASSUME_STAT64_SYSCALL	1
++#endif
++
++/* Arm got fcntl64 in 2.4.4.  */
++#if __LINUX_KERNEL_VERSION >= 132100
++# define __ASSUME_FCNTL64		1
++#endif
++
++/* The vfork syscall on arm was definitely available in 2.4.  */
++#if __LINUX_KERNEL_VERSION >= 132097 && defined __i386__
++# define __ASSUME_VFORK_SYSCALL		1
++#endif
++
++#include_next <kernel-features.h>

Modified: glibc-package/branches/glibc-2.4/debian/patches/hppa/cvs-portshead.patch
===================================================================
--- glibc-package/branches/glibc-2.4/debian/patches/hppa/cvs-portshead.patch	2006-06-16 01:31:59 UTC (rev 1657)
+++ glibc-package/branches/glibc-2.4/debian/patches/hppa/cvs-portshead.patch	2006-06-18 16:21:12 UTC (rev 1658)
@@ -1,4 +1,4 @@
---- glibc-ports-2.4/ChangeLog.hppa	2006-02-28 17:20:13.000000000 -0500
+--- glibc/ports/ChangeLog.hppa	2006-02-28 17:20:13.000000000 -0500
 +++ glibc/ports/ChangeLog.hppa	2006-06-14 21:53:57.000000000 -0400
 @@ -1,3 +1,127 @@
 +2006-06-08  Carlos O'Donell  <carlos@systemhalted.org>
@@ -128,7 +128,7 @@
  2006-02-28  Roland McGrath  <roland@redhat.com>
  
  	* sysdeps/hppa/shlib-versions: New file.
---- glibc-ports-2.4/sysdeps/hppa/bits/link.h	2005-01-06 17:40:18.000000000 -0500
+--- glibc/ports/sysdeps/hppa/bits/link.h	2005-01-06 17:40:18.000000000 -0500
 +++ glibc/ports/sysdeps/hppa/bits/link.h	2006-05-26 23:02:19.000000000 -0400
 @@ -0,0 +1,57 @@
 +/* Copyright (C) 2005 Free Software Foundation, Inc.
@@ -188,7 +188,7 @@
 +					const char *symname);
 +
 +__END_DECLS
---- glibc-ports-2.4/sysdeps/hppa/dl-machine.h	2004-11-18 19:01:25.000000000 -0500
+--- glibc/ports/sysdeps/hppa/dl-machine.h	2004-11-18 19:01:25.000000000 -0500
 +++ glibc/ports/sysdeps/hppa/dl-machine.h	2006-05-26 23:02:19.000000000 -0400
 @@ -31,6 +31,7 @@
  #include <errno.h>
@@ -555,7 +555,7 @@
        
      case R_PARISC_NONE:	/* Alright, Wilbur. */
        return;
---- glibc-ports-2.4/sysdeps/hppa/dl-tls.h	1969-12-31 19:00:00.000000000 -0500
+--- glibc/ports/sysdeps/hppa/dl-tls.h	1969-12-31 19:00:00.000000000 -0500
 +++ glibc/ports/sysdeps/hppa/dl-tls.h	2006-04-21 22:21:00.000000000 -0400
 @@ -0,0 +1,29 @@
 +/* Thread-local storage handling in the ELF dynamic linker.  hppa version.
@@ -587,7 +587,7 @@
 +
 +
 +extern void *__tls_get_addr (tls_index *ti);
---- glibc-ports-2.4/sysdeps/hppa/dl-trampoline.S	1969-12-31 19:00:00.000000000 -0500
+--- glibc/ports/sysdeps/hppa/dl-trampoline.S	1969-12-31 19:00:00.000000000 -0500
 +++ glibc/ports/sysdeps/hppa/dl-trampoline.S	2006-05-14 19:54:47.000000000 -0400
 @@ -0,0 +1,197 @@
 +/* PLT trampolines. hppa version.
@@ -787,7 +787,7 @@
 +
 +
 +
---- glibc-ports-2.4/sysdeps/hppa/elf/configure	1969-12-31 19:00:00.000000000 -0500
+--- glibc/ports/sysdeps/hppa/elf/configure	1969-12-31 19:00:00.000000000 -0500
 +++ glibc/ports/sysdeps/hppa/elf/configure	2006-04-21 22:21:00.000000000 -0400
 @@ -0,0 +1,63 @@
 +# This file is generated from configure.in by Autoconf.  DO NOT EDIT!
@@ -853,7 +853,7 @@
 +
 +fi
 +fi
---- glibc-ports-2.4/sysdeps/hppa/elf/configure.in	1969-12-31 19:00:00.000000000 -0500
+--- glibc/ports/sysdeps/hppa/elf/configure.in	1969-12-31 19:00:00.000000000 -0500
 +++ glibc/ports/sysdeps/hppa/elf/configure.in	2006-04-21 22:21:00.000000000 -0400
 @@ -0,0 +1,49 @@
 +GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
@@ -905,7 +905,7 @@
 +  AC_DEFINE(HAVE_TLS_SUPPORT)
 +fi
 +fi
---- glibc-ports-2.4/sysdeps/hppa/ldsodefs.h	1969-12-31 19:00:00.000000000 -0500
+--- glibc/ports/sysdeps/hppa/ldsodefs.h	1969-12-31 19:00:00.000000000 -0500
 +++ glibc/ports/sysdeps/hppa/ldsodefs.h	2006-05-24 11:31:25.000000000 -0400
 @@ -0,0 +1,42 @@
 +/* Run-time dynamic linker data structures for loaded ELF shared objects.
@@ -950,7 +950,7 @@
 +#include_next <ldsodefs.h>
 +
 +#endif
---- glibc-ports-2.4/sysdeps/hppa/libc-tls.c	1969-12-31 19:00:00.000000000 -0500
+--- glibc/ports/sysdeps/hppa/libc-tls.c	1969-12-31 19:00:00.000000000 -0500
 +++ glibc/ports/sysdeps/hppa/libc-tls.c	2006-04-21 22:21:00.000000000 -0400
 @@ -0,0 +1,38 @@
 +/* Thread-local storage handling in the ELF dynamic linker.  hppa version.
@@ -991,7 +991,7 @@
 +
 +#endif
 +
---- glibc-ports-2.4/sysdeps/hppa/linuxthreads/pspinlock.c	1969-12-31 19:00:00.000000000 -0500
+--- glibc/ports/sysdeps/hppa/linuxthreads/pspinlock.c	1969-12-31 19:00:00.000000000 -0500
 +++ glibc/ports/sysdeps/hppa/linuxthreads/pspinlock.c	2006-04-19 01:35:34.000000000 -0400
 @@ -0,0 +1,82 @@
 +/* POSIX spinlock implementation.  hppa version.
@@ -1076,7 +1076,7 @@
 +  return 0;
 +}
 +weak_alias (__pthread_spin_destroy, pthread_spin_destroy)
---- glibc-ports-2.4/sysdeps/hppa/linuxthreads/pt-machine.h	1969-12-31 19:00:00.000000000 -0500
+--- glibc/ports/sysdeps/hppa/linuxthreads/pt-machine.h	1969-12-31 19:00:00.000000000 -0500
 +++ glibc/ports/sysdeps/hppa/linuxthreads/pt-machine.h	2006-04-19 01:35:34.000000000 -0400
 @@ -0,0 +1,134 @@
 +/* Machine-dependent pthreads configuration and inline functions.
@@ -1213,7 +1213,7 @@
 +}
 +		
 +#endif /* pt-machine.h */
---- glibc-ports-2.4/sysdeps/hppa/linuxthreads/tls.h	1969-12-31 19:00:00.000000000 -0500
+--- glibc/ports/sysdeps/hppa/linuxthreads/tls.h	1969-12-31 19:00:00.000000000 -0500
 +++ glibc/ports/sysdeps/hppa/linuxthreads/tls.h	2006-04-19 01:35:34.000000000 -0400
 @@ -0,0 +1,163 @@
 +/* Definition for thread-local data handling.  linuxthreads/hppa version.
@@ -1379,7 +1379,7 @@
 +#endif	/* HAVE_TLS_SUPPORT */
 +
 +#endif	/* tls.h */
---- glibc-ports-2.4/sysdeps/unix/sysv/linux/hppa/bits/atomic.h	1969-12-31 19:00:00.000000000 -0500
+--- glibc/ports/sysdeps/unix/sysv/linux/hppa/bits/atomic.h	1969-12-31 19:00:00.000000000 -0500
 +++ glibc/ports/sysdeps/unix/sysv/linux/hppa/bits/atomic.h	2006-06-08 21:25:30.000000000 -0400
 @@ -0,0 +1,120 @@
 +/* Copyright (C) 2003 Free Software Foundation, Inc.
@@ -1502,7 +1502,7 @@
 +
 +#endif	/* bits/atomic.h */
 +
---- glibc-ports-2.4/sysdeps/unix/sysv/linux/hppa/clone.S	2005-05-26 10:30:47.000000000 -0400
+--- glibc/ports/sysdeps/unix/sysv/linux/hppa/clone.S	2005-05-26 10:30:47.000000000 -0400
 +++ glibc/ports/sysdeps/unix/sysv/linux/hppa/clone.S	2006-05-26 23:02:21.000000000 -0400
 @@ -26,35 +26,62 @@
  #define _ERRNO_H	1
@@ -1617,7 +1617,7 @@
  
  PSEUDO_END(__clone)
  
---- glibc-ports-2.4/sysdeps/unix/sysv/linux/hppa/sysdep.c	2003-10-15 01:45:16.000000000 -0400
+--- glibc/ports/sysdeps/unix/sysv/linux/hppa/sysdep.c	2003-10-15 01:45:16.000000000 -0400
 +++ glibc/ports/sysdeps/unix/sysv/linux/hppa/sysdep.c	2006-05-26 23:02:21.000000000 -0400
 @@ -16,12 +16,12 @@
     Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA

Modified: glibc-package/branches/glibc-2.4/debian/patches/series
===================================================================
--- glibc-package/branches/glibc-2.4/debian/patches/series	2006-06-16 01:31:59 UTC (rev 1657)
+++ glibc-package/branches/glibc-2.4/debian/patches/series	2006-06-18 16:21:12 UTC (rev 1658)
@@ -49,6 +49,7 @@
 
 amd64/local-biarch.diff -p1
 
+arm/cvs-portshead.patch
 arm/cvs-gcc4-inline.diff -p0
 arm/local-dwarf2-buildfix.diff -p0
 arm/local-ioperm.diff -p0

Modified: glibc-package/branches/glibc-2.4/debian/sysdeps/arm.mk
===================================================================
--- glibc-package/branches/glibc-2.4/debian/sysdeps/arm.mk	2006-06-16 01:31:59 UTC (rev 1657)
+++ glibc-package/branches/glibc-2.4/debian/sysdeps/arm.mk	2006-06-18 16:21:12 UTC (rev 1658)
@@ -1,2 +1,3 @@
 libc_add-ons = ports linuxthreads $(add-ons)
 
+libc_extra_config_options = $(extra_config_options) --without-__thread --disable-sanity-checks



Reply to: