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

[Commits] r21420 - in /fsf/trunk/libc: ./ manual/ nptl/ nptl/sysdeps/unix/sysv/linux/sparc/ nptl/sysdeps/unix/sysv/linux/sparc/sparc32...



Author: eglibc
Date: Tue Oct 30 00:01:43 2012
New Revision: 21420

Log:
Import glibc-mainline for 2012-10-30

Added:
    fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/Makefile
    fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/cpu_relax.S
    fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/cpu_relax.S
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/bits/libc-vdso.h
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/gettimeofday.c
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/init-first.c
Removed:
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/mips32/Makefile
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/Makefile
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/Makefile
Modified:
    fsf/trunk/libc/ChangeLog
    fsf/trunk/libc/manual/message.texi
    fsf/trunk/libc/nptl/ChangeLog
    fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h
    fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile
    fsf/trunk/libc/ports/ChangeLog.mips
    fsf/trunk/libc/ports/ChangeLog.tile
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/Makefile
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/configure
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/configure.in
    fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/Makefile
    fsf/trunk/libc/sysdeps/mach/hurd/fdatasync.c
    fsf/trunk/libc/sysdeps/mach/hurd/fsync.c
    fsf/trunk/libc/sysdeps/pthread/aio_notify.c

Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Tue Oct 30 00:01:43 2012
@@ -1,3 +1,17 @@
+2012-10-29  Mike Frysinger  <vapier@xxxxxxxxxx>
+
+	* manual/message.texi: Delete @cartouche tags.
+
+2012-10-29  Pino Toscano  <toscano.pino@xxxxxxxxxx>
+
+	* sysdeps/mach/hurd/fdatasync.c: Turn ERR into EINVAL if it is
+	EOPNOTSUPP.
+	* sysdeps/mach/hurd/fsync.c: Likewise.
+
+	* sysdeps/pthread/aio_notify.c (__aio_notify_only)
+	[_POSIX_REALTIME_SIGNALS]: Change condition to
+	[_POSIX_REALTIME_SIGNALS > 0].
+
 2012-10-27  Andreas Jaeger  <aj@xxxxxxx>
 
 	* sysdeps/unix/sysv/linux/x86/bits/fcntl.h (__O_LARGEFILE)

Modified: fsf/trunk/libc/manual/message.texi
==============================================================================
--- fsf/trunk/libc/manual/message.texi (original)
+++ fsf/trunk/libc/manual/message.texi Tue Oct 30 00:01:43 2012
@@ -699,7 +699,6 @@
 file is named @file{hello.msg} and the program source file @file{hello.c}):
 
 @smallexample
-@cartouche
 % gencat -H msgnrs.h -o hello.cat hello.msg
 % cat msgnrs.h
 #define MainSet 0x1     /* hello.msg:4 */
@@ -711,7 +710,6 @@
 % ./hello
 Hallo, Welt!
 %
-@end cartouche
 @end smallexample
 
 The call of the @code{gencat} program creates the missing header file

Modified: fsf/trunk/libc/nptl/ChangeLog
==============================================================================
--- fsf/trunk/libc/nptl/ChangeLog (original)
+++ fsf/trunk/libc/nptl/ChangeLog Tue Oct 30 00:01:43 2012
@@ -1,3 +1,15 @@
+2012-10-28  David S. Miller  <davem@xxxxxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h (BUSY_WAIT_NOP):
+	Define when we have v9 instructions available.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/cpu_relax.S: New file.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/cpu_relax.S: New
+	file.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/Makefile: New
+	file.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: Add cpu_relax
+	to libpthread-routines.
+
 2012-10-25  Roland McGrath  <roland@xxxxxxxxxxxxx>
 
 	* tst-cond-except.c (TEST_FUNCTION): New macro.

Modified: fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h (original)
+++ fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h Tue Oct 30 00:01:43 2012
@@ -50,6 +50,11 @@
 #define LLL_PRIVATE	0
 #define LLL_SHARED	FUTEX_PRIVATE_FLAG
 
+#ifndef __sparc32_atomic_do_lock
+/* Delay in spinlock loop.  */
+extern void __cpu_relax(void);
+#define BUSY_WAIT_NOP	__cpu_relax()
+#endif
 
 #if !defined NOT_IN_libc || defined IS_IN_rtld
 /* In libc.so or ld.so all futexes are private.  */

