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

[Commits] r16853 - in /fsf/trunk/libc: ./ crypt/ libio/ locale/programs/ malloc/ math/ sysdeps/generic/ sysdeps/gnu/ sysdeps/i386/ sys...



Author: eglibc
Date: Fri Jan 27 00:03:30 2012
New Revision: 16853

Log:
Import glibc-mainline for 2012-01-27

Modified:
    fsf/trunk/libc/ChangeLog
    fsf/trunk/libc/NEWS
    fsf/trunk/libc/crypt/md5.h
    fsf/trunk/libc/libio/libio.h
    fsf/trunk/libc/libio/libioP.h
    fsf/trunk/libc/locale/programs/config.h
    fsf/trunk/libc/malloc/obstack.h
    fsf/trunk/libc/math/complex.h
    fsf/trunk/libc/math/math.h
    fsf/trunk/libc/sysdeps/generic/_G_config.h
    fsf/trunk/libc/sysdeps/generic/sysdep.h
    fsf/trunk/libc/sysdeps/gnu/_G_config.h
    fsf/trunk/libc/sysdeps/i386/asm-syntax.h
    fsf/trunk/libc/sysdeps/mach/hurd/_G_config.h
    fsf/trunk/libc/sysdeps/powerpc/bits/mathdef.h
    fsf/trunk/libc/sysdeps/s390/asm-syntax.h
    fsf/trunk/libc/sysdeps/sh/sh4/bits/mathdef.h
    fsf/trunk/libc/sysdeps/sparc/bits/mathdef.h
    fsf/trunk/libc/sysdeps/unix/sysdep.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h
    fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/e_atan2.c
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/e_exp.c
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/e_log.c
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_atan.c
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_sin.c
    fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_tan.c
    fsf/trunk/libc/sysdeps/x86_64/multiarch/init-arch.c
    fsf/trunk/libc/sysdeps/x86_64/multiarch/init-arch.h

Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Fri Jan 27 00:03:30 2012
@@ -1,3 +1,44 @@
+2012-01-26  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* crypt/md5.h: Remove __STDC__ conditionals.
+	* libio/libioP.h: Likewise.
+	* locale/programs/config.h: Likewise.
+	* sysdeps/generic/sysdep.h: Likewise.
+	* sysdeps/i386/asm-syntax.h: Likewise.
+	* sysdeps/s390/asm-syntax.h: Likewise.
+	* sysdeps/unix/sysdep.h: Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h: Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: Likewise.
+
+2012-01-26  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
+
+	* libio/libio.h: Remove __STDC__ conditionals.
+	* malloc/obstack.h: Likewise.
+	* math/complex.h: Likewise.
+	* math/math.h: Likewise.
+	* sysdeps/generic/_G_config.h: Likewise.
+	* sysdeps/gnu/_G_config.h: Likewise.
+	* sysdeps/mach/hurd/_G_config.h: Likewise.
+	* sysdeps/powerpc/bits/mathdef.h: Likewise.
+	* sysdeps/sh/sh4/bits/mathdef.h: Likewise.
+	* sysdeps/sparc/bits/mathdef.h: Likewise.
+
+2012-01-26  Ulrich Drepper  <drepper@xxxxxxxxx>
+
+	[BZ #13583]
+	* sysdeps/x86_64/multiarch/init-arch.h: Define bit_OSXSAVE.
+	Clean up HAS_* macros.
+	* sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): If
+	bit_AVX is set also check OSXAVE/XCR0 and set bit_YMM_Usable if
+	possible.
+	* sysdeps/x86_64/fpu/multiarch/e_atan2.c: Use HAS_YMM_USABLE, not
+	HAS_AVX.
+	* sysdeps/x86_64/fpu/multiarch/e_exp.c: Likewise.
+	* sysdeps/x86_64/fpu/multiarch/e_log.c: Likewise.
+	* sysdeps/x86_64/fpu/multiarch/s_atan.c: Likewise.
+	* sysdeps/x86_64/fpu/multiarch/s_sin.c: Likewise.
+	* sysdeps/x86_64/fpu/multiarch/s_tan.c: Likewise.
+
 2012-01-25  Joseph Myers  <joseph@xxxxxxxxxxxxxxxx>
 
 	* elf/tst-unique3.cc (gets): Remove declaration.

Modified: fsf/trunk/libc/NEWS
==============================================================================
--- fsf/trunk/libc/NEWS (original)
+++ fsf/trunk/libc/NEWS Fri Jan 27 00:03:30 2012
@@ -1,4 +1,4 @@
-GNU C Library NEWS -- history of user-visible changes.  2012-1-10
+GNU C Library NEWS -- history of user-visible changes.  2012-1-26
 Copyright (C) 1992-2009, 2010, 2011, 2012 Free Software Foundation, Inc.
 See the end for copying conditions.
 
@@ -10,7 +10,7 @@
 * The following bugs are resolved with this release:
 
   13525, 13526, 13527, 13528, 13529, 13531, 13532, 13533, 13547, 13530,
-  13551, 13552, 13553, 13555, 13559
+  13551, 13552, 13553, 13555, 13559, 13583
 
 * ISO C11 support:
 

Modified: fsf/trunk/libc/crypt/md5.h
==============================================================================
--- fsf/trunk/libc/crypt/md5.h (original)
+++ fsf/trunk/libc/crypt/md5.h Fri Jan 27 00:03:30 2012
@@ -1,6 +1,6 @@
 /* Declaration of functions and data types used for MD5 sum computing
    library functions.
-   Copyright (C) 1995-1997,1999,2000,2001,2004,2005,2011
+   Copyright (C) 1995-1997,1999,2000,2001,2004,2005,2011,2012
       Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -43,11 +43,7 @@
 typedef uint32_t md5_uint32;
 typedef uintptr_t md5_uintptr;
 #else
-# if defined __STDC__ && __STDC__
-#  define UINT_MAX_32_BITS 4294967295U
-# else
-#  define UINT_MAX_32_BITS 0xFFFFFFFF
-# endif
+# define UINT_MAX_32_BITS 4294967295U
 
 /* If UINT_MAX isn't defined, assume it's a 32-bit type.
    This should be valid for all systems GNU cares about because

Modified: fsf/trunk/libc/libio/libio.h
==============================================================================
--- fsf/trunk/libc/libio/libio.h (original)
+++ fsf/trunk/libc/libio/libio.h Fri Jan 27 00:03:30 2012
@@ -62,13 +62,8 @@
 # if _G_HAVE_SYS_CDEFS
 #  include <sys/cdefs.h>
 # else
-#  ifdef __STDC__
-#   define __P(p) p
-#   define __PMT(p) p
-#  else
-#   define __P(p) ()
-#   define __PMT(p) ()
-#  endif
+#  define __P(p) p
+#  define __PMT(p) p
 # endif
 #endif /*!__P*/
 
@@ -77,11 +72,6 @@
 # define _PARAMS(protos) __P(protos)
 #endif /*!_PARAMS*/
 
-#ifndef __STDC__
-# ifndef const
-#  define const
-# endif
-#endif
 #define _IO_UNIFIED_JUMPTABLES 1
 #ifndef _G_HAVE_PRINTF_FP
 # define _IO_USE_DTOA 1

Modified: fsf/trunk/libc/libio/libioP.h
==============================================================================
--- fsf/trunk/libc/libio/libioP.h (original)
+++ fsf/trunk/libc/libio/libioP.h Fri Jan 27 00:03:30 2012
@@ -927,11 +927,7 @@
 # endif
 #endif /* !defined(builtinbuf_vtable) && defined(__cplusplus) */
 
-#if defined(__STDC__) || defined(__cplusplus)
-# define _IO_va_start(args, last) va_start(args, last)
-#else
-# define _IO_va_start(args, last) va_start(args)
-#endif
+#define _IO_va_start(args, last) va_start(args, last)
 
 extern struct _IO_fake_stdiobuf _IO_stdin_buf, _IO_stdout_buf, _IO_stderr_buf;
 

Modified: fsf/trunk/libc/locale/programs/config.h
==============================================================================
--- fsf/trunk/libc/locale/programs/config.h (original)
+++ fsf/trunk/libc/locale/programs/config.h Fri Jan 27 00:03:30 2012
@@ -1,5 +1,5 @@
 /* Configuration for localedef program.
-   Copyright (C) 1995,1996,1997,1998,2000,2005 Free Software Foundation, Inc.
+   Copyright (C) 1995-1998,2000,2005,2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 1995.
 
@@ -30,11 +30,7 @@
 #define DEFAULT_CHARMAP "ANSI_X3.4-1968" /* ASCII */
 
 #ifndef PARAMS
