aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2014-06-16Add CFI to x86 ceil / floor / trunc (bug 16681).Joseph Myers11-5/+36
This patch adds CFI to the sysdeps/i386/fpu/ implementations of ceil, floor and trunc functions, for consistency with other x86 .S files in glibc which have CFI for stack adjustments. Tested x86. [BZ #16681] * sysdeps/i386/fpu/s_ceil.S (__ceil): Add CFI. * sysdeps/i386/fpu/s_ceilf.S (__ceilf): Likewise. * sysdeps/i386/fpu/s_ceill.S (__ceill): Likewise. * sysdeps/i386/fpu/s_floor.S (__floor): Likewise. * sysdeps/i386/fpu/s_floorf.S (__floorf): Likewise. * sysdeps/i386/fpu/s_floorl.S (__floorl): Likewise. * sysdeps/i386/fpu/s_trunc.S (__trunc): Likewise. * sysdeps/i386/fpu/s_truncf.S (__truncf): Likewise. * sysdeps/i386/fpu/s_truncl.S (__truncl): Likewise.
2014-06-17m68k: update libm test ULPsAndreas Schwab2-48/+886
2014-06-16Fix typo in preprocessor conditionalAndreas Schwab2-1/+4
2014-06-16Pass $TIMEOUTFACTOR to tests also in cross testingAndreas Schwab2-1/+6
2014-06-16Fix tautological comparison in non-executed part of tst-setuid2 (BZ #17058)Florian Weimer3-2/+8
This part never runs with the current implementation because the setresuid call currently aborts (as intended).
2014-06-16Update feature guard for strdup/strndup in <bits/string2.h>Andreas Schwab2-2/+6
2014-06-14Update Sparc ULPs.David S. Miller2-0/+28
* sysdeps/sparc/fpu/libm-test-ulps: Update.
2014-06-14m68k: Consolidate NPTL/non versions of cloneAndreas Schwab3-6/+4
2014-06-14m68k: Consolidate NPTL/non versions of vforkAndreas Schwab5-85/+30
2014-06-14Add fallback file for elide.hAndi Kleen2-0/+29
Add the missing fallback file for elide.h to fix non x86 builds. Sorry about that. This is just a noop macro file that makes all elision code to be optimized out.
2014-06-13Fix pthread.h in installed-headers list.Stefan Liebler2-1/+5
2014-06-13S390: Move NPTL public headers to sysdeps/s390/nptl/.Roland McGrath3-0/+5
2014-06-13Move S390 code out of nptl/sysdeps/s390/.Roland McGrath9-0/+17
2014-06-13S390: Convert fork.c to arch-fork.hRoland McGrath2-3/+7
2014-06-13Consolidate sparc clone, fork, and vfork implementations.David S. Miller12-167/+21
* nptl/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: Delete. * nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S: Delete. * nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Moved ... * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: ... here. * nptl/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Delete. * nptl/sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: Delete. * nptl/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Moved ... * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: ... here. * sysdeps/unix/sysv/linux/sparc/fork.S: Delete. * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: New file. * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__thread_start): Remove RESET_PID cpp guards. * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S (__thread_start): Remove RESET_PID cpp guards. * sysdeps/unix/sysv/linux/sparc/vfork.S: Delete.
2014-06-13m68k: avoid pointer to integer conversion warningAndreas Schwab2-2/+7
2014-06-13ChangeLog fixAndreas Schwab1-1/+1
2014-06-13Remove x86 assembler rwlock codeAndi Kleen21-2204/+23
With the recent tuning the C version of rwlocks is basically the same performance as the x86 assembler version for uncontended locks (with a a few cycles near the run-to-run variability). For others it should not matter anyways. So remove the assembler code and use the C version like other architectures.
2014-06-13Add adaptive elision to rwlocksAndi Kleen23-5/+227
This patch relies on the C version of the rwlocks posted earlier. With C rwlocks it is very straight forward to do adaptive elision using TSX. It is based on the infrastructure added earlier for mutexes, but uses its own elision macros. The macros are fairly general purpose and could be used for other elision purposes too. This version is much cleaner than the earlier assembler based version, and in particular implements adaptation which makes it safer. I changed the behavior slightly to not require any changes in the test suite and fully conform to all expected behaviors (generally at the cost of not eliding in various situations). In particular this means the timedlock variants are not elided. Nested trylock aborts.
2014-06-13Add a fast path for C rd/wrlock v2Andi Kleen3-44/+110
One difference of the C versions to the assembler wr/rdlock is that the C compiler saves some registers which are unnecessary for the fast path in the prologue of the functions. Split the uncontended fast path out into a separate function. Only when contention is detected is the full featured function called. This makes the fast path code (nearly) identical to the assembler version, and gives uncontended performance within a few cycles. v2: Rename some functions and add space.
2014-06-13get_nprocs: Only return explictly set cache values (BZ #16996)Meador Inge3-3/+9
The implementation of __get_nprocs uses a stactic variable to cache the value of the current number of processors. The caching breaks when 'time (NULL) == 0': $ cat nproc.c #include <stdio.h> #include <time.h> #include <sys/time.h> int main(int argc, char *argv[]) { time_t t; struct timeval tv = {0, 0}; printf("settimeofday({0, 0}, NULL) = %d\n", settimeofday(&tv, NULL)); t = time(NULL); printf("Time: %d, CPUs: %d\n", (unsigned int)t, get_nprocs()); return 0; } $ gcc -O3 nproc.c $ ./a.out settimeofday({0, 0}, NULL) = -1 Time: 1401311578, CPUs: 4 $ sudo ./a.out settimeofday({0, 0}, NULL) = 0 Time: 0, CPUs: 0 The problem is with the condition used to check whether a cached value should be returned or not: static int cached_result; static time_t timestamp; time_t now = time (NULL); time_t prev = timestamp; atomic_read_barrier (); if (now == prev) return cached_result; This patch fixes the problem by ensuring that 'cached_result' has been set at least once before returning it.
2014-06-12Move SPARC public headers out of nptl/Roland McGrath4-0/+7
2014-06-12Move SPARC code out of nptl/sysdeps/sparc/.Roland McGrath20-4/+39
2014-06-12SPARC: Define TLS_DEFINE_INIT_TPRoland McGrath2-0/+5
2014-06-12SPARC: Convert fork.c to arch-fork.hRoland McGrath2-3/+5
2014-06-12Use list.h in posix-timer code.Roland McGrath3-43/+41
2014-06-12Get rid of nptl/sysdeps/pthread/ subdirectoryRoland McGrath40-7/+105
2014-06-12Consolidate NPTL sigprocmask.Roland McGrath3-20/+5
2014-06-12Move i386 code out of nptl/ subdirectory.Roland McGrath15-22/+32
2014-06-12Move SH code out of nptl/ subdirectory.Roland McGrath33-4/+72
2014-06-12posix_spawn_faction_addopen: Add missing string.h include directiveStefan Liebler2-0/+5
This is needed to avoid a PLT call on s390.
2014-06-11Move x86_64 code out of nptl/ subdirectory.Roland McGrath14-1/+32
2014-06-11Update powerpc-fpu ULPs.Adhemerval Zanella2-0/+28
2014-06-11conformtest: clean up POSIX expectations for sys/mman.h, sys/stat.h, ↵Joseph Myers4-2/+27
sys/types.h. Continuing the series of patches to clean up conformtest expectations for "POSIX" (1995/6) based on review of the expectations against the standard, this patch cleans up expectations for sys/mman.h, sys/stat.h and sys/types.h. Tested x86_64; no new XFAILs needed. * conform/data/sys/mman.h-data [POSIX] (size_t): Do not require type. [POSIX] (off_t): Likewise. * conform/data/sys/stat.h-data (S_IRGRP): Require constant. [POSIX] (S_ISBLK): Require macro. [POSIX] (S_ISCHR): Likewise. [POSIX] (S_ISDIR): Likewise. [POSIX] (S_ISFIFO): Likewise. [POSIX] (S_ISREG): Likewise. [POSIX || XPG3 || XPG4 || UNIX98] (S_TYPEISTMO): Do not list optional-macro. * conform/data/sys/types.h-data [POSIX] (blkcnt_t): Do not require type. [POSIX] (time_t): Likewise. [POSIX] (timer_t): Likewise.
2014-06-11posix_spawn_file_actions_addopen needs to copy the path argument (BZ 17048)Florian Weimer6-8/+54
POSIX requires that we make a copy, so we allocate a new string and free it in posix_spawn_file_actions_destroy. Reported by David Reid, Alex Gaynor, and Glyph Lefkowitz. This bug may have security implications.
2014-06-11tile: Consolidate NPTL/non versions of vforkChris Metcalf4-6/+10
2014-06-11Tile: Define TLS_DEFINE_INIT_TPRoland McGrath3-24/+7
2014-06-11S390: Define TLS_DEFINE_INIT_TPRoland McGrath2-0/+5
2014-06-11Alpha: Define TLS_DEFINE_INIT_TPRoland McGrath3-22/+6
2014-06-11PowerPC: Define TLS_DEFINE_INIT_TPRoland McGrath3-24/+7
2014-06-11AArch64: Define TLS_DEFINE_INIT_TPRoland McGrath3-23/+8
2014-06-11PowerPC: Optimized strcmp for PPC64/POWER7Vidya Ranganathan7-1/+329
Optimization is achieved on 8 byte aligned strings with double word comparison using cmpb instruction. On unaligned strings loop unrolling is applied for Power7 gain.
2014-06-11Validate bench.out against a JSON schemaSiddhesh Poyarekar4-0/+135
This patch adds a JSON schema for the benchmark output file and also adds a script that validates the generated output against the schema.
2014-06-10Fix ChangeLog indentation.Adhemerval Zanella1-104/+104
2014-06-10tile: move sysdeps/unix/sysv/linux/tile nptl files.Chris Metcalf54-2/+164
2014-06-10Add FE_NOMASK_ENV return value test.Wilco3-1/+129
2014-06-10Fix log2 (1) in round-downward mode (bug 17042).Joseph Myers11-8/+91
As with other issues of this kind, bug 17042 is log2 (1) wrongly returning -0 instead of +0 in round-downward mode because of implementations effectively in terms of log1p (x - 1). This patch fixes the issue in the same way used for log and log10. Tested x86_64 and x86 and ulps updated accordingly. Also tested for mips64 to confirm a fix was needed for ldbl-128 and to validate that fix (also applied to ldbl-128ibm since that version of log2l is essentially the same as the ldbl-128 one). [BZ #17042] * sysdeps/i386/fpu/e_log2.S (__ieee754_log2): Take absolete value when x - 1 is zero. * sysdeps/i386/fpu/e_log2f.S (__ieee754_log2f): Likewise. * sysdeps/i386/fpu/e_log2l.S (__ieee754_log2l): Likewise. * sysdeps/ieee754/ldbl-128/e_log2l.c (__ieee754_log2l): Return 0.0L for an argument of 1.0L. * sysdeps/ieee754/ldbl-128ibm/e_log2l.c (__ieee754_log2l): Likewise. * sysdeps/x86_64/fpu/e_log2l.S (__ieee754_log2l): Take absolute value when x - 1 is zero. * math/libm-test.inc (log2_test): Use ALL_RM_TEST. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
2014-06-09hppa: Remove lowlevellock.c.Bernard Ogden2-126/+5
The hppa port has no need of a custom lowlevellock.c, it should use the generic version which is updated and correct. This similarly fixes bug 15119 for hppa.
2014-06-09SH: Define TLS_DEFINE_INIT_TPRoland McGrath3-23/+7
2014-06-09m68k: Define TLS_DEFINE_INIT_TPRoland McGrath3-24/+6