about summary refs log tree commit diff
path: root/sysdeps
Commit message (Collapse)AuthorAgeFilesLines
* Add ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA to x86H.J. Lu2015-03-315-5/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | With copy relocation, address of protected data defined in the shared library may be external. When there is a relocation against the protected data symbol within the shared library, we need to check if we should skip the definition in the executable copied from the protected data. This patch adds ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA and defines it for x86. If ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA isn't 0, do_lookup_x will skip the data definition in the executable from copy reloc. Cherry-pick from master: 62da1e3b00b51383ffa7efc89d8addda0502e107 [BZ #17711] * elf/dl-lookup.c (do_lookup_x): When UNDEF_MAP is NULL, which indicates it is called from do_lookup_x on relocation against protected data, skip the data definion in the executable from copy reloc. (_dl_lookup_symbol_x): Pass ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA, instead of ELF_RTYPE_CLASS_PLT, to do_lookup_x for EXTERN_PROTECTED_DATA relocation against STT_OBJECT symbol. * sysdeps/generic/ldsodefs.h * (ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA): New. Defined to 4 if DL_EXTERN_PROTECTED_DATA is defined, otherwise to 0. * sysdeps/i386/dl-lookupcfg.h (DL_EXTERN_PROTECTED_DATA): New. * sysdeps/i386/dl-machine.h (elf_machine_type_class): Set class to ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA for R_386_GLOB_DAT. * sysdeps/x86_64/dl-lookupcfg.h (DL_EXTERN_PROTECTED_DATA): New. * sysdeps/x86_64/dl-machine.h (elf_machine_type_class): Set class to ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA for R_X86_64_GLOB_DAT.
* Fix sparc memcpy data corruption when using niagara2 optimized routines.Jose E. Marchesi2014-05-171-0/+1
| | | | | * sysdeps/sparc/sparc64/multiarch/memcpy-niagara2.S: Add missing membar to avoid block loads/stores to overlap previous stores.
* SPARC: add prlimit and prlimit64 in <bits/resource.h> (BZ #16943)Aurelien Jarno2014-05-161-0/+27
| | | | | | | | | | prlimit and prlimit64 have been added in the main <bits/resource.h>, but not in the SPARC specific version. Fix that. Note: this is Debian bug#703559, reported by Emilio Pozuelo Monfort <pochu@debian.org> (cherry picked from commit d16e6ec7ca2c861ba681e3a2fbd431725774292e)
* SPARC: add EFD_SEMAPHORE in <bits/eventfd.h> (BZ #16916)Aurelien Jarno2014-05-071-0/+2
| | | | | | | EFD_SEMAPHORE has been added in the main <bits/eventfd.h>, but not in the SPARC specific version. Fix that. (cherry picked from commit 83df9ad0cc861ef24f08a88c5a4c055e2516d33c)
* Fix v9/64-bit strcmp when string ends in multiple zero bytes.David S. Miller2014-05-011-0/+31
| | | | | | | | | | [BZ #16885] * sysdeps/sparc/sparc64/strcmp.S: Fix end comparison handling when multiple zero bytes exist at the end of a string. Reported by Aurelien Jarno <aurelien@aurel32.net> * string/test-strcmp.c (check): Add explicit test for situations where there are multiple zero bytes after the first.
* Disable x87 inline functions for SSE2 mathH.J. Lu2014-01-291-3/+3
| | | | | | | | | | | | | When i386 and x86-64 mathinline.h was merged into a single mathinline.h, "gcc -m32" enables x87 inline functions on x86-64 even when -mfpmath=sse and SSE2 is enabled. It is a regression on x86-64. We should check __SSE2_MATH__ instead of __x86_64__ when disabling x87 inline functions. (cherry picked from commit 409e00bd69b8d8dd74d7327085351d26769ea6fc) Conflicts: ChangeLog NEWS
* Include generic symbol-hacks.h for x32H.J. Lu2014-01-201-1/+1
| | | | | | In BZ #15605 fix with addding memset/memmove alias in symbol-hacks.h, x32 symbol-hacks.h change was missing. Fixed by including <sysdeps/generic/symbol-hacks.h> in x32 symbol-hacks.h.
* Fix sparc 64-bit GMP ifunc resolution in static builds.David S. Miller2013-11-125-5/+5
| | | | | | | | | | [BZ #16150] * sysdeps/sparc/sparc64/multiarch/add_n.S: Resolve to the correct generic symbol in the non-vis3 case in static builds. * sysdeps/sparc/sparc64/multiarch/addmul_1.S: Likewise. * sysdeps/sparc/sparc64/multiarch/mul_1.S: Likewise. * sysdeps/sparc/sparc64/multiarch/sub_n.S: Likewise. * sysdeps/sparc/sparc64/multiarch/submul_1.S: Likewise.
* Fix build on pre-v9 32-bit Sparc.David S. Miller2013-11-071-1/+2
| | | | | | | | | We cannot use fnegd in this code, as fnegd was added in v9. Only fnegs exists in v8 and earlier. [BZ #15985] * sysdeps/sparc/sparc32/fpu/s_fdim.S (__fdim): Do not use fnegd on pre-v9 cpus, use a fnegs+fmovs sequence instead.
* PowerPC: use _dl_static_init to set GLRO(gl_pagesize)Adhemerval Zanella2013-07-234-0/+129
| | | | | | This patch fixes dlfcn/tststatic5 for PowerPC where pagesize variable was not properly initialized in certain cases. This patch is based on other architecture code.
* S/390: ULPs update.Andreas Krebbel2013-07-221-141/+6285
|
* CVE-2013-2207, BZ #15755: Disable pt_chown.Carlos O'Donell2013-07-212-5/+8
| | | | | | | | | | | | | | | | | | | | | | | The helper binary pt_chown tricked into granting access to another user's pseudo-terminal. Pre-conditions for the attack: * Attacker with local user account * Kernel with FUSE support * "user_allow_other" in /etc/fuse.conf * Victim with allocated slave in /dev/pts Using the setuid installed pt_chown and a weak check on whether a file descriptor is a tty, an attacker could fake a pty check using FUSE and trick pt_chown to grant ownership of a pty descriptor that the current user does not own. It cannot access /dev/pts/ptmx however. In most modern distributions pt_chown is not needed because devpts is enabled by default. The fix for this CVE is to disable building and using pt_chown by default. We still provide a configure option to enable hte use of pt_chown but distributions do so at their own risk.
* Update Sparc ULPs.David S. Miller2013-07-201-0/+5
| | | | | * sysdeps/sparc/fpu/libm-test-ulps: Update ULPs to handle minor difference between 32-bit and 64-bit.
* BZ #15711: Avoid circular dependency for syscall.hCarlos O'Donell2013-07-161-2/+9
| | | | | | | | | | | | | | | | | | The generated header is compiled with `-ffreestanding' to avoid any circular dependencies against the installed implementation headers. Such a dependency would require the implementation header to be installed before the generated header could be built (See bug 15711). In current practice the generated header dependencies do not include any of the implementation headers removed by the use of `-ffreestanding'. --- 2013-07-15 Carlos O'Donell <carlos@redhat.com> [BZ #15711] * sysdeps/unix/sysv/linux/Makefile ($(objpfx)bits/syscall%h): Avoid system header dependency with -ffreestanding. ($(objpfx)bits/syscall%d): Likewise.
* Full from-scratch rebuild of sparc ULPs.David S. Miller2013-07-071-238/+73
| | | | * sysdeps/sparc/fpu/libm-test-ulps: Regenerate from scratch.
* Update x86 and x86_64 ulps on AMD FX-8350 with GCC 4.8.1.Jeroen Albers2013-07-052-16/+523
|
* Update powerpc-fpu ULPs.Adhemerval Zanella2013-07-041-22/+146
|
* Sync sys/ptrace with Linux 3.10Andreas Jaeger2013-07-044-5/+80
|
* Update i386 ULPs.Allan McRae2013-07-031-0/+80
| | | | * sysdeps/i386/fpu/libm-test-ulps: Update.
* Update sparc ULPs.David S. Miller2013-07-021-0/+46
| | | | * sysdeps/sparc/fpu/libm-test-ulps: Update.
* Update x86_64 ULPs.Markus Trippelsdorf2013-07-021-2/+318
|
* Regenerate x86 and x86_64 ulps.Joseph Myers2013-07-022-1593/+129
|
* Enable static 32-bit SSE4.2 strcasecmp/strncasecmpH.J. Lu2013-07-022-6/+0
|
* Skip SSE4.2 versions on Intel SilvermontLiubov Dmitrieva2013-06-285-15/+37
| | | | SSE2/SSSE3 versions are faster than SSE4.2 versions on Intel Silvermont.
* PowerPC: Define AT_HWCAP2 bits and AT_HWCAP2 handling for POWER8.Ryan S. Arnold2013-06-285-22/+67
|
* Add GLRO(dl_hwcap2) for new AT_HWCAP2 auxv_t a_type.Ryan S. Arnold2013-06-288-7/+27
|
* Consistently use page_shift in sysdeps/unix/sysv/linux/mmap64.c.Joseph Myers2013-06-281-1/+1
|
* Fix buffers overrun in x86_64 memcmp-ssse3.SLiubov Dmitrieva2013-06-261-4/+2
|
* [BZ #10283] localedef: align fixed maps to SHMLBAMike Frysinger2013-06-241-0/+26
| | | | | | | | | | | | Many Linux arches require fixed mmaps to be aligned higher than pagesize, so use the SHMLBA define as it represents this quantity exactly. This fixes spurious errors seen on those arches like: cannot map archive header: Invalid argument URL: http://sourceware.org/bugzilla/show_bug.cgi?id=10283 Reported-by: CHIKAMA Masaki <masaki.chikama@gmail.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* PowerPC: Enable POWER8 platform sans hwcap bits.Ryan S. Arnold2013-06-246-3/+16
|
* Include <string.h> in sysdeps/unix/sysv/linux/libc_fatal.c.Joseph Myers2013-06-221-0/+1
|
* Add sh4 implementation of fegetexceptflag.Kaz Kojima2013-06-211-0/+38
|
* Rewrite sysd-rules generation using an awk script.Roland McGrath2013-06-171-1/+1
|
* Fix spurious "inexact" exceptions from dbl-64 sqrt (bug 15631).Joseph Myers2013-06-151-2/+15
|
* New API to set default thread attributesSiddhesh Poyarekar2013-06-1510-0/+40
| | | | | | | This patch introduces two new convenience functions to set the default thread attributes used for creating threads. This allows a programmer to set the default thread attributes just once in a process and then run pthread_create without additional attributes.
* Set fast unaligned load flag for new Intel microarchitectureLiubov Dmitrieva2013-06-141-0/+7
| | | | | | | | | I have small patch for new Intel Silvermont machines. http://newsroom.intel.com/community/intel_newsroom/blog/2013/05/06/intel-launches-low-power-high-performance-silvermont-microarchitecture I checked this on my machine and see that strcpy, ... unaligned versions are faster than ssse3 versions.
* Add rtld-memset.S for x86_64Siddhesh Poyarekar2013-06-152-1/+37
| | | | | | Resolves: BZ #15627 Add an assembler version of rtld-memset to avoid using SSE registers.
* Improve precision of clock() function on LinuxSiddhesh Poyarekar2013-06-131-20/+16
| | | | | | | Resolves #12515. Use CLOCK_PROCESS_CPUTIME_ID instead of times to get better precision in the value returned by clock.
* Fix unsafe compiler optimizationAdhemerval Zanella2013-06-122-1/+8
| | | | | | | | GCC 4.8 enables -ftree-loop-distribute-patterns at -O3 by default and this optimization may transform loops into memset/memmove calls. Without proper handling this may generate unexpected PLT calls on GLIBC. This patch fixes by create memset/memmove alias to internal GLIBC __GI_memset/__GI_memmove symbols.
* Set/restore rounding mode only when neededSiddhesh Poyarekar2013-06-122-14/+214
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The most common use case of math functions is with default rounding mode, i.e. rounding to nearest. Setting and restoring rounding mode is an unnecessary overhead for this, so I've added support for a context, which does the set/restore only if the FP status needs a change. The code is written such that only x86 uses these. Other architectures should be unaffected by it, but would definitely benefit if the set/restore has as much overhead relative to the rest of the code, as the x86 bits do. Here's a summary of the performance improvement due to these improvements; I've only mentioned functions that use the set/restore and have benchmark inputs for x86_64: Before: cos(): ITERS:4.69335e+08: TOTAL:28884.6Mcy, MAX:4080.28cy, MIN:57.562cy, 16248.6 calls/Mcy exp(): ITERS:4.47604e+08: TOTAL:28796.2Mcy, MAX:207.721cy, MIN:62.385cy, 15543.9 calls/Mcy pow(): ITERS:1.63485e+08: TOTAL:28879.9Mcy, MAX:362.255cy, MIN:172.469cy, 5660.86 calls/Mcy sin(): ITERS:3.89578e+08: TOTAL:28900Mcy, MAX:704.859cy, MIN:47.583cy, 13480.2 calls/Mcy tan(): ITERS:7.0971e+07: TOTAL:28902.2Mcy, MAX:1357.79cy, MIN:388.58cy, 2455.55 calls/Mcy After: cos(): ITERS:6.0014e+08: TOTAL:28875.9Mcy, MAX:364.283cy, MIN:45.716cy, 20783.4 calls/Mcy exp(): ITERS:5.48578e+08: TOTAL:28764.9Mcy, MAX:191.617cy, MIN:51.011cy, 19071.1 calls/Mcy pow(): ITERS:1.70013e+08: TOTAL:28873.6Mcy, MAX:689.522cy, MIN:163.989cy, 5888.18 calls/Mcy sin(): ITERS:4.64079e+08: TOTAL:28891.5Mcy, MAX:6959.3cy, MIN:36.189cy, 16062.8 calls/Mcy tan(): ITERS:7.2354e+07: TOTAL:28898.9Mcy, MAX:1295.57cy, MIN:380.698cy, 2503.7 calls/Mcy So the improvements are: cos: 27.9089% exp: 22.6919% pow: 4.01564% sin: 19.1585% tan: 1.96086% The downside of the change is that it will have an adverse performance impact on non-default rounding modes, but I think the tradeoff is justified.
* Add exception information to math-tests.h and use it in libm-test.inc.Joseph Myers2013-06-111-0/+18
|
* PowerPC: Merge ports/ dl-procinfo.[ch] with base.Ryan S. Arnold2013-06-112-11/+35
|
* Fix symbol definitions for __clock_* functionsSiddhesh Poyarekar2013-06-116-14/+15
| | | | | | __clock_gettime and other __clock_* functions could result in an extra PLT reference within libc.so if it actually gets used. None of the code currently uses them, which is why this probably went unnoticed.
* Add rounding mode information to math-tests.h and use it in libm-test.inc.Joseph Myers2013-06-101-0/+18
|
* Avoid trailing whitespace in sysdeps/gnu/errlist.c.Joseph Myers2013-06-082-10/+10
|
* Use (void) in no-arguments function definitions.Joseph Myers2013-06-0821-27/+27
|
* Avoid use of "register" as optimization hint.Joseph Myers2013-06-077-16/+16
|
* Fix leading whitespaces.Ondrej Bilka2013-06-0642-83/+83
|
* Remove trailing whitespace.Joseph Myers2013-06-05156-800/+800
|
* Skip modifying exception mask and flags in SET_RESTORE_ROUND_53BITSiddhesh Poyarekar2013-06-051-6/+6
| | | | | We only need to set/restore rounding mode to ensure correct computation for non-default rounding modes.