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

Side by Side Diff: native_client_sdk/doc_generated/devguide/devcycle/building.html

Issue 1655873003: [NaCl SDK] Cleanup references to old newlib toolchain (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@add_pepper_50
Patch Set: Created 4 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="building"> 3 <section id="building">
4 <span id="devcycle-building"></span><h1 id="building"><span id="devcycle-buildin g"></span>Building</h1> 4 <span id="devcycle-building"></span><h1 id="building"><span id="devcycle-buildin g"></span>Building</h1>
5 <div class="contents local" id="table-of-contents" style="display: none"> 5 <div class="contents local" id="table-of-contents" style="display: none">
6 <p class="topic-title first">Table Of Contents</p> 6 <p class="topic-title first">Table Of Contents</p>
7 <ul class="small-gap"> 7 <ul class="small-gap">
8 <li><p class="first"><a class="reference internal" href="#introduction" id="id4" >Introduction</a></p> 8 <li><p class="first"><a class="reference internal" href="#introduction" id="id4" >Introduction</a></p>
9 <ul class="small-gap"> 9 <ul class="small-gap">
10 <li><a class="reference internal" href="#target-architectures" id="id5">Target a rchitectures</a></li> 10 <li><a class="reference internal" href="#target-architectures" id="id5">Target a rchitectures</a></li>
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 <a class="reference internal" href="/native-client/overview.html#application-fil es"><em>manifest file</em></a> will then specify which version 65 <a class="reference internal" href="/native-client/overview.html#application-fil es"><em>manifest file</em></a> will then specify which version
66 of the module to load based on the end-user&#8217;s architecture. The SDK 66 of the module to load based on the end-user&#8217;s architecture. The SDK
67 includes a script for generating manifest files called <code>create_nmf.py</code >. This 67 includes a script for generating manifest files called <code>create_nmf.py</code >. This
68 script is located in the <code>pepper_&lt;version&gt;/tools/</code> directory, m eaning under 68 script is located in the <code>pepper_&lt;version&gt;/tools/</code> directory, m eaning under
69 your installed pepper bundle. For examples of how to compile modules for 69 your installed pepper bundle. For examples of how to compile modules for
70 multiple target architectures and how to generate manifest files, see the 70 multiple target architectures and how to generate manifest files, see the
71 Makefiles included with the SDK examples.</p> 71 Makefiles included with the SDK examples.</p>
72 <p>This section will mostly cover PNaCl, but also describes how to build 72 <p>This section will mostly cover PNaCl, but also describes how to build
73 <strong>nexe</strong> applications.</p> 73 <strong>nexe</strong> applications.</p>
74 <h3 id="c-libraries">C libraries</h3> 74 <h3 id="c-libraries">C libraries</h3>
75 <p>The PNaCl SDK has a single choice of C library: <a class="reference external" href="http://sourceware.org/newlib/">newlib</a>.</p> 75 <p>The PNaCl SDK uses the <a class="reference external" href="http://sourceware. org/newlib/">newlib</a> C library. The Native Client SDK also has a
76 <p>The Native Client SDK also has a GCC-based toolchain for building 76 GCC-based toolchain for building <strong>nexes</strong> using the <a class="refe rence external" href="http://www.gnu.org/software/libc/">glibc</a> C library. S ee
77 <strong>nexes</strong>. The GCC-based toolchain has support for two C libraries: 77 <a class="reference internal" href="/native-client/devguide/devcycle/dynamic-loa ding.html"><em>Dynamic Linking &amp; Loading with glibc</em></a> for information
78 <a class="reference external" href="http://sourceware.org/newlib/">newlib</a> an d <a class="reference external" href="http://www.gnu.org/software/libc/">glibc</ a>. See <a class="reference internal" href="/native-client/devguide/devcycle/dy namic-loading.html"><em>Dynamic Linking &amp; Loading with glibc</em></a> for in formation about these libraries, including factors to 78 about these libraries, including factors to help you decide which to use.</p>
79 help you decide which to use.</p>
80 <h3 id="c-standard-libraries"><span id="building-cpp-libraries"></span>C++ stand ard libraries</h3> 79 <h3 id="c-standard-libraries"><span id="building-cpp-libraries"></span>C++ stand ard libraries</h3>
81 <p>The PNaCl SDK can use either LLVM&#8217;s <a class="reference external" href= "http://libcxx.llvm.org/">libc++</a> 80 <p>The PNaCl SDK can use either LLVM&#8217;s <a class="reference external" href= "http://libcxx.llvm.org/">libc++</a>
82 (the current default) or GCC&#8217;s <a class="reference external" href="http:// gcc.gnu.org/libstdc++">libstdc++</a> (deprecated). The 81 (the current default) or GCC&#8217;s <a class="reference external" href="http:// gcc.gnu.org/libstdc++">libstdc++</a> (deprecated). The
83 <code>-stdlib=[libc++|libstdc++]</code> command line argument can be used to 82 <code>-stdlib=[libc++|libstdc++]</code> command line argument can be used to
84 choose which standard library to use.</p> 83 choose which standard library to use.</p>
85 <p>The GCC-based Native Client SDK only has support for GCC&#8217;s <a class="re ference external" href="http://gcc.gnu.org/libstdc++">libstdc++</a>.</p> 84 <p>The GCC-based toolchain only has support for GCC&#8217;s <a class="reference external" href="http://gcc.gnu.org/libstdc++">libstdc++</a>.</p>
86 <p>C++11 library support is only complete in libc++ but other non-library langua ge 85 <p>C++11 library support is only complete in libc++ but other non-library langua ge
87 features should work regardless of which standard library is used. The 86 features should work regardless of which standard library is used. The
88 <code>-std=gnu++11</code> command line argument can be used to indicate which C+ + 87 <code>-std=gnu++11</code> command line argument can be used to indicate which C+ +
89 language standard to use (<code>-std=c++11</code> often doesn&#8217;t work well because newlib 88 language standard to use (<code>-std=c++11</code> often doesn&#8217;t work well because newlib
90 relies on some GNU extensions).</p> 89 relies on some GNU extensions).</p>
91 <h3 id="sdk-toolchains">SDK toolchains</h3> 90 <h3 id="sdk-toolchains">SDK toolchains</h3>
92 <p>The Native Client SDK includes multiple toolchains. It has one PNaCl toolchai n 91 <p>The Native Client SDK includes multiple toolchains. It has one PNaCl toolchai n
93 and it has multiple GCC-based toolchains that are differentiated by target 92 and it has multiple GCC-based toolchains that are differentiated by target
94 architectures and C libraries. The single PNaCl toolchain is located 93 architectures and C libraries. The single PNaCl toolchain is located
95 in a directory named <code>pepper_&lt;version&gt;/toolchain/&lt;OS_platform&gt;_ pnacl</code>, 94 in a directory named <code>pepper_&lt;version&gt;/toolchain/&lt;OS_platform&gt;_ pnacl</code>,
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 <li>&lt;prefix&gt;readelf</li> 360 <li>&lt;prefix&gt;readelf</li>
362 <li>&lt;prefix&gt;size</li> 361 <li>&lt;prefix&gt;size</li>
363 <li>&lt;prefix&gt;strings</li> 362 <li>&lt;prefix&gt;strings</li>
364 <li>&lt;prefix&gt;strip</li> 363 <li>&lt;prefix&gt;strip</li>
365 </ul> 364 </ul>
366 <h3 id="compiling">Compiling</h3> 365 <h3 id="compiling">Compiling</h3>
367 <p>Compiling files with the GNU-based toolchain is similar to compiling 366 <p>Compiling files with the GNU-based toolchain is similar to compiling
368 files with the PNaCl-based toolchain, except that the output is 367 files with the PNaCl-based toolchain, except that the output is
369 architecture specific.</p> 368 architecture specific.</p>
370 <p>For example, assuming you&#8217;re developing on a Windows machine, targeting the x86 369 <p>For example, assuming you&#8217;re developing on a Windows machine, targeting the x86
371 architecture, and using the newlib library, you can compile a 32-bit <strong>.ne xe</strong> 370 architecture you can compile a 32-bit <strong>.nexe</strong> for the hello_world example with
372 for the hello_world example with the following command:</p> 371 the following command:</p>
373 <pre> 372 <pre>
374 nacl_sdk/pepper_&lt;version&gt;/toolchain/win_x86_newlib/bin/i686-nacl-gcc \ 373 nacl_sdk/pepper_&lt;version&gt;/toolchain/win_x86_glibc/bin/i686-nacl-gcc \
375 hello_world.c -Inacl_sdk/pepper_&lt;version&gt;/include \ 374 hello_world.c -Inacl_sdk/pepper_&lt;version&gt;/include \
376 -Lnacl_sdk/pepper_&lt;version&gt;/lib/newlib/Release -o hello_world_x86_32.nex e \ 375 -Lnacl_sdk/pepper_&lt;version&gt;/lib/glibc/Release -o hello_world_x86_32.nexe \
377 -m32 -g -O2 -lppapi 376 -m32 -g -O2 -lppapi
378 </pre> 377 </pre>
379 <p>To compile a 64-bit <strong>.nexe</strong>, you can run the same command but use -m64 instead 378 <p>To compile a 64-bit <strong>.nexe</strong>, you can run the same command but use -m64 instead
380 of -m32. Alternatively, you could also use the version of the compiler that 379 of -m32. Alternatively, you could also use the version of the compiler that
381 targets the x86-64 architecture, i.e., <code>x86_64-nacl-gcc</code>.</p> 380 targets the x86-64 architecture, i.e., <code>x86_64-nacl-gcc</code>.</p>
382 <p>You should name executable modules with a <strong>.nexe</strong> filename ext ension, 381 <p>You should name executable modules with a <strong>.nexe</strong> filename ext ension,
383 regardless of what platform you&#8217;re using.</p> 382 regardless of what platform you&#8217;re using.</p>
384 <h3 id="creating-libraries-and-linking">Creating libraries and Linking</h3> 383 <h3 id="creating-libraries-and-linking">Creating libraries and Linking</h3>
385 <p>Creating libraries and linking with the GNU-based toolchain is similar 384 <p>Creating libraries and linking with the GNU-based toolchain is similar
386 to doing the same with the PNaCl toolchain. The relevant tools 385 to doing the same with the PNaCl toolchain. The relevant tools
387 for creating <strong>static</strong> libraries are <code>&lt;prefix&gt;ar</code> and <code>&lt;prefix&gt;ranlib</code>. 386 for creating <strong>static</strong> libraries are <code>&lt;prefix&gt;ar</code> and <code>&lt;prefix&gt;ranlib</code>.
388 Linking can be done with <code>&lt;prefix&gt;g++</code>. See the 387 Linking can be done with <code>&lt;prefix&gt;g++</code>. See the
389 <a class="reference internal" href="/native-client/devguide/devcycle/dynamic-loa ding.html"><em>Dynamic Linking &amp; Loading with glibc</em></a> 388 <a class="reference internal" href="/native-client/devguide/devcycle/dynamic-loa ding.html"><em>Dynamic Linking &amp; Loading with glibc</em></a>
390 section on how to create <strong>shared</strong> libraries.</p> 389 section on how to create <strong>shared</strong> libraries.</p>
391 <h3 id="finalizing-a-nexe-for-deployment">Finalizing a <strong>nexe</strong> for deployment</h3> 390 <h3 id="finalizing-a-nexe-for-deployment">Finalizing a <strong>nexe</strong> for deployment</h3>
392 <p>Unlike the PNaCl toolchain, no separate finalization step is required 391 <p>Unlike the PNaCl toolchain, no separate finalization step is required
393 for <strong>nexe</strong> files. The <strong>nexe</strong> files are always in a <strong>stable</strong> format. 392 for <strong>nexe</strong> files. The <strong>nexe</strong> files are always in a <strong>stable</strong> format.
394 However, the <strong>nexe</strong> file may contain debug information and symbol information 393 However, the <strong>nexe</strong> file may contain debug information and symbol information
395 which may make the <strong>nexe</strong> file larger than needed for distributio n. 394 which may make the <strong>nexe</strong> file larger than needed for distributio n.
396 To minimize the size of the distributed file, you can run the 395 To minimize the size of the distributed file, you can run the
397 <code>&lt;prefix&gt;strip</code> tool to strip out debug information.</p> 396 <code>&lt;prefix&gt;strip</code> tool to strip out debug information.</p>
398 <h2 id="using-make">Using make</h2> 397 <h2 id="using-make">Using make</h2>
399 <p>This document doesn&#8217;t cover how to use <code>make</code>, but if you wa nt to use 398 <p>This document doesn&#8217;t cover how to use <code>make</code>, but if you wa nt to use
400 <code>make</code> to build your Native Client module, you can base your Makefile on the 399 <code>make</code> to build your Native Client module, you can base your Makefile on the
401 ones in the SDK examples.</p> 400 ones in the SDK examples.</p>
402 <p>The Makefiles for the SDK examples build most of the examples in multiple 401 <p>The Makefiles for the SDK examples build most of the examples in multiple
403 configurations (using PNaCl vs NaCl, using different C libraries, 402 configurations (using PNaCl vs NaCl, using different C libraries,
404 targeting different architectures, and using different levels of optimization). 403 targeting different architectures, and using different levels of optimization).
405 To select a specific toolchain, set the <strong>environment variable</strong> 404 To select a specific toolchain, set the <strong>environment variable</strong>
406 <code>TOOLCHAIN</code> to either <code>pnacl</code>, <code>newlib</code>, <code> glibc</code>, or <code>host</code>. 405 <code>TOOLCHAIN</code> to either <code>pnacl</code>, <code>clang-newlib</code>, <code>glibc</code>, or <code>host</code>.
407 To select a specific level of optimization set the <strong>environment 406 To select a specific level of optimization set the <strong>environment
408 variable</strong> <code>CONFIG</code> to either <code>Debug</code>, or <code>Rel ease</code>. Running 407 variable</strong> <code>CONFIG</code> to either <code>Debug</code>, or <code>Rel ease</code>. Running
409 <code>make</code> in each example&#8217;s directory does <strong>one</strong> of the following, 408 <code>make</code> in each example&#8217;s directory does <strong>one</strong> of the following,
410 depending on the setting of the environment variables.</p> 409 depending on the setting of the environment variables.</p>
411 <ul class="small-gap"> 410 <ul class="small-gap">
412 <li><p class="first">If <code>TOOLCHAIN=pnacl</code> creates a subdirectory call ed <code>pnacl</code>;</p> 411 <li><p class="first">If <code>TOOLCHAIN=pnacl</code> creates a subdirectory call ed <code>pnacl</code>;</p>
413 <ul class="small-gap"> 412 <ul class="small-gap">
414 <li>builds a <strong>.pexe</strong> (architecture-independent Native Client exec utable) using 413 <li>builds a <strong>.pexe</strong> (architecture-independent Native Client exec utable) using
415 the newlib library</li> 414 the newlib library</li>
416 <li>generates a Native Client manifest (.nmf) file for the pnacl version of the 415 <li>generates a Native Client manifest (.nmf) file for the pnacl version of the
417 example</li> 416 example</li>
418 </ul> 417 </ul>
419 </li> 418 </li>
420 <li><p class="first">If <code>TOOLCHAIN=newlib</code> creates a subdirectory cal led <code>newlib</code>;</p> 419 <li><p class="first">If <code>TOOLCHAIN=clang-newlib</code> creates a subdirecto ry called <code>clang-newlib</code>;</p>
421 <ul class="small-gap"> 420 <ul class="small-gap">
422 <li>builds <strong>.nexes</strong> for the x86-32, x86-64, and ARM architectures using the 421 <li>builds <strong>.nexes</strong> for the x86-32, x86-64, and ARM architectures using the
423 newlib library</li> 422 nacl-clang toolchain and the newlib C library</li>
424 <li>generates a Native Client manifest (.nmf) file for the newlib version of 423 <li>generates a Native Client manifest (.nmf) file for the clang-newlib version
425 the example</li> 424 of the example</li>
426 </ul> 425 </ul>
427 </li> 426 </li>
428 <li><p class="first">If <code>TOOLCHAIN=glibc</code> creates a subdirectory call ed <code>glibc</code>;</p> 427 <li><p class="first">If <code>TOOLCHAIN=glibc</code> creates a subdirectory call ed <code>glibc</code>;</p>
429 <ul class="small-gap"> 428 <ul class="small-gap">
430 <li>builds <strong>.nexes</strong> for the x86-32 and x86-64 architectures using the glibc 429 <li>builds <strong>.nexes</strong> for the x86-32, x86-64 and ARM architectures using the
431 library</li> 430 glibc library</li>
432 <li>generates a Native Client manifest (.nmf) file for the glibc version of the 431 <li>generates a Native Client manifest (.nmf) file for the glibc version of the
433 example</li> 432 example</li>
434 </ul> 433 </ul>
435 </li> 434 </li>
436 <li><p class="first">If <code>TOOLCHAIN=host</code> creates a subdirectory calle d <code>windows</code>, <code>linux</code>, 435 <li><p class="first">If <code>TOOLCHAIN=host</code> creates a subdirectory calle d <code>windows</code>, <code>linux</code>,
437 or <code>mac</code> (depending on your development machine);</p> 436 or <code>mac</code> (depending on your development machine);</p>
438 <ul class="small-gap"> 437 <ul class="small-gap">
439 <li>builds a Pepper plugin (.dll for Windows, .so for Linux/Mac) using the 438 <li>builds a Pepper plugin (.dll for Windows, .so for Linux/Mac) using the
440 hosted toolchain on your development machine</li> 439 hosted toolchain on your development machine</li>
441 <li>generates a Native Client manifest (.nmf) file for the host Pepper plugin 440 <li>generates a Native Client manifest (.nmf) file for the host Pepper plugin
(...skipping 24 matching lines...) Expand all
466 libraries, such as libpthread and libc, plus the relevant header files. 465 libraries, such as libpthread and libc, plus the relevant header files.
467 The standard libraries are located under the <code>/pepper_&lt;version&gt;</code > directory 466 The standard libraries are located under the <code>/pepper_&lt;version&gt;</code > directory
468 in the following locations:</p> 467 in the following locations:</p>
469 <ul class="small-gap"> 468 <ul class="small-gap">
470 <li>PNaCl toolchain: <code>toolchain/&lt;platform&gt;_pnacl/usr/lib</code></li> 469 <li>PNaCl toolchain: <code>toolchain/&lt;platform&gt;_pnacl/usr/lib</code></li>
471 <li>x86 toolchains: <code>toolchain/&lt;platform&gt;_x86_&lt;c_library&gt;/x86_6 4-nacl/lib32</code> and 470 <li>x86 toolchains: <code>toolchain/&lt;platform&gt;_x86_&lt;c_library&gt;/x86_6 4-nacl/lib32</code> and
472 <code>/lib64</code> (for the 32-bit and 64-bit target architectures, respectivel y)</li> 471 <code>/lib64</code> (for the 32-bit and 64-bit target architectures, respectivel y)</li>
473 <li>ARM toolchain: <code>toolchain/&lt;platform&gt;_arm_&lt;c_library&gt;/arm-na cl/lib</code></li> 472 <li>ARM toolchain: <code>toolchain/&lt;platform&gt;_arm_&lt;c_library&gt;/arm-na cl/lib</code></li>
474 </ul> 473 </ul>
475 <p>For example, on Windows, the libraries for the x86-64 architecture in the 474 <p>For example, on Windows, the libraries for the x86-64 architecture in the
476 newlib toolchain are in <code>toolchain/win_x86_newlib/x86_64-nacl/lib64</code>. </p> 475 glibc toolchain are in <code>toolchain/win_x86_glibc/x86_64-nacl/lib64</code>.</ p>
477 <p>The header files are in:</p> 476 <p>The header files are in:</p>
478 <ul class="small-gap"> 477 <ul class="small-gap">
479 <li>PNaCl toolchain: <code>toolchain/&lt;platform&gt;_pnacl/usr/include</code></ li> 478 <li>PNaCl toolchain: <code>toolchain/&lt;platform&gt;_pnacl/le32-nacl/include</c ode></li>
480 <li>x86 toolchains: <code>toolchain/&lt;platform&gt;_x86_&lt;c_library&gt;/x86_6 4-nacl/include</code></li> 479 <li>clang newlib toolchains: <code>toolchain/&lt;platform&gt;_pnacl/&lt;arch&gt; -nacl/include</code></li>
481 <li>ARM toolchain: <code>toolchain/&lt;platform&gt;_arm_&lt;c_library&gt;/arm-na cl/include</code></li> 480 <li>x86 glibc toolchain: <code>toolchain/&lt;platform&gt;_x86_glibc/x86_64-nacl/ include</code></li>
481 <li>ARM glibc toolchain: <code>toolchain/&lt;platform&gt;_arm_glibc/arm-nacl/inc lude</code></li>
482 </ul> 482 </ul>
483 <p>Many other libraries have been ported for use with Native Client; for more 483 <p>Many other libraries have been ported for use with Native Client; for more
484 information, see the <a class="reference external" href="https://chromium.google source.com/webports">webports</a> 484 information, see the <a class="reference external" href="https://chromium.google source.com/webports">webports</a>
485 project. If you port an open-source library for your own use, we recommend 485 project. If you port an open-source library for your own use, we recommend
486 adding it to webports.</p> 486 adding it to webports.</p>
487 <p>Besides the standard libraries, the SDK includes Pepper libraries. 487 <p>Besides the standard libraries, the SDK includes Pepper libraries.
488 The PNaCl Pepper libraries are located in the the 488 The PNaCl Pepper libraries are located in the the
489 <code>nacl_sdk/pepper_&lt;version&gt;/lib/pnacl/&lt;Release or Debug&gt;</code> directory. 489 <code>nacl_sdk/pepper_&lt;version&gt;/lib/pnacl/&lt;Release or Debug&gt;</code> directory.
490 The GNU-based toolchain has Pepper libraries in 490 The GNU-based toolchain has Pepper libraries in
491 <code>nacl_sdk/pepper_&lt;version&gt;/lib/newlib_&lt;arch&gt;/&lt;Release or Deb ug&gt;</code> 491 <code>nacl_sdk/pepper_&lt;version&gt;/lib/glibc_&lt;arch&gt;/&lt;Release or Debu g&gt;</code>
492 and <code>nacl_sdk/pepper_&lt;version&gt;/lib/glibc_&lt;arch&gt;/&lt;Release or Debug&gt;</code>. 492 and <code>nacl_sdk/pepper_&lt;version&gt;/lib/clang-newlib_&lt;arch&gt;/&lt;Rele ase or Debug&gt;</code>.
493 The libraries provided by the SDK allow the application to use Pepper, 493 The libraries provided by the SDK allow the application to use Pepper,
494 as well as convenience libraries to simplify porting an application that 494 as well as convenience libraries to simplify porting an application that
495 uses POSIX functions. Here are descriptions of the Pepper libraries provided 495 uses POSIX functions. Here are descriptions of the Pepper libraries provided
496 in the SDK.</p> 496 in the SDK.</p>
497 <dl class="docutils" id="devcycle-building-nacl-io"> 497 <dl class="docutils" id="devcycle-building-nacl-io">
498 <dt>libppapi.a</dt> 498 <dt>libppapi.a</dt>
499 <dd>Implements the Pepper (PPAPI) C interface. Needed for all applications that 499 <dd>Implements the Pepper (PPAPI) C interface. Needed for all applications that
500 use Pepper (even C++ applications).</dd> 500 use Pepper (even C++ applications).</dd>
501 <dt>libppapi_cpp.a</dt> 501 <dt>libppapi_cpp.a</dt>
502 <dd>Implements the Pepper (PPAPI) C++ interface. Needed by C++ applications that 502 <dd>Implements the Pepper (PPAPI) C++ interface. Needed by C++ applications that
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
585 Function foo has disallowed type: i128 (i128) 585 Function foo has disallowed type: i128 (i128)
586 LLVM ERROR: PNaCl ABI verification failed 586 LLVM ERROR: PNaCl ABI verification failed
587 </pre> 587 </pre>
588 <p>When faced with a PNaCl ABI verification error, check the list of features 588 <p>When faced with a PNaCl ABI verification error, check the list of features
589 that are <a class="reference internal" href="/native-client/nacl-and-pnacl.html# when-to-use-nacl"><em>not supported by PNaCl</em></a>. 589 that are <a class="reference internal" href="/native-client/nacl-and-pnacl.html# when-to-use-nacl"><em>not supported by PNaCl</em></a>.
590 If the problem you face is not listed as restricted, 590 If the problem you face is not listed as restricted,
591 <a class="reference internal" href="/native-client/help.html#help"><em>let us kn ow</em></a>!</p> 591 <a class="reference internal" href="/native-client/help.html#help"><em>let us kn ow</em></a>!</p>
592 </section> 592 </section>
593 593
594 {{/partials.standard_nacl_article}} 594 {{/partials.standard_nacl_article}}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698