Added: fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/Makefile
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/Makefile (added)
+++ fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/Makefile Tue Oct 30 00:01:43 2012
@@ -1,0 +1,1 @@
+libpthread-routines += cpu_relax

Added: fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/cpu_relax.S
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/cpu_relax.S (added)
+++ fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/cpu_relax.S Tue Oct 30 00:01:43 2012
@@ -1,0 +1,1 @@
+#include <sparc64/cpu_relax.S>

Modified: fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile (original)
+++ fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile Tue Oct 30 00:01:43 2012
@@ -1,3 +1,5 @@
+libpthread-routines += cpu_relax
+
 ifeq ($(subdir),nptl)
 CFLAGS-pause.c += -fexceptions
 CFLAGS-sigsuspend.c += -fexceptions

Added: fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/cpu_relax.S
==============================================================================
--- fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/cpu_relax.S (added)
+++ fsf/trunk/libc/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/cpu_relax.S Tue Oct 30 00:01:43 2012
@@ -1,0 +1,67 @@
+/* CPU strand yielding for busy loops.
+   Copyright (C) 2012 Free Software Foundation, Inc.
+   Contributed by David S. Miller (davem@xxxxxxxxxxxxx)
+   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>
+
+	.text
+__cpu_relax_generic:
+	rd	%ccr, %g0
+	rd	%ccr, %g0
+	rd	%ccr, %g0
+	retl
+	 nop
+	.size	__cpu_relax_generic,.-__cpu_relax_generic
+
+__cpu_relax_pause:
+	wr	%g0, 128, %asr27
+	retl
+	 nop
+	.size	__cpu_relax_pause,.-__cpu_relax_pause
+
+ENTRY(__cpu_relax)
+	.type	__cpu_relax, @gnu_indirect_function
+# ifdef SHARED
+	SETUP_PIC_REG_LEAF(o3, o5)
+# endif
+	set	HWCAP_SPARC_PAUSE, %o1
+	andcc	%o0, %o1, %g0
+	be	1f
+	 nop
+# ifdef SHARED
+	sethi	%gdop_hix22(__cpu_relax_pause), %o1
+	xor	%o1, %gdop_lox10(__cpu_relax_pause), %o1
+# else
+	set	__cpu_relax_pause, %o1
+# endif
+	ba	10f
+	 nop
+1:
+# ifdef SHARED
+	sethi	%gdop_hix22(__cpu_relax_generic), %o1
+	xor	%o1, %gdop_lox10(__cpu_relax_generic), %o1
+# else
+	set	__cpu_relax_generic, %o1
+# endif
+10:
+# ifdef SHARED
+	add	%o3, %o1, %o1
+# endif
+	retl
+	 mov	%o1, %o0
+END(__cpu_relax)

Modified: fsf/trunk/libc/ports/ChangeLog.mips
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.mips (original)
+++ fsf/trunk/libc/ports/ChangeLog.mips Tue Oct 30 00:01:43 2012
@@ -1,3 +1,31 @@
+2012-10-29  Steve Ellcey  <sellcey@xxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/mips/mips32/Makefile: Remove.
+	* sysdeps/unix/sysv/linux/mips/mips64/n32/Makefile: Remove.
+	* sysdeps/unix/sysv/linux/mips/mips64/n64/Makefile: Remove.
+	* sysdeps/unix/sysv/linux/mips/configure.in: Create default_abi.make.
+	* sysdeps/unix/sysv/linux/mips/configure: Regenerate.
+	* sysdeps/unix/sysv/linux/mips/Makefile: Include default_abi.make.
+	(abi-variants): Add hard and soft float versions.
+	(abi-o32-options): Remove.
+	(abi-o32-condition): Remove.
+	(abi-n32-options): Remove.
+	(abi-n32-condition): Remove.
+	(abi-n64-options): Remove.
+	(abi-n64-condition): Remove.
+	(abi-o32_soft-options): New.
+	(abi-o32_soft-condition): New.
+	(abi-o32_hard-options): New.
+	(abi-o32_hard-condition): New.
+	(abi-n32_soft-options): New.
+	(abi-n32_soft-condition): New.
+	(abi-n32_hard-options): New.
+	(abi-n32_hard-condition): New.
+	(abi-n64_soft-options): New.
+	(abi-n64_soft-condition): New.
+	(abi-n64_hard-options): New.
+	(abi-n64_hard-condition): New.
+
 2012-10-19  Roland McGrath  <roland@xxxxxxxxxxxxx>
 
 	* sysdeps/unix/sysv/linux/mips/mips32/nptl/libc.abilist

Modified: fsf/trunk/libc/ports/ChangeLog.tile
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.tile (original)
+++ fsf/trunk/libc/ports/ChangeLog.tile Tue Oct 30 00:01:43 2012
@@ -1,3 +1,11 @@
+2012-10-26  Chris Metcalf  <cmetcalf@xxxxxxxxxx>
+
+	* sysdeps/unix/sysv/linux/tile/Makefile (sysdep_routines):
+	Include dl-vdso.
+	* sysdeps/unix/sysv/linux/tile/bits/libc-vdso.h: New file.
+	* sysdeps/unix/sysv/linux/tile/gettimeofday.c: New file.
+	* sysdeps/unix/sysv/linux/tile/init-first.c: New file.
+
 2012-10-19  Roland McGrath  <roland@xxxxxxxxxxxxx>
 
 	* sysdeps/unix/sysv/linux/tile/tilepro/nptl/libc.abilist:

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/Makefile
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/Makefile (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/Makefile Tue Oct 30 00:01:43 2012
@@ -8,15 +8,42 @@
 sysdep_headers += sys/cachectl.h sys/sysmips.h sys/tas.h
 endif
 
+# Get value of default-abi.
+include $(common-objpfx)default-abi.make
+
+abi-variants := o32_soft o32_hard n32_soft n32_hard n64_soft n64_hard
+
+ifeq (,$(filter $(default-abi),$(abi-variants)))
+Unknown ABI, must be one of $(abi-variants)
+endif
+
+abi-includes := sgidefs.h
+
 # _MIPS_SIM_ABI32 == 1, _MIPS_SIM_NABI32 == 2, _MIPS_SIM_ABI64 == 3
-abi-variants := o32 n32 n64
-abi-includes := sgidefs.h
-abi-o32-options := -D_MIPS_SIM=1
-abi-o32-condition := _MIPS_SIM == _MIPS_SIM_ABI32
-abi-n32-options := -D_MIPS_SIM=2
-abi-n32-condition := _MIPS_SIM == _MIPS_SIM_NABI32
-abi-n64-options := -D_MIPS_SIM=3
-abi-n64-condition := _MIPS_SIM == _MIPS_SIM_ABI64
+abi-o32_soft-options := -U_MIPS_SIM -D_MIPS_SIM=1 \
+			-D__mips_soft_float -U__mips_hard_float
+abi-o32_soft-condition := defined(__mips_soft_float) \
+			   && (_MIPS_SIM == _MIPS_SIM_ABI32)
+abi-o32_hard-options := -U_MIPS_SIM -D_MIPS_SIM=1 \
+			-D__mips_hard_float -U__mips_soft_float
+abi-o32_hard-condition := defined(__mips_hard_float) \
+			  && (_MIPS_SIM == _MIPS_SIM_ABI32)
+abi-n32_soft-options := -U_MIPS_SIM -D_MIPS_SIM=2 \
+			-D__mips_soft_float -U__mips_hard_float
+abi-n32_soft-condition := defined(__mips_soft_float) \
+			  && (_MIPS_SIM == _MIPS_SIM_NABI32)
+abi-n32_hard-options := -U_MIPS_SIM -D_MIPS_SIM=2 \
+			-D__mips_hard_float -U__mips_soft_float
+abi-n32_hard-condition := defined(__mips_hard_float) \
+			  && (_MIPS_SIM == _MIPS_SIM_NABI32)
+abi-n64_soft-options := -U_MIPS_SIM -D_MIPS_SIM=3 \
+			-D__mips_soft_float -U__mips_hard_float
+abi-n64_soft-condition := defined(__mips_soft_float) \
+			  && (_MIPS_SIM == _MIPS_SIM_ABI64)
+abi-n64_hard-options := -U_MIPS_SIM -D_MIPS_SIM=3 \
+			-D__mips_hard_float -U__mips_soft_float
+abi-n64_hard-condition := defined(__mips_hard_float) \
+			  && (_MIPS_SIM == _MIPS_SIM_ABI64)
 
 ifeq ($(subdir),elf)
 ifeq ($(build-shared),yes)

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/configure
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/configure (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/configure Tue Oct 30 00:01:43 2012
@@ -1,5 +1,111 @@
 # This file is generated from configure.in by Autoconf.  DO NOT EDIT!
  # Local configure fragment for sysdeps/unix/sysv/linux/mips.
+
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+    #if (_MIPS_SIM != _ABIO32)
+    #error Not O32 ABI
+    #endif
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  libc_mips_abi=o32
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+      #if (_MIPS_SIM != _ABIN32)
+      #error Not N32 ABI
+      #endif
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  libc_mips_abi=n32
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+        #if (_MIPS_SIM != _ABI64)
+        #error Not 64 ABI
+        #endif
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  libc_mips_abi=n64
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test -z "$libc_mips_abi"; then
+  as_fn_error "could not determine what ABI the compiler is using" "$LINENO" 5
+fi
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+    #if !defined(__mips_soft_float)
+    #error Not soft ABI
+    #endif
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  libc_mips_float=soft
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+      #if !defined(__mips_hard_float)
+      #error Not hard ABI
+      #endif
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  libc_mips_float=hard
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test -z "$libc_mips_float"; then
+  as_fn_error "could not determine if compiler is using hard or soft floating point ABI" "$LINENO" 5
+fi
+
+echo "default-abi := ${libc_mips_abi}_${libc_mips_float}" > default-abi.make
 
 case "$prefix" in
 /usr | /usr/)

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/configure.in
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/configure.in (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/configure.in Tue Oct 30 00:01:43 2012
@@ -1,6 +1,50 @@
 sinclude(./aclocal.m4)dnl Autoconf lossage
 GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
 # Local configure fragment for sysdeps/unix/sysv/linux/mips.
+
+AC_COMPILE_IFELSE(
+  [AC_LANG_PROGRAM([
+    #if (_MIPS_SIM != _ABIO32)
+    #error Not O32 ABI
+    #endif])],
+  [libc_mips_abi=o32],
+  [AC_COMPILE_IFELSE(
+    [AC_LANG_PROGRAM([
+      #if (_MIPS_SIM != _ABIN32)
+      #error Not N32 ABI
+      #endif])],
+    [libc_mips_abi=n32],
+    [AC_COMPILE_IFELSE(
+      [AC_LANG_PROGRAM([
+        #if (_MIPS_SIM != _ABI64)
+        #error Not 64 ABI
+        #endif])],
+      [libc_mips_abi=n64],
+      [])])])
+
+if test -z "$libc_mips_abi"; then
+  AC_MSG_ERROR([could not determine what ABI the compiler is using])
+fi
+
+AC_COMPILE_IFELSE(
+  [AC_LANG_PROGRAM([
+    #if !defined(__mips_soft_float)
+    #error Not soft ABI
+    #endif])],
+  [libc_mips_float=soft],
+  [AC_COMPILE_IFELSE(
+    [AC_LANG_PROGRAM([
+      #if !defined(__mips_hard_float)
+      #error Not hard ABI
+      #endif])],
+    [libc_mips_float=hard],
+    [])])
+
+if test -z "$libc_mips_float"; then
+  AC_MSG_ERROR([could not determine if compiler is using hard or soft floating point ABI])
+fi
+
+echo "default-abi := ${libc_mips_abi}_${libc_mips_float}" > default-abi.make
 
 case "$prefix" in
 /usr | /usr/)

Removed: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/mips32/Makefile
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/mips32/Makefile (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/mips32/Makefile (removed)
@@ -1,1 +1,0 @@
-default-abi := o32

Removed: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/Makefile
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/Makefile (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/mips64/n32/Makefile (removed)
@@ -1,1 +1,0 @@
-default-abi := n32

Removed: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/Makefile
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/Makefile (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/Makefile (removed)
@@ -1,1 +1,0 @@
-default-abi := n64

Modified: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/Makefile
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/Makefile (original)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/Makefile Tue Oct 30 00:01:43 2012
@@ -13,3 +13,7 @@
 sysdep_routines += set_dataplane
 
 endif
+
+ifeq ($(subdir),elf)
+sysdep_routines += dl-vdso
+endif

Added: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/bits/libc-vdso.h
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/bits/libc-vdso.h (added)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/bits/libc-vdso.h Tue Oct 30 00:01:43 2012
@@ -1,0 +1,30 @@
+/* Resolve function pointers to VDSO functions.
+   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 _LIBC_VDSO_H
+#define _LIBC_VDSO_H
+
+#ifdef SHARED
+
+extern long int (*__vdso_gettimeofday) (struct timeval *, void *)
+  attribute_hidden;
+
+#endif
+
+#endif /* _LIBC_VDSO_H */

