[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commits] r20054 - in /fsf/trunk/libc: ./ nptl/ nptl/sysdeps/pthread/ nptl/sysdeps/unix/sysv/linux/ ports/ ports/sysdeps/arm/ ports/sy...
- To: commits@xxxxxxxxxx
- Subject: [Commits] r20054 - in /fsf/trunk/libc: ./ nptl/ nptl/sysdeps/pthread/ nptl/sysdeps/unix/sysv/linux/ ports/ ports/sysdeps/arm/ ports/sy...
- From: eglibc@xxxxxxxxxx
- Date: Thu, 09 Aug 2012 00:01:38 -0000
Author: eglibc
Date: Thu Aug 9 00:01:37 2012
New Revision: 20054
Log:
Import glibc-mainline for 2012-08-09
Added:
fsf/trunk/libc/ports/sysdeps/arm/sotruss-lib.c
fsf/trunk/libc/ports/sysdeps/m68k/coldfire/fpu/bits/
fsf/trunk/libc/ports/sysdeps/m68k/coldfire/fpu/bits/mathinline.h
fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S
Removed:
fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.c
Modified:
fsf/trunk/libc/ChangeLog
fsf/trunk/libc/nptl/ChangeLog
fsf/trunk/libc/nptl/allocatestack.c
fsf/trunk/libc/nptl/pthread_cancel.c
fsf/trunk/libc/nptl/sysdeps/pthread/createthread.c
fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/pt-raise.c
fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/pthread_kill.c
fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/raise.c
fsf/trunk/libc/ports/ChangeLog.alpha
fsf/trunk/libc/ports/ChangeLog.arm
fsf/trunk/libc/ports/ChangeLog.m68k
fsf/trunk/libc/ports/ChangeLog.tile
fsf/trunk/libc/ports/sysdeps/arm/dl-irel.h
fsf/trunk/libc/ports/sysdeps/arm/dl-machine.h
fsf/trunk/libc/ports/sysdeps/arm/ldsodefs.h
fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fxstat.c
fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fxstatat.c
fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S
fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S
fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/kernel-features.h
fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/lxstat.c
fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/xstat.c
fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/xstatconv.c
fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/xstatconv.h
fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/arm/dl-machine.h
fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h
fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/bits/atomic.h
fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h
fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/kernel-features.h
fsf/trunk/libc/sysdeps/posix/fdopendir.c
fsf/trunk/libc/sysdeps/unix/sysv/linux/i386/readdir64_r.c
fsf/trunk/libc/sysdeps/unix/sysv/linux/kernel-features.h
fsf/trunk/libc/sysdeps/unix/sysv/linux/readdir64_r.c
Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Thu Aug 9 00:01:37 2012
@@ -1,3 +1,16 @@
+2012-08-08 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_TGKILL):
+ Remove.
+
+2012-08-08 Roland McGrath <roland@xxxxxxxxxxxxx>
+
+ * sysdeps/posix/fdopendir.c: Include <stddef.h>.
+
+ * sysdeps/unix/sysv/linux/readdir64_r.c: Update #include for
+ sysdeps/unix -> sysdeps/posix move.
+ * sysdeps/unix/sysv/linux/i386/readdir64_r.c: Likewise.
+
2012-08-07 Allan McRae <allan@xxxxxxxxxxxxx>
[BZ #14303]
Modified: fsf/trunk/libc/nptl/ChangeLog
==============================================================================
--- fsf/trunk/libc/nptl/ChangeLog (original)
+++ fsf/trunk/libc/nptl/ChangeLog Thu Aug 9 00:01:37 2012
@@ -1,3 +1,26 @@
+2012-08-08 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * allocatestack.c (setxid_signal_thread) [__ASSUME_TGKILL]: Make
+ code unconditional.
+ (setxid_signal_thread) [!__ASSUME_TGKILL]: Remove conditional code.
+ * pthread_cancel.c (pthread_cancel) [__ASSUME_TGKILL]: Make code
+ unconditional.
+ (pthread_cancel) [!__ASSUME_TGKILL]: Remove conditional code.
+ * sysdeps/pthread/createthread.c (do_clone) [__ASSUME_TGKILL]:
+ Make code unconditional.
+ (do_clone) [!__ASSUME_TGKILL]: Remove conditional code.
+ * sysdeps/unix/sysv/linux/pt-raise.c (raise) [__ASSUME_TGKILL ||
+ __NR_tgkill]: Make code unconditional.
+ (raise) [__ASSUME_TGKILL]: Likewise.
+ (raise) [!__ASSUME_TGKILL]: Remove conditional code.
+ * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill)
+ [__ASSUME_TGKILL]: Make code unconditional.
+ (__pthread_kill) [!__ASSUME_TGKILL]: Remove conditional code.
+ * sysdeps/unix/sysv/linux/raise.c (raise) [__ASSUME_TGKILL ||
+ __NR_tgkill]: Make code unconditional.
+ (raise) [__ASSUME_TGKILL]: Likewise.
+ (raise) [!__ASSUME_TGKILL]: Remove conditional code.
+
2012-08-07 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
* sysdeps/pthread/createthread.c (create_thread)
Modified: fsf/trunk/libc/nptl/allocatestack.c
==============================================================================
--- fsf/trunk/libc/nptl/allocatestack.c (original)
+++ fsf/trunk/libc/nptl/allocatestack.c Thu Aug 9 00:01:37 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2007, 2009, 2010, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 2002.
@@ -1037,18 +1037,8 @@
int val;
INTERNAL_SYSCALL_DECL (err);
-#if __ASSUME_TGKILL
val = INTERNAL_SYSCALL (tgkill, err, 3, THREAD_GETMEM (THREAD_SELF, pid),
t->tid, SIGSETXID);
-#else
-# ifdef __NR_tgkill
- val = INTERNAL_SYSCALL (tgkill, err, 3, THREAD_GETMEM (THREAD_SELF, pid),
- t->tid, SIGSETXID);
- if (INTERNAL_SYSCALL_ERROR_P (val, err)
- && INTERNAL_SYSCALL_ERRNO (val, err) == ENOSYS)
-# endif
- val = INTERNAL_SYSCALL (tkill, err, 2, t->tid, SIGSETXID);
-#endif
/* If this failed, it must have had not started yet or else exited. */
if (!INTERNAL_SYSCALL_ERROR_P (val, err))
Modified: fsf/trunk/libc/nptl/pthread_cancel.c
==============================================================================
--- fsf/trunk/libc/nptl/pthread_cancel.c (original)
+++ fsf/trunk/libc/nptl/pthread_cancel.c Thu Aug 9 00:01:37 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 2002.
@@ -75,20 +75,9 @@
a signal handler. But this is no allowed, pthread_cancel
is not guaranteed to be async-safe. */
int val;
-#if __ASSUME_TGKILL
val = INTERNAL_SYSCALL (tgkill, err, 3,
THREAD_GETMEM (THREAD_SELF, pid), pd->tid,
SIGCANCEL);
-#else
-# ifdef __NR_tgkill
- val = INTERNAL_SYSCALL (tgkill, err, 3,
- THREAD_GETMEM (THREAD_SELF, pid), pd->tid,
- SIGCANCEL);
- if (INTERNAL_SYSCALL_ERROR_P (val, err)
- && INTERNAL_SYSCALL_ERRNO (val, err) == ENOSYS)
-# endif
- val = INTERNAL_SYSCALL (tkill, err, 2, pd->tid, SIGCANCEL);
-#endif
if (INTERNAL_SYSCALL_ERROR_P (val, err))
result = INTERNAL_SYSCALL_ERRNO (val, err);
Modified: fsf/trunk/libc/nptl/sysdeps/pthread/createthread.c
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/pthread/createthread.c (original)
+++ fsf/trunk/libc/nptl/sysdeps/pthread/createthread.c Thu Aug 9 00:01:37 2012
@@ -109,13 +109,9 @@
send it the cancellation signal. */
INTERNAL_SYSCALL_DECL (err2);
err_out:
-#if __ASSUME_TGKILL
(void) INTERNAL_SYSCALL (tgkill, err2, 3,
THREAD_GETMEM (THREAD_SELF, pid),
pd->tid, SIGCANCEL);
-#else
- (void) INTERNAL_SYSCALL (tkill, err2, 2, pd->tid, SIGCANCEL);
-#endif
/* We do not free the stack here because the canceled thread
itself will do this. */
Modified: fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/pt-raise.c
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/pt-raise.c (original)
+++ fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/pt-raise.c Thu Aug 9 00:01:37 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 2002.
@@ -27,25 +27,13 @@
raise (sig)
int sig;
{
-#if __ASSUME_TGKILL || defined __NR_tgkill
/* raise is an async-safe function. It could be called while the
fork function temporarily invalidated the PID field. Adjust for
that. */
pid_t pid = THREAD_GETMEM (THREAD_SELF, pid);
if (__builtin_expect (pid < 0, 0))
pid = -pid;
-#endif
-#if __ASSUME_TGKILL
return INLINE_SYSCALL (tgkill, 3, pid, THREAD_GETMEM (THREAD_SELF, tid),
sig);
-#else
-# ifdef __NR_tgkill
- int res = INLINE_SYSCALL (tgkill, 3, pid, THREAD_GETMEM (THREAD_SELF, tid),
- sig);
- if (res != -1 || errno != ENOSYS)
- return res;
-# endif
- return INLINE_SYSCALL (tkill, 2, THREAD_GETMEM (THREAD_SELF, tid), sig);
-#endif
}
Modified: fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/pthread_kill.c
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/pthread_kill.c (original)
+++ fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/pthread_kill.c Thu Aug 9 00:01:37 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004, 2006, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 2002.
@@ -58,18 +58,8 @@
fork, it would have to happen in a signal handler. But this is
no allowed, pthread_kill is not guaranteed to be async-safe. */
int val;
-#if __ASSUME_TGKILL
val = INTERNAL_SYSCALL (tgkill, err, 3, THREAD_GETMEM (THREAD_SELF, pid),
tid, signo);
-#else
-# ifdef __NR_tgkill
- val = INTERNAL_SYSCALL (tgkill, err, 3, THREAD_GETMEM (THREAD_SELF, pid),
- tid, signo);
- if (INTERNAL_SYSCALL_ERROR_P (val, err)
- && INTERNAL_SYSCALL_ERRNO (val, err) == ENOSYS)
-# endif
- val = INTERNAL_SYSCALL (tkill, err, 2, tid, signo);
-#endif
return (INTERNAL_SYSCALL_ERROR_P (val, err)
? INTERNAL_SYSCALL_ERRNO (val, err) : 0);
Modified: fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/raise.c
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/raise.c (original)
+++ fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/raise.c Thu Aug 9 00:01:37 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 2002.
@@ -29,9 +29,7 @@
int sig;
{
struct pthread *pd = THREAD_SELF;
-#if __ASSUME_TGKILL || defined __NR_tgkill
pid_t pid = THREAD_GETMEM (pd, pid);
-#endif
pid_t selftid = THREAD_GETMEM (pd, tid);
if (selftid == 0)
{
@@ -44,31 +42,18 @@
#endif
THREAD_SETMEM (pd, tid, selftid);
-#if __ASSUME_TGKILL || defined __NR_tgkill
/* We do not set the PID field in the TID here since we might be
called from a signal handler while the thread executes fork. */
pid = selftid;
-#endif
}
-#if __ASSUME_TGKILL || defined __NR_tgkill
else
/* raise is an async-safe function. It could be called while the
fork/vfork function temporarily invalidated the PID field. Adjust for
that. */
if (__builtin_expect (pid <= 0, 0))
pid = (pid & INT_MAX) == 0 ? selftid : -pid;
-#endif
-#if __ASSUME_TGKILL
return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
-#else
-# ifdef __NR_tgkill
- int res = INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
- if (res != -1 || errno != ENOSYS)
- return res;
-# endif
- return INLINE_SYSCALL (tkill, 2, selftid, sig);
-#endif
}
libc_hidden_def (raise)
weak_alias (raise, gsignal)
Modified: fsf/trunk/libc/ports/ChangeLog.alpha
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.alpha (original)
+++ fsf/trunk/libc/ports/ChangeLog.alpha Thu Aug 9 00:01:37 2012
@@ -1,3 +1,30 @@
+2012-08-08 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/unix/sysv/linux/alpha/kernel-features.h
+ (__ASSUME_TGKILL): Remove.
+
+2012-08-08 Richard Henderson <rth@xxxxxxxxxx>
+
+ * sysdeps/unix/sysv/linux/alpha/kernel-features.h
+ (__ASSUME_IEEE_RAISE_EXCEPTION): Remove.
+ * sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S: New file.
+ * sysdeps/unix/sysv/linux/alpha/fraiseexcpt.c: Remove.
+
+ * sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S: Use dwarf2
+ cfi markup for unwind. Adjust stack early so that the normal
+ syscall error path can be used.
+ * sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S: Likewise.
+
+ * sysdeps/unix/sysv/linux/alpha/kernel-features.h
+ (__ASSUME_STAT64_SYSCALL): Remove.
+ * sysdeps/unix/sysv/linux/alpha/fxstat.c: Remove test
+ for __ASSUME_STAT64_SYSCALL.
+ * sysdeps/unsx/sysv/linux/alpha/fxstatat.c: Likewise.
+ * sysdeps/unsx/sysv/linux/alpha/lxstat.c: Likewise.
+ * sysdeps/unsx/sysv/linux/alpha/xstat.c: Likewise.
+ * sysdeps/unsx/sysv/linux/alpha/xstatconv.c: Likewise.
+ * sysdeps/unsx/sysv/linux/alpha/xstatconv.h: Likewise.
+
2012-08-07 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
* sysdeps/unix/sysv/linux/alpha/kernel-features.h
Modified: fsf/trunk/libc/ports/ChangeLog.arm
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.arm (original)
+++ fsf/trunk/libc/ports/ChangeLog.arm Thu Aug 9 00:01:37 2012
@@ -1,3 +1,23 @@
+2012-08-08 Roland McGrath <roland@xxxxxxxxxxxxx>
+
+ * sysdeps/arm/sotruss-lib.c: New file.
+
+ * sysdeps/arm/ldsodefs.h (ARCH_PLTEXIT_MEMBERS): Use const on
+ `struct La_arm_regs *' parameter.
+
+ * sysdeps/unix/sysv/linux/arm/dl-machine.h: Move #include outside of
+ [!dl_machine_h].
+
+ * sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h
+ [!__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4]
+ (__arch_compare_and_exchange_val_32_acq): Use uint32_t rather than
+ __typeof (...) for non-pointer variables derived from the arguments.
+
+ * sysdeps/arm/dl-irel.h: Include <ldsodefs.h>.
+
+ * sysdeps/arm/dl-machine.h (elf_machine_load_address): Use proper type
+ for __dl_start declaration.
+
2012-08-07 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
* sysdeps/unix/sysv/linux/arm/configure.in (arch_minimum_kernel):
Modified: fsf/trunk/libc/ports/ChangeLog.m68k
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.m68k (original)
+++ fsf/trunk/libc/ports/ChangeLog.m68k Thu Aug 9 00:01:37 2012
@@ -1,3 +1,16 @@
+2012-08-08 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/unix/sysv/linux/m68k/kernel-features.h
+ (__ASSUME_TGKILL): Remove.
+
+2012-08-08 Andreas Schwab <schwab@xxxxxxxxxxxxxx>
+
+ * sysdeps/m68k/coldfire/fpu/bits/mathinline.h: New file.
+
+ * sysdeps/unix/sysv/linux/m68k/coldfire/nptl/bits/atomic.h
+ (atomic_compare_and_exchange_val_acq) [!SHARED]: Add cast to avoid
+ warning.
+
2012-08-07 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
* sysdeps/unix/sysv/linux/m68k/configure.in (arch_minimum_kernel):
Modified: fsf/trunk/libc/ports/ChangeLog.tile
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.tile (original)
+++ fsf/trunk/libc/ports/ChangeLog.tile Thu Aug 9 00:01:37 2012
@@ -1,3 +1,8 @@
+2012-08-08 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/unix/sysv/linux/tile/kernel-features.h
+ (__ASSUME_TGKILL): Remove.
+
2012-08-02 Chris Metcalf <cmetcalf@xxxxxxxxxx>
* sysdeps/tile/sysdep.h: Do not define ASM_TYPE_DIRECTIVE.
Modified: fsf/trunk/libc/ports/sysdeps/arm/dl-irel.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/arm/dl-irel.h (original)
+++ fsf/trunk/libc/ports/sysdeps/arm/dl-irel.h Thu Aug 9 00:01:37 2012
@@ -1,6 +1,6 @@
/* Machine-dependent ELF indirect relocation inline functions.
ARM version.
- Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
+ Copyright (C) 2009-2012 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
@@ -22,6 +22,7 @@
#include <stdio.h>
#include <unistd.h>
+#include <ldsodefs.h>
#define ELF_MACHINE_IREL 1
Modified: fsf/trunk/libc/ports/sysdeps/arm/dl-machine.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/arm/dl-machine.h (original)
+++ fsf/trunk/libc/ports/sysdeps/arm/dl-machine.h Thu Aug 9 00:01:37 2012
@@ -70,7 +70,7 @@
static inline Elf32_Addr __attribute__ ((unused))
elf_machine_load_address (void)
{
- extern void __dl_start asm ("_dl_start");
+ extern Elf32_Addr internal_function __dl_start (void *) asm ("_dl_start");
Elf32_Addr got_addr = (Elf32_Addr) &__dl_start;
Elf32_Addr pcrel_addr;
#ifdef __thumb__
Modified: fsf/trunk/libc/ports/sysdeps/arm/ldsodefs.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/arm/ldsodefs.h (original)
+++ fsf/trunk/libc/ports/sysdeps/arm/ldsodefs.h Thu Aug 9 00:01:37 2012
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 2005 Free Software Foundation, Inc.
+ Copyright (C) 2005-2012 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
@@ -32,7 +32,7 @@
#define ARCH_PLTEXIT_MEMBERS \
Elf32_Addr (*arm_gnu_pltexit) (Elf32_Sym *, unsigned int, uintptr_t *, \
- uintptr_t *, struct La_arm_regs *, \
+ uintptr_t *, const struct La_arm_regs *, \
struct La_arm_retval *, const char *)
#include_next <ldsodefs.h>
Added: fsf/trunk/libc/ports/sysdeps/arm/sotruss-lib.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/arm/sotruss-lib.c (added)
+++ fsf/trunk/libc/ports/sysdeps/arm/sotruss-lib.c Thu Aug 9 00:01:37 2012
@@ -1,0 +1,49 @@
+/* Override generic sotruss-lib.c to define actual functions for ARM.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define HAVE_ARCH_PLTENTER
+#define HAVE_ARCH_PLTEXIT
+
+#include <elf/sotruss-lib.c>
+
+ElfW(Addr)
+la_arm_gnu_pltenter (ElfW(Sym) *sym __attribute__ ((unused)),
+ unsigned int ndx __attribute__ ((unused)),
+ uintptr_t *refcook, uintptr_t *defcook,
+ La_arm_regs *regs, unsigned int *flags,
+ const char *symname, long int *framesizep)
+{
+ print_enter (refcook, defcook, symname,
+ regs->lr_reg[0], regs->lr_reg[1], regs->lr_reg[2],
+ *flags);
+
+ /* No need to copy anything, we will not need the parameters in any case. */
+ *framesizep = 0;
+
+ return sym->st_value;
+}
+
+unsigned int
+la_arm_gnu_pltexit (ElfW(Sym) *sym, unsigned int ndx, uintptr_t *refcook,
+ uintptr_t *defcook, const struct La_arm_regs *inregs,
+ struct La_arm_retval *outregs, const char *symname)
+{
+ print_exit (refcook, defcook, symname, outregs->lrv_reg[0]);
+
+ return 0;
+}
Added: fsf/trunk/libc/ports/sysdeps/m68k/coldfire/fpu/bits/mathinline.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/m68k/coldfire/fpu/bits/mathinline.h (added)
+++ fsf/trunk/libc/ports/sysdeps/m68k/coldfire/fpu/bits/mathinline.h Thu Aug 9 00:01:37 2012
@@ -1,0 +1,44 @@
+/* Inline math functions for Coldfire.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _MATH_H
+# error "Never use <bits/mathinline.h> directly; include <math.h> instead."
+#endif
+
+#ifndef __extern_always_inline
+# define __MATH_INLINE __inline
+#else
+# define __MATH_INLINE __extern_always_inline
+#endif
+
+#if defined __USE_ISOC99 && defined __GNUC__
+
+/* Test for negative number. Used in the signbit macro. */
+__MATH_INLINE int
+__NTH (__signbitf (float __x))
+{
+ return __builtin_signbitf (__x);
+}
+
+__MATH_INLINE int
+__NTH (__signbit (double __x))
+{
+ return __builtin_signbit (__x);
+}
+
+#endif
Added: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S (added)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.S Thu Aug 9 00:01:37 2012
@@ -1,0 +1,56 @@
+/* Copyright (C) 2004-2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library. If not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include "kernel_sysinfo.h"
+
+
+ .text
+
+ENTRY(__feraiseexcept)
+ cfi_startproc
+ PSEUDO_PROLOGUE
+
+ lda sp, -16(sp)
+ cfi_adjust_cfa_offset(16)
+
+ ldi v0, __NR_osf_setsysinfo
+ stq a0, 0(sp)
+ mov sp, a1
+ ldi a0, SSI_IEEE_RAISE_EXCEPTION
+ call_pal PAL_callsys
+
+ lda sp, 16(sp)
+ cfi_adjust_cfa_offset(-16)
+
+ /* Here in libm we can't use SYSCALL_ERROR_LABEL. Nor is it clear
+ that we'd want to set errno anyway. All we're required to do is
+ return non-zero on error. Which is exactly A3. */
+ mov a3, v0
+ ret
+
+END(__feraiseexcept)
+ cfi_endproc
+
+#include <shlib-compat.h>
+#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
+strong_alias (__feraiseexcept, __old_feraiseexcept)
+compat_symbol (libm, __old_feraiseexcept, feraiseexcept, GLIBC_2_1);
+#endif
+
+libm_hidden_ver (__feraiseexcept, feraiseexcept)
+versioned_symbol (libm, __feraiseexcept, feraiseexcept, GLIBC_2_2);
Removed: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.c (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fraiseexcpt.c (removed)
@@ -1,91 +1,0 @@
-/* Copyright (C) 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
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <fenv_libc.h>
-#include <sysdep.h>
-#include <float.h>
-#include <kernel-features.h>
-#include "kernel_sysinfo.h"
-
-
-int
-__feraiseexcept (int excepts)
-{
- INTERNAL_SYSCALL_DECL (err);
- unsigned long t = excepts;
- long r;
-
- r = INTERNAL_SYSCALL (osf_setsysinfo, err, 2, SSI_IEEE_RAISE_EXCEPTION, &t);
-
-#ifndef __ASSUME_IEEE_RAISE_EXCEPTION
- if (!INTERNAL_SYSCALL_ERROR_P (r, err))
- return 0;
-
- double d;
-
- /* If we got an error from SSI_IEEE_RAISE_EXCEPTION, assume it means that
- the system call isn't actually implemented. Do the best we can. */
-
- /* Invalid implemented with 0 / 0 -> NaN. */
- if (excepts & FE_INVALID)
- __asm__ __volatile__ ("divs/su $f31,$f31,%0; trapb" : "=f"(d) : );
-
- /* Division By Zero implemented with 1 / 0 -> NaN. */
- if (excepts & FE_DIVBYZERO)
- __asm__ __volatile__ ("divs/su %1,$f31,%0; trapb" : "=&f"(d) : "f"(1.0f));
-
- /* Overflow and underflow cannot be had all by themselves. We can
- generate them with arithmetic, but we always get INEXACT raised
- at the same time. Prepare to undo. */
- if ((excepts & (FE_OVERFLOW | FE_UNDERFLOW)) && !(excepts & FE_INEXACT))
- INTERNAL_SYSCALL (osf_getsysinfo, err, 2, GSI_IEEE_FP_CONTROL, &t);
-
- /* Overflow implemented with FLT_MAX + FLT_MAX -> Inf. */
- if (excepts & FE_OVERFLOW)
- __asm__ __volatile__ ("adds/sui %1,%1,%0; trapb"
- : "=&f"(d) : "f"(FLT_MAX));
-
- /* Underflow implemented with FLT_MIN * FLT_MIN -> 0. */
- if (excepts & FE_UNDERFLOW)
- __asm__ __volatile__ ("muls/sui %1,%1,%0; trapb"
- : "=&f"(d) : "f"(FLT_MIN));
-
- /* Inexact implemented with (long)0.5 -> 0. */
- if ((excepts & (FE_OVERFLOW | FE_UNDERFLOW | FE_INEXACT)) == FE_INEXACT)
- __asm__ __volatile__ ("cvttq/svi %1,%0; trapb" : "=&f"(d) : "f"(0.5f));
-
- /* If we raised inexact when not asked, and inexact was not previously
- raised, then clear that exception. */
- if ((excepts & (FE_OVERFLOW | FE_UNDERFLOW))
- && !((excepts | t) & FE_INEXACT))
- {
- t |= excepts & SWCR_STATUS_MASK;
- INTERNAL_SYSCALL (osf_setsysinfo, err, 2, SSI_IEEE_FP_CONTROL, &t);
- }
-#endif /* !__ASSUME_IEEE_RAISE_EXCEPTION */
-
- return 0;
-}
-
-#include <shlib-compat.h>
-#if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_2)
-strong_alias (__feraiseexcept, __old_feraiseexcept)
-compat_symbol (libm, __old_feraiseexcept, feraiseexcept, GLIBC_2_1);
-#endif
-
-libm_hidden_ver (__feraiseexcept, feraiseexcept)
-versioned_symbol (libm, __feraiseexcept, feraiseexcept, GLIBC_2_2);
Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fxstat.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fxstat.c (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fxstat.c Thu Aug 9 00:01:37 2012
@@ -1,5 +1,5 @@
/* fxstat using old-style Unix stat system call.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004-2012 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
@@ -37,7 +37,6 @@
int result;
struct kernel_stat kbuf;
-#if __ASSUME_STAT64_SYSCALL > 0
if (vers == _STAT_VER_KERNEL64)
{
result = INTERNAL_SYSCALL (fstat64, err, 2, fd, buf);
@@ -46,22 +45,6 @@
__set_errno (INTERNAL_SYSCALL_ERRNO (result, err));
return -1;
}
-#elif defined __NR_fstat64
- if (vers == _STAT_VER_KERNEL64 && !__libc_missing_axp_stat64)
- {
- int errno_out;
- result = INTERNAL_SYSCALL (fstat64, err, 2, fd, buf);
- if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
- return result;
- errno_out = INTERNAL_SYSCALL_ERRNO (result, err);
- if (errno_out != ENOSYS)
- {
- __set_errno (errno_out);
- return -1;
- }
- __libc_missing_axp_stat64 = 1;
- }
-#endif
result = INTERNAL_SYSCALL (fstat, err, 2, fd, &kbuf);
if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fxstatat.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fxstatat.c (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/fxstatat.c Thu Aug 9 00:01:37 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2012 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
@@ -31,9 +31,6 @@
#ifdef __ASSUME_ATFCTS
# define __have_atfcts 1
-#endif
-#ifdef __ASSUME_STAT64_SYSCALL
-# define __libc_missing_axp_stat64 0
#endif
/* Get information about the file NAME in BUF. */
@@ -99,38 +96,14 @@
file = buf;
}
-#ifdef __NR_stat64
- if (!__libc_missing_axp_stat64)
- {
- if (flag & AT_SYMLINK_NOFOLLOW)
- result = INTERNAL_SYSCALL (lstat64, err, 2, file, st);
- else
- result = INTERNAL_SYSCALL (stat64, err, 2, file, st);
+ if (flag & AT_SYMLINK_NOFOLLOW)
+ result = INTERNAL_SYSCALL (lstat64, err, 2, file, st);
+ else
+ result = INTERNAL_SYSCALL (stat64, err, 2, file, st);
+ if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
+ return result;
- if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
- return result;
- errno_out = INTERNAL_SYSCALL_ERRNO (result, err);
-# if __ASSUME_STAT64_SYSCALL == 0
- if (errno_out == ENOSYS)
- __libc_missing_axp_stat64 = 1;
- else
-# endif
- goto fail;
- }
-#endif /* __NR_stat64 */
-
- struct kernel_stat kst;
-
- if (flag & AT_SYMLINK_NOFOLLOW)
- result = INTERNAL_SYSCALL (lstat, err, 2, file, &kst);
- else
- result = INTERNAL_SYSCALL (stat, err, 2, file, &kst);
-
- if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
- return __xstat_conv (vers, &kst, st);
errno_out = INTERNAL_SYSCALL_ERRNO (result, err);
-
- fail:
__atfct_seterrno (errno_out, fd, buf);
return -1;
Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S Thu Aug 9 00:01:37 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1995, 1996, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger <davidm@xxxxxxxxxxxxx>, 1995.
@@ -22,39 +22,29 @@
.text
-LEAF(__ieee_get_fp_control, 16)
-#ifdef PROF
- ldgp gp, 0(pv)
+ENTRY(__ieee_get_fp_control)
+ cfi_startproc
+ PSEUDO_PROLOGUE
+
lda sp, -16(sp)
- .set noat
- lda AT, _mcount
- jsr AT, (AT), _mcount
- .set at
- .prologue 1
-#elif defined PIC
- lda sp, -16(sp)
- .prologue 0
-#else
- ldgp gp, 0(pv)
- lda sp, -16(sp)
- .prologue 1
-#endif
+ cfi_adjust_cfa_offset(16)
mov sp, a1
ldi a0, GSI_IEEE_FP_CONTROL
ldi v0, __NR_osf_getsysinfo
call_pal PAL_callsys
- bne a3, $error
- ldq v0, 0(sp)
+ ldq t0, 0(sp)
lda sp, 16(sp)
+ cfi_adjust_cfa_offset(-16)
+
+ bne a3, SYSCALL_ERROR_LABEL
+
+ mov t0, v0
ret
-$error:
- lda sp, 16(sp)
- SYSCALL_ERROR_HANDLER
-
- END(__ieee_get_fp_control)
+PSEUDO_END(__ieee_get_fp_control)
+ cfi_endproc
libc_hidden_def(__ieee_get_fp_control)
weak_alias (__ieee_get_fp_control, ieee_get_fp_control)
Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S Thu Aug 9 00:01:37 2012
@@ -1,5 +1,4 @@
-/* Copyright (C) 1993, 1995, 1996, 1997, 2003, 2004
- Free Software Foundation, Inc.
+/* Copyright (C) 1993-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger <davidm@xxxxxxxxxxxxx>, 1995.
@@ -21,40 +20,27 @@
#include "kernel_sysinfo.h"
-LEAF(__ieee_set_fp_control, 16)
-#ifdef PROF
- ldgp gp, 0(pv)
+ENTRY(__ieee_set_fp_control)
+ cfi_startproc
+ PSEUDO_PROLOGUE
+
lda sp, -16(sp)
- .set noat
- lda AT, _mcount
- jsr AT, (AT), _mcount
- .set at
- .prologue 1
-#elif defined PIC
- lda sp, -16(sp)
- .prologue 0
-#else
- ldgp gp, 0(pv)
- lda sp, -16(sp)
- .prologue 1
-#endif
+ cfi_adjust_cfa_offset(16)
+ ldi v0, __NR_osf_setsysinfo
stq a0, 0(sp)
mov sp, a1
ldi a0, SSI_IEEE_FP_CONTROL
- ldi v0, __NR_osf_setsysinfo
call_pal PAL_callsys
- bne a3, $error
+ lda sp, 16(sp)
+ cfi_adjust_cfa_offset(-16)
- lda sp, 16(sp)
+ bne a3, SYSCALL_ERROR_LABEL
ret
-$error:
- lda sp, 16(sp)
- SYSCALL_ERROR_HANDLER
-
- END(__ieee_set_fp_control)
+PSEUDO_END(__ieee_set_fp_control)
+ cfi_endproc
libc_hidden_def(__ieee_set_fp_control)
weak_alias (__ieee_set_fp_control, ieee_set_fp_control)
Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/kernel-features.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/kernel-features.h (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/kernel-features.h Thu Aug 9 00:01:37 2012
@@ -20,16 +20,7 @@
#ifndef _KERNEL_FEATURES_H
#define _KERNEL_FEATURES_H 1
-/* The tgkill syscall was introduced for alpha 2.6.0-test1. */
-#define __ASSUME_TGKILL 1
-
-/* Starting with version 2.6.4, the stat64 syscalls are available. */
-#define __ASSUME_STAT64_SYSCALL 1
-
#define __ASSUME_UTIMES 1
-
-/* Starting with version 2.6.9, SSI_IEEE_RAISE_EXCEPTION exists. */
-#define __ASSUME_IEEE_RAISE_EXCEPTION 1
/* Support for the O_CLOEXEC flag was added for alpha in 2.6.23. */
#if __LINUX_KERNEL_VERSION >= 0x020617
Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/lxstat.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/lxstat.c (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/lxstat.c Thu Aug 9 00:01:37 2012
@@ -1,5 +1,5 @@
/* lxstat using old-style Unix stat system call.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004-2012 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
@@ -37,7 +37,6 @@
int result;
struct kernel_stat kbuf;
-#if __ASSUME_STAT64_SYSCALL > 0
if (vers == _STAT_VER_KERNEL64)
{
result = INTERNAL_SYSCALL (lstat64, err, 2, name, buf);
@@ -46,22 +45,6 @@
__set_errno (INTERNAL_SYSCALL_ERRNO (result, err));
return -1;
}
-#elif defined __NR_lstat64
- if (vers == _STAT_VER_KERNEL64 && !__libc_missing_axp_stat64)
- {
- int errno_out;
- result = INTERNAL_SYSCALL (lstat64, err, 2, name, buf);
- if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
- return result;
- errno_out = INTERNAL_SYSCALL_ERRNO (result, err);
- if (errno_out != ENOSYS)
- {
- __set_errno (errno_out);
- return -1;
- }
- __libc_missing_axp_stat64 = 1;
- }
-#endif
result = INTERNAL_SYSCALL (lstat, err, 2, name, &kbuf);
if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/xstat.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/xstat.c (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/xstat.c Thu Aug 9 00:01:37 2012
@@ -1,5 +1,5 @@
/* xstat using old-style Unix stat system call.
- Copyright (C) 2004 Free Software Foundation, Inc.
+ Copyright (C) 2004-2012 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
@@ -37,7 +37,6 @@
int result;
struct kernel_stat kbuf;
-#if __ASSUME_STAT64_SYSCALL > 0
if (vers == _STAT_VER_KERNEL64)
{
result = INTERNAL_SYSCALL (stat64, err, 2, name, buf);
@@ -46,22 +45,6 @@
__set_errno (INTERNAL_SYSCALL_ERRNO (result, err));
return -1;
}
-#elif defined __NR_stat64
- if (vers == _STAT_VER_KERNEL64 && !__libc_missing_axp_stat64)
- {
- int errno_out;
- result = INTERNAL_SYSCALL (stat64, err, 2, name, buf);
- if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
- return result;
- errno_out = INTERNAL_SYSCALL_ERRNO (result, err);
- if (errno_out != ENOSYS)
- {
- __set_errno (errno_out);
- return -1;
- }
- __libc_missing_axp_stat64 = 1;
- }
-#endif
result = INTERNAL_SYSCALL (stat, err, 2, name, &kbuf);
if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1))
Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/xstatconv.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/xstatconv.c (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/xstatconv.c Thu Aug 9 00:01:37 2012
@@ -1,5 +1,5 @@
/* Convert between the kernel's `struct stat' format, and libc's.
- Copyright (C) 1997, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1997-2012 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
@@ -22,13 +22,6 @@
#include <kernel_stat.h>
#include <xstatconv.h>
#include <sys/syscall.h>
-
-
-#ifdef __NR_stat64
-# if __ASSUME_STAT64_SYSCALL == 0
-int __libc_missing_axp_stat64;
-# endif
-#endif
int
__xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf)
Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/xstatconv.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/xstatconv.h (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/alpha/xstatconv.h Thu Aug 9 00:01:37 2012
@@ -1,5 +1,5 @@
/* Convert between the kernel's `struct stat' format, and libc's.
- Copyright (C) 2004, 2006 Free Software Foundation, Inc.
+ Copyright (C) 2004-2012 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
@@ -19,10 +19,5 @@
#include <kernel-features.h>
#include <sys/syscall.h>
-#ifdef __NR_stat64
-# if __ASSUME_STAT64_SYSCALL == 0
-extern int __libc_missing_axp_stat64 attribute_hidden;
-# endif
-#endif
extern int __xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf)
attribute_hidden;
Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/arm/dl-machine.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/arm/dl-machine.h (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/arm/dl-machine.h Thu Aug 9 00:01:37 2012
@@ -22,7 +22,9 @@
#define CLEAR_CACHE(BEG,END) \
INTERNAL_SYSCALL_ARM (cacheflush, , 3, (BEG), (END), 0)
-/* The rest is just machine-specific. */
+#endif
+
+/* The rest is just machine-specific.
+ This #include is outside the #ifndef because the parts of
+ dl-machine.h used only by dynamic-link.h are outside the guard. */
#include <sysdeps/arm/dl-machine.h>
-
-#endif
Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h Thu Aug 9 00:01:37 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2012 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
@@ -74,17 +74,24 @@
/* It doesn't matter what register is used for a_oldval2, but we must
specify one to work around GCC PR rtl-optimization/21223. Otherwise
- it may cause a_oldval or a_tmp to be moved to a different register. */
+ it may cause a_oldval or a_tmp to be moved to a different register.
+ We use the union trick rather than simply using __typeof (...) in the
+ declarations of A_OLDVAL et al because when NEWVAL or OLDVAL is of the
+ form *PTR and PTR has a 'volatile ... *' type, then __typeof (*PTR) has
+ a 'volatile ...' type and this triggers -Wvolatile-register-var to
+ complain about 'register volatile ... asm ("reg")'. */
#elif defined __thumb2__
/* Thumb-2 has ldrex/strex. However it does not have barrier instructions,
so we still need to use the kernel helper. */
#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
- ({ register __typeof (oldval) a_oldval asm ("r0"); \
- register __typeof (oldval) a_newval asm ("r1") = (newval); \
+ ({ union { __typeof (oldval) a; uint32_t v; } oldval_arg = { .a = (oldval) };\
+ union { __typeof (newval) a; uint32_t v; } newval_arg = { .a = (newval) };\
+ register uint32_t a_oldval asm ("r0"); \
+ register uint32_t a_newval asm ("r1") = newval_arg.v; \
register __typeof (mem) a_ptr asm ("r2") = (mem); \
- register __typeof (oldval) a_tmp asm ("r3"); \
- register __typeof (oldval) a_oldval2 asm ("r4") = (oldval); \
+ register uint32_t a_tmp asm ("r3"); \
+ register uint32_t a_oldval2 asm ("r4") = oldval_arg.v; \
__asm__ __volatile__ \
("0:\tldr\t%[tmp],[%[ptr]]\n\t" \
"cmp\t%[tmp], %[old2]\n\t" \
@@ -100,14 +107,16 @@
: [new] "r" (a_newval), [ptr] "r" (a_ptr), \
[old2] "r" (a_oldval2) \
: "ip", "lr", "cc", "memory"); \
- a_tmp; })
+ (__typeof (oldval)) a_tmp; })
#else
-#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
- ({ register __typeof (oldval) a_oldval asm ("r0"); \
- register __typeof (oldval) a_newval asm ("r1") = (newval); \
+#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
+ ({ union { __typeof (oldval) a; uint32_t v; } oldval_arg = { .a = (oldval) };\
+ union { __typeof (newval) a; uint32_t v; } newval_arg = { .a = (newval) };\
+ register uint32_t a_oldval asm ("r0"); \
+ register uint32_t a_newval asm ("r1") = newval_arg.v; \
register __typeof (mem) a_ptr asm ("r2") = (mem); \
- register __typeof (oldval) a_tmp asm ("r3"); \
- register __typeof (oldval) a_oldval2 asm ("r4") = (oldval); \
+ register uint32_t a_tmp asm ("r3"); \
+ register uint32_t a_oldval2 asm ("r4") = oldval_arg.v; \
__asm__ __volatile__ \
("0:\tldr\t%[tmp],[%[ptr]]\n\t" \
"cmp\t%[tmp], %[old2]\n\t" \
@@ -123,7 +132,7 @@
: [new] "r" (a_newval), [ptr] "r" (a_ptr), \
[old2] "r" (a_oldval2) \
: "ip", "lr", "cc", "memory"); \
- a_tmp; })
+ (__typeof (oldval)) a_tmp; })
#endif
#define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/bits/atomic.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/bits/atomic.h (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/coldfire/nptl/bits/atomic.h Thu Aug 9 00:01:37 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Maxim Kuvyrkov <maxim@xxxxxxxxxxxxxxxx>, 2010.
@@ -42,8 +42,8 @@
#ifdef SHARED
# define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
({ \
- /* Use temporary variables to workaround call-clobberness of */ \
- /* the registers. */ \
+ /* Use temporary variables to workaround call-clobberness of \
+ the registers. */ \
__typeof (mem) _mem = mem; \
__typeof (oldval) _oldval = oldval; \
__typeof (newval) _newval = newval; \
@@ -65,13 +65,13 @@
#else
# define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
({ \
- /* Use temporary variables to workaround call-clobberness of */ \
- /* the registers. */ \
+ /* Use temporary variables to workaround call-clobberness of \
+ the registers. */ \
__typeof (mem) _mem = mem; \
__typeof (oldval) _oldval = oldval; \
__typeof (newval) _newval = newval; \
register __typeof (oldval) _d0 asm ("d0") \
- = SYS_ify (atomic_cmpxchg_32); \
+ = (__typeof (oldval)) SYS_ify (atomic_cmpxchg_32); \
register __typeof (mem) _a0 asm ("a0") = _mem; \
register __typeof (oldval) _d2 asm ("d2") = _oldval; \
register __typeof (newval) _d1 asm ("d1") = _newval; \
Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h Thu Aug 9 00:01:37 2012
@@ -22,7 +22,6 @@
#define __ASSUME_STAT64_SYSCALL 1
/* Many syscalls were added in 2.6.10 for m68k. */
-#define __ASSUME_TGKILL 1
#define __ASSUME_UTIMES 1
#define __ASSUME_FADVISE64_64_SYSCALL 1
Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/kernel-features.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/kernel-features.h (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/kernel-features.h Thu Aug 9 00:01:37 2012
@@ -21,7 +21,6 @@
#define __ASSUME_MMAP2_SYSCALL 1
#define __ASSUME_STAT64_SYSCALL 1
#define __ASSUME_CLONE_THREAD_FLAGS 1
-#define __ASSUME_TGKILL 1
#define __ASSUME_UTIMES 1
#define __ASSUME_FADVISE64_64_SYSCALL 1
#define __ASSUME_O_CLOEXEC 1
Modified: fsf/trunk/libc/sysdeps/posix/fdopendir.c
==============================================================================
--- fsf/trunk/libc/sysdeps/posix/fdopendir.c (original)
+++ fsf/trunk/libc/sysdeps/posix/fdopendir.c Thu Aug 9 00:01:37 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005, 2006, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 2005-2012 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,6 +18,7 @@
#include <dirent.h>
#include <errno.h>
#include <fcntl.h>
+#include <stddef.h>
#include <sys/stat.h>
#include <not-cancel.h>
Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/i386/readdir64_r.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/i386/readdir64_r.c (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/i386/readdir64_r.c Thu Aug 9 00:01:37 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2004, 2010 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2012 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
@@ -20,7 +20,7 @@
#define DIRENT_TYPE struct dirent64
#define GETDENTS_64BIT_ALIGNED 1
-#include <sysdeps/unix/readdir_r.c>
+#include <sysdeps/posix/readdir_r.c>
#undef __READDIR_R
#undef __GETDENTS
@@ -38,7 +38,7 @@
#define __GETDENTS __old_getdents64
#define DIRENT_TYPE struct __old_dirent64
-#include <sysdeps/unix/readdir_r.c>
+#include <sysdeps/posix/readdir_r.c>
compat_symbol (libc, __old_readdir64_r, readdir64_r, GLIBC_2_1);
#endif
Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/kernel-features.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/kernel-features.h (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/kernel-features.h Thu Aug 9 00:01:37 2012
@@ -112,13 +112,6 @@
/* The statfs64 syscalls are available in 2.5.74 (but not for alpha). */
#define __ASSUME_STATFS64 1
-
-/* The tgkill syscall was instroduced for i386 in 2.5.75. On x86-64,
- sparc, SH, ppc, and ppc64 it was introduced in 2.6.0-test3. */
-#if (defined __i386__ || defined __x86_64__ || defined __powerpc__ \
- || defined __sh__ || defined __sparc__)
-# define __ASSUME_TGKILL 1
-#endif
/* The utimes syscall has been available for some architectures
forever. For x86 it was introduced after 2.5.75, for x86-64,
Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/readdir64_r.c
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/readdir64_r.c (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/readdir64_r.c Thu Aug 9 00:01:37 2012
@@ -2,6 +2,6 @@
#define __GETDENTS __getdents64
#define DIRENT_TYPE struct dirent64
-#include <sysdeps/unix/readdir_r.c>
+#include <sysdeps/posix/readdir_r.c>
weak_alias (__readdir64_r, readdir64_r)
_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits