about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
* Use posix-conf-vars.list to generate spec arraySiddhesh Poyarekar2014-12-297-22/+49
| | | | | | | | | | | | | | | | | | This patch adds support to generate the spec array in getconf from the conf.list. The generated code is mostly unchanged. the only changes are due to the change in layout of the spec and val arrays in the ELF. The val array can also be auto-generated from posix-conf-vars.list once the remaining macros are added to it. * posix/posix-conf-vars.list (SPEC:XBS5): Add sysconf prefix. * posix/confstr.c: Define NEED_SPEC_ARRAY to 0. * posix/posix-envs.def: Likewise. * sysdeps/posix/sysconf.c: Likewise. * posix/getconf.c: Define NEED_SPEC_ARRAY to 1. (specs): Remove array. * scripts/gen-posix-conf-vars.awk: Support generation of specs array.
* Add _POSIX namespace SYSCONF macros to posix-conf-vars.listSiddhesh Poyarekar2014-12-293-78/+174
| | | | | | | | This fixes the remaining -Wundef warnings. Tested on x86_64. * posix/posix-conf-vars.list: Add _POSIX sysconf namespace. * sysdeps/posix/sysconf.c: Include posix-conf-vars.h. (__sysconf): Use CONF_IS_* macros.
* Remove Wundef warnings for specification macrosSiddhesh Poyarekar2014-12-297-38/+191
| | | | | | | | | | | | | | | | | | | | | This patch adds a file posix-conf-vars.list that is used to generate macros to determine if a macro is defined as set, unset or not defined. gen-posix-conf-vars.awk processes this file and generates a header (posix-conf-vars-def.h) with these macros. A new header posix-conf-vars.h includes this generated header and defines accessor macros for the generated macros. Tested on x86_64. * posix/Makefile (before-compile): Add posix-conf-vars-def.h. ($(objpfx)posix-conf-vars-def.h): New target. * posix/posix-conf-vars.list: New file. * posix/posix-conf-vars.h: New file. * posix/confstr.c: Include posix-conf-vars.h. (confstr): Use CONF_IS_* macros. * posix/posix-envs.def: Include posix-conf-vars.h. Use CONF_IS_* macros. * scripts/gen-posix-conf-vars.awk: New file.
* tile: add no-op fe*() routines for libc internal useChris Metcalf2014-12-262-0/+7
| | | | | | | | | These avoid having tile generate real calls to the no-op functions, which then causes linknamespace test failures. It might make sense to factor all of these out into a common header that can be shared by tile, microblaze, etc., but for now just fix the test failures.
* linux/clock_settime: remove unnecessary vDSO definitionsChris Metcalf2014-12-262-9/+3
| | | | | | | | | | | | These definitions were added back before __ASSUME_POSIX_CPU_TIMERS was removed. There used to be a vsyscall to clock_getres() in maybe_syscall_settime_cpu(), but that function was removed in commit 26889eac. The presence of the vsyscall definitions means that platforms that don't provide clock_getres as a vsyscall hit a symbol redefinition warning in this file, becoming fatal with -Werror. Removing the vsyscall definitions is the obvious fix. No change to generated code on x86_64.
* tilegx: fix sysdep.h to avoid a redefinition warningChris Metcalf2014-12-262-3/+7
| | | | | | | | The symbol for HAVE_CLOCK_GETTIME_VSYSCALL was being only conditionally defined under [SHARED]. However, it turns out this causes a preprocessor symbol redefinition warning when building clock_gettime.o. Move the symbol definition down to make it unconditional, like other platforms do.
* tilegx32: avoid a a -Werror warning from unwindingChris Metcalf2014-12-262-1/+6
| | | | | | | The _Unwind_GetCFA() routine returns a 64-bit value, which we interpret as a pointer. Add an intermediate cast to long so that in ILP32 mode we don't get a warning about casting a wrong-sized integer to a pointer.
* tilegx: enable wordsize-64 support for ieee745 dbl-64.Chris Metcalf2014-12-232-0/+5
| | | | | | I missed this during the initial port. Some testing shows that enabling this mode does, unsurprisingly, yield some nice speedups on the math functions in question.
* * string/stpcpy.c (__stpcpy): Rewrite using strlen and memcpy.Richard Earnshaw2014-12-232-8/+6
|
* iconvdata/run-iconv-test.sh: Actually test iconv modulesFlorian Weimer2014-12-232-1/+5
| | | | | Arjun Shankar noticed that this test case was not testing anything because iconv was invoked without the required arguments.
* Make __ASSUME_UTIMES hppa-specific.Joseph Myers2014-12-227-44/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch makes __ASSUME_UTIMES hppa-specific, removing mentions of the macro from architecture-independent code and code for other architectures. (All other architectures either have the utimes syscall in all relevant kernel versions, or use the asm-generic interface so only have utimensat and won't get the utimes syscall.) A similar approach is used to that used for futimesat for MicroBlaze: if the kernel is recent enough that the utimes syscall can be assumed to be present, use the implementation in terms of the utimes syscall, and otherwise use the linux/generic implementation in terms of utimensat. Tested x86_64 that the disassembly of installed shared libraries is unchanged by the patch. Not tested for hppa. * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_UTIMES): Do not define. * sysdeps/unix/sysv/linux/utimes.c: Do not include <kernel-features.h>. (__utimes) [__NR_utimes]: Make code unconditional. (__utimes) [!__ASSUME_UTIMES]: Remove conditional code. * sysdeps/unix/sysv/linux/aarch64/kernel-features.h (__ASSUME_UTIMES): Do not undefine. * sysdeps/unix/sysv/linux/tile/kernel-features.h (__ASSUME_UTIMES): Likewise. * sysdeps/unix/sysv/linux/hppa/kernel-features.h (__ASSUME_UTIMES): Define for [__LINUX_KERNEL_VERSION >= 0x030e00] instead of undefining for [__LINUX_KERNEL_VERSION < 0x030e00]. * sysdeps/unix/sysv/linux/hppa/utimes.c: New file.
* Fix preprocessor indentation in sysdeps/mips/memcpy.S.Steve Ellcey2014-12-222-97/+101
| | | | Checked in as obvious.
* NEWS: mention bug fix for 17747.Chris Metcalf2014-12-221-1/+1
|
* Fix namespace conformance issue with Bessel functions.Chris Metcalf2014-12-224-6/+12
| | | | | | | | | [BZ #17747] The y0/y1/yn and j0/j1/jn functions provided a strong_alias to the "l"-suffixed variants when no long double support is being compiled. This breaks namespace conformance when the basename versions conform but the l-suffixed ones don't. Fixed by making them weak aliases instead.
* tilegx: remove implicit boolean conversion in strstr.Chris Metcalf2014-12-223-2/+8
| | | | | | | | [BZ #17746] The __builtin_expect() truncated a uint64_t to a 32-bit long in ILP32 mode, discarding the high 32 bits, and potentially missing the NUL terminator that we were searching for with SIMD operations. Explicitly compare to zero to fix the problem.
* Update NEWS and ChangeLog with two tile bug fixes.Chris Metcalf2014-12-222-1/+3
| | | | | | | I committed fixes without references to bug numbers. Bug 17744: commit 95dee05f. Bug 17745: commit e969965a.
* 2014-12-22 Steve Ellcey <sellcey@imgtec.com>Steve Ellcey2014-12-222-0/+9
| | | | | * sysdeps/unix/mips/sysdep.h (__mips_isa_rev): Set to zero if not already defined.
* Split __kernel_standard* functions (fixes bug 17724).Joseph Myers2014-12-226-93/+169
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug 17724 reports references to fesetround being brought in by ldbl-128ibm rintl via references to __rintl from __kernel_standard_l. Because all three __kernel_standard* functions are in the same file, this gets brought in even though only the long double version __kernel_standard_l needs __rintl, and the C90 functions use only __kernel_standard. This patch fixes this by splitting the three versions into separate files; it's fine for long double functions to refer to fe* functions directly, unless they get called by C90 double functions. Tested for x86_64 (testsuite; the reordering of code means disassembly of shared libraries can't usefully be compared). Tested for powerpc that the relevant issue disappears from the linknamespace test output. [BZ #17724] * sysdeps/ieee754/k_standard.c: Don't include <float.h>. (__kernel_standard_f): Remove. Moved to k_standardf.c. (__kernel_standard_l): Remove. Moved to k_standardl.c with (char *) casts added. * sysdeps/ieee754/k_standardf.c: New file. * sysdeps/ieee754/k_standardl.c: Likewise. * math/Makefile (libm-support): Remove k_standard. (libm-calls): Add k_standard.
* Remove trailing whitespace.Steve Ellcey2014-12-221-1/+1
|
* Add missing ChangeLog entries from Friday (Dec 19, 2014).Steve Ellcey2014-12-221-0/+20
|
* Optimize to avoid an unnecessary FPCR read.Wilco Dijkstra2014-12-221-0/+5
|
* Optimize to reduce FPCR/FPSR accesses.Wilco Dijkstra2014-12-221-0/+5
|
* Call libc_fetestexcept_aarch64.Wilco Dijkstra2014-12-222-7/+7
|
* Call libc_fesetround_aarch64.Wilco Dijkstra2014-12-222-20/+10
|
* Fix resolver bind, getsockname namespace (bug 17733).Joseph Myers2014-12-224-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | On Linux architectures using socketcall, the resolver ends up bringing in strong symbols for bind and getsockname, which are not in POSIX.1-1996. This causes linknamespace test failures: FAIL: conform/POSIX/pthread.h/linknamespace FAIL: conform/POSIX/sched.h/linknamespace FAIL: conform/POSIX/time.h/linknamespace These functions are defined as strong symbols with __bind and __getsockname as weak aliases. This patch switches this to the other way round by removing the NO_WEAK_ALIAS definitions and so letting the default case in socket.S act; I see no reason for the existing arrangements. Tested for x86 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch). [BZ #17733] * sysdeps/unix/sysv/linux/bind.S (NO_WEAK_ALIAS): Do not define. (__bind): Do not define as weak alias. * sysdeps/unix/sysv/linux/getsockname.S (NO_WEAK_ALIAS): Do not define. (__getsockname): Do not define as weak alias.
* Require bison 2.7 or newer for regenerating intl/plural.yWill Newton2014-12-225-17/+65
| | | | | | | | | | | | | | | | | | | The merge of the latest gettext code introduced changes to the yacc parser source that are incompatible with versions of bison older than 2.7. Add a configure check for the appropriate versions and document the requirement in INSTALL. ChangeLog: 2014-12-22 Will Newton <will.newton@linaro.org> * manual/install.texi: Document that we require bison 2.7 or above. * INSTALL: Regenerate. * configure.ac: Use AC_CHECK_PROG_VER instead of AC_PATH_PROG when checking for bison and check for version 2.7 or above. * configure: Regenerate.
* tile: separate ffsll from ffsChris Metcalf2014-12-213-11/+36
| | | | | This avoids a linknamespace failure when ffs is legal but ffsll is not.
* tile: remove localplt.data and use generic one again.Chris Metcalf2014-12-212-18/+4
| | | | With the __tls_get_addr removed, it works for tile.
* Add hidden __tls_get_addr/___tls_get_addr aliasH.J. Lu2014-12-217-15/+34
| | | | | | | | | | | | | | | | | | | | __tls_get_addr/___tls_get_addr is always defined in ld.so. There is no need to call them via PLT inside ld.so. This patch adds the hidden __tls_get_addr/___tls_get_addr aliases and calls them directly from _dl_tlsdesc_dynamic. There is no need to set up the EBX register in i386 _dl_tlsdesc_dynamic when calling the hidden ___tls_get_addr. * elf/dl-tls.c (__tls_get_addr): Provide the hidden definition if not defined. * sysdeps/i386/dl-tls.h (___tls_get_addr): Provide the hidden definition. * sysdeps/i386/dl-tlsdesc.S (_dl_tlsdesc_dynamic): Call the hidden ___tls_get_addr. * sysdeps/x86_64/dl-tlsdesc.S (_dl_tlsdesc_dynamic): Call the hidden __tls_get_addr. * sysdeps/generic/localplt.data (__tls_get_addr): Removed. * sysdeps/unix/sysv/linux/i386/localplt.data (___tls_get_addr): Likewise.
* m68k: remove @PLTPC from _dl_init callAndreas Schwab2014-12-212-1/+6
|
* Fix changelog typoAndreas Schwab2014-12-211-1/+0
|
* Remove @PLT from "call _dl_init@PLT" in _dl_start_userH.J. Lu2014-12-213-2/+9
| | | | | | | | | | _dl_start_user in ld.so calls the local function _dl_init. There is no need to go through PLT. * sysdeps/i386/dl-machine.h (_dl_start_user): Remove @PLT from "call _dl_init@PLT". * sysdeps/x86_64/dl-machine.h (_dl_start_user): Likewise. from "call _dl_init@PLT".
* manual: Correct guarantee about pointers compared by qsort()Anders Kaseorg2014-12-212-6/+13
| | | | | | | C99, C11, POSIX, and the glibc implementation do guarantee that the pointers passed to the qsort comparison function lie within the array. Signed-off-by: Anders Kaseorg <andersk@mit.edu>
* tile: provide localplt.data with __tls_get_addr optionalChris Metcalf2014-12-202-0/+22
|
* tilegx: fix strstr to build and link betterChris Metcalf2014-12-192-1/+7
| | | | | | | | The two_way_short_needle() routine included from str-two-way.h is not used, so mark it so to avoid compiler warnings. Calling strnlen() breaks linknamespace tests, so change it to __strnlen().
* Remove trailing white space.Steve Ellcey2014-12-191-1/+0
|
* 2014-12-19 Steve Ellcey <sellcey@imgtec.com>Steve Ellcey2014-12-196-0/+182
| | | | | | | | | | * sysdeps/mips/addmul_1.S (__mpn_addmul_1): Use mulu/muhu instead of multu on MIPSr6. * sysdeps/mips/mul_1.S (__mpn_mul_1): Ditto. * sysdeps/mips/submul_1.S (__mpn_submul_1): Ditto. * sysdeps/mips/mips64/addmul_1.S (__mpn_addmul_1): Ditto. * sysdeps/mips/mips64/mul_1.S (__mpn_mul_1): Ditto. * sysdeps/mips/mips64/submul_1.S (__mpn_submul_1): Ditto.
* 2014-12-19 Steve Ellcey <sellcey@imgtec.com>Steve Ellcey2014-12-192-4/+16
| | | | | | | | | | * sysdeps/mips/sys/asm.h (PTR_ADDU): Use addu on mips32r6/mips64r6. (PTR_ADDIU): Use addiu for mips32r6/mips64r6. (PTR_SUBU): Use subu for mips32r6/mips64r6. (PTR_SUBIU): Use subu for mips32r6/mips64r6 (subiu does not exist). * sysdeps/mips/machine-gmon.h (PTR_ADDU_STRING) Use addu for mips32r6/mips64r6. (PTR_SUBU_STRING) Use subu for mips32r6/mips64r6.
* Simplify strncat.Ondřej Bílka2014-12-192-44/+7
| | | | | We rewrite strncat to use strnlen and malloc calls which simplifies code an is faster as these functions are better optimized than original code.
* Fix soft-fp build warning on sparc about strict aliasing.David S. Miller2014-12-192-6/+14
| | | | | * sysdeps/sparc/sparc32/soft-fp/q_neg.c (_Q_neg): Use a union to access the quad as both a long double and as a series of 4 words.
* Fix array bounds warnings in elf_get_dyanmic_info() on sparc with gcc-4.6David S. Miller2014-12-192-1/+15
| | | | | * get-dynamic-info.h (elf_get_dynamic_info): Ignore -Warray-bounds for a link_map->l_info array access.
* iconvdata/tst-loading: bump up timeout to 10sChris Metcalf2014-12-192-0/+3
|
* math: increase timeout for math/atest-*.cChris Metcalf2014-12-194-0/+9
| | | | | These tests run in the 2-5 second range on tilegx, so just bump up the timeout to 10 seconds generically.
* Replace -Wno-error with -fno-builtin-lroundH.J. Lu2014-12-192-2/+7
|
* i386: Move futex functions from lowlevellock.h to lowlevellock-futex.h.Torvald Riegel2014-12-193-110/+167
|
* Use generic lowlevellock-futex.h in x86_64 lowlevellock.h.Torvald Riegel2014-12-193-120/+40
|
* sh: Remove custom lowlevellock, barrier, condvar, and rwlock implementations.Torvald Riegel2014-12-1920-5572/+22
|
* Compile s_llround.c with -Wno-error for x32 buildH.J. Lu2014-12-192-0/+10
| | | | | | Since x32 returns 32-bit long int and 64-bit long long int in the same 64-bit register, we make the 32b-bit lround an alias of the 64-bit llround. Add -Wno-error for x32 build to silence the compiler.
* Replace 1L with (mp_limb_t) 1H.J. Lu2014-12-192-1/+6
| | | | | | | | | | | | | | | X86-64 and x32 use sysdeps/i386/ldbl2mpn.c. res_ptr is a pointer to mp_limb_t, which is long for i386 and x86-64 and long long for x32. On x32, I got ../sysdeps/x86_64/../i386/ldbl2mpn.c: In function ‘__mpn_extract_long_double’: ../sysdeps/x86_64/../i386/ldbl2mpn.c:72:4: error: left shift count >= width of type [-Werror] res_ptr[N - 1] &= ~(1L << ((LDBL_MANT_DIG - 1) % BITS_PER_MP_LIMB)); ^ cc1: all warnings being treated as errors This patch replaces 1L with (mp_limb_t) 1. Verified on x32, i686 and x86-64 with GCC 4.8.3.
* Label CVE-2014-9402 in NEWSAllan McRae2014-12-181-2/+3
|