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

Unified Diff: native_client_sdk/doc_generated/devguide/devcycle/dynamic-loading.html

Issue 511963004: Rearrange tables so that navigation can be added back to certain pages. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add numbers to techniques table to correspond to later headings. Created 6 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: native_client_sdk/doc_generated/devguide/devcycle/dynamic-loading.html
diff --git a/native_client_sdk/doc_generated/devguide/devcycle/dynamic-loading.html b/native_client_sdk/doc_generated/devguide/devcycle/dynamic-loading.html
index 003a20d3d51c3268ade7f74da5864a31ea49e0f3..a197db9863d08368bf7f06ffbf30ed6898f9b73c 100644
--- a/native_client_sdk/doc_generated/devguide/devcycle/dynamic-loading.html
+++ b/native_client_sdk/doc_generated/devguide/devcycle/dynamic-loading.html
@@ -4,22 +4,20 @@
<h1 id="dynamic-linking-and-loading-with-glibc">Dynamic Linking and Loading with glibc</h1>
<div class="contents local" id="contents" style="display: none">
<ul class="small-gap">
-<li><p class="first"><a class="reference internal" href="#introduction" id="id1">Introduction</a></p>
+<li><a class="reference internal" href="#c-standard-libraries-glibc-and-newlib" id="id1">C standard libraries: glibc and newlib</a></li>
+<li><a class="reference internal" href="#sdk-toolchains" id="id2">SDK toolchains</a></li>
+<li><p class="first"><a class="reference internal" href="#specifying-and-delivering-shared-libraries" id="id3">Specifying and delivering shared libraries</a></p>
<ul class="small-gap">
-<li><a class="reference internal" href="#c-standard-libraries-glibc-and-newlib" id="id2">C standard libraries: glibc and newlib</a></li>
-<li><a class="reference internal" href="#sdk-toolchains" id="id3">SDK toolchains</a></li>
-<li><a class="reference internal" href="#specifying-and-delivering-shared-libraries" id="id4">Specifying and delivering shared libraries</a></li>
+<li><a class="reference internal" href="#building-a-dynamically-linked-application" id="id4">Building a dynamically linked application</a></li>
+<li><a class="reference internal" href="#generating-a-native-client-manifest-file-for-a-dynamically-linked-application" id="id5">Generating a Native Client manifest file for a dynamically linked application</a></li>
+<li><a class="reference internal" href="#deploying-a-dynamically-linked-application" id="id6">Deploying a dynamically linked application</a></li>
+<li><a class="reference internal" href="#opening-a-shared-library-at-runtime" id="id7">Opening a shared library at runtime</a></li>
+<li><a class="reference internal" href="#troubleshooting" id="id8">Troubleshooting</a></li>
</ul>
</li>
-<li><a class="reference internal" href="#building-a-dynamically-linked-application" id="id5">Building a dynamically linked application</a></li>
-<li><a class="reference internal" href="#generating-a-native-client-manifest-file-for-a-dynamically-linked-application" id="id6">Generating a Native Client manifest file for a dynamically linked application</a></li>
-<li><a class="reference internal" href="#deploying-a-dynamically-linked-application" id="id7">Deploying a dynamically linked application</a></li>
-<li><a class="reference internal" href="#opening-a-shared-library-at-runtime" id="id8">Opening a shared library at runtime</a></li>
-<li><a class="reference internal" href="#troubleshooting" id="id9">Troubleshooting</a></li>
</ul>
-</div><h2 id="introduction">Introduction</h2>
-<aside class="caution">
+</div><aside class="caution">
Portable Native Client currently only supports static linking, and the
only C library available for it is newlib. This page is only valid for
Native Client, though PNaCl will eventually support some form of
@@ -28,7 +26,7 @@ dynamic linking.
<p>This document describes how to create and deploy dynamically linked and loaded
applications with the glibc library in the Native Client SDK. Before reading
this document, we recommend reading <a class="reference internal" href="/native-client/devguide/devcycle/building.html"><em>Building Native Client Modules</em></a></p>
-<h3 id="c-standard-libraries-glibc-and-newlib"><span id="c-libraries"></span>C standard libraries: glibc and newlib</h3>
+<h2 id="c-standard-libraries-glibc-and-newlib"><span id="c-libraries"></span>C standard libraries: glibc and newlib</h2>
<p>The Native Client SDK comes with two C standard libraries &#8212; glibc and
newlib. These libraries are described in the table below.</p>
<table border="1" class="docutils">
@@ -38,11 +36,21 @@ newlib. These libraries are described in the table below.</p>
<tr class="row-odd"><th class="head">Library</th>
<th class="head">Linking</th>
<th class="head">License</th>
-<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
-<tr class="row-even"><td>glibc</td>
+<tr class="row-even"><td><dl class="first last docutils">
+<dt>glibc</dt>
+<dd>The GNU implementation of the <a class="reference external" href="http://en.wikipedia.org/wiki/POSIX">POSIX</a> standard
mkearney1 2014/09/12 23:40:34 Small nit-- add period at the end of library descr
+runtime library for the C programming language.
+Designed for portability and performance, glibc is
+one of the most popular implementations of the C
+library. It is comprised of a set of interdependent
+libraries including libc, libpthreads, libdl, and
+others. For documentation, FAQs, and additional
+information about glibc, see <a class="reference external" href="http://www.gnu.org/software/libc/index.html">GLIBC</a></dd>
+</dl>
+</td>
<td>dynamic
or static</td>
<td>GNU Lesser
@@ -50,18 +58,19 @@ General
Public
License
(LGPL)</td>
-<td>glibc is the GNU implementation of the
-<a class="reference external" href="http://en.wikipedia.org/wiki/POSIX">POSIX</a> standard runtime library for the C
-programming language. Designed for
-portability and performance, glibc is one
-of the most popular implementations of the
-C library. It is comprised of a set of
-interdependent libraries including libc,
-libpthreads, libdl, and others. For
-documentation, FAQs, and additional
-information about glibc, see <a class="reference external" href="http://www.gnu.org/software/libc/index.html">GLIBC</a></td>
</tr>
-<tr class="row-odd"><td>newlib</td>
+<tr class="row-odd"><td><dl class="first last docutils">
+<dt>newlib</dt>
+<dd>newlib is a C library intended for use in embedded
+systems. Like glibc, newlib is a conglomeration of
+several libraries. It is available for use under
+BSD-type free software licenses, which generally
+makes it more suitable to link statically in
+commercial, closed-source applications. For
+documentation, FAQs, and additional information
+about newlib, see <a class="reference external" href="http://sourceware.org/newlib/">newlib</a></dd>
mkearney1 2014/09/12 23:40:34 Small nit-- add period at the end of library descr
+</dl>
+</td>
<td>static</td>
<td>Berkeley
Software
@@ -70,16 +79,6 @@ Distribution
free
software
licenses</td>
-<td>newlib is a C library intended for use in
-embedded systems. Like glibc, newlib is a
-conglomeration of several library parts.
-It is available for use under BSD-type free
-software licenses, which generally makes it
-more suitable to link statically in
-commercial, closed-source applications. For
-documentation, FAQs, and additional
-information about newlib, see the <a class="reference external" href="http://sourceware.org/newlib/">newlib</a>
-documentation.</td>
</tr>
</tbody>
</table>
@@ -127,7 +126,7 @@ uses, even if the rest of an application is dynamically linked.</li>
</ul>
</aside>
-<h3 id="sdk-toolchains">SDK toolchains</h3>
+<h2 id="sdk-toolchains">SDK toolchains</h2>
<p>The Native Client SDK contains multiple toolchains, which are differentiated by
<a class="reference internal" href="/native-client/devguide/devcycle/building.html#target-architectures"><em>target architecture</em></a> and C library:</p>
<table border="1" class="docutils">
@@ -168,7 +167,7 @@ toolchain that uses glibc is in <code>toolchain/win_x86_glibc</code>.</p>
use a glibc toolchain. (Currently the only glibc toolchain is
<code>&lt;platform&gt;_x86_glibc</code>.) Note that you must build all code in your application
with one toolchain. Code from multiple toolchains cannot be mixed.</p>
-<h3 id="specifying-and-delivering-shared-libraries">Specifying and delivering shared libraries</h3>
+<h2 id="specifying-and-delivering-shared-libraries">Specifying and delivering shared libraries</h2>
<p>One significant difference between newlib and glibc applications is that glibc
applications must explicitly list and deploy the shared libraries that they
use.</p>
@@ -188,7 +187,7 @@ those libraries in a Native Client <a class="reference internal" href="/native-c
deploy the libraries along with the application. Instructions for how to build
a dynamically linked Native Client application, generate a Native Client
manifest (.nmf) file, and deploy an application are provided below.</p>
-<h2 id="building-a-dynamically-linked-application">Building a dynamically linked application</h2>
+<h3 id="building-a-dynamically-linked-application">Building a dynamically linked application</h3>
<p>Applications built with the glibc toolchain will by dynamically linked by
default. Application that load shared libraries at runtime using <code>dlopen()</code>
must link with the libdl library (<code>-ldl</code>).</p>
@@ -235,7 +234,7 @@ as that is currently the only toolchain that supports glibc and thus dynamic
linking and loading. Take a look at the example Makefiles and the generated
.nmf files for details on how to build dynamically linked applications.
</aside>
-<h2 id="generating-a-native-client-manifest-file-for-a-dynamically-linked-application"><span id="dynamic-loading-manifest"></span>Generating a Native Client manifest file for a dynamically linked application</h2>
+<h3 id="generating-a-native-client-manifest-file-for-a-dynamically-linked-application"><span id="dynamic-loading-manifest"></span>Generating a Native Client manifest file for a dynamically linked application</h3>
<p>The Native Client manifest file specifies the name of the executable to run
and must also specify any shared libraries that the application directly
depends on. For indirect dependencies (such as libraries opened via
@@ -312,7 +311,7 @@ intend to dlopen() at runtime you must explcitly list them in your call to
</aside>
<p>As an alternative to using <code>create_nmf</code>, it is possible to manually calculate
the list of shared library dependencies using tools such as <code>objdump_</code>.</p>
-<h2 id="deploying-a-dynamically-linked-application">Deploying a dynamically linked application</h2>
+<h3 id="deploying-a-dynamically-linked-application">Deploying a dynamically linked application</h3>
<p>As described above, an application&#8217;s manifest file must explicitly list all the
executable code modules that the application directly depends on, including
modules from the application itself (.nexe and .so files), modules from the
@@ -343,7 +342,7 @@ rename modules, it may be easier to re-run <code>create_nmf.py</code> to generat
manifest file rather than edit the original manifest file. For hosted
applications, you can check for name mismatches during testing by watching the
request log of the web server hosting your test deployment.</p>
-<h2 id="opening-a-shared-library-at-runtime">Opening a shared library at runtime</h2>
+<h3 id="opening-a-shared-library-at-runtime">Opening a shared library at runtime</h3>
<p>Native Client supports a version of the POSIX standard <code>dlopen()</code> interface
for opening libraries explicitly, after an application is already running.
Calling <code>dlopen()</code> may cause a library download to occur, and automatically
@@ -380,7 +379,7 @@ functions using <code>dlsym()</code>. When a user types in a query and clicks th
button, the module calls <code>Magic8Ball()</code> to generate an answer, and returns
the result to the user. Likewise when the user clicks the &#8216;Reverse&#8217; button
it calls the <code>Reverse()</code> function to reverse the string.</p>
-<h2 id="troubleshooting">Troubleshooting</h2>
+<h3 id="troubleshooting">Troubleshooting</h3>
<p>If your .nexe isn&#8217;t loading, the best place to look for information that can
help you troubleshoot the JavaScript console and standard output from Chrome.
See <a class="reference internal" href="/native-client/devguide/devcycle/debugging.html#devcycle-debugging"><em>Debugging</em></a> for more information.</p>

Powered by Google App Engine
This is Rietveld 408576698