summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fix up timing_type key and remove the machine keysiddhesh/benchmarksSiddhesh Poyarekar2015-05-071-12/+1
|
* benchtest: script to compare two benchmarksSiddhesh Poyarekar2015-05-072-0/+291
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This script is a sample implementation that uses import_bench to construct two benchmark objects and compare them. If detailed timing information is available (when one does `make DETAILED=1 bench`), it writes out graphs for all functions it benchmarks and prints significant differences in timings of the two benchmark runs. If detailed timing information is not available, it points out significant differences in aggregate times. Call this script as follows: compare_bench.py schema_file.json bench1.out bench2.out Alternatively, if one wants to set a different threshold for warnings (default is a 10% difference): compare_bench.py schema_file.json bench1.out bench2.out 25 The threshold in the example above is 25%. schema_file.json is the JSON schema (which is $srcdir/benchtests/scripts/benchout.schema.json for the benchmark output file) and bench1.out and bench2.out are the two benchmark output files to compare. * benchtests/scripts/compare_bench.py: New file. * benchtests/scripts/import_bench.py (mean): New function. (split_list): Likewise. (do_for_all_timings): Likewise. (compress_timings): Likewise.
* New module to import and process benchmark outputSiddhesh Poyarekar2015-05-072-25/+71
| | | | | | | | | | | | | | | | | | | | | This is the beginning of a module to import and process benchmark outputs. Currently this is tied to the bench.out format, but in future this needs to be generalized. The module currently supports importing of a bench.out and validating it against a schema file. I have also added a function that compresses detailed timings by grouping them into their means based on how close they are to each other. The idea here is to have a set of routines that benchmark consumers may find useful to build their own analysis tools. I have altered validate_bench to use this module too. * benchtests/scripts/import_bench.py: New file. * benchtests/scripts/validate_benchout.py: Import import_bench instead of jsonschema. (validate_bench): Remove function. (main): Use import_bench.
* BZ#18383: Add test case for large alignment in TLS blocks.Roland McGrath2015-05-065-3/+112
|
* NaCl: Fix elf_loader file name in nacl-test-wrapper.shRoland McGrath2015-05-062-1/+6
|
* Add more tests of acosh, atanh, cos, csqrt, erfc, sin, sincos.Joseph Myers2015-05-065-26/+374
| | | | | | | | | | | | | This patch adds more randomly-generated tests of various libm functions that are observed to increase ulps on x86_64. Tested for x86_64 and x86 and ulps updated accordingly. * math/auto-libm-test-in: Add more tests of acosh, atanh, cos, csqrt, erfc, sin and sincos. * math/auto-libm-test-out: Regenerated. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
* 2015-05-06 Szabolcs Nagy <szabolcs.nagy@arm.com>Wilco Dijkstra2015-05-062-316/+449
| | | | * sysdeps/aarch64/libm-test-ulps: Update.
* Add further tests of libm functions.Joseph Myers2015-05-055-75/+2927
| | | | | | | | | | | | | | | | | This patch adds more randomly-generated tests of various libm functions that are observed to increase ulps on x86_64. (This process must eventually converge, when my random test generation stops finding inputs that increase the listed ulps, except maybe for any cases uncovered where the errors exceed the maximum allowed 9ulp error and so indicate actual libm bugs needing fixing.) Tested for x86_64 and x86 and ulps updated accordingly. * math/auto-libm-test-in: Add more tests of acosh, atanh, clog, clog10, csqrt, erfc, exp2, expm1, log10, log2 and sinh. * math/auto-libm-test-out: Regenerated. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
* Add __nonnull attribute to wcscpy and wcsncpy [BZ#18265]Daniel Marjamäki2015-05-052-2/+10
|
* __ASSUME_FALLOCATE is always true on 32-bit architecturesFlorian Weimer2015-05-056-114/+47
| | | | | This means we can clean up the generic code a bit. The 64-bit variant still needs to support !__ASSUME_FALLOCATE for alpha.
* i386: Remove fallocate, fallocate64, posix_fallocate, posix_fallocate64Florian Weimer2015-05-057-232/+14
| | | | | With 6-argument system call support, the generic Linux implementations of these system calls work, and there is no need for i386-specific versions.
* Add more tests of libm functions.Joseph Myers2015-05-025-54/+1011
| | | | | | | | | | | | | | This patch adds more randomly-generated tests of various libm functions that are observed to increase ulps on x86_64. Tested for x86_64 and x86 and ulps updated accordingly. * math/auto-libm-test-in: Add more tests of atan, clog, clog10, cos, csqrt, erf, erfc, exp2, lgamma, log1p, sin, sincos, tanh and tgamma. * math/auto-libm-test-out: Regenerated. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
* Add more tests of tgamma.Joseph Myers2015-05-015-12/+220
| | | | | | | | | | | | This patch adds some randomly-generated tests of tgamma that are observed to increase ulps on x86_64. Tested for x86_64 and x86 and ulps updated accordingly. * math/auto-libm-test-in: Add more tests of tgamma. * math/auto-libm-test-out: Regenerated. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
* Add more tests of tanh.Joseph Myers2015-05-015-24/+345
| | | | | | | | | | | | This patch adds some randomly-generated tests of tanh that are observed to increase ulps on x86_64. Tested for x86_64 and x86 and ulps updated accordingly. * math/auto-libm-test-in: Add more tests of tanh. * math/auto-libm-test-out: Regenerated. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
* Add more tests of tan.Joseph Myers2015-05-015-8/+67
| | | | | | | | | | | | This patch adds some randomly-generated tests of tan that are observed to increase ulps on x86_64. Tested for x86_64 and x86 and ulps updated accordingly. * math/auto-libm-test-in: Add more tests of tan. * math/auto-libm-test-out: Regenerated. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
* Add more tests of cos, sin, sincos.Joseph Myers2015-05-015-8/+151
| | | | | | | | | | | | This patch adds some randomly-generated tests of cos, sin and sincos that are observed to increase ulps on x86_64. Tested for x86_64 and x86 and ulps updated accordingly. * math/auto-libm-test-in: Add more tests of cos, sin and sincos. * math/auto-libm-test-out: Regenerated. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
* Add another test of pow.Joseph Myers2015-05-014-8/+38
| | | | | | | | | | | This patch adds a randomly-generated test of pow that is observed to increase ulps on x86_64. Tested for x86_64 and x86 and ulps updated accordingly. * math/auto-libm-test-in: Add another test of pow. * math/auto-libm-test-out: Regenerated. * sysdeps/x86_64/fpu/libm-test-ulps: Update.
* Add more tests of lgamma.Joseph Myers2015-05-015-60/+292
| | | | | | | | | | | | This patch adds some randomly-generated tests of lgamma that are observed to increase ulps on x86_64. Tested for x86_64 and x86 and ulps updated accordingly. * math/auto-libm-test-in: Add more tests of lgamma. * math/auto-libm-test-out: Regenerated. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
* Add more tests of log, log10, log1p, log2.Joseph Myers2015-05-015-61/+924
| | | | | | | | | | | | | This patch adds some randomly-generated tests of log, log10, log1p and log2 that are observed to increase ulps on x86_64. Tested for x86_64 and x86 and ulps updated accordingly. * math/auto-libm-test-in: Add more tests of log, log10, log2 and log1p. * math/auto-libm-test-out: Regenerated. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
* elf.h: Add section compression constants and structures.Mark Wielaard2015-05-012-0/+30
| | | | | Add SHF_COMPRESSED section flag, Elf32_Chdr and Elf64_Chdr structs and ELFCOMPRESS constants to elf/elf.h.
* Add more tests of exp, exp10, exp2, expm1.Joseph Myers2015-05-015-29/+574
| | | | | | | | | | | | | This patch adds some randomly-generated tests of exp, exp10, exp2 and expm1 that are observed to increase ulps on x86_64. Tested for x86_64 and x86 and ulps updated accordingly. * math/auto-libm-test-in: Add more tests of exp, exp10, exp2 and expm1. * math/auto-libm-test-out: Regenerated. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
* Add more tests of erf, erfc.Joseph Myers2015-05-015-34/+505
| | | | | | | | | | | | This patch adds some randomly-generated tests of erf and erfc that are observed to increase ulps on x86_64. Tested for x86_64 and x86 and ulps updated accordingly. * math/auto-libm-test-in: Add more tests of erf and erfc. * math/auto-libm-test-out: Regenerated. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
* [AArch64] Fix the big endian loader name.Szabolcs Nagy2015-05-012-0/+7
|
* Add more tests of csqrt.Joseph Myers2015-04-305-50/+570
| | | | | | | | | | | | This patch adds some randomly-generated tests of csqrt that are observed to increase ulps on x86_64. Tested for x86_64 and x86 and ulps updated accordingly. * math/auto-libm-test-in: Add more tests of csqrt. * math/auto-libm-test-out: Regenerated. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
* Add further tests of cosh and sinh.Joseph Myers2015-04-305-18/+401
| | | | | | | | | | | | This patch adds some further randomly-generated tests of cosh and sinh that are observed to increase ulps on x86_64. Tested for x86_64 and x86 and ulps updated accordingly. * math/auto-libm-test-in: Add more tests of cosh and sinh. * math/auto-libm-test-out: Regenerated. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
* Remove MIPS version of waitid.c.Joseph Myers2015-04-302-7/+4
| | | | | | | | | Since glibc is no longer built with -Winline, a special MIPS version of waitid.c to disable -Winline is no longer needed, and this patch removes it. Tested that glibc does indeed build with the patch applied. * sysdeps/unix/sysv/linux/mips/mips32/waitid.c: Remove file.
* NaCl: Change clock_t to long int.Roland McGrath2015-04-293-3/+7
|
* NaCl: Fix symbol names for euidaccess.Roland McGrath2015-04-292-1/+6
|
* NaCl: Make __suseconds_t be long int rather than int32_t.Roland McGrath2015-04-292-1/+8
|
* NEWS: BZ#18319 was fixed in commit ed159672eb3cd650a32b7e5cb4d5ec1fe0e63802Florian Weimer2015-04-291-1/+1
|
* CVE-2014-8121: Do not close NSS files database during iteration [BZ #18007]Florian Weimer2015-04-295-6/+136
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Robin Hack discovered Samba would enter an infinite loop processing certain quota-related requests. We eventually tracked this down to a glibc issue. Running a (simplified) test case under strace shows that /etc/passwd is continuously opened and closed: … open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3 lseek(3, 0, SEEK_CUR) = 0 read(3, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 2717 lseek(3, 2717, SEEK_SET) = 2717 close(3) = 0 open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3 lseek(3, 0, SEEK_CUR) = 0 lseek(3, 0, SEEK_SET) = 0 read(3, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 2717 lseek(3, 2717, SEEK_SET) = 2717 close(3) = 0 open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3 lseek(3, 0, SEEK_CUR) = 0 … The lookup function implementation in nss/nss_files/files-XXX.c:DB_LOOKUP has code to prevent that. It is supposed skip closing the input file if it was already open. /* Reset file pointer to beginning or open file. */ \ status = internal_setent (keep_stream); \ \ if (status == NSS_STATUS_SUCCESS) \ { \ /* Tell getent function that we have repositioned the file pointer. */ \ last_use = getby; \ \ while ((status = internal_getent (result, buffer, buflen, errnop \ H_ERRNO_ARG EXTRA_ARGS_VALUE)) \ == NSS_STATUS_SUCCESS) \ { break_if_match } \ \ if (! keep_stream) \ internal_endent (); \ } \ keep_stream is initialized from the stayopen flag in internal_setent. internal_setent is called from the set*ent implementation as: status = internal_setent (stayopen); However, for non-host database, this flag is always 0, per the STAYOPEN magic in nss/getXXent_r.c. Thus, the fix is this: - status = internal_setent (stayopen); + status = internal_setent (1); This is not a behavioral change even for the hosts database (where the application can specify the stayopen flag) because with a call to sethostent(0), the file handle is still not closed in the implementation of gethostent.
* Fix ldbl-128 roundl for exponents in [31, 47] (bug 18346).Joseph Myers2015-04-284-2/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | The implementation of roundl for ldbl-128 involves undefined behavior for arguments with exponents from 31 to 47 inclusive, from the shift: u_int64_t i = -1ULL >> (j0 - 48); For example, on mips64, this means roundl (0xffffffffffff.8p0L) wrongly returns its argument, which is not an integer. A condition checking for exponents < 31 should actually be checking for exponents < 48, and this patch makes it do so. (That condition is for whether the bit representing 0.5 is in the high 64-bit half of the floating-point number. The value 31 might have arisen from an incorrect conversion of the ldbl-96 version to handle ldbl-128.) This was originally reported as a GCC libquadmath bug <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65757>. Tested for mips64; also tested for x86_64 and x86 to make sure the new tests pass there. [BZ #18346] * sysdeps/ieee754/ldbl-128/s_roundl.c (__roundl): Handle all exponents less than 48 as cases where high part of mantissa needs examining to determine whether argument is integral. * math/libm-test.inc (round_test_data): Add more tests.
* elf.h SHF_EXCLUDE signed int 31 bit shift triggers undefined behaviour.Mark Wielaard2015-04-282-1/+5
| | | | | | Any use of SHF_EXCLUDE in code that tries to check it against sh_flags will trigger undefined behaviour because it is defined as a 31 bit shift against an signed integer. Fix by explicitly using an unsigned int.
* Update sparc localplt.dataDavid S. Miller2015-04-273-8/+12
| | | | | | * sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data: Remove __tls_get_addr. * sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data: Likewise.
* Check tzspec_len == 0 in __tzfile_readH.J. Lu2015-04-272-1/+7
| | | | | [BZ#18333] * time/tzset.c (__tzfile_read): Check tzspec_len == 0.
* test-skeleton: Support temporary files without memory leaks [BZ#18333]Florian Weimer2015-04-274-7/+36
| | | | | | | | | | add_temp_file now makes a copy which is freed by delete_temp_files. Callers to create_temp_file can now free the returned file name to avoid the memory leak. These changes do not affect the leak behavior of existing code. Also address a NULL pointer derefence in tzset after a memoru allocation failure, found during testing.
* posix_fallocate, posix_fallocate64 stub: Do not set errnoFlorian Weimer2015-04-243-4/+7
| | | | These functions return an error code.
* ARM: Define PI_STATIC_AND_HIDDEN.Roland McGrath2015-04-243-5/+10
|
* Make time zone file parser more robust [BZ #17715]Florian Weimer2015-04-2411-214/+456
|
* Do not build with -WinlineFlorian Weimer2015-04-242-2/+6
| | | | | | | | | | | | | | -Winline causes architecture- and optimization-dependent build failures due to -Werror. -Winline warns about inlining decisions based on branch hints, in effect preventing the use of inline functions in header files (because they might be called on unlikely branches, leading to a decision not to inline). The option was apparently added to the glibc build at a time when GCC did not support the always_inline attribute. With current GCC versions, inlining failure for functions declared always_inline will receive a warning under -Wattributes, which is enabled by default, so -Winline appears unnecessary.
* S/390: Regenerate ULPsStefan Liebler2015-04-242-251/+225
|
* S/390: Get cache information via sysconfStefan Liebler2015-04-243-0/+238
| | | | | | | | | | | This patch adds support to query cache information on s390 via sysconf() function - e.g. with _SC_LEVEL1_ICACHE_SIZE. The attributes size, linesize and assoc can be queried for cache level 1 - 4 via "extract cpu attribute" instruction, which was first available with z10. * NEWS: Mention sysconf() cache information support for s390. * sysdeps/unix/sysv/linux/s390/sysconf.c: New File.
* Use __copysign rather than copysign.Wilco Dijkstra2015-04-224-3/+11
|
* CVE-2015-1781: resolv/nss_dns/dns-host.c buffer overflow [BZ#18287]Arjun Shankar2015-04-213-2/+16
|
* libc-vdso.h place consolidationAdhemerval Zanella2015-04-2022-17/+45
| | | | | | This patch moves the libc-vdso.h internal header from bits folder to default architecture one and also corrects the remaning includes in the files.
* Better fix for setenv (..., NULL, ...)Paul Eggert2015-04-192-1/+23
| | | | | | * stdlib/setenv.c (__add_to_environ): Dump core quickly if setenv (..., NULL, ...) is called. This time, do it the right way, and pacify GCC with a pragma.
* Avoid confusing compiler with dynamically impossible statically invalid ↵Roland McGrath2015-04-172-3/+18
| | | | dereference in _dl_close_worker.
* Fuller check for invalid NSID in _dl_open.roland/dl-nnsRoland McGrath2015-04-172-3/+15
|
* Sparc memchr/memcmp/strncmp fixes from Il'ya Malakhov.David S. Miller2015-04-174-5/+13
| | | | | | | [BZ #17825] * sysdeps/sparc/sparc64/memchr.S: Fix signedness handling of length. * sysdeps/sparc/sparc64/memcmp.S: Likewise. * sysdeps/sparc/sparc64/strncmp.S: Likewise.
* Add arm-nacl port.Roland McGrath2015-04-17127-0/+5120
|