[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commits] r21581 - in /fsf/trunk/libc: ./ conform/ conform/data/ conform/data/sys/ elf/ localedata/ localedata/locales/ manual/ math/ ...
- To: commits@xxxxxxxxxx
- Subject: [Commits] r21581 - in /fsf/trunk/libc: ./ conform/ conform/data/ conform/data/sys/ elf/ localedata/ localedata/locales/ manual/ math/ ...
- From: eglibc@xxxxxxxxxx
- Date: Thu, 08 Nov 2012 00:01:50 -0000
Author: eglibc
Date: Thu Nov 8 00:01:48 2012
New Revision: 21581
Log:
Import glibc-mainline for 2012-11-08
Added:
fsf/trunk/libc/conform/data/stdalign.h-data
fsf/trunk/libc/conform/data/stdbool.h-data
fsf/trunk/libc/conform/data/stdnoreturn.h-data
fsf/trunk/libc/ports/sysdeps/mips/memmove.c
fsf/trunk/libc/ports/sysdeps/tile/tilegx/memmove.c
fsf/trunk/libc/sysdeps/x86/tst-xmmymm.sh (with props)
Removed:
fsf/trunk/libc/sysdeps/x86_64/tst-xmmymm.sh
Modified:
fsf/trunk/libc/ChangeLog
fsf/trunk/libc/NEWS
fsf/trunk/libc/conform/conformtest.pl
fsf/trunk/libc/conform/data/complex.h-data
fsf/trunk/libc/conform/data/inttypes.h-data
fsf/trunk/libc/conform/data/iso646.h-data
fsf/trunk/libc/conform/data/math.h-data
fsf/trunk/libc/conform/data/pthread.h-data
fsf/trunk/libc/conform/data/stdint.h-data
fsf/trunk/libc/conform/data/stdlib.h-data
fsf/trunk/libc/conform/data/sys/mman.h-data
fsf/trunk/libc/conform/data/sys/stat.h-data
fsf/trunk/libc/conform/data/sys/types.h-data
fsf/trunk/libc/conform/data/tgmath.h-data
fsf/trunk/libc/conform/data/time.h-data
fsf/trunk/libc/conform/data/uchar.h-data
fsf/trunk/libc/conform/data/wchar.h-data
fsf/trunk/libc/conform/data/wctype.h-data
fsf/trunk/libc/elf/elf.h
fsf/trunk/libc/localedata/ChangeLog
fsf/trunk/libc/localedata/locales/ru_RU
fsf/trunk/libc/manual/filesys.texi
fsf/trunk/libc/math/libm-test.inc
fsf/trunk/libc/ports/ChangeLog.mips
fsf/trunk/libc/ports/ChangeLog.tile
fsf/trunk/libc/string/memmove.c
fsf/trunk/libc/sysdeps/i386/fpu/e_powl.S
fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_pow.c
fsf/trunk/libc/sysdeps/ieee754/flt-32/e_powf.c
fsf/trunk/libc/sysdeps/s390/dl-procinfo.c
fsf/trunk/libc/sysdeps/unix/sysv/linux/sys/sysctl.h
fsf/trunk/libc/sysdeps/x86/Makefile
fsf/trunk/libc/sysdeps/x86_64/Makefile
fsf/trunk/libc/sysdeps/x86_64/fpu/e_powl.S
Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Thu Nov 8 00:01:48 2012
@@ -1,3 +1,418 @@
+2012-11-07 H.J. Lu <hongjiu.lu@xxxxxxxxx>
+
+ * sysdeps/x86_64/Makefile ($(objpfx)tst-xmmymm.out): Moved to ...
+ * sysdeps/x86/Makefile: Here.
+ * sysdeps/x86_64/tst-xmmymm.sh: Renamed to ...
+ * sysdeps/x86/tst-xmmymm.sh: This.
+
+2012-11-07 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * conform/data/pthread.h-data [XPG3 || XPG4]: Disable all
+ expectations.
+ [UNIX98] (pthread_barrier_t): Do not expect.
+ [UNIX98] (pthread_barrierattr_t): Likewise.
+ [UNIX98] (pthread_spinlock_t): Likewise.
+ [UNIX98] (pthread_barrier_destroy): Likewise.
+ [UNIX98] (pthread_barrier_init): Likewise.
+ [UNIX98] (pthread_barrier_wait): Likewise.
+ [UNIX98] (pthread_barrierattr_destroy): Likewise.
+ [UNIX98] (pthread_barrierattr_getpshared): Likewise.
+ [UNIX98] (pthread_barrierattr_init): Likewise.
+ [UNIX98] (pthread_barrierattr_setpshared): Likewise.
+ [UNIX98] (pthread_getcpuclockid): Likewise.
+ [UNIX98] (pthread_mutex_timedlock): Likewise.
+ [UNIX98] (pthread_rwlock_timedrdlock): Likewise.
+ [UNIX98] (pthread_rwlock_timedwrlock): Likewise.
+ [UNIX98] (pthread_sigmask): Likewise.
+ [UNIX98] (pthread_spin_destroy): Likewise.
+ [UNIX98] (pthread_spin_init): Likewise.
+ [UNIX98] (pthread_spin_lock): Likewise.
+ [UNIX98] (pthread_spin_trylock): Likewise.
+ [UNIX98] (pthread_spin_unlock): Likewise.
+ * conform/data/sys/types.h-data [XPG3 || XPG4] (pthread_attr_t):
+ Do not expect.
+ [XPG3 || XPG4 || UNIX98] (pthread_barrier_t): Likewise.
+ [XPG3 || XPG4 || UNIX98] (pthread_barrierattr_t): Likewise.
+ [XPG3 || XPG4] (pthread_cond_t): Likewise.
+ [XPG3 || XPG4] (pthread_condattr_t): Likewise.
+ [XPG3 || XPG4] (pthread_key_t): Likewise.
+ [XPG3 || XPG4] (pthread_mutex_t): Likewise.
+ [XPG3 || XPG4] (pthread_mutexattr_t): Likewise.
+ [XPG3 || XPG4] (pthread_once_t): Likewise.
+ [XPG3 || XPG4] (pthread_rwlock_t): Likewise.
+ [XPG3 || XPG4] (pthread_rwlockattr_t): Likewise.
+ [XPG3 || XPG4 || UNIX98] (pthread_spinlock_t): Likewise.
+ [XPG3 || XPG4] (pthread_t): Likewise.
+
+ * conform/data/stdlib.h-data [XPG3 || XPG4 || UNIX98] (setenv): Do
+ not expect.
+ [XPG3 || XPG4 || UNIX98] (unsetenv): Likewise.
+
+ * conform/data/math.h-data [XPG3 || XPG4 || UNIX98] (isnan):
+ Change function return type to int.
+
+ * conform/data/sys/mman.h-data [!POSIX] (POSIX_MADV_NORMAL):
+ Change condition to [!POSIX && !XPG3 && !XPG4 && !UNIX98].
+ [!POSIX] (POSIX_MADV_SEQUENTIAL): Likewise.
+ [!POSIX] (POSIX_MADV_RANDOM): Likewise.
+ [!POSIX] (POSIX_MADV_WILLNEED): Likewise.
+ [!POSIX] (POSIX_MADV_DONTNEED): Likewise.
+ [!POSIX] (posix_madvise): Likewise.
+ (POSIX_TYPED_MEM_ALLOCATE): Condition on [!POSIX && !XPG3 && !XPG4
+ && !UNIX98].
+ (POSIX_TYPED_MEM_ALLOCATE_CONTIG): Likewise.
+ (POSIX_TYPED_MEM_MAP_ALLOCATABLE): Likewise.
+ (mode_t): Likewise.
+ (posix_mem_offset): Likewise.
+ (posix_typed_mem_get_info): Likewise.
+ (posix_typed_mem_open): Likewise.
+
+ * conform/data/sys/stat.h-data [!POSIX && !POSIX2008] (mknodat):
+ Change condition to [XOPEN2K8].
+
+ * conform/conformtest.pl: Preprocess allow-header data with -x c
+ instead of from stdin.
+ (@headers): Add stdalign.h, stdbool.h and stdnoreturn.h.
+ * conform/data/complex.h-data [C99-based standards] (cerf): Allow.
+ [C99-based standards] (cerfc): Likewise.
+ [C99-based standards] (cexp2): Likewise.
+ [C99-based standards] (cexpm1): Likewise.
+ [C99-based standards] (clog10): Likewise.
+ [C99-based standards] (clog1p): Likewise.
+ [C99-based standards] (clog2): Likewise.
+ [C99-based standards] (clgamma): Likewise.
+ [C99-based standards] (ctgamma): Likewise.
+ [C99-based standards] (cerff): Likewise.
+ [C99-based standards] (cerfcf): Likewise.
+ [C99-based standards] (cexp2f): Likewise.
+ [C99-based standards] (cexpm1f): Likewise.
+ [C99-based standards] (clog10f): Likewise.
+ [C99-based standards] (clog1pf): Likewise.
+ [C99-based standards] (clog2f): Likewise.
+ [C99-based standards] (clgammaf): Likewise.
+ [C99-based standards] (ctgammaf): Likewise.
+ [C99-based standards] (cerfl): Likewise.
+ [C99-based standards] (cerfcl): Likewise.
+ [C99-based standards] (cexp2l): Likewise.
+ [C99-based standards] (cexpm1l): Likewise.
+ [C99-based standards] (clog10l): Likewise.
+ [C99-based standards] (clog1pl): Likewise.
+ [C99-based standards] (clog2l): Likewise.
+ [C99-based standards] (clgammal): Likewise.
+ [C99-based standards] (ctgammal): Likewise.
+ * conform/data/inttypes.h-data [C99-based standards]: Include
+ stdint.h-data. Remove all expectations for stdint.h contents.
+ [C99-based standards] (PRI*): Do not allow.
+ [C99-based standards] (SCN*): Likewise.
+ [C99-based standards] (*_t): Likewise.
+ [C99-based-standards] (PRId8): Expect macro.
+ [C99-based-standards] (PRIi8): Likewise.
+ [C99-based-standards] (PRIo8): Likewise.
+ [C99-based-standards] (PRIu8): Likewise.
+ [C99-based-standards] (PRIx8): Likewise.
+ [C99-based-standards] (PRIX8): Likewise.
+ [C99-based-standards] (SCNd8): Likewise.
+ [C99-based-standards] (SCNi8): Likewise.
+ [C99-based-standards] (SCNo8): Likewise.
+ [C99-based-standards] (SCNu8): Likewise.
+ [C99-based-standards] (SCNx8): Likewise.
+ [C99-based-standards] (PRIdLEAST8): Likewise.
+ [C99-based-standards] (PRIiLEAST8): Likewise.
+ [C99-based-standards] (PRIoLEAST8): Likewise.
+ [C99-based-standards] (PRIuLEAST8): Likewise.
+ [C99-based-standards] (PRIxLEAST8): Likewise.
+ [C99-based-standards] (PRIXLEAST8): Likewise.
+ [C99-based-standards] (SCNdLEAST8): Likewise.
+ [C99-based-standards] (SCNiLEAST8): Likewise.
+ [C99-based-standards] (SCNoLEAST8): Likewise.
+ [C99-based-standards] (SCNuLEAST8): Likewise.
+ [C99-based-standards] (SCNxLEAST8): Likewise.
+ [C99-based-standards] (PRIdFAST8): Likewise.
+ [C99-based-standards] (PRIiFAST8): Likewise.
+ [C99-based-standards] (PRIoFAST8): Likewise.
+ [C99-based-standards] (PRIuFAST8): Likewise.
+ [C99-based-standards] (PRIxFAST8): Likewise.
+ [C99-based-standards] (PRIXFAST8): Likewise.
+ [C99-based-standards] (SCNdFAST8): Likewise.
+ [C99-based-standards] (SCNiFAST8): Likewise.
+ [C99-based-standards] (SCNoFAST8): Likewise.
+ [C99-based-standards] (SCNuFAST8): Likewise.
+ [C99-based-standards] (SCNxFAST8): Likewise.
+ [C99-based-standards] (PRId16): Likewise.
+ [C99-based-standards] (PRIi16): Likewise.
+ [C99-based-standards] (PRIo16): Likewise.
+ [C99-based-standards] (PRIu16): Likewise.
+ [C99-based-standards] (PRIx16): Likewise.
+ [C99-based-standards] (PRIX16): Likewise.
+ [C99-based-standards] (SCNd16): Likewise.
+ [C99-based-standards] (SCNi16): Likewise.
+ [C99-based-standards] (SCNo16): Likewise.
+ [C99-based-standards] (SCNu16): Likewise.
+ [C99-based-standards] (SCNx16): Likewise.
+ [C99-based-standards] (PRIdLEAST16): Likewise.
+ [C99-based-standards] (PRIiLEAST16): Likewise.
+ [C99-based-standards] (PRIoLEAST16): Likewise.
+ [C99-based-standards] (PRIuLEAST16): Likewise.
+ [C99-based-standards] (PRIxLEAST16): Likewise.
+ [C99-based-standards] (PRIXLEAST16): Likewise.
+ [C99-based-standards] (SCNdLEAST16): Likewise.
+ [C99-based-standards] (SCNiLEAST16): Likewise.
+ [C99-based-standards] (SCNoLEAST16): Likewise.
+ [C99-based-standards] (SCNuLEAST16): Likewise.
+ [C99-based-standards] (SCNxLEAST16): Likewise.
+ [C99-based-standards] (PRIdFAST16): Likewise.
+ [C99-based-standards] (PRIiFAST16): Likewise.
+ [C99-based-standards] (PRIoFAST16): Likewise.
+ [C99-based-standards] (PRIuFAST16): Likewise.
+ [C99-based-standards] (PRIxFAST16): Likewise.
+ [C99-based-standards] (PRIXFAST16): Likewise.
+ [C99-based-standards] (SCNdFAST16): Likewise.
+ [C99-based-standards] (SCNiFAST16): Likewise.
+ [C99-based-standards] (SCNoFAST16): Likewise.
+ [C99-based-standards] (SCNuFAST16): Likewise.
+ [C99-based-standards] (SCNxFAST16): Likewise.
+ [C99-based-standards] (PRId32): Likewise.
+ [C99-based-standards] (PRIi32): Likewise.
+ [C99-based-standards] (PRIo32): Likewise.
+ [C99-based-standards] (PRIu32): Likewise.
+ [C99-based-standards] (PRIx32): Likewise.
+ [C99-based-standards] (PRIX32): Likewise.
+ [C99-based-standards] (SCNd32): Likewise.
+ [C99-based-standards] (SCNi32): Likewise.
+ [C99-based-standards] (SCNo32): Likewise.
+ [C99-based-standards] (SCNu32): Likewise.
+ [C99-based-standards] (SCNx32): Likewise.
+ [C99-based-standards] (PRIdLEAST32): Likewise.
+ [C99-based-standards] (PRIiLEAST32): Likewise.
+ [C99-based-standards] (PRIoLEAST32): Likewise.
+ [C99-based-standards] (PRIuLEAST32): Likewise.
+ [C99-based-standards] (PRIxLEAST32): Likewise.
+ [C99-based-standards] (PRIXLEAST32): Likewise.
+ [C99-based-standards] (SCNdLEAST32): Likewise.
+ [C99-based-standards] (SCNiLEAST32): Likewise.
+ [C99-based-standards] (SCNoLEAST32): Likewise.
+ [C99-based-standards] (SCNuLEAST32): Likewise.
+ [C99-based-standards] (SCNxLEAST32): Likewise.
+ [C99-based-standards] (PRIdFAST32): Likewise.
+ [C99-based-standards] (PRIiFAST32): Likewise.
+ [C99-based-standards] (PRIoFAST32): Likewise.
+ [C99-based-standards] (PRIuFAST32): Likewise.
+ [C99-based-standards] (PRIxFAST32): Likewise.
+ [C99-based-standards] (PRIXFAST32): Likewise.
+ [C99-based-standards] (SCNdFAST32): Likewise.
+ [C99-based-standards] (SCNiFAST32): Likewise.
+ [C99-based-standards] (SCNoFAST32): Likewise.
+ [C99-based-standards] (SCNuFAST32): Likewise.
+ [C99-based-standards] (SCNxFAST32): Likewise.
+ [C99-based-standards] (PRId64): Likewise.
+ [C99-based-standards] (PRIi64): Likewise.
+ [C99-based-standards] (PRIo64): Likewise.
+ [C99-based-standards] (PRIu64): Likewise.
+ [C99-based-standards] (PRIx64): Likewise.
+ [C99-based-standards] (PRIX64): Likewise.
+ [C99-based-standards] (SCNd64): Likewise.
+ [C99-based-standards] (SCNi64): Likewise.
+ [C99-based-standards] (SCNo64): Likewise.
+ [C99-based-standards] (SCNu64): Likewise.
+ [C99-based-standards] (SCNx64): Likewise.
+ [C99-based-standards] (PRIdLEAST64): Likewise.
+ [C99-based-standards] (PRIiLEAST64): Likewise.
+ [C99-based-standards] (PRIoLEAST64): Likewise.
+ [C99-based-standards] (PRIuLEAST64): Likewise.
+ [C99-based-standards] (PRIxLEAST64): Likewise.
+ [C99-based-standards] (PRIXLEAST64): Likewise.
+ [C99-based-standards] (SCNdLEAST64): Likewise.
+ [C99-based-standards] (SCNiLEAST64): Likewise.
+ [C99-based-standards] (SCNoLEAST64): Likewise.
+ [C99-based-standards] (SCNuLEAST64): Likewise.
+ [C99-based-standards] (SCNxLEAST64): Likewise.
+ [C99-based-standards] (PRIdFAST64): Likewise.
+ [C99-based-standards] (PRIiFAST64): Likewise.
+ [C99-based-standards] (PRIoFAST64): Likewise.
+ [C99-based-standards] (PRIuFAST64): Likewise.
+ [C99-based-standards] (PRIxFAST64): Likewise.
+ [C99-based-standards] (PRIXFAST64): Likewise.
+ [C99-based-standards] (SCNdFAST64): Likewise.
+ [C99-based-standards] (SCNiFAST64): Likewise.
+ [C99-based-standards] (SCNoFAST64): Likewise.
+ [C99-based-standards] (SCNuFAST64): Likewise.
+ [C99-based-standards] (SCNxFAST64): Likewise.
+ [C99-based-standards] (PRIdMAX): Likewise.
+ [C99-based-standards] (PRIiMAX): Likewise.
+ [C99-based-standards] (PRIoMAX): Likewise.
+ [C99-based-standards] (PRIuMAX): Likewise.
+ [C99-based-standards] (PRIxMAX): Likewise.
+ [C99-based-standards] (PRIXMAX): Likewise.
+ [C99-based-standards] (SCNdMAX): Likewise.
+ [C99-based-standards] (SCNiMAX): Likewise.
+ [C99-based-standards] (SCNoMAX): Likewise.
+ [C99-based-standards] (SCNuMAX): Likewise.
+ [C99-based-standards] (SCNxMAX): Likewise.
+ [C99-based-standards] (PRIdPTR): Likewise.
+ [C99-based-standards] (PRIiPTR): Likewise.
+ [C99-based-standards] (PRIoPTR): Likewise.
+ [C99-based-standards] (PRIuPTR): Likewise.
+ [C99-based-standards] (PRIxPTR): Likewise.
+ [C99-based-standards] (PRIXPTR): Likewise.
+ [C99-based-standards] (SCNdPTR): Likewise.
+ [C99-based-standards] (SCNiPTR): Likewise.
+ [C99-based-standards] (SCNoPTR): Likewise.
+ [C99-based-standards] (SCNuPTR): Likewise.
+ [C99-based-standards] (SCNxPTR): Likewise.
+ * conform/data/iso646.h-data [ISO C standards] (*_t): Do not
+ allow.
+ * conform/data/stdint.h-data: Update comments to clarify
+ requirements.
+ [C99-based standards] (INT8_MIN): Use macro-int-constant. Specify
+ type.
+ [C99-based standards] (INT8_MAX): Likewise.
+ [C99-based standards] (INT16_MIN): Likewise.
+ [C99-based standards] (INT16_MAX): Likewise.
+ [C99-based standards] (INT32_MIN): Likewise.
+ [C99-based standards] (INT32_MAX): Likewise.
+ [C99-based standards] (INT64_MIN): Likewise.
+ [C99-based standards] (INT64_MAX): Likewise.
+ [C99-based standards] (UINT8_MAX): Likewise.
+ [C99-based standards] (UINT16_MAX): Likewise.
+ [C99-based standards] (UINT32_MAX): Likewise.
+ [C99-based standards] (UINT64_MAX): Likewise.
+ [C99-based standards] (INT_LEAST8_MIN): Likewise.
+ [C99-based standards] (INT_LEAST8_MAX): Likewise.
+ [C99-based standards] (INT_LEAST16_MIN): Likewise.
+ [C99-based standards] (INT_LEAST16_MAX): Likewise.
+ [C99-based standards] (INT_LEAST32_MIN): Likewise.
+ [C99-based standards] (INT_LEAST32_MAX): Likewise.
+ [C99-based standards] (INT_LEAST64_MIN): Likewise.
+ [C99-based standards] (INT_LEAST64_MAX): Likewise.
+ [C99-based standards] (UINT_LEAST8_MAX): Likewise.
+ [C99-based standards] (UINT_LEAST16_MAX): Likewise.
+ [C99-based standards] (UINT_LEAST32_MAX): Likewise.
+ [C99-based standards] (UINT_LEAST64_MAX): Likewise.
+ [C99-based standards] (INT_FAST8_MIN): Likewise.
+ [C99-based standards] (INT_FAST8_MAX): Likewise.
+ [C99-based standards] (INT_FAST16_MIN): Likewise.
+ [C99-based standards] (INT_FAST16_MAX): Likewise.
+ [C99-based standards] (INT_FAST32_MIN): Likewise.
+ [C99-based standards] (INT_FAST32_MAX): Likewise.
+ [C99-based standards] (INT_FAST64_MIN): Likewise.
+ [C99-based standards] (INT_FAST64_MAX): Likewise.
+ [C99-based standards] (UINT_FAST8_MAX): Likewise.
+ [C99-based standards] (UINT_FAST16_MAX): Likewise.
+ [C99-based standards] (UINT_FAST32_MAX): Likewise.
+ [C99-based standards] (UINT_FAST64_MAX): Likewise.
+ [C99-based standards] (INTPTR_MIN): Likewise.
+ [C99-based standards] (INTPTR_MAX): Likewise.
+ [C99-based standards] (UINTPTR_MAX): Likewise.
+ [C99-based standards] (INTMAX_MIN): Likewise.
+ [C99-based standards] (INTMAX_MAX): Likewise.
+ [C99-based standards] (UINTMAX_MAX): Likewise.
+ [C99-based standards] (PTRDIFF_MIN): Likewise.
+ [C99-based standards] (PTRDIFF_MAX): Likewise.
+ [C99-based standards] (SIG_ATOMIC_MAX): Likewise.
+ [C99-based standards] (SIZE_MAX): Likewise.
+ [C99-based standards] (WCHAR_MAX): Likewise.
+ [C99-based standards] (WINT_MAX): Likewise.
+ [C99-based standards] (SIG_ATOMIC_MIN): Likewise. Do not specify
+ constraint on value.
+ [C99-based standards] (WCHAR_MIN): Likewise.
+ [C99-based standards] (WINT_MIN): Likewise.
+ [C99-based standards] (*_t): Allow.
+ * conform/data/tgmath.h-data [XOPEN2K || POSIX2008]: Change
+ condition to [!ISO && !POSIX && !XPG3 && !XPG4 && !UNIX98].
+ Include math.h-data and complex.h-data. Remove all expectations
+ of math.h and complex.h contents.
+ * conform/data/uchar.h-data [ISO11] (c16rtomb): Remove stray "16"
+ at end of line.
+ * conform/data/wchar.h-data [!ISO && !POSIX && !XPG3 && !XPG4]
+ (struct tm): Expect tag.
+ [C99-based-standards] (wcstof): Expect function.
+ [C99-based-standards] (wcstold): Likewise.
+ [C99-based-standards] (wcstoll): Likewise.
+ [C99-based-standards] (wcstoull): Likewise.
+ [!ISO && !POSIX && !XPG3 && !XPG4] (WCHAR_MIN): Use
+ macro-int-constant. Specify type.
+ [!ISO && !POSIX && !XPG3 && !XPG4] (WCHAR_MAX): Likewise. Specify
+ constraint on value.
+ [!ISO && !POSIX && !XPG3 && !XPG4] (WEOF): Use macro-constant.
+ Specify type.
+ [!ISO && !POSIX && !XPG3 && !XPG4] (NULL): Use macro-constant.
+ Specify value.
+ [ISO C standards]: Do not allow headers.
+ [!ISO && !POSIX && !XPG3 && !XPG4] (wcs*): Change to
+ wcs[abcdefghijklmnopqrstuvwxyz]*.
+ [ISO C standards] (*_t): Do not allow.
+ * conform/data/wctype.h-data [C99-based standards] (iswblank):
+ Expect function.
+ [XOPEN2K8 || POSIX2008] (iswblank_l): Likewise.
+ [!ISO && !POSIX && !XPG3 && !XPG4] (WEOF): Use macro-constant.
+ Specify type.
+ [ISO C standards]: Do not allow headers.
+ [!ISO && !POSIX && !XPG3 && !XPG4] (is*): Change to
+ is[abcdefghijklmnopqrstuvwxyz]*.
+ [!ISO && !POSIX && !XPG3 && !XPG4] (to*): Change to
+ to[abcdefghijklmnopqrstuvwxyz]*.
+ [ISO C standards] (*_t): Do not allow.
+ * conform/data/stdalign.h-data: New file.
+ * conform/data/stdbool.h-data: Likewise.
+ * conform/data/stdnoreturn.h-data: Likewise.
+
+2012-11-07 Andreas Jaeger <aj@xxxxxxx>
+
+ [BZ #14809]
+ * sysdeps/unix/sysv/linux/sys/sysctl.h (_UAPI_LINUX_KERNEL_H)
+ (_UAPI_LINUX_TYPES_H): Starting with Linux 3.7, the include header
+ guards are changed. Only define if not yet defined, #undef back
+ after including linux/sysctl.h if defined here.
+
+2012-11-07 Roland McGrath <roland@xxxxxxxxxxxxx>
+
+ [BZ #14815]
+ * manual/filesys.texi (Directory Entries): Typo fix.
+ Reported by <h-iwamoto@xxxxxxxxxxxxxxx>.
+
+2012-11-07 Marcus Shawcroft <marcus.shawcroft@xxxxxxxxxx>
+
+ * elf/elf.h (EM_AARCH64): New macro.
+ (R_AARCH64_NONE, R_AARCH64_ABS64, R_AARCH64_ABS32): Likewise.
+ (R_AARCH64_COPY, R_AARCH64_GLOB_DAT, R_AARCH64_JUMP_SLOT): Likewise.
+ (R_AARCH64_RELATIVE, R_AARCH64_TLS_DTPMOD64): Likewise.
+ (R_AARCH64_TLS_DTPREL64, R_AARCH64_TLS_TPREL64): Likewise.
+ (R_AARCH64_TLSDESC): Likewise.
+ (NT_ARM_TLS): Likewise.
+ (NT_ARM_HW_BREAK): Likewise.
+ (NT_ARM_HW_WATCH): Likewise.
+
+2012-11-07 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ [BZ #14811]
+ * sysdeps/i386/fpu/e_powl.S (pm79): New object.
+ (__ieee754_powl): Saturate nonzero exponents with absolute value
+ below 0x1p-79 to +/- 0x1p-79.
+ * sysdeps/ieee754/dbl-64/e_pow.c (__ieee754_pow): Saturate nonzero
+ exponents with absolute value below 0x1p-64 to +/- 0x1p-64.
+ * sysdeps/ieee754/flt-32/e_powf.c (__ieee754_powf): Saturate
+ nonzero exponents with absolute value below 0x1p-32 to +/-
+ 0x1p-32.
+ * sysdeps/x86_64/fpu/e_powl.S (pm79): New object.
+ (__ieee754_powl): Saturate nonzero exponents with absolute value
+ below 0x1p-79 to +/- 0x1p-79.
+ * math/libm-test.inc (pow_test): Add more tests.
+
+2012-11-07 Andreas Krebbel <Andreas.Krebbel@xxxxxxxxxx>
+
+ * sysdeps/s390/dl-procinfo.c (_dl_s390_cap_flags): Sync
+ _dl_s390_cap_flags with kernel. Increase string length.
+ (_dl_s390_platforms): Add z196 and zEC12.
+
+2012-11-07 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ * conform/data/time.h-data [!XOPEN21K && !XOPEN2K8 && !POSIX2008]:
+ Change XOPEN21K to XOPEN2K.
+
+2012-11-06 Maxim Kuvyrkov <maxim@xxxxxxxxxxxxxxxx>
+
+ * string/memmove.c: Use memcpy when possible.
+
2012-11-06 Andreas Jaeger <aj@xxxxxxx>
* po/eo.po: Update from translation team.
Modified: fsf/trunk/libc/NEWS
==============================================================================
--- fsf/trunk/libc/NEWS (original)
+++ fsf/trunk/libc/NEWS Thu Nov 8 00:01:48 2012
@@ -10,15 +10,16 @@
* The following bugs are resolved with this release:
1349, 3439, 3479, 3665, 5044, 5246, 5298, 5400, 6530, 6778, 6808, 9685,
- 9914, 10014, 10038, 10631, 11438, 11607, 11638, 12140, 13412, 13542,
- 13601, 13629, 13679, 13696, 13717, 13741, 13939, 13966, 14042, 14047,
- 14090, 14150, 14151, 14152, 14154, 14157, 14166, 14173, 14195, 14237,
- 14251, 14252, 14283, 14298, 14303, 14307, 14328, 14331, 14336, 14337,
- 14347, 14349, 14376, 14417, 14459, 14476, 14477, 14505, 14510, 14516,
- 14518, 14519, 14530, 14532, 14538, 14543, 14544, 14545, 14557, 14562,
- 14568, 14576, 14579, 14583, 14587, 14595, 14602, 14610, 14621, 14638,
- 14645, 14648, 14652, 14660, 14661, 14669, 14683, 14694, 14716, 14743,
- 14767, 14783, 14784, 14785, 14793, 14796, 14797, 14801, 14805.
+ 9914, 10014, 10038, 10631, 10873, 11438, 11607, 11638, 12140, 13412,
+ 13542, 13601, 13629, 13679, 13696, 13717, 13741, 13939, 13966, 14042,
+ 14047, 14090, 14150, 14151, 14152, 14154, 14157, 14166, 14173, 14195,
+ 14237, 14251, 14252, 14283, 14298, 14303, 14307, 14328, 14331, 14336,
+ 14337, 14347, 14349, 14376, 14417, 14459, 14476, 14477, 14505, 14510,
+ 14516, 14518, 14519, 14530, 14532, 14538, 14543, 14544, 14545, 14557,
+ 14562, 14568, 14576, 14579, 14583, 14587, 14595, 14602, 14610, 14621,
+ 14638, 14645, 14648, 14652, 14660, 14661, 14669, 14683, 14694, 14716,
+ 14743, 14767, 14783, 14784, 14785, 14793, 14796, 14797, 14801, 14805,
+ 14807, 14809, 14811, 14815.
* Support for STT_GNU_IFUNC symbols added for s390 and s390x.
Optimized versions of memcpy, memset, and memcmp added for System z10 and
Modified: fsf/trunk/libc/conform/conformtest.pl
==============================================================================
--- fsf/trunk/libc/conform/conformtest.pl (original)
+++ fsf/trunk/libc/conform/conformtest.pl Thu Nov 8 00:01:48 2012
@@ -20,16 +20,16 @@
"sys/stat.h", "sys/socket.h", "sys/shm.h", "sys/sem.h",
"sys/select.h", "sys/resource.h", "sys/msg.h", "sys/mman.h",
"sys/ipc.h", "syslog.h", "stropts.h", "strings.h", "string.h",
- "stdlib.h", "stdio.h", "stdint.h", "stddef.h", "stdarg.h",
- "spawn.h", "signal.h", "setjmp.h", "semaphore.h", "search.h",
- "sched.h", "regex.h", "pwd.h", "pthread.h", "poll.h",
- "nl_types.h", "netinet/tcp.h", "netinet/in.h", "net/if.h",
- "netdb.h", "ndbm.h", "mqueue.h", "monetary.h", "math.h",
- "locale.h", "libgen.h", "limits.h", "langinfo.h", "iso646.h",
- "inttypes.h", "iconv.h", "grp.h", "glob.h", "ftw.h", "fnmatch.h",
- "fmtmsg.h", "float.h", "fenv.h", "fcntl.h", "errno.h", "dlfcn.h",
- "dirent.h", "ctype.h", "cpio.h", "complex.h", "assert.h",
- "arpa/inet.h", "aio.h");
+ "stdnoreturn.h", "stdlib.h", "stdio.h", "stdint.h", "stddef.h",
+ "stdbool.h", "stdarg.h", "stdalign.h", "spawn.h", "signal.h",
+ "setjmp.h", "semaphore.h", "search.h", "sched.h", "regex.h",
+ "pwd.h", "pthread.h", "poll.h", "nl_types.h", "netinet/tcp.h",
+ "netinet/in.h", "net/if.h", "netdb.h", "ndbm.h", "mqueue.h",
+ "monetary.h", "math.h", "locale.h", "libgen.h", "limits.h",
+ "langinfo.h", "iso646.h", "inttypes.h", "iconv.h", "grp.h",
+ "glob.h", "ftw.h", "fnmatch.h", "fmtmsg.h", "float.h", "fenv.h",
+ "fcntl.h", "errno.h", "dlfcn.h", "dirent.h", "ctype.h", "cpio.h",
+ "complex.h", "assert.h", "arpa/inet.h", "aio.h");
}
$CFLAGS{"ISO"} = "-ansi";
@@ -777,7 +777,7 @@
while ($#allowheader >= 0) {
my($ah) = pop @allowheader;
- open (ALLOW, "$CC -E -D$standard - < data/$ah-data |");
+ open (ALLOW, "$CC -E -D$standard -x c data/$ah-data |");
acontrol: while (<ALLOW>) {
chop;
next acontrol if (/^#/);
Modified: fsf/trunk/libc/conform/data/complex.h-data
==============================================================================
--- fsf/trunk/libc/conform/data/complex.h-data (original)
+++ fsf/trunk/libc/conform/data/complex.h-data Thu Nov 8 00:01:48 2012
@@ -79,4 +79,35 @@
macro-function {float complex} CMPLXF (float, float)
macro-function {long double complex} CMPLXL (long double, long double)
# endif
+
+allow cerf
+allow cerfc
+allow cexp2
+allow cexpm1
+allow clog10
+allow clog1p
+allow clog2
+allow clgamma
+allow ctgamma
+
+allow cerff
+allow cerfcf
+allow cexp2f
+allow cexpm1f
+allow clog10f
+allow clog1pf
+allow clog2f
+allow clgammaf
+allow ctgammaf
+
+allow cerfl
+allow cerfcl
+allow cexp2l
+allow cexpm1l
+allow clog10l
+allow clog1pl
+allow clog2l
+allow clgammal
+allow ctgammal
+
#endif
Modified: fsf/trunk/libc/conform/data/inttypes.h-data
==============================================================================
--- fsf/trunk/libc/conform/data/inttypes.h-data (original)
+++ fsf/trunk/libc/conform/data/inttypes.h-data Thu Nov 8 00:01:48 2012
@@ -1,14 +1,5 @@
#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
-type int8_t
-type int16_t
-type int32_t
-type int64_t
-type uint8_t
-type uint16_t
-type uint32_t
-type uint64_t
-type intptr_t
-type uintptr_t
+#include "stdint.h-data"
type imaxdiv_t
element imaxdiv_t intmax_t rem
@@ -21,125 +12,166 @@
function intmax_t wcstoimax (const __gwchar_t*, __gwchar_t**, int)
function uintmax_t wcstoumax (const __gwchar_t*, __gwchar_t**, int)
-allow PRI*
-allow SCN*
-allow *_t
+macro PRId8
+macro PRIi8
+macro PRIo8
+macro PRIu8
+macro PRIx8
+macro PRIX8
+macro SCNd8
+macro SCNi8
+macro SCNo8
+macro SCNu8
+macro SCNx8
+macro PRIdLEAST8
+macro PRIiLEAST8
+macro PRIoLEAST8
+macro PRIuLEAST8
+macro PRIxLEAST8
+macro PRIXLEAST8
+macro SCNdLEAST8
+macro SCNiLEAST8
+macro SCNoLEAST8
+macro SCNuLEAST8
+macro SCNxLEAST8
+macro PRIdFAST8
+macro PRIiFAST8
+macro PRIoFAST8
+macro PRIuFAST8
+macro PRIxFAST8
+macro PRIXFAST8
+macro SCNdFAST8
+macro SCNiFAST8
+macro SCNoFAST8
+macro SCNuFAST8
+macro SCNxFAST8
-// Now the content of <stdint.h>. Update this whenever <stdint.h> changed.
-type int8_t
-type int16_t
-type int32_t
-type int64_t
-type uint8_t
-type uint16_t
-type uint32_t
-type uint64_t
+macro PRId16
+macro PRIi16
+macro PRIo16
+macro PRIu16
+macro PRIx16
+macro PRIX16
+macro SCNd16
+macro SCNi16
+macro SCNo16
+macro SCNu16
+macro SCNx16
+macro PRIdLEAST16
+macro PRIiLEAST16
+macro PRIoLEAST16
+macro PRIuLEAST16
+macro PRIxLEAST16
+macro PRIXLEAST16
+macro SCNdLEAST16
+macro SCNiLEAST16
+macro SCNoLEAST16
+macro SCNuLEAST16
+macro SCNxLEAST16
+macro PRIdFAST16
+macro PRIiFAST16
+macro PRIoFAST16
+macro PRIuFAST16
+macro PRIxFAST16
+macro PRIXFAST16
+macro SCNdFAST16
+macro SCNiFAST16
+macro SCNoFAST16
+macro SCNuFAST16
+macro SCNxFAST16
-type int_least8_t
-type int_least16_t
-type int_least32_t
-type int_least64_t
-type uint_least8_t
-type uint_least16_t
-type uint_least32_t
-type uint_least64_t
+macro PRId32
+macro PRIi32
+macro PRIo32
+macro PRIu32
+macro PRIx32
+macro PRIX32
+macro SCNd32
+macro SCNi32
+macro SCNo32
+macro SCNu32
+macro SCNx32
+macro PRIdLEAST32
+macro PRIiLEAST32
+macro PRIoLEAST32
+macro PRIuLEAST32
+macro PRIxLEAST32
+macro PRIXLEAST32
+macro SCNdLEAST32
+macro SCNiLEAST32
+macro SCNoLEAST32
+macro SCNuLEAST32
+macro SCNxLEAST32
+macro PRIdFAST32
+macro PRIiFAST32
+macro PRIoFAST32
+macro PRIuFAST32
+macro PRIxFAST32
+macro PRIXFAST32
+macro SCNdFAST32
+macro SCNiFAST32
+macro SCNoFAST32
+macro SCNuFAST32
+macro SCNxFAST32
-type int_fast8_t
-type int_fast16_t
-type int_fast32_t
-type int_fast64_t
-type uint_fast8_t
-type uint_fast16_t
-type uint_fast32_t
-type uint_fast64_t
+macro PRId64
+macro PRIi64
+macro PRIo64
+macro PRIu64
+macro PRIx64
+macro PRIX64
+macro SCNd64
+macro SCNi64
+macro SCNo64
+macro SCNu64
+macro SCNx64
+macro PRIdLEAST64
+macro PRIiLEAST64
+macro PRIoLEAST64
+macro PRIuLEAST64
+macro PRIxLEAST64
+macro PRIXLEAST64
+macro SCNdLEAST64
+macro SCNiLEAST64
+macro SCNoLEAST64
+macro SCNuLEAST64
+macro SCNxLEAST64
+macro PRIdFAST64
+macro PRIiFAST64
+macro PRIoFAST64
+macro PRIuFAST64
+macro PRIxFAST64
+macro PRIXFAST64
+macro SCNdFAST64
+macro SCNiFAST64
+macro SCNoFAST64
+macro SCNuFAST64
+macro SCNxFAST64
-type intptr_t
-type uintptr_t
+macro PRIdMAX
+macro PRIiMAX
+macro PRIoMAX
+macro PRIuMAX
+macro PRIxMAX
+macro PRIXMAX
+macro SCNdMAX
+macro SCNiMAX
+macro SCNoMAX
+macro SCNuMAX
+macro SCNxMAX
-type intmax_t
-type uintmax_t
+macro PRIdPTR
+macro PRIiPTR
+macro PRIoPTR
+macro PRIuPTR
+macro PRIxPTR
+macro PRIXPTR
+macro SCNdPTR
+macro SCNiPTR
+macro SCNoPTR
+macro SCNuPTR
+macro SCNxPTR
-constant INT8_MIN == -128
-constant INT8_MAX == 127
-constant INT16_MIN == -32768
-constant INT16_MAX == 32767
-constant INT32_MIN == -2147483647-1
-constant INT32_MAX == 2147483647
-constant INT64_MIN == -9223372036854775807LL-1
-constant INT64_MAX == 9223372036854775807LL
-
-constant UINT8_MAX == 255
-constant UINT16_MAX == 65535
-constant UINT32_MAX == 4294967295U
-constant UINT64_MAX == 18446744073709551615ULL
-
-constant INT_LEAST8_MIN <= -128
-constant INT_LEAST8_MAX >= 127
-constant INT_LEAST16_MIN <= -32768
-constant INT_LEAST16_MAX >= 32767
-constant INT_LEAST32_MIN <= -2147483647-1
-constant INT_LEAST32_MAX >= 2147483647
-constant INT_LEAST64_MIN <= -9223372036854775807LL-1
-constant INT_LEAST64_MAX >= 9223372036854775807LL
-
-constant UINT_LEAST8_MAX >= 255
-constant UINT_LEAST16_MAX >= 65535
-constant UINT_LEAST32_MAX >= 4294967295U
-constant UINT_LEAST64_MAX >= 18446744073709551615ULL
-
-constant INT_FAST8_MIN <= -128
-constant INT_FAST8_MAX >= 127
-constant INT_FAST16_MIN <= -32768
-constant INT_FAST16_MAX >= 32767
-constant INT_FAST32_MIN <= -2147483647-1
-constant INT_FAST32_MAX >= 2147483647
-constant INT_FAST64_MIN <= -9223372036854775807LL-1
-constant INT_FAST64_MAX >= 9223372036854775807LL
-
-constant UINT_FAST8_MAX >= 255
-constant UINT_FAST16_MAX >= 65535
-constant UINT_FAST32_MAX >= 4294967295U
-constant UINT_FAST64_MAX >= 18446744073709551615ULL
-
-constant INTPTR_MIN <= -32768
-constant INTPTR_MAX >= 32767
-
-constant UINTPTR_MAX >= 65535
-
-constant INTMAX_MIN <= -9223372036854775807LL-1
-constant INTMAX_MAX >= 9223372036854775807LL
-
-constant UINTMAX_MAX >= 18446744073709551615ULL
-
-constant PTRDIFF_MIN <= -65535
-constant PTRDIFF_MAX >= 65535
-
-constant SIG_ATOMIC_MIN <= -127
-constant SIG_ATOMIC_MAX >= 127
-
-constant SIZE_MAX >= 65535
-
-constant WCHAR_MIN <= -127
-constant WCHAR_MAX >= 127
-
-constant WINT_MIN <= -127
-constant WINT_MAX >= 127
-
-macro INT8_C
-macro INT16_C
-macro INT32_C
-macro INT64_C
-macro UINT8_C
-macro UINT16_C
-macro UINT32_C
-macro UINT64_C
-macro INTMAX_C
-macro UINTMAX_C
-
-// The following expressions are not entirely correct but the current
-// poorfnmatch implementation doesn't grok the right form.
-allow INT*
-allow UINT*
allow PRI[Xa-z]*
allow SCN[Xa-z]*
#endif
Modified: fsf/trunk/libc/conform/data/iso646.h-data
==============================================================================
--- fsf/trunk/libc/conform/data/iso646.h-data (original)
+++ fsf/trunk/libc/conform/data/iso646.h-data Thu Nov 8 00:01:48 2012
@@ -11,5 +11,7 @@
macro xor
macro xor_eq
+#if !defined ISO && !defined ISO99 && !defined ISO11
allow *_t
#endif
+#endif
Modified: fsf/trunk/libc/conform/data/math.h-data
==============================================================================
--- fsf/trunk/libc/conform/data/math.h-data (original)
+++ fsf/trunk/libc/conform/data/math.h-data Thu Nov 8 00:01:48 2012
@@ -18,7 +18,7 @@
type double_t
# endif
# if defined XPG3 || defined XPG4 || defined UNIX98
-function double isnan (double)
+function int isnan (double)
# endif
# if !defined ISO99 && !defined ISO11 && !defined POSIX2008
Modified: fsf/trunk/libc/conform/data/pthread.h-data
==============================================================================
--- fsf/trunk/libc/conform/data/pthread.h-data (original)
+++ fsf/trunk/libc/conform/data/pthread.h-data Thu Nov 8 00:01:48 2012
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG3 && !defined XPG4
constant PTHREAD_CANCEL_ASYNCHRONOUS
constant PTHREAD_CANCEL_ENABLE
constant PTHREAD_CANCEL_DEFERRED
@@ -31,7 +31,7 @@
# endif
type pthread_attr_t
-# if !defined POSIX
+# if !defined POSIX && !defined UNIX98
type pthread_barrier_t
type pthread_barrierattr_t
# endif
@@ -44,6 +44,8 @@
# if !defined POSIX
type pthread_rwlock_t
type pthread_rwlockattr_t
+# endif
+# if !defined POSIX && !defined UNIX98
type pthread_spinlock_t
# endif
type pthread_t
@@ -70,7 +72,7 @@
function int pthread_attr_setscope (pthread_attr_t*, int)
function int pthread_attr_setstackaddr (pthread_attr_t*, void*)
function int pthread_attr_setstacksize (pthread_attr_t*, size_t)
-# if !defined POSIX
+# if !defined POSIX && !defined UNIX98
function int pthread_barrier_destroy (pthread_barrier_t*)
function int pthread_barrier_init (pthread_barrier_t*, const pthread_barrierattr_t*, unsigned int)
function int pthread_barrier_wait (pthread_barrier_t*)
@@ -107,7 +109,7 @@
# if !defined POSIX && !defined POSIX2008
function int pthread_getconcurrency (void)
# endif
-# if !defined POSIX
+# if !defined POSIX && !defined UNIX98
function int pthread_getcpuclockid (pthread_t, clockid_t*)
# endif
function int pthread_getschedparam (pthread_t, int*, struct sched_param*)
@@ -120,7 +122,7 @@
function int pthread_mutex_init (pthread_mutex_t*, const pthread_mutexattr_t*)
function int pthread_mutex_lock (pthread_mutex_t*)
optional-function int pthread_mutex_setprioceiling (pthread_mutex_t*, int, int*)
-# if !defined POSIX
+# if !defined POSIX && !defined UNIX98
function int pthread_mutex_timedlock (pthread_mutex_t*, const struct timespec*)
# endif
function int pthread_mutex_trylock (pthread_mutex_t*)
@@ -143,8 +145,12 @@
# if !defined POSIX
function int pthread_rwlock_init (pthread_rwlock_t*, const pthread_rwlockattr_t*)
function int pthread_rwlock_rdlock (pthread_rwlock_t*)
+# endif
+# if !defined POSIX && !defined UNIX98
function int pthread_rwlock_timedrdlock (pthread_rwlock_t*, const struct timespec*)
function int pthread_rwlock_timedwrlock (pthread_rwlock_t*, const struct timespec*)
+# endif
+# if !defined POSIX
function int pthread_rwlock_tryrdlock (pthread_rwlock_t*)
function int pthread_rwlock_trywrlock (pthread_rwlock_t*)
function int pthread_rwlock_unlock (pthread_rwlock_t*)
@@ -162,10 +168,10 @@
# endif
function int pthread_setschedparam (pthread_t, int, const struct sched_param*)
function int pthread_setspecific (pthread_key_t, const void*)
-# if !defined POSIX && !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
+# if !defined POSIX && !defined UNIX98 && !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
function int pthread_sigmask (int, const sigset_t*, sigset_t*)
# endif
-# if !defined POSIX
+# if !defined POSIX && !defined UNIX98
function int pthread_spin_destroy (pthread_spinlock_t*)
function int pthread_spin_init (pthread_spinlock_t*, int)
function int pthread_spin_lock (pthread_spinlock_t*)
Added: fsf/trunk/libc/conform/data/stdalign.h-data
==============================================================================
--- fsf/trunk/libc/conform/data/stdalign.h-data (added)
+++ fsf/trunk/libc/conform/data/stdalign.h-data Thu Nov 8 00:01:48 2012
@@ -1,0 +1,6 @@
+#if defined ISO11
+macro alignas
+macro alignof
+macro-int-constant __alignas_is_defined {int} == 1
+macro-int-constant __alignof_is_defined {int} == 1
+#endif
Added: fsf/trunk/libc/conform/data/stdbool.h-data
==============================================================================
--- fsf/trunk/libc/conform/data/stdbool.h-data (added)
+++ fsf/trunk/libc/conform/data/stdbool.h-data Thu Nov 8 00:01:48 2012
@@ -1,0 +1,10 @@
+#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+macro bool
+macro-int-constant true {int} == 1
+macro-int-constant false {int} == 0
+macro-int-constant __bool_true_false_are_defined {int} == 1
+
+#if !defined ISO && !defined ISO99 && !defined ISO11
+allow *_t
+#endif
+#endif
Modified: fsf/trunk/libc/conform/data/stdint.h-data
==============================================================================
--- fsf/trunk/libc/conform/data/stdint.h-data (original)
+++ fsf/trunk/libc/conform/data/stdint.h-data Thu Nov 8 00:01:48 2012
@@ -1,4 +1,5 @@
#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+// The requirements for some types and corresponding macros are from POSIX.
type int8_t
type int16_t
type int32_t
@@ -32,71 +33,71 @@
type intmax_t
type uintmax_t
-constant INT8_MIN == -128
-constant INT8_MAX == 127
-constant INT16_MIN == -32768
-constant INT16_MAX == 32767
-constant INT32_MIN == -2147483647-1
-constant INT32_MAX == 2147483647
-constant INT64_MIN == -9223372036854775807LL-1
-constant INT64_MAX == 9223372036854775807LL
+macro-int-constant INT8_MIN {promoted:int8_t} == -128
+macro-int-constant INT8_MAX {promoted:int8_t} == 127
+macro-int-constant INT16_MIN {promoted:int16_t} == -32768
+macro-int-constant INT16_MAX {promoted:int16_t} == 32767
+macro-int-constant INT32_MIN {promoted:int32_t} == -2147483647-1
+macro-int-constant INT32_MAX {promoted:int32_t} == 2147483647
+macro-int-constant INT64_MIN {promoted:int64_t} == -9223372036854775807LL-1
+macro-int-constant INT64_MAX {promoted:int64_t} == 9223372036854775807LL
-constant UINT8_MAX == 255
-constant UINT16_MAX == 65535
-constant UINT32_MAX == 4294967295U
-constant UINT64_MAX == 18446744073709551615ULL
+macro-int-constant UINT8_MAX {promoted:uint8_t} == 255
+macro-int-constant UINT16_MAX {promoted:uint16_t} == 65535
+macro-int-constant UINT32_MAX {promoted:uint32_t} == 4294967295U
+macro-int-constant UINT64_MAX {promoted:uint64_t} == 18446744073709551615ULL
-constant INT_LEAST8_MIN <= -128
-constant INT_LEAST8_MAX >= 127
-constant INT_LEAST16_MIN <= -32768
-constant INT_LEAST16_MAX >= 32767
-constant INT_LEAST32_MIN <= -2147483647-1
-constant INT_LEAST32_MAX >= 2147483647
-constant INT_LEAST64_MIN <= -9223372036854775807LL-1
-constant INT_LEAST64_MAX >= 9223372036854775807LL
+macro-int-constant INT_LEAST8_MIN {promoted:int_least8_t} <= -128
+macro-int-constant INT_LEAST8_MAX {promoted:int_least8_t} >= 127
+macro-int-constant INT_LEAST16_MIN {promoted:int_least16_t} <= -32768
+macro-int-constant INT_LEAST16_MAX {promoted:int_least16_t} >= 32767
+macro-int-constant INT_LEAST32_MIN {promoted:int_least32_t} <= -2147483647-1
+macro-int-constant INT_LEAST32_MAX {promoted:int_least32_t} >= 2147483647
+macro-int-constant INT_LEAST64_MIN {promoted:int_least64_t} <= -9223372036854775807LL-1
+macro-int-constant INT_LEAST64_MAX {promoted:int_least64_t} >= 9223372036854775807LL
-constant UINT_LEAST8_MAX >= 255
-constant UINT_LEAST16_MAX >= 65535
-constant UINT_LEAST32_MAX >= 4294967295U
-constant UINT_LEAST64_MAX >= 18446744073709551615ULL
+macro-int-constant UINT_LEAST8_MAX {promoted:uint_least8_t} >= 255
+macro-int-constant UINT_LEAST16_MAX {promoted:uint_least16_t} >= 65535
+macro-int-constant UINT_LEAST32_MAX {promoted:uint_least32_t} >= 4294967295U
+macro-int-constant UINT_LEAST64_MAX {promoted:uint_least64_t} >= 18446744073709551615ULL
-constant INT_FAST8_MIN <= -128
-constant INT_FAST8_MAX >= 127
-constant INT_FAST16_MIN <= -32768
-constant INT_FAST16_MAX >= 32767
-constant INT_FAST32_MIN <= -2147483647-1
-constant INT_FAST32_MAX >= 2147483647
-constant INT_FAST64_MIN <= -9223372036854775807LL-1
-constant INT_FAST64_MAX >= 9223372036854775807LL
+macro-int-constant INT_FAST8_MIN {promoted:int_fast8_t} <= -128
+macro-int-constant INT_FAST8_MAX {promoted:int_fast8_t} >= 127
+macro-int-constant INT_FAST16_MIN {promoted:int_fast16_t} <= -32768
+macro-int-constant INT_FAST16_MAX {promoted:int_fast16_t} >= 32767
+macro-int-constant INT_FAST32_MIN {promoted:int_fast32_t} <= -2147483647-1
+macro-int-constant INT_FAST32_MAX {promoted:int_fast32_t} >= 2147483647
+macro-int-constant INT_FAST64_MIN {promoted:int_fast64_t} <= -9223372036854775807LL-1
+macro-int-constant INT_FAST64_MAX {promoted:int_fast64_t} >= 9223372036854775807LL
-constant UINT_FAST8_MAX >= 255
-constant UINT_FAST16_MAX >= 65535
-constant UINT_FAST32_MAX >= 4294967295U
-constant UINT_FAST64_MAX >= 18446744073709551615ULL
+macro-int-constant UINT_FAST8_MAX {promoted:uint_fast8_t} >= 255
+macro-int-constant UINT_FAST16_MAX {promoted:uint_fast16_t} >= 65535
+macro-int-constant UINT_FAST32_MAX {promoted:uint_fast32_t} >= 4294967295U
+macro-int-constant UINT_FAST64_MAX {promoted:uint_fast64_t} >= 18446744073709551615ULL
-constant INTPTR_MIN <= -32768
-constant INTPTR_MAX >= 32767
+macro-int-constant INTPTR_MIN {promoted:intptr_t} <= -32768
+macro-int-constant INTPTR_MAX {promoted:intptr_t} >= 32767
-constant UINTPTR_MAX >= 65535
+macro-int-constant UINTPTR_MAX {promoted:uintptr_t} >= 65535
-constant INTMAX_MIN <= -9223372036854775807LL-1
-constant INTMAX_MAX >= 9223372036854775807LL
+macro-int-constant INTMAX_MIN {promoted:intmax_t} <= -9223372036854775807LL-1
+macro-int-constant INTMAX_MAX {promoted:intmax_t} >= 9223372036854775807LL
-constant UINTMAX_MAX >= 18446744073709551615ULL
+macro-int-constant UINTMAX_MAX {promoted:uintmax_t} >= 18446744073709551615ULL
-constant PTRDIFF_MIN <= -65535
-constant PTRDIFF_MAX >= 65535
+macro-int-constant PTRDIFF_MIN {promoted:__PTRDIFF_TYPE__} <= -65535
+macro-int-constant PTRDIFF_MAX {promoted:__PTRDIFF_TYPE__} >= 65535
-constant SIG_ATOMIC_MIN <= -127
-constant SIG_ATOMIC_MAX >= 127
+macro-int-constant SIG_ATOMIC_MIN {promoted:__SIG_ATOMIC_TYPE__}
+macro-int-constant SIG_ATOMIC_MAX {promoted:__SIG_ATOMIC_TYPE__} >= 127
-constant SIZE_MAX >= 65535
+macro-int-constant SIZE_MAX {promoted:__SIZE_TYPE__} >= 65535
-constant WCHAR_MIN <= -127
-constant WCHAR_MAX >= 127
+macro-int-constant WCHAR_MIN {promoted:__WCHAR_TYPE__}
+macro-int-constant WCHAR_MAX {promoted:__WCHAR_TYPE__} >= 127
-constant WINT_MIN <= -127
-constant WINT_MAX >= 127
+macro-int-constant WINT_MIN {promoted:__WINT_TYPE__}
+macro-int-constant WINT_MAX {promoted:__WINT_TYPE__} >= 127
macro INT8_C
macro INT16_C
@@ -110,7 +111,9 @@
macro UINTMAX_C
// The following expressions are not entirely correct but the current
-// fnamtch implementation doesn't grok the right form.
+// poorfnmatch implementation doesn't grok the right forms (INT*_MAX,
+// INT*_MIN, INT*_C, UINT*_MAX, UINT*_MIN, UINT*_C, int*_t, uint*_t).
allow INT*
allow UINT*
+allow *_t
#endif
Modified: fsf/trunk/libc/conform/data/stdlib.h-data
==============================================================================
--- fsf/trunk/libc/conform/data/stdlib.h-data (original)
+++ fsf/trunk/libc/conform/data/stdlib.h-data Thu Nov 8 00:01:48 2012
@@ -138,7 +138,7 @@
function {char*} realpath (const char*, char*)
function {unsigned short int*} seed48 (unsigned short int[3])
#endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
function int setenv (const char*, const char*, int)
#endif
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
@@ -168,7 +168,7 @@
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
function int unlockpt (int)
#endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
function int unsetenv (const char*)
#endif
#if defined XPG3 || defined XPG4 || defined UNIX98
Added: fsf/trunk/libc/conform/data/stdnoreturn.h-data
==============================================================================
--- fsf/trunk/libc/conform/data/stdnoreturn.h-data (added)
+++ fsf/trunk/libc/conform/data/stdnoreturn.h-data Thu Nov 8 00:01:48 2012
@@ -1,0 +1,3 @@
+#if defined ISO11
+macro noreturn
+#endif
Modified: fsf/trunk/libc/conform/data/sys/mman.h-data
==============================================================================
--- fsf/trunk/libc/conform/data/sys/mman.h-data (original)
+++ fsf/trunk/libc/conform/data/sys/mman.h-data Thu Nov 8 00:01:48 2012
@@ -17,24 +17,30 @@
constant MAP_FAILED
-#ifndef POSIX
+# if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
constant POSIX_MADV_NORMAL
constant POSIX_MADV_SEQUENTIAL
constant POSIX_MADV_RANDOM
constant POSIX_MADV_WILLNEED
constant POSIX_MADV_DONTNEED
-#endif
optional-constant POSIX_TYPED_MEM_ALLOCATE
optional-constant POSIX_TYPED_MEM_ALLOCATE_CONTIG
optional-constant POSIX_TYPED_MEM_MAP_ALLOCATABLE
-type size_t
-type off_t
type mode_t
optional-type {struct posix_typedmem_info}
optional-element {struct posix_typedmem_info} size_t posix_tmi_length
+
+function int posix_madvise (void*, size_t, int)
+optional-function int posix_mem_offset (const void*, size_t, off_t*, size_t*, int*)
+optional-function int posix_typed_mem_get_info (int, struct posix_typed_mem_info*)
+optional-function int posix_typed_mem_open (const char*, int, int)
+# endif
+
+type size_t
+type off_t
function int mlock (const void*, size_t)
function int mlockall (int)
@@ -44,12 +50,6 @@
function int munlock (const void*, size_t)
function int munlockall (void)
function int munmap (void*, size_t)
-#ifndef POSIX
-function int posix_madvise (void*, size_t, int)
-#endif
-optional-function int posix_mem_offset (const void*, size_t, off_t*, size_t*, int*)
-optional-function int posix_typed_mem_get_info (int, struct posix_typed_mem_info*)
-optional-function int posix_typed_mem_open (const char*, int, int)
function int shm_open (const char*, int, mode_t)
function int shm_unlink (const char*)
Modified: fsf/trunk/libc/conform/data/sys/stat.h-data
==============================================================================
--- fsf/trunk/libc/conform/data/sys/stat.h-data (original)
+++ fsf/trunk/libc/conform/data/sys/stat.h-data Thu Nov 8 00:01:48 2012
@@ -122,6 +122,8 @@
# endif
# if !defined POSIX && !defined POSIX2008
function int mknod (const char*, mode_t, dev_t)
+# endif
+# ifdef XOPEN2K8
function int mknodat (int, const char*, mode_t, dev_t)
# endif
function int stat (const char*, struct stat*)
Modified: fsf/trunk/libc/conform/data/sys/types.h-data
==============================================================================
--- fsf/trunk/libc/conform/data/sys/types.h-data (original)
+++ fsf/trunk/libc/conform/data/sys/types.h-data Thu Nov 8 00:01:48 2012
@@ -22,8 +22,9 @@
type nlink_t
type off_t
type pid_t
+#if !defined XPG3 && !defined XPG4
type pthread_attr_t
-#if !defined POSIX
+#if !defined POSIX && !defined UNIX98
type pthread_barrier_t
type pthread_barrierattr_t
#endif
@@ -36,9 +37,12 @@
#if !defined POSIX
type pthread_rwlock_t
type pthread_rwlockattr_t
+#endif
+#if !defined POSIX && !defined UNIX98
type pthread_spinlock_t
#endif
type pthread_t
+#endif
type size_t
type ssize_t
# if !defined POSIX && !defined POSIX2008
Modified: fsf/trunk/libc/conform/data/tgmath.h-data
==============================================================================
--- fsf/trunk/libc/conform/data/tgmath.h-data (original)
+++ fsf/trunk/libc/conform/data/tgmath.h-data Thu Nov 8 00:01:48 2012
@@ -1,364 +1,7 @@
-#if defined XOPEN2K || defined POSIX2008
-// <math.h>
-macro fpclassify
-macro isfinite
-macro isinf
-macro isnan
-macro isnormal
-macro signbit
-macro isgreater
-macro isgreaterequal
-macro isless
-macro islessequal
-macro islessgreater
-macro isunordered
+#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#include "math.h-data"
+#include "complex.h-data"
-#ifndef POSIX2008
-constant M_E
-constant M_LOG2E
-constant M_LOG10E
-constant M_LN2
-constant M_LN10
-constant M_PI
-constant M_PI_2
-constant M_PI_4
-constant M_1_PI
-constant M_2_PI
-constant M_2_SQRTPI
-constant M_SQRT2
-constant M_SQRT1_2
-
-constant MAXFLOAT
-#endif
-constant HUGE_VAL
-constant HUGE_VALF
-constant HUGE_VALL
-constant INFINITY
-constant NAN
-
-macro FP_INFINITE
-macro FP_NAN
-macro FP_NORMAL
-macro FP_SUBNORMAL
-macro FP_ZERO
-
-optional-macro FP_FAST_FMA
-optional-macro FP_FAST_FMAF
-optional-macro FP_FAST_FMAL
-
-constant FP_ILOGB0
-constant FP_ILOGBNAN
-
-macro MATH_ERRNO == 1
-macro MATH_ERREXCEPT == 2
-
-macro math_errhandling
-
-function double acos (double)
-function double asin (double)
-function double atan (double)
-function double atan2 (double, double)
-function double ceil (double)
-function double copysign (double, double)
-function double cos (double)
-function double cosh (double)
-function double exp (double)
-function double exp2 (double)
-function double fabs (double)
-function double floor (double)
-function double fmod (double, double)
-function double frexp (double, int*)
-function double ldexp (double, int)
-function double log (double)
-function double log10 (double)
-function double log2 (double)
-function double modf (double, double*)
-function double pow (double, double)
-function double sin (double)
-function double sinh (double)
-function double sqrt (double)
-function double tan (double)
-function double tanh (double)
-function double erf (double)
-function double erfc (double)
-#if defined XPG3 || defined XPG4 || defined UNIX98
-function double gamma (double)
-#endif
-function double hypot (double, double)
-#if !defined POSIX && !defined POSIX2008
-function double j0 (double)
-function double j1 (double)
-function double jn (int, double)
-#endif
-function double lgamma (double)
-function double tgamma (double)
-#if !defined POSIX && !defined POSIX2008
-function double y0 (double)
-function double y1 (double)
-function double yn (int, double)
-#endif
-function double acosh (double)
-function double asinh (double)
-function double atanh (double)
-function double cbrt (double)
-function double expm1 (double)
-function int ilogb (double)
-function double log1p (double)
-function double logb (double)
-function double nextafter (double, double)
-function double nexttoward (double, long double)
-function double nearbyint (double)
-function double remainder (double, double)
-function double rint (double)
-function double round (double)
-function double trunc (double)
-function long lrint (double)
-function {long long} llrint (double)
-function long lround (double)
-function {long long} llround (double)
-function double remquo (double, double, int*)
-#if defined XPG3 && defined XPG4 && defined UNIX98 && defined XOPEN2K
-function double scalb (double, double)
-#endif
-function double scalbn (double, int)
-function double scalbln (double, long)
-function double fdim (double, double)
-function double fmax (double, double)
-function double fmin (double, double)
-function double fma (double, double, double)
-function double nan (const char*)
-
-// variable signgam
-allow signgam
-
-function float acosf (float)
-function float asinf (float)
-function float atanf (float)
-function float atan2f (float, float)
-function float ceilf (float)
-function float copysignf (float, float)
-function float cosf (float)
-function float coshf (float)
-function float expf (float)
-function float exp2f (float)
-function float fabsf (float)
-function float floorf (float)
-function float fmodf (float, float)
-function float frexpf (float, int*)
-function float ldexpf (float, int)
-function float logf (float)
-function float log10f (float)
-function float log2f (float)
-function float modff (float, float*)
-function float powf (float, float)
-function float sinf (float)
-function float sinhf (float)
-function float sqrtf (float)
-function float tanf (float)
-function float tanhf (float)
-function float erff (float)
-function float erfcf (float)
-#if defined XPG3 || defined XPG4 || defined UNIX98
-function float gammaf (float)
-#endif
-function float hypotf (float, float)
-#if !defined POSIX && !defined POSIX2008
-function float j0f (float)
-function float j1f (float)
-function float jnf (int, float)
-#endif
-function float lgammaf (float)
-function float tgammaf (float)
-#if !defined POSIX && !defined POSIX2008
-function float y0f (float)
-function float y1f (float)
-function float ynf (int, float)
-#endif
-function float acoshf (float)
-function float asinhf (float)
-function float atanhf (float)
-function float cbrtf (float)
-function float expm1f (float)
-function int ilogbf (float)
-function float log1pf (float)
-function float logbf (float)
-function float nextafterf (float, float)
-function float nexttowardf (float, long double)
-function float nearbyintf (float)
-function float remainderf (float, float)
-function float rintf (float)
-function float roundf (float)
-function float truncf (float)
-function long lrintf (float)
-function {long long} llrintf (float)
-function long lroundf (float)
-function {long long} llroundf (float)
-function float remquof (float, float, int*)
-#if defined XPG3 && defined XPG4 && defined UNIX98 && defined XOPEN2K
-function float scalbf (float, float)
-#endif
-function float scalbnf (float, int)
-function float scalblnf (float, long)
-function float fdimf (float, float)
-function float fmaxf (float, float)
-function float fminf (float, float)
-function float fmaf (float, float, float)
-function float nanf (const char*)
-
-function {long double} acosl (long double)
-function {long double} asinl (long double)
-function {long double} atanl (long double)
-function {long double} atan2l (long double, long double)
-function {long double} ceill (long double)
-function {long double} copysignl (long double, long double)
-function {long double} cosl (long double)
-function {long double} coshl (long double)
-function {long double} expl (long double)
-function {long double} exp2l (long double)
-function {long double} fabsl (long double)
-function {long double} floorl (long double)
-function {long double} fmodl (long double, long double)
-function {long double} frexpl (long double, int*)
-function {long double} ldexpl (long double, int)
-function {long double} logl (long double)
-function {long double} log10l (long double)
-function {long double} log2l (long double)
-function {long double} modfl (long double, long double*)
-function {long double} powl (long double, long double)
-function {long double} sinl (long double)
-function {long double} sinhl (long double)
-function {long double} sqrtl (long double)
-function {long double} tanl (long double)
-function {long double} tanhl (long double)
-function {long double} erfl (long double)
-function {long double} erfcl (long double)
-#if defined XPG3 || defined XPG4 || defined UNIX98
-function {long double} gammal (long double)
-#endif
-function {long double} hypotl (long double, long double)
-#if !defined POSIX && !defined POSIX2008
-function {long double} j0l (long double)
-function {long double} j1l (long double)
-function {long double} jnl (int, long double)
-#endif
-function {long double} lgammal (long double)
-function {long double} tgammal (long double)
-#if !defined POSIX && !defined POSIX2008
-function {long double} y0l (long double)
-function {long double} y1l (long double)
-function {long double} ynl (int, long double)
-#endif
-function {long double} acoshl (long double)
-function {long double} asinhl (long double)
-function {long double} atanhl (long double)
-function {long double} cbrtl (long double)
-function {long double} expm1l (long double)
-function int ilogbl (long double)
-function {long double} log1pl (long double)
-function {long double} logbl (long double)
-function {long double} nextafterl (long double, long double)
-function {long double} nexttowardl (long double, long double)
-function {long double} nearbyintl (long double)
-function {long double} remainderl (long double, long double)
-function {long double} rintl (long double)
-function {long double} roundl (long double)
-function {long double} truncl (long double)
-function long lrintl (long double)
-function {long long} llrintl (long double)
-function long lroundl (long double)
-function {long long} llroundl (long double)
-function {long double} remquol (long double, long double, int*)
-#if defined XPG3 && defined XPG4 && defined UNIX98 && defined XOPEN2K
-function {long double} scalbl (long double, long double)
-#endif
-function {long double} scalbnl (long double, int)
-function {long double} scalblnl (long double, long)
-function {long double} fdiml (long double, long double)
-function {long double} fmaxl (long double, long double)
-function {long double} fminl (long double, long double)
-function {long double} fmal (long double, long double, long double)
-function {long double} nanl (const char*)
-
-allow *_t
-allow FP_*
-
-// <complex.h>
-macro complex
-macro _Complex_I
-optional-macro imaginary
-optional-macro _Imaginary_I
-macro I
-
-function double cabs (double complex)
-function {double complex} cacos (double complex)
-function {double complex} cacosh (double complex)
-function double carg (double complex)
-function {double complex} casin (double complex)
-function {double complex} casinh (double complex)
-function {double complex} catan (double complex)
-function {double complex} catanh (double complex)
-function {double complex} ccos (double complex)
-function {double complex} ccosh (double complex)
-function {double complex} cexp (double complex)
-function double cimag (double complex)
-function {double complex} clog (double complex)
-function {double complex} conj (double complex)
-function {double complex} cpow (double complex, double complex)
-function {double complex} cproj (double complex)
-function double creal (double complex)
-function {double complex} csin (double complex)
-function {double complex} csinh (double complex)
-function {double complex} csqrt (double complex)
-function {double complex} ctan (double complex)
-function {double complex} ctanh (double complex)
-
-function float cabsf (float complex)
-function {float complex} cacosf (float complex)
-function {float complex} cacoshf (float complex)
-function float cargf (float complex)
-function {float complex} casinf (float complex)
-function {float complex} casinhf (float complex)
-function {float complex} catanf (float complex)
-function {float complex} catanhf (float complex)
-function {float complex} ccosf (float complex)
-function {float complex} ccoshf (float complex)
-function {float complex} cexpf (float complex)
-function float cimagf (float complex)
-function {float complex} clogf (float complex)
-function {float complex} conjf (float complex)
-function {float complex} cpowf (float complex, float complex)
-function {float complex} cprojf (float complex)
-function float crealf (float complex)
-function {float complex} csinf (float complex)
-function {float complex} csinhf (float complex)
-function {float complex} csqrtf (float complex)
-function {float complex} ctanf (float complex)
-function {float complex} ctanhf (float complex)
-
-function {long double} cabsl (long double complex)
-function {long double complex} cacosl (long double complex)
-function {long double complex} cacoshl (long double complex)
-function {long double} cargl (long double complex)
-function {long double complex} casinhl (long double complex)
-function {long double complex} casinl (long double complex)
-function {long double complex} catanhl (long double complex)
-function {long double complex} catanl (long double complex)
-function {long double complex} ccoshl (long double complex)
-function {long double complex} ccosl (long double complex)
-function {long double complex} cexpl (long double complex)
-function {long double} cimagl (long double complex)
-function {long double complex} clogl (long double complex)
-function {long double complex} conjl (long double complex)
-function {long double complex} cpowl (long double complex, long double complex)
-function {long double complex} cprojl (long double complex)
-function {long double} creall (long double complex)
-function {long double complex} csinhl (long double complex)
-function {long double complex} csinl (long double complex)
-function {long double complex} csqrtl (long double complex)
-function {long double complex} ctanhl (long double complex)
-function {long double complex} ctanl (long double complex)
-
-// <tgmath.h>
macro acos
macro asin
macro atan
Modified: fsf/trunk/libc/conform/data/time.h-data
==============================================================================
--- fsf/trunk/libc/conform/data/time.h-data (original)
+++ fsf/trunk/libc/conform/data/time.h-data Thu Nov 8 00:01:48 2012
@@ -42,7 +42,7 @@
#endif
#if !defined ISO && !defined ISO99 && !defined ISO11
-# if !defined XOPEN21K && !defined XOPEN2K8 && !defined POSIX2008
+# if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
symbol CLK_TCK
# endif
constant CLOCK_PROCESS_CPUTIME_ID
Modified: fsf/trunk/libc/conform/data/uchar.h-data
==============================================================================
--- fsf/trunk/libc/conform/data/uchar.h-data (original)
+++ fsf/trunk/libc/conform/data/uchar.h-data Thu Nov 8 00:01:48 2012
@@ -5,7 +5,7 @@
type char32_t
function size_t mbrtoc16 (char16_t *, const char *, size_t, mbstate_t *)
-function size_t c16rtomb (char *, char16_t, mbstate_t *)16
+function size_t c16rtomb (char *, char16_t, mbstate_t *)
function size_t mbrtoc32 (char32_t *, const char *, size_t, mbstate_t *)
function size_t c32rtomb (char *, char32_t, mbstate_t *)
Modified: fsf/trunk/libc/conform/data/wchar.h-data
==============================================================================
--- fsf/trunk/libc/conform/data/wchar.h-data (original)
+++ fsf/trunk/libc/conform/data/wchar.h-data Thu Nov 8 00:01:48 2012
@@ -14,6 +14,7 @@
# if defined XOPEN2K8 || defined POSIX2008
type locale_t
# endif
+tag {struct tm}
function wint_t btowc (int)
function int fwprintf (FILE*, const wchar_t*, ...)
@@ -104,9 +105,19 @@
function size_t wcsspn (const wchar_t*, const wchar_t*)
function {wchar_t*} wcsstr (const wchar_t*, const wchar_t*)
function double wcstod (const wchar_t*, wchar_t**)
+# ifndef UNIX98
+function float wcstof (const wchar_t*, wchar_t**)
+function {long double} wcstold (const wchar_t*, wchar_t**)
+# endif
function {wchar_t*} wcstok (wchar_t*, const wchar_t*, wchar_t**)
function {long int} wcstol (const wchar_t*, wchar_t**, int)
+# ifndef UNIX98
+function {long long int} wcstoll (const wchar_t*, wchar_t**, int)
+# endif
function {unsigned long int} wcstoul (const wchar_t*, wchar_t**, int)
+# ifndef UNIX98
+function {unsigned long long int} wcstoull (const wchar_t*, wchar_t**, int)
+# endif
# if defined UNIX98 || defined XOPEN2K
function {wchar_t*} wcswcs (const wchar_t*, const wchar_t*)
# endif
@@ -130,11 +141,12 @@
function int wprintf (const wchar_t*, ...)
function int wscanf (const wchar_t*, ...)
-macro WCHAR_MAX
-macro WCHAR_MIN
-macro WEOF
-macro NULL
+macro-int-constant WCHAR_MIN {promoted:wchar_t}
+macro-int-constant WCHAR_MAX {promoted:wchar_t} >= 127
+macro-constant WEOF {wint_t}
+macro-constant NULL == 0
+#if !defined ISO && !defined ISO99 && !defined ISO11
allow-header ctype.h
allow-header stdio.h
allow-header stdarg.h
@@ -142,7 +154,10 @@
allow-header string.h
allow-header stddef.h
allow-header time.h
+#endif
-allow wcs*
+allow wcs[abcdefghijklmnopqrstuvwxyz]*
+#if !defined ISO && !defined ISO99 && !defined ISO11
allow *_t
#endif
+#endif
Modified: fsf/trunk/libc/conform/data/wctype.h-data
==============================================================================
--- fsf/trunk/libc/conform/data/wctype.h-data (original)
+++ fsf/trunk/libc/conform/data/wctype.h-data Thu Nov 8 00:01:48 2012
@@ -8,6 +8,9 @@
function int iswalnum (wint_t)
function int iswalpha (wint_t)
+# ifndef UNIX98
+function int iswblank (wint_t)
+# endif
function int iswcntrl (wint_t)
function int iswdigit (wint_t)
function int iswgraph (wint_t)
@@ -26,6 +29,7 @@
# if defined XOPEN2K8 || defined POSIX2008
function int iswalnum_l (wint_t, locale_t)
function int iswalpha_l (wint_t, locale_t)
+function int iswblank_l (wint_t, locale_t)
function int iswcntrl_l (wint_t, locale_t)
function int iswdigit_l (wint_t, locale_t)
function int iswgraph_l (wint_t, locale_t)
@@ -43,8 +47,9 @@
function wctype_t wctype_l (const char*, locale_t)
# endif
-macro WEOF
+macro-constant WEOF {wint_t}
+#if !defined ISO && !defined ISO99 && !defined ISO11
allow-header ctype.h
allow-header stdio.h
allow-header stdarg.h
@@ -53,8 +58,11 @@
allow-header stddef.h
allow-header time.h
allow-header wchar.h
+#endif
-allow is*
-allow to*
+allow is[abcdefghijklmnopqrstuvwxyz]*
+allow to[abcdefghijklmnopqrstuvwxyz]*
+#if !defined ISO && !defined ISO99 && !defined ISO11
allow *_t
#endif
+#endif
Modified: fsf/trunk/libc/elf/elf.h
==============================================================================
--- fsf/trunk/libc/elf/elf.h (original)
+++ fsf/trunk/libc/elf/elf.h Thu Nov 8 00:01:48 2012
@@ -249,6 +249,7 @@
#define EM_OPENRISC 92 /* OpenRISC 32-bit embedded processor */
#define EM_ARC_A5 93 /* ARC Cores Tangent-A5 */
#define EM_XTENSA 94 /* Tensilica Xtensa Architecture */
+#define EM_AARCH64 183 /* ARM AARCH64 */
#define EM_TILEPRO 188 /* Tilera TILEPro */
#define EM_TILEGX 191 /* Tilera TILE-Gx */
#define EM_NUM 192
@@ -631,6 +632,9 @@
#define NT_S390_LAST_BREAK 0x306 /* s390 breaking event address */
#define NT_S390_SYSTEM_CALL 0x307 /* s390 system call restart data */
#define NT_ARM_VFP 0x400 /* ARM VFP/NEON registers */
+#define NT_ARM_TLS 0x401 /* ARM TLS register */
+#define NT_ARM_HW_BREAK 0x402 /* ARM hardware breakpoint registers */
+#define NT_ARM_HW_WATCH 0x403 /* ARM hardware watchpoint registers */
/* Legal values for the note segment descriptor types for object files. */
@@ -2305,6 +2309,20 @@
#define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2) /* Preemption details. */
#define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3) /* ARM attributes section. */
+
+/* AArch64 specific declarations. */
+
+#define R_AARCH64_NONE 0 /* No relocation. */
+#define R_AARCH64_ABS64 257 /* Direct 64 bit. */
+#define R_AARCH64_ABS32 258 /* Direct 32 bit. */
+#define R_AARCH64_COPY 1024 /* Copy symbol at runtime. */
+#define R_AARCH64_GLOB_DAT 1025 /* Create GOT entry. */
+#define R_AARCH64_JUMP_SLOT 1026 /* Create PLT entry. */
+#define R_AARCH64_RELATIVE 1027 /* Adjust by program base. */
+#define R_AARCH64_TLS_DTPMOD64 1028 /* Module number, 64 bit. */
+#define R_AARCH64_TLS_DTPREL64 1029 /* Module-relative offset, 64 bit. */
+#define R_AARCH64_TLS_TPREL64 1030 /* TP-relative offset, 64 bit. */
+#define R_AARCH64_TLSDESC 1031 /* TLS Descriptor. */
/* ARM relocs. */
Modified: fsf/trunk/libc/localedata/ChangeLog
==============================================================================
--- fsf/trunk/libc/localedata/ChangeLog (original)
+++ fsf/trunk/libc/localedata/ChangeLog Thu Nov 8 00:01:48 2012
@@ -1,3 +1,12 @@
+2012-11-07 Dmitry V. Levin <ldv@xxxxxxxxxxxx>
+
+ [BZ#14807]
+ * locales/ru_RU (abmon): Change back from genitive to nominative,
+ apply fixed three-letter abbreviation form, remove trailing dots.
+
+ [BZ#10873]
+ * locales/ru_RU (abday): Remove trailing dots.
+
2012-11-02 Marko Myllynen <myllynen@xxxxxxxxxx>
[BZ #14669]
Modified: fsf/trunk/libc/localedata/locales/ru_RU
==============================================================================
--- fsf/trunk/libc/localedata/locales/ru_RU (original)
+++ fsf/trunk/libc/localedata/locales/ru_RU Thu Nov 8 00:01:48 2012
@@ -109,13 +109,13 @@
"<U0427><U0435><U0442><U0432><U0435><U0440><U0433>";/
"<U041F><U044F><U0442><U043D><U0438><U0446><U0430>";/
"<U0421><U0443><U0431><U0431><U043E><U0442><U0430>"
-abday "<U0412><U0441>.";/
- "<U041F><U043D>.";/
- "<U0412><U0442>.";/
- "<U0421><U0440>.";/
- "<U0427><U0442>.";/
- "<U041F><U0442>.";/
- "<U0421><U0431>."
+abday "<U0412><U0441>";/
+ "<U041F><U043D>";/
+ "<U0412><U0442>";/
+ "<U0421><U0440>";/
+ "<U0427><U0442>";/
+ "<U041F><U0442>";/
+ "<U0421><U0431>"
mon "<U042F><U043D><U0432><U0430><U0440><U044C>";/
"<U0424><U0435><U0432><U0440><U0430><U043B><U044C>";/
"<U041C><U0430><U0440><U0442>";/
@@ -128,18 +128,18 @@
"<U041E><U043A><U0442><U044F><U0431><U0440><U044C>";/
"<U041D><U043E><U044F><U0431><U0440><U044C>";/
"<U0414><U0435><U043A><U0430><U0431><U0440><U044C>"
-abmon "<U044F><U043D><U0432>.";/
- "<U0444><U0435><U0432><U0440>.";/
- "<U043C><U0430><U0440><U0442><U0430>";/
- "<U0430><U043F><U0440>.";/
- "<U043C><U0430><U044F>";/
- "<U0438><U044E><U043D><U044F>";/
- "<U0438><U044E><U043B><U044F>";/
- "<U0430><U0432><U0433>.";/
- "<U0441><U0435><U043D><U0442>.";/
- "<U043E><U043A><U0442>.";/
- "<U043D><U043E><U044F><U0431>.";/
- "<U0434><U0435><U043A>."
+abmon "<U044F><U043D><U0432>";/
+ "<U0444><U0435><U0432>";/
+ "<U043C><U0430><U0440>";/
+ "<U0430><U043F><U0440>";/
+ "<U043C><U0430><U0439>";/
+ "<U0438><U044E><U043D>";/
+ "<U0438><U044E><U043B>";/
+ "<U0430><U0432><U0433>";/
+ "<U0441><U0435><U043D>";/
+ "<U043E><U043A><U0442>";/
+ "<U043D><U043E><U044F>";/
+ "<U0434><U0435><U043A>"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062>/
<U0020><U0025><U0059><U0020><U0025><U0054>"
d_fmt "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
Modified: fsf/trunk/libc/manual/filesys.texi
==============================================================================
--- fsf/trunk/libc/manual/filesys.texi (original)
+++ fsf/trunk/libc/manual/filesys.texi Thu Nov 8 00:01:48 2012
@@ -287,7 +287,7 @@
This member is a BSD extension. The symbol @code{_DIRENT_HAVE_D_TYPE}
is defined if this member is available. On systems where it is used, it
corresponds to the file type bits in the @code{st_mode} member of
-@code{struct statbuf}. If the value cannot be determine the member
+@code{struct stat}. If the value cannot be determine the member
value is DT_UNKNOWN. These two macros convert between @code{d_type}
values and @code{st_mode} values:
Modified: fsf/trunk/libc/math/libm-test.inc
==============================================================================
--- fsf/trunk/libc/math/libm-test.inc (original)
+++ fsf/trunk/libc/math/libm-test.inc Thu Nov 8 00:01:48 2012
@@ -7743,10 +7743,12 @@
TEST_ff_f (pow, plus_infty, 1e-7L, plus_infty);
TEST_ff_f (pow, plus_infty, 1, plus_infty);
TEST_ff_f (pow, plus_infty, 1e7L, plus_infty);
+ TEST_ff_f (pow, plus_infty, min_subnorm_value, plus_infty);
TEST_ff_f (pow, plus_infty, -1e-7L, 0);
TEST_ff_f (pow, plus_infty, -1, 0);
TEST_ff_f (pow, plus_infty, -1e7L, 0);
+ TEST_ff_f (pow, plus_infty, -min_subnorm_value, 0);
TEST_ff_f (pow, minus_infty, 1, minus_infty);
TEST_ff_f (pow, minus_infty, 11, minus_infty);
@@ -7759,6 +7761,7 @@
TEST_ff_f (pow, minus_infty, 1.1L, plus_infty);
TEST_ff_f (pow, minus_infty, 11.1L, plus_infty);
TEST_ff_f (pow, minus_infty, 1001.1L, plus_infty);
+ TEST_ff_f (pow, minus_infty, min_subnorm_value, plus_infty);
TEST_ff_f (pow, minus_infty, -1, minus_zero);
TEST_ff_f (pow, minus_infty, -11, minus_zero);
@@ -7771,6 +7774,7 @@
TEST_ff_f (pow, minus_infty, -1.1L, 0);
TEST_ff_f (pow, minus_infty, -11.1L, 0);
TEST_ff_f (pow, minus_infty, -1001.1L, 0);
+ TEST_ff_f (pow, minus_infty, -min_subnorm_value, 0);
#endif
TEST_ff_f (pow, nan_value, nan_value, nan_value);
@@ -7793,6 +7797,8 @@
TEST_ff_f (pow, nan_value, minus_infty, nan_value);
TEST_ff_f (pow, nan_value, 2.5, nan_value);
TEST_ff_f (pow, nan_value, -2.5, nan_value);
+ TEST_ff_f (pow, nan_value, min_subnorm_value, nan_value);
+ TEST_ff_f (pow, nan_value, -min_subnorm_value, nan_value);
TEST_ff_f (pow, 1, plus_infty, 1);
TEST_ff_f (pow, -1, plus_infty, 1);
@@ -7806,6 +7812,8 @@
TEST_ff_f (pow, 1, 0x1p63L, 1);
TEST_ff_f (pow, 1, 0x1p64L, 1);
TEST_ff_f (pow, 1, 0x1p72L, 1);
+ TEST_ff_f (pow, 1, min_subnorm_value, 1);
+ TEST_ff_f (pow, 1, -min_subnorm_value, 1);
/* pow (x, +-0) == 1. */
TEST_ff_f (pow, plus_infty, 0, 1);
@@ -7825,6 +7833,10 @@
TEST_ff_f (pow, -0.1L, -1.1L, nan_value, INVALID_EXCEPTION);
TEST_ff_f (pow, -10.1L, 1.1L, nan_value, INVALID_EXCEPTION);
TEST_ff_f (pow, -10.1L, -1.1L, nan_value, INVALID_EXCEPTION);
+ TEST_ff_f (pow, -1.01L, min_subnorm_value, nan_value, INVALID_EXCEPTION);
+ TEST_ff_f (pow, -1.01L, -min_subnorm_value, nan_value, INVALID_EXCEPTION);
+ TEST_ff_f (pow, -1.0L, min_subnorm_value, nan_value, INVALID_EXCEPTION);
+ TEST_ff_f (pow, -1.0L, -min_subnorm_value, nan_value, INVALID_EXCEPTION);
errno = 0;
TEST_ff_f (pow, 0, -1, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
@@ -7910,6 +7922,9 @@
TEST_ff_f (pow, 0, -11.1L, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
check_int ("errno for pow(0,-num) == ERANGE", errno, ERANGE, 0, 0, 0);
errno = 0;
+ TEST_ff_f (pow, 0, -min_subnorm_value, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
+ check_int ("errno for pow(0,-num) == ERANGE", errno, ERANGE, 0, 0, 0);
+ errno = 0;
TEST_ff_f (pow, 0, -0x1p24, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
check_int ("errno for pow(0,-num) == ERANGE", errno, ERANGE, 0, 0, 0);
errno = 0;
@@ -7923,6 +7938,9 @@
check_int ("errno for pow(-0,-even) == ERANGE", errno, ERANGE, 0, 0, 0);
errno = 0;
TEST_ff_f (pow, minus_zero, -11.1L, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
+ check_int ("errno for pow(-0,-num) == ERANGE", errno, ERANGE, 0, 0, 0);
+ errno = 0;
+ TEST_ff_f (pow, minus_zero, -min_subnorm_value, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
check_int ("errno for pow(-0,-num) == ERANGE", errno, ERANGE, 0, 0, 0);
errno = 0;
TEST_ff_f (pow, minus_zero, -0x1p24, plus_infty, DIVIDE_BY_ZERO_EXCEPTION);
@@ -8114,12 +8132,14 @@
TEST_ff_f (pow, 0.0, 0x1p24, 0.0);
TEST_ff_f (pow, 0.0, 0x1p127, 0.0);
TEST_ff_f (pow, 0.0, max_value, 0.0);
+ TEST_ff_f (pow, 0.0, min_subnorm_value, 0.0);
/* pow (-0, y) == +0 for y > 0 and not an odd integer. */
TEST_ff_f (pow, minus_zero, 4, 0.0);
TEST_ff_f (pow, minus_zero, 0x1p24, 0.0);
TEST_ff_f (pow, minus_zero, 0x1p127, 0.0);
TEST_ff_f (pow, minus_zero, max_value, 0.0);
+ TEST_ff_f (pow, minus_zero, min_subnorm_value, 0.0);
TEST_ff_f (pow, 16, 0.25L, 2);
TEST_ff_f (pow, 0x1p64L, 0.125L, 256);
@@ -8406,6 +8426,15 @@
TEST_ff_f (pow, 0x1.0000000000001p0L, 0x1.23456789abcdfp61L, 9.8826311568044974397135026217687399395481e+252L);
TEST_ff_f (pow, 0x1.0000000000001p0L, -0x1.23456789abcdfp61L, 1.0118762747828234466621210689458255908670e-253L);
#endif
+
+ TEST_ff_f (pow, min_subnorm_value, min_subnorm_value, 1.0L);
+ TEST_ff_f (pow, min_subnorm_value, -min_subnorm_value, 1.0L);
+ TEST_ff_f (pow, max_value, min_subnorm_value, 1.0L);
+ TEST_ff_f (pow, max_value, -min_subnorm_value, 1.0L);
+ TEST_ff_f (pow, 0.99L, min_subnorm_value, 1.0L);
+ TEST_ff_f (pow, 0.99L, -min_subnorm_value, 1.0L);
+ TEST_ff_f (pow, 1.01L, min_subnorm_value, 1.0L);
+ TEST_ff_f (pow, 1.01L, -min_subnorm_value, 1.0L);
TEST_ff_f (pow, 2.0L, -100000.0L, plus_zero, UNDERFLOW_EXCEPTION);
Modified: fsf/trunk/libc/ports/ChangeLog.mips
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.mips (original)
+++ fsf/trunk/libc/ports/ChangeLog.mips Thu Nov 8 00:01:48 2012
@@ -1,3 +1,7 @@
+2012-11-06 Maxim Kuvyrkov <maxim@xxxxxxxxxxxxxxxx>
+
+ * sysdeps/mips/memmove.c: New file. Use memcpy for forward memmove.
+
2012-11-05 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
* sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h
Modified: fsf/trunk/libc/ports/ChangeLog.tile
==============================================================================
--- fsf/trunk/libc/ports/ChangeLog.tile (original)
+++ fsf/trunk/libc/ports/ChangeLog.tile Thu Nov 8 00:01:48 2012
@@ -1,4 +1,6 @@
2012-11-06 Chris Metcalf <cmetcalf@xxxxxxxxxx>
+
+ * sysdeps/tile/tilegx/memmove.c: New file.
* sysdeps/tile/nptl/pthread_spin_unlock.c: New file.
@@ -7,8 +9,7 @@
* sysdeps/tile/math_private.h: Provide additional no-op defines
for exception and rounding macros.
- * sysdeps/tile/tilegx/Makefile: Generate Makefile fragment to determine
- whether to build elf-init.c and gmon-start.c with -mcmodel=large.
+ * sysdeps/tile/tilegx/Makefile: New file.
* sysdeps/tile/crti.S: Support large memory model.
* sysdeps/tile/start.S: Likewise.
Added: fsf/trunk/libc/ports/sysdeps/mips/memmove.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/mips/memmove.c (added)
+++ fsf/trunk/libc/ports/sysdeps/mips/memmove.c Thu Nov 8 00:01:48 2012
@@ -1,0 +1,23 @@
+/* Copy memory to memory until the specified number of bytes
+ has been copied. Overlap is handled correctly.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Maxim Kuvyrkov <maxim@xxxxxxxxxxxxxxxx>.
+
+ 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/>. */
+
+/* MIPS' implementation of memcpy is safe to use for memmove. */
+#define MEMCPY_OK_FOR_FWD_MEMMOVE 1
+#include <string/memmove.c>
Added: fsf/trunk/libc/ports/sysdeps/tile/tilegx/memmove.c
==============================================================================
--- fsf/trunk/libc/ports/sysdeps/tile/tilegx/memmove.c (added)
+++ fsf/trunk/libc/ports/sysdeps/tile/tilegx/memmove.c Thu Nov 8 00:01:48 2012
@@ -1,0 +1,22 @@
+/* Copy memory to memory until the specified number of bytes
+ has been copied. Overlap is handled correctly.
+ 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/>. */
+
+/* The tilegx implementation of memcpy is safe to use for memmove. */
+#define MEMCPY_OK_FOR_FWD_MEMMOVE 1
+#include <string/memmove.c>
Modified: fsf/trunk/libc/string/memmove.c
==============================================================================
--- fsf/trunk/libc/string/memmove.c (original)
+++ fsf/trunk/libc/string/memmove.c Thu Nov 8 00:01:48 2012
@@ -1,6 +1,6 @@
/* Copy memory to memory until the specified number of bytes
has been copied. Overlap is handled correctly.
- Copyright (C) 1991, 1995, 1996, 1997, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1991-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Torbjorn Granlund (tege@xxxxxxx).
@@ -55,6 +55,9 @@
{
/* Copy from the beginning to the end. */
+#if MEMCPY_OK_FOR_FWD_MEMMOVE
+ dest = memcpy (dest, src, len);
+#else
/* If there not too few bytes to copy, use word copy. */
if (len >= OP_T_THRES)
{
@@ -79,6 +82,7 @@
/* There are just a few bytes to copy. Use byte memory operations. */
BYTE_COPY_FWD (dstp, srcp, len);
+#endif /* MEMCPY_OK_FOR_FWD_MEMMOVE */
}
else
{
Modified: fsf/trunk/libc/sysdeps/i386/fpu/e_powl.S
==============================================================================
--- fsf/trunk/libc/sysdeps/i386/fpu/e_powl.S (original)
+++ fsf/trunk/libc/sysdeps/i386/fpu/e_powl.S Thu Nov 8 00:01:48 2012
@@ -38,6 +38,9 @@
.type p78,@object
p78: .byte 0, 0, 0, 0, 0, 0, 0xd0, 0x44
ASM_SIZE_DIRECTIVE(p78)
+ .type pm79,@object
+pm79: .byte 0, 0, 0, 0, 0, 0, 0, 0x3b
+ ASM_SIZE_DIRECTIVE(pm79)
.section .rodata.cst16,"aM",@progbits,16
@@ -120,9 +123,25 @@
fucomp %st(1) // y : x
fnstsw
sahf
- jne 3f
-
- /* OK, we have an integer value for y. */
+ je 9f
+
+ // If y has absolute value at most 0x1p-79, then any finite
+ // nonzero x will result in 1. Saturate y to those bounds to
+ // avoid underflow in the calculation of y*log2(x).
+ fld %st // y : y : x
+ fabs // |y| : y : x
+ fcompl MO(pm79) // y : x
+ fnstsw
+ sahf
+ jnc 3f
+ fstp %st(0) // pop y
+ fldl MO(pm79) // 0x1p-79 : x
+ testb $2, %dl
+ jnz 3f // y > 0
+ fchs // -0x1p-79 : x
+ jmp 3f
+
+9: /* OK, we have an integer value for y. */
popl %eax
cfi_adjust_cfa_offset (-4)
popl %edx
Modified: fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_pow.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_pow.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_pow.c Thu Nov 8 00:01:48 2012
@@ -90,6 +90,10 @@
SET_RESTORE_ROUND (FE_TONEAREST);
+ /* Avoid internal underflow for tiny y. The exact value of y does
+ not matter if |y| <= 2**-64. */
+ if (ABS (y) < 0x1p-64)
+ y = y < 0 ? -0x1p-64 : 0x1p-64;
z = log1(x,&aa,&error); /* x^y =e^(y log (X)) */
t = y*134217729.0;
y1 = t - (t-y);
Modified: fsf/trunk/libc/sysdeps/ieee754/flt-32/e_powf.c
==============================================================================
--- fsf/trunk/libc/sysdeps/ieee754/flt-32/e_powf.c (original)
+++ fsf/trunk/libc/sysdeps/ieee754/flt-32/e_powf.c Thu Nov 8 00:01:48 2012
@@ -141,6 +141,10 @@
t2 = v-(t1-u);
} else {
float s2,s_h,s_l,t_h,t_l;
+ /* Avoid internal underflow for tiny y. The exact value
+ of y does not matter if |y| <= 2**-32. */
+ if (iy < 0x2f800000)
+ SET_FLOAT_WORD (y, (hy & 0x80000000) | 0x2f800000);
n = 0;
/* take care subnormal number */
if(ix<0x00800000)
Modified: fsf/trunk/libc/sysdeps/s390/dl-procinfo.c
==============================================================================
--- fsf/trunk/libc/sysdeps/s390/dl-procinfo.c (original)
+++ fsf/trunk/libc/sysdeps/s390/dl-procinfo.c Thu Nov 8 00:01:48 2012
@@ -46,11 +46,11 @@
#if !defined PROCINFO_DECL && defined SHARED
._dl_s390_cap_flags
#else
-PROCINFO_CLASS const char _dl_s390_cap_flags[10][8]
+PROCINFO_CLASS const char _dl_s390_cap_flags[10][9]
#endif
#ifndef PROCINFO_DECL
= {
- "esan3", "zarch", "stfle", "msa", "ldisp", "eimm", "dfp", "hpage", "etf3enh", "highgprs"
+ "esan3", "zarch", "stfle", "msa", "ldisp", "eimm", "dfp", "edat", "etf3eh", "highgprs"
}
#endif
#if !defined SHARED || defined PROCINFO_DECL
@@ -62,11 +62,11 @@
#if !defined PROCINFO_DECL && defined SHARED
._dl_s390_platforms
#else
-PROCINFO_CLASS const char _dl_s390_platforms[5][7]
+PROCINFO_CLASS const char _dl_s390_platforms[7][7]
#endif
#ifndef PROCINFO_DECL
= {
- "g5", "z900", "z990", "z9-109", "z10"
+ "g5", "z900", "z990", "z9-109", "z10", "z196", "zEC12"
}
#endif
#if !defined SHARED || defined PROCINFO_DECL
Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/sys/sysctl.h
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/sys/sysctl.h (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/sys/sysctl.h Thu Nov 8 00:01:48 2012
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1999, 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1996-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
@@ -39,6 +39,14 @@
# define __user
# define __undef__LINUX_COMPILER_H
#endif
+#ifndef _UAPI_LINUX_KERNEL_H
+# define _UAPI_LINUX_KERNEL_H
+# define __undef_UAPI_LINUX_KERNEL_H
+#endif
+#ifndef _UAPI_LINUX_TYPES_H
+# define _UAPI_LINUX_TYPES_H
+# define __undef_UAPI_LINUX_TYPES_H
+#endif
#include <linux/sysctl.h>
@@ -59,6 +67,14 @@
# undef __user
# undef __undef__LINUX_COMPILER_H
#endif
+#ifdef __undef_UAPI_LINUX_KERNEL_H
+# undef _UAPI_LINUX_KERNEL_H
+# undef __undef_UAPI_LINUX_KERNEL_H
+#endif
+#ifdef __undef_UAPI_LINUX_TYPES_H
+# undef _UAPI_LINUX_TYPES_H
+# undef __undef_UAPI_LINUX_TYPES_H
+#endif
#include <bits/sysctl.h>
Modified: fsf/trunk/libc/sysdeps/x86/Makefile
==============================================================================
--- fsf/trunk/libc/sysdeps/x86/Makefile (original)
+++ fsf/trunk/libc/sysdeps/x86/Makefile Thu Nov 8 00:01:48 2012
@@ -1,4 +1,9 @@
ifeq ($(subdir),elf)
CFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\
-mno-sse -mno-mmx)
+
+tests: $(objpfx)tst-xmmymm.out
+$(objpfx)tst-xmmymm.out: ../sysdeps/x86/tst-xmmymm.sh $(objpfx)ld.so
+ @echo "Checking ld.so for SSE register use. This will take a few seconds..."
+ $(SHELL) $< $(objpfx) > $@
endif
Added: fsf/trunk/libc/sysdeps/x86/tst-xmmymm.sh
==============================================================================
--- fsf/trunk/libc/sysdeps/x86/tst-xmmymm.sh (added)
+++ fsf/trunk/libc/sysdeps/x86/tst-xmmymm.sh Thu Nov 8 00:01:48 2012
@@ -1,0 +1,100 @@
+#! /bin/bash
+# Make sure no code in ld.so uses xmm/ymm registers on x86-64.
+# Copyright (C) 2009-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/>.
+
+set -e
+
+objpfx="$1"
+
+tmp=$(mktemp ${objpfx}tst-xmmymm.XXXXXX)
+trap 'rm -f "$tmp"' 1 2 3 15
+
+# List of object files we have to test
+rtldobjs=$(readelf -W -wi ${objpfx}dl-allobjs.os |
+ awk '/^ </ { if ($5 == "(DW_TAG_compile_unit)") c=1; else c=0 } $2 == "DW_AT_name" { if (c == 1) print $NF }' |
+ sed 's,\(.*/\|\)\([_[:alnum:]-]*[.]\).$,\2os,')
+rtldobjs="$rtldobjs $(ar t ${objpfx}rtld-libc.a)"
+
+# OBJECT symbols can be ignored.
+readelf -sW ${objpfx}dl-allobjs.os ${objpfx}rtld-libc.a |
+egrep " OBJECT *GLOBAL " |
+awk '{if ($7 != "ABS") print $8 }' |
+sort -u > "$tmp"
+declare -a objects
+objects=($(cat "$tmp"))
+
+objs="dl-runtime.os"
+tocheck="dl-runtime.os"
+
+while test -n "$objs"; do
+ this="$objs"
+ objs=""
+
+ for f in $this; do
+ undef=$(nm -u "$objpfx"../*/"$f" | awk '{print $2}')
+ if test -n "$undef"; then
+ for s in $undef; do
+ for obj in ${objects[*]} "_GLOBAL_OFFSET_TABLE_"; do
+ if test "$obj" = "$s"; then
+ continue 2
+ fi
+ done
+ for o in $rtldobjs; do
+ ro=$(echo "$objpfx"../*/"$o")
+ if nm -g --defined-only "$ro" | egrep -qs " $s\$"; then
+ if ! (echo "$tocheck $objs" | fgrep -qs "$o"); then
+ echo "$o needed for $s"
+ objs="$objs $o"
+ fi
+ break;
+ fi
+ done
+ done
+ fi
+ done
+ tocheck="$tocheck$objs"
+done
+
+echo
+echo
+echo "object files needed: $tocheck"
+
+cp /dev/null "$tmp"
+for f in $tocheck; do
+ objdump -d "$objpfx"../*/"$f" |
+ awk 'BEGIN { last="" } /^[[:xdigit:]]* <[_[:alnum:]]*>:$/ { fct=substr($2, 2, length($2)-3) } /,%[xy]mm[[:digit:]]*$/ { if (last != fct) { print fct; last=fct} }' |
+ while read fct; do
+ if test "$fct" = "_dl_runtime_profile" -o "$fct" = "_dl_x86_64_restore_sse"; then
+ continue;
+ fi
+ echo "function $fct in $f modifies xmm/ymm" >> "$tmp"
+ result=1
+ done
+done
+
+if test -s "$tmp"; then
+ echo
+ echo
+ cat "$tmp"
+ result=1
+else
+ result=0
+fi
+
+rm "$tmp"
+exit $result
Propchange: fsf/trunk/libc/sysdeps/x86/tst-xmmymm.sh
------------------------------------------------------------------------------
svn:executable = *
Modified: fsf/trunk/libc/sysdeps/x86_64/Makefile
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/Makefile (original)
+++ fsf/trunk/libc/sysdeps/x86_64/Makefile Thu Nov 8 00:01:48 2012
@@ -37,11 +37,6 @@
$(objpfx)tst-quad1pie: $(objpfx)tst-quadmod1pie.o
$(objpfx)tst-quad2pie: $(objpfx)tst-quadmod2pie.o
-
-tests: $(objpfx)tst-xmmymm.out
-$(objpfx)tst-xmmymm.out: ../sysdeps/x86_64/tst-xmmymm.sh $(objpfx)ld.so
- @echo "Checking ld.so for SSE register use. This will take a few seconds..."
- $(SHELL) $< $(objpfx) > $@
endif
ifeq ($(subdir),csu)
Modified: fsf/trunk/libc/sysdeps/x86_64/fpu/e_powl.S
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/fpu/e_powl.S (original)
+++ fsf/trunk/libc/sysdeps/x86_64/fpu/e_powl.S Thu Nov 8 00:01:48 2012
@@ -38,6 +38,9 @@
.type p78,@object
p78: .byte 0, 0, 0, 0, 0, 0, 0xd0, 0x44
ASM_SIZE_DIRECTIVE(p78)
+ .type pm79,@object
+pm79: .byte 0, 0, 0, 0, 0, 0, 0, 0x3b
+ ASM_SIZE_DIRECTIVE(pm79)
.section .rodata.cst16,"aM",@progbits,16
@@ -110,9 +113,25 @@
fistpll -8(%rsp) // y : x
fildll -8(%rsp) // int(y) : y : x
fucomip %st(1),%st // y : x
- jne 3f
-
- /* OK, we have an integer value for y. */
+ je 9f
+
+ // If y has absolute value at most 0x1p-79, then any finite
+ // nonzero x will result in 1. Saturate y to those bounds to
+ // avoid underflow in the calculation of y*log2(x).
+ fldl MO(pm79) // 0x1p-79 : y : x
+ fld %st(1) // y : 0x1p-79 : y : x
+ fabs // |y| : 0x1p-79 : y : x
+ fcomip %st(1), %st // 0x1p-79 : y : x
+ fstp %st(0) // y : x
+ jnc 3f
+ fstp %st(0) // pop y
+ fldl MO(pm79) // 0x1p-79 : x
+ testb $2, %dl
+ jnz 3f // y > 0
+ fchs // -0x1p-79 : x
+ jmp 3f
+
+9: /* OK, we have an integer value for y. */
mov -8(%rsp),%eax
mov -4(%rsp),%edx
orl $0, %edx
Removed: fsf/trunk/libc/sysdeps/x86_64/tst-xmmymm.sh
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/tst-xmmymm.sh (original)
+++ fsf/trunk/libc/sysdeps/x86_64/tst-xmmymm.sh (removed)
@@ -1,100 +1,0 @@
-#! /bin/bash
-# Make sure no code in ld.so uses xmm/ymm registers on x86-64.
-# Copyright (C) 2009-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/>.
-
-set -e
-
-objpfx="$1"
-
-tmp=$(mktemp ${objpfx}tst-xmmymm.XXXXXX)
-trap 'rm -f "$tmp"' 1 2 3 15
-
-# List of object files we have to test
-rtldobjs=$(readelf -W -wi ${objpfx}dl-allobjs.os |
- awk '/^ </ { if ($5 == "(DW_TAG_compile_unit)") c=1; else c=0 } $2 == "DW_AT_name" { if (c == 1) print $NF }' |
- sed 's,\(.*/\|\)\([_[:alnum:]-]*[.]\).$,\2os,')
-rtldobjs="$rtldobjs $(ar t ${objpfx}rtld-libc.a)"
-
-# OBJECT symbols can be ignored.
-readelf -sW ${objpfx}dl-allobjs.os ${objpfx}rtld-libc.a |
-egrep " OBJECT *GLOBAL " |
-awk '{if ($7 != "ABS") print $8 }' |
-sort -u > "$tmp"
-declare -a objects
-objects=($(cat "$tmp"))
-
-objs="dl-runtime.os"
-tocheck="dl-runtime.os"
-
-while test -n "$objs"; do
- this="$objs"
- objs=""
-
- for f in $this; do
- undef=$(nm -u "$objpfx"../*/"$f" | awk '{print $2}')
- if test -n "$undef"; then
- for s in $undef; do
- for obj in ${objects[*]} "_GLOBAL_OFFSET_TABLE_"; do
- if test "$obj" = "$s"; then
- continue 2
- fi
- done
- for o in $rtldobjs; do
- ro=$(echo "$objpfx"../*/"$o")
- if nm -g --defined-only "$ro" | egrep -qs " $s\$"; then
- if ! (echo "$tocheck $objs" | fgrep -qs "$o"); then
- echo "$o needed for $s"
- objs="$objs $o"
- fi
- break;
- fi
- done
- done
- fi
- done
- tocheck="$tocheck$objs"
-done
-
-echo
-echo
-echo "object files needed: $tocheck"
-
-cp /dev/null "$tmp"
-for f in $tocheck; do
- objdump -d "$objpfx"../*/"$f" |
- awk 'BEGIN { last="" } /^[[:xdigit:]]* <[_[:alnum:]]*>:$/ { fct=substr($2, 2, length($2)-3) } /,%[xy]mm[[:digit:]]*$/ { if (last != fct) { print fct; last=fct} }' |
- while read fct; do
- if test "$fct" = "_dl_runtime_profile" -o "$fct" = "_dl_x86_64_restore_sse"; then
- continue;
- fi
- echo "function $fct in $f modifies xmm/ymm" >> "$tmp"
- result=1
- done
-done
-
-if test -s "$tmp"; then
- echo
- echo
- cat "$tmp"
- result=1
-else
- result=0
-fi
-
-rm "$tmp"
-exit $result
_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits