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

Side by Side Diff: native_client_sdk/src/doc/devguide/devcycle/dynamic-loading.rst

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 ###################################### 1 ######################################
2 Dynamic Linking and Loading with glibc 2 Dynamic Linking and Loading with glibc
3 ###################################### 3 ######################################
4 4
5 .. contents:: 5 .. contents::
6 :local: 6 :local:
7 :backlinks: none 7 :backlinks: none
8 :depth: 2 8 :depth: 2
9 9
10 .. Note:: 10 .. Note::
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 104
105 SDK toolchains 105 SDK toolchains
106 -------------- 106 --------------
107 107
108 The Native Client SDK contains multiple toolchains, which are differentiated by 108 The Native Client SDK contains multiple toolchains, which are differentiated by
109 :ref:`target architecture <target_architectures>` and C library: 109 :ref:`target architecture <target_architectures>` and C library:
110 110
111 =================== ========= =============================== 111 =================== ========= ===============================
112 Target architecture C library Toolchain directory 112 Target architecture C library Toolchain directory
113 =================== ========= =============================== 113 =================== ========= ===============================
114 x86 newlib toolchain/<platform>_x86_newlib
115 x86 glibc toolchain/<platform>_x86_glibc 114 x86 glibc toolchain/<platform>_x86_glibc
116 ARM newlib toolchain/<platform>_arm_newlib 115 ARM glibc toolchain/<platform>_arm_glibc
116 x86 newlib toolchain/<platform>_pnacl
117 ARM newlib toolchain/<platform>_pnacl
117 PNaCl newlib toolchain/<platform>_pnacl 118 PNaCl newlib toolchain/<platform>_pnacl
118 =================== ========= =============================== 119 =================== ========= ===============================
119 120
120 In the directories listed above, <platform> is the platform of your development 121 In the directories listed above, <platform> is the platform of your development
121 machine (i.e., win, mac, or linux). For example, in the Windows SDK, the x86 122 machine (i.e., win, mac, or linux). For example, in the Windows SDK, the x86
122 toolchain that uses glibc is in ``toolchain/win_x86_glibc``. 123 toolchain that uses glibc is in ``toolchain/win_x86_glibc``.
123 124
124 .. Note:: 125 .. Note::
125 :class: note 126 :class: note
126 127
127 **Note:** The ARM and PNaCl toolchains are currently restricted to newlib. 128 **Note:** The PNaCl toolchain is currently restricted to newlib.
128 129
129 To use the glibc library and dynamic linking in your application, you **must** 130 To use the glibc library and dynamic linking in your application, you **must**
130 use a glibc toolchain. (Currently the only glibc toolchain is 131 use a glibc toolchain. Note that you must build all code in your application
131 ``<platform>_x86_glibc``.) Note that you must build all code in your application
132 with one toolchain. Code from multiple toolchains cannot be mixed. 132 with one toolchain. Code from multiple toolchains cannot be mixed.
133 133
134 Specifying and delivering shared libraries 134 Specifying and delivering shared libraries
135 ------------------------------------------ 135 ------------------------------------------
136 136
137 One significant difference between newlib and glibc applications is that glibc 137 One significant difference between newlib and glibc applications is that glibc
138 applications must explicitly list and deploy the shared libraries that they 138 applications must explicitly list and deploy the shared libraries that they
139 use. 139 use.
140 140
141 In a desktop environment, when the user launches a dynamically linked 141 In a desktop environment, when the user launches a dynamically linked
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 into a Native Client executable (.nexe). 199 into a Native Client executable (.nexe).
200 200
201 Run ``make`` in the dlopen directory to see the commands the Makefile executes 201 Run ``make`` in the dlopen directory to see the commands the Makefile executes
202 to build x86 32-bit and 64-bit .nexe and .so files, and to generate a .nmf 202 to build x86 32-bit and 64-bit .nexe and .so files, and to generate a .nmf
203 file. These commands are described below. 203 file. These commands are described below.
204 204
205 .. Note:: 205 .. Note::
206 :class: note 206 :class: note
207 207
208 **Note:** The Makefiles for most of the examples in the SDK build the 208 **Note:** The Makefiles for most of the examples in the SDK build the
209 examples using multiple toolchains (x86 newlib, x86 glibc, ARM, and PNaCl). 209 examples using multiple toolchains (x86 newlib, x86 glibc, ARM newlib, ARM
210 With a few exceptions (listed in the :ref:`Release Notes 210 glibc, and PNaCl). With a few exceptions (listed in the :ref:`Release Notes
211 <sdk-release-notes>`), running "make" in each example's directory builds 211 <sdk-release-notes>`), running "make" in each example's directory builds
212 multiple versions of the example using the SDK toolchains. The dlopen example 212 multiple versions of the example using the SDK toolchains. The dlopen example
213 is one of those exceptions – it is only built with the x86 glibc toolchain, 213 is one of those exceptions – it is only built with the x86 glibc toolchain,
214 as that is currently the only toolchain that supports glibc and thus dynamic 214 as that is currently the only toolchain that supports glibc and thus dynamic
215 linking and loading. Take a look at the example Makefiles and the generated 215 linking and loading. Take a look at the example Makefiles and the generated
216 .nmf files for details on how to build dynamically linked applications. 216 .nmf files for details on how to build dynamically linked applications.
217 217
218 .. _dynamic_loading_manifest: 218 .. _dynamic_loading_manifest:
219 219
220 Generating a Native Client manifest file for a dynamically linked application 220 Generating a Native Client manifest file for a dynamically linked application
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 **undefined reference to 'dlopen' collect2: ld returned 1 exit status** 429 **undefined reference to 'dlopen' collect2: ld returned 1 exit status**
430 This is a linker ordering problem that usually results from improper ordering 430 This is a linker ordering problem that usually results from improper ordering
431 of command line flags when linking. Reconfigure your command line string to 431 of command line flags when linking. Reconfigure your command line string to
432 list libraries after the -o flag. 432 list libraries after the -o flag.
433 433
434 .. |menu-icon| image:: /images/menu-icon.png 434 .. |menu-icon| image:: /images/menu-icon.png
435 .. _objdump: http://en.wikipedia.org/wiki/Objdump 435 .. _objdump: http://en.wikipedia.org/wiki/Objdump
436 .. _GLIBC: http://www.gnu.org/software/libc/index.html 436 .. _GLIBC: http://www.gnu.org/software/libc/index.html
437 .. _POSIX: http://en.wikipedia.org/wiki/POSIX 437 .. _POSIX: http://en.wikipedia.org/wiki/POSIX
438 .. _newlib: http://sourceware.org/newlib/ 438 .. _newlib: http://sourceware.org/newlib/
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698