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

Side by Side Diff: native_client_sdk/doc_generated/devguide/devcycle/dynamic-loading.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="dynamic-linking-and-loading-with-glibc"> 3 <section id="dynamic-linking-and-loading-with-glibc">
4 <h1 id="dynamic-linking-and-loading-with-glibc">Dynamic Linking and Loading with glibc</h1> 4 <h1 id="dynamic-linking-and-loading-with-glibc">Dynamic Linking and Loading with glibc</h1>
5 <div class="contents local" id="contents" style="display: none"> 5 <div class="contents local" id="contents" style="display: none">
6 <ul class="small-gap"> 6 <ul class="small-gap">
7 <li><a class="reference internal" href="#c-standard-libraries-glibc-and-newlib" id="id1">C standard libraries: glibc and newlib</a></li> 7 <li><a class="reference internal" href="#c-standard-libraries-glibc-and-newlib" id="id1">C standard libraries: glibc and newlib</a></li>
8 <li><a class="reference internal" href="#sdk-toolchains" id="id2">SDK toolchains </a></li> 8 <li><a class="reference internal" href="#sdk-toolchains" id="id2">SDK toolchains </a></li>
9 <li><p class="first"><a class="reference internal" href="#specifying-and-deliver ing-shared-libraries" id="id3">Specifying and delivering shared libraries</a></p > 9 <li><p class="first"><a class="reference internal" href="#specifying-and-deliver ing-shared-libraries" id="id3">Specifying and delivering shared libraries</a></p >
10 <ul class="small-gap"> 10 <ul class="small-gap">
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 <colgroup> 133 <colgroup>
134 </colgroup> 134 </colgroup>
135 <thead valign="bottom"> 135 <thead valign="bottom">
136 <tr class="row-odd"><th class="head">Target architecture</th> 136 <tr class="row-odd"><th class="head">Target architecture</th>
137 <th class="head">C library</th> 137 <th class="head">C library</th>
138 <th class="head">Toolchain directory</th> 138 <th class="head">Toolchain directory</th>
139 </tr> 139 </tr>
140 </thead> 140 </thead>
141 <tbody valign="top"> 141 <tbody valign="top">
142 <tr class="row-even"><td>x86</td> 142 <tr class="row-even"><td>x86</td>
143 <td>newlib</td>
144 <td>toolchain/&lt;platform&gt;_x86_newlib</td>
145 </tr>
146 <tr class="row-odd"><td>x86</td>
147 <td>glibc</td> 143 <td>glibc</td>
148 <td>toolchain/&lt;platform&gt;_x86_glibc</td> 144 <td>toolchain/&lt;platform&gt;_x86_glibc</td>
149 </tr> 145 </tr>
150 <tr class="row-even"><td>ARM</td> 146 <tr class="row-odd"><td>ARM</td>
151 <td>newlib</td> 147 <td>glibc</td>
152 <td>toolchain/&lt;platform&gt;_arm_newlib</td> 148 <td>toolchain/&lt;platform&gt;_arm_glibc</td>
153 </tr> 149 </tr>
154 <tr class="row-odd"><td>PNaCl</td> 150 <tr class="row-even"><td>x86</td>
155 <td>newlib</td> 151 <td>newlib</td>
156 <td>toolchain/&lt;platform&gt;_pnacl</td> 152 <td>toolchain/&lt;platform&gt;_pnacl</td>
157 </tr> 153 </tr>
154 <tr class="row-odd"><td>ARM</td>
155 <td>newlib</td>
156 <td>toolchain/&lt;platform&gt;_pnacl</td>
157 </tr>
158 <tr class="row-even"><td>PNaCl</td>
159 <td>newlib</td>
160 <td>toolchain/&lt;platform&gt;_pnacl</td>
161 </tr>
158 </tbody> 162 </tbody>
159 </table> 163 </table>
160 <p>In the directories listed above, &lt;platform&gt; is the platform of your dev elopment 164 <p>In the directories listed above, &lt;platform&gt; is the platform of your dev elopment
161 machine (i.e., win, mac, or linux). For example, in the Windows SDK, the x86 165 machine (i.e., win, mac, or linux). For example, in the Windows SDK, the x86
162 toolchain that uses glibc is in <code>toolchain/win_x86_glibc</code>.</p> 166 toolchain that uses glibc is in <code>toolchain/win_x86_glibc</code>.</p>
163 <aside class="note"> 167 <aside class="note">
164 <strong>Note:</strong> The ARM and PNaCl toolchains are currently restricted to newlib. 168 <strong>Note:</strong> The PNaCl toolchain is currently restricted to newlib.
165 </aside> 169 </aside>
166 <p>To use the glibc library and dynamic linking in your application, you <strong >must</strong> 170 <p>To use the glibc library and dynamic linking in your application, you <strong >must</strong>
167 use a glibc toolchain. (Currently the only glibc toolchain is 171 use a glibc toolchain. Note that you must build all code in your application
168 <code>&lt;platform&gt;_x86_glibc</code>.) Note that you must build all code in y our application
169 with one toolchain. Code from multiple toolchains cannot be mixed.</p> 172 with one toolchain. Code from multiple toolchains cannot be mixed.</p>
170 <h2 id="specifying-and-delivering-shared-libraries">Specifying and delivering sh ared libraries</h2> 173 <h2 id="specifying-and-delivering-shared-libraries">Specifying and delivering sh ared libraries</h2>
171 <p>One significant difference between newlib and glibc applications is that glib c 174 <p>One significant difference between newlib and glibc applications is that glib c
172 applications must explicitly list and deploy the shared libraries that they 175 applications must explicitly list and deploy the shared libraries that they
173 use.</p> 176 use.</p>
174 <p>In a desktop environment, when the user launches a dynamically linked 177 <p>In a desktop environment, when the user launches a dynamically linked
175 application, the operating system&#8217;s program loader determines the set of 178 application, the operating system&#8217;s program loader determines the set of
176 libraries the application requires by reading explicit inter-module 179 libraries the application requires by reading explicit inter-module
177 dependencies from executable file headers, and loads the required libraries 180 dependencies from executable file headers, and loads the required libraries
178 into the address space of the application process. Typically the required 181 into the address space of the application process. Typically the required
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 <dt>dlopen.cc</dt> 222 <dt>dlopen.cc</dt>
220 <dd>This file implements the Native Client module, which loads the two shared 223 <dd>This file implements the Native Client module, which loads the two shared
221 libraries and handles communcation with with JavaScript. The file is compiled 224 libraries and handles communcation with with JavaScript. The file is compiled
222 into a Native Client executable (.nexe).</dd> 225 into a Native Client executable (.nexe).</dd>
223 </dl> 226 </dl>
224 <p>Run <code>make</code> in the dlopen directory to see the commands the Makefil e executes 227 <p>Run <code>make</code> in the dlopen directory to see the commands the Makefil e executes
225 to build x86 32-bit and 64-bit .nexe and .so files, and to generate a .nmf 228 to build x86 32-bit and 64-bit .nexe and .so files, and to generate a .nmf
226 file. These commands are described below.</p> 229 file. These commands are described below.</p>
227 <aside class="note"> 230 <aside class="note">
228 <strong>Note:</strong> The Makefiles for most of the examples in the SDK build t he 231 <strong>Note:</strong> The Makefiles for most of the examples in the SDK build t he
229 examples using multiple toolchains (x86 newlib, x86 glibc, ARM, and PNaCl). 232 examples using multiple toolchains (x86 newlib, x86 glibc, ARM newlib, ARM
230 With a few exceptions (listed in the <a class="reference internal" href="/native -client/sdk/release-notes.html#sdk-release-notes"><em>Release Notes</em></a>), r unning &#8220;make&#8221; in each example&#8217;s directory builds 233 glibc, and PNaCl). With a few exceptions (listed in the <a class="reference int ernal" href="/native-client/sdk/release-notes.html#sdk-release-notes"><em>Releas e Notes</em></a>), running &#8220;make&#8221; in each example&#8217;s directory builds
231 multiple versions of the example using the SDK toolchains. The dlopen example 234 multiple versions of the example using the SDK toolchains. The dlopen example
232 is one of those exceptions – it is only built with the x86 glibc toolchain, 235 is one of those exceptions – it is only built with the x86 glibc toolchain,
233 as that is currently the only toolchain that supports glibc and thus dynamic 236 as that is currently the only toolchain that supports glibc and thus dynamic
234 linking and loading. Take a look at the example Makefiles and the generated 237 linking and loading. Take a look at the example Makefiles and the generated
235 .nmf files for details on how to build dynamically linked applications. 238 .nmf files for details on how to build dynamically linked applications.
236 </aside> 239 </aside>
237 <h3 id="generating-a-native-client-manifest-file-for-a-dynamically-linked-applic ation"><span id="dynamic-loading-manifest"></span>Generating a Native Client man ifest file for a dynamically linked application</h3> 240 <h3 id="generating-a-native-client-manifest-file-for-a-dynamically-linked-applic ation"><span id="dynamic-loading-manifest"></span>Generating a Native Client man ifest file for a dynamically linked application</h3>
238 <p>The Native Client manifest file specifies the name of the executable to run 241 <p>The Native Client manifest file specifies the name of the executable to run
239 and must also specify any shared libraries that the application directly 242 and must also specify any shared libraries that the application directly
240 depends on. For indirect dependencies (such as libraries opened via 243 depends on. For indirect dependencies (such as libraries opened via
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
413 in the .nmf file &#8211; either the files are the wrong type or kind, or an 416 in the .nmf file &#8211; either the files are the wrong type or kind, or an
414 expected library is missing.</dd> 417 expected library is missing.</dd>
415 <dt><strong>undefined reference to &#8216;dlopen&#8217; collect2: ld returned 1 exit status</strong></dt> 418 <dt><strong>undefined reference to &#8216;dlopen&#8217; collect2: ld returned 1 exit status</strong></dt>
416 <dd>This is a linker ordering problem that usually results from improper orderin g 419 <dd>This is a linker ordering problem that usually results from improper orderin g
417 of command line flags when linking. Reconfigure your command line string to 420 of command line flags when linking. Reconfigure your command line string to
418 list libraries after the -o flag.</dd> 421 list libraries after the -o flag.</dd>
419 </dl> 422 </dl>
420 </section> 423 </section>
421 424
422 {{/partials.standard_nacl_article}} 425 {{/partials.standard_nacl_article}}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698