about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
* malloc: make malloc fail with requests larger than PTRDIFF_MAX (BZ#23741)Adhemerval Zanella2019-04-1812-88/+227
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As discussed previously on libc-alpha [1], this patch follows up the idea and add both the __attribute_alloc_size__ on malloc functions (malloc, calloc, realloc, reallocarray, valloc, pvalloc, and memalign) and limit maximum requested allocation size to up PTRDIFF_MAX (taking into consideration internal padding and alignment). This aligns glibc with gcc expected size defined by default warning -Walloc-size-larger-than value which warns for allocation larger than PTRDIFF_MAX. It also aligns with gcc expectation regarding libc and expected size, such as described in PR#67999 [2] and previously discussed ISO C11 issues [3] on libc-alpha. From the RFC thread [4] and previous discussion, it seems that consensus is only to limit such requested size for malloc functions, not the system allocation one (mmap, sbrk, etc.). The implementation changes checked_request2size to check for both overflow and maximum object size up to PTRDIFF_MAX. No additional checks are done on sysmalloc, so it can still issue mmap with values larger than PTRDIFF_T depending on the requested size. The __attribute_alloc_size__ is for functions that return a pointer only, which means it cannot be applied to posix_memalign (see remarks in GCC PR#87683 [5]). The runtimes checks to limit maximum requested allocation size does applies to posix_memalign. Checked on x86_64-linux-gnu and i686-linux-gnu. [1] https://sourceware.org/ml/libc-alpha/2018-11/msg00223.html [2] https://gcc.gnu.org/bugzilla//show_bug.cgi?id=67999 [3] https://sourceware.org/ml/libc-alpha/2011-12/msg00066.html [4] https://sourceware.org/ml/libc-alpha/2018-11/msg00224.html [5] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87683 [BZ #23741] * malloc/hooks.c (malloc_check, realloc_check): Use __builtin_add_overflow on overflow check and adapt to checked_request2size change. * malloc/malloc.c (__libc_malloc, __libc_realloc, _mid_memalign, __libc_pvalloc, __libc_calloc, _int_memalign): Limit maximum allocation size to PTRDIFF_MAX. (REQUEST_OUT_OF_RANGE): Remove macro. (checked_request2size): Change to inline function and limit maximum requested size to PTRDIFF_MAX. (__libc_malloc, __libc_realloc, _int_malloc, _int_memalign): Limit maximum allocation size to PTRDIFF_MAX. (_mid_memalign): Use _int_memalign call for overflow check. (__libc_pvalloc): Use __builtin_add_overflow on overflow check. (__libc_calloc): Use __builtin_mul_overflow for overflow check and limit maximum requested size to PTRDIFF_MAX. * malloc/malloc.h (malloc, calloc, realloc, reallocarray, memalign, valloc, pvalloc): Add __attribute_alloc_size__. * stdlib/stdlib.h (malloc, realloc, reallocarray, valloc): Likewise. * malloc/tst-malloc-too-large.c (do_test): Add check for allocation larger than PTRDIFF_MAX. * malloc/tst-memalign.c (do_test): Disable -Walloc-size-larger-than= around tests of malloc with negative sizes. * malloc/tst-posix_memalign.c (do_test): Likewise. * malloc/tst-pvalloc.c (do_test): Likewise. * malloc/tst-valloc.c (do_test): Likewise. * malloc/tst-reallocarray.c (do_test): Replace call to reallocarray with resulting size allocation larger than PTRDIFF_MAX with reallocarray_nowarn. (reallocarray_nowarn): New function. * NEWS: Mention the malloc function semantic change.
* powerpc: Fix format issue from 3a16dd780eeba602Adhemerval Zanella2019-04-173-2/+7
| | | | | * sysdeps/powerpc/fpu/s_fma.c: Fix format. * sysdeps/powerpc/fpu/s_fmaf.c: Likewise.
* powerpc: fma using builtinsAdhemerval Zanella2019-04-173-14/+15
| | | | | | | | | | | | | | | This patch just refactor the assembly implementation to use compiler builtins instead. Checked on powerpc-linux-gnu (built without --with-cpu, with --with-cpu=power4 and with --with-cpu=power5+ and --disable-multi-arch), powerpc64-linux-gnu (built without --with-cp and with --with-cpu=power5+ and --disable-multi-arch). * sysdeps/powerpc/fpu/s_fma.S: Remove file. * sysdeps/powerpc/fpu/s_fmaf.S: Likewise. * sysdeps/powerpc/fpu/s_fma.c: New file. * sysdeps/powerpc/fpu/s_fmaf.c: Likewise.
* powerpc: Use generic fabs{f} implementationsAdhemerval Zanella2019-04-173-34/+3
| | | | | | | | | | | | | Since be2e25bbd78f9fdf the generic ieee754 implementation uses compiler builtin which generates fabs{f} for all supported targets. Checked on powerpc-linux-gnu (built without --with-cpu, with --with-cpu=power4 and with --with-cpu=power5+ and --disable-multi-arch), powerpc64-linux-gnu (built without --with-cp and with --with-cpu=power5+ and --disable-multi-arch). * sysdeps/powerpc/fpu/s_fabs.S: Remove file. * sysdeps/powerpc/fpu/s_fabsf.S: Likewise.
* mips: Remove rt_sigreturn usage on context functionAdhemerval Zanella2019-04-175-53/+9
| | | | | | | | | | | | | | | | | | Similar to powerpc, mips also issues rt_sigreturn for setcontext case the v0 value saved is not the one set by setcontext or makecontext. As for powerpc, it is intention is no really supported since setcontext is not async-signal-safe. Checked the context tests on mips64-linux-gnu and mips-linux-gnu. * sysdeps/unix/sysv/linux/mips/getcontext.S (__getcontext): Remove the magic flag store. * sysdeps/unix/sysv/linux/mips/makecontext.S (__makecontext): Likewise. * sysdeps/unix/sysv/linux/mips/swapcontext.S (__swapcontext): Likewise. * sysdeps/unix/sysv/linux/mips/setcontext.S (__setcontext): Remove rt_sigreturn call.
* powerpc: Remove rt_sigreturn usage on context functionAdhemerval Zanella2019-04-175-162/+7
| | | | | | | | | | | | | | | | | | As described in a recent glibc thread [1], the rt_sigreturn syscall on setcontext and swapcontext is not used on default use and its intention is no really supported since neither setcontext nor swapcontext are async-signal-safe. Checked on powerpc64-linux-gnu and powerpc-linux-gnu. * sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S: Remove rt_sigreturn call. * sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S: Likewie. * sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S: Likewise. [1] https://sourceware.org/ml/libc-alpha/2019-02/msg00367.html
* support: Add support_capture_subprogramAdhemerval Zanella2019-04-1711-50/+573
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Its API is similar to support_capture_subprocess, but rather creates a new process based on the input path and arguments. Under the hoods it uses posix_spawn to create the new process. It also allows the use of other support_capture_* functions to check for expected results and free the resources. Checked on x86_64-linux-gnu. * support/Makefile (libsupport-routines): Add support_subprocess, xposix_spawn, xposix_spawn_file_actions_addclose, and xposix_spawn_file_actions_adddup2. (tst-support_capture_subprocess-ARGS): New rule. * support/capture_subprocess.h (support_capture_subprogram): New prototype. * support/support_capture_subprocess.c (support_capture_subprocess): Refactor to use support_subprocess and support_capture_poll. (support_capture_subprogram): New function. * support/tst-support_capture_subprocess.c (write_mode_to_str, str_to_write_mode, test_common, parse_int, handle_restart, do_subprocess, do_subprogram, do_multiple_tests): New functions. (do_test): Add support_capture_subprogram tests. * support/subprocess.h: New file. * support/support_subprocess.c: Likewise. * support/xposix_spawn.c: Likewise. * support/xposix_spawn_file_actions_addclose.c: Likewise. * support/xposix_spawn_file_actions_adddup2.c: Likewise. * support/xspawn.h: Likewise. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
* stdlib/tst-secure-getenv: handle >64 groupsMike Gerow2019-04-172-4/+20
| | | | | | | This test would fail unnecessarily if the user running it had more than 64 groups since getgroups returns EINVAL if the size provided is less than the number of supplementary group IDs. Instead dynamically determine the number of supplementary groups the user has.
* ChangeLog: Correct excess and deficiency of spacesTAMUKI Shoichi2019-04-171-50/+50
|
* ChangeLog: Convert leading spaces to tabsTAMUKI Shoichi2019-04-161-45/+45
|
* nss_dns: Do not replace root domain with empty stringFlorian Weimer2019-04-113-6/+6
| | | | | | The purpose of the bp[0] == '.' check is unclear. Only the root domain starts with '.'. The empty string is accepted as a domain name in many places, denoting the root, but using it implicitly is confusing.
* alloc_buffer: Return unqualified pointer type in alloc_buffer_nextFlorian Weimer2019-04-112-5/+33
| | | | | | | | alloc_buffer_next is useful for peeking to the remaining part of the buffer and update it, with subsequent allocation (once the length is known) using alloc_buffer_alloc_bytes. This is not as robust as the other interfaces, but it allows using alloc_buffer with string-writing interfaces such as snprintf and ns_name_ntop.
* Add missing ChangeLog entry for commit 10dd69e9a00Florian Weimer2019-04-111-0/+5
|
* Add more bug numbers to historic ChangeLog entriesFlorian Weimer2019-04-111-0/+2
|
* Add missing percent sign to conversion specifierTAMUKI Shoichi2019-04-111-3/+3
|
* Add bug number to historic ChangeLog entryFlorian Weimer2019-04-101-0/+1
|
* malloc: Set and reset all hooks for tracing (Bug 16573)Carlos O'Donell2019-04-092-26/+61
| | | | | | | | | | | | | | | | | | | | If an error occurs during the tracing operation, particularly during a call to lock_and_info() which calls _dl_addr, we may end up calling back into the malloc-subsystem and relock the loader lock and deadlock. For all intents and purposes the call to _dl_addr can call any of the malloc family API functions and so we should disable all tracing before calling such loader functions. This is similar to the strategy that the new malloc tracer takes when calling the real malloc, namely that all tracing ceases at the boundary to the real function and any faults at that point are the purvue of the library (though the new tracer does this on a per-thread basis in an MT-safe fashion). Since the new tracer and the hook deprecation are not yet complete we must fix these issues where we can. Tested on x86_64 with no regressions. Co-authored-by: Kwok Cheung Yeung <kcy@codesourcery.com> Reviewed-by: DJ Delorie <dj@redhat.com>
* Improve string benchtestsWilco Dijkstra2019-04-0910-141/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | Replace slow byte-oriented tests in several string benchmarks with the generic implementations from the string/ directory so the comparisons are more realistic and useful. * benchtests/bench-stpcpy.c (SIMPLE_STPCPY): Remove function. (generic_stpcpy): New function. * benchtests/bench-stpncpy.c (SIMPLE_STPNCPY): Remove function. (generic_stpncpy): New function. * benchtests/bench-strcat.c (SIMPLE_STRCAT): Remove function. (generic_strcat): New function. * benchtests/bench-strcpy.c (SIMPLE_STRCPY): Remove function. (generic_strcpy): New function. * benchtests/bench-strncat.c (SIMPLE_STRNCAT): Remove function. (STUPID_STRNCAT): Remove function. (generic_strncat): New function. * benchtests/bench-strncpy.c (SIMPLE_STRNCPY): Remove function. (STUPID_STRNCPY): Remove function. (generic_strncpy): New function. * benchtests/bench-strnlen.c (SIMPLE_STRNLEN): Remove function. (generic_strnlen): New function. (memchr_strnlen): New function. * benchtests/bench-strlen.c (generic_strlen): Define for WIDE. (memchr_strlen): Likewise.
* Improve bench-strstrWilco Dijkstra2019-04-092-83/+147
| | | | | | | | | | | | | | | | | | | | | Improve bench-strstr by using an extract from the manual as the input to make the test more realistic. Use the same input for both found and fail cases rather than using a memset of '0' for most of the string, which measures performance of strchr rather than strstr. Add result checking to catch potential errors. Remove the repeated tests at slightly different alignments and add more large needle and haystack testcases. Replace stupid_strstr with an efficient basic implementation. Add the Two-way implementation to simplify comparisons with much faster generic implementations. * benchtests/bench-strstr.c (input): Add realistic input text. (stupid_strstr): Remove function. (basic_strstr): Add function. (twoway_strstr): Add function. (do_one_test): Add result checking. (do_test): Use new input text. Remove accidental early matches. (test_main): Improve range of tests, reduce unaligned cases.
* Improve bench-memmemWilco Dijkstra2019-04-092-17/+68
| | | | | | | | | | Improve bench-memmem by replacing simple_memmem with a more efficient implementation. Add the Two-way implementation to enable direct comparison with the optimized memmem. * benchtests/bench-memmem.c (simple_memmem): Remove function. (basic_memmem): Add function. (twoway_memmem): Add function.
* Remove TIMING_INITWilco Dijkstra2019-04-096-17/+9
| | | | | | | | | | Remove TIMING_INIT since it's no longer used. * benchtests/bench-malloc-simple.c: Remove TIMING_INIT. * benchtests/bench-malloc-thread.c: Likewise. * benchtests/bench-skeleton.c: Likewise. * benchtests/bench-strtod.c: Likewise. * benchtests/bench-timing.h: Likewise.
* resolv: Remove RES_INSECURE1, RES_INSECURE2Florian Weimer2019-04-085-23/+25
| | | | Always perform the associated security checks.
* resolv: Remove support for RES_USE_INET6 and the inet6 optionFlorian Weimer2019-04-0815-680/+61
| | | | | | | | | This functionality was deprecated in glibc 2.25. This commit only includes the core changes to remove the functionality. It does not remove the RES_USE_INET6 handling in the individual NSS service modules and the res_use_inet6 function. These changes will happen in future commits.
* aarch64: thunderx2 memcpy implementation cleanup and streamliningAnton Youdkevitch2019-04-052-21/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Here is the updated patch for improving the long unaligned code path (the one using "ext" instruction). 1. Always taken conditional branch at the beginning is removed. 2. Epilogue code is placed after the end of the loop to reduce the number of branches. 3. The redundant "mov" instructions inside the loop are gone due to the changed order of the registers in the "ext" instructions inside the loop, the prologue has additional "ext" instruction. 4.Updating count in the prologue was hoisted out as it is the same update for each prologue. 5. Invariant code of the loop epilogue was hoisted out. 6. As the current size of the ext chunk is exactly 16 instructions long "nop" was added at the beginning of the code sequence so that the loop entry for all the chunks be aligned. * sysdeps/aarch64/multiarch/memcpy_thunderx2.S: Cleanup branching and remove redundant code.
* powerpc: Use generic wcsrchr optimizationAdhemerval Zanella2019-04-0416-320/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes the power6 wcsrchr optimization and uses generic implementation instead. Currently, both power6 and power7 IFUNC variant resulting binary are essentially the same and the generic implementation with unrolling loop set to 8 also results in similar performance. Checked on powerpc64-linux-gnu. * sysdeps/powerpc/Makefile [$(subdir) == wcsmbs] (CFLAGS-wcsrchr.c): New rule. * sysdeps/powerpc/power6/wcsrchr.c: Remove file. * sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power6.c: Likewise. * sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-power7.c: Likewise. * sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr-ppc32.c: Likewise. * sysdeps/powerpc/powerpc32/power4/multiarch/wcsrchr.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power6.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/wcsrchr-power7.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/wcsrchr-ppc64.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/wcsrchr.c: Likewise. * sysdeps/powerpc/powerpc64/power6/wcsrchr.c: Likewise. * sysdeps/powerpc/powerpc32/power4/multiarch/Makefile [$(subdir) == wcsmbs] (sysdeps_routines): Remove wcsrchr-power6 and wcsrchr-power7. (CFLAGS-wcsrchr-power7.c, CFLAGS-wcsrchr-power6.c): Remove rule. * sysdeps/powerpc/powerpc64/multiarch/Makefile: Likewise. * sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c: Remove wcsrchr optimizations. * sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c: Likewise.
* wcsmbs: Use loop_unroll on wcsrchrAdhemerval Zanella2019-04-042-6/+19
| | | | | | | | | This allows an architecture to set explicit loop unrolling. Checked on aarch64-linux-gnu. * wcsmbs/wcsrchr.c (WCSRCHR): Use loop_unroll.h to parametrize the loop unroll.
* powerpc: Use generic wcschr optimizationAdhemerval Zanella2019-04-0416-362/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes the power6 wcschr optimization and uses generic implementation instead. Currently, both power6 and power7 IFUNC variant resulting binary are essentially the same and the generic implementation with unrolling loop set to 8 also results in similar performance. Checked on powerpc64-linux-gnu. * sysdeps/powerpc/Makefile [$(subdir) == wcsmbs] (CFLAGS-wcschr.c): New rule. * sysdeps/powerpc/power6/wcschr.c: Remove file. * sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-power6.c: Likewise. * sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-power7.c: Likewise. * sysdeps/powerpc/powerpc32/power4/multiarch/wcschr-ppc32.c: Likewise. * sysdeps/powerpc/powerpc32/power4/multiarch/wcschr.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/wcschr-power6.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/wcschr-power7.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/wcschr-ppc64.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/wcschr.c: Likewise. * sysdeps/powerpc/powerpc64/power6/wcschr.c: Likewise. * sysdeps/powerpc/powerpc32/power4/multiarch/Makefile [$(subdir) == wcsmbs] (sysdeps_routines): Remove wcschr-power6 and wcschr-power7. (CFLAGS-wcschr-power7.c, CFLAGS-wcschr-power6.c): Remove rule. * sysdeps/powerpc/powerpc64/multiarch/Makefile: Likewise. * sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c: Remove wcschr optimizations. * sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c: Likewise.
* wcsmbs: Use loop_unroll on wcschrAdhemerval Zanella2019-04-042-5/+20
| | | | | | | | | This allows an architecture to set explicit loop unrolling. Checked on aarch64-linux-gnu. * wcsmbs/wcschr.c (WCSCHR): Use loop_unroll.h to parametrize the loop unroll.
* powerpc: Use generic wcscpy optimizationAdhemerval Zanella2019-04-0416-337/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes the power6 wcscpy optimization and uses generic implementation instead. Currently, both power6 and power7 IFUNC variant resulting binary are essentially the same and the generic implementation with unrolling loop set to 8 also results in similar performance. Checked on powerpc64-linux-gnu. * sysdeps/powerpc/Makefile [$(subdir) == wcsmbs] (CFLAGS-wcscpy.c): New rule. * sysdeps/powerpc/power6/wcscpy.c: Remove file. * sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-power6.c: Likewise. * sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-power7.c: Likewise. * sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy-ppc32.c: Likewise. * sysdeps/powerpc/powerpc32/power4/multiarch/wcscpy.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/wcscpy-power6.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/wcscpy-power7.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/wcscpy-ppc64.c: Likewise. * sysdeps/powerpc/powerpc64/multiarch/wcscpy.c: Likewise. * sysdeps/powerpc/powerpc64/power6/wcscpy.c: Likewise. * sysdeps/powerpc/powerpc32/power4/multiarch/Makefile [$(subdir) == wcsmbs] (sysdeps_routines): Remove wcscpy-power6 and wcscpy-power7. (CFLAGS-wcscpy-power7.c, CFLAGS-wcscpy-power6.c): Remove rule. * sysdeps/powerpc/powerpc64/multiarch/Makefile: Likewise. * sysdeps/powerpc/powerpc32/power4/multiarch/ifunc-impl-list.c: Remove wcscpy optimizations. * sysdeps/powerpc/powerpc64/multiarch/ifunc-impl-list.c: Likewise.
* wcsmbs: Add wcscpy loop unroll optionAdhemerval Zanella2019-04-043-0/+103
| | | | | | | | | | | This allows an architecture to use the old generic implementation and also set explicit loop unrolling. Checked on aarch64-linux-gnu. * include/loop_unroll.h: New file. * wcsmbs/wcscpy (__wcscpy): Add option to use loop unrolling besides generic implementation.
* time/tst-strftime3.c: Disable snprintf warning.DJ Delorie2019-04-032-0/+15
| | | | | | | snprintf will only truncate the output if the data its given is corrupted, but a truncated buffer will not match the "pristine" data's buffer, which is all we need. So just disable the warning via the DIAG macros.
* Add Reiwa era tests to time/tst-strftime3.cDJ Delorie2019-04-022-1/+62
| | | | Also fix printf warning
* ja_JP locale: Add entry for the new Japanese era [BZ #22964]TAMUKI Shoichi2019-04-024-7/+22
| | | | | | | | | | | | | | | | | | | | The Japanese era name will be changed on May 1, 2019. The Japanese government made a preliminary announcement on April 1, 2019. The glibc ja_JP locale must be updated to include the new era name for strftime's alternative year format support. Checked on x86_64-linux-gnu. Reviewed-by: Carlos O'Donell <carlos@redhat.com> ChangeLog: [BZ #22964] * localedata/locales/ja_JP (LC_TIME): Add entry for the new Japanese era. * time/tst-strftime2.c (dates): Add 2019-04-30 and 2019-05-01. (mkreftable): Add rules for the new Japanese era and the new dates.
* time: Add tests for Minguo calendar [BZ #24293]TAMUKI Shoichi2019-04-023-8/+45
| | | | | | | | | | | | | | | Co-authored-by: Rafal Luzynski <digitalfreak@lingonborough.com> Reviewed-by: Carlos O'Donell <carlos@redhat.com> ChangeLog: [BZ #24293] * time/Makefile (LOCALES): Add zh_TW.UTF-8, cmn_TW.UTF-8, hak_TW.UTF-8, nan_TW.UTF-8, and lzh_TW.UTF-8. * time/tst-strftime2.c (locales): Likewise. (dates): Add 1910-04-01, 1911-12-31, 1912-01-01, 1913-04-01, 2010-04-01, and 2011-04-01. (mkreftable): Add rules for the new locales and the new dates.
* time/tst-strftime2.c: Make the file easier to maintainTAMUKI Shoichi2019-04-022-40/+82
| | | | | | | | | | | | | | | | | | | | | | Express the years as full Gregorian years (e.g., 1988 instead of 88) and months with natural numbers (1-12 rather than 0-11). Compare actual dates rather than indexes when selecting the era name. Declare the local variable era as a string character pointer rather than an array of chars where the actual string is copied which might lead to potential buffer overflows in future. Co-authored-by: Rafal Luzynski <digitalfreak@lingonborough.com> Reviewed-by: Carlos O'Donell <carlos@redhat.com> ChangeLog: * time/tst-strftime2.c (date_t): Explicitly define the type. (dates): Use natural month and year numbers to express a date. (is_before): New function to compare dates. (mkreftable): Minor improvements to simplify maintenance. (do_test): Reflect the changes in dates array.
* NEWS: Mention Minguo calendar support added [BZ #24293]TAMUKI Shoichi2019-04-021-0/+4
| | | | | Co-authored-by: Rafal Luzynski <digitalfreak@lingonborough.com> Reviewed-by: Carlos O'Donell <carlos@redhat.com>
* Add verbose comments to 'era' in ja_JP locale.Carlos O'Donell2019-04-012-0/+22
| | | | | Reviewed-by: Rafal Luzynski <digitalfreak@lingonborough.com> Reviewed-by: TAMUKI Shoichi <tamuki@linet.gr.jp>
* Fix strptime era handling, add more strftime tests [BZ #24394]DJ Delorie2019-04-014-3/+473
| | | | | | | | | | | | | | | Test the transition points between all the currently listed Japanese era name changes. This includes testing the transition between the first year date and the second year date. This test will help test the upcoming Japanese era name change. Also fixes a fencepost error where the era name isn't properly parsed by strptime in the last (partial) year of the era. Example: if an era change happens in Feb 1990, and again in Aug 1995, that's 5.5 years long, but the 0.5 year wasn't accounted for. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
* alpha: Improve sysdeps/alpha/divqu.S and sysdeps/alpha/remqu.SUros Bizjak2019-04-013-8/+20
| | | | | | | | | | | * sysdeps/alpha/divqu.S (__divqu): Move save of $f0 and excb after conditional branch to DIVBYZERO. Fix unwind info. * sysdeps/alpha/remqu.S (__remqu): Move saves of $f0, $f1, $f2 and excb after conditional branch to $powerof2. Add missing unop instructions and .align directives and reorder instructions to match __divqu. Signed-off-by: Uroš Bizjak <ubizjak@gmail.com>
* alpha: Do not redefine __NR_shmat or __NR_osf_shmatRichard Henderson2019-04-013-3/+14
| | | | | | | | | | | | | | Fixes build using v5.1-rc1 headers. The kernel has cleaned up how these are defined. Previous behavior was to define __NR_osf_shmat as 209 and not define __NR_shmat. Current behavior is to define __NR_shmat as 209 and then define __NR_osf_shmat as __NR_shmat. * sysdeps/unix/sysv/linux/alpha/kernel-features.h (__NR_shmat): Do not redefine. * sysdeps/unix/sysv/linux/alpha/sysdep.h (__NR_osf_shmat): Do not redefine.
* RISC-V: Fix `test' operand error with soft-float ABI being configuredMaciej W. Rozycki2019-03-303-2/+8
| | | | | | | | | | | | | | Fix a: .../sysdeps/unix/sysv/linux/riscv/configure: line 181: test: =: unary operator expected message produced by the RISC-V configure fragment with the soft-float ABI selected, caused by $libc_cv_riscv_float_abi evaluating to nil in the invocation of `test $libc_cv_riscv_float_abi = no'. * sysdeps/unix/sysv/linux/riscv/configure.ac: Quote $libc_cv_riscv_float_abi in `test' invocation. * sysdeps/unix/sysv/linux/riscv/configure: Regenerate.
* [powerpc] Use __builtin_{mffs,mtfsf}Paul A. Clarke2019-03-294-12/+16
| | | | | | | | | | | | | | | | | | | Replace inline asm uses of the "mffs" and "mtfsf" instructions with the analogous GCC builtins. __builtin_mffs and __builtin_mtfsf are both available in GCC 5 and above. Given the minimum GCC level for GLibC is now GCC 6.2, it is safe to use these builtins without restriction. 2019-03-29 Paul A. Clarke <pc@us.ibm.com> * sysdeps/powerpc/fpu/fenv_libc.h (fegetenv_register): Replace inline asm with builtin. * sysdeps/powerpc/powerpc64/le/fpu/sfp-machine.h (FP_INIT_ROUNDMODE): Likewise. * sysdeps/powerpc/fpu/tst-setcontext-fpscr.c (_GET_DI_FPSCR): Likewise. (_GET_SI_FPSCR): Likewise. (_SET_SI_FPSCR): Likewise.
* ChangeLog: Correct more dates.Rafal Luzynski2019-03-281-4/+4
|
* ChangeLog: Correct two dates.Rafal Luzynski2019-03-281-2/+2
| | | | Reviewed-by: Carlos O'Donell <carlos@redhat.com>
* math: Enable some math builtins for clangAdhemerval Zanella2019-03-262-6/+18
| | | | | | | | | | | | | | | This patch enable the builtin usage for clang for the C99 functions fpclassify, isfinite, isnormal, isnan, isinf, and sigbit. This allows clang optimize the calls on frontend instead of call the appropriate glibc symbols. Checked on aarch64-linux-gnu and x86_64-linux-gnu. I checked the supported version for each builtin based on released version from clang/llvm. * math/math.h (fpclassify, isfinite, isnormal, isnan): Use builtin for clang 2.8. (signbit): Use builtin for clang 3.3. (isinf): Use builtin for clang 3.7.
* powerpc: Remove ununsed s_float_bitwise.hAdhemerval Zanella2019-03-252-115/+4
| | | | | | | | | | | This file is not used anywhere since removal of {k,e}_rem_pio2f.c (commit ca3aac57efa89). Checked with a build for powerpc-linux-gnu (with --with-cpu=power4 and --with-cpu=power7), powerpc64-linux-gnu (with --with-cpu=power4 and --with-cpu=power7), and powerpc64le-linux (with --with-cpu=power8). * sysdeps/powerpc/fpu/s_float_bitwise.h: Remove file.
* nss/tst-nss-files-alias-leak: add missing opening quote in printfAndreas K. Hüttel2019-03-252-1/+6
|
* nptl/tst-rwlock14: Test pthread_rwlock_timedwrlock correctlyMike Crowe2019-03-252-6/+11
|
* nptl: Convert tst-sem5 & tst-sem13 to use libsupportMike Crowe2019-03-253-79/+32
| | | | | | | | | | | | | | Checked on x86_64-linux-gnu and i686-linux-gnu. * nptl/tst-sem5.c: Remove unused headers. Add <support/check.h>. (do_test) Use libsupport test macros rather than hand-coded conditionals and error messages. Ensure that sem_init returns zero rather than not -1. Use <support/test-driver.c> rather than test-skeleton.c. * nptl/tst-sem13.c: Add <support/check.h>. (do_test) Use libsupport test macros rather than hand-coded conditionals and error messages. Use <support/test-driver.c> rather than test-skeleton.c.
* Add UDP_GRO from Linux 5.0 to netinet/udp.h.Joseph Myers2019-03-252-0/+3
| | | | | | | | This patch adds the new constant UDP_GRO from Linux 5.0 to glibc. Tested for x86_64. * sysdeps/gnu/netinet/udp.h (UDP_GRO): New macro.