Added: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/gettimeofday.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/gettimeofday.c (added)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/gettimeofday.c Tue Oct 30 00:01:43 2012
@@ -1,0 +1,38 @@
+/* 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/>.  */
+
+#include <sysdep.h>
+#include <stddef.h>
+#include <sys/time.h>
+#include <time.h>
+
+#undef __gettimeofday
+#include <bits/libc-vdso.h>
+
+int
+__gettimeofday (struct timeval *tv, struct timezone *tz)
+{
+#ifdef SHARED
+  /* If the vDSO is available we use it. */
+  if (__vdso_gettimeofday != NULL)
+    return __vdso_gettimeofday (tv, tz);
+#endif
+  return INLINE_SYSCALL (gettimeofday, 2, tv, tz);
+}
+
+strong_alias (__gettimeofday, __gettimeofday_internal)
+weak_alias (__gettimeofday, gettimeofday)

Added: fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/init-first.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/init-first.c (added)
+++ fsf/trunk/libc/ports/sysdeps/unix/sysv/linux/tile/init-first.c Tue Oct 30 00:01:43 2012
@@ -1,0 +1,34 @@
+/* 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/>.  */
+
+#ifdef SHARED
+#include <dl-vdso.h>
+#include <bits/libc-vdso.h>
+
+long int (*__vdso_gettimeofday) (struct timeval *, void *) attribute_hidden;
+
+static inline void
+_libc_vdso_platform_setup (void)
+{
+  PREPARE_VERSION (linux26, "LINUX_2.6", 61765110);
+  __vdso_gettimeofday = _dl_vdso_vsym ("__vdso_gettimeofday", &linux26);
+}
+
+#define VDSO_SETUP _libc_vdso_platform_setup
+#endif
+
+#include "../init-first.c"

