aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-08-17Support mcount/gprof test with GCC defaulting to PIEH.J. Lu
The mcount/gprof test should be linked with gcrt1.o, not Scrt1.o. * Makeconfig (+link-pie-before-libc): Add CRT-* hook to override the startup object.
2017-08-17Fix abmon for bem_ZMAkhilesh Kumar
Until now the abbreviated month names were in English. [BZ #21960] * locales/bem_ZM (LC_TIME): Fix abmon, make it agree with CLDR.
2017-08-17Fix country name for xh_ZAAkhilesh Kumar
[BZ #21959] * locales/xh_ZA (LC_ADDRESS): Fix country name.
2017-08-17Refresh generated charmap data and ChangeLogThorsten Glaser
[BZ #21750] * charmaps/UTF-8: Refresh.
2017-08-17Resolve some historically special cases of ambiguous widthThorsten Glaser
[BZ #21750] * unicode-gen/utf8_gen.py (U+00AD): Set width to 1. * unicode-gen/utf8_gen.py (U+1160..U+11FF): Set width to 0. * unicode-gen/utf8_gen.py (U+3248..U+324F): Set width to 2. * unicode-gen/utf8_gen.py (U+4DC0..U+4DFF): Likewise.
2017-08-17Handle more cases of combining charactersThorsten Glaser
[BZ #21750] * unicode-gen/utf8_gen.py: Treat category Me and Mn as combining.
2017-08-17UnicodeData has precedence over EastAsianWidthThorsten Glaser
[BZ #19852] [BZ #21750] * unicode-gen/utf8_gen.py: Process EastAsianWidth lines before UnicodeData lines so the latter have precedence; remove hack to group output by EastAsianWidth ranges.
2017-08-17__opensock: Remove internal_function attributeFlorian Weimer
2017-08-16Fix sigval namespace (bug 21944).Joseph Myers
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. Lu
* NEWS: Remove "[Add new features here]" for 2.27.
2017-08-16Allow abort PLT references in libc.so for SH.Joseph Myers
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. Lu
* NEWS: Mention x86-64 FMA optimization.
2017-08-16x86-64: Optimize e_expf with FMA [BZ #21912]H.J. Lu
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 Weimer
2017-08-16ldd: never run file directlyAndreas Schwab
2017-08-15x86-64: Align L(SP_RANGE)/L(SP_INF_0) to 8 bytes [BZ #21955]H.J. Lu
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 Weimer
2017-08-15aio: Remove support for BROKEN_THREAD_SIGNALSFlorian Weimer
This was originally added to support LinuxThreads and is not needed for NPTL.
2017-08-15gmon: Add test for basic mcount/gprof functionalityFlorian Weimer
2017-08-15powerpc: Add values from Linux 4.8 to <elf.h>Gustavo Romero
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 Weimer
__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 Liebler
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 FABIAN
“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 FABIAN
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 Myers
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 Weimer
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 FABIAN
[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 Aizpuru
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 Zanella
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 Weimer
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 Weimer
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 Weimer
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 Weimer
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. Lu
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 FABIAN
[BZ #19982] * po/fr.po: Fix spelling mistake.
2017-08-13ld.so: Remove internal_function attribute from various functionsFlorian Weimer
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 Weimer
These are called across DSO boundaries and should therefore use the standard calling convention.
2017-08-13NPTL: Remove internal_function from stack marking functionsFlorian Weimer
These are called across DSO boundaries and therefore should use the ABI calling convention.
2017-08-13__netlink_assert_response: Remove internal_function attributeFlorian Weimer
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 Weimer
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 Weimer
Such functions are called across DSO boundaries and should not use a non-standard ABI.
2017-08-13__fortify_fail: Remove internal_function attributeFlorian Weimer
__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 FABIAN
[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 FABIAN
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 Brabec
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 Weimer
2017-08-11benchtests: Print json in memmove benchmarkSiddhesh Poyarekar
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 Poyarekar
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 Jasan
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 Jasan
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.