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 |