-# if __STDC__
-#  define PARAMS(args) args
-# else
-#  define PARAMS(args) ()
-# endif
+# define PARAMS(args) args
 #endif
 
 /* This must be one higer than the last used LC_xxx category value.  */

Modified: fsf/trunk/libc/malloc/obstack.h
==============================================================================
--- fsf/trunk/libc/malloc/obstack.h (original)
+++ fsf/trunk/libc/malloc/obstack.h Fri Jan 27 00:03:30 2012
@@ -1,5 +1,5 @@
 /* obstack.h - object stack macros
-   Copyright (C) 1988-1994,1996-1999,2003,2004,2005,2009,2011
+   Copyright (C) 1988-1994,1996-1999,2003,2004,2005,2009,2011,2012
 	Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -250,7 +250,7 @@
 
 #define obstack_memory_used(h) _obstack_memory_used (h)
 
-#if defined __GNUC__ && defined __STDC__ && __STDC__
+#if defined __GNUC__
 /* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and
    does not implement __extension__.  But that compiler doesn't define
    __GNUC_MINOR__.  */
@@ -402,7 +402,7 @@
      __o->next_free = __o->object_base = (char *)__obj;			\
    else (obstack_free) (__o, __obj); })
 
-#else /* not __GNUC__ or not __STDC__ */
+#else /* not __GNUC__ */
 
 # define obstack_object_size(h) \
  (unsigned) ((h)->next_free - (h)->object_base)
@@ -500,7 +500,7 @@
        = (h)->temp.tempint + (char *) (h)->chunk), 0)			\
    : ((obstack_free) ((h), (h)->temp.tempint + (char *) (h)->chunk), 0)))
 
-#endif /* not __GNUC__ or not __STDC__ */
+#endif /* not __GNUC__ */
 
 #ifdef __cplusplus
 }	/* C++ */

Modified: fsf/trunk/libc/math/complex.h
==============================================================================
--- fsf/trunk/libc/math/complex.h (original)
+++ fsf/trunk/libc/math/complex.h Fri Jan 27 00:03:30 2012
@@ -82,20 +82,15 @@
 # define _Mfloat_		float
 #endif
 #define _Mdouble_ 		_Mfloat_
-#ifdef __STDC__
-# define __MATH_PRECNAME(name)	name##f
-#else
-# define __MATH_PRECNAME(name)	name/**/f
-#endif
+#define __MATH_PRECNAME(name)	name##f
 #include <bits/cmathcalls.h>
 #undef	_Mdouble_
 #undef	__MATH_PRECNAME
 
 /* And the long double versions.  It is non-critical to define them
    here unconditionally since `long double' is required in ISO C99.  */
-#if (__STDC__ - 0 || __GNUC__ - 0) \
-    && (!(defined __NO_LONG_DOUBLE_MATH && defined _LIBC) \
-	|| defined __LDBL_COMPAT)
+#if !(defined __NO_LONG_DOUBLE_MATH && defined _LIBC)	\
+    || defined __LDBL_COMPAT
 # ifdef __LDBL_COMPAT
 #  undef __MATHDECL_1
 #  define __MATHDECL_1(type, function, args) \
@@ -106,11 +101,7 @@
 #  define _Mlong_double_	long double
 # endif
 # define _Mdouble_ 		_Mlong_double_
-# ifdef __STDC__
-#  define __MATH_PRECNAME(name)	name##l
-# else
-#  define __MATH_PRECNAME(name)	name/**/l
-# endif
+# define __MATH_PRECNAME(name)	name##l
 # include <bits/cmathcalls.h>
 #endif
 #undef	_Mdouble_

Modified: fsf/trunk/libc/math/math.h
==============================================================================
--- fsf/trunk/libc/math/math.h (original)
+++ fsf/trunk/libc/math/math.h Fri Jan 27 00:03:30 2012
@@ -1,5 +1,5 @@
 /* Declarations for math functions.
-   Copyright (C) 1991-1993, 1995-1999, 2001, 2002, 2004, 2006, 2009, 2011
+   Copyright (C) 1991-1993, 1995-1999, 2001, 2002, 2004, 2006, 2009, 2011, 2012
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -84,11 +84,7 @@
 #  define _Mfloat_		float
 # endif
 # define _Mdouble_		_Mfloat_
-# ifdef __STDC__
-#  define __MATH_PRECNAME(name,r) name##f##r
-# else
-#  define __MATH_PRECNAME(name,r) name/**/f/**/r
-# endif
+# define __MATH_PRECNAME(name,r) name##f##r
 # define _Mdouble_BEGIN_NAMESPACE __BEGIN_NAMESPACE_C99
 # define _Mdouble_END_NAMESPACE   __END_NAMESPACE_C99
 # include <bits/mathcalls.h>
@@ -97,9 +93,8 @@
 # undef _Mdouble_END_NAMESPACE
 # undef	__MATH_PRECNAME
 
-# if (__STDC__ - 0 || __GNUC__ - 0) \
-     && (!(defined __NO_LONG_DOUBLE_MATH && defined _LIBC) \
-	 || defined __LDBL_COMPAT)
+# if !(defined __NO_LONG_DOUBLE_MATH && defined _LIBC) \
+     || defined __LDBL_COMPAT
 #  ifdef __LDBL_COMPAT
 
 #   ifdef __USE_ISOC99
@@ -132,11 +127,7 @@
 #   define _Mlong_double_	long double
 #  endif
 #  define _Mdouble_		_Mlong_double_
-#  ifdef __STDC__
-#   define __MATH_PRECNAME(name,r) name##l##r
-#  else
-#   define __MATH_PRECNAME(name,r) name/**/l/**/r
-#  endif
+#  define __MATH_PRECNAME(name,r) name##l##r
 #  define _Mdouble_BEGIN_NAMESPACE __BEGIN_NAMESPACE_C99
 #  define _Mdouble_END_NAMESPACE   __END_NAMESPACE_C99
 #  define __MATH_DECLARE_LDOUBLE   1
@@ -146,7 +137,7 @@
 #  undef _Mdouble_END_NAMESPACE
 #  undef __MATH_PRECNAME
 
-# endif /* __STDC__ || __GNUC__ */
+# endif /* !(__NO_LONG_DOUBLE_MATH && _LIBC) || __LDBL_COMPAT */
 
 #endif	/* Use misc or ISO C99.  */
 #undef	__MATHDECL_1

Modified: fsf/trunk/libc/sysdeps/generic/_G_config.h
==============================================================================
--- fsf/trunk/libc/sysdeps/generic/_G_config.h (original)
+++ fsf/trunk/libc/sysdeps/generic/_G_config.h Fri Jan 27 00:03:30 2012
@@ -84,10 +84,6 @@
 #define _G_VTABLE_LABEL_HAS_LENGTH 1
 
 
-#if defined __cplusplus || defined __STDC__
-# define _G_ARGS(ARGLIST) ARGLIST
-#else
-# define _G_ARGS(ARGLIST) ()
-#endif
+#define _G_ARGS(ARGLIST) ARGLIST
 
 #endif	/* _G_config.h */

Modified: fsf/trunk/libc/sysdeps/generic/sysdep.h
==============================================================================
--- fsf/trunk/libc/sysdeps/generic/sysdep.h (original)
+++ fsf/trunk/libc/sysdeps/generic/sysdep.h Fri Jan 27 00:03:30 2012
@@ -21,11 +21,7 @@
 #ifndef C_LABEL
 
 /* Define a macro we can use to construct the asm name for a C symbol.  */
-# ifdef __STDC__
-#  define C_LABEL(name)	name##:
-# else
-#  define C_LABEL(name)	name/**/:
-# endif
+# define C_LABEL(name)	name##:
 
 #endif
 

Modified: fsf/trunk/libc/sysdeps/gnu/_G_config.h
==============================================================================
--- fsf/trunk/libc/sysdeps/gnu/_G_config.h (original)
+++ fsf/trunk/libc/sysdeps/gnu/_G_config.h Fri Jan 27 00:03:30 2012
@@ -92,10 +92,6 @@
 #define _G_VTABLE_LABEL_PREFIX_ID __vt_
 
 
-#if defined __cplusplus || defined __STDC__
-# define _G_ARGS(ARGLIST) ARGLIST
-#else
-# define _G_ARGS(ARGLIST) ()
-#endif
+#define _G_ARGS(ARGLIST) ARGLIST
 
 #endif	/* _G_config.h */

Modified: fsf/trunk/libc/sysdeps/i386/asm-syntax.h
==============================================================================
--- fsf/trunk/libc/sysdeps/i386/asm-syntax.h (original)
+++ fsf/trunk/libc/sysdeps/i386/asm-syntax.h Fri Jan 27 00:03:30 2012
@@ -23,15 +23,7 @@
 
 #undef L
 #ifdef __ELF__