Modified: fsf/trunk/libc/sysdeps/mach/hurd/fdatasync.c
==============================================================================
--- fsf/trunk/libc/sysdeps/mach/hurd/fdatasync.c (original)
+++ fsf/trunk/libc/sysdeps/mach/hurd/fdatasync.c Tue Oct 30 00:01:43 2012
@@ -26,6 +26,12 @@
 {
   error_t err = HURD_DPORT_USE (fd, __file_sync (port, 1, 1));
   if (err)
-    return __hurd_dfail (fd, err);
+    {
+      if (err == EOPNOTSUPP)
+	/* If the file descriptor does not support sync, return EINVAL
+	   as POSIX specifies.  */
+	err = EINVAL;
+      return __hurd_dfail (fd, err);
+    }
   return 0;
 }

Modified: fsf/trunk/libc/sysdeps/mach/hurd/fsync.c
==============================================================================
--- fsf/trunk/libc/sysdeps/mach/hurd/fsync.c (original)
+++ fsf/trunk/libc/sysdeps/mach/hurd/fsync.c Tue Oct 30 00:01:43 2012
@@ -27,6 +27,12 @@
 {
   error_t err = HURD_DPORT_USE (fd, __file_sync (port, 1, 0));
   if (err)
-    return __hurd_dfail (fd, err);
+    {
+      if (err == EOPNOTSUPP)
+	/* If the file descriptor does not support sync, return EINVAL
+	   as POSIX specifies.  */
+	err = EINVAL;
+      return __hurd_dfail (fd, err);
+    }
   return 0;
 }

Modified: fsf/trunk/libc/sysdeps/pthread/aio_notify.c
==============================================================================
--- fsf/trunk/libc/sysdeps/pthread/aio_notify.c (original)
+++ fsf/trunk/libc/sysdeps/pthread/aio_notify.c Tue Oct 30 00:01:43 2012
@@ -95,7 +95,7 @@
   else if (sigev->sigev_notify == SIGEV_SIGNAL)
     {
       /* We have to send a signal.  */
-#if _POSIX_REALTIME_SIGNALS
+#if _POSIX_REALTIME_SIGNALS > 0
       /* Note that the standard gives us the option of using a plain
 	 non-queuing signal here when SA_SIGINFO is not set for the signal.  */
 # ifdef BROKEN_THREAD_SIGNALS

_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits