| OLD | NEW |
| 1 .. _devcycle-building: | 1 .. _devcycle-building: |
| 2 | 2 |
| 3 ######## | 3 ######## |
| 4 Building | 4 Building |
| 5 ######## | 5 ######## |
| 6 | 6 |
| 7 .. contents:: Table Of Contents | 7 .. contents:: Table Of Contents |
| 8 :local: | 8 :local: |
| 9 :backlinks: none | 9 :backlinks: none |
| 10 :depth: 2 | 10 :depth: 2 |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 154 tools include: | 154 tools include: |
| 155 | 155 |
| 156 pnacl-abicheck | 156 pnacl-abicheck |
| 157 Check that the **pexe** follows the PNaCl ABI rules. | 157 Check that the **pexe** follows the PNaCl ABI rules. |
| 158 pnacl-ar | 158 pnacl-ar |
| 159 Creates archives (i.e., static libraries) | 159 Creates archives (i.e., static libraries) |
| 160 pnacl-clang | 160 pnacl-clang |
| 161 C compiler and compiler driver | 161 C compiler and compiler driver |
| 162 pnacl-clang++ | 162 pnacl-clang++ |
| 163 C++ compiler and compiler driver | 163 C++ compiler and compiler driver |
| 164 pnacl-compress |
| 165 Size compresses a finalized **pexe** file for deployment. |
| 164 pnacl-dis | 166 pnacl-dis |
| 165 Disassembler for both **pexe** files and **nexe** files | 167 Disassembler for both **pexe** files and **nexe** files |
| 166 pnacl-finalize | 168 pnacl-finalize |
| 167 Finalizes **pexe** files for deployment | 169 Finalizes **pexe** files for deployment |
| 168 pnacl-ld | 170 pnacl-ld |
| 169 Bitcode linker | 171 Bitcode linker |
| 170 pnacl-nm | 172 pnacl-nm |
| 171 Lists symbols in bitcode files, native code, and libraries | 173 Lists symbols in bitcode files, native code, and libraries |
| 172 pnacl-ranlib | 174 pnacl-ranlib |
| 173 Generates a symbol table for archives (i.e., static libraries) | 175 Generates a symbol table for archives (i.e., static libraries) |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 317 and will be supported by future versions of PNaCl. The finalization step | 319 and will be supported by future versions of PNaCl. The finalization step |
| 318 also helps minimize the size of your application for distribution by | 320 also helps minimize the size of your application for distribution by |
| 319 stripping out debug information and other metadata. | 321 stripping out debug information and other metadata. |
| 320 | 322 |
| 321 Once the application is finalized, be sure to adjust the manifest file to | 323 Once the application is finalized, be sure to adjust the manifest file to |
| 322 refer to the final version of the application before deployment. | 324 refer to the final version of the application before deployment. |
| 323 The ``create_nmf.py`` tool helps generate an ``.nmf`` file, but ``.nmf`` | 325 The ``create_nmf.py`` tool helps generate an ``.nmf`` file, but ``.nmf`` |
| 324 files can also be written by hand. | 326 files can also be written by hand. |
| 325 | 327 |
| 326 | 328 |
| 329 |
| 330 Compressing the **pexe** for deployment |
| 331 --------------------------------------- |
| 332 |
| 333 Size compression is an optional step for deployment, and reduces the |
| 334 size of the pexe file that must be transmitted over the wire. The tool |
| 335 ``pnacl-compress`` applies compression strategies that are already built |
| 336 into the **stable** binary format of a pexe application. As such, |
| 337 compressed pexe files do not need any extra time to be decompressed on |
| 338 the client's side. All costs are upfront when you call ``pnacl-compress``. |
| 339 |
| 340 Currently, this tool will compress pexe files by about 25%. However, |
| 341 it is somewhat slow (can take from seconds to minutes on large |
| 342 appications). Hence, this step is optional. |
| 343 |
| 344 .. naclcode:: |
| 345 :prettyprint: 0 |
| 346 |
| 347 <NACL_SDK_ROOT>/toolchain/win_pnacl/bin/pnacl-compress ^ |
| 348 hello_world.final.pexe |
| 349 |
| 350 Tool ``pnacl-compress`` must be called after a pexe file has been finalized |
| 351 for deployment (via ``pnacl-finalize``). Alternatively, you can apply this |
| 352 step as part of the finalizing step by adding the ``--compress`` flag |
| 353 to the pnacl-finalize command line. |
| 354 |
| 355 Note that this compression step doesn't replace gzip. This compression |
| 356 step is in addition to gzipping a file for deployment. One should note |
| 357 that while the gzipped version of a compressed pexe file is still |
| 358 smaller than the corresponding uncompressed pexe file, the gains is |
| 359 somewhat smaller after being gzipped. Expected reduction in size |
| 360 (after being gzipped) is more like 7.5% to 10%. |
| 361 |
| 327 The GNU-based toolchains | 362 The GNU-based toolchains |
| 328 ======================== | 363 ======================== |
| 329 | 364 |
| 330 Besides the PNaCl toolchain, the Native Client SDK also includes modified | 365 Besides the PNaCl toolchain, the Native Client SDK also includes modified |
| 331 versions of the tools in the standard GNU toolchain, including the GCC | 366 versions of the tools in the standard GNU toolchain, including the GCC |
| 332 compilers and the linkers and other tools from binutils. These tools only | 367 compilers and the linkers and other tools from binutils. These tools only |
| 333 support building **nexe** files. Run the tool with the ``--version`` | 368 support building **nexe** files. Run the tool with the ``--version`` |
| 334 command line flag to determine the current version of the tools. | 369 command line flag to determine the current version of the tools. |
| 335 | 370 |
| 336 Each tool in the toolchain is prefixed with the name of the target | 371 Each tool in the toolchain is prefixed with the name of the target |
| (...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 649 Function foo has disallowed type: i128 (i128) | 684 Function foo has disallowed type: i128 (i128) |
| 650 LLVM ERROR: PNaCl ABI verification failed | 685 LLVM ERROR: PNaCl ABI verification failed |
| 651 | 686 |
| 652 When faced with a PNaCl ABI verification error, check the list of features | 687 When faced with a PNaCl ABI verification error, check the list of features |
| 653 that are :ref:`not supported by PNaCl <when-to-use-nacl>`. | 688 that are :ref:`not supported by PNaCl <when-to-use-nacl>`. |
| 654 If the problem you face is not listed as restricted, | 689 If the problem you face is not listed as restricted, |
| 655 :ref:`let us know <help>`! | 690 :ref:`let us know <help>`! |
| 656 | 691 |
| 657 .. _glibc: http://www.gnu.org/software/libc/ | 692 .. _glibc: http://www.gnu.org/software/libc/ |
| 658 .. _newlib: http://sourceware.org/newlib/ | 693 .. _newlib: http://sourceware.org/newlib/ |
| OLD | NEW |