Resolved backport request BZ #15122.
Assume all unmarked objects are compatible with all ABI variants.
Such objects may have been generated in a transitional period when
ABI tags were not added to all objects.
---
2013-02-08 Carlos O'Donell <carlos@redhat.com>
[BZ #15006]
* sysdeps/generic/ldconfig.h: Define FLAG_ARM_LIBSF.
* elf/cache.c (print_entry): Add FLAG_ARM_LIBSF support.
ports/
2013-02-08 Carlos O'Donell <carlos@redhat.com>
[BZ #15006]
* sysdeps/unix/sysv/linux/arm/dl-cache.h
[__ARM_PCS_VFP] (_dl_cache_check_flags): Allow plain FLAG_ELF_LIBC6.
[!__ARM_PCS_VFP] (_dl_cache_check_flags): Likewise.
* sysdeps/unix/sysv/linux/arm/readelflib.c (process_elf_file):
Set FLAG_ARM_LIBSF for soft-float ABI otherwise just FLAG_ELF_LIBC6.
Previously, we would see a bad frame in the gdb backtrace output, e.g.:
(gdb) bt
#0 foo () at foo.c:5
#1 0x000000aaaab68ee8 in start_thread () from /lib/libpthread.so.0
#2 0x000000aaaad01c88 in clone () from /lib/libc.so.6
#3 0x0000000000000000 in ?? ()
With this change the bogus frame #3 is gone and we have the
same output as x86 does for the same program.
Seen in, e.g. ports/sysdeps/alpha/soft-fp/ots_mul.c.
The problem here is we have a switch on the class of X*Y, followed by
a switch on the class of R. The exponent field of R really is not set
by the first switch for NaN outputs, because we know it's not going to
be used. The compiler is not smart enough to see through this.
By pulling the exponent computation out of the NORMAL*NORMAL path, we
will not be pessimizing the most common case, while still providing an
arbitrary value to satisfy the compiler.
In bdd7898a58 we added self-definitions
of __isnan and friends in order to indicate specialized architecture
support, and avoid redefinitions within various generic math_private.h.
There is no generic math_private.h that concerns ldbl-128, and while
we provide __isnanl in the alpha math_private.h there's no need to
protect the function against redefinition.
In bdd7898a58 we added self-definitions
of __isnan and friends in order to indicate specialized architecture
support, and avoid redefinitions within various generic math_private.h.
There is no generic math_private.h that concerns ldbl-128, and while
we provide __isnanl in the alpha math_private.h there's no need to
protect the function against redefinition.
Some arches do not have a __NR_fadvise64 but do have __NR_fadvise64_64.
If the former is unavailable, fallback to the latter.
Reviewed-by: Carlos O'Donell <carlos@systemhalted.org>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>