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

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 toolchain uses the <a class="reference external" href="http://sourc eware.org/newlib/">newlib</a> C library and can be used to build
76 <p>The Native Client SDK also has a GCC-based toolchain for building 76 portable <strong>pexe</strong> files (using <code>pnacl-clang</code>) or <strong >nexe</strong> files (using, for
77 <strong>nexes</strong>. The GCC-based toolchain has support for two C libraries: 77 example, <code>x86_64-nacl-clang</code>). The Native Client SDK also has a
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 GCC-based toolchain for building <strong>nexe</strong> files which uses the <a c lass="reference external" href="http://www.gnu.org/software/libc/">glibc</a> C l ibrary.
79 help you decide which to use.</p> 79 See <a class="reference internal" href="/native-client/devguide/devcycle/dynamic -loading.html"><em>Dynamic Linking &amp; Loading with glibc</em></a> for
80 information about these libraries, including factors to help you decide which to
81 use.</p>
80 <h3 id="c-standard-libraries"><span id="building-cpp-libraries"></span>C++ stand ard libraries</h3> 82 <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> 83 <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 84 (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 85 <code>-stdlib=[libc++|libstdc++]</code> command line argument can be used to
84 choose which standard library to use.</p> 86 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> 87 <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 88 <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 89 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+ + 90 <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 91 language standard to use (<code>-std=c++11</code> often doesn&#8217;t work well because newlib
90 relies on some GNU extensions).</p> 92 relies on some GNU extensions).</p>
91 <h3 id="sdk-toolchains">SDK toolchains</h3> 93 <h3 id="sdk-toolchains">SDK toolchains</h3>
92 <p>The Native Client SDK includes multiple toolchains. It has one PNaCl toolchai n 94 <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 95 and it has multiple GCC-based toolchains that are differentiated by target
94 architectures and C libraries. The single PNaCl toolchain is located 96 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>, 97 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> 363 <li>&lt;prefix&gt;readelf</li>
362 <li>&lt;prefix&gt;size</li> 364 <li>&lt;prefix&gt;size</li>
363 <li>&lt;prefix&gt;strings</li> 365 <li>&lt;prefix&gt;strings</li>
364 <li>&lt;prefix&gt;strip</li> 366 <li>&lt;prefix&gt;strip</li>
365 </ul> 367 </ul>
366 <h3 id="compiling">Compiling</h3> 368 <h3 id="compiling">Compiling</h3>
367 <p>Compiling files with the GNU-based toolchain is similar to compiling 369 <p>Compiling files with the GNU-based toolchain is similar to compiling
368 files with the PNaCl-based toolchain, except that the output is 370 files with the PNaCl-based toolchain, except that the output is
369 architecture specific.</p> 371 architecture specific.</p>
370 <p>For example, assuming you&#8217;re developing on a Windows machine, targeting the x86 372 <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> 373 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> 374 the following command:</p>
373 <pre> 375 <pre>
374 nacl_sdk/pepper_&lt;version&gt;/toolchain/win_x86_newlib/bin/i686-nacl-gcc \ 376 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 \ 377 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 \ 378 -Lnacl_sdk/pepper_&lt;version&gt;/lib/glibc/Release -o hello_world_x86_32.nexe \
377 -m32 -g -O2 -lppapi 379 -m32 -g -O2 -lppapi
378 </pre> 380 </pre>
379 <p>To compile a 64-bit <strong>.nexe</strong>, you can run the same command but use -m64 instead 381 <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 382 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> 383 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, 384 <p>You should name executable modules with a <strong>.nexe</strong> filename ext ension,
383 regardless of what platform you&#8217;re using.</p> 385 regardless of what platform you&#8217;re using.</p>
384 <h3 id="creating-libraries-and-linking">Creating libraries and Linking</h3> 386 <h3 id="creating-libraries-and-linking">Creating libraries and Linking</h3>
385 <p>Creating libraries and linking with the GNU-based toolchain is similar 387 <p>Creating libraries and linking with the GNU-based toolchain is similar
386 to doing the same with the PNaCl toolchain. The relevant tools 388 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>. 389 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 390 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> 391 <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> 392 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> 393 <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 394 <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. 395 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 396 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. 397 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 398 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> 399 <code>&lt;prefix&gt;strip</code> tool to strip out debug information.</p>
398 <h2 id="using-make">Using make</h2> 400 <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 401 <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 402 <code>make</code> to build your Native Client module, you can base your Makefile on the
401 ones in the SDK examples.</p> 403 ones in the SDK examples.</p>
402 <p>The Makefiles for the SDK examples build most of the examples in multiple 404 <p>The Makefiles for the SDK examples build most of the examples in multiple
403 configurations (using PNaCl vs NaCl, using different C libraries, 405 configurations (using PNaCl vs NaCl, using different C libraries,
404 targeting different architectures, and using different levels of optimization). 406 targeting different architectures, and using different levels of optimization).
405 To select a specific toolchain, set the <strong>environment variable</strong> 407 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>. 408 <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 409 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 410 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, 411 <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> 412 depending on the setting of the environment variables.</p>
411 <ul class="small-gap"> 413 <ul class="small-gap">
412 <li><p class="first">If <code>TOOLCHAIN=pnacl</code> creates a subdirectory call ed <code>pnacl</code>;</p> 414 <li><p class="first">If <code>TOOLCHAIN=pnacl</code> creates a subdirectory call ed <code>pnacl</code>;</p>
413 <ul class="small-gap"> 415 <ul class="small-gap">
414 <li>builds a <strong>.pexe</strong> (architecture-independent Native Client exec utable) using 416 <li>builds a <strong>.pexe</strong> (architecture-independent Native Client exec utable) using
415 the newlib library</li> 417 the newlib library</li>
416 <li>generates a Native Client manifest (.nmf) file for the pnacl version of the 418 <li>generates a Native Client manifest (.nmf) file for the pnacl version of the
417 example</li> 419 example</li>
418 </ul> 420 </ul>
419 </li> 421 </li>
420 <li><p class="first">If <code>TOOLCHAIN=newlib</code> creates a subdirectory cal led <code>newlib</code>;</p> 422 <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"> 423 <ul class="small-gap">
422 <li>builds <strong>.nexes</strong> for the x86-32, x86-64, and ARM architectures using the 424 <li>builds <strong>.nexes</strong> for the x86-32, x86-64, and ARM architectures using the
423 newlib library</li> 425 nacl-clang toolchain and the newlib C library</li>
424 <li>generates a Native Client manifest (.nmf) file for the newlib version of 426 <li>generates a Native Client manifest (.nmf) file for the clang-newlib version
425 the example</li> 427 of the example</li>
426 </ul> 428 </ul>
427 </li> 429 </li>
428 <li><p class="first">If <code>TOOLCHAIN=glibc</code> creates a subdirectory call ed <code>glibc</code>;</p> 430 <li><p class="first">If <code>TOOLCHAIN=glibc</code> creates a subdirectory call ed <code>glibc</code>;</p>
429 <ul class="small-gap"> 431 <ul class="small-gap">
430 <li>builds <strong>.nexes</strong> for the x86-32 and x86-64 architectures using the glibc 432 <li>builds <strong>.nexes</strong> for the x86-32, x86-64 and ARM architectures using the
431 library</li> 433 glibc library</li>
432 <li>generates a Native Client manifest (.nmf) file for the glibc version of the 434 <li>generates a Native Client manifest (.nmf) file for the glibc version of the
433 example</li> 435 example</li>
434 </ul> 436 </ul>
435 </li> 437 </li>
436 <li><p class="first">If <code>TOOLCHAIN=host</code> creates a subdirectory calle d <code>windows</code>, <code>linux</code>, 438 <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> 439 or <code>mac</code> (depending on your development machine);</p>
438 <ul class="small-gap"> 440 <ul class="small-gap">
439 <li>builds a Pepper plugin (.dll for Windows, .so for Linux/Mac) using the 441 <li>builds a Pepper plugin (.dll for Windows, .so for Linux/Mac) using the
440 hosted toolchain on your development machine</li> 442 hosted toolchain on your development machine</li>
441 <li>generates a Native Client manifest (.nmf) file for the host Pepper plugin 443 <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. 468 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 469 The standard libraries are located under the <code>/pepper_&lt;version&gt;</code > directory
468 in the following locations:</p> 470 in the following locations:</p>
469 <ul class="small-gap"> 471 <ul class="small-gap">
470 <li>PNaCl toolchain: <code>toolchain/&lt;platform&gt;_pnacl/usr/lib</code></li> 472 <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 473 <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> 474 <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> 475 <li>ARM toolchain: <code>toolchain/&lt;platform&gt;_arm_&lt;c_library&gt;/arm-na cl/lib</code></li>
474 </ul> 476 </ul>
475 <p>For example, on Windows, the libraries for the x86-64 architecture in the 477 <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> 478 glibc toolchain are in <code>toolchain/win_x86_glibc/x86_64-nacl/lib64</code>.</ p>
477 <p>The header files are in:</p> 479 <p>The header files are in:</p>
478 <ul class="small-gap"> 480 <ul class="small-gap">
479 <li>PNaCl toolchain: <code>toolchain/&lt;platform&gt;_pnacl/usr/include</code></ li> 481 <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> 482 <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> 483 <li>x86 glibc toolchain: <code>toolchain/&lt;platform&gt;_x86_glibc/x86_64-nacl/ include</code></li>
484 <li>ARM glibc toolchain: <code>toolchain/&lt;platform&gt;_arm_glibc/arm-nacl/inc lude</code></li>
482 </ul> 485 </ul>
483 <p>Many other libraries have been ported for use with Native Client; for more 486 <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> 487 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 488 project. If you port an open-source library for your own use, we recommend
486 adding it to webports.</p> 489 adding it to webports.</p>
487 <p>Besides the standard libraries, the SDK includes Pepper libraries. 490 <p>Besides the standard libraries, the SDK includes Pepper libraries.
488 The PNaCl Pepper libraries are located in the the 491 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. 492 <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 493 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> 494 <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>. 495 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, 496 The libraries provided by the SDK allow the application to use Pepper,
494 as well as convenience libraries to simplify porting an application that 497 as well as convenience libraries to simplify porting an application that
495 uses POSIX functions. Here are descriptions of the Pepper libraries provided 498 uses POSIX functions. Here are descriptions of the Pepper libraries provided
496 in the SDK.</p> 499 in the SDK.</p>
497 <dl class="docutils" id="devcycle-building-nacl-io"> 500 <dl class="docutils" id="devcycle-building-nacl-io">
498 <dt>libppapi.a</dt> 501 <dt>libppapi.a</dt>
499 <dd>Implements the Pepper (PPAPI) C interface. Needed for all applications that 502 <dd>Implements the Pepper (PPAPI) C interface. Needed for all applications that
500 use Pepper (even C++ applications).</dd> 503 use Pepper (even C++ applications).</dd>
501 <dt>libppapi_cpp.a</dt> 504 <dt>libppapi_cpp.a</dt>
502 <dd>Implements the Pepper (PPAPI) C++ interface. Needed by C++ applications that 505 <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) 588 Function foo has disallowed type: i128 (i128)
586 LLVM ERROR: PNaCl ABI verification failed 589 LLVM ERROR: PNaCl ABI verification failed
587 </pre> 590 </pre>
588 <p>When faced with a PNaCl ABI verification error, check the list of features 591 <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>. 592 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, 593 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> 594 <a class="reference internal" href="/native-client/help.html#help"><em>let us kn ow</em></a>!</p>
592 </section> 595 </section>
593 596
594 {{/partials.standard_nacl_article}} 597 {{/partials.standard_nacl_article}}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698