[Patch, Darwin] Fix PR80556 by linking the system unwinder ahead of libgcc_eh.
authorIain Sandoe <iain@codesourcery.com>
Mon, 25 Sep 2017 08:47:41 +0000 (08:47 +0000)
committerIain Sandoe <iains@gcc.gnu.org>
Mon, 25 Sep 2017 08:47:41 +0000 (08:47 +0000)
commit7b6078223126fb3927b8199d9048e4f0cccc17e9
tree782cacda1a2e6bd9023f670e135085e992c974c6
parentf7fb5c08f36ea1c1aeebe1710839d1c0d5e68674
[Patch, Darwin] Fix PR80556 by linking the system unwinder ahead of libgcc_eh.

PR target/80556
* config/i386/darwin.h (REAL_LIB_SPEC): New; put libSystem ahead
of libgcc_eh for m64.
* config/i386/darwin64.h: Likewise.

/* WORKAROUND pr80556:
   For x86_64 Darwin10 and later, the unwinder is in libunwind (redirected
   from libSystem).  This doesn't use the keymgr (see keymgr.c) and therefore
   the calls that libgcc makes to obtain the KEYMGR_GCC3_DW2_OBJ_LIST are not
   updated to include new images, and might not even be valid for a single
   image.
   Therefore, for 64b exes at least, we must use the libunwind implementation,
   even when static-libgcc is specified.  We put libSystem first so that
   unwinder symbols are satisfied from there.

From-SVN: r253137
gcc/ChangeLog
gcc/config/i386/darwin.h
gcc/config/i386/darwin64.h