Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 10 Aug 2018 19:58:35 +0000
From:      bugzilla-noreply@freebsd.org
To:        toolchain@FreeBSD.org
Subject:   [Bug 230399] devel/libunwind: fails to build with Clang 7
Message-ID:  <bug-230399-29464-b0aUQyjcnK@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-230399-29464@https.bugs.freebsd.org/bugzilla/>
References:  <bug-230399-29464@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D230399

--- Comment #8 from commit-hook@freebsd.org ---
A commit references this bug:

Author: dim
Date: Fri Aug 10 19:57:56 UTC 2018
New revision: 337585
URL: https://svnweb.freebsd.org/changeset/base/337585

Log:
  In r308100, an explicit -fexceptions flag was added for the C sources
  from LLVM's libunwind, which end up in libgcc_eh.a and libgcc_s.so.
  This is because the unwinder needs the unwinder data for its own
  functions.

  However, for the C++ sources in libunwind, -fexceptions is already the
  default, and this can have the side effect of generating a reference to
  __gxx_personality_v0, the so-called personality function, which is
  normally provided by the C++ ABI library (libcxxrt or libsupc++).

  If the reference ends up in the eventual libgcc_s.so, linking any
  non-C++ programs against it will fail with "undefined reference to
  `__gxx_personality_v0'".

  Note that at high optimization levels, the reference is usually
  optimized away, which is why we have never noticed this problem before.

  With clang 7.0.0 though, higher optimization levels don't help anymore,
  since the addition of address-significance tables [1] in
  <https://reviews.llvm.org/rL337339>.  Effectively, this always causes a
  reference to __gxx_personality_v0.

  After discussion with the upstream author of that change, it turns out
  that we should compile libunwind sources with the -fno-exceptions
  -funwind-tables flags instead.  This ensures unwind tables are
  generated, but no references to any personality functions are emitted.

  [1] https://lists.llvm.org/pipermail/llvm-dev/2018-May/123514.html

  Reported by:  jbeich
  PR:           230399
  MFC after:    1 week

Changes:
  head/lib/libgcc_eh/Makefile.inc

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-230399-29464-b0aUQyjcnK>