aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-08-17__opensock: Remove internal_function attributeFlorian Weimer4-3/+9
2017-08-16Fix sigval namespace (bug 21944).Joseph Myers10-20/+94
XPG4.2 defines the siginfo_t type, but not union sigval or its contents (which were added in the 1993 edition of POSIX.1), resulting in namespace violations for sigval, sival_int and sival_ptr for signal.h and sys/wait.h for that standard because those headers incorrectly expose those names in that case. This patch fixes this problem. The public type in this case is union sigval, but various places in the headers use the sigval_t name for it; direct uses of union sigval are already properly guarded or in headers not in XPG4.2. Now, sigval_t, although not a standard name, does seem to be widely used outside glibc. The approach taken by this patch is to make installed headers use the name __sigval_t instead. __sigval_t is then defined to either union sigval or union __sigval (where union __sigval has __-prefixed member names as well), depending on whether there are any namespace issues with the union sigval name and its members. In the case where union __sigval is used, sigval_t is not defined at all, to avoid the problem of sigval_t having a C++ mangled name that depends on feature test macros. sigval_t is still defined by signal.h if __USE_MISC (reflecting the nonstandard nature of that name). Tested for x86_64. [BZ #21944] * signal/bits/types/__sigval_t.h: New file. * signal/Makefile (headers): Add bits/types/__sigval_t.h. * signal/bits/types/sigval_t.h: Include <bits/types/__sigval_t.h> and define sigval_t using __sigval_t. * include/bits/types/__sigval_t.h: New file. * bits/types/sigevent_t.h: Include <bits/types/__sigval_t.h> instead of <bits/types/__sigval_t.h>. (struct sigevent): Use __sigval_t instead of sigval_t. * bits/types/siginfo_t.h: Include <bits/types/__sigval_t.h> instead of <bits/types/__sigval_t.h>. (siginfo_t): Use __sigval_t instead of sigval_t. * sysdeps/unix/sysv/linux/bits/types/sigevent_t.h: Include <bits/types/__sigval_t.h> instead of <bits/types/__sigval_t.h>. (struct sigevent): Use __sigval_t instead of sigval_t. * sysdeps/unix/sysv/linux/bits/types/siginfo_t.h: Include <bits/types/__sigval_t.h> instead of <bits/types/__sigval_t.h>. (siginfo_t): Use __sigval_t instead of sigval_t. * signal/signal.h [__USE_MISC]: Include <bits/types/sigval_t.h>.
2017-08-16Remove "[Add new features here]" for 2.27H.J. Lu2-2/+4
* NEWS: Remove "[Add new features here]" for 2.27.
2017-08-16Allow abort PLT references in libc.so for SH.Joseph Myers2-0/+7
Given my patch <https://gcc.gnu.org/ml/gcc-patches/2017-08/msg00965.html> for the ICEs building a glibc string function test for SH, the testsuite can build completely for SH with GCC 7 and mainline. However, there is a test failure that does not appear for GCC 6: check-localplt fails because of an abort PLT reference in libc.so. Given the lack of a trap insn pattern for SH, it seems unavoidable that the compiler might sometimes generate abort calls, and such abort calls (generated from __builtin_trap when there is no trap insn pattern) will be unaffected by the normal mapping to __GI_abort for calls within glibc. Thus, this patch allows (but does not require) an abort PLT reference in libc.so for SH. Tested for sh4-linux-gnu with build-many-glibcs.py (GCC 7, with my patch applied). * sysdeps/unix/sysv/linux/sh/localplt.data: Allow abort in libc.so.
2017-08-16Mention x86-64 FMA optimization in NEWSH.J. Lu2-0/+7
* NEWS: Mention x86-64 FMA optimization.
2017-08-16x86-64: Optimize e_expf with FMA [BZ #21912]H.J. Lu5-0/+254
FMA optimized e_expf improves performance by more than 50% on Skylake. [BZ #21912] * sysdeps/x86_64/fpu/multiarch/Makefile (libm-sysdep_routines): Add e_expf-fma. * sysdeps/x86_64/fpu/multiarch/e_expf-fma.S: New file. * sysdeps/x86_64/fpu/multiarch/e_expf.c: Likewise. * sysdeps/x86_64/fpu/multiarch/ifunc-fma.h: Likewise.
2017-08-16Add ChangeLog reference to bug 16750/CVE-2009-5064Florian Weimer2-1/+7
2017-08-16ldd: never run file directlyAndreas Schwab2-13/+5
2017-08-15x86-64: Align L(SP_RANGE)/L(SP_INF_0) to 8 bytes [BZ #21955]H.J. Lu2-2/+8
sysdeps/x86_64/fpu/e_expf.S has lea L(SP_RANGE)(%rip), %rdx /* load over/underflow bound */ cmpl (%rdx,%rax,4), %ecx /* |x|<under/overflow bound ? */ ... /* Here if |x| is Inf */ lea L(SP_INF_0)(%rip), %rdx /* depending on sign of x: */ movss (%rdx,%rax,4), %xmm0 /* return zero or Inf */ ret ... .section .rodata.cst8,"aM",@progbits,8 ... .p2align 2 L(SP_RANGE): /* single precision overflow/underflow bounds */ .long 0x42b17217 /* if x>this bound, then result overflows */ .long 0x42cff1b4 /* if x<this bound, then result underflows */ .type L(SP_RANGE), @object ASM_SIZE_DIRECTIVE(L(SP_RANGE)) .p2align 2 L(SP_INF_0): .long 0x7f800000 /* single precision Inf */ .long 0 /* single precision zero */ .type L(SP_INF_0), @object ASM_SIZE_DIRECTIVE(L(SP_INF_0)) Since L(SP_RANGE) and L(SP_INF_0) are in .rodata.cst8 section, they must be aligned to 8 bytes. [BZ #21955] * sysdeps/x86_64/fpu/e_expf.S (L(SP_RANGE)): Aligned to 8 bytes. (L(SP_INF_0)): Likewise.
2017-08-15gmon: Run tst-gmon-prof only for run-built-tests=yesFlorian Weimer2-0/+7
2017-08-15aio: Remove support for BROKEN_THREAD_SIGNALSFlorian Weimer6-57/+14
This was originally added to support LinuxThreads and is not needed for NPTL.
2017-08-15gmon: Add test for basic mcount/gprof functionalityFlorian Weimer8-2/+149
2017-08-15powerpc: Add values from Linux 4.8 to <elf.h>Gustavo Romero2-0/+32
Add powerpc specific note sections available since Linux v4.8. * elf/elf.h A (NT_PPC_TAR): New macro. (NT_PPC_PPR): Likewise. (NT_PPC_DSCR): Likewise. (NT_PPC_EBB): Likewise. (NT_PPC_PMU): Likewise. (NT_PPC_TM_CGPR): Likewise. (NT_PPC_TM_CFPR): Likewise. (NT_PPC_TM_CVMX): Likewise. (NT_PPC_TM_CVSX): Likewise. (NT_PPC_TM_SPR): Likewise. (NT_PPC_TM_CTAR): Likewise. (NT_PPC_TM_CPPR): Likewise. (NT_PPC_TM_CDSCR): Likewise.
2017-08-15i386: Replace internal_function attribute for __mcount_internalFlorian Weimer2-3/+11
__mcount_internal is called from assembler code. Use an explicit regparm attribute to pass both arguments in registers, to match what used to happen with internal_function before commit fbdc1e3e8de7f49e439b6e274d3e7e07da78416e (i386: Do not set internal_function).
2017-08-15S390: Add new s390 platform z14.Stefan Liebler3-3/+8
The new IBM z14 is added to platform string array. The macro _DL_PLATFORMS_COUNT is incremented. ChangeLog: * sysdeps/s390/dl-procinfo.c (_dl_s390_cap_flags): Add z14. * sysdeps/s390/dl-procinfo.h (_DL_PLATFORMS_COUNT): Increased.
2017-08-14Change language name in LC_IDENTIFICATION of bn_BD and bn_IN from ↵Mike FABIAN3-7/+14
“Bengali” to “Bangla” [BZ #14925] * locales/bn_BD (LC_IDENTIFICATION): Change language name in “title” and “language” from Bengali to Bangla. * locales/bn_IN (LC_IDENTIFICATION): Likewise.
2017-08-14Use “copy "i18n"” in km_KH localeMike FABIAN2-824/+6
The custom stuff which was in LC_CTYPE of the km_KH locale seems to be a very incomplete subset of what one gets by using “copy "i18n"”. I cannot find anything special there which is not in “copy "i18n"”, only lots of stuff which is missing. [BZ #20008] * locales/km_KH (LC_CTYPE): Use “copy "i18n"”.
2017-08-14conformtest: Disable si_value expectation for XPG42.Joseph Myers2-0/+7
This patch corrects the conform/ expectations for sys/wait.h not to expect si_value for XPG4.2. Tested for x86_64. * conform/data/sys/wait.h-data (si_value): Do not expect for XPG42.
2017-08-14NSS: Replace exported NSS lookup functions with stubs [BZ #21962]Florian Weimer13-50/+86
Commit 384ca551743318bd9c9e24a496d6397f2e3f2a49 from 2007 added this to nss/XXX-lookup.c: +#ifndef NO_COMPAT +int +internal_function attribute_compat_text_section +DB_COMPAT_FCT (service_user **ni, const char *fct_name, void **fctp) +{ + return DB_LOOKUP_FCT (ni, fct_name, NULL, fctp); +} +#endif That is, it adds a pseudo-compat function with an internal_function attribute. The function it was supposed to replace did not have the attribute: extern int DB_LOOKUP_FCT (service_user **ni, const char *fct_name, - void **fctp) internal_function; + const char *fct2_name, void **fctp) + internal_function; This changed the calling convention on i386 for the following functions in the public ABI: __nss_passwd_lookup __nss_group_lookup __nss_hosts_lookup This commit replaces the functions with always-failing stubs, with true compat symbols. Due to a happy accident, the calling convention of the stub is identical for the internal_function and non-internal_function case on i386. In addition, this commit auto-generates the __nss_*_lookup2 function declarations as part of <nsswitch.h>.
2017-08-14Use two letter abbreviations in abday in all German locales.Mike FABIAN7-24/+34
[BZ #20482] * locales/de_AT (LC_TIME): Use 2 letter abbreviations in abday. * locales/de_BE (LC_TIME): Use 2 letter abbreviations in abday. * locales/de_CH (LC_TIME): Use 2 letter abbreviations in abday. * locales/de_DE (LC_TIME): Use readable ASCII in abday. * locales/de_IT (LC_TIME): Use readable ASCII in abday. * locales/de_LU (LC_TIME): Use 2 letter abbreviations in abday.
2017-08-14Fix thousands_sep and grouping and use readable ASCII for decimal_point in ↵Julen Ruiz Aizpuru2-3/+9
eu_ES locale [BZ #12349] * locales/eu_ES (LC_NUMERIC): Fix thousands_sep and grouping and use readable ASCII for decimal_point.
2017-08-14posix: Fix mmap for m68k and ia64 (BZ#21908)Adhemerval Zanella5-5/+47
Default semantic for mmap2 syscall is to take the offset in 4096-byte units. However m68k and ia64 mmap2 implementation take in the configured pageunit units and for both architecture it can be different values. This patch fixes the m68k runtime discover of mmap2 offset unit and adds the ia64 definition to find it at runtime. Checked the basic tst-mmap and tst-mmap-offset on m68k (the system is configured with 4k, so current code is already passing on this system) and a sanity check on x86_64-linux-gnu (which should not be affected by this change). Sergei also states that ia64 loader now work correctly with this change. Adhemerval Zanella <adhemerval.zanella@linaro.org> Sergei Trofimovich <slyfox@inbox.ru> * sysdeps/unix/sysv/linux/m68k/mmap_internal.h (MMAP2_PAGE_SHIFT): Rename to MMAP2_PAGE_UNIT. * sysdeps/unix/sysv/linux/mmap.c: Include mmap_internal iff __OFF_T_MATCHES_OFF64_T is not defined. * sysdeps/unix/sysv/linux/mmap_internal.h (page_unit): Declare as uint64_t. (MMAP2_PAGE_UNIT) [MMAP2_PAGE_UNIT == -1]: Redefine to page_unit. (page_unit) [MMAP2_PAGE_UNIT != -1]: Remove definition.
2017-08-14i386: Do not set internal_functionFlorian Weimer4-15/+7
All calls to functions with the internal_function attribute have been removed from assembler implementations, which means that the definition of internal_function can be changed at the C level without causing ABI issues with assembler code. _dl_fixup still uses a regparm calling convention on i386, but this is controlled through ARCH_FIXUP_ATTRIBUTE, not internal_function.
2017-08-14_dl_init: Remove internal_function attributeFlorian Weimer4-6/+14
The function is called from the i386 startup code, which needs minor adjustments due to the changed ABI.
2017-08-14_dl_start: Remove internal_function attributeFlorian Weimer3-2/+10
The i386 startup code needs adjusting because it calls the function and the ABI has changed.
2017-08-14_dl_fini: Remove internal_function attributeFlorian Weimer3-2/+6
Assembler code passes the address of _dl_fini to __libc_start_main, whose function pointer argument lacks the attribute. This means that calls could use the wrong ABI. Fortunately, for zero-parameter void-returning functions, internal_function does not change ABI on i386 (the only architecture which uses internal_function), so this inconsistency was harmless (which is why it had not been noticed so far).
2017-08-14x86: Add IBT/SHSTK bits to cpu-featuresH.J. Lu3-0/+21
Add IBT/SHSTK bits to cpu-features for Shadow Stack in Intel Control-flow Enforcement Technology (CET) instructions: https://software.intel.com/sites/default/files/managed/4d/2a/control-flow-enforcement-technology-preview.pdf * sysdeps/x86/cpu-features.h (bit_cpu_BIT): New. (bit_cpu_SHSTK): Likewise. (index_cpu_IBT): Likewise. (index_cpu_SHSTK): Likewise. (reg_IBT): Likewise. (reg_SHSTK): Likewise. * sysdeps/x86/cpu-tunables.c (TUNABLE_CALLBACK (set_hwcaps)): Handle index_cpu_IBT and index_cpu_SHSTK.
2017-08-14Fix spelling mistake in fr.poMike FABIAN2-2/+7
[BZ #19982] * po/fr.po: Fix spelling mistake.
2017-08-13ld.so: Remove internal_function attribute from various functionsFlorian Weimer7-22/+23
These functions are invoked from other DSOs and should therefore use the standard calling convention.
2017-08-13Remove internal_function attribute from string-to-float functionsFlorian Weimer3-15/+15
These are called across DSO boundaries and should therefore use the standard calling convention.
2017-08-13NPTL: Remove internal_function from stack marking functionsFlorian Weimer7-9/+18
These are called across DSO boundaries and therefore should use the ABI calling convention.
2017-08-13__netlink_assert_response: Remove internal_function attributeFlorian Weimer3-3/+8
This function is called from nscd and should not use a non-standard calling convention.
2017-08-13__libc_rpc_getport: Remove internal_function attributeFlorian Weimer3-3/+7
This function has a hidden alias and is therefore expected to be called across DSO boundaries.
2017-08-13NSS: Do not use internal_function for functions with hidden aliasesFlorian Weimer9-25/+24
Such functions are called across DSO boundaries and should not use a non-standard ABI.
2017-08-13__fortify_fail: Remove internal_function attributeFlorian Weimer5-5/+18
__fortify_fail is called across DSO boundaries, so it should not use a non-standard calling convention.
2017-08-12Adapt test case data to the changes in the thousands separatorsMike FABIAN5-11/+22
[BZ #20756] * localedata/tst-langinfo.sh: Adapt test case data. * stdlib/tst-strfmon_l.c: Likewise. * stdlib/tst-strtod4.c: Likewise. * stdlib/tst-strtod5i.c: Likewise.
2017-08-12Use U+202F instead of U+2009 as thousands_sep for es_MXMike FABIAN2-1/+5
See also [BZ #20756]. U+202F NARROW NO-BREAK SPACE: a narrow form of a no-break space, typically the width of a thin space or a mid space. U+2009 THIN SPACE.
2017-08-12Locales: Use Unicode wise thousands separatorStanislav Brabec48-65/+133
Many languages use small gap as thousands separator. Thousands separator should not be a plain space, but a narrow space. And additionally, it is not allowed to wrap line in the middle of the number. Locale data were created in a deep age of 8-bit encodings, so most of them use space (incorrect: it allows wrapping the line in the middle of the number), or NBSP (better, but typographically incorrect: space between groups is too wide). Now UNICODE is widely supported, so we should leave legacy characters in favor of correct UNICODE character. UNICODE has a dedicated character for this purpose: NNBSP U+202F NARROW NO-BREAK SPACE: a narrow form of a no-break space, typically the width of a thin space or a mid space The NNBSP exists since Unicode 3.0. Use of NNBSP will prevent line wrapping in the midle of number and improve readability of numbers. [BZ #20756] * locales/aa_DJ (LC_MONETARY): Replace space by NNBSP as thousands separator. * locales/az_AZ (LC_MONETARY): Likewise. * locales/be_BY (LC_MONETARY): Likewise. * locales/be_BY@latin (LC_MONETARY): Likewise. * locales/bg_BG (LC_MONETARY): Likewise. * locales/bs_BA (LC_MONETARY): Likewise. * locales/ce_RU (LC_MONETARY): Likewise. * locales/crh_UA (LC_MONETARY): Likewise. * locales/cs_CZ (LC_MONETARY): Likewise. * locales/cs_CZ (LC_NUMERIC): Likewise. * locales/cv_RU (LC_MONETARY): Likewise. * locales/de_AT (LC_MONETARY): Likewise. * locales/eo (LC_MONETARY): Likewise. * locales/es_CR (LC_MONETARY): Likewise. * locales/es_CR (LC_NUMERIC): Likewise. * locales/es_CU (LC_MONETARY): Likewise. * locales/et_EE (LC_MONETARY): Likewise. * locales/et_EE (LC_NUMERIC): Likewise. * locales/fi_FI (LC_MONETARY): Likewise. * locales/fi_FI (LC_NUMERIC): Likewise. * locales/fr_CA (LC_MONETARY): Likewise. * locales/fr_FR (LC_MONETARY): Likewise. * locales/fr_FR (LC_NUMERIC): Likewise. * locales/fr_LU (LC_MONETARY): Likewise. * locales/fr_LU (LC_NUMERIC): Likewise. * locales/hr_HR (LC_MONETARY): Likewise. * locales/ht_HT (LC_NUMERIC): Likewise. * locales/kk_KZ (LC_MONETARY): Likewise. * locales/kk_KZ (LC_NUMERIC): Likewise. * locales/ky_KG (LC_MONETARY): Likewise. * locales/ky_KG (LC_NUMERIC): Likewise. * locales/lv_LV (LC_MONETARY): Likewise. * locales/lv_LV (LC_NUMERIC): Likewise. * locales/mg_MG (LC_MONETARY): Likewise. * locales/mhr_RU (LC_MONETARY): Likewise. * locales/mk_MK (LC_MONETARY): Likewise. * locales/mk_MK (LC_NUMERIC): Likewise. * locales/mn_MN (LC_MONETARY): Likewise. * locales/nb_NO (LC_MONETARY): Likewise. * locales/nb_NO (LC_NUMERIC): Likewise. * locales/nl_AW (LC_MONETARY): Likewise. * locales/nl_NL (LC_MONETARY): Likewise. * locales/nn_NO (LC_MONETARY): Likewise. * locales/os_RU (LC_MONETARY): Likewise. * locales/pap_AW (LC_MONETARY): Likewise. * locales/pap_CW (LC_MONETARY): Likewise. * locales/ru_RU (LC_MONETARY): Likewise. * locales/ru_RU (LC_NUMERIC): Likewise. * locales/ru_UA (LC_MONETARY): Likewise. * locales/sk_SK (LC_MONETARY): Likewise. * locales/sk_SK (LC_NUMERIC): Likewise. * locales/sl_SI (LC_MONETARY): Likewise. * locales/sl_SI (LC_NUMERIC): Likewise. * locales/sq_MK (LC_MONETARY): Likewise. * locales/sv_SE (LC_MONETARY): Likewise. * locales/sv_SE (LC_NUMERIC): Likewise. * locales/tg_TJ (LC_MONETARY): Likewise. * locales/tt_RU (LC_MONETARY): Likewise. * locales/tt_RU@iqtelif (LC_MONETARY): Likewise. * locales/uk_UA (LC_MONETARY): Likewise. * locales/uk_UA (LC_NUMERIC): Likewise. * locales/unm_US (LC_MONETARY): Likewise. * locales/unm_US (LC_NUMERIC): Likewise. * locales/wo_SN (LC_MONETARY): Likewise.
2017-08-11assert: Suppress pedantic warning caused by statement expressionFlorian Weimer2-3/+16
2017-08-11benchtests: Print json in memmove benchmarkSiddhesh Poyarekar3-41/+91
Make the memmove benchmarks (bench-memmove and bench-memmove-large) print their output in JSON so that they can be evaluated using the compare_strings.py script. * benchtests/bench-memmove-large.c: Print output in JSON format. * benchtests/bench-memmove.c: Likewise.
2017-08-11benchtests: Remove verification runs from benchmark testsSiddhesh Poyarekar10-154/+14
The test run is unnecessary and interferes with the benchmark. The tests are done during make check, so they're unnecessary here. * benchtests/bench-memccpy.c (do_one_test): Remove checks. * benchtests/bench-memchr.c (do_one_test): Likewise. * benchtests/bench-memcpy-large.c (do_one_test): Likewise. * benchtests/bench-memcpy.c (do_one_test): Likewise. * benchtests/bench-memmove-large.c (do_one_test): Likewise. * benchtests/bench-memmove.c (do_one_test): Likewise. * benchtests/bench-memset-large.c (do_one_test): Likewise. * benchtests/bench-memset.c (do_one_test): Likewise. * benchtests/bench-string.h (test_init): Remove memsets.
2017-08-10manual: Rewrite the section on widths of integer types.Rical Jasan2-40/+48
The manual contradicted itself by saying the number of bits in an integer type needed to be computed, and then listing a number of macros that later standards provided for exactly that. The entire section has been reworked to provide those macros first, while preserving the documentation of CHAR_BIT and the associated examples within that context. * manual/lang.texi (Computing the Width of an Integer Data Type): Rename section to "Width of an Integer Type". Remove inaccurate statement regarding lack of C language facilities for determining width of integer types, and reorder content to improve flow and context of discussion.
2017-08-10manual: Update @standards for [__]va_copy.Rical Jasan2-6/+15
The ISO version in which va_copy was introduced is made explicit, and __va_copy is given @standards. The description is updated to be more clear about the origins of each macro, and the reader is informed these macros are now provided by the compiler (information previously embedded in a Texinfo @comment). * lang.texi (va_copy): Change standard from ISO to C99. (__va_copy): Add standard and header annotation. Update description for clarity of origins and current use.
2017-08-10powerpc: Restrict xssqrtqp operands to Vector Registers (bug 21941)Gabriel F. T. Gomes3-2/+11
POWER ISA 3.0 introduces the xssqrtqp instructions, which expects operands to be in Vector Registers (Altivec/VMX), even though this instruction belongs to the Vector-Scalar Instruction Set. In GCC's Extended Assembly for POWER, the 'wq' register constraint is provided for use with IEEE 754 128-bit floating-point values. However, this constraint does not limit the register allocation to Vector Registers (Altivec/VMX) and could assign a Vector-Scalar Register (VSX) to the operands of the instruction. This patch changes the register constraint used in sqrtf128 from 'wq' to 'v', in order to request a Vector Register (Altivec/VMX) for use with the xssqrtqp instruction. Tested for powerpc64le and --with-cpu=power9. [BZ #21941] * sysdeps/powerpc/fpu/math_private.h (__ieee754_sqrtf128): Since xssqrtqp requires operands to be in Vector Registers (Altivec/VMX), replace the register constraint 'wq' with 'v'. * sysdeps/powerpc/powerpc64le/power9/fpu/e_sqrtf128.c (__ieee754_sqrtf128): Likewise.
2017-08-10[AArch64] Optimized memcmp.Wilco Dijkstra2-105/+76
This is an optimized memcmp for AArch64. This is a complete rewrite using a different algorithm. The previous version split into cases where both inputs were aligned, the inputs were mutually aligned and unaligned using a byte loop. The new version combines all these cases, while small inputs of less than 8 bytes are handled separately. This allows the main code to be sped up using unaligned loads since there are now at least 8 bytes to be compared. After the first 8 bytes, align the first input. This ensures each iteration does at most one unaligned access and mutually aligned inputs behave as aligned. After the main loop, process the last 8 bytes using unaligned accesses. This improves performance of (mutually) aligned cases by 25% and unaligned by >500% (yes >6 times faster) on large inputs. * sysdeps/aarch64/memcmp.S (memcmp): Rewrite of optimized memcmp.
2017-08-10ld.so: Introduce struct dl_exceptionFlorian Weimer29-239/+529
This commit separates allocating and raising exceptions. This simplifies catching and re-raising them because it is no longer necessary to make a temporary, on-stack copy of the exception message.
2017-08-10__inet6_scopeid_pton: Remove attribute_hidden, internal_functionFlorian Weimer3-3/+9
The hidden attribute was overridden by libc_hidden_proto on GNU/Linux. It is incorrect because the function is used from nscd. internal_function is not supposed to be used across DSO boundaries, so this commit removes it (again, due to the use in nscd).
2017-08-10malloc: Avoid optimizer warning with GCC 7 and -O3Florian Weimer2-4/+21
2017-08-10Fix stdlib/tst-strfmon_l.c test case to agree with the changes in Indian ↵Mike FABIAN3-11/+18
monetary formatting The test cases should expose non-standard grouping and the trailing space after the currency sign. After the changes to the Indian monetary formatting, the Indian formatting still shows the non-standard grouping. To test the trailing space after the currency sign I chose the hr_HR locale. See: commit 82b3124268bec0609b337dd993e771c93e44cbf2 Author: Akhilesh Kumar <akhilesh.k@samsung.com> Remove redundant data for LC_MONETARY for Indian locales
2017-08-10Remove redundant data for LC_MONETARY for Indian localesAkhilesh Kumar21-342/+60
Reference is taken from https://en.wikipedia.org/wiki/Indian_numbering_system https://en.wikipedia.org/wiki/Indian_rupee CLDR has the currency format pattern “¤#,##,##0.00”. [BZ #21836] * locales/ar_IN (LC_MONETARY) : copy "hi_IN" * locales/as_IN (LC_MONETARY) : copy "hi_IN" * locales/bhb_IN (LC_MONETARY): copy "hi_IN" * locales/bn_IN (LC_MONETARY) : copy "hi_IN" * locales/en_IN (LC_MONETARY) : copy "hi_IN" * locales/gu_IN (LC_MONETARY) : copy "hi_IN" * locales/hi_IN (LC_MONETARY) : Fix mon_grouping, p_sep_by_space and n_sep_by_space * locales/kn_IN (LC_MONETARY) : copy "hi_IN" * locales/kok_IN(LC_MONETARY) : copy "hi_IN" * locales/ks_IN (LC_MONETARY) : copy "hi_IN" * locales/ml_IN (LC_MONETARY) : copy "hi_IN" * locales/mr_IN (LC_MONETARY) : copy "hi_IN" * locales/or_IN (LC_MONETARY) : copy "hi_IN" * locales/pa_IN (LC_MONETARY) : copy "hi_IN" * locales/sa_IN (LC_MONETARY) : copy "hi_IN" * locales/sd_IN (LC_MONETARY) : copy "hi_IN" * locales/ta_IN (LC_MONETARY) : copy "hi_IN" * locales/tcy_IN(LC_MONETARY) : copy "hi_IN" * locales/te_IN (LC_MONETARY) : copy "hi_IN" * locales/ur_IN (LC_MONETARY) : copy "hi_IN"