| OLD | NEW |
| 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 Loading... |
| 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’s architecture. The SDK | 66 of the module to load based on the end-user’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_<version>/tools/</code> directory, m
eaning under | 68 script is located in the <code>pepper_<version>/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 & 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 & 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’s <a class="reference external" href=
"http://libcxx.llvm.org/">libc++</a> | 83 <p>The PNaCl SDK can use either LLVM’s <a class="reference external" href=
"http://libcxx.llvm.org/">libc++</a> |
| 82 (the current default) or GCC’s <a class="reference external" href="http://
gcc.gnu.org/libstdc++">libstdc++</a> (deprecated). The | 84 (the current default) or GCC’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’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’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’t work well
because newlib | 91 language standard to use (<code>-std=c++11</code> often doesn’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_<version>/toolchain/<OS_platform>_
pnacl</code>, | 97 in a directory named <code>pepper_<version>/toolchain/<OS_platform>_
pnacl</code>, |
| (...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 361 <li><prefix>readelf</li> | 363 <li><prefix>readelf</li> |
| 362 <li><prefix>size</li> | 364 <li><prefix>size</li> |
| 363 <li><prefix>strings</li> | 365 <li><prefix>strings</li> |
| 364 <li><prefix>strip</li> | 366 <li><prefix>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’re developing on a Windows machine, targeting
the x86 | 372 <p>For example, assuming you’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_<version>/toolchain/win_x86_newlib/bin/i686-nacl-gcc \ | 376 nacl_sdk/pepper_<version>/toolchain/win_x86_glibc/bin/i686-nacl-gcc \ |
| 375 hello_world.c -Inacl_sdk/pepper_<version>/include \ | 377 hello_world.c -Inacl_sdk/pepper_<version>/include \ |
| 376 -Lnacl_sdk/pepper_<version>/lib/newlib/Release -o hello_world_x86_32.nex
e \ | 378 -Lnacl_sdk/pepper_<version>/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’re using.</p> | 385 regardless of what platform you’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><prefix>ar</code>
and <code><prefix>ranlib</code>. | 389 for creating <strong>static</strong> libraries are <code><prefix>ar</code>
and <code><prefix>ranlib</code>. |
| 388 Linking can be done with <code><prefix>g++</code>. See the | 390 Linking can be done with <code><prefix>g++</code>. See the |
| 389 <a class="reference internal" href="/native-client/devguide/devcycle/dynamic-loa
ding.html"><em>Dynamic Linking & Loading with glibc</em></a> | 391 <a class="reference internal" href="/native-client/devguide/devcycle/dynamic-loa
ding.html"><em>Dynamic Linking & 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><prefix>strip</code> tool to strip out debug information.</p> | 399 <code><prefix>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’t cover how to use <code>make</code>, but if you wa
nt to use | 401 <p>This document doesn’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’s directory does <strong>one</strong> of
the following, | 411 <code>make</code> in each example’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 Loading... |
| 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_<version></code
> directory | 469 The standard libraries are located under the <code>/pepper_<version></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/<platform>_pnacl/usr/lib</code></li> | 472 <li>PNaCl toolchain: <code>toolchain/<platform>_pnacl/usr/lib</code></li> |
| 471 <li>x86 toolchains: <code>toolchain/<platform>_x86_<c_library>/x86_6
4-nacl/lib32</code> and | 473 <li>x86 toolchains: <code>toolchain/<platform>_x86_<c_library>/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/<platform>_arm_<c_library>/arm-na
cl/lib</code></li> | 475 <li>ARM toolchain: <code>toolchain/<platform>_arm_<c_library>/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/<platform>_pnacl/usr/include</code></
li> | 481 <li>PNaCl toolchain: <code>toolchain/<platform>_pnacl/le32-nacl/include</c
ode></li> |
| 480 <li>x86 toolchains: <code>toolchain/<platform>_x86_<c_library>/x86_6
4-nacl/include</code></li> | 482 <li>clang newlib toolchains: <code>toolchain/<platform>_pnacl/<arch>
-nacl/include</code></li> |
| 481 <li>ARM toolchain: <code>toolchain/<platform>_arm_<c_library>/arm-na
cl/include</code></li> | 483 <li>x86 glibc toolchain: <code>toolchain/<platform>_x86_glibc/x86_64-nacl/
include</code></li> |
| 484 <li>ARM glibc toolchain: <code>toolchain/<platform>_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_<version>/lib/pnacl/<Release or Debug></code>
directory. | 492 <code>nacl_sdk/pepper_<version>/lib/pnacl/<Release or Debug></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_<version>/lib/newlib_<arch>/<Release or Deb
ug></code> | 494 <code>nacl_sdk/pepper_<version>/lib/glibc_<arch>/<Release or Debu
g></code> |
| 492 and <code>nacl_sdk/pepper_<version>/lib/glibc_<arch>/<Release or
Debug></code>. | 495 and <code>nacl_sdk/pepper_<version>/lib/clang-newlib_<arch>/<Rele
ase or Debug></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 Loading... |
| 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}} |
| OLD | NEW |