Re: Preparing for elfutils 0.158

From: Mark Wielaard <mjw at redhat dot com>

To: elfutils-devel at lists dot fedorahosted dot org

Date: Sun, 05 Jan 2014 22:02:15 +0100

Subject: Re: Preparing for elfutils 0.158

On Fri, Jan 03, 2014 at 11:08:35PM +0100, Mark Wielaard wrote:
> > After that I would like to push for a 0.158 release on Monday after
> > testing it on various setups this weekend. Unless any critical
> > regressions are found.
>
> I also updated the version number and support files on master and merged
> the portability and robustify branches. If testing finds any regression
> please let me know.
Tested on various architectures (i386, x86_64, ia64, ppc, ppc64, armv7hl,
s390, s390x, aarch64) and toolchains/kernels (fedora 20, rawhide, rhel 5
and rhel 6). And found some small issues. Mostly testcase robustness issues
and oddness with some of the setups. But also some small real issues on
ppc64 (of course).
[PATCH 1/5] tests: Simplify backtrace-dwarf (gcc cleanup-13.c)
The testcase originally came from GCC which was testing the runtime
unwinder using _Unwind_ForcedUnwind. Since we are using our own external
unwinder we can just abort at the right place and unwind from there.
[PATCH 2/5] tests: backtrace-subr.sh skip check_native_core test if
core ulimit fails.
On some systems you just cannot create a core file, in that case just
skip the test.
[PATCH 3/5] backends: Add PPC64 machine_flag_check.
To distinguish between the current PPC64 ELF ABI and the revised
ELFv2 ABI that will not use function descriptors binutils started
to emit the version (currently 1) in the ehdr e_flags. Recognize
all valid versions (0, 1 or 2) in elflint by adding the hook
ppc64_machine_flag_check.
[PATCH 4/5] tests: Don't use ptrace detach stopped trick.
Raise can return.
On older kernels the ptrace detach stop trick doesn't work reliably.
Just keep the child processes attached and stopped during the tests,
dwfl_linux_proc_attach will handle that fine now. Also on older kernels
raise would sometimes return anyway and cause a spurious assert. Just
ignore it.
This happens on some builders where we are building for a modern
toolchain and kernel in a chroot, but the builder kernel is really
old itself.
[PATCH 5/5] Only skip reset of return register for non-CIE-return
regno (ppc64)
For PPC64 we skip resetting the return register if it is already set.
This is because on PPC64 there are two DWARF registers numbers that can
represent the same register. Setting the return address again confuses
the unwinder. But we do want to reset it if the register number
(non-translated by the ppc64 ebl) is equal to the actual register number
as set in the CIE as return address. This happens on older toolchains in
.debug_frame where the return address is set to 108, but the ebl abi_cfi
also sets register number 65.
With these in I think we are ready for a 0.158 release.
Cheers,
Mark