about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* NPTL: Move fork state variables to initializer files.Roland McGrath2014-12-174-8/+10
|
* NPTL: Remove gratuitous Linuxisms from gai_misc.h.Roland McGrath2014-12-172-6/+11
|
* Fix stub __if_freenameindex build error.Roland McGrath2014-12-172-0/+3
|
* Remove explicit inline on malloc perturb functions.Roland McGrath2014-12-172-2/+6
|
* Fix profil_counter namespace (bug 17725).Joseph Myers2014-12-1716-21/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On ARM, where profil_counter is not static, it is brought in by references to various standard functions, as noted in <https://sourceware.org/ml/libc-alpha/2014-11/msg00890.html>, although it is not a standard function itself. I don't know if this also causes test failures on SPARC, although I see no reason for it not to do so. This patch fixes this namespace issue. profil_counter is renamed to __profil_counter and made a weak alias on ARM and SPARC. Because of the uses in profil.c / sprofil.c it seems simplest to make the rename globally, including on the other architectures for which profil_counter was static and so the change is of no substance. The variant names profil_counter_* used in sprofil.c are also renamed to start with __ so that undesired function names do not get exported in static libc. As I noted in bug 17726, profil_counter should probably be a compat symbol on ARM and SPARC, so it wouldn't exist at all in static libc even as a weak alias. Since defining a compat symbol still requires an internal name as a target of an alias, this patch still seems reasonable as an intermediate step towards that goal: it wouldn't be possible for the function simply to be static profil_counter on ARM and SPARC with profil_counter also being the exported compat symbol name, so profil.c / sprofil.c would still need to be prepared to call the function under another name (here, __profil_counter). Tested for x86_64 (testsuite, and that stripped installed shared libraries are unchanged by the patch) and ARM (ABI and linknamespace tests - this patch reduces the number of linknamespace failures I see on ARM from 227 to 5, the residue being math.h failures for fe* functions and for j0l/j1n/jnl/y0l/y1l/ynl aliases). 2014-12-17 Joseph Myers <joseph@codesourcery.com> [BZ #17725] * sysdeps/generic/profil-counter.h (profil_counter): Rename to __profil_counter. * sysdeps/unix/sysv/linux/hppa/profil-counter.h (profil_counter): Likewise. * sysdeps/unix/sysv/linux/i386/profil-counter.h (profil_counter): Likewise. * sysdeps/unix/sysv/linux/ia64/profil-counter.h (profil_counter): Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/profil-counter.h (profil_counter): Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/profil-counter.h (profil_counter): Likewise. * sysdeps/unix/sysv/linux/sh/profil-counter.h (profil_counter): Likewise. * sysdeps/unix/sysv/linux/tile/profil-counter.h (profil_counter): Likewise. * sysdeps/unix/sysv/linux/x86_64/profil-counter.h (profil_counter): Likewise. * sysdeps/unix/sysv/linux/arm/profil-counter.h (profil_counter): Likewise. [!__profil_counter] (profil_counter): Define as weak alias of __profil_counter. * sysdeps/unix/sysv/linux/sparc/sparc32/profil-counter.h (profil_counter): Rename to __profil_counter. [!__profil_counter] (profil_counter): Define as weak alias of __profil_counter. * sysdeps/unix/sysv/linux/sparc/sparc64/profil-counter.h (profil_counter): Rename to __profil_counter. [!__profil_counter] (profil_counter): Define as weak alias of __profil_counter. * sysdeps/posix/profil.c: Update comment referring to profil_counter. (__profil): Use __profil_counter instead of profil_counter. * sysdeps/posix/sprofil.c (profil_counter): Rename to __profil_counter. Use __profil_counter_ushort and __profil_counter_uint in definitions. (__sprofil): Use __profil_counter_uint and __profil_counter_ushort instead of profil_counter_uint and profil_counter_ushort.
* Fix resolver inet_* namespace (bug 17722).Joseph Myers2014-12-178-12/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Parts of the resolver brought in by pthreads (at least) use inet_* functions that aren't in the 1995/6 edition of POSIX that introduced pthreads (or in one case, use __inet_aton which is then defined in the same file as non-weak inet_addr). This patch fixes this by making the affected functions into weak alias for __inet_* and using those names in the problematic resolver code. Tested for x86_64 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch). [BZ #17722] * inet/inet_mkadr.c (inet_makeaddr): Rename to __inet_makeaddr and define as weak alias of __inet_makeaddr. * resolv/inet_addr.c (inet_addr): Rename to __inet_addr and define as weak alias of __inet_addr. * resolv/inet_pton.c (inet_pton): Rename to __inet_pton and define as weak alias of __inet_pton. Use libc_hidden_weak. * include/arpa/inet.h (__inet_pton): Declare. Use libc_hidden_proto. (inet_makeaddr): Don't use libc_hidden_proto. (__inet_makeaddr): Declare. Use libc_hidden_proto. * resolv/res_init.c (__res_vinit): Use __inet_pton instead of inet_pton. Use __inet_makeaddr instead of inet_makeaddr. * conform/Makefile (test-xfail-POSIX/pthread.h/linknamespace): Remove variable. (test-xfail-POSIX/sched.h/linknamespace): Likewise. (test-xfail-POSIX/time.h/linknamespace): Likewise.
* 2014-12-17 Steve Ellcey <sellcey@imgtec.com>Steve Ellcey2014-12-172-62/+65
| | | | * inet/getnetgrent_r.c: Move while loop to be inside if statement.
* Get rid of format warning in bug-vfprintf-nargs.c.Stefan Liebler2014-12-172-1/+8
|
* Get rid of format warning in tst-widetext.c.Stefan Liebler2014-12-172-1/+7
|
* Fix printf format errorAndreas Schwab2014-12-172-2/+6
|
* Use PTR_MANGLE on libgcc unwinder function pointers.Roland McGrath2014-12-162-3/+19
|
* Revert "Use pragmas rather than makefiles for necessary options for unwind ↵Roland McGrath2014-12-167-21/+5
| | | | | | code." This reverts commit c324fcfe75c3976ae0b16943df00710e1d0d74f7.
* Use pragmas rather than makefiles for necessary options for unwind code.Roland McGrath2014-12-167-5/+21
|
* Fix x86_64 memrchr namespace (bug 17719).Joseph Myers2014-12-164-8/+14
| | | | | | | | | | | | | | | | | | | | | | | On x86_64, memrchr (not a standard function) is defined as a strong symbol, instead of a weak alias of __memrchr as on other architectures. This results in linknamespace test failures from the use of __memrchr from dirname. (Not a conformance issue because of the mem* reservation, but contrary to glibc conventions.) This patch makes x86_64 follow other architectures by defining memrchr as a weak alias. Tested for x86_64 (testsuite, and that disassembly of installed shared libraries is unchanged by the patch). [BZ #17719] * sysdeps/x86_64/memrchr.S (memrchr): Rename to __memrchr and define as weak alias of __memrchr. (__memrchr): Do not define as strong alias of memrchr. * conform/Makefile (test-xfail-XPG4/libgen.h/linknamespace): Remove variable. (test-xfail-UNIX98/libgen.h/linknamespace): Likewise. (test-xfail-XOPEN2K/libgen.h/linknamespace): Likewise. (test-xfail-XOPEN2K8/libgen.h/linknamespace): Likewise.
* Fix resolver if_* namespace (bug 17717).Joseph Myers2014-12-168-31/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Resolver code, brought in by pthreads (at least), uses if_* interfaces that weren't in POSIX before 2001, resulting in linknamespace failures. This patch changes those interfaces to be weak aliases of __if_* and makes the resolver use __if_* directly. Tested for x86_64 (testsuite, and that disassembly of installed shared libraries is unchanged by this patch). [BZ #17717] * inet/if_index.c (if_nametoindex): Rename to __if_nametoindex and define as weak alias of __if_nametoindex. Use libc_hidden_weak. (if_indextoname): Rename to __if_indextoname and define as weak alias of __if_indextoname. Use libc_hidden_weak. (if_freenameindex): Rename to __if_freenameindex and define as weak alias of __if_freenameindex. (if_nameindex): Rename to __if_nameindex and define as weak alias of __if_nameindex. * sysdeps/mach/hurd/if_index.c (if_nametoindex): Rename to __if_nametoindex and define as weak alias of __if_nametoindex. Use libc_hidden_weak. (if_freenameindex): Rename to __if_freenameindex and define as weak alias of __if_freenameindex. (if_nameindex): Rename to __if_nameindex and define as weak alias of __if_nameindex. (if_indextoname): Rename to __if_indextoname and define as weak alias of __if_indextoname. Use libc_hidden_weak. * sysdeps/unix/sysv/linux/if_index.c (if_nametoindex): Rename to __if_nametoindex and define as weak alias of __if_nametoindex. Use libc_hidden_weak. (if_freenameindex): Rename to __if_freenameindex and define as weak alias of __if_freenameindex. Use libc_hidden_weak. (if_nameindex_netlink): Use __if_freenameindex instead of if_freenameindex. (if_nameindex): Rename to __if_nameindex and define as weak alias of __if_nameindex. Use libc_hidden_weak. (if_indextoname): Rename to __if_indextoname and define as weak alias of __if_indextoname. Use libc_hidden_weak. * include/net/if.h [!_ISOMAC] (__if_nametoindex): Declare and use libc_hidden_proto. [!_ISOMAC] (__if_freenameindex): Likewise. * resolv/res_init.c (__res_vinit): Use __if_nametoindex instead of if_nametoindex. * conform/Makefile (test-xfail-XPG4/grp.h/linknamespace): Remove variable. (test-xfail-XPG4/pwd.h/linknamespace): Likewise. (test-xfail-UNIX98/aio.h/linknamespace): Likewise. (test-xfail-UNIX98/grp.h/linknamespace): Likewise. (test-xfail-UNIX98/pthread.h/linknamespace): Likewise. (test-xfail-UNIX98/pwd.h/linknamespace): Likewise. (test-xfail-UNIX98/sched.h/linknamespace): Likewise. (test-xfail-UNIX98/time.h/linknamespace): Likewise.