about summary refs log tree commit diff
path: root/ChangeLog
Commit message (Collapse)AuthorAgeFilesLines
* benchtests: Clean up extra-objsSiddhesh Poyarekar2016-04-201-0/+2
| | | | | The bench-clean target would leave behind json-lib.o. Fix up to clean up all extra-objs registered in benchtests.
* Fix up ChangeLogSiddhesh Poyarekar2016-04-201-4/+4
| | | | Looks like I have forgotten what a ChangeLog entry looks like :/
* benchtests: Update README to include instructions for bench-build targetSiddhesh Poyarekar2016-04-201-0/+3
|
* Fix up ChangeLog formattingSiddhesh Poyarekar2016-04-201-2/+2
|
* New make target to only build benchmark binariesSiddhesh Poyarekar2016-04-201-0/+7
| | | | | | | | | | | | | | | For situations where we are cross-building or where we want to avoid building on the target system, we want a way to only build benchmarks and then copy them over to the target system to run them. I have also added a simple enhancement for the 'bench' target where all benchmark binaries are built and then the benchmarks executed. Tested on arm. Makefile.in (bench-build): New target. Rules (PHONY): Add bench-build target. benchtests/Makefile (bench): Depend on bench-build. (bench-build): New target.
* Fix gprof timingSamuel Thibault2016-04-191-0/+2
| | | | | * sysdeps/mach/hurd/profil.c (__profile_frequency): Return tick frequency instead of tick length in us.
* hurd: fix profiling short-living processesSamuel Thibault2016-04-191-0/+6
| | | | | | * sysdeps/mach/hurd/profil.c (update_waiter): Initialize profil_reply_port. (profile_waiter): Do not initialize profil_reply_port.
* Move mempcpy, strcpy and stpcpy inlines to string/string-inlines.c as ↵Wilco Dijkstra2016-04-181-0/+14
| | | | | | | | | | | | | | | | | | compatibility symbols as they are no longer used. Fix compat symbols for __strpbrk inlines. [BZ #18712] * string/string-inlines.c (__STRING2_COPY_TYPE): Add, moved from string2.h. (__old_mempcpy_small): Likewise. (__old_strcpy_small): Likewise. (__old_stpcpy_small): Likewise. (__old_strpbrk_c2): Fix compat symbol name. (__old_strpbrk_c3): Likewise. * string/bits/string2.h (__STRING2_COPY_TYPE): Remove. (__mempcpy_small): Remove. (__strcpy_small): Remove. (__stpcpy_small): Remove.
* locale: iso-639: add Talossan language [BZ #19400]Robin van der Vliet2016-04-161-0/+5
|
* localedef: allow %l/%n in postal_fmt [BZ #16983]Mike Frysinger2016-04-161-0/+6
| | | | ISO 14652/30112 includes %l & %n now, so permit them in our files.
* locale: ld-telephone: update to ISO-30112 2014Mike Frysinger2016-04-161-0/+6
| | | | | | | The newer version of the standard adds %C %e %t to tel_int_fmt and tel_dom_fmt. Make sure localedef accepts them. Also change the default tel_int_fmt to include %t per the standard.
* powerpc: Optimization for strlen for POWER8.Carlos Eduardo Seo2016-04-151-0/+13
| | | | | This implementation takes advantage of vectorization to improve performance of the loop over the current strlen implementation for POWER7.
* localedata: CLDRv29: update LC_MONETARY int_curr_symbol & currency_symbolMike Frysinger2016-04-151-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This updates a few locales based on CLDR v29 data. I've verified most by hand while the rest I know are correct. For int_curr_symbol, it should be 3 characters followed by a space: ar_SS: changing SDG to SSP bem_ZM: changing ZMK to ZMW dz_BT: changing BTN to BTN # Just changing " " to "<U0020>". en_ZW: changing ZWD to USD es_SV: changing SVC to USD lv_LV: changing LVL to EUR ne_NP: changing INR to NPR pap_AW: changing ANG to AWG the_NP: changing INR to NPR Some of these require updates iso-4217.def. For currency_symbol, it should be the standard/localized symbol name: aa_DJ: changing $ to Fdj ar_SA: changing ريال to ر.س ar_SS: changing ج.س. to £ az_AZ: changing man. to ₼ bg_BG: changing лв to лв. ce_RU: changing руб to ₽ crh_UA: changing gr to ₴ cv_RU: changing t to ₽ de_CH: changing Fr. to CHF dz_BT: changing དངུལ་ཀྲམ་ to Nu. en_BW: changing Pu to P en_DK: changing ¤ to kr. en_PH: changing Php to ₱ en_ZW: changing Z$ to $ es_BO: changing $b to Bs es_DO: changing $ to RD$ es_HN: changing L. to L es_PA: changing B/ to B/. es_SV: changing ₡ to $ fil_PH: changing PhP to ₱ he_IL: changing שח to ₪ hy_AM: changing Դ to ֏ ka_GE: changing ლ to ₾ kk_KZ: changing тг to ₸ ko_KR: changing ₩ to ₩ lg_UG: changing /- to USh lv_LV: changing Ls to € mg_MG: changing AR to Ar mhr_RU: changing ТЕҤ to ₽ my_MM: changing Ks to K os_RU: changing сом to ₽ pap_AW: changing f to ƒ pap_CW: changing f to ƒ ps_AF: changing افغانۍ to ؋ rw_RW: changing Frw to FRw ru_RU: changing руб to ₽ ru_UA: changing гр to ₴ sd_IN@devanagari: changing रु to ₹ se_NO: changing ru to kr si_LK: changing ₨ to රු so_SO: changing $ to S sq_AL: changing Lek to L ti_ER: changing $ to Nfk ti_ET: changing $ to Br tl_PH: changing PhP to ₱ tr_TR: changing TL to ₺ tt_RU: changing руб to ₽ tt_RU@iqtelif: changing sum to ₽ uz_UZ: changing so'm to soʻm Note: Some of the characters might not render as they're still quite new in the Unicode database.
* Detect Intel Goldmont and Airmont processorsH.J. Lu2016-04-151-0/+5
| | | | | | | | | Updated from the model numbers of Goldmont and Airmont processors in Intel64 And IA-32 Processor Architectures Software Developer's Manual Volume 3 Revision 058. * sysdeps/x86/cpu-features.c (init_cpu_features): Detect Intel Goldmont and Airmont processors.
* Remove pre GCC3.2 optimizations from string/bits/string2.h.Wilco Dijkstra2016-04-151-0/+19
| | | | | | | | | | | | | | | | | | | * string/string.h: Use __GNUC_PREREQ(3,4) for bits/string2.h. * string/bits/string2.h (__STRING2_SMALL_GET16): Remove. (__STRING2_SMALL_GET32): Remove. (memset): Remove. (__memset_1): Remove. (__memset_gc): Remove. (__mempcpy): Remove. (mempcpy): Remove. (__mempcpy_args): Remove. (strchr): Remove. (strcpy): Remove. (strcpy_args): Remove. (__stpcpy_args): Remove. (__strcmp_cc): Remove. (__strcmp_gc): Remove. (strstr): Remove.
* Suppress GCC 6 warning about ambiguous 'else' with -WparenthesesYvan Roux2016-04-151-0/+5
|
* Fix pread consolidation on ports that require argument alignmentAdhemerval Zanella2016-04-141-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes the __ALIGNMENT_{ARG,COUNT} definition for ports that define __ASSUME_ALIGNED_REGISTER_PAIRS by including the kernel-features.h (where it is defined if the case). This was shown on arm with failing cases: FAIL: debug/tst-chk1 FAIL: debug/tst-chk2 FAIL: debug/tst-chk3 FAIL: debug/tst-chk4 FAIL: debug/tst-chk5 FAIL: debug/tst-chk6 FAIL: debug/tst-lfschk1 FAIL: debug/tst-lfschk2 FAIL: debug/tst-lfschk3 FAIL: debug/tst-lfschk4 FAIL: debug/tst-lfschk5 FAIL: debug/tst-lfschk6 FAIL: posix/tst-preadwrite FAIL: posix/tst-preadwrite64 The patches fixes it. Tested on armhf. * sysdeps/unix/sysv/linux/sysdep.h: Include kernel-features.h.
* malloc: Add missing internal_function attributes on function definitionsFlorian Weimer2016-04-141-0/+6
| | | | Fixes build on i386 after commit 29d794863cd6e03115d3670707cc873a9965ba92.
* Fix strfmon_l: Use specified locale for number formatting [BZ #19633]Stefan Liebler2016-04-141-0/+7
| | | | | | | | | | | | | | | | | | The commit 985fc132f23dbb83de76c5af9e783ef1b5900148 "strfmon_l: Use specified locale for number formatting [BZ #19633]" introduced an elf/check-abi-libc testfailure due to __printf_fp_l on architectures which use sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h. This patch uses libc_hidden_def instead of ldbl_hidden_def. The ldbl_strong_alias is removed due to the rename of ___printf_fp_l to __printf_fp_l. ChangeLog: * stdio-common/printf_fp.c (__printf_fp_l): Rename ___printf_fp_l to __printf_fp_l and remove strong alias. Use libc_hidden_def instead of ldbl_hidden_def macro.
* malloc: Remove malloc hooks from fork handlerFlorian Weimer2016-04-141-0/+17
| | | | | | | The fork handler now runs so late that there is no risk anymore that other fork handlers in the same thread use malloc, so it is no longer necessary to install malloc hooks which made a subset of malloc functionality available to the thread that called fork.
* malloc: Remove unused definitions of thread_atfork, thread_atfork_staticFlorian Weimer2016-04-141-0/+7
|
* malloc: Run fork handler as late as possible [BZ #19431]Florian Weimer2016-04-141-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, a thread M invoking fork would acquire locks in this order: (M1) malloc arena locks (in the registered fork handler) (M2) libio list lock A thread F invoking flush (NULL) would acquire locks in this order: (F1) libio list lock (F2) individual _IO_FILE locks A thread G running getdelim would use this order: (G1) _IO_FILE lock (G2) malloc arena lock After executing (M1), (F1), (G1), none of the threads can make progress. This commit changes the fork lock order to: (M'1) libio list lock (M'2) malloc arena locks It explicitly encodes the lock order in the implementations of fork, and does not rely on the registration order, thus avoiding the deadlock.
* Remove union wait [BZ #19613]Florian Weimer2016-04-141-0/+31
| | | | | | | The overloading approach in the W* macros was incompatible with integer expressions of a type different from int. Applications using union wait and these macros will have to migrate to the POSIX-specified int status type.
* Register extra test objectsAndreas Schwab2016-04-131-0/+14
| | | | | This makes sure that the extra test objects are compiled with the correct MODULE_NAME and dependencies are tracked.
* X86-64: Use non-temporal store in memcpy on large dataH.J. Lu2016-04-121-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The large memcpy micro benchmark in glibc shows that there is a regression with large data on Haswell machine. non-temporal store in memcpy on large data can improve performance significantly. This patch adds a threshold to use non temporal store which is 6 times of shared cache size. When size is above the threshold, non temporal store will be used, but avoid non-temporal store if there is overlap between destination and source since destination may be in cache when source is loaded. For size below 8 vector register width, we load all data into registers and store them together. Only forward and backward loops, which move 4 vector registers at a time, are used to support overlapping addresses. For forward loop, we load the last 4 vector register width of data and the first vector register width of data into vector registers before the loop and store them after the loop. For backward loop, we load the first 4 vector register width of data and the last vector register width of data into vector registers before the loop and store them after the loop. [BZ #19928] * sysdeps/x86_64/cacheinfo.c (__x86_shared_non_temporal_threshold): New. (init_cacheinfo): Set __x86_shared_non_temporal_threshold to 6 times of shared cache size. * sysdeps/x86_64/multiarch/memmove-avx-unaligned-erms.S (VMOVNT): New. * sysdeps/x86_64/multiarch/memmove-avx512-unaligned-erms.S (VMOVNT): Likewise. * sysdeps/x86_64/multiarch/memmove-sse2-unaligned-erms.S (VMOVNT): Likewise. (VMOVU): Changed to movups for smaller code sizes. (VMOVA): Changed to movaps for smaller code sizes. * sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S: Update comments. (PREFETCH): New. (PREFETCH_SIZE): Likewise. (PREFETCHED_LOAD_SIZE): Likewise. (PREFETCH_ONE_SET): Likewise. Rewrite to use forward and backward loops, which move 4 vector registers at a time, to support overlapping addresses and use non temporal store if size is above the threshold and there is no overlap between destination and source.
* VDSO support for MIPSMatthew Fortune2016-04-121-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for using the implementations of gettimeofday() and clock_gettime() provided by the kernel in the VDSO. The VDSO will always provide clock_gettime() as CLOCK_{REALTIME,MONOTONIC}_COARSE can be implemented regardless of platform. CLOCK_{REALTIME,MONOTONIC}, along with gettimeofday(), are only implemented on platforms which make use of either the CP0 count or GIC as their clocksource. On other platforms, the VDSO does not provide the __vdso_gettimeofday symbol, as it is never useful. The VDSO functions return ENOSYS when they encounter an unsupported request, in which case glibc should fall back to the standard syscall. Tested with upstream kernel 4.5 and QEMU emulating Malta. ./vdsotest gettimeofday bench gettimeofday: syscall: 1021 nsec/call gettimeofday: libc: 262 nsec/call gettimeofday: vdso: 174 nsec/call * sysdeps/unix/sysv/linux/mips/Makefile (sysdep_routines): Include dl-vdso. * sysdeps/unix/sysv/linux/mips/Versions: Add __vdso_clock_gettime. * sysdeps/unix/sysv/linux/mips/init-first.c: New file. * sysdeps/unix/sysv/linux/mips/libc-vdso.h: New file. * sysdeps/unix/sysv/linux/mips/mips32/sysdep.h: (INTERNAL_VSYSCALL_CALL): Define to be compatible with MIPS definitions of INTERNAL_SYSCALL_{ERROR_P,ERRNO}. (HAVE_CLOCK_GETTIME_VSYSCALL): Define. (HAVE_GETTIMEOFDAY_VSYSCALL): Define. * sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h: Likewise.
* Consolidate pwrite/pwrite64 implementationsAdhemerval Zanella2016-04-111-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch consolidates all the pwrite/pwrite64 implementation for Linux in only one (sysdeps/unix/sysv/linux/pwrite{64}.c). It also removes the syscall from the auto-generation using assembly macros. For pwrite{64} offset argument placement the new SYSCALL_LL{64} macro is used. For pwrite ports that do not define __NR_pwrite will use __NR_pwrite64 and for pwrite64 ports that dot define __NR_pwrite64 will use __NR_pwrite for the syscall. Checked on x86_64, x32, i386, aarch64, and ppc64le. * sysdeps/unix/sysv/linux/arm/pwrite.c: Remove file. * sysdeps/unix/sysv/linux/arm/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/wordsize-64/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/wordsize-64/syscalls.list (prite): Remove syscalls generation. * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h [__NR_pwrite64] (__NR_write): Remove define. * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h [__NR_pwrite64] (__NR_write): Remove define. * sysdeps/unix/sysv/linux/pwrite.c [__NR_pwrite64] (__NR_pwrite): Remove define. (__libc_pwrite): Use SYSCALL_LL macro on offset argument. * sysdeps/unix/sysv/linux/pwrite64.c [__NR_pwrite64] (__NR_pwrite): Remove define. (__libc_pwrite64): Use SYSCALL_LL64 macro on offset argument. * sysdeps/unix/sysv/linux/sh/pwrite.c: Rewrite using default Linux implementation as base. * sysdeps/unix/sysv/linux/sh/pwrite64.c: Likewise. * sysdeps/unix/sysv/linux/mips/pwrite.c: Likewise. * sysdeps/unix/sysv/linux/mips/pwrite64.c: Likewise.
* Consolidate pread/pread64 implementationsAdhemerval Zanella2016-04-111-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch consolidates all the pread/pread64 implementation for Linux in only one (sysdeps/unix/sysv/linux/pread.c). It also removes the syscall from the auto-generation using assembly macros. For pread{64} offset argument placement the new SYSCALL_LL{64} macro is used. For pread ports that do not define __NR_pread will use __NR_pread64 and for pread64 ports that dot define __NR_pread64 will use __NR_pread for the syscall. Checked on x86_64, x32, i386, aarch64, and ppc64le. * sysdeps/unix/sysv/linux/arm/pread.c: Remove file. * sysdeps/unix/sysv/linux/arm/pread64.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/pread.c: Likewise. * sysdeps/unix/sysv/linux/generic/wordsize-32/pread64.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c: Likewise, * sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c: Likewise. * sysdeps/unix/sysv/linux/wordsize-64/pread64.c: Likewise. * sysdeps/unix/sysv/linux/wordsize-64/syscalls.list (pread): Remove syscall generation. * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep.h [__NR_pread64] (__NR_pread): Remove define. * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep.h: [__NR_pread64] (__NR_pread): Likewise. * sysdeps/unix/sysv/linux/pread.c [__NR_pread64] (__NR_pread): Remove define. (__libc_pread): Use SYSCALL_LL macro on offset argument. * sysdeps/unix/sysv/linux/pread64.c [__NR_pread64] (__NR_pread): Remove define. (__libc_pread64): Use SYSCALL_LL64 macro on offset argument. * sysdeps/unix/sysv/linux/sh/pread.c: Rewrite using default Linux implementation as base. * sysdeps/unix/sysv/linux/sh/pread64.c: Likewise. * sysdeps/unix/sysv/linux/mips/pread.c: Likewise. * sysdeps/unix/sysv/linux/mips/pread64.c: Likewise.
* Consolidate off_t/off64_t syscall argument passingAdhemerval Zanella2016-04-111-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch add three new macros (SYSCALL_LL, SYSCALL_LL64, and __ASSUME_WORDSIZE64_ILP32) to use along with off_t and off64_t argument syscalls. The rationale for this change is: 1. Remove multiple implementations for the same syscall for different architectures (for instance, pread have 6 different implementations). 2. Also remove the requirement to use syscall wrappers for cancellable entrypoints. The macro usage should be used along __ALIGNMENT_ARG to follow ABI constrains for architecture where it applies. For instance, pread can be rewritten as: return SYSCALL_CANCEL (pread, fd, buf, count, __ALIGNMENT_ARG SYSCALL_LL (offset)); Another macro, SYSCALL_LL64, is provided for off64_t. The macro __ASSUME_WORDSIZE64_ILP32 is used by the ABI to define is uses 64-bit register even if ABI is ILP32 (for instance x32 and mips64-n32). The changes itself are not currently used in any implementation, so no code change is expected. * sysdeps/unix/sysv/linux/generic/sysdep.h (__ALIGNMENT_ARG): Move definition. (__ALIGNMENT_COUNT): Likewise. * sysdeps/unix/sysv/linux/sysdep.h (__ALIGNMENT_ARG): To here. (__ALIGNMENT_COUNT): Likewise. (SYSCALL_LL): New define. (SYSCALL_LL64): Likewise. * sysdeps/unix/sysv/linux/mips/kernel-features.h: [_MIPS_SIM == _ABIO32] (__ASSUME_WORDSIZE64_ILP32): Define. * sysdeps/unix/sysv/linux/x86_64/kernel-features.h: [ILP32] (__ASUME_WORDSIZE64_ILP32): Likewise.
* Define __ASSUME_ALIGNED_REGISTER_PAIRS for missing portsAdhemerval Zanella2016-04-111-0/+9
| | | | | | | | | | | | | | | | This patch defines __ASSUME_ALIGNED_REGISTER_PAIRS for the missing ports that require 64-bit value (e.g., long long) to be aligned to an even register pair in argument passing. No code change is expected, tested with builds for powerpc32, mips-o32, and armhf. * sysdeps/unix/sysv/linux/arm/kernel-features.h (__ASSUME_ALIGNED_REGISTER_PAIRS): Define. * sysdeps/unix/sysv/linux/mips/kernel-features.h [_MIPS_SIM == _ABIO32] (__ASSUME_ALIGNED_REGISTER_PAIRS): Likewise. * sysdeps/unix/sysv/linux/powerpc/kernel-features.h [!__powerpc64__] (__ASSUME_ALIGNED_REGISTER_PAIRS): Likewise.
* nss_dns: Fix assertion failure in _nss_dns_getcanonname_r [BZ #19865]Florian Weimer2016-04-111-0/+6
|
* Add missing bug number to ChangeLogFlorian Weimer2016-04-111-0/+1
|
* Fix build with HAVE_AUX_VECTORSamuel Thibault2016-04-111-0/+3
| | | | | | * sysdeps/unix/sysv/linux/ldsodefs.h (HAVE_AUX_VECTOR): Define before including <ldsodefs.h>. * sysdeps/nacl/ldsodefs.h (HAVE_AUX_VECTOR): Likewise.
* Fix crash on getauxval call without HAVE_AUX_VECTORSamuel Thibault2016-04-101-0/+7
| | | | | | | * sysdeps/generic/ldsodefs.h (struct rtld_global_ro) [!HAVE_AUX_VECTOR]: Do not define _dl_auxv field. * misc/getauxval.c (__getauxval) [!HAVE_AUX_VECTOR]: Do not go through GLRO(dl_auxv) list.
* Allow overriding of CFLAGS as well as CPPFLAGS for rtld.Nick Alcock2016-04-091-0/+6
| | | | | We need this to pass -fno-stack-protector to all the pieces of rtld in non-elf/ directories.
* When disabling SSE, make sure -fpmath is not set to use SSE eitherKhem Raj2016-04-091-0/+6
| | | | | | | | | | | | | | | This fixes errors when we inject sse options through CFLAGS and now that we have -Werror turned on by default this warning turns into an error on x86: $ gcc -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -x c /dev/null -S -mno-sse -mno-mmx /dev/null:1:0: warning: SSE instruction set disabled, using 387 arithmetics Where as: $ gcc -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -x c /dev/null -S -mno-sse -mno-mmx -mfpmath=387 Generates no warnings.
* configure: fix `test ==` usageMike Frysinger2016-04-091-0/+7
| | | | | POSIX defines the = operator, but not ==. Fix the few places where we incorrectly used ==.
* localedata: iw_IL: delete old/deprecated locale [BZ #16137]Mike Frysinger2016-04-081-0/+9
| | | | | | | | From the bug: Obsolete locale. The ISO-639 code for Hebrew was changed from 'iw' to 'he' in 1989, according to Bruno Haible on libc-alpha 2003-09-01. Reported-by: Chris Leonard <cjlhomeaddress@gmail.com>
* Fix limits.h NL_NMAX namespace (bug 19929).Joseph Myers2016-04-081-0/+6
| | | | | | | | | | | | | | | | | | bits/xopen_lim.h (included by limits.h if __USE_XOPEN) defines NL_NMAX, but this constant was removed in the 2008 edition of POSIX so should not be defined in that case. This patch duly disables that define for __USE_XOPEN2K8. It remains enabled for __USE_GNU to avoid affecting sysconf (_SC_NL_NMAX), the implementation of which uses "#ifdef NL_NMAX". Tested for x86_64 and x86 (testsuite, and that installed stripped shared libraries are unchanged by the patch). [BZ #19929] * include/bits/xopen_lim.h (NL_NMAX): Do not define if [__USE_XOPEN2K8 && !__USE_GNU]. * conform/Makefile (test-xfail-XOPEN2K8/limits.h/conform): Remove variable.
* Fix termios.h XCASE namespace (bug 19925).Joseph Myers2016-04-081-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | bits/termios.h (various versions under sysdeps/unix/sysv/linux) defines XCASE if defined __USE_MISC || defined __USE_XOPEN. This macro was removed in the 2001 edition of POSIX, and is not otherwise reserved, so should not be defined for 2001 and later versions of POSIX. This patch fixes the conditions accordingly (leaving the macro defined for __USE_MISC, so still in the default namespace). Tested for x86_64 and x86 (testsuite, and that installed shared libraries are unchanged by the patch). [BZ #19925] * sysdeps/unix/sysv/linux/alpha/bits/termios.h (XCASE): Do not define if [!__USE_MISC && __USE_XOPEN2K]. * sysdeps/unix/sysv/linux/bits/termios.h (XCASE): Likewise. * sysdeps/unix/sysv/linux/mips/bits/termios.h (XCASE): Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/termios.h (XCASE): Likewise. * sysdeps/unix/sysv/linux/sparc/bits/termios.h (XCASE): Likewise. * conform/Makefile (test-xfail-XOPEN2K/termios.h/conform): Remove variable. (test-xfail-XOPEN2K8/termios.h/conform): Likewise.
* powerpc: Add optimized P8 strspnPaul E. Murphy2016-04-071-0/+15
| | | | | | | This utilizes vectors and bitmasks. For small needle, large haystack, the performance improvement is upto 8x. For short strings (0-4B), the cost of computing the bitmask dominates, and is a tad slower.
* hsearch_r: Include <limits.h>Florian Weimer2016-04-071-0/+4
| | | | It is needed for UINT_MAX.
* scratch_buffer_set_array_size: Include <limits.h>Florian Weimer2016-04-071-0/+4
| | | | It is needed for CHAR_BIT.
* X86-64: Prepare memmove-vec-unaligned-erms.SH.J. Lu2016-04-061-0/+11
| | | | | | | | | | | | | | Prepare memmove-vec-unaligned-erms.S to make the SSE2 version as the default memcpy, mempcpy and memmove. * sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S (MEMCPY_SYMBOL): New. (MEMPCPY_SYMBOL): Likewise. (MEMMOVE_CHK_SYMBOL): Likewise. Replace MEMMOVE_SYMBOL with MEMMOVE_CHK_SYMBOL on __mempcpy_chk symbols. Replace MEMMOVE_SYMBOL with MEMPCPY_SYMBOL on __mempcpy symbols. Provide alias for __memcpy_chk in libc.a. Provide alias for memcpy in libc.a and ld.so.
* X86-64: Prepare memset-vec-unaligned-erms.SH.J. Lu2016-04-061-0/+9
| | | | | | | | | | | | Prepare memset-vec-unaligned-erms.S to make the SSE2 version as the default memset. * sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S (MEMSET_CHK_SYMBOL): New. Define if not defined. (__bzero): Check VEC_SIZE == 16 instead of USE_MULTIARCH. Disabled fro now. Replace MEMSET_SYMBOL with MEMSET_CHK_SYMBOL on __memset_chk symbols. Properly check USE_MULTIARCH on __memset symbols.
* Add memcpy/memmove/memset benchmarks with large dataH.J. Lu2016-04-061-0/+9
| | | | | | | | | | | Add memcpy, memmove and memset benchmarks with large data sizes. * benchtests/Makefile (string-benchset): Add memcpy-large, memmove-large and memset-large. * benchtests/bench-memcpy-large.c: New file. * benchtests/bench-memmove-large.c: Likewise. * benchtests/bench-memmove-large.c: Likewise. * benchtests/bench-string.h (TIMEOUT): Don't redefine.
* Mention Bug in ChangeLog for S390: Save and restore fprs/vrs while resolving ↵Stefan Liebler2016-04-061-0/+1
| | | | | | | symbols. The Bugzilla 19916 is added to the ChangeLog for commit 4603c51ef7989d7eb800cdd6f42aab206f891077.
* Force 32-bit displacement in memset-vec-unaligned-erms.SH.J. Lu2016-04-051-0/+5
| | | | | * sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S: Force 32-bit displacement to avoid long nop between instructions.
* Add a comment in memset-sse2-unaligned-erms.SH.J. Lu2016-04-051-0/+5
| | | | | * sysdeps/x86_64/multiarch/memset-sse2-unaligned-erms.S: Add a comment on VMOVU and VMOVA.
* strfmon_l: Use specified locale for number formatting [BZ #19633]Florian Weimer2016-04-041-0/+18
|