Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(158)

Issue 27341005: libstdc++: Add support for exception handling using the PNaClSjLjEH LLVM pass (Closed)

Created:
7 years, 2 months ago by Mark Seaborn
Modified:
7 years, 1 month ago
Reviewers:
Derek Schuff
CC:
native-client-reviews_googlegroups.com, JF
Base URL:
http://git.chromium.org/native_client/pnacl-gcc.git@pnacl
Visibility:
Public.

Description

libstdc++: Add support for exception handling using the PNaClSjLjEH LLVM pass Extend libsupc++ with support for SJLJ (setjmp()+longjmp()-based) C++ exception handling. The routines assume that the program has been transformed using the PNaClSjLjEH LLVM pass, which inserts setjmp() calls around function calls that need to handle C++ exceptions. As noted in the comments, this will coexist with non-SJLJ (zero cost) exception handling within the same build of libstdc++. When SJLJ is enabled, pnacl-ld.py will rename __pnacl_eh_sjlj_Unwind_RaiseException() to _Unwind_RaiseException() at link time to enable eh_pnacl.cc. Note that this code attempts to follow the GNU C++ style. BUG=https://code.google.com/p/nativeclient/issues/detail?id=3696 TEST=GCC torture tests; tested with PNaCl-side plumbing in pnacl-ld.py etc. Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-gcc.git;a=commit;h=e986927

Patch Set 1 #

Patch Set 2 : Cleanup #

Patch Set 3 : Retry upload #

Total comments: 2

Patch Set 4 : Add comments #

Total comments: 1

Patch Set 5 : More comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+373 lines, -1 line) Patch
M libstdc++-v3/libsupc++/Makefile.am View 1 chunk +1 line, -0 lines 0 comments Download
M libstdc++-v3/libsupc++/Makefile.in View 2 chunks +2 lines, -1 line 0 comments Download
A libstdc++-v3/libsupc++/eh_pnacl.cc View 1 2 3 4 1 chunk +370 lines, -0 lines 0 comments Download

Messages

Total messages: 9 (0 generated)
Mark Seaborn
7 years, 1 month ago (2013-10-22 21:47:53 UTC) #1
Mark Seaborn
For context, redirecting _Unwind_RaiseException() to __pnacl_eh_sjlj_Unwind_RaiseException() will be done here: https://codereview.chromium.org/38103003/diff/70002/pnacl/support/bitcode/sjlj_eh_redirect.c
7 years, 1 month ago (2013-10-24 19:47:28 UTC) #2
Derek Schuff
just an update; I am looking at this and it seems mostly ok but I'm ...
7 years, 1 month ago (2013-10-24 20:41:17 UTC) #3
Mark Seaborn
https://codereview.chromium.org/27341005/diff/53001/libstdc++-v3/libsupc++/eh_pnacl.cc File libstdc++-v3/libsupc++/eh_pnacl.cc (right): https://codereview.chromium.org/27341005/diff/53001/libstdc++-v3/libsupc++/eh_pnacl.cc#newcode205 libstdc++-v3/libsupc++/eh_pnacl.cc:205: __pnacl_eh_resume (struct _Unwind_Exception *ue_header) On 2013/10/24 20:41:17, Derek Schuff ...
7 years, 1 month ago (2013-10-24 21:43:53 UTC) #4
Mark Seaborn
I've added more to the comments, as we discussed.
7 years, 1 month ago (2013-10-28 21:05:09 UTC) #5
Derek Schuff
this is definitely better. the only other general thing I might add is that there's ...
7 years, 1 month ago (2013-10-28 22:14:45 UTC) #6
Mark Seaborn
On 28 October 2013 15:14, <dschuff@chromium.org> wrote: > this is definitely better. the only other ...
7 years, 1 month ago (2013-10-29 00:01:36 UTC) #7
Derek Schuff
lgtm
7 years, 1 month ago (2013-10-29 00:03:36 UTC) #8
Mark Seaborn
7 years, 1 month ago (2013-10-30 03:17:56 UTC) #9
Message was sent while issue was closed.
Committed patchset #5 manually as re986927 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698