[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[commits] r9485 - in /fsf/trunk/ports: ./ sysdeps/arm/eabi/ sysdeps/mips/ sysdeps/unix/sysv/linux/m68k/bits/ sysdeps/unix/sysv/linux/m...
- To: commits@xxxxxxxxxx
- Subject: [commits] r9485 - in /fsf/trunk/ports: ./ sysdeps/arm/eabi/ sysdeps/mips/ sysdeps/unix/sysv/linux/m68k/bits/ sysdeps/unix/sysv/linux/m...
- From: eglibc@xxxxxxxxxx
- Date: Thu, 17 Dec 2009 08:03:41 -0000
Author: eglibc
Date: Thu Dec 17 00:03:40 2009
New Revision: 9485
Log:
Import glibc-ports-mainline for 2009-12-17
Added:
fsf/trunk/ports/sysdeps/arm/eabi/arm-mcount.S
Modified:
fsf/trunk/ports/ChangeLog.arm
fsf/trunk/ports/ChangeLog.m68k
fsf/trunk/ports/ChangeLog.mips
fsf/trunk/ports/sysdeps/arm/eabi/Makefile
fsf/trunk/ports/sysdeps/arm/eabi/machine-gmon.h
fsf/trunk/ports/sysdeps/mips/dl-lookup.c
fsf/trunk/ports/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h
fsf/trunk/ports/sysdeps/unix/sysv/linux/m68k/bits/poll.h
fsf/trunk/ports/sysdeps/unix/sysv/linux/mips/bits/poll.h
Modified: fsf/trunk/ports/ChangeLog.arm
==============================================================================
--- fsf/trunk/ports/ChangeLog.arm (original)
+++ fsf/trunk/ports/ChangeLog.arm Thu Dec 17 00:03:40 2009
@@ -1,3 +1,12 @@
+2009-12-16 Thomas Schwinge <thomas@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/arm/eabi/Makefile [gmon] (sysdep_routines): Add arm-mcount.
+ * sysdeps/arm/eabi/machine-gmon.h (mcount_internal): Define to
+ `__mcount_internal'.
+ (MCOUNT (__gnu_mcount_nc), OLD_MCOUNT (_mcount), mcount): Move to...
+ * sysdeps/arm/eabi/arm-mcount.S: ... this new file as __gnu_mcount_nc,
+ _mcount, and mcount, respectively.
+
2009-12-15 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
* sysdeps/unix/sysv/linux/arm/bits/fcntl.h: Redefine O_SYNC and
Modified: fsf/trunk/ports/ChangeLog.m68k
==============================================================================
--- fsf/trunk/ports/ChangeLog.m68k (original)
+++ fsf/trunk/ports/ChangeLog.m68k Thu Dec 17 00:03:40 2009
@@ -1,3 +1,14 @@
+2009-12-16 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ [BZ #11093]
+ * sysdeps/unix/sysv/linux/m68k/bits/poll.h: Define POLLRDNORM,
+ POLLRDBAND, POLLWRNORM, and POLLWRBAND also for POSIX 2008.
+
+2009-12-16 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/unix/sysv/linux/m68k/bits/fcntl.h: Redefine O_SYNC and
+ O_DSYNC to match 2.6.33+ kernels.
+
2009-11-23 Andreas Schwab <schwab@xxxxxxxxxxxxxx>
* sysdeps/unix/sysv/linux/m68k/bits/stat.h: Use struct timespec
Modified: fsf/trunk/ports/ChangeLog.mips
==============================================================================
--- fsf/trunk/ports/ChangeLog.mips (original)
+++ fsf/trunk/ports/ChangeLog.mips Thu Dec 17 00:03:40 2009
@@ -1,3 +1,13 @@
+2009-12-16 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ [BZ #11093]
+ * sysdeps/unix/sysv/linux/mips/bits/poll.h: Define POLLRDNORM,
+ POLLRDBAND, POLLWRNORM, and POLLWRBAND also for POSIX 2008.
+
+2009-12-16 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/mips/dl-lookup.c: Update from generic version.
+
2009-12-15 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
* sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Redefine O_SYNC and
Modified: fsf/trunk/ports/sysdeps/arm/eabi/Makefile
==============================================================================
--- fsf/trunk/ports/sysdeps/arm/eabi/Makefile (original)
+++ fsf/trunk/ports/sysdeps/arm/eabi/Makefile Thu Dec 17 00:03:40 2009
@@ -10,6 +10,10 @@
# get offset to rtld_global._dl_hwcap
gen-as-const-headers += rtld-global-offsets.sym
+endif
+
+ifeq ($(subdir),gmon)
+sysdep_routines += arm-mcount
endif
ifeq ($(subdir),debug)
Added: fsf/trunk/ports/sysdeps/arm/eabi/arm-mcount.S
==============================================================================
--- fsf/trunk/ports/sysdeps/arm/eabi/arm-mcount.S (added)
+++ fsf/trunk/ports/sysdeps/arm/eabi/arm-mcount.S Thu Dec 17 00:03:40 2009
@@ -1,0 +1,83 @@
+/* Implementation of profiling support. ARM EABI version.
+ Copyright (C) 2008, 2009 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+/* Don't call mcount when calling mcount... */
+#undef PROF
+
+#include <sysdep.h>
+
+
+#ifdef __thumb2__
+ .thumb
+ .syntax unified
+#endif
+
+
+/* Use an assembly stub with a special ABI. The calling lr has been
+ pushed to the stack (which will be misaligned). We should preserve
+ all registers except ip and pop a word off the stack.
+
+ NOTE: This assumes mcount_internal does not clobber any non-core
+ (coprocessor) registers. Currently this is true, but may require
+ additional attention in the future.
+
+ The calling sequence looks something like:
+func:
+ push {lr}
+ bl __gnu_mount_nc
+ <function body>
+*/
+
+ENTRY(__gnu_mcount_nc)
+ push {r0, r1, r2, r3, lr}
+ bic r1, lr, #1
+ ldr r0, [sp, #20]
+ bl __mcount_internal
+ pop {r0, r1, r2, r3, ip, lr}
+ bx ip
+END(__gnu_mcount_nc)
+
+
+/* Provide old mcount for backwards compatibility. This requires
+ code be compiled with APCS frame pointers. */
+
+ENTRY(_mcount)
+ stmdb sp!, {r0, r1, r2, r3, fp, lr}
+#ifdef __thumb2__
+ movs r0, fp
+ ittt ne
+ ldrne r0, [r0, #-4]
+#else
+ movs fp, fp
+ ldrne r0, [fp, #-4]
+#endif
+ movnes r1, lr
+ blne __mcount_internal
+#ifdef __thumb2__
+ ldmia sp!, {r0, r1, r2, r3, fp, pc}
+#else
+ ldmia sp!, {r0, r1, r2, r3, fp, lr}
+ bx lr
+#endif
+END(_mcount)
+
+/* The canonical name for the function is `_mcount' in both C and asm,
+ but some old asm code might assume it's `mcount'. */
+#undef mcount
+weak_alias (_mcount, mcount)
Modified: fsf/trunk/ports/sysdeps/arm/eabi/machine-gmon.h
==============================================================================
--- fsf/trunk/ports/sysdeps/arm/eabi/machine-gmon.h (original)
+++ fsf/trunk/ports/sysdeps/arm/eabi/machine-gmon.h Thu Dec 17 00:03:40 2009
@@ -1,5 +1,5 @@
/* Machine-dependent definitions for profiling support. ARM EABI version.
- Copyright (C) 2008 Free Software Foundation, Inc.
+ Copyright (C) 2008, 2009 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,83 +17,18 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
+#include <sysdep.h>
+
/* GCC for the ARM cannot compile __builtin_return_address(N) for N != 0,
so we must use an assembly stub. */
-#include <sysdep.h>
-static void mcount_internal (u_long frompc, u_long selfpc) __attribute_used__;
+/* We must not pollute the global namespace. */
+#define mcount_internal __mcount_internal
+extern void mcount_internal (u_long frompc, u_long selfpc) internal_function;
#define _MCOUNT_DECL(frompc, selfpc) \
-static void mcount_internal (u_long frompc, u_long selfpc)
-
-/* Use an assembly stub with a special ABI. The calling lr has been
- pushed to the stack (which will be misaligned). We should preserve
- all registers except ip and pop a word off the stack.
-
- NOTE: This assumes mcount_internal does not clobber any non-core
- (coprocessor) registers. Currently this is true, but may require
- additional attention in the future.
-
- The calling sequence looks something like:
-func:
- push {lr}
- bl __gnu_mount_nc
- <function body>
- */
+ void internal_function mcount_internal (u_long frompc, u_long selfpc)
-#define MCOUNT \
-void __attribute__((__naked__)) __gnu_mcount_nc(void) \
-{ \
- asm ("push {r0, r1, r2, r3, lr}\n\t" \
- "bic r1, lr, #1\n\t" \
- "ldr r0, [sp, #20]\n\t" \
- "bl mcount_internal\n\t" \
- "pop {r0, r1, r2, r3, ip, lr}\n\t" \
- "bx ip"); \
-} \
-OLD_MCOUNT
-
-/* Provide old mcount for backwards compatibility. This requires
- code be compiled with APCS frame pointers. */
-
-#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
-
-#ifdef __thumb2__
-
-#define OLD_MCOUNT \
-void __attribute__((__naked__)) _mcount (void) \
-{ \
- __asm__("push {r0, r1, r2, r3, fp, lr};" \
- "movs r0, fp;" \
- "ittt ne;" \
- "ldrne r0, [r0, #-4];" \
- "movsne r1, lr;" \
- "blne mcount_internal;" \
- "pop {r0, r1, r2, r3, fp, pc}"); \
-}
-
-#else
-
-#define OLD_MCOUNT \
-void __attribute__((__naked__)) _mcount (void) \
-{ \
- __asm__("stmdb sp!, {r0, r1, r2, r3, fp, lr};" \
- "movs fp, fp;" \
- "ldrne r0, [fp, #-4];" \
- "movnes r1, lr;" \
- "blne mcount_internal;" \
- "ldmia sp!, {r0, r1, r2, r3, fp, lr};" \
- "bx lr"); \
-}
-
-#endif
+/* Define MCOUNT as empty since we have the implementation in another file. */
+#define MCOUNT
Modified: fsf/trunk/ports/sysdeps/mips/dl-lookup.c
==============================================================================
--- fsf/trunk/ports/sysdeps/mips/dl-lookup.c (original)
+++ fsf/trunk/ports/sysdeps/mips/dl-lookup.c Thu Dec 17 00:03:40 2009
@@ -794,7 +794,7 @@
if (__builtin_expect (protected != 0, 0))
{
/* It is very tricky. We need to figure out what value to
- return for the protected symbol. */
+ return for the protected symbol. */
if (type_class == ELF_RTYPE_CLASS_PLT)
{
if (current_value.s != NULL && current_value.m != undef_map)
@@ -839,7 +839,8 @@
version, type_class, flags, skip_map);
/* The object is used. */
- current_value.m->l_used = 1;
+ if (__builtin_expect (current_value.m->l_used == 0, 0))
+ current_value.m->l_used = 1;
if (__builtin_expect (GLRO(dl_debug_mask)
& (DL_DEBUG_BINDINGS|DL_DEBUG_PRELINK), 0))
@@ -861,7 +862,7 @@
Elf_Symndx nchain;
if (__builtin_expect (map->l_info[DT_ADDRTAGIDX (DT_GNU_HASH) + DT_NUM
- + DT_THISPROCNUM + DT_VERSIONTAGNUM
+ + DT_THISPROCNUM + DT_VERSIONTAGNUM
+ DT_EXTRANUM + DT_VALNUM] != NULL, 1))
{
Elf32_Word *hash32
Modified: fsf/trunk/ports/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h
==============================================================================
--- fsf/trunk/ports/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h (original)
+++ fsf/trunk/ports/sysdeps/unix/sysv/linux/m68k/bits/fcntl.h Thu Dec 17 00:03:40 2009
@@ -40,7 +40,7 @@
#define O_APPEND 02000
#define O_NONBLOCK 04000
#define O_NDELAY O_NONBLOCK
-#define O_SYNC 010000
+#define O_SYNC 04010000
#define O_FSYNC O_SYNC
#define O_ASYNC 020000
@@ -56,7 +56,7 @@
We define the symbols here but let them do the same as O_SYNC since
this is a superset. */
#if defined __USE_POSIX199309 || defined __USE_UNIX98
-# define O_DSYNC O_SYNC /* Synchronize data. */
+# define O_DSYNC 010000 /* Synchronize data. */
# define O_RSYNC O_SYNC /* Synchronize read operations. */
#endif
Modified: fsf/trunk/ports/sysdeps/unix/sysv/linux/m68k/bits/poll.h
==============================================================================
--- fsf/trunk/ports/sysdeps/unix/sysv/linux/m68k/bits/poll.h (original)
+++ fsf/trunk/ports/sysdeps/unix/sysv/linux/m68k/bits/poll.h Thu Dec 17 00:03:40 2009
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 2001, 2008 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 2001, 2008, 2009 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -27,7 +27,7 @@
#define POLLPRI 0x002 /* There is urgent data to read. */
#define POLLOUT 0x004 /* Writing now will not block. */
-#ifdef __USE_XOPEN
+#if defined __USE_XOPEN || defined __USE_XOPEN2K8
/* These values are defined in XPG4.2. */
# define POLLRDNORM 0x040 /* Normal data may be read. */
# define POLLRDBAND 0x080 /* Priority data may be read. */
Modified: fsf/trunk/ports/sysdeps/unix/sysv/linux/mips/bits/poll.h
==============================================================================
--- fsf/trunk/ports/sysdeps/unix/sysv/linux/mips/bits/poll.h (original)
+++ fsf/trunk/ports/sysdeps/unix/sysv/linux/mips/bits/poll.h Thu Dec 17 00:03:40 2009
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 2001, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 2001, 2006, 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
@@ -27,7 +27,7 @@
#define POLLPRI 0x002 /* There is urgent data to read. */
#define POLLOUT 0x004 /* Writing now will not block. */
-#ifdef __USE_XOPEN
+#if defined __USE_XOPEN || defined __USE_XOPEN2K8
/* These values are defined in XPG4.2. */
# define POLLRDNORM 0x040 /* Normal data may be read. */
# define POLLRDBAND 0x080 /* Priority data may be read. */