-# ifdef __STDC__
-#  define L(body) .L##body
-# else
-#  define L(body) .L/**/body
-# endif
+# define L(body) .L##body
 #else
-# ifdef __STDC__
-#  define L(body) L##body
-# else
-#  define L(body) L/**/body
-# endif
+# define L(body) L##body
 #endif

Modified: fsf/trunk/libc/sysdeps/mach/hurd/_G_config.h
==============================================================================
--- fsf/trunk/libc/sysdeps/mach/hurd/_G_config.h (original)
+++ fsf/trunk/libc/sysdeps/mach/hurd/_G_config.h Fri Jan 27 00:03:30 2012
@@ -91,10 +91,6 @@
 #define _G_VTABLE_LABEL_PREFIX_ID __vt_
 
 
-#if defined __cplusplus || defined __STDC__
-# define _G_ARGS(ARGLIST) ARGLIST
-#else
-# define _G_ARGS(ARGLIST) ()
-#endif
+#define _G_ARGS(ARGLIST) ARGLIST
 
 #endif	/* _G_config.h */

Modified: fsf/trunk/libc/sysdeps/powerpc/bits/mathdef.h
==============================================================================
--- fsf/trunk/libc/sysdeps/powerpc/bits/mathdef.h (original)
+++ fsf/trunk/libc/sysdeps/powerpc/bits/mathdef.h Fri Jan 27 00:03:30 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997,1998,1999,2000,2003,2004,2006,2010
+/* Copyright (C) 1997,1998,1999,2000,2003,2004,2006,2010,2012
 	Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -32,23 +32,13 @@
 # define _MATH_H_MATHDEF	1
 
 # ifdef __GNUC__
-#  if __STDC__ == 1
 
-/* In GNU or ANSI mode, gcc leaves `float' expressions as-is.  */
+/* gcc leaves `float' expressions as-is.  */
 typedef float float_t;		/* `float' expressions are evaluated as
 				   `float'.  */
 typedef double double_t;	/* `double' expressions are evaluated as
 				   `double'.  */
 
-#  else
-
-/* For `gcc -traditional', `float' expressions are evaluated as `double'. */
-typedef double float_t;		/* `float' expressions are evaluated as
-				   `double'.  */
-typedef double double_t;	/* `double' expressions are evaluated as
-				   `double'.  */
-
-#  endif
 # else
 
 /* Wild guess at types for float_t and double_t. */

Modified: fsf/trunk/libc/sysdeps/s390/asm-syntax.h
==============================================================================
--- fsf/trunk/libc/sysdeps/s390/asm-syntax.h (original)
+++ fsf/trunk/libc/sysdeps/s390/asm-syntax.h Fri Jan 27 00:03:30 2012
@@ -23,15 +23,7 @@
 
 #undef L
 #ifdef __ELF__
-# ifdef __STDC__
-#  define L(body) .L##body
-# else
-#  define L(body) .L/**/body
-# endif
+# define L(body) .L##body
 #else
-# ifdef __STDC__
-#  define L(body) L##body
-# else
-#  define L(body) L/**/body
-# endif
+# define L(body) L##body
 #endif

Modified: fsf/trunk/libc/sysdeps/sh/sh4/bits/mathdef.h
==============================================================================
--- fsf/trunk/libc/sysdeps/sh/sh4/bits/mathdef.h (original)
+++ fsf/trunk/libc/sysdeps/sh/sh4/bits/mathdef.h Fri Jan 27 00:03:30 2012
@@ -1,4 +1,5 @@
-/* Copyright (C) 1997, 1998, 1999, 2000, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999, 2000, 2004, 2012
+   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -31,23 +32,13 @@
 # define _MATH_H_MATHDEF	1
 
 # ifdef __GNUC__
-#  if __STDC__ == 1
 
-/* In GNU or ANSI mode, gcc leaves `float' expressions as-is.  */
+/* gcc leaves `float' expressions as-is.  */
 typedef float float_t;		/* `float' expressions are evaluated as
 				   `float'.  */
 typedef double double_t;	/* `double' expressions are evaluated as
 				   `double'.  */
 
-#  else
-
-/* For `gcc -traditional', `float' expressions are evaluated as `double'. */
-typedef double float_t;		/* `float' expressions are evaluated as
-				   `double'.  */
-typedef double double_t;	/* `double' expressions are evaluated as
-				   `double'.  */
-
-#  endif
 # else
 
 /* Wild guess at types for float_t and double_t. */

