about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
* longlong: add SH FDPIC supportAndrew Stubbs2016-01-072-0/+36
|
* longlong.h: Disable alpha umul_ppmm for old g++Richard Henderson2016-01-072-0/+8
| | | | Causes "unexpected AST of kind MULT_HIGHPART" error with bootstrap from gcc 4.8.
* xstat: only check to see if __ASSUME_ST_INO_64_BIT is definedMike Frysinger2016-01-075-5/+13
| | | | | | | | We define __ASSUME_ST_INO_64_BIT by default for Linux targets, and then undef it for alpha/sh targets. But the code that uses it looks at its value (as 0/1) rather than whether it's defined (like all other assume knobs). Change the code to see if it's defined to fix build Wundef build errors for alpha/sh.
* Update timezone code from tzcode 2015g.Paul Eggert2016-01-0710-918/+1476
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch updates the timezone code from tzcode 2015g. The Makefile and README changes are based on those in Paul's patch <https://sourceware.org/ml/libc-alpha/2015-05/msg00553.html>. Tested for x86_64 and x86. 2016-01-06 Paul Eggert <eggert@cs.ucla.edu> Joseph Myers <joseph@codesourcery.com> * timezone/private.h: Update from tzcode 2015g. * timezone/tzfile.h: Likewise. * timezone/tzselect.ksh: Likewise. * timezone/zdump.c: Likewise. * timezone/zic.c: Likewise. * timezone/ialloc.c: Remove file. * timezone/scheck.c: Likewise. * timezone/Makefile (extra-objs): Remove variable. ($(objpfx)zic): Do not depend on scheck.o and ialloc.o. (tz-cflags): Add -DHAVE_GETTEXT -DUSE_LTZ=0 -Wno-maybe-uninitialized. (CFLAGS-zdump.c): Remove -fwrapv -DNOID -DHAVE_GETTEXT. (CFLAGS-zic.c): Remove -DNOID -DHAVE_GETTEXT. (CFLAGS-ialloc.c): Remove variable. (CFLAGS-scheck.c): Likewise. * timezone/README: Update list of files from tzcode.
* argp: Use fwrite_unlocked instead of __fxprintf when !_LIBCKhem Raj2016-01-072-0/+9
| | | | | __fxprintf is not available when argp is built outside libc. gnulib has the same logic already.
* Make shebang interpreter directives consistentMarko Myllynen2016-01-0766-64/+134
|
* hppa: fix pthread spinlockJohn David Anglin2016-01-063-8/+47
| | | | URL: https://bugs.debian.org/725508
* Update copyright dates committed in 2016H.J. Lu2016-01-064-4/+4
|
* Mark internal unistd functions hidden in ld.soH.J. Lu2016-01-064-1/+70
| | | | | | | | | | | | Since internal unistd functions are only used internally in ld.so and libc.so, they can be made hidden. __close, __getcwd, __getpid, __libc_read and __libc_write can't be hidden in ld.so on Hurd since they will be preempted by the ones in libc.so after bootstrap. [BZ #19122] * include/unistd.h [IS_IN (rtld)]: Include <dl-unistd.h>. * sysdeps/generic/dl-unistd.h: New file. * sysdeps/mach/hurd/dl-unistd.h: Likewise.
* Mark ld.so internal mmap functions hidden in ld.soH.J. Lu2016-01-064-0/+56
| | | | | | | | | | | Since ld.so internal mmap functions are only used internally in ld.so, they can be made hidden. Don't hide __mmap on Hurd, since __mmap in ld.so will be preempted by the one in libc.so after bootstrap. [BZ #19122] * include/sys/mman.h [IS_IN (rtld)]: Include <dl-mman.h>. * sysdeps/generic/dl-mman.h: New file. * sysdeps/mach/hurd/dl-mman.h: Likewise.
* Update miscellaneous files from upstream sources.Joseph Myers2016-01-055-634/+1617
| | | | | | | | | | | This patch updates texinfo.tex, config.guess, config.sub and move-if-change from their respective upstream sources. * manual/texinfo.tex: Update to version 2016-01-04.21 with trailing whitespace removed. * scripts/config.guess: Update to version 2016-01-01. * scripts/config.sub: Update to version 2016-01-01. * scripts/move-if-change: Update from gnulib.
* Eliminate redundant sign extensions in pow()Anton Blanchard2016-01-042-2/+10
| | | | | | | | When looking at the code generated for pow() on ppc64 I noticed quite a few sign extensions. Making the array indices unsigned reduces the number of sign extensions from 24 to 7. Tested for powerpc64le and x86_64.
* Update copyright dates not handled by scripts/update-copyrights.Joseph Myers2016-01-0428-27/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I've updated copyright dates in glibc for 2016. This is the patch for the changes not generated by scripts/update-copyrights and subsequent build / regeneration of generated files. * NEWS: Update copyright dates. * catgets/gencat.c (print_version): Likewise. * csu/version.c (banner): Likewise. * debug/catchsegv.sh: Likewise. * debug/pcprofiledump.c (print_version): Likewise. * debug/xtrace.sh (do_version): Likewise. * elf/ldconfig.c (print_version): Likewise. * elf/ldd.bash.in: Likewise. * elf/pldd.c (print_version): Likewise. * elf/sotruss.sh: Likewise. * elf/sprof.c (print_version): Likewise. * iconv/iconv_prog.c (print_version): Likewise. * iconv/iconvconfig.c (print_version): Likewise. * locale/programs/locale.c (print_version): Likewise. * locale/programs/localedef.c (print_version): Likewise. * login/programs/pt_chown.c (print_version): Likewise. * malloc/memusage.sh (do_version): Likewise. * malloc/memusagestat.c (print_version): Likewise. * malloc/mtrace.pl: Likewise. * manual/libc.texinfo: Likewise. * nptl/version.c (banner): Likewise. * nscd/nscd.c (print_version): Likewise. * nss/getent.c (print_version): Likewise. * nss/makedb.c (print_version): Likewise. * posix/getconf.c (main): Likewise. * scripts/test-installation.pl: Likewise. * sysdeps/unix/sysv/linux/lddlibc4.c (main): Likewise.
* Update copyright dates with scripts/update-copyrights.Joseph Myers2016-01-049048-9045/+9063
|
* hppa: Add MAP_HUGETLB and MAP_STACK defines [BZ #19285]Helge Deller2016-01-022-13/+16
| | | | | | | | | The attached patch adds some upstream defines like MAP_HUGETLB and MAP_STACK in mman.h for the hppa architecture. The existing MADV_xxK_PAGES defines were dropped upstream, because they were originally added many years ago based on a proposed patch for the Linux kernel which was never applied. So, this patch drops those unneeded defines.
* ia64: fpu: fix gamma definition handling [BZ #15421]Mike Frysinger2016-01-014-16/+36
| | | | | | | The rework in commit d709042a6e5ab3c360280faad6f9538a34dc8eea broke buiding on ia64 due to compat_symbol expanding into ... in some cases. The common files were wrapped in a BUILD_LGAMMA check, but the ia64 ones were not. Add that logic to the ia64 files too.
* Fix linux personality syscall wrapperDmitry V. Levin2015-12-3116-3/+139
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The personality system call, starting with linux kernel commit v2.6.29-6609-g11d06b2a1e5658f448a308aa3beb97bacd64a940, always successfully changes the personality if requested. The syscall wrapper, however, still can return an error in the following cases: - the value returned by the system call looks like an error due to architecture limitations of 32-bit kernels; - a personality greater than 0xffffffff is passed to the system call, and the 64-bit kernel does not have commit v2.6.35-rc1-372-g485d527686850d68a0e9006dd9904f19f122485e that would truncate this value to unsigned int; - on sparc64, the value returned by the system call looks like an error due to sparc64 kernel sign extension bug. The solution is three-fold: - move generic syscalls.list personality entry to generic 64-bit syscalls.list file; - for each 32-bit architecture that use negated errno semantics, add a NOERRNO personality entry to their syscalls.list file; - for sparc64 and 32-bit architectures that use dedicated registers to flag syscall errors, add a wrapper around personality syscall; if the system call return value is flagged as an error, this wrapper returns the negated "would be errno" value, otherwise it returns the system call return value; on sparc64, it also truncates the personality argument to unsigned int before passing it to the kernel. [BZ #19408] * sysdeps/unix/sysv/linux/personality.c: New file. * sysdeps/unix/sysv/linux/sparc/sparc64/personality.c: Likewise. * sysdeps/unix/sysv/linux/tst-personality.c: Likewise. * sysdeps/unix/sysv/linux/Makefile [$(subdir) == misc] (sysdep_routines): Add personality. (tests): Add tst-personality. * sysdeps/unix/sysv/linux/syscalls.list (personality): Move ... * sysdeps/unix/sysv/linux/wordsize-64/syscalls.list: ... here. * sysdeps/unix/sysv/linux/arm/syscalls.list (personality): New entry. * sysdeps/unix/sysv/linux/hppa/syscalls.list (personality): Likewise. * sysdeps/unix/sysv/linux/i386/syscalls.list (personality): Likewise. * sysdeps/unix/sysv/linux/m68k/syscalls.list (personality): Likewise. * sysdeps/unix/sysv/linux/microblaze/syscalls.list (personality): Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list (personality): Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/syscalls.list (personality): Likewise. * sysdeps/unix/sysv/linux/sh/syscalls.list (personality): Likewise. * sysdeps/unix/sysv/linux/x86_64/x32/syscalls.list (personality): Likewise.
* Cleanup ARM ioperm implementation (step 2)Aurelien Jarno2015-12-303-93/+14
| | | | | | | | | | | | | | | | | | Since GLIBC requires a minimum 2.6.32 kernel, the sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*) is always available. We can therefore remove the fallback code reading /etc/arm_systype or parsing /proc/cpuinfo. Remove fscanf from localplt.data as it is no longer called from within GLIBC. * sysdeps/unix/sysv/linux/arm/ioperm.c: Do not include <string.h>. (PATH_ARM_SYSTYPE): Remove. (PATH_CPUINFO): Likewise. (IO_BASE_FOOTBRIDGE): Likewise. (IO_SHIFT_FOOTBRIDGE): Likewise. (struct platform): Likewise. (init_iosys): Remove compatibility code for 2.4 kernels. * sysdeps/unix/sysv/linux/arm/localplt.data: Remove fscanf.
* localedata: nl_NL@euro: copy measurement from nl_NL [BZ #19198]Mike Frysinger2015-12-292-2/+6
| | | | | No real changes here as the output is the same. Just making the input a little bit nicer.
* malloc: Test various special cases related to allocation failuresFlorian Weimer2015-12-293-1/+452
| | | | | | | | | | | | | | | | This test case exercises unusual code paths in allocation functions, related to allocation failures. Specifically, the test can reveal the following bugs: (a) calloc returns non-zero memory on fallback to sysmalloc. (b) calloc can self-deadlock because it fails to release the arena lock on certain allocation failures. (c) pvalloc can dereference a NULL arena pointer. (a) and (b) appear specific to a faulty downstream backport. (c) was fixed as part of commit 10ad46bc6526edc5c7afcc57112da96917ff3629. The test for (a) was inspired by a reproducer supplied by Jeff Layton.
* localedata: bg_BG: use colon as time separator [BZ #19385]Damyan Ivanov2015-12-292-2/+8
| | | | | | | | | | | | | The only official source is the "Official spelling dictionary of the Bulgarian language, Prosveta 2012", which states there are three ways to separate time components: comma, colon and dot. That same dictionary doesn't say which one is preferred. So I turned to the mailing list of the translators of free software in Bulgarian. The consensus is that colon is the only separator that is widely used in Bulgarian texts and everything else will just be confusing. URL: http://lists.ludost.net/pipermail/dict/2015-December/000538.html
* list-fixed-bugs: use argparse for the commandlineMike Frysinger2015-12-292-1/+25
| | | | This makes the interface more friendly to users.
* resolv: Reset defdname before use in __res_vinit [BZ #19369]Rob Wu2015-12-292-0/+6
| | | | | | | | | | Resetting defdname (default domain name) before use in __res_vinit ensures that the default domain name is correctly set to a default value when it is not set by the LOCALDOMAIN environment variable or the "domain" or "search" parameters in resolv.conf Tested using the steps from: https://sourceware.org/bugzilla/show_bug.cgi?id=19369
* hppa: Define __NO_LONG_DOUBLE_MATH so headers are consistent with libm build ↵John David Anglin2015-12-292-2/+12
| | | | | | | | | | [BZ #19270] The attached patch fixes BZ #19270 and the Debian gmt package now builds successfully. Aside from the comment, the define of __NO_LONG_DOUBLE_MATH is similar to that in the generic version of glibc. Build tested on hppa-unknown-linux-gnu with no observed regressions.
* ia64: fpu: fix gammaf typo [BZ #15421]Mike Frysinger2015-12-282-4/+9
| | | | | The lgamma rewrite in commit d709042a6e5ab3c360280faad6f9538a34dc8eea used "gammaf" in this function when it should have used "gamma".
* Fix getaddrinfo bug number in ChangeLog and NEWS filesDmitry V. Levin2015-12-232-2/+2
| | | | | This amends commit 34a9094f49241ebb72084c536cf468fd51ebe3ec that erroneously mentions number 11869 instead of 11884.
* Do not violate mutex destruction requirements.Torvald Riegel2015-12-235-13/+44
| | | | | | | | | | | | | | | | | | POSIX and C++11 require that a thread can destroy a mutex if no other thread owns the mutex, is blocked on the mutex, or will try to acquire it in the future. After destroying the mutex, it can reuse or unmap the underlying memory. Thus, we must not access a mutex' memory after releasing it. Currently, we can load the private flag after releasing the mutex, which is fixed by this patch. See https://sourceware.org/bugzilla/show_bug.cgi?id=13690 for more background. We need to call futex_wake on the lock after releasing it, however. This is by design, and can lead to spurious wake-ups on unrelated futex words (e.g., when the mutex memory is reused for another mutex). This behavior is documented in the glibc-internal futex API and in recent drafts of the Linux kernel's futex documentation (see the draft_futex branch of git://git.kernel.org/pub/scm/docs/man-pages/man-pages.git).
* malloc: Update comment for list_lockFlorian Weimer2015-12-232-3/+8
|
* powerpc: Export __parse_hwcap_and_convert_at_platform to libc.a.Carlos Eduardo Seo2015-12-222-0/+13
| | | | | | | | | Commit 67385a01d229751569b6aac067ffdcd813a15d7a added a new feature for powerpc, where we store HWCAP/Platform bits in the TCB. In the dynamic linking case, we use the versioned symbol '__parse_hwcap_and_convert_at_platform' to verify if this feature is available. However, the same symbol was not exported to libc.a, making it not possible for GCC to check for it prior to link time.
* powerpc: Add basic support for POWER9 sans hwcap.Carlos Eduardo Seo2015-12-2210-2/+30
| | | | This patch adds the minimum changes for supporting the POWER9 processor.
* Harmonize generic stdio-lock support with nptlSamuel Thibault2015-12-222-5/+34
| | | | | | | | | | | | | | This fixes build when _IO_funlockfile is a macro, fixes build where _IO_acquire_lock_clear_flags2 is used, and fixes unlocking on unexpected stack unwind. * sysdeps/generic/stdio-lock.h [__EXCEPTIONS] (_IO_acquire_lock, _IO_release_lock ): Use cleanup attribute on new _IO_acquire_lock_file variable instead of assuming that _IO_release_lock will be called. [!__EXCEPTIONS] (_IO_acquire_lock): Define to non-existing _IO_acquire_lock_needs_exceptions_enabled. (_IO_acquire_lock_clear_flags2): New macro.
* powerpc: Regenerate libm-test-ulpsAdhemerval Zanella2015-12-222-169/+203
| | | | * sysdeps/powerpc/fpu/libm-test-ulps: Regenerated.
* malloc: Fix list_lock/arena lock deadlock [BZ #19182]Florian Weimer2015-12-213-18/+73
| | | | | | | | | | | | | | | | | | * malloc/arena.c (list_lock): Document lock ordering requirements. (free_list_lock): New lock. (ptmalloc_lock_all): Comment on free_list_lock. (ptmalloc_unlock_all2): Reinitialize free_list_lock. (detach_arena): Update comment. free_list_lock is now needed. (_int_new_arena): Use free_list_lock around detach_arena call. Acquire arena lock after list_lock. Add comment, including FIXME about incorrect synchronization. (get_free_list): Switch to free_list_lock. (reused_arena): Acquire free_list_lock around detach_arena call and attached threads counter update. Add two FIXMEs about incorrect synchronization. (arena_thread_freeres): Switch to free_list_lock. * malloc/malloc.c (struct malloc_state): Update comments to mention free_list_lock.
* Consolidate sincos computation for 2.426265 < |x| < 105414350Siddhesh Poyarekar2015-12-213-281/+132
| | | | | | | Like the previous change, exploit the fact that computation for sin and cos is identical except that it is apart by a quadrant. Also remove csloww, csloww1 and csloww2 since they can easily be expressed in terms of sloww, sloww1 and sloww2.
* Consolidate sin and cos code for 105414350 <|x|< 281474976710656Siddhesh Poyarekar2015-12-213-146/+124
| | | | | | The sin and cos computation for this range of input is identical except for a difference in quadrants by 1. Exploit that fact and the common argument reduction to reduce computations for sincos.
* Consolidate range reduction in sincos for x > 281474976710656Siddhesh Poyarekar2015-12-213-2/+66
| | | | | | Range reduction needs to be done only once for sin and cos, so copy over all of the relevant functions (__sin, __cos, reduce_and_compute) and consolidate common code.
* Fix up ChangeLogSiddhesh Poyarekar2015-12-211-3/+3
|
* i386: move ULPs to i686/multiarch and regenerate new ones for i386Aurelien Jarno2015-12-203-56/+2252
| | | | | | | | | | | | | The i386 ULPs are actually the i686/multiarch ones. The i686/multiarch float ULPs are more precise as the SSE2 version (when available) uses double for the cosf and sinf functions. On the other hand the higher precision of the x86 FPU improves the precision for a few other math functions. * sysdeps/i386/fpu/libm-test-ulps: Move to .... * sysdeps/i386/i686/multiarch/fpu/libm-test-ulps: ...here. * sysdeps/i386/fpu/libm-test-ulps: Regenerate.
* Added memset optimized with AVX512 for KNL hardware.Andrew Senkevich2015-12-198-4/+244
| | | | | | | | | | | | | | | It shows improvement up to 28% over AVX2 memset (performance results attached at <https://sourceware.org/ml/libc-alpha/2015-12/msg00052.html>). * sysdeps/x86_64/multiarch/memset-avx512-no-vzeroupper.S: New file. * sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Added new file. * sysdeps/x86_64/multiarch/ifunc-impl-list.c: Added new tests. * sysdeps/x86_64/multiarch/memset.S: Added new IFUNC branch. * sysdeps/x86_64/multiarch/memset_chk.S: Likewise. * sysdeps/x86/cpu-features.h (bit_Prefer_No_VZEROUPPER, index_Prefer_No_VZEROUPPER): New. * sysdeps/x86/cpu-features.c (init_cpu_features): Set the Prefer_No_VZEROUPPER for Knights Landing.
* Remove unused variable in math/atest-exp2.c.Torvald Riegel2015-12-182-5/+4
|
* Fix SYSCALL_CANCEL for empty argumetnsAdhemerval Zanella2015-12-172-8/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes the SYSCALL_CANCEL macro for usage with zero argument number (for instance SYSCALL_CANCEL (pause)) using a similar approach used for SOCKETCALL_CANCEL. GLIBC build still does not hit this issue still since SYSCALL_CANCEL is not currently being used for zero arguments calls. Tested on i386, x86_64, powerpc64le, aarch64. * sysdeps/unix/sysdep.h (SYSCALL_CANCEL): Fix macro for zero argument syscalls. (__SYSCALL0): New macro. (__SYSCALL1): Likewise. (__SYSCALL2): Likewise. (__SYSCALL3): Likewise. (__SYSCALL4): Likewise. (__SYSCALL5): Likewise. (__SYSCALL6): Likewise. (__SYSCALL7): Likewise. (__SYSCALL_CONCAT_X): Likewise. (__SYSCALL_CONCAT): Likewise. (__SYSCALL_DIST): Likewise. (__SYSCALL_CALL): Likewise.
* Provide x32 timesH.J. Lu2015-12-172-0/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since times returns 64-bit clock_t on x32, we need to provide x32 times by redefining INTERNAL_SYSCALL_NCS and INTERNAL_SYSCALL_ERROR_P with 64-bit return type for syscall. All system calls returning 64-bit integer, which are lseek, time and times, must be handled specially for x32. lseek is handled by x32 lseek.S and time doesn't check syscall return. times is the only missed one. Before this patch, there are 0000000 <__times>: 0: b8 64 00 00 40 mov $0x40000064,%eax 5: 0f 05 syscall 7: 48 63 d0 movslq %eax,%rdx ^^^^^^^^^^ Incorrect signed extension a: 48 83 fa f2 cmp $0xfffffffffffffff2,%rdx e: 75 07 jne 17 <__times+0x17> 10: 3d 00 f0 ff ff cmp $0xfffff000,%eax ^^^^^^^^^^^^^^^^^^^^^ 32-bit compare 15: 77 11 ja 28 <__times+0x28> 17: 48 83 fa ff cmp $0xffffffffffffffff,%rdx 1b: b8 00 00 00 00 mov $0x0,%eax 20: 48 0f 45 c2 cmovne %rdx,%rax 24: c3 retq After this patch, there are 00000000 <__times>: 0: b8 64 00 00 40 mov $0x40000064,%eax 5: 0f 05 syscall 7: 48 83 f8 f2 cmp $0xfffffffffffffff2,%rax b: 75 08 jne 15 <__times+0x15> d: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax 13: 77 13 ja 28 <__times+0x28> 15: 48 83 f8 ff cmp $0xffffffffffffffff,%rax 19: ba 00 00 00 00 mov $0x0,%edx 1e: 48 0f 44 c2 cmove %rdx,%rax 22: c3 retq The incorrect signed extension and 32-bit compare are gone. [BZ #19363] * sysdeps/unix/sysv/linux/x86_64/x32/times.c: New file.
* Fix POWER7 logb results for negative subnormals (bug 19375)Adhemerval Zanella2015-12-172-0/+6
| | | | | | | | | | | | | | | | The optimized POWER7 logb implementation does not use the absolute value of the word extracted from the input to apply the leading 0-bits builtin (to ignore the float sign). This patch fixes it by clearing the signal bit in the resulting word. It fixes the subnormal tests failures when running on POWER7 ou newer chip. Tested on powerpc64le (POWER8). [BZ# 19375] * sysdeps/powerpc/power7/fpu/s_logb.c (__logb): Fix return for negative subnormals.
* Add REGISTERS_CLOBBERED_BY_SYSCALL for x86-64H.J. Lu2015-12-162-2/+12
| | | | | | | | | | | X86-64 system calls use a different calling convention, which clobbers CC, %r11 an %rcx registers. Define REGISTERS_CLOBBERED_BY_SYSCALL for x86-64 inline asm statements. * sysdeps/unix/sysv/linux/x86_64/sysdep.h (REGISTERS_CLOBBERED_BY_SYSCALL): New. (INTERNAL_SYSCALL_NCS): Use it. (INTERNAL_SYSCALL_NCS_TYPES): Likewise.
* malloc: Fix attached thread reference count handling [BZ #19243]Florian Weimer2015-12-164-5/+239
| | | | | | | | | | | | | | | | reused_arena can increase the attached thread count of arenas on the free list. This means that the assertion that the reference count is zero is incorrect. In this case, the reference count initialization is incorrect as well and could cause arenas to be put on the free list too early (while they still have attached threads). * malloc/arena.c (get_free_list): Remove assert and adjust reference count handling. Add comment about reused_arena interaction. (reused_arena): Add comments abount get_free_list interaction. * malloc/tst-malloc-thread-exit.c: New file. * malloc/Makefile (tests): Add tst-malloc-thread-exit. (tst-malloc-thread-exit): Link against libpthread.
* Add missing ChangeLog entriesH.J. Lu2015-12-151-0/+9
|
* Add Prefer_MAP_32BIT_EXEC to map executable pages with MAP_32BIT hjl/32bit/masterH.J. Lu2015-12-154-0/+124
| | | | | | | | | | | | | | | | | | | | | According to Silvermont software optimization guide, for 64-bit applications, branch prediction performance can be negatively impacted when the target of a branch is more than 4GB away from the branch. Add the Prefer_MAP_32BIT_EXEC bit so that mmap will try to map executable pages with MAP_32BIT first. NB: MAP_32BIT will map to lower 2GB, not lower 4GB, address. Prefer_MAP_32BIT_EXEC reduces bits available for address space layout randomization (ASLR), which is always disabled for SUID programs and can only be enabled by setting environment variable, LD_PREFER_MAP_32BIT_EXEC. On Fedora 23, this patch speeds up GCC 5 testsuite by 3% on Silvermont. [BZ #19367] * sysdeps/unix/sysv/linux/wordsize-64/mmap.c: New file. * sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/64/mmap.c: Likewise. * sysdeps/x86/cpu-features.h (bit_Prefer_MAP_32BIT_EXEC): New. (index_Prefer_MAP_32BIT_EXEC): Likewise.
* Enable Silvermont optimizations for Knights LandingH.J. Lu2015-12-152-0/+8
| | | | | | | | Knights Landing processor is based on Silvermont. This patch enables Silvermont optimizations for Knights Landing. * sysdeps/x86/cpu-features.c (init_cpu_features): Enable Silvermont optimizations for Knights Landing.
* Don't emit invalid extra shift character at block boundary by iconv (bug 17197)Andreas Schwab2015-12-158-6/+116
|
* Fix aliasing violation in tst-rec-dlopenFlorian Weimer2015-12-152-1/+6
|