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

Side by Side Diff: native_client_sdk/doc_generated/reference/pnacl-c-cpp-language-support.html

Issue 940503003: NaCl docs: mention static libraries for SJLJ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix. Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | native_client_sdk/src/doc/reference/pnacl-c-cpp-language-support.rst » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 {{+bindTo:partials.standard_nacl_article}} 1 {{+bindTo:partials.standard_nacl_article}}
2 2
3 <section id="pnacl-c-c-language-support"> 3 <section id="pnacl-c-c-language-support">
4 <h1 id="pnacl-c-c-language-support">PNaCl C/C++ Language Support</h1> 4 <h1 id="pnacl-c-c-language-support">PNaCl C/C++ Language Support</h1>
5 <div class="contents local" id="contents" style="display: none"> 5 <div class="contents local" id="contents" style="display: none">
6 <ul class="small-gap"> 6 <ul class="small-gap">
7 <li><p class="first"><a class="reference internal" href="#source-language-suppor t" id="id3">Source language support</a></p> 7 <li><p class="first"><a class="reference internal" href="#source-language-suppor t" id="id3">Source language support</a></p>
8 <ul class="small-gap"> 8 <ul class="small-gap">
9 <li><a class="reference internal" href="#versions" id="id4">Versions</a></li> 9 <li><a class="reference internal" href="#versions" id="id4">Versions</a></li>
10 <li><a class="reference internal" href="#preprocessor-definitions" id="id5">Prep rocessor definitions</a></li> 10 <li><a class="reference internal" href="#preprocessor-definitions" id="id5">Prep rocessor definitions</a></li>
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 <h2 id="threading"><span id="language-support-threading"></span>Threading</h2> 149 <h2 id="threading"><span id="language-support-threading"></span>Threading</h2>
150 <p>Threading is explicitly supported through C11/C++11&#8217;s threading 150 <p>Threading is explicitly supported through C11/C++11&#8217;s threading
151 libraries as well as POSIX threads.</p> 151 libraries as well as POSIX threads.</p>
152 <p>Communication between threads should use atomic primitives as described 152 <p>Communication between threads should use atomic primitives as described
153 in <a class="reference internal" href="#id1">Memory Model and Atomics</a>.</p> 153 in <a class="reference internal" href="#id1">Memory Model and Atomics</a>.</p>
154 <h2 id="setjmp-and-longjmp"><code>setjmp</code> and <code>longjmp</code></h2> 154 <h2 id="setjmp-and-longjmp"><code>setjmp</code> and <code>longjmp</code></h2>
155 <p>PNaCl and NaCl support <code>setjmp</code> and <code>longjmp</code> without a ny 155 <p>PNaCl and NaCl support <code>setjmp</code> and <code>longjmp</code> without a ny
156 restrictions beyond C&#8217;s.</p> 156 restrictions beyond C&#8217;s.</p>
157 <h2 id="c-exception-handling"><span id="exception-handling"></span>C++ Exception Handling</h2> 157 <h2 id="c-exception-handling"><span id="exception-handling"></span>C++ Exception Handling</h2>
158 <p>PNaCl currently supports C++ exception handling through <code>setjmp()</code> and 158 <p>PNaCl currently supports C++ exception handling through <code>setjmp()</code> and
159 <code>longjmp()</code>, which can be enabled with the <code>--pnacl-exceptions=s jlj</code> 159 <code>longjmp()</code>, which can be enabled with the <code>--pnacl-exceptions=s jlj</code> linker
160 linker flag. Exceptions are disabled by default so that faster and 160 flag (set with <code>LDFLAGS</code> when using Make). Exceptions are disabled by default
161 smaller code is generated, and <code>throw</code> statements are replaced with 161 so that faster and smaller code is generated, and <code>throw</code> statements are
162 calls to <code>abort()</code>. The usual <code>-fno-exceptions</code> flag is al so 162 replaced with calls to <code>abort()</code>. The usual <code>-fno-exceptions</co de> flag is also
163 supported. PNaCl will support full zero-cost exception handling in the 163 supported, though the default is <code>-fexceptions</code>. PNaCl will support f ull
164 future.</p> 164 zero-cost exception handling in the future.</p>
165 <aside>
166 When using <a class="reference external" href="https://code.google.com/p/naclpor ts">naclports</a> or other prebuilt static libraries, you don&#8217;t
167 need to recompile because the exception handling support is
168 implemented at link time (when all the static libraries are put
169 together with your application).
170 </aside>
165 <p>NaCl supports full zero-cost C++ exception handling.</p> 171 <p>NaCl supports full zero-cost C++ exception handling.</p>
166 <h2 id="inline-assembly">Inline Assembly</h2> 172 <h2 id="inline-assembly">Inline Assembly</h2>
167 <p>Inline assembly isn&#8217;t supported by PNaCl because it isn&#8217;t portabl e. The 173 <p>Inline assembly isn&#8217;t supported by PNaCl because it isn&#8217;t portabl e. The
168 one current exception is the common compiler barrier idiom 174 one current exception is the common compiler barrier idiom
169 <code>asm(&quot;&quot;:::&quot;memory&quot;)</code>, which gets transformed to a sequentially 175 <code>asm(&quot;&quot;:::&quot;memory&quot;)</code>, which gets transformed to a sequentially
170 consistent memory barrier (equivalent to <code>__sync_synchronize()</code>). In 176 consistent memory barrier (equivalent to <code>__sync_synchronize()</code>). In
171 PNaCl this barrier is only guaranteed to order <code>volatile</code> and atomic 177 PNaCl this barrier is only guaranteed to order <code>volatile</code> and atomic
172 memory accesses, though in practice the implementation attempts to also 178 memory accesses, though in practice the implementation attempts to also
173 prevent reordering of memory accesses to objects which may escape.</p> 179 prevent reordering of memory accesses to objects which may escape.</p>
174 <p>PNaCl supports <a class="reference internal" href="#portable-simd-vectors"><e m>Portable SIMD Vectors</em></a>, 180 <p>PNaCl supports <a class="reference internal" href="#portable-simd-vectors"><e m>Portable SIMD Vectors</em></a>,
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
432 <p>Neither PNaCl nor NaCl currently support asynchronous interruption 438 <p>Neither PNaCl nor NaCl currently support asynchronous interruption
433 or suspension of threads.</p> 439 or suspension of threads.</p>
434 </li> 440 </li>
435 </ul> 441 </ul>
436 <p>If PNaCl were to support either of these, the interaction of 442 <p>If PNaCl were to support either of these, the interaction of
437 <code>volatile</code> and atomics with same-thread signal handling would need 443 <code>volatile</code> and atomics with same-thread signal handling would need
438 to be carefully detailed.</p> 444 to be carefully detailed.</p>
439 </section> 445 </section>
440 446
441 {{/partials.standard_nacl_article}} 447 {{/partials.standard_nacl_article}}
OLDNEW
« no previous file with comments | « no previous file | native_client_sdk/src/doc/reference/pnacl-c-cpp-language-support.rst » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698