Lines Matching +full:ld +full:. +full:so

1 .\"	$NetBSD: link.5,v 1.25 2022/12/29 22:41:36 gutteridge Exp $
2 .\"
3 .\" Copyright (c) 1996 The NetBSD Foundation, Inc.
4 .\" All rights reserved.
5 .\"
6 .\" This code is derived from software contributed to The NetBSD Foundation
7 .\" by Paul Kranenburg.
8 .\"
9 .\" Redistribution and use in source and binary forms, with or without
10 .\" modification, are permitted provided that the following conditions
11 .\" are met:
12 .\" 1. Redistributions of source code must retain the above copyright
13 .\" notice, this list of conditions and the following disclaimer.
14 .\" 2. Redistributions in binary form must reproduce the above copyright
15 .\" notice, this list of conditions and the following disclaimer in the
16 .\" documentation and/or other materials provided with the distribution.
17 .\"
18 .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
19 .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
20 .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21 .\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
22 .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23 .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24 .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25 .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26 .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28 .\" POSSIBILITY OF SUCH DAMAGE.
29 .\"
42 programs and libraries.
44 link-editor and loader mechanism.
46 .Xr a.out 5
49 needed to resolve references to external entities.
52 unique to the dynamic loading and linking process.
56 (PIC) to improve sharing of code pages among different processes.
62 .Xr a.out 5
63 format offers no room for it elsewhere.
67 of system resources.
69 .Xr ld 1 .
71 through the .size assembler directive.
76 .Em _GLOBAL_OFFSET_TABLE_ .
78 register is reserved for the purpose.
80 independent of the actual load address.
83 shared objects in the address space.
87 segment of the core image.
88 Again, this is done to avoid run-time modifications to the text segment.
92 for mapping into the process address space.
94 link-editor and stores these along with the image's text and data bits.
97 is used to indicate the presence of the run-time linker structures.
100 is relocated to 0, there is no need to invoke the run-time link-editor.
103 can be derived.
105 .Em crt0 .
107 segment of the image to which it pertains.
110 reside both in the text and data segments of the image they apply to.
113 during the relocation process.
131 implementation.
132 The current version numbers understood by ld and ld.so are
135 .Tn "SunOS 4.x"
139 .Nx .
143 dependent data structure.
146 objects loaded as a result of the actions of the run-time link-editor.
150 .Fa crt_ldso .
158 and relocation information is located.
180 A pointer to the first link map loaded (see below).
182 .Xr ld.so 1
184 symbol table.
188 object.
190 Library search rules.
194 .Xr ld 1 .
196 The location of the Global Offset Table within this image.
198 The location of the Procedure Linkage Table within this image.
205 .Xr a.out 5
207 specifying run-time relocations.
210 symbol table.
212 The location of the symbol table.
214 Currently unused.
220 .Fa sdt_nzlist .
222 The size of the string table.
224 The size of the object's text segment.
226 The size of the Procedure Linkage Table.
232 to complete the link edit process of the object containing it.
241 in the section_dispatch_table structure.
255 The offset in the text segment of a string describing this link object.
259 specifies a library that is to be searched for by ld.so.
266 .Em lib\&<sod_name>\&.so.n.m .
269 should point at a full path name for the desired shared object.
271 Specifies the major version number of the shared object to load.
273 Specifies the preferred minor version number of the shared object to load.
278 to keep track of all shared objects loaded into a process' address space.
280 the text or data segment of an executable or shared library.
296 been loaded.
298 The full path name of the loaded object.
300 Pointer to the next link map.
304 structure that was responsible for loading this shared object.
306 Tossed in later versions the run-time linker.
308 Set if (some portion of) this object's text segment is currently writable.
312 structure.
314 Hook for attaching private data maintained by the run-time link-editor.
317 Symbol description with size.
322 added.
324 shared objects.
329 .Fa section_dispatch_table .
334 #define nz_un nlist.n_un
335 #define nz_strx nlist.n_un.n_strx
336 #define nz_name nlist.n_un.n_name
337 #define nz_type nlist.n_type
338 #define nz_value nlist.n_value
339 #define nz_desc nlist.n_desc
340 #define nz_other nlist.n_other
348 .Pc .
350 The size of the data represented by this symbol.
354 to facilitate quick lookup of symbols during run-time link-editing.
373 field).
376 hash table bucket.
377 It is zero for the last bucket element.
382 and data items copied from shared objects.
387 structure (see below) for use by debuggers.
400 The symbol description.
402 Virtual address of next rt_symbol.
404 Next in hash bucket.
405 Used by internally by ld.so.
407 Location of the source of initialized data within a shared object.
410 run-time symbol describes.
417 link-editing.
420 only do so after the link-editor has been called from crt0.
426 .Fa _dynamic .
440 Version number of this interface.
443 run under control of a debugger.
445 Set by the run-time linker whenever it adds symbols by loading shared objects.
448 divert control to the debugger.
450 .Em crt0.o ,
451 to be some convenient place before the call to _main.
454 .Fa dd_bpt_addr .
456 program.
459 may be interested in.
464 structure defines a set of service routines within ld.so.
467 for more information.
480 structure defines the interface between ld.so and the start-up code in crt0.
500 The virtual address at which ld.so was loaded by crt0.
506 used to get demand paged zeroed pages.
509 systems it contains -1.
511 Contains an open file descriptor that was used by crt0 to load ld.so.
515 structure.
517 A pointer to the environment strings.
520 if the main program is run by a debugger.
524 The name of the main program as determined by crt0 (CRT_VERSION_BSD3 only).
526 The path of the run-time linker as mapped by crt0 (CRT_VERSION_BSD4 only).
530 entry points provided by the run-time linker (CRT_VERSION_BSD4 only).
538 .Dq /var/run/ld.so.hints ,
539 which is used by ld.so to quickly locate the shared object images in the
540 file system.
542 .Xr a.out 5
544 of a table of fixed sized hash buckets and a common string pool.
562 Hints file magic number.
564 Interface version number.
566 Offset of hash table.
568 Offset of string table.
570 Size of strings.
572 Maximum usable offset in hints file.
575 used in constructing the hints file.
577 .Xr ldconfig 8 .
580 and higher.
585 * Hash table element in hints file.
599 Index of the string identifying the library.
601 Index of the string representing the full path name of the library.
603 The version numbers of the shared library.
606 .Fa hi_dewey .
608 Next bucket in case of hashing collisions.