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: