1 This is ld.info, produced by makeinfo version 4.0 from ./ld.texinfo.
4 * Ld: (ld). The GNU linker.
7 This file documents the GNU linker LD version 2.11.1.
9 Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000 Free
10 Software Foundation, Inc.
13 File: ld.info, Node: Bug Criteria, Next: Bug Reporting, Up: Reporting Bugs
18 If you are not sure whether you have found a bug, here are some
21 * If the linker gets a fatal signal, for any input whatever, that is
22 a `ld' bug. Reliable linkers never crash.
24 * If `ld' produces an error message for valid input, that is a bug.
26 * If `ld' does not produce an error message for invalid input, that
27 may be a bug. In the general case, the linker can not verify that
28 object files are correct.
30 * If you are an experienced user of linkers, your suggestions for
31 improvement of `ld' are welcome in any case.
34 File: ld.info, Node: Bug Reporting, Prev: Bug Criteria, Up: Reporting Bugs
39 A number of companies and individuals offer support for GNU
40 products. If you obtained `ld' from a support organization, we
41 recommend you contact that organization first.
43 You can find contact information for many support companies and
44 individuals in the file `etc/SERVICE' in the GNU Emacs distribution.
46 Otherwise, send bug reports for `ld' to `bug-binutils@gnu.org'.
48 The fundamental principle of reporting bugs usefully is this:
49 *report all the facts*. If you are not sure whether to state a fact or
50 leave it out, state it!
52 Often people omit facts because they think they know what causes the
53 problem and assume that some details do not matter. Thus, you might
54 assume that the name of a symbol you use in an example does not matter.
55 Well, probably it does not, but one cannot be sure. Perhaps the bug is
56 a stray memory reference which happens to fetch from the location where
57 that name is stored in memory; perhaps, if the name were different, the
58 contents of that location would fool the linker into doing the right
59 thing despite the bug. Play it safe and give a specific, complete
60 example. That is the easiest thing for you to do, and the most helpful.
62 Keep in mind that the purpose of a bug report is to enable us to fix
63 the bug if it is new to us. Therefore, always write your bug reports
64 on the assumption that the bug has not been reported previously.
66 Sometimes people give a few sketchy facts and ask, "Does this ring a
67 bell?" Those bug reports are useless, and we urge everyone to _refuse
68 to respond to them_ except to chide the sender to report bugs properly.
70 To enable us to fix the bug, you should include all these things:
72 * The version of `ld'. `ld' announces it if you start it with the
75 Without this, we will not know whether there is any point in
76 looking for the bug in the current version of `ld'.
78 * Any patches you may have applied to the `ld' source, including any
79 patches made to the `BFD' library.
81 * The type of machine you are using, and the operating system name
84 * What compiler (and its version) was used to compile `ld'--e.g.
87 * The command arguments you gave the linker to link your example and
88 observe the bug. To guarantee you will not omit something
89 important, list them all. A copy of the Makefile (or the output
90 from make) is sufficient.
92 If we were to try to guess the arguments, we would probably guess
93 wrong and then we might not encounter the bug.
95 * A complete input file, or set of input files, that will reproduce
96 the bug. It is generally most helpful to send the actual object
97 files, uuencoded if necessary to get them through the mail system.
98 Making them available for anonymous FTP is not as good, but may
99 be the only reasonable choice for large object files.
101 If the source files were assembled using `gas' or compiled using
102 `gcc', then it may be OK to send the source files rather than the
103 object files. In this case, be sure to say exactly what version of
104 `gas' or `gcc' was used to produce the object files. Also say how
105 `gas' or `gcc' were configured.
107 * A description of what behavior you observe that you believe is
108 incorrect. For example, "It gets a fatal signal."
110 Of course, if the bug is that `ld' gets a fatal signal, then we
111 will certainly notice it. But if the bug is incorrect output, we
112 might not notice unless it is glaringly wrong. You might as well
113 not give us a chance to make a mistake.
115 Even if the problem you experience is a fatal signal, you should
116 still say so explicitly. Suppose something strange is going on,
117 such as, your copy of `ld' is out of synch, or you have
118 encountered a bug in the C library on your system. (This has
119 happened!) Your copy might crash and ours would not. If you told
120 us to expect a crash, then when ours fails to crash, we would know
121 that the bug was not happening for us. If you had not told us to
122 expect a crash, then we would not be able to draw any conclusion
123 from our observations.
125 * If you wish to suggest changes to the `ld' source, send us context
126 diffs, as generated by `diff' with the `-u', `-c', or `-p' option.
127 Always send diffs from the old file to the new file. If you even
128 discuss something in the `ld' source, refer to it by context, not
131 The line numbers in our development sources will not match those
132 in your sources. Your line numbers would convey no useful
135 Here are some things that are not necessary:
137 * A description of the envelope of the bug.
139 Often people who encounter a bug spend a lot of time investigating
140 which changes to the input file will make the bug go away and which
141 changes will not affect it.
143 This is often time consuming and not very useful, because the way
144 we will find the bug is by running a single example under the
145 debugger with breakpoints, not by pure deduction from a series of
146 examples. We recommend that you save your time for something else.
148 Of course, if you can find a simpler example to report _instead_
149 of the original one, that is a convenience for us. Errors in the
150 output will be easier to spot, running under the debugger will take
151 less time, and so on.
153 However, simplification is not vital; if you do not want to do
154 this, report the bug anyway and send us the entire test case you
157 * A patch for the bug.
159 A patch for the bug does help us if it is a good one. But do not
160 omit the necessary information, such as the test case, on the
161 assumption that a patch is all we need. We might see problems
162 with your patch and decide to fix the problem another way, or we
163 might not understand it at all.
165 Sometimes with a program as complicated as `ld' it is very hard to
166 construct an example that will make the program follow a certain
167 path through the code. If you do not send us the example, we will
168 not be able to construct one, so we will not be able to verify
169 that the bug is fixed.
171 And if we cannot understand what bug you are trying to fix, or why
172 your patch should be an improvement, we will not install it. A
173 test case will help us to understand.
175 * A guess about what the bug is or what it depends on.
177 Such guesses are usually wrong. Even we cannot guess right about
178 such things without first using the debugger to find the facts.
181 File: ld.info, Node: MRI, Next: GNU Free Documentation License, Prev: Reporting Bugs, Up: Top
183 MRI Compatible Script Files
184 ***************************
186 To aid users making the transition to GNU `ld' from the MRI linker,
187 `ld' can use MRI compatible linker scripts as an alternative to the
188 more general-purpose linker scripting language described in *Note
189 Scripts::. MRI compatible linker scripts have a much simpler command
190 set than the scripting language otherwise used with `ld'. GNU `ld'
191 supports the most commonly used MRI linker commands; these commands are
194 In general, MRI scripts aren't of much use with the `a.out' object
195 file format, since it only has three sections and MRI scripts lack some
196 features to make use of them.
198 You can specify a file containing an MRI-compatible script using the
199 `-c' command-line option.
201 Each command in an MRI-compatible script occupies its own line; each
202 command line starts with the keyword that identifies the command (though
203 blank lines are also allowed for punctuation). If a line of an
204 MRI-compatible script begins with an unrecognized keyword, `ld' issues
205 a warning message, but continues processing the script.
207 Lines beginning with `*' are comments.
209 You can write these commands using all upper-case letters, or all
210 lower case; for example, `chip' is the same as `CHIP'. The following
211 list shows only the upper-case form of each command.
214 `ABSOLUTE SECNAME, SECNAME, ... SECNAME'
215 Normally, `ld' includes in the output file all sections from all
216 the input files. However, in an MRI-compatible script, you can
217 use the `ABSOLUTE' command to restrict the sections that will be
218 present in your output program. If the `ABSOLUTE' command is used
219 at all in a script, then only the sections named explicitly in
220 `ABSOLUTE' commands will appear in the linker output. You can
221 still use other input sections (whatever you select on the command
222 line, or using `LOAD') to resolve addresses in the output file.
224 `ALIAS OUT-SECNAME, IN-SECNAME'
225 Use this command to place the data from input section IN-SECNAME
226 in a section called OUT-SECNAME in the linker output file.
228 IN-SECNAME may be an integer.
230 `ALIGN SECNAME = EXPRESSION'
231 Align the section called SECNAME to EXPRESSION. The EXPRESSION
232 should be a power of two.
235 Use the value of EXPRESSION as the lowest address (other than
236 absolute addresses) in the output file.
239 `CHIP EXPRESSION, EXPRESSION'
240 This command does nothing; it is accepted only for compatibility.
243 This command does nothing whatever; it's only accepted for
246 `FORMAT OUTPUT-FORMAT'
247 Similar to the `OUTPUT_FORMAT' command in the more general linker
248 language, but restricted to one of these output formats:
250 1. S-records, if OUTPUT-FORMAT is `S'
252 2. IEEE, if OUTPUT-FORMAT is `IEEE'
254 3. COFF (the `coff-m68k' variant in BFD), if OUTPUT-FORMAT is
258 Print (to the standard output file) a link map, as produced by the
259 `ld' command-line option `-M'.
261 The keyword `LIST' may be followed by anything on the same line,
262 with no change in its effect.
265 `LOAD FILENAME, FILENAME, ... FILENAME'
266 Include one or more object file FILENAME in the link; this has the
267 same effect as specifying FILENAME directly on the `ld' command
271 OUTPUT-NAME is the name for the program produced by `ld'; the
272 MRI-compatible command `NAME' is equivalent to the command-line
273 option `-o' or the general script language command `OUTPUT'.
275 `ORDER SECNAME, SECNAME, ... SECNAME'
276 `ORDER SECNAME SECNAME SECNAME'
277 Normally, `ld' orders the sections in its output file in the order
278 in which they first appear in the input files. In an
279 MRI-compatible script, you can override this ordering with the
280 `ORDER' command. The sections you list with `ORDER' will appear
281 first in your output file, in the order specified.
283 `PUBLIC NAME=EXPRESSION'
284 `PUBLIC NAME,EXPRESSION'
285 `PUBLIC NAME EXPRESSION'
286 Supply a value (EXPRESSION) for external symbol NAME used in the
289 `SECT SECNAME, EXPRESSION'
290 `SECT SECNAME=EXPRESSION'
291 `SECT SECNAME EXPRESSION'
292 You can use any of these three forms of the `SECT' command to
293 specify the start address (EXPRESSION) for section SECNAME. If
294 you have more than one `SECT' statement for the same SECNAME, only
295 the _first_ sets the start address.
298 File: ld.info, Node: GNU Free Documentation License, Next: Index, Prev: MRI, Up: Top
300 GNU Free Documentation License
301 ******************************
303 GNU Free Documentation License
305 Version 1.1, March 2000
307 Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple
308 Place, Suite 330, Boston, MA 02111-1307 USA
310 Everyone is permitted to copy and distribute verbatim copies of
311 this license document, but changing it is not allowed.
315 The purpose of this License is to make a manual, textbook, or other
316 written document "free" in the sense of freedom: to assure everyone the
317 effective freedom to copy and redistribute it, with or without
318 modifying it, either commercially or noncommercially. Secondarily,
319 this License preserves for the author and publisher a way to get credit
320 for their work, while not being considered responsible for
321 modifications made by others.
323 This License is a kind of "copyleft", which means that derivative
324 works of the document must themselves be free in the same sense. It
325 complements the GNU General Public License, which is a copyleft license
326 designed for free software.
328 We have designed this License in order to use it for manuals for free
329 software, because free software needs free documentation: a free
330 program should come with manuals providing the same freedoms that the
331 software does. But this License is not limited to software manuals; it
332 can be used for any textual work, regardless of subject matter or
333 whether it is published as a printed book. We recommend this License
334 principally for works whose purpose is instruction or reference.
336 1. APPLICABILITY AND DEFINITIONS
338 This License applies to any manual or other work that contains a
339 notice placed by the copyright holder saying it can be distributed
340 under the terms of this License. The "Document", below, refers to any
341 such manual or work. Any member of the public is a licensee, and is
344 A "Modified Version" of the Document means any work containing the
345 Document or a portion of it, either copied verbatim, or with
346 modifications and/or translated into another language.
348 A "Secondary Section" is a named appendix or a front-matter section
349 of the Document that deals exclusively with the relationship of the
350 publishers or authors of the Document to the Document's overall subject
351 (or to related matters) and contains nothing that could fall directly
352 within that overall subject. (For example, if the Document is in part a
353 textbook of mathematics, a Secondary Section may not explain any
354 mathematics.) The relationship could be a matter of historical
355 connection with the subject or with related matters, or of legal,
356 commercial, philosophical, ethical or political position regarding them.
358 The "Invariant Sections" are certain Secondary Sections whose titles
359 are designated, as being those of Invariant Sections, in the notice
360 that says that the Document is released under this License.
362 The "Cover Texts" are certain short passages of text that are listed,
363 as Front-Cover Texts or Back-Cover Texts, in the notice that says that
364 the Document is released under this License.
366 A "Transparent" copy of the Document means a machine-readable copy,
367 represented in a format whose specification is available to the general
368 public, whose contents can be viewed and edited directly and
369 straightforwardly with generic text editors or (for images composed of
370 pixels) generic paint programs or (for drawings) some widely available
371 drawing editor, and that is suitable for input to text formatters or
372 for automatic translation to a variety of formats suitable for input to
373 text formatters. A copy made in an otherwise Transparent file format
374 whose markup has been designed to thwart or discourage subsequent
375 modification by readers is not Transparent. A copy that is not
376 "Transparent" is called "Opaque".
378 Examples of suitable formats for Transparent copies include plain
379 ASCII without markup, Texinfo input format, LaTeX input format, SGML or
380 XML using a publicly available DTD, and standard-conforming simple HTML
381 designed for human modification. Opaque formats include PostScript,
382 PDF, proprietary formats that can be read and edited only by
383 proprietary word processors, SGML or XML for which the DTD and/or
384 processing tools are not generally available, and the machine-generated
385 HTML produced by some word processors for output purposes only.
387 The "Title Page" means, for a printed book, the title page itself,
388 plus such following pages as are needed to hold, legibly, the material
389 this License requires to appear in the title page. For works in
390 formats which do not have any title page as such, "Title Page" means
391 the text near the most prominent appearance of the work's title,
392 preceding the beginning of the body of the text.
396 You may copy and distribute the Document in any medium, either
397 commercially or noncommercially, provided that this License, the
398 copyright notices, and the license notice saying this License applies
399 to the Document are reproduced in all copies, and that you add no other
400 conditions whatsoever to those of this License. You may not use
401 technical measures to obstruct or control the reading or further
402 copying of the copies you make or distribute. However, you may accept
403 compensation in exchange for copies. If you distribute a large enough
404 number of copies you must also follow the conditions in section 3.
406 You may also lend copies, under the same conditions stated above, and
407 you may publicly display copies.
409 3. COPYING IN QUANTITY
411 If you publish printed copies of the Document numbering more than
412 100, and the Document's license notice requires Cover Texts, you must
413 enclose the copies in covers that carry, clearly and legibly, all these
414 Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts
415 on the back cover. Both covers must also clearly and legibly identify
416 you as the publisher of these copies. The front cover must present the
417 full title with all words of the title equally prominent and visible.
418 You may add other material on the covers in addition. Copying with
419 changes limited to the covers, as long as they preserve the title of
420 the Document and satisfy these conditions, can be treated as verbatim
421 copying in other respects.
423 If the required texts for either cover are too voluminous to fit
424 legibly, you should put the first ones listed (as many as fit
425 reasonably) on the actual cover, and continue the rest onto adjacent
428 If you publish or distribute Opaque copies of the Document numbering
429 more than 100, you must either include a machine-readable Transparent
430 copy along with each Opaque copy, or state in or with each Opaque copy
431 a publicly-accessible computer-network location containing a complete
432 Transparent copy of the Document, free of added material, which the
433 general network-using public has access to download anonymously at no
434 charge using public-standard network protocols. If you use the latter
435 option, you must take reasonably prudent steps, when you begin
436 distribution of Opaque copies in quantity, to ensure that this
437 Transparent copy will remain thus accessible at the stated location
438 until at least one year after the last time you distribute an Opaque
439 copy (directly or through your agents or retailers) of that edition to
442 It is requested, but not required, that you contact the authors of
443 the Document well before redistributing any large number of copies, to
444 give them a chance to provide you with an updated version of the
449 You may copy and distribute a Modified Version of the Document under
450 the conditions of sections 2 and 3 above, provided that you release the
451 Modified Version under precisely this License, with the Modified
452 Version filling the role of the Document, thus licensing distribution
453 and modification of the Modified Version to whoever possesses a copy of
454 it. In addition, you must do these things in the Modified Version:
456 A. Use in the Title Page (and on the covers, if any) a title distinct
457 from that of the Document, and from those of previous versions
458 (which should, if there were any, be listed in the History section
459 of the Document). You may use the same title as a previous version
460 if the original publisher of that version gives permission. B. List on
461 the Title Page, as authors, one or more persons or entities
462 responsible for authorship of the modifications in the Modified
463 Version, together with at least five of the principal authors of the
464 Document (all of its principal authors, if it has less than five). C.
465 State on the Title page the name of the publisher of the Modified
466 Version, as the publisher. D. Preserve all the copyright notices of
467 the Document. E. Add an appropriate copyright notice for your
468 modifications adjacent to the other copyright notices. F. Include,
469 immediately after the copyright notices, a license notice giving the
470 public permission to use the Modified Version under the terms of
471 this License, in the form shown in the Addendum below. G. Preserve in
472 that license notice the full lists of Invariant Sections and
473 required Cover Texts given in the Document's license notice. H.
474 Include an unaltered copy of this License. I. Preserve the section
475 entitled "History", and its title, and add to it an item stating at
476 least the title, year, new authors, and publisher of the Modified
477 Version as given on the Title Page. If there is no section entitled
478 "History" in the Document, create one stating the title, year,
479 authors, and publisher of the Document as given on its Title Page,
480 then add an item describing the Modified Version as stated in the
481 previous sentence. J. Preserve the network location, if any, given in
482 the Document for public access to a Transparent copy of the
483 Document, and likewise the network locations given in the Document
484 for previous versions it was based on. These may be placed in the
485 "History" section. You may omit a network location for a work that
486 was published at least four years before the Document itself, or if
487 the original publisher of the version it refers to gives permission.
488 K. In any section entitled "Acknowledgements" or "Dedications",
489 preserve the section's title, and preserve in the section all the
490 substance and tone of each of the contributor acknowledgements
491 and/or dedications given therein. L. Preserve all the Invariant
492 Sections of the Document, unaltered in their text and in their
493 titles. Section numbers or the equivalent are not considered part
494 of the section titles. M. Delete any section entitled "Endorsements".
495 Such a section may not be included in the Modified Version. N. Do
496 not retitle any existing section as "Endorsements" or to conflict in
497 title with any Invariant Section.
499 If the Modified Version includes new front-matter sections or
500 appendices that qualify as Secondary Sections and contain no material
501 copied from the Document, you may at your option designate some or all
502 of these sections as invariant. To do this, add their titles to the
503 list of Invariant Sections in the Modified Version's license notice.
504 These titles must be distinct from any other section titles.
506 You may add a section entitled "Endorsements", provided it contains
507 nothing but endorsements of your Modified Version by various
508 parties-for example, statements of peer review or that the text has
509 been approved by an organization as the authoritative definition of a
512 You may add a passage of up to five words as a Front-Cover Text, and
513 a passage of up to 25 words as a Back-Cover Text, to the end of the list
514 of Cover Texts in the Modified Version. Only one passage of
515 Front-Cover Text and one of Back-Cover Text may be added by (or through
516 arrangements made by) any one entity. If the Document already includes
517 a cover text for the same cover, previously added by you or by
518 arrangement made by the same entity you are acting on behalf of, you
519 may not add another; but you may replace the old one, on explicit
520 permission from the previous publisher that added the old one.
522 The author(s) and publisher(s) of the Document do not by this License
523 give permission to use their names for publicity for or to assert or
524 imply endorsement of any Modified Version.
526 5. COMBINING DOCUMENTS
528 You may combine the Document with other documents released under this
529 License, under the terms defined in section 4 above for modified
530 versions, provided that you include in the combination all of the
531 Invariant Sections of all of the original documents, unmodified, and
532 list them all as Invariant Sections of your combined work in its
535 The combined work need only contain one copy of this License, and
536 multiple identical Invariant Sections may be replaced with a single
537 copy. If there are multiple Invariant Sections with the same name but
538 different contents, make the title of each such section unique by
539 adding at the end of it, in parentheses, the name of the original
540 author or publisher of that section if known, or else a unique number.
541 Make the same adjustment to the section titles in the list of Invariant
542 Sections in the license notice of the combined work.
544 In the combination, you must combine any sections entitled "History"
545 in the various original documents, forming one section entitled
546 "History"; likewise combine any sections entitled "Acknowledgements",
547 and any sections entitled "Dedications". You must delete all sections
548 entitled "Endorsements."
550 6. COLLECTIONS OF DOCUMENTS
552 You may make a collection consisting of the Document and other
553 documents released under this License, and replace the individual
554 copies of this License in the various documents with a single copy that
555 is included in the collection, provided that you follow the rules of
556 this License for verbatim copying of each of the documents in all other
559 You may extract a single document from such a collection, and
560 distribute it individually under this License, provided you insert a
561 copy of this License into the extracted document, and follow this
562 License in all other respects regarding verbatim copying of that
565 7. AGGREGATION WITH INDEPENDENT WORKS
567 A compilation of the Document or its derivatives with other separate
568 and independent documents or works, in or on a volume of a storage or
569 distribution medium, does not as a whole count as a Modified Version of
570 the Document, provided no compilation copyright is claimed for the
571 compilation. Such a compilation is called an "aggregate", and this
572 License does not apply to the other self-contained works thus compiled
573 with the Document, on account of their being thus compiled, if they are
574 not themselves derivative works of the Document.
576 If the Cover Text requirement of section 3 is applicable to these
577 copies of the Document, then if the Document is less than one quarter
578 of the entire aggregate, the Document's Cover Texts may be placed on
579 covers that surround only the Document within the aggregate. Otherwise
580 they must appear on covers around the whole aggregate.
584 Translation is considered a kind of modification, so you may
585 distribute translations of the Document under the terms of section 4.
586 Replacing Invariant Sections with translations requires special
587 permission from their copyright holders, but you may include
588 translations of some or all Invariant Sections in addition to the
589 original versions of these Invariant Sections. You may include a
590 translation of this License provided that you also include the original
591 English version of this License. In case of a disagreement between the
592 translation and the original English version of this License, the
593 original English version will prevail.
597 You may not copy, modify, sublicense, or distribute the Document
598 except as expressly provided for under this License. Any other attempt
599 to copy, modify, sublicense or distribute the Document is void, and will
600 automatically terminate your rights under this License. However,
601 parties who have received copies, or rights, from you under this
602 License will not have their licenses terminated so long as such parties
603 remain in full compliance.
605 10. FUTURE REVISIONS OF THIS LICENSE
607 The Free Software Foundation may publish new, revised versions of
608 the GNU Free Documentation License from time to time. Such new
609 versions will be similar in spirit to the present version, but may
610 differ in detail to address new problems or concerns. See
611 http://www.gnu.org/copyleft/.
613 Each version of the License is given a distinguishing version number.
614 If the Document specifies that a particular numbered version of this
615 License "or any later version" applies to it, you have the option of
616 following the terms and conditions either of that specified version or
617 of any later version that has been published (not as a draft) by the
618 Free Software Foundation. If the Document does not specify a version
619 number of this License, you may choose any version ever published (not
620 as a draft) by the Free Software Foundation.
622 ADDENDUM: How to use this License for your documents
624 To use this License in a document you have written, include a copy of
625 the License in the document and put the following copyright and license
626 notices just after the title page:
628 Copyright (c) YEAR YOUR NAME.
629 Permission is granted to copy, distribute and/or modify this document
630 under the terms of the GNU Free Documentation License, Version 1.1
631 or any later version published by the Free Software Foundation;
632 with the Invariant Sections being LIST THEIR TITLES, with the
633 Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
634 A copy of the license is included in the section entitled "GNU
635 Free Documentation License".
637 If you have no Invariant Sections, write "with no Invariant Sections"
638 instead of saying which ones are invariant. If you have no Front-Cover
639 Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being
640 LIST"; likewise for Back-Cover Texts.
642 If your document contains nontrivial examples of program code, we
643 recommend releasing these examples in parallel under your choice of
644 free software license, such as the GNU General Public License, to
645 permit their use in free software.