Modified: fsf/trunk/libc/sysdeps/sparc/bits/mathdef.h
==============================================================================
--- fsf/trunk/libc/sysdeps/sparc/bits/mathdef.h (original)
+++ fsf/trunk/libc/sysdeps/sparc/bits/mathdef.h Fri Jan 27 00:03:30 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 1999, 2000, 2004, 2006
+/* Copyright (C) 1997, 1998, 1999, 2000, 2004, 2006, 2012
    Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -30,19 +30,11 @@
 # define _MATH_H_MATHDEF	1
 
 # ifdef __GNUC__
-#  if __STDC__ == 1
 
-/* In GNU or ANSI mode, gcc leaves `float' expressions as-is.  */
+/* gcc leaves `float' expressions as-is.  */
 typedef float float_t;
 typedef double double_t;
 
-#  else
-
-/* For `gcc -traditional', `float' expressions are evaluated as `double'. */
-typedef double float_t;
-typedef double double_t;
-
-#  endif
 # else
 
 /* Wild guess at types for float_t and double_t. */

Modified: fsf/trunk/libc/sysdeps/unix/sysdep.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysdep.h (original)
+++ fsf/trunk/libc/sysdeps/unix/sysdep.h Fri Jan 27 00:03:30 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 93, 96, 98, 2003 Free Software Foundation, Inc.
+/* Copyright (C) 1991-1993, 96, 98, 2003, 2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -22,11 +22,7 @@
 #define	HAVE_SYSCALLS
 
 /* Note that using a `PASTE' macro loses.  */
-#ifdef	__STDC__
 #define	SYSCALL__(name, args)	PSEUDO (__##name, name, args)
-#else
-#define	SYSCALL__(name, args)	PSEUDO (__/**/name, name, args)
-#endif
 #define	SYSCALL(name, args)	PSEUDO (name, name, args)
 
 /* Machine-dependent sysdep.h files are expected to define the macro
@@ -36,11 +32,7 @@
    an instruction such that "MOVE(r1, r0)" works.  ret should be defined
    as the return instruction.  */
 
-#ifdef __STDC__
 #define SYS_ify(syscall_name) SYS_##syscall_name
-#else
-#define SYS_ify(syscall_name) SYS_/**/syscall_name
-#endif
 
 /* Terminate a system call named SYM.  This is used on some platforms
    to generate correct debugging information.  */

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h Fri Jan 27 00:03:30 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992,1997-2003,2004,2005,2006 Free Software Foundation, Inc.
+/* Copyright (C) 1992,1997-2006,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
@@ -45,11 +45,7 @@
    of the kernel.  But these symbols do not follow the SYS_* syntax
    so we have to redefine the `SYS_ify' macro here.  */
 #undef SYS_ify
-#ifdef __STDC__
-# define SYS_ify(syscall_name)	__NR_##syscall_name
-#else
-# define SYS_ify(syscall_name)	__NR_/**/syscall_name
-#endif
+#define SYS_ify(syscall_name)	__NR_##syscall_name
 
 #ifndef __ASSEMBLER__
 

Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h Fri Jan 27 00:03:30 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006
+/* Copyright (C) 1992,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2012
 	Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -53,11 +53,7 @@
    of the kernel.  But these symbols do not follow the SYS_* syntax
    so we have to redefine the `SYS_ify' macro here.  */
 #undef SYS_ify
-#ifdef __STDC__
-# define SYS_ify(syscall_name)	__NR_##syscall_name
-#else
-# define SYS_ify(syscall_name)	__NR_/**/syscall_name
-#endif
+#define SYS_ify(syscall_name)	__NR_##syscall_name
 
 #ifdef __ASSEMBLER__
 

Modified: fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/e_atan2.c
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/e_atan2.c (original)
+++ fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/e_atan2.c Fri Jan 27 00:03:30 2012
@@ -14,7 +14,7 @@
 
 libm_ifunc (__ieee754_atan2,
 	    HAS_FMA4 ? __ieee754_atan2_fma4
-	    : (HAS_AVX ? __ieee754_atan2_avx : __ieee754_atan2_sse2));
+	    : (HAS_YMM_USABLE ? __ieee754_atan2_avx : __ieee754_atan2_sse2));
 strong_alias (__ieee754_atan2, __atan2_finite)
 
 # define __ieee754_atan2 __ieee754_atan2_sse2

