as "weak". Since the elf-support is in the library anyhow, this serves
no purpose and in fact causes problem because the weak reference alone
is not enough to pull in the ELF-code from an archive file, causing to
spurious failures of get_proc_name.
(maps_next): After reading less than a full buffer of data, copy
remaining data to the top of the buffer so as to maintain the
invariant that all data between mi->buf and mi->buf_end is valid.
This avoids maps_next() parsing uninitialized data.
Don't test read-only access to F0 and F1 registers --- according to
the SCRA manual, those locations cannot even be expressed in SPILL
descriptors and newer versions of GAS (as well as IAS) won't accept
.spillreg directives targeting those registers.
The rationale for this fix is as follows: for the ALIAS directive, RLEN
specifies the number if instructions for which the region behaves like
the aliased code. For example, if RLEN=1 then the code follows the
aliased region for 1 instruction and the valid WHEN values should be 0
and 1. However, with the unpatched code, we would have allowed for -1
and 0, which is wrong.
BKrev: 4266c3228pjJqd72q34L-r8z1RXTaA
x86 and ia64 and checking for it causes a dependency for libunwind
on libatomic_ops.so, which is not what we want.
BKrev: 419a79184TRq3PRIZ_E7yRe9-x4WXQ
_U_dyn_info_list_addr as weak and fail if the symbol remained
undefined.
(get_static_proc_name): Likewise for _Uelf64_get_proc_name().
(Logical change 1.282)
full-path archive library names. Instead, we need to use -lgcc
(and hope that GCC doesn't pick up the dynamically-linked version!).
Longer term, a better solution might be to drop the -nostdlib linker
option and to use --as-needed instead to avoid recursive references
to -lunwind.
BKrev: 418ac8fcBr462ajbr1zenCtVWTgv5Q
With GCC, link libunwind.so against libgcc.a so there are no C
runtime-system dependencies left (such as calls to __divdi3).
BKrev: 418952a0RqjKsE7N_2NLSqJn3pvfFQ
a /proc/PID/maps file contains a mapping of something other than
a regular file. Reported and fix proposed by Todd L. Miller.
BKrev: 4189352chQs0340NbHL2qDV4yTL3_A
Include <errno.h>.
Include <ia64intrin.h> if we have it.
(get_bsp): New function.
(doit): Use get_bsp() instead of __builtin_ia64_bsp().
(main): Replace %m with %s/strerror(errno).
(Logical change 1.277)