- checkin of certain files being automatically generated with newer version of flex/bison&co.

This commit is contained in:
Jens Maus 2015-03-26 08:15:01 +00:00
parent b8fa24d6f7
commit 5c77c5df76
6 changed files with 2288 additions and 1710 deletions

View File

@ -1,15 +1,7 @@
.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sh \" Subsection heading
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
@ -25,11 +17,11 @@
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. | will give a
.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
.\" expand to `' in nroff, nothing in troff, for use with C<>.
.tr \(*W-|\(bv\*(Tr
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
@ -46,23 +38,36 @@
. ds PI \(*p
. ds L" ``
. ds R" ''
. ds C`
. ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.if \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.\"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.hy 0
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{
. if \nF \{
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. if !\nF==2 \{
. nr % 0
. nr F 2
. \}
. \}
.\}
.rr rF
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
@ -128,7 +133,11 @@
.\" ========================================================================
.\"
.IX Title "C++FILT 1"
.TH C++FILT 1 "2003-04-27" "binutils-2.13.90" "GNU Development Tools"
.TH C++FILT 1 "2014-11-14" "binutils-2.14" "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"
cxxfilt \- Demangle C++ and Java symbols.
.SH "SYNOPSIS"
@ -208,7 +217,7 @@ Automatic selection based on executable (the default method)
.ie n .IP """gnu""" 4
.el .IP "\f(CWgnu\fR" 4
.IX Item "gnu"
the one used by the \s-1GNU\s0 \*(C+ compiler (g++)
the one used by the \s-1GNU \*(C+\s0 compiler (g++)
.ie n .IP """lucid""" 4
.el .IP "\f(CWlucid\fR" 4
.IX Item "lucid"
@ -228,7 +237,7 @@ the one used by the \s-1EDG\s0 compiler
.ie n .IP """gnu\-v3""" 4
.el .IP "\f(CWgnu\-v3\fR" 4
.IX Item "gnu-v3"
the one used by the \s-1GNU\s0 \*(C+ compiler (g++) with the V3 \s-1ABI\s0.
the one used by the \s-1GNU \*(C+\s0 compiler (g++) with the V3 \s-1ABI.\s0
.ie n .IP """java""" 4
.el .IP "\f(CWjava\fR" 4
.IX Item "java"

View File

@ -1,15 +1,7 @@
.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sh \" Subsection heading
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
@ -25,11 +17,11 @@
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. | will give a
.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
.\" expand to `' in nroff, nothing in troff, for use with C<>.
.tr \(*W-|\(bv\*(Tr
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
@ -46,23 +38,36 @@
. ds PI \(*p
. ds L" ``
. ds R" ''
. ds C`
. ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.if \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.\"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.hy 0
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{
. if \nF \{
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. if !\nF==2 \{
. nr % 0
. nr F 2
. \}
. \}
.\}
.rr rF
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
@ -128,7 +133,11 @@
.\" ========================================================================
.\"
.IX Title "STRINGS 1"
.TH STRINGS 1 "2003-04-27" "binutils-2.13.90" "GNU Development Tools"
.TH STRINGS 1 "2014-11-14" "binutils-2.14" "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"
strings \- print the strings of printable characters in files.
.SH "SYNOPSIS"
@ -142,7 +151,7 @@ strings [\fB\-afov\fR] [\fB\-\fR\fImin-len\fR]
[\fB\-\-help\fR] [\fB\-\-version\fR] \fIfile\fR...
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
For each \fIfile\fR given, \s-1GNU\s0 \fBstrings\fR prints the printable
For each \fIfile\fR given, \s-1GNU \s0\fBstrings\fR prints the printable
character sequences that are at least 4 characters long (or the number
given with the options below) and are followed by an unprintable
character. By default, it only prints the strings from the initialized
@ -205,7 +214,7 @@ octal, \fBx\fR for hexadecimal, or \fBd\fR for decimal.
.PD
Select the character encoding of the strings that are to be found.
Possible values for \fIencoding\fR are: \fBs\fR = single\-7\-bit\-byte
characters (\s-1ASCII\s0, \s-1ISO\s0 8859, etc., default), \fBS\fR =
characters (\s-1ASCII, ISO 8859,\s0 etc., default), \fBS\fR =
single\-8\-bit\-byte characters, \fBb\fR = 16\-bit bigendian, \fBl\fR =
16\-bit littleendian, \fBB\fR = 32\-bit bigendian, \fBL\fR = 32\-bit
littleendian. Useful for finding wide character strings.

View File

@ -1,15 +1,7 @@
.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sh \" Subsection heading
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
@ -25,11 +17,11 @@
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. | will give a
.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
.\" expand to `' in nroff, nothing in troff, for use with C<>.
.tr \(*W-|\(bv\*(Tr
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
@ -46,23 +38,36 @@
. ds PI \(*p
. ds L" ``
. ds R" ''
. ds C`
. ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.if \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.\"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.hy 0
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{
. if \nF \{
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. if !\nF==2 \{
. nr % 0
. nr F 2
. \}
. \}
.\}
.rr rF
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
@ -128,7 +133,11 @@
.\" ========================================================================
.\"
.IX Title "AS 1"
.TH AS 1 "2003-06-12" "binutils-2.14" "GNU Development Tools"
.TH AS 1 "2015-03-25" "binutils-2.14" "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"
AS \- the portable GNU assembler.
.SH "SYNOPSIS"
@ -229,7 +238,7 @@ as [\fB\-a\fR[\fBcdhlns\fR][=\fIfile\fR]] [\fB\-D\fR] [\fB\-\-defsym\fR \fIsym\f
\&\fITarget \s-1PDP11\s0 options:\fR
[\fB\-mpic\fR|\fB\-mno\-pic\fR] [\fB\-mall\fR] [\fB\-mno\-extensions\fR]
[\fB\-m\fR\fIextension\fR|\fB\-mno\-\fR\fIextension\fR]
[\fB\-m\fR\fIcpu\fR] [\fB\-m\fR\fImachine\fR]
[\fB\-m\fR\fIcpu\fR] [\fB\-m\fR\fImachine\fR]
.PP
\&\fITarget picoJava options:\fR
[\fB\-mb\fR|\fB\-me\fR]
@ -260,7 +269,7 @@ as [\fB\-a\fR[\fBcdhlns\fR][=\fIfile\fR]] [\fB\-D\fR] [\fB\-\-defsym\fR \fIsym\f
[\fB\-\-[no\-]target\-align\fR] [\fB\-\-[no\-]longcalls\fR]
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\s-1GNU\s0 \fBas\fR is really a family of assemblers.
\&\s-1GNU \s0\fBas\fR is really a family of assemblers.
If you use (or have used) the \s-1GNU\s0 assembler on one architecture, you
should find a fairly similar environment when you use it on another
architecture. Each version has much in common with the others,
@ -268,8 +277,8 @@ including object file formats, most assembler directives (often called
\&\fIpseudo-ops\fR) and assembler syntax.
.PP
\&\fBas\fR is primarily intended to assemble the output of the
\&\s-1GNU\s0 C compiler for use by the linker
\&. Nevertheless, we've tried to make \fBas\fR
\&\s-1GNU C\s0 compiler \f(CW\*(C`\*(C'\fR for use by the linker
\&\f(CW\*(C`\*(C'\fR. Nevertheless, we've tried to make \fBas\fR
assemble correctly everything that other assemblers for the same
machine would assemble.
Any exceptions are documented explicitly.
@ -303,13 +312,13 @@ runs \fBas\fR automatically. Warnings report an assumption made so
that \fBas\fR could keep assembling a flawed program; errors report a
grave problem that stops the assembly.
.PP
If you are invoking \fBas\fR via the \s-1GNU\s0 C compiler,
If you are invoking \fBas\fR via the \s-1GNU C\s0 compiler,
you can use the \fB\-Wa\fR option to pass arguments through to the assembler.
The assembler arguments must be separated from each other (and the \fB\-Wa\fR)
by commas. For example:
.PP
.Vb 1
\& gcc -c -g -O -Wa,-alh,-L file.c
\& gcc \-c \-g \-O \-Wa,\-alh,\-L file.c
.Ve
.PP
This passes two options to the assembler: \fB\-alh\fR (emit a listing to
@ -558,11 +567,11 @@ is normally the M32R, but this option changes it to the M32RX.
.IP "\fB\-\-warn\-explicit\-parallel\-conflicts or \-\-Wp\fR" 4
.IX Item "--warn-explicit-parallel-conflicts or --Wp"
Produce warning messages when questionable parallel constructs are
encountered.
encountered.
.IP "\fB\-\-no\-warn\-explicit\-parallel\-conflicts or \-\-Wnp\fR" 4
.IX Item "--no-warn-explicit-parallel-conflicts or --Wnp"
Do not produce warning messages when questionable parallel constructs are
encountered.
encountered.
.PP
The following options are available when as is configured for the
Motorola 68000 series.
@ -595,7 +604,7 @@ For details about the \s-1PDP\-11\s0 machine dependent features options,
see \f(CW@ref\fR{PDP\-11\-Options}.
.IP "\fB\-mpic | \-mno\-pic\fR" 4
.IX Item "-mpic | -mno-pic"
Generate position-independent (or position\-dependent) code. The
Generate position-independent (or position-dependent) code. The
default is \fB\-mpic\fR.
.IP "\fB\-mall\fR" 4
.IX Item "-mall"
@ -612,7 +621,7 @@ Disable all instruction set extensions.
Enable (or disable) a particular instruction set extension.
.IP "\fB\-m\fR\fIcpu\fR" 4
.IX Item "-mcpu"
Enable the instruction set extensions supported by a particular \s-1CPU\s0, and
Enable the instruction set extensions supported by a particular \s-1CPU,\s0 and
disable all other extensions.
.IP "\fB\-m\fR\fImachine\fR" 4
.IX Item "-mmachine"
@ -636,16 +645,16 @@ Specify what processor is the target. The default is
defined by the configuration option when building the assembler.
.IP "\fB\-mshort\fR" 4
.IX Item "-mshort"
Specify to use the 16\-bit integer \s-1ABI\s0.
Specify to use the 16\-bit integer \s-1ABI.\s0
.IP "\fB\-mlong\fR" 4
.IX Item "-mlong"
Specify to use the 32\-bit integer \s-1ABI\s0.
Specify to use the 32\-bit integer \s-1ABI. \s0
.IP "\fB\-mshort\-double\fR" 4
.IX Item "-mshort-double"
Specify to use the 32\-bit double \s-1ABI\s0.
Specify to use the 32\-bit double \s-1ABI. \s0
.IP "\fB\-mlong\-double\fR" 4
.IX Item "-mlong-double"
Specify to use the 64\-bit double \s-1ABI\s0.
Specify to use the 64\-bit double \s-1ABI. \s0
.IP "\fB\-\-force\-long\-branchs\fR" 4
.IX Item "--force-long-branchs"
Relative branches are turned into absolute ones. This concerns
@ -683,7 +692,7 @@ Explicitly select a variant of the \s-1SPARC\s0 architecture.
\&\fB\-Av8plus\fR and \fB\-Av8plusa\fR select a 32 bit environment.
\&\fB\-Av9\fR and \fB\-Av9a\fR select a 64 bit environment.
.Sp
\&\fB\-Av8plusa\fR and \fB\-Av9a\fR enable the \s-1SPARC\s0 V9 instruction set with
\&\fB\-Av8plusa\fR and \fB\-Av9a\fR enable the \s-1SPARC V9\s0 instruction set with
UltraSPARC extensions.
.IP "\fB\-xarch=v8plus | \-xarch=v8plusa\fR" 4
.IX Item "-xarch=v8plus | -xarch=v8plusa"
@ -694,7 +703,7 @@ equivalent to \-Av8plus and \-Av8plusa, respectively.
Warn when the assembler switches to another architecture.
.PP
The following options are available when as is configured for the 'c54x
architecture.
architecture.
.IP "\fB\-mfar\-mode\fR" 4
.IX Item "-mfar-mode"
Enable extended addressing mode. All addresses and relocations will assume
@ -744,7 +753,7 @@ alias for \fB\-march=r6000\fR, \fB\-mips3\fR is an alias for
\&\fB\-march=r4000\fR and \fB\-mips4\fR is an alias for \fB\-march=r8000\fR.
\&\fB\-mips5\fR, \fB\-mips32\fR, \fB\-mips32r2\fR, and \fB\-mips64\fR
correspond to generic
\&\fB\s-1MIPS\s0 V\fR, \fB\s-1MIPS32\s0\fR, \fB\s-1MIPS32\s0 Release 2\fR, and
\&\fB\s-1MIPS V\s0\fR, \fB\s-1MIPS32\s0\fR, \fB\s-1MIPS32\s0 Release 2\fR, and
\&\fB\s-1MIPS64\s0\fR \s-1ISA\s0 processors,
respectively.
.IP "\fB\-march=\fR\fI\s-1CPU\s0\fR" 4
@ -768,14 +777,14 @@ of an mfhi or mflo instruction occurs in the following two instructions.
.IX Item "-no-mdebug"
.PD
Cause stabs-style debugging output to go into an ECOFF-style .mdebug
section instead of the standard \s-1ELF\s0 .stabs sections.
section instead of the standard \s-1ELF \s0.stabs sections.
.IP "\fB\-mgp32\fR" 4
.IX Item "-mgp32"
.PD 0
.IP "\fB\-mfp32\fR" 4
.IX Item "-mfp32"
.PD
The register sizes are normally inferred from the \s-1ISA\s0 and \s-1ABI\s0, but these
The register sizes are normally inferred from the \s-1ISA\s0 and \s-1ABI,\s0 but these
flags force a certain group of registers to be treated as 32 bits wide at
all times. \fB\-mgp32\fR controls the size of general-purpose registers
and \fB\-mfp32\fR controls the size of floating-point registers.
@ -785,7 +794,7 @@ and \fB\-mfp32\fR controls the size of floating-point registers.
.IP "\fB\-no\-mips16\fR" 4
.IX Item "-no-mips16"
.PD
Generate code for the \s-1MIPS\s0 16 processor. This is equivalent to putting
Generate code for the \s-1MIPS 16\s0 processor. This is equivalent to putting
\&\f(CW\*(C`.set mips16\*(C'\fR at the start of the assembly file. \fB\-no\-mips16\fR
turns off this option.
.IP "\fB\-mips3d\fR" 4
@ -832,7 +841,7 @@ in the name. Using \fB\-EB\fR or \fB\-EL\fR will override the endianness
selection in any case.
.Sp
This option is currently supported only when the primary target
\&\fBas\fR is configured for is a \s-1MIPS\s0 \s-1ELF\s0 or \s-1ECOFF\s0 target.
\&\fBas\fR is configured for is a \s-1MIPS ELF\s0 or \s-1ECOFF\s0 target.
Furthermore, the primary target or others specified with
\&\fB\-\-enable\-targets=...\fR at configuration time must include support for
the other format, if both are to be available. For example, the Irix 5

File diff suppressed because it is too large Load Diff

155
ld/ld.1
View File

@ -1,15 +1,7 @@
.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sh \" Subsection heading
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
@ -25,11 +17,11 @@
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. | will give a
.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
.\" expand to `' in nroff, nothing in troff, for use with C<>.
.tr \(*W-|\(bv\*(Tr
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
@ -46,23 +38,36 @@
. ds PI \(*p
. ds L" ``
. ds R" ''
. ds C`
. ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.if \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.\"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.hy 0
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{
. if \nF \{
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. if !\nF==2 \{
. nr % 0
. nr F 2
. \}
. \}
.\}
.rr rF
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
@ -128,7 +133,11 @@
.\" ========================================================================
.\"
.IX Title "LD 1"
.TH LD 1 "2003-06-12" "binutils-2.14" "GNU Development Tools"
.TH LD 1 "2015-03-25" "binutils-2.14" "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 \- Using LD, the GNU linker
.SH "SYNOPSIS"
@ -147,13 +156,13 @@ to provide explicit and total control over the linking process.
This man page does not describe the command language; see the
\&\fBld\fR entry in \f(CW\*(C`info\*(C'\fR, or the manual
ld: the \s-1GNU\s0 linker, for full details on the command language and
on other aspects of the \s-1GNU\s0 linker.
on other aspects of the \s-1GNU\s0 linker.
.PP
This version of \fBld\fR uses the general purpose \s-1BFD\s0 libraries
to operate on object files. This allows \fBld\fR to read, combine, and
write object files in many different formats\-\-\-for example, \s-1COFF\s0 or
\&\f(CW\*(C`a.out\*(C'\fR. Different formats may be linked together to produce any
available kind of object file.
available kind of object file.
.PP
Aside from its flexibility, the \s-1GNU\s0 linker is more helpful than other
linkers in providing diagnostic information. Many linkers abandon
@ -173,7 +182,7 @@ 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 <output> /lib/crt0.o hello.o -lc
\& ld \-o <output> /lib/crt0.o hello.o \-lc
.Ve
.PP
This tells \fBld\fR to produce a file called \fIoutput\fR as the
@ -239,7 +248,7 @@ prefixed by \fB\-Wl,\fR (or whatever is appropriate for the particular
compiler driver) like this:
.PP
.Vb 1
\& gcc -Wl,--startgroup foo.o bar.o -Wl,--endgroup
\& gcc \-Wl,\-\-startgroup foo.o bar.o \-Wl,\-\-endgroup
.Ve
.PP
This is important, because otherwise the compiler driver program may
@ -264,7 +273,7 @@ In the current release of \fBld\fR, this option is useful only for the
Intel 960 family of architectures. In that \fBld\fR configuration, the
\&\fIarchitecture\fR argument identifies the particular architecture in
the 960 family, enabling some safeguards and modifying the
archive-library search path.
archive-library search path.
.Sp
Future releases of \fBld\fR may support similar functionality for
other architecture families.
@ -302,7 +311,7 @@ You can also define the input format from a script, using the command
.IP "\fB\-\-mri\-script=\fR\fIMRI-commandfile\fR" 4
.IX Item "--mri-script=MRI-commandfile"
.PD
For compatibility with linkers produced by \s-1MRI\s0, \fBld\fR accepts script
For compatibility with linkers produced by \s-1MRI, \s0\fBld\fR accepts script
files written in an alternate, restricted command language, described in
the \s-1MRI\s0 Compatible Script Files section of \s-1GNU\s0 ld documentation.
Introduce \s-1MRI\s0 script files with
@ -333,7 +342,7 @@ program, rather than the default entry point. If there is no symbol
named \fIentry\fR, the linker will try to parse \fIentry\fR as a number,
and use that as the entry address (the number will be interpreted in
base 10; you may use a leading \fB0x\fR for base 16, or a leading
\&\fB0\fR for base 8).
\&\fB0\fR for base 8).
.IP "\fB\-E\fR" 4
.IX Item "-E"
.PD 0
@ -430,7 +439,7 @@ Ignored. Provided for compatibility with other tools.
.PD
Set the maximum size of objects to be optimized using the \s-1GP\s0 register to
\&\fIsize\fR. This is only meaningful for object file formats such as
\&\s-1MIPS\s0 \s-1ECOFF\s0 which supports putting large and small objects into different
\&\s-1MIPS ECOFF\s0 which supports putting large and small objects into different
sections. This is ignored for other object file formats.
.IP "\fB\-h\fR\fIname\fR" 4
.IX Item "-hname"
@ -483,7 +492,7 @@ archives multiple times.
You may list the same archive multiple times on the command line.
.Sp
This type of archive searching is standard for Unix linkers. However,
if you are using \fBld\fR on \s-1AIX\s0, note that it is different from the
if you are using \fBld\fR on \s-1AIX,\s0 note that it is different from the
behaviour of the \s-1AIX\s0 linker.
.IP "\fB\-L\fR\fIsearchdir\fR" 4
.IX Item "-Lsearchdir"
@ -504,7 +513,7 @@ by the \fIsysroot prefix\fR, a path specified when the linker is configured.
.Sp
The default set of paths searched (without being specified with
\&\fB\-L\fR) depends on which emulation mode \fBld\fR is using, and in
some cases also on how it was configured.
some cases also on how it was configured.
.Sp
The paths can also be specified in a link script with the
\&\f(CW\*(C`SEARCH_DIR\*(C'\fR command. Directories specified this way are searched
@ -559,8 +568,8 @@ mark the output as \f(CW\*(C`OMAGIC\*(C'\fR.
.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"
@ -1036,7 +1045,7 @@ usual format on each machine. \fIoutput-format\fR is a text string, the
name of a particular format supported by the \s-1BFD\s0 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.
this option overrides it.
.IP "\fB\-qmagic\fR" 4
.IX Item "-qmagic"
This option is ignored for Linux compatibility.
@ -1103,7 +1112,7 @@ When using \s-1ELF\s0 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,
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, the \fB\-rpath\-link\fR option
@ -1160,7 +1169,7 @@ warning and continue with the link.
.IP "\fB\-Bshareable\fR" 4
.IX Item "-Bshareable"
.PD
Create a shared library. This is currently only supported on \s-1ELF\s0, \s-1XCOFF\s0
Create a shared library. This is currently only supported on \s-1ELF, XCOFF\s0
and SunOS platforms. On SunOS, the linker will automatically create a
shared library if the \fB\-e\fR option is not used and there are
undefined symbols in the link.
@ -1281,7 +1290,7 @@ Turning a common symbol into a reference, because there is already a
definition for the symbol.
.Sp
.Vb 3
\& <file>(<section>): warning: common of `<symbol>'
\& <file>(<section>): warning: common of \`<symbol>\*(Aq
\& overridden by definition
\& <file>(<section>): warning: defined here
.Ve
@ -1291,7 +1300,7 @@ the symbol is encountered. This is the same as the previous case,
except that the symbols are encountered in a different order.
.Sp
.Vb 3
\& <file>(<section>): warning: definition of `<symbol>'
\& <file>(<section>): warning: definition of \`<symbol>\*(Aq
\& overriding common
\& <file>(<section>): warning: common is here
.Ve
@ -1300,14 +1309,14 @@ Merging a common symbol with a previous same-sized common symbol.
.Sp
.Vb 3
\& <file>(<section>): warning: multiple common
\& of `<symbol>'
\& of \`<symbol>\*(Aq
\& <file>(<section>): warning: previous common is here
.Ve
.IP "4." 4
Merging a common symbol with a previous larger common symbol.
.Sp
.Vb 3
\& <file>(<section>): warning: common of `<symbol>'
\& <file>(<section>): warning: common of \`<symbol>\*(Aq
\& overridden by larger common
\& <file>(<section>): warning: larger common is here
.Ve
@ -1317,7 +1326,7 @@ the same as the previous case, except that the symbols are
encountered in a different order.
.Sp
.Vb 3
\& <file>(<section>): warning: common of `<symbol>'
\& <file>(<section>): warning: common of \`<symbol>\*(Aq
\& overriding smaller common
\& <file>(<section>): warning: smaller common is here
.Ve
@ -1327,7 +1336,7 @@ encountered in a different order.
.IP "\fB\-\-warn\-constructors\fR" 4
.IX Item "--warn-constructors"
Warn if any global constructors are used. This is only useful for a few
object file formats. For formats like \s-1COFF\s0 or \s-1ELF\s0, the linker can not
object file formats. For formats like \s-1COFF\s0 or \s-1ELF,\s0 the linker can not
detect the use of global constructors.
.IP "\fB\-\-warn\-multiple\-gp\fR" 4
.IX Item "--warn-multiple-gp"
@ -1383,10 +1392,10 @@ Here is a trivial example:
.Sp
.Vb 6
\& void *
\& __wrap_malloc (int c)
\& _\|_wrap_malloc (int c)
\& {
\& printf ("malloc called with %ld\en", c);
\& return __real_malloc (c);
\& return _\|_real_malloc (c);
\& }
.Ve
.Sp
@ -1406,7 +1415,7 @@ call before the linker has a chance to wrap it to \f(CW\*(C`malloc\*(C'\fR.
.IP "\fB\-\-disable\-new\-dtags\fR" 4
.IX Item "--disable-new-dtags"
.PD
This linker can create the new dynamic tags in \s-1ELF\s0. But the older \s-1ELF\s0
This linker can create the new dynamic tags in \s-1ELF.\s0 But the older \s-1ELF\s0
systems may not understand them. If you specify
\&\fB\-\-enable\-new\-dtags\fR, the dynamic tags will be created as needed.
If you specify \fB\-\-disable\-new\-dtags\fR, no new dynamic tags will be
@ -1466,7 +1475,7 @@ mismatches are considered to be errors.
.IP "\fB\-\-export\-all\-symbols\fR" 4
.IX Item "--export-all-symbols"
If given, all global symbols in the objects used to build a \s-1DLL\s0 will
be exported by the \s-1DLL\s0. Note that this is the default if there
be exported by the \s-1DLL. \s0 Note that this is the default if there
otherwise wouldn't be any exported symbols. When symbols are
explicitly exported via \s-1DEF\s0 files or implicitly exported via function
attributes, the default is to not export anything else unless this
@ -1474,7 +1483,7 @@ 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 \s-1DLL\s0's internal layout
re-exported, nor will symbols specifying the \s-1DLL\s0's 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.
@ -1576,7 +1585,7 @@ creation step.
.IX Item "--enable-auto-image-base"
Automatically choose the image base for DLLs, 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 \s-1DLL\s0, in-memory
from the dllname to create unique image bases for each \s-1DLL,\s0 in-memory
collisions and relocations which can delay program execution are
avoided.
[This option is specific to the i386 \s-1PE\s0 targeted port of the linker]
@ -1602,14 +1611,14 @@ Do sophisticated linking of \f(CW\*(C`_symbol\*(C'\fR to \f(CW\*(C`_\|_imp_\|_sy
building the import libraries with those \s-1DATA\s0 exports. This generally
will 'just work' \*(-- but sometimes you may see this message:
.Sp
"variable '<var>' can't be auto\-imported. Please read the
"variable '<var>' can't be auto-imported. Please read the
documentation for ld's \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 \s-1DLL\s0, as well as using a
constant index into an array variable imported from a \s-1DLL\s0. Any
fields of struct variables imported from a \s-1DLL,\s0 as well as using a
constant index into an array variable imported from a \s-1DLL. \s0 Any
multiword variable (arrays, structs, long long, etc) may trigger
this error condition. However, regardless of the exact data type
of the offending exported variable, ld will always detect it, issue
@ -1629,7 +1638,7 @@ a variable, or b) make the 'constant' index a variable. Thus:
.Sp
.Vb 3
\& extern type extern_array[];
\& extern_array[1] -->
\& extern_array[1] \-\->
\& { volatile type *t=extern_array; t[1] }
.Ve
.Sp
@ -1637,7 +1646,7 @@ or
.Sp
.Vb 3
\& extern type extern_array[];
\& extern_array[1] -->
\& extern_array[1] \-\->
\& { volatile int t=1; extern_array[t] }
.Ve
.Sp
@ -1646,15 +1655,15 @@ is to make the struct itself (or the long long, or the ...) variable:
.Sp
.Vb 3
\& extern struct s extern_struct;
\& extern_struct.field -->
\& { volatile struct s *t=&extern_struct; t->field }
\& extern_struct.field \-\->
\& { volatile struct s *t=&extern_struct; t\->field }
.Ve
.Sp
or
.Sp
.Vb 3
\& extern long long extern_ll;
\& extern_ll -->
\& extern_ll \-\->
\& { volatile long long * local_ll=&extern_ll; *local_ll }
.Ve
.Sp
@ -1662,7 +1671,7 @@ A third method of dealing with this difficulty is to abandon
\&'auto\-import' 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
building a \s-1DLL\s0, building client code that will link to the \s-1DLL\s0, or
building a \s-1DLL,\s0 building client code that will link to the \s-1DLL,\s0 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:
@ -1670,9 +1679,9 @@ constant offset' problem, you should consider typical real-world usage:
Original:
.Sp
.Vb 7
\& --foo.h
\& \-\-foo.h
\& extern int arr[];
\& --foo.c
\& \-\-foo.c
\& #include "foo.h"
\& void main(int argc, char **argv){
\& printf("%d\en",arr[1]);
@ -1682,9 +1691,9 @@ Original:
Solution 1:
.Sp
.Vb 9
\& --foo.h
\& \-\-foo.h
\& extern int arr[];
\& --foo.c
\& \-\-foo.c
\& #include "foo.h"
\& void main(int argc, char **argv){
\& /* This workaround is for win32 and cygwin; do not "optimize" */
@ -1695,17 +1704,17 @@ Solution 1:
.Sp
Solution 2:
.Sp
.Vb 14
\& --foo.h
\& /* Note: auto-export is assumed (no __declspec(dllexport)) */
\& #if (defined(_WIN32) || defined(__CYGWIN__)) && \e
.Vb 10
\& \-\-foo.h
\& /* Note: auto\-export is assumed (no _\|_declspec(dllexport)) */
\& #if (defined(_WIN32) || defined(_\|_CYGWIN_\|_)) && \e
\& !(defined(FOO_BUILD_DLL) || defined(FOO_STATIC))
\& #define FOO_IMPORT __declspec(dllimport)
\& #define FOO_IMPORT _\|_declspec(dllimport)
\& #else
\& #define FOO_IMPORT
\& #endif
\& extern FOO_IMPORT int arr[];
\& --foo.c
\& \-\-foo.c
\& #include "foo.h"
\& void main(int argc, char **argv){
\& printf("%d\en",arr[1]);
@ -1782,7 +1791,7 @@ 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
\&\s-1BFD\s0 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
\&\fB\-m\fR option. The emulation can affect various aspects of linker

View File

@ -1,5 +1,5 @@
#line 3 "lex.yy.c"
#line 3 "ldlex.c"
#define YY_INT_ALIGNED short int
@ -8,7 +8,7 @@
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5
#define YY_FLEX_SUBMINOR_VERSION 31
#define YY_FLEX_SUBMINOR_VERSION 39
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif
@ -30,7 +30,15 @@
/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
* if you want the limit (max/min) macros for int types.
*/
#ifndef __STDC_LIMIT_MACROS
#define __STDC_LIMIT_MACROS 1
#endif
#include <inttypes.h>
typedef int8_t flex_int8_t;
typedef uint8_t flex_uint8_t;
@ -45,7 +53,6 @@ typedef int flex_int32_t;
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
#endif /* ! C99 */
/* Limits of integral types. */
#ifndef INT8_MIN
@ -76,6 +83,8 @@ typedef unsigned int flex_uint32_t;
#define UINT32_MAX (4294967295U)
#endif
#endif /* ! C99 */
#endif /* ! FLEXINT_H */
#ifdef __cplusplus
@ -85,11 +94,12 @@ typedef unsigned int flex_uint32_t;
#else /* ! __cplusplus */
#if __STDC__
/* C99 requires __STDC__ to be defined as 1. */
#if defined (__STDC__)
#define YY_USE_CONST
#endif /* __STDC__ */
#endif /* defined (__STDC__) */
#endif /* ! __cplusplus */
#ifdef YY_USE_CONST
@ -131,15 +141,32 @@ typedef unsigned int flex_uint32_t;
/* Size of default input buffer. */
#ifndef YY_BUF_SIZE
#ifdef __ia64__
/* On IA-64, the buffer size is 16k, not 8k.
* Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
* Ditto for the __ia64__ case accordingly.
*/
#define YY_BUF_SIZE 32768
#else
#define YY_BUF_SIZE 16384
#endif /* __ia64__ */
#endif
/* The state buf must be large enough to hold one state per character in the main buffer.
*/
#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
#ifndef YY_TYPEDEF_YY_BUFFER_STATE
#define YY_TYPEDEF_YY_BUFFER_STATE
typedef struct yy_buffer_state *YY_BUFFER_STATE;
#endif
extern int yyleng;
#ifndef YY_TYPEDEF_YY_SIZE_T
#define YY_TYPEDEF_YY_SIZE_T
typedef size_t yy_size_t;
#endif
extern yy_size_t yyleng;
extern FILE *yyin, *yyout;
@ -148,6 +175,7 @@ extern FILE *yyin, *yyout;
#define EOB_ACT_LAST_MATCH 2
#define YY_LESS_LINENO(n)
#define YY_LINENO_REWIND_TO(ptr)
/* Return all but the first "n" matched characters back to the input stream. */
#define yyless(n) \
@ -165,16 +193,6 @@ extern FILE *yyin, *yyout;
#define unput(c) yyunput( c, (yytext_ptr) )
/* The following is because we cannot portably get our hands on size_t
* (without autoconf's help, which isn't available because we want
* flex-generated scanners to compile on their own).
*/
#ifndef YY_TYPEDEF_YY_SIZE_T
#define YY_TYPEDEF_YY_SIZE_T
typedef unsigned int yy_size_t;
#endif
#ifndef YY_STRUCT_YY_BUFFER_STATE
#define YY_STRUCT_YY_BUFFER_STATE
struct yy_buffer_state
@ -192,7 +210,7 @@ struct yy_buffer_state
/* Number of characters read into yy_ch_buf, not including EOB
* characters.
*/
int yy_n_chars;
yy_size_t yy_n_chars;
/* Whether we "own" the buffer - i.e., we know we created it,
* and can realloc() it to grow it, and should free() it to
@ -262,12 +280,12 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
/* yy_hold_char holds the character lost when yytext is formed. */
static char yy_hold_char;
static int yy_n_chars; /* number of characters read into yy_ch_buf */
int yyleng;
static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */
yy_size_t yyleng;
/* Points to current character in buffer. */
static char *yy_c_buf_p = (char *) 0;
static int yy_init = 1; /* whether we need to initialize */
static int yy_init = 0; /* whether we need to initialize */
static int yy_start = 0; /* start state number */
/* Flag which is used to allow yywrap()'s to do buffer switches
@ -291,7 +309,7 @@ static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size );
YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str );
YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len );
YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len );
void *yyalloc (yy_size_t );
void *yyrealloc (void *,yy_size_t );
@ -1406,7 +1424,7 @@ int yywrap () { return 1; }
#line 1410 "lex.yy.c"
#line 1428 "ldlex.c"
#define INITIAL 0
#define SCRIPT 1
@ -1418,16 +1436,49 @@ int yywrap () { return 1; }
#define VERS_SCRIPT 7
#define VERS_NODE 8
#ifndef YY_NO_UNISTD_H
/* Special case for "unistd.h", since it is non-ANSI. We include it way
* down here because we want the user's section 1 to have been scanned first.
* The user has a chance to override it with an option.
*/
#include <unistd.h>
#endif
#ifndef YY_EXTRA_TYPE
#define YY_EXTRA_TYPE void *
#endif
static int yy_init_globals (void );
/* Accessor methods to globals.
These are made visible to non-reentrant scanners for convenience. */
int yylex_destroy (void );
int yyget_debug (void );
void yyset_debug (int debug_flag );
YY_EXTRA_TYPE yyget_extra (void );
void yyset_extra (YY_EXTRA_TYPE user_defined );
FILE *yyget_in (void );
void yyset_in (FILE * in_str );
FILE *yyget_out (void );
void yyset_out (FILE * out_str );
yy_size_t yyget_leng (void );
char *yyget_text (void );
int yyget_lineno (void );
void yyset_lineno (int line_number );
/* Macros after this point can all be overridden by user definitions in
* section 1.
*/
@ -1462,7 +1513,12 @@ static int input (void );
/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
#ifdef __ia64__
/* On IA-64, the buffer size is 16k, not 8k */
#define YY_READ_BUF_SIZE 16384
#else
#define YY_READ_BUF_SIZE 8192
#endif /* __ia64__ */
#endif
/* Copy whatever the last rule matched to the standard output. */
@ -1470,7 +1526,7 @@ static int input (void );
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
#endif
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
@ -1563,29 +1619,9 @@ YY_DECL
register char *yy_cp, *yy_bp;
register int yy_act;
#line 130 "ldlex.l"
if (parser_input != input_selected)
{
/* The first token of the input determines the initial parser state. */
input_type t = parser_input;
parser_input = input_selected;
switch (t)
{
case input_script: return INPUT_SCRIPT; break;
case input_mri_script: return INPUT_MRI_SCRIPT; break;
case input_version_script: return INPUT_VERSION_SCRIPT; break;
case input_defsym: return INPUT_DEFSYM; break;
default: abort ();
}
}
#line 1585 "lex.yy.c"
if ( (yy_init) )
if ( !(yy_init) )
{
(yy_init) = 0;
(yy_init) = 1;
#ifdef YY_USER_INIT
YY_USER_INIT;
@ -1609,6 +1645,27 @@ YY_DECL
yy_load_buffer_state( );
}
{
#line 130 "ldlex.l"
if (parser_input != input_selected)
{
/* The first token of the input determines the initial parser state. */
input_type t = parser_input;
parser_input = input_selected;
switch (t)
{
case input_script: return INPUT_SCRIPT; break;
case input_mri_script: return INPUT_MRI_SCRIPT; break;
case input_version_script: return INPUT_VERSION_SCRIPT; break;
case input_defsym: return INPUT_DEFSYM; break;
default: abort ();
}
}
#line 1668 "ldlex.c"
while ( 1 ) /* loops until end-of-file is reached */
{
yy_cp = (yy_c_buf_p);
@ -1625,7 +1682,7 @@ YY_DECL
yy_match:
do
{
register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
if ( yy_accept[yy_current_state] )
{
(yy_last_accepting_state) = yy_current_state;
@ -2652,7 +2709,7 @@ YY_RULE_SETUP
#line 452 "ldlex.l"
ECHO;
YY_BREAK
#line 2656 "lex.yy.c"
#line 2713 "ldlex.c"
case YY_END_OF_BUFFER:
{
@ -2781,6 +2838,7 @@ ECHO;
"fatal flex scanner internal error--no action found" );
} /* end of action switch */
} /* end of scanning one token */
} /* end of user's declarations */
} /* end of yylex */
/* yy_get_next_buffer - try to read in a new buffer
@ -2836,21 +2894,21 @@ static int yy_get_next_buffer (void)
else
{
size_t num_to_read =
yy_size_t num_to_read =
YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
while ( num_to_read <= 0 )
{ /* Not enough room in the buffer - grow it. */
/* just a shorter name for the current buffer */
YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
int yy_c_buf_p_offset =
(int) ((yy_c_buf_p) - b->yy_ch_buf);
if ( b->yy_is_our_buffer )
{
int new_size = b->yy_buf_size * 2;
yy_size_t new_size = b->yy_buf_size * 2;
if ( new_size <= 0 )
b->yy_buf_size += b->yy_buf_size / 8;
@ -2905,6 +2963,14 @@ static int yy_get_next_buffer (void)
else
ret_val = EOB_ACT_CONTINUE_SCAN;
if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
/* Extend the array by 50%, plus the number we really need. */
yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
}
(yy_n_chars) += number_to_move;
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
@ -2968,7 +3034,7 @@ static int yy_get_next_buffer (void)
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
yy_is_jam = (yy_current_state == 1150);
return yy_is_jam ? 0 : yy_current_state;
return yy_is_jam ? 0 : yy_current_state;
}
static void yyunput (int c, register char * yy_bp )
@ -2983,7 +3049,7 @@ static int yy_get_next_buffer (void)
if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
{ /* need to shift things up to make room */
/* +2 for EOB chars. */
register int number_to_move = (yy_n_chars) + 2;
register yy_size_t number_to_move = (yy_n_chars) + 2;
register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
register char *source =
@ -3032,7 +3098,7 @@ static int yy_get_next_buffer (void)
else
{ /* need more input */
int offset = (yy_c_buf_p) - (yytext_ptr);
yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
++(yy_c_buf_p);
switch ( yy_get_next_buffer( ) )
@ -3192,10 +3258,6 @@ static void yy_load_buffer_state (void)
yyfree((void *) b );
}
#ifndef __cplusplus
extern int isatty (int );
#endif /* __cplusplus */
/* Initializes or reinitializes a buffer.
* This function is sometimes called more than once on the same buffer,
* such as during a yyrestart() or at EOF.
@ -3308,7 +3370,7 @@ void yypop_buffer_state (void)
*/
static void yyensure_buffer_stack (void)
{
int num_to_alloc;
yy_size_t num_to_alloc;
if (!(yy_buffer_stack)) {
@ -3320,7 +3382,9 @@ static void yyensure_buffer_stack (void)
(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
(num_to_alloc * sizeof(struct yy_buffer_state*)
);
if ( ! (yy_buffer_stack) )
YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
(yy_buffer_stack_max) = num_to_alloc;
@ -3338,6 +3402,8 @@ static void yyensure_buffer_stack (void)
((yy_buffer_stack),
num_to_alloc * sizeof(struct yy_buffer_state*)
);
if ( ! (yy_buffer_stack) )
YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
/* zero only the new slots.*/
memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
@ -3382,42 +3448,42 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
/** Setup the input buffer state to scan a string. The next call to yylex() will
* scan from a @e copy of @a str.
* @param str a NUL-terminated string to scan
* @param yystr a NUL-terminated string to scan
*
* @return the newly allocated buffer state object.
* @note If you want to scan bytes that may contain NUL values, then use
* yy_scan_bytes() instead.
*/
YY_BUFFER_STATE yy_scan_string (yyconst char * str )
YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
{
return yy_scan_bytes(str,strlen(str) );
return yy_scan_bytes(yystr,strlen(yystr) );
}
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
* scan from a @e copy of @a bytes.
* @param bytes the byte buffer to scan
* @param len the number of bytes in the buffer pointed to by @a bytes.
* @param yybytes the byte buffer to scan
* @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
*
* @return the newly allocated buffer state object.
*/
YY_BUFFER_STATE yy_scan_bytes (yyconst char * bytes, int len )
YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len )
{
YY_BUFFER_STATE b;
char *buf;
yy_size_t n;
int i;
yy_size_t i;
/* Get memory for full buffer, including space for trailing EOB's. */
n = len + 2;
n = _yybytes_len + 2;
buf = (char *) yyalloc(n );
if ( ! buf )
YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
for ( i = 0; i < len; ++i )
buf[i] = bytes[i];
for ( i = 0; i < _yybytes_len; ++i )
buf[i] = yybytes[i];
buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
b = yy_scan_buffer(buf,n );
if ( ! b )
@ -3488,7 +3554,7 @@ FILE *yyget_out (void)
/** Get the length of the current token.
*
*/
int yyget_leng (void)
yy_size_t yyget_leng (void)
{
return yyleng;
}
@ -3538,6 +3604,34 @@ void yyset_debug (int bdebug )
yy_flex_debug = bdebug ;
}
static int yy_init_globals (void)
{
/* Initialization is the same as for the non-reentrant scanner.
* This function is called from yylex_destroy(), so don't allocate here.
*/
(yy_buffer_stack) = 0;
(yy_buffer_stack_top) = 0;
(yy_buffer_stack_max) = 0;
(yy_c_buf_p) = (char *) 0;
(yy_init) = 0;
(yy_start) = 0;
/* Defined in main.c */
#ifdef YY_STDINIT
yyin = stdin;
yyout = stdout;
#else
yyin = (FILE *) 0;
yyout = (FILE *) 0;
#endif
/* For future reference: Set errno on error, since we are called by
* yylex_init()
*/
return 0;
}
/* yylex_destroy is for both reentrant and non-reentrant scanners. */
int yylex_destroy (void)
{
@ -3553,6 +3647,10 @@ int yylex_destroy (void)
yyfree((yy_buffer_stack) );
(yy_buffer_stack) = NULL;
/* Reset the globals. This is important in a non-reentrant scanner so the next time
* yylex() is called, initialization will occur. */
yy_init_globals( );
return 0;
}
@ -3564,7 +3662,7 @@ int yylex_destroy (void)
static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
{
register int i;
for ( i = 0; i < n; ++i )
for ( i = 0; i < n; ++i )
s1[i] = s2[i];
}
#endif
@ -3573,7 +3671,7 @@ static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
static int yy_flex_strlen (yyconst char * s )
{
register int n;
for ( n = 0; s[n]; ++n )
for ( n = 0; s[n]; ++n )
;
return n;
@ -3604,19 +3702,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
#undef YY_NEW_FILE
#undef YY_FLUSH_BUFFER
#undef yy_set_bol
#undef yy_new_buffer
#undef yy_set_interactive
#undef yytext_ptr
#undef YY_DO_BEFORE_ACTION
#ifdef YY_DECL_IS_OURS
#undef YY_DECL_IS_OURS
#undef YY_DECL
#endif
#line 452 "ldlex.l"
#line 451 "ldlex.l"