Commit graph

11 commits

Author SHA1 Message Date
Ed Maste 982fabe12e Revert r280909 "unwind-d2 build workaround for arm64"
We no longer try to build unwind-dw2.c on arm64 so no need for this
workaround.

Sponsored by:	The FreeBSD Foundation
2018-01-12 20:03:24 +00:00
Ed Maste 640cba97d8 unwind-d2 build workaround for arm64
The __builtin_init_dwarf_reg_size_table function is unimplemented in
clang 3.6 for AArch64. Comment it out for now and replace it with
a message and abort.

Tracked in upstream LLVM PR 22997
https://llvm.org/bugs/show_bug.cgi?id=22997

Submitted by:	andrew
2015-03-31 13:37:32 +00:00
Dimitry Andric 707d0cef66 Pull in r183984 from llvm trunk:
Make PrologEpilogInserter save/restore all callee saved registers in
  functions which call __builtin_unwind_init()

  __builtin_unwind_init() is an undocumented gcc intrinsic which has
  this effect, and is used in libgcc_eh.

  Goes part of the way toward fixing PR8541.

This obsoletes the ugly hack to libgcc's unwind code from r245272, and
should also work for other arches, so revert the hack too.
2013-06-20 18:25:10 +00:00
Dimitry Andric bfd6a1d202 Add an ugly hack to libgcc's unwind code, to make it behave properly at
runtime on amd64, when it is compiled by clang.  Some versions of clang
don't save and restore all callee registers, if a __builtin_eh_return()
intrinsic is used in a function.  This is particularly bad on amd64.

Until the problem gets fixed by upstream, use an asm statement to force
clang to assume the registers in question are clobbered, when invoking
__builtin_eh_return(), so it will emit code to save and restore them.

This should fix the crashes reported on -current with some C++ programs,
particularly those that throw exceptions over multiple function
boundaries.

Reported by:	stefanf
MFC after:	3 days
2013-01-10 23:36:02 +00:00
Alexander Kabaev 6b834ef156 GCC 4.2.0 release. 2007-05-19 01:19:51 +00:00
Alexander Kabaev d51085f37e Gcc 3.4.4 release. 2005-06-03 03:28:44 +00:00
Alexander Kabaev 9a63ad9273 Gcc 3.4.2 20040728. 2004-07-28 03:11:36 +00:00
Alexander Kabaev ea875f6efe Gcc 3.3.3 20031106. 2003-11-07 02:43:04 +00:00
Alexander Kabaev bd0df3aa27 Gcc 3.3.1-pre as of 2003-07-11. 2003-07-11 03:40:53 +00:00
Alexander Kabaev 7b74929d74 Gcc 3.2.2-release. 2003-02-10 05:41:50 +00:00
David E. O'Brien 1952e2e1c1 Enlist the FreeBSD-CURRENT users as testers of what is to become Gcc 3.1.0.
These bits are taken from the FSF anoncvs repo on 1-Feb-2002 08:20 PST.
2002-02-01 18:16:02 +00:00