[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commits] r16585 - in /fsf/trunk/ports: ./ sysdeps/alpha/ sysdeps/arm/ sysdeps/arm/bits/ sysdeps/arm/fpu/ sysdeps/mips/ sysdeps/mips/n...
- To: commits@xxxxxxxxxx
- Subject: [Commits] r16585 - in /fsf/trunk/ports: ./ sysdeps/alpha/ sysdeps/arm/ sysdeps/arm/bits/ sysdeps/arm/fpu/ sysdeps/mips/ sysdeps/mips/n...
- From: eglibc@xxxxxxxxxx
- Date: Sun, 08 Jan 2012 00:02:28 -0000
Author: eglibc
Date: Sun Jan 8 00:02:28 2012
New Revision: 16585
Log:
Import glibc-ports-mainline for 2012-01-08
Added:
fsf/trunk/ports/sysdeps/mips/nptl/shlib-versions
Removed:
fsf/trunk/ports/sysdeps/arm/__longjmp.S
fsf/trunk/ports/sysdeps/arm/bits/atomic.h
fsf/trunk/ports/sysdeps/arm/bits/huge_val.h
fsf/trunk/ports/sysdeps/arm/bits/setjmp.h
fsf/trunk/ports/sysdeps/arm/fpu/
fsf/trunk/ports/sysdeps/arm/jmpbuf-offsets.h
fsf/trunk/ports/sysdeps/arm/machine-gmon.h
fsf/trunk/ports/sysdeps/arm/setjmp.S
fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S
fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/check_pf.c
fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/eabi/check_pf.c
fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/mmap64.S
fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/msgctl.c
fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/nptl/Makefile
fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h
fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/nptl/unwind-forcedunwind.c
fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/nptl/unwind-resume.c
fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/nptl/unwind.h
fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/semctl.c
fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/shmctl.c
fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/sigrestorer.S
Modified:
fsf/trunk/ports/ChangeLog.alpha
fsf/trunk/ports/ChangeLog.arm
fsf/trunk/ports/ChangeLog.m68k
fsf/trunk/ports/ChangeLog.mips
fsf/trunk/ports/ChangeLog.tile
fsf/trunk/ports/sysdeps/alpha/backtrace.c
fsf/trunk/ports/sysdeps/arm/preconfigure
fsf/trunk/ports/sysdeps/mips/backtrace.c
fsf/trunk/ports/sysdeps/tile/backtrace.c
fsf/trunk/ports/sysdeps/unix/sysv/linux/alpha/wordexp.c
fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/eabi/Makefile
fsf/trunk/ports/sysdeps/unix/sysv/linux/m68k/configure
fsf/trunk/ports/sysdeps/unix/sysv/linux/m68k/configure.in
Modified: fsf/trunk/ports/ChangeLog.alpha
==============================================================================
--- fsf/trunk/ports/ChangeLog.alpha (original)
+++ fsf/trunk/ports/ChangeLog.alpha Sun Jan 8 00:02:28 2012
@@ -1,3 +1,9 @@
+2012-01-07 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/alpha/backtrace.c: Use x86_64 version of backtrace.c.
+ * sysdeps/unix/sysv/linux/alpha/wordexp.c: Use sparc64 version of
+ wordexp.c.
+
2011-10-05 Andreas Schwab <schwab@xxxxxxxxxx>
* sysdeps/alpha/dl-machine.h (elf_machine_rela)
Modified: fsf/trunk/ports/ChangeLog.arm
==============================================================================
--- fsf/trunk/ports/ChangeLog.arm (original)
+++ fsf/trunk/ports/ChangeLog.arm Sun Jan 8 00:02:28 2012
@@ -1,3 +1,47 @@
+2012-01-07 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/arm/preconfigure: Give error for old-ABI ARM.
+ * sysdeps/unix/sysv/linux/arm/eabi/Makefile (arm-using-eabi):
+ Don't define.
+ * sysdeps/arm/__longjmp.S: Remove.
+ * sysdeps/arm/bits/atomic.h: Remove.
+ * sysdeps/arm/bits/huge_val.h: Remove.
+ * sysdeps/arm/bits/setjmp.h: Remove.
+ * sysdeps/arm/fpu/__longjmp.S: Remove.
+ * sysdeps/arm/fpu/bits/fenv.h: Remove.
+ * sysdeps/arm/fpu/bits/setjmp.h: Remove.
+ * sysdeps/arm/fpu/fclrexcpt.c: Remove.
+ * sysdeps/arm/fpu/fedisblxcpt.c: Remove.
+ * sysdeps/arm/fpu/feenablxcpt.c: Remove.
+ * sysdeps/arm/fpu/fegetenv.c: Remove.
+ * sysdeps/arm/fpu/fegetexcept.c: Remove.
+ * sysdeps/arm/fpu/fegetround.c: Remove.
+ * sysdeps/arm/fpu/feholdexcpt.c: Remove.
+ * sysdeps/arm/fpu/fesetenv.c: Remove.
+ * sysdeps/arm/fpu/fesetround.c: Remove.
+ * sysdeps/arm/fpu/fpu_control.h: Remove.
+ * sysdeps/arm/fpu/fraiseexcpt.c: Remove.
+ * sysdeps/arm/fpu/fsetexcptflg.c: Remove.
+ * sysdeps/arm/fpu/ftestexcept.c: Remove.
+ * sysdeps/arm/fpu/jmpbuf-offsets.h: Remove.
+ * sysdeps/arm/fpu/setjmp.S: Remove.
+ * sysdeps/arm/jmpbuf-offsets.h: Remove.
+ * sysdeps/arm/machine-gmon.h: Remove.
+ * sysdeps/arm/setjmp.S: Remove.
+ * sysdeps/unix/sysv/linux/arm/____longjmp_chk.S: Remove.
+ * sysdeps/unix/sysv/linux/arm/check_pf.c: Remove.
+ * sysdeps/unix/sysv/linux/arm/eabi/check_pf.c: Remove.
+ * sysdeps/unix/sysv/linux/arm/mmap64.S: Remove.
+ * sysdeps/unix/sysv/linux/arm/msgctl.c: Remove.
+ * sysdeps/unix/sysv/linux/arm/nptl/Makefile: Remove.
+ * sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h: Remove.
+ * sysdeps/unix/sysv/linux/arm/nptl/unwind-forcedunwind.c: Remove.
+ * sysdeps/unix/sysv/linux/arm/nptl/unwind-resume.c: Remove.
+ * sysdeps/unix/sysv/linux/arm/nptl/unwind.h: Remove.
+ * sysdeps/unix/sysv/linux/arm/semctl.c: Remove.
+ * sysdeps/unix/sysv/linux/arm/shmctl.c: Remove.
+ * sysdeps/unix/sysv/linux/arm/sigrestorer.S: Remove.
+
2012-01-05 Nathan Sidwell <nathan@xxxxxxxxxxxxxxxx>
Tom de Vries <tom@xxxxxxxxxxxxxxxx>
Modified: fsf/trunk/ports/ChangeLog.m68k
==============================================================================
--- fsf/trunk/ports/ChangeLog.m68k (original)
+++ fsf/trunk/ports/ChangeLog.m68k Sun Jan 8 00:02:28 2012
@@ -1,3 +1,9 @@
+2012-01-07 Andreas Schwab <schwab@xxxxxxxxxxxxxx>
+
+ * sysdeps/unix/sysv/linux/m68k/configure.in: Set
+ arch_minimum_kernel, libc_cv_gcc_unwind_find_fde and
+ ldd_rewrite_script.
+
2012-01-05 Andreas Schwab <schwab@xxxxxxxxxxxxxx>
* sysdeps/m68k/dl-trampoline.S: Add cfi directives.
Modified: fsf/trunk/ports/ChangeLog.mips
==============================================================================
--- fsf/trunk/ports/ChangeLog.mips (original)
+++ fsf/trunk/ports/ChangeLog.mips Sun Jan 8 00:02:28 2012
@@ -1,3 +1,11 @@
+2012-01-07 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/mips/nptl/shlib-versions: New.
+
+2012-01-07 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/mips/backtrace.c: Use x86_64 version of backtrace.c.
+
2012-01-04 Tom de Vries <tom@xxxxxxxxxxxxxxxx>
* sysdeps/mips/Makefile: Compile initfini.c, pt-initfini.c with
Modified: fsf/trunk/ports/ChangeLog.tile
==============================================================================
--- fsf/trunk/ports/ChangeLog.tile (original)
+++ fsf/trunk/ports/ChangeLog.tile Sun Jan 8 00:02:28 2012
@@ -1,3 +1,7 @@
+2012-01-07 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/tile/backtrace.c: Use x86_64 version of backtrace.c.
+
2011-12-03 Chris Metcalf <cmetcalf@xxxxxxxxxx>
* data/c++-types-tile-linux-gnu.data: New file.
Modified: fsf/trunk/ports/sysdeps/alpha/backtrace.c
==============================================================================
--- fsf/trunk/ports/sysdeps/alpha/backtrace.c (original)
+++ fsf/trunk/ports/sysdeps/alpha/backtrace.c Sun Jan 8 00:02:28 2012
@@ -1,1 +1,1 @@
-#include <sysdeps/ia64/backtrace.c>
+#include <sysdeps/x86_64/backtrace.c>
Removed: fsf/trunk/ports/sysdeps/arm/__longjmp.S
==============================================================================
--- fsf/trunk/ports/sysdeps/arm/__longjmp.S (original)
+++ fsf/trunk/ports/sysdeps/arm/__longjmp.S (removed)
@@ -1,37 +1,0 @@
-/* longjmp for ARM.
- Copyright (C) 1997, 1998, 2009 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <sysdep.h>
-#define _SETJMP_H
-#define _ASM
-#include <bits/setjmp.h>
-
-/* __longjmp(jmpbuf, val) */
-
-ENTRY (__longjmp)
- mov ip, r0
- movs r0, r1 /* get the return value in place */
- moveq r0, #1 /* can't let setjmp() return zero! */
-
-#ifdef CHECK_SP
- ldr r4, [ip, #32]
- CHECK_SP (r4)
-#endif
- LOADREGS(ia, ip, {v1-v6, sl, fp, sp, pc})
-END (__longjmp)
Removed: fsf/trunk/ports/sysdeps/arm/bits/atomic.h
==============================================================================
--- fsf/trunk/ports/sysdeps/arm/bits/atomic.h (original)
+++ fsf/trunk/ports/sysdeps/arm/bits/atomic.h (removed)
@@ -1,101 +1,0 @@
-/* Copyright (C) 2002, 2003, 2004, 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 <stdint.h>
-#include <sysdep.h>
-
-
-typedef int8_t atomic8_t;
-typedef uint8_t uatomic8_t;
-typedef int_fast8_t atomic_fast8_t;
-typedef uint_fast8_t uatomic_fast8_t;
-
-typedef int32_t atomic32_t;
-typedef uint32_t uatomic32_t;
-typedef int_fast32_t atomic_fast32_t;
-typedef uint_fast32_t uatomic_fast32_t;
-
-typedef intptr_t atomicptr_t;
-typedef uintptr_t uatomicptr_t;
-typedef intmax_t atomic_max_t;
-typedef uintmax_t uatomic_max_t;
-
-void __arm_link_error (void);
-
-#define atomic_exchange_acq(mem, newvalue) \
- ({ __typeof (*mem) result; \
- if (sizeof (*mem) == 1) \
- __asm__ __volatile__ ("swpb %0, %1, [%2]" \
- : "=&r,&r" (result) \
- : "r,0" (newvalue), "r,r" (mem) : "memory"); \
- else if (sizeof (*mem) == 4) \
- __asm__ __volatile__ ("swp %0, %1, [%2]" \
- : "=&r,&r" (result) \
- : "r,0" (newvalue), "r,r" (mem) : "memory"); \
- else \
- { \
- result = 0; \
- abort (); \
- } \
- result; })
-
-/* Atomic compare and exchange. These sequences are not actually atomic;
- there is a race if *MEM != OLDVAL and we are preempted between the two
- swaps. However, they are very close to atomic, and are the best that a
- pre-ARMv6 implementation can do without operating system support.
- LinuxThreads has been using these sequences for many years. */
-
-#define __arch_compare_and_exchange_val_8_acq(mem, newval, oldval) \
- ({ __typeof (oldval) result, tmp; \
- __asm__ ("\n" \
- "0:\tldr\t%1,[%2]\n\t" \
- "cmp\t%1,%4\n\t" \
- "movne\t%0,%1\n\t" \
- "bne\t1f\n\t" \
- "swpb\t%0,%3,[%2]\n\t" \
- "cmp\t%1,%0\n\t" \
- "swpbne\t%1,%0,[%2]\n\t" \
- "bne\t0b\n\t" \
- "1:" \
- : "=&r" (result), "=&r" (tmp) \
- : "r" (mem), "r" (newval), "r" (oldval) \
- : "cc", "memory"); \
- result; })
-
-#define __arch_compare_and_exchange_val_16_acq(mem, newval, oldval) \
- ({ __arm_link_error (); oldval; })
-
-#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
- ({ __typeof (oldval) result, tmp; \
- __asm__ ("\n" \
- "0:\tldr\t%1,[%2]\n\t" \
- "cmp\t%1,%4\n\t" \
- "movne\t%0,%1\n\t" \
- "bne\t1f\n\t" \
- "swp\t%0,%3,[%2]\n\t" \
- "cmp\t%1,%0\n\t" \
- "swpne\t%1,%0,[%2]\n\t" \
- "bne\t0b\n\t" \
- "1:" \
- : "=&r" (result), "=&r" (tmp) \
- : "r" (mem), "r" (newval), "r" (oldval) \
- : "cc", "memory"); \
- result; })
-
-#define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
- ({ __arm_link_error (); oldval; })
Removed: fsf/trunk/ports/sysdeps/arm/bits/huge_val.h
==============================================================================
--- fsf/trunk/ports/sysdeps/arm/bits/huge_val.h (original)
+++ fsf/trunk/ports/sysdeps/arm/bits/huge_val.h (removed)
@@ -1,56 +1,0 @@
-/* `HUGE_VAL' constant for IEEE 754 machines (where it is infinity).
- Used by <stdlib.h> and <math.h> functions for overflow.
- ARM version.
- Copyright (C) 1992, 95, 96, 97, 98, 99, 2000, 2004
- Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#ifndef _MATH_H
-# error "Never use <bits/huge_val.h> directly; include <math.h> instead."
-#endif
-
-/* IEEE positive infinity (-HUGE_VAL is negative infinity). */
-
-#if __GNUC_PREREQ(3,3)
-# define HUGE_VAL (__builtin_huge_val())
-#elif __GNUC_PREREQ(2,96)
-# define HUGE_VAL (__extension__ 0x1.0p2047)
-#elif defined __GNUC__
-
-# define HUGE_VAL \
- (__extension__ \
- ((union { unsigned __l __attribute__((__mode__(__DI__))); double __d; }) \
- { __l: 0x000000007ff00000ULL }).__d)
-
-#else /* not GCC */
-
-# include <endian.h>
-
-typedef union { unsigned char __c[8]; double __d; } __huge_val_t;
-
-# if __BYTE_ORDER == __BIG_ENDIAN
-# define __HUGE_VAL_bytes { 0, 0, 0, 0, 0x7f, 0xf0, 0, 0 }
-# endif
-# if __BYTE_ORDER == __LITTLE_ENDIAN
-# define __HUGE_VAL_bytes { 0, 0, 0xf0, 0x7f, 0, 0, 0, 0 }
-# endif
-
-static __huge_val_t __huge_val = { __HUGE_VAL_bytes };
-# define HUGE_VAL (__huge_val.__d)
-
-#endif /* GCC. */
Removed: fsf/trunk/ports/sysdeps/arm/bits/setjmp.h
==============================================================================
--- fsf/trunk/ports/sysdeps/arm/bits/setjmp.h (original)
+++ fsf/trunk/ports/sysdeps/arm/bits/setjmp.h (removed)
@@ -1,34 +1,0 @@
-/* Copyright (C) 1997,1998,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
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-/* Define the machine-dependent type `jmp_buf'. ARM version. */
-
-#ifndef _BITS_SETJMP_H
-#define _BITS_SETJMP_H 1
-
-#if !defined _SETJMP_H && !defined _PTHREAD_H
-# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
-#endif
-
-#ifndef _ASM
-/* Jump buffer contains v1-v6, sl, fp, sp and pc. Other registers are not
- saved. */
-typedef int __jmp_buf[10];
-#endif
-
-#endif
Removed: fsf/trunk/ports/sysdeps/arm/jmpbuf-offsets.h
==============================================================================
--- fsf/trunk/ports/sysdeps/arm/jmpbuf-offsets.h (original)
+++ fsf/trunk/ports/sysdeps/arm/jmpbuf-offsets.h (removed)
@@ -1,20 +1,0 @@
-/* Private macros for accessing __jmp_buf contents. 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.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#define __JMP_BUF_SP 8
Removed: fsf/trunk/ports/sysdeps/arm/machine-gmon.h
==============================================================================
--- fsf/trunk/ports/sysdeps/arm/machine-gmon.h (original)
+++ fsf/trunk/ports/sysdeps/arm/machine-gmon.h (removed)
@@ -1,90 +1,0 @@
-/* Machine-dependent definitions for profiling support. ARM version.
- Copyright (C) 1996, 1997, 1998 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. */
-
-/* GCC for the ARM cannot compile __builtin_return_address(N) for N != 0,
- so we must use an assembly stub. */
-
-#include <sysdep.h>
-#ifndef NO_UNDERSCORES
-/* The asm symbols for C functions are `_function'.
- The canonical name for the counter function is `mcount', no _. */
-void _mcount (void) asm ("mcount");
-#else
-/* The canonical name for the function is `_mcount' in both C and asm,
- but some old asm code might assume it's `mcount'. */
-void _mcount (void);
-weak_alias (_mcount, mcount)
-#endif
-
-static void mcount_internal (u_long frompc, u_long selfpc) __attribute_used__;
-
-#define _MCOUNT_DECL(frompc, selfpc) \
-static void mcount_internal (u_long frompc, u_long selfpc)
-
-/* This macro/func MUST save r0, r1 because the compiler inserts
- blind calls to _mount(), ignoring the fact that _mcount may
- clobber registers; therefore, _mcount may NOT clobber registers */
-/* if (this_fp!=0) {
- r0 = this_fp
- r1 = this_lr
- r1 = [r1-4] which is caller's lr
- if (r1!=0)
- r1 = caller's lr
- call mcount_internal(this_lr, caller's_lr)
- }
-*/
-
-#ifdef __thumb2__
-
-#define MCOUNT \
-void _mcount (void) \
-{ \
- __asm__("push {r0, r1, r2, r3};" \
- "movs fp, fp;" \
- "it eq;" \
- "moveq r1, #0;" \
- "itttt ne;" \
- "ldrne r1, [fp, $-4];" \
- "ldrne r0, [fp, $-12];" \
- "movnes r0, r0;" \
- "ldrne r0, [r0, $-4];" \
- "movs r0, r0;" \
- "it ne;" \
- "blne mcount_internal;" \
- "pop {r0, r1, r2, r3}"); \
-}
-
-#else
-
-#define MCOUNT \
-void _mcount (void) \
-{ \
- __asm__("stmdb sp!, {r0, r1, r2, r3};" \
- "movs fp, fp;" \
- "moveq r1, #0;" \
- "ldrne r1, [fp, $-4];" \
- "ldrne r0, [fp, $-12];" \
- "movnes r0, r0;" \
- "ldrne r0, [r0, $-4];" \
- "movs r0, r0;" \
- "blne mcount_internal;" \
- "ldmia sp!, {r0, r1, r2, r3}"); \
-}
-
-#endif
Modified: fsf/trunk/ports/sysdeps/arm/preconfigure
==============================================================================
--- fsf/trunk/ports/sysdeps/arm/preconfigure (original)
+++ fsf/trunk/ports/sysdeps/arm/preconfigure Sun Jan 8 00:02:28 2012
@@ -42,7 +42,8 @@
CFLAGS="$CFLAGS -fno-unwind-tables"
;;
*)
- machine=arm/$machine
+ echo "Old ABI no longer supported" 2>&1
+ exit 1
;;
esac
;;
Removed: fsf/trunk/ports/sysdeps/arm/setjmp.S
==============================================================================
--- fsf/trunk/ports/sysdeps/arm/setjmp.S (original)
+++ fsf/trunk/ports/sysdeps/arm/setjmp.S (removed)
@@ -1,33 +1,0 @@
-/* setjmp for ARM.
- Copyright (C) 1997, 1998, 2008 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <sysdep.h>
-#define _SETJMP_H
-#define _ASM
-#include <bits/setjmp.h>
-
-ENTRY (__sigsetjmp)
- /* Save registers */
- stmia r0, {v1-v6, sl, fp, sp, lr}
-
- /* Make a tail call to __sigjmp_save; it takes the same args. */
- B PLTJMP(C_SYMBOL_NAME(__sigjmp_save))
-END (__sigsetjmp)
-
-hidden_def (__sigsetjmp)
Modified: fsf/trunk/ports/sysdeps/mips/backtrace.c
==============================================================================
--- fsf/trunk/ports/sysdeps/mips/backtrace.c (original)
+++ fsf/trunk/ports/sysdeps/mips/backtrace.c Sun Jan 8 00:02:28 2012
@@ -1,1 +1,1 @@
-#include <sysdeps/ia64/backtrace.c>
+#include <sysdeps/x86_64/backtrace.c>
Added: fsf/trunk/ports/sysdeps/mips/nptl/shlib-versions
==============================================================================
--- fsf/trunk/ports/sysdeps/mips/nptl/shlib-versions (added)
+++ fsf/trunk/ports/sysdeps/mips/nptl/shlib-versions Sun Jan 8 00:02:28 2012
@@ -1,0 +1,1 @@
+mips.*-.*-linux.* libpthread=0 GLIBC_2.0 GLIBC_2.2
Modified: fsf/trunk/ports/sysdeps/tile/backtrace.c
==============================================================================
--- fsf/trunk/ports/sysdeps/tile/backtrace.c (original)
+++ fsf/trunk/ports/sysdeps/tile/backtrace.c Sun Jan 8 00:02:28 2012
@@ -1,1 +1,1 @@
-#include <sysdeps/ia64/backtrace.c>
+#include <sysdeps/x86_64/backtrace.c>
Modified: fsf/trunk/ports/sysdeps/unix/sysv/linux/alpha/wordexp.c
==============================================================================
--- fsf/trunk/ports/sysdeps/unix/sysv/linux/alpha/wordexp.c (original)
+++ fsf/trunk/ports/sysdeps/unix/sysv/linux/alpha/wordexp.c Sun Jan 8 00:02:28 2012
@@ -1,1 +1,1 @@
-#include <sysdeps/unix/sysv/linux/ia64/wordexp.c>
+#include <sysdeps/unix/sysv/linux/sparc/sparc64/wordexp.c>
Removed: fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S
==============================================================================
--- fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S (original)
+++ fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/____longjmp_chk.S (removed)
@@ -1,75 +1,0 @@
-/* Copyright (C) 2009 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <sysdep.h>
-
- .section .rodata.str1.1,"aMS",%progbits,1
- .type longjmp_msg,%object
-longjmp_msg:
- .string "longjmp causes uninitialized stack frame"
- .size longjmp_msg, .-longjmp_msg
- .text
-
-#define __longjmp ____longjmp_chk
-
-#ifdef PIC
-# define CALL_FAIL \
- ldr sl, .L_GOT; \
-.L_GOT_OFF: \
- add sl, pc, sl; \
- ldr r0, .Lstr; \
- add r0, sl, r0; \
- B PLTJMP(HIDDEN_JUMPTARGET(__fortify_fail)); \
-.L_GOT: \
- .word _GLOBAL_OFFSET_TABLE_-(.L_GOT_OFF+8); \
-.Lstr: \
- .word longjmp_msg(GOTOFF);
-#else
-# define CALL_FAIL \
- ldr r0, .Lstr; \
- B HIDDEN_JUMPTARGET(__fortify_fail); \
-.Lstr: \
- .word longjmp_msg;
-#endif
-
-#define CHECK_SP(reg) \
- cmp sp, reg; \
- bls .Lok; \
- mov r5, r0; \
- mov r0, #0; \
- sub sp, sp, #16; \
- mov r1, sp; \
- swi #SYS_ify(sigaltstack); \
- cmp r0, #0; \
- bne .Lok2; \
- ldr r1, [sp, #4]; \
- tst r1, #1; \
- beq .Lfail; \
- ldr r2, [sp, #0]; \
- ldr r3, [sp, #8]; \
- add r2, r2, r3; \
- sub r2, r2, reg; \
- cmp r2, r3; \
- bhi .Lok2; \
-.Lfail: \
- CALL_FAIL \
-.Lok2: \
- mov r0, r5; \
-.Lok:
-
-#include <__longjmp.S>
Removed: fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/check_pf.c
==============================================================================
--- fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/check_pf.c (original)
+++ fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/check_pf.c (removed)
@@ -1,312 +1,0 @@
-/* Determine protocol families for which interfaces exist. Linux version.
- Copyright (C) 2003, 2006, 2007, 2008 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <assert.h>
-#include <errno.h>
-#include <ifaddrs.h>
-#include <netdb.h>
-#include <stddef.h>
-#include <string.h>
-#include <time.h>
-#include <unistd.h>
-#include <sys/socket.h>
-
-#include <asm/types.h>
-#include <linux/netlink.h>
-#include <linux/rtnetlink.h>
-
-#include <not-cancel.h>
-#include <kernel-features.h>
-
-
-#ifndef IFA_F_HOMEADDRESS
-# define IFA_F_HOMEADDRESS 0
-#endif
-#ifndef IFA_F_OPTIMISTIC
-# define IFA_F_OPTIMISTIC 0
-#endif
-
-
-static int
-make_request (int fd, pid_t pid, bool *seen_ipv4, bool *seen_ipv6,
- struct in6addrinfo **in6ai, size_t *in6ailen)
-{
- struct req
- {
- struct nlmsghdr nlh;
- struct rtgenmsg g;
- } req;
- struct sockaddr_nl nladdr;
-
- /* struct rtgenmsg consists of a single byte but the ARM ABI rounds
- it up to a word. Clear the padding explicitly here. */
- assert (sizeof (req.g) == 4);
- memset (&req.g, '\0', sizeof (req.g));
-
- req.nlh.nlmsg_len = sizeof (req);
- req.nlh.nlmsg_type = RTM_GETADDR;
- req.nlh.nlmsg_flags = NLM_F_ROOT | NLM_F_MATCH | NLM_F_REQUEST;
- req.nlh.nlmsg_pid = 0;
- req.nlh.nlmsg_seq = time (NULL);
- req.g.rtgen_family = AF_UNSPEC;
-
- memset (&nladdr, '\0', sizeof (nladdr));
- nladdr.nl_family = AF_NETLINK;
-
-#ifdef PAGE_SIZE
- /* Help the compiler optimize out the malloc call if PAGE_SIZE
- is constant and smaller or equal to PTHREAD_STACK_MIN/4. */
- const size_t buf_size = PAGE_SIZE;
-#else
- const size_t buf_size = __getpagesize ();
-#endif
- bool use_malloc = false;
- char *buf;
-
- if (__libc_use_alloca (buf_size))
- buf = alloca (buf_size);
- else
- {
- buf = malloc (buf_size);
- if (buf != NULL)
- use_malloc = true;
- else
- goto out_fail;
- }
-
- struct iovec iov = { buf, buf_size };
-
- if (TEMP_FAILURE_RETRY (__sendto (fd, (void *) &req, sizeof (req), 0,
- (struct sockaddr *) &nladdr,
- sizeof (nladdr))) < 0)
- goto out_fail;
-
- *seen_ipv4 = false;
- *seen_ipv6 = false;
-
- bool done = false;
- struct in6ailist
- {
- struct in6addrinfo info;
- struct in6ailist *next;
- } *in6ailist = NULL;
- size_t in6ailistlen = 0;
-
- do
- {
- struct msghdr msg =
- {
- (void *) &nladdr, sizeof (nladdr),
- &iov, 1,
- NULL, 0,
- 0
- };
-
- ssize_t read_len = TEMP_FAILURE_RETRY (__recvmsg (fd, &msg, 0));
- if (read_len < 0)
- goto out_fail;
-
- if (msg.msg_flags & MSG_TRUNC)
- goto out_fail;
-
- struct nlmsghdr *nlmh;
- for (nlmh = (struct nlmsghdr *) buf;
- NLMSG_OK (nlmh, (size_t) read_len);
- nlmh = (struct nlmsghdr *) NLMSG_NEXT (nlmh, read_len))
- {
- if (nladdr.nl_pid != 0 || (pid_t) nlmh->nlmsg_pid != pid
- || nlmh->nlmsg_seq != req.nlh.nlmsg_seq)
- continue;
-
- if (nlmh->nlmsg_type == RTM_NEWADDR)
- {
- struct ifaddrmsg *ifam = (struct ifaddrmsg *) NLMSG_DATA (nlmh);
- struct rtattr *rta = IFA_RTA (ifam);
- size_t len = nlmh->nlmsg_len - NLMSG_LENGTH (sizeof (*ifam));
-
- if (ifam->ifa_family != AF_INET
- && ifam->ifa_family != AF_INET6)
- continue;
-
- const void *local = NULL;
- const void *address = NULL;
- while (RTA_OK (rta, len))
- {
- switch (rta->rta_type)
- {
- case IFA_LOCAL:
- local = RTA_DATA (rta);
- break;
-
- case IFA_ADDRESS:
- address = RTA_DATA (rta);
- goto out;
- }
-
- rta = RTA_NEXT (rta, len);
- }
-
- if (local != NULL)
- {
- address = local;
- out:
- if (ifam->ifa_family == AF_INET)
- {
- if (*(const in_addr_t *) address
- != htonl (INADDR_LOOPBACK))
- *seen_ipv4 = true;
- }
- else
- {
- if (!IN6_IS_ADDR_LOOPBACK (address))
- *seen_ipv6 = true;
- }
- }
-
- struct in6ailist *newp = alloca (sizeof (*newp));
- newp->info.flags = (((ifam->ifa_flags
- & (IFA_F_DEPRECATED
- | IFA_F_OPTIMISTIC))
- ? in6ai_deprecated : 0)
- | ((ifam->ifa_flags
- & IFA_F_HOMEADDRESS)
- ? in6ai_homeaddress : 0));
- newp->info.prefixlen = ifam->ifa_prefixlen;
- newp->info.index = ifam->ifa_index;
- if (ifam->ifa_family == AF_INET)
- {
- newp->info.addr[0] = 0;
- newp->info.addr[1] = 0;
- newp->info.addr[2] = htonl (0xffff);
- newp->info.addr[3] = *(const in_addr_t *) address;
- }
- else
- memcpy (newp->info.addr, address, sizeof (newp->info.addr));
- newp->next = in6ailist;
- in6ailist = newp;
- ++in6ailistlen;
- }
- else if (nlmh->nlmsg_type == NLMSG_DONE)
- /* We found the end, leave the loop. */
- done = true;
- }
- }
- while (! done);
-
- close_not_cancel_no_status (fd);
-
- if (*seen_ipv6 && in6ailist != NULL)
- {
- *in6ai = malloc (in6ailistlen * sizeof (**in6ai));
- if (*in6ai == NULL)
- goto out_fail;
-
- *in6ailen = in6ailistlen;
-
- do
- {
- (*in6ai)[--in6ailistlen] = in6ailist->info;
- in6ailist = in6ailist->next;
- }
- while (in6ailist != NULL);
- }
-
- if (use_malloc)
- free (buf);
- return 0;
-
-out_fail:
- if (use_malloc)
- free (buf);
- return -1;
-}
-
-
-/* We don't know if we have NETLINK support compiled in in our
- Kernel. */
-#if __ASSUME_NETLINK_SUPPORT == 0
-/* Define in ifaddrs.h. */
-extern int __no_netlink_support attribute_hidden;
-#else
-# define __no_netlink_support 0
-#endif
-
-
-void
-attribute_hidden
-__check_pf (bool *seen_ipv4, bool *seen_ipv6,
- struct in6addrinfo **in6ai, size_t *in6ailen)
-{
- *in6ai = NULL;
- *in6ailen = 0;
-
- if (! __no_netlink_support)
- {
- int fd = __socket (PF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
-
- struct sockaddr_nl nladdr;
- memset (&nladdr, '\0', sizeof (nladdr));
- nladdr.nl_family = AF_NETLINK;
-
- socklen_t addr_len = sizeof (nladdr);
-
- if (fd >= 0
- && __bind (fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) == 0
- && __getsockname (fd, (struct sockaddr *) &nladdr, &addr_len) == 0
- && make_request (fd, nladdr.nl_pid, seen_ipv4, seen_ipv6,
- in6ai, in6ailen) == 0)
- /* It worked. */
- return;
-
- if (fd >= 0)
- __close (fd);
-
-#if __ASSUME_NETLINK_SUPPORT == 0
- /* Remember that there is no netlink support. */
- __no_netlink_support = 1;
-#else
- /* We cannot determine what interfaces are available. Be
- pessimistic. */
- *seen_ipv4 = true;
- *seen_ipv6 = true;
-#endif
- }
-
-#if __ASSUME_NETLINK_SUPPORT == 0
- /* No netlink. Get the interface list via getifaddrs. */
- struct ifaddrs *ifa = NULL;
- if (getifaddrs (&ifa) != 0)
- {
- /* We cannot determine what interfaces are available. Be
- pessimistic. */
- *seen_ipv4 = true;
- *seen_ipv6 = true;
- return;
- }
-
- struct ifaddrs *runp;
- for (runp = ifa; runp != NULL; runp = runp->ifa_next)
- if (runp->ifa_addr->sa_family == PF_INET)
- *seen_ipv4 = true;
- else if (runp->ifa_addr->sa_family == PF_INET6)
- *seen_ipv6 = true;
-
- (void) freeifaddrs (ifa);
-#endif
-}
Modified: fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/eabi/Makefile
==============================================================================
--- fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/eabi/Makefile (original)
+++ fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/eabi/Makefile Sun Jan 8 00:02:28 2012
@@ -1,6 +1,3 @@
-# Set this flag here so that arm/nptl/Makefile will see it.
-arm-using-eabi = yes
-
ifeq ($(subdir),csu)
# In order for unwinding to fail when it falls out of main, we need a
# cantunwind marker. There's one in start.S. To make sure we reach it, add
Removed: fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/eabi/check_pf.c
==============================================================================
--- fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/eabi/check_pf.c (original)
+++ fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/eabi/check_pf.c (removed)
@@ -1,1 +1,0 @@
-#include <sysdeps/unix/sysv/linux/check_pf.c>
Removed: fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/mmap64.S
==============================================================================
--- fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/mmap64.S (original)
+++ fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/mmap64.S (removed)
@@ -1,89 +1,0 @@
-/* Copyright (C) 2000, 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.h>
-
-#define EINVAL 22
-#define ENOSYS 38
-
-#include "kernel-features.h"
-
-#ifdef __ARMEB__
-# define LOW_OFFSET 4 + 4
-/* The initial + 4 is for the stack postdecrement. */
-# define HIGH_OFFSET 4 + 4 + 0
-#else
-# define LOW_OFFSET 4 + 0
-# define HIGH_OFFSET 4 + 4 + 4
-#endif
-
- /* The mmap2 system call takes six arguments, all in registers. */
- .text
-ENTRY (__mmap64)
-#ifdef __NR_mmap2
- ldr ip, [sp, $LOW_OFFSET]
- str r5, [sp, #-4]!
- ldr r5, [sp, $HIGH_OFFSET]
- str r4, [sp, #-4]!
- movs r4, ip, lsl $20 @ check that offset is page-aligned
- mov ip, ip, lsr $12
- moveqs r4, r5, lsr $12 @ check for overflow
- bne .Linval
- ldr r4, [sp, $8] @ load fd
- orr r5, ip, r5, lsl $20 @ compose page offset
- mov ip, r0
- DO_CALL (mmap2, 0)
- cmn r0, $4096
-# ifdef __ASSUME_MMAP2_SYSCALL
- ldr r4, [sp], #4
- ldr r5, [sp], #4
- RETINSTR(cc, lr)
- b PLTJMP(syscall_error)
-# else
- ldrcc r4, [sp], #4
- ldrcc r5, [sp], #4
- RETINSTR(cc, lr)
- cmn r0, $ENOSYS
- bne .Lerror
- /* The current kernel does not support mmap2. Fall back to plain
- mmap if the offset is small enough. */
- ldr r5, [sp, $16]
- mov r0, ip @ first arg was clobbered
- teq r5, $0
- ldreq r4, [sp], #4
- ldreq r5, [sp], #4
- beq PLTJMP(__mmap)
-# endif
-.Linval:
- mov r0, $-EINVAL
-.Lerror:
- ldr r4, [sp], #4
- ldr r5, [sp], #4
- b PLTJMP(syscall_error)
-#else
- /* The kernel headers do not support mmap2. Fall back to plain
- mmap if the offset is small enough. */
- ldr ip, [sp, $8]
- teq ip, $0
- beq PLTJMP(__mmap)
- mov r0, $-EINVAL
- b PLTJMP(syscall_error)
-#endif
-PSEUDO_END (__mmap64)
-
-weak_alias (__mmap64, mmap64)
Removed: fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/msgctl.c
==============================================================================
--- fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/msgctl.c (original)
+++ fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/msgctl.c (removed)
@@ -1,1 +1,0 @@
-#include <sysdeps/unix/sysv/linux/i386/msgctl.c>
Removed: fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/nptl/Makefile
==============================================================================
--- fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/nptl/Makefile (original)
+++ fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/nptl/Makefile (removed)
@@ -1,8 +1,0 @@
-ifeq ($(subdir),nptl)
-ifneq ($(arm-using-eabi),yes)
-# These tests rely on PTHREAD_KEYS_MAX. The SJLJ exception machinery
-# in libgcc registers one key, however, so only PTHREAD_KEYS_MAX-1
-# keys are available. This works fine for EABI targets.
-tests := $(filter-out tst-key1 tst-key4,$(tests))
-endif
-endif
Removed: fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h
==============================================================================
--- fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h (original)
+++ fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/nptl/sysdep-cancel.h (removed)
@@ -1,136 +1,0 @@
-/* Copyright (C) 2003, 2004, 2005, 2007, 2008, 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <sysdep.h>
-#include <tls.h>
-#ifndef __ASSEMBLER__
-# include <nptl/pthreadP.h>
-#endif
-
-#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
-
-# undef PSEUDO
-# define PSEUDO(name, syscall_name, args) \
- .section ".text"; \
- PSEUDO_PROLOGUE; \
- ENTRY (__##syscall_name##_nocancel); \
- DO_CALL (syscall_name, args); \
- PSEUDO_RET; \
- END (__##syscall_name##_nocancel); \
- ENTRY (name); \
- SINGLE_THREAD_P; \
- DOARGS_##args; \
- bne .Lpseudo_cancel; \
- DO_CALL (syscall_name, 0); \
- UNDOARGS_##args; \
- cmn r0, $4096; \
- PSEUDO_RET; \
- .Lpseudo_cancel: \
- DOCARGS_##args; /* save syscall args etc. around CENABLE. */ \
- CENABLE; \
- mov ip, r0; /* put mask in safe place. */ \
- UNDOCARGS_##args; /* restore syscall args. */ \
- swi SYS_ify (syscall_name); /* do the call. */ \
- str r0, [sp, $-4]!; /* save syscall return value. */ \
- mov r0, ip; /* get mask back. */ \
- CDISABLE; \
- ldmfd sp!, {r0, lr}; /* retrieve return value and address. */ \
- UNDOARGS_##args; \
- cmn r0, $4096;
-
-# define DOCARGS_0 str lr, [sp, #-4]!;
-# define UNDOCARGS_0
-
-# define DOCARGS_1 stmfd sp!, {r0, lr};
-# define UNDOCARGS_1 ldr r0, [sp], #4;
-
-# define DOCARGS_2 stmfd sp!, {r0, r1, lr};
-# define UNDOCARGS_2 ldmfd sp!, {r0, r1};
-
-# define DOCARGS_3 stmfd sp!, {r0, r1, r2, lr};
-# define UNDOCARGS_3 ldmfd sp!, {r0, r1, r2};
-
-# define DOCARGS_4 stmfd sp!, {r0, r1, r2, r3, lr};
-# define UNDOCARGS_4 ldmfd sp!, {r0, r1, r2, r3};
-
-# define DOCARGS_5 DOCARGS_4
-# define UNDOCARGS_5 UNDOCARGS_4
-
-# define DOCARGS_6 DOCARGS_5
-# define UNDOCARGS_6 UNDOCARGS_5
-
-# ifdef IS_IN_libpthread
-# define CENABLE bl PLTJMP(__pthread_enable_asynccancel)
-# define CDISABLE bl PLTJMP(__pthread_disable_asynccancel)
-# define __local_multiple_threads __pthread_multiple_threads
-# elif !defined NOT_IN_libc
-# define CENABLE bl PLTJMP(__libc_enable_asynccancel)
-# define CDISABLE bl PLTJMP(__libc_disable_asynccancel)
-# define __local_multiple_threads __libc_multiple_threads
-# elif defined IS_IN_librt
-# define CENABLE bl PLTJMP(__librt_enable_asynccancel)
-# define CDISABLE bl PLTJMP(__librt_disable_asynccancel)
-# else
-# error Unsupported library
-# endif
-
-# if defined IS_IN_libpthread || !defined NOT_IN_libc
-# ifndef __ASSEMBLER__
-extern int __local_multiple_threads attribute_hidden;
-# define SINGLE_THREAD_P __builtin_expect (__local_multiple_threads == 0, 1)
-# else
-# define SINGLE_THREAD_P \
- ldr ip, 1b; \
-2: \
- ldr ip, [pc, ip]; \
- teq ip, #0;
-# define PSEUDO_PROLOGUE \
- 1: .word __local_multiple_threads - 2f - 8;
-# endif
-# else
-/* There is no __local_multiple_threads for librt, so use the TCB. */
-# ifndef __ASSEMBLER__
-# define SINGLE_THREAD_P \
- __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
- header.multiple_threads) == 0, 1)
-# else
-# define PSEUDO_PROLOGUE
-# define SINGLE_THREAD_P \
- stmfd sp!, {r0, lr}; \
- bl __aeabi_read_tp; \
- ldr ip, [r0, #MULTIPLE_THREADS_OFFSET]; \
- ldmfd sp!, {r0, lr}; \
- teq ip, #0
-# define SINGLE_THREAD_P_PIC(x) SINGLE_THREAD_P
-# endif
-# endif
-
-#elif !defined __ASSEMBLER__
-
-/* For rtld, et cetera. */
-# define SINGLE_THREAD_P 1
-# define NO_CANCELLATION 1
-
-#endif
-
-#ifndef __ASSEMBLER__
-# define RTLD_SINGLE_THREAD_P \
- __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
- header.multiple_threads) == 0, 1)
-#endif
Removed: fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/nptl/unwind-forcedunwind.c
==============================================================================
--- fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/nptl/unwind-forcedunwind.c (original)
+++ fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/nptl/unwind-forcedunwind.c (removed)
@@ -1,146 +1,0 @@
-/* Copyright (C) 2003, 2009 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub@xxxxxxxxxx>.
-
- 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; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-#include <dlfcn.h>
-#include <stdio.h>
-#include <unwind.h>
-#include <pthreadP.h>
-
-static void *libgcc_s_handle;
-static void (*libgcc_s_resume) (struct _Unwind_Exception *exc);
-static _Unwind_Reason_Code (*libgcc_s_personality)
- (int, _Unwind_Action, _Unwind_Exception_Class, struct _Unwind_Exception *,
- struct _Unwind_Context *);
-static _Unwind_Reason_Code (*libgcc_s_forcedunwind)
- (struct _Unwind_Exception *, _Unwind_Stop_Fn, void *);
-static _Unwind_Word (*libgcc_s_getcfa) (struct _Unwind_Context *);
-static void (*libgcc_s_sjlj_register) (struct SjLj_Function_Context *);
-static void (*libgcc_s_sjlj_unregister) (struct SjLj_Function_Context *);
-
-void
-__attribute_noinline__
-pthread_cancel_init (void)
-{
- void *resume, *personality, *forcedunwind, *getcfa;
- void *handle;
- void *sjlj_register, *sjlj_unregister;
-
- if (__builtin_expect (libgcc_s_handle != NULL, 1))
- {
- /* Force gcc to reload all values. */
- asm volatile ("" ::: "memory");
- return;
- }
-
- handle = __libc_dlopen ("libgcc_s.so.1");
-
- if (handle == NULL
- || (sjlj_register = __libc_dlsym (handle, "_Unwind_SjLj_Register")) == NULL
- || (sjlj_unregister = __libc_dlsym (handle, "_Unwind_SjLj_Unregister")) == NULL
- || (resume = __libc_dlsym (handle, "_Unwind_SjLj_Resume")) == NULL
- || (personality = __libc_dlsym (handle, "__gcc_personality_sj0")) == NULL
- || (forcedunwind = __libc_dlsym (handle, "_Unwind_SjLj_ForcedUnwind"))
- == NULL
- || (getcfa = __libc_dlsym (handle, "_Unwind_GetCFA")) == NULL
- )
- __libc_fatal ("libgcc_s.so.1 must be installed for pthread_cancel to work\n");
-
- libgcc_s_resume = resume;
- libgcc_s_personality = personality;
- libgcc_s_forcedunwind = forcedunwind;
- libgcc_s_sjlj_register = sjlj_register;
- libgcc_s_sjlj_unregister = sjlj_unregister;
- libgcc_s_getcfa = getcfa;
- /* Make sure libgcc_s_getcfa is written last. Otherwise,
- pthread_cancel_init might return early even when the pointer the
- caller is interested in is not initialized yet. */
- atomic_write_barrier ();
- libgcc_s_handle = handle;
-}
-
-void
-__libc_freeres_fn_section
-__unwind_freeres (void)
-{
- void *handle = libgcc_s_handle;
- if (handle != NULL)
- {
- libgcc_s_handle = NULL;
- __libc_dlclose (handle);
- }
-}
-
-void
-_Unwind_Resume (struct _Unwind_Exception *exc)
-{
- if (__builtin_expect (libgcc_s_resume == NULL, 0))
- pthread_cancel_init ();
-
- libgcc_s_resume (exc);
-}
-
-_Unwind_Reason_Code
-__gcc_personality_v0 (int version, _Unwind_Action actions,
- _Unwind_Exception_Class exception_class,
- struct _Unwind_Exception *ue_header,
- struct _Unwind_Context *context)
-{
- if (__builtin_expect (libgcc_s_personality == NULL, 0))
- pthread_cancel_init ();
-
- return libgcc_s_personality (version, actions, exception_class,
- ue_header, context);
-}
-
-_Unwind_Reason_Code
-_Unwind_ForcedUnwind (struct _Unwind_Exception *exc, _Unwind_Stop_Fn stop,
- void *stop_argument)
-{
- if (__builtin_expect (libgcc_s_forcedunwind == NULL, 0))
- pthread_cancel_init ();
-
- return libgcc_s_forcedunwind (exc, stop, stop_argument);
-}
-
-_Unwind_Word
-_Unwind_GetCFA (struct _Unwind_Context *context)
-{
- if (__builtin_expect (libgcc_s_getcfa == NULL, 0))
- pthread_cancel_init ();
-
- return libgcc_s_getcfa (context);
-}
-
-void
-_Unwind_SjLj_Register (struct SjLj_Function_Context *fc)
-{
- if (__builtin_expect (libgcc_s_sjlj_register == NULL, 0))
- pthread_cancel_init ();
-
- libgcc_s_sjlj_register (fc);
-}
-
-void
-_Unwind_SjLj_Unregister (struct SjLj_Function_Context *fc)
-{
- if (__builtin_expect (libgcc_s_sjlj_unregister == NULL, 0))
- pthread_cancel_init ();
-
- libgcc_s_sjlj_unregister (fc);
-}
Removed: fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/nptl/unwind-resume.c
==============================================================================
--- fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/nptl/unwind-resume.c (original)
+++ fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/nptl/unwind-resume.c (removed)
@@ -1,87 +1,0 @@
-/* Copyright (C) 2003 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub@xxxxxxxxxx>.
-
- 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; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-#include <dlfcn.h>
-#include <stdio.h>
-#include <unwind.h>
-
-static void (*libgcc_s_resume) (struct _Unwind_Exception *exc);
-static _Unwind_Reason_Code (*libgcc_s_personality)
- (int, _Unwind_Action, _Unwind_Exception_Class, struct _Unwind_Exception *,
- struct _Unwind_Context *);
-static void (*libgcc_s_sjlj_register) (struct SjLj_Function_Context *);
-static void (*libgcc_s_sjlj_unregister) (struct SjLj_Function_Context *);
-
-static void
-init (void)
-{
- void *resume, *personality;
- void *handle;
- void *sjlj_register, *sjlj_unregister;
-
- handle = __libc_dlopen ("libgcc_s.so.1");
-
- if (handle == NULL
- || (sjlj_register = __libc_dlsym (handle, "_Unwind_SjLj_Register")) == NULL
- || (sjlj_unregister = __libc_dlsym (handle, "_Unwind_SjLj_Unregister")) == NULL
- || (resume = __libc_dlsym (handle, "_Unwind_SjLj_Resume")) == NULL
- || (personality = __libc_dlsym (handle, "__gcc_personality_sj0")) == NULL)
- __libc_fatal ("libgcc_s.so.1 must be installed for pthread_cancel to work\n");
-
- libgcc_s_resume = resume;
- libgcc_s_personality = personality;
- libgcc_s_sjlj_register = sjlj_register;
- libgcc_s_sjlj_unregister = sjlj_unregister;
-}
-
-void
-_Unwind_Resume (struct _Unwind_Exception *exc)
-{
- if (__builtin_expect (libgcc_s_resume == NULL, 0))
- init ();
- libgcc_s_resume (exc);
-}
-
-_Unwind_Reason_Code
-__gcc_personality_v0 (int version, _Unwind_Action actions,
- _Unwind_Exception_Class exception_class,
- struct _Unwind_Exception *ue_header,
- struct _Unwind_Context *context)
-{
- if (__builtin_expect (libgcc_s_personality == NULL, 0))
- init ();
- return libgcc_s_personality (version, actions, exception_class,
- ue_header, context);
-}
-
-void
-_Unwind_SjLj_Register (struct SjLj_Function_Context *fc)
-{
- if (__builtin_expect (libgcc_s_sjlj_register == NULL, 0))
- init ();
- libgcc_s_sjlj_register (fc);
-}
-
-void
-_Unwind_SjLj_Unregister (struct SjLj_Function_Context *fc)
-{
- if (__builtin_expect (libgcc_s_sjlj_unregister == NULL, 0))
- init ();
- libgcc_s_sjlj_unregister (fc);
-}
Removed: fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/nptl/unwind.h
==============================================================================
--- fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/nptl/unwind.h (original)
+++ fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/nptl/unwind.h (removed)
@@ -1,31 +1,0 @@
-/* Exception handling and frame unwind runtime interface routines.
- Copyright (C) 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. */
-
-#ifndef _ARM_UNWIND_H
-#define _ARM_UNWIND_H 1
-
-#include <sysdeps/generic/unwind.h>
-
-/* Call the SjLj versions of these functions. */
-#define _Unwind_ForcedUnwind _Unwind_SjLj_ForcedUnwind
-#define _Unwind_Resume _Unwind_SjLj_Resume
-#define __gcc_personality_v0 __gcc_personality_sj0
-
-#endif /* unwind.h */
Removed: fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/semctl.c
==============================================================================
--- fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/semctl.c (original)
+++ fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/semctl.c (removed)
@@ -1,1 +1,0 @@
-#include <sysdeps/unix/sysv/linux/i386/semctl.c>
Removed: fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/shmctl.c
==============================================================================
--- fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/shmctl.c (original)
+++ fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/shmctl.c (removed)
@@ -1,1 +1,0 @@
-#include <sysdeps/unix/sysv/linux/i386/shmctl.c>
Removed: fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/sigrestorer.S
==============================================================================
--- fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/sigrestorer.S (original)
+++ fsf/trunk/ports/sysdeps/unix/sysv/linux/arm/sigrestorer.S (removed)
@@ -1,35 +1,0 @@
-/* Copyright (C) 1999, 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <sysdep.h>
-
-/* If no SA_RESTORER function was specified by the application we use
- one of these. This avoids the need for the kernel to synthesise a return
- instruction on the stack, which would involve expensive cache flushes. */
-
-ENTRY(__default_sa_restorer)
- swi SYS_ify(sigreturn)
-END(__default_sa_restorer)
-
-#ifdef __NR_rt_sigreturn
-
-ENTRY(__default_rt_sa_restorer)
- swi SYS_ify(rt_sigreturn)
-END(__default_rt_sa_restorer)
-
-#endif
Modified: fsf/trunk/ports/sysdeps/unix/sysv/linux/m68k/configure
==============================================================================
--- fsf/trunk/ports/sysdeps/unix/sysv/linux/m68k/configure (original)
+++ fsf/trunk/ports/sysdeps/unix/sysv/linux/m68k/configure Sun Jan 8 00:02:28 2012
@@ -3,4 +3,9 @@
m68k/coldfire)
arch_minimum_kernel=2.6.10
;;
+*)
+ arch_minimum_kernel=2.0.10
+ ;;
esac
+libc_cv_gcc_unwind_find_fde=yes
+ldd_rewrite_script=sysdeps/unix/sysv/linux/ldd-rewrite.sed
Modified: fsf/trunk/ports/sysdeps/unix/sysv/linux/m68k/configure.in
==============================================================================
--- fsf/trunk/ports/sysdeps/unix/sysv/linux/m68k/configure.in (original)
+++ fsf/trunk/ports/sysdeps/unix/sysv/linux/m68k/configure.in Sun Jan 8 00:02:28 2012
@@ -4,4 +4,9 @@
m68k/coldfire)
arch_minimum_kernel=2.6.10
;;
+*)
+ arch_minimum_kernel=2.0.10
+ ;;
esac
+libc_cv_gcc_unwind_find_fde=yes
+ldd_rewrite_script=sysdeps/unix/sysv/linux/ldd-rewrite.sed
_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits