--- /srv/reproducible-results/rbuild-debian/r-b-build.R1chK8H3/b1/binutils-mingw-w64_12_i386.changes +++ /srv/reproducible-results/rbuild-debian/r-b-build.R1chK8H3/b2/binutils-mingw-w64_12_i386.changes ├── Files │ @@ -1,8 +1,8 @@ │ │ f55d2758268170187e71172cb8df2aa1 24141444 debug optional binutils-mingw-w64-i686-dbgsym_2.44-2+12_i386.deb │ - c4a76a253d41d76a4dc49ad9d93f4551 2883508 devel optional binutils-mingw-w64-i686_2.44-2+12_i386.deb │ + a18b61fe0fb23f23fcbe33f477ebc1c3 2883640 devel optional binutils-mingw-w64-i686_2.44-2+12_i386.deb │ 29a0d24b1288c91803a8342c6763e48d 26533200 debug optional binutils-mingw-w64-ucrt64-dbgsym_2.44-2+12_i386.deb │ - 4b3783fc52f1d72242e8862af5531351 3624108 devel optional binutils-mingw-w64-ucrt64_2.44-2+12_i386.deb │ + a183b758fad3409e99735a4579994f45 3624236 devel optional binutils-mingw-w64-ucrt64_2.44-2+12_i386.deb │ 808dc0ec4956297947efd2776eb34df3 27004304 debug optional binutils-mingw-w64-x86-64-dbgsym_2.44-2+12_i386.deb │ - e9fc1ea34563f50c09bf43d234f590df 3622088 devel optional binutils-mingw-w64-x86-64_2.44-2+12_i386.deb │ + a10b8b73b94f5fd5fe576ece6933e178 3622232 devel optional binutils-mingw-w64-x86-64_2.44-2+12_i386.deb │ 7c287b3633826f2385af78190c46604a 149224 devel optional binutils-mingw-w64_2.44-2+12_all.deb ├── binutils-mingw-w64-i686_2.44-2+12_i386.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2024-10-26 18:03:55.000000 debian-binary │ │ -rw-r--r-- 0 0 0 2008 2024-10-26 18:03:55.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 2881308 2024-10-26 18:03:55.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 2881440 2024-10-26 18:03:55.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -49,15 +49,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7222 2024-10-26 18:03:55.000000 ./usr/share/man/man1/i686-w64-mingw32-ar.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 29664 2024-10-26 18:03:55.000000 ./usr/share/man/man1/i686-w64-mingw32-as.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3765 2024-10-26 18:03:55.000000 ./usr/share/man/man1/i686-w64-mingw32-c++filt.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5720 2024-10-26 18:03:55.000000 ./usr/share/man/man1/i686-w64-mingw32-dlltool.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 311 2024-10-26 18:03:55.000000 ./usr/share/man/man1/i686-w64-mingw32-dllwrap.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2557 2024-10-26 18:03:55.000000 ./usr/share/man/man1/i686-w64-mingw32-elfedit.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7943 2024-10-26 18:03:55.000000 ./usr/share/man/man1/i686-w64-mingw32-gprof.1.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 47205 2024-10-26 18:03:55.000000 ./usr/share/man/man1/i686-w64-mingw32-ld.1.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 47328 2024-10-26 18:03:55.000000 ./usr/share/man/man1/i686-w64-mingw32-ld.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7084 2024-10-26 18:03:55.000000 ./usr/share/man/man1/i686-w64-mingw32-nm.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 14200 2024-10-26 18:03:55.000000 ./usr/share/man/man1/i686-w64-mingw32-objcopy.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 14901 2024-10-26 18:03:55.000000 ./usr/share/man/man1/i686-w64-mingw32-objdump.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2144 2024-10-26 18:03:55.000000 ./usr/share/man/man1/i686-w64-mingw32-ranlib.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 8507 2024-10-26 18:03:55.000000 ./usr/share/man/man1/i686-w64-mingw32-readelf.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3015 2024-10-26 18:03:55.000000 ./usr/share/man/man1/i686-w64-mingw32-size.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3806 2024-10-26 18:03:55.000000 ./usr/share/man/man1/i686-w64-mingw32-strings.1.gz │ │ │ ├── ./usr/share/man/man1/i686-w64-mingw32-ld.1.gz │ │ │ │ ├── i686-w64-mingw32-ld.1 │ │ │ │ │ @@ -1,9 +1,9 @@ │ │ │ │ │ .\" -*- mode: troff; coding: utf-8 -*- │ │ │ │ │ -.\" Automatically generated by Pod::Man 5.0102 (Pod::Simple 3.45) │ │ │ │ │ +.\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) │ │ │ │ │ .\" │ │ │ │ │ .\" Standard preamble: │ │ │ │ │ .\" ======================================================================== │ │ │ │ │ .de Sp \" Vertical space (when we can't use .PP) │ │ │ │ │ .if t .sp .5v │ │ │ │ │ .if n .sp │ │ │ │ │ .. │ │ │ │ │ @@ -48,18 +48,21 @@ │ │ │ │ │ . if !\nF==2 \{\ │ │ │ │ │ . nr % 0 │ │ │ │ │ . nr F 2 │ │ │ │ │ . \} │ │ │ │ │ . \} │ │ │ │ │ .\} │ │ │ │ │ .rr rF │ │ │ │ │ +.\" │ │ │ │ │ +.\" Required to disable full justification in groff 1.23.0. │ │ │ │ │ +.if n .ds AD l │ │ │ │ │ .\" ======================================================================== │ │ │ │ │ .\" │ │ │ │ │ .IX Title "LD 1" │ │ │ │ │ -.TH LD 1 2024-10-26 binutils-2.44 "GNU Development Tools" │ │ │ │ │ +.TH LD 1 2025-02-02 binutils-2.44 "GNU Development Tools" │ │ │ │ │ .\" For nroff, turn off justification. Always turn off hyphenation; it makes │ │ │ │ │ .\" way too many mistakes in technical documents. │ │ │ │ │ .if n .ad l │ │ │ │ │ .nh │ │ │ │ │ .SH NAME │ │ │ │ │ ld \- The GNU linker │ │ │ │ │ .SH SYNOPSIS │ │ │ │ │ @@ -68,15 +71,15 @@ │ │ │ │ │ .SH DESCRIPTION │ │ │ │ │ .IX Header "DESCRIPTION" │ │ │ │ │ \&\fBld\fR combines a number of object and archive files, relocates │ │ │ │ │ their data and ties up symbol references. Usually the last step in │ │ │ │ │ compiling a program is to run \fBld\fR. │ │ │ │ │ .PP │ │ │ │ │ \&\fBld\fR accepts Linker Command Language files written in │ │ │ │ │ -a superset of AT&T's Link Editor Command Language syntax, │ │ │ │ │ +a superset of AT&T\*(Aqs Link Editor Command Language syntax, │ │ │ │ │ to provide explicit and total control over the linking process. │ │ │ │ │ .PP │ │ │ │ │ This man page does not describe the command language; see the │ │ │ │ │ \&\fBld\fR entry in \f(CW\*(C`info\*(C'\fR for full details on the command │ │ │ │ │ language and on other aspects of the GNU linker. │ │ │ │ │ .PP │ │ │ │ │ This version of \fBld\fR uses the general purpose BFD libraries │ │ │ │ │ @@ -92,41 +95,41 @@ │ │ │ │ │ (or, in some cases, to get an output file in spite of the error). │ │ │ │ │ .PP │ │ │ │ │ The GNU linker \fBld\fR is meant to cover a broad range of situations, │ │ │ │ │ and to be as compatible as possible with other linkers. As a result, │ │ │ │ │ you have many choices to control its behavior. │ │ │ │ │ .SH OPTIONS │ │ │ │ │ .IX Header "OPTIONS" │ │ │ │ │ -The linker supports a plethora of command-line options, but in actual │ │ │ │ │ +The linker supports a plethora of command\-line options, but in actual │ │ │ │ │ practice few of them are used in any particular context. │ │ │ │ │ For instance, a frequent use of \fBld\fR is to link standard Unix │ │ │ │ │ object files on a standard, supported Unix system. On such a system, to │ │ │ │ │ link a file \f(CW\*(C`hello.o\*(C'\fR: │ │ │ │ │ .PP │ │ │ │ │ .Vb 1 │ │ │ │ │ \& ld \-o /lib/crt0.o hello.o \-lc │ │ │ │ │ .Ve │ │ │ │ │ .PP │ │ │ │ │ This tells \fBld\fR to produce a file called \fIoutput\fR as the │ │ │ │ │ result of linking the file \f(CW\*(C`/lib/crt0.o\*(C'\fR with \f(CW\*(C`hello.o\*(C'\fR and │ │ │ │ │ the library \f(CW\*(C`libc.a\*(C'\fR, which will come from the standard search │ │ │ │ │ directories. (See the discussion of the \fB\-l\fR option below.) │ │ │ │ │ .PP │ │ │ │ │ -Some of the command-line options to \fBld\fR may be specified at any │ │ │ │ │ +Some of the command\-line options to \fBld\fR may be specified at any │ │ │ │ │ point in the command line. However, options which refer to files, such │ │ │ │ │ as \fB\-l\fR or \fB\-T\fR, cause the file to be read at the point at │ │ │ │ │ which the option appears in the command line, relative to the object │ │ │ │ │ -files and other file options. Repeating non-file options with a │ │ │ │ │ +files and other file options. Repeating non\-file options with a │ │ │ │ │ different argument will either have no further effect, or override prior │ │ │ │ │ occurrences (those further to the left on the command line) of that │ │ │ │ │ option. Options which may be meaningfully specified more than once are │ │ │ │ │ noted in the descriptions below. │ │ │ │ │ .PP │ │ │ │ │ -Non-option arguments are object files or archives which are to be linked │ │ │ │ │ -together. They may follow, precede, or be mixed in with command-line │ │ │ │ │ +Non\-option arguments are object files or archives which are to be linked │ │ │ │ │ +together. They may follow, precede, or be mixed in with command\-line │ │ │ │ │ options, except that an object file argument may not be placed between │ │ │ │ │ an option and its argument. │ │ │ │ │ .PP │ │ │ │ │ Usually the linker is invoked with at least one object file, but you can │ │ │ │ │ specify other forms of binary input files using \fB\-l\fR, \fB\-R\fR, │ │ │ │ │ and the script command language. If \fIno\fR binary input files at all │ │ │ │ │ are specified, the linker does not produce any output, and issues the │ │ │ │ │ @@ -148,53 +151,53 @@ │ │ │ │ │ option arguments must either follow the option letter without intervening │ │ │ │ │ whitespace, or be given as separate arguments immediately following the │ │ │ │ │ option that requires them. │ │ │ │ │ .PP │ │ │ │ │ For options whose names are multiple letters, either one dash or two can │ │ │ │ │ precede the option name; for example, \fB\-trace\-symbol\fR and │ │ │ │ │ \&\fB\-\-trace\-symbol\fR are equivalent. Note\-\-\-there is one exception to │ │ │ │ │ -this rule. Multiple letter options that start with a lower case 'o' can │ │ │ │ │ +this rule. Multiple letter options that start with a lower case \*(Aqo\*(Aq can │ │ │ │ │ only be preceded by two dashes. This is to reduce confusion with the │ │ │ │ │ \&\fB\-o\fR option. So for example \fB\-omagic\fR sets the output file │ │ │ │ │ name to \fBmagic\fR whereas \fB\-\-omagic\fR sets the NMAGIC flag on the │ │ │ │ │ output. │ │ │ │ │ .PP │ │ │ │ │ -Arguments to multiple-letter options must either be separated from the │ │ │ │ │ +Arguments to multiple\-letter options must either be separated from the │ │ │ │ │ option name by an equals sign, or be given as separate arguments │ │ │ │ │ immediately following the option that requires them. For example, │ │ │ │ │ \&\fB\-\-trace\-symbol foo\fR and \fB\-\-trace\-symbol=foo\fR are equivalent. │ │ │ │ │ -Unique abbreviations of the names of multiple-letter options are │ │ │ │ │ +Unique abbreviations of the names of multiple\-letter options are │ │ │ │ │ accepted. │ │ │ │ │ .PP │ │ │ │ │ Note\-\-\-if the linker is being invoked indirectly, via a compiler driver │ │ │ │ │ -(e.g. \fBgcc\fR) then all the linker command-line options should be │ │ │ │ │ +(e.g. \fBgcc\fR) then all the linker command\-line options should be │ │ │ │ │ prefixed by \fB\-Wl,\fR (or whatever is appropriate for the particular │ │ │ │ │ compiler driver) like this: │ │ │ │ │ .PP │ │ │ │ │ .Vb 1 │ │ │ │ │ \& gcc \-Wl,\-\-start\-group foo.o bar.o \-Wl,\-\-end\-group │ │ │ │ │ .Ve │ │ │ │ │ .PP │ │ │ │ │ This is important, because otherwise the compiler driver program may │ │ │ │ │ silently drop the linker options, resulting in a bad link. Confusion │ │ │ │ │ may also arise when passing options that require values through a │ │ │ │ │ driver, as the use of a space between option and argument acts as │ │ │ │ │ a separator, and causes the driver to pass only the option to the linker │ │ │ │ │ and the argument to the compiler. In this case, it is simplest to use │ │ │ │ │ -the joined forms of both single\- and multiple-letter options, such as: │ │ │ │ │ +the joined forms of both single\- and multiple\-letter options, such as: │ │ │ │ │ .PP │ │ │ │ │ .Vb 1 │ │ │ │ │ \& gcc foo.o bar.o \-Wl,\-eENTRY \-Wl,\-Map=a.map │ │ │ │ │ .Ve │ │ │ │ │ .PP │ │ │ │ │ -Here is a table of the generic command-line switches accepted by the GNU │ │ │ │ │ +Here is a table of the generic command\-line switches accepted by the GNU │ │ │ │ │ linker: │ │ │ │ │ .IP \fB@\fR\fIfile\fR 4 │ │ │ │ │ .IX Item "@file" │ │ │ │ │ -Read command-line options from \fIfile\fR. The options read are │ │ │ │ │ +Read command\-line options from \fIfile\fR. The options read are │ │ │ │ │ inserted in place of the original @\fIfile\fR option. If \fIfile\fR │ │ │ │ │ does not exist, or cannot be read, then the option will be treated │ │ │ │ │ literally, and not removed. │ │ │ │ │ .Sp │ │ │ │ │ Options in \fIfile\fR are separated by whitespace. A whitespace │ │ │ │ │ character may be included in an option by surrounding the entire │ │ │ │ │ option in either single or double quotes. Any character (including a │ │ │ │ │ @@ -212,57 +215,57 @@ │ │ │ │ │ .IX Item "--audit AUDITLIB" │ │ │ │ │ Adds \fIAUDITLIB\fR to the \f(CW\*(C`DT_AUDIT\*(C'\fR entry of the dynamic section. │ │ │ │ │ \&\fIAUDITLIB\fR is not checked for existence, nor will it use the DT_SONAME │ │ │ │ │ specified in the library. If specified multiple times \f(CW\*(C`DT_AUDIT\*(C'\fR │ │ │ │ │ will contain a colon separated list of audit interfaces to use. If the linker │ │ │ │ │ finds an object with an audit entry while searching for shared libraries, │ │ │ │ │ it will add a corresponding \f(CW\*(C`DT_DEPAUDIT\*(C'\fR entry in the output file. │ │ │ │ │ -This option is only meaningful on ELF platforms supporting the rtld-audit │ │ │ │ │ +This option is only meaningful on ELF platforms supporting the rtld\-audit │ │ │ │ │ interface. │ │ │ │ │ -.IP "\fB\-b\fR \fIinput-format\fR" 4 │ │ │ │ │ +.IP "\fB\-b\fR \fIinput\-format\fR" 4 │ │ │ │ │ .IX Item "-b input-format" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fB\-\-format=\fR\fIinput-format\fR 4 │ │ │ │ │ +.IP \fB\-\-format=\fR\fIinput\-format\fR 4 │ │ │ │ │ .IX Item "--format=input-format" │ │ │ │ │ .PD │ │ │ │ │ \&\fBld\fR may be configured to support more than one kind of object │ │ │ │ │ file. If your \fBld\fR is configured this way, you can use the │ │ │ │ │ \&\fB\-b\fR option to specify the binary format for input object files │ │ │ │ │ that follow this option on the command line. Even when \fBld\fR is │ │ │ │ │ -configured to support alternative object formats, you don't usually need │ │ │ │ │ +configured to support alternative object formats, you don\*(Aqt usually need │ │ │ │ │ to specify this, as \fBld\fR should be configured to expect as a │ │ │ │ │ default input format the most usual format on each machine. │ │ │ │ │ -\&\fIinput-format\fR is a text string, the name of a particular format │ │ │ │ │ +\&\fIinput\-format\fR is a text string, the name of a particular format │ │ │ │ │ supported by the BFD libraries. (You can list the available binary │ │ │ │ │ formats with \fBobjdump \-i\fR.) │ │ │ │ │ .Sp │ │ │ │ │ You may want to use this option if you are linking files with an unusual │ │ │ │ │ binary format. You can also use \fB\-b\fR to switch formats explicitly (when │ │ │ │ │ linking object files of different formats), by including │ │ │ │ │ -\&\fB\-b\fR \fIinput-format\fR before each group of object files in a │ │ │ │ │ +\&\fB\-b\fR \fIinput\-format\fR before each group of object files in a │ │ │ │ │ particular format. │ │ │ │ │ .Sp │ │ │ │ │ The default format is taken from the environment variable │ │ │ │ │ \&\f(CW\*(C`GNUTARGET\*(C'\fR. │ │ │ │ │ .Sp │ │ │ │ │ You can also define the input format from a script, using the command │ │ │ │ │ \&\f(CW\*(C`TARGET\*(C'\fR; │ │ │ │ │ -.IP "\fB\-c\fR \fIMRI-commandfile\fR" 4 │ │ │ │ │ +.IP "\fB\-c\fR \fIMRI\-commandfile\fR" 4 │ │ │ │ │ .IX Item "-c MRI-commandfile" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fB\-\-mri\-script=\fR\fIMRI-commandfile\fR 4 │ │ │ │ │ +.IP \fB\-\-mri\-script=\fR\fIMRI\-commandfile\fR 4 │ │ │ │ │ .IX Item "--mri-script=MRI-commandfile" │ │ │ │ │ .PD │ │ │ │ │ For compatibility with linkers produced by MRI, \fBld\fR accepts script │ │ │ │ │ files written in an alternate, restricted command language, described in │ │ │ │ │ the MRI Compatible Script Files section of GNU ld documentation. │ │ │ │ │ Introduce MRI script files with │ │ │ │ │ the option \fB\-c\fR; use the \fB\-T\fR option to run linker │ │ │ │ │ -scripts written in the general-purpose \fBld\fR scripting language. │ │ │ │ │ -If \fIMRI-cmdfile\fR does not exist, \fBld\fR looks for it in the directories │ │ │ │ │ +scripts written in the general\-purpose \fBld\fR scripting language. │ │ │ │ │ +If \fIMRI\-cmdfile\fR does not exist, \fBld\fR looks for it in the directories │ │ │ │ │ specified by any \fB\-L\fR options. │ │ │ │ │ .IP \fB\-d\fR 4 │ │ │ │ │ .IX Item "-d" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-dc\fR 4 │ │ │ │ │ .IX Item "-dc" │ │ │ │ │ .IP \fB\-dp\fR 4 │ │ │ │ │ @@ -278,15 +281,15 @@ │ │ │ │ │ .IP "\fB\-P\fR \fIAUDITLIB\fR" 4 │ │ │ │ │ .IX Item "-P AUDITLIB" │ │ │ │ │ .PD │ │ │ │ │ Adds \fIAUDITLIB\fR to the \f(CW\*(C`DT_DEPAUDIT\*(C'\fR entry of the dynamic section. │ │ │ │ │ \&\fIAUDITLIB\fR is not checked for existence, nor will it use the DT_SONAME │ │ │ │ │ specified in the library. If specified multiple times \f(CW\*(C`DT_DEPAUDIT\*(C'\fR │ │ │ │ │ will contain a colon separated list of audit interfaces to use. This │ │ │ │ │ -option is only meaningful on ELF platforms supporting the rtld-audit interface. │ │ │ │ │ +option is only meaningful on ELF platforms supporting the rtld\-audit interface. │ │ │ │ │ The \-P option is provided for Solaris compatibility. │ │ │ │ │ .IP \fB\-\-enable\-linker\-version\fR 4 │ │ │ │ │ .IX Item "--enable-linker-version" │ │ │ │ │ Enables the \f(CW\*(C`LINKER_VERSION\*(C'\fR linker script directive, described │ │ │ │ │ in \fBOutput Section Data\fR. If this directive is used in a linker │ │ │ │ │ script and this option has been enabled then a string containing the │ │ │ │ │ linker version will be inserted at the current point. │ │ │ │ │ @@ -300,15 +303,15 @@ │ │ │ │ │ does not insert a version string. This is the default. │ │ │ │ │ .IP \fB\-\-enable\-non\-contiguous\-regions\fR 4 │ │ │ │ │ .IX Item "--enable-non-contiguous-regions" │ │ │ │ │ This option avoids generating an error if an input section does not │ │ │ │ │ fit a matching output section. The linker tries to allocate the input │ │ │ │ │ section to subseque nt matching output sections, and generates an │ │ │ │ │ error only if no output section is large enough. This is useful when │ │ │ │ │ -several non-contiguous memory regions are available and the input │ │ │ │ │ +several non\-contiguous memory regions are available and the input │ │ │ │ │ section does not require a particular one. The order in which input │ │ │ │ │ sections are evaluated does not change, for instance: │ │ │ │ │ .Sp │ │ │ │ │ .Vb 10 │ │ │ │ │ \& MEMORY { │ │ │ │ │ \& MEM1 (rwx) : ORIGIN = 0x1000, LENGTH = 0x14 │ │ │ │ │ \& MEM2 (rwx) : ORIGIN = 0x1000, LENGTH = 0x40 │ │ │ │ │ @@ -364,16 +367,16 @@ │ │ │ │ │ .IX Item "--exclude-modules-for-implib module,module,..." │ │ │ │ │ Specifies a list of object files or archive members, from which symbols │ │ │ │ │ should not be automatically exported, but which should be copied wholesale │ │ │ │ │ into the import library being generated during the link. The module names │ │ │ │ │ may be delimited by commas or colons, and must match exactly the filenames │ │ │ │ │ used by \fBld\fR to open the files; for archive members, this is simply │ │ │ │ │ the member name, but for object files the name listed must include and │ │ │ │ │ -match precisely any path used to specify the input file on the linker's │ │ │ │ │ -command-line. This option is available only for the i386 PE targeted port │ │ │ │ │ +match precisely any path used to specify the input file on the linker\*(Aqs │ │ │ │ │ +command\-line. This option is available only for the i386 PE targeted port │ │ │ │ │ of the linker. Symbols explicitly listed in a .def file are still exported, │ │ │ │ │ regardless of this option. │ │ │ │ │ .IP \fB\-E\fR 4 │ │ │ │ │ .IX Item "-E" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-export\-dynamic\fR 4 │ │ │ │ │ .IX Item "--export-dynamic" │ │ │ │ │ @@ -404,28 +407,28 @@ │ │ │ │ │ the description of \fB\-\-export\-all\-symbols\fR below. │ │ │ │ │ .IP \fB\-\-export\-dynamic\-symbol=\fR\fIglob\fR 4 │ │ │ │ │ .IX Item "--export-dynamic-symbol=glob" │ │ │ │ │ When creating a dynamically linked executable, symbols matching │ │ │ │ │ \&\fIglob\fR will be added to the dynamic symbol table. When creating a │ │ │ │ │ shared library, references to symbols matching \fIglob\fR will not be │ │ │ │ │ bound to the definitions within the shared library. This option is a │ │ │ │ │ -no-op when creating a shared library and \fB\-Bsymbolic\fR or │ │ │ │ │ +no\-op when creating a shared library and \fB\-Bsymbolic\fR or │ │ │ │ │ \&\fB\-\-dynamic\-list\fR are not specified. This option is only meaningful │ │ │ │ │ on ELF platforms which support shared libraries. │ │ │ │ │ .IP \fB\-\-export\-dynamic\-symbol\-list=\fR\fIfile\fR 4 │ │ │ │ │ .IX Item "--export-dynamic-symbol-list=file" │ │ │ │ │ Specify a \fB\-\-export\-dynamic\-symbol\fR for each pattern in the file. │ │ │ │ │ The format of the file is the same as the version node without │ │ │ │ │ scope and node name. See \fBVERSION\fR for more information. │ │ │ │ │ .IP \fB\-EB\fR 4 │ │ │ │ │ .IX Item "-EB" │ │ │ │ │ -Link big-endian objects. This affects the default output format. │ │ │ │ │ +Link big\-endian objects. This affects the default output format. │ │ │ │ │ .IP \fB\-EL\fR 4 │ │ │ │ │ .IX Item "-EL" │ │ │ │ │ -Link little-endian objects. This affects the default output format. │ │ │ │ │ +Link little\-endian objects. This affects the default output format. │ │ │ │ │ .IP "\fB\-f\fR \fIname\fR" 4 │ │ │ │ │ .IX Item "-f name" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-auxiliary=\fR\fIname\fR 4 │ │ │ │ │ .IX Item "--auxiliary=name" │ │ │ │ │ .PD │ │ │ │ │ When creating an ELF shared object, set the internal DT_AUXILIARY field │ │ │ │ │ @@ -437,15 +440,15 @@ │ │ │ │ │ run the program, the dynamic linker will see the DT_AUXILIARY field. If │ │ │ │ │ the dynamic linker resolves any symbols from the filter object, it will │ │ │ │ │ first check whether there is a definition in the shared object │ │ │ │ │ \&\fIname\fR. If there is one, it will be used instead of the definition │ │ │ │ │ in the filter object. The shared object \fIname\fR need not exist. │ │ │ │ │ Thus the shared object \fIname\fR may be used to provide an alternative │ │ │ │ │ implementation of certain functions, perhaps for debugging or for │ │ │ │ │ -machine-specific performance. │ │ │ │ │ +machine\-specific performance. │ │ │ │ │ .Sp │ │ │ │ │ This option may be specified more than once. The DT_AUXILIARY entries │ │ │ │ │ will be created in the order in which they appear on the command line. │ │ │ │ │ .IP "\fB\-F\fR \fIname\fR" 4 │ │ │ │ │ .IX Item "-F name" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-filter=\fR\fIname\fR 4 │ │ │ │ │ @@ -461,15 +464,15 @@ │ │ │ │ │ dynamic linker will resolve symbols according to the symbol table of the │ │ │ │ │ filter object as usual, but it will actually link to the definitions │ │ │ │ │ found in the shared object \fIname\fR. Thus the filter object can be │ │ │ │ │ used to select a subset of the symbols provided by the object │ │ │ │ │ \&\fIname\fR. │ │ │ │ │ .Sp │ │ │ │ │ Some older linkers used the \fB\-F\fR option throughout a compilation │ │ │ │ │ -toolchain for specifying object-file format for both input and output │ │ │ │ │ +toolchain for specifying object\-file format for both input and output │ │ │ │ │ object files. │ │ │ │ │ The GNU linker uses other mechanisms for this purpose: the │ │ │ │ │ \&\fB\-b\fR, \fB\-\-format\fR, \fB\-\-oformat\fR options, the │ │ │ │ │ \&\f(CW\*(C`TARGET\*(C'\fR command in linker scripts, and the \f(CW\*(C`GNUTARGET\*(C'\fR │ │ │ │ │ environment variable. │ │ │ │ │ The GNU linker will ignore the \fB\-F\fR option when not │ │ │ │ │ creating an ELF shared object. │ │ │ │ │ @@ -698,15 +701,15 @@ │ │ │ │ │ .Sp │ │ │ │ │ .Vb 1 │ │ │ │ │ \& Removed property 0xc0000002 to merge foo.o (0x1) and bar.o (not found) │ │ │ │ │ .Ve │ │ │ │ │ .Sp │ │ │ │ │ This indicates that property 0xc0000002 is removed from output when │ │ │ │ │ merging properties in \fIfoo.o\fR, whose property 0xc0000002 value │ │ │ │ │ -is 0x1, and \fIbar.o\fR, which doesn't have property 0xc0000002. │ │ │ │ │ +is 0x1, and \fIbar.o\fR, which doesn\*(Aqt have property 0xc0000002. │ │ │ │ │ .Sp │ │ │ │ │ .Vb 1 │ │ │ │ │ \& Updated property 0xc0010001 (0x1) to merge foo.o (0x1) and bar.o (0x1) │ │ │ │ │ .Ve │ │ │ │ │ .Sp │ │ │ │ │ This indicates that property 0xc0010001 value is updated to 0x1 in output │ │ │ │ │ when merging properties in \fIfoo.o\fR, whose 0xc0010001 property value │ │ │ │ │ @@ -754,24 +757,24 @@ │ │ │ │ │ .IP \fB\-N\fR 4 │ │ │ │ │ .IX Item "-N" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-omagic\fR 4 │ │ │ │ │ .IX Item "--omagic" │ │ │ │ │ .PD │ │ │ │ │ Set the text and data sections to be readable and writable. Also, do │ │ │ │ │ -not page-align the data segment, and disable linking against shared │ │ │ │ │ +not page\-align the data segment, and disable linking against shared │ │ │ │ │ libraries. If the output format supports Unix style magic numbers, │ │ │ │ │ mark the output as \f(CW\*(C`OMAGIC\*(C'\fR. Note: Although a writable text section │ │ │ │ │ -is allowed for PE-COFF targets, it does not conform to the format │ │ │ │ │ +is allowed for PE\-COFF targets, it does not conform to the format │ │ │ │ │ specification published by Microsoft. │ │ │ │ │ .IP \fB\-\-no\-omagic\fR 4 │ │ │ │ │ .IX Item "--no-omagic" │ │ │ │ │ This option negates most of the effects of the \fB\-N\fR option. It │ │ │ │ │ -sets the text section to be read-only, and forces the data segment to │ │ │ │ │ -be page-aligned. Note \- this option does not enable linking against │ │ │ │ │ +sets the text section to be read\-only, and forces the data segment to │ │ │ │ │ +be page\-aligned. Note \- this option does not enable linking against │ │ │ │ │ shared libraries. Use \fB\-Bdynamic\fR for this. │ │ │ │ │ .IP "\fB\-o\fR \fIoutput\fR" 4 │ │ │ │ │ .IX Item "-o output" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-output=\fR\fIoutput\fR 4 │ │ │ │ │ .IX Item "--output=output" │ │ │ │ │ .PD │ │ │ │ │ @@ -800,29 +803,29 @@ │ │ │ │ │ files (the first one in the \fBOBJS\fR list) whereas the second │ │ │ │ │ version of the linker command will generate an error message and not │ │ │ │ │ delete anything. │ │ │ │ │ .IP \fB\-\-dependency\-file=\fR\fIdepfile\fR 4 │ │ │ │ │ .IX Item "--dependency-file=depfile" │ │ │ │ │ Write a \fIdependency file\fR to \fIdepfile\fR. This file contains a rule │ │ │ │ │ suitable for \f(CW\*(C`make\*(C'\fR describing the output file and all the input files │ │ │ │ │ -that were read to produce it. The output is similar to the compiler's │ │ │ │ │ -output with \fB\-M \-MP\fR. Note that there is no option like the compiler's \fB\-MM\fR, │ │ │ │ │ -to exclude "system files" (which is not a well-specified concept in the │ │ │ │ │ +that were read to produce it. The output is similar to the compiler\*(Aqs │ │ │ │ │ +output with \fB\-M \-MP\fR. Note that there is no option like the compiler\*(Aqs \fB\-MM\fR, │ │ │ │ │ +to exclude "system files" (which is not a well\-specified concept in the │ │ │ │ │ linker, unlike "system headers" in the compiler). So the output from │ │ │ │ │ \&\fB\-\-dependency\-file\fR is always specific to the exact state of the │ │ │ │ │ installation where it was produced, and should not be copied into │ │ │ │ │ distributed makefiles without careful editing. │ │ │ │ │ .IP "\fB\-O\fR \fIlevel\fR" 4 │ │ │ │ │ .IX Item "-O level" │ │ │ │ │ If \fIlevel\fR is a numeric values greater than zero \fBld\fR optimizes │ │ │ │ │ the output. This might take significantly longer and therefore probably │ │ │ │ │ should only be enabled for the final binary. At the moment this │ │ │ │ │ option only affects ELF shared library generation. Future releases of │ │ │ │ │ the linker may make more use of this option. Also currently there is │ │ │ │ │ -no difference in the linker's behaviour for different non-zero values │ │ │ │ │ +no difference in the linker\*(Aqs behaviour for different non\-zero values │ │ │ │ │ of this option. Again this may change with future releases. │ │ │ │ │ .IP "\fB\-plugin\fR \fIname\fR" 4 │ │ │ │ │ .IX Item "-plugin name" │ │ │ │ │ Involve a plugin in the linking process. The \fIname\fR parameter is │ │ │ │ │ the absolute filename of the plugin. Usually this parameter is │ │ │ │ │ automatically added by the compiler, when using link time │ │ │ │ │ optimization, but users can also add their own plugins if they so │ │ │ │ │ @@ -844,15 +847,15 @@ │ │ │ │ │ The option which are covered are: \fB\-Bdynamic\fR, \fB\-Bstatic\fR, │ │ │ │ │ \&\fB\-dn\fR, \fB\-dy\fR, \fB\-call_shared\fR, \fB\-non_shared\fR, │ │ │ │ │ \&\fB\-static\fR, \fB\-N\fR, \fB\-n\fR, \fB\-\-whole\-archive\fR, │ │ │ │ │ \&\fB\-\-no\-whole\-archive\fR, \fB\-r\fR, \fB\-Ur\fR, │ │ │ │ │ \&\fB\-\-copy\-dt\-needed\-entries\fR, \fB\-\-no\-copy\-dt\-needed\-entries\fR, │ │ │ │ │ \&\fB\-\-as\-needed\fR, \fB\-\-no\-as\-needed\fR, and \fB\-a\fR. │ │ │ │ │ .Sp │ │ │ │ │ -One target for this option are specifications for \fIpkg-config\fR. When │ │ │ │ │ +One target for this option are specifications for \fIpkg\-config\fR. When │ │ │ │ │ used with the \fB\-\-libs\fR option all possibly needed libraries are │ │ │ │ │ listed and then possibly linked with all the time. It is better to return │ │ │ │ │ something as follows: │ │ │ │ │ .Sp │ │ │ │ │ .Vb 1 │ │ │ │ │ \& \-Wl,\-\-push\-state,\-\-as\-needed \-libone \-libtwo \-Wl,\-\-pop\-state │ │ │ │ │ .Ve │ │ │ │ │ @@ -881,31 +884,31 @@ │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-relocatable\fR 4 │ │ │ │ │ .IX Item "--relocatable" │ │ │ │ │ .PD │ │ │ │ │ Generate relocatable output\-\-\-i.e., generate an output file that can in │ │ │ │ │ turn serve as input to \fBld\fR. This is often called \fIpartial │ │ │ │ │ linking\fR. As a side effect, in environments that support standard Unix │ │ │ │ │ -magic numbers, this option also sets the output file's magic number to │ │ │ │ │ +magic numbers, this option also sets the output file\*(Aqs magic number to │ │ │ │ │ \&\f(CW\*(C`OMAGIC\*(C'\fR. │ │ │ │ │ If this option is not specified, an absolute file is produced. When │ │ │ │ │ linking C++ programs, this option \fIwill not\fR resolve references to │ │ │ │ │ constructors; to do that, use \fB\-Ur\fR. │ │ │ │ │ .Sp │ │ │ │ │ When an input file does not have the same format as the output file, │ │ │ │ │ partial linking is only supported if that input file does not contain any │ │ │ │ │ relocations. Different output formats can have further restrictions; for │ │ │ │ │ example some \f(CW\*(C`a.out\*(C'\fR\-based formats do not support partial linking │ │ │ │ │ with input files in other formats at all. │ │ │ │ │ .Sp │ │ │ │ │ When the relocatable output contains both contents which require │ │ │ │ │ -link-time optimization (LTO) and contents which don't require LTO, │ │ │ │ │ +link\-time optimization (LTO) and contents which don\*(Aqt require LTO, │ │ │ │ │ a .gnu_object_only section will be created to contain a relocatable │ │ │ │ │ object file, as if \fB\-r\fR is applied to all relocatable inputs │ │ │ │ │ -which don't require LTO. When processing a relocatable input with │ │ │ │ │ +which don\*(Aqt require LTO. When processing a relocatable input with │ │ │ │ │ a .gnu_object_only section, the linker will extract the .gnu_object_only │ │ │ │ │ section as a separate input. │ │ │ │ │ .Sp │ │ │ │ │ Note that since \fB\-r\fR groups some sections from different input files │ │ │ │ │ together, there may be negative impacts on code size and locality in │ │ │ │ │ final executable or shared library. │ │ │ │ │ .Sp │ │ │ │ │ @@ -926,20 +929,20 @@ │ │ │ │ │ the \fB\-rpath\fR option. │ │ │ │ │ .IP \fB\-\-rosegment\fR 4 │ │ │ │ │ .IX Item "--rosegment" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-no\-rosegment\fR 4 │ │ │ │ │ .IX Item "--no-rosegment" │ │ │ │ │ .PD │ │ │ │ │ -Attempt to ensure that only a single read-only, non-code segment is │ │ │ │ │ +Attempt to ensure that only a single read\-only, non\-code segment is │ │ │ │ │ created. Only useful when used in conjunction with the \fB\-z │ │ │ │ │ -separate-code\fR option. The resulting binaries should be smaller than │ │ │ │ │ -if \fB\-z separate-code\fR is used on its own. Without this option, │ │ │ │ │ -or if \fB\-\-no\-rosegment\fR is specified, the \fB\-z separate-code\fR │ │ │ │ │ -option will create two read-only segments, one before the code segment │ │ │ │ │ +separate\-code\fR option. The resulting binaries should be smaller than │ │ │ │ │ +if \fB\-z separate\-code\fR is used on its own. Without this option, │ │ │ │ │ +or if \fB\-\-no\-rosegment\fR is specified, the \fB\-z separate\-code\fR │ │ │ │ │ +option will create two read\-only segments, one before the code segment │ │ │ │ │ and one after it. │ │ │ │ │ .Sp │ │ │ │ │ The name of the options are misleading, but they have been chosen in │ │ │ │ │ order for the linker to be compatible with the LLD and GOLD linkers. │ │ │ │ │ .Sp │ │ │ │ │ Thse options are only supported by ELF targets. │ │ │ │ │ .IP \fB\-s\fR 4 │ │ │ │ │ @@ -981,28 +984,28 @@ │ │ │ │ │ .IP "\fB\-T\fR \fIscriptfile\fR" 4 │ │ │ │ │ .IX Item "-T scriptfile" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-script=\fR\fIscriptfile\fR 4 │ │ │ │ │ .IX Item "--script=scriptfile" │ │ │ │ │ .PD │ │ │ │ │ Use \fIscriptfile\fR as the linker script. This script replaces │ │ │ │ │ -\&\fBld\fR's default linker script (rather than adding to it), │ │ │ │ │ +\&\fBld\fR\*(Aqs default linker script (rather than adding to it), │ │ │ │ │ unless the script contains \f(CW\*(C`INSERT\*(C'\fR, so \fIcommandfile\fR must │ │ │ │ │ specify everything necessary to describe the output file. │ │ │ │ │ .Sp │ │ │ │ │ If \fIscriptfile\fR does not exist in the current directory, \f(CW\*(C`ld\*(C'\fR │ │ │ │ │ looks for it in the directories specified by any preceding \fB\-L\fR │ │ │ │ │ options. │ │ │ │ │ .Sp │ │ │ │ │ Command line options that appear before the \fB\-T\fR option can │ │ │ │ │ affect the script, but command line options that appear after it do │ │ │ │ │ not. │ │ │ │ │ .Sp │ │ │ │ │ Multiple \fB\-T\fR options will accumulate if they are augmenting the │ │ │ │ │ -current script, otherwise the last, non-augmenting, \fB\-T\fR option │ │ │ │ │ +current script, otherwise the last, non\-augmenting, \fB\-T\fR option │ │ │ │ │ will be used. │ │ │ │ │ .Sp │ │ │ │ │ There are other ways of specifying linker scripts. See │ │ │ │ │ .IP "\fB\-dT\fR \fIscriptfile\fR" 4 │ │ │ │ │ .IX Item "-dT scriptfile" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-default\-script=\fR\fIscriptfile\fR 4 │ │ │ │ │ @@ -1119,28 +1122,28 @@ │ │ │ │ │ .IP \fB\-X\fR 4 │ │ │ │ │ .IX Item "-X" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-discard\-locals\fR 4 │ │ │ │ │ .IX Item "--discard-locals" │ │ │ │ │ .PD │ │ │ │ │ Delete all temporary local symbols. (These symbols start with │ │ │ │ │ -system-specific local label prefixes, typically \fB.L\fR for ELF systems │ │ │ │ │ +system\-specific local label prefixes, typically \fB.L\fR for ELF systems │ │ │ │ │ or \fBL\fR for traditional a.out systems.) │ │ │ │ │ .IP "\fB\-y\fR \fIsymbol\fR" 4 │ │ │ │ │ .IX Item "-y symbol" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-trace\-symbol=\fR\fIsymbol\fR 4 │ │ │ │ │ .IX Item "--trace-symbol=symbol" │ │ │ │ │ .PD │ │ │ │ │ Print the name of each linked file in which \fIsymbol\fR appears. This │ │ │ │ │ option may be given any number of times. On many systems it is necessary │ │ │ │ │ to prepend an underscore. │ │ │ │ │ .Sp │ │ │ │ │ This option is useful when you have an undefined symbol in your link but │ │ │ │ │ -don't know where the reference is coming from. │ │ │ │ │ +don\*(Aqt know where the reference is coming from. │ │ │ │ │ .IP "\fB\-Y\fR \fIpath\fR" 4 │ │ │ │ │ .IX Item "-Y path" │ │ │ │ │ Add \fIpath\fR to the default library search path. This option exists │ │ │ │ │ for Solaris compatibility. │ │ │ │ │ .IP "\fB\-z\fR \fIkeyword\fR" 4 │ │ │ │ │ .IX Item "-z keyword" │ │ │ │ │ The recognized keywords are: │ │ │ │ │ @@ -1201,26 +1204,26 @@ │ │ │ │ │ .IX Item "common-page-size=value" │ │ │ │ │ Set the page size most commonly used to \fIvalue\fR. Memory image │ │ │ │ │ layout will be optimized to minimize memory pages if the system is │ │ │ │ │ using pages of this size. │ │ │ │ │ .IP \fBdefs\fR 4 │ │ │ │ │ .IX Item "defs" │ │ │ │ │ Report unresolved symbol references from regular object files. This │ │ │ │ │ -is done even if the linker is creating a non-symbolic shared library. │ │ │ │ │ +is done even if the linker is creating a non\-symbolic shared library. │ │ │ │ │ This option is the inverse of \fB\-z undefs\fR. │ │ │ │ │ -.IP \fBdynamic-undefined-weak\fR 4 │ │ │ │ │ +.IP \fBdynamic\-undefined\-weak\fR 4 │ │ │ │ │ .IX Item "dynamic-undefined-weak" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fBnodynamic-undefined-weak\fR 4 │ │ │ │ │ +.IP \fBnodynamic\-undefined\-weak\fR 4 │ │ │ │ │ .IX Item "nodynamic-undefined-weak" │ │ │ │ │ .PD │ │ │ │ │ Make undefined weak symbols dynamic when building a dynamic object, │ │ │ │ │ if they are referenced from a regular object file and not forced local │ │ │ │ │ by symbol visibility or versioning. Do not make them dynamic if │ │ │ │ │ -\&\fBnodynamic-undefined-weak\fR. If neither option is given, a target │ │ │ │ │ +\&\fBnodynamic\-undefined\-weak\fR. If neither option is given, a target │ │ │ │ │ may default to either option being in force, or make some other │ │ │ │ │ selection of undefined weak symbols dynamic. Not all targets support │ │ │ │ │ these options. │ │ │ │ │ .IP \fBexecstack\fR 4 │ │ │ │ │ .IX Item "execstack" │ │ │ │ │ Marks the object as requiring executable stack. │ │ │ │ │ .IP \fBglobal\fR 4 │ │ │ │ │ @@ -1230,38 +1233,38 @@ │ │ │ │ │ of subsequently loaded libraries. │ │ │ │ │ .IP \fBglobalaudit\fR 4 │ │ │ │ │ .IX Item "globalaudit" │ │ │ │ │ This option is only meaningful when building a dynamic executable. │ │ │ │ │ This option marks the executable as requiring global auditing by │ │ │ │ │ setting the \f(CW\*(C`DF_1_GLOBAUDIT\*(C'\fR bit in the \f(CW\*(C`DT_FLAGS_1\*(C'\fR dynamic │ │ │ │ │ tag. Global auditing requires that any auditing library defined via │ │ │ │ │ -the \fB\-\-depaudit\fR or \fB\-P\fR command-line options be run for │ │ │ │ │ +the \fB\-\-depaudit\fR or \fB\-P\fR command\-line options be run for │ │ │ │ │ all dynamic objects loaded by the application. │ │ │ │ │ .IP \fBibtplt\fR 4 │ │ │ │ │ .IX Item "ibtplt" │ │ │ │ │ Generate Intel Indirect Branch Tracking (IBT) enabled PLT entries. │ │ │ │ │ Supported for Linux/i386 and Linux/x86_64. │ │ │ │ │ .IP \fBibt\fR 4 │ │ │ │ │ .IX Item "ibt" │ │ │ │ │ Generate GNU_PROPERTY_X86_FEATURE_1_IBT in .note.gnu.property section │ │ │ │ │ to indicate compatibility with IBT. This also implies \fBibtplt\fR. │ │ │ │ │ Supported for Linux/i386 and Linux/x86_64. │ │ │ │ │ -.IP \fBindirect-extern-access\fR 4 │ │ │ │ │ +.IP \fBindirect\-extern\-access\fR 4 │ │ │ │ │ .IX Item "indirect-extern-access" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fBnoindirect-extern-access\fR 4 │ │ │ │ │ +.IP \fBnoindirect\-extern\-access\fR 4 │ │ │ │ │ .IX Item "noindirect-extern-access" │ │ │ │ │ .PD │ │ │ │ │ Generate GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS in │ │ │ │ │ \&.note.gnu.property section to indicate that object file requires │ │ │ │ │ canonical function pointers and cannot be used with copy relocation. │ │ │ │ │ -This option also implies \fBnoextern-protected-data\fR and │ │ │ │ │ +This option also implies \fBnoextern\-protected\-data\fR and │ │ │ │ │ \&\fBnocopyreloc\fR. Supported for i386 and x86\-64. │ │ │ │ │ .Sp │ │ │ │ │ -\&\fBnoindirect-extern-access\fR removes │ │ │ │ │ +\&\fBnoindirect\-extern\-access\fR removes │ │ │ │ │ GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS from .note.gnu.property │ │ │ │ │ section. │ │ │ │ │ .IP \fBinitfirst\fR 4 │ │ │ │ │ .IX Item "initfirst" │ │ │ │ │ This option is only meaningful when building a shared object. │ │ │ │ │ It marks the object so that its runtime initialization will occur │ │ │ │ │ before the runtime initialization of any other objects brought into │ │ │ │ │ @@ -1346,72 +1349,72 @@ │ │ │ │ │ .IX Item "lazy" │ │ │ │ │ When generating an executable or shared library, mark it to tell the │ │ │ │ │ dynamic linker to defer function call resolution to the point when │ │ │ │ │ the function is called (lazy binding), rather than at load time. │ │ │ │ │ Lazy binding is the default. │ │ │ │ │ .IP \fBloadfltr\fR 4 │ │ │ │ │ .IX Item "loadfltr" │ │ │ │ │ -Specify that the object's filters be processed immediately at runtime. │ │ │ │ │ +Specify that the object\*(Aqs filters be processed immediately at runtime. │ │ │ │ │ .IP \fBmax\-page\-size=\fR\fIvalue\fR 4 │ │ │ │ │ .IX Item "max-page-size=value" │ │ │ │ │ Set the maximum memory page size supported to \fIvalue\fR. │ │ │ │ │ -.IP \fBmark-plt\fR 4 │ │ │ │ │ +.IP \fBmark\-plt\fR 4 │ │ │ │ │ .IX Item "mark-plt" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fBnomark-plt\fR 4 │ │ │ │ │ +.IP \fBnomark\-plt\fR 4 │ │ │ │ │ .IX Item "nomark-plt" │ │ │ │ │ .PD │ │ │ │ │ Mark PLT entries with dynamic tags, DT_X86_64_PLT, DT_X86_64_PLTSZ and │ │ │ │ │ -DT_X86_64_PLTENT. Since this option stores a non-zero value in the │ │ │ │ │ +DT_X86_64_PLTENT. Since this option stores a non\-zero value in the │ │ │ │ │ r_addend field of R_X86_64_JUMP_SLOT relocations, the resulting │ │ │ │ │ executables and shared libraries are incompatible with dynamic linkers, │ │ │ │ │ such as those in older versions of glibc without the change to ignore │ │ │ │ │ r_addend in R_X86_64_GLOB_DAT and R_X86_64_JUMP_SLOT relocations, which │ │ │ │ │ -don't ignore the r_addend field of R_X86_64_JUMP_SLOT relocations. │ │ │ │ │ +don\*(Aqt ignore the r_addend field of R_X86_64_JUMP_SLOT relocations. │ │ │ │ │ Supported for x86_64. │ │ │ │ │ .IP \fBmuldefs\fR 4 │ │ │ │ │ .IX Item "muldefs" │ │ │ │ │ Allow multiple definitions. │ │ │ │ │ .IP \fBnocopyreloc\fR 4 │ │ │ │ │ .IX Item "nocopyreloc" │ │ │ │ │ Disable linker generated .dynbss variables used in place of variables │ │ │ │ │ defined in shared libraries. May result in dynamic text relocations. │ │ │ │ │ .IP \fBnodefaultlib\fR 4 │ │ │ │ │ .IX Item "nodefaultlib" │ │ │ │ │ Specify that the dynamic loader search for dependencies of this object │ │ │ │ │ should ignore any default library search paths. │ │ │ │ │ .IP \fBnodelete\fR 4 │ │ │ │ │ .IX Item "nodelete" │ │ │ │ │ -Specify that the object shouldn't be unloaded at runtime. │ │ │ │ │ +Specify that the object shouldn\*(Aqt be unloaded at runtime. │ │ │ │ │ .IP \fBnodlopen\fR 4 │ │ │ │ │ .IX Item "nodlopen" │ │ │ │ │ Specify that the object is not available to \f(CW\*(C`dlopen\*(C'\fR. │ │ │ │ │ .IP \fBnodump\fR 4 │ │ │ │ │ .IX Item "nodump" │ │ │ │ │ Specify that the object can not be dumped by \f(CW\*(C`dldump\*(C'\fR. │ │ │ │ │ .IP \fBnoexecstack\fR 4 │ │ │ │ │ .IX Item "noexecstack" │ │ │ │ │ Marks the object as not requiring executable stack. │ │ │ │ │ -.IP \fBnoextern-protected-data\fR 4 │ │ │ │ │ +.IP \fBnoextern\-protected\-data\fR 4 │ │ │ │ │ .IX Item "noextern-protected-data" │ │ │ │ │ -Don't treat protected data symbols as external when building a shared │ │ │ │ │ +Don\*(Aqt treat protected data symbols as external when building a shared │ │ │ │ │ library. This option overrides the linker backend default. It can be │ │ │ │ │ used to work around incorrect relocations against protected data symbols │ │ │ │ │ generated by compiler. Updates on protected data symbols by another │ │ │ │ │ -module aren't visible to the resulting shared library. Supported for │ │ │ │ │ +module aren\*(Aqt visible to the resulting shared library. Supported for │ │ │ │ │ i386 and x86\-64. │ │ │ │ │ -.IP \fBnoreloc-overflow\fR 4 │ │ │ │ │ +.IP \fBnoreloc\-overflow\fR 4 │ │ │ │ │ .IX Item "noreloc-overflow" │ │ │ │ │ Disable relocation overflow check. This can be used to disable │ │ │ │ │ relocation overflow check if there will be no dynamic relocation │ │ │ │ │ -overflow at run-time. Supported for x86_64. │ │ │ │ │ -.IP \fBmemory-seal\fR 4 │ │ │ │ │ +overflow at run\-time. Supported for x86_64. │ │ │ │ │ +.IP \fBmemory\-seal\fR 4 │ │ │ │ │ .IX Item "memory-seal" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fBnomemory-seal\fR 4 │ │ │ │ │ +.IP \fBnomemory\-seal\fR 4 │ │ │ │ │ .IX Item "nomemory-seal" │ │ │ │ │ .PD │ │ │ │ │ Instruct the executable or shared library that the all PT_LOAD segments │ │ │ │ │ should be sealed to avoid further manipulation (such as changing the │ │ │ │ │ protection flags, the segment size, or remove the mapping). │ │ │ │ │ This is a security hardening that requires system support. This │ │ │ │ │ generates GNU_PROPERTY_MEMORY_SEAL in .note.gnu.property section │ │ │ │ │ @@ -1421,125 +1424,125 @@ │ │ │ │ │ dynamic linker to resolve all symbols when the program is started, or │ │ │ │ │ when the shared library is loaded by dlopen, instead of deferring │ │ │ │ │ function call resolution to the point when the function is first │ │ │ │ │ called. │ │ │ │ │ .IP \fBorigin\fR 4 │ │ │ │ │ .IX Item "origin" │ │ │ │ │ Specify that the object requires \fR\f(CB$ORIGIN\fR\fB\fR handling in paths. │ │ │ │ │ -.IP \fBpack-relative-relocs\fR 4 │ │ │ │ │ +.IP \fBpack\-relative\-relocs\fR 4 │ │ │ │ │ .IX Item "pack-relative-relocs" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fBnopack-relative-relocs\fR 4 │ │ │ │ │ +.IP \fBnopack\-relative\-relocs\fR 4 │ │ │ │ │ .IX Item "nopack-relative-relocs" │ │ │ │ │ .PD │ │ │ │ │ -Generate compact relative relocation in position-independent executable │ │ │ │ │ +Generate compact relative relocation in position\-independent executable │ │ │ │ │ and shared library. It adds \f(CW\*(C`DT_RELR\*(C'\fR, \f(CW\*(C`DT_RELRSZ\*(C'\fR and │ │ │ │ │ \&\f(CW\*(C`DT_RELRENT\*(C'\fR entries to the dynamic section. It is ignored when │ │ │ │ │ -building position-dependent executable and relocatable output. │ │ │ │ │ -\&\fBnopack-relative-relocs\fR is the default, which disables compact │ │ │ │ │ +building position\-dependent executable and relocatable output. │ │ │ │ │ +\&\fBnopack\-relative\-relocs\fR is the default, which disables compact │ │ │ │ │ relative relocation. When linked against the GNU C Library, a │ │ │ │ │ GLIBC_ABI_DT_RELR symbol version dependency on the shared C Library is │ │ │ │ │ added to the output. Supported for i386 and x86\-64. │ │ │ │ │ .IP \fBrelro\fR 4 │ │ │ │ │ .IX Item "relro" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fBnorelro\fR 4 │ │ │ │ │ .IX Item "norelro" │ │ │ │ │ .PD │ │ │ │ │ Create an ELF \f(CW\*(C`PT_GNU_RELRO\*(C'\fR segment header in the object. This │ │ │ │ │ -specifies a memory segment that should be made read-only after │ │ │ │ │ -relocation, if supported. Specifying \fBcommon-page-size\fR smaller │ │ │ │ │ +specifies a memory segment that should be made read\-only after │ │ │ │ │ +relocation, if supported. Specifying \fBcommon\-page\-size\fR smaller │ │ │ │ │ than the system page size will render this protection ineffective. │ │ │ │ │ -Don't create an ELF \f(CW\*(C`PT_GNU_RELRO\*(C'\fR segment if \fBnorelro\fR. │ │ │ │ │ -.IP \fBreport-relative-reloc\fR 4 │ │ │ │ │ +Don\*(Aqt create an ELF \f(CW\*(C`PT_GNU_RELRO\*(C'\fR segment if \fBnorelro\fR. │ │ │ │ │ +.IP \fBreport\-relative\-reloc\fR 4 │ │ │ │ │ .IX Item "report-relative-reloc" │ │ │ │ │ Report dynamic relative relocations generated by linker. Supported for │ │ │ │ │ Linux/i386 and Linux/x86_64. │ │ │ │ │ .IP \fBsectionheader\fR 4 │ │ │ │ │ .IX Item "sectionheader" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fBnosectionheader\fR 4 │ │ │ │ │ .IX Item "nosectionheader" │ │ │ │ │ .PD │ │ │ │ │ -Generate section header. Don't generate section header if │ │ │ │ │ +Generate section header. Don\*(Aqt generate section header if │ │ │ │ │ \&\fBnosectionheader\fR is used. \fBsectionheader\fR is the default. │ │ │ │ │ -.IP \fBseparate-code\fR 4 │ │ │ │ │ +.IP \fBseparate\-code\fR 4 │ │ │ │ │ .IX Item "separate-code" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fBnoseparate-code\fR 4 │ │ │ │ │ +.IP \fBnoseparate\-code\fR 4 │ │ │ │ │ .IX Item "noseparate-code" │ │ │ │ │ .PD │ │ │ │ │ Create separate code \f(CW\*(C`PT_LOAD\*(C'\fR segment header in the object. This │ │ │ │ │ specifies a memory segment that should contain only instructions and must │ │ │ │ │ -be in wholly disjoint pages from any other data. Don't create separate │ │ │ │ │ -code \f(CW\*(C`PT_LOAD\*(C'\fR segment if \fBnoseparate-code\fR is used. │ │ │ │ │ +be in wholly disjoint pages from any other data. Don\*(Aqt create separate │ │ │ │ │ +code \f(CW\*(C`PT_LOAD\*(C'\fR segment if \fBnoseparate\-code\fR is used. │ │ │ │ │ .IP \fBshstk\fR 4 │ │ │ │ │ .IX Item "shstk" │ │ │ │ │ Generate GNU_PROPERTY_X86_FEATURE_1_SHSTK in .note.gnu.property section │ │ │ │ │ to indicate compatibility with Intel Shadow Stack. Supported for │ │ │ │ │ Linux/i386 and Linux/x86_64. │ │ │ │ │ .IP \fBstack\-size=\fR\fIvalue\fR 4 │ │ │ │ │ .IX Item "stack-size=value" │ │ │ │ │ Specify a stack size for an ELF \f(CW\*(C`PT_GNU_STACK\*(C'\fR segment. │ │ │ │ │ -Specifying zero will override any default non-zero sized │ │ │ │ │ +Specifying zero will override any default non\-zero sized │ │ │ │ │ \&\f(CW\*(C`PT_GNU_STACK\*(C'\fR segment creation. │ │ │ │ │ -.IP \fBstart-stop-gc\fR 4 │ │ │ │ │ +.IP \fBstart\-stop\-gc\fR 4 │ │ │ │ │ .IX Item "start-stop-gc" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fBnostart-stop-gc\fR 4 │ │ │ │ │ +.IP \fBnostart\-stop\-gc\fR 4 │ │ │ │ │ .IX Item "nostart-stop-gc" │ │ │ │ │ .PD │ │ │ │ │ When \fB\-\-gc\-sections\fR is in effect, a reference from a retained │ │ │ │ │ section to \f(CW\*(C`_\|_start_SECNAME\*(C'\fR or \f(CW\*(C`_\|_stop_SECNAME\*(C'\fR causes all │ │ │ │ │ input sections named \f(CW\*(C`SECNAME\*(C'\fR to also be retained, if │ │ │ │ │ \&\f(CW\*(C`SECNAME\*(C'\fR is representable as a C identifier and either │ │ │ │ │ \&\f(CW\*(C`_\|_start_SECNAME\*(C'\fR or \f(CW\*(C`_\|_stop_SECNAME\*(C'\fR is synthesized by the │ │ │ │ │ -linker. \fB\-z start-stop-gc\fR disables this effect, allowing │ │ │ │ │ +linker. \fB\-z start\-stop\-gc\fR disables this effect, allowing │ │ │ │ │ sections to be garbage collected as if the special synthesized symbols │ │ │ │ │ -were not defined. \fB\-z start-stop-gc\fR has no effect on a │ │ │ │ │ +were not defined. \fB\-z start\-stop\-gc\fR has no effect on a │ │ │ │ │ definition of \f(CW\*(C`_\|_start_SECNAME\*(C'\fR or \f(CW\*(C`_\|_stop_SECNAME\*(C'\fR in an │ │ │ │ │ object file or linker script. Such a definition will prevent the │ │ │ │ │ linker providing a synthesized \f(CW\*(C`_\|_start_SECNAME\*(C'\fR or │ │ │ │ │ \&\f(CW\*(C`_\|_stop_SECNAME\*(C'\fR respectively, and therefore the special │ │ │ │ │ treatment by garbage collection for those references. │ │ │ │ │ .IP \fBstart\-stop\-visibility=\fR\fIvalue\fR 4 │ │ │ │ │ .IX Item "start-stop-visibility=value" │ │ │ │ │ Specify the ELF symbol visibility for synthesized │ │ │ │ │ \&\f(CW\*(C`_\|_start_SECNAME\*(C'\fR and \f(CW\*(C`_\|_stop_SECNAME\*(C'\fR symbols. \fIvalue\fR must be exactly \fBdefault\fR, │ │ │ │ │ \&\fBinternal\fR, \fBhidden\fR, or \fBprotected\fR. If no \fB\-z │ │ │ │ │ -start-stop-visibility\fR option is given, \fBprotected\fR is used for │ │ │ │ │ -compatibility with historical practice. However, it's highly │ │ │ │ │ +start\-stop\-visibility\fR option is given, \fBprotected\fR is used for │ │ │ │ │ +compatibility with historical practice. However, it\*(Aqs highly │ │ │ │ │ recommended to use \fB\-z start\-stop\-visibility=hidden\fR in new │ │ │ │ │ programs and shared libraries so that these symbols are not exported │ │ │ │ │ -between shared objects, which is not usually what's intended. │ │ │ │ │ +between shared objects, which is not usually what\*(Aqs intended. │ │ │ │ │ .IP \fBtext\fR 4 │ │ │ │ │ .IX Item "text" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fBnotext\fR 4 │ │ │ │ │ .IX Item "notext" │ │ │ │ │ .IP \fBtextoff\fR 4 │ │ │ │ │ .IX Item "textoff" │ │ │ │ │ .PD │ │ │ │ │ -Report an error if DT_TEXTREL is set, i.e., if the position-independent │ │ │ │ │ -or shared object has dynamic relocations in read-only sections. Don't │ │ │ │ │ +Report an error if DT_TEXTREL is set, i.e., if the position\-independent │ │ │ │ │ +or shared object has dynamic relocations in read\-only sections. Don\*(Aqt │ │ │ │ │ report an error if \fBnotext\fR or \fBtextoff\fR. │ │ │ │ │ .IP \fBundefs\fR 4 │ │ │ │ │ .IX Item "undefs" │ │ │ │ │ Do not report unresolved symbol references from regular object files, │ │ │ │ │ either when creating an executable, or when creating a shared library. │ │ │ │ │ This option is the inverse of \fB\-z defs\fR. │ │ │ │ │ -.IP \fBunique-symbol\fR 4 │ │ │ │ │ +.IP \fBunique\-symbol\fR 4 │ │ │ │ │ .IX Item "unique-symbol" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fBnounique-symbol\fR 4 │ │ │ │ │ +.IP \fBnounique\-symbol\fR 4 │ │ │ │ │ .IX Item "nounique-symbol" │ │ │ │ │ .PD │ │ │ │ │ Avoid duplicated local symbol names in the symbol string table. Append │ │ │ │ │ -".\f(CW\*(C`number\*(C'\fR" to duplicated local symbol names if \fBunique-symbol\fR │ │ │ │ │ -is used. \fBnounique-symbol\fR is the default. │ │ │ │ │ +".\f(CW\*(C`number\*(C'\fR" to duplicated local symbol names if \fBunique\-symbol\fR │ │ │ │ │ +is used. \fBnounique\-symbol\fR is the default. │ │ │ │ │ .IP \fBx86\-64\-baseline\fR 4 │ │ │ │ │ .IX Item "x86-64-baseline" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fBx86\-64\-v2\fR 4 │ │ │ │ │ .IX Item "x86-64-v2" │ │ │ │ │ .IP \fBx86\-64\-v3\fR 4 │ │ │ │ │ .IX Item "x86-64-v3" │ │ │ │ │ @@ -1619,17 +1622,17 @@ │ │ │ │ │ .PD │ │ │ │ │ This option affects ELF DT_NEEDED tags for dynamic libraries mentioned │ │ │ │ │ on the command line after the \fB\-\-as\-needed\fR option. Normally │ │ │ │ │ the linker will add a DT_NEEDED tag for each dynamic library mentioned │ │ │ │ │ on the command line, regardless of whether the library is actually │ │ │ │ │ needed or not. \fB\-\-as\-needed\fR causes a DT_NEEDED tag to only be │ │ │ │ │ emitted for a library that \fIat that point in the link\fR satisfies a │ │ │ │ │ -non-weak undefined symbol reference from a regular object file or, if │ │ │ │ │ +non\-weak undefined symbol reference from a regular object file or, if │ │ │ │ │ the library is not found in the DT_NEEDED lists of other needed libraries, a │ │ │ │ │ -non-weak undefined symbol reference from another needed dynamic library. │ │ │ │ │ +non\-weak undefined symbol reference from another needed dynamic library. │ │ │ │ │ Object files or libraries appearing on the command line \fIafter\fR │ │ │ │ │ the library in question do not affect whether the library is seen as │ │ │ │ │ needed. This is similar to the rules for extraction of object files │ │ │ │ │ from archives. \fB\-\-no\-as\-needed\fR restores the default behaviour. │ │ │ │ │ .Sp │ │ │ │ │ Note: On Linux based systems the \fB\-\-as\-needed\fR option also has │ │ │ │ │ an affect on the behaviour of the \fB\-\-rpath\fR and │ │ │ │ │ @@ -1682,15 +1685,15 @@ │ │ │ │ │ Do not link against shared libraries. This is only meaningful on │ │ │ │ │ platforms for which shared libraries are supported. The different │ │ │ │ │ variants of this option are for compatibility with various systems. You │ │ │ │ │ may use this option multiple times on the command line: it affects │ │ │ │ │ library searching for \fB\-l\fR options which follow it. This │ │ │ │ │ option also implies \fB\-\-unresolved\-symbols=report\-all\fR. This │ │ │ │ │ option can be used with \fB\-shared\fR. Doing so means that a │ │ │ │ │ -shared library is being created but that all of the library's external │ │ │ │ │ +shared library is being created but that all of the library\*(Aqs external │ │ │ │ │ references must be resolved by pulling in entries from static │ │ │ │ │ libraries. │ │ │ │ │ .IP \fB\-Bsymbolic\fR 4 │ │ │ │ │ .IX Item "-Bsymbolic" │ │ │ │ │ When creating a shared library, bind references to global symbols to the │ │ │ │ │ definition within the shared library, if any. Normally, it is possible │ │ │ │ │ for a program linked against a shared library to override the definition │ │ │ │ │ @@ -1702,19 +1705,19 @@ │ │ │ │ │ symbols to the definition within the shared library, if any. │ │ │ │ │ This option is only meaningful on ELF platforms which support shared │ │ │ │ │ libraries. │ │ │ │ │ .IP \fB\-Bno\-symbolic\fR 4 │ │ │ │ │ .IX Item "-Bno-symbolic" │ │ │ │ │ This option can cancel previously specified \fB\-Bsymbolic\fR and │ │ │ │ │ \&\fB\-Bsymbolic\-functions\fR. │ │ │ │ │ -.IP \fB\-\-dynamic\-list=\fR\fIdynamic-list-file\fR 4 │ │ │ │ │ +.IP \fB\-\-dynamic\-list=\fR\fIdynamic\-list\-file\fR 4 │ │ │ │ │ .IX Item "--dynamic-list=dynamic-list-file" │ │ │ │ │ Specify the name of a dynamic list file to the linker. This is │ │ │ │ │ typically used when creating shared libraries to specify a list of │ │ │ │ │ -global symbols whose references shouldn't be bound to the definition │ │ │ │ │ +global symbols whose references shouldn\*(Aqt be bound to the definition │ │ │ │ │ within the shared library, or creating dynamically linked executables │ │ │ │ │ to specify a list of symbols which should be added to the symbol table │ │ │ │ │ in the executable. This option is only meaningful on ELF platforms │ │ │ │ │ which support shared libraries. │ │ │ │ │ .Sp │ │ │ │ │ The format of the dynamic list is the same as the version node without │ │ │ │ │ scope and node name. See \fBVERSION\fR for more information. │ │ │ │ │ @@ -1735,27 +1738,27 @@ │ │ │ │ │ .IX Item "--no-check-sections" │ │ │ │ │ .PD │ │ │ │ │ Asks the linker \fInot\fR to check section addresses after they have │ │ │ │ │ been assigned to see if there are any overlaps. Normally the linker will │ │ │ │ │ perform this check, and if it finds any overlaps it will produce │ │ │ │ │ suitable error messages. The linker does know about, and does make │ │ │ │ │ allowances for sections in overlays. The default behaviour can be │ │ │ │ │ -restored by using the command-line switch \fB\-\-check\-sections\fR. │ │ │ │ │ +restored by using the command\-line switch \fB\-\-check\-sections\fR. │ │ │ │ │ Section overlap is not usually checked for relocatable links. You can │ │ │ │ │ force checking in that case by using the \fB\-\-check\-sections\fR │ │ │ │ │ option. │ │ │ │ │ .IP \fB\-\-copy\-dt\-needed\-entries\fR 4 │ │ │ │ │ .IX Item "--copy-dt-needed-entries" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-no\-copy\-dt\-needed\-entries\fR 4 │ │ │ │ │ .IX Item "--no-copy-dt-needed-entries" │ │ │ │ │ .PD │ │ │ │ │ This option affects the treatment of dynamic libraries referred to │ │ │ │ │ by DT_NEEDED tags \fIinside\fR ELF dynamic libraries mentioned on the │ │ │ │ │ -command line. Normally the linker won't add a DT_NEEDED tag to the │ │ │ │ │ +command line. Normally the linker won\*(Aqt add a DT_NEEDED tag to the │ │ │ │ │ output binary for each library mentioned in a DT_NEEDED tag in an │ │ │ │ │ input dynamic library. With \fB\-\-copy\-dt\-needed\-entries\fR │ │ │ │ │ specified on the command line however any dynamic libraries that │ │ │ │ │ follow it will have their DT_NEEDED entries added. The default │ │ │ │ │ behaviour can be restored with \fB\-\-no\-copy\-dt\-needed\-entries\fR. │ │ │ │ │ .Sp │ │ │ │ │ This option also has an effect on the resolution of symbols in dynamic │ │ │ │ │ @@ -1792,39 +1795,39 @@ │ │ │ │ │ usually wasted: the types are usually small but the names are often not. │ │ │ │ │ \&\fB\-\-ctf\-variables\fR causes the generation of such a section. │ │ │ │ │ The default behaviour can be restored with \fB\-\-no\-ctf\-variables\fR. │ │ │ │ │ .IP \fB\-\-ctf\-share\-types=\fR\fImethod\fR 4 │ │ │ │ │ .IX Item "--ctf-share-types=method" │ │ │ │ │ Adjust the method used to share types between translation units in CTF. │ │ │ │ │ .RS 4 │ │ │ │ │ -.IP \fBshare-unconflicted\fR 4 │ │ │ │ │ +.IP \fBshare\-unconflicted\fR 4 │ │ │ │ │ .IX Item "share-unconflicted" │ │ │ │ │ Put all types that do not have ambiguous definitions into the shared dictionary, │ │ │ │ │ where debuggers can easily access them, even if they only occur in one │ │ │ │ │ translation unit. This is the default. │ │ │ │ │ -.IP \fBshare-duplicated\fR 4 │ │ │ │ │ +.IP \fBshare\-duplicated\fR 4 │ │ │ │ │ .IX Item "share-duplicated" │ │ │ │ │ Put only types that occur in multiple translation units into the shared │ │ │ │ │ -dictionary: types with only one definition go into per-translation-unit │ │ │ │ │ +dictionary: types with only one definition go into per\-translation\-unit │ │ │ │ │ dictionaries. Types with ambiguous definitions in multiple translation units │ │ │ │ │ -always go into per-translation-unit dictionaries. This tends to make the CTF │ │ │ │ │ +always go into per\-translation\-unit dictionaries. This tends to make the CTF │ │ │ │ │ larger, but may reduce the amount of CTF in the shared dictionary. For very │ │ │ │ │ large projects this may speed up opening the CTF and save memory in the CTF │ │ │ │ │ consumer at runtime. │ │ │ │ │ .RE │ │ │ │ │ .RS 4 │ │ │ │ │ .RE │ │ │ │ │ .IP \fB\-\-no\-define\-common\fR 4 │ │ │ │ │ .IX Item "--no-define-common" │ │ │ │ │ This option inhibits the assignment of addresses to common symbols. │ │ │ │ │ The script command \f(CW\*(C`INHIBIT_COMMON_ALLOCATION\*(C'\fR has the same effect. │ │ │ │ │ .Sp │ │ │ │ │ The \fB\-\-no\-define\-common\fR option allows decoupling │ │ │ │ │ the decision to assign addresses to Common symbols from the choice │ │ │ │ │ -of the output file type; otherwise a non-Relocatable output type │ │ │ │ │ +of the output file type; otherwise a non\-Relocatable output type │ │ │ │ │ forces assigning addresses to Common symbols. │ │ │ │ │ Using \fB\-\-no\-define\-common\fR allows Common symbols that are referenced │ │ │ │ │ from a shared library to be assigned addresses only in the main program. │ │ │ │ │ This eliminates the unused duplicate space in the shared library, │ │ │ │ │ and also prevents any possible confusion over resolving to the wrong │ │ │ │ │ duplicate when there are many dynamic modules with specialized search │ │ │ │ │ paths for runtime symbol resolution. │ │ │ │ │ @@ -1876,26 +1879,26 @@ │ │ │ │ │ .IX Item "-Ifile" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-dynamic\-linker=\fR\fIfile\fR 4 │ │ │ │ │ .IX Item "--dynamic-linker=file" │ │ │ │ │ .PD │ │ │ │ │ Set the name of the dynamic linker. This is only meaningful when │ │ │ │ │ generating dynamically linked ELF executables. The default dynamic │ │ │ │ │ -linker is normally correct; don't use this unless you know what you are │ │ │ │ │ +linker is normally correct; don\*(Aqt use this unless you know what you are │ │ │ │ │ doing. │ │ │ │ │ .IP \fB\-\-no\-dynamic\-linker\fR 4 │ │ │ │ │ .IX Item "--no-dynamic-linker" │ │ │ │ │ When producing an executable file, omit the request for a dynamic │ │ │ │ │ -linker to be used at load-time. This is only meaningful for ELF │ │ │ │ │ +linker to be used at load\-time. This is only meaningful for ELF │ │ │ │ │ executables that contain dynamic relocations, and usually requires │ │ │ │ │ entry point code that is capable of processing these relocations. │ │ │ │ │ .IP \fB\-\-embedded\-relocs\fR 4 │ │ │ │ │ .IX Item "--embedded-relocs" │ │ │ │ │ This option is similar to the \fB\-\-emit\-relocs\fR option except │ │ │ │ │ -that the relocs are stored in a target-specific section. This option │ │ │ │ │ +that the relocs are stored in a target\-specific section. This option │ │ │ │ │ is only supported by the \fBBFIN\fR, \fBCR16\fR and \fIM68K\fR │ │ │ │ │ targets. │ │ │ │ │ .IP \fB\-\-disable\-multiple\-abs\-defs\fR 4 │ │ │ │ │ .IX Item "--disable-multiple-abs-defs" │ │ │ │ │ Do not allow multiple definitions with symbols included │ │ │ │ │ in filename invoked by \-R or \-\-just\-symbols │ │ │ │ │ .IP \fB\-\-fatal\-warnings\fR 4 │ │ │ │ │ @@ -1920,15 +1923,15 @@ │ │ │ │ │ .IX Item "--force-exe-suffix" │ │ │ │ │ Make sure that an output file has a .exe suffix. │ │ │ │ │ .Sp │ │ │ │ │ If a successfully built fully linked output file does not have a │ │ │ │ │ \&\f(CW\*(C`.exe\*(C'\fR or \f(CW\*(C`.dll\*(C'\fR suffix, this option forces the linker to copy │ │ │ │ │ the output file to one of the same name with a \f(CW\*(C`.exe\*(C'\fR suffix. This │ │ │ │ │ option is useful when using unmodified Unix makefiles on a Microsoft │ │ │ │ │ -Windows host, since some versions of Windows won't run an image unless │ │ │ │ │ +Windows host, since some versions of Windows won\*(Aqt run an image unless │ │ │ │ │ it ends in a \f(CW\*(C`.exe\*(C'\fR suffix. │ │ │ │ │ .IP \fB\-\-gc\-sections\fR 4 │ │ │ │ │ .IX Item "--gc-sections" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-no\-gc\-sections\fR 4 │ │ │ │ │ .IX Item "--no-gc-sections" │ │ │ │ │ .PD │ │ │ │ │ @@ -1938,15 +1941,15 @@ │ │ │ │ │ \&\fB\-\-no\-gc\-sections\fR on the command line. Note that garbage │ │ │ │ │ collection for COFF and PE format targets is supported, but the │ │ │ │ │ implementation is currently considered to be experimental. │ │ │ │ │ .Sp │ │ │ │ │ \&\fB\-\-gc\-sections\fR decides which input sections are used by │ │ │ │ │ examining symbols and relocations. The section containing the entry │ │ │ │ │ symbol and all sections containing symbols undefined on the │ │ │ │ │ -command-line will be kept, as will sections containing symbols │ │ │ │ │ +command\-line will be kept, as will sections containing symbols │ │ │ │ │ referenced by dynamic objects. Note that when building shared │ │ │ │ │ libraries, the linker must assume that any visible symbol is │ │ │ │ │ referenced. Once this initial set of sections has been determined, │ │ │ │ │ the linker recursively marks as used any section referenced by their │ │ │ │ │ relocations. See \fB\-\-entry\fR, \fB\-\-undefined\fR, and │ │ │ │ │ \&\fB\-\-gc\-keep\-exported\fR. │ │ │ │ │ .Sp │ │ │ │ │ @@ -1979,15 +1982,15 @@ │ │ │ │ │ collected regardless of the external visibility of contained symbols. │ │ │ │ │ Note that this option has no effect when linking shared objects since │ │ │ │ │ it is already the default behaviour. This option is only supported for │ │ │ │ │ ELF format targets. │ │ │ │ │ .IP \fB\-\-print\-output\-format\fR 4 │ │ │ │ │ .IX Item "--print-output-format" │ │ │ │ │ Print the name of the default output format (perhaps influenced by │ │ │ │ │ -other command-line options). This is the string that would appear │ │ │ │ │ +other command\-line options). This is the string that would appear │ │ │ │ │ in an \f(CW\*(C`OUTPUT_FORMAT\*(C'\fR linker script command. │ │ │ │ │ .IP \fB\-\-print\-memory\-usage\fR 4 │ │ │ │ │ .IX Item "--print-memory-usage" │ │ │ │ │ Print used size, total size and used size of memory regions created with │ │ │ │ │ the \fBMEMORY\fR command. This is useful on embedded targets to have a │ │ │ │ │ quick view of amount of free memory. The format of the output has one │ │ │ │ │ headline and one line per region. It is both human readable and easily │ │ │ │ │ @@ -1996,18 +1999,18 @@ │ │ │ │ │ .Vb 3 │ │ │ │ │ \& Memory region Used Size Region Size %age Used │ │ │ │ │ \& ROM: 256 KB 1 MB 25.00% │ │ │ │ │ \& RAM: 32 B 2 GB 0.00% │ │ │ │ │ .Ve │ │ │ │ │ .IP \fB\-\-help\fR 4 │ │ │ │ │ .IX Item "--help" │ │ │ │ │ -Print a summary of the command-line options on the standard output and exit. │ │ │ │ │ +Print a summary of the command\-line options on the standard output and exit. │ │ │ │ │ .IP \fB\-\-target\-help\fR 4 │ │ │ │ │ .IX Item "--target-help" │ │ │ │ │ -Print a summary of all target-specific options on the standard output and exit. │ │ │ │ │ +Print a summary of all target\-specific options on the standard output and exit. │ │ │ │ │ .IP \fB\-Map=\fR\fImapfile\fR 4 │ │ │ │ │ .IX Item "-Map=mapfile" │ │ │ │ │ Print a link map to the file \fImapfile\fR. See the description of the │ │ │ │ │ \&\fB\-M\fR option, above. If \fImapfile\fR is just the character │ │ │ │ │ \&\f(CW\*(C`\-\*(C'\fR then the map will be written to stdout. │ │ │ │ │ .Sp │ │ │ │ │ Specifying a directory as \fImapfile\fR causes the linker map to be │ │ │ │ │ @@ -2045,15 +2048,15 @@ │ │ │ │ │ .IP \fB\-\-no\-undefined\fR 4 │ │ │ │ │ .IX Item "--no-undefined" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP "\fB\-z defs\fR" 4 │ │ │ │ │ .IX Item "-z defs" │ │ │ │ │ .PD │ │ │ │ │ Report unresolved symbol references from regular object files. This │ │ │ │ │ -is done even if the linker is creating a non-symbolic shared library. │ │ │ │ │ +is done even if the linker is creating a non\-symbolic shared library. │ │ │ │ │ The switch \fB\-\-[no\-]allow\-shlib\-undefined\fR controls the │ │ │ │ │ behaviour for reporting unresolved references found in shared │ │ │ │ │ libraries being linked in. │ │ │ │ │ .Sp │ │ │ │ │ The effects of this option can be reverted by using \f(CW\*(C`\-z undefs\*(C'\fR. │ │ │ │ │ .IP \fB\-\-allow\-multiple\-definition\fR 4 │ │ │ │ │ .IX Item "--allow-multiple-definition" │ │ │ │ │ @@ -2101,15 +2104,15 @@ │ │ │ │ │ .RE │ │ │ │ │ .IP \fB\-\-error\-handling\-script=\fR\fIscriptname\fR 4 │ │ │ │ │ .IX Item "--error-handling-script=scriptname" │ │ │ │ │ If this option is provided then the linker will invoke │ │ │ │ │ \&\fIscriptname\fR whenever an error is encountered. Currently however │ │ │ │ │ only two kinds of error are supported: missing symbols and missing │ │ │ │ │ libraries. Two arguments will be passed to script: the keyword │ │ │ │ │ -"undefined-symbol" or `missing\-lib" and the \fIname\fR of the │ │ │ │ │ +"undefined\-symbol" or \`missing\-lib" and the \fIname\fR of the │ │ │ │ │ undefined symbol or missing library. The intention is that the script │ │ │ │ │ will provide suggestions to the user as to where the symbol or library │ │ │ │ │ might be found. After the script has finished then the normal linker │ │ │ │ │ error message will be displayed. │ │ │ │ │ .Sp │ │ │ │ │ The availability of this option is controlled by a configure time │ │ │ │ │ switch, so it may not be present in specific implementations. │ │ │ │ │ @@ -2150,23 +2153,23 @@ │ │ │ │ │ errors during the link process; it exits without writing an output file │ │ │ │ │ when it issues any error whatsoever. │ │ │ │ │ .IP \fB\-nostdlib\fR 4 │ │ │ │ │ .IX Item "-nostdlib" │ │ │ │ │ Only search library directories explicitly specified on the │ │ │ │ │ command line. Library directories specified in linker scripts │ │ │ │ │ (including linker scripts specified on the command line) are ignored. │ │ │ │ │ -.IP \fB\-\-oformat=\fR\fIoutput-format\fR 4 │ │ │ │ │ +.IP \fB\-\-oformat=\fR\fIoutput\-format\fR 4 │ │ │ │ │ .IX Item "--oformat=output-format" │ │ │ │ │ \&\fBld\fR may be configured to support more than one kind of object │ │ │ │ │ file. If your \fBld\fR is configured this way, you can use the │ │ │ │ │ \&\fB\-\-oformat\fR option to specify the binary format for the output │ │ │ │ │ object file. Even when \fBld\fR is configured to support alternative │ │ │ │ │ -object formats, you don't usually need to specify this, as \fBld\fR │ │ │ │ │ +object formats, you don\*(Aqt usually need to specify this, as \fBld\fR │ │ │ │ │ should be configured to produce as a default output format the most │ │ │ │ │ -usual format on each machine. \fIoutput-format\fR is a text string, the │ │ │ │ │ +usual format on each machine. \fIoutput\-format\fR is a text string, the │ │ │ │ │ name of a particular format supported by the BFD libraries. (You can │ │ │ │ │ list the available binary formats with \fBobjdump \-i\fR.) The script │ │ │ │ │ command \f(CW\*(C`OUTPUT_FORMAT\*(C'\fR can also specify the output format, but │ │ │ │ │ this option overrides it. │ │ │ │ │ .IP "\fB\-\-out\-implib\fR \fIfile\fR" 4 │ │ │ │ │ .IX Item "--out-implib file" │ │ │ │ │ Create an import library in \fIfile\fR corresponding to the executable │ │ │ │ │ @@ -2226,15 +2229,15 @@ │ │ │ │ │ .IP \fB\-\-retain\-symbols\-file=\fR\fIfilename\fR 4 │ │ │ │ │ .IX Item "--retain-symbols-file=filename" │ │ │ │ │ Retain \fIonly\fR the symbols listed in the file \fIfilename\fR, │ │ │ │ │ discarding all others. \fIfilename\fR is simply a flat file, with one │ │ │ │ │ symbol name per line. This option is especially useful in environments │ │ │ │ │ (such as VxWorks) │ │ │ │ │ where a large global symbol table is accumulated gradually, to conserve │ │ │ │ │ -run-time memory. │ │ │ │ │ +run\-time memory. │ │ │ │ │ .Sp │ │ │ │ │ \&\fB\-\-retain\-symbols\-file\fR does \fInot\fR discard undefined symbols, │ │ │ │ │ or symbols needed for relocations. │ │ │ │ │ .Sp │ │ │ │ │ You may only specify \fB\-\-retain\-symbols\-file\fR once in the command │ │ │ │ │ line. It overrides \fB\-s\fR and \fB\-S\fR. │ │ │ │ │ .IP \fB\-rpath=\fR\fIdir\fR 4 │ │ │ │ │ @@ -2267,16 +2270,16 @@ │ │ │ │ │ the \fB\-rpath\fR option. │ │ │ │ │ .IP \fB\-rpath\-link=\fR\fIdir\fR 4 │ │ │ │ │ .IX Item "-rpath-link=dir" │ │ │ │ │ When using ELF or SunOS, one shared library may require another. This │ │ │ │ │ happens when an \f(CW\*(C`ld \-shared\*(C'\fR link includes a shared library as one │ │ │ │ │ of the input files. │ │ │ │ │ .Sp │ │ │ │ │ -When the linker encounters such a dependency when doing a non-shared, │ │ │ │ │ -non-relocatable link, it will automatically try to locate the required │ │ │ │ │ +When the linker encounters such a dependency when doing a non\-shared, │ │ │ │ │ +non\-relocatable link, it will automatically try to locate the required │ │ │ │ │ shared library and include it in the link, if it is not included │ │ │ │ │ explicitly. In such a case, several directories are searched as │ │ │ │ │ described below. The \fB\-rpath\-link\fR option specifies the first │ │ │ │ │ set of directories to search. This option may specify a sequence of │ │ │ │ │ directory names either by providing a list of names separated by │ │ │ │ │ colons, or by appearing multiple times. │ │ │ │ │ .Sp │ │ │ │ │ @@ -2424,16 +2427,16 @@ │ │ │ │ │ .IP \fB\-\-sort\-common=ascending\fR 4 │ │ │ │ │ .IX Item "--sort-common=ascending" │ │ │ │ │ .IP \fB\-\-sort\-common=descending\fR 4 │ │ │ │ │ .IX Item "--sort-common=descending" │ │ │ │ │ .PD │ │ │ │ │ This option tells \fBld\fR to sort the common symbols by alignment in │ │ │ │ │ ascending or descending order when it places them in the appropriate output │ │ │ │ │ -sections. The symbol alignments considered are sixteen-byte or larger, │ │ │ │ │ -eight-byte, four-byte, two-byte, and one-byte. This is to prevent gaps │ │ │ │ │ +sections. The symbol alignments considered are sixteen\-byte or larger, │ │ │ │ │ +eight\-byte, four\-byte, two\-byte, and one\-byte. This is to prevent gaps │ │ │ │ │ between symbols due to alignment constraints. If no sorting order is │ │ │ │ │ specified, then descending order is assumed. │ │ │ │ │ .IP \fB\-\-sort\-section=name\fR 4 │ │ │ │ │ .IX Item "--sort-section=name" │ │ │ │ │ This option will apply \f(CW\*(C`SORT_BY_NAME\*(C'\fR to all wildcard section │ │ │ │ │ patterns in the linker script. │ │ │ │ │ .IP \fB\-\-sort\-section=alignment\fR 4 │ │ │ │ │ @@ -2465,19 +2468,19 @@ │ │ │ │ │ .IP \fB\-\-stats\fR 4 │ │ │ │ │ .IX Item "--stats" │ │ │ │ │ Compute and display statistics about the operation of the linker, such │ │ │ │ │ as execution time and memory usage. │ │ │ │ │ .IP \fB\-\-sysroot=\fR\fIdirectory\fR 4 │ │ │ │ │ .IX Item "--sysroot=directory" │ │ │ │ │ Use \fIdirectory\fR as the location of the sysroot, overriding the │ │ │ │ │ -configure-time default. This option is only supported by linkers │ │ │ │ │ +configure\-time default. This option is only supported by linkers │ │ │ │ │ that were configured using \fB\-\-with\-sysroot\fR. │ │ │ │ │ .IP \fB\-\-task\-link\fR 4 │ │ │ │ │ .IX Item "--task-link" │ │ │ │ │ -This is used by COFF/PE based targets to create a task-linked object │ │ │ │ │ +This is used by COFF/PE based targets to create a task\-linked object │ │ │ │ │ file where all of the global symbols have been converted to statics. │ │ │ │ │ .IP \fB\-\-traditional\-format\fR 4 │ │ │ │ │ .IX Item "--traditional-format" │ │ │ │ │ For some targets, the output of \fBld\fR is different in some ways from │ │ │ │ │ the output of some existing linker. This switch requests \fBld\fR to │ │ │ │ │ use the traditional format instead. │ │ │ │ │ .Sp │ │ │ │ │ @@ -2525,41 +2528,41 @@ │ │ │ │ │ byte of the first segment. Note that when \fB\-pie\fR is used with │ │ │ │ │ \&\fB\-Ttext\-segment=\fR\fIorg\fR, the output executable is marked │ │ │ │ │ ET_EXEC so that the address of the first byte of the text segment will │ │ │ │ │ be guaranteed to be \fIorg\fR at run time. │ │ │ │ │ .IP \fB\-Trodata\-segment=\fR\fIorg\fR 4 │ │ │ │ │ .IX Item "-Trodata-segment=org" │ │ │ │ │ When creating an ELF executable or shared object for a target where │ │ │ │ │ -the read-only data is in its own segment separate from the executable │ │ │ │ │ -text, it will set the address of the first byte of the read-only data segment. │ │ │ │ │ +the read\-only data is in its own segment separate from the executable │ │ │ │ │ +text, it will set the address of the first byte of the read\-only data segment. │ │ │ │ │ .IP \fB\-Tldata\-segment=\fR\fIorg\fR 4 │ │ │ │ │ .IX Item "-Tldata-segment=org" │ │ │ │ │ When creating an ELF executable or shared object for x86\-64 medium memory │ │ │ │ │ model, it will set the address of the first byte of the ldata segment. │ │ │ │ │ .IP \fB\-\-unresolved\-symbols=\fR\fImethod\fR 4 │ │ │ │ │ .IX Item "--unresolved-symbols=method" │ │ │ │ │ Determine how to handle unresolved symbols. There are four possible │ │ │ │ │ values for \fBmethod\fR: │ │ │ │ │ .RS 4 │ │ │ │ │ -.IP \fBignore-all\fR 4 │ │ │ │ │ +.IP \fBignore\-all\fR 4 │ │ │ │ │ .IX Item "ignore-all" │ │ │ │ │ Do not report any unresolved symbols. │ │ │ │ │ -.IP \fBreport-all\fR 4 │ │ │ │ │ +.IP \fBreport\-all\fR 4 │ │ │ │ │ .IX Item "report-all" │ │ │ │ │ Report all unresolved symbols. This is the default. │ │ │ │ │ -.IP \fBignore-in-object-files\fR 4 │ │ │ │ │ +.IP \fBignore\-in\-object\-files\fR 4 │ │ │ │ │ .IX Item "ignore-in-object-files" │ │ │ │ │ Report unresolved symbols that are contained in shared libraries, but │ │ │ │ │ ignore them if they come from regular object files. │ │ │ │ │ -.IP \fBignore-in-shared-libs\fR 4 │ │ │ │ │ +.IP \fBignore\-in\-shared\-libs\fR 4 │ │ │ │ │ .IX Item "ignore-in-shared-libs" │ │ │ │ │ Report unresolved symbols that come from regular object files, but │ │ │ │ │ ignore them if they come from shared libraries. This can be useful │ │ │ │ │ when creating a dynamic binary and it is known that all the shared │ │ │ │ │ -libraries that it should be referencing are included on the linker's │ │ │ │ │ +libraries that it should be referencing are included on the linker\*(Aqs │ │ │ │ │ command line. │ │ │ │ │ .RE │ │ │ │ │ .RS 4 │ │ │ │ │ .Sp │ │ │ │ │ The behaviour for shared libraries on their own can also be controlled │ │ │ │ │ by the \fB\-\-[no\-]allow\-shlib\-undefined\fR option. │ │ │ │ │ .Sp │ │ │ │ │ @@ -2573,22 +2576,22 @@ │ │ │ │ │ .IP \fB\-\-verbose[=\fR\fINUMBER\fR\fB]\fR 4 │ │ │ │ │ .IX Item "--verbose[=NUMBER]" │ │ │ │ │ .PD │ │ │ │ │ Display the version number for \fBld\fR and list the linker emulations │ │ │ │ │ supported. Display which input files can and cannot be opened. Display │ │ │ │ │ the linker script being used by the linker. If the optional \fINUMBER\fR │ │ │ │ │ argument > 1, plugin symbol status will also be displayed. │ │ │ │ │ -.IP \fB\-\-version\-script=\fR\fIversion-scriptfile\fR 4 │ │ │ │ │ +.IP \fB\-\-version\-script=\fR\fIversion\-scriptfile\fR 4 │ │ │ │ │ .IX Item "--version-script=version-scriptfile" │ │ │ │ │ Specify the name of a version script to the linker. This is typically │ │ │ │ │ used when creating shared libraries to specify additional information │ │ │ │ │ about the version hierarchy for the library being created. This option │ │ │ │ │ is only fully supported on ELF platforms which support shared libraries; │ │ │ │ │ see \fBVERSION\fR. It is partially supported on PE platforms, which can │ │ │ │ │ -use version scripts to filter symbol visibility in auto-export mode: any │ │ │ │ │ +use version scripts to filter symbol visibility in auto\-export mode: any │ │ │ │ │ symbols marked \fBlocal\fR in the version script will not be exported. │ │ │ │ │ .IP \fB\-\-warn\-common\fR 4 │ │ │ │ │ .IX Item "--warn-common" │ │ │ │ │ Warn when a common symbol is combined with another common symbol or with │ │ │ │ │ a symbol definition. Unix linkers allow this somewhat sloppy practice, │ │ │ │ │ but linkers on some other operating systems do not. This option allows │ │ │ │ │ you to find potential problems from combining global symbols. │ │ │ │ │ @@ -2638,15 +2641,15 @@ │ │ │ │ │ .Sp │ │ │ │ │ .Vb 3 │ │ │ │ │ \& (
): warning: definition of \`\*(Aq │ │ │ │ │ \& overriding common │ │ │ │ │ \& (
): warning: common is here │ │ │ │ │ .Ve │ │ │ │ │ .IP 3. 4 │ │ │ │ │ -Merging a common symbol with a previous same-sized common symbol. │ │ │ │ │ +Merging a common symbol with a previous same\-sized common symbol. │ │ │ │ │ .Sp │ │ │ │ │ .Vb 3 │ │ │ │ │ \& (
): warning: multiple common │ │ │ │ │ \& of \`\*(Aq │ │ │ │ │ \& (
): warning: previous common is here │ │ │ │ │ .Ve │ │ │ │ │ .IP 4. 4 │ │ │ │ │ @@ -2696,18 +2699,18 @@ │ │ │ │ │ Only generate a warning if an object file requests an executable │ │ │ │ │ stack, but not if the \fB\-z execstack\fR option is used. │ │ │ │ │ .RE │ │ │ │ │ .RS 4 │ │ │ │ │ .Sp │ │ │ │ │ The default state depends upon how the linker was configured when it │ │ │ │ │ was built. The \fB\-\-no\-warn\-execstack\fR option always puts the │ │ │ │ │ -linker into the no-warnings state. The \fB\-\-warn\-execstack\fR │ │ │ │ │ -option puts the linker into the warn-always state. The │ │ │ │ │ +linker into the no\-warnings state. The \fB\-\-warn\-execstack\fR │ │ │ │ │ +option puts the linker into the warn\-always state. The │ │ │ │ │ \&\fB\-\-warn\-execstack\-objects\fR option puts the linker into the │ │ │ │ │ -warn-for-object-files-only state. │ │ │ │ │ +warn\-for\-object\-files\-only state. │ │ │ │ │ .Sp │ │ │ │ │ Note: ELF format input files can specify that they need an executable │ │ │ │ │ stack by having a \fI.note.GNU\-stack\fR section with the executable │ │ │ │ │ bit set in its section flags. They can specify that they do not need │ │ │ │ │ an executable stack by having the same section, but without the │ │ │ │ │ executable flag bit set. If an input file does not have a │ │ │ │ │ \&\fI.note.GNU\-stack\fR section then the default behaviour is target │ │ │ │ │ @@ -2720,52 +2723,52 @@ │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-no\-error\-execstack\fR 4 │ │ │ │ │ .IX Item "--no-error-execstack" │ │ │ │ │ .PD │ │ │ │ │ If the linker is going to generate a warning message about an │ │ │ │ │ executable stack then the \fB\-\-error\-execstack\fR option will │ │ │ │ │ instead change that warning into an error. Note \- this option does │ │ │ │ │ -not change the linker's execstack warning generation state. Use │ │ │ │ │ +not change the linker\*(Aqs execstack warning generation state. Use │ │ │ │ │ \&\fB\-\-warn\-execstack\fR or \fB\-\-warn\-execstack\-objects\fR to set │ │ │ │ │ a specific warning state. │ │ │ │ │ .Sp │ │ │ │ │ The \fB\-\-no\-error\-execstack\fR option will restore the default │ │ │ │ │ behaviour of generating warning messages. │ │ │ │ │ .IP \fB\-\-warn\-multiple\-gp\fR 4 │ │ │ │ │ .IX Item "--warn-multiple-gp" │ │ │ │ │ Warn if multiple global pointer values are required in the output file. │ │ │ │ │ This is only meaningful for certain processors, such as the Alpha. │ │ │ │ │ -Specifically, some processors put large-valued constants in a special │ │ │ │ │ +Specifically, some processors put large\-valued constants in a special │ │ │ │ │ section. A special register (the global pointer) points into the middle │ │ │ │ │ of this section, so that constants can be loaded efficiently via a │ │ │ │ │ -base-register relative addressing mode. Since the offset in │ │ │ │ │ -base-register relative mode is fixed and relatively small (e.g., 16 │ │ │ │ │ +base\-register relative addressing mode. Since the offset in │ │ │ │ │ +base\-register relative mode is fixed and relatively small (e.g., 16 │ │ │ │ │ bits), this limits the maximum size of the constant pool. Thus, in │ │ │ │ │ large programs, it is often necessary to use multiple global pointer │ │ │ │ │ values in order to be able to address all possible constants. This │ │ │ │ │ option causes a warning to be issued whenever this case occurs. │ │ │ │ │ .IP \fB\-\-warn\-once\fR 4 │ │ │ │ │ .IX Item "--warn-once" │ │ │ │ │ Only warn once for each undefined symbol, rather than once per module │ │ │ │ │ which refers to it. │ │ │ │ │ .IP \fB\-\-warn\-rwx\-segments\fR 4 │ │ │ │ │ .IX Item "--warn-rwx-segments" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-no\-warn\-rwx\-segments\fR 4 │ │ │ │ │ .IX Item "--no-warn-rwx-segments" │ │ │ │ │ .PD │ │ │ │ │ -Warn if the linker creates a loadable, non-zero sized segment that has │ │ │ │ │ +Warn if the linker creates a loadable, non\-zero sized segment that has │ │ │ │ │ all three of the read, write and execute permission flags set. Such a │ │ │ │ │ segment represents a potential security vulnerability. In addition │ │ │ │ │ warnings will be generated if a thread local storage segment is │ │ │ │ │ created with the execute permission flag set, regardless of whether or │ │ │ │ │ not it has the read and/or write flags set. │ │ │ │ │ .Sp │ │ │ │ │ These warnings are enabled by default. They can be disabled via the │ │ │ │ │ -\&\fB\-\-no\-warn\-rwx\-segments\fR option and re-enabled via the │ │ │ │ │ +\&\fB\-\-no\-warn\-rwx\-segments\fR option and re\-enabled via the │ │ │ │ │ \&\fB\-\-warn\-rwx\-segments\fR option. │ │ │ │ │ .IP \fB\-\-error\-rwx\-segments\fR 4 │ │ │ │ │ .IX Item "--error-rwx-segments" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-no\-error\-rwx\-segments\fR 4 │ │ │ │ │ .IX Item "--no-error-rwx-segments" │ │ │ │ │ .PD │ │ │ │ │ @@ -2784,40 +2787,40 @@ │ │ │ │ │ Warn if the address of an output section is changed because of │ │ │ │ │ alignment. Typically, the alignment will be set by an input section. │ │ │ │ │ The address will only be changed if it not explicitly specified; that │ │ │ │ │ is, if the \f(CW\*(C`SECTIONS\*(C'\fR command does not specify a start address for │ │ │ │ │ the section. │ │ │ │ │ .IP \fB\-\-warn\-textrel\fR 4 │ │ │ │ │ .IX Item "--warn-textrel" │ │ │ │ │ -Warn if the linker adds DT_TEXTREL to a position-independent executable │ │ │ │ │ +Warn if the linker adds DT_TEXTREL to a position\-independent executable │ │ │ │ │ or shared object. │ │ │ │ │ .IP \fB\-\-warn\-alternate\-em\fR 4 │ │ │ │ │ .IX Item "--warn-alternate-em" │ │ │ │ │ Warn if an object has alternate ELF machine code. │ │ │ │ │ .IP \fB\-\-warn\-unresolved\-symbols\fR 4 │ │ │ │ │ .IX Item "--warn-unresolved-symbols" │ │ │ │ │ If the linker is going to report an unresolved symbol (see the option │ │ │ │ │ \&\fB\-\-unresolved\-symbols\fR) it will normally generate an error. │ │ │ │ │ This option makes it generate a warning instead. │ │ │ │ │ .IP \fB\-\-error\-unresolved\-symbols\fR 4 │ │ │ │ │ .IX Item "--error-unresolved-symbols" │ │ │ │ │ -This restores the linker's default behaviour of generating errors when │ │ │ │ │ +This restores the linker\*(Aqs default behaviour of generating errors when │ │ │ │ │ it is reporting unresolved symbols. │ │ │ │ │ .IP \fB\-\-whole\-archive\fR 4 │ │ │ │ │ .IX Item "--whole-archive" │ │ │ │ │ For each archive mentioned on the command line after the │ │ │ │ │ \&\fB\-\-whole\-archive\fR option, include every object file in the archive │ │ │ │ │ in the link, rather than searching the archive for the required object │ │ │ │ │ files. This is normally used to turn an archive file into a shared │ │ │ │ │ library, forcing every object to be included in the resulting shared │ │ │ │ │ library. This option may be used more than once. │ │ │ │ │ .Sp │ │ │ │ │ -Two notes when using this option from gcc: First, gcc doesn't know │ │ │ │ │ +Two notes when using this option from gcc: First, gcc doesn\*(Aqt know │ │ │ │ │ about this option, so you have to use \fB\-Wl,\-whole\-archive\fR. │ │ │ │ │ -Second, don't forget to use \fB\-Wl,\-no\-whole\-archive\fR after your │ │ │ │ │ +Second, don\*(Aqt forget to use \fB\-Wl,\-no\-whole\-archive\fR after your │ │ │ │ │ list of archives, because gcc will add its own list of archives to │ │ │ │ │ your link and you may not want this flag to affect those as well. │ │ │ │ │ .IP \fB\-\-wrap=\fR\fIsymbol\fR 4 │ │ │ │ │ .IX Item "--wrap=symbol" │ │ │ │ │ Use a wrapper function for \fIsymbol\fR. Any undefined reference to │ │ │ │ │ \&\fIsymbol\fR will be resolved to \f(CW\*(C`_\|_wrap_\fR\f(CIsymbol\fR\f(CW\*(C'\fR. Any │ │ │ │ │ undefined reference to \f(CW\*(C`_\|_real_\fR\f(CIsymbol\fR\f(CW\*(C'\fR will be resolved to │ │ │ │ │ @@ -2895,22 +2898,22 @@ │ │ │ │ │ \&\fB\-\-enable\-new\-dtags\fR, the new dynamic tags will be created as needed │ │ │ │ │ and older dynamic tags will be omitted. │ │ │ │ │ If you specify \fB\-\-disable\-new\-dtags\fR, no new dynamic tags will be │ │ │ │ │ created. By default, the new dynamic tags are not created. Note that │ │ │ │ │ those options are only available for ELF systems. │ │ │ │ │ .IP \fB\-\-hash\-size=\fR\fInumber\fR 4 │ │ │ │ │ .IX Item "--hash-size=number" │ │ │ │ │ -Set the default size of the linker's hash tables to a prime number │ │ │ │ │ +Set the default size of the linker\*(Aqs hash tables to a prime number │ │ │ │ │ close to \fInumber\fR. Increasing this value can reduce the length of │ │ │ │ │ time it takes the linker to perform its tasks, at the expense of │ │ │ │ │ -increasing the linker's memory requirements. Similarly reducing this │ │ │ │ │ +increasing the linker\*(Aqs memory requirements. Similarly reducing this │ │ │ │ │ value can reduce the memory requirements at the expense of speed. │ │ │ │ │ .IP \fB\-\-hash\-style=\fR\fIstyle\fR 4 │ │ │ │ │ .IX Item "--hash-style=style" │ │ │ │ │ -Set the type of linker's hash table(s). \fIstyle\fR can be either │ │ │ │ │ +Set the type of linker\*(Aqs hash table(s). \fIstyle\fR can be either │ │ │ │ │ \&\f(CW\*(C`sysv\*(C'\fR for classic ELF \f(CW\*(C`.hash\*(C'\fR section, \f(CW\*(C`gnu\*(C'\fR for │ │ │ │ │ new style GNU \f(CW\*(C`.gnu.hash\*(C'\fR section or \f(CW\*(C`both\*(C'\fR for both │ │ │ │ │ the classic ELF \f(CW\*(C`.hash\*(C'\fR and new style GNU \f(CW\*(C`.gnu.hash\*(C'\fR │ │ │ │ │ hash tables. The default depends upon how the linker was configured, │ │ │ │ │ but for most Linux based systems it will be \f(CW\*(C`both\*(C'\fR. │ │ │ │ │ .IP \fB\-\-compress\-debug\-sections=none\fR 4 │ │ │ │ │ .IX Item "--compress-debug-sections=none" │ │ │ │ │ @@ -2923,45 +2926,45 @@ │ │ │ │ │ .IX Item "--compress-debug-sections=zlib-gabi" │ │ │ │ │ .IP \fB\-\-compress\-debug\-sections=zstd\fR 4 │ │ │ │ │ .IX Item "--compress-debug-sections=zstd" │ │ │ │ │ .PD │ │ │ │ │ On ELF platforms, these options control how DWARF debug sections are │ │ │ │ │ compressed using zlib. │ │ │ │ │ .Sp │ │ │ │ │ -\&\fB\-\-compress\-debug\-sections=none\fR doesn't compress DWARF debug │ │ │ │ │ +\&\fB\-\-compress\-debug\-sections=none\fR doesn\*(Aqt compress DWARF debug │ │ │ │ │ sections. \fB\-\-compress\-debug\-sections=zlib\-gnu\fR compresses │ │ │ │ │ DWARF debug sections and renames them to begin with \fB.zdebug\fR │ │ │ │ │ instead of \fB.debug\fR. \fB\-\-compress\-debug\-sections=zlib\-gabi\fR │ │ │ │ │ also compresses DWARF debug sections, but rather than renaming them it │ │ │ │ │ -sets the SHF_COMPRESSED flag in the sections' headers. │ │ │ │ │ +sets the SHF_COMPRESSED flag in the sections\*(Aq headers. │ │ │ │ │ .Sp │ │ │ │ │ The \fB\-\-compress\-debug\-sections=zlib\fR option is an alias for │ │ │ │ │ \&\fB\-\-compress\-debug\-sections=zlib\-gabi\fR. │ │ │ │ │ .Sp │ │ │ │ │ \&\fB\-\-compress\-debug\-sections=zstd\fR compresses DWARF debug sections using │ │ │ │ │ zstd. │ │ │ │ │ .Sp │ │ │ │ │ Note that this option overrides any compression in input debug │ │ │ │ │ sections, so if a binary is linked with \fB\-\-compress\-debug\-sections=none\fR │ │ │ │ │ for example, then any compressed debug sections in input files will be │ │ │ │ │ uncompressed before they are copied into the output binary. │ │ │ │ │ .Sp │ │ │ │ │ The default compression behaviour varies depending upon the target │ │ │ │ │ involved and the configure options used to build the toolchain. The │ │ │ │ │ -default can be determined by examining the output from the linker's │ │ │ │ │ +default can be determined by examining the output from the linker\*(Aqs │ │ │ │ │ \&\fB\-\-help\fR option. │ │ │ │ │ .IP \fB\-\-reduce\-memory\-overheads\fR 4 │ │ │ │ │ .IX Item "--reduce-memory-overheads" │ │ │ │ │ This option reduces memory requirements at ld runtime, at the expense of │ │ │ │ │ linking speed. This was introduced to select the old O(n^2) algorithm │ │ │ │ │ for link map file generation, rather than the new O(n) algorithm which uses │ │ │ │ │ about 40% more memory for symbol storage. │ │ │ │ │ .Sp │ │ │ │ │ Another effect of the switch is to set the default hash table size to │ │ │ │ │ -1021, which again saves memory at the cost of lengthening the linker's │ │ │ │ │ +1021, which again saves memory at the cost of lengthening the linker\*(Aqs │ │ │ │ │ run time. This is not done however if the \fB\-\-hash\-size\fR switch │ │ │ │ │ has been used. │ │ │ │ │ .Sp │ │ │ │ │ The \fB\-\-reduce\-memory\-overheads\fR switch may be also be used to │ │ │ │ │ enable other tradeoffs in future versions of the linker. │ │ │ │ │ .IP \fB\-\-max\-cache\-size=\fR\fIsize\fR 4 │ │ │ │ │ .IX Item "--max-cache-size=size" │ │ │ │ │ @@ -2984,28 +2987,28 @@ │ │ │ │ │ specified as an even number of hexadecimal digits (\f(CW\*(C`\-\*(C'\fR and │ │ │ │ │ \&\f(CW\*(C`:\*(C'\fR characters between digit pairs are ignored). If \fIstyle\fR │ │ │ │ │ is omitted, \f(CW\*(C`sha1\*(C'\fR is used. │ │ │ │ │ .Sp │ │ │ │ │ The \f(CW\*(C`md5\*(C'\fR, \f(CW\*(C`sha1\*(C'\fR, and \f(CW\*(C`xx\*(C'\fR styles produces an │ │ │ │ │ identifier that is always the same in an identical output file, but │ │ │ │ │ are almost certainly unique among all nonidentical output files. It │ │ │ │ │ -is not intended to be compared as a checksum for the file's contents. │ │ │ │ │ +is not intended to be compared as a checksum for the file\*(Aqs contents. │ │ │ │ │ A linked file may be changed later by other tools, but the build ID │ │ │ │ │ bit string identifying the original linked file does not change. │ │ │ │ │ .Sp │ │ │ │ │ Passing \f(CW\*(C`none\*(C'\fR for \fIstyle\fR disables the setting from any │ │ │ │ │ \&\f(CW\*(C`\-\-build\-id\*(C'\fR options earlier on the command line. │ │ │ │ │ .IP \fB\-\-package\-metadata=\fR\fIJSON\fR 4 │ │ │ │ │ .IX Item "--package-metadata=JSON" │ │ │ │ │ Request the creation of a \f(CW\*(C`.note.package\*(C'\fR ELF note section. The │ │ │ │ │ contents of the note are in JSON format, as per the package metadata │ │ │ │ │ specification. For more information see: │ │ │ │ │ https://systemd.io/ELF_PACKAGE_METADATA/ │ │ │ │ │ -The JSON argument support percent-encoding and following %[string] │ │ │ │ │ -(where string refers to the name in HTML's Named Character References) │ │ │ │ │ +The JSON argument support percent\-encoding and following %[string] │ │ │ │ │ +(where string refers to the name in HTML\*(Aqs Named Character References) │ │ │ │ │ encoding: \fB%[comma]\fR for \fB,\fR, \fB%[lbrace]\fR for \fB{\fR, │ │ │ │ │ \&\fB%[quot]\fR for \fB"\fR, \fB%[rbrace]\fR for \fB}\fR, and │ │ │ │ │ \&\fB%[space]\fR for space character. │ │ │ │ │ If the JSON argument is missing/empty then this will disable the │ │ │ │ │ creation of the metadata note, if one had been enabled by an earlier │ │ │ │ │ occurrence of the \-\-package\-metadata option. │ │ │ │ │ If the linker has been built with libjansson, then the JSON string │ │ │ │ │ @@ -3017,21 +3020,21 @@ │ │ │ │ │ use this option. In addition, the linker fully supports the standard │ │ │ │ │ \&\f(CW\*(C`*.def\*(C'\fR files, which may be specified on the linker command line │ │ │ │ │ like an object file (in fact, it should precede archives it exports │ │ │ │ │ symbols from, to ensure that they get linked in, just like a normal │ │ │ │ │ object file). │ │ │ │ │ .PP │ │ │ │ │ In addition to the options common to all targets, the i386 PE linker │ │ │ │ │ -support additional command-line options that are specific to the i386 │ │ │ │ │ +support additional command\-line options that are specific to the i386 │ │ │ │ │ PE target. Options that take values may be separated from their │ │ │ │ │ values by either a space or an equals sign. │ │ │ │ │ .IP \fB\-\-add\-stdcall\-alias\fR 4 │ │ │ │ │ .IX Item "--add-stdcall-alias" │ │ │ │ │ If given, symbols with a stdcall suffix (@\fInn\fR) will be exported │ │ │ │ │ -as-is and also with the suffix stripped. │ │ │ │ │ +as\-is and also with the suffix stripped. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP "\fB\-\-base\-file\fR \fIfile\fR" 4 │ │ │ │ │ .IX Item "--base-file file" │ │ │ │ │ Use \fIfile\fR as the name of a file in which to save the base │ │ │ │ │ addresses of all the relocations needed for generating DLLs with │ │ │ │ │ \&\fIdlltool\fR. │ │ │ │ │ [This is an i386 PE specific option] │ │ │ │ │ @@ -3046,24 +3049,24 @@ │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-disable\-long\-section\-names\fR 4 │ │ │ │ │ .IX Item "--disable-long-section-names" │ │ │ │ │ .PD │ │ │ │ │ The PE variants of the COFF object format add an extension that permits │ │ │ │ │ the use of section names longer than eight characters, the normal limit │ │ │ │ │ for COFF. By default, these names are only allowed in object files, as │ │ │ │ │ -fully-linked executable images do not carry the COFF string table required │ │ │ │ │ +fully\-linked executable images do not carry the COFF string table required │ │ │ │ │ to support the longer names. As a GNU extension, it is possible to │ │ │ │ │ allow their use in executable images as well, or to (probably pointlessly!) │ │ │ │ │ disallow it in object files, by using these two options. Executable images │ │ │ │ │ -generated with these long section names are slightly non-standard, carrying │ │ │ │ │ +generated with these long section names are slightly non\-standard, carrying │ │ │ │ │ as they do a string table, and may generate confusing output when examined │ │ │ │ │ -with non-GNU PE-aware tools, such as file viewers and dumpers. However, │ │ │ │ │ +with non\-GNU PE\-aware tools, such as file viewers and dumpers. However, │ │ │ │ │ GDB relies on the use of PE long section names to find Dwarf\-2 debug │ │ │ │ │ information sections in an executable image at runtime, and so if neither │ │ │ │ │ -option is specified on the command-line, \fBld\fR will enable long │ │ │ │ │ +option is specified on the command\-line, \fBld\fR will enable long │ │ │ │ │ section names, overriding the default and technically correct behaviour, │ │ │ │ │ when it finds the presence of debug information while linking an executable │ │ │ │ │ image and not stripping symbols. │ │ │ │ │ [This option is valid for all PE targeted ports of the linker] │ │ │ │ │ .IP \fB\-\-enable\-stdcall\-fixup\fR 4 │ │ │ │ │ .IX Item "--enable-stdcall-fixup" │ │ │ │ │ .PD 0 │ │ │ │ │ @@ -3074,49 +3077,49 @@ │ │ │ │ │ do "fuzzy linking" by looking for another defined symbol that differs │ │ │ │ │ only in the format of the symbol name (cdecl vs stdcall) and will │ │ │ │ │ resolve that symbol by linking to the match. For example, the │ │ │ │ │ undefined symbol \f(CW\*(C`_foo\*(C'\fR might be linked to the function │ │ │ │ │ \&\f(CW\*(C`_foo@12\*(C'\fR, or the undefined symbol \f(CW\*(C`_bar@16\*(C'\fR might be linked │ │ │ │ │ to the function \f(CW\*(C`_bar\*(C'\fR. When the linker does this, it prints a │ │ │ │ │ warning, since it normally should have failed to link, but sometimes │ │ │ │ │ -import libraries generated from third-party dlls may need this feature │ │ │ │ │ +import libraries generated from third\-party dlls may need this feature │ │ │ │ │ to be usable. If you specify \fB\-\-enable\-stdcall\-fixup\fR, this │ │ │ │ │ feature is fully enabled and warnings are not printed. If you specify │ │ │ │ │ \&\fB\-\-disable\-stdcall\-fixup\fR, this feature is disabled and such │ │ │ │ │ mismatches are considered to be errors. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP \fB\-\-leading\-underscore\fR 4 │ │ │ │ │ .IX Item "--leading-underscore" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-no\-leading\-underscore\fR 4 │ │ │ │ │ .IX Item "--no-leading-underscore" │ │ │ │ │ .PD │ │ │ │ │ -For most targets default symbol-prefix is an underscore and is defined │ │ │ │ │ -in target's description. By this option it is possible to │ │ │ │ │ -disable/enable the default underscore symbol-prefix. │ │ │ │ │ +For most targets default symbol\-prefix is an underscore and is defined │ │ │ │ │ +in target\*(Aqs description. By this option it is possible to │ │ │ │ │ +disable/enable the default underscore symbol\-prefix. │ │ │ │ │ .IP \fB\-\-export\-all\-symbols\fR 4 │ │ │ │ │ .IX Item "--export-all-symbols" │ │ │ │ │ If given, all global symbols in the objects used to build a DLL will │ │ │ │ │ be exported by the DLL. Note that this is the default if there │ │ │ │ │ -otherwise wouldn't be any exported symbols. When symbols are │ │ │ │ │ +otherwise wouldn\*(Aqt be any exported symbols. When symbols are │ │ │ │ │ explicitly exported via DEF files or implicitly exported via function │ │ │ │ │ attributes, the default is to not export anything else unless this │ │ │ │ │ option is given. Note that the symbols \f(CW\*(C`DllMain@12\*(C'\fR, │ │ │ │ │ \&\f(CW\*(C`DllEntryPoint@0\*(C'\fR, \f(CW\*(C`DllMainCRTStartup@12\*(C'\fR, and │ │ │ │ │ \&\f(CW\*(C`impure_ptr\*(C'\fR will not be automatically │ │ │ │ │ exported. Also, symbols imported from other DLLs will not be │ │ │ │ │ -re-exported, nor will symbols specifying the DLL's internal layout │ │ │ │ │ +re\-exported, nor will symbols specifying the DLL\*(Aqs internal layout │ │ │ │ │ such as those beginning with \f(CW\*(C`_head_\*(C'\fR or ending with │ │ │ │ │ \&\f(CW\*(C`_iname\*(C'\fR. In addition, no symbols from \f(CW\*(C`libgcc\*(C'\fR, │ │ │ │ │ \&\f(CW\*(C`libstd++\*(C'\fR, \f(CW\*(C`libmingw32\*(C'\fR, or \f(CW\*(C`crtX.o\*(C'\fR will be exported. │ │ │ │ │ Symbols whose names begin with \f(CW\*(C`_\|_rtti_\*(C'\fR or \f(CW\*(C`_\|_builtin_\*(C'\fR will │ │ │ │ │ not be exported, to help with C++ DLLs. Finally, there is an │ │ │ │ │ -extensive list of cygwin-private symbols that are not exported │ │ │ │ │ +extensive list of cygwin\-private symbols that are not exported │ │ │ │ │ (obviously, this applies on when building DLLs for cygwin targets). │ │ │ │ │ -These cygwin-excludes are: \f(CW\*(C`_cygwin_dll_entry@12\*(C'\fR, │ │ │ │ │ +These cygwin\-excludes are: \f(CW\*(C`_cygwin_dll_entry@12\*(C'\fR, │ │ │ │ │ \&\f(CW\*(C`_cygwin_crt0_common@8\*(C'\fR, \f(CW\*(C`_cygwin_noncygwin_dll_entry@12\*(C'\fR, │ │ │ │ │ \&\f(CW\*(C`_fmode\*(C'\fR, \f(CW\*(C`_impure_ptr\*(C'\fR, \f(CW\*(C`cygwin_attach_dll\*(C'\fR, │ │ │ │ │ \&\f(CW\*(C`cygwin_premain0\*(C'\fR, \f(CW\*(C`cygwin_premain1\*(C'\fR, \f(CW\*(C`cygwin_premain2\*(C'\fR, │ │ │ │ │ \&\f(CW\*(C`cygwin_premain3\*(C'\fR, and \f(CW\*(C`environ\*(C'\fR. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP "\fB\-\-exclude\-symbols\fR \fIsymbol\fR\fB,\fR\fIsymbol\fR\fB,...\fR" 4 │ │ │ │ │ .IX Item "--exclude-symbols symbol,symbol,..." │ │ │ │ │ @@ -3200,21 +3203,21 @@ │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-enable\-auto\-image\-base=\fR\fIvalue\fR 4 │ │ │ │ │ .IX Item "--enable-auto-image-base=value" │ │ │ │ │ .PD │ │ │ │ │ Automatically choose the image base for DLLs, optionally starting with base │ │ │ │ │ \&\fIvalue\fR, unless one is specified using the \f(CW\*(C`\-\-image\-base\*(C'\fR argument. │ │ │ │ │ By using a hash generated from the dllname to create unique image bases │ │ │ │ │ -for each DLL, in-memory collisions and relocations which can delay program │ │ │ │ │ +for each DLL, in\-memory collisions and relocations which can delay program │ │ │ │ │ execution are avoided. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP \fB\-\-disable\-auto\-image\-base\fR 4 │ │ │ │ │ .IX Item "--disable-auto-image-base" │ │ │ │ │ Do not automatically generate a unique image base. If there is no │ │ │ │ │ -user-specified image base (\f(CW\*(C`\-\-image\-base\*(C'\fR) then use the platform │ │ │ │ │ +user\-specified image base (\f(CW\*(C`\-\-image\-base\*(C'\fR) then use the platform │ │ │ │ │ default. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP "\fB\-\-dll\-search\-prefix\fR \fIstring\fR" 4 │ │ │ │ │ .IX Item "--dll-search-prefix string" │ │ │ │ │ When linking dynamically to a dll without an import library, │ │ │ │ │ search for \f(CW\*(C`.dll\*(C'\fR in preference to │ │ │ │ │ \&\f(CW\*(C`lib.dll\*(C'\fR. This behaviour allows easy distinction │ │ │ │ │ @@ -3228,29 +3231,29 @@ │ │ │ │ │ DATA imports from DLLs, thus making it possible to bypass the dllimport │ │ │ │ │ mechanism on the user side and to reference unmangled symbol names. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .Sp │ │ │ │ │ The following remarks pertain to the original implementation of the │ │ │ │ │ feature and are obsolete nowadays for Cygwin and MinGW targets. │ │ │ │ │ .Sp │ │ │ │ │ -Note: Use of the 'auto\-import' extension will cause the text section │ │ │ │ │ +Note: Use of the \*(Aqauto\-import\*(Aq extension will cause the text section │ │ │ │ │ of the image file to be made writable. This does not conform to the │ │ │ │ │ -PE-COFF format specification published by Microsoft. │ │ │ │ │ +PE\-COFF format specification published by Microsoft. │ │ │ │ │ .Sp │ │ │ │ │ -Note \- use of the 'auto\-import' extension will also cause read only │ │ │ │ │ +Note \- use of the \*(Aqauto\-import\*(Aq extension will also cause read only │ │ │ │ │ data which would normally be placed into the .rdata section to be │ │ │ │ │ placed into the .data section instead. This is in order to work │ │ │ │ │ around a problem with consts that is described here: │ │ │ │ │ http://www.cygwin.com/ml/cygwin/2004\-09/msg01101.html │ │ │ │ │ .Sp │ │ │ │ │ -Using 'auto\-import' generally will 'just work' \-\- but sometimes you may │ │ │ │ │ +Using \*(Aqauto\-import\*(Aq generally will \*(Aqjust work\*(Aq \-\- but sometimes you may │ │ │ │ │ see this message: │ │ │ │ │ .Sp │ │ │ │ │ -"variable '' can't be auto-imported. Please read the │ │ │ │ │ -documentation for ld's \f(CW\*(C`\-\-enable\-auto\-import\*(C'\fR for details." │ │ │ │ │ +"variable \*(Aq\*(Aq can\*(Aqt be auto\-imported. Please read the │ │ │ │ │ +documentation for ld\*(Aqs \f(CW\*(C`\-\-enable\-auto\-import\*(C'\fR for details." │ │ │ │ │ .Sp │ │ │ │ │ This message occurs when some (sub)expression accesses an address │ │ │ │ │ ultimately given by the sum of two constants (Win32 import tables only │ │ │ │ │ allow one). Instances where this may occur include accesses to member │ │ │ │ │ fields of struct variables imported from a DLL, as well as using a │ │ │ │ │ constant index into an array variable imported from a DLL. Any │ │ │ │ │ multiword variable (arrays, structs, long long, etc) may trigger │ │ │ │ │ @@ -3261,18 +3264,18 @@ │ │ │ │ │ There are several ways to address this difficulty, regardless of the │ │ │ │ │ data type of the exported variable: │ │ │ │ │ .Sp │ │ │ │ │ One way is to use \-\-enable\-runtime\-pseudo\-reloc switch. This leaves the task │ │ │ │ │ of adjusting references in your client code for runtime environment, so │ │ │ │ │ this method works only when runtime environment supports this feature. │ │ │ │ │ .Sp │ │ │ │ │ -A second solution is to force one of the 'constants' to be a variable \-\- │ │ │ │ │ -that is, unknown and un-optimizable at compile time. For arrays, │ │ │ │ │ -there are two possibilities: a) make the indexee (the array's address) │ │ │ │ │ -a variable, or b) make the 'constant' index a variable. Thus: │ │ │ │ │ +A second solution is to force one of the \*(Aqconstants\*(Aq to be a variable \-\- │ │ │ │ │ +that is, unknown and un\-optimizable at compile time. For arrays, │ │ │ │ │ +there are two possibilities: a) make the indexee (the array\*(Aqs address) │ │ │ │ │ +a variable, or b) make the \*(Aqconstant\*(Aq index a variable. Thus: │ │ │ │ │ .Sp │ │ │ │ │ .Vb 3 │ │ │ │ │ \& extern type extern_array[]; │ │ │ │ │ \& extern_array[1] \-\-> │ │ │ │ │ \& { volatile type *t=extern_array; t[1] } │ │ │ │ │ .Ve │ │ │ │ │ .Sp │ │ │ │ │ @@ -3298,21 +3301,21 @@ │ │ │ │ │ .Vb 3 │ │ │ │ │ \& extern long long extern_ll; │ │ │ │ │ \& extern_ll \-\-> │ │ │ │ │ \& { volatile long long * local_ll=&extern_ll; *local_ll } │ │ │ │ │ .Ve │ │ │ │ │ .Sp │ │ │ │ │ A third method of dealing with this difficulty is to abandon │ │ │ │ │ -\&'auto\-import' for the offending symbol and mark it with │ │ │ │ │ +\&\*(Aqauto\-import\*(Aq for the offending symbol and mark it with │ │ │ │ │ \&\f(CW\*(C`_\|_declspec(dllimport)\*(C'\fR. However, in practice that │ │ │ │ │ -requires using compile-time #defines to indicate whether you are │ │ │ │ │ +requires using compile\-time #defines to indicate whether you are │ │ │ │ │ building a DLL, building client code that will link to the DLL, or │ │ │ │ │ merely building/linking to a static library. In making the choice │ │ │ │ │ -between the various methods of resolving the 'direct address with │ │ │ │ │ -constant offset' problem, you should consider typical real-world usage: │ │ │ │ │ +between the various methods of resolving the \*(Aqdirect address with │ │ │ │ │ +constant offset\*(Aq problem, you should consider typical real\-world usage: │ │ │ │ │ .Sp │ │ │ │ │ Original: │ │ │ │ │ .Sp │ │ │ │ │ .Vb 7 │ │ │ │ │ \& \-\-foo.h │ │ │ │ │ \& extern int arr[]; │ │ │ │ │ \& \-\-foo.c │ │ │ │ │ @@ -3351,37 +3354,37 @@ │ │ │ │ │ \& \-\-foo.c │ │ │ │ │ \& #include "foo.h" │ │ │ │ │ \& void main(int argc, char **argv){ │ │ │ │ │ \& printf("%d\en",arr[1]); │ │ │ │ │ \& } │ │ │ │ │ .Ve │ │ │ │ │ .Sp │ │ │ │ │ -A fourth way to avoid this problem is to re-code your │ │ │ │ │ +A fourth way to avoid this problem is to re\-code your │ │ │ │ │ library to use a functional interface rather than a data interface │ │ │ │ │ for the offending variables (e.g. \fBset_foo()\fR and \fBget_foo()\fR accessor │ │ │ │ │ functions). │ │ │ │ │ .IP \fB\-\-disable\-auto\-import\fR 4 │ │ │ │ │ .IX Item "--disable-auto-import" │ │ │ │ │ Do not attempt to do sophisticated linking of \f(CW\*(C`_symbol\*(C'\fR to │ │ │ │ │ \&\f(CW\*(C`_\|_imp_\|_symbol\*(C'\fR for DATA imports from DLLs. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP \fB\-\-enable\-runtime\-pseudo\-reloc\fR 4 │ │ │ │ │ .IX Item "--enable-runtime-pseudo-reloc" │ │ │ │ │ If your code contains expressions described in \-\-enable\-auto\-import section, │ │ │ │ │ -that is, DATA imports from DLL with non-zero offset, this switch will create │ │ │ │ │ -a vector of 'runtime pseudo relocations' which can be used by runtime │ │ │ │ │ +that is, DATA imports from DLL with non\-zero offset, this switch will create │ │ │ │ │ +a vector of \*(Aqruntime pseudo relocations\*(Aq which can be used by runtime │ │ │ │ │ environment to adjust references to such data in your client code. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP \fB\-\-disable\-runtime\-pseudo\-reloc\fR 4 │ │ │ │ │ .IX Item "--disable-runtime-pseudo-reloc" │ │ │ │ │ -Do not create pseudo relocations for non-zero offset DATA imports from DLLs. │ │ │ │ │ +Do not create pseudo relocations for non\-zero offset DATA imports from DLLs. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP \fB\-\-enable\-extra\-pe\-debug\fR 4 │ │ │ │ │ .IX Item "--enable-extra-pe-debug" │ │ │ │ │ -Show additional debug info related to auto-import symbol thunking. │ │ │ │ │ +Show additional debug info related to auto\-import symbol thunking. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP \fB\-\-section\-alignment\fR 4 │ │ │ │ │ .IX Item "--section-alignment" │ │ │ │ │ Sets the section alignment. Sections in memory will always begin at │ │ │ │ │ addresses which are a multiple of this number. Defaults to 0x1000. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP "\fB\-\-stack\fR \fIreserve\fR" 4 │ │ │ │ │ @@ -3624,71 +3627,71 @@ │ │ │ │ │ .IP \fB\-N\fR 4 │ │ │ │ │ .IX Item "-N" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-omagic\fR 4 │ │ │ │ │ .IX Item "--omagic" │ │ │ │ │ .PD │ │ │ │ │ Mark the output as \f(CW\*(C`OMAGIC\*(C'\fR (0407) in the \fIa.out\fR header to │ │ │ │ │ -indicate that the text segment is not to be write-protected and │ │ │ │ │ +indicate that the text segment is not to be write\-protected and │ │ │ │ │ shared. Since the text and data sections are both readable and │ │ │ │ │ writable, the data section is allocated immediately contiguous after │ │ │ │ │ the text segment. This is the oldest format for PDP11 executable │ │ │ │ │ programs and is the default for \fBld\fR on PDP11 Unix systems │ │ │ │ │ from the beginning through 2.11BSD. │ │ │ │ │ .IP \fB\-n\fR 4 │ │ │ │ │ .IX Item "-n" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-nmagic\fR 4 │ │ │ │ │ .IX Item "--nmagic" │ │ │ │ │ .PD │ │ │ │ │ Mark the output as \f(CW\*(C`NMAGIC\*(C'\fR (0410) in the \fIa.out\fR header to │ │ │ │ │ indicate that when the output file is executed, the text portion will │ │ │ │ │ -be read-only and shareable among all processes executing the same │ │ │ │ │ +be read\-only and shareable among all processes executing the same │ │ │ │ │ file. This involves moving the data areas up to the first possible 8K │ │ │ │ │ byte page boundary following the end of the text. This option creates │ │ │ │ │ a \fIpure executable\fR format. │ │ │ │ │ .IP \fB\-z\fR 4 │ │ │ │ │ .IX Item "-z" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-imagic\fR 4 │ │ │ │ │ .IX Item "--imagic" │ │ │ │ │ .PD │ │ │ │ │ Mark the output as \f(CW\*(C`IMAGIC\*(C'\fR (0411) in the \fIa.out\fR header to │ │ │ │ │ indicate that when the output file is executed, the program text and │ │ │ │ │ data areas will be loaded into separate address spaces using the split │ │ │ │ │ instruction and data space feature of the memory management unit in │ │ │ │ │ larger models of the PDP11. This doubles the address space available │ │ │ │ │ -to the program. The text segment is again pure, write-protected, and │ │ │ │ │ +to the program. The text segment is again pure, write\-protected, and │ │ │ │ │ shareable. The only difference in the output format between this │ │ │ │ │ option and the others, besides the magic number, is that both the text │ │ │ │ │ and data sections start at location 0. The \fB\-z\fR option selected │ │ │ │ │ this format in 2.11BSD. This option creates a \fIseparate │ │ │ │ │ executable\fR format. │ │ │ │ │ .IP \fB\-\-no\-omagic\fR 4 │ │ │ │ │ .IX Item "--no-omagic" │ │ │ │ │ Equivalent to \fB\-\-nmagic\fR for pdp11\-aout. │ │ │ │ │ .SH ENVIRONMENT │ │ │ │ │ .IX Header "ENVIRONMENT" │ │ │ │ │ You can change the behaviour of \fBld\fR with the environment variables │ │ │ │ │ \&\f(CW\*(C`GNUTARGET\*(C'\fR, │ │ │ │ │ \&\f(CW\*(C`LDEMULATION\*(C'\fR and \f(CW\*(C`COLLECT_NO_DEMANGLE\*(C'\fR. │ │ │ │ │ .PP │ │ │ │ │ -\&\f(CW\*(C`GNUTARGET\*(C'\fR determines the input-file object format if you don't │ │ │ │ │ +\&\f(CW\*(C`GNUTARGET\*(C'\fR determines the input\-file object format if you don\*(Aqt │ │ │ │ │ use \fB\-b\fR (or its synonym \fB\-\-format\fR). Its value should be one │ │ │ │ │ of the BFD names for an input format. If there is no │ │ │ │ │ \&\f(CW\*(C`GNUTARGET\*(C'\fR in the environment, \fBld\fR uses the natural format │ │ │ │ │ of the target. If \f(CW\*(C`GNUTARGET\*(C'\fR is set to \f(CW\*(C`default\*(C'\fR then BFD │ │ │ │ │ attempts to discover the input format by examining binary input files; │ │ │ │ │ this method often succeeds, but there are potential ambiguities, since │ │ │ │ │ there is no method of ensuring that the magic number used to specify │ │ │ │ │ -object-file formats is unique. However, the configuration procedure for │ │ │ │ │ +object\-file formats is unique. However, the configuration procedure for │ │ │ │ │ BFD on each system places the conventional format for that system first │ │ │ │ │ -in the search-list, so ambiguities are resolved in favor of convention. │ │ │ │ │ +in the search\-list, so ambiguities are resolved in favor of convention. │ │ │ │ │ .PP │ │ │ │ │ -\&\f(CW\*(C`LDEMULATION\*(C'\fR determines the default emulation if you don't use the │ │ │ │ │ +\&\f(CW\*(C`LDEMULATION\*(C'\fR determines the default emulation if you don\*(Aqt use the │ │ │ │ │ \&\fB\-m\fR option. The emulation can affect various aspects of linker │ │ │ │ │ behaviour, particularly the default linker script. You can list the │ │ │ │ │ available emulations with the \fB\-\-verbose\fR or \fB\-V\fR options. If │ │ │ │ │ the \fB\-m\fR option is not used, and the \f(CW\*(C`LDEMULATION\*(C'\fR environment │ │ │ │ │ variable is not defined, the default emulation depends upon how the │ │ │ │ │ linker was configured. │ │ │ │ │ .PP │ │ │ │ │ @@ -3711,10 +3714,10 @@ │ │ │ │ │ .SH COPYRIGHT │ │ │ │ │ .IX Header "COPYRIGHT" │ │ │ │ │ Copyright (c) 1991\-2025 Free Software Foundation, Inc. │ │ │ │ │ .PP │ │ │ │ │ Permission is granted to copy, distribute and/or modify this document │ │ │ │ │ under the terms of the GNU Free Documentation License, Version 1.3 │ │ │ │ │ or any later version published by the Free Software Foundation; │ │ │ │ │ -with no Invariant Sections, with no Front-Cover Texts, and with no │ │ │ │ │ -Back-Cover Texts. A copy of the license is included in the │ │ │ │ │ +with no Invariant Sections, with no Front\-Cover Texts, and with no │ │ │ │ │ +Back\-Cover Texts. A copy of the license is included in the │ │ │ │ │ section entitled "GNU Free Documentation License". ├── binutils-mingw-w64-ucrt64_2.44-2+12_i386.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2024-10-26 18:03:55.000000 debian-binary │ │ -rw-r--r-- 0 0 0 2052 2024-10-26 18:03:55.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 3621864 2024-10-26 18:03:55.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 3621992 2024-10-26 18:03:55.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -35,15 +35,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7222 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32ucrt-ar.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 29664 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32ucrt-as.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3765 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32ucrt-c++filt.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5720 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32ucrt-dlltool.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 311 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32ucrt-dllwrap.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2557 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32ucrt-elfedit.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7943 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32ucrt-gprof.1.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 47205 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32ucrt-ld.1.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 47328 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32ucrt-ld.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7084 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32ucrt-nm.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 14200 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32ucrt-objcopy.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 14901 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32ucrt-objdump.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2144 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32ucrt-ranlib.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 8507 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32ucrt-readelf.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3015 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32ucrt-size.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3806 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32ucrt-strings.1.gz │ │ │ ├── ./usr/share/man/man1/x86_64-w64-mingw32ucrt-ld.1.gz │ │ │ │ ├── x86_64-w64-mingw32ucrt-ld.1 │ │ │ │ │ @@ -1,9 +1,9 @@ │ │ │ │ │ .\" -*- mode: troff; coding: utf-8 -*- │ │ │ │ │ -.\" Automatically generated by Pod::Man 5.0102 (Pod::Simple 3.45) │ │ │ │ │ +.\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) │ │ │ │ │ .\" │ │ │ │ │ .\" Standard preamble: │ │ │ │ │ .\" ======================================================================== │ │ │ │ │ .de Sp \" Vertical space (when we can't use .PP) │ │ │ │ │ .if t .sp .5v │ │ │ │ │ .if n .sp │ │ │ │ │ .. │ │ │ │ │ @@ -48,18 +48,21 @@ │ │ │ │ │ . if !\nF==2 \{\ │ │ │ │ │ . nr % 0 │ │ │ │ │ . nr F 2 │ │ │ │ │ . \} │ │ │ │ │ . \} │ │ │ │ │ .\} │ │ │ │ │ .rr rF │ │ │ │ │ +.\" │ │ │ │ │ +.\" Required to disable full justification in groff 1.23.0. │ │ │ │ │ +.if n .ds AD l │ │ │ │ │ .\" ======================================================================== │ │ │ │ │ .\" │ │ │ │ │ .IX Title "LD 1" │ │ │ │ │ -.TH LD 1 2024-10-26 binutils-2.44 "GNU Development Tools" │ │ │ │ │ +.TH LD 1 2025-02-02 binutils-2.44 "GNU Development Tools" │ │ │ │ │ .\" For nroff, turn off justification. Always turn off hyphenation; it makes │ │ │ │ │ .\" way too many mistakes in technical documents. │ │ │ │ │ .if n .ad l │ │ │ │ │ .nh │ │ │ │ │ .SH NAME │ │ │ │ │ ld \- The GNU linker │ │ │ │ │ .SH SYNOPSIS │ │ │ │ │ @@ -68,15 +71,15 @@ │ │ │ │ │ .SH DESCRIPTION │ │ │ │ │ .IX Header "DESCRIPTION" │ │ │ │ │ \&\fBld\fR combines a number of object and archive files, relocates │ │ │ │ │ their data and ties up symbol references. Usually the last step in │ │ │ │ │ compiling a program is to run \fBld\fR. │ │ │ │ │ .PP │ │ │ │ │ \&\fBld\fR accepts Linker Command Language files written in │ │ │ │ │ -a superset of AT&T's Link Editor Command Language syntax, │ │ │ │ │ +a superset of AT&T\*(Aqs Link Editor Command Language syntax, │ │ │ │ │ to provide explicit and total control over the linking process. │ │ │ │ │ .PP │ │ │ │ │ This man page does not describe the command language; see the │ │ │ │ │ \&\fBld\fR entry in \f(CW\*(C`info\*(C'\fR for full details on the command │ │ │ │ │ language and on other aspects of the GNU linker. │ │ │ │ │ .PP │ │ │ │ │ This version of \fBld\fR uses the general purpose BFD libraries │ │ │ │ │ @@ -92,41 +95,41 @@ │ │ │ │ │ (or, in some cases, to get an output file in spite of the error). │ │ │ │ │ .PP │ │ │ │ │ The GNU linker \fBld\fR is meant to cover a broad range of situations, │ │ │ │ │ and to be as compatible as possible with other linkers. As a result, │ │ │ │ │ you have many choices to control its behavior. │ │ │ │ │ .SH OPTIONS │ │ │ │ │ .IX Header "OPTIONS" │ │ │ │ │ -The linker supports a plethora of command-line options, but in actual │ │ │ │ │ +The linker supports a plethora of command\-line options, but in actual │ │ │ │ │ practice few of them are used in any particular context. │ │ │ │ │ For instance, a frequent use of \fBld\fR is to link standard Unix │ │ │ │ │ object files on a standard, supported Unix system. On such a system, to │ │ │ │ │ link a file \f(CW\*(C`hello.o\*(C'\fR: │ │ │ │ │ .PP │ │ │ │ │ .Vb 1 │ │ │ │ │ \& ld \-o /lib/crt0.o hello.o \-lc │ │ │ │ │ .Ve │ │ │ │ │ .PP │ │ │ │ │ This tells \fBld\fR to produce a file called \fIoutput\fR as the │ │ │ │ │ result of linking the file \f(CW\*(C`/lib/crt0.o\*(C'\fR with \f(CW\*(C`hello.o\*(C'\fR and │ │ │ │ │ the library \f(CW\*(C`libc.a\*(C'\fR, which will come from the standard search │ │ │ │ │ directories. (See the discussion of the \fB\-l\fR option below.) │ │ │ │ │ .PP │ │ │ │ │ -Some of the command-line options to \fBld\fR may be specified at any │ │ │ │ │ +Some of the command\-line options to \fBld\fR may be specified at any │ │ │ │ │ point in the command line. However, options which refer to files, such │ │ │ │ │ as \fB\-l\fR or \fB\-T\fR, cause the file to be read at the point at │ │ │ │ │ which the option appears in the command line, relative to the object │ │ │ │ │ -files and other file options. Repeating non-file options with a │ │ │ │ │ +files and other file options. Repeating non\-file options with a │ │ │ │ │ different argument will either have no further effect, or override prior │ │ │ │ │ occurrences (those further to the left on the command line) of that │ │ │ │ │ option. Options which may be meaningfully specified more than once are │ │ │ │ │ noted in the descriptions below. │ │ │ │ │ .PP │ │ │ │ │ -Non-option arguments are object files or archives which are to be linked │ │ │ │ │ -together. They may follow, precede, or be mixed in with command-line │ │ │ │ │ +Non\-option arguments are object files or archives which are to be linked │ │ │ │ │ +together. They may follow, precede, or be mixed in with command\-line │ │ │ │ │ options, except that an object file argument may not be placed between │ │ │ │ │ an option and its argument. │ │ │ │ │ .PP │ │ │ │ │ Usually the linker is invoked with at least one object file, but you can │ │ │ │ │ specify other forms of binary input files using \fB\-l\fR, \fB\-R\fR, │ │ │ │ │ and the script command language. If \fIno\fR binary input files at all │ │ │ │ │ are specified, the linker does not produce any output, and issues the │ │ │ │ │ @@ -148,53 +151,53 @@ │ │ │ │ │ option arguments must either follow the option letter without intervening │ │ │ │ │ whitespace, or be given as separate arguments immediately following the │ │ │ │ │ option that requires them. │ │ │ │ │ .PP │ │ │ │ │ For options whose names are multiple letters, either one dash or two can │ │ │ │ │ precede the option name; for example, \fB\-trace\-symbol\fR and │ │ │ │ │ \&\fB\-\-trace\-symbol\fR are equivalent. Note\-\-\-there is one exception to │ │ │ │ │ -this rule. Multiple letter options that start with a lower case 'o' can │ │ │ │ │ +this rule. Multiple letter options that start with a lower case \*(Aqo\*(Aq can │ │ │ │ │ only be preceded by two dashes. This is to reduce confusion with the │ │ │ │ │ \&\fB\-o\fR option. So for example \fB\-omagic\fR sets the output file │ │ │ │ │ name to \fBmagic\fR whereas \fB\-\-omagic\fR sets the NMAGIC flag on the │ │ │ │ │ output. │ │ │ │ │ .PP │ │ │ │ │ -Arguments to multiple-letter options must either be separated from the │ │ │ │ │ +Arguments to multiple\-letter options must either be separated from the │ │ │ │ │ option name by an equals sign, or be given as separate arguments │ │ │ │ │ immediately following the option that requires them. For example, │ │ │ │ │ \&\fB\-\-trace\-symbol foo\fR and \fB\-\-trace\-symbol=foo\fR are equivalent. │ │ │ │ │ -Unique abbreviations of the names of multiple-letter options are │ │ │ │ │ +Unique abbreviations of the names of multiple\-letter options are │ │ │ │ │ accepted. │ │ │ │ │ .PP │ │ │ │ │ Note\-\-\-if the linker is being invoked indirectly, via a compiler driver │ │ │ │ │ -(e.g. \fBgcc\fR) then all the linker command-line options should be │ │ │ │ │ +(e.g. \fBgcc\fR) then all the linker command\-line options should be │ │ │ │ │ prefixed by \fB\-Wl,\fR (or whatever is appropriate for the particular │ │ │ │ │ compiler driver) like this: │ │ │ │ │ .PP │ │ │ │ │ .Vb 1 │ │ │ │ │ \& gcc \-Wl,\-\-start\-group foo.o bar.o \-Wl,\-\-end\-group │ │ │ │ │ .Ve │ │ │ │ │ .PP │ │ │ │ │ This is important, because otherwise the compiler driver program may │ │ │ │ │ silently drop the linker options, resulting in a bad link. Confusion │ │ │ │ │ may also arise when passing options that require values through a │ │ │ │ │ driver, as the use of a space between option and argument acts as │ │ │ │ │ a separator, and causes the driver to pass only the option to the linker │ │ │ │ │ and the argument to the compiler. In this case, it is simplest to use │ │ │ │ │ -the joined forms of both single\- and multiple-letter options, such as: │ │ │ │ │ +the joined forms of both single\- and multiple\-letter options, such as: │ │ │ │ │ .PP │ │ │ │ │ .Vb 1 │ │ │ │ │ \& gcc foo.o bar.o \-Wl,\-eENTRY \-Wl,\-Map=a.map │ │ │ │ │ .Ve │ │ │ │ │ .PP │ │ │ │ │ -Here is a table of the generic command-line switches accepted by the GNU │ │ │ │ │ +Here is a table of the generic command\-line switches accepted by the GNU │ │ │ │ │ linker: │ │ │ │ │ .IP \fB@\fR\fIfile\fR 4 │ │ │ │ │ .IX Item "@file" │ │ │ │ │ -Read command-line options from \fIfile\fR. The options read are │ │ │ │ │ +Read command\-line options from \fIfile\fR. The options read are │ │ │ │ │ inserted in place of the original @\fIfile\fR option. If \fIfile\fR │ │ │ │ │ does not exist, or cannot be read, then the option will be treated │ │ │ │ │ literally, and not removed. │ │ │ │ │ .Sp │ │ │ │ │ Options in \fIfile\fR are separated by whitespace. A whitespace │ │ │ │ │ character may be included in an option by surrounding the entire │ │ │ │ │ option in either single or double quotes. Any character (including a │ │ │ │ │ @@ -212,57 +215,57 @@ │ │ │ │ │ .IX Item "--audit AUDITLIB" │ │ │ │ │ Adds \fIAUDITLIB\fR to the \f(CW\*(C`DT_AUDIT\*(C'\fR entry of the dynamic section. │ │ │ │ │ \&\fIAUDITLIB\fR is not checked for existence, nor will it use the DT_SONAME │ │ │ │ │ specified in the library. If specified multiple times \f(CW\*(C`DT_AUDIT\*(C'\fR │ │ │ │ │ will contain a colon separated list of audit interfaces to use. If the linker │ │ │ │ │ finds an object with an audit entry while searching for shared libraries, │ │ │ │ │ it will add a corresponding \f(CW\*(C`DT_DEPAUDIT\*(C'\fR entry in the output file. │ │ │ │ │ -This option is only meaningful on ELF platforms supporting the rtld-audit │ │ │ │ │ +This option is only meaningful on ELF platforms supporting the rtld\-audit │ │ │ │ │ interface. │ │ │ │ │ -.IP "\fB\-b\fR \fIinput-format\fR" 4 │ │ │ │ │ +.IP "\fB\-b\fR \fIinput\-format\fR" 4 │ │ │ │ │ .IX Item "-b input-format" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fB\-\-format=\fR\fIinput-format\fR 4 │ │ │ │ │ +.IP \fB\-\-format=\fR\fIinput\-format\fR 4 │ │ │ │ │ .IX Item "--format=input-format" │ │ │ │ │ .PD │ │ │ │ │ \&\fBld\fR may be configured to support more than one kind of object │ │ │ │ │ file. If your \fBld\fR is configured this way, you can use the │ │ │ │ │ \&\fB\-b\fR option to specify the binary format for input object files │ │ │ │ │ that follow this option on the command line. Even when \fBld\fR is │ │ │ │ │ -configured to support alternative object formats, you don't usually need │ │ │ │ │ +configured to support alternative object formats, you don\*(Aqt usually need │ │ │ │ │ to specify this, as \fBld\fR should be configured to expect as a │ │ │ │ │ default input format the most usual format on each machine. │ │ │ │ │ -\&\fIinput-format\fR is a text string, the name of a particular format │ │ │ │ │ +\&\fIinput\-format\fR is a text string, the name of a particular format │ │ │ │ │ supported by the BFD libraries. (You can list the available binary │ │ │ │ │ formats with \fBobjdump \-i\fR.) │ │ │ │ │ .Sp │ │ │ │ │ You may want to use this option if you are linking files with an unusual │ │ │ │ │ binary format. You can also use \fB\-b\fR to switch formats explicitly (when │ │ │ │ │ linking object files of different formats), by including │ │ │ │ │ -\&\fB\-b\fR \fIinput-format\fR before each group of object files in a │ │ │ │ │ +\&\fB\-b\fR \fIinput\-format\fR before each group of object files in a │ │ │ │ │ particular format. │ │ │ │ │ .Sp │ │ │ │ │ The default format is taken from the environment variable │ │ │ │ │ \&\f(CW\*(C`GNUTARGET\*(C'\fR. │ │ │ │ │ .Sp │ │ │ │ │ You can also define the input format from a script, using the command │ │ │ │ │ \&\f(CW\*(C`TARGET\*(C'\fR; │ │ │ │ │ -.IP "\fB\-c\fR \fIMRI-commandfile\fR" 4 │ │ │ │ │ +.IP "\fB\-c\fR \fIMRI\-commandfile\fR" 4 │ │ │ │ │ .IX Item "-c MRI-commandfile" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fB\-\-mri\-script=\fR\fIMRI-commandfile\fR 4 │ │ │ │ │ +.IP \fB\-\-mri\-script=\fR\fIMRI\-commandfile\fR 4 │ │ │ │ │ .IX Item "--mri-script=MRI-commandfile" │ │ │ │ │ .PD │ │ │ │ │ For compatibility with linkers produced by MRI, \fBld\fR accepts script │ │ │ │ │ files written in an alternate, restricted command language, described in │ │ │ │ │ the MRI Compatible Script Files section of GNU ld documentation. │ │ │ │ │ Introduce MRI script files with │ │ │ │ │ the option \fB\-c\fR; use the \fB\-T\fR option to run linker │ │ │ │ │ -scripts written in the general-purpose \fBld\fR scripting language. │ │ │ │ │ -If \fIMRI-cmdfile\fR does not exist, \fBld\fR looks for it in the directories │ │ │ │ │ +scripts written in the general\-purpose \fBld\fR scripting language. │ │ │ │ │ +If \fIMRI\-cmdfile\fR does not exist, \fBld\fR looks for it in the directories │ │ │ │ │ specified by any \fB\-L\fR options. │ │ │ │ │ .IP \fB\-d\fR 4 │ │ │ │ │ .IX Item "-d" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-dc\fR 4 │ │ │ │ │ .IX Item "-dc" │ │ │ │ │ .IP \fB\-dp\fR 4 │ │ │ │ │ @@ -278,15 +281,15 @@ │ │ │ │ │ .IP "\fB\-P\fR \fIAUDITLIB\fR" 4 │ │ │ │ │ .IX Item "-P AUDITLIB" │ │ │ │ │ .PD │ │ │ │ │ Adds \fIAUDITLIB\fR to the \f(CW\*(C`DT_DEPAUDIT\*(C'\fR entry of the dynamic section. │ │ │ │ │ \&\fIAUDITLIB\fR is not checked for existence, nor will it use the DT_SONAME │ │ │ │ │ specified in the library. If specified multiple times \f(CW\*(C`DT_DEPAUDIT\*(C'\fR │ │ │ │ │ will contain a colon separated list of audit interfaces to use. This │ │ │ │ │ -option is only meaningful on ELF platforms supporting the rtld-audit interface. │ │ │ │ │ +option is only meaningful on ELF platforms supporting the rtld\-audit interface. │ │ │ │ │ The \-P option is provided for Solaris compatibility. │ │ │ │ │ .IP \fB\-\-enable\-linker\-version\fR 4 │ │ │ │ │ .IX Item "--enable-linker-version" │ │ │ │ │ Enables the \f(CW\*(C`LINKER_VERSION\*(C'\fR linker script directive, described │ │ │ │ │ in \fBOutput Section Data\fR. If this directive is used in a linker │ │ │ │ │ script and this option has been enabled then a string containing the │ │ │ │ │ linker version will be inserted at the current point. │ │ │ │ │ @@ -300,15 +303,15 @@ │ │ │ │ │ does not insert a version string. This is the default. │ │ │ │ │ .IP \fB\-\-enable\-non\-contiguous\-regions\fR 4 │ │ │ │ │ .IX Item "--enable-non-contiguous-regions" │ │ │ │ │ This option avoids generating an error if an input section does not │ │ │ │ │ fit a matching output section. The linker tries to allocate the input │ │ │ │ │ section to subseque nt matching output sections, and generates an │ │ │ │ │ error only if no output section is large enough. This is useful when │ │ │ │ │ -several non-contiguous memory regions are available and the input │ │ │ │ │ +several non\-contiguous memory regions are available and the input │ │ │ │ │ section does not require a particular one. The order in which input │ │ │ │ │ sections are evaluated does not change, for instance: │ │ │ │ │ .Sp │ │ │ │ │ .Vb 10 │ │ │ │ │ \& MEMORY { │ │ │ │ │ \& MEM1 (rwx) : ORIGIN = 0x1000, LENGTH = 0x14 │ │ │ │ │ \& MEM2 (rwx) : ORIGIN = 0x1000, LENGTH = 0x40 │ │ │ │ │ @@ -364,16 +367,16 @@ │ │ │ │ │ .IX Item "--exclude-modules-for-implib module,module,..." │ │ │ │ │ Specifies a list of object files or archive members, from which symbols │ │ │ │ │ should not be automatically exported, but which should be copied wholesale │ │ │ │ │ into the import library being generated during the link. The module names │ │ │ │ │ may be delimited by commas or colons, and must match exactly the filenames │ │ │ │ │ used by \fBld\fR to open the files; for archive members, this is simply │ │ │ │ │ the member name, but for object files the name listed must include and │ │ │ │ │ -match precisely any path used to specify the input file on the linker's │ │ │ │ │ -command-line. This option is available only for the i386 PE targeted port │ │ │ │ │ +match precisely any path used to specify the input file on the linker\*(Aqs │ │ │ │ │ +command\-line. This option is available only for the i386 PE targeted port │ │ │ │ │ of the linker. Symbols explicitly listed in a .def file are still exported, │ │ │ │ │ regardless of this option. │ │ │ │ │ .IP \fB\-E\fR 4 │ │ │ │ │ .IX Item "-E" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-export\-dynamic\fR 4 │ │ │ │ │ .IX Item "--export-dynamic" │ │ │ │ │ @@ -404,28 +407,28 @@ │ │ │ │ │ the description of \fB\-\-export\-all\-symbols\fR below. │ │ │ │ │ .IP \fB\-\-export\-dynamic\-symbol=\fR\fIglob\fR 4 │ │ │ │ │ .IX Item "--export-dynamic-symbol=glob" │ │ │ │ │ When creating a dynamically linked executable, symbols matching │ │ │ │ │ \&\fIglob\fR will be added to the dynamic symbol table. When creating a │ │ │ │ │ shared library, references to symbols matching \fIglob\fR will not be │ │ │ │ │ bound to the definitions within the shared library. This option is a │ │ │ │ │ -no-op when creating a shared library and \fB\-Bsymbolic\fR or │ │ │ │ │ +no\-op when creating a shared library and \fB\-Bsymbolic\fR or │ │ │ │ │ \&\fB\-\-dynamic\-list\fR are not specified. This option is only meaningful │ │ │ │ │ on ELF platforms which support shared libraries. │ │ │ │ │ .IP \fB\-\-export\-dynamic\-symbol\-list=\fR\fIfile\fR 4 │ │ │ │ │ .IX Item "--export-dynamic-symbol-list=file" │ │ │ │ │ Specify a \fB\-\-export\-dynamic\-symbol\fR for each pattern in the file. │ │ │ │ │ The format of the file is the same as the version node without │ │ │ │ │ scope and node name. See \fBVERSION\fR for more information. │ │ │ │ │ .IP \fB\-EB\fR 4 │ │ │ │ │ .IX Item "-EB" │ │ │ │ │ -Link big-endian objects. This affects the default output format. │ │ │ │ │ +Link big\-endian objects. This affects the default output format. │ │ │ │ │ .IP \fB\-EL\fR 4 │ │ │ │ │ .IX Item "-EL" │ │ │ │ │ -Link little-endian objects. This affects the default output format. │ │ │ │ │ +Link little\-endian objects. This affects the default output format. │ │ │ │ │ .IP "\fB\-f\fR \fIname\fR" 4 │ │ │ │ │ .IX Item "-f name" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-auxiliary=\fR\fIname\fR 4 │ │ │ │ │ .IX Item "--auxiliary=name" │ │ │ │ │ .PD │ │ │ │ │ When creating an ELF shared object, set the internal DT_AUXILIARY field │ │ │ │ │ @@ -437,15 +440,15 @@ │ │ │ │ │ run the program, the dynamic linker will see the DT_AUXILIARY field. If │ │ │ │ │ the dynamic linker resolves any symbols from the filter object, it will │ │ │ │ │ first check whether there is a definition in the shared object │ │ │ │ │ \&\fIname\fR. If there is one, it will be used instead of the definition │ │ │ │ │ in the filter object. The shared object \fIname\fR need not exist. │ │ │ │ │ Thus the shared object \fIname\fR may be used to provide an alternative │ │ │ │ │ implementation of certain functions, perhaps for debugging or for │ │ │ │ │ -machine-specific performance. │ │ │ │ │ +machine\-specific performance. │ │ │ │ │ .Sp │ │ │ │ │ This option may be specified more than once. The DT_AUXILIARY entries │ │ │ │ │ will be created in the order in which they appear on the command line. │ │ │ │ │ .IP "\fB\-F\fR \fIname\fR" 4 │ │ │ │ │ .IX Item "-F name" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-filter=\fR\fIname\fR 4 │ │ │ │ │ @@ -461,15 +464,15 @@ │ │ │ │ │ dynamic linker will resolve symbols according to the symbol table of the │ │ │ │ │ filter object as usual, but it will actually link to the definitions │ │ │ │ │ found in the shared object \fIname\fR. Thus the filter object can be │ │ │ │ │ used to select a subset of the symbols provided by the object │ │ │ │ │ \&\fIname\fR. │ │ │ │ │ .Sp │ │ │ │ │ Some older linkers used the \fB\-F\fR option throughout a compilation │ │ │ │ │ -toolchain for specifying object-file format for both input and output │ │ │ │ │ +toolchain for specifying object\-file format for both input and output │ │ │ │ │ object files. │ │ │ │ │ The GNU linker uses other mechanisms for this purpose: the │ │ │ │ │ \&\fB\-b\fR, \fB\-\-format\fR, \fB\-\-oformat\fR options, the │ │ │ │ │ \&\f(CW\*(C`TARGET\*(C'\fR command in linker scripts, and the \f(CW\*(C`GNUTARGET\*(C'\fR │ │ │ │ │ environment variable. │ │ │ │ │ The GNU linker will ignore the \fB\-F\fR option when not │ │ │ │ │ creating an ELF shared object. │ │ │ │ │ @@ -698,15 +701,15 @@ │ │ │ │ │ .Sp │ │ │ │ │ .Vb 1 │ │ │ │ │ \& Removed property 0xc0000002 to merge foo.o (0x1) and bar.o (not found) │ │ │ │ │ .Ve │ │ │ │ │ .Sp │ │ │ │ │ This indicates that property 0xc0000002 is removed from output when │ │ │ │ │ merging properties in \fIfoo.o\fR, whose property 0xc0000002 value │ │ │ │ │ -is 0x1, and \fIbar.o\fR, which doesn't have property 0xc0000002. │ │ │ │ │ +is 0x1, and \fIbar.o\fR, which doesn\*(Aqt have property 0xc0000002. │ │ │ │ │ .Sp │ │ │ │ │ .Vb 1 │ │ │ │ │ \& Updated property 0xc0010001 (0x1) to merge foo.o (0x1) and bar.o (0x1) │ │ │ │ │ .Ve │ │ │ │ │ .Sp │ │ │ │ │ This indicates that property 0xc0010001 value is updated to 0x1 in output │ │ │ │ │ when merging properties in \fIfoo.o\fR, whose 0xc0010001 property value │ │ │ │ │ @@ -754,24 +757,24 @@ │ │ │ │ │ .IP \fB\-N\fR 4 │ │ │ │ │ .IX Item "-N" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-omagic\fR 4 │ │ │ │ │ .IX Item "--omagic" │ │ │ │ │ .PD │ │ │ │ │ Set the text and data sections to be readable and writable. Also, do │ │ │ │ │ -not page-align the data segment, and disable linking against shared │ │ │ │ │ +not page\-align the data segment, and disable linking against shared │ │ │ │ │ libraries. If the output format supports Unix style magic numbers, │ │ │ │ │ mark the output as \f(CW\*(C`OMAGIC\*(C'\fR. Note: Although a writable text section │ │ │ │ │ -is allowed for PE-COFF targets, it does not conform to the format │ │ │ │ │ +is allowed for PE\-COFF targets, it does not conform to the format │ │ │ │ │ specification published by Microsoft. │ │ │ │ │ .IP \fB\-\-no\-omagic\fR 4 │ │ │ │ │ .IX Item "--no-omagic" │ │ │ │ │ This option negates most of the effects of the \fB\-N\fR option. It │ │ │ │ │ -sets the text section to be read-only, and forces the data segment to │ │ │ │ │ -be page-aligned. Note \- this option does not enable linking against │ │ │ │ │ +sets the text section to be read\-only, and forces the data segment to │ │ │ │ │ +be page\-aligned. Note \- this option does not enable linking against │ │ │ │ │ shared libraries. Use \fB\-Bdynamic\fR for this. │ │ │ │ │ .IP "\fB\-o\fR \fIoutput\fR" 4 │ │ │ │ │ .IX Item "-o output" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-output=\fR\fIoutput\fR 4 │ │ │ │ │ .IX Item "--output=output" │ │ │ │ │ .PD │ │ │ │ │ @@ -800,29 +803,29 @@ │ │ │ │ │ files (the first one in the \fBOBJS\fR list) whereas the second │ │ │ │ │ version of the linker command will generate an error message and not │ │ │ │ │ delete anything. │ │ │ │ │ .IP \fB\-\-dependency\-file=\fR\fIdepfile\fR 4 │ │ │ │ │ .IX Item "--dependency-file=depfile" │ │ │ │ │ Write a \fIdependency file\fR to \fIdepfile\fR. This file contains a rule │ │ │ │ │ suitable for \f(CW\*(C`make\*(C'\fR describing the output file and all the input files │ │ │ │ │ -that were read to produce it. The output is similar to the compiler's │ │ │ │ │ -output with \fB\-M \-MP\fR. Note that there is no option like the compiler's \fB\-MM\fR, │ │ │ │ │ -to exclude "system files" (which is not a well-specified concept in the │ │ │ │ │ +that were read to produce it. The output is similar to the compiler\*(Aqs │ │ │ │ │ +output with \fB\-M \-MP\fR. Note that there is no option like the compiler\*(Aqs \fB\-MM\fR, │ │ │ │ │ +to exclude "system files" (which is not a well\-specified concept in the │ │ │ │ │ linker, unlike "system headers" in the compiler). So the output from │ │ │ │ │ \&\fB\-\-dependency\-file\fR is always specific to the exact state of the │ │ │ │ │ installation where it was produced, and should not be copied into │ │ │ │ │ distributed makefiles without careful editing. │ │ │ │ │ .IP "\fB\-O\fR \fIlevel\fR" 4 │ │ │ │ │ .IX Item "-O level" │ │ │ │ │ If \fIlevel\fR is a numeric values greater than zero \fBld\fR optimizes │ │ │ │ │ the output. This might take significantly longer and therefore probably │ │ │ │ │ should only be enabled for the final binary. At the moment this │ │ │ │ │ option only affects ELF shared library generation. Future releases of │ │ │ │ │ the linker may make more use of this option. Also currently there is │ │ │ │ │ -no difference in the linker's behaviour for different non-zero values │ │ │ │ │ +no difference in the linker\*(Aqs behaviour for different non\-zero values │ │ │ │ │ of this option. Again this may change with future releases. │ │ │ │ │ .IP "\fB\-plugin\fR \fIname\fR" 4 │ │ │ │ │ .IX Item "-plugin name" │ │ │ │ │ Involve a plugin in the linking process. The \fIname\fR parameter is │ │ │ │ │ the absolute filename of the plugin. Usually this parameter is │ │ │ │ │ automatically added by the compiler, when using link time │ │ │ │ │ optimization, but users can also add their own plugins if they so │ │ │ │ │ @@ -844,15 +847,15 @@ │ │ │ │ │ The option which are covered are: \fB\-Bdynamic\fR, \fB\-Bstatic\fR, │ │ │ │ │ \&\fB\-dn\fR, \fB\-dy\fR, \fB\-call_shared\fR, \fB\-non_shared\fR, │ │ │ │ │ \&\fB\-static\fR, \fB\-N\fR, \fB\-n\fR, \fB\-\-whole\-archive\fR, │ │ │ │ │ \&\fB\-\-no\-whole\-archive\fR, \fB\-r\fR, \fB\-Ur\fR, │ │ │ │ │ \&\fB\-\-copy\-dt\-needed\-entries\fR, \fB\-\-no\-copy\-dt\-needed\-entries\fR, │ │ │ │ │ \&\fB\-\-as\-needed\fR, \fB\-\-no\-as\-needed\fR, and \fB\-a\fR. │ │ │ │ │ .Sp │ │ │ │ │ -One target for this option are specifications for \fIpkg-config\fR. When │ │ │ │ │ +One target for this option are specifications for \fIpkg\-config\fR. When │ │ │ │ │ used with the \fB\-\-libs\fR option all possibly needed libraries are │ │ │ │ │ listed and then possibly linked with all the time. It is better to return │ │ │ │ │ something as follows: │ │ │ │ │ .Sp │ │ │ │ │ .Vb 1 │ │ │ │ │ \& \-Wl,\-\-push\-state,\-\-as\-needed \-libone \-libtwo \-Wl,\-\-pop\-state │ │ │ │ │ .Ve │ │ │ │ │ @@ -881,31 +884,31 @@ │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-relocatable\fR 4 │ │ │ │ │ .IX Item "--relocatable" │ │ │ │ │ .PD │ │ │ │ │ Generate relocatable output\-\-\-i.e., generate an output file that can in │ │ │ │ │ turn serve as input to \fBld\fR. This is often called \fIpartial │ │ │ │ │ linking\fR. As a side effect, in environments that support standard Unix │ │ │ │ │ -magic numbers, this option also sets the output file's magic number to │ │ │ │ │ +magic numbers, this option also sets the output file\*(Aqs magic number to │ │ │ │ │ \&\f(CW\*(C`OMAGIC\*(C'\fR. │ │ │ │ │ If this option is not specified, an absolute file is produced. When │ │ │ │ │ linking C++ programs, this option \fIwill not\fR resolve references to │ │ │ │ │ constructors; to do that, use \fB\-Ur\fR. │ │ │ │ │ .Sp │ │ │ │ │ When an input file does not have the same format as the output file, │ │ │ │ │ partial linking is only supported if that input file does not contain any │ │ │ │ │ relocations. Different output formats can have further restrictions; for │ │ │ │ │ example some \f(CW\*(C`a.out\*(C'\fR\-based formats do not support partial linking │ │ │ │ │ with input files in other formats at all. │ │ │ │ │ .Sp │ │ │ │ │ When the relocatable output contains both contents which require │ │ │ │ │ -link-time optimization (LTO) and contents which don't require LTO, │ │ │ │ │ +link\-time optimization (LTO) and contents which don\*(Aqt require LTO, │ │ │ │ │ a .gnu_object_only section will be created to contain a relocatable │ │ │ │ │ object file, as if \fB\-r\fR is applied to all relocatable inputs │ │ │ │ │ -which don't require LTO. When processing a relocatable input with │ │ │ │ │ +which don\*(Aqt require LTO. When processing a relocatable input with │ │ │ │ │ a .gnu_object_only section, the linker will extract the .gnu_object_only │ │ │ │ │ section as a separate input. │ │ │ │ │ .Sp │ │ │ │ │ Note that since \fB\-r\fR groups some sections from different input files │ │ │ │ │ together, there may be negative impacts on code size and locality in │ │ │ │ │ final executable or shared library. │ │ │ │ │ .Sp │ │ │ │ │ @@ -926,20 +929,20 @@ │ │ │ │ │ the \fB\-rpath\fR option. │ │ │ │ │ .IP \fB\-\-rosegment\fR 4 │ │ │ │ │ .IX Item "--rosegment" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-no\-rosegment\fR 4 │ │ │ │ │ .IX Item "--no-rosegment" │ │ │ │ │ .PD │ │ │ │ │ -Attempt to ensure that only a single read-only, non-code segment is │ │ │ │ │ +Attempt to ensure that only a single read\-only, non\-code segment is │ │ │ │ │ created. Only useful when used in conjunction with the \fB\-z │ │ │ │ │ -separate-code\fR option. The resulting binaries should be smaller than │ │ │ │ │ -if \fB\-z separate-code\fR is used on its own. Without this option, │ │ │ │ │ -or if \fB\-\-no\-rosegment\fR is specified, the \fB\-z separate-code\fR │ │ │ │ │ -option will create two read-only segments, one before the code segment │ │ │ │ │ +separate\-code\fR option. The resulting binaries should be smaller than │ │ │ │ │ +if \fB\-z separate\-code\fR is used on its own. Without this option, │ │ │ │ │ +or if \fB\-\-no\-rosegment\fR is specified, the \fB\-z separate\-code\fR │ │ │ │ │ +option will create two read\-only segments, one before the code segment │ │ │ │ │ and one after it. │ │ │ │ │ .Sp │ │ │ │ │ The name of the options are misleading, but they have been chosen in │ │ │ │ │ order for the linker to be compatible with the LLD and GOLD linkers. │ │ │ │ │ .Sp │ │ │ │ │ Thse options are only supported by ELF targets. │ │ │ │ │ .IP \fB\-s\fR 4 │ │ │ │ │ @@ -981,28 +984,28 @@ │ │ │ │ │ .IP "\fB\-T\fR \fIscriptfile\fR" 4 │ │ │ │ │ .IX Item "-T scriptfile" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-script=\fR\fIscriptfile\fR 4 │ │ │ │ │ .IX Item "--script=scriptfile" │ │ │ │ │ .PD │ │ │ │ │ Use \fIscriptfile\fR as the linker script. This script replaces │ │ │ │ │ -\&\fBld\fR's default linker script (rather than adding to it), │ │ │ │ │ +\&\fBld\fR\*(Aqs default linker script (rather than adding to it), │ │ │ │ │ unless the script contains \f(CW\*(C`INSERT\*(C'\fR, so \fIcommandfile\fR must │ │ │ │ │ specify everything necessary to describe the output file. │ │ │ │ │ .Sp │ │ │ │ │ If \fIscriptfile\fR does not exist in the current directory, \f(CW\*(C`ld\*(C'\fR │ │ │ │ │ looks for it in the directories specified by any preceding \fB\-L\fR │ │ │ │ │ options. │ │ │ │ │ .Sp │ │ │ │ │ Command line options that appear before the \fB\-T\fR option can │ │ │ │ │ affect the script, but command line options that appear after it do │ │ │ │ │ not. │ │ │ │ │ .Sp │ │ │ │ │ Multiple \fB\-T\fR options will accumulate if they are augmenting the │ │ │ │ │ -current script, otherwise the last, non-augmenting, \fB\-T\fR option │ │ │ │ │ +current script, otherwise the last, non\-augmenting, \fB\-T\fR option │ │ │ │ │ will be used. │ │ │ │ │ .Sp │ │ │ │ │ There are other ways of specifying linker scripts. See │ │ │ │ │ .IP "\fB\-dT\fR \fIscriptfile\fR" 4 │ │ │ │ │ .IX Item "-dT scriptfile" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-default\-script=\fR\fIscriptfile\fR 4 │ │ │ │ │ @@ -1119,28 +1122,28 @@ │ │ │ │ │ .IP \fB\-X\fR 4 │ │ │ │ │ .IX Item "-X" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-discard\-locals\fR 4 │ │ │ │ │ .IX Item "--discard-locals" │ │ │ │ │ .PD │ │ │ │ │ Delete all temporary local symbols. (These symbols start with │ │ │ │ │ -system-specific local label prefixes, typically \fB.L\fR for ELF systems │ │ │ │ │ +system\-specific local label prefixes, typically \fB.L\fR for ELF systems │ │ │ │ │ or \fBL\fR for traditional a.out systems.) │ │ │ │ │ .IP "\fB\-y\fR \fIsymbol\fR" 4 │ │ │ │ │ .IX Item "-y symbol" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-trace\-symbol=\fR\fIsymbol\fR 4 │ │ │ │ │ .IX Item "--trace-symbol=symbol" │ │ │ │ │ .PD │ │ │ │ │ Print the name of each linked file in which \fIsymbol\fR appears. This │ │ │ │ │ option may be given any number of times. On many systems it is necessary │ │ │ │ │ to prepend an underscore. │ │ │ │ │ .Sp │ │ │ │ │ This option is useful when you have an undefined symbol in your link but │ │ │ │ │ -don't know where the reference is coming from. │ │ │ │ │ +don\*(Aqt know where the reference is coming from. │ │ │ │ │ .IP "\fB\-Y\fR \fIpath\fR" 4 │ │ │ │ │ .IX Item "-Y path" │ │ │ │ │ Add \fIpath\fR to the default library search path. This option exists │ │ │ │ │ for Solaris compatibility. │ │ │ │ │ .IP "\fB\-z\fR \fIkeyword\fR" 4 │ │ │ │ │ .IX Item "-z keyword" │ │ │ │ │ The recognized keywords are: │ │ │ │ │ @@ -1201,26 +1204,26 @@ │ │ │ │ │ .IX Item "common-page-size=value" │ │ │ │ │ Set the page size most commonly used to \fIvalue\fR. Memory image │ │ │ │ │ layout will be optimized to minimize memory pages if the system is │ │ │ │ │ using pages of this size. │ │ │ │ │ .IP \fBdefs\fR 4 │ │ │ │ │ .IX Item "defs" │ │ │ │ │ Report unresolved symbol references from regular object files. This │ │ │ │ │ -is done even if the linker is creating a non-symbolic shared library. │ │ │ │ │ +is done even if the linker is creating a non\-symbolic shared library. │ │ │ │ │ This option is the inverse of \fB\-z undefs\fR. │ │ │ │ │ -.IP \fBdynamic-undefined-weak\fR 4 │ │ │ │ │ +.IP \fBdynamic\-undefined\-weak\fR 4 │ │ │ │ │ .IX Item "dynamic-undefined-weak" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fBnodynamic-undefined-weak\fR 4 │ │ │ │ │ +.IP \fBnodynamic\-undefined\-weak\fR 4 │ │ │ │ │ .IX Item "nodynamic-undefined-weak" │ │ │ │ │ .PD │ │ │ │ │ Make undefined weak symbols dynamic when building a dynamic object, │ │ │ │ │ if they are referenced from a regular object file and not forced local │ │ │ │ │ by symbol visibility or versioning. Do not make them dynamic if │ │ │ │ │ -\&\fBnodynamic-undefined-weak\fR. If neither option is given, a target │ │ │ │ │ +\&\fBnodynamic\-undefined\-weak\fR. If neither option is given, a target │ │ │ │ │ may default to either option being in force, or make some other │ │ │ │ │ selection of undefined weak symbols dynamic. Not all targets support │ │ │ │ │ these options. │ │ │ │ │ .IP \fBexecstack\fR 4 │ │ │ │ │ .IX Item "execstack" │ │ │ │ │ Marks the object as requiring executable stack. │ │ │ │ │ .IP \fBglobal\fR 4 │ │ │ │ │ @@ -1230,38 +1233,38 @@ │ │ │ │ │ of subsequently loaded libraries. │ │ │ │ │ .IP \fBglobalaudit\fR 4 │ │ │ │ │ .IX Item "globalaudit" │ │ │ │ │ This option is only meaningful when building a dynamic executable. │ │ │ │ │ This option marks the executable as requiring global auditing by │ │ │ │ │ setting the \f(CW\*(C`DF_1_GLOBAUDIT\*(C'\fR bit in the \f(CW\*(C`DT_FLAGS_1\*(C'\fR dynamic │ │ │ │ │ tag. Global auditing requires that any auditing library defined via │ │ │ │ │ -the \fB\-\-depaudit\fR or \fB\-P\fR command-line options be run for │ │ │ │ │ +the \fB\-\-depaudit\fR or \fB\-P\fR command\-line options be run for │ │ │ │ │ all dynamic objects loaded by the application. │ │ │ │ │ .IP \fBibtplt\fR 4 │ │ │ │ │ .IX Item "ibtplt" │ │ │ │ │ Generate Intel Indirect Branch Tracking (IBT) enabled PLT entries. │ │ │ │ │ Supported for Linux/i386 and Linux/x86_64. │ │ │ │ │ .IP \fBibt\fR 4 │ │ │ │ │ .IX Item "ibt" │ │ │ │ │ Generate GNU_PROPERTY_X86_FEATURE_1_IBT in .note.gnu.property section │ │ │ │ │ to indicate compatibility with IBT. This also implies \fBibtplt\fR. │ │ │ │ │ Supported for Linux/i386 and Linux/x86_64. │ │ │ │ │ -.IP \fBindirect-extern-access\fR 4 │ │ │ │ │ +.IP \fBindirect\-extern\-access\fR 4 │ │ │ │ │ .IX Item "indirect-extern-access" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fBnoindirect-extern-access\fR 4 │ │ │ │ │ +.IP \fBnoindirect\-extern\-access\fR 4 │ │ │ │ │ .IX Item "noindirect-extern-access" │ │ │ │ │ .PD │ │ │ │ │ Generate GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS in │ │ │ │ │ \&.note.gnu.property section to indicate that object file requires │ │ │ │ │ canonical function pointers and cannot be used with copy relocation. │ │ │ │ │ -This option also implies \fBnoextern-protected-data\fR and │ │ │ │ │ +This option also implies \fBnoextern\-protected\-data\fR and │ │ │ │ │ \&\fBnocopyreloc\fR. Supported for i386 and x86\-64. │ │ │ │ │ .Sp │ │ │ │ │ -\&\fBnoindirect-extern-access\fR removes │ │ │ │ │ +\&\fBnoindirect\-extern\-access\fR removes │ │ │ │ │ GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS from .note.gnu.property │ │ │ │ │ section. │ │ │ │ │ .IP \fBinitfirst\fR 4 │ │ │ │ │ .IX Item "initfirst" │ │ │ │ │ This option is only meaningful when building a shared object. │ │ │ │ │ It marks the object so that its runtime initialization will occur │ │ │ │ │ before the runtime initialization of any other objects brought into │ │ │ │ │ @@ -1346,72 +1349,72 @@ │ │ │ │ │ .IX Item "lazy" │ │ │ │ │ When generating an executable or shared library, mark it to tell the │ │ │ │ │ dynamic linker to defer function call resolution to the point when │ │ │ │ │ the function is called (lazy binding), rather than at load time. │ │ │ │ │ Lazy binding is the default. │ │ │ │ │ .IP \fBloadfltr\fR 4 │ │ │ │ │ .IX Item "loadfltr" │ │ │ │ │ -Specify that the object's filters be processed immediately at runtime. │ │ │ │ │ +Specify that the object\*(Aqs filters be processed immediately at runtime. │ │ │ │ │ .IP \fBmax\-page\-size=\fR\fIvalue\fR 4 │ │ │ │ │ .IX Item "max-page-size=value" │ │ │ │ │ Set the maximum memory page size supported to \fIvalue\fR. │ │ │ │ │ -.IP \fBmark-plt\fR 4 │ │ │ │ │ +.IP \fBmark\-plt\fR 4 │ │ │ │ │ .IX Item "mark-plt" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fBnomark-plt\fR 4 │ │ │ │ │ +.IP \fBnomark\-plt\fR 4 │ │ │ │ │ .IX Item "nomark-plt" │ │ │ │ │ .PD │ │ │ │ │ Mark PLT entries with dynamic tags, DT_X86_64_PLT, DT_X86_64_PLTSZ and │ │ │ │ │ -DT_X86_64_PLTENT. Since this option stores a non-zero value in the │ │ │ │ │ +DT_X86_64_PLTENT. Since this option stores a non\-zero value in the │ │ │ │ │ r_addend field of R_X86_64_JUMP_SLOT relocations, the resulting │ │ │ │ │ executables and shared libraries are incompatible with dynamic linkers, │ │ │ │ │ such as those in older versions of glibc without the change to ignore │ │ │ │ │ r_addend in R_X86_64_GLOB_DAT and R_X86_64_JUMP_SLOT relocations, which │ │ │ │ │ -don't ignore the r_addend field of R_X86_64_JUMP_SLOT relocations. │ │ │ │ │ +don\*(Aqt ignore the r_addend field of R_X86_64_JUMP_SLOT relocations. │ │ │ │ │ Supported for x86_64. │ │ │ │ │ .IP \fBmuldefs\fR 4 │ │ │ │ │ .IX Item "muldefs" │ │ │ │ │ Allow multiple definitions. │ │ │ │ │ .IP \fBnocopyreloc\fR 4 │ │ │ │ │ .IX Item "nocopyreloc" │ │ │ │ │ Disable linker generated .dynbss variables used in place of variables │ │ │ │ │ defined in shared libraries. May result in dynamic text relocations. │ │ │ │ │ .IP \fBnodefaultlib\fR 4 │ │ │ │ │ .IX Item "nodefaultlib" │ │ │ │ │ Specify that the dynamic loader search for dependencies of this object │ │ │ │ │ should ignore any default library search paths. │ │ │ │ │ .IP \fBnodelete\fR 4 │ │ │ │ │ .IX Item "nodelete" │ │ │ │ │ -Specify that the object shouldn't be unloaded at runtime. │ │ │ │ │ +Specify that the object shouldn\*(Aqt be unloaded at runtime. │ │ │ │ │ .IP \fBnodlopen\fR 4 │ │ │ │ │ .IX Item "nodlopen" │ │ │ │ │ Specify that the object is not available to \f(CW\*(C`dlopen\*(C'\fR. │ │ │ │ │ .IP \fBnodump\fR 4 │ │ │ │ │ .IX Item "nodump" │ │ │ │ │ Specify that the object can not be dumped by \f(CW\*(C`dldump\*(C'\fR. │ │ │ │ │ .IP \fBnoexecstack\fR 4 │ │ │ │ │ .IX Item "noexecstack" │ │ │ │ │ Marks the object as not requiring executable stack. │ │ │ │ │ -.IP \fBnoextern-protected-data\fR 4 │ │ │ │ │ +.IP \fBnoextern\-protected\-data\fR 4 │ │ │ │ │ .IX Item "noextern-protected-data" │ │ │ │ │ -Don't treat protected data symbols as external when building a shared │ │ │ │ │ +Don\*(Aqt treat protected data symbols as external when building a shared │ │ │ │ │ library. This option overrides the linker backend default. It can be │ │ │ │ │ used to work around incorrect relocations against protected data symbols │ │ │ │ │ generated by compiler. Updates on protected data symbols by another │ │ │ │ │ -module aren't visible to the resulting shared library. Supported for │ │ │ │ │ +module aren\*(Aqt visible to the resulting shared library. Supported for │ │ │ │ │ i386 and x86\-64. │ │ │ │ │ -.IP \fBnoreloc-overflow\fR 4 │ │ │ │ │ +.IP \fBnoreloc\-overflow\fR 4 │ │ │ │ │ .IX Item "noreloc-overflow" │ │ │ │ │ Disable relocation overflow check. This can be used to disable │ │ │ │ │ relocation overflow check if there will be no dynamic relocation │ │ │ │ │ -overflow at run-time. Supported for x86_64. │ │ │ │ │ -.IP \fBmemory-seal\fR 4 │ │ │ │ │ +overflow at run\-time. Supported for x86_64. │ │ │ │ │ +.IP \fBmemory\-seal\fR 4 │ │ │ │ │ .IX Item "memory-seal" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fBnomemory-seal\fR 4 │ │ │ │ │ +.IP \fBnomemory\-seal\fR 4 │ │ │ │ │ .IX Item "nomemory-seal" │ │ │ │ │ .PD │ │ │ │ │ Instruct the executable or shared library that the all PT_LOAD segments │ │ │ │ │ should be sealed to avoid further manipulation (such as changing the │ │ │ │ │ protection flags, the segment size, or remove the mapping). │ │ │ │ │ This is a security hardening that requires system support. This │ │ │ │ │ generates GNU_PROPERTY_MEMORY_SEAL in .note.gnu.property section │ │ │ │ │ @@ -1421,125 +1424,125 @@ │ │ │ │ │ dynamic linker to resolve all symbols when the program is started, or │ │ │ │ │ when the shared library is loaded by dlopen, instead of deferring │ │ │ │ │ function call resolution to the point when the function is first │ │ │ │ │ called. │ │ │ │ │ .IP \fBorigin\fR 4 │ │ │ │ │ .IX Item "origin" │ │ │ │ │ Specify that the object requires \fR\f(CB$ORIGIN\fR\fB\fR handling in paths. │ │ │ │ │ -.IP \fBpack-relative-relocs\fR 4 │ │ │ │ │ +.IP \fBpack\-relative\-relocs\fR 4 │ │ │ │ │ .IX Item "pack-relative-relocs" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fBnopack-relative-relocs\fR 4 │ │ │ │ │ +.IP \fBnopack\-relative\-relocs\fR 4 │ │ │ │ │ .IX Item "nopack-relative-relocs" │ │ │ │ │ .PD │ │ │ │ │ -Generate compact relative relocation in position-independent executable │ │ │ │ │ +Generate compact relative relocation in position\-independent executable │ │ │ │ │ and shared library. It adds \f(CW\*(C`DT_RELR\*(C'\fR, \f(CW\*(C`DT_RELRSZ\*(C'\fR and │ │ │ │ │ \&\f(CW\*(C`DT_RELRENT\*(C'\fR entries to the dynamic section. It is ignored when │ │ │ │ │ -building position-dependent executable and relocatable output. │ │ │ │ │ -\&\fBnopack-relative-relocs\fR is the default, which disables compact │ │ │ │ │ +building position\-dependent executable and relocatable output. │ │ │ │ │ +\&\fBnopack\-relative\-relocs\fR is the default, which disables compact │ │ │ │ │ relative relocation. When linked against the GNU C Library, a │ │ │ │ │ GLIBC_ABI_DT_RELR symbol version dependency on the shared C Library is │ │ │ │ │ added to the output. Supported for i386 and x86\-64. │ │ │ │ │ .IP \fBrelro\fR 4 │ │ │ │ │ .IX Item "relro" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fBnorelro\fR 4 │ │ │ │ │ .IX Item "norelro" │ │ │ │ │ .PD │ │ │ │ │ Create an ELF \f(CW\*(C`PT_GNU_RELRO\*(C'\fR segment header in the object. This │ │ │ │ │ -specifies a memory segment that should be made read-only after │ │ │ │ │ -relocation, if supported. Specifying \fBcommon-page-size\fR smaller │ │ │ │ │ +specifies a memory segment that should be made read\-only after │ │ │ │ │ +relocation, if supported. Specifying \fBcommon\-page\-size\fR smaller │ │ │ │ │ than the system page size will render this protection ineffective. │ │ │ │ │ -Don't create an ELF \f(CW\*(C`PT_GNU_RELRO\*(C'\fR segment if \fBnorelro\fR. │ │ │ │ │ -.IP \fBreport-relative-reloc\fR 4 │ │ │ │ │ +Don\*(Aqt create an ELF \f(CW\*(C`PT_GNU_RELRO\*(C'\fR segment if \fBnorelro\fR. │ │ │ │ │ +.IP \fBreport\-relative\-reloc\fR 4 │ │ │ │ │ .IX Item "report-relative-reloc" │ │ │ │ │ Report dynamic relative relocations generated by linker. Supported for │ │ │ │ │ Linux/i386 and Linux/x86_64. │ │ │ │ │ .IP \fBsectionheader\fR 4 │ │ │ │ │ .IX Item "sectionheader" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fBnosectionheader\fR 4 │ │ │ │ │ .IX Item "nosectionheader" │ │ │ │ │ .PD │ │ │ │ │ -Generate section header. Don't generate section header if │ │ │ │ │ +Generate section header. Don\*(Aqt generate section header if │ │ │ │ │ \&\fBnosectionheader\fR is used. \fBsectionheader\fR is the default. │ │ │ │ │ -.IP \fBseparate-code\fR 4 │ │ │ │ │ +.IP \fBseparate\-code\fR 4 │ │ │ │ │ .IX Item "separate-code" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fBnoseparate-code\fR 4 │ │ │ │ │ +.IP \fBnoseparate\-code\fR 4 │ │ │ │ │ .IX Item "noseparate-code" │ │ │ │ │ .PD │ │ │ │ │ Create separate code \f(CW\*(C`PT_LOAD\*(C'\fR segment header in the object. This │ │ │ │ │ specifies a memory segment that should contain only instructions and must │ │ │ │ │ -be in wholly disjoint pages from any other data. Don't create separate │ │ │ │ │ -code \f(CW\*(C`PT_LOAD\*(C'\fR segment if \fBnoseparate-code\fR is used. │ │ │ │ │ +be in wholly disjoint pages from any other data. Don\*(Aqt create separate │ │ │ │ │ +code \f(CW\*(C`PT_LOAD\*(C'\fR segment if \fBnoseparate\-code\fR is used. │ │ │ │ │ .IP \fBshstk\fR 4 │ │ │ │ │ .IX Item "shstk" │ │ │ │ │ Generate GNU_PROPERTY_X86_FEATURE_1_SHSTK in .note.gnu.property section │ │ │ │ │ to indicate compatibility with Intel Shadow Stack. Supported for │ │ │ │ │ Linux/i386 and Linux/x86_64. │ │ │ │ │ .IP \fBstack\-size=\fR\fIvalue\fR 4 │ │ │ │ │ .IX Item "stack-size=value" │ │ │ │ │ Specify a stack size for an ELF \f(CW\*(C`PT_GNU_STACK\*(C'\fR segment. │ │ │ │ │ -Specifying zero will override any default non-zero sized │ │ │ │ │ +Specifying zero will override any default non\-zero sized │ │ │ │ │ \&\f(CW\*(C`PT_GNU_STACK\*(C'\fR segment creation. │ │ │ │ │ -.IP \fBstart-stop-gc\fR 4 │ │ │ │ │ +.IP \fBstart\-stop\-gc\fR 4 │ │ │ │ │ .IX Item "start-stop-gc" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fBnostart-stop-gc\fR 4 │ │ │ │ │ +.IP \fBnostart\-stop\-gc\fR 4 │ │ │ │ │ .IX Item "nostart-stop-gc" │ │ │ │ │ .PD │ │ │ │ │ When \fB\-\-gc\-sections\fR is in effect, a reference from a retained │ │ │ │ │ section to \f(CW\*(C`_\|_start_SECNAME\*(C'\fR or \f(CW\*(C`_\|_stop_SECNAME\*(C'\fR causes all │ │ │ │ │ input sections named \f(CW\*(C`SECNAME\*(C'\fR to also be retained, if │ │ │ │ │ \&\f(CW\*(C`SECNAME\*(C'\fR is representable as a C identifier and either │ │ │ │ │ \&\f(CW\*(C`_\|_start_SECNAME\*(C'\fR or \f(CW\*(C`_\|_stop_SECNAME\*(C'\fR is synthesized by the │ │ │ │ │ -linker. \fB\-z start-stop-gc\fR disables this effect, allowing │ │ │ │ │ +linker. \fB\-z start\-stop\-gc\fR disables this effect, allowing │ │ │ │ │ sections to be garbage collected as if the special synthesized symbols │ │ │ │ │ -were not defined. \fB\-z start-stop-gc\fR has no effect on a │ │ │ │ │ +were not defined. \fB\-z start\-stop\-gc\fR has no effect on a │ │ │ │ │ definition of \f(CW\*(C`_\|_start_SECNAME\*(C'\fR or \f(CW\*(C`_\|_stop_SECNAME\*(C'\fR in an │ │ │ │ │ object file or linker script. Such a definition will prevent the │ │ │ │ │ linker providing a synthesized \f(CW\*(C`_\|_start_SECNAME\*(C'\fR or │ │ │ │ │ \&\f(CW\*(C`_\|_stop_SECNAME\*(C'\fR respectively, and therefore the special │ │ │ │ │ treatment by garbage collection for those references. │ │ │ │ │ .IP \fBstart\-stop\-visibility=\fR\fIvalue\fR 4 │ │ │ │ │ .IX Item "start-stop-visibility=value" │ │ │ │ │ Specify the ELF symbol visibility for synthesized │ │ │ │ │ \&\f(CW\*(C`_\|_start_SECNAME\*(C'\fR and \f(CW\*(C`_\|_stop_SECNAME\*(C'\fR symbols. \fIvalue\fR must be exactly \fBdefault\fR, │ │ │ │ │ \&\fBinternal\fR, \fBhidden\fR, or \fBprotected\fR. If no \fB\-z │ │ │ │ │ -start-stop-visibility\fR option is given, \fBprotected\fR is used for │ │ │ │ │ -compatibility with historical practice. However, it's highly │ │ │ │ │ +start\-stop\-visibility\fR option is given, \fBprotected\fR is used for │ │ │ │ │ +compatibility with historical practice. However, it\*(Aqs highly │ │ │ │ │ recommended to use \fB\-z start\-stop\-visibility=hidden\fR in new │ │ │ │ │ programs and shared libraries so that these symbols are not exported │ │ │ │ │ -between shared objects, which is not usually what's intended. │ │ │ │ │ +between shared objects, which is not usually what\*(Aqs intended. │ │ │ │ │ .IP \fBtext\fR 4 │ │ │ │ │ .IX Item "text" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fBnotext\fR 4 │ │ │ │ │ .IX Item "notext" │ │ │ │ │ .IP \fBtextoff\fR 4 │ │ │ │ │ .IX Item "textoff" │ │ │ │ │ .PD │ │ │ │ │ -Report an error if DT_TEXTREL is set, i.e., if the position-independent │ │ │ │ │ -or shared object has dynamic relocations in read-only sections. Don't │ │ │ │ │ +Report an error if DT_TEXTREL is set, i.e., if the position\-independent │ │ │ │ │ +or shared object has dynamic relocations in read\-only sections. Don\*(Aqt │ │ │ │ │ report an error if \fBnotext\fR or \fBtextoff\fR. │ │ │ │ │ .IP \fBundefs\fR 4 │ │ │ │ │ .IX Item "undefs" │ │ │ │ │ Do not report unresolved symbol references from regular object files, │ │ │ │ │ either when creating an executable, or when creating a shared library. │ │ │ │ │ This option is the inverse of \fB\-z defs\fR. │ │ │ │ │ -.IP \fBunique-symbol\fR 4 │ │ │ │ │ +.IP \fBunique\-symbol\fR 4 │ │ │ │ │ .IX Item "unique-symbol" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fBnounique-symbol\fR 4 │ │ │ │ │ +.IP \fBnounique\-symbol\fR 4 │ │ │ │ │ .IX Item "nounique-symbol" │ │ │ │ │ .PD │ │ │ │ │ Avoid duplicated local symbol names in the symbol string table. Append │ │ │ │ │ -".\f(CW\*(C`number\*(C'\fR" to duplicated local symbol names if \fBunique-symbol\fR │ │ │ │ │ -is used. \fBnounique-symbol\fR is the default. │ │ │ │ │ +".\f(CW\*(C`number\*(C'\fR" to duplicated local symbol names if \fBunique\-symbol\fR │ │ │ │ │ +is used. \fBnounique\-symbol\fR is the default. │ │ │ │ │ .IP \fBx86\-64\-baseline\fR 4 │ │ │ │ │ .IX Item "x86-64-baseline" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fBx86\-64\-v2\fR 4 │ │ │ │ │ .IX Item "x86-64-v2" │ │ │ │ │ .IP \fBx86\-64\-v3\fR 4 │ │ │ │ │ .IX Item "x86-64-v3" │ │ │ │ │ @@ -1619,17 +1622,17 @@ │ │ │ │ │ .PD │ │ │ │ │ This option affects ELF DT_NEEDED tags for dynamic libraries mentioned │ │ │ │ │ on the command line after the \fB\-\-as\-needed\fR option. Normally │ │ │ │ │ the linker will add a DT_NEEDED tag for each dynamic library mentioned │ │ │ │ │ on the command line, regardless of whether the library is actually │ │ │ │ │ needed or not. \fB\-\-as\-needed\fR causes a DT_NEEDED tag to only be │ │ │ │ │ emitted for a library that \fIat that point in the link\fR satisfies a │ │ │ │ │ -non-weak undefined symbol reference from a regular object file or, if │ │ │ │ │ +non\-weak undefined symbol reference from a regular object file or, if │ │ │ │ │ the library is not found in the DT_NEEDED lists of other needed libraries, a │ │ │ │ │ -non-weak undefined symbol reference from another needed dynamic library. │ │ │ │ │ +non\-weak undefined symbol reference from another needed dynamic library. │ │ │ │ │ Object files or libraries appearing on the command line \fIafter\fR │ │ │ │ │ the library in question do not affect whether the library is seen as │ │ │ │ │ needed. This is similar to the rules for extraction of object files │ │ │ │ │ from archives. \fB\-\-no\-as\-needed\fR restores the default behaviour. │ │ │ │ │ .Sp │ │ │ │ │ Note: On Linux based systems the \fB\-\-as\-needed\fR option also has │ │ │ │ │ an affect on the behaviour of the \fB\-\-rpath\fR and │ │ │ │ │ @@ -1682,15 +1685,15 @@ │ │ │ │ │ Do not link against shared libraries. This is only meaningful on │ │ │ │ │ platforms for which shared libraries are supported. The different │ │ │ │ │ variants of this option are for compatibility with various systems. You │ │ │ │ │ may use this option multiple times on the command line: it affects │ │ │ │ │ library searching for \fB\-l\fR options which follow it. This │ │ │ │ │ option also implies \fB\-\-unresolved\-symbols=report\-all\fR. This │ │ │ │ │ option can be used with \fB\-shared\fR. Doing so means that a │ │ │ │ │ -shared library is being created but that all of the library's external │ │ │ │ │ +shared library is being created but that all of the library\*(Aqs external │ │ │ │ │ references must be resolved by pulling in entries from static │ │ │ │ │ libraries. │ │ │ │ │ .IP \fB\-Bsymbolic\fR 4 │ │ │ │ │ .IX Item "-Bsymbolic" │ │ │ │ │ When creating a shared library, bind references to global symbols to the │ │ │ │ │ definition within the shared library, if any. Normally, it is possible │ │ │ │ │ for a program linked against a shared library to override the definition │ │ │ │ │ @@ -1702,19 +1705,19 @@ │ │ │ │ │ symbols to the definition within the shared library, if any. │ │ │ │ │ This option is only meaningful on ELF platforms which support shared │ │ │ │ │ libraries. │ │ │ │ │ .IP \fB\-Bno\-symbolic\fR 4 │ │ │ │ │ .IX Item "-Bno-symbolic" │ │ │ │ │ This option can cancel previously specified \fB\-Bsymbolic\fR and │ │ │ │ │ \&\fB\-Bsymbolic\-functions\fR. │ │ │ │ │ -.IP \fB\-\-dynamic\-list=\fR\fIdynamic-list-file\fR 4 │ │ │ │ │ +.IP \fB\-\-dynamic\-list=\fR\fIdynamic\-list\-file\fR 4 │ │ │ │ │ .IX Item "--dynamic-list=dynamic-list-file" │ │ │ │ │ Specify the name of a dynamic list file to the linker. This is │ │ │ │ │ typically used when creating shared libraries to specify a list of │ │ │ │ │ -global symbols whose references shouldn't be bound to the definition │ │ │ │ │ +global symbols whose references shouldn\*(Aqt be bound to the definition │ │ │ │ │ within the shared library, or creating dynamically linked executables │ │ │ │ │ to specify a list of symbols which should be added to the symbol table │ │ │ │ │ in the executable. This option is only meaningful on ELF platforms │ │ │ │ │ which support shared libraries. │ │ │ │ │ .Sp │ │ │ │ │ The format of the dynamic list is the same as the version node without │ │ │ │ │ scope and node name. See \fBVERSION\fR for more information. │ │ │ │ │ @@ -1735,27 +1738,27 @@ │ │ │ │ │ .IX Item "--no-check-sections" │ │ │ │ │ .PD │ │ │ │ │ Asks the linker \fInot\fR to check section addresses after they have │ │ │ │ │ been assigned to see if there are any overlaps. Normally the linker will │ │ │ │ │ perform this check, and if it finds any overlaps it will produce │ │ │ │ │ suitable error messages. The linker does know about, and does make │ │ │ │ │ allowances for sections in overlays. The default behaviour can be │ │ │ │ │ -restored by using the command-line switch \fB\-\-check\-sections\fR. │ │ │ │ │ +restored by using the command\-line switch \fB\-\-check\-sections\fR. │ │ │ │ │ Section overlap is not usually checked for relocatable links. You can │ │ │ │ │ force checking in that case by using the \fB\-\-check\-sections\fR │ │ │ │ │ option. │ │ │ │ │ .IP \fB\-\-copy\-dt\-needed\-entries\fR 4 │ │ │ │ │ .IX Item "--copy-dt-needed-entries" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-no\-copy\-dt\-needed\-entries\fR 4 │ │ │ │ │ .IX Item "--no-copy-dt-needed-entries" │ │ │ │ │ .PD │ │ │ │ │ This option affects the treatment of dynamic libraries referred to │ │ │ │ │ by DT_NEEDED tags \fIinside\fR ELF dynamic libraries mentioned on the │ │ │ │ │ -command line. Normally the linker won't add a DT_NEEDED tag to the │ │ │ │ │ +command line. Normally the linker won\*(Aqt add a DT_NEEDED tag to the │ │ │ │ │ output binary for each library mentioned in a DT_NEEDED tag in an │ │ │ │ │ input dynamic library. With \fB\-\-copy\-dt\-needed\-entries\fR │ │ │ │ │ specified on the command line however any dynamic libraries that │ │ │ │ │ follow it will have their DT_NEEDED entries added. The default │ │ │ │ │ behaviour can be restored with \fB\-\-no\-copy\-dt\-needed\-entries\fR. │ │ │ │ │ .Sp │ │ │ │ │ This option also has an effect on the resolution of symbols in dynamic │ │ │ │ │ @@ -1792,39 +1795,39 @@ │ │ │ │ │ usually wasted: the types are usually small but the names are often not. │ │ │ │ │ \&\fB\-\-ctf\-variables\fR causes the generation of such a section. │ │ │ │ │ The default behaviour can be restored with \fB\-\-no\-ctf\-variables\fR. │ │ │ │ │ .IP \fB\-\-ctf\-share\-types=\fR\fImethod\fR 4 │ │ │ │ │ .IX Item "--ctf-share-types=method" │ │ │ │ │ Adjust the method used to share types between translation units in CTF. │ │ │ │ │ .RS 4 │ │ │ │ │ -.IP \fBshare-unconflicted\fR 4 │ │ │ │ │ +.IP \fBshare\-unconflicted\fR 4 │ │ │ │ │ .IX Item "share-unconflicted" │ │ │ │ │ Put all types that do not have ambiguous definitions into the shared dictionary, │ │ │ │ │ where debuggers can easily access them, even if they only occur in one │ │ │ │ │ translation unit. This is the default. │ │ │ │ │ -.IP \fBshare-duplicated\fR 4 │ │ │ │ │ +.IP \fBshare\-duplicated\fR 4 │ │ │ │ │ .IX Item "share-duplicated" │ │ │ │ │ Put only types that occur in multiple translation units into the shared │ │ │ │ │ -dictionary: types with only one definition go into per-translation-unit │ │ │ │ │ +dictionary: types with only one definition go into per\-translation\-unit │ │ │ │ │ dictionaries. Types with ambiguous definitions in multiple translation units │ │ │ │ │ -always go into per-translation-unit dictionaries. This tends to make the CTF │ │ │ │ │ +always go into per\-translation\-unit dictionaries. This tends to make the CTF │ │ │ │ │ larger, but may reduce the amount of CTF in the shared dictionary. For very │ │ │ │ │ large projects this may speed up opening the CTF and save memory in the CTF │ │ │ │ │ consumer at runtime. │ │ │ │ │ .RE │ │ │ │ │ .RS 4 │ │ │ │ │ .RE │ │ │ │ │ .IP \fB\-\-no\-define\-common\fR 4 │ │ │ │ │ .IX Item "--no-define-common" │ │ │ │ │ This option inhibits the assignment of addresses to common symbols. │ │ │ │ │ The script command \f(CW\*(C`INHIBIT_COMMON_ALLOCATION\*(C'\fR has the same effect. │ │ │ │ │ .Sp │ │ │ │ │ The \fB\-\-no\-define\-common\fR option allows decoupling │ │ │ │ │ the decision to assign addresses to Common symbols from the choice │ │ │ │ │ -of the output file type; otherwise a non-Relocatable output type │ │ │ │ │ +of the output file type; otherwise a non\-Relocatable output type │ │ │ │ │ forces assigning addresses to Common symbols. │ │ │ │ │ Using \fB\-\-no\-define\-common\fR allows Common symbols that are referenced │ │ │ │ │ from a shared library to be assigned addresses only in the main program. │ │ │ │ │ This eliminates the unused duplicate space in the shared library, │ │ │ │ │ and also prevents any possible confusion over resolving to the wrong │ │ │ │ │ duplicate when there are many dynamic modules with specialized search │ │ │ │ │ paths for runtime symbol resolution. │ │ │ │ │ @@ -1876,26 +1879,26 @@ │ │ │ │ │ .IX Item "-Ifile" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-dynamic\-linker=\fR\fIfile\fR 4 │ │ │ │ │ .IX Item "--dynamic-linker=file" │ │ │ │ │ .PD │ │ │ │ │ Set the name of the dynamic linker. This is only meaningful when │ │ │ │ │ generating dynamically linked ELF executables. The default dynamic │ │ │ │ │ -linker is normally correct; don't use this unless you know what you are │ │ │ │ │ +linker is normally correct; don\*(Aqt use this unless you know what you are │ │ │ │ │ doing. │ │ │ │ │ .IP \fB\-\-no\-dynamic\-linker\fR 4 │ │ │ │ │ .IX Item "--no-dynamic-linker" │ │ │ │ │ When producing an executable file, omit the request for a dynamic │ │ │ │ │ -linker to be used at load-time. This is only meaningful for ELF │ │ │ │ │ +linker to be used at load\-time. This is only meaningful for ELF │ │ │ │ │ executables that contain dynamic relocations, and usually requires │ │ │ │ │ entry point code that is capable of processing these relocations. │ │ │ │ │ .IP \fB\-\-embedded\-relocs\fR 4 │ │ │ │ │ .IX Item "--embedded-relocs" │ │ │ │ │ This option is similar to the \fB\-\-emit\-relocs\fR option except │ │ │ │ │ -that the relocs are stored in a target-specific section. This option │ │ │ │ │ +that the relocs are stored in a target\-specific section. This option │ │ │ │ │ is only supported by the \fBBFIN\fR, \fBCR16\fR and \fIM68K\fR │ │ │ │ │ targets. │ │ │ │ │ .IP \fB\-\-disable\-multiple\-abs\-defs\fR 4 │ │ │ │ │ .IX Item "--disable-multiple-abs-defs" │ │ │ │ │ Do not allow multiple definitions with symbols included │ │ │ │ │ in filename invoked by \-R or \-\-just\-symbols │ │ │ │ │ .IP \fB\-\-fatal\-warnings\fR 4 │ │ │ │ │ @@ -1920,15 +1923,15 @@ │ │ │ │ │ .IX Item "--force-exe-suffix" │ │ │ │ │ Make sure that an output file has a .exe suffix. │ │ │ │ │ .Sp │ │ │ │ │ If a successfully built fully linked output file does not have a │ │ │ │ │ \&\f(CW\*(C`.exe\*(C'\fR or \f(CW\*(C`.dll\*(C'\fR suffix, this option forces the linker to copy │ │ │ │ │ the output file to one of the same name with a \f(CW\*(C`.exe\*(C'\fR suffix. This │ │ │ │ │ option is useful when using unmodified Unix makefiles on a Microsoft │ │ │ │ │ -Windows host, since some versions of Windows won't run an image unless │ │ │ │ │ +Windows host, since some versions of Windows won\*(Aqt run an image unless │ │ │ │ │ it ends in a \f(CW\*(C`.exe\*(C'\fR suffix. │ │ │ │ │ .IP \fB\-\-gc\-sections\fR 4 │ │ │ │ │ .IX Item "--gc-sections" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-no\-gc\-sections\fR 4 │ │ │ │ │ .IX Item "--no-gc-sections" │ │ │ │ │ .PD │ │ │ │ │ @@ -1938,15 +1941,15 @@ │ │ │ │ │ \&\fB\-\-no\-gc\-sections\fR on the command line. Note that garbage │ │ │ │ │ collection for COFF and PE format targets is supported, but the │ │ │ │ │ implementation is currently considered to be experimental. │ │ │ │ │ .Sp │ │ │ │ │ \&\fB\-\-gc\-sections\fR decides which input sections are used by │ │ │ │ │ examining symbols and relocations. The section containing the entry │ │ │ │ │ symbol and all sections containing symbols undefined on the │ │ │ │ │ -command-line will be kept, as will sections containing symbols │ │ │ │ │ +command\-line will be kept, as will sections containing symbols │ │ │ │ │ referenced by dynamic objects. Note that when building shared │ │ │ │ │ libraries, the linker must assume that any visible symbol is │ │ │ │ │ referenced. Once this initial set of sections has been determined, │ │ │ │ │ the linker recursively marks as used any section referenced by their │ │ │ │ │ relocations. See \fB\-\-entry\fR, \fB\-\-undefined\fR, and │ │ │ │ │ \&\fB\-\-gc\-keep\-exported\fR. │ │ │ │ │ .Sp │ │ │ │ │ @@ -1979,15 +1982,15 @@ │ │ │ │ │ collected regardless of the external visibility of contained symbols. │ │ │ │ │ Note that this option has no effect when linking shared objects since │ │ │ │ │ it is already the default behaviour. This option is only supported for │ │ │ │ │ ELF format targets. │ │ │ │ │ .IP \fB\-\-print\-output\-format\fR 4 │ │ │ │ │ .IX Item "--print-output-format" │ │ │ │ │ Print the name of the default output format (perhaps influenced by │ │ │ │ │ -other command-line options). This is the string that would appear │ │ │ │ │ +other command\-line options). This is the string that would appear │ │ │ │ │ in an \f(CW\*(C`OUTPUT_FORMAT\*(C'\fR linker script command. │ │ │ │ │ .IP \fB\-\-print\-memory\-usage\fR 4 │ │ │ │ │ .IX Item "--print-memory-usage" │ │ │ │ │ Print used size, total size and used size of memory regions created with │ │ │ │ │ the \fBMEMORY\fR command. This is useful on embedded targets to have a │ │ │ │ │ quick view of amount of free memory. The format of the output has one │ │ │ │ │ headline and one line per region. It is both human readable and easily │ │ │ │ │ @@ -1996,18 +1999,18 @@ │ │ │ │ │ .Vb 3 │ │ │ │ │ \& Memory region Used Size Region Size %age Used │ │ │ │ │ \& ROM: 256 KB 1 MB 25.00% │ │ │ │ │ \& RAM: 32 B 2 GB 0.00% │ │ │ │ │ .Ve │ │ │ │ │ .IP \fB\-\-help\fR 4 │ │ │ │ │ .IX Item "--help" │ │ │ │ │ -Print a summary of the command-line options on the standard output and exit. │ │ │ │ │ +Print a summary of the command\-line options on the standard output and exit. │ │ │ │ │ .IP \fB\-\-target\-help\fR 4 │ │ │ │ │ .IX Item "--target-help" │ │ │ │ │ -Print a summary of all target-specific options on the standard output and exit. │ │ │ │ │ +Print a summary of all target\-specific options on the standard output and exit. │ │ │ │ │ .IP \fB\-Map=\fR\fImapfile\fR 4 │ │ │ │ │ .IX Item "-Map=mapfile" │ │ │ │ │ Print a link map to the file \fImapfile\fR. See the description of the │ │ │ │ │ \&\fB\-M\fR option, above. If \fImapfile\fR is just the character │ │ │ │ │ \&\f(CW\*(C`\-\*(C'\fR then the map will be written to stdout. │ │ │ │ │ .Sp │ │ │ │ │ Specifying a directory as \fImapfile\fR causes the linker map to be │ │ │ │ │ @@ -2045,15 +2048,15 @@ │ │ │ │ │ .IP \fB\-\-no\-undefined\fR 4 │ │ │ │ │ .IX Item "--no-undefined" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP "\fB\-z defs\fR" 4 │ │ │ │ │ .IX Item "-z defs" │ │ │ │ │ .PD │ │ │ │ │ Report unresolved symbol references from regular object files. This │ │ │ │ │ -is done even if the linker is creating a non-symbolic shared library. │ │ │ │ │ +is done even if the linker is creating a non\-symbolic shared library. │ │ │ │ │ The switch \fB\-\-[no\-]allow\-shlib\-undefined\fR controls the │ │ │ │ │ behaviour for reporting unresolved references found in shared │ │ │ │ │ libraries being linked in. │ │ │ │ │ .Sp │ │ │ │ │ The effects of this option can be reverted by using \f(CW\*(C`\-z undefs\*(C'\fR. │ │ │ │ │ .IP \fB\-\-allow\-multiple\-definition\fR 4 │ │ │ │ │ .IX Item "--allow-multiple-definition" │ │ │ │ │ @@ -2101,15 +2104,15 @@ │ │ │ │ │ .RE │ │ │ │ │ .IP \fB\-\-error\-handling\-script=\fR\fIscriptname\fR 4 │ │ │ │ │ .IX Item "--error-handling-script=scriptname" │ │ │ │ │ If this option is provided then the linker will invoke │ │ │ │ │ \&\fIscriptname\fR whenever an error is encountered. Currently however │ │ │ │ │ only two kinds of error are supported: missing symbols and missing │ │ │ │ │ libraries. Two arguments will be passed to script: the keyword │ │ │ │ │ -"undefined-symbol" or `missing\-lib" and the \fIname\fR of the │ │ │ │ │ +"undefined\-symbol" or \`missing\-lib" and the \fIname\fR of the │ │ │ │ │ undefined symbol or missing library. The intention is that the script │ │ │ │ │ will provide suggestions to the user as to where the symbol or library │ │ │ │ │ might be found. After the script has finished then the normal linker │ │ │ │ │ error message will be displayed. │ │ │ │ │ .Sp │ │ │ │ │ The availability of this option is controlled by a configure time │ │ │ │ │ switch, so it may not be present in specific implementations. │ │ │ │ │ @@ -2150,23 +2153,23 @@ │ │ │ │ │ errors during the link process; it exits without writing an output file │ │ │ │ │ when it issues any error whatsoever. │ │ │ │ │ .IP \fB\-nostdlib\fR 4 │ │ │ │ │ .IX Item "-nostdlib" │ │ │ │ │ Only search library directories explicitly specified on the │ │ │ │ │ command line. Library directories specified in linker scripts │ │ │ │ │ (including linker scripts specified on the command line) are ignored. │ │ │ │ │ -.IP \fB\-\-oformat=\fR\fIoutput-format\fR 4 │ │ │ │ │ +.IP \fB\-\-oformat=\fR\fIoutput\-format\fR 4 │ │ │ │ │ .IX Item "--oformat=output-format" │ │ │ │ │ \&\fBld\fR may be configured to support more than one kind of object │ │ │ │ │ file. If your \fBld\fR is configured this way, you can use the │ │ │ │ │ \&\fB\-\-oformat\fR option to specify the binary format for the output │ │ │ │ │ object file. Even when \fBld\fR is configured to support alternative │ │ │ │ │ -object formats, you don't usually need to specify this, as \fBld\fR │ │ │ │ │ +object formats, you don\*(Aqt usually need to specify this, as \fBld\fR │ │ │ │ │ should be configured to produce as a default output format the most │ │ │ │ │ -usual format on each machine. \fIoutput-format\fR is a text string, the │ │ │ │ │ +usual format on each machine. \fIoutput\-format\fR is a text string, the │ │ │ │ │ name of a particular format supported by the BFD libraries. (You can │ │ │ │ │ list the available binary formats with \fBobjdump \-i\fR.) The script │ │ │ │ │ command \f(CW\*(C`OUTPUT_FORMAT\*(C'\fR can also specify the output format, but │ │ │ │ │ this option overrides it. │ │ │ │ │ .IP "\fB\-\-out\-implib\fR \fIfile\fR" 4 │ │ │ │ │ .IX Item "--out-implib file" │ │ │ │ │ Create an import library in \fIfile\fR corresponding to the executable │ │ │ │ │ @@ -2226,15 +2229,15 @@ │ │ │ │ │ .IP \fB\-\-retain\-symbols\-file=\fR\fIfilename\fR 4 │ │ │ │ │ .IX Item "--retain-symbols-file=filename" │ │ │ │ │ Retain \fIonly\fR the symbols listed in the file \fIfilename\fR, │ │ │ │ │ discarding all others. \fIfilename\fR is simply a flat file, with one │ │ │ │ │ symbol name per line. This option is especially useful in environments │ │ │ │ │ (such as VxWorks) │ │ │ │ │ where a large global symbol table is accumulated gradually, to conserve │ │ │ │ │ -run-time memory. │ │ │ │ │ +run\-time memory. │ │ │ │ │ .Sp │ │ │ │ │ \&\fB\-\-retain\-symbols\-file\fR does \fInot\fR discard undefined symbols, │ │ │ │ │ or symbols needed for relocations. │ │ │ │ │ .Sp │ │ │ │ │ You may only specify \fB\-\-retain\-symbols\-file\fR once in the command │ │ │ │ │ line. It overrides \fB\-s\fR and \fB\-S\fR. │ │ │ │ │ .IP \fB\-rpath=\fR\fIdir\fR 4 │ │ │ │ │ @@ -2267,16 +2270,16 @@ │ │ │ │ │ the \fB\-rpath\fR option. │ │ │ │ │ .IP \fB\-rpath\-link=\fR\fIdir\fR 4 │ │ │ │ │ .IX Item "-rpath-link=dir" │ │ │ │ │ When using ELF or SunOS, one shared library may require another. This │ │ │ │ │ happens when an \f(CW\*(C`ld \-shared\*(C'\fR link includes a shared library as one │ │ │ │ │ of the input files. │ │ │ │ │ .Sp │ │ │ │ │ -When the linker encounters such a dependency when doing a non-shared, │ │ │ │ │ -non-relocatable link, it will automatically try to locate the required │ │ │ │ │ +When the linker encounters such a dependency when doing a non\-shared, │ │ │ │ │ +non\-relocatable link, it will automatically try to locate the required │ │ │ │ │ shared library and include it in the link, if it is not included │ │ │ │ │ explicitly. In such a case, several directories are searched as │ │ │ │ │ described below. The \fB\-rpath\-link\fR option specifies the first │ │ │ │ │ set of directories to search. This option may specify a sequence of │ │ │ │ │ directory names either by providing a list of names separated by │ │ │ │ │ colons, or by appearing multiple times. │ │ │ │ │ .Sp │ │ │ │ │ @@ -2424,16 +2427,16 @@ │ │ │ │ │ .IP \fB\-\-sort\-common=ascending\fR 4 │ │ │ │ │ .IX Item "--sort-common=ascending" │ │ │ │ │ .IP \fB\-\-sort\-common=descending\fR 4 │ │ │ │ │ .IX Item "--sort-common=descending" │ │ │ │ │ .PD │ │ │ │ │ This option tells \fBld\fR to sort the common symbols by alignment in │ │ │ │ │ ascending or descending order when it places them in the appropriate output │ │ │ │ │ -sections. The symbol alignments considered are sixteen-byte or larger, │ │ │ │ │ -eight-byte, four-byte, two-byte, and one-byte. This is to prevent gaps │ │ │ │ │ +sections. The symbol alignments considered are sixteen\-byte or larger, │ │ │ │ │ +eight\-byte, four\-byte, two\-byte, and one\-byte. This is to prevent gaps │ │ │ │ │ between symbols due to alignment constraints. If no sorting order is │ │ │ │ │ specified, then descending order is assumed. │ │ │ │ │ .IP \fB\-\-sort\-section=name\fR 4 │ │ │ │ │ .IX Item "--sort-section=name" │ │ │ │ │ This option will apply \f(CW\*(C`SORT_BY_NAME\*(C'\fR to all wildcard section │ │ │ │ │ patterns in the linker script. │ │ │ │ │ .IP \fB\-\-sort\-section=alignment\fR 4 │ │ │ │ │ @@ -2465,19 +2468,19 @@ │ │ │ │ │ .IP \fB\-\-stats\fR 4 │ │ │ │ │ .IX Item "--stats" │ │ │ │ │ Compute and display statistics about the operation of the linker, such │ │ │ │ │ as execution time and memory usage. │ │ │ │ │ .IP \fB\-\-sysroot=\fR\fIdirectory\fR 4 │ │ │ │ │ .IX Item "--sysroot=directory" │ │ │ │ │ Use \fIdirectory\fR as the location of the sysroot, overriding the │ │ │ │ │ -configure-time default. This option is only supported by linkers │ │ │ │ │ +configure\-time default. This option is only supported by linkers │ │ │ │ │ that were configured using \fB\-\-with\-sysroot\fR. │ │ │ │ │ .IP \fB\-\-task\-link\fR 4 │ │ │ │ │ .IX Item "--task-link" │ │ │ │ │ -This is used by COFF/PE based targets to create a task-linked object │ │ │ │ │ +This is used by COFF/PE based targets to create a task\-linked object │ │ │ │ │ file where all of the global symbols have been converted to statics. │ │ │ │ │ .IP \fB\-\-traditional\-format\fR 4 │ │ │ │ │ .IX Item "--traditional-format" │ │ │ │ │ For some targets, the output of \fBld\fR is different in some ways from │ │ │ │ │ the output of some existing linker. This switch requests \fBld\fR to │ │ │ │ │ use the traditional format instead. │ │ │ │ │ .Sp │ │ │ │ │ @@ -2525,41 +2528,41 @@ │ │ │ │ │ byte of the first segment. Note that when \fB\-pie\fR is used with │ │ │ │ │ \&\fB\-Ttext\-segment=\fR\fIorg\fR, the output executable is marked │ │ │ │ │ ET_EXEC so that the address of the first byte of the text segment will │ │ │ │ │ be guaranteed to be \fIorg\fR at run time. │ │ │ │ │ .IP \fB\-Trodata\-segment=\fR\fIorg\fR 4 │ │ │ │ │ .IX Item "-Trodata-segment=org" │ │ │ │ │ When creating an ELF executable or shared object for a target where │ │ │ │ │ -the read-only data is in its own segment separate from the executable │ │ │ │ │ -text, it will set the address of the first byte of the read-only data segment. │ │ │ │ │ +the read\-only data is in its own segment separate from the executable │ │ │ │ │ +text, it will set the address of the first byte of the read\-only data segment. │ │ │ │ │ .IP \fB\-Tldata\-segment=\fR\fIorg\fR 4 │ │ │ │ │ .IX Item "-Tldata-segment=org" │ │ │ │ │ When creating an ELF executable or shared object for x86\-64 medium memory │ │ │ │ │ model, it will set the address of the first byte of the ldata segment. │ │ │ │ │ .IP \fB\-\-unresolved\-symbols=\fR\fImethod\fR 4 │ │ │ │ │ .IX Item "--unresolved-symbols=method" │ │ │ │ │ Determine how to handle unresolved symbols. There are four possible │ │ │ │ │ values for \fBmethod\fR: │ │ │ │ │ .RS 4 │ │ │ │ │ -.IP \fBignore-all\fR 4 │ │ │ │ │ +.IP \fBignore\-all\fR 4 │ │ │ │ │ .IX Item "ignore-all" │ │ │ │ │ Do not report any unresolved symbols. │ │ │ │ │ -.IP \fBreport-all\fR 4 │ │ │ │ │ +.IP \fBreport\-all\fR 4 │ │ │ │ │ .IX Item "report-all" │ │ │ │ │ Report all unresolved symbols. This is the default. │ │ │ │ │ -.IP \fBignore-in-object-files\fR 4 │ │ │ │ │ +.IP \fBignore\-in\-object\-files\fR 4 │ │ │ │ │ .IX Item "ignore-in-object-files" │ │ │ │ │ Report unresolved symbols that are contained in shared libraries, but │ │ │ │ │ ignore them if they come from regular object files. │ │ │ │ │ -.IP \fBignore-in-shared-libs\fR 4 │ │ │ │ │ +.IP \fBignore\-in\-shared\-libs\fR 4 │ │ │ │ │ .IX Item "ignore-in-shared-libs" │ │ │ │ │ Report unresolved symbols that come from regular object files, but │ │ │ │ │ ignore them if they come from shared libraries. This can be useful │ │ │ │ │ when creating a dynamic binary and it is known that all the shared │ │ │ │ │ -libraries that it should be referencing are included on the linker's │ │ │ │ │ +libraries that it should be referencing are included on the linker\*(Aqs │ │ │ │ │ command line. │ │ │ │ │ .RE │ │ │ │ │ .RS 4 │ │ │ │ │ .Sp │ │ │ │ │ The behaviour for shared libraries on their own can also be controlled │ │ │ │ │ by the \fB\-\-[no\-]allow\-shlib\-undefined\fR option. │ │ │ │ │ .Sp │ │ │ │ │ @@ -2573,22 +2576,22 @@ │ │ │ │ │ .IP \fB\-\-verbose[=\fR\fINUMBER\fR\fB]\fR 4 │ │ │ │ │ .IX Item "--verbose[=NUMBER]" │ │ │ │ │ .PD │ │ │ │ │ Display the version number for \fBld\fR and list the linker emulations │ │ │ │ │ supported. Display which input files can and cannot be opened. Display │ │ │ │ │ the linker script being used by the linker. If the optional \fINUMBER\fR │ │ │ │ │ argument > 1, plugin symbol status will also be displayed. │ │ │ │ │ -.IP \fB\-\-version\-script=\fR\fIversion-scriptfile\fR 4 │ │ │ │ │ +.IP \fB\-\-version\-script=\fR\fIversion\-scriptfile\fR 4 │ │ │ │ │ .IX Item "--version-script=version-scriptfile" │ │ │ │ │ Specify the name of a version script to the linker. This is typically │ │ │ │ │ used when creating shared libraries to specify additional information │ │ │ │ │ about the version hierarchy for the library being created. This option │ │ │ │ │ is only fully supported on ELF platforms which support shared libraries; │ │ │ │ │ see \fBVERSION\fR. It is partially supported on PE platforms, which can │ │ │ │ │ -use version scripts to filter symbol visibility in auto-export mode: any │ │ │ │ │ +use version scripts to filter symbol visibility in auto\-export mode: any │ │ │ │ │ symbols marked \fBlocal\fR in the version script will not be exported. │ │ │ │ │ .IP \fB\-\-warn\-common\fR 4 │ │ │ │ │ .IX Item "--warn-common" │ │ │ │ │ Warn when a common symbol is combined with another common symbol or with │ │ │ │ │ a symbol definition. Unix linkers allow this somewhat sloppy practice, │ │ │ │ │ but linkers on some other operating systems do not. This option allows │ │ │ │ │ you to find potential problems from combining global symbols. │ │ │ │ │ @@ -2638,15 +2641,15 @@ │ │ │ │ │ .Sp │ │ │ │ │ .Vb 3 │ │ │ │ │ \& (
): warning: definition of \`\*(Aq │ │ │ │ │ \& overriding common │ │ │ │ │ \& (
): warning: common is here │ │ │ │ │ .Ve │ │ │ │ │ .IP 3. 4 │ │ │ │ │ -Merging a common symbol with a previous same-sized common symbol. │ │ │ │ │ +Merging a common symbol with a previous same\-sized common symbol. │ │ │ │ │ .Sp │ │ │ │ │ .Vb 3 │ │ │ │ │ \& (
): warning: multiple common │ │ │ │ │ \& of \`\*(Aq │ │ │ │ │ \& (
): warning: previous common is here │ │ │ │ │ .Ve │ │ │ │ │ .IP 4. 4 │ │ │ │ │ @@ -2696,18 +2699,18 @@ │ │ │ │ │ Only generate a warning if an object file requests an executable │ │ │ │ │ stack, but not if the \fB\-z execstack\fR option is used. │ │ │ │ │ .RE │ │ │ │ │ .RS 4 │ │ │ │ │ .Sp │ │ │ │ │ The default state depends upon how the linker was configured when it │ │ │ │ │ was built. The \fB\-\-no\-warn\-execstack\fR option always puts the │ │ │ │ │ -linker into the no-warnings state. The \fB\-\-warn\-execstack\fR │ │ │ │ │ -option puts the linker into the warn-always state. The │ │ │ │ │ +linker into the no\-warnings state. The \fB\-\-warn\-execstack\fR │ │ │ │ │ +option puts the linker into the warn\-always state. The │ │ │ │ │ \&\fB\-\-warn\-execstack\-objects\fR option puts the linker into the │ │ │ │ │ -warn-for-object-files-only state. │ │ │ │ │ +warn\-for\-object\-files\-only state. │ │ │ │ │ .Sp │ │ │ │ │ Note: ELF format input files can specify that they need an executable │ │ │ │ │ stack by having a \fI.note.GNU\-stack\fR section with the executable │ │ │ │ │ bit set in its section flags. They can specify that they do not need │ │ │ │ │ an executable stack by having the same section, but without the │ │ │ │ │ executable flag bit set. If an input file does not have a │ │ │ │ │ \&\fI.note.GNU\-stack\fR section then the default behaviour is target │ │ │ │ │ @@ -2720,52 +2723,52 @@ │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-no\-error\-execstack\fR 4 │ │ │ │ │ .IX Item "--no-error-execstack" │ │ │ │ │ .PD │ │ │ │ │ If the linker is going to generate a warning message about an │ │ │ │ │ executable stack then the \fB\-\-error\-execstack\fR option will │ │ │ │ │ instead change that warning into an error. Note \- this option does │ │ │ │ │ -not change the linker's execstack warning generation state. Use │ │ │ │ │ +not change the linker\*(Aqs execstack warning generation state. Use │ │ │ │ │ \&\fB\-\-warn\-execstack\fR or \fB\-\-warn\-execstack\-objects\fR to set │ │ │ │ │ a specific warning state. │ │ │ │ │ .Sp │ │ │ │ │ The \fB\-\-no\-error\-execstack\fR option will restore the default │ │ │ │ │ behaviour of generating warning messages. │ │ │ │ │ .IP \fB\-\-warn\-multiple\-gp\fR 4 │ │ │ │ │ .IX Item "--warn-multiple-gp" │ │ │ │ │ Warn if multiple global pointer values are required in the output file. │ │ │ │ │ This is only meaningful for certain processors, such as the Alpha. │ │ │ │ │ -Specifically, some processors put large-valued constants in a special │ │ │ │ │ +Specifically, some processors put large\-valued constants in a special │ │ │ │ │ section. A special register (the global pointer) points into the middle │ │ │ │ │ of this section, so that constants can be loaded efficiently via a │ │ │ │ │ -base-register relative addressing mode. Since the offset in │ │ │ │ │ -base-register relative mode is fixed and relatively small (e.g., 16 │ │ │ │ │ +base\-register relative addressing mode. Since the offset in │ │ │ │ │ +base\-register relative mode is fixed and relatively small (e.g., 16 │ │ │ │ │ bits), this limits the maximum size of the constant pool. Thus, in │ │ │ │ │ large programs, it is often necessary to use multiple global pointer │ │ │ │ │ values in order to be able to address all possible constants. This │ │ │ │ │ option causes a warning to be issued whenever this case occurs. │ │ │ │ │ .IP \fB\-\-warn\-once\fR 4 │ │ │ │ │ .IX Item "--warn-once" │ │ │ │ │ Only warn once for each undefined symbol, rather than once per module │ │ │ │ │ which refers to it. │ │ │ │ │ .IP \fB\-\-warn\-rwx\-segments\fR 4 │ │ │ │ │ .IX Item "--warn-rwx-segments" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-no\-warn\-rwx\-segments\fR 4 │ │ │ │ │ .IX Item "--no-warn-rwx-segments" │ │ │ │ │ .PD │ │ │ │ │ -Warn if the linker creates a loadable, non-zero sized segment that has │ │ │ │ │ +Warn if the linker creates a loadable, non\-zero sized segment that has │ │ │ │ │ all three of the read, write and execute permission flags set. Such a │ │ │ │ │ segment represents a potential security vulnerability. In addition │ │ │ │ │ warnings will be generated if a thread local storage segment is │ │ │ │ │ created with the execute permission flag set, regardless of whether or │ │ │ │ │ not it has the read and/or write flags set. │ │ │ │ │ .Sp │ │ │ │ │ These warnings are enabled by default. They can be disabled via the │ │ │ │ │ -\&\fB\-\-no\-warn\-rwx\-segments\fR option and re-enabled via the │ │ │ │ │ +\&\fB\-\-no\-warn\-rwx\-segments\fR option and re\-enabled via the │ │ │ │ │ \&\fB\-\-warn\-rwx\-segments\fR option. │ │ │ │ │ .IP \fB\-\-error\-rwx\-segments\fR 4 │ │ │ │ │ .IX Item "--error-rwx-segments" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-no\-error\-rwx\-segments\fR 4 │ │ │ │ │ .IX Item "--no-error-rwx-segments" │ │ │ │ │ .PD │ │ │ │ │ @@ -2784,40 +2787,40 @@ │ │ │ │ │ Warn if the address of an output section is changed because of │ │ │ │ │ alignment. Typically, the alignment will be set by an input section. │ │ │ │ │ The address will only be changed if it not explicitly specified; that │ │ │ │ │ is, if the \f(CW\*(C`SECTIONS\*(C'\fR command does not specify a start address for │ │ │ │ │ the section. │ │ │ │ │ .IP \fB\-\-warn\-textrel\fR 4 │ │ │ │ │ .IX Item "--warn-textrel" │ │ │ │ │ -Warn if the linker adds DT_TEXTREL to a position-independent executable │ │ │ │ │ +Warn if the linker adds DT_TEXTREL to a position\-independent executable │ │ │ │ │ or shared object. │ │ │ │ │ .IP \fB\-\-warn\-alternate\-em\fR 4 │ │ │ │ │ .IX Item "--warn-alternate-em" │ │ │ │ │ Warn if an object has alternate ELF machine code. │ │ │ │ │ .IP \fB\-\-warn\-unresolved\-symbols\fR 4 │ │ │ │ │ .IX Item "--warn-unresolved-symbols" │ │ │ │ │ If the linker is going to report an unresolved symbol (see the option │ │ │ │ │ \&\fB\-\-unresolved\-symbols\fR) it will normally generate an error. │ │ │ │ │ This option makes it generate a warning instead. │ │ │ │ │ .IP \fB\-\-error\-unresolved\-symbols\fR 4 │ │ │ │ │ .IX Item "--error-unresolved-symbols" │ │ │ │ │ -This restores the linker's default behaviour of generating errors when │ │ │ │ │ +This restores the linker\*(Aqs default behaviour of generating errors when │ │ │ │ │ it is reporting unresolved symbols. │ │ │ │ │ .IP \fB\-\-whole\-archive\fR 4 │ │ │ │ │ .IX Item "--whole-archive" │ │ │ │ │ For each archive mentioned on the command line after the │ │ │ │ │ \&\fB\-\-whole\-archive\fR option, include every object file in the archive │ │ │ │ │ in the link, rather than searching the archive for the required object │ │ │ │ │ files. This is normally used to turn an archive file into a shared │ │ │ │ │ library, forcing every object to be included in the resulting shared │ │ │ │ │ library. This option may be used more than once. │ │ │ │ │ .Sp │ │ │ │ │ -Two notes when using this option from gcc: First, gcc doesn't know │ │ │ │ │ +Two notes when using this option from gcc: First, gcc doesn\*(Aqt know │ │ │ │ │ about this option, so you have to use \fB\-Wl,\-whole\-archive\fR. │ │ │ │ │ -Second, don't forget to use \fB\-Wl,\-no\-whole\-archive\fR after your │ │ │ │ │ +Second, don\*(Aqt forget to use \fB\-Wl,\-no\-whole\-archive\fR after your │ │ │ │ │ list of archives, because gcc will add its own list of archives to │ │ │ │ │ your link and you may not want this flag to affect those as well. │ │ │ │ │ .IP \fB\-\-wrap=\fR\fIsymbol\fR 4 │ │ │ │ │ .IX Item "--wrap=symbol" │ │ │ │ │ Use a wrapper function for \fIsymbol\fR. Any undefined reference to │ │ │ │ │ \&\fIsymbol\fR will be resolved to \f(CW\*(C`_\|_wrap_\fR\f(CIsymbol\fR\f(CW\*(C'\fR. Any │ │ │ │ │ undefined reference to \f(CW\*(C`_\|_real_\fR\f(CIsymbol\fR\f(CW\*(C'\fR will be resolved to │ │ │ │ │ @@ -2895,22 +2898,22 @@ │ │ │ │ │ \&\fB\-\-enable\-new\-dtags\fR, the new dynamic tags will be created as needed │ │ │ │ │ and older dynamic tags will be omitted. │ │ │ │ │ If you specify \fB\-\-disable\-new\-dtags\fR, no new dynamic tags will be │ │ │ │ │ created. By default, the new dynamic tags are not created. Note that │ │ │ │ │ those options are only available for ELF systems. │ │ │ │ │ .IP \fB\-\-hash\-size=\fR\fInumber\fR 4 │ │ │ │ │ .IX Item "--hash-size=number" │ │ │ │ │ -Set the default size of the linker's hash tables to a prime number │ │ │ │ │ +Set the default size of the linker\*(Aqs hash tables to a prime number │ │ │ │ │ close to \fInumber\fR. Increasing this value can reduce the length of │ │ │ │ │ time it takes the linker to perform its tasks, at the expense of │ │ │ │ │ -increasing the linker's memory requirements. Similarly reducing this │ │ │ │ │ +increasing the linker\*(Aqs memory requirements. Similarly reducing this │ │ │ │ │ value can reduce the memory requirements at the expense of speed. │ │ │ │ │ .IP \fB\-\-hash\-style=\fR\fIstyle\fR 4 │ │ │ │ │ .IX Item "--hash-style=style" │ │ │ │ │ -Set the type of linker's hash table(s). \fIstyle\fR can be either │ │ │ │ │ +Set the type of linker\*(Aqs hash table(s). \fIstyle\fR can be either │ │ │ │ │ \&\f(CW\*(C`sysv\*(C'\fR for classic ELF \f(CW\*(C`.hash\*(C'\fR section, \f(CW\*(C`gnu\*(C'\fR for │ │ │ │ │ new style GNU \f(CW\*(C`.gnu.hash\*(C'\fR section or \f(CW\*(C`both\*(C'\fR for both │ │ │ │ │ the classic ELF \f(CW\*(C`.hash\*(C'\fR and new style GNU \f(CW\*(C`.gnu.hash\*(C'\fR │ │ │ │ │ hash tables. The default depends upon how the linker was configured, │ │ │ │ │ but for most Linux based systems it will be \f(CW\*(C`both\*(C'\fR. │ │ │ │ │ .IP \fB\-\-compress\-debug\-sections=none\fR 4 │ │ │ │ │ .IX Item "--compress-debug-sections=none" │ │ │ │ │ @@ -2923,45 +2926,45 @@ │ │ │ │ │ .IX Item "--compress-debug-sections=zlib-gabi" │ │ │ │ │ .IP \fB\-\-compress\-debug\-sections=zstd\fR 4 │ │ │ │ │ .IX Item "--compress-debug-sections=zstd" │ │ │ │ │ .PD │ │ │ │ │ On ELF platforms, these options control how DWARF debug sections are │ │ │ │ │ compressed using zlib. │ │ │ │ │ .Sp │ │ │ │ │ -\&\fB\-\-compress\-debug\-sections=none\fR doesn't compress DWARF debug │ │ │ │ │ +\&\fB\-\-compress\-debug\-sections=none\fR doesn\*(Aqt compress DWARF debug │ │ │ │ │ sections. \fB\-\-compress\-debug\-sections=zlib\-gnu\fR compresses │ │ │ │ │ DWARF debug sections and renames them to begin with \fB.zdebug\fR │ │ │ │ │ instead of \fB.debug\fR. \fB\-\-compress\-debug\-sections=zlib\-gabi\fR │ │ │ │ │ also compresses DWARF debug sections, but rather than renaming them it │ │ │ │ │ -sets the SHF_COMPRESSED flag in the sections' headers. │ │ │ │ │ +sets the SHF_COMPRESSED flag in the sections\*(Aq headers. │ │ │ │ │ .Sp │ │ │ │ │ The \fB\-\-compress\-debug\-sections=zlib\fR option is an alias for │ │ │ │ │ \&\fB\-\-compress\-debug\-sections=zlib\-gabi\fR. │ │ │ │ │ .Sp │ │ │ │ │ \&\fB\-\-compress\-debug\-sections=zstd\fR compresses DWARF debug sections using │ │ │ │ │ zstd. │ │ │ │ │ .Sp │ │ │ │ │ Note that this option overrides any compression in input debug │ │ │ │ │ sections, so if a binary is linked with \fB\-\-compress\-debug\-sections=none\fR │ │ │ │ │ for example, then any compressed debug sections in input files will be │ │ │ │ │ uncompressed before they are copied into the output binary. │ │ │ │ │ .Sp │ │ │ │ │ The default compression behaviour varies depending upon the target │ │ │ │ │ involved and the configure options used to build the toolchain. The │ │ │ │ │ -default can be determined by examining the output from the linker's │ │ │ │ │ +default can be determined by examining the output from the linker\*(Aqs │ │ │ │ │ \&\fB\-\-help\fR option. │ │ │ │ │ .IP \fB\-\-reduce\-memory\-overheads\fR 4 │ │ │ │ │ .IX Item "--reduce-memory-overheads" │ │ │ │ │ This option reduces memory requirements at ld runtime, at the expense of │ │ │ │ │ linking speed. This was introduced to select the old O(n^2) algorithm │ │ │ │ │ for link map file generation, rather than the new O(n) algorithm which uses │ │ │ │ │ about 40% more memory for symbol storage. │ │ │ │ │ .Sp │ │ │ │ │ Another effect of the switch is to set the default hash table size to │ │ │ │ │ -1021, which again saves memory at the cost of lengthening the linker's │ │ │ │ │ +1021, which again saves memory at the cost of lengthening the linker\*(Aqs │ │ │ │ │ run time. This is not done however if the \fB\-\-hash\-size\fR switch │ │ │ │ │ has been used. │ │ │ │ │ .Sp │ │ │ │ │ The \fB\-\-reduce\-memory\-overheads\fR switch may be also be used to │ │ │ │ │ enable other tradeoffs in future versions of the linker. │ │ │ │ │ .IP \fB\-\-max\-cache\-size=\fR\fIsize\fR 4 │ │ │ │ │ .IX Item "--max-cache-size=size" │ │ │ │ │ @@ -2984,28 +2987,28 @@ │ │ │ │ │ specified as an even number of hexadecimal digits (\f(CW\*(C`\-\*(C'\fR and │ │ │ │ │ \&\f(CW\*(C`:\*(C'\fR characters between digit pairs are ignored). If \fIstyle\fR │ │ │ │ │ is omitted, \f(CW\*(C`sha1\*(C'\fR is used. │ │ │ │ │ .Sp │ │ │ │ │ The \f(CW\*(C`md5\*(C'\fR, \f(CW\*(C`sha1\*(C'\fR, and \f(CW\*(C`xx\*(C'\fR styles produces an │ │ │ │ │ identifier that is always the same in an identical output file, but │ │ │ │ │ are almost certainly unique among all nonidentical output files. It │ │ │ │ │ -is not intended to be compared as a checksum for the file's contents. │ │ │ │ │ +is not intended to be compared as a checksum for the file\*(Aqs contents. │ │ │ │ │ A linked file may be changed later by other tools, but the build ID │ │ │ │ │ bit string identifying the original linked file does not change. │ │ │ │ │ .Sp │ │ │ │ │ Passing \f(CW\*(C`none\*(C'\fR for \fIstyle\fR disables the setting from any │ │ │ │ │ \&\f(CW\*(C`\-\-build\-id\*(C'\fR options earlier on the command line. │ │ │ │ │ .IP \fB\-\-package\-metadata=\fR\fIJSON\fR 4 │ │ │ │ │ .IX Item "--package-metadata=JSON" │ │ │ │ │ Request the creation of a \f(CW\*(C`.note.package\*(C'\fR ELF note section. The │ │ │ │ │ contents of the note are in JSON format, as per the package metadata │ │ │ │ │ specification. For more information see: │ │ │ │ │ https://systemd.io/ELF_PACKAGE_METADATA/ │ │ │ │ │ -The JSON argument support percent-encoding and following %[string] │ │ │ │ │ -(where string refers to the name in HTML's Named Character References) │ │ │ │ │ +The JSON argument support percent\-encoding and following %[string] │ │ │ │ │ +(where string refers to the name in HTML\*(Aqs Named Character References) │ │ │ │ │ encoding: \fB%[comma]\fR for \fB,\fR, \fB%[lbrace]\fR for \fB{\fR, │ │ │ │ │ \&\fB%[quot]\fR for \fB"\fR, \fB%[rbrace]\fR for \fB}\fR, and │ │ │ │ │ \&\fB%[space]\fR for space character. │ │ │ │ │ If the JSON argument is missing/empty then this will disable the │ │ │ │ │ creation of the metadata note, if one had been enabled by an earlier │ │ │ │ │ occurrence of the \-\-package\-metadata option. │ │ │ │ │ If the linker has been built with libjansson, then the JSON string │ │ │ │ │ @@ -3017,21 +3020,21 @@ │ │ │ │ │ use this option. In addition, the linker fully supports the standard │ │ │ │ │ \&\f(CW\*(C`*.def\*(C'\fR files, which may be specified on the linker command line │ │ │ │ │ like an object file (in fact, it should precede archives it exports │ │ │ │ │ symbols from, to ensure that they get linked in, just like a normal │ │ │ │ │ object file). │ │ │ │ │ .PP │ │ │ │ │ In addition to the options common to all targets, the i386 PE linker │ │ │ │ │ -support additional command-line options that are specific to the i386 │ │ │ │ │ +support additional command\-line options that are specific to the i386 │ │ │ │ │ PE target. Options that take values may be separated from their │ │ │ │ │ values by either a space or an equals sign. │ │ │ │ │ .IP \fB\-\-add\-stdcall\-alias\fR 4 │ │ │ │ │ .IX Item "--add-stdcall-alias" │ │ │ │ │ If given, symbols with a stdcall suffix (@\fInn\fR) will be exported │ │ │ │ │ -as-is and also with the suffix stripped. │ │ │ │ │ +as\-is and also with the suffix stripped. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP "\fB\-\-base\-file\fR \fIfile\fR" 4 │ │ │ │ │ .IX Item "--base-file file" │ │ │ │ │ Use \fIfile\fR as the name of a file in which to save the base │ │ │ │ │ addresses of all the relocations needed for generating DLLs with │ │ │ │ │ \&\fIdlltool\fR. │ │ │ │ │ [This is an i386 PE specific option] │ │ │ │ │ @@ -3046,24 +3049,24 @@ │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-disable\-long\-section\-names\fR 4 │ │ │ │ │ .IX Item "--disable-long-section-names" │ │ │ │ │ .PD │ │ │ │ │ The PE variants of the COFF object format add an extension that permits │ │ │ │ │ the use of section names longer than eight characters, the normal limit │ │ │ │ │ for COFF. By default, these names are only allowed in object files, as │ │ │ │ │ -fully-linked executable images do not carry the COFF string table required │ │ │ │ │ +fully\-linked executable images do not carry the COFF string table required │ │ │ │ │ to support the longer names. As a GNU extension, it is possible to │ │ │ │ │ allow their use in executable images as well, or to (probably pointlessly!) │ │ │ │ │ disallow it in object files, by using these two options. Executable images │ │ │ │ │ -generated with these long section names are slightly non-standard, carrying │ │ │ │ │ +generated with these long section names are slightly non\-standard, carrying │ │ │ │ │ as they do a string table, and may generate confusing output when examined │ │ │ │ │ -with non-GNU PE-aware tools, such as file viewers and dumpers. However, │ │ │ │ │ +with non\-GNU PE\-aware tools, such as file viewers and dumpers. However, │ │ │ │ │ GDB relies on the use of PE long section names to find Dwarf\-2 debug │ │ │ │ │ information sections in an executable image at runtime, and so if neither │ │ │ │ │ -option is specified on the command-line, \fBld\fR will enable long │ │ │ │ │ +option is specified on the command\-line, \fBld\fR will enable long │ │ │ │ │ section names, overriding the default and technically correct behaviour, │ │ │ │ │ when it finds the presence of debug information while linking an executable │ │ │ │ │ image and not stripping symbols. │ │ │ │ │ [This option is valid for all PE targeted ports of the linker] │ │ │ │ │ .IP \fB\-\-enable\-stdcall\-fixup\fR 4 │ │ │ │ │ .IX Item "--enable-stdcall-fixup" │ │ │ │ │ .PD 0 │ │ │ │ │ @@ -3074,49 +3077,49 @@ │ │ │ │ │ do "fuzzy linking" by looking for another defined symbol that differs │ │ │ │ │ only in the format of the symbol name (cdecl vs stdcall) and will │ │ │ │ │ resolve that symbol by linking to the match. For example, the │ │ │ │ │ undefined symbol \f(CW\*(C`_foo\*(C'\fR might be linked to the function │ │ │ │ │ \&\f(CW\*(C`_foo@12\*(C'\fR, or the undefined symbol \f(CW\*(C`_bar@16\*(C'\fR might be linked │ │ │ │ │ to the function \f(CW\*(C`_bar\*(C'\fR. When the linker does this, it prints a │ │ │ │ │ warning, since it normally should have failed to link, but sometimes │ │ │ │ │ -import libraries generated from third-party dlls may need this feature │ │ │ │ │ +import libraries generated from third\-party dlls may need this feature │ │ │ │ │ to be usable. If you specify \fB\-\-enable\-stdcall\-fixup\fR, this │ │ │ │ │ feature is fully enabled and warnings are not printed. If you specify │ │ │ │ │ \&\fB\-\-disable\-stdcall\-fixup\fR, this feature is disabled and such │ │ │ │ │ mismatches are considered to be errors. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP \fB\-\-leading\-underscore\fR 4 │ │ │ │ │ .IX Item "--leading-underscore" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-no\-leading\-underscore\fR 4 │ │ │ │ │ .IX Item "--no-leading-underscore" │ │ │ │ │ .PD │ │ │ │ │ -For most targets default symbol-prefix is an underscore and is defined │ │ │ │ │ -in target's description. By this option it is possible to │ │ │ │ │ -disable/enable the default underscore symbol-prefix. │ │ │ │ │ +For most targets default symbol\-prefix is an underscore and is defined │ │ │ │ │ +in target\*(Aqs description. By this option it is possible to │ │ │ │ │ +disable/enable the default underscore symbol\-prefix. │ │ │ │ │ .IP \fB\-\-export\-all\-symbols\fR 4 │ │ │ │ │ .IX Item "--export-all-symbols" │ │ │ │ │ If given, all global symbols in the objects used to build a DLL will │ │ │ │ │ be exported by the DLL. Note that this is the default if there │ │ │ │ │ -otherwise wouldn't be any exported symbols. When symbols are │ │ │ │ │ +otherwise wouldn\*(Aqt be any exported symbols. When symbols are │ │ │ │ │ explicitly exported via DEF files or implicitly exported via function │ │ │ │ │ attributes, the default is to not export anything else unless this │ │ │ │ │ option is given. Note that the symbols \f(CW\*(C`DllMain@12\*(C'\fR, │ │ │ │ │ \&\f(CW\*(C`DllEntryPoint@0\*(C'\fR, \f(CW\*(C`DllMainCRTStartup@12\*(C'\fR, and │ │ │ │ │ \&\f(CW\*(C`impure_ptr\*(C'\fR will not be automatically │ │ │ │ │ exported. Also, symbols imported from other DLLs will not be │ │ │ │ │ -re-exported, nor will symbols specifying the DLL's internal layout │ │ │ │ │ +re\-exported, nor will symbols specifying the DLL\*(Aqs internal layout │ │ │ │ │ such as those beginning with \f(CW\*(C`_head_\*(C'\fR or ending with │ │ │ │ │ \&\f(CW\*(C`_iname\*(C'\fR. In addition, no symbols from \f(CW\*(C`libgcc\*(C'\fR, │ │ │ │ │ \&\f(CW\*(C`libstd++\*(C'\fR, \f(CW\*(C`libmingw32\*(C'\fR, or \f(CW\*(C`crtX.o\*(C'\fR will be exported. │ │ │ │ │ Symbols whose names begin with \f(CW\*(C`_\|_rtti_\*(C'\fR or \f(CW\*(C`_\|_builtin_\*(C'\fR will │ │ │ │ │ not be exported, to help with C++ DLLs. Finally, there is an │ │ │ │ │ -extensive list of cygwin-private symbols that are not exported │ │ │ │ │ +extensive list of cygwin\-private symbols that are not exported │ │ │ │ │ (obviously, this applies on when building DLLs for cygwin targets). │ │ │ │ │ -These cygwin-excludes are: \f(CW\*(C`_cygwin_dll_entry@12\*(C'\fR, │ │ │ │ │ +These cygwin\-excludes are: \f(CW\*(C`_cygwin_dll_entry@12\*(C'\fR, │ │ │ │ │ \&\f(CW\*(C`_cygwin_crt0_common@8\*(C'\fR, \f(CW\*(C`_cygwin_noncygwin_dll_entry@12\*(C'\fR, │ │ │ │ │ \&\f(CW\*(C`_fmode\*(C'\fR, \f(CW\*(C`_impure_ptr\*(C'\fR, \f(CW\*(C`cygwin_attach_dll\*(C'\fR, │ │ │ │ │ \&\f(CW\*(C`cygwin_premain0\*(C'\fR, \f(CW\*(C`cygwin_premain1\*(C'\fR, \f(CW\*(C`cygwin_premain2\*(C'\fR, │ │ │ │ │ \&\f(CW\*(C`cygwin_premain3\*(C'\fR, and \f(CW\*(C`environ\*(C'\fR. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP "\fB\-\-exclude\-symbols\fR \fIsymbol\fR\fB,\fR\fIsymbol\fR\fB,...\fR" 4 │ │ │ │ │ .IX Item "--exclude-symbols symbol,symbol,..." │ │ │ │ │ @@ -3200,21 +3203,21 @@ │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-enable\-auto\-image\-base=\fR\fIvalue\fR 4 │ │ │ │ │ .IX Item "--enable-auto-image-base=value" │ │ │ │ │ .PD │ │ │ │ │ Automatically choose the image base for DLLs, optionally starting with base │ │ │ │ │ \&\fIvalue\fR, unless one is specified using the \f(CW\*(C`\-\-image\-base\*(C'\fR argument. │ │ │ │ │ By using a hash generated from the dllname to create unique image bases │ │ │ │ │ -for each DLL, in-memory collisions and relocations which can delay program │ │ │ │ │ +for each DLL, in\-memory collisions and relocations which can delay program │ │ │ │ │ execution are avoided. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP \fB\-\-disable\-auto\-image\-base\fR 4 │ │ │ │ │ .IX Item "--disable-auto-image-base" │ │ │ │ │ Do not automatically generate a unique image base. If there is no │ │ │ │ │ -user-specified image base (\f(CW\*(C`\-\-image\-base\*(C'\fR) then use the platform │ │ │ │ │ +user\-specified image base (\f(CW\*(C`\-\-image\-base\*(C'\fR) then use the platform │ │ │ │ │ default. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP "\fB\-\-dll\-search\-prefix\fR \fIstring\fR" 4 │ │ │ │ │ .IX Item "--dll-search-prefix string" │ │ │ │ │ When linking dynamically to a dll without an import library, │ │ │ │ │ search for \f(CW\*(C`.dll\*(C'\fR in preference to │ │ │ │ │ \&\f(CW\*(C`lib.dll\*(C'\fR. This behaviour allows easy distinction │ │ │ │ │ @@ -3228,29 +3231,29 @@ │ │ │ │ │ DATA imports from DLLs, thus making it possible to bypass the dllimport │ │ │ │ │ mechanism on the user side and to reference unmangled symbol names. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .Sp │ │ │ │ │ The following remarks pertain to the original implementation of the │ │ │ │ │ feature and are obsolete nowadays for Cygwin and MinGW targets. │ │ │ │ │ .Sp │ │ │ │ │ -Note: Use of the 'auto\-import' extension will cause the text section │ │ │ │ │ +Note: Use of the \*(Aqauto\-import\*(Aq extension will cause the text section │ │ │ │ │ of the image file to be made writable. This does not conform to the │ │ │ │ │ -PE-COFF format specification published by Microsoft. │ │ │ │ │ +PE\-COFF format specification published by Microsoft. │ │ │ │ │ .Sp │ │ │ │ │ -Note \- use of the 'auto\-import' extension will also cause read only │ │ │ │ │ +Note \- use of the \*(Aqauto\-import\*(Aq extension will also cause read only │ │ │ │ │ data which would normally be placed into the .rdata section to be │ │ │ │ │ placed into the .data section instead. This is in order to work │ │ │ │ │ around a problem with consts that is described here: │ │ │ │ │ http://www.cygwin.com/ml/cygwin/2004\-09/msg01101.html │ │ │ │ │ .Sp │ │ │ │ │ -Using 'auto\-import' generally will 'just work' \-\- but sometimes you may │ │ │ │ │ +Using \*(Aqauto\-import\*(Aq generally will \*(Aqjust work\*(Aq \-\- but sometimes you may │ │ │ │ │ see this message: │ │ │ │ │ .Sp │ │ │ │ │ -"variable '' can't be auto-imported. Please read the │ │ │ │ │ -documentation for ld's \f(CW\*(C`\-\-enable\-auto\-import\*(C'\fR for details." │ │ │ │ │ +"variable \*(Aq\*(Aq can\*(Aqt be auto\-imported. Please read the │ │ │ │ │ +documentation for ld\*(Aqs \f(CW\*(C`\-\-enable\-auto\-import\*(C'\fR for details." │ │ │ │ │ .Sp │ │ │ │ │ This message occurs when some (sub)expression accesses an address │ │ │ │ │ ultimately given by the sum of two constants (Win32 import tables only │ │ │ │ │ allow one). Instances where this may occur include accesses to member │ │ │ │ │ fields of struct variables imported from a DLL, as well as using a │ │ │ │ │ constant index into an array variable imported from a DLL. Any │ │ │ │ │ multiword variable (arrays, structs, long long, etc) may trigger │ │ │ │ │ @@ -3261,18 +3264,18 @@ │ │ │ │ │ There are several ways to address this difficulty, regardless of the │ │ │ │ │ data type of the exported variable: │ │ │ │ │ .Sp │ │ │ │ │ One way is to use \-\-enable\-runtime\-pseudo\-reloc switch. This leaves the task │ │ │ │ │ of adjusting references in your client code for runtime environment, so │ │ │ │ │ this method works only when runtime environment supports this feature. │ │ │ │ │ .Sp │ │ │ │ │ -A second solution is to force one of the 'constants' to be a variable \-\- │ │ │ │ │ -that is, unknown and un-optimizable at compile time. For arrays, │ │ │ │ │ -there are two possibilities: a) make the indexee (the array's address) │ │ │ │ │ -a variable, or b) make the 'constant' index a variable. Thus: │ │ │ │ │ +A second solution is to force one of the \*(Aqconstants\*(Aq to be a variable \-\- │ │ │ │ │ +that is, unknown and un\-optimizable at compile time. For arrays, │ │ │ │ │ +there are two possibilities: a) make the indexee (the array\*(Aqs address) │ │ │ │ │ +a variable, or b) make the \*(Aqconstant\*(Aq index a variable. Thus: │ │ │ │ │ .Sp │ │ │ │ │ .Vb 3 │ │ │ │ │ \& extern type extern_array[]; │ │ │ │ │ \& extern_array[1] \-\-> │ │ │ │ │ \& { volatile type *t=extern_array; t[1] } │ │ │ │ │ .Ve │ │ │ │ │ .Sp │ │ │ │ │ @@ -3298,21 +3301,21 @@ │ │ │ │ │ .Vb 3 │ │ │ │ │ \& extern long long extern_ll; │ │ │ │ │ \& extern_ll \-\-> │ │ │ │ │ \& { volatile long long * local_ll=&extern_ll; *local_ll } │ │ │ │ │ .Ve │ │ │ │ │ .Sp │ │ │ │ │ A third method of dealing with this difficulty is to abandon │ │ │ │ │ -\&'auto\-import' for the offending symbol and mark it with │ │ │ │ │ +\&\*(Aqauto\-import\*(Aq for the offending symbol and mark it with │ │ │ │ │ \&\f(CW\*(C`_\|_declspec(dllimport)\*(C'\fR. However, in practice that │ │ │ │ │ -requires using compile-time #defines to indicate whether you are │ │ │ │ │ +requires using compile\-time #defines to indicate whether you are │ │ │ │ │ building a DLL, building client code that will link to the DLL, or │ │ │ │ │ merely building/linking to a static library. In making the choice │ │ │ │ │ -between the various methods of resolving the 'direct address with │ │ │ │ │ -constant offset' problem, you should consider typical real-world usage: │ │ │ │ │ +between the various methods of resolving the \*(Aqdirect address with │ │ │ │ │ +constant offset\*(Aq problem, you should consider typical real\-world usage: │ │ │ │ │ .Sp │ │ │ │ │ Original: │ │ │ │ │ .Sp │ │ │ │ │ .Vb 7 │ │ │ │ │ \& \-\-foo.h │ │ │ │ │ \& extern int arr[]; │ │ │ │ │ \& \-\-foo.c │ │ │ │ │ @@ -3351,37 +3354,37 @@ │ │ │ │ │ \& \-\-foo.c │ │ │ │ │ \& #include "foo.h" │ │ │ │ │ \& void main(int argc, char **argv){ │ │ │ │ │ \& printf("%d\en",arr[1]); │ │ │ │ │ \& } │ │ │ │ │ .Ve │ │ │ │ │ .Sp │ │ │ │ │ -A fourth way to avoid this problem is to re-code your │ │ │ │ │ +A fourth way to avoid this problem is to re\-code your │ │ │ │ │ library to use a functional interface rather than a data interface │ │ │ │ │ for the offending variables (e.g. \fBset_foo()\fR and \fBget_foo()\fR accessor │ │ │ │ │ functions). │ │ │ │ │ .IP \fB\-\-disable\-auto\-import\fR 4 │ │ │ │ │ .IX Item "--disable-auto-import" │ │ │ │ │ Do not attempt to do sophisticated linking of \f(CW\*(C`_symbol\*(C'\fR to │ │ │ │ │ \&\f(CW\*(C`_\|_imp_\|_symbol\*(C'\fR for DATA imports from DLLs. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP \fB\-\-enable\-runtime\-pseudo\-reloc\fR 4 │ │ │ │ │ .IX Item "--enable-runtime-pseudo-reloc" │ │ │ │ │ If your code contains expressions described in \-\-enable\-auto\-import section, │ │ │ │ │ -that is, DATA imports from DLL with non-zero offset, this switch will create │ │ │ │ │ -a vector of 'runtime pseudo relocations' which can be used by runtime │ │ │ │ │ +that is, DATA imports from DLL with non\-zero offset, this switch will create │ │ │ │ │ +a vector of \*(Aqruntime pseudo relocations\*(Aq which can be used by runtime │ │ │ │ │ environment to adjust references to such data in your client code. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP \fB\-\-disable\-runtime\-pseudo\-reloc\fR 4 │ │ │ │ │ .IX Item "--disable-runtime-pseudo-reloc" │ │ │ │ │ -Do not create pseudo relocations for non-zero offset DATA imports from DLLs. │ │ │ │ │ +Do not create pseudo relocations for non\-zero offset DATA imports from DLLs. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP \fB\-\-enable\-extra\-pe\-debug\fR 4 │ │ │ │ │ .IX Item "--enable-extra-pe-debug" │ │ │ │ │ -Show additional debug info related to auto-import symbol thunking. │ │ │ │ │ +Show additional debug info related to auto\-import symbol thunking. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP \fB\-\-section\-alignment\fR 4 │ │ │ │ │ .IX Item "--section-alignment" │ │ │ │ │ Sets the section alignment. Sections in memory will always begin at │ │ │ │ │ addresses which are a multiple of this number. Defaults to 0x1000. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP "\fB\-\-stack\fR \fIreserve\fR" 4 │ │ │ │ │ @@ -3624,71 +3627,71 @@ │ │ │ │ │ .IP \fB\-N\fR 4 │ │ │ │ │ .IX Item "-N" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-omagic\fR 4 │ │ │ │ │ .IX Item "--omagic" │ │ │ │ │ .PD │ │ │ │ │ Mark the output as \f(CW\*(C`OMAGIC\*(C'\fR (0407) in the \fIa.out\fR header to │ │ │ │ │ -indicate that the text segment is not to be write-protected and │ │ │ │ │ +indicate that the text segment is not to be write\-protected and │ │ │ │ │ shared. Since the text and data sections are both readable and │ │ │ │ │ writable, the data section is allocated immediately contiguous after │ │ │ │ │ the text segment. This is the oldest format for PDP11 executable │ │ │ │ │ programs and is the default for \fBld\fR on PDP11 Unix systems │ │ │ │ │ from the beginning through 2.11BSD. │ │ │ │ │ .IP \fB\-n\fR 4 │ │ │ │ │ .IX Item "-n" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-nmagic\fR 4 │ │ │ │ │ .IX Item "--nmagic" │ │ │ │ │ .PD │ │ │ │ │ Mark the output as \f(CW\*(C`NMAGIC\*(C'\fR (0410) in the \fIa.out\fR header to │ │ │ │ │ indicate that when the output file is executed, the text portion will │ │ │ │ │ -be read-only and shareable among all processes executing the same │ │ │ │ │ +be read\-only and shareable among all processes executing the same │ │ │ │ │ file. This involves moving the data areas up to the first possible 8K │ │ │ │ │ byte page boundary following the end of the text. This option creates │ │ │ │ │ a \fIpure executable\fR format. │ │ │ │ │ .IP \fB\-z\fR 4 │ │ │ │ │ .IX Item "-z" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-imagic\fR 4 │ │ │ │ │ .IX Item "--imagic" │ │ │ │ │ .PD │ │ │ │ │ Mark the output as \f(CW\*(C`IMAGIC\*(C'\fR (0411) in the \fIa.out\fR header to │ │ │ │ │ indicate that when the output file is executed, the program text and │ │ │ │ │ data areas will be loaded into separate address spaces using the split │ │ │ │ │ instruction and data space feature of the memory management unit in │ │ │ │ │ larger models of the PDP11. This doubles the address space available │ │ │ │ │ -to the program. The text segment is again pure, write-protected, and │ │ │ │ │ +to the program. The text segment is again pure, write\-protected, and │ │ │ │ │ shareable. The only difference in the output format between this │ │ │ │ │ option and the others, besides the magic number, is that both the text │ │ │ │ │ and data sections start at location 0. The \fB\-z\fR option selected │ │ │ │ │ this format in 2.11BSD. This option creates a \fIseparate │ │ │ │ │ executable\fR format. │ │ │ │ │ .IP \fB\-\-no\-omagic\fR 4 │ │ │ │ │ .IX Item "--no-omagic" │ │ │ │ │ Equivalent to \fB\-\-nmagic\fR for pdp11\-aout. │ │ │ │ │ .SH ENVIRONMENT │ │ │ │ │ .IX Header "ENVIRONMENT" │ │ │ │ │ You can change the behaviour of \fBld\fR with the environment variables │ │ │ │ │ \&\f(CW\*(C`GNUTARGET\*(C'\fR, │ │ │ │ │ \&\f(CW\*(C`LDEMULATION\*(C'\fR and \f(CW\*(C`COLLECT_NO_DEMANGLE\*(C'\fR. │ │ │ │ │ .PP │ │ │ │ │ -\&\f(CW\*(C`GNUTARGET\*(C'\fR determines the input-file object format if you don't │ │ │ │ │ +\&\f(CW\*(C`GNUTARGET\*(C'\fR determines the input\-file object format if you don\*(Aqt │ │ │ │ │ use \fB\-b\fR (or its synonym \fB\-\-format\fR). Its value should be one │ │ │ │ │ of the BFD names for an input format. If there is no │ │ │ │ │ \&\f(CW\*(C`GNUTARGET\*(C'\fR in the environment, \fBld\fR uses the natural format │ │ │ │ │ of the target. If \f(CW\*(C`GNUTARGET\*(C'\fR is set to \f(CW\*(C`default\*(C'\fR then BFD │ │ │ │ │ attempts to discover the input format by examining binary input files; │ │ │ │ │ this method often succeeds, but there are potential ambiguities, since │ │ │ │ │ there is no method of ensuring that the magic number used to specify │ │ │ │ │ -object-file formats is unique. However, the configuration procedure for │ │ │ │ │ +object\-file formats is unique. However, the configuration procedure for │ │ │ │ │ BFD on each system places the conventional format for that system first │ │ │ │ │ -in the search-list, so ambiguities are resolved in favor of convention. │ │ │ │ │ +in the search\-list, so ambiguities are resolved in favor of convention. │ │ │ │ │ .PP │ │ │ │ │ -\&\f(CW\*(C`LDEMULATION\*(C'\fR determines the default emulation if you don't use the │ │ │ │ │ +\&\f(CW\*(C`LDEMULATION\*(C'\fR determines the default emulation if you don\*(Aqt use the │ │ │ │ │ \&\fB\-m\fR option. The emulation can affect various aspects of linker │ │ │ │ │ behaviour, particularly the default linker script. You can list the │ │ │ │ │ available emulations with the \fB\-\-verbose\fR or \fB\-V\fR options. If │ │ │ │ │ the \fB\-m\fR option is not used, and the \f(CW\*(C`LDEMULATION\*(C'\fR environment │ │ │ │ │ variable is not defined, the default emulation depends upon how the │ │ │ │ │ linker was configured. │ │ │ │ │ .PP │ │ │ │ │ @@ -3711,10 +3714,10 @@ │ │ │ │ │ .SH COPYRIGHT │ │ │ │ │ .IX Header "COPYRIGHT" │ │ │ │ │ Copyright (c) 1991\-2025 Free Software Foundation, Inc. │ │ │ │ │ .PP │ │ │ │ │ Permission is granted to copy, distribute and/or modify this document │ │ │ │ │ under the terms of the GNU Free Documentation License, Version 1.3 │ │ │ │ │ or any later version published by the Free Software Foundation; │ │ │ │ │ -with no Invariant Sections, with no Front-Cover Texts, and with no │ │ │ │ │ -Back-Cover Texts. A copy of the license is included in the │ │ │ │ │ +with no Invariant Sections, with no Front\-Cover Texts, and with no │ │ │ │ │ +Back\-Cover Texts. A copy of the license is included in the │ │ │ │ │ section entitled "GNU Free Documentation License". ├── binutils-mingw-w64-x86-64_2.44-2+12_i386.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2024-10-26 18:03:55.000000 debian-binary │ │ -rw-r--r-- 0 0 0 2004 2024-10-26 18:03:55.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 3619892 2024-10-26 18:03:55.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 3620036 2024-10-26 18:03:55.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -35,15 +35,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7222 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32-ar.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 29664 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32-as.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3765 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32-c++filt.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5720 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32-dlltool.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 311 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32-dllwrap.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2557 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32-elfedit.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7943 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32-gprof.1.gz │ │ │ │ --rw-r--r-- 0 root (0) root (0) 47205 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32-ld.1.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 47328 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32-ld.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 7084 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32-nm.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 14200 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32-objcopy.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 14901 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32-objdump.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2144 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32-ranlib.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 8507 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32-readelf.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3015 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32-size.1.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3806 2024-10-26 18:03:55.000000 ./usr/share/man/man1/x86_64-w64-mingw32-strings.1.gz │ │ │ ├── ./usr/share/man/man1/x86_64-w64-mingw32-ld.1.gz │ │ │ │ ├── x86_64-w64-mingw32-ld.1 │ │ │ │ │ @@ -1,9 +1,9 @@ │ │ │ │ │ .\" -*- mode: troff; coding: utf-8 -*- │ │ │ │ │ -.\" Automatically generated by Pod::Man 5.0102 (Pod::Simple 3.45) │ │ │ │ │ +.\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) │ │ │ │ │ .\" │ │ │ │ │ .\" Standard preamble: │ │ │ │ │ .\" ======================================================================== │ │ │ │ │ .de Sp \" Vertical space (when we can't use .PP) │ │ │ │ │ .if t .sp .5v │ │ │ │ │ .if n .sp │ │ │ │ │ .. │ │ │ │ │ @@ -48,18 +48,21 @@ │ │ │ │ │ . if !\nF==2 \{\ │ │ │ │ │ . nr % 0 │ │ │ │ │ . nr F 2 │ │ │ │ │ . \} │ │ │ │ │ . \} │ │ │ │ │ .\} │ │ │ │ │ .rr rF │ │ │ │ │ +.\" │ │ │ │ │ +.\" Required to disable full justification in groff 1.23.0. │ │ │ │ │ +.if n .ds AD l │ │ │ │ │ .\" ======================================================================== │ │ │ │ │ .\" │ │ │ │ │ .IX Title "LD 1" │ │ │ │ │ -.TH LD 1 2024-10-26 binutils-2.44 "GNU Development Tools" │ │ │ │ │ +.TH LD 1 2025-02-02 binutils-2.44 "GNU Development Tools" │ │ │ │ │ .\" For nroff, turn off justification. Always turn off hyphenation; it makes │ │ │ │ │ .\" way too many mistakes in technical documents. │ │ │ │ │ .if n .ad l │ │ │ │ │ .nh │ │ │ │ │ .SH NAME │ │ │ │ │ ld \- The GNU linker │ │ │ │ │ .SH SYNOPSIS │ │ │ │ │ @@ -68,15 +71,15 @@ │ │ │ │ │ .SH DESCRIPTION │ │ │ │ │ .IX Header "DESCRIPTION" │ │ │ │ │ \&\fBld\fR combines a number of object and archive files, relocates │ │ │ │ │ their data and ties up symbol references. Usually the last step in │ │ │ │ │ compiling a program is to run \fBld\fR. │ │ │ │ │ .PP │ │ │ │ │ \&\fBld\fR accepts Linker Command Language files written in │ │ │ │ │ -a superset of AT&T's Link Editor Command Language syntax, │ │ │ │ │ +a superset of AT&T\*(Aqs Link Editor Command Language syntax, │ │ │ │ │ to provide explicit and total control over the linking process. │ │ │ │ │ .PP │ │ │ │ │ This man page does not describe the command language; see the │ │ │ │ │ \&\fBld\fR entry in \f(CW\*(C`info\*(C'\fR for full details on the command │ │ │ │ │ language and on other aspects of the GNU linker. │ │ │ │ │ .PP │ │ │ │ │ This version of \fBld\fR uses the general purpose BFD libraries │ │ │ │ │ @@ -92,41 +95,41 @@ │ │ │ │ │ (or, in some cases, to get an output file in spite of the error). │ │ │ │ │ .PP │ │ │ │ │ The GNU linker \fBld\fR is meant to cover a broad range of situations, │ │ │ │ │ and to be as compatible as possible with other linkers. As a result, │ │ │ │ │ you have many choices to control its behavior. │ │ │ │ │ .SH OPTIONS │ │ │ │ │ .IX Header "OPTIONS" │ │ │ │ │ -The linker supports a plethora of command-line options, but in actual │ │ │ │ │ +The linker supports a plethora of command\-line options, but in actual │ │ │ │ │ practice few of them are used in any particular context. │ │ │ │ │ For instance, a frequent use of \fBld\fR is to link standard Unix │ │ │ │ │ object files on a standard, supported Unix system. On such a system, to │ │ │ │ │ link a file \f(CW\*(C`hello.o\*(C'\fR: │ │ │ │ │ .PP │ │ │ │ │ .Vb 1 │ │ │ │ │ \& ld \-o /lib/crt0.o hello.o \-lc │ │ │ │ │ .Ve │ │ │ │ │ .PP │ │ │ │ │ This tells \fBld\fR to produce a file called \fIoutput\fR as the │ │ │ │ │ result of linking the file \f(CW\*(C`/lib/crt0.o\*(C'\fR with \f(CW\*(C`hello.o\*(C'\fR and │ │ │ │ │ the library \f(CW\*(C`libc.a\*(C'\fR, which will come from the standard search │ │ │ │ │ directories. (See the discussion of the \fB\-l\fR option below.) │ │ │ │ │ .PP │ │ │ │ │ -Some of the command-line options to \fBld\fR may be specified at any │ │ │ │ │ +Some of the command\-line options to \fBld\fR may be specified at any │ │ │ │ │ point in the command line. However, options which refer to files, such │ │ │ │ │ as \fB\-l\fR or \fB\-T\fR, cause the file to be read at the point at │ │ │ │ │ which the option appears in the command line, relative to the object │ │ │ │ │ -files and other file options. Repeating non-file options with a │ │ │ │ │ +files and other file options. Repeating non\-file options with a │ │ │ │ │ different argument will either have no further effect, or override prior │ │ │ │ │ occurrences (those further to the left on the command line) of that │ │ │ │ │ option. Options which may be meaningfully specified more than once are │ │ │ │ │ noted in the descriptions below. │ │ │ │ │ .PP │ │ │ │ │ -Non-option arguments are object files or archives which are to be linked │ │ │ │ │ -together. They may follow, precede, or be mixed in with command-line │ │ │ │ │ +Non\-option arguments are object files or archives which are to be linked │ │ │ │ │ +together. They may follow, precede, or be mixed in with command\-line │ │ │ │ │ options, except that an object file argument may not be placed between │ │ │ │ │ an option and its argument. │ │ │ │ │ .PP │ │ │ │ │ Usually the linker is invoked with at least one object file, but you can │ │ │ │ │ specify other forms of binary input files using \fB\-l\fR, \fB\-R\fR, │ │ │ │ │ and the script command language. If \fIno\fR binary input files at all │ │ │ │ │ are specified, the linker does not produce any output, and issues the │ │ │ │ │ @@ -148,53 +151,53 @@ │ │ │ │ │ option arguments must either follow the option letter without intervening │ │ │ │ │ whitespace, or be given as separate arguments immediately following the │ │ │ │ │ option that requires them. │ │ │ │ │ .PP │ │ │ │ │ For options whose names are multiple letters, either one dash or two can │ │ │ │ │ precede the option name; for example, \fB\-trace\-symbol\fR and │ │ │ │ │ \&\fB\-\-trace\-symbol\fR are equivalent. Note\-\-\-there is one exception to │ │ │ │ │ -this rule. Multiple letter options that start with a lower case 'o' can │ │ │ │ │ +this rule. Multiple letter options that start with a lower case \*(Aqo\*(Aq can │ │ │ │ │ only be preceded by two dashes. This is to reduce confusion with the │ │ │ │ │ \&\fB\-o\fR option. So for example \fB\-omagic\fR sets the output file │ │ │ │ │ name to \fBmagic\fR whereas \fB\-\-omagic\fR sets the NMAGIC flag on the │ │ │ │ │ output. │ │ │ │ │ .PP │ │ │ │ │ -Arguments to multiple-letter options must either be separated from the │ │ │ │ │ +Arguments to multiple\-letter options must either be separated from the │ │ │ │ │ option name by an equals sign, or be given as separate arguments │ │ │ │ │ immediately following the option that requires them. For example, │ │ │ │ │ \&\fB\-\-trace\-symbol foo\fR and \fB\-\-trace\-symbol=foo\fR are equivalent. │ │ │ │ │ -Unique abbreviations of the names of multiple-letter options are │ │ │ │ │ +Unique abbreviations of the names of multiple\-letter options are │ │ │ │ │ accepted. │ │ │ │ │ .PP │ │ │ │ │ Note\-\-\-if the linker is being invoked indirectly, via a compiler driver │ │ │ │ │ -(e.g. \fBgcc\fR) then all the linker command-line options should be │ │ │ │ │ +(e.g. \fBgcc\fR) then all the linker command\-line options should be │ │ │ │ │ prefixed by \fB\-Wl,\fR (or whatever is appropriate for the particular │ │ │ │ │ compiler driver) like this: │ │ │ │ │ .PP │ │ │ │ │ .Vb 1 │ │ │ │ │ \& gcc \-Wl,\-\-start\-group foo.o bar.o \-Wl,\-\-end\-group │ │ │ │ │ .Ve │ │ │ │ │ .PP │ │ │ │ │ This is important, because otherwise the compiler driver program may │ │ │ │ │ silently drop the linker options, resulting in a bad link. Confusion │ │ │ │ │ may also arise when passing options that require values through a │ │ │ │ │ driver, as the use of a space between option and argument acts as │ │ │ │ │ a separator, and causes the driver to pass only the option to the linker │ │ │ │ │ and the argument to the compiler. In this case, it is simplest to use │ │ │ │ │ -the joined forms of both single\- and multiple-letter options, such as: │ │ │ │ │ +the joined forms of both single\- and multiple\-letter options, such as: │ │ │ │ │ .PP │ │ │ │ │ .Vb 1 │ │ │ │ │ \& gcc foo.o bar.o \-Wl,\-eENTRY \-Wl,\-Map=a.map │ │ │ │ │ .Ve │ │ │ │ │ .PP │ │ │ │ │ -Here is a table of the generic command-line switches accepted by the GNU │ │ │ │ │ +Here is a table of the generic command\-line switches accepted by the GNU │ │ │ │ │ linker: │ │ │ │ │ .IP \fB@\fR\fIfile\fR 4 │ │ │ │ │ .IX Item "@file" │ │ │ │ │ -Read command-line options from \fIfile\fR. The options read are │ │ │ │ │ +Read command\-line options from \fIfile\fR. The options read are │ │ │ │ │ inserted in place of the original @\fIfile\fR option. If \fIfile\fR │ │ │ │ │ does not exist, or cannot be read, then the option will be treated │ │ │ │ │ literally, and not removed. │ │ │ │ │ .Sp │ │ │ │ │ Options in \fIfile\fR are separated by whitespace. A whitespace │ │ │ │ │ character may be included in an option by surrounding the entire │ │ │ │ │ option in either single or double quotes. Any character (including a │ │ │ │ │ @@ -212,57 +215,57 @@ │ │ │ │ │ .IX Item "--audit AUDITLIB" │ │ │ │ │ Adds \fIAUDITLIB\fR to the \f(CW\*(C`DT_AUDIT\*(C'\fR entry of the dynamic section. │ │ │ │ │ \&\fIAUDITLIB\fR is not checked for existence, nor will it use the DT_SONAME │ │ │ │ │ specified in the library. If specified multiple times \f(CW\*(C`DT_AUDIT\*(C'\fR │ │ │ │ │ will contain a colon separated list of audit interfaces to use. If the linker │ │ │ │ │ finds an object with an audit entry while searching for shared libraries, │ │ │ │ │ it will add a corresponding \f(CW\*(C`DT_DEPAUDIT\*(C'\fR entry in the output file. │ │ │ │ │ -This option is only meaningful on ELF platforms supporting the rtld-audit │ │ │ │ │ +This option is only meaningful on ELF platforms supporting the rtld\-audit │ │ │ │ │ interface. │ │ │ │ │ -.IP "\fB\-b\fR \fIinput-format\fR" 4 │ │ │ │ │ +.IP "\fB\-b\fR \fIinput\-format\fR" 4 │ │ │ │ │ .IX Item "-b input-format" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fB\-\-format=\fR\fIinput-format\fR 4 │ │ │ │ │ +.IP \fB\-\-format=\fR\fIinput\-format\fR 4 │ │ │ │ │ .IX Item "--format=input-format" │ │ │ │ │ .PD │ │ │ │ │ \&\fBld\fR may be configured to support more than one kind of object │ │ │ │ │ file. If your \fBld\fR is configured this way, you can use the │ │ │ │ │ \&\fB\-b\fR option to specify the binary format for input object files │ │ │ │ │ that follow this option on the command line. Even when \fBld\fR is │ │ │ │ │ -configured to support alternative object formats, you don't usually need │ │ │ │ │ +configured to support alternative object formats, you don\*(Aqt usually need │ │ │ │ │ to specify this, as \fBld\fR should be configured to expect as a │ │ │ │ │ default input format the most usual format on each machine. │ │ │ │ │ -\&\fIinput-format\fR is a text string, the name of a particular format │ │ │ │ │ +\&\fIinput\-format\fR is a text string, the name of a particular format │ │ │ │ │ supported by the BFD libraries. (You can list the available binary │ │ │ │ │ formats with \fBobjdump \-i\fR.) │ │ │ │ │ .Sp │ │ │ │ │ You may want to use this option if you are linking files with an unusual │ │ │ │ │ binary format. You can also use \fB\-b\fR to switch formats explicitly (when │ │ │ │ │ linking object files of different formats), by including │ │ │ │ │ -\&\fB\-b\fR \fIinput-format\fR before each group of object files in a │ │ │ │ │ +\&\fB\-b\fR \fIinput\-format\fR before each group of object files in a │ │ │ │ │ particular format. │ │ │ │ │ .Sp │ │ │ │ │ The default format is taken from the environment variable │ │ │ │ │ \&\f(CW\*(C`GNUTARGET\*(C'\fR. │ │ │ │ │ .Sp │ │ │ │ │ You can also define the input format from a script, using the command │ │ │ │ │ \&\f(CW\*(C`TARGET\*(C'\fR; │ │ │ │ │ -.IP "\fB\-c\fR \fIMRI-commandfile\fR" 4 │ │ │ │ │ +.IP "\fB\-c\fR \fIMRI\-commandfile\fR" 4 │ │ │ │ │ .IX Item "-c MRI-commandfile" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fB\-\-mri\-script=\fR\fIMRI-commandfile\fR 4 │ │ │ │ │ +.IP \fB\-\-mri\-script=\fR\fIMRI\-commandfile\fR 4 │ │ │ │ │ .IX Item "--mri-script=MRI-commandfile" │ │ │ │ │ .PD │ │ │ │ │ For compatibility with linkers produced by MRI, \fBld\fR accepts script │ │ │ │ │ files written in an alternate, restricted command language, described in │ │ │ │ │ the MRI Compatible Script Files section of GNU ld documentation. │ │ │ │ │ Introduce MRI script files with │ │ │ │ │ the option \fB\-c\fR; use the \fB\-T\fR option to run linker │ │ │ │ │ -scripts written in the general-purpose \fBld\fR scripting language. │ │ │ │ │ -If \fIMRI-cmdfile\fR does not exist, \fBld\fR looks for it in the directories │ │ │ │ │ +scripts written in the general\-purpose \fBld\fR scripting language. │ │ │ │ │ +If \fIMRI\-cmdfile\fR does not exist, \fBld\fR looks for it in the directories │ │ │ │ │ specified by any \fB\-L\fR options. │ │ │ │ │ .IP \fB\-d\fR 4 │ │ │ │ │ .IX Item "-d" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-dc\fR 4 │ │ │ │ │ .IX Item "-dc" │ │ │ │ │ .IP \fB\-dp\fR 4 │ │ │ │ │ @@ -278,15 +281,15 @@ │ │ │ │ │ .IP "\fB\-P\fR \fIAUDITLIB\fR" 4 │ │ │ │ │ .IX Item "-P AUDITLIB" │ │ │ │ │ .PD │ │ │ │ │ Adds \fIAUDITLIB\fR to the \f(CW\*(C`DT_DEPAUDIT\*(C'\fR entry of the dynamic section. │ │ │ │ │ \&\fIAUDITLIB\fR is not checked for existence, nor will it use the DT_SONAME │ │ │ │ │ specified in the library. If specified multiple times \f(CW\*(C`DT_DEPAUDIT\*(C'\fR │ │ │ │ │ will contain a colon separated list of audit interfaces to use. This │ │ │ │ │ -option is only meaningful on ELF platforms supporting the rtld-audit interface. │ │ │ │ │ +option is only meaningful on ELF platforms supporting the rtld\-audit interface. │ │ │ │ │ The \-P option is provided for Solaris compatibility. │ │ │ │ │ .IP \fB\-\-enable\-linker\-version\fR 4 │ │ │ │ │ .IX Item "--enable-linker-version" │ │ │ │ │ Enables the \f(CW\*(C`LINKER_VERSION\*(C'\fR linker script directive, described │ │ │ │ │ in \fBOutput Section Data\fR. If this directive is used in a linker │ │ │ │ │ script and this option has been enabled then a string containing the │ │ │ │ │ linker version will be inserted at the current point. │ │ │ │ │ @@ -300,15 +303,15 @@ │ │ │ │ │ does not insert a version string. This is the default. │ │ │ │ │ .IP \fB\-\-enable\-non\-contiguous\-regions\fR 4 │ │ │ │ │ .IX Item "--enable-non-contiguous-regions" │ │ │ │ │ This option avoids generating an error if an input section does not │ │ │ │ │ fit a matching output section. The linker tries to allocate the input │ │ │ │ │ section to subseque nt matching output sections, and generates an │ │ │ │ │ error only if no output section is large enough. This is useful when │ │ │ │ │ -several non-contiguous memory regions are available and the input │ │ │ │ │ +several non\-contiguous memory regions are available and the input │ │ │ │ │ section does not require a particular one. The order in which input │ │ │ │ │ sections are evaluated does not change, for instance: │ │ │ │ │ .Sp │ │ │ │ │ .Vb 10 │ │ │ │ │ \& MEMORY { │ │ │ │ │ \& MEM1 (rwx) : ORIGIN = 0x1000, LENGTH = 0x14 │ │ │ │ │ \& MEM2 (rwx) : ORIGIN = 0x1000, LENGTH = 0x40 │ │ │ │ │ @@ -364,16 +367,16 @@ │ │ │ │ │ .IX Item "--exclude-modules-for-implib module,module,..." │ │ │ │ │ Specifies a list of object files or archive members, from which symbols │ │ │ │ │ should not be automatically exported, but which should be copied wholesale │ │ │ │ │ into the import library being generated during the link. The module names │ │ │ │ │ may be delimited by commas or colons, and must match exactly the filenames │ │ │ │ │ used by \fBld\fR to open the files; for archive members, this is simply │ │ │ │ │ the member name, but for object files the name listed must include and │ │ │ │ │ -match precisely any path used to specify the input file on the linker's │ │ │ │ │ -command-line. This option is available only for the i386 PE targeted port │ │ │ │ │ +match precisely any path used to specify the input file on the linker\*(Aqs │ │ │ │ │ +command\-line. This option is available only for the i386 PE targeted port │ │ │ │ │ of the linker. Symbols explicitly listed in a .def file are still exported, │ │ │ │ │ regardless of this option. │ │ │ │ │ .IP \fB\-E\fR 4 │ │ │ │ │ .IX Item "-E" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-export\-dynamic\fR 4 │ │ │ │ │ .IX Item "--export-dynamic" │ │ │ │ │ @@ -404,28 +407,28 @@ │ │ │ │ │ the description of \fB\-\-export\-all\-symbols\fR below. │ │ │ │ │ .IP \fB\-\-export\-dynamic\-symbol=\fR\fIglob\fR 4 │ │ │ │ │ .IX Item "--export-dynamic-symbol=glob" │ │ │ │ │ When creating a dynamically linked executable, symbols matching │ │ │ │ │ \&\fIglob\fR will be added to the dynamic symbol table. When creating a │ │ │ │ │ shared library, references to symbols matching \fIglob\fR will not be │ │ │ │ │ bound to the definitions within the shared library. This option is a │ │ │ │ │ -no-op when creating a shared library and \fB\-Bsymbolic\fR or │ │ │ │ │ +no\-op when creating a shared library and \fB\-Bsymbolic\fR or │ │ │ │ │ \&\fB\-\-dynamic\-list\fR are not specified. This option is only meaningful │ │ │ │ │ on ELF platforms which support shared libraries. │ │ │ │ │ .IP \fB\-\-export\-dynamic\-symbol\-list=\fR\fIfile\fR 4 │ │ │ │ │ .IX Item "--export-dynamic-symbol-list=file" │ │ │ │ │ Specify a \fB\-\-export\-dynamic\-symbol\fR for each pattern in the file. │ │ │ │ │ The format of the file is the same as the version node without │ │ │ │ │ scope and node name. See \fBVERSION\fR for more information. │ │ │ │ │ .IP \fB\-EB\fR 4 │ │ │ │ │ .IX Item "-EB" │ │ │ │ │ -Link big-endian objects. This affects the default output format. │ │ │ │ │ +Link big\-endian objects. This affects the default output format. │ │ │ │ │ .IP \fB\-EL\fR 4 │ │ │ │ │ .IX Item "-EL" │ │ │ │ │ -Link little-endian objects. This affects the default output format. │ │ │ │ │ +Link little\-endian objects. This affects the default output format. │ │ │ │ │ .IP "\fB\-f\fR \fIname\fR" 4 │ │ │ │ │ .IX Item "-f name" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-auxiliary=\fR\fIname\fR 4 │ │ │ │ │ .IX Item "--auxiliary=name" │ │ │ │ │ .PD │ │ │ │ │ When creating an ELF shared object, set the internal DT_AUXILIARY field │ │ │ │ │ @@ -437,15 +440,15 @@ │ │ │ │ │ run the program, the dynamic linker will see the DT_AUXILIARY field. If │ │ │ │ │ the dynamic linker resolves any symbols from the filter object, it will │ │ │ │ │ first check whether there is a definition in the shared object │ │ │ │ │ \&\fIname\fR. If there is one, it will be used instead of the definition │ │ │ │ │ in the filter object. The shared object \fIname\fR need not exist. │ │ │ │ │ Thus the shared object \fIname\fR may be used to provide an alternative │ │ │ │ │ implementation of certain functions, perhaps for debugging or for │ │ │ │ │ -machine-specific performance. │ │ │ │ │ +machine\-specific performance. │ │ │ │ │ .Sp │ │ │ │ │ This option may be specified more than once. The DT_AUXILIARY entries │ │ │ │ │ will be created in the order in which they appear on the command line. │ │ │ │ │ .IP "\fB\-F\fR \fIname\fR" 4 │ │ │ │ │ .IX Item "-F name" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-filter=\fR\fIname\fR 4 │ │ │ │ │ @@ -461,15 +464,15 @@ │ │ │ │ │ dynamic linker will resolve symbols according to the symbol table of the │ │ │ │ │ filter object as usual, but it will actually link to the definitions │ │ │ │ │ found in the shared object \fIname\fR. Thus the filter object can be │ │ │ │ │ used to select a subset of the symbols provided by the object │ │ │ │ │ \&\fIname\fR. │ │ │ │ │ .Sp │ │ │ │ │ Some older linkers used the \fB\-F\fR option throughout a compilation │ │ │ │ │ -toolchain for specifying object-file format for both input and output │ │ │ │ │ +toolchain for specifying object\-file format for both input and output │ │ │ │ │ object files. │ │ │ │ │ The GNU linker uses other mechanisms for this purpose: the │ │ │ │ │ \&\fB\-b\fR, \fB\-\-format\fR, \fB\-\-oformat\fR options, the │ │ │ │ │ \&\f(CW\*(C`TARGET\*(C'\fR command in linker scripts, and the \f(CW\*(C`GNUTARGET\*(C'\fR │ │ │ │ │ environment variable. │ │ │ │ │ The GNU linker will ignore the \fB\-F\fR option when not │ │ │ │ │ creating an ELF shared object. │ │ │ │ │ @@ -698,15 +701,15 @@ │ │ │ │ │ .Sp │ │ │ │ │ .Vb 1 │ │ │ │ │ \& Removed property 0xc0000002 to merge foo.o (0x1) and bar.o (not found) │ │ │ │ │ .Ve │ │ │ │ │ .Sp │ │ │ │ │ This indicates that property 0xc0000002 is removed from output when │ │ │ │ │ merging properties in \fIfoo.o\fR, whose property 0xc0000002 value │ │ │ │ │ -is 0x1, and \fIbar.o\fR, which doesn't have property 0xc0000002. │ │ │ │ │ +is 0x1, and \fIbar.o\fR, which doesn\*(Aqt have property 0xc0000002. │ │ │ │ │ .Sp │ │ │ │ │ .Vb 1 │ │ │ │ │ \& Updated property 0xc0010001 (0x1) to merge foo.o (0x1) and bar.o (0x1) │ │ │ │ │ .Ve │ │ │ │ │ .Sp │ │ │ │ │ This indicates that property 0xc0010001 value is updated to 0x1 in output │ │ │ │ │ when merging properties in \fIfoo.o\fR, whose 0xc0010001 property value │ │ │ │ │ @@ -754,24 +757,24 @@ │ │ │ │ │ .IP \fB\-N\fR 4 │ │ │ │ │ .IX Item "-N" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-omagic\fR 4 │ │ │ │ │ .IX Item "--omagic" │ │ │ │ │ .PD │ │ │ │ │ Set the text and data sections to be readable and writable. Also, do │ │ │ │ │ -not page-align the data segment, and disable linking against shared │ │ │ │ │ +not page\-align the data segment, and disable linking against shared │ │ │ │ │ libraries. If the output format supports Unix style magic numbers, │ │ │ │ │ mark the output as \f(CW\*(C`OMAGIC\*(C'\fR. Note: Although a writable text section │ │ │ │ │ -is allowed for PE-COFF targets, it does not conform to the format │ │ │ │ │ +is allowed for PE\-COFF targets, it does not conform to the format │ │ │ │ │ specification published by Microsoft. │ │ │ │ │ .IP \fB\-\-no\-omagic\fR 4 │ │ │ │ │ .IX Item "--no-omagic" │ │ │ │ │ This option negates most of the effects of the \fB\-N\fR option. It │ │ │ │ │ -sets the text section to be read-only, and forces the data segment to │ │ │ │ │ -be page-aligned. Note \- this option does not enable linking against │ │ │ │ │ +sets the text section to be read\-only, and forces the data segment to │ │ │ │ │ +be page\-aligned. Note \- this option does not enable linking against │ │ │ │ │ shared libraries. Use \fB\-Bdynamic\fR for this. │ │ │ │ │ .IP "\fB\-o\fR \fIoutput\fR" 4 │ │ │ │ │ .IX Item "-o output" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-output=\fR\fIoutput\fR 4 │ │ │ │ │ .IX Item "--output=output" │ │ │ │ │ .PD │ │ │ │ │ @@ -800,29 +803,29 @@ │ │ │ │ │ files (the first one in the \fBOBJS\fR list) whereas the second │ │ │ │ │ version of the linker command will generate an error message and not │ │ │ │ │ delete anything. │ │ │ │ │ .IP \fB\-\-dependency\-file=\fR\fIdepfile\fR 4 │ │ │ │ │ .IX Item "--dependency-file=depfile" │ │ │ │ │ Write a \fIdependency file\fR to \fIdepfile\fR. This file contains a rule │ │ │ │ │ suitable for \f(CW\*(C`make\*(C'\fR describing the output file and all the input files │ │ │ │ │ -that were read to produce it. The output is similar to the compiler's │ │ │ │ │ -output with \fB\-M \-MP\fR. Note that there is no option like the compiler's \fB\-MM\fR, │ │ │ │ │ -to exclude "system files" (which is not a well-specified concept in the │ │ │ │ │ +that were read to produce it. The output is similar to the compiler\*(Aqs │ │ │ │ │ +output with \fB\-M \-MP\fR. Note that there is no option like the compiler\*(Aqs \fB\-MM\fR, │ │ │ │ │ +to exclude "system files" (which is not a well\-specified concept in the │ │ │ │ │ linker, unlike "system headers" in the compiler). So the output from │ │ │ │ │ \&\fB\-\-dependency\-file\fR is always specific to the exact state of the │ │ │ │ │ installation where it was produced, and should not be copied into │ │ │ │ │ distributed makefiles without careful editing. │ │ │ │ │ .IP "\fB\-O\fR \fIlevel\fR" 4 │ │ │ │ │ .IX Item "-O level" │ │ │ │ │ If \fIlevel\fR is a numeric values greater than zero \fBld\fR optimizes │ │ │ │ │ the output. This might take significantly longer and therefore probably │ │ │ │ │ should only be enabled for the final binary. At the moment this │ │ │ │ │ option only affects ELF shared library generation. Future releases of │ │ │ │ │ the linker may make more use of this option. Also currently there is │ │ │ │ │ -no difference in the linker's behaviour for different non-zero values │ │ │ │ │ +no difference in the linker\*(Aqs behaviour for different non\-zero values │ │ │ │ │ of this option. Again this may change with future releases. │ │ │ │ │ .IP "\fB\-plugin\fR \fIname\fR" 4 │ │ │ │ │ .IX Item "-plugin name" │ │ │ │ │ Involve a plugin in the linking process. The \fIname\fR parameter is │ │ │ │ │ the absolute filename of the plugin. Usually this parameter is │ │ │ │ │ automatically added by the compiler, when using link time │ │ │ │ │ optimization, but users can also add their own plugins if they so │ │ │ │ │ @@ -844,15 +847,15 @@ │ │ │ │ │ The option which are covered are: \fB\-Bdynamic\fR, \fB\-Bstatic\fR, │ │ │ │ │ \&\fB\-dn\fR, \fB\-dy\fR, \fB\-call_shared\fR, \fB\-non_shared\fR, │ │ │ │ │ \&\fB\-static\fR, \fB\-N\fR, \fB\-n\fR, \fB\-\-whole\-archive\fR, │ │ │ │ │ \&\fB\-\-no\-whole\-archive\fR, \fB\-r\fR, \fB\-Ur\fR, │ │ │ │ │ \&\fB\-\-copy\-dt\-needed\-entries\fR, \fB\-\-no\-copy\-dt\-needed\-entries\fR, │ │ │ │ │ \&\fB\-\-as\-needed\fR, \fB\-\-no\-as\-needed\fR, and \fB\-a\fR. │ │ │ │ │ .Sp │ │ │ │ │ -One target for this option are specifications for \fIpkg-config\fR. When │ │ │ │ │ +One target for this option are specifications for \fIpkg\-config\fR. When │ │ │ │ │ used with the \fB\-\-libs\fR option all possibly needed libraries are │ │ │ │ │ listed and then possibly linked with all the time. It is better to return │ │ │ │ │ something as follows: │ │ │ │ │ .Sp │ │ │ │ │ .Vb 1 │ │ │ │ │ \& \-Wl,\-\-push\-state,\-\-as\-needed \-libone \-libtwo \-Wl,\-\-pop\-state │ │ │ │ │ .Ve │ │ │ │ │ @@ -881,31 +884,31 @@ │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-relocatable\fR 4 │ │ │ │ │ .IX Item "--relocatable" │ │ │ │ │ .PD │ │ │ │ │ Generate relocatable output\-\-\-i.e., generate an output file that can in │ │ │ │ │ turn serve as input to \fBld\fR. This is often called \fIpartial │ │ │ │ │ linking\fR. As a side effect, in environments that support standard Unix │ │ │ │ │ -magic numbers, this option also sets the output file's magic number to │ │ │ │ │ +magic numbers, this option also sets the output file\*(Aqs magic number to │ │ │ │ │ \&\f(CW\*(C`OMAGIC\*(C'\fR. │ │ │ │ │ If this option is not specified, an absolute file is produced. When │ │ │ │ │ linking C++ programs, this option \fIwill not\fR resolve references to │ │ │ │ │ constructors; to do that, use \fB\-Ur\fR. │ │ │ │ │ .Sp │ │ │ │ │ When an input file does not have the same format as the output file, │ │ │ │ │ partial linking is only supported if that input file does not contain any │ │ │ │ │ relocations. Different output formats can have further restrictions; for │ │ │ │ │ example some \f(CW\*(C`a.out\*(C'\fR\-based formats do not support partial linking │ │ │ │ │ with input files in other formats at all. │ │ │ │ │ .Sp │ │ │ │ │ When the relocatable output contains both contents which require │ │ │ │ │ -link-time optimization (LTO) and contents which don't require LTO, │ │ │ │ │ +link\-time optimization (LTO) and contents which don\*(Aqt require LTO, │ │ │ │ │ a .gnu_object_only section will be created to contain a relocatable │ │ │ │ │ object file, as if \fB\-r\fR is applied to all relocatable inputs │ │ │ │ │ -which don't require LTO. When processing a relocatable input with │ │ │ │ │ +which don\*(Aqt require LTO. When processing a relocatable input with │ │ │ │ │ a .gnu_object_only section, the linker will extract the .gnu_object_only │ │ │ │ │ section as a separate input. │ │ │ │ │ .Sp │ │ │ │ │ Note that since \fB\-r\fR groups some sections from different input files │ │ │ │ │ together, there may be negative impacts on code size and locality in │ │ │ │ │ final executable or shared library. │ │ │ │ │ .Sp │ │ │ │ │ @@ -926,20 +929,20 @@ │ │ │ │ │ the \fB\-rpath\fR option. │ │ │ │ │ .IP \fB\-\-rosegment\fR 4 │ │ │ │ │ .IX Item "--rosegment" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-no\-rosegment\fR 4 │ │ │ │ │ .IX Item "--no-rosegment" │ │ │ │ │ .PD │ │ │ │ │ -Attempt to ensure that only a single read-only, non-code segment is │ │ │ │ │ +Attempt to ensure that only a single read\-only, non\-code segment is │ │ │ │ │ created. Only useful when used in conjunction with the \fB\-z │ │ │ │ │ -separate-code\fR option. The resulting binaries should be smaller than │ │ │ │ │ -if \fB\-z separate-code\fR is used on its own. Without this option, │ │ │ │ │ -or if \fB\-\-no\-rosegment\fR is specified, the \fB\-z separate-code\fR │ │ │ │ │ -option will create two read-only segments, one before the code segment │ │ │ │ │ +separate\-code\fR option. The resulting binaries should be smaller than │ │ │ │ │ +if \fB\-z separate\-code\fR is used on its own. Without this option, │ │ │ │ │ +or if \fB\-\-no\-rosegment\fR is specified, the \fB\-z separate\-code\fR │ │ │ │ │ +option will create two read\-only segments, one before the code segment │ │ │ │ │ and one after it. │ │ │ │ │ .Sp │ │ │ │ │ The name of the options are misleading, but they have been chosen in │ │ │ │ │ order for the linker to be compatible with the LLD and GOLD linkers. │ │ │ │ │ .Sp │ │ │ │ │ Thse options are only supported by ELF targets. │ │ │ │ │ .IP \fB\-s\fR 4 │ │ │ │ │ @@ -981,28 +984,28 @@ │ │ │ │ │ .IP "\fB\-T\fR \fIscriptfile\fR" 4 │ │ │ │ │ .IX Item "-T scriptfile" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-script=\fR\fIscriptfile\fR 4 │ │ │ │ │ .IX Item "--script=scriptfile" │ │ │ │ │ .PD │ │ │ │ │ Use \fIscriptfile\fR as the linker script. This script replaces │ │ │ │ │ -\&\fBld\fR's default linker script (rather than adding to it), │ │ │ │ │ +\&\fBld\fR\*(Aqs default linker script (rather than adding to it), │ │ │ │ │ unless the script contains \f(CW\*(C`INSERT\*(C'\fR, so \fIcommandfile\fR must │ │ │ │ │ specify everything necessary to describe the output file. │ │ │ │ │ .Sp │ │ │ │ │ If \fIscriptfile\fR does not exist in the current directory, \f(CW\*(C`ld\*(C'\fR │ │ │ │ │ looks for it in the directories specified by any preceding \fB\-L\fR │ │ │ │ │ options. │ │ │ │ │ .Sp │ │ │ │ │ Command line options that appear before the \fB\-T\fR option can │ │ │ │ │ affect the script, but command line options that appear after it do │ │ │ │ │ not. │ │ │ │ │ .Sp │ │ │ │ │ Multiple \fB\-T\fR options will accumulate if they are augmenting the │ │ │ │ │ -current script, otherwise the last, non-augmenting, \fB\-T\fR option │ │ │ │ │ +current script, otherwise the last, non\-augmenting, \fB\-T\fR option │ │ │ │ │ will be used. │ │ │ │ │ .Sp │ │ │ │ │ There are other ways of specifying linker scripts. See │ │ │ │ │ .IP "\fB\-dT\fR \fIscriptfile\fR" 4 │ │ │ │ │ .IX Item "-dT scriptfile" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-default\-script=\fR\fIscriptfile\fR 4 │ │ │ │ │ @@ -1119,28 +1122,28 @@ │ │ │ │ │ .IP \fB\-X\fR 4 │ │ │ │ │ .IX Item "-X" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-discard\-locals\fR 4 │ │ │ │ │ .IX Item "--discard-locals" │ │ │ │ │ .PD │ │ │ │ │ Delete all temporary local symbols. (These symbols start with │ │ │ │ │ -system-specific local label prefixes, typically \fB.L\fR for ELF systems │ │ │ │ │ +system\-specific local label prefixes, typically \fB.L\fR for ELF systems │ │ │ │ │ or \fBL\fR for traditional a.out systems.) │ │ │ │ │ .IP "\fB\-y\fR \fIsymbol\fR" 4 │ │ │ │ │ .IX Item "-y symbol" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-trace\-symbol=\fR\fIsymbol\fR 4 │ │ │ │ │ .IX Item "--trace-symbol=symbol" │ │ │ │ │ .PD │ │ │ │ │ Print the name of each linked file in which \fIsymbol\fR appears. This │ │ │ │ │ option may be given any number of times. On many systems it is necessary │ │ │ │ │ to prepend an underscore. │ │ │ │ │ .Sp │ │ │ │ │ This option is useful when you have an undefined symbol in your link but │ │ │ │ │ -don't know where the reference is coming from. │ │ │ │ │ +don\*(Aqt know where the reference is coming from. │ │ │ │ │ .IP "\fB\-Y\fR \fIpath\fR" 4 │ │ │ │ │ .IX Item "-Y path" │ │ │ │ │ Add \fIpath\fR to the default library search path. This option exists │ │ │ │ │ for Solaris compatibility. │ │ │ │ │ .IP "\fB\-z\fR \fIkeyword\fR" 4 │ │ │ │ │ .IX Item "-z keyword" │ │ │ │ │ The recognized keywords are: │ │ │ │ │ @@ -1201,26 +1204,26 @@ │ │ │ │ │ .IX Item "common-page-size=value" │ │ │ │ │ Set the page size most commonly used to \fIvalue\fR. Memory image │ │ │ │ │ layout will be optimized to minimize memory pages if the system is │ │ │ │ │ using pages of this size. │ │ │ │ │ .IP \fBdefs\fR 4 │ │ │ │ │ .IX Item "defs" │ │ │ │ │ Report unresolved symbol references from regular object files. This │ │ │ │ │ -is done even if the linker is creating a non-symbolic shared library. │ │ │ │ │ +is done even if the linker is creating a non\-symbolic shared library. │ │ │ │ │ This option is the inverse of \fB\-z undefs\fR. │ │ │ │ │ -.IP \fBdynamic-undefined-weak\fR 4 │ │ │ │ │ +.IP \fBdynamic\-undefined\-weak\fR 4 │ │ │ │ │ .IX Item "dynamic-undefined-weak" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fBnodynamic-undefined-weak\fR 4 │ │ │ │ │ +.IP \fBnodynamic\-undefined\-weak\fR 4 │ │ │ │ │ .IX Item "nodynamic-undefined-weak" │ │ │ │ │ .PD │ │ │ │ │ Make undefined weak symbols dynamic when building a dynamic object, │ │ │ │ │ if they are referenced from a regular object file and not forced local │ │ │ │ │ by symbol visibility or versioning. Do not make them dynamic if │ │ │ │ │ -\&\fBnodynamic-undefined-weak\fR. If neither option is given, a target │ │ │ │ │ +\&\fBnodynamic\-undefined\-weak\fR. If neither option is given, a target │ │ │ │ │ may default to either option being in force, or make some other │ │ │ │ │ selection of undefined weak symbols dynamic. Not all targets support │ │ │ │ │ these options. │ │ │ │ │ .IP \fBexecstack\fR 4 │ │ │ │ │ .IX Item "execstack" │ │ │ │ │ Marks the object as requiring executable stack. │ │ │ │ │ .IP \fBglobal\fR 4 │ │ │ │ │ @@ -1230,38 +1233,38 @@ │ │ │ │ │ of subsequently loaded libraries. │ │ │ │ │ .IP \fBglobalaudit\fR 4 │ │ │ │ │ .IX Item "globalaudit" │ │ │ │ │ This option is only meaningful when building a dynamic executable. │ │ │ │ │ This option marks the executable as requiring global auditing by │ │ │ │ │ setting the \f(CW\*(C`DF_1_GLOBAUDIT\*(C'\fR bit in the \f(CW\*(C`DT_FLAGS_1\*(C'\fR dynamic │ │ │ │ │ tag. Global auditing requires that any auditing library defined via │ │ │ │ │ -the \fB\-\-depaudit\fR or \fB\-P\fR command-line options be run for │ │ │ │ │ +the \fB\-\-depaudit\fR or \fB\-P\fR command\-line options be run for │ │ │ │ │ all dynamic objects loaded by the application. │ │ │ │ │ .IP \fBibtplt\fR 4 │ │ │ │ │ .IX Item "ibtplt" │ │ │ │ │ Generate Intel Indirect Branch Tracking (IBT) enabled PLT entries. │ │ │ │ │ Supported for Linux/i386 and Linux/x86_64. │ │ │ │ │ .IP \fBibt\fR 4 │ │ │ │ │ .IX Item "ibt" │ │ │ │ │ Generate GNU_PROPERTY_X86_FEATURE_1_IBT in .note.gnu.property section │ │ │ │ │ to indicate compatibility with IBT. This also implies \fBibtplt\fR. │ │ │ │ │ Supported for Linux/i386 and Linux/x86_64. │ │ │ │ │ -.IP \fBindirect-extern-access\fR 4 │ │ │ │ │ +.IP \fBindirect\-extern\-access\fR 4 │ │ │ │ │ .IX Item "indirect-extern-access" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fBnoindirect-extern-access\fR 4 │ │ │ │ │ +.IP \fBnoindirect\-extern\-access\fR 4 │ │ │ │ │ .IX Item "noindirect-extern-access" │ │ │ │ │ .PD │ │ │ │ │ Generate GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS in │ │ │ │ │ \&.note.gnu.property section to indicate that object file requires │ │ │ │ │ canonical function pointers and cannot be used with copy relocation. │ │ │ │ │ -This option also implies \fBnoextern-protected-data\fR and │ │ │ │ │ +This option also implies \fBnoextern\-protected\-data\fR and │ │ │ │ │ \&\fBnocopyreloc\fR. Supported for i386 and x86\-64. │ │ │ │ │ .Sp │ │ │ │ │ -\&\fBnoindirect-extern-access\fR removes │ │ │ │ │ +\&\fBnoindirect\-extern\-access\fR removes │ │ │ │ │ GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS from .note.gnu.property │ │ │ │ │ section. │ │ │ │ │ .IP \fBinitfirst\fR 4 │ │ │ │ │ .IX Item "initfirst" │ │ │ │ │ This option is only meaningful when building a shared object. │ │ │ │ │ It marks the object so that its runtime initialization will occur │ │ │ │ │ before the runtime initialization of any other objects brought into │ │ │ │ │ @@ -1346,72 +1349,72 @@ │ │ │ │ │ .IX Item "lazy" │ │ │ │ │ When generating an executable or shared library, mark it to tell the │ │ │ │ │ dynamic linker to defer function call resolution to the point when │ │ │ │ │ the function is called (lazy binding), rather than at load time. │ │ │ │ │ Lazy binding is the default. │ │ │ │ │ .IP \fBloadfltr\fR 4 │ │ │ │ │ .IX Item "loadfltr" │ │ │ │ │ -Specify that the object's filters be processed immediately at runtime. │ │ │ │ │ +Specify that the object\*(Aqs filters be processed immediately at runtime. │ │ │ │ │ .IP \fBmax\-page\-size=\fR\fIvalue\fR 4 │ │ │ │ │ .IX Item "max-page-size=value" │ │ │ │ │ Set the maximum memory page size supported to \fIvalue\fR. │ │ │ │ │ -.IP \fBmark-plt\fR 4 │ │ │ │ │ +.IP \fBmark\-plt\fR 4 │ │ │ │ │ .IX Item "mark-plt" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fBnomark-plt\fR 4 │ │ │ │ │ +.IP \fBnomark\-plt\fR 4 │ │ │ │ │ .IX Item "nomark-plt" │ │ │ │ │ .PD │ │ │ │ │ Mark PLT entries with dynamic tags, DT_X86_64_PLT, DT_X86_64_PLTSZ and │ │ │ │ │ -DT_X86_64_PLTENT. Since this option stores a non-zero value in the │ │ │ │ │ +DT_X86_64_PLTENT. Since this option stores a non\-zero value in the │ │ │ │ │ r_addend field of R_X86_64_JUMP_SLOT relocations, the resulting │ │ │ │ │ executables and shared libraries are incompatible with dynamic linkers, │ │ │ │ │ such as those in older versions of glibc without the change to ignore │ │ │ │ │ r_addend in R_X86_64_GLOB_DAT and R_X86_64_JUMP_SLOT relocations, which │ │ │ │ │ -don't ignore the r_addend field of R_X86_64_JUMP_SLOT relocations. │ │ │ │ │ +don\*(Aqt ignore the r_addend field of R_X86_64_JUMP_SLOT relocations. │ │ │ │ │ Supported for x86_64. │ │ │ │ │ .IP \fBmuldefs\fR 4 │ │ │ │ │ .IX Item "muldefs" │ │ │ │ │ Allow multiple definitions. │ │ │ │ │ .IP \fBnocopyreloc\fR 4 │ │ │ │ │ .IX Item "nocopyreloc" │ │ │ │ │ Disable linker generated .dynbss variables used in place of variables │ │ │ │ │ defined in shared libraries. May result in dynamic text relocations. │ │ │ │ │ .IP \fBnodefaultlib\fR 4 │ │ │ │ │ .IX Item "nodefaultlib" │ │ │ │ │ Specify that the dynamic loader search for dependencies of this object │ │ │ │ │ should ignore any default library search paths. │ │ │ │ │ .IP \fBnodelete\fR 4 │ │ │ │ │ .IX Item "nodelete" │ │ │ │ │ -Specify that the object shouldn't be unloaded at runtime. │ │ │ │ │ +Specify that the object shouldn\*(Aqt be unloaded at runtime. │ │ │ │ │ .IP \fBnodlopen\fR 4 │ │ │ │ │ .IX Item "nodlopen" │ │ │ │ │ Specify that the object is not available to \f(CW\*(C`dlopen\*(C'\fR. │ │ │ │ │ .IP \fBnodump\fR 4 │ │ │ │ │ .IX Item "nodump" │ │ │ │ │ Specify that the object can not be dumped by \f(CW\*(C`dldump\*(C'\fR. │ │ │ │ │ .IP \fBnoexecstack\fR 4 │ │ │ │ │ .IX Item "noexecstack" │ │ │ │ │ Marks the object as not requiring executable stack. │ │ │ │ │ -.IP \fBnoextern-protected-data\fR 4 │ │ │ │ │ +.IP \fBnoextern\-protected\-data\fR 4 │ │ │ │ │ .IX Item "noextern-protected-data" │ │ │ │ │ -Don't treat protected data symbols as external when building a shared │ │ │ │ │ +Don\*(Aqt treat protected data symbols as external when building a shared │ │ │ │ │ library. This option overrides the linker backend default. It can be │ │ │ │ │ used to work around incorrect relocations against protected data symbols │ │ │ │ │ generated by compiler. Updates on protected data symbols by another │ │ │ │ │ -module aren't visible to the resulting shared library. Supported for │ │ │ │ │ +module aren\*(Aqt visible to the resulting shared library. Supported for │ │ │ │ │ i386 and x86\-64. │ │ │ │ │ -.IP \fBnoreloc-overflow\fR 4 │ │ │ │ │ +.IP \fBnoreloc\-overflow\fR 4 │ │ │ │ │ .IX Item "noreloc-overflow" │ │ │ │ │ Disable relocation overflow check. This can be used to disable │ │ │ │ │ relocation overflow check if there will be no dynamic relocation │ │ │ │ │ -overflow at run-time. Supported for x86_64. │ │ │ │ │ -.IP \fBmemory-seal\fR 4 │ │ │ │ │ +overflow at run\-time. Supported for x86_64. │ │ │ │ │ +.IP \fBmemory\-seal\fR 4 │ │ │ │ │ .IX Item "memory-seal" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fBnomemory-seal\fR 4 │ │ │ │ │ +.IP \fBnomemory\-seal\fR 4 │ │ │ │ │ .IX Item "nomemory-seal" │ │ │ │ │ .PD │ │ │ │ │ Instruct the executable or shared library that the all PT_LOAD segments │ │ │ │ │ should be sealed to avoid further manipulation (such as changing the │ │ │ │ │ protection flags, the segment size, or remove the mapping). │ │ │ │ │ This is a security hardening that requires system support. This │ │ │ │ │ generates GNU_PROPERTY_MEMORY_SEAL in .note.gnu.property section │ │ │ │ │ @@ -1421,125 +1424,125 @@ │ │ │ │ │ dynamic linker to resolve all symbols when the program is started, or │ │ │ │ │ when the shared library is loaded by dlopen, instead of deferring │ │ │ │ │ function call resolution to the point when the function is first │ │ │ │ │ called. │ │ │ │ │ .IP \fBorigin\fR 4 │ │ │ │ │ .IX Item "origin" │ │ │ │ │ Specify that the object requires \fR\f(CB$ORIGIN\fR\fB\fR handling in paths. │ │ │ │ │ -.IP \fBpack-relative-relocs\fR 4 │ │ │ │ │ +.IP \fBpack\-relative\-relocs\fR 4 │ │ │ │ │ .IX Item "pack-relative-relocs" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fBnopack-relative-relocs\fR 4 │ │ │ │ │ +.IP \fBnopack\-relative\-relocs\fR 4 │ │ │ │ │ .IX Item "nopack-relative-relocs" │ │ │ │ │ .PD │ │ │ │ │ -Generate compact relative relocation in position-independent executable │ │ │ │ │ +Generate compact relative relocation in position\-independent executable │ │ │ │ │ and shared library. It adds \f(CW\*(C`DT_RELR\*(C'\fR, \f(CW\*(C`DT_RELRSZ\*(C'\fR and │ │ │ │ │ \&\f(CW\*(C`DT_RELRENT\*(C'\fR entries to the dynamic section. It is ignored when │ │ │ │ │ -building position-dependent executable and relocatable output. │ │ │ │ │ -\&\fBnopack-relative-relocs\fR is the default, which disables compact │ │ │ │ │ +building position\-dependent executable and relocatable output. │ │ │ │ │ +\&\fBnopack\-relative\-relocs\fR is the default, which disables compact │ │ │ │ │ relative relocation. When linked against the GNU C Library, a │ │ │ │ │ GLIBC_ABI_DT_RELR symbol version dependency on the shared C Library is │ │ │ │ │ added to the output. Supported for i386 and x86\-64. │ │ │ │ │ .IP \fBrelro\fR 4 │ │ │ │ │ .IX Item "relro" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fBnorelro\fR 4 │ │ │ │ │ .IX Item "norelro" │ │ │ │ │ .PD │ │ │ │ │ Create an ELF \f(CW\*(C`PT_GNU_RELRO\*(C'\fR segment header in the object. This │ │ │ │ │ -specifies a memory segment that should be made read-only after │ │ │ │ │ -relocation, if supported. Specifying \fBcommon-page-size\fR smaller │ │ │ │ │ +specifies a memory segment that should be made read\-only after │ │ │ │ │ +relocation, if supported. Specifying \fBcommon\-page\-size\fR smaller │ │ │ │ │ than the system page size will render this protection ineffective. │ │ │ │ │ -Don't create an ELF \f(CW\*(C`PT_GNU_RELRO\*(C'\fR segment if \fBnorelro\fR. │ │ │ │ │ -.IP \fBreport-relative-reloc\fR 4 │ │ │ │ │ +Don\*(Aqt create an ELF \f(CW\*(C`PT_GNU_RELRO\*(C'\fR segment if \fBnorelro\fR. │ │ │ │ │ +.IP \fBreport\-relative\-reloc\fR 4 │ │ │ │ │ .IX Item "report-relative-reloc" │ │ │ │ │ Report dynamic relative relocations generated by linker. Supported for │ │ │ │ │ Linux/i386 and Linux/x86_64. │ │ │ │ │ .IP \fBsectionheader\fR 4 │ │ │ │ │ .IX Item "sectionheader" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fBnosectionheader\fR 4 │ │ │ │ │ .IX Item "nosectionheader" │ │ │ │ │ .PD │ │ │ │ │ -Generate section header. Don't generate section header if │ │ │ │ │ +Generate section header. Don\*(Aqt generate section header if │ │ │ │ │ \&\fBnosectionheader\fR is used. \fBsectionheader\fR is the default. │ │ │ │ │ -.IP \fBseparate-code\fR 4 │ │ │ │ │ +.IP \fBseparate\-code\fR 4 │ │ │ │ │ .IX Item "separate-code" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fBnoseparate-code\fR 4 │ │ │ │ │ +.IP \fBnoseparate\-code\fR 4 │ │ │ │ │ .IX Item "noseparate-code" │ │ │ │ │ .PD │ │ │ │ │ Create separate code \f(CW\*(C`PT_LOAD\*(C'\fR segment header in the object. This │ │ │ │ │ specifies a memory segment that should contain only instructions and must │ │ │ │ │ -be in wholly disjoint pages from any other data. Don't create separate │ │ │ │ │ -code \f(CW\*(C`PT_LOAD\*(C'\fR segment if \fBnoseparate-code\fR is used. │ │ │ │ │ +be in wholly disjoint pages from any other data. Don\*(Aqt create separate │ │ │ │ │ +code \f(CW\*(C`PT_LOAD\*(C'\fR segment if \fBnoseparate\-code\fR is used. │ │ │ │ │ .IP \fBshstk\fR 4 │ │ │ │ │ .IX Item "shstk" │ │ │ │ │ Generate GNU_PROPERTY_X86_FEATURE_1_SHSTK in .note.gnu.property section │ │ │ │ │ to indicate compatibility with Intel Shadow Stack. Supported for │ │ │ │ │ Linux/i386 and Linux/x86_64. │ │ │ │ │ .IP \fBstack\-size=\fR\fIvalue\fR 4 │ │ │ │ │ .IX Item "stack-size=value" │ │ │ │ │ Specify a stack size for an ELF \f(CW\*(C`PT_GNU_STACK\*(C'\fR segment. │ │ │ │ │ -Specifying zero will override any default non-zero sized │ │ │ │ │ +Specifying zero will override any default non\-zero sized │ │ │ │ │ \&\f(CW\*(C`PT_GNU_STACK\*(C'\fR segment creation. │ │ │ │ │ -.IP \fBstart-stop-gc\fR 4 │ │ │ │ │ +.IP \fBstart\-stop\-gc\fR 4 │ │ │ │ │ .IX Item "start-stop-gc" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fBnostart-stop-gc\fR 4 │ │ │ │ │ +.IP \fBnostart\-stop\-gc\fR 4 │ │ │ │ │ .IX Item "nostart-stop-gc" │ │ │ │ │ .PD │ │ │ │ │ When \fB\-\-gc\-sections\fR is in effect, a reference from a retained │ │ │ │ │ section to \f(CW\*(C`_\|_start_SECNAME\*(C'\fR or \f(CW\*(C`_\|_stop_SECNAME\*(C'\fR causes all │ │ │ │ │ input sections named \f(CW\*(C`SECNAME\*(C'\fR to also be retained, if │ │ │ │ │ \&\f(CW\*(C`SECNAME\*(C'\fR is representable as a C identifier and either │ │ │ │ │ \&\f(CW\*(C`_\|_start_SECNAME\*(C'\fR or \f(CW\*(C`_\|_stop_SECNAME\*(C'\fR is synthesized by the │ │ │ │ │ -linker. \fB\-z start-stop-gc\fR disables this effect, allowing │ │ │ │ │ +linker. \fB\-z start\-stop\-gc\fR disables this effect, allowing │ │ │ │ │ sections to be garbage collected as if the special synthesized symbols │ │ │ │ │ -were not defined. \fB\-z start-stop-gc\fR has no effect on a │ │ │ │ │ +were not defined. \fB\-z start\-stop\-gc\fR has no effect on a │ │ │ │ │ definition of \f(CW\*(C`_\|_start_SECNAME\*(C'\fR or \f(CW\*(C`_\|_stop_SECNAME\*(C'\fR in an │ │ │ │ │ object file or linker script. Such a definition will prevent the │ │ │ │ │ linker providing a synthesized \f(CW\*(C`_\|_start_SECNAME\*(C'\fR or │ │ │ │ │ \&\f(CW\*(C`_\|_stop_SECNAME\*(C'\fR respectively, and therefore the special │ │ │ │ │ treatment by garbage collection for those references. │ │ │ │ │ .IP \fBstart\-stop\-visibility=\fR\fIvalue\fR 4 │ │ │ │ │ .IX Item "start-stop-visibility=value" │ │ │ │ │ Specify the ELF symbol visibility for synthesized │ │ │ │ │ \&\f(CW\*(C`_\|_start_SECNAME\*(C'\fR and \f(CW\*(C`_\|_stop_SECNAME\*(C'\fR symbols. \fIvalue\fR must be exactly \fBdefault\fR, │ │ │ │ │ \&\fBinternal\fR, \fBhidden\fR, or \fBprotected\fR. If no \fB\-z │ │ │ │ │ -start-stop-visibility\fR option is given, \fBprotected\fR is used for │ │ │ │ │ -compatibility with historical practice. However, it's highly │ │ │ │ │ +start\-stop\-visibility\fR option is given, \fBprotected\fR is used for │ │ │ │ │ +compatibility with historical practice. However, it\*(Aqs highly │ │ │ │ │ recommended to use \fB\-z start\-stop\-visibility=hidden\fR in new │ │ │ │ │ programs and shared libraries so that these symbols are not exported │ │ │ │ │ -between shared objects, which is not usually what's intended. │ │ │ │ │ +between shared objects, which is not usually what\*(Aqs intended. │ │ │ │ │ .IP \fBtext\fR 4 │ │ │ │ │ .IX Item "text" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fBnotext\fR 4 │ │ │ │ │ .IX Item "notext" │ │ │ │ │ .IP \fBtextoff\fR 4 │ │ │ │ │ .IX Item "textoff" │ │ │ │ │ .PD │ │ │ │ │ -Report an error if DT_TEXTREL is set, i.e., if the position-independent │ │ │ │ │ -or shared object has dynamic relocations in read-only sections. Don't │ │ │ │ │ +Report an error if DT_TEXTREL is set, i.e., if the position\-independent │ │ │ │ │ +or shared object has dynamic relocations in read\-only sections. Don\*(Aqt │ │ │ │ │ report an error if \fBnotext\fR or \fBtextoff\fR. │ │ │ │ │ .IP \fBundefs\fR 4 │ │ │ │ │ .IX Item "undefs" │ │ │ │ │ Do not report unresolved symbol references from regular object files, │ │ │ │ │ either when creating an executable, or when creating a shared library. │ │ │ │ │ This option is the inverse of \fB\-z defs\fR. │ │ │ │ │ -.IP \fBunique-symbol\fR 4 │ │ │ │ │ +.IP \fBunique\-symbol\fR 4 │ │ │ │ │ .IX Item "unique-symbol" │ │ │ │ │ .PD 0 │ │ │ │ │ -.IP \fBnounique-symbol\fR 4 │ │ │ │ │ +.IP \fBnounique\-symbol\fR 4 │ │ │ │ │ .IX Item "nounique-symbol" │ │ │ │ │ .PD │ │ │ │ │ Avoid duplicated local symbol names in the symbol string table. Append │ │ │ │ │ -".\f(CW\*(C`number\*(C'\fR" to duplicated local symbol names if \fBunique-symbol\fR │ │ │ │ │ -is used. \fBnounique-symbol\fR is the default. │ │ │ │ │ +".\f(CW\*(C`number\*(C'\fR" to duplicated local symbol names if \fBunique\-symbol\fR │ │ │ │ │ +is used. \fBnounique\-symbol\fR is the default. │ │ │ │ │ .IP \fBx86\-64\-baseline\fR 4 │ │ │ │ │ .IX Item "x86-64-baseline" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fBx86\-64\-v2\fR 4 │ │ │ │ │ .IX Item "x86-64-v2" │ │ │ │ │ .IP \fBx86\-64\-v3\fR 4 │ │ │ │ │ .IX Item "x86-64-v3" │ │ │ │ │ @@ -1619,17 +1622,17 @@ │ │ │ │ │ .PD │ │ │ │ │ This option affects ELF DT_NEEDED tags for dynamic libraries mentioned │ │ │ │ │ on the command line after the \fB\-\-as\-needed\fR option. Normally │ │ │ │ │ the linker will add a DT_NEEDED tag for each dynamic library mentioned │ │ │ │ │ on the command line, regardless of whether the library is actually │ │ │ │ │ needed or not. \fB\-\-as\-needed\fR causes a DT_NEEDED tag to only be │ │ │ │ │ emitted for a library that \fIat that point in the link\fR satisfies a │ │ │ │ │ -non-weak undefined symbol reference from a regular object file or, if │ │ │ │ │ +non\-weak undefined symbol reference from a regular object file or, if │ │ │ │ │ the library is not found in the DT_NEEDED lists of other needed libraries, a │ │ │ │ │ -non-weak undefined symbol reference from another needed dynamic library. │ │ │ │ │ +non\-weak undefined symbol reference from another needed dynamic library. │ │ │ │ │ Object files or libraries appearing on the command line \fIafter\fR │ │ │ │ │ the library in question do not affect whether the library is seen as │ │ │ │ │ needed. This is similar to the rules for extraction of object files │ │ │ │ │ from archives. \fB\-\-no\-as\-needed\fR restores the default behaviour. │ │ │ │ │ .Sp │ │ │ │ │ Note: On Linux based systems the \fB\-\-as\-needed\fR option also has │ │ │ │ │ an affect on the behaviour of the \fB\-\-rpath\fR and │ │ │ │ │ @@ -1682,15 +1685,15 @@ │ │ │ │ │ Do not link against shared libraries. This is only meaningful on │ │ │ │ │ platforms for which shared libraries are supported. The different │ │ │ │ │ variants of this option are for compatibility with various systems. You │ │ │ │ │ may use this option multiple times on the command line: it affects │ │ │ │ │ library searching for \fB\-l\fR options which follow it. This │ │ │ │ │ option also implies \fB\-\-unresolved\-symbols=report\-all\fR. This │ │ │ │ │ option can be used with \fB\-shared\fR. Doing so means that a │ │ │ │ │ -shared library is being created but that all of the library's external │ │ │ │ │ +shared library is being created but that all of the library\*(Aqs external │ │ │ │ │ references must be resolved by pulling in entries from static │ │ │ │ │ libraries. │ │ │ │ │ .IP \fB\-Bsymbolic\fR 4 │ │ │ │ │ .IX Item "-Bsymbolic" │ │ │ │ │ When creating a shared library, bind references to global symbols to the │ │ │ │ │ definition within the shared library, if any. Normally, it is possible │ │ │ │ │ for a program linked against a shared library to override the definition │ │ │ │ │ @@ -1702,19 +1705,19 @@ │ │ │ │ │ symbols to the definition within the shared library, if any. │ │ │ │ │ This option is only meaningful on ELF platforms which support shared │ │ │ │ │ libraries. │ │ │ │ │ .IP \fB\-Bno\-symbolic\fR 4 │ │ │ │ │ .IX Item "-Bno-symbolic" │ │ │ │ │ This option can cancel previously specified \fB\-Bsymbolic\fR and │ │ │ │ │ \&\fB\-Bsymbolic\-functions\fR. │ │ │ │ │ -.IP \fB\-\-dynamic\-list=\fR\fIdynamic-list-file\fR 4 │ │ │ │ │ +.IP \fB\-\-dynamic\-list=\fR\fIdynamic\-list\-file\fR 4 │ │ │ │ │ .IX Item "--dynamic-list=dynamic-list-file" │ │ │ │ │ Specify the name of a dynamic list file to the linker. This is │ │ │ │ │ typically used when creating shared libraries to specify a list of │ │ │ │ │ -global symbols whose references shouldn't be bound to the definition │ │ │ │ │ +global symbols whose references shouldn\*(Aqt be bound to the definition │ │ │ │ │ within the shared library, or creating dynamically linked executables │ │ │ │ │ to specify a list of symbols which should be added to the symbol table │ │ │ │ │ in the executable. This option is only meaningful on ELF platforms │ │ │ │ │ which support shared libraries. │ │ │ │ │ .Sp │ │ │ │ │ The format of the dynamic list is the same as the version node without │ │ │ │ │ scope and node name. See \fBVERSION\fR for more information. │ │ │ │ │ @@ -1735,27 +1738,27 @@ │ │ │ │ │ .IX Item "--no-check-sections" │ │ │ │ │ .PD │ │ │ │ │ Asks the linker \fInot\fR to check section addresses after they have │ │ │ │ │ been assigned to see if there are any overlaps. Normally the linker will │ │ │ │ │ perform this check, and if it finds any overlaps it will produce │ │ │ │ │ suitable error messages. The linker does know about, and does make │ │ │ │ │ allowances for sections in overlays. The default behaviour can be │ │ │ │ │ -restored by using the command-line switch \fB\-\-check\-sections\fR. │ │ │ │ │ +restored by using the command\-line switch \fB\-\-check\-sections\fR. │ │ │ │ │ Section overlap is not usually checked for relocatable links. You can │ │ │ │ │ force checking in that case by using the \fB\-\-check\-sections\fR │ │ │ │ │ option. │ │ │ │ │ .IP \fB\-\-copy\-dt\-needed\-entries\fR 4 │ │ │ │ │ .IX Item "--copy-dt-needed-entries" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-no\-copy\-dt\-needed\-entries\fR 4 │ │ │ │ │ .IX Item "--no-copy-dt-needed-entries" │ │ │ │ │ .PD │ │ │ │ │ This option affects the treatment of dynamic libraries referred to │ │ │ │ │ by DT_NEEDED tags \fIinside\fR ELF dynamic libraries mentioned on the │ │ │ │ │ -command line. Normally the linker won't add a DT_NEEDED tag to the │ │ │ │ │ +command line. Normally the linker won\*(Aqt add a DT_NEEDED tag to the │ │ │ │ │ output binary for each library mentioned in a DT_NEEDED tag in an │ │ │ │ │ input dynamic library. With \fB\-\-copy\-dt\-needed\-entries\fR │ │ │ │ │ specified on the command line however any dynamic libraries that │ │ │ │ │ follow it will have their DT_NEEDED entries added. The default │ │ │ │ │ behaviour can be restored with \fB\-\-no\-copy\-dt\-needed\-entries\fR. │ │ │ │ │ .Sp │ │ │ │ │ This option also has an effect on the resolution of symbols in dynamic │ │ │ │ │ @@ -1792,39 +1795,39 @@ │ │ │ │ │ usually wasted: the types are usually small but the names are often not. │ │ │ │ │ \&\fB\-\-ctf\-variables\fR causes the generation of such a section. │ │ │ │ │ The default behaviour can be restored with \fB\-\-no\-ctf\-variables\fR. │ │ │ │ │ .IP \fB\-\-ctf\-share\-types=\fR\fImethod\fR 4 │ │ │ │ │ .IX Item "--ctf-share-types=method" │ │ │ │ │ Adjust the method used to share types between translation units in CTF. │ │ │ │ │ .RS 4 │ │ │ │ │ -.IP \fBshare-unconflicted\fR 4 │ │ │ │ │ +.IP \fBshare\-unconflicted\fR 4 │ │ │ │ │ .IX Item "share-unconflicted" │ │ │ │ │ Put all types that do not have ambiguous definitions into the shared dictionary, │ │ │ │ │ where debuggers can easily access them, even if they only occur in one │ │ │ │ │ translation unit. This is the default. │ │ │ │ │ -.IP \fBshare-duplicated\fR 4 │ │ │ │ │ +.IP \fBshare\-duplicated\fR 4 │ │ │ │ │ .IX Item "share-duplicated" │ │ │ │ │ Put only types that occur in multiple translation units into the shared │ │ │ │ │ -dictionary: types with only one definition go into per-translation-unit │ │ │ │ │ +dictionary: types with only one definition go into per\-translation\-unit │ │ │ │ │ dictionaries. Types with ambiguous definitions in multiple translation units │ │ │ │ │ -always go into per-translation-unit dictionaries. This tends to make the CTF │ │ │ │ │ +always go into per\-translation\-unit dictionaries. This tends to make the CTF │ │ │ │ │ larger, but may reduce the amount of CTF in the shared dictionary. For very │ │ │ │ │ large projects this may speed up opening the CTF and save memory in the CTF │ │ │ │ │ consumer at runtime. │ │ │ │ │ .RE │ │ │ │ │ .RS 4 │ │ │ │ │ .RE │ │ │ │ │ .IP \fB\-\-no\-define\-common\fR 4 │ │ │ │ │ .IX Item "--no-define-common" │ │ │ │ │ This option inhibits the assignment of addresses to common symbols. │ │ │ │ │ The script command \f(CW\*(C`INHIBIT_COMMON_ALLOCATION\*(C'\fR has the same effect. │ │ │ │ │ .Sp │ │ │ │ │ The \fB\-\-no\-define\-common\fR option allows decoupling │ │ │ │ │ the decision to assign addresses to Common symbols from the choice │ │ │ │ │ -of the output file type; otherwise a non-Relocatable output type │ │ │ │ │ +of the output file type; otherwise a non\-Relocatable output type │ │ │ │ │ forces assigning addresses to Common symbols. │ │ │ │ │ Using \fB\-\-no\-define\-common\fR allows Common symbols that are referenced │ │ │ │ │ from a shared library to be assigned addresses only in the main program. │ │ │ │ │ This eliminates the unused duplicate space in the shared library, │ │ │ │ │ and also prevents any possible confusion over resolving to the wrong │ │ │ │ │ duplicate when there are many dynamic modules with specialized search │ │ │ │ │ paths for runtime symbol resolution. │ │ │ │ │ @@ -1876,26 +1879,26 @@ │ │ │ │ │ .IX Item "-Ifile" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-dynamic\-linker=\fR\fIfile\fR 4 │ │ │ │ │ .IX Item "--dynamic-linker=file" │ │ │ │ │ .PD │ │ │ │ │ Set the name of the dynamic linker. This is only meaningful when │ │ │ │ │ generating dynamically linked ELF executables. The default dynamic │ │ │ │ │ -linker is normally correct; don't use this unless you know what you are │ │ │ │ │ +linker is normally correct; don\*(Aqt use this unless you know what you are │ │ │ │ │ doing. │ │ │ │ │ .IP \fB\-\-no\-dynamic\-linker\fR 4 │ │ │ │ │ .IX Item "--no-dynamic-linker" │ │ │ │ │ When producing an executable file, omit the request for a dynamic │ │ │ │ │ -linker to be used at load-time. This is only meaningful for ELF │ │ │ │ │ +linker to be used at load\-time. This is only meaningful for ELF │ │ │ │ │ executables that contain dynamic relocations, and usually requires │ │ │ │ │ entry point code that is capable of processing these relocations. │ │ │ │ │ .IP \fB\-\-embedded\-relocs\fR 4 │ │ │ │ │ .IX Item "--embedded-relocs" │ │ │ │ │ This option is similar to the \fB\-\-emit\-relocs\fR option except │ │ │ │ │ -that the relocs are stored in a target-specific section. This option │ │ │ │ │ +that the relocs are stored in a target\-specific section. This option │ │ │ │ │ is only supported by the \fBBFIN\fR, \fBCR16\fR and \fIM68K\fR │ │ │ │ │ targets. │ │ │ │ │ .IP \fB\-\-disable\-multiple\-abs\-defs\fR 4 │ │ │ │ │ .IX Item "--disable-multiple-abs-defs" │ │ │ │ │ Do not allow multiple definitions with symbols included │ │ │ │ │ in filename invoked by \-R or \-\-just\-symbols │ │ │ │ │ .IP \fB\-\-fatal\-warnings\fR 4 │ │ │ │ │ @@ -1920,15 +1923,15 @@ │ │ │ │ │ .IX Item "--force-exe-suffix" │ │ │ │ │ Make sure that an output file has a .exe suffix. │ │ │ │ │ .Sp │ │ │ │ │ If a successfully built fully linked output file does not have a │ │ │ │ │ \&\f(CW\*(C`.exe\*(C'\fR or \f(CW\*(C`.dll\*(C'\fR suffix, this option forces the linker to copy │ │ │ │ │ the output file to one of the same name with a \f(CW\*(C`.exe\*(C'\fR suffix. This │ │ │ │ │ option is useful when using unmodified Unix makefiles on a Microsoft │ │ │ │ │ -Windows host, since some versions of Windows won't run an image unless │ │ │ │ │ +Windows host, since some versions of Windows won\*(Aqt run an image unless │ │ │ │ │ it ends in a \f(CW\*(C`.exe\*(C'\fR suffix. │ │ │ │ │ .IP \fB\-\-gc\-sections\fR 4 │ │ │ │ │ .IX Item "--gc-sections" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-no\-gc\-sections\fR 4 │ │ │ │ │ .IX Item "--no-gc-sections" │ │ │ │ │ .PD │ │ │ │ │ @@ -1938,15 +1941,15 @@ │ │ │ │ │ \&\fB\-\-no\-gc\-sections\fR on the command line. Note that garbage │ │ │ │ │ collection for COFF and PE format targets is supported, but the │ │ │ │ │ implementation is currently considered to be experimental. │ │ │ │ │ .Sp │ │ │ │ │ \&\fB\-\-gc\-sections\fR decides which input sections are used by │ │ │ │ │ examining symbols and relocations. The section containing the entry │ │ │ │ │ symbol and all sections containing symbols undefined on the │ │ │ │ │ -command-line will be kept, as will sections containing symbols │ │ │ │ │ +command\-line will be kept, as will sections containing symbols │ │ │ │ │ referenced by dynamic objects. Note that when building shared │ │ │ │ │ libraries, the linker must assume that any visible symbol is │ │ │ │ │ referenced. Once this initial set of sections has been determined, │ │ │ │ │ the linker recursively marks as used any section referenced by their │ │ │ │ │ relocations. See \fB\-\-entry\fR, \fB\-\-undefined\fR, and │ │ │ │ │ \&\fB\-\-gc\-keep\-exported\fR. │ │ │ │ │ .Sp │ │ │ │ │ @@ -1979,15 +1982,15 @@ │ │ │ │ │ collected regardless of the external visibility of contained symbols. │ │ │ │ │ Note that this option has no effect when linking shared objects since │ │ │ │ │ it is already the default behaviour. This option is only supported for │ │ │ │ │ ELF format targets. │ │ │ │ │ .IP \fB\-\-print\-output\-format\fR 4 │ │ │ │ │ .IX Item "--print-output-format" │ │ │ │ │ Print the name of the default output format (perhaps influenced by │ │ │ │ │ -other command-line options). This is the string that would appear │ │ │ │ │ +other command\-line options). This is the string that would appear │ │ │ │ │ in an \f(CW\*(C`OUTPUT_FORMAT\*(C'\fR linker script command. │ │ │ │ │ .IP \fB\-\-print\-memory\-usage\fR 4 │ │ │ │ │ .IX Item "--print-memory-usage" │ │ │ │ │ Print used size, total size and used size of memory regions created with │ │ │ │ │ the \fBMEMORY\fR command. This is useful on embedded targets to have a │ │ │ │ │ quick view of amount of free memory. The format of the output has one │ │ │ │ │ headline and one line per region. It is both human readable and easily │ │ │ │ │ @@ -1996,18 +1999,18 @@ │ │ │ │ │ .Vb 3 │ │ │ │ │ \& Memory region Used Size Region Size %age Used │ │ │ │ │ \& ROM: 256 KB 1 MB 25.00% │ │ │ │ │ \& RAM: 32 B 2 GB 0.00% │ │ │ │ │ .Ve │ │ │ │ │ .IP \fB\-\-help\fR 4 │ │ │ │ │ .IX Item "--help" │ │ │ │ │ -Print a summary of the command-line options on the standard output and exit. │ │ │ │ │ +Print a summary of the command\-line options on the standard output and exit. │ │ │ │ │ .IP \fB\-\-target\-help\fR 4 │ │ │ │ │ .IX Item "--target-help" │ │ │ │ │ -Print a summary of all target-specific options on the standard output and exit. │ │ │ │ │ +Print a summary of all target\-specific options on the standard output and exit. │ │ │ │ │ .IP \fB\-Map=\fR\fImapfile\fR 4 │ │ │ │ │ .IX Item "-Map=mapfile" │ │ │ │ │ Print a link map to the file \fImapfile\fR. See the description of the │ │ │ │ │ \&\fB\-M\fR option, above. If \fImapfile\fR is just the character │ │ │ │ │ \&\f(CW\*(C`\-\*(C'\fR then the map will be written to stdout. │ │ │ │ │ .Sp │ │ │ │ │ Specifying a directory as \fImapfile\fR causes the linker map to be │ │ │ │ │ @@ -2045,15 +2048,15 @@ │ │ │ │ │ .IP \fB\-\-no\-undefined\fR 4 │ │ │ │ │ .IX Item "--no-undefined" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP "\fB\-z defs\fR" 4 │ │ │ │ │ .IX Item "-z defs" │ │ │ │ │ .PD │ │ │ │ │ Report unresolved symbol references from regular object files. This │ │ │ │ │ -is done even if the linker is creating a non-symbolic shared library. │ │ │ │ │ +is done even if the linker is creating a non\-symbolic shared library. │ │ │ │ │ The switch \fB\-\-[no\-]allow\-shlib\-undefined\fR controls the │ │ │ │ │ behaviour for reporting unresolved references found in shared │ │ │ │ │ libraries being linked in. │ │ │ │ │ .Sp │ │ │ │ │ The effects of this option can be reverted by using \f(CW\*(C`\-z undefs\*(C'\fR. │ │ │ │ │ .IP \fB\-\-allow\-multiple\-definition\fR 4 │ │ │ │ │ .IX Item "--allow-multiple-definition" │ │ │ │ │ @@ -2101,15 +2104,15 @@ │ │ │ │ │ .RE │ │ │ │ │ .IP \fB\-\-error\-handling\-script=\fR\fIscriptname\fR 4 │ │ │ │ │ .IX Item "--error-handling-script=scriptname" │ │ │ │ │ If this option is provided then the linker will invoke │ │ │ │ │ \&\fIscriptname\fR whenever an error is encountered. Currently however │ │ │ │ │ only two kinds of error are supported: missing symbols and missing │ │ │ │ │ libraries. Two arguments will be passed to script: the keyword │ │ │ │ │ -"undefined-symbol" or `missing\-lib" and the \fIname\fR of the │ │ │ │ │ +"undefined\-symbol" or \`missing\-lib" and the \fIname\fR of the │ │ │ │ │ undefined symbol or missing library. The intention is that the script │ │ │ │ │ will provide suggestions to the user as to where the symbol or library │ │ │ │ │ might be found. After the script has finished then the normal linker │ │ │ │ │ error message will be displayed. │ │ │ │ │ .Sp │ │ │ │ │ The availability of this option is controlled by a configure time │ │ │ │ │ switch, so it may not be present in specific implementations. │ │ │ │ │ @@ -2150,23 +2153,23 @@ │ │ │ │ │ errors during the link process; it exits without writing an output file │ │ │ │ │ when it issues any error whatsoever. │ │ │ │ │ .IP \fB\-nostdlib\fR 4 │ │ │ │ │ .IX Item "-nostdlib" │ │ │ │ │ Only search library directories explicitly specified on the │ │ │ │ │ command line. Library directories specified in linker scripts │ │ │ │ │ (including linker scripts specified on the command line) are ignored. │ │ │ │ │ -.IP \fB\-\-oformat=\fR\fIoutput-format\fR 4 │ │ │ │ │ +.IP \fB\-\-oformat=\fR\fIoutput\-format\fR 4 │ │ │ │ │ .IX Item "--oformat=output-format" │ │ │ │ │ \&\fBld\fR may be configured to support more than one kind of object │ │ │ │ │ file. If your \fBld\fR is configured this way, you can use the │ │ │ │ │ \&\fB\-\-oformat\fR option to specify the binary format for the output │ │ │ │ │ object file. Even when \fBld\fR is configured to support alternative │ │ │ │ │ -object formats, you don't usually need to specify this, as \fBld\fR │ │ │ │ │ +object formats, you don\*(Aqt usually need to specify this, as \fBld\fR │ │ │ │ │ should be configured to produce as a default output format the most │ │ │ │ │ -usual format on each machine. \fIoutput-format\fR is a text string, the │ │ │ │ │ +usual format on each machine. \fIoutput\-format\fR is a text string, the │ │ │ │ │ name of a particular format supported by the BFD libraries. (You can │ │ │ │ │ list the available binary formats with \fBobjdump \-i\fR.) The script │ │ │ │ │ command \f(CW\*(C`OUTPUT_FORMAT\*(C'\fR can also specify the output format, but │ │ │ │ │ this option overrides it. │ │ │ │ │ .IP "\fB\-\-out\-implib\fR \fIfile\fR" 4 │ │ │ │ │ .IX Item "--out-implib file" │ │ │ │ │ Create an import library in \fIfile\fR corresponding to the executable │ │ │ │ │ @@ -2226,15 +2229,15 @@ │ │ │ │ │ .IP \fB\-\-retain\-symbols\-file=\fR\fIfilename\fR 4 │ │ │ │ │ .IX Item "--retain-symbols-file=filename" │ │ │ │ │ Retain \fIonly\fR the symbols listed in the file \fIfilename\fR, │ │ │ │ │ discarding all others. \fIfilename\fR is simply a flat file, with one │ │ │ │ │ symbol name per line. This option is especially useful in environments │ │ │ │ │ (such as VxWorks) │ │ │ │ │ where a large global symbol table is accumulated gradually, to conserve │ │ │ │ │ -run-time memory. │ │ │ │ │ +run\-time memory. │ │ │ │ │ .Sp │ │ │ │ │ \&\fB\-\-retain\-symbols\-file\fR does \fInot\fR discard undefined symbols, │ │ │ │ │ or symbols needed for relocations. │ │ │ │ │ .Sp │ │ │ │ │ You may only specify \fB\-\-retain\-symbols\-file\fR once in the command │ │ │ │ │ line. It overrides \fB\-s\fR and \fB\-S\fR. │ │ │ │ │ .IP \fB\-rpath=\fR\fIdir\fR 4 │ │ │ │ │ @@ -2267,16 +2270,16 @@ │ │ │ │ │ the \fB\-rpath\fR option. │ │ │ │ │ .IP \fB\-rpath\-link=\fR\fIdir\fR 4 │ │ │ │ │ .IX Item "-rpath-link=dir" │ │ │ │ │ When using ELF or SunOS, one shared library may require another. This │ │ │ │ │ happens when an \f(CW\*(C`ld \-shared\*(C'\fR link includes a shared library as one │ │ │ │ │ of the input files. │ │ │ │ │ .Sp │ │ │ │ │ -When the linker encounters such a dependency when doing a non-shared, │ │ │ │ │ -non-relocatable link, it will automatically try to locate the required │ │ │ │ │ +When the linker encounters such a dependency when doing a non\-shared, │ │ │ │ │ +non\-relocatable link, it will automatically try to locate the required │ │ │ │ │ shared library and include it in the link, if it is not included │ │ │ │ │ explicitly. In such a case, several directories are searched as │ │ │ │ │ described below. The \fB\-rpath\-link\fR option specifies the first │ │ │ │ │ set of directories to search. This option may specify a sequence of │ │ │ │ │ directory names either by providing a list of names separated by │ │ │ │ │ colons, or by appearing multiple times. │ │ │ │ │ .Sp │ │ │ │ │ @@ -2424,16 +2427,16 @@ │ │ │ │ │ .IP \fB\-\-sort\-common=ascending\fR 4 │ │ │ │ │ .IX Item "--sort-common=ascending" │ │ │ │ │ .IP \fB\-\-sort\-common=descending\fR 4 │ │ │ │ │ .IX Item "--sort-common=descending" │ │ │ │ │ .PD │ │ │ │ │ This option tells \fBld\fR to sort the common symbols by alignment in │ │ │ │ │ ascending or descending order when it places them in the appropriate output │ │ │ │ │ -sections. The symbol alignments considered are sixteen-byte or larger, │ │ │ │ │ -eight-byte, four-byte, two-byte, and one-byte. This is to prevent gaps │ │ │ │ │ +sections. The symbol alignments considered are sixteen\-byte or larger, │ │ │ │ │ +eight\-byte, four\-byte, two\-byte, and one\-byte. This is to prevent gaps │ │ │ │ │ between symbols due to alignment constraints. If no sorting order is │ │ │ │ │ specified, then descending order is assumed. │ │ │ │ │ .IP \fB\-\-sort\-section=name\fR 4 │ │ │ │ │ .IX Item "--sort-section=name" │ │ │ │ │ This option will apply \f(CW\*(C`SORT_BY_NAME\*(C'\fR to all wildcard section │ │ │ │ │ patterns in the linker script. │ │ │ │ │ .IP \fB\-\-sort\-section=alignment\fR 4 │ │ │ │ │ @@ -2465,19 +2468,19 @@ │ │ │ │ │ .IP \fB\-\-stats\fR 4 │ │ │ │ │ .IX Item "--stats" │ │ │ │ │ Compute and display statistics about the operation of the linker, such │ │ │ │ │ as execution time and memory usage. │ │ │ │ │ .IP \fB\-\-sysroot=\fR\fIdirectory\fR 4 │ │ │ │ │ .IX Item "--sysroot=directory" │ │ │ │ │ Use \fIdirectory\fR as the location of the sysroot, overriding the │ │ │ │ │ -configure-time default. This option is only supported by linkers │ │ │ │ │ +configure\-time default. This option is only supported by linkers │ │ │ │ │ that were configured using \fB\-\-with\-sysroot\fR. │ │ │ │ │ .IP \fB\-\-task\-link\fR 4 │ │ │ │ │ .IX Item "--task-link" │ │ │ │ │ -This is used by COFF/PE based targets to create a task-linked object │ │ │ │ │ +This is used by COFF/PE based targets to create a task\-linked object │ │ │ │ │ file where all of the global symbols have been converted to statics. │ │ │ │ │ .IP \fB\-\-traditional\-format\fR 4 │ │ │ │ │ .IX Item "--traditional-format" │ │ │ │ │ For some targets, the output of \fBld\fR is different in some ways from │ │ │ │ │ the output of some existing linker. This switch requests \fBld\fR to │ │ │ │ │ use the traditional format instead. │ │ │ │ │ .Sp │ │ │ │ │ @@ -2525,41 +2528,41 @@ │ │ │ │ │ byte of the first segment. Note that when \fB\-pie\fR is used with │ │ │ │ │ \&\fB\-Ttext\-segment=\fR\fIorg\fR, the output executable is marked │ │ │ │ │ ET_EXEC so that the address of the first byte of the text segment will │ │ │ │ │ be guaranteed to be \fIorg\fR at run time. │ │ │ │ │ .IP \fB\-Trodata\-segment=\fR\fIorg\fR 4 │ │ │ │ │ .IX Item "-Trodata-segment=org" │ │ │ │ │ When creating an ELF executable or shared object for a target where │ │ │ │ │ -the read-only data is in its own segment separate from the executable │ │ │ │ │ -text, it will set the address of the first byte of the read-only data segment. │ │ │ │ │ +the read\-only data is in its own segment separate from the executable │ │ │ │ │ +text, it will set the address of the first byte of the read\-only data segment. │ │ │ │ │ .IP \fB\-Tldata\-segment=\fR\fIorg\fR 4 │ │ │ │ │ .IX Item "-Tldata-segment=org" │ │ │ │ │ When creating an ELF executable or shared object for x86\-64 medium memory │ │ │ │ │ model, it will set the address of the first byte of the ldata segment. │ │ │ │ │ .IP \fB\-\-unresolved\-symbols=\fR\fImethod\fR 4 │ │ │ │ │ .IX Item "--unresolved-symbols=method" │ │ │ │ │ Determine how to handle unresolved symbols. There are four possible │ │ │ │ │ values for \fBmethod\fR: │ │ │ │ │ .RS 4 │ │ │ │ │ -.IP \fBignore-all\fR 4 │ │ │ │ │ +.IP \fBignore\-all\fR 4 │ │ │ │ │ .IX Item "ignore-all" │ │ │ │ │ Do not report any unresolved symbols. │ │ │ │ │ -.IP \fBreport-all\fR 4 │ │ │ │ │ +.IP \fBreport\-all\fR 4 │ │ │ │ │ .IX Item "report-all" │ │ │ │ │ Report all unresolved symbols. This is the default. │ │ │ │ │ -.IP \fBignore-in-object-files\fR 4 │ │ │ │ │ +.IP \fBignore\-in\-object\-files\fR 4 │ │ │ │ │ .IX Item "ignore-in-object-files" │ │ │ │ │ Report unresolved symbols that are contained in shared libraries, but │ │ │ │ │ ignore them if they come from regular object files. │ │ │ │ │ -.IP \fBignore-in-shared-libs\fR 4 │ │ │ │ │ +.IP \fBignore\-in\-shared\-libs\fR 4 │ │ │ │ │ .IX Item "ignore-in-shared-libs" │ │ │ │ │ Report unresolved symbols that come from regular object files, but │ │ │ │ │ ignore them if they come from shared libraries. This can be useful │ │ │ │ │ when creating a dynamic binary and it is known that all the shared │ │ │ │ │ -libraries that it should be referencing are included on the linker's │ │ │ │ │ +libraries that it should be referencing are included on the linker\*(Aqs │ │ │ │ │ command line. │ │ │ │ │ .RE │ │ │ │ │ .RS 4 │ │ │ │ │ .Sp │ │ │ │ │ The behaviour for shared libraries on their own can also be controlled │ │ │ │ │ by the \fB\-\-[no\-]allow\-shlib\-undefined\fR option. │ │ │ │ │ .Sp │ │ │ │ │ @@ -2573,22 +2576,22 @@ │ │ │ │ │ .IP \fB\-\-verbose[=\fR\fINUMBER\fR\fB]\fR 4 │ │ │ │ │ .IX Item "--verbose[=NUMBER]" │ │ │ │ │ .PD │ │ │ │ │ Display the version number for \fBld\fR and list the linker emulations │ │ │ │ │ supported. Display which input files can and cannot be opened. Display │ │ │ │ │ the linker script being used by the linker. If the optional \fINUMBER\fR │ │ │ │ │ argument > 1, plugin symbol status will also be displayed. │ │ │ │ │ -.IP \fB\-\-version\-script=\fR\fIversion-scriptfile\fR 4 │ │ │ │ │ +.IP \fB\-\-version\-script=\fR\fIversion\-scriptfile\fR 4 │ │ │ │ │ .IX Item "--version-script=version-scriptfile" │ │ │ │ │ Specify the name of a version script to the linker. This is typically │ │ │ │ │ used when creating shared libraries to specify additional information │ │ │ │ │ about the version hierarchy for the library being created. This option │ │ │ │ │ is only fully supported on ELF platforms which support shared libraries; │ │ │ │ │ see \fBVERSION\fR. It is partially supported on PE platforms, which can │ │ │ │ │ -use version scripts to filter symbol visibility in auto-export mode: any │ │ │ │ │ +use version scripts to filter symbol visibility in auto\-export mode: any │ │ │ │ │ symbols marked \fBlocal\fR in the version script will not be exported. │ │ │ │ │ .IP \fB\-\-warn\-common\fR 4 │ │ │ │ │ .IX Item "--warn-common" │ │ │ │ │ Warn when a common symbol is combined with another common symbol or with │ │ │ │ │ a symbol definition. Unix linkers allow this somewhat sloppy practice, │ │ │ │ │ but linkers on some other operating systems do not. This option allows │ │ │ │ │ you to find potential problems from combining global symbols. │ │ │ │ │ @@ -2638,15 +2641,15 @@ │ │ │ │ │ .Sp │ │ │ │ │ .Vb 3 │ │ │ │ │ \& (
): warning: definition of \`\*(Aq │ │ │ │ │ \& overriding common │ │ │ │ │ \& (
): warning: common is here │ │ │ │ │ .Ve │ │ │ │ │ .IP 3. 4 │ │ │ │ │ -Merging a common symbol with a previous same-sized common symbol. │ │ │ │ │ +Merging a common symbol with a previous same\-sized common symbol. │ │ │ │ │ .Sp │ │ │ │ │ .Vb 3 │ │ │ │ │ \& (
): warning: multiple common │ │ │ │ │ \& of \`\*(Aq │ │ │ │ │ \& (
): warning: previous common is here │ │ │ │ │ .Ve │ │ │ │ │ .IP 4. 4 │ │ │ │ │ @@ -2696,18 +2699,18 @@ │ │ │ │ │ Only generate a warning if an object file requests an executable │ │ │ │ │ stack, but not if the \fB\-z execstack\fR option is used. │ │ │ │ │ .RE │ │ │ │ │ .RS 4 │ │ │ │ │ .Sp │ │ │ │ │ The default state depends upon how the linker was configured when it │ │ │ │ │ was built. The \fB\-\-no\-warn\-execstack\fR option always puts the │ │ │ │ │ -linker into the no-warnings state. The \fB\-\-warn\-execstack\fR │ │ │ │ │ -option puts the linker into the warn-always state. The │ │ │ │ │ +linker into the no\-warnings state. The \fB\-\-warn\-execstack\fR │ │ │ │ │ +option puts the linker into the warn\-always state. The │ │ │ │ │ \&\fB\-\-warn\-execstack\-objects\fR option puts the linker into the │ │ │ │ │ -warn-for-object-files-only state. │ │ │ │ │ +warn\-for\-object\-files\-only state. │ │ │ │ │ .Sp │ │ │ │ │ Note: ELF format input files can specify that they need an executable │ │ │ │ │ stack by having a \fI.note.GNU\-stack\fR section with the executable │ │ │ │ │ bit set in its section flags. They can specify that they do not need │ │ │ │ │ an executable stack by having the same section, but without the │ │ │ │ │ executable flag bit set. If an input file does not have a │ │ │ │ │ \&\fI.note.GNU\-stack\fR section then the default behaviour is target │ │ │ │ │ @@ -2720,52 +2723,52 @@ │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-no\-error\-execstack\fR 4 │ │ │ │ │ .IX Item "--no-error-execstack" │ │ │ │ │ .PD │ │ │ │ │ If the linker is going to generate a warning message about an │ │ │ │ │ executable stack then the \fB\-\-error\-execstack\fR option will │ │ │ │ │ instead change that warning into an error. Note \- this option does │ │ │ │ │ -not change the linker's execstack warning generation state. Use │ │ │ │ │ +not change the linker\*(Aqs execstack warning generation state. Use │ │ │ │ │ \&\fB\-\-warn\-execstack\fR or \fB\-\-warn\-execstack\-objects\fR to set │ │ │ │ │ a specific warning state. │ │ │ │ │ .Sp │ │ │ │ │ The \fB\-\-no\-error\-execstack\fR option will restore the default │ │ │ │ │ behaviour of generating warning messages. │ │ │ │ │ .IP \fB\-\-warn\-multiple\-gp\fR 4 │ │ │ │ │ .IX Item "--warn-multiple-gp" │ │ │ │ │ Warn if multiple global pointer values are required in the output file. │ │ │ │ │ This is only meaningful for certain processors, such as the Alpha. │ │ │ │ │ -Specifically, some processors put large-valued constants in a special │ │ │ │ │ +Specifically, some processors put large\-valued constants in a special │ │ │ │ │ section. A special register (the global pointer) points into the middle │ │ │ │ │ of this section, so that constants can be loaded efficiently via a │ │ │ │ │ -base-register relative addressing mode. Since the offset in │ │ │ │ │ -base-register relative mode is fixed and relatively small (e.g., 16 │ │ │ │ │ +base\-register relative addressing mode. Since the offset in │ │ │ │ │ +base\-register relative mode is fixed and relatively small (e.g., 16 │ │ │ │ │ bits), this limits the maximum size of the constant pool. Thus, in │ │ │ │ │ large programs, it is often necessary to use multiple global pointer │ │ │ │ │ values in order to be able to address all possible constants. This │ │ │ │ │ option causes a warning to be issued whenever this case occurs. │ │ │ │ │ .IP \fB\-\-warn\-once\fR 4 │ │ │ │ │ .IX Item "--warn-once" │ │ │ │ │ Only warn once for each undefined symbol, rather than once per module │ │ │ │ │ which refers to it. │ │ │ │ │ .IP \fB\-\-warn\-rwx\-segments\fR 4 │ │ │ │ │ .IX Item "--warn-rwx-segments" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-no\-warn\-rwx\-segments\fR 4 │ │ │ │ │ .IX Item "--no-warn-rwx-segments" │ │ │ │ │ .PD │ │ │ │ │ -Warn if the linker creates a loadable, non-zero sized segment that has │ │ │ │ │ +Warn if the linker creates a loadable, non\-zero sized segment that has │ │ │ │ │ all three of the read, write and execute permission flags set. Such a │ │ │ │ │ segment represents a potential security vulnerability. In addition │ │ │ │ │ warnings will be generated if a thread local storage segment is │ │ │ │ │ created with the execute permission flag set, regardless of whether or │ │ │ │ │ not it has the read and/or write flags set. │ │ │ │ │ .Sp │ │ │ │ │ These warnings are enabled by default. They can be disabled via the │ │ │ │ │ -\&\fB\-\-no\-warn\-rwx\-segments\fR option and re-enabled via the │ │ │ │ │ +\&\fB\-\-no\-warn\-rwx\-segments\fR option and re\-enabled via the │ │ │ │ │ \&\fB\-\-warn\-rwx\-segments\fR option. │ │ │ │ │ .IP \fB\-\-error\-rwx\-segments\fR 4 │ │ │ │ │ .IX Item "--error-rwx-segments" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-no\-error\-rwx\-segments\fR 4 │ │ │ │ │ .IX Item "--no-error-rwx-segments" │ │ │ │ │ .PD │ │ │ │ │ @@ -2784,40 +2787,40 @@ │ │ │ │ │ Warn if the address of an output section is changed because of │ │ │ │ │ alignment. Typically, the alignment will be set by an input section. │ │ │ │ │ The address will only be changed if it not explicitly specified; that │ │ │ │ │ is, if the \f(CW\*(C`SECTIONS\*(C'\fR command does not specify a start address for │ │ │ │ │ the section. │ │ │ │ │ .IP \fB\-\-warn\-textrel\fR 4 │ │ │ │ │ .IX Item "--warn-textrel" │ │ │ │ │ -Warn if the linker adds DT_TEXTREL to a position-independent executable │ │ │ │ │ +Warn if the linker adds DT_TEXTREL to a position\-independent executable │ │ │ │ │ or shared object. │ │ │ │ │ .IP \fB\-\-warn\-alternate\-em\fR 4 │ │ │ │ │ .IX Item "--warn-alternate-em" │ │ │ │ │ Warn if an object has alternate ELF machine code. │ │ │ │ │ .IP \fB\-\-warn\-unresolved\-symbols\fR 4 │ │ │ │ │ .IX Item "--warn-unresolved-symbols" │ │ │ │ │ If the linker is going to report an unresolved symbol (see the option │ │ │ │ │ \&\fB\-\-unresolved\-symbols\fR) it will normally generate an error. │ │ │ │ │ This option makes it generate a warning instead. │ │ │ │ │ .IP \fB\-\-error\-unresolved\-symbols\fR 4 │ │ │ │ │ .IX Item "--error-unresolved-symbols" │ │ │ │ │ -This restores the linker's default behaviour of generating errors when │ │ │ │ │ +This restores the linker\*(Aqs default behaviour of generating errors when │ │ │ │ │ it is reporting unresolved symbols. │ │ │ │ │ .IP \fB\-\-whole\-archive\fR 4 │ │ │ │ │ .IX Item "--whole-archive" │ │ │ │ │ For each archive mentioned on the command line after the │ │ │ │ │ \&\fB\-\-whole\-archive\fR option, include every object file in the archive │ │ │ │ │ in the link, rather than searching the archive for the required object │ │ │ │ │ files. This is normally used to turn an archive file into a shared │ │ │ │ │ library, forcing every object to be included in the resulting shared │ │ │ │ │ library. This option may be used more than once. │ │ │ │ │ .Sp │ │ │ │ │ -Two notes when using this option from gcc: First, gcc doesn't know │ │ │ │ │ +Two notes when using this option from gcc: First, gcc doesn\*(Aqt know │ │ │ │ │ about this option, so you have to use \fB\-Wl,\-whole\-archive\fR. │ │ │ │ │ -Second, don't forget to use \fB\-Wl,\-no\-whole\-archive\fR after your │ │ │ │ │ +Second, don\*(Aqt forget to use \fB\-Wl,\-no\-whole\-archive\fR after your │ │ │ │ │ list of archives, because gcc will add its own list of archives to │ │ │ │ │ your link and you may not want this flag to affect those as well. │ │ │ │ │ .IP \fB\-\-wrap=\fR\fIsymbol\fR 4 │ │ │ │ │ .IX Item "--wrap=symbol" │ │ │ │ │ Use a wrapper function for \fIsymbol\fR. Any undefined reference to │ │ │ │ │ \&\fIsymbol\fR will be resolved to \f(CW\*(C`_\|_wrap_\fR\f(CIsymbol\fR\f(CW\*(C'\fR. Any │ │ │ │ │ undefined reference to \f(CW\*(C`_\|_real_\fR\f(CIsymbol\fR\f(CW\*(C'\fR will be resolved to │ │ │ │ │ @@ -2895,22 +2898,22 @@ │ │ │ │ │ \&\fB\-\-enable\-new\-dtags\fR, the new dynamic tags will be created as needed │ │ │ │ │ and older dynamic tags will be omitted. │ │ │ │ │ If you specify \fB\-\-disable\-new\-dtags\fR, no new dynamic tags will be │ │ │ │ │ created. By default, the new dynamic tags are not created. Note that │ │ │ │ │ those options are only available for ELF systems. │ │ │ │ │ .IP \fB\-\-hash\-size=\fR\fInumber\fR 4 │ │ │ │ │ .IX Item "--hash-size=number" │ │ │ │ │ -Set the default size of the linker's hash tables to a prime number │ │ │ │ │ +Set the default size of the linker\*(Aqs hash tables to a prime number │ │ │ │ │ close to \fInumber\fR. Increasing this value can reduce the length of │ │ │ │ │ time it takes the linker to perform its tasks, at the expense of │ │ │ │ │ -increasing the linker's memory requirements. Similarly reducing this │ │ │ │ │ +increasing the linker\*(Aqs memory requirements. Similarly reducing this │ │ │ │ │ value can reduce the memory requirements at the expense of speed. │ │ │ │ │ .IP \fB\-\-hash\-style=\fR\fIstyle\fR 4 │ │ │ │ │ .IX Item "--hash-style=style" │ │ │ │ │ -Set the type of linker's hash table(s). \fIstyle\fR can be either │ │ │ │ │ +Set the type of linker\*(Aqs hash table(s). \fIstyle\fR can be either │ │ │ │ │ \&\f(CW\*(C`sysv\*(C'\fR for classic ELF \f(CW\*(C`.hash\*(C'\fR section, \f(CW\*(C`gnu\*(C'\fR for │ │ │ │ │ new style GNU \f(CW\*(C`.gnu.hash\*(C'\fR section or \f(CW\*(C`both\*(C'\fR for both │ │ │ │ │ the classic ELF \f(CW\*(C`.hash\*(C'\fR and new style GNU \f(CW\*(C`.gnu.hash\*(C'\fR │ │ │ │ │ hash tables. The default depends upon how the linker was configured, │ │ │ │ │ but for most Linux based systems it will be \f(CW\*(C`both\*(C'\fR. │ │ │ │ │ .IP \fB\-\-compress\-debug\-sections=none\fR 4 │ │ │ │ │ .IX Item "--compress-debug-sections=none" │ │ │ │ │ @@ -2923,45 +2926,45 @@ │ │ │ │ │ .IX Item "--compress-debug-sections=zlib-gabi" │ │ │ │ │ .IP \fB\-\-compress\-debug\-sections=zstd\fR 4 │ │ │ │ │ .IX Item "--compress-debug-sections=zstd" │ │ │ │ │ .PD │ │ │ │ │ On ELF platforms, these options control how DWARF debug sections are │ │ │ │ │ compressed using zlib. │ │ │ │ │ .Sp │ │ │ │ │ -\&\fB\-\-compress\-debug\-sections=none\fR doesn't compress DWARF debug │ │ │ │ │ +\&\fB\-\-compress\-debug\-sections=none\fR doesn\*(Aqt compress DWARF debug │ │ │ │ │ sections. \fB\-\-compress\-debug\-sections=zlib\-gnu\fR compresses │ │ │ │ │ DWARF debug sections and renames them to begin with \fB.zdebug\fR │ │ │ │ │ instead of \fB.debug\fR. \fB\-\-compress\-debug\-sections=zlib\-gabi\fR │ │ │ │ │ also compresses DWARF debug sections, but rather than renaming them it │ │ │ │ │ -sets the SHF_COMPRESSED flag in the sections' headers. │ │ │ │ │ +sets the SHF_COMPRESSED flag in the sections\*(Aq headers. │ │ │ │ │ .Sp │ │ │ │ │ The \fB\-\-compress\-debug\-sections=zlib\fR option is an alias for │ │ │ │ │ \&\fB\-\-compress\-debug\-sections=zlib\-gabi\fR. │ │ │ │ │ .Sp │ │ │ │ │ \&\fB\-\-compress\-debug\-sections=zstd\fR compresses DWARF debug sections using │ │ │ │ │ zstd. │ │ │ │ │ .Sp │ │ │ │ │ Note that this option overrides any compression in input debug │ │ │ │ │ sections, so if a binary is linked with \fB\-\-compress\-debug\-sections=none\fR │ │ │ │ │ for example, then any compressed debug sections in input files will be │ │ │ │ │ uncompressed before they are copied into the output binary. │ │ │ │ │ .Sp │ │ │ │ │ The default compression behaviour varies depending upon the target │ │ │ │ │ involved and the configure options used to build the toolchain. The │ │ │ │ │ -default can be determined by examining the output from the linker's │ │ │ │ │ +default can be determined by examining the output from the linker\*(Aqs │ │ │ │ │ \&\fB\-\-help\fR option. │ │ │ │ │ .IP \fB\-\-reduce\-memory\-overheads\fR 4 │ │ │ │ │ .IX Item "--reduce-memory-overheads" │ │ │ │ │ This option reduces memory requirements at ld runtime, at the expense of │ │ │ │ │ linking speed. This was introduced to select the old O(n^2) algorithm │ │ │ │ │ for link map file generation, rather than the new O(n) algorithm which uses │ │ │ │ │ about 40% more memory for symbol storage. │ │ │ │ │ .Sp │ │ │ │ │ Another effect of the switch is to set the default hash table size to │ │ │ │ │ -1021, which again saves memory at the cost of lengthening the linker's │ │ │ │ │ +1021, which again saves memory at the cost of lengthening the linker\*(Aqs │ │ │ │ │ run time. This is not done however if the \fB\-\-hash\-size\fR switch │ │ │ │ │ has been used. │ │ │ │ │ .Sp │ │ │ │ │ The \fB\-\-reduce\-memory\-overheads\fR switch may be also be used to │ │ │ │ │ enable other tradeoffs in future versions of the linker. │ │ │ │ │ .IP \fB\-\-max\-cache\-size=\fR\fIsize\fR 4 │ │ │ │ │ .IX Item "--max-cache-size=size" │ │ │ │ │ @@ -2984,28 +2987,28 @@ │ │ │ │ │ specified as an even number of hexadecimal digits (\f(CW\*(C`\-\*(C'\fR and │ │ │ │ │ \&\f(CW\*(C`:\*(C'\fR characters between digit pairs are ignored). If \fIstyle\fR │ │ │ │ │ is omitted, \f(CW\*(C`sha1\*(C'\fR is used. │ │ │ │ │ .Sp │ │ │ │ │ The \f(CW\*(C`md5\*(C'\fR, \f(CW\*(C`sha1\*(C'\fR, and \f(CW\*(C`xx\*(C'\fR styles produces an │ │ │ │ │ identifier that is always the same in an identical output file, but │ │ │ │ │ are almost certainly unique among all nonidentical output files. It │ │ │ │ │ -is not intended to be compared as a checksum for the file's contents. │ │ │ │ │ +is not intended to be compared as a checksum for the file\*(Aqs contents. │ │ │ │ │ A linked file may be changed later by other tools, but the build ID │ │ │ │ │ bit string identifying the original linked file does not change. │ │ │ │ │ .Sp │ │ │ │ │ Passing \f(CW\*(C`none\*(C'\fR for \fIstyle\fR disables the setting from any │ │ │ │ │ \&\f(CW\*(C`\-\-build\-id\*(C'\fR options earlier on the command line. │ │ │ │ │ .IP \fB\-\-package\-metadata=\fR\fIJSON\fR 4 │ │ │ │ │ .IX Item "--package-metadata=JSON" │ │ │ │ │ Request the creation of a \f(CW\*(C`.note.package\*(C'\fR ELF note section. The │ │ │ │ │ contents of the note are in JSON format, as per the package metadata │ │ │ │ │ specification. For more information see: │ │ │ │ │ https://systemd.io/ELF_PACKAGE_METADATA/ │ │ │ │ │ -The JSON argument support percent-encoding and following %[string] │ │ │ │ │ -(where string refers to the name in HTML's Named Character References) │ │ │ │ │ +The JSON argument support percent\-encoding and following %[string] │ │ │ │ │ +(where string refers to the name in HTML\*(Aqs Named Character References) │ │ │ │ │ encoding: \fB%[comma]\fR for \fB,\fR, \fB%[lbrace]\fR for \fB{\fR, │ │ │ │ │ \&\fB%[quot]\fR for \fB"\fR, \fB%[rbrace]\fR for \fB}\fR, and │ │ │ │ │ \&\fB%[space]\fR for space character. │ │ │ │ │ If the JSON argument is missing/empty then this will disable the │ │ │ │ │ creation of the metadata note, if one had been enabled by an earlier │ │ │ │ │ occurrence of the \-\-package\-metadata option. │ │ │ │ │ If the linker has been built with libjansson, then the JSON string │ │ │ │ │ @@ -3017,21 +3020,21 @@ │ │ │ │ │ use this option. In addition, the linker fully supports the standard │ │ │ │ │ \&\f(CW\*(C`*.def\*(C'\fR files, which may be specified on the linker command line │ │ │ │ │ like an object file (in fact, it should precede archives it exports │ │ │ │ │ symbols from, to ensure that they get linked in, just like a normal │ │ │ │ │ object file). │ │ │ │ │ .PP │ │ │ │ │ In addition to the options common to all targets, the i386 PE linker │ │ │ │ │ -support additional command-line options that are specific to the i386 │ │ │ │ │ +support additional command\-line options that are specific to the i386 │ │ │ │ │ PE target. Options that take values may be separated from their │ │ │ │ │ values by either a space or an equals sign. │ │ │ │ │ .IP \fB\-\-add\-stdcall\-alias\fR 4 │ │ │ │ │ .IX Item "--add-stdcall-alias" │ │ │ │ │ If given, symbols with a stdcall suffix (@\fInn\fR) will be exported │ │ │ │ │ -as-is and also with the suffix stripped. │ │ │ │ │ +as\-is and also with the suffix stripped. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP "\fB\-\-base\-file\fR \fIfile\fR" 4 │ │ │ │ │ .IX Item "--base-file file" │ │ │ │ │ Use \fIfile\fR as the name of a file in which to save the base │ │ │ │ │ addresses of all the relocations needed for generating DLLs with │ │ │ │ │ \&\fIdlltool\fR. │ │ │ │ │ [This is an i386 PE specific option] │ │ │ │ │ @@ -3046,24 +3049,24 @@ │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-disable\-long\-section\-names\fR 4 │ │ │ │ │ .IX Item "--disable-long-section-names" │ │ │ │ │ .PD │ │ │ │ │ The PE variants of the COFF object format add an extension that permits │ │ │ │ │ the use of section names longer than eight characters, the normal limit │ │ │ │ │ for COFF. By default, these names are only allowed in object files, as │ │ │ │ │ -fully-linked executable images do not carry the COFF string table required │ │ │ │ │ +fully\-linked executable images do not carry the COFF string table required │ │ │ │ │ to support the longer names. As a GNU extension, it is possible to │ │ │ │ │ allow their use in executable images as well, or to (probably pointlessly!) │ │ │ │ │ disallow it in object files, by using these two options. Executable images │ │ │ │ │ -generated with these long section names are slightly non-standard, carrying │ │ │ │ │ +generated with these long section names are slightly non\-standard, carrying │ │ │ │ │ as they do a string table, and may generate confusing output when examined │ │ │ │ │ -with non-GNU PE-aware tools, such as file viewers and dumpers. However, │ │ │ │ │ +with non\-GNU PE\-aware tools, such as file viewers and dumpers. However, │ │ │ │ │ GDB relies on the use of PE long section names to find Dwarf\-2 debug │ │ │ │ │ information sections in an executable image at runtime, and so if neither │ │ │ │ │ -option is specified on the command-line, \fBld\fR will enable long │ │ │ │ │ +option is specified on the command\-line, \fBld\fR will enable long │ │ │ │ │ section names, overriding the default and technically correct behaviour, │ │ │ │ │ when it finds the presence of debug information while linking an executable │ │ │ │ │ image and not stripping symbols. │ │ │ │ │ [This option is valid for all PE targeted ports of the linker] │ │ │ │ │ .IP \fB\-\-enable\-stdcall\-fixup\fR 4 │ │ │ │ │ .IX Item "--enable-stdcall-fixup" │ │ │ │ │ .PD 0 │ │ │ │ │ @@ -3074,49 +3077,49 @@ │ │ │ │ │ do "fuzzy linking" by looking for another defined symbol that differs │ │ │ │ │ only in the format of the symbol name (cdecl vs stdcall) and will │ │ │ │ │ resolve that symbol by linking to the match. For example, the │ │ │ │ │ undefined symbol \f(CW\*(C`_foo\*(C'\fR might be linked to the function │ │ │ │ │ \&\f(CW\*(C`_foo@12\*(C'\fR, or the undefined symbol \f(CW\*(C`_bar@16\*(C'\fR might be linked │ │ │ │ │ to the function \f(CW\*(C`_bar\*(C'\fR. When the linker does this, it prints a │ │ │ │ │ warning, since it normally should have failed to link, but sometimes │ │ │ │ │ -import libraries generated from third-party dlls may need this feature │ │ │ │ │ +import libraries generated from third\-party dlls may need this feature │ │ │ │ │ to be usable. If you specify \fB\-\-enable\-stdcall\-fixup\fR, this │ │ │ │ │ feature is fully enabled and warnings are not printed. If you specify │ │ │ │ │ \&\fB\-\-disable\-stdcall\-fixup\fR, this feature is disabled and such │ │ │ │ │ mismatches are considered to be errors. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP \fB\-\-leading\-underscore\fR 4 │ │ │ │ │ .IX Item "--leading-underscore" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-no\-leading\-underscore\fR 4 │ │ │ │ │ .IX Item "--no-leading-underscore" │ │ │ │ │ .PD │ │ │ │ │ -For most targets default symbol-prefix is an underscore and is defined │ │ │ │ │ -in target's description. By this option it is possible to │ │ │ │ │ -disable/enable the default underscore symbol-prefix. │ │ │ │ │ +For most targets default symbol\-prefix is an underscore and is defined │ │ │ │ │ +in target\*(Aqs description. By this option it is possible to │ │ │ │ │ +disable/enable the default underscore symbol\-prefix. │ │ │ │ │ .IP \fB\-\-export\-all\-symbols\fR 4 │ │ │ │ │ .IX Item "--export-all-symbols" │ │ │ │ │ If given, all global symbols in the objects used to build a DLL will │ │ │ │ │ be exported by the DLL. Note that this is the default if there │ │ │ │ │ -otherwise wouldn't be any exported symbols. When symbols are │ │ │ │ │ +otherwise wouldn\*(Aqt be any exported symbols. When symbols are │ │ │ │ │ explicitly exported via DEF files or implicitly exported via function │ │ │ │ │ attributes, the default is to not export anything else unless this │ │ │ │ │ option is given. Note that the symbols \f(CW\*(C`DllMain@12\*(C'\fR, │ │ │ │ │ \&\f(CW\*(C`DllEntryPoint@0\*(C'\fR, \f(CW\*(C`DllMainCRTStartup@12\*(C'\fR, and │ │ │ │ │ \&\f(CW\*(C`impure_ptr\*(C'\fR will not be automatically │ │ │ │ │ exported. Also, symbols imported from other DLLs will not be │ │ │ │ │ -re-exported, nor will symbols specifying the DLL's internal layout │ │ │ │ │ +re\-exported, nor will symbols specifying the DLL\*(Aqs internal layout │ │ │ │ │ such as those beginning with \f(CW\*(C`_head_\*(C'\fR or ending with │ │ │ │ │ \&\f(CW\*(C`_iname\*(C'\fR. In addition, no symbols from \f(CW\*(C`libgcc\*(C'\fR, │ │ │ │ │ \&\f(CW\*(C`libstd++\*(C'\fR, \f(CW\*(C`libmingw32\*(C'\fR, or \f(CW\*(C`crtX.o\*(C'\fR will be exported. │ │ │ │ │ Symbols whose names begin with \f(CW\*(C`_\|_rtti_\*(C'\fR or \f(CW\*(C`_\|_builtin_\*(C'\fR will │ │ │ │ │ not be exported, to help with C++ DLLs. Finally, there is an │ │ │ │ │ -extensive list of cygwin-private symbols that are not exported │ │ │ │ │ +extensive list of cygwin\-private symbols that are not exported │ │ │ │ │ (obviously, this applies on when building DLLs for cygwin targets). │ │ │ │ │ -These cygwin-excludes are: \f(CW\*(C`_cygwin_dll_entry@12\*(C'\fR, │ │ │ │ │ +These cygwin\-excludes are: \f(CW\*(C`_cygwin_dll_entry@12\*(C'\fR, │ │ │ │ │ \&\f(CW\*(C`_cygwin_crt0_common@8\*(C'\fR, \f(CW\*(C`_cygwin_noncygwin_dll_entry@12\*(C'\fR, │ │ │ │ │ \&\f(CW\*(C`_fmode\*(C'\fR, \f(CW\*(C`_impure_ptr\*(C'\fR, \f(CW\*(C`cygwin_attach_dll\*(C'\fR, │ │ │ │ │ \&\f(CW\*(C`cygwin_premain0\*(C'\fR, \f(CW\*(C`cygwin_premain1\*(C'\fR, \f(CW\*(C`cygwin_premain2\*(C'\fR, │ │ │ │ │ \&\f(CW\*(C`cygwin_premain3\*(C'\fR, and \f(CW\*(C`environ\*(C'\fR. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP "\fB\-\-exclude\-symbols\fR \fIsymbol\fR\fB,\fR\fIsymbol\fR\fB,...\fR" 4 │ │ │ │ │ .IX Item "--exclude-symbols symbol,symbol,..." │ │ │ │ │ @@ -3200,21 +3203,21 @@ │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-enable\-auto\-image\-base=\fR\fIvalue\fR 4 │ │ │ │ │ .IX Item "--enable-auto-image-base=value" │ │ │ │ │ .PD │ │ │ │ │ Automatically choose the image base for DLLs, optionally starting with base │ │ │ │ │ \&\fIvalue\fR, unless one is specified using the \f(CW\*(C`\-\-image\-base\*(C'\fR argument. │ │ │ │ │ By using a hash generated from the dllname to create unique image bases │ │ │ │ │ -for each DLL, in-memory collisions and relocations which can delay program │ │ │ │ │ +for each DLL, in\-memory collisions and relocations which can delay program │ │ │ │ │ execution are avoided. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP \fB\-\-disable\-auto\-image\-base\fR 4 │ │ │ │ │ .IX Item "--disable-auto-image-base" │ │ │ │ │ Do not automatically generate a unique image base. If there is no │ │ │ │ │ -user-specified image base (\f(CW\*(C`\-\-image\-base\*(C'\fR) then use the platform │ │ │ │ │ +user\-specified image base (\f(CW\*(C`\-\-image\-base\*(C'\fR) then use the platform │ │ │ │ │ default. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP "\fB\-\-dll\-search\-prefix\fR \fIstring\fR" 4 │ │ │ │ │ .IX Item "--dll-search-prefix string" │ │ │ │ │ When linking dynamically to a dll without an import library, │ │ │ │ │ search for \f(CW\*(C`.dll\*(C'\fR in preference to │ │ │ │ │ \&\f(CW\*(C`lib.dll\*(C'\fR. This behaviour allows easy distinction │ │ │ │ │ @@ -3228,29 +3231,29 @@ │ │ │ │ │ DATA imports from DLLs, thus making it possible to bypass the dllimport │ │ │ │ │ mechanism on the user side and to reference unmangled symbol names. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .Sp │ │ │ │ │ The following remarks pertain to the original implementation of the │ │ │ │ │ feature and are obsolete nowadays for Cygwin and MinGW targets. │ │ │ │ │ .Sp │ │ │ │ │ -Note: Use of the 'auto\-import' extension will cause the text section │ │ │ │ │ +Note: Use of the \*(Aqauto\-import\*(Aq extension will cause the text section │ │ │ │ │ of the image file to be made writable. This does not conform to the │ │ │ │ │ -PE-COFF format specification published by Microsoft. │ │ │ │ │ +PE\-COFF format specification published by Microsoft. │ │ │ │ │ .Sp │ │ │ │ │ -Note \- use of the 'auto\-import' extension will also cause read only │ │ │ │ │ +Note \- use of the \*(Aqauto\-import\*(Aq extension will also cause read only │ │ │ │ │ data which would normally be placed into the .rdata section to be │ │ │ │ │ placed into the .data section instead. This is in order to work │ │ │ │ │ around a problem with consts that is described here: │ │ │ │ │ http://www.cygwin.com/ml/cygwin/2004\-09/msg01101.html │ │ │ │ │ .Sp │ │ │ │ │ -Using 'auto\-import' generally will 'just work' \-\- but sometimes you may │ │ │ │ │ +Using \*(Aqauto\-import\*(Aq generally will \*(Aqjust work\*(Aq \-\- but sometimes you may │ │ │ │ │ see this message: │ │ │ │ │ .Sp │ │ │ │ │ -"variable '' can't be auto-imported. Please read the │ │ │ │ │ -documentation for ld's \f(CW\*(C`\-\-enable\-auto\-import\*(C'\fR for details." │ │ │ │ │ +"variable \*(Aq\*(Aq can\*(Aqt be auto\-imported. Please read the │ │ │ │ │ +documentation for ld\*(Aqs \f(CW\*(C`\-\-enable\-auto\-import\*(C'\fR for details." │ │ │ │ │ .Sp │ │ │ │ │ This message occurs when some (sub)expression accesses an address │ │ │ │ │ ultimately given by the sum of two constants (Win32 import tables only │ │ │ │ │ allow one). Instances where this may occur include accesses to member │ │ │ │ │ fields of struct variables imported from a DLL, as well as using a │ │ │ │ │ constant index into an array variable imported from a DLL. Any │ │ │ │ │ multiword variable (arrays, structs, long long, etc) may trigger │ │ │ │ │ @@ -3261,18 +3264,18 @@ │ │ │ │ │ There are several ways to address this difficulty, regardless of the │ │ │ │ │ data type of the exported variable: │ │ │ │ │ .Sp │ │ │ │ │ One way is to use \-\-enable\-runtime\-pseudo\-reloc switch. This leaves the task │ │ │ │ │ of adjusting references in your client code for runtime environment, so │ │ │ │ │ this method works only when runtime environment supports this feature. │ │ │ │ │ .Sp │ │ │ │ │ -A second solution is to force one of the 'constants' to be a variable \-\- │ │ │ │ │ -that is, unknown and un-optimizable at compile time. For arrays, │ │ │ │ │ -there are two possibilities: a) make the indexee (the array's address) │ │ │ │ │ -a variable, or b) make the 'constant' index a variable. Thus: │ │ │ │ │ +A second solution is to force one of the \*(Aqconstants\*(Aq to be a variable \-\- │ │ │ │ │ +that is, unknown and un\-optimizable at compile time. For arrays, │ │ │ │ │ +there are two possibilities: a) make the indexee (the array\*(Aqs address) │ │ │ │ │ +a variable, or b) make the \*(Aqconstant\*(Aq index a variable. Thus: │ │ │ │ │ .Sp │ │ │ │ │ .Vb 3 │ │ │ │ │ \& extern type extern_array[]; │ │ │ │ │ \& extern_array[1] \-\-> │ │ │ │ │ \& { volatile type *t=extern_array; t[1] } │ │ │ │ │ .Ve │ │ │ │ │ .Sp │ │ │ │ │ @@ -3298,21 +3301,21 @@ │ │ │ │ │ .Vb 3 │ │ │ │ │ \& extern long long extern_ll; │ │ │ │ │ \& extern_ll \-\-> │ │ │ │ │ \& { volatile long long * local_ll=&extern_ll; *local_ll } │ │ │ │ │ .Ve │ │ │ │ │ .Sp │ │ │ │ │ A third method of dealing with this difficulty is to abandon │ │ │ │ │ -\&'auto\-import' for the offending symbol and mark it with │ │ │ │ │ +\&\*(Aqauto\-import\*(Aq for the offending symbol and mark it with │ │ │ │ │ \&\f(CW\*(C`_\|_declspec(dllimport)\*(C'\fR. However, in practice that │ │ │ │ │ -requires using compile-time #defines to indicate whether you are │ │ │ │ │ +requires using compile\-time #defines to indicate whether you are │ │ │ │ │ building a DLL, building client code that will link to the DLL, or │ │ │ │ │ merely building/linking to a static library. In making the choice │ │ │ │ │ -between the various methods of resolving the 'direct address with │ │ │ │ │ -constant offset' problem, you should consider typical real-world usage: │ │ │ │ │ +between the various methods of resolving the \*(Aqdirect address with │ │ │ │ │ +constant offset\*(Aq problem, you should consider typical real\-world usage: │ │ │ │ │ .Sp │ │ │ │ │ Original: │ │ │ │ │ .Sp │ │ │ │ │ .Vb 7 │ │ │ │ │ \& \-\-foo.h │ │ │ │ │ \& extern int arr[]; │ │ │ │ │ \& \-\-foo.c │ │ │ │ │ @@ -3351,37 +3354,37 @@ │ │ │ │ │ \& \-\-foo.c │ │ │ │ │ \& #include "foo.h" │ │ │ │ │ \& void main(int argc, char **argv){ │ │ │ │ │ \& printf("%d\en",arr[1]); │ │ │ │ │ \& } │ │ │ │ │ .Ve │ │ │ │ │ .Sp │ │ │ │ │ -A fourth way to avoid this problem is to re-code your │ │ │ │ │ +A fourth way to avoid this problem is to re\-code your │ │ │ │ │ library to use a functional interface rather than a data interface │ │ │ │ │ for the offending variables (e.g. \fBset_foo()\fR and \fBget_foo()\fR accessor │ │ │ │ │ functions). │ │ │ │ │ .IP \fB\-\-disable\-auto\-import\fR 4 │ │ │ │ │ .IX Item "--disable-auto-import" │ │ │ │ │ Do not attempt to do sophisticated linking of \f(CW\*(C`_symbol\*(C'\fR to │ │ │ │ │ \&\f(CW\*(C`_\|_imp_\|_symbol\*(C'\fR for DATA imports from DLLs. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP \fB\-\-enable\-runtime\-pseudo\-reloc\fR 4 │ │ │ │ │ .IX Item "--enable-runtime-pseudo-reloc" │ │ │ │ │ If your code contains expressions described in \-\-enable\-auto\-import section, │ │ │ │ │ -that is, DATA imports from DLL with non-zero offset, this switch will create │ │ │ │ │ -a vector of 'runtime pseudo relocations' which can be used by runtime │ │ │ │ │ +that is, DATA imports from DLL with non\-zero offset, this switch will create │ │ │ │ │ +a vector of \*(Aqruntime pseudo relocations\*(Aq which can be used by runtime │ │ │ │ │ environment to adjust references to such data in your client code. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP \fB\-\-disable\-runtime\-pseudo\-reloc\fR 4 │ │ │ │ │ .IX Item "--disable-runtime-pseudo-reloc" │ │ │ │ │ -Do not create pseudo relocations for non-zero offset DATA imports from DLLs. │ │ │ │ │ +Do not create pseudo relocations for non\-zero offset DATA imports from DLLs. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP \fB\-\-enable\-extra\-pe\-debug\fR 4 │ │ │ │ │ .IX Item "--enable-extra-pe-debug" │ │ │ │ │ -Show additional debug info related to auto-import symbol thunking. │ │ │ │ │ +Show additional debug info related to auto\-import symbol thunking. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP \fB\-\-section\-alignment\fR 4 │ │ │ │ │ .IX Item "--section-alignment" │ │ │ │ │ Sets the section alignment. Sections in memory will always begin at │ │ │ │ │ addresses which are a multiple of this number. Defaults to 0x1000. │ │ │ │ │ [This option is specific to the i386 PE targeted port of the linker] │ │ │ │ │ .IP "\fB\-\-stack\fR \fIreserve\fR" 4 │ │ │ │ │ @@ -3624,71 +3627,71 @@ │ │ │ │ │ .IP \fB\-N\fR 4 │ │ │ │ │ .IX Item "-N" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-omagic\fR 4 │ │ │ │ │ .IX Item "--omagic" │ │ │ │ │ .PD │ │ │ │ │ Mark the output as \f(CW\*(C`OMAGIC\*(C'\fR (0407) in the \fIa.out\fR header to │ │ │ │ │ -indicate that the text segment is not to be write-protected and │ │ │ │ │ +indicate that the text segment is not to be write\-protected and │ │ │ │ │ shared. Since the text and data sections are both readable and │ │ │ │ │ writable, the data section is allocated immediately contiguous after │ │ │ │ │ the text segment. This is the oldest format for PDP11 executable │ │ │ │ │ programs and is the default for \fBld\fR on PDP11 Unix systems │ │ │ │ │ from the beginning through 2.11BSD. │ │ │ │ │ .IP \fB\-n\fR 4 │ │ │ │ │ .IX Item "-n" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-nmagic\fR 4 │ │ │ │ │ .IX Item "--nmagic" │ │ │ │ │ .PD │ │ │ │ │ Mark the output as \f(CW\*(C`NMAGIC\*(C'\fR (0410) in the \fIa.out\fR header to │ │ │ │ │ indicate that when the output file is executed, the text portion will │ │ │ │ │ -be read-only and shareable among all processes executing the same │ │ │ │ │ +be read\-only and shareable among all processes executing the same │ │ │ │ │ file. This involves moving the data areas up to the first possible 8K │ │ │ │ │ byte page boundary following the end of the text. This option creates │ │ │ │ │ a \fIpure executable\fR format. │ │ │ │ │ .IP \fB\-z\fR 4 │ │ │ │ │ .IX Item "-z" │ │ │ │ │ .PD 0 │ │ │ │ │ .IP \fB\-\-imagic\fR 4 │ │ │ │ │ .IX Item "--imagic" │ │ │ │ │ .PD │ │ │ │ │ Mark the output as \f(CW\*(C`IMAGIC\*(C'\fR (0411) in the \fIa.out\fR header to │ │ │ │ │ indicate that when the output file is executed, the program text and │ │ │ │ │ data areas will be loaded into separate address spaces using the split │ │ │ │ │ instruction and data space feature of the memory management unit in │ │ │ │ │ larger models of the PDP11. This doubles the address space available │ │ │ │ │ -to the program. The text segment is again pure, write-protected, and │ │ │ │ │ +to the program. The text segment is again pure, write\-protected, and │ │ │ │ │ shareable. The only difference in the output format between this │ │ │ │ │ option and the others, besides the magic number, is that both the text │ │ │ │ │ and data sections start at location 0. The \fB\-z\fR option selected │ │ │ │ │ this format in 2.11BSD. This option creates a \fIseparate │ │ │ │ │ executable\fR format. │ │ │ │ │ .IP \fB\-\-no\-omagic\fR 4 │ │ │ │ │ .IX Item "--no-omagic" │ │ │ │ │ Equivalent to \fB\-\-nmagic\fR for pdp11\-aout. │ │ │ │ │ .SH ENVIRONMENT │ │ │ │ │ .IX Header "ENVIRONMENT" │ │ │ │ │ You can change the behaviour of \fBld\fR with the environment variables │ │ │ │ │ \&\f(CW\*(C`GNUTARGET\*(C'\fR, │ │ │ │ │ \&\f(CW\*(C`LDEMULATION\*(C'\fR and \f(CW\*(C`COLLECT_NO_DEMANGLE\*(C'\fR. │ │ │ │ │ .PP │ │ │ │ │ -\&\f(CW\*(C`GNUTARGET\*(C'\fR determines the input-file object format if you don't │ │ │ │ │ +\&\f(CW\*(C`GNUTARGET\*(C'\fR determines the input\-file object format if you don\*(Aqt │ │ │ │ │ use \fB\-b\fR (or its synonym \fB\-\-format\fR). Its value should be one │ │ │ │ │ of the BFD names for an input format. If there is no │ │ │ │ │ \&\f(CW\*(C`GNUTARGET\*(C'\fR in the environment, \fBld\fR uses the natural format │ │ │ │ │ of the target. If \f(CW\*(C`GNUTARGET\*(C'\fR is set to \f(CW\*(C`default\*(C'\fR then BFD │ │ │ │ │ attempts to discover the input format by examining binary input files; │ │ │ │ │ this method often succeeds, but there are potential ambiguities, since │ │ │ │ │ there is no method of ensuring that the magic number used to specify │ │ │ │ │ -object-file formats is unique. However, the configuration procedure for │ │ │ │ │ +object\-file formats is unique. However, the configuration procedure for │ │ │ │ │ BFD on each system places the conventional format for that system first │ │ │ │ │ -in the search-list, so ambiguities are resolved in favor of convention. │ │ │ │ │ +in the search\-list, so ambiguities are resolved in favor of convention. │ │ │ │ │ .PP │ │ │ │ │ -\&\f(CW\*(C`LDEMULATION\*(C'\fR determines the default emulation if you don't use the │ │ │ │ │ +\&\f(CW\*(C`LDEMULATION\*(C'\fR determines the default emulation if you don\*(Aqt use the │ │ │ │ │ \&\fB\-m\fR option. The emulation can affect various aspects of linker │ │ │ │ │ behaviour, particularly the default linker script. You can list the │ │ │ │ │ available emulations with the \fB\-\-verbose\fR or \fB\-V\fR options. If │ │ │ │ │ the \fB\-m\fR option is not used, and the \f(CW\*(C`LDEMULATION\*(C'\fR environment │ │ │ │ │ variable is not defined, the default emulation depends upon how the │ │ │ │ │ linker was configured. │ │ │ │ │ .PP │ │ │ │ │ @@ -3711,10 +3714,10 @@ │ │ │ │ │ .SH COPYRIGHT │ │ │ │ │ .IX Header "COPYRIGHT" │ │ │ │ │ Copyright (c) 1991\-2025 Free Software Foundation, Inc. │ │ │ │ │ .PP │ │ │ │ │ Permission is granted to copy, distribute and/or modify this document │ │ │ │ │ under the terms of the GNU Free Documentation License, Version 1.3 │ │ │ │ │ or any later version published by the Free Software Foundation; │ │ │ │ │ -with no Invariant Sections, with no Front-Cover Texts, and with no │ │ │ │ │ -Back-Cover Texts. A copy of the license is included in the │ │ │ │ │ +with no Invariant Sections, with no Front\-Cover Texts, and with no │ │ │ │ │ +Back\-Cover Texts. A copy of the license is included in the │ │ │ │ │ section entitled "GNU Free Documentation License".