Modified: fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/e_exp.c
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/e_exp.c (original)
+++ fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/e_exp.c Fri Jan 27 00:03:30 2012
@@ -14,7 +14,7 @@
 
 libm_ifunc (__ieee754_exp,
 	    HAS_FMA4 ? __ieee754_exp_fma4
-	    : (HAS_AVX ? __ieee754_exp_avx : __ieee754_exp_sse2));
+	    : (HAS_YMM_USABLE ? __ieee754_exp_avx : __ieee754_exp_sse2));
 strong_alias (__ieee754_exp, __exp_finite)
 
 # define __ieee754_exp __ieee754_exp_sse2

Modified: fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/e_log.c
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/e_log.c (original)
+++ fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/e_log.c Fri Jan 27 00:03:30 2012
@@ -14,7 +14,7 @@
 
 libm_ifunc (__ieee754_log,
 	    HAS_FMA4 ? __ieee754_log_fma4
-	    : (HAS_AVX ? __ieee754_log_avx
+	    : (HAS_YMM_USABLE ? __ieee754_log_avx
 	       : __ieee754_log_sse2));
 strong_alias (__ieee754_log, __log_finite)
 

Modified: fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_atan.c
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_atan.c (original)
+++ fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_atan.c Fri Jan 27 00:03:30 2012
@@ -12,7 +12,8 @@
 #  define __atan_fma4 ((void *) 0)
 # endif
 
-libm_ifunc (atan, HAS_FMA4 ? __atan_fma4 : HAS_AVX ? __atan_avx : __atan_sse2);
+libm_ifunc (atan, (HAS_FMA4 ? __atan_fma4 :
+		   HAS_YMM_USABLE ? __atan_avx : __atan_sse2));
 
 # define atan __atan_sse2
 #endif

Modified: fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_sin.c
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_sin.c (original)
+++ fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_sin.c Fri Jan 27 00:03:30 2012
@@ -17,10 +17,12 @@
 #  define __sin_fma4 ((void *) 0)
 # endif
 
-libm_ifunc (__cos, HAS_FMA4 ? __cos_fma4 : HAS_AVX ? __cos_avx : __cos_sse2);
+libm_ifunc (__cos, (HAS_FMA4 ? __cos_fma4 :
+		    HAS_YMM_USABLE ? __cos_avx : __cos_sse2));
 weak_alias (__cos, cos)
 
-libm_ifunc (__sin, HAS_FMA4 ? __sin_fma4 : HAS_AVX ? __sin_avx : __sin_sse2);
+libm_ifunc (__sin, (HAS_FMA4 ? __sin_fma4 :
+		    HAS_YMM_USABLE ? __sin_avx : __sin_sse2));
 weak_alias (__sin, sin)
 
 # define __cos __cos_sse2

Modified: fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_tan.c
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_tan.c (original)
+++ fsf/trunk/libc/sysdeps/x86_64/fpu/multiarch/s_tan.c Fri Jan 27 00:03:30 2012
@@ -12,7 +12,8 @@
 #  define __tan_fma4 ((void *) 0)
 # endif
 
-libm_ifunc (tan, HAS_FMA4 ? __tan_fma4 : HAS_AVX ? __tan_avx : __tan_sse2);
+libm_ifunc (tan, (HAS_FMA4 ? __tan_fma4 :
+		  HAS_YMM_USABLE ? __tan_avx : __tan_sse2));
 
 # define tan __tan_sse2
 #endif

Modified: fsf/trunk/libc/sysdeps/x86_64/multiarch/init-arch.c
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/multiarch/init-arch.c (original)
+++ fsf/trunk/libc/sysdeps/x86_64/multiarch/init-arch.c Fri Jan 27 00:03:30 2012
@@ -1,6 +1,6 @@
 /* Initialize CPU feature data.
    This file is part of the GNU C Library.
-   Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+   Copyright (C) 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
    Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -144,6 +144,18 @@
   else
     kind = arch_kind_other;
 
+  if (__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_AVX)
+    {
+      /* Reset the AVX bit in case OSXSAVE is disabled.  */
+      if ((__cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx & bit_OSXSAVE) != 0
+	  && ({ unsigned int xcrlow;
+		unsigned int xcrhigh;
+		asm ("xgetbv"
+		     : "=a" (xcrlow), "=d" (xcrhigh) : "c" (0));
+		(xcrlow & 6) == 6; }))
+	__cpu_features.feature[index_YMM_Usable] |= bit_YMM_Usable;
+    }
+
   __cpu_features.family = family;
   __cpu_features.model = model;
   atomic_write_barrier ();

