* sysdeps/i386/fpu/feupdateenv.c (__feupdateenv) Invoke __feraiseexcept
instead of feraiseexcept.
+2012-01-26 Ulrich Drepper <drepper@gmail.com>
+
+ [BZ #13583]
+ * sysdeps/x86_64/multiarch/init-arch.h: Define bit_OSXSAVE.
+ * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): If
+ bit_AVX is set also check OSXAVE/XCR0 and reset bit_AVX if necessary.
+
2012-01-01 Ulrich Drepper <drepper@gmail.com>
* posix/getconf.c: Update copyright year.
GNU C Library NEWS -- history of user-visible changes. 2011-12-23
-Copyright (C) 1992-2009, 2010, 2011 Free Software Foundation, Inc.
+Copyright (C) 1992-2012 Free Software Foundation, Inc.
See the end for copying conditions.
Please send GNU C library bug reports via <http://sources.redhat.com/bugzilla/>
* The following bugs are resolved with this release:
- 411, 2547, 2548, 11365, 11494, 13731, 13732, 13733, 13747, 13748, 13749
+ 411, 2547, 2548, 11365, 11494, 13583, 13731, 13732, 13733, 13747, 13748,
+ 13749
Version 2.15
/* 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@redhat.com>.
The GNU C Library is free software; you can redistribute it and/or
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.cpuid[COMMON_CPUID_INDEX_1].ecx &= ~bit_AVX;
+ }
+
__cpu_features.family = family;
__cpu_features.model = model;
atomic_write_barrier ();
/* 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
#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)