mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-14 12:28:37 +08:00
* ld.texinfo: Add section on reporting bugs.
This commit is contained in:
@ -1,5 +1,7 @@
|
|||||||
Fri Nov 1 10:01:27 1996 Ian Lance Taylor <ian@cygnus.com>
|
Fri Nov 1 10:01:27 1996 Ian Lance Taylor <ian@cygnus.com>
|
||||||
|
|
||||||
|
* ld.texinfo: Add section on reporting bugs.
|
||||||
|
|
||||||
* scripttempl/m68kcoff.sc: Make sure the etext and __CTOR_LIST__
|
* scripttempl/m68kcoff.sc: Make sure the etext and __CTOR_LIST__
|
||||||
symbols are correctly aligned.
|
symbols are correctly aligned.
|
||||||
|
|
||||||
|
279
ld/ld.texinfo
279
ld/ld.texinfo
@ -109,6 +109,7 @@ This file documents the @sc{gnu} linker ld.
|
|||||||
@end ifclear
|
@end ifclear
|
||||||
@c Following blank line required for remaining bug in makeinfo conds/menus
|
@c Following blank line required for remaining bug in makeinfo conds/menus
|
||||||
|
|
||||||
|
* Reporting Bugs:: Reporting Bugs
|
||||||
* MRI:: MRI Compatible Script Files
|
* MRI:: MRI Compatible Script Files
|
||||||
* Index:: Index
|
* Index:: Index
|
||||||
@end menu
|
@end menu
|
||||||
@ -210,7 +211,7 @@ option that requires them.
|
|||||||
|
|
||||||
For options whose names are multiple letters, either one dash or two can
|
For options whose names are multiple letters, either one dash or two can
|
||||||
precede the option name; for example, @samp{--oformat} and
|
precede the option name; for example, @samp{--oformat} and
|
||||||
@samp{-oformat} are equivalent. Arguments to multiple-letter options
|
@samp{--oformat} are equivalent. Arguments to multiple-letter options
|
||||||
must either be separated from the option name by an equals sign, or be
|
must either be separated from the option name by an equals sign, or be
|
||||||
given as separate arguments immediately following the option that
|
given as separate arguments immediately following the option that
|
||||||
requires them. For example, @samp{--oformat srec} and
|
requires them. For example, @samp{--oformat srec} and
|
||||||
@ -318,9 +319,9 @@ entry point.
|
|||||||
|
|
||||||
@cindex dynamic symbol table
|
@cindex dynamic symbol table
|
||||||
@kindex -E
|
@kindex -E
|
||||||
@kindex -export-dynamic
|
@kindex --export-dynamic
|
||||||
@item -E
|
@item -E
|
||||||
@itemx -export-dynamic
|
@itemx --export-dynamic
|
||||||
When creating a dynamically linked executable, add all symbols to the
|
When creating a dynamically linked executable, add all symbols to the
|
||||||
dynamic symbol table. Normally, the dynamic symbol table contains only
|
dynamic symbol table. Normally, the dynamic symbol table contains only
|
||||||
symbols which are used by a dynamic object. This option is needed for
|
symbols which are used by a dynamic object. This option is needed for
|
||||||
@ -333,7 +334,7 @@ some uses of @code{dlopen}.
|
|||||||
Ignored. Some older linkers used this option throughout a compilation
|
Ignored. Some older linkers used this 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 mechanisms @code{ld} uses for this purpose (the
|
object files. The mechanisms @code{ld} uses for this purpose (the
|
||||||
@samp{-b} or @samp{-format} options for input files, @samp{-oformat}
|
@samp{-b} or @samp{--format} options for input files, @samp{--oformat}
|
||||||
option or the @code{TARGET} command in linker scripts for output files,
|
option or the @code{TARGET} command in linker scripts for output files,
|
||||||
the @code{GNUTARGET} environment variable) are more flexible, but
|
the @code{GNUTARGET} environment variable) are more flexible, but
|
||||||
@code{ld} accepts the @samp{-F} option for compatibility with scripts
|
@code{ld} accepts the @samp{-F} option for compatibility with scripts
|
||||||
@ -714,8 +715,8 @@ Link big-endian objects. This affects the default output format.
|
|||||||
Link little-endian objects. This affects the default output format.
|
Link little-endian objects. This affects the default output format.
|
||||||
|
|
||||||
@cindex MIPS embedded PIC code
|
@cindex MIPS embedded PIC code
|
||||||
@kindex -embedded-relocs
|
@kindex --embedded-relocs
|
||||||
@item -embedded-relocs
|
@item --embedded-relocs
|
||||||
This option is only meaningful when linking MIPS embedded PIC code,
|
This option is only meaningful when linking MIPS embedded PIC code,
|
||||||
generated by the -membedded-pic option to the @sc{gnu} compiler and
|
generated by the -membedded-pic option to the @sc{gnu} compiler and
|
||||||
assembler. It causes the linker to create a table which may be used at
|
assembler. It causes the linker to create a table which may be used at
|
||||||
@ -758,11 +759,11 @@ errors during the link process; it exits without writing an output file
|
|||||||
when it issues any error whatsoever.
|
when it issues any error whatsoever.
|
||||||
|
|
||||||
@ifclear SingleFormat
|
@ifclear SingleFormat
|
||||||
@kindex -oformat
|
@kindex --oformat
|
||||||
@item -oformat @var{output-format}
|
@item --oformat @var{output-format}
|
||||||
@code{ld} may be configured to support more than one kind of object
|
@code{ld} may be configured to support more than one kind of object
|
||||||
file. If your @code{ld} is configured this way, you can use the
|
file. If your @code{ld} is configured this way, you can use the
|
||||||
@samp{-oformat} option to specify the binary format for the output
|
@samp{--oformat} option to specify the binary format for the output
|
||||||
object file. Even when @code{ld} is configured to support alternative
|
object file. Even when @code{ld} is configured to support alternative
|
||||||
object formats, you don't usually need to specify this, as @code{ld}
|
object formats, you don't usually need to specify this, as @code{ld}
|
||||||
should be configured to produce as a default output format the most
|
should be configured to produce as a default output format the most
|
||||||
@ -802,8 +803,8 @@ in the program, such as relaxing address modes and synthesizing new
|
|||||||
instructions in the output object file.
|
instructions in the output object file.
|
||||||
|
|
||||||
@ifset GENERIC
|
@ifset GENERIC
|
||||||
On platforms where this is not supported, @samp{-relax} is accepted, but
|
On platforms where this is not supported, @samp{--relax} is accepted,
|
||||||
ignored.
|
but ignored.
|
||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@cindex retaining specified symbols
|
@cindex retaining specified symbols
|
||||||
@ -819,10 +820,10 @@ symbol name per line. This option is especially useful in environments
|
|||||||
where a large global symbol table is accumulated gradually, to conserve
|
where a large global symbol table is accumulated gradually, to conserve
|
||||||
run-time memory.
|
run-time memory.
|
||||||
|
|
||||||
@samp{-retain-symbols-file} does @emph{not} discard undefined symbols,
|
@samp{--retain-symbols-file} does @emph{not} discard undefined symbols,
|
||||||
or symbols needed for relocations.
|
or symbols needed for relocations.
|
||||||
|
|
||||||
You may only specify @samp{-retain-symbols-file} once in the command
|
You may only specify @samp{--retain-symbols-file} once in the command
|
||||||
line. It overrides @samp{-s} and @samp{-S}.
|
line. It overrides @samp{-s} and @samp{-S}.
|
||||||
|
|
||||||
@ifset GENERIC
|
@ifset GENERIC
|
||||||
@ -939,9 +940,9 @@ many relocations.
|
|||||||
Compute and display statistics about the operation of the linker, such
|
Compute and display statistics about the operation of the linker, such
|
||||||
as execution time and memory usage.
|
as execution time and memory usage.
|
||||||
|
|
||||||
@kindex -traditional-format
|
@kindex --traditional-format
|
||||||
@cindex traditional format
|
@cindex traditional format
|
||||||
@item -traditional-format
|
@item --traditional-format
|
||||||
For some targets, the output of @code{ld} is different in some ways from
|
For some targets, the output of @code{ld} is different in some ways from
|
||||||
the output of some existing linker. This switch requests @code{ld} to
|
the output of some existing linker. This switch requests @code{ld} to
|
||||||
use the traditional format instead.
|
use the traditional format instead.
|
||||||
@ -951,7 +952,7 @@ For example, on SunOS, @code{ld} combines duplicate entries in the
|
|||||||
symbol string table. This can reduce the size of an output file with
|
symbol string table. This can reduce the size of an output file with
|
||||||
full debugging information by over 30 percent. Unfortunately, the SunOS
|
full debugging information by over 30 percent. Unfortunately, the SunOS
|
||||||
@code{dbx} program can not read the resulting program (@code{gdb} has no
|
@code{dbx} program can not read the resulting program (@code{gdb} has no
|
||||||
trouble). The @samp{-traditional-format} switch tells @code{ld} to not
|
trouble). The @samp{--traditional-format} switch tells @code{ld} to not
|
||||||
combine duplicate entries.
|
combine duplicate entries.
|
||||||
|
|
||||||
@kindex -Tbss @var{org}
|
@kindex -Tbss @var{org}
|
||||||
@ -1164,16 +1165,16 @@ variable @code{GNUTARGET}.
|
|||||||
@kindex GNUTARGET
|
@kindex GNUTARGET
|
||||||
@cindex default input format
|
@cindex default input format
|
||||||
@code{GNUTARGET} determines the input-file object format if you don't
|
@code{GNUTARGET} determines the input-file object format if you don't
|
||||||
use @samp{-b} (or its synonym @samp{-format}). Its value should be one
|
use @samp{-b} (or its synonym @samp{--format}). Its value should be one
|
||||||
of the BFD names for an input format (@pxref{BFD}). If there is no
|
of the BFD names for an input format (@pxref{BFD}). If there is no
|
||||||
@code{GNUTARGET} in the environment, @code{ld} uses the natural format
|
@code{GNUTARGET} in the environment, @code{ld} uses the natural format
|
||||||
of the target. If @code{GNUTARGET} is set to @code{default} then BFD attempts to discover the
|
of the target. If @code{GNUTARGET} is set to @code{default} then BFD
|
||||||
input format by examining binary input files; this method often
|
attempts to discover the input format by examining binary input files;
|
||||||
succeeds, but there are potential ambiguities, since there is no method
|
this method often succeeds, but there are potential ambiguities, since
|
||||||
of ensuring that the magic number used to specify object-file formats is
|
there is no method of ensuring that the magic number used to specify
|
||||||
unique. However, the configuration procedure for BFD on each system
|
object-file formats is unique. However, the configuration procedure for
|
||||||
places the conventional format for that system first in the search-list,
|
BFD on each system places the conventional format for that system first
|
||||||
so ambiguities are resolved in favor of convention.
|
in the search-list, so ambiguities are resolved in favor of convention.
|
||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
@node Commands
|
@node Commands
|
||||||
@ -2822,9 +2823,9 @@ When @code{ld} is configured to support multiple object code formats,
|
|||||||
you can use this command to specify a particular output format.
|
you can use this command to specify a particular output format.
|
||||||
@var{bfdname} is one of the names used by the BFD back-end routines
|
@var{bfdname} is one of the names used by the BFD back-end routines
|
||||||
(@pxref{BFD}). The effect is identical to the effect of the
|
(@pxref{BFD}). The effect is identical to the effect of the
|
||||||
@samp{-oformat} command-line option. This selection affects only
|
@samp{--oformat} command-line option. This selection affects only the
|
||||||
the output file; the related command @code{TARGET} affects primarily
|
output file; the related command @code{TARGET} affects primarily input
|
||||||
input files.
|
files.
|
||||||
@end ifclear
|
@end ifclear
|
||||||
|
|
||||||
@kindex SEARCH_DIR ( @var{path} )
|
@kindex SEARCH_DIR ( @var{path} )
|
||||||
@ -2847,7 +2848,7 @@ process.
|
|||||||
@item TARGET ( @var{format} )
|
@item TARGET ( @var{format} )
|
||||||
When @code{ld} is configured to support multiple object code formats,
|
When @code{ld} is configured to support multiple object code formats,
|
||||||
you can use this command to change the input-file object code format
|
you can use this command to change the input-file object code format
|
||||||
(like the command-line option @samp{-b} or its synonym @samp{-format}).
|
(like the command-line option @samp{-b} or its synonym @samp{--format}).
|
||||||
The argument @var{format} is one of the strings used by BFD to name
|
The argument @var{format} is one of the strings used by BFD to name
|
||||||
binary formats. If @code{TARGET} is specified but @code{OUTPUT_FORMAT}
|
binary formats. If @code{TARGET} is specified but @code{OUTPUT_FORMAT}
|
||||||
is not, the last @code{TARGET} argument is also used as the default
|
is not, the last @code{TARGET} argument is also used as the default
|
||||||
@ -2905,7 +2906,7 @@ functionality are not listed.
|
|||||||
|
|
||||||
@cindex H8/300 support
|
@cindex H8/300 support
|
||||||
For the H8/300, @code{ld} can perform these global optimizations when
|
For the H8/300, @code{ld} can perform these global optimizations when
|
||||||
you specify the @samp{-relax} command-line option.
|
you specify the @samp{--relax} command-line option.
|
||||||
|
|
||||||
@table @emph
|
@table @emph
|
||||||
@cindex relaxing on H8/300
|
@cindex relaxing on H8/300
|
||||||
@ -2983,12 +2984,12 @@ the 960 architecture family allows combination of target architectures; each
|
|||||||
use will add another pair of name variants to search for when @w{@samp{-l}}
|
use will add another pair of name variants to search for when @w{@samp{-l}}
|
||||||
specifies a library.
|
specifies a library.
|
||||||
|
|
||||||
@cindex @code{-relax} on i960
|
@cindex @code{--relax} on i960
|
||||||
@cindex relaxing on i960
|
@cindex relaxing on i960
|
||||||
@code{ld} supports the @samp{-relax} option for the i960 family. If you
|
@code{ld} supports the @samp{--relax} option for the i960 family. If
|
||||||
specify @samp{-relax}, @code{ld} finds all @code{balx} and @code{calx}
|
you specify @samp{--relax}, @code{ld} finds all @code{balx} and
|
||||||
instructions whose targets are within 24 bits, and turns them into
|
@code{calx} instructions whose targets are within 24 bits, and turns
|
||||||
24-bit program-counter relative @code{bal} and @code{cal}
|
them into 24-bit program-counter relative @code{bal} and @code{cal}
|
||||||
instructions, respectively. @code{ld} also turns @code{cal}
|
instructions, respectively. @code{ld} also turns @code{cal}
|
||||||
instructions into @code{bal} instructions when it determines that the
|
instructions into @code{bal} instructions when it determines that the
|
||||||
target subroutine is a leaf routine (that is, the target subroutine does
|
target subroutine is a leaf routine (that is, the target subroutine does
|
||||||
@ -3042,6 +3043,215 @@ conversion and during output. @xref{BFD information loss}.
|
|||||||
@include bfdsumm.texi
|
@include bfdsumm.texi
|
||||||
@end ifclear
|
@end ifclear
|
||||||
|
|
||||||
|
@node Reporting Bugs
|
||||||
|
@chapter Reporting Bugs
|
||||||
|
@cindex bugs in @code{ld}
|
||||||
|
@cindex reporting bugs in @code{ld}
|
||||||
|
|
||||||
|
Your bug reports play an essential role in making @code{ld} reliable.
|
||||||
|
|
||||||
|
Reporting a bug may help you by bringing a solution to your problem, or
|
||||||
|
it may not. But in any case the principal function of a bug report is
|
||||||
|
to help the entire community by making the next version of @code{ld}
|
||||||
|
work better. Bug reports are your contribution to the maintenance of
|
||||||
|
@code{ld}.
|
||||||
|
|
||||||
|
In order for a bug report to serve its purpose, you must include the
|
||||||
|
information that enables us to fix the bug.
|
||||||
|
|
||||||
|
@menu
|
||||||
|
* Bug Criteria:: Have you found a bug?
|
||||||
|
* Bug Reporting:: How to report bugs
|
||||||
|
@end menu
|
||||||
|
|
||||||
|
@node Bug Criteria
|
||||||
|
@section Have you found a bug?
|
||||||
|
@cindex bug criteria
|
||||||
|
|
||||||
|
If you are not sure whether you have found a bug, here are some guidelines:
|
||||||
|
|
||||||
|
@itemize @bullet
|
||||||
|
@cindex fatal signal
|
||||||
|
@cindex linker crash
|
||||||
|
@cindex crash of linker
|
||||||
|
@item
|
||||||
|
If the linker gets a fatal signal, for any input whatever, that is a
|
||||||
|
@code{ld} bug. Reliable linkers never crash.
|
||||||
|
|
||||||
|
@cindex error on valid input
|
||||||
|
@item
|
||||||
|
If @code{ld} produces an error message for valid input, that is a bug.
|
||||||
|
|
||||||
|
@cindex invalid input
|
||||||
|
@item
|
||||||
|
If @code{ld} does not produce an error message for invalid input, that
|
||||||
|
may be a bug. In the general case, the linker can not verify that
|
||||||
|
object files are correct.
|
||||||
|
|
||||||
|
@item
|
||||||
|
If you are an experienced user of linkers, your suggestions for
|
||||||
|
improvement of @code{ld} are welcome in any case.
|
||||||
|
@end itemize
|
||||||
|
|
||||||
|
@node Bug Reporting
|
||||||
|
@section How to report bugs
|
||||||
|
@cindex bug reports
|
||||||
|
@cindex @code{ld} bugs, reporting
|
||||||
|
|
||||||
|
A number of companies and individuals offer support for @sc{gnu}
|
||||||
|
products. If you obtained @code{ld} from a support organization, we
|
||||||
|
recommend you contact that organization first.
|
||||||
|
|
||||||
|
You can find contact information for many support companies and
|
||||||
|
individuals in the file @file{etc/SERVICE} in the @sc{gnu} Emacs
|
||||||
|
distribution.
|
||||||
|
|
||||||
|
In any event, we also recommend that you send bug reports for @code{ld}
|
||||||
|
to @samp{bug-gnu-utils@@prep.ai.mit.edu}.
|
||||||
|
|
||||||
|
The fundamental principle of reporting bugs usefully is this:
|
||||||
|
@strong{report all the facts}. If you are not sure whether to state a
|
||||||
|
fact or leave it out, state it!
|
||||||
|
|
||||||
|
Often people omit facts because they think they know what causes the
|
||||||
|
problem and assume that some details do not matter. Thus, you might
|
||||||
|
assume that the name of a symbol you use in an example does not matter.
|
||||||
|
Well, probably it does not, but one cannot be sure. Perhaps the bug is
|
||||||
|
a stray memory reference which happens to fetch from the location where
|
||||||
|
that name is stored in memory; perhaps, if the name were different, the
|
||||||
|
contents of that location would fool the linker into doing the right
|
||||||
|
thing despite the bug. Play it safe and give a specific, complete
|
||||||
|
example. That is the easiest thing for you to do, and the most helpful.
|
||||||
|
|
||||||
|
Keep in mind that the purpose of a bug report is to enable us to fix the bug if
|
||||||
|
it is new to us. Therefore, always write your bug reports on the assumption
|
||||||
|
that the bug has not been reported previously.
|
||||||
|
|
||||||
|
Sometimes people give a few sketchy facts and ask, ``Does this ring a
|
||||||
|
bell?'' Those bug reports are useless, and we urge everyone to
|
||||||
|
@emph{refuse to respond to them} except to chide the sender to report
|
||||||
|
bugs properly.
|
||||||
|
|
||||||
|
To enable us to fix the bug, you should include all these things:
|
||||||
|
|
||||||
|
@itemize @bullet
|
||||||
|
@item
|
||||||
|
The version of @code{ld}. @code{ld} announces it if you start it with
|
||||||
|
the @samp{--version} argument.
|
||||||
|
|
||||||
|
Without this, we will not know whether there is any point in looking for
|
||||||
|
the bug in the current version of @code{ld}.
|
||||||
|
|
||||||
|
@item
|
||||||
|
Any patches you may have applied to the @code{ld} source, including any
|
||||||
|
patches made to the @code{BFD} library.
|
||||||
|
|
||||||
|
@item
|
||||||
|
The type of machine you are using, and the operating system name and
|
||||||
|
version number.
|
||||||
|
|
||||||
|
@item
|
||||||
|
What compiler (and its version) was used to compile @code{ld}---e.g.
|
||||||
|
``@code{gcc-2.7}''.
|
||||||
|
|
||||||
|
@item
|
||||||
|
The command arguments you gave the linker to link your example and
|
||||||
|
observe the bug. To guarantee you will not omit something important,
|
||||||
|
list them all. A copy of the Makefile (or the output from make) is
|
||||||
|
sufficient.
|
||||||
|
|
||||||
|
If we were to try to guess the arguments, we would probably guess wrong
|
||||||
|
and then we might not encounter the bug.
|
||||||
|
|
||||||
|
@item
|
||||||
|
A complete input file, or set of input files, that will reproduce the
|
||||||
|
bug. It is generally most helpful to send the actual object files,
|
||||||
|
uuencoded if necessary to get them through the mail system. Making them
|
||||||
|
available for anonymous FTP is not as good, but may be the only
|
||||||
|
reasonable choice for large object files.
|
||||||
|
|
||||||
|
If the source files were assembled using @code{gas} or compiled using
|
||||||
|
@code{gcc}, then it may be OK to send the source files rather than the
|
||||||
|
object files. In this case, be sure to say exactly what version of
|
||||||
|
@code{gas} or @code{gcc} was used to produce the object files. Also say
|
||||||
|
how @code{gas} or @code{gcc} were configured.
|
||||||
|
|
||||||
|
@item
|
||||||
|
A description of what behavior you observe that you believe is
|
||||||
|
incorrect. For example, ``It gets a fatal signal.''
|
||||||
|
|
||||||
|
Of course, if the bug is that @code{ld} gets a fatal signal, then we
|
||||||
|
will certainly notice it. But if the bug is incorrect output, we might
|
||||||
|
not notice unless it is glaringly wrong. You might as well not give us
|
||||||
|
a chance to make a mistake.
|
||||||
|
|
||||||
|
Even if the problem you experience is a fatal signal, you should still
|
||||||
|
say so explicitly. Suppose something strange is going on, such as, your
|
||||||
|
copy of @code{ld} is out of synch, or you have encountered a bug in the
|
||||||
|
C library on your system. (This has happened!) Your copy might crash
|
||||||
|
and ours would not. If you told us to expect a crash, then when ours
|
||||||
|
fails to crash, we would know that the bug was not happening for us. If
|
||||||
|
you had not told us to expect a crash, then we would not be able to draw
|
||||||
|
any conclusion from our observations.
|
||||||
|
|
||||||
|
@item
|
||||||
|
If you wish to suggest changes to the @code{ld} source, send us context
|
||||||
|
diffs, as generated by @code{diff} with the @samp{-u}, @samp{-c}, or
|
||||||
|
@samp{-p} option. Always send diffs from the old file to the new file.
|
||||||
|
If you even discuss something in the @code{ld} source, refer to it by
|
||||||
|
context, not by line number.
|
||||||
|
|
||||||
|
The line numbers in our development sources will not match those in your
|
||||||
|
sources. Your line numbers would convey no useful information to us.
|
||||||
|
@end itemize
|
||||||
|
|
||||||
|
Here are some things that are not necessary:
|
||||||
|
|
||||||
|
@itemize @bullet
|
||||||
|
@item
|
||||||
|
A description of the envelope of the bug.
|
||||||
|
|
||||||
|
Often people who encounter a bug spend a lot of time investigating
|
||||||
|
which changes to the input file will make the bug go away and which
|
||||||
|
changes will not affect it.
|
||||||
|
|
||||||
|
This is often time consuming and not very useful, because the way we
|
||||||
|
will find the bug is by running a single example under the debugger
|
||||||
|
with breakpoints, not by pure deduction from a series of examples.
|
||||||
|
We recommend that you save your time for something else.
|
||||||
|
|
||||||
|
Of course, if you can find a simpler example to report @emph{instead}
|
||||||
|
of the original one, that is a convenience for us. Errors in the
|
||||||
|
output will be easier to spot, running under the debugger will take
|
||||||
|
less time, and so on.
|
||||||
|
|
||||||
|
However, simplification is not vital; if you do not want to do this,
|
||||||
|
report the bug anyway and send us the entire test case you used.
|
||||||
|
|
||||||
|
@item
|
||||||
|
A patch for the bug.
|
||||||
|
|
||||||
|
A patch for the bug does help us if it is a good one. But do not omit
|
||||||
|
the necessary information, such as the test case, on the assumption that
|
||||||
|
a patch is all we need. We might see problems with your patch and decide
|
||||||
|
to fix the problem another way, or we might not understand it at all.
|
||||||
|
|
||||||
|
Sometimes with a program as complicated as @code{@value{AS}} it is very hard to
|
||||||
|
construct an example that will make the program follow a certain path through
|
||||||
|
the code. If you do not send us the example, we will not be able to construct
|
||||||
|
one, so we will not be able to verify that the bug is fixed.
|
||||||
|
|
||||||
|
And if we cannot understand what bug you are trying to fix, or why your
|
||||||
|
patch should be an improvement, we will not install it. A test case will
|
||||||
|
help us to understand.
|
||||||
|
|
||||||
|
@item
|
||||||
|
A guess about what the bug is or what it depends on.
|
||||||
|
|
||||||
|
Such guesses are usually wrong. Even we cannot guess right about such
|
||||||
|
things without first using the debugger to find the facts.
|
||||||
|
@end itemize
|
||||||
|
|
||||||
@node MRI
|
@node MRI
|
||||||
@appendix MRI Compatible Script Files
|
@appendix MRI Compatible Script Files
|
||||||
@cindex MRI compatibility
|
@cindex MRI compatibility
|
||||||
@ -3175,7 +3385,6 @@ If you have more than one @code{SECT} statement for the same
|
|||||||
@var{secname}, only the @emph{first} sets the start address.
|
@var{secname}, only the @emph{first} sets the start address.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
@node Index
|
@node Index
|
||||||
@unnumbered Index
|
@unnumbered Index
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user