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

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: HTML. 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
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&#8217;ll want
167 to make sure these libraries are built with the same configuration
168 your library is built with. If you want to use exception handling,
169 then you&#8217;ll need to rebuild these libraries with exception handling
170 enabled. For naclports, you&#8217;ll want to modify the port&#8217;s <code>build .sh</code>.
171 </aside>
165 <p>NaCl supports full zero-cost C++ exception handling.</p> 172 <p>NaCl supports full zero-cost C++ exception handling.</p>
166 <h2 id="inline-assembly">Inline Assembly</h2> 173 <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 174 <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 175 one current exception is the common compiler barrier idiom
169 <code>asm(&quot;&quot;:::&quot;memory&quot;)</code>, which gets transformed to a sequentially 176 <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 177 consistent memory barrier (equivalent to <code>__sync_synchronize()</code>). In
171 PNaCl this barrier is only guaranteed to order <code>volatile</code> and atomic 178 PNaCl this barrier is only guaranteed to order <code>volatile</code> and atomic
172 memory accesses, though in practice the implementation attempts to also 179 memory accesses, though in practice the implementation attempts to also
173 prevent reordering of memory accesses to objects which may escape.</p> 180 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>, 181 <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 439 <p>Neither PNaCl nor NaCl currently support asynchronous interruption
433 or suspension of threads.</p> 440 or suspension of threads.</p>
434 </li> 441 </li>
435 </ul> 442 </ul>
436 <p>If PNaCl were to support either of these, the interaction of 443 <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 444 <code>volatile</code> and atomics with same-thread signal handling would need
438 to be carefully detailed.</p> 445 to be carefully detailed.</p>
439 </section> 446 </section>
440 447
441 {{/partials.standard_nacl_article}} 448 {{/partials.standard_nacl_article}}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698