[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Libunwind-devel] gold linker completely breaks libunwind
From: |
Peter Wu |
Subject: |
Re: [Libunwind-devel] gold linker completely breaks libunwind |
Date: |
Tue, 11 Aug 2015 01:34:40 +0200 |
User-agent: |
Mutt/1.5.23+64 (e44d7de51fa8) (2014-03-12) |
On Sun, Jul 26, 2015 at 10:40:03AM +0200, Milian Wolff wrote:
> On Saturday, July 25, 2015 11:05:35 AM Arun Sharma wrote:
> > On Thu, Jul 23, 2015 at 9:29 AM, Milian Wolff <address@hidden> wrote:
> > > Hello all,
> > >
> > > I noticed today that gold completely breaks libunwind when you use it to
> > > link libunwind itself. I use "GNU gold (GNU Binutils 2.25.0) 1.11" and
> > > libunwind
> > > from current git master. Running the tests, 13 fail, some even crash:
> > Do you get different results if you revert this? I had one other
> > report of problems with gold.
> >
> > http://git.savannah.gnu.org/gitweb/?p=libunwind.git;a=commit;h=68a2910bae7ed
> > 1bff8e1e03cd7239bfd7e1cfe79
>
> Yep, that makes it work. Can we either revert that one, or conditionally
> revert it based on the gold linker version? I'm not sure whether that is
> easily done though :-/
The original bug was about handling of libraries that were linked with a
broken version of gold. With binutils 2.25.1 and -fuse-ld=gold I can
also reproduce the crashes in the test suite, though not as severe:
=========================================
libunwind 1.1: tests/test-suite.log
=========================================
# TOTAL: 32
# PASS: 23
# SKIP: 0
# XFAIL: 2
# FAIL: 7
# XPASS: 0
# ERROR: 0
.. contents:: :depth: 2
FAIL: Gtest-resume-sig
======================
FAIL Gtest-resume-sig (exit status: 139)
FAIL: Ltest-resume-sig
======================
FAIL Ltest-resume-sig (exit status: 139)
FAIL: Gtest-resume-sig-rt
=========================
FAIL Gtest-resume-sig-rt (exit status: 139)
FAIL: Ltest-resume-sig-rt
=========================
FAIL Ltest-resume-sig-rt (exit status: 139)
XFAIL: Gtest-dyn1
=================
Too many steps (21)
XFAIL Gtest-dyn1 (exit status: 255)
XFAIL: Ltest-dyn1
=================
Too many steps (21)
XFAIL Ltest-dyn1 (exit status: 255)
FAIL: Gtest-trace
=================
FAILURE: detected 4 errors
FAILURE: unw_step() loop and unw_backtrace() depths differ: 3 vs. 7
FAILURE: unw_step() loop and backtrace() depths differ: 3 vs. 7
FAILURE: unw_step() loop and unw_backtrace() depths differ: 3 vs. 7
FAILURE: unw_step() loop and backtrace() depths differ: 3 vs. 7
FAIL Gtest-trace (exit status: 255)
FAIL: Ltest-trace
=================
FAILURE: detected 4 errors
FAILURE: unw_step() loop and unw_backtrace() depths differ: 3 vs. 7
FAILURE: unw_step() loop and backtrace() depths differ: 3 vs. 7
FAILURE: unw_step() loop and unw_backtrace() depths differ: 3 vs. 7
FAILURE: unw_step() loop and backtrace() depths differ: 3 vs. 7
FAIL Ltest-trace (exit status: 255)
FAIL: test-async-sig
====================
FAILURE: unw_step() returned -1 for ip=7fe2c2cbf6d8
FAIL test-async-sig (exit status: 139)
Will further investigate it. Note that I also tried an ASAN build which
has some other failure modes (even with the patch reverted). LSan hangs
somewhere because it tries to report an issue and then calls
libunwind...
--
Kind regards,
Peter Wu
https://lekensteyn.nl