Modified: fsf/trunk/libc/sysdeps/x86_64/multiarch/init-arch.h
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/multiarch/init-arch.h (original)
+++ fsf/trunk/libc/sysdeps/x86_64/multiarch/init-arch.h Fri Jan 27 00:03:30 2012
@@ -1,5 +1,5 @@
 /* This file is part of the GNU C Library.
-   Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+   Copyright (C) 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
 
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
@@ -22,11 +22,13 @@
 #define bit_Prefer_SSE_for_memop	(1 << 3)
 #define bit_Fast_Unaligned_Load		(1 << 4)
 #define bit_Prefer_PMINUB_for_stringop	(1 << 5)
+#define bit_YMM_Usable			(1 << 6)
 
 #define bit_SSE2	(1 << 26)
 #define bit_SSSE3	(1 << 9)
 #define bit_SSE4_1	(1 << 19)
 #define bit_SSE4_2	(1 << 20)
+#define bit_OSXSAVE	(1 << 27)
 #define bit_AVX		(1 << 28)
 #define bit_POPCOUNT	(1 << 23)
 #define bit_FMA		(1 << 12)
@@ -48,6 +50,7 @@
 # define index_Prefer_SSE_for_memop	FEATURE_INDEX_1*FEATURE_SIZE
 # define index_Fast_Unaligned_Load	FEATURE_INDEX_1*FEATURE_SIZE
 # define index_Prefer_PMINUB_for_stringop FEATURE_INDEX_1*FEATURE_SIZE
+# define index_YMM_Usable		FEATURE_INDEX_1*FEATURE_SIZE
 
 #else	/* __ASSEMBLER__ */
 
@@ -92,7 +95,7 @@
 
 
 extern void __init_cpu_features (void) attribute_hidden;
-#define INIT_ARCH()\
+# define INIT_ARCH() \
   do							\
     if (__cpu_features.kind == arch_kind_unknown)	\
       __init_cpu_features ();				\
@@ -125,23 +128,21 @@
 # define index_Slow_BSF			FEATURE_INDEX_1
 # define index_Prefer_SSE_for_memop	FEATURE_INDEX_1
 # define index_Fast_Unaligned_Load	FEATURE_INDEX_1
+# define index_YMM_Usable		FEATURE_INDEX_1
 
-#define HAS_ARCH_FEATURE(idx, bit) \
-  ((__get_cpu_features ()->feature[idx] & (bit)) != 0)
+# define HAS_ARCH_FEATURE(name) \
+  ((__get_cpu_features ()->feature[index_##name] & (bit_##name)) != 0)
 
-#define HAS_FAST_REP_STRING \
-  HAS_ARCH_FEATURE (index_Fast_Rep_String, bit_Fast_Rep_String)
+# define HAS_FAST_REP_STRING	HAS_ARCH_FEATURE (Fast_Rep_String)
 
-#define HAS_FAST_COPY_BACKWARD \
-  HAS_ARCH_FEATURE (index_Fast_Copy_Backward, bit_Fast_Copy_Backward)
+# define HAS_FAST_COPY_BACKWARD	HAS_ARCH_FEATURE (Fast_Copy_Backward)
 
-#define HAS_SLOW_BSF \
-  HAS_ARCH_FEATURE (index_Slow_BSF, bit_Slow_BSF)
+# define HAS_SLOW_BSF		HAS_ARCH_FEATURE (Slow_BSF)
 
-#define HAS_PREFER_SSE_FOR_MEMOP \
-  HAS_ARCH_FEATURE (index_Prefer_SSE_for_memop, bit_Prefer_SSE_for_memop)
+# define HAS_PREFER_SSE_FOR_MEMOP HAS_ARCH_FEATURE (Prefer_SSE_for_memop)
 
-#define HAS_FAST_UNALIGNED_LOAD \
-  HAS_ARCH_FEATURE (index_Fast_Unaligned_Load, bit_Fast_Unaligned_Load)
+# define HAS_FAST_UNALIGNED_LOAD HAS_ARCH_FEATURE (Fast_Unaligned_Load)
+
+# define HAS_YMM_USABLE		HAS_ARCH_FEATURE (YMM_Usable)
 
 #endif	/* __ASSEMBLER__ */

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