From a709354a1d58ffd6994319c11b380c1024913acf Mon Sep 17 00:00:00 2001 From: Paul Brook Date: Fri, 29 Apr 2005 15:57:20 +0000 Subject: [PATCH] Remove generated documentation and translation files from CVS. --- bfd/doc/bfd.info | 89 - bfd/doc/bfd.info-1 | 8006 ------------------------------------ bfd/doc/bfd.info-2 | 1702 -------- bfd/po/da.gmo | Bin 60556 -> 0 bytes bfd/po/es.gmo | Bin 84719 -> 0 bytes bfd/po/fr.gmo | Bin 71749 -> 0 bytes bfd/po/ja.gmo | Bin 38616 -> 0 bytes bfd/po/ro.gmo | Bin 69038 -> 0 bytes bfd/po/sv.gmo | Bin 67266 -> 0 bytes bfd/po/tr.gmo | Bin 69529 -> 0 bytes bfd/po/zh_CN.gmo | Bin 28132 -> 0 bytes binutils/doc/addr2line.1 | 230 -- binutils/doc/ar.1 | 377 -- binutils/doc/cxxfilt.man | 276 -- binutils/doc/dlltool.1 | 457 --- binutils/doc/nlmconv.1 | 230 -- binutils/doc/nm.1 | 436 -- binutils/doc/objcopy.1 | 760 ---- binutils/doc/objdump.1 | 604 --- binutils/doc/ranlib.1 | 175 - binutils/doc/readelf.1 | 352 -- binutils/doc/size.1 | 250 -- binutils/doc/strings.1 | 236 -- binutils/doc/strip.1 | 364 -- binutils/doc/windres.1 | 330 -- binutils/po/da.gmo | Bin 80846 -> 0 bytes binutils/po/es.gmo | Bin 133199 -> 0 bytes binutils/po/fr.gmo | Bin 129943 -> 0 bytes binutils/po/ja.gmo | Bin 97376 -> 0 bytes binutils/po/ru.gmo | Bin 126130 -> 0 bytes binutils/po/sv.gmo | Bin 103077 -> 0 bytes binutils/po/tr.gmo | Bin 129842 -> 0 bytes binutils/po/zh_CN.gmo | Bin 75903 -> 0 bytes etc/configure.info | 2771 ------------- etc/standards.info | 4930 ---------------------- gas/doc/as.1 | 990 ----- gas/doc/as.info | 490 --- gas/doc/as.info-1 | 8426 -------------------------------------- gas/doc/as.info-2 | 7235 -------------------------------- gas/doc/as.info-3 | Bin 135774 -> 0 bytes gas/po/es.gmo | Bin 312123 -> 0 bytes gas/po/fr.gmo | Bin 288175 -> 0 bytes gas/po/tr.gmo | Bin 254790 -> 0 bytes gprof/gprof.1 | 742 ---- gprof/gprof.info | 2313 ----------- gprof/po/da.gmo | Bin 9586 -> 0 bytes gprof/po/de.gmo | Bin 9721 -> 0 bytes gprof/po/es.gmo | Bin 10045 -> 0 bytes gprof/po/fr.gmo | Bin 10044 -> 0 bytes gprof/po/id.gmo | Bin 9735 -> 0 bytes gprof/po/pt_BR.gmo | Bin 9984 -> 0 bytes gprof/po/sv.gmo | Bin 9555 -> 0 bytes gprof/po/tr.gmo | Bin 11327 -> 0 bytes gprof/po/vi.gmo | Bin 10865 -> 0 bytes ld/ld.1 | 2005 --------- ld/ld.info | 6313 ---------------------------- ld/po/da.po | 1702 -------- ld/po/es.po | 1988 --------- ld/po/fr.po | 1987 --------- ld/po/sv.po | 1815 -------- ld/po/tr.po | 2001 --------- opcodes/po/da.gmo | Bin 8332 -> 0 bytes opcodes/po/de.gmo | Bin 16919 -> 0 bytes opcodes/po/es.gmo | Bin 16747 -> 0 bytes opcodes/po/fr.gmo | Bin 16408 -> 0 bytes opcodes/po/id.gmo | Bin 8307 -> 0 bytes opcodes/po/nl.gmo | Bin 16097 -> 0 bytes opcodes/po/pt_BR.gmo | Bin 8467 -> 0 bytes opcodes/po/ro.gmo | Bin 15986 -> 0 bytes opcodes/po/sv.gmo | Bin 15872 -> 0 bytes opcodes/po/tr.gmo | Bin 16094 -> 0 bytes 71 files changed, 60582 deletions(-) delete mode 100644 bfd/doc/bfd.info delete mode 100644 bfd/doc/bfd.info-1 delete mode 100644 bfd/doc/bfd.info-2 delete mode 100644 bfd/po/da.gmo delete mode 100644 bfd/po/es.gmo delete mode 100644 bfd/po/fr.gmo delete mode 100644 bfd/po/ja.gmo delete mode 100644 bfd/po/ro.gmo delete mode 100644 bfd/po/sv.gmo delete mode 100644 bfd/po/tr.gmo delete mode 100644 bfd/po/zh_CN.gmo delete mode 100644 binutils/doc/addr2line.1 delete mode 100644 binutils/doc/ar.1 delete mode 100644 binutils/doc/cxxfilt.man delete mode 100644 binutils/doc/dlltool.1 delete mode 100644 binutils/doc/nlmconv.1 delete mode 100644 binutils/doc/nm.1 delete mode 100644 binutils/doc/objcopy.1 delete mode 100644 binutils/doc/objdump.1 delete mode 100644 binutils/doc/ranlib.1 delete mode 100644 binutils/doc/readelf.1 delete mode 100644 binutils/doc/size.1 delete mode 100644 binutils/doc/strings.1 delete mode 100644 binutils/doc/strip.1 delete mode 100644 binutils/doc/windres.1 delete mode 100644 binutils/po/da.gmo delete mode 100644 binutils/po/es.gmo delete mode 100644 binutils/po/fr.gmo delete mode 100644 binutils/po/ja.gmo delete mode 100644 binutils/po/ru.gmo delete mode 100644 binutils/po/sv.gmo delete mode 100644 binutils/po/tr.gmo delete mode 100644 binutils/po/zh_CN.gmo delete mode 100644 etc/configure.info delete mode 100644 etc/standards.info delete mode 100644 gas/doc/as.1 delete mode 100644 gas/doc/as.info delete mode 100644 gas/doc/as.info-1 delete mode 100644 gas/doc/as.info-2 delete mode 100644 gas/doc/as.info-3 delete mode 100644 gas/po/es.gmo delete mode 100644 gas/po/fr.gmo delete mode 100644 gas/po/tr.gmo delete mode 100644 gprof/gprof.1 delete mode 100644 gprof/gprof.info delete mode 100644 gprof/po/da.gmo delete mode 100644 gprof/po/de.gmo delete mode 100644 gprof/po/es.gmo delete mode 100644 gprof/po/fr.gmo delete mode 100644 gprof/po/id.gmo delete mode 100644 gprof/po/pt_BR.gmo delete mode 100644 gprof/po/sv.gmo delete mode 100644 gprof/po/tr.gmo delete mode 100644 gprof/po/vi.gmo delete mode 100644 ld/ld.1 delete mode 100644 ld/ld.info delete mode 100644 ld/po/da.po delete mode 100644 ld/po/es.po delete mode 100644 ld/po/fr.po delete mode 100644 ld/po/sv.po delete mode 100644 ld/po/tr.po delete mode 100644 opcodes/po/da.gmo delete mode 100644 opcodes/po/de.gmo delete mode 100644 opcodes/po/es.gmo delete mode 100644 opcodes/po/fr.gmo delete mode 100644 opcodes/po/id.gmo delete mode 100644 opcodes/po/nl.gmo delete mode 100644 opcodes/po/pt_BR.gmo delete mode 100644 opcodes/po/ro.gmo delete mode 100644 opcodes/po/sv.gmo delete mode 100644 opcodes/po/tr.gmo diff --git a/bfd/doc/bfd.info b/bfd/doc/bfd.info deleted file mode 100644 index 08c14140b08..00000000000 --- a/bfd/doc/bfd.info +++ /dev/null @@ -1,89 +0,0 @@ -This is ../.././bfd/doc/bfd.info, produced by makeinfo version 4.7 from -../.././bfd/doc/bfd.texinfo. - -START-INFO-DIR-ENTRY -* Bfd: (bfd). The Binary File Descriptor library. -END-INFO-DIR-ENTRY - - This file documents the BFD library. - - Copyright (C) 1991, 2000, 2001, 2003 Free Software Foundation, Inc. - - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 - or any later version published by the Free Software Foundation; - with no Invariant Sections, with no Front-Cover Texts, and with no - Back-Cover Texts. A copy of the license is included in the -section entitled "GNU Free Documentation License". - - -Indirect: -bfd.info-1: 724 -bfd.info-2: 298309 - -Tag Table: -(Indirect) -Node: Top724 -Node: Overview1056 -Node: History2107 -Node: How It Works3053 -Node: What BFD Version 2 Can Do4595 -Node: BFD information loss5910 -Node: Canonical format8442 -Node: BFD front end12814 -Node: Memory Usage38041 -Node: Initialization39269 -Node: Sections39665 -Node: Section Input40148 -Node: Section Output41513 -Node: typedef asection43999 -Node: section prototypes61598 -Node: Symbols70581 -Node: Reading Symbols72176 -Node: Writing Symbols73283 -Node: Mini Symbols74992 -Node: typedef asymbol75966 -Node: symbol handling functions80884 -Node: Archives86226 -Node: Formats89903 -Node: Relocations92794 -Node: typedef arelent93521 -Node: howto manager109239 -Node: Core Files165412 -Node: Targets166491 -Node: bfd_target168461 -Node: Architectures187781 -Node: Opening and Closing208078 -Node: Internal217791 -Node: File Caching224063 -Node: Linker Functions227370 -Node: Creating a Linker Hash Table229043 -Node: Adding Symbols to the Hash Table230781 -Node: Differing file formats231681 -Node: Adding symbols from an object file233429 -Node: Adding symbols from an archive235580 -Node: Performing the Final Link237994 -Node: Information provided by the linker239236 -Node: Relocating the section contents240386 -Node: Writing the symbol table242137 -Node: Hash Tables245130 -Node: Creating and Freeing a Hash Table246328 -Node: Looking Up or Entering a String247578 -Node: Traversing a Hash Table248831 -Node: Deriving a New Hash Table Type249620 -Node: Define the Derived Structures250686 -Node: Write the Derived Creation Routine251767 -Node: Write Other Derived Routines254461 -Node: BFD back ends255776 -Node: What to Put Where256046 -Node: aout256184 -Node: coff262435 -Node: elf287111 -Node: mmo287965 -Node: File layout288893 -Node: Symbol-table294540 -Node: mmo section mapping298309 -Node: GNU Free Documentation License301961 -Node: Index321681 - -End Tag Table diff --git a/bfd/doc/bfd.info-1 b/bfd/doc/bfd.info-1 deleted file mode 100644 index d6e8ba0f70d..00000000000 --- a/bfd/doc/bfd.info-1 +++ /dev/null @@ -1,8006 +0,0 @@ -This is ../.././bfd/doc/bfd.info, produced by makeinfo version 4.7 from -../.././bfd/doc/bfd.texinfo. - -START-INFO-DIR-ENTRY -* Bfd: (bfd). The Binary File Descriptor library. -END-INFO-DIR-ENTRY - - This file documents the BFD library. - - Copyright (C) 1991, 2000, 2001, 2003 Free Software Foundation, Inc. - - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 - or any later version published by the Free Software Foundation; - with no Invariant Sections, with no Front-Cover Texts, and with no - Back-Cover Texts. A copy of the license is included in the -section entitled "GNU Free Documentation License". - - -File: bfd.info, Node: Top, Next: Overview, Prev: (dir), Up: (dir) - - This file documents the binary file descriptor library libbfd. - -* Menu: - -* Overview:: Overview of BFD -* BFD front end:: BFD front end -* BFD back ends:: BFD back ends -* GNU Free Documentation License:: GNU Free Documentation License -* Index:: Index - - -File: bfd.info, Node: Overview, Next: BFD front end, Prev: Top, Up: Top - -1 Introduction -************** - -BFD is a package which allows applications to use the same routines to -operate on object files whatever the object file format. A new object -file format can be supported simply by creating a new BFD back end and -adding it to the library. - - BFD is split into two parts: the front end, and the back ends (one -for each object file format). - * The front end of BFD provides the interface to the user. It manages - memory and various canonical data structures. The front end also - decides which back end to use and when to call back end routines. - - * The back ends provide BFD its view of the real world. Each back - end provides a set of calls which the BFD front end can use to - maintain its canonical form. The back ends also may keep around - information for their own use, for greater efficiency. - -* Menu: - -* History:: History -* How It Works:: How It Works -* What BFD Version 2 Can Do:: What BFD Version 2 Can Do - - -File: bfd.info, Node: History, Next: How It Works, Prev: Overview, Up: Overview - -1.1 History -=========== - -One spur behind BFD was the desire, on the part of the GNU 960 team at -Intel Oregon, for interoperability of applications on their COFF and -b.out file formats. Cygnus was providing GNU support for the team, and -was contracted to provide the required functionality. - - The name came from a conversation David Wallace was having with -Richard Stallman about the library: RMS said that it would be quite -hard--David said "BFD". Stallman was right, but the name stuck. - - At the same time, Ready Systems wanted much the same thing, but for -different object file formats: IEEE-695, Oasys, Srecords, a.out and 68k -coff. - - BFD was first implemented by members of Cygnus Support; Steve -Chamberlain (`sac@cygnus.com'), John Gilmore (`gnu@cygnus.com'), K. -Richard Pixley (`rich@cygnus.com') and David Henkel-Wallace -(`gumby@cygnus.com'). - - -File: bfd.info, Node: How It Works, Next: What BFD Version 2 Can Do, Prev: History, Up: Overview - -1.2 How To Use BFD -================== - -To use the library, include `bfd.h' and link with `libbfd.a'. - - BFD provides a common interface to the parts of an object file for a -calling application. - - When an application sucessfully opens a target file (object, -archive, or whatever), a pointer to an internal structure is returned. -This pointer points to a structure called `bfd', described in `bfd.h'. -Our convention is to call this pointer a BFD, and instances of it -within code `abfd'. All operations on the target object file are -applied as methods to the BFD. The mapping is defined within `bfd.h' -in a set of macros, all beginning with `bfd_' to reduce namespace -pollution. - - For example, this sequence does what you would probably expect: -return the number of sections in an object file attached to a BFD -`abfd'. - - #include "bfd.h" - - unsigned int number_of_sections (abfd) - bfd *abfd; - { - return bfd_count_sections (abfd); - } - - The abstraction used within BFD is that an object file has: - - * a header, - - * a number of sections containing raw data (*note Sections::), - - * a set of relocations (*note Relocations::), and - - * some symbol information (*note Symbols::). - Also, BFDs opened for archives have the additional attribute of an -index and contain subordinate BFDs. This approach is fine for a.out and -coff, but loses efficiency when applied to formats such as S-records and -IEEE-695. - - -File: bfd.info, Node: What BFD Version 2 Can Do, Prev: How It Works, Up: Overview - -1.3 What BFD Version 2 Can Do -============================= - -When an object file is opened, BFD subroutines automatically determine -the format of the input object file. They then build a descriptor in -memory with pointers to routines that will be used to access elements of -the object file's data structures. - - As different information from the object files is required, BFD -reads from different sections of the file and processes them. For -example, a very common operation for the linker is processing symbol -tables. Each BFD back end provides a routine for converting between -the object file's representation of symbols and an internal canonical -format. When the linker asks for the symbol table of an object file, it -calls through a memory pointer to the routine from the relevant BFD -back end which reads and converts the table into a canonical form. The -linker then operates upon the canonical form. When the link is finished -and the linker writes the output file's symbol table, another BFD back -end routine is called to take the newly created symbol table and -convert it into the chosen output format. - -* Menu: - -* BFD information loss:: Information Loss -* Canonical format:: The BFD canonical object-file format - - -File: bfd.info, Node: BFD information loss, Next: Canonical format, Up: What BFD Version 2 Can Do - -1.3.1 Information Loss ----------------------- - -_Information can be lost during output._ The output formats supported -by BFD do not provide identical facilities, and information which can -be described in one form has nowhere to go in another format. One -example of this is alignment information in `b.out'. There is nowhere -in an `a.out' format file to store alignment information on the -contained data, so when a file is linked from `b.out' and an `a.out' -image is produced, alignment information will not propagate to the -output file. (The linker will still use the alignment information -internally, so the link is performed correctly). - - Another example is COFF section names. COFF files may contain an -unlimited number of sections, each one with a textual section name. If -the target of the link is a format which does not have many sections -(e.g., `a.out') or has sections without names (e.g., the Oasys format), -the link cannot be done simply. You can circumvent this problem by -describing the desired input-to-output section mapping with the linker -command language. - - _Information can be lost during canonicalization._ The BFD internal -canonical form of the external formats is not exhaustive; there are -structures in input formats for which there is no direct representation -internally. This means that the BFD back ends cannot maintain all -possible data richness through the transformation between external to -internal and back to external formats. - - This limitation is only a problem when an application reads one -format and writes another. Each BFD back end is responsible for -maintaining as much data as possible, and the internal BFD canonical -form has structures which are opaque to the BFD core, and exported only -to the back ends. When a file is read in one format, the canonical form -is generated for BFD and the application. At the same time, the back -end saves away any information which may otherwise be lost. If the data -is then written back in the same format, the back end routine will be -able to use the canonical form provided by the BFD core as well as the -information it prepared earlier. Since there is a great deal of -commonality between back ends, there is no information lost when -linking or copying big endian COFF to little endian COFF, or `a.out' to -`b.out'. When a mixture of formats is linked, the information is only -lost from the files whose format differs from the destination. - - -File: bfd.info, Node: Canonical format, Prev: BFD information loss, Up: What BFD Version 2 Can Do - -1.3.2 The BFD canonical object-file format ------------------------------------------- - -The greatest potential for loss of information occurs when there is the -least overlap between the information provided by the source format, -that stored by the canonical format, and that needed by the destination -format. A brief description of the canonical form may help you -understand which kinds of data you can count on preserving across -conversions. - -_files_ - Information stored on a per-file basis includes target machine - architecture, particular implementation format type, a demand - pageable bit, and a write protected bit. Information like Unix - magic numbers is not stored here--only the magic numbers' meaning, - so a `ZMAGIC' file would have both the demand pageable bit and the - write protected text bit set. The byte order of the target is - stored on a per-file basis, so that big- and little-endian object - files may be used with one another. - -_sections_ - Each section in the input file contains the name of the section, - the section's original address in the object file, size and - alignment information, various flags, and pointers into other BFD - data structures. - -_symbols_ - Each symbol contains a pointer to the information for the object - file which originally defined it, its name, its value, and various - flag bits. When a BFD back end reads in a symbol table, it - relocates all symbols to make them relative to the base of the - section where they were defined. Doing this ensures that each - symbol points to its containing section. Each symbol also has a - varying amount of hidden private data for the BFD back end. Since - the symbol points to the original file, the private data format - for that symbol is accessible. `ld' can operate on a collection - of symbols of wildly different formats without problems. - - Normal global and simple local symbols are maintained on output, - so an output file (no matter its format) will retain symbols - pointing to functions and to global, static, and common variables. - Some symbol information is not worth retaining; in `a.out', type - information is stored in the symbol table as long symbol names. - This information would be useless to most COFF debuggers; the - linker has command line switches to allow users to throw it away. - - There is one word of type information within the symbol, so if the - format supports symbol type information within symbols (for - example, COFF, IEEE, Oasys) and the type is simple enough to fit - within one word (nearly everything but aggregates), the - information will be preserved. - -_relocation level_ - Each canonical BFD relocation record contains a pointer to the - symbol to relocate to, the offset of the data to relocate, the - section the data is in, and a pointer to a relocation type - descriptor. Relocation is performed by passing messages through - the relocation type descriptor and the symbol pointer. Therefore, - relocations can be performed on output data using a relocation - method that is only available in one of the input formats. For - instance, Oasys provides a byte relocation format. A relocation - record requesting this relocation type would point indirectly to a - routine to perform this, so the relocation may be performed on a - byte being written to a 68k COFF file, even though 68k COFF has no - such relocation type. - -_line numbers_ - Object formats can contain, for debugging purposes, some form of - mapping between symbols, source line numbers, and addresses in the - output file. These addresses have to be relocated along with the - symbol information. Each symbol with an associated list of line - number records points to the first record of the list. The head - of a line number list consists of a pointer to the symbol, which - allows finding out the address of the function whose line number - is being described. The rest of the list is made up of pairs: - offsets into the section and line numbers. Any format which can - simply derive this information can pass it successfully between - formats (COFF, IEEE and Oasys). - - -File: bfd.info, Node: BFD front end, Next: BFD back ends, Prev: Overview, Up: Top - -2 BFD Front End -*************** - -2.1 `typedef bfd' -================= - -A BFD has type `bfd'; objects of this type are the cornerstone of any -application using BFD. Using BFD consists of making references though -the BFD and to data in the BFD. - - Here is the structure that defines the type `bfd'. It contains the -major data about the file and pointers to the rest of the data. - - - struct bfd - { - /* A unique identifier of the BFD */ - unsigned int id; - - /* The filename the application opened the BFD with. */ - const char *filename; - - /* A pointer to the target jump table. */ - const struct bfd_target *xvec; - - /* The IOSTREAM, and corresponding IO vector that provide access - to the file backing the BFD. */ - void *iostream; - const struct bfd_iovec *iovec; - - /* Is the file descriptor being cached? That is, can it be closed as - needed, and re-opened when accessed later? */ - bfd_boolean cacheable; - - /* Marks whether there was a default target specified when the - BFD was opened. This is used to select which matching algorithm - to use to choose the back end. */ - bfd_boolean target_defaulted; - - /* The caching routines use these to maintain a - least-recently-used list of BFDs. */ - struct bfd *lru_prev, *lru_next; - - /* When a file is closed by the caching routines, BFD retains - state information on the file here... */ - ufile_ptr where; - - /* ... and here: (``once'' means at least once). */ - bfd_boolean opened_once; - - /* Set if we have a locally maintained mtime value, rather than - getting it from the file each time. */ - bfd_boolean mtime_set; - - /* File modified time, if mtime_set is TRUE. */ - long mtime; - - /* Reserved for an unimplemented file locking extension. */ - int ifd; - - /* The format which belongs to the BFD. (object, core, etc.) */ - bfd_format format; - - /* The direction with which the BFD was opened. */ - enum bfd_direction - { - no_direction = 0, - read_direction = 1, - write_direction = 2, - both_direction = 3 - } - direction; - - /* Format_specific flags. */ - flagword flags; - - /* Currently my_archive is tested before adding origin to - anything. I believe that this can become always an add of - origin, with origin set to 0 for non archive files. */ - ufile_ptr origin; - - /* Remember when output has begun, to stop strange things - from happening. */ - bfd_boolean output_has_begun; - - /* A hash table for section names. */ - struct bfd_hash_table section_htab; - - /* Pointer to linked list of sections. */ - struct bfd_section *sections; - - /* The place where we add to the section list. */ - struct bfd_section **section_tail; - - /* The number of sections. */ - unsigned int section_count; - - /* Stuff only useful for object files: - The start address. */ - bfd_vma start_address; - - /* Used for input and output. */ - unsigned int symcount; - - /* Symbol table for output BFD (with symcount entries). */ - struct bfd_symbol **outsymbols; - - /* Used for slurped dynamic symbol tables. */ - unsigned int dynsymcount; - - /* Pointer to structure which contains architecture information. */ - const struct bfd_arch_info *arch_info; - - /* Flag set if symbols from this BFD should not be exported. */ - bfd_boolean no_export; - - /* Stuff only useful for archives. */ - void *arelt_data; - struct bfd *my_archive; /* The containing archive BFD. */ - struct bfd *next; /* The next BFD in the archive. */ - struct bfd *archive_head; /* The first BFD in the archive. */ - bfd_boolean has_armap; - - /* A chain of BFD structures involved in a link. */ - struct bfd *link_next; - - /* A field used by _bfd_generic_link_add_archive_symbols. This will - be used only for archive elements. */ - int archive_pass; - - /* Used by the back end to hold private data. */ - union - { - struct aout_data_struct *aout_data; - struct artdata *aout_ar_data; - struct _oasys_data *oasys_obj_data; - struct _oasys_ar_data *oasys_ar_data; - struct coff_tdata *coff_obj_data; - struct pe_tdata *pe_obj_data; - struct xcoff_tdata *xcoff_obj_data; - struct ecoff_tdata *ecoff_obj_data; - struct ieee_data_struct *ieee_data; - struct ieee_ar_data_struct *ieee_ar_data; - struct srec_data_struct *srec_data; - struct ihex_data_struct *ihex_data; - struct tekhex_data_struct *tekhex_data; - struct elf_obj_tdata *elf_obj_data; - struct nlm_obj_tdata *nlm_obj_data; - struct bout_data_struct *bout_data; - struct mmo_data_struct *mmo_data; - struct sun_core_struct *sun_core_data; - struct sco5_core_struct *sco5_core_data; - struct trad_core_struct *trad_core_data; - struct som_data_struct *som_data; - struct hpux_core_struct *hpux_core_data; - struct hppabsd_core_struct *hppabsd_core_data; - struct sgi_core_struct *sgi_core_data; - struct lynx_core_struct *lynx_core_data; - struct osf_core_struct *osf_core_data; - struct cisco_core_struct *cisco_core_data; - struct versados_data_struct *versados_data; - struct netbsd_core_struct *netbsd_core_data; - struct mach_o_data_struct *mach_o_data; - struct mach_o_fat_data_struct *mach_o_fat_data; - struct bfd_pef_data_struct *pef_data; - struct bfd_pef_xlib_data_struct *pef_xlib_data; - struct bfd_sym_data_struct *sym_data; - void *any; - } - tdata; - - /* Used by the application to hold private data. */ - void *usrdata; - - /* Where all the allocated stuff under this BFD goes. This is a - struct objalloc *, but we use void * to avoid requiring the inclusion - of objalloc.h. */ - void *memory; - }; - -2.2 Error reporting -=================== - -Most BFD functions return nonzero on success (check their individual -documentation for precise semantics). On an error, they call -`bfd_set_error' to set an error condition that callers can check by -calling `bfd_get_error'. If that returns `bfd_error_system_call', then -check `errno'. - - The easiest way to report a BFD error to the user is to use -`bfd_perror'. - -2.2.1 Type `bfd_error_type' ---------------------------- - -The values returned by `bfd_get_error' are defined by the enumerated -type `bfd_error_type'. - - - typedef enum bfd_error - { - bfd_error_no_error = 0, - bfd_error_system_call, - bfd_error_invalid_target, - bfd_error_wrong_format, - bfd_error_wrong_object_format, - bfd_error_invalid_operation, - bfd_error_no_memory, - bfd_error_no_symbols, - bfd_error_no_armap, - bfd_error_no_more_archived_files, - bfd_error_malformed_archive, - bfd_error_file_not_recognized, - bfd_error_file_ambiguously_recognized, - bfd_error_no_contents, - bfd_error_nonrepresentable_section, - bfd_error_no_debug_section, - bfd_error_bad_value, - bfd_error_file_truncated, - bfd_error_file_too_big, - bfd_error_invalid_error_code - } - bfd_error_type; - -2.2.1.1 `bfd_get_error' -....................... - -*Synopsis* - bfd_error_type bfd_get_error (void); - *Description* -Return the current BFD error condition. - -2.2.1.2 `bfd_set_error' -....................... - -*Synopsis* - void bfd_set_error (bfd_error_type error_tag); - *Description* -Set the BFD error condition to be ERROR_TAG. - -2.2.1.3 `bfd_errmsg' -.................... - -*Synopsis* - const char *bfd_errmsg (bfd_error_type error_tag); - *Description* -Return a string describing the error ERROR_TAG, or the system error if -ERROR_TAG is `bfd_error_system_call'. - -2.2.1.4 `bfd_perror' -.................... - -*Synopsis* - void bfd_perror (const char *message); - *Description* -Print to the standard error stream a string describing the last BFD -error that occurred, or the last system error if the last BFD error was -a system call failure. If MESSAGE is non-NULL and non-empty, the error -string printed is preceded by MESSAGE, a colon, and a space. It is -followed by a newline. - -2.2.2 BFD error handler ------------------------ - -Some BFD functions want to print messages describing the problem. They -call a BFD error handler function. This function may be overridden by -the program. - - The BFD error handler acts like printf. - - - typedef void (*bfd_error_handler_type) (const char *, ...); - -2.2.2.1 `bfd_set_error_handler' -............................... - -*Synopsis* - bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type); - *Description* -Set the BFD error handler function. Returns the previous function. - -2.2.2.2 `bfd_set_error_program_name' -.................................... - -*Synopsis* - void bfd_set_error_program_name (const char *); - *Description* -Set the program name to use when printing a BFD error. This is printed -before the error message followed by a colon and space. The string -must not be changed after it is passed to this function. - -2.2.2.3 `bfd_get_error_handler' -............................... - -*Synopsis* - bfd_error_handler_type bfd_get_error_handler (void); - *Description* -Return the BFD error handler function. - -2.3 Symbols -=========== - -2.3.0.1 `bfd_get_reloc_upper_bound' -................................... - -*Synopsis* - long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect); - *Description* -Return the number of bytes required to store the relocation information -associated with section SECT attached to bfd ABFD. If an error occurs, -return -1. - -2.3.0.2 `bfd_canonicalize_reloc' -................................ - -*Synopsis* - long bfd_canonicalize_reloc - (bfd *abfd, asection *sec, arelent **loc, asymbol **syms); - *Description* -Call the back end associated with the open BFD ABFD and translate the -external form of the relocation information attached to SEC into the -internal canonical form. Place the table into memory at LOC, which has -been preallocated, usually by a call to `bfd_get_reloc_upper_bound'. -Returns the number of relocs, or -1 on error. - - The SYMS table is also needed for horrible internal magic reasons. - -2.3.0.3 `bfd_set_reloc' -....................... - -*Synopsis* - void bfd_set_reloc - (bfd *abfd, asection *sec, arelent **rel, unsigned int count); - *Description* -Set the relocation pointer and count within section SEC to the values -REL and COUNT. The argument ABFD is ignored. - -2.3.0.4 `bfd_set_file_flags' -............................ - -*Synopsis* - bfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags); - *Description* -Set the flag word in the BFD ABFD to the value FLAGS. - - Possible errors are: - * `bfd_error_wrong_format' - The target bfd was not of object format. - - * `bfd_error_invalid_operation' - The target bfd was open for - reading. - - * `bfd_error_invalid_operation' - The flag word contained a bit - which was not applicable to the type of file. E.g., an attempt - was made to set the `D_PAGED' bit on a BFD format which does not - support demand paging. - -2.3.0.5 `bfd_get_arch_size' -........................... - -*Synopsis* - int bfd_get_arch_size (bfd *abfd); - *Description* -Returns the architecture address size, in bits, as determined by the -object file's format. For ELF, this information is included in the -header. - - *Returns* -Returns the arch size in bits if known, `-1' otherwise. - -2.3.0.6 `bfd_get_sign_extend_vma' -................................. - -*Synopsis* - int bfd_get_sign_extend_vma (bfd *abfd); - *Description* -Indicates if the target architecture "naturally" sign extends an -address. Some architectures implicitly sign extend address values when -they are converted to types larger than the size of an address. For -instance, bfd_get_start_address() will return an address sign extended -to fill a bfd_vma when this is the case. - - *Returns* -Returns `1' if the target architecture is known to sign extend -addresses, `0' if the target architecture is known to not sign extend -addresses, and `-1' otherwise. - -2.3.0.7 `bfd_set_start_address' -............................... - -*Synopsis* - bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma); - *Description* -Make VMA the entry point of output BFD ABFD. - - *Returns* -Returns `TRUE' on success, `FALSE' otherwise. - -2.3.0.8 `bfd_get_gp_size' -......................... - -*Synopsis* - unsigned int bfd_get_gp_size (bfd *abfd); - *Description* -Return the maximum size of objects to be optimized using the GP -register under MIPS ECOFF. This is typically set by the `-G' argument -to the compiler, assembler or linker. - -2.3.0.9 `bfd_set_gp_size' -......................... - -*Synopsis* - void bfd_set_gp_size (bfd *abfd, unsigned int i); - *Description* -Set the maximum size of objects to be optimized using the GP register -under ECOFF or MIPS ELF. This is typically set by the `-G' argument to -the compiler, assembler or linker. - -2.3.0.10 `bfd_scan_vma' -....................... - -*Synopsis* - bfd_vma bfd_scan_vma (const char *string, const char **end, int base); - *Description* -Convert, like `strtoul', a numerical expression STRING into a `bfd_vma' -integer, and return that integer. (Though without as many bells and -whistles as `strtoul'.) The expression is assumed to be unsigned -(i.e., positive). If given a BASE, it is used as the base for -conversion. A base of 0 causes the function to interpret the string in -hex if a leading "0x" or "0X" is found, otherwise in octal if a leading -zero is found, otherwise in decimal. - - If the value would overflow, the maximum `bfd_vma' value is returned. - -2.3.0.11 `bfd_copy_private_header_data' -....................................... - -*Synopsis* - bfd_boolean bfd_copy_private_header_data (bfd *ibfd, bfd *obfd); - *Description* -Copy private BFD header information from the BFD IBFD to the the BFD -OBFD. This copies information that may require sections to exist, but -does not require symbol tables. Return `true' on success, `false' on -error. Possible error returns are: - - * `bfd_error_no_memory' - Not enough memory exists to create private - data for OBFD. - - #define bfd_copy_private_header_data(ibfd, obfd) \ - BFD_SEND (obfd, _bfd_copy_private_header_data, \ - (ibfd, obfd)) - -2.3.0.12 `bfd_copy_private_bfd_data' -.................................... - -*Synopsis* - bfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd); - *Description* -Copy private BFD information from the BFD IBFD to the the BFD OBFD. -Return `TRUE' on success, `FALSE' on error. Possible error returns are: - - * `bfd_error_no_memory' - Not enough memory exists to create private - data for OBFD. - - #define bfd_copy_private_bfd_data(ibfd, obfd) \ - BFD_SEND (obfd, _bfd_copy_private_bfd_data, \ - (ibfd, obfd)) - -2.3.0.13 `bfd_merge_private_bfd_data' -..................................... - -*Synopsis* - bfd_boolean bfd_merge_private_bfd_data (bfd *ibfd, bfd *obfd); - *Description* -Merge private BFD information from the BFD IBFD to the the output file -BFD OBFD when linking. Return `TRUE' on success, `FALSE' on error. -Possible error returns are: - - * `bfd_error_no_memory' - Not enough memory exists to create private - data for OBFD. - - #define bfd_merge_private_bfd_data(ibfd, obfd) \ - BFD_SEND (obfd, _bfd_merge_private_bfd_data, \ - (ibfd, obfd)) - -2.3.0.14 `bfd_set_private_flags' -................................ - -*Synopsis* - bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags); - *Description* -Set private BFD flag information in the BFD ABFD. Return `TRUE' on -success, `FALSE' on error. Possible error returns are: - - * `bfd_error_no_memory' - Not enough memory exists to create private - data for OBFD. - - #define bfd_set_private_flags(abfd, flags) \ - BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags)) - -2.3.0.15 `Other functions' -.......................... - -*Description* -The following functions exist but have not yet been documented. - #define bfd_sizeof_headers(abfd, reloc) \ - BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, reloc)) - - #define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \ - BFD_SEND (abfd, _bfd_find_nearest_line, \ - (abfd, sec, syms, off, file, func, line)) - - #define bfd_debug_info_start(abfd) \ - BFD_SEND (abfd, _bfd_debug_info_start, (abfd)) - - #define bfd_debug_info_end(abfd) \ - BFD_SEND (abfd, _bfd_debug_info_end, (abfd)) - - #define bfd_debug_info_accumulate(abfd, section) \ - BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section)) - - #define bfd_stat_arch_elt(abfd, stat) \ - BFD_SEND (abfd, _bfd_stat_arch_elt,(abfd, stat)) - - #define bfd_update_armap_timestamp(abfd) \ - BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd)) - - #define bfd_set_arch_mach(abfd, arch, mach)\ - BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach)) - - #define bfd_relax_section(abfd, section, link_info, again) \ - BFD_SEND (abfd, _bfd_relax_section, (abfd, section, link_info, again)) - - #define bfd_gc_sections(abfd, link_info) \ - BFD_SEND (abfd, _bfd_gc_sections, (abfd, link_info)) - - #define bfd_merge_sections(abfd, link_info) \ - BFD_SEND (abfd, _bfd_merge_sections, (abfd, link_info)) - - #define bfd_is_group_section(abfd, sec) \ - BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec)) - - #define bfd_discard_group(abfd, sec) \ - BFD_SEND (abfd, _bfd_discard_group, (abfd, sec)) - - #define bfd_link_hash_table_create(abfd) \ - BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd)) - - #define bfd_link_hash_table_free(abfd, hash) \ - BFD_SEND (abfd, _bfd_link_hash_table_free, (hash)) - - #define bfd_link_add_symbols(abfd, info) \ - BFD_SEND (abfd, _bfd_link_add_symbols, (abfd, info)) - - #define bfd_link_just_syms(abfd, sec, info) \ - BFD_SEND (abfd, _bfd_link_just_syms, (sec, info)) - - #define bfd_final_link(abfd, info) \ - BFD_SEND (abfd, _bfd_final_link, (abfd, info)) - - #define bfd_free_cached_info(abfd) \ - BFD_SEND (abfd, _bfd_free_cached_info, (abfd)) - - #define bfd_get_dynamic_symtab_upper_bound(abfd) \ - BFD_SEND (abfd, _bfd_get_dynamic_symtab_upper_bound, (abfd)) - - #define bfd_print_private_bfd_data(abfd, file)\ - BFD_SEND (abfd, _bfd_print_private_bfd_data, (abfd, file)) - - #define bfd_canonicalize_dynamic_symtab(abfd, asymbols) \ - BFD_SEND (abfd, _bfd_canonicalize_dynamic_symtab, (abfd, asymbols)) - - #define bfd_get_synthetic_symtab(abfd, count, syms, dyncount, dynsyms, ret) \ - BFD_SEND (abfd, _bfd_get_synthetic_symtab, (abfd, count, syms, \ - dyncount, dynsyms, ret)) - - #define bfd_get_dynamic_reloc_upper_bound(abfd) \ - BFD_SEND (abfd, _bfd_get_dynamic_reloc_upper_bound, (abfd)) - - #define bfd_canonicalize_dynamic_reloc(abfd, arels, asyms) \ - BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms)) - - extern bfd_byte *bfd_get_relocated_section_contents - (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *, - bfd_boolean, asymbol **); - -2.3.0.16 `bfd_alt_mach_code' -............................ - -*Synopsis* - bfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative); - *Description* -When more than one machine code number is available for the same -machine type, this function can be used to switch between the preferred -one (alternative == 0) and any others. Currently, only ELF supports -this feature, with up to two alternate machine codes. - - struct bfd_preserve - { - void *marker; - void *tdata; - flagword flags; - const struct bfd_arch_info *arch_info; - struct bfd_section *sections; - struct bfd_section **section_tail; - unsigned int section_count; - struct bfd_hash_table section_htab; - }; - -2.3.0.17 `bfd_preserve_save' -............................ - -*Synopsis* - bfd_boolean bfd_preserve_save (bfd *, struct bfd_preserve *); - *Description* -When testing an object for compatibility with a particular target -back-end, the back-end object_p function needs to set up certain fields -in the bfd on successfully recognizing the object. This typically -happens in a piecemeal fashion, with failures possible at many points. -On failure, the bfd is supposed to be restored to its initial state, -which is virtually impossible. However, restoring a subset of the bfd -state works in practice. This function stores the subset and -reinitializes the bfd. - -2.3.0.18 `bfd_preserve_restore' -............................... - -*Synopsis* - void bfd_preserve_restore (bfd *, struct bfd_preserve *); - *Description* -This function restores bfd state saved by bfd_preserve_save. If MARKER -is non-NULL in struct bfd_preserve then that block and all subsequently -bfd_alloc'd memory is freed. - -2.3.0.19 `bfd_preserve_finish' -.............................. - -*Synopsis* - void bfd_preserve_finish (bfd *, struct bfd_preserve *); - *Description* -This function should be called when the bfd state saved by -bfd_preserve_save is no longer needed. ie. when the back-end object_p -function returns with success. - -2.3.0.20 `struct bfd_iovec' -........................... - -*Description* -The `struct bfd_iovec' contains the internal file I/O class. Each -`BFD' has an instance of this class and all file I/O is routed through -it (it is assumed that the instance implements all methods listed -below). - struct bfd_iovec - { - /* To avoid problems with macros, a "b" rather than "f" - prefix is prepended to each method name. */ - /* Attempt to read/write NBYTES on ABFD's IOSTREAM storing/fetching - bytes starting at PTR. Return the number of bytes actually - transfered (a read past end-of-file returns less than NBYTES), - or -1 (setting `bfd_error') if an error occurs. */ - file_ptr (*bread) (struct bfd *abfd, void *ptr, file_ptr nbytes); - file_ptr (*bwrite) (struct bfd *abfd, const void *ptr, - file_ptr nbytes); - /* Return the current IOSTREAM file offset, or -1 (setting `bfd_error' - if an error occurs. */ - file_ptr (*btell) (struct bfd *abfd); - /* For the following, on successful completion a value of 0 is returned. - Otherwise, a value of -1 is returned (and `bfd_error' is set). */ - int (*bseek) (struct bfd *abfd, file_ptr offset, int whence); - int (*bclose) (struct bfd *abfd); - int (*bflush) (struct bfd *abfd); - int (*bstat) (struct bfd *abfd, struct stat *sb); - }; - -2.3.0.21 `bfd_get_mtime' -........................ - -*Synopsis* - long bfd_get_mtime (bfd *abfd); - *Description* -Return the file modification time (as read from the file system, or -from the archive header for archive members). - -2.3.0.22 `bfd_get_size' -....................... - -*Synopsis* - long bfd_get_size (bfd *abfd); - *Description* -Return the file size (as read from file system) for the file associated -with BFD ABFD. - - The initial motivation for, and use of, this routine is not so we -can get the exact size of the object the BFD applies to, since that -might not be generally possible (archive members for example). It -would be ideal if someone could eventually modify it so that such -results were guaranteed. - - Instead, we want to ask questions like "is this NNN byte sized -object I'm about to try read from file offset YYY reasonable?" As as -example of where we might do this, some object formats use string -tables for which the first `sizeof (long)' bytes of the table contain -the size of the table itself, including the size bytes. If an -application tries to read what it thinks is one of these string tables, -without some way to validate the size, and for some reason the size is -wrong (byte swapping error, wrong location for the string table, etc.), -the only clue is likely to be a read error when it tries to read the -table, or a "virtual memory exhausted" error when it tries to allocate -15 bazillon bytes of space for the 15 bazillon byte table it is about -to read. This function at least allows us to answer the question, "is -the size reasonable?". - -* Menu: - -* Memory Usage:: -* Initialization:: -* Sections:: -* Symbols:: -* Archives:: -* Formats:: -* Relocations:: -* Core Files:: -* Targets:: -* Architectures:: -* Opening and Closing:: -* Internal:: -* File Caching:: -* Linker Functions:: -* Hash Tables:: - - -File: bfd.info, Node: Memory Usage, Next: Initialization, Prev: BFD front end, Up: BFD front end - -2.4 Memory Usage -================ - -BFD keeps all of its internal structures in obstacks. There is one -obstack per open BFD file, into which the current state is stored. When -a BFD is closed, the obstack is deleted, and so everything which has -been allocated by BFD for the closing file is thrown away. - - BFD does not free anything created by an application, but pointers -into `bfd' structures become invalid on a `bfd_close'; for example, -after a `bfd_close' the vector passed to `bfd_canonicalize_symtab' is -still around, since it has been allocated by the application, but the -data that it pointed to are lost. - - The general rule is to not close a BFD until all operations dependent -upon data from the BFD have been completed, or all the data from within -the file has been copied. To help with the management of memory, there -is a function (`bfd_alloc_size') which returns the number of bytes in -obstacks associated with the supplied BFD. This could be used to select -the greediest open BFD, close it to reclaim the memory, perform some -operation and reopen the BFD again, to get a fresh copy of the data -structures. - - -File: bfd.info, Node: Initialization, Next: Sections, Prev: Memory Usage, Up: BFD front end - -2.5 Initialization -================== - -These are the functions that handle initializing a BFD. - -2.5.0.1 `bfd_init' -.................. - -*Synopsis* - void bfd_init (void); - *Description* -This routine must be called before any other BFD function to initialize -magical internal data structures. - - -File: bfd.info, Node: Sections, Next: Symbols, Prev: Initialization, Up: BFD front end - -2.6 Sections -============ - -The raw data contained within a BFD is maintained through the section -abstraction. A single BFD may have any number of sections. It keeps -hold of them by pointing to the first; each one points to the next in -the list. - - Sections are supported in BFD in `section.c'. - -* Menu: - -* Section Input:: -* Section Output:: -* typedef asection:: -* section prototypes:: - - -File: bfd.info, Node: Section Input, Next: Section Output, Prev: Sections, Up: Sections - -2.6.1 Section input -------------------- - -When a BFD is opened for reading, the section structures are created -and attached to the BFD. - - Each section has a name which describes the section in the outside -world--for example, `a.out' would contain at least three sections, -called `.text', `.data' and `.bss'. - - Names need not be unique; for example a COFF file may have several -sections named `.data'. - - Sometimes a BFD will contain more than the "natural" number of -sections. A back end may attach other sections containing constructor -data, or an application may add a section (using `bfd_make_section') to -the sections attached to an already open BFD. For example, the linker -creates an extra section `COMMON' for each input file's BFD to hold -information about common storage. - - The raw data is not necessarily read in when the section descriptor -is created. Some targets may leave the data in place until a -`bfd_get_section_contents' call is made. Other back ends may read in -all the data at once. For example, an S-record file has to be read -once to determine the size of the data. An IEEE-695 file doesn't -contain raw data in sections, but data and relocation expressions -intermixed, so the data area has to be parsed to get out the data and -relocations. - - -File: bfd.info, Node: Section Output, Next: typedef asection, Prev: Section Input, Up: Sections - -2.6.2 Section output --------------------- - -To write a new object style BFD, the various sections to be written -have to be created. They are attached to the BFD in the same way as -input sections; data is written to the sections using -`bfd_set_section_contents'. - - Any program that creates or combines sections (e.g., the assembler -and linker) must use the `asection' fields `output_section' and -`output_offset' to indicate the file sections to which each section -must be written. (If the section is being created from scratch, -`output_section' should probably point to the section itself and -`output_offset' should probably be zero.) - - The data to be written comes from input sections attached (via -`output_section' pointers) to the output sections. The output section -structure can be considered a filter for the input section: the output -section determines the vma of the output data and the name, but the -input section determines the offset into the output section of the data -to be written. - - E.g., to create a section "O", starting at 0x100, 0x123 long, -containing two subsections, "A" at offset 0x0 (i.e., at vma 0x100) and -"B" at offset 0x20 (i.e., at vma 0x120) the `asection' structures would -look like: - - section name "A" - output_offset 0x00 - size 0x20 - output_section -----------> section name "O" - | vma 0x100 - section name "B" | size 0x123 - output_offset 0x20 | - size 0x103 | - output_section --------| - -2.6.3 Link orders ------------------ - -The data within a section is stored in a "link_order". These are much -like the fixups in `gas'. The link_order abstraction allows a section -to grow and shrink within itself. - - A link_order knows how big it is, and which is the next link_order -and where the raw data for it is; it also points to a list of -relocations which apply to it. - - The link_order is used by the linker to perform relaxing on final -code. The compiler creates code which is as big as necessary to make -it work without relaxing, and the user can select whether to relax. -Sometimes relaxing takes a lot of time. The linker runs around the -relocations to see if any are attached to data which can be shrunk, if -so it does it on a link_order by link_order basis. - - -File: bfd.info, Node: typedef asection, Next: section prototypes, Prev: Section Output, Up: Sections - -2.6.4 typedef asection ----------------------- - -Here is the section structure: - - - typedef struct bfd_section - { - /* The name of the section; the name isn't a copy, the pointer is - the same as that passed to bfd_make_section. */ - const char *name; - - /* A unique sequence number. */ - int id; - - /* Which section in the bfd; 0..n-1 as sections are created in a bfd. */ - int index; - - /* The next section in the list belonging to the BFD, or NULL. */ - struct bfd_section *next; - - /* The field flags contains attributes of the section. Some - flags are read in from the object file, and some are - synthesized from other information. */ - flagword flags; - - #define SEC_NO_FLAGS 0x000 - - /* Tells the OS to allocate space for this section when loading. - This is clear for a section containing debug information only. */ - #define SEC_ALLOC 0x001 - - /* Tells the OS to load the section from the file when loading. - This is clear for a .bss section. */ - #define SEC_LOAD 0x002 - - /* The section contains data still to be relocated, so there is - some relocation information too. */ - #define SEC_RELOC 0x004 - - /* A signal to the OS that the section contains read only data. */ - #define SEC_READONLY 0x008 - - /* The section contains code only. */ - #define SEC_CODE 0x010 - - /* The section contains data only. */ - #define SEC_DATA 0x020 - - /* The section will reside in ROM. */ - #define SEC_ROM 0x040 - - /* The section contains constructor information. This section - type is used by the linker to create lists of constructors and - destructors used by `g++'. When a back end sees a symbol - which should be used in a constructor list, it creates a new - section for the type of name (e.g., `__CTOR_LIST__'), attaches - the symbol to it, and builds a relocation. To build the lists - of constructors, all the linker has to do is catenate all the - sections called `__CTOR_LIST__' and relocate the data - contained within - exactly the operations it would peform on - standard data. */ - #define SEC_CONSTRUCTOR 0x080 - - /* The section has contents - a data section could be - `SEC_ALLOC' | `SEC_HAS_CONTENTS'; a debug section could be - `SEC_HAS_CONTENTS' */ - #define SEC_HAS_CONTENTS 0x100 - - /* An instruction to the linker to not output the section - even if it has information which would normally be written. */ - #define SEC_NEVER_LOAD 0x200 - - /* The section contains thread local data. */ - #define SEC_THREAD_LOCAL 0x400 - - /* The section has GOT references. This flag is only for the - linker, and is currently only used by the elf32-hppa back end. - It will be set if global offset table references were detected - in this section, which indicate to the linker that the section - contains PIC code, and must be handled specially when doing a - static link. */ - #define SEC_HAS_GOT_REF 0x800 - - /* The section contains common symbols (symbols may be defined - multiple times, the value of a symbol is the amount of - space it requires, and the largest symbol value is the one - used). Most targets have exactly one of these (which we - translate to bfd_com_section_ptr), but ECOFF has two. */ - #define SEC_IS_COMMON 0x1000 - - /* The section contains only debugging information. For - example, this is set for ELF .debug and .stab sections. - strip tests this flag to see if a section can be - discarded. */ - #define SEC_DEBUGGING 0x2000 - - /* The contents of this section are held in memory pointed to - by the contents field. This is checked by bfd_get_section_contents, - and the data is retrieved from memory if appropriate. */ - #define SEC_IN_MEMORY 0x4000 - - /* The contents of this section are to be excluded by the - linker for executable and shared objects unless those - objects are to be further relocated. */ - #define SEC_EXCLUDE 0x8000 - - /* The contents of this section are to be sorted based on the sum of - the symbol and addend values specified by the associated relocation - entries. Entries without associated relocation entries will be - appended to the end of the section in an unspecified order. */ - #define SEC_SORT_ENTRIES 0x10000 - - /* When linking, duplicate sections of the same name should be - discarded, rather than being combined into a single section as - is usually done. This is similar to how common symbols are - handled. See SEC_LINK_DUPLICATES below. */ - #define SEC_LINK_ONCE 0x20000 - - /* If SEC_LINK_ONCE is set, this bitfield describes how the linker - should handle duplicate sections. */ - #define SEC_LINK_DUPLICATES 0x40000 - - /* This value for SEC_LINK_DUPLICATES means that duplicate - sections with the same name should simply be discarded. */ - #define SEC_LINK_DUPLICATES_DISCARD 0x0 - - /* This value for SEC_LINK_DUPLICATES means that the linker - should warn if there are any duplicate sections, although - it should still only link one copy. */ - #define SEC_LINK_DUPLICATES_ONE_ONLY 0x80000 - - /* This value for SEC_LINK_DUPLICATES means that the linker - should warn if any duplicate sections are a different size. */ - #define SEC_LINK_DUPLICATES_SAME_SIZE 0x100000 - - /* This value for SEC_LINK_DUPLICATES means that the linker - should warn if any duplicate sections contain different - contents. */ - #define SEC_LINK_DUPLICATES_SAME_CONTENTS \ - (SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE) - - /* This section was created by the linker as part of dynamic - relocation or other arcane processing. It is skipped when - going through the first-pass output, trusting that someone - else up the line will take care of it later. */ - #define SEC_LINKER_CREATED 0x200000 - - /* This section should not be subject to garbage collection. */ - #define SEC_KEEP 0x400000 - - /* This section contains "short" data, and should be placed - "near" the GP. */ - #define SEC_SMALL_DATA 0x800000 - - /* Attempt to merge identical entities in the section. - Entity size is given in the entsize field. */ - #define SEC_MERGE 0x1000000 - - /* If given with SEC_MERGE, entities to merge are zero terminated - strings where entsize specifies character size instead of fixed - size entries. */ - #define SEC_STRINGS 0x2000000 - - /* This section contains data about section groups. */ - #define SEC_GROUP 0x4000000 - - /* The section is a COFF shared library section. This flag is - only for the linker. If this type of section appears in - the input file, the linker must copy it to the output file - without changing the vma or size. FIXME: Although this - was originally intended to be general, it really is COFF - specific (and the flag was renamed to indicate this). It - might be cleaner to have some more general mechanism to - allow the back end to control what the linker does with - sections. */ - #define SEC_COFF_SHARED_LIBRARY 0x10000000 - - /* This section contains data which may be shared with other - executables or shared objects. This is for COFF only. */ - #define SEC_COFF_SHARED 0x20000000 - - /* When a section with this flag is being linked, then if the size of - the input section is less than a page, it should not cross a page - boundary. If the size of the input section is one page or more, - it should be aligned on a page boundary. This is for TI - TMS320C54X only. */ - #define SEC_TIC54X_BLOCK 0x40000000 - - /* Conditionally link this section; do not link if there are no - references found to any symbol in the section. This is for TI - TMS320C54X only. */ - #define SEC_TIC54X_CLINK 0x80000000 - - /* End of section flags. */ - - /* Some internal packed boolean fields. */ - - /* See the vma field. */ - unsigned int user_set_vma : 1; - - /* A mark flag used by some of the linker backends. */ - unsigned int linker_mark : 1; - - /* Another mark flag used by some of the linker backends. Set for - output sections that have an input section. */ - unsigned int linker_has_input : 1; - - /* A mark flag used by some linker backends for garbage collection. */ - unsigned int gc_mark : 1; - - /* The following flags are used by the ELF linker. */ - - /* Mark sections which have been allocated to segments. */ - unsigned int segment_mark : 1; - - /* Type of sec_info information. */ - unsigned int sec_info_type:3; - #define ELF_INFO_TYPE_NONE 0 - #define ELF_INFO_TYPE_STABS 1 - #define ELF_INFO_TYPE_MERGE 2 - #define ELF_INFO_TYPE_EH_FRAME 3 - #define ELF_INFO_TYPE_JUST_SYMS 4 - - /* Nonzero if this section uses RELA relocations, rather than REL. */ - unsigned int use_rela_p:1; - - /* Bits used by various backends. The generic code doesn't touch - these fields. */ - - /* Nonzero if this section has TLS related relocations. */ - unsigned int has_tls_reloc:1; - - /* Nonzero if this section has a gp reloc. */ - unsigned int has_gp_reloc:1; - - /* Nonzero if this section needs the relax finalize pass. */ - unsigned int need_finalize_relax:1; - - /* Whether relocations have been processed. */ - unsigned int reloc_done : 1; - - /* End of internal packed boolean fields. */ - - /* The virtual memory address of the section - where it will be - at run time. The symbols are relocated against this. The - user_set_vma flag is maintained by bfd; if it's not set, the - backend can assign addresses (for example, in `a.out', where - the default address for `.data' is dependent on the specific - target and various flags). */ - bfd_vma vma; - - /* The load address of the section - where it would be in a - rom image; really only used for writing section header - information. */ - bfd_vma lma; - - /* The size of the section in octets, as it will be output. - Contains a value even if the section has no contents (e.g., the - size of `.bss'). */ - bfd_size_type size; - - /* For input sections, the original size on disk of the section, in - octets. This field is used by the linker relaxation code. It is - currently only set for sections where the linker relaxation scheme - doesn't cache altered section and reloc contents (stabs, eh_frame, - SEC_MERGE, some coff relaxing targets), and thus the original size - needs to be kept to read the section multiple times. - For output sections, rawsize holds the section size calculated on - a previous linker relaxation pass. */ - bfd_size_type rawsize; - - /* If this section is going to be output, then this value is the - offset in *bytes* into the output section of the first byte in the - input section (byte ==> smallest addressable unit on the - target). In most cases, if this was going to start at the - 100th octet (8-bit quantity) in the output section, this value - would be 100. However, if the target byte size is 16 bits - (bfd_octets_per_byte is "2"), this value would be 50. */ - bfd_vma output_offset; - - /* The output section through which to map on output. */ - struct bfd_section *output_section; - - /* The alignment requirement of the section, as an exponent of 2 - - e.g., 3 aligns to 2^3 (or 8). */ - unsigned int alignment_power; - - /* If an input section, a pointer to a vector of relocation - records for the data in this section. */ - struct reloc_cache_entry *relocation; - - /* If an output section, a pointer to a vector of pointers to - relocation records for the data in this section. */ - struct reloc_cache_entry **orelocation; - - /* The number of relocation records in one of the above. */ - unsigned reloc_count; - - /* Information below is back end specific - and not always used - or updated. */ - - /* File position of section data. */ - file_ptr filepos; - - /* File position of relocation info. */ - file_ptr rel_filepos; - - /* File position of line data. */ - file_ptr line_filepos; - - /* Pointer to data for applications. */ - void *userdata; - - /* If the SEC_IN_MEMORY flag is set, this points to the actual - contents. */ - unsigned char *contents; - - /* Attached line number information. */ - alent *lineno; - - /* Number of line number records. */ - unsigned int lineno_count; - - /* Entity size for merging purposes. */ - unsigned int entsize; - - /* Points to the kept section if this section is a link-once section, - and is discarded. */ - struct bfd_section *kept_section; - - /* When a section is being output, this value changes as more - linenumbers are written out. */ - file_ptr moving_line_filepos; - - /* What the section number is in the target world. */ - int target_index; - - void *used_by_bfd; - - /* If this is a constructor section then here is a list of the - relocations created to relocate items within it. */ - struct relent_chain *constructor_chain; - - /* The BFD which owns the section. */ - bfd *owner; - - /* A symbol which points at this section only. */ - struct bfd_symbol *symbol; - struct bfd_symbol **symbol_ptr_ptr; - - struct bfd_link_order *link_order_head; - struct bfd_link_order *link_order_tail; - } asection; - - /* These sections are global, and are managed by BFD. The application - and target back end are not permitted to change the values in - these sections. New code should use the section_ptr macros rather - than referring directly to the const sections. The const sections - may eventually vanish. */ - #define BFD_ABS_SECTION_NAME "*ABS*" - #define BFD_UND_SECTION_NAME "*UND*" - #define BFD_COM_SECTION_NAME "*COM*" - #define BFD_IND_SECTION_NAME "*IND*" - - /* The absolute section. */ - extern asection bfd_abs_section; - #define bfd_abs_section_ptr ((asection *) &bfd_abs_section) - #define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr) - /* Pointer to the undefined section. */ - extern asection bfd_und_section; - #define bfd_und_section_ptr ((asection *) &bfd_und_section) - #define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr) - /* Pointer to the common section. */ - extern asection bfd_com_section; - #define bfd_com_section_ptr ((asection *) &bfd_com_section) - /* Pointer to the indirect section. */ - extern asection bfd_ind_section; - #define bfd_ind_section_ptr ((asection *) &bfd_ind_section) - #define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr) - - #define bfd_is_const_section(SEC) \ - ( ((SEC) == bfd_abs_section_ptr) \ - || ((SEC) == bfd_und_section_ptr) \ - || ((SEC) == bfd_com_section_ptr) \ - || ((SEC) == bfd_ind_section_ptr)) - - extern const struct bfd_symbol * const bfd_abs_symbol; - extern const struct bfd_symbol * const bfd_com_symbol; - extern const struct bfd_symbol * const bfd_und_symbol; - extern const struct bfd_symbol * const bfd_ind_symbol; - - /* Macros to handle insertion and deletion of a bfd's sections. These - only handle the list pointers, ie. do not adjust section_count, - target_index etc. */ - #define bfd_section_list_remove(ABFD, PS) \ - do \ - { \ - asection **_ps = PS; \ - asection *_s = *_ps; \ - *_ps = _s->next; \ - if (_s->next == NULL) \ - (ABFD)->section_tail = _ps; \ - } \ - while (0) - #define bfd_section_list_insert(ABFD, PS, S) \ - do \ - { \ - asection **_ps = PS; \ - asection *_s = S; \ - _s->next = *_ps; \ - *_ps = _s; \ - if (_s->next == NULL) \ - (ABFD)->section_tail = &_s->next; \ - } \ - while (0) - - -File: bfd.info, Node: section prototypes, Prev: typedef asection, Up: Sections - -2.6.5 Section prototypes ------------------------- - -These are the functions exported by the section handling part of BFD. - -2.6.5.1 `bfd_section_list_clear' -................................ - -*Synopsis* - void bfd_section_list_clear (bfd *); - *Description* -Clears the section list, and also resets the section count and hash -table entries. - -2.6.5.2 `bfd_get_section_by_name' -................................. - -*Synopsis* - asection *bfd_get_section_by_name (bfd *abfd, const char *name); - *Description* -Run through ABFD and return the one of the `asection's whose name -matches NAME, otherwise `NULL'. *Note Sections::, for more information. - - This should only be used in special cases; the normal way to process -all sections of a given name is to use `bfd_map_over_sections' and -`strcmp' on the name (or better yet, base it on the section flags or -something else) for each section. - -2.6.5.3 `bfd_get_section_by_name_if' -.................................... - -*Synopsis* - asection *bfd_get_section_by_name_if - (bfd *abfd, - const char *name, - bfd_boolean (*func) (bfd *abfd, asection *sect, void *obj), - void *obj); - *Description* -Call the provided function FUNC for each section attached to the BFD -ABFD whose name matches NAME, passing OBJ as an argument. The function -will be called as if by - - func (abfd, the_section, obj); - - It returns the first section for which FUNC returns true, otherwise -`NULL'. - -2.6.5.4 `bfd_get_unique_section_name' -..................................... - -*Synopsis* - char *bfd_get_unique_section_name - (bfd *abfd, const char *templat, int *count); - *Description* -Invent a section name that is unique in ABFD by tacking a dot and a -digit suffix onto the original TEMPLAT. If COUNT is non-NULL, then it -specifies the first number tried as a suffix to generate a unique name. -The value pointed to by COUNT will be incremented in this case. - -2.6.5.5 `bfd_make_section_old_way' -.................................. - -*Synopsis* - asection *bfd_make_section_old_way (bfd *abfd, const char *name); - *Description* -Create a new empty section called NAME and attach it to the end of the -chain of sections for the BFD ABFD. An attempt to create a section with -a name which is already in use returns its pointer without changing the -section chain. - - It has the funny name since this is the way it used to be before it -was rewritten.... - - Possible errors are: - * `bfd_error_invalid_operation' - If output has already started for - this BFD. - - * `bfd_error_no_memory' - If memory allocation fails. - -2.6.5.6 `bfd_make_section_anyway' -................................. - -*Synopsis* - asection *bfd_make_section_anyway (bfd *abfd, const char *name); - *Description* -Create a new empty section called NAME and attach it to the end of the -chain of sections for ABFD. Create a new section even if there is -already a section with that name. - - Return `NULL' and set `bfd_error' on error; possible errors are: - * `bfd_error_invalid_operation' - If output has already started for - ABFD. - - * `bfd_error_no_memory' - If memory allocation fails. - -2.6.5.7 `bfd_make_section' -.......................... - -*Synopsis* - asection *bfd_make_section (bfd *, const char *name); - *Description* -Like `bfd_make_section_anyway', but return `NULL' (without calling -bfd_set_error ()) without changing the section chain if there is -already a section named NAME. If there is an error, return `NULL' and -set `bfd_error'. - -2.6.5.8 `bfd_set_section_flags' -............................... - -*Synopsis* - bfd_boolean bfd_set_section_flags - (bfd *abfd, asection *sec, flagword flags); - *Description* -Set the attributes of the section SEC in the BFD ABFD to the value -FLAGS. Return `TRUE' on success, `FALSE' on error. Possible error -returns are: - - * `bfd_error_invalid_operation' - The section cannot have one or - more of the attributes requested. For example, a .bss section in - `a.out' may not have the `SEC_HAS_CONTENTS' field set. - -2.6.5.9 `bfd_map_over_sections' -............................... - -*Synopsis* - void bfd_map_over_sections - (bfd *abfd, - void (*func) (bfd *abfd, asection *sect, void *obj), - void *obj); - *Description* -Call the provided function FUNC for each section attached to the BFD -ABFD, passing OBJ as an argument. The function will be called as if by - - func (abfd, the_section, obj); - - This is the preferred method for iterating over sections; an -alternative would be to use a loop: - - section *p; - for (p = abfd->sections; p != NULL; p = p->next) - func (abfd, p, ...) - -2.6.5.10 `bfd_sections_find_if' -............................... - -*Synopsis* - asection *bfd_sections_find_if - (bfd *abfd, - bfd_boolean (*operation) (bfd *abfd, asection *sect, void *obj), - void *obj); - *Description* -Call the provided function OPERATION for each section attached to the -BFD ABFD, passing OBJ as an argument. The function will be called as if -by - - operation (abfd, the_section, obj); - - It returns the first section for which OPERATION returns true. - -2.6.5.11 `bfd_set_section_size' -............................... - -*Synopsis* - bfd_boolean bfd_set_section_size - (bfd *abfd, asection *sec, bfd_size_type val); - *Description* -Set SEC to the size VAL. If the operation is ok, then `TRUE' is -returned, else `FALSE'. - - Possible error returns: - * `bfd_error_invalid_operation' - Writing has started to the BFD, so - setting the size is invalid. - -2.6.5.12 `bfd_set_section_contents' -................................... - -*Synopsis* - bfd_boolean bfd_set_section_contents - (bfd *abfd, asection *section, const void *data, - file_ptr offset, bfd_size_type count); - *Description* -Sets the contents of the section SECTION in BFD ABFD to the data -starting in memory at DATA. The data is written to the output section -starting at offset OFFSET for COUNT octets. - - Normally `TRUE' is returned, else `FALSE'. Possible error returns -are: - * `bfd_error_no_contents' - The output section does not have the - `SEC_HAS_CONTENTS' attribute, so nothing can be written to it. - - * and some more too - This routine is front end to the back end function -`_bfd_set_section_contents'. - -2.6.5.13 `bfd_get_section_contents' -................................... - -*Synopsis* - bfd_boolean bfd_get_section_contents - (bfd *abfd, asection *section, void *location, file_ptr offset, - bfd_size_type count); - *Description* -Read data from SECTION in BFD ABFD into memory starting at LOCATION. -The data is read at an offset of OFFSET from the start of the input -section, and is read for COUNT bytes. - - If the contents of a constructor with the `SEC_CONSTRUCTOR' flag set -are requested or if the section does not have the `SEC_HAS_CONTENTS' -flag set, then the LOCATION is filled with zeroes. If no errors occur, -`TRUE' is returned, else `FALSE'. - -2.6.5.14 `bfd_malloc_and_get_section' -..................................... - -*Synopsis* - bfd_boolean bfd_malloc_and_get_section - (bfd *abfd, asection *section, bfd_byte **buf); - *Description* -Read all data from SECTION in BFD ABFD into a buffer, *BUF, malloc'd by -this function. - -2.6.5.15 `bfd_copy_private_section_data' -........................................ - -*Synopsis* - bfd_boolean bfd_copy_private_section_data - (bfd *ibfd, asection *isec, bfd *obfd, asection *osec); - *Description* -Copy private section information from ISEC in the BFD IBFD to the -section OSEC in the BFD OBFD. Return `TRUE' on success, `FALSE' on -error. Possible error returns are: - - * `bfd_error_no_memory' - Not enough memory exists to create private - data for OSEC. - - #define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \ - BFD_SEND (obfd, _bfd_copy_private_section_data, \ - (ibfd, isection, obfd, osection)) - -2.6.5.16 `_bfd_strip_section_from_output' -......................................... - -*Synopsis* - void _bfd_strip_section_from_output - (struct bfd_link_info *info, asection *section); - *Description* -Remove SECTION from the output. If the output section becomes empty, -remove it from the output bfd. - - This function won't actually do anything except twiddle flags if -called too late in the linking process, when it's not safe to remove -sections. - -2.6.5.17 `bfd_generic_is_group_section' -....................................... - -*Synopsis* - bfd_boolean bfd_generic_is_group_section (bfd *, const asection *sec); - *Description* -Returns TRUE if SEC is a member of a group. - -2.6.5.18 `bfd_generic_discard_group' -.................................... - -*Synopsis* - bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group); - *Description* -Remove all members of GROUP from the output. - - -File: bfd.info, Node: Symbols, Next: Archives, Prev: Sections, Up: BFD front end - -2.7 Symbols -=========== - -BFD tries to maintain as much symbol information as it can when it -moves information from file to file. BFD passes information to -applications though the `asymbol' structure. When the application -requests the symbol table, BFD reads the table in the native form and -translates parts of it into the internal format. To maintain more than -the information passed to applications, some targets keep some -information "behind the scenes" in a structure only the particular back -end knows about. For example, the coff back end keeps the original -symbol table structure as well as the canonical structure when a BFD is -read in. On output, the coff back end can reconstruct the output symbol -table so that no information is lost, even information unique to coff -which BFD doesn't know or understand. If a coff symbol table were read, -but were written through an a.out back end, all the coff specific -information would be lost. The symbol table of a BFD is not necessarily -read in until a canonicalize request is made. Then the BFD back end -fills in a table provided by the application with pointers to the -canonical information. To output symbols, the application provides BFD -with a table of pointers to pointers to `asymbol's. This allows -applications like the linker to output a symbol as it was read, since -the "behind the scenes" information will be still available. - -* Menu: - -* Reading Symbols:: -* Writing Symbols:: -* Mini Symbols:: -* typedef asymbol:: -* symbol handling functions:: - - -File: bfd.info, Node: Reading Symbols, Next: Writing Symbols, Prev: Symbols, Up: Symbols - -2.7.1 Reading symbols ---------------------- - -There are two stages to reading a symbol table from a BFD: allocating -storage, and the actual reading process. This is an excerpt from an -application which reads the symbol table: - - long storage_needed; - asymbol **symbol_table; - long number_of_symbols; - long i; - - storage_needed = bfd_get_symtab_upper_bound (abfd); - - if (storage_needed < 0) - FAIL - - if (storage_needed == 0) - return; - - symbol_table = xmalloc (storage_needed); - ... - number_of_symbols = - bfd_canonicalize_symtab (abfd, symbol_table); - - if (number_of_symbols < 0) - FAIL - - for (i = 0; i < number_of_symbols; i++) - process_symbol (symbol_table[i]); - - All storage for the symbols themselves is in an objalloc connected -to the BFD; it is freed when the BFD is closed. - - -File: bfd.info, Node: Writing Symbols, Next: Mini Symbols, Prev: Reading Symbols, Up: Symbols - -2.7.2 Writing symbols ---------------------- - -Writing of a symbol table is automatic when a BFD open for writing is -closed. The application attaches a vector of pointers to pointers to -symbols to the BFD being written, and fills in the symbol count. The -close and cleanup code reads through the table provided and performs -all the necessary operations. The BFD output code must always be -provided with an "owned" symbol: one which has come from another BFD, -or one which has been created using `bfd_make_empty_symbol'. Here is an -example showing the creation of a symbol table with only one element: - - #include "bfd.h" - int main (void) - { - bfd *abfd; - asymbol *ptrs[2]; - asymbol *new; - - abfd = bfd_openw ("foo","a.out-sunos-big"); - bfd_set_format (abfd, bfd_object); - new = bfd_make_empty_symbol (abfd); - new->name = "dummy_symbol"; - new->section = bfd_make_section_old_way (abfd, ".text"); - new->flags = BSF_GLOBAL; - new->value = 0x12345; - - ptrs[0] = new; - ptrs[1] = 0; - - bfd_set_symtab (abfd, ptrs, 1); - bfd_close (abfd); - return 0; - } - - ./makesym - nm foo - 00012345 A dummy_symbol - - Many formats cannot represent arbitrary symbol information; for -instance, the `a.out' object format does not allow an arbitrary number -of sections. A symbol pointing to a section which is not one of -`.text', `.data' or `.bss' cannot be described. - - -File: bfd.info, Node: Mini Symbols, Next: typedef asymbol, Prev: Writing Symbols, Up: Symbols - -2.7.3 Mini Symbols ------------------- - -Mini symbols provide read-only access to the symbol table. They use -less memory space, but require more time to access. They can be useful -for tools like nm or objdump, which may have to handle symbol tables of -extremely large executables. - - The `bfd_read_minisymbols' function will read the symbols into -memory in an internal form. It will return a `void *' pointer to a -block of memory, a symbol count, and the size of each symbol. The -pointer is allocated using `malloc', and should be freed by the caller -when it is no longer needed. - - The function `bfd_minisymbol_to_symbol' will take a pointer to a -minisymbol, and a pointer to a structure returned by -`bfd_make_empty_symbol', and return a `asymbol' structure. The return -value may or may not be the same as the value from -`bfd_make_empty_symbol' which was passed in. - - -File: bfd.info, Node: typedef asymbol, Next: symbol handling functions, Prev: Mini Symbols, Up: Symbols - -2.7.4 typedef asymbol ---------------------- - -An `asymbol' has the form: - - - typedef struct bfd_symbol - { - /* A pointer to the BFD which owns the symbol. This information - is necessary so that a back end can work out what additional - information (invisible to the application writer) is carried - with the symbol. - - This field is *almost* redundant, since you can use section->owner - instead, except that some symbols point to the global sections - bfd_{abs,com,und}_section. This could be fixed by making - these globals be per-bfd (or per-target-flavor). FIXME. */ - struct bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field. */ - - /* The text of the symbol. The name is left alone, and not copied; the - application may not alter it. */ - const char *name; - - /* The value of the symbol. This really should be a union of a - numeric value with a pointer, since some flags indicate that - a pointer to another symbol is stored here. */ - symvalue value; - - /* Attributes of a symbol. */ - #define BSF_NO_FLAGS 0x00 - - /* The symbol has local scope; `static' in `C'. The value - is the offset into the section of the data. */ - #define BSF_LOCAL 0x01 - - /* The symbol has global scope; initialized data in `C'. The - value is the offset into the section of the data. */ - #define BSF_GLOBAL 0x02 - - /* The symbol has global scope and is exported. The value is - the offset into the section of the data. */ - #define BSF_EXPORT BSF_GLOBAL /* No real difference. */ - - /* A normal C symbol would be one of: - `BSF_LOCAL', `BSF_FORT_COMM', `BSF_UNDEFINED' or - `BSF_GLOBAL'. */ - - /* The symbol is a debugging record. The value has an arbitrary - meaning, unless BSF_DEBUGGING_RELOC is also set. */ - #define BSF_DEBUGGING 0x08 - - /* The symbol denotes a function entry point. Used in ELF, - perhaps others someday. */ - #define BSF_FUNCTION 0x10 - - /* Used by the linker. */ - #define BSF_KEEP 0x20 - #define BSF_KEEP_G 0x40 - - /* A weak global symbol, overridable without warnings by - a regular global symbol of the same name. */ - #define BSF_WEAK 0x80 - - /* This symbol was created to point to a section, e.g. ELF's - STT_SECTION symbols. */ - #define BSF_SECTION_SYM 0x100 - - /* The symbol used to be a common symbol, but now it is - allocated. */ - #define BSF_OLD_COMMON 0x200 - - /* The default value for common data. */ - #define BFD_FORT_COMM_DEFAULT_VALUE 0 - - /* In some files the type of a symbol sometimes alters its - location in an output file - ie in coff a `ISFCN' symbol - which is also `C_EXT' symbol appears where it was - declared and not at the end of a section. This bit is set - by the target BFD part to convey this information. */ - #define BSF_NOT_AT_END 0x400 - - /* Signal that the symbol is the label of constructor section. */ - #define BSF_CONSTRUCTOR 0x800 - - /* Signal that the symbol is a warning symbol. The name is a - warning. The name of the next symbol is the one to warn about; - if a reference is made to a symbol with the same name as the next - symbol, a warning is issued by the linker. */ - #define BSF_WARNING 0x1000 - - /* Signal that the symbol is indirect. This symbol is an indirect - pointer to the symbol with the same name as the next symbol. */ - #define BSF_INDIRECT 0x2000 - - /* BSF_FILE marks symbols that contain a file name. This is used - for ELF STT_FILE symbols. */ - #define BSF_FILE 0x4000 - - /* Symbol is from dynamic linking information. */ - #define BSF_DYNAMIC 0x8000 - - /* The symbol denotes a data object. Used in ELF, and perhaps - others someday. */ - #define BSF_OBJECT 0x10000 - - /* This symbol is a debugging symbol. The value is the offset - into the section of the data. BSF_DEBUGGING should be set - as well. */ - #define BSF_DEBUGGING_RELOC 0x20000 - - /* This symbol is thread local. Used in ELF. */ - #define BSF_THREAD_LOCAL 0x40000 - - flagword flags; - - /* A pointer to the section to which this symbol is - relative. This will always be non NULL, there are special - sections for undefined and absolute symbols. */ - struct bfd_section *section; - - /* Back end special data. */ - union - { - void *p; - bfd_vma i; - } - udata; - } - asymbol; - - -File: bfd.info, Node: symbol handling functions, Prev: typedef asymbol, Up: Symbols - -2.7.5 Symbol handling functions -------------------------------- - -2.7.5.1 `bfd_get_symtab_upper_bound' -.................................... - -*Description* -Return the number of bytes required to store a vector of pointers to -`asymbols' for all the symbols in the BFD ABFD, including a terminal -NULL pointer. If there are no symbols in the BFD, then return 0. If an -error occurs, return -1. - #define bfd_get_symtab_upper_bound(abfd) \ - BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd)) - -2.7.5.2 `bfd_is_local_label' -............................ - -*Synopsis* - bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym); - *Description* -Return TRUE if the given symbol SYM in the BFD ABFD is a compiler -generated local label, else return FALSE. - -2.7.5.3 `bfd_is_local_label_name' -................................. - -*Synopsis* - bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name); - *Description* -Return TRUE if a symbol with the name NAME in the BFD ABFD is a -compiler generated local label, else return FALSE. This just checks -whether the name has the form of a local label. - #define bfd_is_local_label_name(abfd, name) \ - BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name)) - -2.7.5.4 `bfd_is_target_special_symbol' -...................................... - -*Synopsis* - bfd_boolean bfd_is_target_special_symbol (bfd *abfd, asymbol *sym); - *Description* -Return TRUE iff a symbol SYM in the BFD ABFD is something special to -the particular target represented by the BFD. Such symbols should -normally not be mentioned to the user. - #define bfd_is_target_special_symbol(abfd, sym) \ - BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym)) - -2.7.5.5 `bfd_canonicalize_symtab' -................................. - -*Description* -Read the symbols from the BFD ABFD, and fills in the vector LOCATION -with pointers to the symbols and a trailing NULL. Return the actual -number of symbol pointers, not including the NULL. - #define bfd_canonicalize_symtab(abfd, location) \ - BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location)) - -2.7.5.6 `bfd_set_symtab' -........................ - -*Synopsis* - bfd_boolean bfd_set_symtab - (bfd *abfd, asymbol **location, unsigned int count); - *Description* -Arrange that when the output BFD ABFD is closed, the table LOCATION of -COUNT pointers to symbols will be written. - -2.7.5.7 `bfd_print_symbol_vandf' -................................ - -*Synopsis* - void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol); - *Description* -Print the value and flags of the SYMBOL supplied to the stream FILE. - -2.7.5.8 `bfd_make_empty_symbol' -............................... - -*Description* -Create a new `asymbol' structure for the BFD ABFD and return a pointer -to it. - - This routine is necessary because each back end has private -information surrounding the `asymbol'. Building your own `asymbol' and -pointing to it will not create the private information, and will cause -problems later on. - #define bfd_make_empty_symbol(abfd) \ - BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd)) - -2.7.5.9 `_bfd_generic_make_empty_symbol' -........................................ - -*Synopsis* - asymbol *_bfd_generic_make_empty_symbol (bfd *); - *Description* -Create a new `asymbol' structure for the BFD ABFD and return a pointer -to it. Used by core file routines, binary back-end and anywhere else -where no private info is needed. - -2.7.5.10 `bfd_make_debug_symbol' -................................ - -*Description* -Create a new `asymbol' structure for the BFD ABFD, to be used as a -debugging symbol. Further details of its use have yet to be worked out. - #define bfd_make_debug_symbol(abfd,ptr,size) \ - BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size)) - -2.7.5.11 `bfd_decode_symclass' -.............................. - -*Description* -Return a character corresponding to the symbol class of SYMBOL, or '?' -for an unknown class. - - *Synopsis* - int bfd_decode_symclass (asymbol *symbol); - -2.7.5.12 `bfd_is_undefined_symclass' -.................................... - -*Description* -Returns non-zero if the class symbol returned by bfd_decode_symclass -represents an undefined symbol. Returns zero otherwise. - - *Synopsis* - bfd_boolean bfd_is_undefined_symclass (int symclass); - -2.7.5.13 `bfd_symbol_info' -.......................... - -*Description* -Fill in the basic info about symbol that nm needs. Additional info may -be added by the back-ends after calling this function. - - *Synopsis* - void bfd_symbol_info (asymbol *symbol, symbol_info *ret); - -2.7.5.14 `bfd_copy_private_symbol_data' -....................................... - -*Synopsis* - bfd_boolean bfd_copy_private_symbol_data - (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym); - *Description* -Copy private symbol information from ISYM in the BFD IBFD to the symbol -OSYM in the BFD OBFD. Return `TRUE' on success, `FALSE' on error. -Possible error returns are: - - * `bfd_error_no_memory' - Not enough memory exists to create private - data for OSEC. - - #define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \ - BFD_SEND (obfd, _bfd_copy_private_symbol_data, \ - (ibfd, isymbol, obfd, osymbol)) - - -File: bfd.info, Node: Archives, Next: Formats, Prev: Symbols, Up: BFD front end - -2.8 Archives -============ - -*Description* -An archive (or library) is just another BFD. It has a symbol table, -although there's not much a user program will do with it. - - The big difference between an archive BFD and an ordinary BFD is -that the archive doesn't have sections. Instead it has a chain of BFDs -that are considered its contents. These BFDs can be manipulated like -any other. The BFDs contained in an archive opened for reading will -all be opened for reading. You may put either input or output BFDs -into an archive opened for output; they will be handled correctly when -the archive is closed. - - Use `bfd_openr_next_archived_file' to step through the contents of -an archive opened for input. You don't have to read the entire archive -if you don't want to! Read it until you find what you want. - - Archive contents of output BFDs are chained through the `next' -pointer in a BFD. The first one is findable through the `archive_head' -slot of the archive. Set it with `bfd_set_archive_head' (q.v.). A -given BFD may be in only one open output archive at a time. - - As expected, the BFD archive code is more general than the archive -code of any given environment. BFD archives may contain files of -different formats (e.g., a.out and coff) and even different -architectures. You may even place archives recursively into archives! - - This can cause unexpected confusion, since some archive formats are -more expressive than others. For instance, Intel COFF archives can -preserve long filenames; SunOS a.out archives cannot. If you move a -file from the first to the second format and back again, the filename -may be truncated. Likewise, different a.out environments have different -conventions as to how they truncate filenames, whether they preserve -directory names in filenames, etc. When interoperating with native -tools, be sure your files are homogeneous. - - Beware: most of these formats do not react well to the presence of -spaces in filenames. We do the best we can, but can't always handle -this case due to restrictions in the format of archives. Many Unix -utilities are braindead in regards to spaces and such in filenames -anyway, so this shouldn't be much of a restriction. - - Archives are supported in BFD in `archive.c'. - -2.8.0.1 `bfd_get_next_mapent' -............................. - -*Synopsis* - symindex bfd_get_next_mapent - (bfd *abfd, symindex previous, carsym **sym); - *Description* -Step through archive ABFD's symbol table (if it has one). Successively -update SYM with the next symbol's information, returning that symbol's -(internal) index into the symbol table. - - Supply `BFD_NO_MORE_SYMBOLS' as the PREVIOUS entry to get the first -one; returns `BFD_NO_MORE_SYMBOLS' when you've already got the last one. - - A `carsym' is a canonical archive symbol. The only user-visible -element is its name, a null-terminated string. - -2.8.0.2 `bfd_set_archive_head' -.............................. - -*Synopsis* - bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head); - *Description* -Set the head of the chain of BFDs contained in the archive OUTPUT to -NEW_HEAD. - -2.8.0.3 `bfd_openr_next_archived_file' -...................................... - -*Synopsis* - bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous); - *Description* -Provided a BFD, ARCHIVE, containing an archive and NULL, open an input -BFD on the first contained element and returns that. Subsequent calls -should pass the archive and the previous return value to return a -created BFD to the next contained element. NULL is returned when there -are no more. - - -File: bfd.info, Node: Formats, Next: Relocations, Prev: Archives, Up: BFD front end - -2.9 File formats -================ - -A format is a BFD concept of high level file contents type. The formats -supported by BFD are: - - * `bfd_object' - The BFD may contain data, symbols, relocations and debug info. - - * `bfd_archive' - The BFD contains other BFDs and an optional index. - - * `bfd_core' - The BFD contains the result of an executable core dump. - -2.9.0.1 `bfd_check_format' -.......................... - -*Synopsis* - bfd_boolean bfd_check_format (bfd *abfd, bfd_format format); - *Description* -Verify if the file attached to the BFD ABFD is compatible with the -format FORMAT (i.e., one of `bfd_object', `bfd_archive' or `bfd_core'). - - If the BFD has been set to a specific target before the call, only -the named target and format combination is checked. If the target has -not been set, or has been set to `default', then all the known target -backends is interrogated to determine a match. If the default target -matches, it is used. If not, exactly one target must recognize the -file, or an error results. - - The function returns `TRUE' on success, otherwise `FALSE' with one -of the following error codes: - - * `bfd_error_invalid_operation' - if `format' is not one of - `bfd_object', `bfd_archive' or `bfd_core'. - - * `bfd_error_system_call' - if an error occured during a read - even - some file mismatches can cause bfd_error_system_calls. - - * `file_not_recognised' - none of the backends recognised the file - format. - - * `bfd_error_file_ambiguously_recognized' - more than one backend - recognised the file format. - -2.9.0.2 `bfd_check_format_matches' -.................................. - -*Synopsis* - bfd_boolean bfd_check_format_matches - (bfd *abfd, bfd_format format, char ***matching); - *Description* -Like `bfd_check_format', except when it returns FALSE with `bfd_errno' -set to `bfd_error_file_ambiguously_recognized'. In that case, if -MATCHING is not NULL, it will be filled in with a NULL-terminated list -of the names of the formats that matched, allocated with `malloc'. -Then the user may choose a format and try again. - - When done with the list that MATCHING points to, the caller should -free it. - -2.9.0.3 `bfd_set_format' -........................ - -*Synopsis* - bfd_boolean bfd_set_format (bfd *abfd, bfd_format format); - *Description* -This function sets the file format of the BFD ABFD to the format -FORMAT. If the target set in the BFD does not support the format -requested, the format is invalid, or the BFD is not open for writing, -then an error occurs. - -2.9.0.4 `bfd_format_string' -........................... - -*Synopsis* - const char *bfd_format_string (bfd_format format); - *Description* -Return a pointer to a const string `invalid', `object', `archive', -`core', or `unknown', depending upon the value of FORMAT. - - -File: bfd.info, Node: Relocations, Next: Core Files, Prev: Formats, Up: BFD front end - -2.10 Relocations -================ - -BFD maintains relocations in much the same way it maintains symbols: -they are left alone until required, then read in en-masse and -translated into an internal form. A common routine -`bfd_perform_relocation' acts upon the canonical form to do the fixup. - - Relocations are maintained on a per section basis, while symbols are -maintained on a per BFD basis. - - All that a back end has to do to fit the BFD interface is to create -a `struct reloc_cache_entry' for each relocation in a particular -section, and fill in the right bits of the structures. - -* Menu: - -* typedef arelent:: -* howto manager:: - - -File: bfd.info, Node: typedef arelent, Next: howto manager, Prev: Relocations, Up: Relocations - -2.10.1 typedef arelent ----------------------- - -This is the structure of a relocation entry: - - - typedef enum bfd_reloc_status - { - /* No errors detected. */ - bfd_reloc_ok, - - /* The relocation was performed, but there was an overflow. */ - bfd_reloc_overflow, - - /* The address to relocate was not within the section supplied. */ - bfd_reloc_outofrange, - - /* Used by special functions. */ - bfd_reloc_continue, - - /* Unsupported relocation size requested. */ - bfd_reloc_notsupported, - - /* Unused. */ - bfd_reloc_other, - - /* The symbol to relocate against was undefined. */ - bfd_reloc_undefined, - - /* The relocation was performed, but may not be ok - presently - generated only when linking i960 coff files with i960 b.out - symbols. If this type is returned, the error_message argument - to bfd_perform_relocation will be set. */ - bfd_reloc_dangerous - } - bfd_reloc_status_type; - - - typedef struct reloc_cache_entry - { - /* A pointer into the canonical table of pointers. */ - struct bfd_symbol **sym_ptr_ptr; - - /* offset in section. */ - bfd_size_type address; - - /* addend for relocation value. */ - bfd_vma addend; - - /* Pointer to how to perform the required relocation. */ - reloc_howto_type *howto; - - } - arelent; - *Description* -Here is a description of each of the fields within an `arelent': - - * `sym_ptr_ptr' - The symbol table pointer points to a pointer to the symbol -associated with the relocation request. It is the pointer into the -table returned by the back end's `canonicalize_symtab' action. *Note -Symbols::. The symbol is referenced through a pointer to a pointer so -that tools like the linker can fix up all the symbols of the same name -by modifying only one pointer. The relocation routine looks in the -symbol and uses the base of the section the symbol is attached to and -the value of the symbol as the initial relocation offset. If the symbol -pointer is zero, then the section provided is looked up. - - * `address' - The `address' field gives the offset in bytes from the base of the -section data which owns the relocation record to the first byte of -relocatable information. The actual data relocated will be relative to -this point; for example, a relocation type which modifies the bottom -two bytes of a four byte word would not touch the first byte pointed to -in a big endian world. - - * `addend' - The `addend' is a value provided by the back end to be added (!) to -the relocation offset. Its interpretation is dependent upon the howto. -For example, on the 68k the code: - - char foo[]; - main() - { - return foo[0x12345678]; - } - - Could be compiled into: - - linkw fp,#-4 - moveb @#12345678,d0 - extbl d0 - unlk fp - rts - - This could create a reloc pointing to `foo', but leave the offset in -the data, something like: - - RELOCATION RECORDS FOR [.text]: - offset type value - 00000006 32 _foo - - 00000000 4e56 fffc ; linkw fp,#-4 - 00000004 1039 1234 5678 ; moveb @#12345678,d0 - 0000000a 49c0 ; extbl d0 - 0000000c 4e5e ; unlk fp - 0000000e 4e75 ; rts - - Using coff and an 88k, some instructions don't have enough space in -them to represent the full address range, and pointers have to be -loaded in two parts. So you'd get something like: - - or.u r13,r0,hi16(_foo+0x12345678) - ld.b r2,r13,lo16(_foo+0x12345678) - jmp r1 - - This should create two relocs, both pointing to `_foo', and with -0x12340000 in their addend field. The data would consist of: - - RELOCATION RECORDS FOR [.text]: - offset type value - 00000002 HVRT16 _foo+0x12340000 - 00000006 LVRT16 _foo+0x12340000 - - 00000000 5da05678 ; or.u r13,r0,0x5678 - 00000004 1c4d5678 ; ld.b r2,r13,0x5678 - 00000008 f400c001 ; jmp r1 - - The relocation routine digs out the value from the data, adds it to -the addend to get the original offset, and then adds the value of -`_foo'. Note that all 32 bits have to be kept around somewhere, to cope -with carry from bit 15 to bit 16. - - One further example is the sparc and the a.out format. The sparc has -a similar problem to the 88k, in that some instructions don't have room -for an entire offset, but on the sparc the parts are created in odd -sized lumps. The designers of the a.out format chose to not use the -data within the section for storing part of the offset; all the offset -is kept within the reloc. Anything in the data should be ignored. - - save %sp,-112,%sp - sethi %hi(_foo+0x12345678),%g2 - ldsb [%g2+%lo(_foo+0x12345678)],%i0 - ret - restore - - Both relocs contain a pointer to `foo', and the offsets contain junk. - - RELOCATION RECORDS FOR [.text]: - offset type value - 00000004 HI22 _foo+0x12345678 - 00000008 LO10 _foo+0x12345678 - - 00000000 9de3bf90 ; save %sp,-112,%sp - 00000004 05000000 ; sethi %hi(_foo+0),%g2 - 00000008 f048a000 ; ldsb [%g2+%lo(_foo+0)],%i0 - 0000000c 81c7e008 ; ret - 00000010 81e80000 ; restore - - * `howto' - The `howto' field can be imagined as a relocation instruction. It is -a pointer to a structure which contains information on what to do with -all of the other information in the reloc record and data section. A -back end would normally have a relocation instruction set and turn -relocations into pointers to the correct structure on input - but it -would be possible to create each howto field on demand. - -2.10.1.1 `enum complain_overflow' -................................. - -Indicates what sort of overflow checking should be done when performing -a relocation. - - - enum complain_overflow - { - /* Do not complain on overflow. */ - complain_overflow_dont, - - /* Complain if the bitfield overflows, whether it is considered - as signed or unsigned. */ - complain_overflow_bitfield, - - /* Complain if the value overflows when considered as signed - number. */ - complain_overflow_signed, - - /* Complain if the value overflows when considered as an - unsigned number. */ - complain_overflow_unsigned - }; - -2.10.1.2 `reloc_howto_type' -........................... - -The `reloc_howto_type' is a structure which contains all the -information that libbfd needs to know to tie up a back end's data. - - struct bfd_symbol; /* Forward declaration. */ - - struct reloc_howto_struct - { - /* The type field has mainly a documentary use - the back end can - do what it wants with it, though normally the back end's - external idea of what a reloc number is stored - in this field. For example, a PC relative word relocation - in a coff environment has the type 023 - because that's - what the outside world calls a R_PCRWORD reloc. */ - unsigned int type; - - /* The value the final relocation is shifted right by. This drops - unwanted data from the relocation. */ - unsigned int rightshift; - - /* The size of the item to be relocated. This is *not* a - power-of-two measure. To get the number of bytes operated - on by a type of relocation, use bfd_get_reloc_size. */ - int size; - - /* The number of bits in the item to be relocated. This is used - when doing overflow checking. */ - unsigned int bitsize; - - /* Notes that the relocation is relative to the location in the - data section of the addend. The relocation function will - subtract from the relocation value the address of the location - being relocated. */ - bfd_boolean pc_relative; - - /* The bit position of the reloc value in the destination. - The relocated value is left shifted by this amount. */ - unsigned int bitpos; - - /* What type of overflow error should be checked for when - relocating. */ - enum complain_overflow complain_on_overflow; - - /* If this field is non null, then the supplied function is - called rather than the normal function. This allows really - strange relocation methods to be accommodated (e.g., i960 callj - instructions). */ - bfd_reloc_status_type (*special_function) - (bfd *, arelent *, struct bfd_symbol *, void *, asection *, - bfd *, char **); - - /* The textual name of the relocation type. */ - char *name; - - /* Some formats record a relocation addend in the section contents - rather than with the relocation. For ELF formats this is the - distinction between USE_REL and USE_RELA (though the code checks - for USE_REL == 1/0). The value of this field is TRUE if the - addend is recorded with the section contents; when performing a - partial link (ld -r) the section contents (the data) will be - modified. The value of this field is FALSE if addends are - recorded with the relocation (in arelent.addend); when performing - a partial link the relocation will be modified. - All relocations for all ELF USE_RELA targets should set this field - to FALSE (values of TRUE should be looked on with suspicion). - However, the converse is not true: not all relocations of all ELF - USE_REL targets set this field to TRUE. Why this is so is peculiar - to each particular target. For relocs that aren't used in partial - links (e.g. GOT stuff) it doesn't matter what this is set to. */ - bfd_boolean partial_inplace; - - /* src_mask selects the part of the instruction (or data) to be used - in the relocation sum. If the target relocations don't have an - addend in the reloc, eg. ELF USE_REL, src_mask will normally equal - dst_mask to extract the addend from the section contents. If - relocations do have an addend in the reloc, eg. ELF USE_RELA, this - field should be zero. Non-zero values for ELF USE_RELA targets are - bogus as in those cases the value in the dst_mask part of the - section contents should be treated as garbage. */ - bfd_vma src_mask; - - /* dst_mask selects which parts of the instruction (or data) are - replaced with a relocated value. */ - bfd_vma dst_mask; - - /* When some formats create PC relative instructions, they leave - the value of the pc of the place being relocated in the offset - slot of the instruction, so that a PC relative relocation can - be made just by adding in an ordinary offset (e.g., sun3 a.out). - Some formats leave the displacement part of an instruction - empty (e.g., m88k bcs); this flag signals the fact. */ - bfd_boolean pcrel_offset; - }; - -2.10.1.3 `The HOWTO Macro' -.......................... - -*Description* -The HOWTO define is horrible and will go away. - #define HOWTO(C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \ - { (unsigned) C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC } - - *Description* -And will be replaced with the totally magic way. But for the moment, we -are compatible, so do it this way. - #define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \ - HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \ - NAME, FALSE, 0, 0, IN) - - *Description* -This is used to fill in an empty howto entry in an array. - #define EMPTY_HOWTO(C) \ - HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \ - NULL, FALSE, 0, 0, FALSE) - - *Description* -Helper routine to turn a symbol into a relocation value. - #define HOWTO_PREPARE(relocation, symbol) \ - { \ - if (symbol != NULL) \ - { \ - if (bfd_is_com_section (symbol->section)) \ - { \ - relocation = 0; \ - } \ - else \ - { \ - relocation = symbol->value; \ - } \ - } \ - } - -2.10.1.4 `bfd_get_reloc_size' -............................. - -*Synopsis* - unsigned int bfd_get_reloc_size (reloc_howto_type *); - *Description* -For a reloc_howto_type that operates on a fixed number of bytes, this -returns the number of bytes operated on. - -2.10.1.5 `arelent_chain' -........................ - -*Description* -How relocs are tied together in an `asection': - typedef struct relent_chain - { - arelent relent; - struct relent_chain *next; - } - arelent_chain; - -2.10.1.6 `bfd_check_overflow' -............................. - -*Synopsis* - bfd_reloc_status_type bfd_check_overflow - (enum complain_overflow how, - unsigned int bitsize, - unsigned int rightshift, - unsigned int addrsize, - bfd_vma relocation); - *Description* -Perform overflow checking on RELOCATION which has BITSIZE significant -bits and will be shifted right by RIGHTSHIFT bits, on a machine with -addresses containing ADDRSIZE significant bits. The result is either of -`bfd_reloc_ok' or `bfd_reloc_overflow'. - -2.10.1.7 `bfd_perform_relocation' -................................. - -*Synopsis* - bfd_reloc_status_type bfd_perform_relocation - (bfd *abfd, - arelent *reloc_entry, - void *data, - asection *input_section, - bfd *output_bfd, - char **error_message); - *Description* -If OUTPUT_BFD is supplied to this function, the generated image will be -relocatable; the relocations are copied to the output file after they -have been changed to reflect the new state of the world. There are two -ways of reflecting the results of partial linkage in an output file: by -modifying the output data in place, and by modifying the relocation -record. Some native formats (e.g., basic a.out and basic coff) have no -way of specifying an addend in the relocation type, so the addend has -to go in the output data. This is no big deal since in these formats -the output data slot will always be big enough for the addend. Complex -reloc types with addends were invented to solve just this problem. The -ERROR_MESSAGE argument is set to an error message if this return -`bfd_reloc_dangerous'. - -2.10.1.8 `bfd_install_relocation' -................................. - -*Synopsis* - bfd_reloc_status_type bfd_install_relocation - (bfd *abfd, - arelent *reloc_entry, - void *data, bfd_vma data_start, - asection *input_section, - char **error_message); - *Description* -This looks remarkably like `bfd_perform_relocation', except it does not -expect that the section contents have been filled in. I.e., it's -suitable for use when creating, rather than applying a relocation. - - For now, this function should be considered reserved for the -assembler. - - -File: bfd.info, Node: howto manager, Prev: typedef arelent, Up: Relocations - -2.11 The howto manager -====================== - -When an application wants to create a relocation, but doesn't know what -the target machine might call it, it can find out by using this bit of -code. - -2.11.0.1 `bfd_reloc_code_type' -.............................. - -*Description* -The insides of a reloc code. The idea is that, eventually, there will -be one enumerator for every type of relocation we ever do. Pass one of -these values to `bfd_reloc_type_lookup', and it'll return a howto -pointer. - - This does mean that the application must determine the correct -enumerator value; you can't get a howto pointer from a random set of -attributes. - - Here are the possible values for `enum bfd_reloc_code_real': - - -- : BFD_RELOC_64 - -- : BFD_RELOC_32 - -- : BFD_RELOC_26 - -- : BFD_RELOC_24 - -- : BFD_RELOC_16 - -- : BFD_RELOC_14 - -- : BFD_RELOC_8 - Basic absolute relocations of N bits. - - -- : BFD_RELOC_64_PCREL - -- : BFD_RELOC_32_PCREL - -- : BFD_RELOC_24_PCREL - -- : BFD_RELOC_16_PCREL - -- : BFD_RELOC_12_PCREL - -- : BFD_RELOC_8_PCREL - PC-relative relocations. Sometimes these are relative to the - address of the relocation itself; sometimes they are relative to - the start of the section containing the relocation. It depends on - the specific target. - - The 24-bit relocation is used in some Intel 960 configurations. - - -- : BFD_RELOC_32_SECREL - Section relative relocations. Some targets need this for DWARF2. - - -- : BFD_RELOC_32_GOT_PCREL - -- : BFD_RELOC_16_GOT_PCREL - -- : BFD_RELOC_8_GOT_PCREL - -- : BFD_RELOC_32_GOTOFF - -- : BFD_RELOC_16_GOTOFF - -- : BFD_RELOC_LO16_GOTOFF - -- : BFD_RELOC_HI16_GOTOFF - -- : BFD_RELOC_HI16_S_GOTOFF - -- : BFD_RELOC_8_GOTOFF - -- : BFD_RELOC_64_PLT_PCREL - -- : BFD_RELOC_32_PLT_PCREL - -- : BFD_RELOC_24_PLT_PCREL - -- : BFD_RELOC_16_PLT_PCREL - -- : BFD_RELOC_8_PLT_PCREL - -- : BFD_RELOC_64_PLTOFF - -- : BFD_RELOC_32_PLTOFF - -- : BFD_RELOC_16_PLTOFF - -- : BFD_RELOC_LO16_PLTOFF - -- : BFD_RELOC_HI16_PLTOFF - -- : BFD_RELOC_HI16_S_PLTOFF - -- : BFD_RELOC_8_PLTOFF - For ELF. - - -- : BFD_RELOC_68K_GLOB_DAT - -- : BFD_RELOC_68K_JMP_SLOT - -- : BFD_RELOC_68K_RELATIVE - Relocations used by 68K ELF. - - -- : BFD_RELOC_32_BASEREL - -- : BFD_RELOC_16_BASEREL - -- : BFD_RELOC_LO16_BASEREL - -- : BFD_RELOC_HI16_BASEREL - -- : BFD_RELOC_HI16_S_BASEREL - -- : BFD_RELOC_8_BASEREL - -- : BFD_RELOC_RVA - Linkage-table relative. - - -- : BFD_RELOC_8_FFnn - Absolute 8-bit relocation, but used to form an address like 0xFFnn. - - -- : BFD_RELOC_32_PCREL_S2 - -- : BFD_RELOC_16_PCREL_S2 - -- : BFD_RELOC_23_PCREL_S2 - These PC-relative relocations are stored as word displacements - - i.e., byte displacements shifted right two bits. The 30-bit word - displacement (<<32_PCREL_S2>> - 32 bits, shifted 2) is used on the - SPARC. (SPARC tools generally refer to this as <>.) The - signed 16-bit displacement is used on the MIPS, and the 23-bit - displacement is used on the Alpha. - - -- : BFD_RELOC_HI22 - -- : BFD_RELOC_LO10 - High 22 bits and low 10 bits of 32-bit value, placed into lower - bits of the target word. These are used on the SPARC. - - -- : BFD_RELOC_GPREL16 - -- : BFD_RELOC_GPREL32 - For systems that allocate a Global Pointer register, these are - displacements off that register. These relocation types are - handled specially, because the value the register will have is - decided relatively late. - - -- : BFD_RELOC_I960_CALLJ - Reloc types used for i960/b.out. - - -- : BFD_RELOC_NONE - -- : BFD_RELOC_SPARC_WDISP22 - -- : BFD_RELOC_SPARC22 - -- : BFD_RELOC_SPARC13 - -- : BFD_RELOC_SPARC_GOT10 - -- : BFD_RELOC_SPARC_GOT13 - -- : BFD_RELOC_SPARC_GOT22 - -- : BFD_RELOC_SPARC_PC10 - -- : BFD_RELOC_SPARC_PC22 - -- : BFD_RELOC_SPARC_WPLT30 - -- : BFD_RELOC_SPARC_COPY - -- : BFD_RELOC_SPARC_GLOB_DAT - -- : BFD_RELOC_SPARC_JMP_SLOT - -- : BFD_RELOC_SPARC_RELATIVE - -- : BFD_RELOC_SPARC_UA16 - -- : BFD_RELOC_SPARC_UA32 - -- : BFD_RELOC_SPARC_UA64 - SPARC ELF relocations. There is probably some overlap with other - relocation types already defined. - - -- : BFD_RELOC_SPARC_BASE13 - -- : BFD_RELOC_SPARC_BASE22 - I think these are specific to SPARC a.out (e.g., Sun 4). - - -- : BFD_RELOC_SPARC_64 - -- : BFD_RELOC_SPARC_10 - -- : BFD_RELOC_SPARC_11 - -- : BFD_RELOC_SPARC_OLO10 - -- : BFD_RELOC_SPARC_HH22 - -- : BFD_RELOC_SPARC_HM10 - -- : BFD_RELOC_SPARC_LM22 - -- : BFD_RELOC_SPARC_PC_HH22 - -- : BFD_RELOC_SPARC_PC_HM10 - -- : BFD_RELOC_SPARC_PC_LM22 - -- : BFD_RELOC_SPARC_WDISP16 - -- : BFD_RELOC_SPARC_WDISP19 - -- : BFD_RELOC_SPARC_7 - -- : BFD_RELOC_SPARC_6 - -- : BFD_RELOC_SPARC_5 - -- : BFD_RELOC_SPARC_DISP64 - -- : BFD_RELOC_SPARC_PLT32 - -- : BFD_RELOC_SPARC_PLT64 - -- : BFD_RELOC_SPARC_HIX22 - -- : BFD_RELOC_SPARC_LOX10 - -- : BFD_RELOC_SPARC_H44 - -- : BFD_RELOC_SPARC_M44 - -- : BFD_RELOC_SPARC_L44 - -- : BFD_RELOC_SPARC_REGISTER - SPARC64 relocations - - -- : BFD_RELOC_SPARC_REV32 - SPARC little endian relocation - - -- : BFD_RELOC_SPARC_TLS_GD_HI22 - -- : BFD_RELOC_SPARC_TLS_GD_LO10 - -- : BFD_RELOC_SPARC_TLS_GD_ADD - -- : BFD_RELOC_SPARC_TLS_GD_CALL - -- : BFD_RELOC_SPARC_TLS_LDM_HI22 - -- : BFD_RELOC_SPARC_TLS_LDM_LO10 - -- : BFD_RELOC_SPARC_TLS_LDM_ADD - -- : BFD_RELOC_SPARC_TLS_LDM_CALL - -- : BFD_RELOC_SPARC_TLS_LDO_HIX22 - -- : BFD_RELOC_SPARC_TLS_LDO_LOX10 - -- : BFD_RELOC_SPARC_TLS_LDO_ADD - -- : BFD_RELOC_SPARC_TLS_IE_HI22 - -- : BFD_RELOC_SPARC_TLS_IE_LO10 - -- : BFD_RELOC_SPARC_TLS_IE_LD - -- : BFD_RELOC_SPARC_TLS_IE_LDX - -- : BFD_RELOC_SPARC_TLS_IE_ADD - -- : BFD_RELOC_SPARC_TLS_LE_HIX22 - -- : BFD_RELOC_SPARC_TLS_LE_LOX10 - -- : BFD_RELOC_SPARC_TLS_DTPMOD32 - -- : BFD_RELOC_SPARC_TLS_DTPMOD64 - -- : BFD_RELOC_SPARC_TLS_DTPOFF32 - -- : BFD_RELOC_SPARC_TLS_DTPOFF64 - -- : BFD_RELOC_SPARC_TLS_TPOFF32 - -- : BFD_RELOC_SPARC_TLS_TPOFF64 - SPARC TLS relocations - - -- : BFD_RELOC_ALPHA_GPDISP_HI16 - Alpha ECOFF and ELF relocations. Some of these treat the symbol or - "addend" in some special way. For GPDISP_HI16 ("gpdisp") - relocations, the symbol is ignored when writing; when reading, it - will be the absolute section symbol. The addend is the - displacement in bytes of the "lda" instruction from the "ldah" - instruction (which is at the address of this reloc). - - -- : BFD_RELOC_ALPHA_GPDISP_LO16 - For GPDISP_LO16 ("ignore") relocations, the symbol is handled as - with GPDISP_HI16 relocs. The addend is ignored when writing the - relocations out, and is filled in with the file's GP value on - reading, for convenience. - - -- : BFD_RELOC_ALPHA_GPDISP - The ELF GPDISP relocation is exactly the same as the GPDISP_HI16 - relocation except that there is no accompanying GPDISP_LO16 - relocation. - - -- : BFD_RELOC_ALPHA_LITERAL - -- : BFD_RELOC_ALPHA_ELF_LITERAL - -- : BFD_RELOC_ALPHA_LITUSE - The Alpha LITERAL/LITUSE relocs are produced by a symbol reference; - the assembler turns it into a LDQ instruction to load the address - of the symbol, and then fills in a register in the real - instruction. - - The LITERAL reloc, at the LDQ instruction, refers to the .lita - section symbol. The addend is ignored when writing, but is filled - in with the file's GP value on reading, for convenience, as with - the GPDISP_LO16 reloc. - - The ELF_LITERAL reloc is somewhere between 16_GOTOFF and - GPDISP_LO16. It should refer to the symbol to be referenced, as - with 16_GOTOFF, but it generates output not based on the position - within the .got section, but relative to the GP value chosen for - the file during the final link stage. - - The LITUSE reloc, on the instruction using the loaded address, - gives information to the linker that it might be able to use to - optimize away some literal section references. The symbol is - ignored (read as the absolute section symbol), and the "addend" - indicates the type of instruction using the register: 1 - "memory" - fmt insn 2 - byte-manipulation (byte offset reg) 3 - jsr (target - of branch) - - -- : BFD_RELOC_ALPHA_HINT - The HINT relocation indicates a value that should be filled into - the "hint" field of a jmp/jsr/ret instruction, for possible branch- - prediction logic which may be provided on some processors. - - -- : BFD_RELOC_ALPHA_LINKAGE - The LINKAGE relocation outputs a linkage pair in the object file, - which is filled by the linker. - - -- : BFD_RELOC_ALPHA_CODEADDR - The CODEADDR relocation outputs a STO_CA in the object file, which - is filled by the linker. - - -- : BFD_RELOC_ALPHA_GPREL_HI16 - -- : BFD_RELOC_ALPHA_GPREL_LO16 - The GPREL_HI/LO relocations together form a 32-bit offset from the - GP register. - - -- : BFD_RELOC_ALPHA_BRSGP - Like BFD_RELOC_23_PCREL_S2, except that the source and target must - share a common GP, and the target address is adjusted for - STO_ALPHA_STD_GPLOAD. - - -- : BFD_RELOC_ALPHA_TLSGD - -- : BFD_RELOC_ALPHA_TLSLDM - -- : BFD_RELOC_ALPHA_DTPMOD64 - -- : BFD_RELOC_ALPHA_GOTDTPREL16 - -- : BFD_RELOC_ALPHA_DTPREL64 - -- : BFD_RELOC_ALPHA_DTPREL_HI16 - -- : BFD_RELOC_ALPHA_DTPREL_LO16 - -- : BFD_RELOC_ALPHA_DTPREL16 - -- : BFD_RELOC_ALPHA_GOTTPREL16 - -- : BFD_RELOC_ALPHA_TPREL64 - -- : BFD_RELOC_ALPHA_TPREL_HI16 - -- : BFD_RELOC_ALPHA_TPREL_LO16 - -- : BFD_RELOC_ALPHA_TPREL16 - Alpha thread-local storage relocations. - - -- : BFD_RELOC_MIPS_JMP - Bits 27..2 of the relocation address shifted right 2 bits; simple - reloc otherwise. - - -- : BFD_RELOC_MIPS16_JMP - The MIPS16 jump instruction. - - -- : BFD_RELOC_MIPS16_GPREL - MIPS16 GP relative reloc. - - -- : BFD_RELOC_HI16 - High 16 bits of 32-bit value; simple reloc. - - -- : BFD_RELOC_HI16_S - High 16 bits of 32-bit value but the low 16 bits will be sign - extended and added to form the final result. If the low 16 bits - form a negative number, we need to add one to the high value to - compensate for the borrow when the low bits are added. - - -- : BFD_RELOC_LO16 - Low 16 bits. - - -- : BFD_RELOC_MIPS16_HI16 - MIPS16 high 16 bits of 32-bit value. - - -- : BFD_RELOC_MIPS16_HI16_S - MIPS16 high 16 bits of 32-bit value but the low 16 bits will be - sign extended and added to form the final result. If the low 16 - bits form a negative number, we need to add one to the high value - to compensate for the borrow when the low bits are added. - - -- : BFD_RELOC_MIPS16_LO16 - MIPS16 low 16 bits. - - -- : BFD_RELOC_MIPS_LITERAL - Relocation against a MIPS literal section. - - -- : BFD_RELOC_MIPS_GOT16 - -- : BFD_RELOC_MIPS_CALL16 - -- : BFD_RELOC_MIPS_GOT_HI16 - -- : BFD_RELOC_MIPS_GOT_LO16 - -- : BFD_RELOC_MIPS_CALL_HI16 - -- : BFD_RELOC_MIPS_CALL_LO16 - -- : BFD_RELOC_MIPS_SUB - -- : BFD_RELOC_MIPS_GOT_PAGE - -- : BFD_RELOC_MIPS_GOT_OFST - -- : BFD_RELOC_MIPS_GOT_DISP - -- : BFD_RELOC_MIPS_SHIFT5 - -- : BFD_RELOC_MIPS_SHIFT6 - -- : BFD_RELOC_MIPS_INSERT_A - -- : BFD_RELOC_MIPS_INSERT_B - -- : BFD_RELOC_MIPS_DELETE - -- : BFD_RELOC_MIPS_HIGHEST - -- : BFD_RELOC_MIPS_HIGHER - -- : BFD_RELOC_MIPS_SCN_DISP - -- : BFD_RELOC_MIPS_REL16 - -- : BFD_RELOC_MIPS_RELGOT - -- : BFD_RELOC_MIPS_JALR - -- : BFD_RELOC_MIPS_TLS_DTPMOD32 - -- : BFD_RELOC_MIPS_TLS_DTPREL32 - -- : BFD_RELOC_MIPS_TLS_DTPMOD64 - -- : BFD_RELOC_MIPS_TLS_DTPREL64 - -- : BFD_RELOC_MIPS_TLS_GD - -- : BFD_RELOC_MIPS_TLS_LDM - -- : BFD_RELOC_MIPS_TLS_DTPREL_HI16 - -- : BFD_RELOC_MIPS_TLS_DTPREL_LO16 - -- : BFD_RELOC_MIPS_TLS_GOTTPREL - -- : BFD_RELOC_MIPS_TLS_TPREL32 - -- : BFD_RELOC_MIPS_TLS_TPREL64 - -- : BFD_RELOC_MIPS_TLS_TPREL_HI16 - -- : BFD_RELOC_MIPS_TLS_TPREL_LO16 - MIPS ELF relocations. - - -- : BFD_RELOC_FRV_LABEL16 - -- : BFD_RELOC_FRV_LABEL24 - -- : BFD_RELOC_FRV_LO16 - -- : BFD_RELOC_FRV_HI16 - -- : BFD_RELOC_FRV_GPREL12 - -- : BFD_RELOC_FRV_GPRELU12 - -- : BFD_RELOC_FRV_GPREL32 - -- : BFD_RELOC_FRV_GPRELHI - -- : BFD_RELOC_FRV_GPRELLO - -- : BFD_RELOC_FRV_GOT12 - -- : BFD_RELOC_FRV_GOTHI - -- : BFD_RELOC_FRV_GOTLO - -- : BFD_RELOC_FRV_FUNCDESC - -- : BFD_RELOC_FRV_FUNCDESC_GOT12 - -- : BFD_RELOC_FRV_FUNCDESC_GOTHI - -- : BFD_RELOC_FRV_FUNCDESC_GOTLO - -- : BFD_RELOC_FRV_FUNCDESC_VALUE - -- : BFD_RELOC_FRV_FUNCDESC_GOTOFF12 - -- : BFD_RELOC_FRV_FUNCDESC_GOTOFFHI - -- : BFD_RELOC_FRV_FUNCDESC_GOTOFFLO - -- : BFD_RELOC_FRV_GOTOFF12 - -- : BFD_RELOC_FRV_GOTOFFHI - -- : BFD_RELOC_FRV_GOTOFFLO - -- : BFD_RELOC_FRV_GETTLSOFF - -- : BFD_RELOC_FRV_TLSDESC_VALUE - -- : BFD_RELOC_FRV_GOTTLSDESC12 - -- : BFD_RELOC_FRV_GOTTLSDESCHI - -- : BFD_RELOC_FRV_GOTTLSDESCLO - -- : BFD_RELOC_FRV_TLSMOFF12 - -- : BFD_RELOC_FRV_TLSMOFFHI - -- : BFD_RELOC_FRV_TLSMOFFLO - -- : BFD_RELOC_FRV_GOTTLSOFF12 - -- : BFD_RELOC_FRV_GOTTLSOFFHI - -- : BFD_RELOC_FRV_GOTTLSOFFLO - -- : BFD_RELOC_FRV_TLSOFF - -- : BFD_RELOC_FRV_TLSDESC_RELAX - -- : BFD_RELOC_FRV_GETTLSOFF_RELAX - -- : BFD_RELOC_FRV_TLSOFF_RELAX - -- : BFD_RELOC_FRV_TLSMOFF - Fujitsu Frv Relocations. - - -- : BFD_RELOC_MN10300_GOTOFF24 - This is a 24bit GOT-relative reloc for the mn10300. - - -- : BFD_RELOC_MN10300_GOT32 - This is a 32bit GOT-relative reloc for the mn10300, offset by two - bytes in the instruction. - - -- : BFD_RELOC_MN10300_GOT24 - This is a 24bit GOT-relative reloc for the mn10300, offset by two - bytes in the instruction. - - -- : BFD_RELOC_MN10300_GOT16 - This is a 16bit GOT-relative reloc for the mn10300, offset by two - bytes in the instruction. - - -- : BFD_RELOC_MN10300_COPY - Copy symbol at runtime. - - -- : BFD_RELOC_MN10300_GLOB_DAT - Create GOT entry. - - -- : BFD_RELOC_MN10300_JMP_SLOT - Create PLT entry. - - -- : BFD_RELOC_MN10300_RELATIVE - Adjust by program base. - - -- : BFD_RELOC_386_GOT32 - -- : BFD_RELOC_386_PLT32 - -- : BFD_RELOC_386_COPY - -- : BFD_RELOC_386_GLOB_DAT - -- : BFD_RELOC_386_JUMP_SLOT - -- : BFD_RELOC_386_RELATIVE - -- : BFD_RELOC_386_GOTOFF - -- : BFD_RELOC_386_GOTPC - -- : BFD_RELOC_386_TLS_TPOFF - -- : BFD_RELOC_386_TLS_IE - -- : BFD_RELOC_386_TLS_GOTIE - -- : BFD_RELOC_386_TLS_LE - -- : BFD_RELOC_386_TLS_GD - -- : BFD_RELOC_386_TLS_LDM - -- : BFD_RELOC_386_TLS_LDO_32 - -- : BFD_RELOC_386_TLS_IE_32 - -- : BFD_RELOC_386_TLS_LE_32 - -- : BFD_RELOC_386_TLS_DTPMOD32 - -- : BFD_RELOC_386_TLS_DTPOFF32 - -- : BFD_RELOC_386_TLS_TPOFF32 - i386/elf relocations - - -- : BFD_RELOC_X86_64_GOT32 - -- : BFD_RELOC_X86_64_PLT32 - -- : BFD_RELOC_X86_64_COPY - -- : BFD_RELOC_X86_64_GLOB_DAT - -- : BFD_RELOC_X86_64_JUMP_SLOT - -- : BFD_RELOC_X86_64_RELATIVE - -- : BFD_RELOC_X86_64_GOTPCREL - -- : BFD_RELOC_X86_64_32S - -- : BFD_RELOC_X86_64_DTPMOD64 - -- : BFD_RELOC_X86_64_DTPOFF64 - -- : BFD_RELOC_X86_64_TPOFF64 - -- : BFD_RELOC_X86_64_TLSGD - -- : BFD_RELOC_X86_64_TLSLD - -- : BFD_RELOC_X86_64_DTPOFF32 - -- : BFD_RELOC_X86_64_GOTTPOFF - -- : BFD_RELOC_X86_64_TPOFF32 - x86-64/elf relocations - - -- : BFD_RELOC_NS32K_IMM_8 - -- : BFD_RELOC_NS32K_IMM_16 - -- : BFD_RELOC_NS32K_IMM_32 - -- : BFD_RELOC_NS32K_IMM_8_PCREL - -- : BFD_RELOC_NS32K_IMM_16_PCREL - -- : BFD_RELOC_NS32K_IMM_32_PCREL - -- : BFD_RELOC_NS32K_DISP_8 - -- : BFD_RELOC_NS32K_DISP_16 - -- : BFD_RELOC_NS32K_DISP_32 - -- : BFD_RELOC_NS32K_DISP_8_PCREL - -- : BFD_RELOC_NS32K_DISP_16_PCREL - -- : BFD_RELOC_NS32K_DISP_32_PCREL - ns32k relocations - - -- : BFD_RELOC_PDP11_DISP_8_PCREL - -- : BFD_RELOC_PDP11_DISP_6_PCREL - PDP11 relocations - - -- : BFD_RELOC_PJ_CODE_HI16 - -- : BFD_RELOC_PJ_CODE_LO16 - -- : BFD_RELOC_PJ_CODE_DIR16 - -- : BFD_RELOC_PJ_CODE_DIR32 - -- : BFD_RELOC_PJ_CODE_REL16 - -- : BFD_RELOC_PJ_CODE_REL32 - Picojava relocs. Not all of these appear in object files. - - -- : BFD_RELOC_PPC_B26 - -- : BFD_RELOC_PPC_BA26 - -- : BFD_RELOC_PPC_TOC16 - -- : BFD_RELOC_PPC_B16 - -- : BFD_RELOC_PPC_B16_BRTAKEN - -- : BFD_RELOC_PPC_B16_BRNTAKEN - -- : BFD_RELOC_PPC_BA16 - -- : BFD_RELOC_PPC_BA16_BRTAKEN - -- : BFD_RELOC_PPC_BA16_BRNTAKEN - -- : BFD_RELOC_PPC_COPY - -- : BFD_RELOC_PPC_GLOB_DAT - -- : BFD_RELOC_PPC_JMP_SLOT - -- : BFD_RELOC_PPC_RELATIVE - -- : BFD_RELOC_PPC_LOCAL24PC - -- : BFD_RELOC_PPC_EMB_NADDR32 - -- : BFD_RELOC_PPC_EMB_NADDR16 - -- : BFD_RELOC_PPC_EMB_NADDR16_LO - -- : BFD_RELOC_PPC_EMB_NADDR16_HI - -- : BFD_RELOC_PPC_EMB_NADDR16_HA - -- : BFD_RELOC_PPC_EMB_SDAI16 - -- : BFD_RELOC_PPC_EMB_SDA2I16 - -- : BFD_RELOC_PPC_EMB_SDA2REL - -- : BFD_RELOC_PPC_EMB_SDA21 - -- : BFD_RELOC_PPC_EMB_MRKREF - -- : BFD_RELOC_PPC_EMB_RELSEC16 - -- : BFD_RELOC_PPC_EMB_RELST_LO - -- : BFD_RELOC_PPC_EMB_RELST_HI - -- : BFD_RELOC_PPC_EMB_RELST_HA - -- : BFD_RELOC_PPC_EMB_BIT_FLD - -- : BFD_RELOC_PPC_EMB_RELSDA - -- : BFD_RELOC_PPC64_HIGHER - -- : BFD_RELOC_PPC64_HIGHER_S - -- : BFD_RELOC_PPC64_HIGHEST - -- : BFD_RELOC_PPC64_HIGHEST_S - -- : BFD_RELOC_PPC64_TOC16_LO - -- : BFD_RELOC_PPC64_TOC16_HI - -- : BFD_RELOC_PPC64_TOC16_HA - -- : BFD_RELOC_PPC64_TOC - -- : BFD_RELOC_PPC64_PLTGOT16 - -- : BFD_RELOC_PPC64_PLTGOT16_LO - -- : BFD_RELOC_PPC64_PLTGOT16_HI - -- : BFD_RELOC_PPC64_PLTGOT16_HA - -- : BFD_RELOC_PPC64_ADDR16_DS - -- : BFD_RELOC_PPC64_ADDR16_LO_DS - -- : BFD_RELOC_PPC64_GOT16_DS - -- : BFD_RELOC_PPC64_GOT16_LO_DS - -- : BFD_RELOC_PPC64_PLT16_LO_DS - -- : BFD_RELOC_PPC64_SECTOFF_DS - -- : BFD_RELOC_PPC64_SECTOFF_LO_DS - -- : BFD_RELOC_PPC64_TOC16_DS - -- : BFD_RELOC_PPC64_TOC16_LO_DS - -- : BFD_RELOC_PPC64_PLTGOT16_DS - -- : BFD_RELOC_PPC64_PLTGOT16_LO_DS - Power(rs6000) and PowerPC relocations. - - -- : BFD_RELOC_PPC_TLS - -- : BFD_RELOC_PPC_DTPMOD - -- : BFD_RELOC_PPC_TPREL16 - -- : BFD_RELOC_PPC_TPREL16_LO - -- : BFD_RELOC_PPC_TPREL16_HI - -- : BFD_RELOC_PPC_TPREL16_HA - -- : BFD_RELOC_PPC_TPREL - -- : BFD_RELOC_PPC_DTPREL16 - -- : BFD_RELOC_PPC_DTPREL16_LO - -- : BFD_RELOC_PPC_DTPREL16_HI - -- : BFD_RELOC_PPC_DTPREL16_HA - -- : BFD_RELOC_PPC_DTPREL - -- : BFD_RELOC_PPC_GOT_TLSGD16 - -- : BFD_RELOC_PPC_GOT_TLSGD16_LO - -- : BFD_RELOC_PPC_GOT_TLSGD16_HI - -- : BFD_RELOC_PPC_GOT_TLSGD16_HA - -- : BFD_RELOC_PPC_GOT_TLSLD16 - -- : BFD_RELOC_PPC_GOT_TLSLD16_LO - -- : BFD_RELOC_PPC_GOT_TLSLD16_HI - -- : BFD_RELOC_PPC_GOT_TLSLD16_HA - -- : BFD_RELOC_PPC_GOT_TPREL16 - -- : BFD_RELOC_PPC_GOT_TPREL16_LO - -- : BFD_RELOC_PPC_GOT_TPREL16_HI - -- : BFD_RELOC_PPC_GOT_TPREL16_HA - -- : BFD_RELOC_PPC_GOT_DTPREL16 - -- : BFD_RELOC_PPC_GOT_DTPREL16_LO - -- : BFD_RELOC_PPC_GOT_DTPREL16_HI - -- : BFD_RELOC_PPC_GOT_DTPREL16_HA - -- : BFD_RELOC_PPC64_TPREL16_DS - -- : BFD_RELOC_PPC64_TPREL16_LO_DS - -- : BFD_RELOC_PPC64_TPREL16_HIGHER - -- : BFD_RELOC_PPC64_TPREL16_HIGHERA - -- : BFD_RELOC_PPC64_TPREL16_HIGHEST - -- : BFD_RELOC_PPC64_TPREL16_HIGHESTA - -- : BFD_RELOC_PPC64_DTPREL16_DS - -- : BFD_RELOC_PPC64_DTPREL16_LO_DS - -- : BFD_RELOC_PPC64_DTPREL16_HIGHER - -- : BFD_RELOC_PPC64_DTPREL16_HIGHERA - -- : BFD_RELOC_PPC64_DTPREL16_HIGHEST - -- : BFD_RELOC_PPC64_DTPREL16_HIGHESTA - PowerPC and PowerPC64 thread-local storage relocations. - - -- : BFD_RELOC_I370_D12 - IBM 370/390 relocations - - -- : BFD_RELOC_CTOR - The type of reloc used to build a constructor table - at the moment - probably a 32 bit wide absolute relocation, but the target can - choose. It generally does map to one of the other relocation - types. - - -- : BFD_RELOC_ARM_PCREL_BRANCH - ARM 26 bit pc-relative branch. The lowest two bits must be zero - and are not stored in the instruction. - - -- : BFD_RELOC_ARM_PCREL_BLX - ARM 26 bit pc-relative branch. The lowest bit must be zero and is - not stored in the instruction. The 2nd lowest bit comes from a 1 - bit field in the instruction. - - -- : BFD_RELOC_THUMB_PCREL_BLX - Thumb 22 bit pc-relative branch. The lowest bit must be zero and - is not stored in the instruction. The 2nd lowest bit comes from a - 1 bit field in the instruction. - - -- : BFD_RELOC_ARM_IMMEDIATE - -- : BFD_RELOC_ARM_ADRL_IMMEDIATE - -- : BFD_RELOC_ARM_OFFSET_IMM - -- : BFD_RELOC_ARM_SHIFT_IMM - -- : BFD_RELOC_ARM_SMI - -- : BFD_RELOC_ARM_SWI - -- : BFD_RELOC_ARM_MULTI - -- : BFD_RELOC_ARM_CP_OFF_IMM - -- : BFD_RELOC_ARM_CP_OFF_IMM_S2 - -- : BFD_RELOC_ARM_ADR_IMM - -- : BFD_RELOC_ARM_LDR_IMM - -- : BFD_RELOC_ARM_LITERAL - -- : BFD_RELOC_ARM_IN_POOL - -- : BFD_RELOC_ARM_OFFSET_IMM8 - -- : BFD_RELOC_ARM_HWLITERAL - -- : BFD_RELOC_ARM_THUMB_ADD - -- : BFD_RELOC_ARM_THUMB_IMM - -- : BFD_RELOC_ARM_THUMB_SHIFT - -- : BFD_RELOC_ARM_THUMB_OFFSET - -- : BFD_RELOC_ARM_GOT12 - -- : BFD_RELOC_ARM_GOT32 - -- : BFD_RELOC_ARM_JUMP_SLOT - -- : BFD_RELOC_ARM_COPY - -- : BFD_RELOC_ARM_GLOB_DAT - -- : BFD_RELOC_ARM_PLT32 - -- : BFD_RELOC_ARM_RELATIVE - -- : BFD_RELOC_ARM_GOTOFF - -- : BFD_RELOC_ARM_GOTPC - These relocs are only used within the ARM assembler. They are not - (at present) written to any object files. - - -- : BFD_RELOC_ARM_TARGET1 - Pc-relative or absolute relocation depending on target. Used for - entries in .init_array sections. - - -- : BFD_RELOC_ARM_ROSEGREL32 - Read-only segment base relative address. - - -- : BFD_RELOC_ARM_SBREL32 - Data segment base relative address. - - -- : BFD_RELOC_ARM_TARGET2 - This reloc is used for References to RTTI dta from exception - handling tables. The actual definition depends on the target. It - may be a pc-relative or some form of GOT-indirect relocation. - - -- : BFD_RELOC_ARM_PREL31 - 31-bit PC relative address. - - -- : BFD_RELOC_SH_PCDISP8BY2 - -- : BFD_RELOC_SH_PCDISP12BY2 - -- : BFD_RELOC_SH_IMM3 - -- : BFD_RELOC_SH_IMM3U - -- : BFD_RELOC_SH_DISP12 - -- : BFD_RELOC_SH_DISP12BY2 - -- : BFD_RELOC_SH_DISP12BY4 - -- : BFD_RELOC_SH_DISP12BY8 - -- : BFD_RELOC_SH_DISP20 - -- : BFD_RELOC_SH_DISP20BY8 - -- : BFD_RELOC_SH_IMM4 - -- : BFD_RELOC_SH_IMM4BY2 - -- : BFD_RELOC_SH_IMM4BY4 - -- : BFD_RELOC_SH_IMM8 - -- : BFD_RELOC_SH_IMM8BY2 - -- : BFD_RELOC_SH_IMM8BY4 - -- : BFD_RELOC_SH_PCRELIMM8BY2 - -- : BFD_RELOC_SH_PCRELIMM8BY4 - -- : BFD_RELOC_SH_SWITCH16 - -- : BFD_RELOC_SH_SWITCH32 - -- : BFD_RELOC_SH_USES - -- : BFD_RELOC_SH_COUNT - -- : BFD_RELOC_SH_ALIGN - -- : BFD_RELOC_SH_CODE - -- : BFD_RELOC_SH_DATA - -- : BFD_RELOC_SH_LABEL - -- : BFD_RELOC_SH_LOOP_START - -- : BFD_RELOC_SH_LOOP_END - -- : BFD_RELOC_SH_COPY - -- : BFD_RELOC_SH_GLOB_DAT - -- : BFD_RELOC_SH_JMP_SLOT - -- : BFD_RELOC_SH_RELATIVE - -- : BFD_RELOC_SH_GOTPC - -- : BFD_RELOC_SH_GOT_LOW16 - -- : BFD_RELOC_SH_GOT_MEDLOW16 - -- : BFD_RELOC_SH_GOT_MEDHI16 - -- : BFD_RELOC_SH_GOT_HI16 - -- : BFD_RELOC_SH_GOTPLT_LOW16 - -- : BFD_RELOC_SH_GOTPLT_MEDLOW16 - -- : BFD_RELOC_SH_GOTPLT_MEDHI16 - -- : BFD_RELOC_SH_GOTPLT_HI16 - -- : BFD_RELOC_SH_PLT_LOW16 - -- : BFD_RELOC_SH_PLT_MEDLOW16 - -- : BFD_RELOC_SH_PLT_MEDHI16 - -- : BFD_RELOC_SH_PLT_HI16 - -- : BFD_RELOC_SH_GOTOFF_LOW16 - -- : BFD_RELOC_SH_GOTOFF_MEDLOW16 - -- : BFD_RELOC_SH_GOTOFF_MEDHI16 - -- : BFD_RELOC_SH_GOTOFF_HI16 - -- : BFD_RELOC_SH_GOTPC_LOW16 - -- : BFD_RELOC_SH_GOTPC_MEDLOW16 - -- : BFD_RELOC_SH_GOTPC_MEDHI16 - -- : BFD_RELOC_SH_GOTPC_HI16 - -- : BFD_RELOC_SH_COPY64 - -- : BFD_RELOC_SH_GLOB_DAT64 - -- : BFD_RELOC_SH_JMP_SLOT64 - -- : BFD_RELOC_SH_RELATIVE64 - -- : BFD_RELOC_SH_GOT10BY4 - -- : BFD_RELOC_SH_GOT10BY8 - -- : BFD_RELOC_SH_GOTPLT10BY4 - -- : BFD_RELOC_SH_GOTPLT10BY8 - -- : BFD_RELOC_SH_GOTPLT32 - -- : BFD_RELOC_SH_SHMEDIA_CODE - -- : BFD_RELOC_SH_IMMU5 - -- : BFD_RELOC_SH_IMMS6 - -- : BFD_RELOC_SH_IMMS6BY32 - -- : BFD_RELOC_SH_IMMU6 - -- : BFD_RELOC_SH_IMMS10 - -- : BFD_RELOC_SH_IMMS10BY2 - -- : BFD_RELOC_SH_IMMS10BY4 - -- : BFD_RELOC_SH_IMMS10BY8 - -- : BFD_RELOC_SH_IMMS16 - -- : BFD_RELOC_SH_IMMU16 - -- : BFD_RELOC_SH_IMM_LOW16 - -- : BFD_RELOC_SH_IMM_LOW16_PCREL - -- : BFD_RELOC_SH_IMM_MEDLOW16 - -- : BFD_RELOC_SH_IMM_MEDLOW16_PCREL - -- : BFD_RELOC_SH_IMM_MEDHI16 - -- : BFD_RELOC_SH_IMM_MEDHI16_PCREL - -- : BFD_RELOC_SH_IMM_HI16 - -- : BFD_RELOC_SH_IMM_HI16_PCREL - -- : BFD_RELOC_SH_PT_16 - -- : BFD_RELOC_SH_TLS_GD_32 - -- : BFD_RELOC_SH_TLS_LD_32 - -- : BFD_RELOC_SH_TLS_LDO_32 - -- : BFD_RELOC_SH_TLS_IE_32 - -- : BFD_RELOC_SH_TLS_LE_32 - -- : BFD_RELOC_SH_TLS_DTPMOD32 - -- : BFD_RELOC_SH_TLS_DTPOFF32 - -- : BFD_RELOC_SH_TLS_TPOFF32 - Renesas / SuperH SH relocs. Not all of these appear in object - files. - - -- : BFD_RELOC_THUMB_PCREL_BRANCH9 - -- : BFD_RELOC_THUMB_PCREL_BRANCH12 - -- : BFD_RELOC_THUMB_PCREL_BRANCH23 - Thumb 23-, 12- and 9-bit pc-relative branches. The lowest bit must - be zero and is not stored in the instruction. - - -- : BFD_RELOC_ARC_B22_PCREL - ARC Cores relocs. ARC 22 bit pc-relative branch. The lowest two - bits must be zero and are not stored in the instruction. The high - 20 bits are installed in bits 26 through 7 of the instruction. - - -- : BFD_RELOC_ARC_B26 - ARC 26 bit absolute branch. The lowest two bits must be zero and - are not stored in the instruction. The high 24 bits are installed - in bits 23 through 0. - - -- : BFD_RELOC_D10V_10_PCREL_R - Mitsubishi D10V relocs. This is a 10-bit reloc with the right 2 - bits assumed to be 0. - - -- : BFD_RELOC_D10V_10_PCREL_L - Mitsubishi D10V relocs. This is a 10-bit reloc with the right 2 - bits assumed to be 0. This is the same as the previous reloc - except it is in the left container, i.e., shifted left 15 bits. - - -- : BFD_RELOC_D10V_18 - This is an 18-bit reloc with the right 2 bits assumed to be 0. - - -- : BFD_RELOC_D10V_18_PCREL - This is an 18-bit reloc with the right 2 bits assumed to be 0. - - -- : BFD_RELOC_D30V_6 - Mitsubishi D30V relocs. This is a 6-bit absolute reloc. - - -- : BFD_RELOC_D30V_9_PCREL - This is a 6-bit pc-relative reloc with the right 3 bits assumed to - be 0. - - -- : BFD_RELOC_D30V_9_PCREL_R - This is a 6-bit pc-relative reloc with the right 3 bits assumed to - be 0. Same as the previous reloc but on the right side of the - container. - - -- : BFD_RELOC_D30V_15 - This is a 12-bit absolute reloc with the right 3 bitsassumed to be - 0. - - -- : BFD_RELOC_D30V_15_PCREL - This is a 12-bit pc-relative reloc with the right 3 bits assumed - to be 0. - - -- : BFD_RELOC_D30V_15_PCREL_R - This is a 12-bit pc-relative reloc with the right 3 bits assumed - to be 0. Same as the previous reloc but on the right side of the - container. - - -- : BFD_RELOC_D30V_21 - This is an 18-bit absolute reloc with the right 3 bits assumed to - be 0. - - -- : BFD_RELOC_D30V_21_PCREL - This is an 18-bit pc-relative reloc with the right 3 bits assumed - to be 0. - - -- : BFD_RELOC_D30V_21_PCREL_R - This is an 18-bit pc-relative reloc with the right 3 bits assumed - to be 0. Same as the previous reloc but on the right side of the - container. - - -- : BFD_RELOC_D30V_32 - This is a 32-bit absolute reloc. - - -- : BFD_RELOC_D30V_32_PCREL - This is a 32-bit pc-relative reloc. - - -- : BFD_RELOC_DLX_HI16_S - DLX relocs - - -- : BFD_RELOC_DLX_LO16 - DLX relocs - - -- : BFD_RELOC_DLX_JMP26 - DLX relocs - - -- : BFD_RELOC_M32R_24 - Renesas M32R (formerly Mitsubishi M32R) relocs. This is a 24 bit - absolute address. - - -- : BFD_RELOC_M32R_10_PCREL - This is a 10-bit pc-relative reloc with the right 2 bits assumed - to be 0. - - -- : BFD_RELOC_M32R_18_PCREL - This is an 18-bit reloc with the right 2 bits assumed to be 0. - - -- : BFD_RELOC_M32R_26_PCREL - This is a 26-bit reloc with the right 2 bits assumed to be 0. - - -- : BFD_RELOC_M32R_HI16_ULO - This is a 16-bit reloc containing the high 16 bits of an address - used when the lower 16 bits are treated as unsigned. - - -- : BFD_RELOC_M32R_HI16_SLO - This is a 16-bit reloc containing the high 16 bits of an address - used when the lower 16 bits are treated as signed. - - -- : BFD_RELOC_M32R_LO16 - This is a 16-bit reloc containing the lower 16 bits of an address. - - -- : BFD_RELOC_M32R_SDA16 - This is a 16-bit reloc containing the small data area offset for - use in add3, load, and store instructions. - - -- : BFD_RELOC_M32R_GOT24 - -- : BFD_RELOC_M32R_26_PLTREL - -- : BFD_RELOC_M32R_COPY - -- : BFD_RELOC_M32R_GLOB_DAT - -- : BFD_RELOC_M32R_JMP_SLOT - -- : BFD_RELOC_M32R_RELATIVE - -- : BFD_RELOC_M32R_GOTOFF - -- : BFD_RELOC_M32R_GOTOFF_HI_ULO - -- : BFD_RELOC_M32R_GOTOFF_HI_SLO - -- : BFD_RELOC_M32R_GOTOFF_LO - -- : BFD_RELOC_M32R_GOTPC24 - -- : BFD_RELOC_M32R_GOT16_HI_ULO - -- : BFD_RELOC_M32R_GOT16_HI_SLO - -- : BFD_RELOC_M32R_GOT16_LO - -- : BFD_RELOC_M32R_GOTPC_HI_ULO - -- : BFD_RELOC_M32R_GOTPC_HI_SLO - -- : BFD_RELOC_M32R_GOTPC_LO - For PIC. - - -- : BFD_RELOC_V850_9_PCREL - This is a 9-bit reloc - - -- : BFD_RELOC_V850_22_PCREL - This is a 22-bit reloc - - -- : BFD_RELOC_V850_SDA_16_16_OFFSET - This is a 16 bit offset from the short data area pointer. - - -- : BFD_RELOC_V850_SDA_15_16_OFFSET - This is a 16 bit offset (of which only 15 bits are used) from the - short data area pointer. - - -- : BFD_RELOC_V850_ZDA_16_16_OFFSET - This is a 16 bit offset from the zero data area pointer. - - -- : BFD_RELOC_V850_ZDA_15_16_OFFSET - This is a 16 bit offset (of which only 15 bits are used) from the - zero data area pointer. - - -- : BFD_RELOC_V850_TDA_6_8_OFFSET - This is an 8 bit offset (of which only 6 bits are used) from the - tiny data area pointer. - - -- : BFD_RELOC_V850_TDA_7_8_OFFSET - This is an 8bit offset (of which only 7 bits are used) from the - tiny data area pointer. - - -- : BFD_RELOC_V850_TDA_7_7_OFFSET - This is a 7 bit offset from the tiny data area pointer. - - -- : BFD_RELOC_V850_TDA_16_16_OFFSET - This is a 16 bit offset from the tiny data area pointer. - - -- : BFD_RELOC_V850_TDA_4_5_OFFSET - This is a 5 bit offset (of which only 4 bits are used) from the - tiny data area pointer. - - -- : BFD_RELOC_V850_TDA_4_4_OFFSET - This is a 4 bit offset from the tiny data area pointer. - - -- : BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET - This is a 16 bit offset from the short data area pointer, with the - bits placed non-contiguously in the instruction. - - -- : BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET - This is a 16 bit offset from the zero data area pointer, with the - bits placed non-contiguously in the instruction. - - -- : BFD_RELOC_V850_CALLT_6_7_OFFSET - This is a 6 bit offset from the call table base pointer. - - -- : BFD_RELOC_V850_CALLT_16_16_OFFSET - This is a 16 bit offset from the call table base pointer. - - -- : BFD_RELOC_V850_LONGCALL - Used for relaxing indirect function calls. - - -- : BFD_RELOC_V850_LONGJUMP - Used for relaxing indirect jumps. - - -- : BFD_RELOC_V850_ALIGN - Used to maintain alignment whilst relaxing. - - -- : BFD_RELOC_V850_LO16_SPLIT_OFFSET - This is a variation of BFD_RELOC_LO16 that can be used in v850e - ld.bu instructions. - - -- : BFD_RELOC_MN10300_32_PCREL - This is a 32bit pcrel reloc for the mn10300, offset by two bytes - in the instruction. - - -- : BFD_RELOC_MN10300_16_PCREL - This is a 16bit pcrel reloc for the mn10300, offset by two bytes - in the instruction. - - -- : BFD_RELOC_TIC30_LDP - This is a 8bit DP reloc for the tms320c30, where the most - significant 8 bits of a 24 bit word are placed into the least - significant 8 bits of the opcode. - - -- : BFD_RELOC_TIC54X_PARTLS7 - This is a 7bit reloc for the tms320c54x, where the least - significant 7 bits of a 16 bit word are placed into the least - significant 7 bits of the opcode. - - -- : BFD_RELOC_TIC54X_PARTMS9 - This is a 9bit DP reloc for the tms320c54x, where the most - significant 9 bits of a 16 bit word are placed into the least - significant 9 bits of the opcode. - - -- : BFD_RELOC_TIC54X_23 - This is an extended address 23-bit reloc for the tms320c54x. - - -- : BFD_RELOC_TIC54X_16_OF_23 - This is a 16-bit reloc for the tms320c54x, where the least - significant 16 bits of a 23-bit extended address are placed into - the opcode. - - -- : BFD_RELOC_TIC54X_MS7_OF_23 - This is a reloc for the tms320c54x, where the most significant 7 - bits of a 23-bit extended address are placed into the opcode. - - -- : BFD_RELOC_FR30_48 - This is a 48 bit reloc for the FR30 that stores 32 bits. - - -- : BFD_RELOC_FR30_20 - This is a 32 bit reloc for the FR30 that stores 20 bits split up - into two sections. - - -- : BFD_RELOC_FR30_6_IN_4 - This is a 16 bit reloc for the FR30 that stores a 6 bit word - offset in 4 bits. - - -- : BFD_RELOC_FR30_8_IN_8 - This is a 16 bit reloc for the FR30 that stores an 8 bit byte - offset into 8 bits. - - -- : BFD_RELOC_FR30_9_IN_8 - This is a 16 bit reloc for the FR30 that stores a 9 bit short - offset into 8 bits. - - -- : BFD_RELOC_FR30_10_IN_8 - This is a 16 bit reloc for the FR30 that stores a 10 bit word - offset into 8 bits. - - -- : BFD_RELOC_FR30_9_PCREL - This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative - short offset into 8 bits. - - -- : BFD_RELOC_FR30_12_PCREL - This is a 16 bit reloc for the FR30 that stores a 12 bit pc - relative short offset into 11 bits. - - -- : BFD_RELOC_MCORE_PCREL_IMM8BY4 - -- : BFD_RELOC_MCORE_PCREL_IMM11BY2 - -- : BFD_RELOC_MCORE_PCREL_IMM4BY2 - -- : BFD_RELOC_MCORE_PCREL_32 - -- : BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2 - -- : BFD_RELOC_MCORE_RVA - Motorola Mcore relocations. - - -- : BFD_RELOC_MMIX_GETA - -- : BFD_RELOC_MMIX_GETA_1 - -- : BFD_RELOC_MMIX_GETA_2 - -- : BFD_RELOC_MMIX_GETA_3 - These are relocations for the GETA instruction. - - -- : BFD_RELOC_MMIX_CBRANCH - -- : BFD_RELOC_MMIX_CBRANCH_J - -- : BFD_RELOC_MMIX_CBRANCH_1 - -- : BFD_RELOC_MMIX_CBRANCH_2 - -- : BFD_RELOC_MMIX_CBRANCH_3 - These are relocations for a conditional branch instruction. - - -- : BFD_RELOC_MMIX_PUSHJ - -- : BFD_RELOC_MMIX_PUSHJ_1 - -- : BFD_RELOC_MMIX_PUSHJ_2 - -- : BFD_RELOC_MMIX_PUSHJ_3 - -- : BFD_RELOC_MMIX_PUSHJ_STUBBABLE - These are relocations for the PUSHJ instruction. - - -- : BFD_RELOC_MMIX_JMP - -- : BFD_RELOC_MMIX_JMP_1 - -- : BFD_RELOC_MMIX_JMP_2 - -- : BFD_RELOC_MMIX_JMP_3 - These are relocations for the JMP instruction. - - -- : BFD_RELOC_MMIX_ADDR19 - This is a relocation for a relative address as in a GETA - instruction or a branch. - - -- : BFD_RELOC_MMIX_ADDR27 - This is a relocation for a relative address as in a JMP - instruction. - - -- : BFD_RELOC_MMIX_REG_OR_BYTE - This is a relocation for an instruction field that may be a general - register or a value 0..255. - - -- : BFD_RELOC_MMIX_REG - This is a relocation for an instruction field that may be a general - register. - - -- : BFD_RELOC_MMIX_BASE_PLUS_OFFSET - This is a relocation for two instruction fields holding a register - and an offset, the equivalent of the relocation. - - -- : BFD_RELOC_MMIX_LOCAL - This relocation is an assertion that the expression is not - allocated as a global register. It does not modify contents. - - -- : BFD_RELOC_AVR_7_PCREL - This is a 16 bit reloc for the AVR that stores 8 bit pc relative - short offset into 7 bits. - - -- : BFD_RELOC_AVR_13_PCREL - This is a 16 bit reloc for the AVR that stores 13 bit pc relative - short offset into 12 bits. - - -- : BFD_RELOC_AVR_16_PM - This is a 16 bit reloc for the AVR that stores 17 bit value - (usually program memory address) into 16 bits. - - -- : BFD_RELOC_AVR_LO8_LDI - This is a 16 bit reloc for the AVR that stores 8 bit value (usually - data memory address) into 8 bit immediate value of LDI insn. - - -- : BFD_RELOC_AVR_HI8_LDI - This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 - bit of data memory address) into 8 bit immediate value of LDI insn. - - -- : BFD_RELOC_AVR_HH8_LDI - This is a 16 bit reloc for the AVR that stores 8 bit value (most - high 8 bit of program memory address) into 8 bit immediate value - of LDI insn. - - -- : BFD_RELOC_AVR_LO8_LDI_NEG - This is a 16 bit reloc for the AVR that stores negated 8 bit value - (usually data memory address) into 8 bit immediate value of SUBI - insn. - - -- : BFD_RELOC_AVR_HI8_LDI_NEG - This is a 16 bit reloc for the AVR that stores negated 8 bit value - (high 8 bit of data memory address) into 8 bit immediate value of - SUBI insn. - - -- : BFD_RELOC_AVR_HH8_LDI_NEG - This is a 16 bit reloc for the AVR that stores negated 8 bit value - (most high 8 bit of program memory address) into 8 bit immediate - value of LDI or SUBI insn. - - -- : BFD_RELOC_AVR_LO8_LDI_PM - This is a 16 bit reloc for the AVR that stores 8 bit value (usually - command address) into 8 bit immediate value of LDI insn. - - -- : BFD_RELOC_AVR_HI8_LDI_PM - This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 - bit of command address) into 8 bit immediate value of LDI insn. - - -- : BFD_RELOC_AVR_HH8_LDI_PM - This is a 16 bit reloc for the AVR that stores 8 bit value (most - high 8 bit of command address) into 8 bit immediate value of LDI - insn. - - -- : BFD_RELOC_AVR_LO8_LDI_PM_NEG - This is a 16 bit reloc for the AVR that stores negated 8 bit value - (usually command address) into 8 bit immediate value of SUBI insn. - - -- : BFD_RELOC_AVR_HI8_LDI_PM_NEG - This is a 16 bit reloc for the AVR that stores negated 8 bit value - (high 8 bit of 16 bit command address) into 8 bit immediate value - of SUBI insn. - - -- : BFD_RELOC_AVR_HH8_LDI_PM_NEG - This is a 16 bit reloc for the AVR that stores negated 8 bit value - (high 6 bit of 22 bit command address) into 8 bit immediate value - of SUBI insn. - - -- : BFD_RELOC_AVR_CALL - This is a 32 bit reloc for the AVR that stores 23 bit value into - 22 bits. - - -- : BFD_RELOC_AVR_LDI - This is a 16 bit reloc for the AVR that stores all needed bits for - absolute addressing with ldi with overflow check to linktime - - -- : BFD_RELOC_AVR_6 - This is a 6 bit reloc for the AVR that stores offset for ldd/std - instructions - - -- : BFD_RELOC_AVR_6_ADIW - This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw - instructions - - -- : BFD_RELOC_390_12 - Direct 12 bit. - - -- : BFD_RELOC_390_GOT12 - 12 bit GOT offset. - - -- : BFD_RELOC_390_PLT32 - 32 bit PC relative PLT address. - - -- : BFD_RELOC_390_COPY - Copy symbol at runtime. - - -- : BFD_RELOC_390_GLOB_DAT - Create GOT entry. - - -- : BFD_RELOC_390_JMP_SLOT - Create PLT entry. - - -- : BFD_RELOC_390_RELATIVE - Adjust by program base. - - -- : BFD_RELOC_390_GOTPC - 32 bit PC relative offset to GOT. - - -- : BFD_RELOC_390_GOT16 - 16 bit GOT offset. - - -- : BFD_RELOC_390_PC16DBL - PC relative 16 bit shifted by 1. - - -- : BFD_RELOC_390_PLT16DBL - 16 bit PC rel. PLT shifted by 1. - - -- : BFD_RELOC_390_PC32DBL - PC relative 32 bit shifted by 1. - - -- : BFD_RELOC_390_PLT32DBL - 32 bit PC rel. PLT shifted by 1. - - -- : BFD_RELOC_390_GOTPCDBL - 32 bit PC rel. GOT shifted by 1. - - -- : BFD_RELOC_390_GOT64 - 64 bit GOT offset. - - -- : BFD_RELOC_390_PLT64 - 64 bit PC relative PLT address. - - -- : BFD_RELOC_390_GOTENT - 32 bit rel. offset to GOT entry. - - -- : BFD_RELOC_390_GOTOFF64 - 64 bit offset to GOT. - - -- : BFD_RELOC_390_GOTPLT12 - 12-bit offset to symbol-entry within GOT, with PLT handling. - - -- : BFD_RELOC_390_GOTPLT16 - 16-bit offset to symbol-entry within GOT, with PLT handling. - - -- : BFD_RELOC_390_GOTPLT32 - 32-bit offset to symbol-entry within GOT, with PLT handling. - - -- : BFD_RELOC_390_GOTPLT64 - 64-bit offset to symbol-entry within GOT, with PLT handling. - - -- : BFD_RELOC_390_GOTPLTENT - 32-bit rel. offset to symbol-entry within GOT, with PLT handling. - - -- : BFD_RELOC_390_PLTOFF16 - 16-bit rel. offset from the GOT to a PLT entry. - - -- : BFD_RELOC_390_PLTOFF32 - 32-bit rel. offset from the GOT to a PLT entry. - - -- : BFD_RELOC_390_PLTOFF64 - 64-bit rel. offset from the GOT to a PLT entry. - - -- : BFD_RELOC_390_TLS_LOAD - -- : BFD_RELOC_390_TLS_GDCALL - -- : BFD_RELOC_390_TLS_LDCALL - -- : BFD_RELOC_390_TLS_GD32 - -- : BFD_RELOC_390_TLS_GD64 - -- : BFD_RELOC_390_TLS_GOTIE12 - -- : BFD_RELOC_390_TLS_GOTIE32 - -- : BFD_RELOC_390_TLS_GOTIE64 - -- : BFD_RELOC_390_TLS_LDM32 - -- : BFD_RELOC_390_TLS_LDM64 - -- : BFD_RELOC_390_TLS_IE32 - -- : BFD_RELOC_390_TLS_IE64 - -- : BFD_RELOC_390_TLS_IEENT - -- : BFD_RELOC_390_TLS_LE32 - -- : BFD_RELOC_390_TLS_LE64 - -- : BFD_RELOC_390_TLS_LDO32 - -- : BFD_RELOC_390_TLS_LDO64 - -- : BFD_RELOC_390_TLS_DTPMOD - -- : BFD_RELOC_390_TLS_DTPOFF - -- : BFD_RELOC_390_TLS_TPOFF - s390 tls relocations. - - -- : BFD_RELOC_390_20 - -- : BFD_RELOC_390_GOT20 - -- : BFD_RELOC_390_GOTPLT20 - -- : BFD_RELOC_390_TLS_GOTIE20 - Long displacement extension. - - -- : BFD_RELOC_IP2K_FR9 - Scenix IP2K - 9-bit register number / data address - - -- : BFD_RELOC_IP2K_BANK - Scenix IP2K - 4-bit register/data bank number - - -- : BFD_RELOC_IP2K_ADDR16CJP - Scenix IP2K - low 13 bits of instruction word address - - -- : BFD_RELOC_IP2K_PAGE3 - Scenix IP2K - high 3 bits of instruction word address - - -- : BFD_RELOC_IP2K_LO8DATA - -- : BFD_RELOC_IP2K_HI8DATA - -- : BFD_RELOC_IP2K_EX8DATA - Scenix IP2K - ext/low/high 8 bits of data address - - -- : BFD_RELOC_IP2K_LO8INSN - -- : BFD_RELOC_IP2K_HI8INSN - Scenix IP2K - low/high 8 bits of instruction word address - - -- : BFD_RELOC_IP2K_PC_SKIP - Scenix IP2K - even/odd PC modifier to modify snb pcl.0 - - -- : BFD_RELOC_IP2K_TEXT - Scenix IP2K - 16 bit word address in text section. - - -- : BFD_RELOC_IP2K_FR_OFFSET - Scenix IP2K - 7-bit sp or dp offset - - -- : BFD_RELOC_VPE4KMATH_DATA - -- : BFD_RELOC_VPE4KMATH_INSN - Scenix VPE4K coprocessor - data/insn-space addressing - - -- : BFD_RELOC_VTABLE_INHERIT - -- : BFD_RELOC_VTABLE_ENTRY - These two relocations are used by the linker to determine which of - the entries in a C++ virtual function table are actually used. - When the -gc-sections option is given, the linker will zero out - the entries that are not used, so that the code for those - functions need not be included in the output. - - VTABLE_INHERIT is a zero-space relocation used to describe to the - linker the inheritance tree of a C++ virtual function table. The - relocation's symbol should be the parent class' vtable, and the - relocation should be located at the child vtable. - - VTABLE_ENTRY is a zero-space relocation that describes the use of a - virtual function table entry. The reloc's symbol should refer to - the table of the class mentioned in the code. Off of that base, - an offset describes the entry that is being used. For Rela hosts, - this offset is stored in the reloc's addend. For Rel hosts, we - are forced to put this offset in the reloc's section offset. - - -- : BFD_RELOC_IA64_IMM14 - -- : BFD_RELOC_IA64_IMM22 - -- : BFD_RELOC_IA64_IMM64 - -- : BFD_RELOC_IA64_DIR32MSB - -- : BFD_RELOC_IA64_DIR32LSB - -- : BFD_RELOC_IA64_DIR64MSB - -- : BFD_RELOC_IA64_DIR64LSB - -- : BFD_RELOC_IA64_GPREL22 - -- : BFD_RELOC_IA64_GPREL64I - -- : BFD_RELOC_IA64_GPREL32MSB - -- : BFD_RELOC_IA64_GPREL32LSB - -- : BFD_RELOC_IA64_GPREL64MSB - -- : BFD_RELOC_IA64_GPREL64LSB - -- : BFD_RELOC_IA64_LTOFF22 - -- : BFD_RELOC_IA64_LTOFF64I - -- : BFD_RELOC_IA64_PLTOFF22 - -- : BFD_RELOC_IA64_PLTOFF64I - -- : BFD_RELOC_IA64_PLTOFF64MSB - -- : BFD_RELOC_IA64_PLTOFF64LSB - -- : BFD_RELOC_IA64_FPTR64I - -- : BFD_RELOC_IA64_FPTR32MSB - -- : BFD_RELOC_IA64_FPTR32LSB - -- : BFD_RELOC_IA64_FPTR64MSB - -- : BFD_RELOC_IA64_FPTR64LSB - -- : BFD_RELOC_IA64_PCREL21B - -- : BFD_RELOC_IA64_PCREL21BI - -- : BFD_RELOC_IA64_PCREL21M - -- : BFD_RELOC_IA64_PCREL21F - -- : BFD_RELOC_IA64_PCREL22 - -- : BFD_RELOC_IA64_PCREL60B - -- : BFD_RELOC_IA64_PCREL64I - -- : BFD_RELOC_IA64_PCREL32MSB - -- : BFD_RELOC_IA64_PCREL32LSB - -- : BFD_RELOC_IA64_PCREL64MSB - -- : BFD_RELOC_IA64_PCREL64LSB - -- : BFD_RELOC_IA64_LTOFF_FPTR22 - -- : BFD_RELOC_IA64_LTOFF_FPTR64I - -- : BFD_RELOC_IA64_LTOFF_FPTR32MSB - -- : BFD_RELOC_IA64_LTOFF_FPTR32LSB - -- : BFD_RELOC_IA64_LTOFF_FPTR64MSB - -- : BFD_RELOC_IA64_LTOFF_FPTR64LSB - -- : BFD_RELOC_IA64_SEGREL32MSB - -- : BFD_RELOC_IA64_SEGREL32LSB - -- : BFD_RELOC_IA64_SEGREL64MSB - -- : BFD_RELOC_IA64_SEGREL64LSB - -- : BFD_RELOC_IA64_SECREL32MSB - -- : BFD_RELOC_IA64_SECREL32LSB - -- : BFD_RELOC_IA64_SECREL64MSB - -- : BFD_RELOC_IA64_SECREL64LSB - -- : BFD_RELOC_IA64_REL32MSB - -- : BFD_RELOC_IA64_REL32LSB - -- : BFD_RELOC_IA64_REL64MSB - -- : BFD_RELOC_IA64_REL64LSB - -- : BFD_RELOC_IA64_LTV32MSB - -- : BFD_RELOC_IA64_LTV32LSB - -- : BFD_RELOC_IA64_LTV64MSB - -- : BFD_RELOC_IA64_LTV64LSB - -- : BFD_RELOC_IA64_IPLTMSB - -- : BFD_RELOC_IA64_IPLTLSB - -- : BFD_RELOC_IA64_COPY - -- : BFD_RELOC_IA64_LTOFF22X - -- : BFD_RELOC_IA64_LDXMOV - -- : BFD_RELOC_IA64_TPREL14 - -- : BFD_RELOC_IA64_TPREL22 - -- : BFD_RELOC_IA64_TPREL64I - -- : BFD_RELOC_IA64_TPREL64MSB - -- : BFD_RELOC_IA64_TPREL64LSB - -- : BFD_RELOC_IA64_LTOFF_TPREL22 - -- : BFD_RELOC_IA64_DTPMOD64MSB - -- : BFD_RELOC_IA64_DTPMOD64LSB - -- : BFD_RELOC_IA64_LTOFF_DTPMOD22 - -- : BFD_RELOC_IA64_DTPREL14 - -- : BFD_RELOC_IA64_DTPREL22 - -- : BFD_RELOC_IA64_DTPREL64I - -- : BFD_RELOC_IA64_DTPREL32MSB - -- : BFD_RELOC_IA64_DTPREL32LSB - -- : BFD_RELOC_IA64_DTPREL64MSB - -- : BFD_RELOC_IA64_DTPREL64LSB - -- : BFD_RELOC_IA64_LTOFF_DTPREL22 - Intel IA64 Relocations. - - -- : BFD_RELOC_M68HC11_HI8 - Motorola 68HC11 reloc. This is the 8 bit high part of an absolute - address. - - -- : BFD_RELOC_M68HC11_LO8 - Motorola 68HC11 reloc. This is the 8 bit low part of an absolute - address. - - -- : BFD_RELOC_M68HC11_3B - Motorola 68HC11 reloc. This is the 3 bit of a value. - - -- : BFD_RELOC_M68HC11_RL_JUMP - Motorola 68HC11 reloc. This reloc marks the beginning of a - jump/call instruction. It is used for linker relaxation to - correctly identify beginning of instruction and change some - branches to use PC-relative addressing mode. - - -- : BFD_RELOC_M68HC11_RL_GROUP - Motorola 68HC11 reloc. This reloc marks a group of several - instructions that gcc generates and for which the linker - relaxation pass can modify and/or remove some of them. - - -- : BFD_RELOC_M68HC11_LO16 - Motorola 68HC11 reloc. This is the 16-bit lower part of an - address. It is used for 'call' instruction to specify the symbol - address without any special transformation (due to memory bank - window). - - -- : BFD_RELOC_M68HC11_PAGE - Motorola 68HC11 reloc. This is a 8-bit reloc that specifies the - page number of an address. It is used by 'call' instruction to - specify the page number of the symbol. - - -- : BFD_RELOC_M68HC11_24 - Motorola 68HC11 reloc. This is a 24-bit reloc that represents the - address with a 16-bit value and a 8-bit page number. The symbol - address is transformed to follow the 16K memory bank of 68HC12 - (seen as mapped in the window). - - -- : BFD_RELOC_M68HC12_5B - Motorola 68HC12 reloc. This is the 5 bits of a value. - - -- : BFD_RELOC_16C_NUM08 - -- : BFD_RELOC_16C_NUM08_C - -- : BFD_RELOC_16C_NUM16 - -- : BFD_RELOC_16C_NUM16_C - -- : BFD_RELOC_16C_NUM32 - -- : BFD_RELOC_16C_NUM32_C - -- : BFD_RELOC_16C_DISP04 - -- : BFD_RELOC_16C_DISP04_C - -- : BFD_RELOC_16C_DISP08 - -- : BFD_RELOC_16C_DISP08_C - -- : BFD_RELOC_16C_DISP16 - -- : BFD_RELOC_16C_DISP16_C - -- : BFD_RELOC_16C_DISP24 - -- : BFD_RELOC_16C_DISP24_C - -- : BFD_RELOC_16C_DISP24a - -- : BFD_RELOC_16C_DISP24a_C - -- : BFD_RELOC_16C_REG04 - -- : BFD_RELOC_16C_REG04_C - -- : BFD_RELOC_16C_REG04a - -- : BFD_RELOC_16C_REG04a_C - -- : BFD_RELOC_16C_REG14 - -- : BFD_RELOC_16C_REG14_C - -- : BFD_RELOC_16C_REG16 - -- : BFD_RELOC_16C_REG16_C - -- : BFD_RELOC_16C_REG20 - -- : BFD_RELOC_16C_REG20_C - -- : BFD_RELOC_16C_ABS20 - -- : BFD_RELOC_16C_ABS20_C - -- : BFD_RELOC_16C_ABS24 - -- : BFD_RELOC_16C_ABS24_C - -- : BFD_RELOC_16C_IMM04 - -- : BFD_RELOC_16C_IMM04_C - -- : BFD_RELOC_16C_IMM16 - -- : BFD_RELOC_16C_IMM16_C - -- : BFD_RELOC_16C_IMM20 - -- : BFD_RELOC_16C_IMM20_C - -- : BFD_RELOC_16C_IMM24 - -- : BFD_RELOC_16C_IMM24_C - -- : BFD_RELOC_16C_IMM32 - -- : BFD_RELOC_16C_IMM32_C - NS CR16C Relocations. - - -- : BFD_RELOC_CRX_REL4 - -- : BFD_RELOC_CRX_REL8 - -- : BFD_RELOC_CRX_REL8_CMP - -- : BFD_RELOC_CRX_REL16 - -- : BFD_RELOC_CRX_REL24 - -- : BFD_RELOC_CRX_REL32 - -- : BFD_RELOC_CRX_REGREL12 - -- : BFD_RELOC_CRX_REGREL22 - -- : BFD_RELOC_CRX_REGREL28 - -- : BFD_RELOC_CRX_REGREL32 - -- : BFD_RELOC_CRX_ABS16 - -- : BFD_RELOC_CRX_ABS32 - -- : BFD_RELOC_CRX_NUM8 - -- : BFD_RELOC_CRX_NUM16 - -- : BFD_RELOC_CRX_NUM32 - -- : BFD_RELOC_CRX_IMM16 - -- : BFD_RELOC_CRX_IMM32 - -- : BFD_RELOC_CRX_SWITCH8 - -- : BFD_RELOC_CRX_SWITCH16 - -- : BFD_RELOC_CRX_SWITCH32 - NS CRX Relocations. - - -- : BFD_RELOC_CRIS_BDISP8 - -- : BFD_RELOC_CRIS_UNSIGNED_5 - -- : BFD_RELOC_CRIS_SIGNED_6 - -- : BFD_RELOC_CRIS_UNSIGNED_6 - -- : BFD_RELOC_CRIS_SIGNED_8 - -- : BFD_RELOC_CRIS_UNSIGNED_8 - -- : BFD_RELOC_CRIS_SIGNED_16 - -- : BFD_RELOC_CRIS_UNSIGNED_16 - -- : BFD_RELOC_CRIS_LAPCQ_OFFSET - -- : BFD_RELOC_CRIS_UNSIGNED_4 - These relocs are only used within the CRIS assembler. They are not - (at present) written to any object files. - - -- : BFD_RELOC_CRIS_COPY - -- : BFD_RELOC_CRIS_GLOB_DAT - -- : BFD_RELOC_CRIS_JUMP_SLOT - -- : BFD_RELOC_CRIS_RELATIVE - Relocs used in ELF shared libraries for CRIS. - - -- : BFD_RELOC_CRIS_32_GOT - 32-bit offset to symbol-entry within GOT. - - -- : BFD_RELOC_CRIS_16_GOT - 16-bit offset to symbol-entry within GOT. - - -- : BFD_RELOC_CRIS_32_GOTPLT - 32-bit offset to symbol-entry within GOT, with PLT handling. - - -- : BFD_RELOC_CRIS_16_GOTPLT - 16-bit offset to symbol-entry within GOT, with PLT handling. - - -- : BFD_RELOC_CRIS_32_GOTREL - 32-bit offset to symbol, relative to GOT. - - -- : BFD_RELOC_CRIS_32_PLT_GOTREL - 32-bit offset to symbol with PLT entry, relative to GOT. - - -- : BFD_RELOC_CRIS_32_PLT_PCREL - 32-bit offset to symbol with PLT entry, relative to this - relocation. - - -- : BFD_RELOC_860_COPY - -- : BFD_RELOC_860_GLOB_DAT - -- : BFD_RELOC_860_JUMP_SLOT - -- : BFD_RELOC_860_RELATIVE - -- : BFD_RELOC_860_PC26 - -- : BFD_RELOC_860_PLT26 - -- : BFD_RELOC_860_PC16 - -- : BFD_RELOC_860_LOW0 - -- : BFD_RELOC_860_SPLIT0 - -- : BFD_RELOC_860_LOW1 - -- : BFD_RELOC_860_SPLIT1 - -- : BFD_RELOC_860_LOW2 - -- : BFD_RELOC_860_SPLIT2 - -- : BFD_RELOC_860_LOW3 - -- : BFD_RELOC_860_LOGOT0 - -- : BFD_RELOC_860_SPGOT0 - -- : BFD_RELOC_860_LOGOT1 - -- : BFD_RELOC_860_SPGOT1 - -- : BFD_RELOC_860_LOGOTOFF0 - -- : BFD_RELOC_860_SPGOTOFF0 - -- : BFD_RELOC_860_LOGOTOFF1 - -- : BFD_RELOC_860_SPGOTOFF1 - -- : BFD_RELOC_860_LOGOTOFF2 - -- : BFD_RELOC_860_LOGOTOFF3 - -- : BFD_RELOC_860_LOPC - -- : BFD_RELOC_860_HIGHADJ - -- : BFD_RELOC_860_HAGOT - -- : BFD_RELOC_860_HAGOTOFF - -- : BFD_RELOC_860_HAPC - -- : BFD_RELOC_860_HIGH - -- : BFD_RELOC_860_HIGOT - -- : BFD_RELOC_860_HIGOTOFF - Intel i860 Relocations. - - -- : BFD_RELOC_OPENRISC_ABS_26 - -- : BFD_RELOC_OPENRISC_REL_26 - OpenRISC Relocations. - - -- : BFD_RELOC_H8_DIR16A8 - -- : BFD_RELOC_H8_DIR16R8 - -- : BFD_RELOC_H8_DIR24A8 - -- : BFD_RELOC_H8_DIR24R8 - -- : BFD_RELOC_H8_DIR32A16 - H8 elf Relocations. - - -- : BFD_RELOC_XSTORMY16_REL_12 - -- : BFD_RELOC_XSTORMY16_12 - -- : BFD_RELOC_XSTORMY16_24 - -- : BFD_RELOC_XSTORMY16_FPTR16 - Sony Xstormy16 Relocations. - - -- : BFD_RELOC_VAX_GLOB_DAT - -- : BFD_RELOC_VAX_JMP_SLOT - -- : BFD_RELOC_VAX_RELATIVE - Relocations used by VAX ELF. - - -- : BFD_RELOC_MSP430_10_PCREL - -- : BFD_RELOC_MSP430_16_PCREL - -- : BFD_RELOC_MSP430_16 - -- : BFD_RELOC_MSP430_16_PCREL_BYTE - -- : BFD_RELOC_MSP430_16_BYTE - -- : BFD_RELOC_MSP430_2X_PCREL - -- : BFD_RELOC_MSP430_RL_PCREL - msp430 specific relocation codes - - -- : BFD_RELOC_IQ2000_OFFSET_16 - -- : BFD_RELOC_IQ2000_OFFSET_21 - -- : BFD_RELOC_IQ2000_UHI16 - IQ2000 Relocations. - - -- : BFD_RELOC_XTENSA_RTLD - Special Xtensa relocation used only by PLT entries in ELF shared - objects to indicate that the runtime linker should set the value - to one of its own internal functions or data structures. - - -- : BFD_RELOC_XTENSA_GLOB_DAT - -- : BFD_RELOC_XTENSA_JMP_SLOT - -- : BFD_RELOC_XTENSA_RELATIVE - Xtensa relocations for ELF shared objects. - - -- : BFD_RELOC_XTENSA_PLT - Xtensa relocation used in ELF object files for symbols that may - require PLT entries. Otherwise, this is just a generic 32-bit - relocation. - - -- : BFD_RELOC_XTENSA_DIFF8 - -- : BFD_RELOC_XTENSA_DIFF16 - -- : BFD_RELOC_XTENSA_DIFF32 - Xtensa relocations to mark the difference of two local symbols. - These are only needed to support linker relaxation and can be - ignored when not relaxing. The field is set to the value of the - difference assuming no relaxation. The relocation encodes the - position of the first symbol so the linker can determine whether - to adjust the field value. - - -- : BFD_RELOC_XTENSA_SLOT0_OP - -- : BFD_RELOC_XTENSA_SLOT1_OP - -- : BFD_RELOC_XTENSA_SLOT2_OP - -- : BFD_RELOC_XTENSA_SLOT3_OP - -- : BFD_RELOC_XTENSA_SLOT4_OP - -- : BFD_RELOC_XTENSA_SLOT5_OP - -- : BFD_RELOC_XTENSA_SLOT6_OP - -- : BFD_RELOC_XTENSA_SLOT7_OP - -- : BFD_RELOC_XTENSA_SLOT8_OP - -- : BFD_RELOC_XTENSA_SLOT9_OP - -- : BFD_RELOC_XTENSA_SLOT10_OP - -- : BFD_RELOC_XTENSA_SLOT11_OP - -- : BFD_RELOC_XTENSA_SLOT12_OP - -- : BFD_RELOC_XTENSA_SLOT13_OP - -- : BFD_RELOC_XTENSA_SLOT14_OP - Generic Xtensa relocations for instruction operands. Only the slot - number is encoded in the relocation. The relocation applies to the - last PC-relative immediate operand, or if there are no PC-relative - immediates, to the last immediate operand. - - -- : BFD_RELOC_XTENSA_SLOT0_ALT - -- : BFD_RELOC_XTENSA_SLOT1_ALT - -- : BFD_RELOC_XTENSA_SLOT2_ALT - -- : BFD_RELOC_XTENSA_SLOT3_ALT - -- : BFD_RELOC_XTENSA_SLOT4_ALT - -- : BFD_RELOC_XTENSA_SLOT5_ALT - -- : BFD_RELOC_XTENSA_SLOT6_ALT - -- : BFD_RELOC_XTENSA_SLOT7_ALT - -- : BFD_RELOC_XTENSA_SLOT8_ALT - -- : BFD_RELOC_XTENSA_SLOT9_ALT - -- : BFD_RELOC_XTENSA_SLOT10_ALT - -- : BFD_RELOC_XTENSA_SLOT11_ALT - -- : BFD_RELOC_XTENSA_SLOT12_ALT - -- : BFD_RELOC_XTENSA_SLOT13_ALT - -- : BFD_RELOC_XTENSA_SLOT14_ALT - Alternate Xtensa relocations. Only the slot is encoded in the - relocation. The meaning of these relocations is opcode-specific. - - -- : BFD_RELOC_XTENSA_OP0 - -- : BFD_RELOC_XTENSA_OP1 - -- : BFD_RELOC_XTENSA_OP2 - Xtensa relocations for backward compatibility. These have all been - replaced by BFD_RELOC_XTENSA_SLOT0_OP. - - -- : BFD_RELOC_XTENSA_ASM_EXPAND - Xtensa relocation to mark that the assembler expanded the - instructions from an original target. The expansion size is - encoded in the reloc size. - - -- : BFD_RELOC_XTENSA_ASM_SIMPLIFY - Xtensa relocation to mark that the linker should simplify - assembler-expanded instructions. This is commonly used internally - by the linker after analysis of a BFD_RELOC_XTENSA_ASM_EXPAND. - - - typedef enum bfd_reloc_code_real bfd_reloc_code_real_type; - -2.11.0.2 `bfd_reloc_type_lookup' -................................ - -*Synopsis* - reloc_howto_type *bfd_reloc_type_lookup - (bfd *abfd, bfd_reloc_code_real_type code); - *Description* -Return a pointer to a howto structure which, when invoked, will perform -the relocation CODE on data from the architecture noted. - -2.11.0.3 `bfd_default_reloc_type_lookup' -........................................ - -*Synopsis* - reloc_howto_type *bfd_default_reloc_type_lookup - (bfd *abfd, bfd_reloc_code_real_type code); - *Description* -Provides a default relocation lookup routine for any architecture. - -2.11.0.4 `bfd_get_reloc_code_name' -.................................. - -*Synopsis* - const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code); - *Description* -Provides a printable name for the supplied relocation code. Useful -mainly for printing error messages. - -2.11.0.5 `bfd_generic_relax_section' -.................................... - -*Synopsis* - bfd_boolean bfd_generic_relax_section - (bfd *abfd, - asection *section, - struct bfd_link_info *, - bfd_boolean *); - *Description* -Provides default handling for relaxing for back ends which don't do -relaxing. - -2.11.0.6 `bfd_generic_gc_sections' -.................................. - -*Synopsis* - bfd_boolean bfd_generic_gc_sections - (bfd *, struct bfd_link_info *); - *Description* -Provides default handling for relaxing for back ends which don't do -section gc - i.e., does nothing. - -2.11.0.7 `bfd_generic_merge_sections' -..................................... - -*Synopsis* - bfd_boolean bfd_generic_merge_sections - (bfd *, struct bfd_link_info *); - *Description* -Provides default handling for SEC_MERGE section merging for back ends -which don't have SEC_MERGE support - i.e., does nothing. - -2.11.0.8 `bfd_generic_get_relocated_section_contents' -..................................................... - -*Synopsis* - bfd_byte *bfd_generic_get_relocated_section_contents - (bfd *abfd, - struct bfd_link_info *link_info, - struct bfd_link_order *link_order, - bfd_byte *data, - bfd_boolean relocatable, - asymbol **symbols); - *Description* -Provides default handling of relocation effort for back ends which -can't be bothered to do it efficiently. - - -File: bfd.info, Node: Core Files, Next: Targets, Prev: Relocations, Up: BFD front end - -2.12 Core files -=============== - -*Description* -These are functions pertaining to core files. - -2.12.0.1 `bfd_core_file_failing_command' -........................................ - -*Synopsis* - const char *bfd_core_file_failing_command (bfd *abfd); - *Description* -Return a read-only string explaining which program was running when it -failed and produced the core file ABFD. - -2.12.0.2 `bfd_core_file_failing_signal' -....................................... - -*Synopsis* - int bfd_core_file_failing_signal (bfd *abfd); - *Description* -Returns the signal number which caused the core dump which generated -the file the BFD ABFD is attached to. - -2.12.0.3 `core_file_matches_executable_p' -......................................... - -*Synopsis* - bfd_boolean core_file_matches_executable_p - (bfd *core_bfd, bfd *exec_bfd); - *Description* -Return `TRUE' if the core file attached to CORE_BFD was generated by a -run of the executable file attached to EXEC_BFD, `FALSE' otherwise. - - -File: bfd.info, Node: Targets, Next: Architectures, Prev: Core Files, Up: BFD front end - -2.13 Targets -============ - -*Description* -Each port of BFD to a different machine requires the creation of a -target back end. All the back end provides to the root part of BFD is a -structure containing pointers to functions which perform certain low -level operations on files. BFD translates the applications's requests -through a pointer into calls to the back end routines. - - When a file is opened with `bfd_openr', its format and target are -unknown. BFD uses various mechanisms to determine how to interpret the -file. The operations performed are: - - * Create a BFD by calling the internal routine `_bfd_new_bfd', then - call `bfd_find_target' with the target string supplied to - `bfd_openr' and the new BFD pointer. - - * If a null target string was provided to `bfd_find_target', look up - the environment variable `GNUTARGET' and use that as the target - string. - - * If the target string is still `NULL', or the target string is - `default', then use the first item in the target vector as the - target type, and set `target_defaulted' in the BFD to cause - `bfd_check_format' to loop through all the targets. *Note - bfd_target::. *Note Formats::. - - * Otherwise, inspect the elements in the target vector one by one, - until a match on target name is found. When found, use it. - - * Otherwise return the error `bfd_error_invalid_target' to - `bfd_openr'. - - * `bfd_openr' attempts to open the file using `bfd_open_file', and - returns the BFD. - Once the BFD has been opened and the target selected, the file -format may be determined. This is done by calling `bfd_check_format' on -the BFD with a suggested format. If `target_defaulted' has been set, -each possible target type is tried to see if it recognizes the -specified format. `bfd_check_format' returns `TRUE' when the caller -guesses right. - -* Menu: - -* bfd_target:: - - -File: bfd.info, Node: bfd_target, Prev: Targets, Up: Targets - -2.13.1 bfd_target ------------------ - -*Description* -This structure contains everything that BFD knows about a target. It -includes things like its byte order, name, and which routines to call -to do various operations. - - Every BFD points to a target structure with its `xvec' member. - - The macros below are used to dispatch to functions through the -`bfd_target' vector. They are used in a number of macros further down -in `bfd.h', and are also used when calling various routines by hand -inside the BFD implementation. The ARGLIST argument must be -parenthesized; it contains all the arguments to the called function. - - They make the documentation (more) unpleasant to read, so if someone -wants to fix this and not break the above, please do. - #define BFD_SEND(bfd, message, arglist) \ - ((*((bfd)->xvec->message)) arglist) - - #ifdef DEBUG_BFD_SEND - #undef BFD_SEND - #define BFD_SEND(bfd, message, arglist) \ - (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \ - ((*((bfd)->xvec->message)) arglist) : \ - (bfd_assert (__FILE__,__LINE__), NULL)) - #endif - For operations which index on the BFD format: - #define BFD_SEND_FMT(bfd, message, arglist) \ - (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) - - #ifdef DEBUG_BFD_SEND - #undef BFD_SEND_FMT - #define BFD_SEND_FMT(bfd, message, arglist) \ - (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \ - (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) : \ - (bfd_assert (__FILE__,__LINE__), NULL)) - #endif - This is the structure which defines the type of BFD this is. The -`xvec' member of the struct `bfd' itself points here. Each module that -implements access to a different target under BFD, defines one of these. - - FIXME, these names should be rationalised with the names of the -entry points which call them. Too bad we can't have one macro to define -them both! - enum bfd_flavour - { - bfd_target_unknown_flavour, - bfd_target_aout_flavour, - bfd_target_coff_flavour, - bfd_target_ecoff_flavour, - bfd_target_xcoff_flavour, - bfd_target_elf_flavour, - bfd_target_ieee_flavour, - bfd_target_nlm_flavour, - bfd_target_oasys_flavour, - bfd_target_tekhex_flavour, - bfd_target_srec_flavour, - bfd_target_ihex_flavour, - bfd_target_som_flavour, - bfd_target_os9k_flavour, - bfd_target_versados_flavour, - bfd_target_msdos_flavour, - bfd_target_ovax_flavour, - bfd_target_evax_flavour, - bfd_target_mmo_flavour, - bfd_target_mach_o_flavour, - bfd_target_pef_flavour, - bfd_target_pef_xlib_flavour, - bfd_target_sym_flavour - }; - - enum bfd_endian { BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN }; - - /* Forward declaration. */ - typedef struct bfd_link_info _bfd_link_info; - - typedef struct bfd_target - { - /* Identifies the kind of target, e.g., SunOS4, Ultrix, etc. */ - char *name; - - /* The "flavour" of a back end is a general indication about - the contents of a file. */ - enum bfd_flavour flavour; - - /* The order of bytes within the data area of a file. */ - enum bfd_endian byteorder; - - /* The order of bytes within the header parts of a file. */ - enum bfd_endian header_byteorder; - - /* A mask of all the flags which an executable may have set - - from the set `BFD_NO_FLAGS', `HAS_RELOC', ...`D_PAGED'. */ - flagword object_flags; - - /* A mask of all the flags which a section may have set - from - the set `SEC_NO_FLAGS', `SEC_ALLOC', ...`SET_NEVER_LOAD'. */ - flagword section_flags; - - /* The character normally found at the front of a symbol. - (if any), perhaps `_'. */ - char symbol_leading_char; - - /* The pad character for file names within an archive header. */ - char ar_pad_char; - - /* The maximum number of characters in an archive header. */ - unsigned short ar_max_namelen; - - /* Entries for byte swapping for data. These are different from the - other entry points, since they don't take a BFD as the first argument. - Certain other handlers could do the same. */ - bfd_uint64_t (*bfd_getx64) (const void *); - bfd_int64_t (*bfd_getx_signed_64) (const void *); - void (*bfd_putx64) (bfd_uint64_t, void *); - bfd_vma (*bfd_getx32) (const void *); - bfd_signed_vma (*bfd_getx_signed_32) (const void *); - void (*bfd_putx32) (bfd_vma, void *); - bfd_vma (*bfd_getx16) (const void *); - bfd_signed_vma (*bfd_getx_signed_16) (const void *); - void (*bfd_putx16) (bfd_vma, void *); - - /* Byte swapping for the headers. */ - bfd_uint64_t (*bfd_h_getx64) (const void *); - bfd_int64_t (*bfd_h_getx_signed_64) (const void *); - void (*bfd_h_putx64) (bfd_uint64_t, void *); - bfd_vma (*bfd_h_getx32) (const void *); - bfd_signed_vma (*bfd_h_getx_signed_32) (const void *); - void (*bfd_h_putx32) (bfd_vma, void *); - bfd_vma (*bfd_h_getx16) (const void *); - bfd_signed_vma (*bfd_h_getx_signed_16) (const void *); - void (*bfd_h_putx16) (bfd_vma, void *); - - /* Format dependent routines: these are vectors of entry points - within the target vector structure, one for each format to check. */ - - /* Check the format of a file being read. Return a `bfd_target *' or zero. */ - const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *); - - /* Set the format of a file being written. */ - bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *); - - /* Write cached information into a file being written, at `bfd_close'. */ - bfd_boolean (*_bfd_write_contents[bfd_type_end]) (bfd *); - The general target vector. These vectors are initialized using the -BFD_JUMP_TABLE macros. - - /* Generic entry points. */ - #define BFD_JUMP_TABLE_GENERIC(NAME) \ - NAME##_close_and_cleanup, \ - NAME##_bfd_free_cached_info, \ - NAME##_new_section_hook, \ - NAME##_get_section_contents, \ - NAME##_get_section_contents_in_window - - /* Called when the BFD is being closed to do any necessary cleanup. */ - bfd_boolean (*_close_and_cleanup) (bfd *); - /* Ask the BFD to free all cached information. */ - bfd_boolean (*_bfd_free_cached_info) (bfd *); - /* Called when a new section is created. */ - bfd_boolean (*_new_section_hook) (bfd *, sec_ptr); - /* Read the contents of a section. */ - bfd_boolean (*_bfd_get_section_contents) - (bfd *, sec_ptr, void *, file_ptr, bfd_size_type); - bfd_boolean (*_bfd_get_section_contents_in_window) - (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type); - - /* Entry points to copy private data. */ - #define BFD_JUMP_TABLE_COPY(NAME) \ - NAME##_bfd_copy_private_bfd_data, \ - NAME##_bfd_merge_private_bfd_data, \ - NAME##_bfd_copy_private_section_data, \ - NAME##_bfd_copy_private_symbol_data, \ - NAME##_bfd_copy_private_header_data, \ - NAME##_bfd_set_private_flags, \ - NAME##_bfd_print_private_bfd_data - - /* Called to copy BFD general private data from one object file - to another. */ - bfd_boolean (*_bfd_copy_private_bfd_data) (bfd *, bfd *); - /* Called to merge BFD general private data from one object file - to a common output file when linking. */ - bfd_boolean (*_bfd_merge_private_bfd_data) (bfd *, bfd *); - /* Called to copy BFD private section data from one object file - to another. */ - bfd_boolean (*_bfd_copy_private_section_data) - (bfd *, sec_ptr, bfd *, sec_ptr); - /* Called to copy BFD private symbol data from one symbol - to another. */ - bfd_boolean (*_bfd_copy_private_symbol_data) - (bfd *, asymbol *, bfd *, asymbol *); - /* Called to copy BFD private header data from one object file - to another. */ - bfd_boolean (*_bfd_copy_private_header_data) - (bfd *, bfd *); - /* Called to set private backend flags. */ - bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword); - - /* Called to print private BFD data. */ - bfd_boolean (*_bfd_print_private_bfd_data) (bfd *, void *); - - /* Core file entry points. */ - #define BFD_JUMP_TABLE_CORE(NAME) \ - NAME##_core_file_failing_command, \ - NAME##_core_file_failing_signal, \ - NAME##_core_file_matches_executable_p - - char * (*_core_file_failing_command) (bfd *); - int (*_core_file_failing_signal) (bfd *); - bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *); - - /* Archive entry points. */ - #define BFD_JUMP_TABLE_ARCHIVE(NAME) \ - NAME##_slurp_armap, \ - NAME##_slurp_extended_name_table, \ - NAME##_construct_extended_name_table, \ - NAME##_truncate_arname, \ - NAME##_write_armap, \ - NAME##_read_ar_hdr, \ - NAME##_openr_next_archived_file, \ - NAME##_get_elt_at_index, \ - NAME##_generic_stat_arch_elt, \ - NAME##_update_armap_timestamp - - bfd_boolean (*_bfd_slurp_armap) (bfd *); - bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *); - bfd_boolean (*_bfd_construct_extended_name_table) - (bfd *, char **, bfd_size_type *, const char **); - void (*_bfd_truncate_arname) (bfd *, const char *, char *); - bfd_boolean (*write_armap) - (bfd *, unsigned int, struct orl *, unsigned int, int); - void * (*_bfd_read_ar_hdr_fn) (bfd *); - bfd * (*openr_next_archived_file) (bfd *, bfd *); - #define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i)) - bfd * (*_bfd_get_elt_at_index) (bfd *, symindex); - int (*_bfd_stat_arch_elt) (bfd *, struct stat *); - bfd_boolean (*_bfd_update_armap_timestamp) (bfd *); - - /* Entry points used for symbols. */ - #define BFD_JUMP_TABLE_SYMBOLS(NAME) \ - NAME##_get_symtab_upper_bound, \ - NAME##_canonicalize_symtab, \ - NAME##_make_empty_symbol, \ - NAME##_print_symbol, \ - NAME##_get_symbol_info, \ - NAME##_bfd_is_local_label_name, \ - NAME##_bfd_is_target_special_symbol, \ - NAME##_get_lineno, \ - NAME##_find_nearest_line, \ - NAME##_bfd_make_debug_symbol, \ - NAME##_read_minisymbols, \ - NAME##_minisymbol_to_symbol - - long (*_bfd_get_symtab_upper_bound) (bfd *); - long (*_bfd_canonicalize_symtab) - (bfd *, struct bfd_symbol **); - struct bfd_symbol * - (*_bfd_make_empty_symbol) (bfd *); - void (*_bfd_print_symbol) - (bfd *, void *, struct bfd_symbol *, bfd_print_symbol_type); - #define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e)) - void (*_bfd_get_symbol_info) - (bfd *, struct bfd_symbol *, symbol_info *); - #define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e)) - bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *); - bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *); - alent * (*_get_lineno) (bfd *, struct bfd_symbol *); - bfd_boolean (*_bfd_find_nearest_line) - (bfd *, struct bfd_section *, struct bfd_symbol **, bfd_vma, - const char **, const char **, unsigned int *); - /* Back-door to allow format-aware applications to create debug symbols - while using BFD for everything else. Currently used by the assembler - when creating COFF files. */ - asymbol * (*_bfd_make_debug_symbol) - (bfd *, void *, unsigned long size); - #define bfd_read_minisymbols(b, d, m, s) \ - BFD_SEND (b, _read_minisymbols, (b, d, m, s)) - long (*_read_minisymbols) - (bfd *, bfd_boolean, void **, unsigned int *); - #define bfd_minisymbol_to_symbol(b, d, m, f) \ - BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f)) - asymbol * (*_minisymbol_to_symbol) - (bfd *, bfd_boolean, const void *, asymbol *); - - /* Routines for relocs. */ - #define BFD_JUMP_TABLE_RELOCS(NAME) \ - NAME##_get_reloc_upper_bound, \ - NAME##_canonicalize_reloc, \ - NAME##_bfd_reloc_type_lookup - - long (*_get_reloc_upper_bound) (bfd *, sec_ptr); - long (*_bfd_canonicalize_reloc) - (bfd *, sec_ptr, arelent **, struct bfd_symbol **); - /* See documentation on reloc types. */ - reloc_howto_type * - (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type); - - /* Routines used when writing an object file. */ - #define BFD_JUMP_TABLE_WRITE(NAME) \ - NAME##_set_arch_mach, \ - NAME##_set_section_contents - - bfd_boolean (*_bfd_set_arch_mach) - (bfd *, enum bfd_architecture, unsigned long); - bfd_boolean (*_bfd_set_section_contents) - (bfd *, sec_ptr, const void *, file_ptr, bfd_size_type); - - /* Routines used by the linker. */ - #define BFD_JUMP_TABLE_LINK(NAME) \ - NAME##_sizeof_headers, \ - NAME##_bfd_get_relocated_section_contents, \ - NAME##_bfd_relax_section, \ - NAME##_bfd_link_hash_table_create, \ - NAME##_bfd_link_hash_table_free, \ - NAME##_bfd_link_add_symbols, \ - NAME##_bfd_link_just_syms, \ - NAME##_bfd_final_link, \ - NAME##_bfd_link_split_section, \ - NAME##_bfd_gc_sections, \ - NAME##_bfd_merge_sections, \ - NAME##_bfd_is_group_section, \ - NAME##_bfd_discard_group, \ - NAME##_section_already_linked \ - - int (*_bfd_sizeof_headers) (bfd *, bfd_boolean); - bfd_byte * (*_bfd_get_relocated_section_contents) - (bfd *, struct bfd_link_info *, struct bfd_link_order *, - bfd_byte *, bfd_boolean, struct bfd_symbol **); - - bfd_boolean (*_bfd_relax_section) - (bfd *, struct bfd_section *, struct bfd_link_info *, bfd_boolean *); - - /* Create a hash table for the linker. Different backends store - different information in this table. */ - struct bfd_link_hash_table * - (*_bfd_link_hash_table_create) (bfd *); - - /* Release the memory associated with the linker hash table. */ - void (*_bfd_link_hash_table_free) (struct bfd_link_hash_table *); - - /* Add symbols from this object file into the hash table. */ - bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *); - - /* Indicate that we are only retrieving symbol values from this section. */ - void (*_bfd_link_just_syms) (asection *, struct bfd_link_info *); - - /* Do a link based on the link_order structures attached to each - section of the BFD. */ - bfd_boolean (*_bfd_final_link) (bfd *, struct bfd_link_info *); - - /* Should this section be split up into smaller pieces during linking. */ - bfd_boolean (*_bfd_link_split_section) (bfd *, struct bfd_section *); - - /* Remove sections that are not referenced from the output. */ - bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *); - - /* Attempt to merge SEC_MERGE sections. */ - bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *); - - /* Is this section a member of a group? */ - bfd_boolean (*_bfd_is_group_section) (bfd *, const struct bfd_section *); - - /* Discard members of a group. */ - bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *); - - /* Check if SEC has been already linked during a reloceatable or - final link. */ - void (*_section_already_linked) (bfd *, struct bfd_section *); - - /* Routines to handle dynamic symbols and relocs. */ - #define BFD_JUMP_TABLE_DYNAMIC(NAME) \ - NAME##_get_dynamic_symtab_upper_bound, \ - NAME##_canonicalize_dynamic_symtab, \ - NAME##_get_synthetic_symtab, \ - NAME##_get_dynamic_reloc_upper_bound, \ - NAME##_canonicalize_dynamic_reloc - - /* Get the amount of memory required to hold the dynamic symbols. */ - long (*_bfd_get_dynamic_symtab_upper_bound) (bfd *); - /* Read in the dynamic symbols. */ - long (*_bfd_canonicalize_dynamic_symtab) - (bfd *, struct bfd_symbol **); - /* Create synthetized symbols. */ - long (*_bfd_get_synthetic_symtab) - (bfd *, long, struct bfd_symbol **, long, struct bfd_symbol **, - struct bfd_symbol **); - /* Get the amount of memory required to hold the dynamic relocs. */ - long (*_bfd_get_dynamic_reloc_upper_bound) (bfd *); - /* Read in the dynamic relocs. */ - long (*_bfd_canonicalize_dynamic_reloc) - (bfd *, arelent **, struct bfd_symbol **); - A pointer to an alternative bfd_target in case the current one is not -satisfactory. This can happen when the target cpu supports both big -and little endian code, and target chosen by the linker has the wrong -endianness. The function open_output() in ld/ldlang.c uses this field -to find an alternative output format that is suitable. - /* Opposite endian version of this target. */ - const struct bfd_target * alternative_target; - - /* Data for use by back-end routines, which isn't - generic enough to belong in this structure. */ - const void *backend_data; - - } bfd_target; - -2.13.1.1 `bfd_set_default_target' -................................. - -*Synopsis* - bfd_boolean bfd_set_default_target (const char *name); - *Description* -Set the default target vector to use when recognizing a BFD. This -takes the name of the target, which may be a BFD target name or a -configuration triplet. - -2.13.1.2 `bfd_find_target' -.......................... - -*Synopsis* - const bfd_target *bfd_find_target (const char *target_name, bfd *abfd); - *Description* -Return a pointer to the transfer vector for the object target named -TARGET_NAME. If TARGET_NAME is `NULL', choose the one in the -environment variable `GNUTARGET'; if that is null or not defined, then -choose the first entry in the target list. Passing in the string -"default" or setting the environment variable to "default" will cause -the first entry in the target list to be returned, and -"target_defaulted" will be set in the BFD. This causes -`bfd_check_format' to loop over all the targets to find the one that -matches the file being read. - -2.13.1.3 `bfd_target_list' -.......................... - -*Synopsis* - const char ** bfd_target_list (void); - *Description* -Return a freshly malloced NULL-terminated vector of the names of all -the valid BFD targets. Do not modify the names. - -2.13.1.4 `bfd_seach_for_target' -............................... - -*Synopsis* - const bfd_target *bfd_search_for_target - (int (*search_func) (const bfd_target *, void *), - void *); - *Description* -Return a pointer to the first transfer vector in the list of transfer -vectors maintained by BFD that produces a non-zero result when passed -to the function SEARCH_FUNC. The parameter DATA is passed, unexamined, -to the search function. - - -File: bfd.info, Node: Architectures, Next: Opening and Closing, Prev: Targets, Up: BFD front end - -2.14 Architectures -================== - -BFD keeps one atom in a BFD describing the architecture of the data -attached to the BFD: a pointer to a `bfd_arch_info_type'. - - Pointers to structures can be requested independently of a BFD so -that an architecture's information can be interrogated without access -to an open BFD. - - The architecture information is provided by each architecture -package. The set of default architectures is selected by the macro -`SELECT_ARCHITECTURES'. This is normally set up in the -`config/TARGET.mt' file of your choice. If the name is not defined, -then all the architectures supported are included. - - When BFD starts up, all the architectures are called with an -initialize method. It is up to the architecture back end to insert as -many items into the list of architectures as it wants to; generally -this would be one for each machine and one for the default case (an -item with a machine field of 0). - - BFD's idea of an architecture is implemented in `archures.c'. - -2.14.1 bfd_architecture ------------------------ - -*Description* -This enum gives the object file's CPU architecture, in a global -sense--i.e., what processor family does it belong to? Another field -indicates which processor within the family is in use. The machine -gives a number which distinguishes different versions of the -architecture, containing, for example, 2 and 3 for Intel i960 KA and -i960 KB, and 68020 and 68030 for Motorola 68020 and 68030. - enum bfd_architecture - { - bfd_arch_unknown, /* File arch not known. */ - bfd_arch_obscure, /* Arch known, not one of these. */ - bfd_arch_m68k, /* Motorola 68xxx */ - #define bfd_mach_m68000 1 - #define bfd_mach_m68008 2 - #define bfd_mach_m68010 3 - #define bfd_mach_m68020 4 - #define bfd_mach_m68030 5 - #define bfd_mach_m68040 6 - #define bfd_mach_m68060 7 - #define bfd_mach_cpu32 8 - #define bfd_mach_mcf5200 9 - #define bfd_mach_mcf5206e 10 - #define bfd_mach_mcf5307 11 - #define bfd_mach_mcf5407 12 - #define bfd_mach_mcf528x 13 - #define bfd_mach_mcfv4e 14 - #define bfd_mach_mcf521x 15 - #define bfd_mach_mcf5249 16 - #define bfd_mach_mcf547x 17 - #define bfd_mach_mcf548x 18 - bfd_arch_vax, /* DEC Vax */ - bfd_arch_i960, /* Intel 960 */ - /* The order of the following is important. - lower number indicates a machine type that - only accepts a subset of the instructions - available to machines with higher numbers. - The exception is the "ca", which is - incompatible with all other machines except - "core". */ - - #define bfd_mach_i960_core 1 - #define bfd_mach_i960_ka_sa 2 - #define bfd_mach_i960_kb_sb 3 - #define bfd_mach_i960_mc 4 - #define bfd_mach_i960_xa 5 - #define bfd_mach_i960_ca 6 - #define bfd_mach_i960_jx 7 - #define bfd_mach_i960_hx 8 - - bfd_arch_or32, /* OpenRISC 32 */ - - bfd_arch_a29k, /* AMD 29000 */ - bfd_arch_sparc, /* SPARC */ - #define bfd_mach_sparc 1 - /* The difference between v8plus and v9 is that v9 is a true 64 bit env. */ - #define bfd_mach_sparc_sparclet 2 - #define bfd_mach_sparc_sparclite 3 - #define bfd_mach_sparc_v8plus 4 - #define bfd_mach_sparc_v8plusa 5 /* with ultrasparc add'ns. */ - #define bfd_mach_sparc_sparclite_le 6 - #define bfd_mach_sparc_v9 7 - #define bfd_mach_sparc_v9a 8 /* with ultrasparc add'ns. */ - #define bfd_mach_sparc_v8plusb 9 /* with cheetah add'ns. */ - #define bfd_mach_sparc_v9b 10 /* with cheetah add'ns. */ - /* Nonzero if MACH has the v9 instruction set. */ - #define bfd_mach_sparc_v9_p(mach) \ - ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9b \ - && (mach) != bfd_mach_sparc_sparclite_le) - /* Nonzero if MACH is a 64 bit sparc architecture. */ - #define bfd_mach_sparc_64bit_p(mach) \ - ((mach) >= bfd_mach_sparc_v9 && (mach) != bfd_mach_sparc_v8plusb) - bfd_arch_mips, /* MIPS Rxxxx */ - #define bfd_mach_mips3000 3000 - #define bfd_mach_mips3900 3900 - #define bfd_mach_mips4000 4000 - #define bfd_mach_mips4010 4010 - #define bfd_mach_mips4100 4100 - #define bfd_mach_mips4111 4111 - #define bfd_mach_mips4120 4120 - #define bfd_mach_mips4300 4300 - #define bfd_mach_mips4400 4400 - #define bfd_mach_mips4600 4600 - #define bfd_mach_mips4650 4650 - #define bfd_mach_mips5000 5000 - #define bfd_mach_mips5400 5400 - #define bfd_mach_mips5500 5500 - #define bfd_mach_mips6000 6000 - #define bfd_mach_mips7000 7000 - #define bfd_mach_mips8000 8000 - #define bfd_mach_mips9000 9000 - #define bfd_mach_mips10000 10000 - #define bfd_mach_mips12000 12000 - #define bfd_mach_mips16 16 - #define bfd_mach_mips5 5 - #define bfd_mach_mips_sb1 12310201 /* octal 'SB', 01 */ - #define bfd_mach_mipsisa32 32 - #define bfd_mach_mipsisa32r2 33 - #define bfd_mach_mipsisa64 64 - #define bfd_mach_mipsisa64r2 65 - bfd_arch_i386, /* Intel 386 */ - #define bfd_mach_i386_i386 1 - #define bfd_mach_i386_i8086 2 - #define bfd_mach_i386_i386_intel_syntax 3 - #define bfd_mach_x86_64 64 - #define bfd_mach_x86_64_intel_syntax 65 - bfd_arch_we32k, /* AT&T WE32xxx */ - bfd_arch_tahoe, /* CCI/Harris Tahoe */ - bfd_arch_i860, /* Intel 860 */ - bfd_arch_i370, /* IBM 360/370 Mainframes */ - bfd_arch_romp, /* IBM ROMP PC/RT */ - bfd_arch_alliant, /* Alliant */ - bfd_arch_convex, /* Convex */ - bfd_arch_m88k, /* Motorola 88xxx */ - bfd_arch_m98k, /* Motorola 98xxx */ - bfd_arch_pyramid, /* Pyramid Technology */ - bfd_arch_h8300, /* Renesas H8/300 (formerly Hitachi H8/300) */ - #define bfd_mach_h8300 1 - #define bfd_mach_h8300h 2 - #define bfd_mach_h8300s 3 - #define bfd_mach_h8300hn 4 - #define bfd_mach_h8300sn 5 - #define bfd_mach_h8300sx 6 - #define bfd_mach_h8300sxn 7 - bfd_arch_pdp11, /* DEC PDP-11 */ - bfd_arch_powerpc, /* PowerPC */ - #define bfd_mach_ppc 32 - #define bfd_mach_ppc64 64 - #define bfd_mach_ppc_403 403 - #define bfd_mach_ppc_403gc 4030 - #define bfd_mach_ppc_505 505 - #define bfd_mach_ppc_601 601 - #define bfd_mach_ppc_602 602 - #define bfd_mach_ppc_603 603 - #define bfd_mach_ppc_ec603e 6031 - #define bfd_mach_ppc_604 604 - #define bfd_mach_ppc_620 620 - #define bfd_mach_ppc_630 630 - #define bfd_mach_ppc_750 750 - #define bfd_mach_ppc_860 860 - #define bfd_mach_ppc_a35 35 - #define bfd_mach_ppc_rs64ii 642 - #define bfd_mach_ppc_rs64iii 643 - #define bfd_mach_ppc_7400 7400 - #define bfd_mach_ppc_e500 500 - bfd_arch_rs6000, /* IBM RS/6000 */ - #define bfd_mach_rs6k 6000 - #define bfd_mach_rs6k_rs1 6001 - #define bfd_mach_rs6k_rsc 6003 - #define bfd_mach_rs6k_rs2 6002 - bfd_arch_hppa, /* HP PA RISC */ - #define bfd_mach_hppa10 10 - #define bfd_mach_hppa11 11 - #define bfd_mach_hppa20 20 - #define bfd_mach_hppa20w 25 - bfd_arch_d10v, /* Mitsubishi D10V */ - #define bfd_mach_d10v 1 - #define bfd_mach_d10v_ts2 2 - #define bfd_mach_d10v_ts3 3 - bfd_arch_d30v, /* Mitsubishi D30V */ - bfd_arch_dlx, /* DLX */ - bfd_arch_m68hc11, /* Motorola 68HC11 */ - bfd_arch_m68hc12, /* Motorola 68HC12 */ - #define bfd_mach_m6812_default 0 - #define bfd_mach_m6812 1 - #define bfd_mach_m6812s 2 - bfd_arch_z8k, /* Zilog Z8000 */ - #define bfd_mach_z8001 1 - #define bfd_mach_z8002 2 - bfd_arch_h8500, /* Renesas H8/500 (formerly Hitachi H8/500) */ - bfd_arch_sh, /* Renesas / SuperH SH (formerly Hitachi SH) */ - #define bfd_mach_sh 1 - #define bfd_mach_sh2 0x20 - #define bfd_mach_sh_dsp 0x2d - #define bfd_mach_sh2a 0x2a - #define bfd_mach_sh2a_nofpu 0x2b - #define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1 - #define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2 - #define bfd_mach_sh2a_or_sh4 0x2a3 - #define bfd_mach_sh2a_or_sh3e 0x2a4 - #define bfd_mach_sh2e 0x2e - #define bfd_mach_sh3 0x30 - #define bfd_mach_sh3_nommu 0x31 - #define bfd_mach_sh3_dsp 0x3d - #define bfd_mach_sh3e 0x3e - #define bfd_mach_sh4 0x40 - #define bfd_mach_sh4_nofpu 0x41 - #define bfd_mach_sh4_nommu_nofpu 0x42 - #define bfd_mach_sh4a 0x4a - #define bfd_mach_sh4a_nofpu 0x4b - #define bfd_mach_sh4al_dsp 0x4d - #define bfd_mach_sh5 0x50 - bfd_arch_alpha, /* Dec Alpha */ - #define bfd_mach_alpha_ev4 0x10 - #define bfd_mach_alpha_ev5 0x20 - #define bfd_mach_alpha_ev6 0x30 - bfd_arch_arm, /* Advanced Risc Machines ARM. */ - #define bfd_mach_arm_unknown 0 - #define bfd_mach_arm_2 1 - #define bfd_mach_arm_2a 2 - #define bfd_mach_arm_3 3 - #define bfd_mach_arm_3M 4 - #define bfd_mach_arm_4 5 - #define bfd_mach_arm_4T 6 - #define bfd_mach_arm_5 7 - #define bfd_mach_arm_5T 8 - #define bfd_mach_arm_5TE 9 - #define bfd_mach_arm_XScale 10 - #define bfd_mach_arm_ep9312 11 - #define bfd_mach_arm_iWMMXt 12 - bfd_arch_ns32k, /* National Semiconductors ns32000 */ - bfd_arch_w65, /* WDC 65816 */ - bfd_arch_tic30, /* Texas Instruments TMS320C30 */ - bfd_arch_tic4x, /* Texas Instruments TMS320C3X/4X */ - #define bfd_mach_tic3x 30 - #define bfd_mach_tic4x 40 - bfd_arch_tic54x, /* Texas Instruments TMS320C54X */ - bfd_arch_tic80, /* TI TMS320c80 (MVP) */ - bfd_arch_v850, /* NEC V850 */ - #define bfd_mach_v850 1 - #define bfd_mach_v850e 'E' - #define bfd_mach_v850e1 '1' - bfd_arch_arc, /* ARC Cores */ - #define bfd_mach_arc_5 5 - #define bfd_mach_arc_6 6 - #define bfd_mach_arc_7 7 - #define bfd_mach_arc_8 8 - bfd_arch_m32r, /* Renesas M32R (formerly Mitsubishi M32R/D) */ - #define bfd_mach_m32r 1 /* For backwards compatibility. */ - #define bfd_mach_m32rx 'x' - #define bfd_mach_m32r2 '2' - bfd_arch_mn10200, /* Matsushita MN10200 */ - bfd_arch_mn10300, /* Matsushita MN10300 */ - #define bfd_mach_mn10300 300 - #define bfd_mach_am33 330 - #define bfd_mach_am33_2 332 - bfd_arch_fr30, - #define bfd_mach_fr30 0x46523330 - bfd_arch_frv, - #define bfd_mach_frv 1 - #define bfd_mach_frvsimple 2 - #define bfd_mach_fr300 300 - #define bfd_mach_fr400 400 - #define bfd_mach_fr450 450 - #define bfd_mach_frvtomcat 499 /* fr500 prototype */ - #define bfd_mach_fr500 500 - #define bfd_mach_fr550 550 - bfd_arch_mcore, - bfd_arch_ia64, /* HP/Intel ia64 */ - #define bfd_mach_ia64_elf64 64 - #define bfd_mach_ia64_elf32 32 - bfd_arch_ip2k, /* Ubicom IP2K microcontrollers. */ - #define bfd_mach_ip2022 1 - #define bfd_mach_ip2022ext 2 - bfd_arch_iq2000, /* Vitesse IQ2000. */ - #define bfd_mach_iq2000 1 - #define bfd_mach_iq10 2 - bfd_arch_pj, - bfd_arch_avr, /* Atmel AVR microcontrollers. */ - #define bfd_mach_avr1 1 - #define bfd_mach_avr2 2 - #define bfd_mach_avr3 3 - #define bfd_mach_avr4 4 - #define bfd_mach_avr5 5 - bfd_arch_cr16c, /* National Semiconductor CompactRISC. */ - #define bfd_mach_cr16c 1 - bfd_arch_crx, /* National Semiconductor CRX. */ - #define bfd_mach_crx 1 - bfd_arch_cris, /* Axis CRIS */ - #define bfd_mach_cris_v0_v10 255 - #define bfd_mach_cris_v32 32 - #define bfd_mach_cris_v10_v32 1032 - bfd_arch_s390, /* IBM s390 */ - #define bfd_mach_s390_31 31 - #define bfd_mach_s390_64 64 - bfd_arch_openrisc, /* OpenRISC */ - bfd_arch_mmix, /* Donald Knuth's educational processor. */ - bfd_arch_xstormy16, - #define bfd_mach_xstormy16 1 - bfd_arch_msp430, /* Texas Instruments MSP430 architecture. */ - #define bfd_mach_msp11 11 - #define bfd_mach_msp110 110 - #define bfd_mach_msp12 12 - #define bfd_mach_msp13 13 - #define bfd_mach_msp14 14 - #define bfd_mach_msp15 15 - #define bfd_mach_msp16 16 - #define bfd_mach_msp31 31 - #define bfd_mach_msp32 32 - #define bfd_mach_msp33 33 - #define bfd_mach_msp41 41 - #define bfd_mach_msp42 42 - #define bfd_mach_msp43 43 - #define bfd_mach_msp44 44 - bfd_arch_xtensa, /* Tensilica's Xtensa cores. */ - #define bfd_mach_xtensa 1 - bfd_arch_maxq, /* Dallas MAXQ 10/20 */ - #define bfd_mach_maxq10 10 - #define bfd_mach_maxq20 20 - bfd_arch_last - }; - -2.14.2 bfd_arch_info --------------------- - -*Description* -This structure contains information on architectures for use within BFD. - - typedef struct bfd_arch_info - { - int bits_per_word; - int bits_per_address; - int bits_per_byte; - enum bfd_architecture arch; - unsigned long mach; - const char *arch_name; - const char *printable_name; - unsigned int section_align_power; - /* TRUE if this is the default machine for the architecture. - The default arch should be the first entry for an arch so that - all the entries for that arch can be accessed via `next'. */ - bfd_boolean the_default; - const struct bfd_arch_info * (*compatible) - (const struct bfd_arch_info *a, const struct bfd_arch_info *b); - - bfd_boolean (*scan) (const struct bfd_arch_info *, const char *); - - const struct bfd_arch_info *next; - } - bfd_arch_info_type; - -2.14.2.1 `bfd_printable_name' -............................. - -*Synopsis* - const char *bfd_printable_name (bfd *abfd); - *Description* -Return a printable string representing the architecture and machine -from the pointer to the architecture info structure. - -2.14.2.2 `bfd_scan_arch' -........................ - -*Synopsis* - const bfd_arch_info_type *bfd_scan_arch (const char *string); - *Description* -Figure out if BFD supports any cpu which could be described with the -name STRING. Return a pointer to an `arch_info' structure if a machine -is found, otherwise NULL. - -2.14.2.3 `bfd_arch_list' -........................ - -*Synopsis* - const char **bfd_arch_list (void); - *Description* -Return a freshly malloced NULL-terminated vector of the names of all -the valid BFD architectures. Do not modify the names. - -2.14.2.4 `bfd_arch_get_compatible' -.................................. - -*Synopsis* - const bfd_arch_info_type *bfd_arch_get_compatible - (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns); - *Description* -Determine whether two BFDs' architectures and machine types are -compatible. Calculates the lowest common denominator between the two -architectures and machine types implied by the BFDs and returns a -pointer to an `arch_info' structure describing the compatible machine. - -2.14.2.5 `bfd_default_arch_struct' -.................................. - -*Description* -The `bfd_default_arch_struct' is an item of `bfd_arch_info_type' which -has been initialized to a fairly generic state. A BFD starts life by -pointing to this structure, until the correct back end has determined -the real architecture of the file. - extern const bfd_arch_info_type bfd_default_arch_struct; - -2.14.2.6 `bfd_set_arch_info' -............................ - -*Synopsis* - void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg); - *Description* -Set the architecture info of ABFD to ARG. - -2.14.2.7 `bfd_default_set_arch_mach' -.................................... - -*Synopsis* - bfd_boolean bfd_default_set_arch_mach - (bfd *abfd, enum bfd_architecture arch, unsigned long mach); - *Description* -Set the architecture and machine type in BFD ABFD to ARCH and MACH. -Find the correct pointer to a structure and insert it into the -`arch_info' pointer. - -2.14.2.8 `bfd_get_arch' -....................... - -*Synopsis* - enum bfd_architecture bfd_get_arch (bfd *abfd); - *Description* -Return the enumerated type which describes the BFD ABFD's architecture. - -2.14.2.9 `bfd_get_mach' -....................... - -*Synopsis* - unsigned long bfd_get_mach (bfd *abfd); - *Description* -Return the long type which describes the BFD ABFD's machine. - -2.14.2.10 `bfd_arch_bits_per_byte' -.................................. - -*Synopsis* - unsigned int bfd_arch_bits_per_byte (bfd *abfd); - *Description* -Return the number of bits in one of the BFD ABFD's architecture's bytes. - -2.14.2.11 `bfd_arch_bits_per_address' -..................................... - -*Synopsis* - unsigned int bfd_arch_bits_per_address (bfd *abfd); - *Description* -Return the number of bits in one of the BFD ABFD's architecture's -addresses. - -2.14.2.12 `bfd_default_compatible' -.................................. - -*Synopsis* - const bfd_arch_info_type *bfd_default_compatible - (const bfd_arch_info_type *a, const bfd_arch_info_type *b); - *Description* -The default function for testing for compatibility. - -2.14.2.13 `bfd_default_scan' -............................ - -*Synopsis* - bfd_boolean bfd_default_scan - (const struct bfd_arch_info *info, const char *string); - *Description* -The default function for working out whether this is an architecture -hit and a machine hit. - -2.14.2.14 `bfd_get_arch_info' -............................. - -*Synopsis* - const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd); - *Description* -Return the architecture info struct in ABFD. - -2.14.2.15 `bfd_lookup_arch' -........................... - -*Synopsis* - const bfd_arch_info_type *bfd_lookup_arch - (enum bfd_architecture arch, unsigned long machine); - *Description* -Look for the architecture info structure which matches the arguments -ARCH and MACHINE. A machine of 0 matches the machine/architecture -structure which marks itself as the default. - -2.14.2.16 `bfd_printable_arch_mach' -................................... - -*Synopsis* - const char *bfd_printable_arch_mach - (enum bfd_architecture arch, unsigned long machine); - *Description* -Return a printable string representing the architecture and machine -type. - - This routine is depreciated. - -2.14.2.17 `bfd_octets_per_byte' -............................... - -*Synopsis* - unsigned int bfd_octets_per_byte (bfd *abfd); - *Description* -Return the number of octets (8-bit quantities) per target byte (minimum -addressable unit). In most cases, this will be one, but some DSP -targets have 16, 32, or even 48 bits per byte. - -2.14.2.18 `bfd_arch_mach_octets_per_byte' -......................................... - -*Synopsis* - unsigned int bfd_arch_mach_octets_per_byte - (enum bfd_architecture arch, unsigned long machine); - *Description* -See bfd_octets_per_byte. - - This routine is provided for those cases where a bfd * is not -available - - -File: bfd.info, Node: Opening and Closing, Next: Internal, Prev: Architectures, Up: BFD front end - -2.15 Opening and closing BFDs -============================= - -2.15.0.1 `bfd_openr' -.................... - -*Synopsis* - bfd *bfd_openr (const char *filename, const char *target); - *Description* -Open the file FILENAME (using `fopen') with the target TARGET. Return -a pointer to the created BFD. - - Calls `bfd_find_target', so TARGET is interpreted as by that -function. - - If `NULL' is returned then an error has occured. Possible errors -are `bfd_error_no_memory', `bfd_error_invalid_target' or `system_call' -error. - -2.15.0.2 `bfd_fdopenr' -...................... - -*Synopsis* - bfd *bfd_fdopenr (const char *filename, const char *target, int fd); - *Description* -`bfd_fdopenr' is to `bfd_fopenr' much like `fdopen' is to `fopen'. It -opens a BFD on a file already described by the FD supplied. - - When the file is later `bfd_close'd, the file descriptor will be -closed. If the caller desires that this file descriptor be cached by -BFD (opened as needed, closed as needed to free descriptors for other -opens), with the supplied FD used as an initial file descriptor (but -subject to closure at any time), call bfd_set_cacheable(bfd, 1) on the -returned BFD. The default is to assume no caching; the file descriptor -will remain open until `bfd_close', and will not be affected by BFD -operations on other files. - - Possible errors are `bfd_error_no_memory', -`bfd_error_invalid_target' and `bfd_error_system_call'. - -2.15.0.3 `bfd_openstreamr' -.......................... - -*Synopsis* - bfd *bfd_openstreamr (const char *, const char *, void *); - *Description* -Open a BFD for read access on an existing stdio stream. When the BFD -is passed to `bfd_close', the stream will be closed. - -2.15.0.4 `bfd_openr_iovec' -.......................... - -*Synopsis* - bfd *bfd_openr_iovec (const char *filename, const char *target, - void *(*open) (struct bfd *nbfd, - void *open_closure), - void *open_closure, - file_ptr (*pread) (struct bfd *nbfd, - void *stream, - void *buf, - file_ptr nbytes, - file_ptr offset), - int (*close) (struct bfd *nbfd, - void *stream)); - *Description* -Create and return a BFD backed by a read-only STREAM. The STREAM is -created using OPEN, accessed using PREAD and destroyed using CLOSE. - - Calls `bfd_find_target', so TARGET is interpreted as by that -function. - - Calls OPEN (which can call `bfd_zalloc' and `bfd_get_filename') to -obtain the read-only stream backing the BFD. OPEN either succeeds -returning the non-`NULL' STREAM, or fails returning `NULL' (setting -`bfd_error'). - - Calls PREAD to request NBYTES of data from STREAM starting at OFFSET -(e.g., via a call to `bfd_read'). PREAD either succeeds returning the -number of bytes read (which can be less than NBYTES when end-of-file), -or fails returning -1 (setting `bfd_error'). - - Calls CLOSE when the BFD is later closed using `bfd_close'. CLOSE -either succeeds returning 0, or fails returning -1 (setting -`bfd_error'). - - If `bfd_openr_iovec' returns `NULL' then an error has occurred. -Possible errors are `bfd_error_no_memory', `bfd_error_invalid_target' -and `bfd_error_system_call'. - -2.15.0.5 `bfd_openw' -.................... - -*Synopsis* - bfd *bfd_openw (const char *filename, const char *target); - *Description* -Create a BFD, associated with file FILENAME, using the file format -TARGET, and return a pointer to it. - - Possible errors are `bfd_error_system_call', `bfd_error_no_memory', -`bfd_error_invalid_target'. - -2.15.0.6 `bfd_close' -.................... - -*Synopsis* - bfd_boolean bfd_close (bfd *abfd); - *Description* -Close a BFD. If the BFD was open for writing, then pending operations -are completed and the file written out and closed. If the created file -is executable, then `chmod' is called to mark it as such. - - All memory attached to the BFD is released. - - The file descriptor associated with the BFD is closed (even if it -was passed in to BFD by `bfd_fdopenr'). - - *Returns* -`TRUE' is returned if all is ok, otherwise `FALSE'. - -2.15.0.7 `bfd_close_all_done' -............................. - -*Synopsis* - bfd_boolean bfd_close_all_done (bfd *); - *Description* -Close a BFD. Differs from `bfd_close' since it does not complete any -pending operations. This routine would be used if the application had -just used BFD for swapping and didn't want to use any of the writing -code. - - If the created file is executable, then `chmod' is called to mark it -as such. - - All memory attached to the BFD is released. - - *Returns* -`TRUE' is returned if all is ok, otherwise `FALSE'. - -2.15.0.8 `bfd_create' -..................... - -*Synopsis* - bfd *bfd_create (const char *filename, bfd *templ); - *Description* -Create a new BFD in the manner of `bfd_openw', but without opening a -file. The new BFD takes the target from the target used by TEMPLATE. -The format is always set to `bfd_object'. - -2.15.0.9 `bfd_make_writable' -............................ - -*Synopsis* - bfd_boolean bfd_make_writable (bfd *abfd); - *Description* -Takes a BFD as created by `bfd_create' and converts it into one like as -returned by `bfd_openw'. It does this by converting the BFD to -BFD_IN_MEMORY. It's assumed that you will call `bfd_make_readable' on -this bfd later. - - *Returns* -`TRUE' is returned if all is ok, otherwise `FALSE'. - -2.15.0.10 `bfd_make_readable' -............................. - -*Synopsis* - bfd_boolean bfd_make_readable (bfd *abfd); - *Description* -Takes a BFD as created by `bfd_create' and `bfd_make_writable' and -converts it into one like as returned by `bfd_openr'. It does this by -writing the contents out to the memory buffer, then reversing the -direction. - - *Returns* -`TRUE' is returned if all is ok, otherwise `FALSE'. - -2.15.0.11 `bfd_alloc' -..................... - -*Synopsis* - void *bfd_alloc (bfd *abfd, bfd_size_type wanted); - *Description* -Allocate a block of WANTED bytes of memory attached to `abfd' and -return a pointer to it. - -2.15.0.12 `bfd_zalloc' -...................... - -*Synopsis* - void *bfd_zalloc (bfd *abfd, bfd_size_type wanted); - *Description* -Allocate a block of WANTED bytes of zeroed memory attached to `abfd' -and return a pointer to it. - -2.15.0.13 `bfd_calc_gnu_debuglink_crc32' -........................................ - -*Synopsis* - unsigned long bfd_calc_gnu_debuglink_crc32 - (unsigned long crc, const unsigned char *buf, bfd_size_type len); - *Description* -Computes a CRC value as used in the .gnu_debuglink section. Advances -the previously computed CRC value by computing and adding in the crc32 -for LEN bytes of BUF. - - *Returns* -Return the updated CRC32 value. - -2.15.0.14 `get_debug_link_info' -............................... - -*Synopsis* - char *get_debug_link_info (bfd *abfd, unsigned long *crc32_out); - *Description* -fetch the filename and CRC32 value for any separate debuginfo -associated with ABFD. Return NULL if no such info found, otherwise -return filename and update CRC32_OUT. - -2.15.0.15 `separate_debug_file_exists' -...................................... - -*Synopsis* - bfd_boolean separate_debug_file_exists - (char *name, unsigned long crc32); - *Description* -Checks to see if NAME is a file and if its contents match CRC32. - -2.15.0.16 `find_separate_debug_file' -.................................... - -*Synopsis* - char *find_separate_debug_file (bfd *abfd); - *Description* -Searches ABFD for a reference to separate debugging information, scans -various locations in the filesystem, including the file tree rooted at -DEBUG_FILE_DIRECTORY, and returns a filename of such debugging -information if the file is found and has matching CRC32. Returns NULL -if no reference to debugging file exists, or file cannot be found. - -2.15.0.17 `bfd_follow_gnu_debuglink' -.................................... - -*Synopsis* - char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir); - *Description* -Takes a BFD and searches it for a .gnu_debuglink section. If this -section is found, it examines the section for the name and checksum of -a '.debug' file containing auxiliary debugging information. It then -searches the filesystem for this .debug file in some standard -locations, including the directory tree rooted at DIR, and if found -returns the full filename. - - If DIR is NULL, it will search a default path configured into libbfd -at build time. [XXX this feature is not currently implemented]. - - *Returns* -`NULL' on any errors or failure to locate the .debug file, otherwise a -pointer to a heap-allocated string containing the filename. The caller -is responsible for freeing this string. - -2.15.0.18 `bfd_create_gnu_debuglink_section' -............................................ - -*Synopsis* - struct bfd_section *bfd_create_gnu_debuglink_section - (bfd *abfd, const char *filename); - *Description* -Takes a BFD and adds a .gnu_debuglink section to it. The section is -sized to be big enough to contain a link to the specified FILENAME. - - *Returns* -A pointer to the new section is returned if all is ok. Otherwise -`NULL' is returned and bfd_error is set. - -2.15.0.19 `bfd_fill_in_gnu_debuglink_section' -............................................. - -*Synopsis* - bfd_boolean bfd_fill_in_gnu_debuglink_section - (bfd *abfd, struct bfd_section *sect, const char *filename); - *Description* -Takes a BFD and containing a .gnu_debuglink section SECT and fills in -the contents of the section to contain a link to the specified -FILENAME. The filename should be relative to the current directory. - - *Returns* -`TRUE' is returned if all is ok. Otherwise `FALSE' is returned and -bfd_error is set. - - -File: bfd.info, Node: Internal, Next: File Caching, Prev: Opening and Closing, Up: BFD front end - -2.16 Internal functions -======================= - -*Description* -These routines are used within BFD. They are not intended for export, -but are documented here for completeness. - -2.16.0.1 `bfd_write_bigendian_4byte_int' -........................................ - -*Synopsis* - bfd_boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int); - *Description* -Write a 4 byte integer I to the output BFD ABFD, in big endian order -regardless of what else is going on. This is useful in archives. - -2.16.0.2 `bfd_put_size' -....................... - -2.16.0.3 `bfd_get_size' -....................... - -*Description* -These macros as used for reading and writing raw data in sections; each -access (except for bytes) is vectored through the target format of the -BFD and mangled accordingly. The mangling performs any necessary endian -translations and removes alignment restrictions. Note that types -accepted and returned by these macros are identical so they can be -swapped around in macros--for example, `libaout.h' defines `GET_WORD' -to either `bfd_get_32' or `bfd_get_64'. - - In the put routines, VAL must be a `bfd_vma'. If we are on a system -without prototypes, the caller is responsible for making sure that is -true, with a cast if necessary. We don't cast them in the macro -definitions because that would prevent `lint' or `gcc -Wall' from -detecting sins such as passing a pointer. To detect calling these with -less than a `bfd_vma', use `gcc -Wconversion' on a host with 64 bit -`bfd_vma''s. - - /* Byte swapping macros for user section data. */ - - #define bfd_put_8(abfd, val, ptr) \ - ((void) (*((unsigned char *) (ptr)) = (val) & 0xff)) - #define bfd_put_signed_8 \ - bfd_put_8 - #define bfd_get_8(abfd, ptr) \ - (*(unsigned char *) (ptr) & 0xff) - #define bfd_get_signed_8(abfd, ptr) \ - (((*(unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80) - - #define bfd_put_16(abfd, val, ptr) \ - BFD_SEND (abfd, bfd_putx16, ((val),(ptr))) - #define bfd_put_signed_16 \ - bfd_put_16 - #define bfd_get_16(abfd, ptr) \ - BFD_SEND (abfd, bfd_getx16, (ptr)) - #define bfd_get_signed_16(abfd, ptr) \ - BFD_SEND (abfd, bfd_getx_signed_16, (ptr)) - - #define bfd_put_32(abfd, val, ptr) \ - BFD_SEND (abfd, bfd_putx32, ((val),(ptr))) - #define bfd_put_signed_32 \ - bfd_put_32 - #define bfd_get_32(abfd, ptr) \ - BFD_SEND (abfd, bfd_getx32, (ptr)) - #define bfd_get_signed_32(abfd, ptr) \ - BFD_SEND (abfd, bfd_getx_signed_32, (ptr)) - - #define bfd_put_64(abfd, val, ptr) \ - BFD_SEND (abfd, bfd_putx64, ((val), (ptr))) - #define bfd_put_signed_64 \ - bfd_put_64 - #define bfd_get_64(abfd, ptr) \ - BFD_SEND (abfd, bfd_getx64, (ptr)) - #define bfd_get_signed_64(abfd, ptr) \ - BFD_SEND (abfd, bfd_getx_signed_64, (ptr)) - - #define bfd_get(bits, abfd, ptr) \ - ((bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr) \ - : (bits) == 16 ? bfd_get_16 (abfd, ptr) \ - : (bits) == 32 ? bfd_get_32 (abfd, ptr) \ - : (bits) == 64 ? bfd_get_64 (abfd, ptr) \ - : (abort (), (bfd_vma) - 1)) - - #define bfd_put(bits, abfd, val, ptr) \ - ((bits) == 8 ? bfd_put_8 (abfd, val, ptr) \ - : (bits) == 16 ? bfd_put_16 (abfd, val, ptr) \ - : (bits) == 32 ? bfd_put_32 (abfd, val, ptr) \ - : (bits) == 64 ? bfd_put_64 (abfd, val, ptr) \ - : (abort (), (void) 0)) - -2.16.0.4 `bfd_h_put_size' -......................... - -*Description* -These macros have the same function as their `bfd_get_x' brethren, -except that they are used for removing information for the header -records of object files. Believe it or not, some object files keep -their header records in big endian order and their data in little -endian order. - - /* Byte swapping macros for file header data. */ - - #define bfd_h_put_8(abfd, val, ptr) \ - bfd_put_8 (abfd, val, ptr) - #define bfd_h_put_signed_8(abfd, val, ptr) \ - bfd_put_8 (abfd, val, ptr) - #define bfd_h_get_8(abfd, ptr) \ - bfd_get_8 (abfd, ptr) - #define bfd_h_get_signed_8(abfd, ptr) \ - bfd_get_signed_8 (abfd, ptr) - - #define bfd_h_put_16(abfd, val, ptr) \ - BFD_SEND (abfd, bfd_h_putx16, (val, ptr)) - #define bfd_h_put_signed_16 \ - bfd_h_put_16 - #define bfd_h_get_16(abfd, ptr) \ - BFD_SEND (abfd, bfd_h_getx16, (ptr)) - #define bfd_h_get_signed_16(abfd, ptr) \ - BFD_SEND (abfd, bfd_h_getx_signed_16, (ptr)) - - #define bfd_h_put_32(abfd, val, ptr) \ - BFD_SEND (abfd, bfd_h_putx32, (val, ptr)) - #define bfd_h_put_signed_32 \ - bfd_h_put_32 - #define bfd_h_get_32(abfd, ptr) \ - BFD_SEND (abfd, bfd_h_getx32, (ptr)) - #define bfd_h_get_signed_32(abfd, ptr) \ - BFD_SEND (abfd, bfd_h_getx_signed_32, (ptr)) - - #define bfd_h_put_64(abfd, val, ptr) \ - BFD_SEND (abfd, bfd_h_putx64, (val, ptr)) - #define bfd_h_put_signed_64 \ - bfd_h_put_64 - #define bfd_h_get_64(abfd, ptr) \ - BFD_SEND (abfd, bfd_h_getx64, (ptr)) - #define bfd_h_get_signed_64(abfd, ptr) \ - BFD_SEND (abfd, bfd_h_getx_signed_64, (ptr)) - - /* Aliases for the above, which should eventually go away. */ - - #define H_PUT_64 bfd_h_put_64 - #define H_PUT_32 bfd_h_put_32 - #define H_PUT_16 bfd_h_put_16 - #define H_PUT_8 bfd_h_put_8 - #define H_PUT_S64 bfd_h_put_signed_64 - #define H_PUT_S32 bfd_h_put_signed_32 - #define H_PUT_S16 bfd_h_put_signed_16 - #define H_PUT_S8 bfd_h_put_signed_8 - #define H_GET_64 bfd_h_get_64 - #define H_GET_32 bfd_h_get_32 - #define H_GET_16 bfd_h_get_16 - #define H_GET_8 bfd_h_get_8 - #define H_GET_S64 bfd_h_get_signed_64 - #define H_GET_S32 bfd_h_get_signed_32 - #define H_GET_S16 bfd_h_get_signed_16 - #define H_GET_S8 bfd_h_get_signed_8 - -2.16.0.5 `bfd_log2' -................... - -*Synopsis* - unsigned int bfd_log2 (bfd_vma x); - *Description* -Return the log base 2 of the value supplied, rounded up. E.g., an X of -1025 returns 11. A X of 0 returns 0. - - -File: bfd.info, Node: File Caching, Next: Linker Functions, Prev: Internal, Up: BFD front end - -2.17 File caching -================= - -The file caching mechanism is embedded within BFD and allows the -application to open as many BFDs as it wants without regard to the -underlying operating system's file descriptor limit (often as low as 20 -open files). The module in `cache.c' maintains a least recently used -list of `BFD_CACHE_MAX_OPEN' files, and exports the name -`bfd_cache_lookup', which runs around and makes sure that the required -BFD is open. If not, then it chooses a file to close, closes it and -opens the one wanted, returning its file handle. - -2.17.0.1 `BFD_CACHE_MAX_OPEN macro' -................................... - -*Description* -The maximum number of files which the cache will keep open at one time. - #define BFD_CACHE_MAX_OPEN 10 - -2.17.0.2 `bfd_last_cache' -......................... - -*Synopsis* - extern bfd *bfd_last_cache; - *Description* -Zero, or a pointer to the topmost BFD on the chain. This is used by -the `bfd_cache_lookup' macro in `libbfd.h' to determine when it can -avoid a function call. - -2.17.0.3 `bfd_cache_lookup' -........................... - -*Description* -Check to see if the required BFD is the same as the last one looked up. -If so, then it can use the stream in the BFD with impunity, since it -can't have changed since the last lookup; otherwise, it has to perform -the complicated lookup function. - #define bfd_cache_lookup(x) \ - ((x) == bfd_last_cache ? \ - (FILE *) (bfd_last_cache->iostream): \ - bfd_cache_lookup_worker (x)) - -2.17.0.4 `bfd_cache_init' -......................... - -*Synopsis* - bfd_boolean bfd_cache_init (bfd *abfd); - *Description* -Add a newly opened BFD to the cache. - -2.17.0.5 `bfd_cache_close' -.......................... - -*Synopsis* - bfd_boolean bfd_cache_close (bfd *abfd); - *Description* -Remove the BFD ABFD from the cache. If the attached file is open, then -close it too. - - *Returns* -`FALSE' is returned if closing the file fails, `TRUE' is returned if -all is well. - -2.17.0.6 `bfd_cache_close_all' -.............................. - -*Synopsis* - bfd_boolean bfd_cache_close_all (void); - *Description* -Remove all BFDs from the cache. If the attached file is open, then -close it too. - - *Returns* -`FALSE' is returned if closing one of the file fails, `TRUE' is -returned if all is well. - -2.17.0.7 `bfd_open_file' -........................ - -*Synopsis* - FILE* bfd_open_file (bfd *abfd); - *Description* -Call the OS to open a file for ABFD. Return the `FILE *' (possibly -`NULL') that results from this operation. Set up the BFD so that -future accesses know the file is open. If the `FILE *' returned is -`NULL', then it won't have been put in the cache, so it won't have to -be removed from it. - -2.17.0.8 `bfd_cache_lookup_worker' -.................................. - -*Synopsis* - FILE *bfd_cache_lookup_worker (bfd *abfd); - *Description* -Called when the macro `bfd_cache_lookup' fails to find a quick answer. -Find a file descriptor for ABFD. If necessary, it open it. If there -are already more than `BFD_CACHE_MAX_OPEN' files open, it tries to -close one first, to avoid running out of file descriptors. It will -abort rather than returning NULL if it is unable to (re)open the ABFD. - - -File: bfd.info, Node: Linker Functions, Next: Hash Tables, Prev: File Caching, Up: BFD front end - -2.18 Linker Functions -===================== - -The linker uses three special entry points in the BFD target vector. -It is not necessary to write special routines for these entry points -when creating a new BFD back end, since generic versions are provided. -However, writing them can speed up linking and make it use -significantly less runtime memory. - - The first routine creates a hash table used by the other routines. -The second routine adds the symbols from an object file to the hash -table. The third routine takes all the object files and links them -together to create the output file. These routines are designed so -that the linker proper does not need to know anything about the symbols -in the object files that it is linking. The linker merely arranges the -sections as directed by the linker script and lets BFD handle the -details of symbols and relocs. - - The second routine and third routines are passed a pointer to a -`struct bfd_link_info' structure (defined in `bfdlink.h') which holds -information relevant to the link, including the linker hash table -(which was created by the first routine) and a set of callback -functions to the linker proper. - - The generic linker routines are in `linker.c', and use the header -file `genlink.h'. As of this writing, the only back ends which have -implemented versions of these routines are a.out (in `aoutx.h') and -ECOFF (in `ecoff.c'). The a.out routines are used as examples -throughout this section. - -* Menu: - -* Creating a Linker Hash Table:: -* Adding Symbols to the Hash Table:: -* Performing the Final Link:: - - -File: bfd.info, Node: Creating a Linker Hash Table, Next: Adding Symbols to the Hash Table, Prev: Linker Functions, Up: Linker Functions - -2.18.1 Creating a linker hash table ------------------------------------ - -The linker routines must create a hash table, which must be derived -from `struct bfd_link_hash_table' described in `bfdlink.c'. *Note Hash -Tables::, for information on how to create a derived hash table. This -entry point is called using the target vector of the linker output file. - - The `_bfd_link_hash_table_create' entry point must allocate and -initialize an instance of the desired hash table. If the back end does -not require any additional information to be stored with the entries in -the hash table, the entry point may simply create a `struct -bfd_link_hash_table'. Most likely, however, some additional -information will be needed. - - For example, with each entry in the hash table the a.out linker -keeps the index the symbol has in the final output file (this index -number is used so that when doing a relocatable link the symbol index -used in the output file can be quickly filled in when copying over a -reloc). The a.out linker code defines the required structures and -functions for a hash table derived from `struct bfd_link_hash_table'. -The a.out linker hash table is created by the function -`NAME(aout,link_hash_table_create)'; it simply allocates space for the -hash table, initializes it, and returns a pointer to it. - - When writing the linker routines for a new back end, you will -generally not know exactly which fields will be required until you have -finished. You should simply create a new hash table which defines no -additional fields, and then simply add fields as they become necessary. - - -File: bfd.info, Node: Adding Symbols to the Hash Table, Next: Performing the Final Link, Prev: Creating a Linker Hash Table, Up: Linker Functions - -2.18.2 Adding symbols to the hash table ---------------------------------------- - -The linker proper will call the `_bfd_link_add_symbols' entry point for -each object file or archive which is to be linked (typically these are -the files named on the command line, but some may also come from the -linker script). The entry point is responsible for examining the file. -For an object file, BFD must add any relevant symbol information to -the hash table. For an archive, BFD must determine which elements of -the archive should be used and adding them to the link. - - The a.out version of this entry point is -`NAME(aout,link_add_symbols)'. - -* Menu: - -* Differing file formats:: -* Adding symbols from an object file:: -* Adding symbols from an archive:: - - -File: bfd.info, Node: Differing file formats, Next: Adding symbols from an object file, Prev: Adding Symbols to the Hash Table, Up: Adding Symbols to the Hash Table - -2.18.2.1 Differing file formats -............................... - -Normally all the files involved in a link will be of the same format, -but it is also possible to link together different format object files, -and the back end must support that. The `_bfd_link_add_symbols' entry -point is called via the target vector of the file to be added. This -has an important consequence: the function may not assume that the hash -table is the type created by the corresponding -`_bfd_link_hash_table_create' vector. All the `_bfd_link_add_symbols' -function can assume about the hash table is that it is derived from -`struct bfd_link_hash_table'. - - Sometimes the `_bfd_link_add_symbols' function must store some -information in the hash table entry to be used by the `_bfd_final_link' -function. In such a case the `creator' field of the hash table must be -checked to make sure that the hash table was created by an object file -of the same format. - - The `_bfd_final_link' routine must be prepared to handle a hash -entry without any extra information added by the -`_bfd_link_add_symbols' function. A hash entry without extra -information will also occur when the linker script directs the linker -to create a symbol. Note that, regardless of how a hash table entry is -added, all the fields will be initialized to some sort of null value by -the hash table entry initialization function. - - See `ecoff_link_add_externals' for an example of how to check the -`creator' field before saving information (in this case, the ECOFF -external symbol debugging information) in a hash table entry. - - -File: bfd.info, Node: Adding symbols from an object file, Next: Adding symbols from an archive, Prev: Differing file formats, Up: Adding Symbols to the Hash Table - -2.18.2.2 Adding symbols from an object file -........................................... - -When the `_bfd_link_add_symbols' routine is passed an object file, it -must add all externally visible symbols in that object file to the hash -table. The actual work of adding the symbol to the hash table is -normally handled by the function `_bfd_generic_link_add_one_symbol'. -The `_bfd_link_add_symbols' routine is responsible for reading all the -symbols from the object file and passing the correct information to -`_bfd_generic_link_add_one_symbol'. - - The `_bfd_link_add_symbols' routine should not use -`bfd_canonicalize_symtab' to read the symbols. The point of providing -this routine is to avoid the overhead of converting the symbols into -generic `asymbol' structures. - - `_bfd_generic_link_add_one_symbol' handles the details of combining -common symbols, warning about multiple definitions, and so forth. It -takes arguments which describe the symbol to add, notably symbol flags, -a section, and an offset. The symbol flags include such things as -`BSF_WEAK' or `BSF_INDIRECT'. The section is a section in the object -file, or something like `bfd_und_section_ptr' for an undefined symbol -or `bfd_com_section_ptr' for a common symbol. - - If the `_bfd_final_link' routine is also going to need to read the -symbol information, the `_bfd_link_add_symbols' routine should save it -somewhere attached to the object file BFD. However, the information -should only be saved if the `keep_memory' field of the `info' argument -is TRUE, so that the `-no-keep-memory' linker switch is effective. - - The a.out function which adds symbols from an object file is -`aout_link_add_object_symbols', and most of the interesting work is in -`aout_link_add_symbols'. The latter saves pointers to the hash tables -entries created by `_bfd_generic_link_add_one_symbol' indexed by symbol -number, so that the `_bfd_final_link' routine does not have to call the -hash table lookup routine to locate the entry. - - -File: bfd.info, Node: Adding symbols from an archive, Prev: Adding symbols from an object file, Up: Adding Symbols to the Hash Table - -2.18.2.3 Adding symbols from an archive -....................................... - -When the `_bfd_link_add_symbols' routine is passed an archive, it must -look through the symbols defined by the archive and decide which -elements of the archive should be included in the link. For each such -element it must call the `add_archive_element' linker callback, and it -must add the symbols from the object file to the linker hash table. - - In most cases the work of looking through the symbols in the archive -should be done by the `_bfd_generic_link_add_archive_symbols' function. -This function builds a hash table from the archive symbol table and -looks through the list of undefined symbols to see which elements -should be included. `_bfd_generic_link_add_archive_symbols' is passed -a function to call to make the final decision about adding an archive -element to the link and to do the actual work of adding the symbols to -the linker hash table. - - The function passed to `_bfd_generic_link_add_archive_symbols' must -read the symbols of the archive element and decide whether the archive -element should be included in the link. If the element is to be -included, the `add_archive_element' linker callback routine must be -called with the element as an argument, and the elements symbols must -be added to the linker hash table just as though the element had itself -been passed to the `_bfd_link_add_symbols' function. - - When the a.out `_bfd_link_add_symbols' function receives an archive, -it calls `_bfd_generic_link_add_archive_symbols' passing -`aout_link_check_archive_element' as the function argument. -`aout_link_check_archive_element' calls `aout_link_check_ar_symbols'. -If the latter decides to add the element (an element is only added if -it provides a real, non-common, definition for a previously undefined -or common symbol) it calls the `add_archive_element' callback and then -`aout_link_check_archive_element' calls `aout_link_add_symbols' to -actually add the symbols to the linker hash table. - - The ECOFF back end is unusual in that it does not normally call -`_bfd_generic_link_add_archive_symbols', because ECOFF archives already -contain a hash table of symbols. The ECOFF back end searches the -archive itself to avoid the overhead of creating a new hash table. - - -File: bfd.info, Node: Performing the Final Link, Prev: Adding Symbols to the Hash Table, Up: Linker Functions - -2.18.3 Performing the final link --------------------------------- - -When all the input files have been processed, the linker calls the -`_bfd_final_link' entry point of the output BFD. This routine is -responsible for producing the final output file, which has several -aspects. It must relocate the contents of the input sections and copy -the data into the output sections. It must build an output symbol -table including any local symbols from the input files and the global -symbols from the hash table. When producing relocatable output, it must -modify the input relocs and write them into the output file. There may -also be object format dependent work to be done. - - The linker will also call the `write_object_contents' entry point -when the BFD is closed. The two entry points must work together in -order to produce the correct output file. - - The details of how this works are inevitably dependent upon the -specific object file format. The a.out `_bfd_final_link' routine is -`NAME(aout,final_link)'. - -* Menu: - -* Information provided by the linker:: -* Relocating the section contents:: -* Writing the symbol table:: - - -File: bfd.info, Node: Information provided by the linker, Next: Relocating the section contents, Prev: Performing the Final Link, Up: Performing the Final Link - -2.18.3.1 Information provided by the linker -........................................... - -Before the linker calls the `_bfd_final_link' entry point, it sets up -some data structures for the function to use. - - The `input_bfds' field of the `bfd_link_info' structure will point -to a list of all the input files included in the link. These files are -linked through the `link_next' field of the `bfd' structure. - - Each section in the output file will have a list of `link_order' -structures attached to the `link_order_head' field (the `link_order' -structure is defined in `bfdlink.h'). These structures describe how to -create the contents of the output section in terms of the contents of -various input sections, fill constants, and, eventually, other types of -information. They also describe relocs that must be created by the BFD -backend, but do not correspond to any input file; this is used to -support -Ur, which builds constructors while generating a relocatable -object file. - - -File: bfd.info, Node: Relocating the section contents, Next: Writing the symbol table, Prev: Information provided by the linker, Up: Performing the Final Link - -2.18.3.2 Relocating the section contents -........................................ - -The `_bfd_final_link' function should look through the `link_order' -structures attached to each section of the output file. Each -`link_order' structure should either be handled specially, or it should -be passed to the function `_bfd_default_link_order' which will do the -right thing (`_bfd_default_link_order' is defined in `linker.c'). - - For efficiency, a `link_order' of type `bfd_indirect_link_order' -whose associated section belongs to a BFD of the same format as the -output BFD must be handled specially. This type of `link_order' -describes part of an output section in terms of a section belonging to -one of the input files. The `_bfd_final_link' function should read the -contents of the section and any associated relocs, apply the relocs to -the section contents, and write out the modified section contents. If -performing a relocatable link, the relocs themselves must also be -modified and written out. - - The functions `_bfd_relocate_contents' and -`_bfd_final_link_relocate' provide some general support for performing -the actual relocations, notably overflow checking. Their arguments -include information about the symbol the relocation is against and a -`reloc_howto_type' argument which describes the relocation to perform. -These functions are defined in `reloc.c'. - - The a.out function which handles reading, relocating, and writing -section contents is `aout_link_input_section'. The actual relocation -is done in `aout_link_input_section_std' and -`aout_link_input_section_ext'. - - -File: bfd.info, Node: Writing the symbol table, Prev: Relocating the section contents, Up: Performing the Final Link - -2.18.3.3 Writing the symbol table -................................. - -The `_bfd_final_link' function must gather all the symbols in the input -files and write them out. It must also write out all the symbols in -the global hash table. This must be controlled by the `strip' and -`discard' fields of the `bfd_link_info' structure. - - The local symbols of the input files will not have been entered into -the linker hash table. The `_bfd_final_link' routine must consider -each input file and include the symbols in the output file. It may be -convenient to do this when looking through the `link_order' structures, -or it may be done by stepping through the `input_bfds' list. - - The `_bfd_final_link' routine must also traverse the global hash -table to gather all the externally visible symbols. It is possible -that most of the externally visible symbols may be written out when -considering the symbols of each input file, but it is still necessary -to traverse the hash table since the linker script may have defined -some symbols that are not in any of the input files. - - The `strip' field of the `bfd_link_info' structure controls which -symbols are written out. The possible values are listed in -`bfdlink.h'. If the value is `strip_some', then the `keep_hash' field -of the `bfd_link_info' structure is a hash table of symbols to keep; -each symbol should be looked up in this hash table, and only symbols -which are present should be included in the output file. - - If the `strip' field of the `bfd_link_info' structure permits local -symbols to be written out, the `discard' field is used to further -controls which local symbols are included in the output file. If the -value is `discard_l', then all local symbols which begin with a certain -prefix are discarded; this is controlled by the -`bfd_is_local_label_name' entry point. - - The a.out backend handles symbols by calling -`aout_link_write_symbols' on each input BFD and then traversing the -global hash table with the function `aout_link_write_other_symbol'. It -builds a string table while writing out the symbols, which is written -to the output file at the end of `NAME(aout,final_link)'. - -2.18.3.4 `bfd_link_split_section' -................................. - -*Synopsis* - bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec); - *Description* -Return nonzero if SEC should be split during a reloceatable or final -link. - #define bfd_link_split_section(abfd, sec) \ - BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec)) - -2.18.3.5 `bfd_section_already_linked' -..................................... - -*Synopsis* - void bfd_section_already_linked (bfd *abfd, asection *sec); - *Description* -Check if SEC has been already linked during a reloceatable or final -link. - #define bfd_section_already_linked(abfd, sec) \ - BFD_SEND (abfd, _section_already_linked, (abfd, sec)) - - -File: bfd.info, Node: Hash Tables, Prev: Linker Functions, Up: BFD front end - -2.19 Hash Tables -================ - -BFD provides a simple set of hash table functions. Routines are -provided to initialize a hash table, to free a hash table, to look up a -string in a hash table and optionally create an entry for it, and to -traverse a hash table. There is currently no routine to delete an -string from a hash table. - - The basic hash table does not permit any data to be stored with a -string. However, a hash table is designed to present a base class from -which other types of hash tables may be derived. These derived types -may store additional information with the string. Hash tables were -implemented in this way, rather than simply providing a data pointer in -a hash table entry, because they were designed for use by the linker -back ends. The linker may create thousands of hash table entries, and -the overhead of allocating private data and storing and following -pointers becomes noticeable. - - The basic hash table code is in `hash.c'. - -* Menu: - -* Creating and Freeing a Hash Table:: -* Looking Up or Entering a String:: -* Traversing a Hash Table:: -* Deriving a New Hash Table Type:: - - -File: bfd.info, Node: Creating and Freeing a Hash Table, Next: Looking Up or Entering a String, Prev: Hash Tables, Up: Hash Tables - -2.19.1 Creating and freeing a hash table ----------------------------------------- - -To create a hash table, create an instance of a `struct bfd_hash_table' -(defined in `bfd.h') and call `bfd_hash_table_init' (if you know -approximately how many entries you will need, the function -`bfd_hash_table_init_n', which takes a SIZE argument, may be used). -`bfd_hash_table_init' returns `FALSE' if some sort of error occurs. - - The function `bfd_hash_table_init' take as an argument a function to -use to create new entries. For a basic hash table, use the function -`bfd_hash_newfunc'. *Note Deriving a New Hash Table Type::, for why -you would want to use a different value for this argument. - - `bfd_hash_table_init' will create an objalloc which will be used to -allocate new entries. You may allocate memory on this objalloc using -`bfd_hash_allocate'. - - Use `bfd_hash_table_free' to free up all the memory that has been -allocated for a hash table. This will not free up the `struct -bfd_hash_table' itself, which you must provide. - - Use `bfd_hash_set_default_size' to set the default size of hash -table to use. - - -File: bfd.info, Node: Looking Up or Entering a String, Next: Traversing a Hash Table, Prev: Creating and Freeing a Hash Table, Up: Hash Tables - -2.19.2 Looking up or entering a string --------------------------------------- - -The function `bfd_hash_lookup' is used both to look up a string in the -hash table and to create a new entry. - - If the CREATE argument is `FALSE', `bfd_hash_lookup' will look up a -string. If the string is found, it will returns a pointer to a `struct -bfd_hash_entry'. If the string is not found in the table -`bfd_hash_lookup' will return `NULL'. You should not modify any of the -fields in the returns `struct bfd_hash_entry'. - - If the CREATE argument is `TRUE', the string will be entered into -the hash table if it is not already there. Either way a pointer to a -`struct bfd_hash_entry' will be returned, either to the existing -structure or to a newly created one. In this case, a `NULL' return -means that an error occurred. - - If the CREATE argument is `TRUE', and a new entry is created, the -COPY argument is used to decide whether to copy the string onto the -hash table objalloc or not. If COPY is passed as `FALSE', you must be -careful not to deallocate or modify the string as long as the hash table -exists. - - -File: bfd.info, Node: Traversing a Hash Table, Next: Deriving a New Hash Table Type, Prev: Looking Up or Entering a String, Up: Hash Tables - -2.19.3 Traversing a hash table ------------------------------- - -The function `bfd_hash_traverse' may be used to traverse a hash table, -calling a function on each element. The traversal is done in a random -order. - - `bfd_hash_traverse' takes as arguments a function and a generic -`void *' pointer. The function is called with a hash table entry (a -`struct bfd_hash_entry *') and the generic pointer passed to -`bfd_hash_traverse'. The function must return a `boolean' value, which -indicates whether to continue traversing the hash table. If the -function returns `FALSE', `bfd_hash_traverse' will stop the traversal -and return immediately. - - -File: bfd.info, Node: Deriving a New Hash Table Type, Prev: Traversing a Hash Table, Up: Hash Tables - -2.19.4 Deriving a new hash table type -------------------------------------- - -Many uses of hash tables want to store additional information which -each entry in the hash table. Some also find it convenient to store -additional information with the hash table itself. This may be done -using a derived hash table. - - Since C is not an object oriented language, creating a derived hash -table requires sticking together some boilerplate routines with a few -differences specific to the type of hash table you want to create. - - An example of a derived hash table is the linker hash table. The -structures for this are defined in `bfdlink.h'. The functions are in -`linker.c'. - - You may also derive a hash table from an already derived hash table. -For example, the a.out linker backend code uses a hash table derived -from the linker hash table. - -* Menu: - -* Define the Derived Structures:: -* Write the Derived Creation Routine:: -* Write Other Derived Routines:: - - -File: bfd.info, Node: Define the Derived Structures, Next: Write the Derived Creation Routine, Prev: Deriving a New Hash Table Type, Up: Deriving a New Hash Table Type - -2.19.4.1 Define the derived structures -...................................... - -You must define a structure for an entry in the hash table, and a -structure for the hash table itself. - - The first field in the structure for an entry in the hash table must -be of the type used for an entry in the hash table you are deriving -from. If you are deriving from a basic hash table this is `struct -bfd_hash_entry', which is defined in `bfd.h'. The first field in the -structure for the hash table itself must be of the type of the hash -table you are deriving from itself. If you are deriving from a basic -hash table, this is `struct bfd_hash_table'. - - For example, the linker hash table defines `struct -bfd_link_hash_entry' (in `bfdlink.h'). The first field, `root', is of -type `struct bfd_hash_entry'. Similarly, the first field in `struct -bfd_link_hash_table', `table', is of type `struct bfd_hash_table'. - - -File: bfd.info, Node: Write the Derived Creation Routine, Next: Write Other Derived Routines, Prev: Define the Derived Structures, Up: Deriving a New Hash Table Type - -2.19.4.2 Write the derived creation routine -........................................... - -You must write a routine which will create and initialize an entry in -the hash table. This routine is passed as the function argument to -`bfd_hash_table_init'. - - In order to permit other hash tables to be derived from the hash -table you are creating, this routine must be written in a standard way. - - The first argument to the creation routine is a pointer to a hash -table entry. This may be `NULL', in which case the routine should -allocate the right amount of space. Otherwise the space has already -been allocated by a hash table type derived from this one. - - After allocating space, the creation routine must call the creation -routine of the hash table type it is derived from, passing in a pointer -to the space it just allocated. This will initialize any fields used -by the base hash table. - - Finally the creation routine must initialize any local fields for -the new hash table type. - - Here is a boilerplate example of a creation routine. FUNCTION_NAME -is the name of the routine. ENTRY_TYPE is the type of an entry in the -hash table you are creating. BASE_NEWFUNC is the name of the creation -routine of the hash table type your hash table is derived from. - - struct bfd_hash_entry * - FUNCTION_NAME (entry, table, string) - struct bfd_hash_entry *entry; - struct bfd_hash_table *table; - const char *string; - { - struct ENTRY_TYPE *ret = (ENTRY_TYPE *) entry; - - /* Allocate the structure if it has not already been allocated by a - derived class. */ - if (ret == (ENTRY_TYPE *) NULL) - { - ret = ((ENTRY_TYPE *) - bfd_hash_allocate (table, sizeof (ENTRY_TYPE))); - if (ret == (ENTRY_TYPE *) NULL) - return NULL; - } - - /* Call the allocation method of the base class. */ - ret = ((ENTRY_TYPE *) - BASE_NEWFUNC ((struct bfd_hash_entry *) ret, table, string)); - - /* Initialize the local fields here. */ - - return (struct bfd_hash_entry *) ret; - } - *Description* -The creation routine for the linker hash table, which is in `linker.c', -looks just like this example. FUNCTION_NAME is -`_bfd_link_hash_newfunc'. ENTRY_TYPE is `struct bfd_link_hash_entry'. -BASE_NEWFUNC is `bfd_hash_newfunc', the creation routine for a basic -hash table. - - `_bfd_link_hash_newfunc' also initializes the local fields in a -linker hash table entry: `type', `written' and `next'. - - -File: bfd.info, Node: Write Other Derived Routines, Prev: Write the Derived Creation Routine, Up: Deriving a New Hash Table Type - -2.19.4.3 Write other derived routines -..................................... - -You will want to write other routines for your new hash table, as well. - - You will want an initialization routine which calls the -initialization routine of the hash table you are deriving from and -initializes any other local fields. For the linker hash table, this is -`_bfd_link_hash_table_init' in `linker.c'. - - You will want a lookup routine which calls the lookup routine of the -hash table you are deriving from and casts the result. The linker hash -table uses `bfd_link_hash_lookup' in `linker.c' (this actually takes an -additional argument which it uses to decide how to return the looked up -value). - - You may want a traversal routine. This should just call the -traversal routine of the hash table you are deriving from with -appropriate casts. The linker hash table uses `bfd_link_hash_traverse' -in `linker.c'. - - These routines may simply be defined as macros. For example, the -a.out backend linker hash table, which is derived from the linker hash -table, uses macros for the lookup and traversal routines. These are -`aout_link_hash_lookup' and `aout_link_hash_traverse' in aoutx.h. - - -File: bfd.info, Node: BFD back ends, Next: GNU Free Documentation License, Prev: BFD front end, Up: Top - -3 BFD back ends -*************** - -* Menu: - -* What to Put Where:: -* aout :: a.out backends -* coff :: coff backends -* elf :: elf backends -* mmo :: mmo backend - - -File: bfd.info, Node: What to Put Where, Next: aout, Prev: BFD back ends, Up: BFD back ends - - All of BFD lives in one directory. - - -File: bfd.info, Node: aout, Next: coff, Prev: What to Put Where, Up: BFD back ends - -3.1 a.out backends -================== - -*Description* -BFD supports a number of different flavours of a.out format, though the -major differences are only the sizes of the structures on disk, and the -shape of the relocation information. - - The support is split into a basic support file `aoutx.h' and other -files which derive functions from the base. One derivation file is -`aoutf1.h' (for a.out flavour 1), and adds to the basic a.out functions -support for sun3, sun4, 386 and 29k a.out files, to create a target -jump vector for a specific target. - - This information is further split out into more specific files for -each machine, including `sunos.c' for sun3 and sun4, `newsos3.c' for -the Sony NEWS, and `demo64.c' for a demonstration of a 64 bit a.out -format. - - The base file `aoutx.h' defines general mechanisms for reading and -writing records to and from disk and various other methods which BFD -requires. It is included by `aout32.c' and `aout64.c' to form the names -`aout_32_swap_exec_header_in', `aout_64_swap_exec_header_in', etc. - - As an example, this is what goes on to make the back end for a sun4, -from `aout32.c': - - #define ARCH_SIZE 32 - #include "aoutx.h" - - Which exports names: - - ... - aout_32_canonicalize_reloc - aout_32_find_nearest_line - aout_32_get_lineno - aout_32_get_reloc_upper_bound - ... - - from `sunos.c': - - #define TARGET_NAME "a.out-sunos-big" - #define VECNAME sunos_big_vec - #include "aoutf1.h" - - requires all the names from `aout32.c', and produces the jump vector - - sunos_big_vec - - The file `host-aout.c' is a special case. It is for a large set of -hosts that use "more or less standard" a.out files, and for which -cross-debugging is not interesting. It uses the standard 32-bit a.out -support routines, but determines the file offsets and addresses of the -text, data, and BSS sections, the machine architecture and machine -type, and the entry point address, in a host-dependent manner. Once -these values have been determined, generic code is used to handle the -object file. - - When porting it to run on a new system, you must supply: - - HOST_PAGE_SIZE - HOST_SEGMENT_SIZE - HOST_MACHINE_ARCH (optional) - HOST_MACHINE_MACHINE (optional) - HOST_TEXT_START_ADDR - HOST_STACK_END_ADDR - - in the file `../include/sys/h-XXX.h' (for your host). These values, -plus the structures and macros defined in `a.out.h' on your host -system, will produce a BFD target that will access ordinary a.out files -on your host. To configure a new machine to use `host-aout.c', specify: - - TDEFAULTS = -DDEFAULT_VECTOR=host_aout_big_vec - TDEPFILES= host-aout.o trad-core.o - - in the `config/XXX.mt' file, and modify `configure.in' to use the -`XXX.mt' file (by setting "`bfd_target=XXX'") when your configuration -is selected. - -3.1.1 Relocations ------------------ - -*Description* -The file `aoutx.h' provides for both the _standard_ and _extended_ -forms of a.out relocation records. - - The standard records contain only an address, a symbol index, and a -type field. The extended records (used on 29ks and sparcs) also have a -full integer for an addend. - -3.1.2 Internal entry points ---------------------------- - -*Description* -`aoutx.h' exports several routines for accessing the contents of an -a.out file, which are gathered and exported in turn by various format -specific files (eg sunos.c). - -3.1.2.1 `aout_SIZE_swap_exec_header_in' -....................................... - -*Synopsis* - void aout_SIZE_swap_exec_header_in, - (bfd *abfd, - struct external_exec *raw_bytes, - struct internal_exec *execp); - *Description* -Swap the information in an executable header RAW_BYTES taken from a raw -byte stream memory image into the internal exec header structure EXECP. - -3.1.2.2 `aout_SIZE_swap_exec_header_out' -........................................ - -*Synopsis* - void aout_SIZE_swap_exec_header_out - (bfd *abfd, - struct internal_exec *execp, - struct external_exec *raw_bytes); - *Description* -Swap the information in an internal exec header structure EXECP into -the buffer RAW_BYTES ready for writing to disk. - -3.1.2.3 `aout_SIZE_some_aout_object_p' -...................................... - -*Synopsis* - const bfd_target *aout_SIZE_some_aout_object_p - (bfd *abfd, - const bfd_target *(*callback_to_real_object_p) ()); - *Description* -Some a.out variant thinks that the file open in ABFD checking is an -a.out file. Do some more checking, and set up for access if it really -is. Call back to the calling environment's "finish up" function just -before returning, to handle any last-minute setup. - -3.1.2.4 `aout_SIZE_mkobject' -............................ - -*Synopsis* - bfd_boolean aout_SIZE_mkobject, (bfd *abfd); - *Description* -Initialize BFD ABFD for use with a.out files. - -3.1.2.5 `aout_SIZE_machine_type' -................................ - -*Synopsis* - enum machine_type aout_SIZE_machine_type - (enum bfd_architecture arch, - unsigned long machine)); - *Description* -Keep track of machine architecture and machine type for a.out's. Return -the `machine_type' for a particular architecture and machine, or -`M_UNKNOWN' if that exact architecture and machine can't be represented -in a.out format. - - If the architecture is understood, machine type 0 (default) is -always understood. - -3.1.2.6 `aout_SIZE_set_arch_mach' -................................. - -*Synopsis* - bfd_boolean aout_SIZE_set_arch_mach, - (bfd *, - enum bfd_architecture arch, - unsigned long machine)); - *Description* -Set the architecture and the machine of the BFD ABFD to the values ARCH -and MACHINE. Verify that ABFD's format can support the architecture -required. - -3.1.2.7 `aout_SIZE_new_section_hook' -.................................... - -*Synopsis* - bfd_boolean aout_SIZE_new_section_hook, - (bfd *abfd, - asection *newsect)); - *Description* -Called by the BFD in response to a `bfd_make_section' request. - - -File: bfd.info, Node: coff, Next: elf, Prev: aout, Up: BFD back ends - -3.2 coff backends -================= - -BFD supports a number of different flavours of coff format. The major -differences between formats are the sizes and alignments of fields in -structures on disk, and the occasional extra field. - - Coff in all its varieties is implemented with a few common files and -a number of implementation specific files. For example, The 88k bcs -coff format is implemented in the file `coff-m88k.c'. This file -`#include's `coff/m88k.h' which defines the external structure of the -coff format for the 88k, and `coff/internal.h' which defines the -internal structure. `coff-m88k.c' also defines the relocations used by -the 88k format *Note Relocations::. - - The Intel i960 processor version of coff is implemented in -`coff-i960.c'. This file has the same structure as `coff-m88k.c', -except that it includes `coff/i960.h' rather than `coff-m88k.h'. - -3.2.1 Porting to a new version of coff --------------------------------------- - -The recommended method is to select from the existing implementations -the version of coff which is most like the one you want to use. For -example, we'll say that i386 coff is the one you select, and that your -coff flavour is called foo. Copy `i386coff.c' to `foocoff.c', copy -`../include/coff/i386.h' to `../include/coff/foo.h', and add the lines -to `targets.c' and `Makefile.in' so that your new back end is used. -Alter the shapes of the structures in `../include/coff/foo.h' so that -they match what you need. You will probably also have to add `#ifdef's -to the code in `coff/internal.h' and `coffcode.h' if your version of -coff is too wild. - - You can verify that your new BFD backend works quite simply by -building `objdump' from the `binutils' directory, and making sure that -its version of what's going on and your host system's idea (assuming it -has the pretty standard coff dump utility, usually called `att-dump' or -just `dump') are the same. Then clean up your code, and send what -you've done to Cygnus. Then your stuff will be in the next release, and -you won't have to keep integrating it. - -3.2.2 How the coff backend works --------------------------------- - -3.2.2.1 File layout -................... - -The Coff backend is split into generic routines that are applicable to -any Coff target and routines that are specific to a particular target. -The target-specific routines are further split into ones which are -basically the same for all Coff targets except that they use the -external symbol format or use different values for certain constants. - - The generic routines are in `coffgen.c'. These routines work for -any Coff target. They use some hooks into the target specific code; -the hooks are in a `bfd_coff_backend_data' structure, one of which -exists for each target. - - The essentially similar target-specific routines are in -`coffcode.h'. This header file includes executable C code. The -various Coff targets first include the appropriate Coff header file, -make any special defines that are needed, and then include `coffcode.h'. - - Some of the Coff targets then also have additional routines in the -target source file itself. - - For example, `coff-i960.c' includes `coff/internal.h' and -`coff/i960.h'. It then defines a few constants, such as `I960', and -includes `coffcode.h'. Since the i960 has complex relocation types, -`coff-i960.c' also includes some code to manipulate the i960 relocs. -This code is not in `coffcode.h' because it would not be used by any -other target. - -3.2.2.2 Bit twiddling -..................... - -Each flavour of coff supported in BFD has its own header file -describing the external layout of the structures. There is also an -internal description of the coff layout, in `coff/internal.h'. A major -function of the coff backend is swapping the bytes and twiddling the -bits to translate the external form of the structures into the normal -internal form. This is all performed in the `bfd_swap'_thing_direction -routines. Some elements are different sizes between different versions -of coff; it is the duty of the coff version specific include file to -override the definitions of various packing routines in `coffcode.h'. -E.g., the size of line number entry in coff is sometimes 16 bits, and -sometimes 32 bits. `#define'ing `PUT_LNSZ_LNNO' and `GET_LNSZ_LNNO' -will select the correct one. No doubt, some day someone will find a -version of coff which has a varying field size not catered to at the -moment. To port BFD, that person will have to add more `#defines'. -Three of the bit twiddling routines are exported to `gdb'; -`coff_swap_aux_in', `coff_swap_sym_in' and `coff_swap_lineno_in'. `GDB' -reads the symbol table on its own, but uses BFD to fix things up. More -of the bit twiddlers are exported for `gas'; `coff_swap_aux_out', -`coff_swap_sym_out', `coff_swap_lineno_out', `coff_swap_reloc_out', -`coff_swap_filehdr_out', `coff_swap_aouthdr_out', -`coff_swap_scnhdr_out'. `Gas' currently keeps track of all the symbol -table and reloc drudgery itself, thereby saving the internal BFD -overhead, but uses BFD to swap things on the way out, making cross -ports much safer. Doing so also allows BFD (and thus the linker) to -use the same header files as `gas', which makes one avenue to disaster -disappear. - -3.2.2.3 Symbol reading -...................... - -The simple canonical form for symbols used by BFD is not rich enough to -keep all the information available in a coff symbol table. The back end -gets around this problem by keeping the original symbol table around, -"behind the scenes". - - When a symbol table is requested (through a call to -`bfd_canonicalize_symtab'), a request gets through to -`coff_get_normalized_symtab'. This reads the symbol table from the coff -file and swaps all the structures inside into the internal form. It -also fixes up all the pointers in the table (represented in the file by -offsets from the first symbol in the table) into physical pointers to -elements in the new internal table. This involves some work since the -meanings of fields change depending upon context: a field that is a -pointer to another structure in the symbol table at one moment may be -the size in bytes of a structure at the next. Another pass is made -over the table. All symbols which mark file names (`C_FILE' symbols) -are modified so that the internal string points to the value in the -auxent (the real filename) rather than the normal text associated with -the symbol (`".file"'). - - At this time the symbol names are moved around. Coff stores all -symbols less than nine characters long physically within the symbol -table; longer strings are kept at the end of the file in the string -table. This pass moves all strings into memory and replaces them with -pointers to the strings. - - The symbol table is massaged once again, this time to create the -canonical table used by the BFD application. Each symbol is inspected -in turn, and a decision made (using the `sclass' field) about the -various flags to set in the `asymbol'. *Note Symbols::. The generated -canonical table shares strings with the hidden internal symbol table. - - Any linenumbers are read from the coff file too, and attached to the -symbols which own the functions the linenumbers belong to. - -3.2.2.4 Symbol writing -...................... - -Writing a symbol to a coff file which didn't come from a coff file will -lose any debugging information. The `asymbol' structure remembers the -BFD from which the symbol was taken, and on output the back end makes -sure that the same destination target as source target is present. - - When the symbols have come from a coff file then all the debugging -information is preserved. - - Symbol tables are provided for writing to the back end in a vector -of pointers to pointers. This allows applications like the linker to -accumulate and output large symbol tables without having to do too much -byte copying. - - This function runs through the provided symbol table and patches -each symbol marked as a file place holder (`C_FILE') to point to the -next file place holder in the list. It also marks each `offset' field -in the list with the offset from the first symbol of the current symbol. - - Another function of this procedure is to turn the canonical value -form of BFD into the form used by coff. Internally, BFD expects symbol -values to be offsets from a section base; so a symbol physically at -0x120, but in a section starting at 0x100, would have the value 0x20. -Coff expects symbols to contain their final value, so symbols have -their values changed at this point to reflect their sum with their -owning section. This transformation uses the `output_section' field of -the `asymbol''s `asection' *Note Sections::. - - * `coff_mangle_symbols' - This routine runs though the provided symbol table and uses the -offsets generated by the previous pass and the pointers generated when -the symbol table was read in to create the structured hierarchy -required by coff. It changes each pointer to a symbol into the index -into the symbol table of the asymbol. - - * `coff_write_symbols' - This routine runs through the symbol table and patches up the -symbols from their internal form into the coff way, calls the bit -twiddlers, and writes out the table to the file. - -3.2.2.5 `coff_symbol_type' -.......................... - -*Description* -The hidden information for an `asymbol' is described in a -`combined_entry_type': - - - typedef struct coff_ptr_struct - { - /* Remembers the offset from the first symbol in the file for - this symbol. Generated by coff_renumber_symbols. */ - unsigned int offset; - - /* Should the value of this symbol be renumbered. Used for - XCOFF C_BSTAT symbols. Set by coff_slurp_symbol_table. */ - unsigned int fix_value : 1; - - /* Should the tag field of this symbol be renumbered. - Created by coff_pointerize_aux. */ - unsigned int fix_tag : 1; - - /* Should the endidx field of this symbol be renumbered. - Created by coff_pointerize_aux. */ - unsigned int fix_end : 1; - - /* Should the x_csect.x_scnlen field be renumbered. - Created by coff_pointerize_aux. */ - unsigned int fix_scnlen : 1; - - /* Fix up an XCOFF C_BINCL/C_EINCL symbol. The value is the - index into the line number entries. Set by coff_slurp_symbol_table. */ - unsigned int fix_line : 1; - - /* The container for the symbol structure as read and translated - from the file. */ - union - { - union internal_auxent auxent; - struct internal_syment syment; - } u; - } combined_entry_type; - - - /* Each canonical asymbol really looks like this: */ - - typedef struct coff_symbol_struct - { - /* The actual symbol which the rest of BFD works with */ - asymbol symbol; - - /* A pointer to the hidden information for this symbol */ - combined_entry_type *native; - - /* A pointer to the linenumber information for this symbol */ - struct lineno_cache_entry *lineno; - - /* Have the line numbers been relocated yet ? */ - bfd_boolean done_lineno; - } coff_symbol_type; - -3.2.2.6 `bfd_coff_backend_data' -............................... - - /* COFF symbol classifications. */ - - enum coff_symbol_classification - { - /* Global symbol. */ - COFF_SYMBOL_GLOBAL, - /* Common symbol. */ - COFF_SYMBOL_COMMON, - /* Undefined symbol. */ - COFF_SYMBOL_UNDEFINED, - /* Local symbol. */ - COFF_SYMBOL_LOCAL, - /* PE section symbol. */ - COFF_SYMBOL_PE_SECTION - }; -Special entry points for gdb to swap in coff symbol table parts: - typedef struct - { - void (*_bfd_coff_swap_aux_in) - PARAMS ((bfd *, PTR, int, int, int, int, PTR)); - - void (*_bfd_coff_swap_sym_in) - PARAMS ((bfd *, PTR, PTR)); - - void (*_bfd_coff_swap_lineno_in) - PARAMS ((bfd *, PTR, PTR)); - - unsigned int (*_bfd_coff_swap_aux_out) - PARAMS ((bfd *, PTR, int, int, int, int, PTR)); - - unsigned int (*_bfd_coff_swap_sym_out) - PARAMS ((bfd *, PTR, PTR)); - - unsigned int (*_bfd_coff_swap_lineno_out) - PARAMS ((bfd *, PTR, PTR)); - - unsigned int (*_bfd_coff_swap_reloc_out) - PARAMS ((bfd *, PTR, PTR)); - - unsigned int (*_bfd_coff_swap_filehdr_out) - PARAMS ((bfd *, PTR, PTR)); - - unsigned int (*_bfd_coff_swap_aouthdr_out) - PARAMS ((bfd *, PTR, PTR)); - - unsigned int (*_bfd_coff_swap_scnhdr_out) - PARAMS ((bfd *, PTR, PTR)); - - unsigned int _bfd_filhsz; - unsigned int _bfd_aoutsz; - unsigned int _bfd_scnhsz; - unsigned int _bfd_symesz; - unsigned int _bfd_auxesz; - unsigned int _bfd_relsz; - unsigned int _bfd_linesz; - unsigned int _bfd_filnmlen; - bfd_boolean _bfd_coff_long_filenames; - bfd_boolean _bfd_coff_long_section_names; - unsigned int _bfd_coff_default_section_alignment_power; - bfd_boolean _bfd_coff_force_symnames_in_strings; - unsigned int _bfd_coff_debug_string_prefix_length; - - void (*_bfd_coff_swap_filehdr_in) - PARAMS ((bfd *, PTR, PTR)); - - void (*_bfd_coff_swap_aouthdr_in) - PARAMS ((bfd *, PTR, PTR)); - - void (*_bfd_coff_swap_scnhdr_in) - PARAMS ((bfd *, PTR, PTR)); - - void (*_bfd_coff_swap_reloc_in) - PARAMS ((bfd *abfd, PTR, PTR)); - - bfd_boolean (*_bfd_coff_bad_format_hook) - PARAMS ((bfd *, PTR)); - - bfd_boolean (*_bfd_coff_set_arch_mach_hook) - PARAMS ((bfd *, PTR)); - - PTR (*_bfd_coff_mkobject_hook) - PARAMS ((bfd *, PTR, PTR)); - - bfd_boolean (*_bfd_styp_to_sec_flags_hook) - PARAMS ((bfd *, PTR, const char *, asection *, flagword *)); - - void (*_bfd_set_alignment_hook) - PARAMS ((bfd *, asection *, PTR)); - - bfd_boolean (*_bfd_coff_slurp_symbol_table) - PARAMS ((bfd *)); - - bfd_boolean (*_bfd_coff_symname_in_debug) - PARAMS ((bfd *, struct internal_syment *)); - - bfd_boolean (*_bfd_coff_pointerize_aux_hook) - PARAMS ((bfd *, combined_entry_type *, combined_entry_type *, - unsigned int, combined_entry_type *)); - - bfd_boolean (*_bfd_coff_print_aux) - PARAMS ((bfd *, FILE *, combined_entry_type *, combined_entry_type *, - combined_entry_type *, unsigned int)); - - void (*_bfd_coff_reloc16_extra_cases) - PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *, - bfd_byte *, unsigned int *, unsigned int *)); - - int (*_bfd_coff_reloc16_estimate) - PARAMS ((bfd *, asection *, arelent *, unsigned int, - struct bfd_link_info *)); - - enum coff_symbol_classification (*_bfd_coff_classify_symbol) - PARAMS ((bfd *, struct internal_syment *)); - - bfd_boolean (*_bfd_coff_compute_section_file_positions) - PARAMS ((bfd *)); - - bfd_boolean (*_bfd_coff_start_final_link) - PARAMS ((bfd *, struct bfd_link_info *)); - - bfd_boolean (*_bfd_coff_relocate_section) - PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, - struct internal_reloc *, struct internal_syment *, asection **)); - - reloc_howto_type *(*_bfd_coff_rtype_to_howto) - PARAMS ((bfd *, asection *, struct internal_reloc *, - struct coff_link_hash_entry *, struct internal_syment *, - bfd_vma *)); - - bfd_boolean (*_bfd_coff_adjust_symndx) - PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, - struct internal_reloc *, bfd_boolean *)); - - bfd_boolean (*_bfd_coff_link_add_one_symbol) - PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword, - asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean, - struct bfd_link_hash_entry **)); - - bfd_boolean (*_bfd_coff_link_output_has_begun) - PARAMS ((bfd *, struct coff_final_link_info *)); - - bfd_boolean (*_bfd_coff_final_link_postscript) - PARAMS ((bfd *, struct coff_final_link_info *)); - - } bfd_coff_backend_data; - - #define coff_backend_info(abfd) \ - ((bfd_coff_backend_data *) (abfd)->xvec->backend_data) - - #define bfd_coff_swap_aux_in(a,e,t,c,ind,num,i) \ - ((coff_backend_info (a)->_bfd_coff_swap_aux_in) (a,e,t,c,ind,num,i)) - - #define bfd_coff_swap_sym_in(a,e,i) \ - ((coff_backend_info (a)->_bfd_coff_swap_sym_in) (a,e,i)) - - #define bfd_coff_swap_lineno_in(a,e,i) \ - ((coff_backend_info ( a)->_bfd_coff_swap_lineno_in) (a,e,i)) - - #define bfd_coff_swap_reloc_out(abfd, i, o) \ - ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_out) (abfd, i, o)) - - #define bfd_coff_swap_lineno_out(abfd, i, o) \ - ((coff_backend_info (abfd)->_bfd_coff_swap_lineno_out) (abfd, i, o)) - - #define bfd_coff_swap_aux_out(a,i,t,c,ind,num,o) \ - ((coff_backend_info (a)->_bfd_coff_swap_aux_out) (a,i,t,c,ind,num,o)) - - #define bfd_coff_swap_sym_out(abfd, i,o) \ - ((coff_backend_info (abfd)->_bfd_coff_swap_sym_out) (abfd, i, o)) - - #define bfd_coff_swap_scnhdr_out(abfd, i,o) \ - ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_out) (abfd, i, o)) - - #define bfd_coff_swap_filehdr_out(abfd, i,o) \ - ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_out) (abfd, i, o)) - - #define bfd_coff_swap_aouthdr_out(abfd, i,o) \ - ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_out) (abfd, i, o)) - - #define bfd_coff_filhsz(abfd) (coff_backend_info (abfd)->_bfd_filhsz) - #define bfd_coff_aoutsz(abfd) (coff_backend_info (abfd)->_bfd_aoutsz) - #define bfd_coff_scnhsz(abfd) (coff_backend_info (abfd)->_bfd_scnhsz) - #define bfd_coff_symesz(abfd) (coff_backend_info (abfd)->_bfd_symesz) - #define bfd_coff_auxesz(abfd) (coff_backend_info (abfd)->_bfd_auxesz) - #define bfd_coff_relsz(abfd) (coff_backend_info (abfd)->_bfd_relsz) - #define bfd_coff_linesz(abfd) (coff_backend_info (abfd)->_bfd_linesz) - #define bfd_coff_filnmlen(abfd) (coff_backend_info (abfd)->_bfd_filnmlen) - #define bfd_coff_long_filenames(abfd) \ - (coff_backend_info (abfd)->_bfd_coff_long_filenames) - #define bfd_coff_long_section_names(abfd) \ - (coff_backend_info (abfd)->_bfd_coff_long_section_names) - #define bfd_coff_default_section_alignment_power(abfd) \ - (coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power) - #define bfd_coff_swap_filehdr_in(abfd, i,o) \ - ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o)) - - #define bfd_coff_swap_aouthdr_in(abfd, i,o) \ - ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_in) (abfd, i, o)) - - #define bfd_coff_swap_scnhdr_in(abfd, i,o) \ - ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_in) (abfd, i, o)) - - #define bfd_coff_swap_reloc_in(abfd, i, o) \ - ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_in) (abfd, i, o)) - - #define bfd_coff_bad_format_hook(abfd, filehdr) \ - ((coff_backend_info (abfd)->_bfd_coff_bad_format_hook) (abfd, filehdr)) - - #define bfd_coff_set_arch_mach_hook(abfd, filehdr)\ - ((coff_backend_info (abfd)->_bfd_coff_set_arch_mach_hook) (abfd, filehdr)) - #define bfd_coff_mkobject_hook(abfd, filehdr, aouthdr)\ - ((coff_backend_info (abfd)->_bfd_coff_mkobject_hook)\ - (abfd, filehdr, aouthdr)) - - #define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name, section, flags_ptr)\ - ((coff_backend_info (abfd)->_bfd_styp_to_sec_flags_hook)\ - (abfd, scnhdr, name, section, flags_ptr)) - - #define bfd_coff_set_alignment_hook(abfd, sec, scnhdr)\ - ((coff_backend_info (abfd)->_bfd_set_alignment_hook) (abfd, sec, scnhdr)) - - #define bfd_coff_slurp_symbol_table(abfd)\ - ((coff_backend_info (abfd)->_bfd_coff_slurp_symbol_table) (abfd)) - - #define bfd_coff_symname_in_debug(abfd, sym)\ - ((coff_backend_info (abfd)->_bfd_coff_symname_in_debug) (abfd, sym)) - - #define bfd_coff_force_symnames_in_strings(abfd)\ - (coff_backend_info (abfd)->_bfd_coff_force_symnames_in_strings) - - #define bfd_coff_debug_string_prefix_length(abfd)\ - (coff_backend_info (abfd)->_bfd_coff_debug_string_prefix_length) - - #define bfd_coff_print_aux(abfd, file, base, symbol, aux, indaux)\ - ((coff_backend_info (abfd)->_bfd_coff_print_aux)\ - (abfd, file, base, symbol, aux, indaux)) - - #define bfd_coff_reloc16_extra_cases(abfd, link_info, link_order,\ - reloc, data, src_ptr, dst_ptr)\ - ((coff_backend_info (abfd)->_bfd_coff_reloc16_extra_cases)\ - (abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr)) - - #define bfd_coff_reloc16_estimate(abfd, section, reloc, shrink, link_info)\ - ((coff_backend_info (abfd)->_bfd_coff_reloc16_estimate)\ - (abfd, section, reloc, shrink, link_info)) - - #define bfd_coff_classify_symbol(abfd, sym)\ - ((coff_backend_info (abfd)->_bfd_coff_classify_symbol)\ - (abfd, sym)) - - #define bfd_coff_compute_section_file_positions(abfd)\ - ((coff_backend_info (abfd)->_bfd_coff_compute_section_file_positions)\ - (abfd)) - - #define bfd_coff_start_final_link(obfd, info)\ - ((coff_backend_info (obfd)->_bfd_coff_start_final_link)\ - (obfd, info)) - #define bfd_coff_relocate_section(obfd,info,ibfd,o,con,rel,isyms,secs)\ - ((coff_backend_info (ibfd)->_bfd_coff_relocate_section)\ - (obfd, info, ibfd, o, con, rel, isyms, secs)) - #define bfd_coff_rtype_to_howto(abfd, sec, rel, h, sym, addendp)\ - ((coff_backend_info (abfd)->_bfd_coff_rtype_to_howto)\ - (abfd, sec, rel, h, sym, addendp)) - #define bfd_coff_adjust_symndx(obfd, info, ibfd, sec, rel, adjustedp)\ - ((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\ - (obfd, info, ibfd, sec, rel, adjustedp)) - #define bfd_coff_link_add_one_symbol(info, abfd, name, flags, section,\ - value, string, cp, coll, hashp)\ - ((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\ - (info, abfd, name, flags, section, value, string, cp, coll, hashp)) - - #define bfd_coff_link_output_has_begun(a,p) \ - ((coff_backend_info (a)->_bfd_coff_link_output_has_begun) (a,p)) - #define bfd_coff_final_link_postscript(a,p) \ - ((coff_backend_info (a)->_bfd_coff_final_link_postscript) (a,p)) - -3.2.2.7 Writing relocations -........................... - -To write relocations, the back end steps though the canonical -relocation table and create an `internal_reloc'. The symbol index to -use is removed from the `offset' field in the symbol table supplied. -The address comes directly from the sum of the section base address and -the relocation offset; the type is dug directly from the howto field. -Then the `internal_reloc' is swapped into the shape of an -`external_reloc' and written out to disk. - -3.2.2.8 Reading linenumbers -........................... - -Creating the linenumber table is done by reading in the entire coff -linenumber table, and creating another table for internal use. - - A coff linenumber table is structured so that each function is -marked as having a line number of 0. Each line within the function is -an offset from the first line in the function. The base of the line -number information for the table is stored in the symbol associated -with the function. - - Note: The PE format uses line number 0 for a flag indicating a new -source file. - - The information is copied from the external to the internal table, -and each symbol which marks a function is marked by pointing its... - - How does this work ? - -3.2.2.9 Reading relocations -........................... - -Coff relocations are easily transformed into the internal BFD form -(`arelent'). - - Reading a coff relocation table is done in the following stages: - - * Read the entire coff relocation table into memory. - - * Process each relocation in turn; first swap it from the external - to the internal form. - - * Turn the symbol referenced in the relocation's symbol index into a - pointer into the canonical symbol table. This table is the same - as the one returned by a call to `bfd_canonicalize_symtab'. The - back end will call that routine and save the result if a - canonicalization hasn't been done. - - * The reloc index is turned into a pointer to a howto structure, in - a back end specific way. For instance, the 386 and 960 use the - `r_type' to directly produce an index into a howto table vector; - the 88k subtracts a number from the `r_type' field and creates an - addend field. - - -File: bfd.info, Node: elf, Next: mmo, Prev: coff, Up: BFD back ends - -3.3 -=== - -ELF backends - - BFD support for ELF formats is being worked on. Currently, the best -supported back ends are for sparc and i386 (running svr4 or Solaris 2). - - Documentation of the internals of the support code still needs to be -written. The code is changing quickly enough that we haven't bothered -yet. - -3.3.0.1 `bfd_elf_find_section' -.............................. - -*Synopsis* - struct elf_internal_shdr *bfd_elf_find_section (bfd *abfd, char *name); - *Description* -Helper functions for GDB to locate the string tables. Since BFD hides -string tables from callers, GDB needs to use an internal hook to find -them. Sun's .stabstr, in particular, isn't even pointed to by the -.stab section, so ordinary mechanisms wouldn't work to find it, even if -we had some. - - -File: bfd.info, Node: mmo, Prev: elf, Up: BFD back ends - -3.4 mmo backend -=============== - -The mmo object format is used exclusively together with Professor -Donald E. Knuth's educational 64-bit processor MMIX. The simulator -`mmix' which is available at -`http://www-cs-faculty.stanford.edu/~knuth/programs/mmix.tar.gz' -understands this format. That package also includes a combined -assembler and linker called `mmixal'. The mmo format has no advantages -feature-wise compared to e.g. ELF. It is a simple non-relocatable -object format with no support for archives or debugging information, -except for symbol value information and line numbers (which is not yet -implemented in BFD). See -`http://www-cs-faculty.stanford.edu/~knuth/mmix.html' for more -information about MMIX. The ELF format is used for intermediate object -files in the BFD implementation. - -* Menu: - -* File layout:: -* Symbol-table:: -* mmo section mapping:: - - -File: bfd.info, Node: File layout, Next: Symbol-table, Prev: mmo, Up: mmo - -3.4.1 File layout ------------------ - -The mmo file contents is not partitioned into named sections as with -e.g. ELF. Memory areas is formed by specifying the location of the -data that follows. Only the memory area `0x0000...00' to `0x01ff...ff' -is executable, so it is used for code (and constants) and the area -`0x2000...00' to `0x20ff...ff' is used for writable data. *Note mmo -section mapping::. - - There is provision for specifying "special data" of 65536 different -types. We use type 80 (decimal), arbitrarily chosen the same as the -ELF `e_machine' number for MMIX, filling it with section information -normally found in ELF objects. *Note mmo section mapping::. - - Contents is entered as 32-bit words, xor:ed over previous contents, -always zero-initialized. A word that starts with the byte `0x98' forms -a command called a `lopcode', where the next byte distinguished between -the thirteen lopcodes. The two remaining bytes, called the `Y' and `Z' -fields, or the `YZ' field (a 16-bit big-endian number), are used for -various purposes different for each lopcode. As documented in -`http://www-cs-faculty.stanford.edu/~knuth/mmixal-intro.ps.gz', the -lopcodes are: - -`lop_quote' - 0x98000001. The next word is contents, regardless of whether it - starts with 0x98 or not. - -`lop_loc' - 0x9801YYZZ, where `Z' is 1 or 2. This is a location directive, - setting the location for the next data to the next 32-bit word - (for Z = 1) or 64-bit word (for Z = 2), plus Y * 2^56. Normally - `Y' is 0 for the text segment and 2 for the data segment. - -`lop_skip' - 0x9802YYZZ. Increase the current location by `YZ' bytes. - -`lop_fixo' - 0x9803YYZZ, where `Z' is 1 or 2. Store the current location as 64 - bits into the location pointed to by the next 32-bit (Z = 1) or - 64-bit (Z = 2) word, plus Y * 2^56. - -`lop_fixr' - 0x9804YYZZ. `YZ' is stored into the current location plus 2 - 4 * - YZ. - -`lop_fixrx' - 0x980500ZZ. `Z' is 16 or 24. A value `L' derived from the - following 32-bit word are used in a manner similar to `YZ' in - lop_fixr: it is xor:ed into the current location minus 4 * L. The - first byte of the word is 0 or 1. If it is 1, then L = (LOWEST 24 - BITS OF WORD) - 2^Z, if 0, then L = (LOWEST 24 BITS OF WORD). - -`lop_file' - 0x9806YYZZ. `Y' is the file number, `Z' is count of 32-bit words. - Set the file number to `Y' and the line counter to 0. The next Z - * 4 bytes contain the file name, padded with zeros if the count is - not a multiple of four. The same `Y' may occur multiple times, - but `Z' must be 0 for all but the first occurrence. - -`lop_line' - 0x9807YYZZ. `YZ' is the line number. Together with lop_file, it - forms the source location for the next 32-bit word. Note that for - each non-lopcode 32-bit word, line numbers are assumed incremented - by one. - -`lop_spec' - 0x9808YYZZ. `YZ' is the type number. Data until the next lopcode - other than lop_quote forms special data of type `YZ'. *Note mmo - section mapping::. - - Other types than 80, (or type 80 with a content that does not - parse) is stored in sections named `.MMIX.spec_data.N' where N is - the `YZ'-type. The flags for such a sections say not to allocate - or load the data. The vma is 0. Contents of multiple occurrences - of special data N is concatenated to the data of the previous - lop_spec Ns. The location in data or code at which the lop_spec - occurred is lost. - -`lop_pre' - 0x980901ZZ. The first lopcode in a file. The `Z' field forms the - length of header information in 32-bit words, where the first word - tells the time in seconds since `00:00:00 GMT Jan 1 1970'. - -`lop_post' - 0x980a00ZZ. Z > 32. This lopcode follows after all - content-generating lopcodes in a program. The `Z' field denotes - the value of `rG' at the beginning of the program. The following - 256 - Z big-endian 64-bit words are loaded into global registers - `$G' ... `$255'. - -`lop_stab' - 0x980b0000. The next-to-last lopcode in a program. Must follow - immediately after the lop_post lopcode and its data. After this - lopcode follows all symbols in a compressed format (*note - Symbol-table::). - -`lop_end' - 0x980cYYZZ. The last lopcode in a program. It must follow the - lop_stab lopcode and its data. The `YZ' field contains the number - of 32-bit words of symbol table information after the preceding - lop_stab lopcode. - - Note that the lopcode "fixups"; `lop_fixr', `lop_fixrx' and -`lop_fixo' are not generated by BFD, but are handled. They are -generated by `mmixal'. - - This trivial one-label, one-instruction file: - - :Main TRAP 1,2,3 - - can be represented this way in mmo: - - 0x98090101 - lop_pre, one 32-bit word with timestamp. - - 0x98010002 - lop_loc, text segment, using a 64-bit address. - Note that mmixal does not emit this for the file above. - 0x00000000 - Address, high 32 bits. - 0x00000000 - Address, low 32 bits. - 0x98060002 - lop_file, 2 32-bit words for file-name. - 0x74657374 - "test" - 0x2e730000 - ".s\0\0" - 0x98070001 - lop_line, line 1. - 0x00010203 - TRAP 1,2,3 - 0x980a00ff - lop_post, setting $255 to 0. - 0x00000000 - 0x00000000 - 0x980b0000 - lop_stab for ":Main" = 0, serial 1. - 0x203a4040 *Note Symbol-table::. - 0x10404020 - 0x4d206120 - 0x69016e00 - 0x81000000 - 0x980c0005 - lop_end; symbol table contained five 32-bit words. - - -File: bfd.info, Node: Symbol-table, Next: mmo section mapping, Prev: File layout, Up: mmo - -3.4.2 Symbol table format -------------------------- - -From mmixal.w (or really, the generated mmixal.tex) in -`http://www-cs-faculty.stanford.edu/~knuth/programs/mmix.tar.gz'): -"Symbols are stored and retrieved by means of a `ternary search trie', -following ideas of Bentley and Sedgewick. (See ACM-SIAM Symp. on -Discrete Algorithms `8' (1997), 360-369; R.Sedgewick, `Algorithms in C' -(Reading, Mass. Addison-Wesley, 1998), `15.4'.) Each trie node stores -a character, and there are branches to subtries for the cases where a -given character is less than, equal to, or greater than the character -in the trie. There also is a pointer to a symbol table entry if a -symbol ends at the current node." - - So it's a tree encoded as a stream of bytes. The stream of bytes -acts on a single virtual global symbol, adding and removing characters -and signalling complete symbol points. Here, we read the stream and -create symbols at the completion points. - - First, there's a control byte `m'. If any of the listed bits in `m' -is nonzero, we execute what stands at the right, in the listed order: - - (MMO3_LEFT) - 0x40 - Traverse left trie. - (Read a new command byte and recurse.) - - (MMO3_SYMBITS) - 0x2f - Read the next byte as a character and store it in the - current character position; increment character position. - Test the bits of `m': - - (MMO3_WCHAR) - 0x80 - The character is 16-bit (so read another byte, - merge into current character. - - (MMO3_TYPEBITS) - 0xf - We have a complete symbol; parse the type, value - and serial number and do what should be done - with a symbol. The type and length information - is in j = (m & 0xf). - - (MMO3_REGQUAL_BITS) - j == 0xf: A register variable. The following - byte tells which register. - j <= 8: An absolute symbol. Read j bytes as the - big-endian number the symbol equals. - A j = 2 with two zero bytes denotes an - unknown symbol. - j > 8: As with j <= 8, but add (0x20 << 56) - to the value in the following j - 8 - bytes. - - Then comes the serial number, as a variant of - uleb128, but better named ubeb128: - Read bytes and shift the previous value left 7 - (multiply by 128). Add in the new byte, repeat - until a byte has bit 7 set. The serial number - is the computed value minus 128. - - (MMO3_MIDDLE) - 0x20 - Traverse middle trie. (Read a new command byte - and recurse.) Decrement character position. - - (MMO3_RIGHT) - 0x10 - Traverse right trie. (Read a new command byte and - recurse.) - - Let's look again at the `lop_stab' for the trivial file (*note File -layout::). - - 0x980b0000 - lop_stab for ":Main" = 0, serial 1. - 0x203a4040 - 0x10404020 - 0x4d206120 - 0x69016e00 - 0x81000000 - - This forms the trivial trie (note that the path between ":" and "M" -is redundant): - - 203a ":" - 40 / - 40 / - 10 \ - 40 / - 40 / - 204d "M" - 2061 "a" - 2069 "i" - 016e "n" is the last character in a full symbol, and - with a value represented in one byte. - 00 The value is 0. - 81 The serial number is 1. - diff --git a/bfd/doc/bfd.info-2 b/bfd/doc/bfd.info-2 deleted file mode 100644 index 0485aed5b79..00000000000 --- a/bfd/doc/bfd.info-2 +++ /dev/null @@ -1,1702 +0,0 @@ -This is ../.././bfd/doc/bfd.info, produced by makeinfo version 4.7 from -../.././bfd/doc/bfd.texinfo. - -START-INFO-DIR-ENTRY -* Bfd: (bfd). The Binary File Descriptor library. -END-INFO-DIR-ENTRY - - This file documents the BFD library. - - Copyright (C) 1991, 2000, 2001, 2003 Free Software Foundation, Inc. - - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 - or any later version published by the Free Software Foundation; - with no Invariant Sections, with no Front-Cover Texts, and with no - Back-Cover Texts. A copy of the license is included in the -section entitled "GNU Free Documentation License". - - -File: bfd.info, Node: mmo section mapping, Prev: Symbol-table, Up: mmo - -3.4.3 mmo section mapping -------------------------- - -The implementation in BFD uses special data type 80 (decimal) to -encapsulate and describe named sections, containing e.g. debug -information. If needed, any datum in the encapsulation will be quoted -using lop_quote. First comes a 32-bit word holding the number of -32-bit words containing the zero-terminated zero-padded segment name. -After the name there's a 32-bit word holding flags describing the -section type. Then comes a 64-bit big-endian word with the section -length (in bytes), then another with the section start address. -Depending on the type of section, the contents might follow, -zero-padded to 32-bit boundary. For a loadable section (such as data -or code), the contents might follow at some later point, not -necessarily immediately, as a lop_loc with the same start address as in -the section description, followed by the contents. This in effect -forms a descriptor that must be emitted before the actual contents. -Sections described this way must not overlap. - - For areas that don't have such descriptors, synthetic sections are -formed by BFD. Consecutive contents in the two memory areas -`0x0000...00' to `0x01ff...ff' and `0x2000...00' to `0x20ff...ff' are -entered in sections named `.text' and `.data' respectively. If an area -is not otherwise described, but would together with a neighboring lower -area be less than `0x40000000' bytes long, it is joined with the lower -area and the gap is zero-filled. For other cases, a new section is -formed, named `.MMIX.sec.N'. Here, N is a number, a running count -through the mmo file, starting at 0. - - A loadable section specified as: - - .section secname,"ax" - TETRA 1,2,3,4,-1,-2009 - BYTE 80 - - and linked to address `0x4', is represented by the sequence: - - 0x98080050 - lop_spec 80 - 0x00000002 - two 32-bit words for the section name - 0x7365636e - "secn" - 0x616d6500 - "ame\0" - 0x00000033 - flags CODE, READONLY, LOAD, ALLOC - 0x00000000 - high 32 bits of section length - 0x0000001c - section length is 28 bytes; 6 * 4 + 1 + alignment to 32 bits - 0x00000000 - high 32 bits of section address - 0x00000004 - section address is 4 - 0x98010002 - 64 bits with address of following data - 0x00000000 - high 32 bits of address - 0x00000004 - low 32 bits: data starts at address 4 - 0x00000001 - 1 - 0x00000002 - 2 - 0x00000003 - 3 - 0x00000004 - 4 - 0xffffffff - -1 - 0xfffff827 - -2009 - 0x50000000 - 80 as a byte, padded with zeros. - - Note that the lop_spec wrapping does not include the section -contents. Compare this to a non-loaded section specified as: - - .section thirdsec - TETRA 200001,100002 - BYTE 38,40 - - This, when linked to address `0x200000000000001c', is represented by: - - 0x98080050 - lop_spec 80 - 0x00000002 - two 32-bit words for the section name - 0x7365636e - "thir" - 0x616d6500 - "dsec" - 0x00000010 - flag READONLY - 0x00000000 - high 32 bits of section length - 0x0000000c - section length is 12 bytes; 2 * 4 + 2 + alignment to 32 bits - 0x20000000 - high 32 bits of address - 0x0000001c - low 32 bits of address 0x200000000000001c - 0x00030d41 - 200001 - 0x000186a2 - 100002 - 0x26280000 - 38, 40 as bytes, padded with zeros - - For the latter example, the section contents must not be loaded in -memory, and is therefore specified as part of the special data. The -address is usually unimportant but might provide information for e.g. -the DWARF 2 debugging format. - - -File: bfd.info, Node: GNU Free Documentation License, Next: Index, Prev: BFD back ends, Up: Top - -Appendix A GNU Free Documentation License -***************************************** - - Version 1.1, March 2000 - - Copyright (C) 2000, 2003 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - 0. PREAMBLE - - The purpose of this License is to make a manual, textbook, or other - written document "free" in the sense of freedom: to assure everyone - the effective freedom to copy and redistribute it, with or without - modifying it, either commercially or noncommercially. Secondarily, - this License preserves for the author and publisher a way to get - credit for their work, while not being considered responsible for - modifications made by others. - - This License is a kind of "copyleft", which means that derivative - works of the document must themselves be free in the same sense. - It complements the GNU General Public License, which is a copyleft - license designed for free software. - - We have designed this License in order to use it for manuals for - free software, because free software needs free documentation: a - free program should come with manuals providing the same freedoms - that the software does. But this License is not limited to - software manuals; it can be used for any textual work, regardless - of subject matter or whether it is published as a printed book. - We recommend this License principally for works whose purpose is - instruction or reference. - - - 1. APPLICABILITY AND DEFINITIONS - - This License applies to any manual or other work that contains a - notice placed by the copyright holder saying it can be distributed - under the terms of this License. The "Document", below, refers to - any such manual or work. Any member of the public is a licensee, - and is addressed as "you." - - A "Modified Version" of the Document means any work containing the - Document or a portion of it, either copied verbatim, or with - modifications and/or translated into another language. - - A "Secondary Section" is a named appendix or a front-matter - section of the Document that deals exclusively with the - relationship of the publishers or authors of the Document to the - Document's overall subject (or to related matters) and contains - nothing that could fall directly within that overall subject. - (For example, if the Document is in part a textbook of - mathematics, a Secondary Section may not explain any mathematics.) - The relationship could be a matter of historical connection with - the subject or with related matters, or of legal, commercial, - philosophical, ethical or political position regarding them. - - The "Invariant Sections" are certain Secondary Sections whose - titles are designated, as being those of Invariant Sections, in - the notice that says that the Document is released under this - License. - - The "Cover Texts" are certain short passages of text that are - listed, as Front-Cover Texts or Back-Cover Texts, in the notice - that says that the Document is released under this License. - - A "Transparent" copy of the Document means a machine-readable copy, - represented in a format whose specification is available to the - general public, whose contents can be viewed and edited directly - and straightforwardly with generic text editors or (for images - composed of pixels) generic paint programs or (for drawings) some - widely available drawing editor, and that is suitable for input to - text formatters or for automatic translation to a variety of - formats suitable for input to text formatters. A copy made in an - otherwise Transparent file format whose markup has been designed - to thwart or discourage subsequent modification by readers is not - Transparent. A copy that is not "Transparent" is called "Opaque." - - Examples of suitable formats for Transparent copies include plain - ASCII without markup, Texinfo input format, LaTeX input format, - SGML or XML using a publicly available DTD, and - standard-conforming simple HTML designed for human modification. - Opaque formats include PostScript, PDF, proprietary formats that - can be read and edited only by proprietary word processors, SGML - or XML for which the DTD and/or processing tools are not generally - available, and the machine-generated HTML produced by some word - processors for output purposes only. - - The "Title Page" means, for a printed book, the title page itself, - plus such following pages as are needed to hold, legibly, the - material this License requires to appear in the title page. For - works in formats which do not have any title page as such, "Title - Page" means the text near the most prominent appearance of the - work's title, preceding the beginning of the body of the text. - - 2. VERBATIM COPYING - - You may copy and distribute the Document in any medium, either - commercially or noncommercially, provided that this License, the - copyright notices, and the license notice saying this License - applies to the Document are reproduced in all copies, and that you - add no other conditions whatsoever to those of this License. You - may not use technical measures to obstruct or control the reading - or further copying of the copies you make or distribute. However, - you may accept compensation in exchange for copies. If you - distribute a large enough number of copies you must also follow - the conditions in section 3. - - You may also lend copies, under the same conditions stated above, - and you may publicly display copies. - - 3. COPYING IN QUANTITY - - If you publish printed copies of the Document numbering more than - 100, and the Document's license notice requires Cover Texts, you - must enclose the copies in covers that carry, clearly and legibly, - all these Cover Texts: Front-Cover Texts on the front cover, and - Back-Cover Texts on the back cover. Both covers must also clearly - and legibly identify you as the publisher of these copies. The - front cover must present the full title with all words of the - title equally prominent and visible. You may add other material - on the covers in addition. Copying with changes limited to the - covers, as long as they preserve the title of the Document and - satisfy these conditions, can be treated as verbatim copying in - other respects. - - If the required texts for either cover are too voluminous to fit - legibly, you should put the first ones listed (as many as fit - reasonably) on the actual cover, and continue the rest onto - adjacent pages. - - If you publish or distribute Opaque copies of the Document - numbering more than 100, you must either include a - machine-readable Transparent copy along with each Opaque copy, or - state in or with each Opaque copy a publicly-accessible - computer-network location containing a complete Transparent copy - of the Document, free of added material, which the general - network-using public has access to download anonymously at no - charge using public-standard network protocols. If you use the - latter option, you must take reasonably prudent steps, when you - begin distribution of Opaque copies in quantity, to ensure that - this Transparent copy will remain thus accessible at the stated - location until at least one year after the last time you - distribute an Opaque copy (directly or through your agents or - retailers) of that edition to the public. - - It is requested, but not required, that you contact the authors of - the Document well before redistributing any large number of - copies, to give them a chance to provide you with an updated - version of the Document. - - 4. MODIFICATIONS - - You may copy and distribute a Modified Version of the Document - under the conditions of sections 2 and 3 above, provided that you - release the Modified Version under precisely this License, with - the Modified Version filling the role of the Document, thus - licensing distribution and modification of the Modified Version to - whoever possesses a copy of it. In addition, you must do these - things in the Modified Version: - - A. Use in the Title Page (and on the covers, if any) a title - distinct from that of the Document, and from those of previous - versions (which should, if there were any, be listed in the - History section of the Document). You may use the same title - as a previous version if the original publisher of that version - gives permission. - B. List on the Title Page, as authors, one or more persons or - entities responsible for authorship of the modifications in the - Modified Version, together with at least five of the principal - authors of the Document (all of its principal authors, if it - has less than five). - C. State on the Title page the name of the publisher of the - Modified Version, as the publisher. - D. Preserve all the copyright notices of the Document. - E. Add an appropriate copyright notice for your modifications - adjacent to the other copyright notices. - F. Include, immediately after the copyright notices, a license - notice giving the public permission to use the Modified Version - under the terms of this License, in the form shown in the - Addendum below. - G. Preserve in that license notice the full lists of Invariant - Sections and required Cover Texts given in the Document's - license notice. - H. Include an unaltered copy of this License. - I. Preserve the section entitled "History", and its title, and add - to it an item stating at least the title, year, new authors, and - publisher of the Modified Version as given on the Title Page. - If there is no section entitled "History" in the Document, - create one stating the title, year, authors, and publisher of - the Document as given on its Title Page, then add an item - describing the Modified Version as stated in the previous - sentence. - J. Preserve the network location, if any, given in the Document for - public access to a Transparent copy of the Document, and - likewise the network locations given in the Document for - previous versions it was based on. These may be placed in the - "History" section. You may omit a network location for a work - that was published at least four years before the Document - itself, or if the original publisher of the version it refers - to gives permission. - K. In any section entitled "Acknowledgements" or "Dedications", - preserve the section's title, and preserve in the section all the - substance and tone of each of the contributor acknowledgements - and/or dedications given therein. - L. Preserve all the Invariant Sections of the Document, - unaltered in their text and in their titles. Section numbers - or the equivalent are not considered part of the section titles. - M. Delete any section entitled "Endorsements." Such a section - may not be included in the Modified Version. - N. Do not retitle any existing section as "Endorsements" or to - conflict in title with any Invariant Section. - - If the Modified Version includes new front-matter sections or - appendices that qualify as Secondary Sections and contain no - material copied from the Document, you may at your option - designate some or all of these sections as invariant. To do this, - add their titles to the list of Invariant Sections in the Modified - Version's license notice. These titles must be distinct from any - other section titles. - - You may add a section entitled "Endorsements", provided it contains - nothing but endorsements of your Modified Version by various - parties-for example, statements of peer review or that the text has - been approved by an organization as the authoritative definition - of a standard. - - You may add a passage of up to five words as a Front-Cover Text, - and a passage of up to 25 words as a Back-Cover Text, to the end - of the list of Cover Texts in the Modified Version. Only one - passage of Front-Cover Text and one of Back-Cover Text may be - added by (or through arrangements made by) any one entity. If the - Document already includes a cover text for the same cover, - previously added by you or by arrangement made by the same entity - you are acting on behalf of, you may not add another; but you may - replace the old one, on explicit permission from the previous - publisher that added the old one. - - The author(s) and publisher(s) of the Document do not by this - License give permission to use their names for publicity for or to - assert or imply endorsement of any Modified Version. - - 5. COMBINING DOCUMENTS - - You may combine the Document with other documents released under - this License, under the terms defined in section 4 above for - modified versions, provided that you include in the combination - all of the Invariant Sections of all of the original documents, - unmodified, and list them all as Invariant Sections of your - combined work in its license notice. - - The combined work need only contain one copy of this License, and - multiple identical Invariant Sections may be replaced with a single - copy. If there are multiple Invariant Sections with the same name - but different contents, make the title of each such section unique - by adding at the end of it, in parentheses, the name of the - original author or publisher of that section if known, or else a - unique number. Make the same adjustment to the section titles in - the list of Invariant Sections in the license notice of the - combined work. - - In the combination, you must combine any sections entitled - "History" in the various original documents, forming one section - entitled "History"; likewise combine any sections entitled - "Acknowledgements", and any sections entitled "Dedications." You - must delete all sections entitled "Endorsements." - - 6. COLLECTIONS OF DOCUMENTS - - You may make a collection consisting of the Document and other - documents released under this License, and replace the individual - copies of this License in the various documents with a single copy - that is included in the collection, provided that you follow the - rules of this License for verbatim copying of each of the - documents in all other respects. - - You may extract a single document from such a collection, and - distribute it individually under this License, provided you insert - a copy of this License into the extracted document, and follow - this License in all other respects regarding verbatim copying of - that document. - - 7. AGGREGATION WITH INDEPENDENT WORKS - - A compilation of the Document or its derivatives with other - separate and independent documents or works, in or on a volume of - a storage or distribution medium, does not as a whole count as a - Modified Version of the Document, provided no compilation - copyright is claimed for the compilation. Such a compilation is - called an "aggregate", and this License does not apply to the - other self-contained works thus compiled with the Document, on - account of their being thus compiled, if they are not themselves - derivative works of the Document. - - If the Cover Text requirement of section 3 is applicable to these - copies of the Document, then if the Document is less than one - quarter of the entire aggregate, the Document's Cover Texts may be - placed on covers that surround only the Document within the - aggregate. Otherwise they must appear on covers around the whole - aggregate. - - 8. TRANSLATION - - Translation is considered a kind of modification, so you may - distribute translations of the Document under the terms of section - 4. Replacing Invariant Sections with translations requires special - permission from their copyright holders, but you may include - translations of some or all Invariant Sections in addition to the - original versions of these Invariant Sections. You may include a - translation of this License provided that you also include the - original English version of this License. In case of a - disagreement between the translation and the original English - version of this License, the original English version will prevail. - - 9. TERMINATION - - You may not copy, modify, sublicense, or distribute the Document - except as expressly provided for under this License. Any other - attempt to copy, modify, sublicense or distribute the Document is - void, and will automatically terminate your rights under this - License. However, parties who have received copies, or rights, - from you under this License will not have their licenses - terminated so long as such parties remain in full compliance. - - 10. FUTURE REVISIONS OF THIS LICENSE - - The Free Software Foundation may publish new, revised versions of - the GNU Free Documentation License from time to time. Such new - versions will be similar in spirit to the present version, but may - differ in detail to address new problems or concerns. See - http://www.gnu.org/copyleft/. - - Each version of the License is given a distinguishing version - number. If the Document specifies that a particular numbered - version of this License "or any later version" applies to it, you - have the option of following the terms and conditions either of - that specified version or of any later version that has been - published (not as a draft) by the Free Software Foundation. If - the Document does not specify a version number of this License, - you may choose any version ever published (not as a draft) by the - Free Software Foundation. - - -ADDENDUM: How to use this License for your documents -==================================================== - -To use this License in a document you have written, include a copy of -the License in the document and put the following copyright and license -notices just after the title page: - - Copyright (C) YEAR YOUR NAME. - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 - or any later version published by the Free Software Foundation; - with the Invariant Sections being LIST THEIR TITLES, with the - Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. - A copy of the license is included in the section entitled "GNU - Free Documentation License." - - If you have no Invariant Sections, write "with no Invariant Sections" -instead of saying which ones are invariant. If you have no Front-Cover -Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being -LIST"; likewise for Back-Cover Texts. - - If your document contains nontrivial examples of program code, we -recommend releasing these examples in parallel under your choice of -free software license, such as the GNU General Public License, to -permit their use in free software. - - -File: bfd.info, Node: Index, Prev: GNU Free Documentation License, Up: Top - -Index -***** - -[index] -* Menu: - -* _bfd_final_link_relocate: Relocating the section contents. - (line 22) -* _bfd_generic_link_add_archive_symbols: Adding symbols from an archive. - (line 12) -* _bfd_generic_link_add_one_symbol: Adding symbols from an object file. - (line 19) -* _bfd_generic_make_empty_symbol: symbol handling functions. - (line 92) -* _bfd_link_add_symbols in target vector: Adding Symbols to the Hash Table. - (line 6) -* _bfd_link_final_link in target vector: Performing the Final Link. - (line 6) -* _bfd_link_hash_table_create in target vector: Creating a Linker Hash Table. - (line 6) -* _bfd_relocate_contents: Relocating the section contents. - (line 22) -* _bfd_strip_section_from_output: section prototypes. (line 242) -* aout_SIZE_machine_type: aout. (line 146) -* aout_SIZE_mkobject: aout. (line 138) -* aout_SIZE_new_section_hook: aout. (line 175) -* aout_SIZE_set_arch_mach: aout. (line 162) -* aout_SIZE_some_aout_object_p: aout. (line 125) -* aout_SIZE_swap_exec_header_in: aout. (line 101) -* aout_SIZE_swap_exec_header_out: aout. (line 113) -* arelent_chain: typedef arelent. (line 338) -* BFD: Overview. (line 6) -* BFD canonical format: Canonical format. (line 11) -* bfd_alloc: Opening and Closing. - (line 179) -* bfd_alt_mach_code: BFD front end. (line 588) -* bfd_arch_bits_per_address: Architectures. (line 453) -* bfd_arch_bits_per_byte: Architectures. (line 445) -* bfd_arch_get_compatible: Architectures. (line 388) -* bfd_arch_list: Architectures. (line 379) -* bfd_arch_mach_octets_per_byte: Architectures. (line 522) -* bfd_cache_close: File Caching. (line 53) -* bfd_cache_close_all: File Caching. (line 66) -* bfd_cache_init: File Caching. (line 45) -* bfd_cache_lookup: File Caching. (line 32) -* bfd_cache_lookup_worker: File Caching. (line 91) -* BFD_CACHE_MAX_OPEN macro: File Caching. (line 15) -* bfd_calc_gnu_debuglink_crc32: Opening and Closing. - (line 197) -* bfd_canonicalize_reloc: BFD front end. (line 315) -* bfd_canonicalize_symtab: symbol handling functions. - (line 50) -* bfd_check_format: Formats. (line 18) -* bfd_check_format_matches: Formats. (line 49) -* bfd_check_overflow: typedef arelent. (line 350) -* bfd_close: Opening and Closing. - (line 104) -* bfd_close_all_done: Opening and Closing. - (line 122) -* bfd_coff_backend_data: coff. (line 246) -* bfd_copy_private_bfd_data: BFD front end. (line 454) -* bfd_copy_private_header_data: BFD front end. (line 436) -* bfd_copy_private_section_data: section prototypes. (line 224) -* bfd_copy_private_symbol_data: symbol handling functions. - (line 140) -* bfd_core_file_failing_command: Core Files. (line 9) -* bfd_core_file_failing_signal: Core Files. (line 18) -* bfd_create: Opening and Closing. - (line 141) -* bfd_create_gnu_debuglink_section: Opening and Closing. - (line 263) -* bfd_decode_symclass: symbol handling functions. - (line 111) -* bfd_default_arch_struct: Architectures. (line 400) -* bfd_default_compatible: Architectures. (line 462) -* bfd_default_reloc_type_lookup: howto manager. (line 1704) -* bfd_default_scan: Architectures. (line 471) -* bfd_default_set_arch_mach: Architectures. (line 418) -* bfd_elf_find_section: elf. (line 15) -* bfd_errmsg: BFD front end. (line 243) -* bfd_fdopenr: Opening and Closing. - (line 22) -* bfd_fill_in_gnu_debuglink_section: Opening and Closing. - (line 277) -* bfd_find_target: bfd_target. (line 420) -* bfd_follow_gnu_debuglink: Opening and Closing. - (line 242) -* bfd_format_string: Formats. (line 76) -* bfd_generic_discard_group: section prototypes. (line 264) -* bfd_generic_gc_sections: howto manager. (line 1735) -* bfd_generic_get_relocated_section_contents: howto manager. (line 1755) -* bfd_generic_is_group_section: section prototypes. (line 256) -* bfd_generic_merge_sections: howto manager. (line 1745) -* bfd_generic_relax_section: howto manager. (line 1722) -* bfd_get_arch: Architectures. (line 429) -* bfd_get_arch_info: Architectures. (line 481) -* bfd_get_arch_size: BFD front end. (line 359) -* bfd_get_error: BFD front end. (line 226) -* bfd_get_error_handler: BFD front end. (line 294) -* bfd_get_gp_size: BFD front end. (line 400) -* bfd_get_mach: Architectures. (line 437) -* bfd_get_mtime: BFD front end. (line 676) -* bfd_get_next_mapent: Archives. (line 49) -* bfd_get_reloc_code_name: howto manager. (line 1713) -* bfd_get_reloc_size: typedef arelent. (line 329) -* bfd_get_reloc_upper_bound: BFD front end. (line 305) -* bfd_get_section_by_name: section prototypes. (line 17) -* bfd_get_section_by_name_if: section prototypes. (line 31) -* bfd_get_section_contents: section prototypes. (line 197) -* bfd_get_sign_extend_vma: BFD front end. (line 372) -* bfd_get_size <1>: Internal. (line 22) -* bfd_get_size: BFD front end. (line 685) -* bfd_get_symtab_upper_bound: symbol handling functions. - (line 6) -* bfd_get_unique_section_name: section prototypes. (line 50) -* bfd_h_put_size: Internal. (line 94) -* bfd_hash_allocate: Creating and Freeing a Hash Table. - (line 17) -* bfd_hash_lookup: Looking Up or Entering a String. - (line 6) -* bfd_hash_newfunc: Creating and Freeing a Hash Table. - (line 12) -* bfd_hash_set_default_size: Creating and Freeing a Hash Table. - (line 25) -* bfd_hash_table_free: Creating and Freeing a Hash Table. - (line 21) -* bfd_hash_table_init: Creating and Freeing a Hash Table. - (line 6) -* bfd_hash_table_init_n: Creating and Freeing a Hash Table. - (line 6) -* bfd_hash_traverse: Traversing a Hash Table. - (line 6) -* bfd_init: Initialization. (line 8) -* bfd_install_relocation: typedef arelent. (line 391) -* bfd_is_local_label: symbol handling functions. - (line 17) -* bfd_is_local_label_name: symbol handling functions. - (line 26) -* bfd_is_target_special_symbol: symbol handling functions. - (line 38) -* bfd_is_undefined_symclass: symbol handling functions. - (line 120) -* bfd_last_cache: File Caching. (line 22) -* bfd_link_split_section: Writing the symbol table. - (line 44) -* bfd_log2: Internal. (line 161) -* bfd_lookup_arch: Architectures. (line 489) -* bfd_make_debug_symbol: symbol handling functions. - (line 102) -* bfd_make_empty_symbol: symbol handling functions. - (line 78) -* bfd_make_readable: Opening and Closing. - (line 165) -* bfd_make_section: section prototypes. (line 98) -* bfd_make_section_anyway: section prototypes. (line 82) -* bfd_make_section_old_way: section prototypes. (line 62) -* bfd_make_writable: Opening and Closing. - (line 151) -* bfd_malloc_and_get_section: section prototypes. (line 214) -* bfd_map_over_sections: section prototypes. (line 124) -* bfd_merge_private_bfd_data: BFD front end. (line 470) -* bfd_octets_per_byte: Architectures. (line 512) -* bfd_open_file: File Caching. (line 79) -* bfd_openr: Opening and Closing. - (line 6) -* bfd_openr_iovec: Opening and Closing. - (line 52) -* bfd_openr_next_archived_file: Archives. (line 75) -* bfd_openstreamr: Opening and Closing. - (line 43) -* bfd_openw: Opening and Closing. - (line 92) -* bfd_perform_relocation: typedef arelent. (line 366) -* bfd_perror: BFD front end. (line 252) -* bfd_preserve_finish: BFD front end. (line 636) -* bfd_preserve_restore: BFD front end. (line 626) -* bfd_preserve_save: BFD front end. (line 610) -* bfd_print_symbol_vandf: symbol handling functions. - (line 70) -* bfd_printable_arch_mach: Architectures. (line 500) -* bfd_printable_name: Architectures. (line 360) -* bfd_put_size: Internal. (line 19) -* BFD_RELOC_12_PCREL: howto manager. (line 39) -* BFD_RELOC_14: howto manager. (line 31) -* BFD_RELOC_16: howto manager. (line 30) -* BFD_RELOC_16_BASEREL: howto manager. (line 80) -* BFD_RELOC_16_GOT_PCREL: howto manager. (line 52) -* BFD_RELOC_16_GOTOFF: howto manager. (line 55) -* BFD_RELOC_16_PCREL: howto manager. (line 38) -* BFD_RELOC_16_PCREL_S2: howto manager. (line 92) -* BFD_RELOC_16_PLT_PCREL: howto manager. (line 63) -* BFD_RELOC_16_PLTOFF: howto manager. (line 67) -* BFD_RELOC_16C_ABS20: howto manager. (line 1464) -* BFD_RELOC_16C_ABS20_C: howto manager. (line 1465) -* BFD_RELOC_16C_ABS24: howto manager. (line 1466) -* BFD_RELOC_16C_ABS24_C: howto manager. (line 1467) -* BFD_RELOC_16C_DISP04: howto manager. (line 1444) -* BFD_RELOC_16C_DISP04_C: howto manager. (line 1445) -* BFD_RELOC_16C_DISP08: howto manager. (line 1446) -* BFD_RELOC_16C_DISP08_C: howto manager. (line 1447) -* BFD_RELOC_16C_DISP16: howto manager. (line 1448) -* BFD_RELOC_16C_DISP16_C: howto manager. (line 1449) -* BFD_RELOC_16C_DISP24: howto manager. (line 1450) -* BFD_RELOC_16C_DISP24_C: howto manager. (line 1451) -* BFD_RELOC_16C_DISP24a: howto manager. (line 1452) -* BFD_RELOC_16C_DISP24a_C: howto manager. (line 1453) -* BFD_RELOC_16C_IMM04: howto manager. (line 1468) -* BFD_RELOC_16C_IMM04_C: howto manager. (line 1469) -* BFD_RELOC_16C_IMM16: howto manager. (line 1470) -* BFD_RELOC_16C_IMM16_C: howto manager. (line 1471) -* BFD_RELOC_16C_IMM20: howto manager. (line 1472) -* BFD_RELOC_16C_IMM20_C: howto manager. (line 1473) -* BFD_RELOC_16C_IMM24: howto manager. (line 1474) -* BFD_RELOC_16C_IMM24_C: howto manager. (line 1475) -* BFD_RELOC_16C_IMM32: howto manager. (line 1476) -* BFD_RELOC_16C_IMM32_C: howto manager. (line 1477) -* BFD_RELOC_16C_NUM08: howto manager. (line 1438) -* BFD_RELOC_16C_NUM08_C: howto manager. (line 1439) -* BFD_RELOC_16C_NUM16: howto manager. (line 1440) -* BFD_RELOC_16C_NUM16_C: howto manager. (line 1441) -* BFD_RELOC_16C_NUM32: howto manager. (line 1442) -* BFD_RELOC_16C_NUM32_C: howto manager. (line 1443) -* BFD_RELOC_16C_REG04: howto manager. (line 1454) -* BFD_RELOC_16C_REG04_C: howto manager. (line 1455) -* BFD_RELOC_16C_REG04a: howto manager. (line 1456) -* BFD_RELOC_16C_REG04a_C: howto manager. (line 1457) -* BFD_RELOC_16C_REG14: howto manager. (line 1458) -* BFD_RELOC_16C_REG14_C: howto manager. (line 1459) -* BFD_RELOC_16C_REG16: howto manager. (line 1460) -* BFD_RELOC_16C_REG16_C: howto manager. (line 1461) -* BFD_RELOC_16C_REG20: howto manager. (line 1462) -* BFD_RELOC_16C_REG20_C: howto manager. (line 1463) -* BFD_RELOC_23_PCREL_S2: howto manager. (line 93) -* BFD_RELOC_24: howto manager. (line 29) -* BFD_RELOC_24_PCREL: howto manager. (line 37) -* BFD_RELOC_24_PLT_PCREL: howto manager. (line 62) -* BFD_RELOC_26: howto manager. (line 28) -* BFD_RELOC_32: howto manager. (line 27) -* BFD_RELOC_32_BASEREL: howto manager. (line 79) -* BFD_RELOC_32_GOT_PCREL: howto manager. (line 51) -* BFD_RELOC_32_GOTOFF: howto manager. (line 54) -* BFD_RELOC_32_PCREL: howto manager. (line 36) -* BFD_RELOC_32_PCREL_S2: howto manager. (line 91) -* BFD_RELOC_32_PLT_PCREL: howto manager. (line 61) -* BFD_RELOC_32_PLTOFF: howto manager. (line 66) -* BFD_RELOC_32_SECREL: howto manager. (line 48) -* BFD_RELOC_386_COPY: howto manager. (line 422) -* BFD_RELOC_386_GLOB_DAT: howto manager. (line 423) -* BFD_RELOC_386_GOT32: howto manager. (line 420) -* BFD_RELOC_386_GOTOFF: howto manager. (line 426) -* BFD_RELOC_386_GOTPC: howto manager. (line 427) -* BFD_RELOC_386_JUMP_SLOT: howto manager. (line 424) -* BFD_RELOC_386_PLT32: howto manager. (line 421) -* BFD_RELOC_386_RELATIVE: howto manager. (line 425) -* BFD_RELOC_386_TLS_DTPMOD32: howto manager. (line 437) -* BFD_RELOC_386_TLS_DTPOFF32: howto manager. (line 438) -* BFD_RELOC_386_TLS_GD: howto manager. (line 432) -* BFD_RELOC_386_TLS_GOTIE: howto manager. (line 430) -* BFD_RELOC_386_TLS_IE: howto manager. (line 429) -* BFD_RELOC_386_TLS_IE_32: howto manager. (line 435) -* BFD_RELOC_386_TLS_LDM: howto manager. (line 433) -* BFD_RELOC_386_TLS_LDO_32: howto manager. (line 434) -* BFD_RELOC_386_TLS_LE: howto manager. (line 431) -* BFD_RELOC_386_TLS_LE_32: howto manager. (line 436) -* BFD_RELOC_386_TLS_TPOFF: howto manager. (line 428) -* BFD_RELOC_386_TLS_TPOFF32: howto manager. (line 439) -* BFD_RELOC_390_12: howto manager. (line 1155) -* BFD_RELOC_390_20: howto manager. (line 1255) -* BFD_RELOC_390_COPY: howto manager. (line 1164) -* BFD_RELOC_390_GLOB_DAT: howto manager. (line 1167) -* BFD_RELOC_390_GOT12: howto manager. (line 1158) -* BFD_RELOC_390_GOT16: howto manager. (line 1179) -* BFD_RELOC_390_GOT20: howto manager. (line 1256) -* BFD_RELOC_390_GOT64: howto manager. (line 1197) -* BFD_RELOC_390_GOTENT: howto manager. (line 1203) -* BFD_RELOC_390_GOTOFF64: howto manager. (line 1206) -* BFD_RELOC_390_GOTPC: howto manager. (line 1176) -* BFD_RELOC_390_GOTPCDBL: howto manager. (line 1194) -* BFD_RELOC_390_GOTPLT12: howto manager. (line 1209) -* BFD_RELOC_390_GOTPLT16: howto manager. (line 1212) -* BFD_RELOC_390_GOTPLT20: howto manager. (line 1257) -* BFD_RELOC_390_GOTPLT32: howto manager. (line 1215) -* BFD_RELOC_390_GOTPLT64: howto manager. (line 1218) -* BFD_RELOC_390_GOTPLTENT: howto manager. (line 1221) -* BFD_RELOC_390_JMP_SLOT: howto manager. (line 1170) -* BFD_RELOC_390_PC16DBL: howto manager. (line 1182) -* BFD_RELOC_390_PC32DBL: howto manager. (line 1188) -* BFD_RELOC_390_PLT16DBL: howto manager. (line 1185) -* BFD_RELOC_390_PLT32: howto manager. (line 1161) -* BFD_RELOC_390_PLT32DBL: howto manager. (line 1191) -* BFD_RELOC_390_PLT64: howto manager. (line 1200) -* BFD_RELOC_390_PLTOFF16: howto manager. (line 1224) -* BFD_RELOC_390_PLTOFF32: howto manager. (line 1227) -* BFD_RELOC_390_PLTOFF64: howto manager. (line 1230) -* BFD_RELOC_390_RELATIVE: howto manager. (line 1173) -* BFD_RELOC_390_TLS_DTPMOD: howto manager. (line 1250) -* BFD_RELOC_390_TLS_DTPOFF: howto manager. (line 1251) -* BFD_RELOC_390_TLS_GD32: howto manager. (line 1236) -* BFD_RELOC_390_TLS_GD64: howto manager. (line 1237) -* BFD_RELOC_390_TLS_GDCALL: howto manager. (line 1234) -* BFD_RELOC_390_TLS_GOTIE12: howto manager. (line 1238) -* BFD_RELOC_390_TLS_GOTIE20: howto manager. (line 1258) -* BFD_RELOC_390_TLS_GOTIE32: howto manager. (line 1239) -* BFD_RELOC_390_TLS_GOTIE64: howto manager. (line 1240) -* BFD_RELOC_390_TLS_IE32: howto manager. (line 1243) -* BFD_RELOC_390_TLS_IE64: howto manager. (line 1244) -* BFD_RELOC_390_TLS_IEENT: howto manager. (line 1245) -* BFD_RELOC_390_TLS_LDCALL: howto manager. (line 1235) -* BFD_RELOC_390_TLS_LDM32: howto manager. (line 1241) -* BFD_RELOC_390_TLS_LDM64: howto manager. (line 1242) -* BFD_RELOC_390_TLS_LDO32: howto manager. (line 1248) -* BFD_RELOC_390_TLS_LDO64: howto manager. (line 1249) -* BFD_RELOC_390_TLS_LE32: howto manager. (line 1246) -* BFD_RELOC_390_TLS_LE64: howto manager. (line 1247) -* BFD_RELOC_390_TLS_LOAD: howto manager. (line 1233) -* BFD_RELOC_390_TLS_TPOFF: howto manager. (line 1252) -* BFD_RELOC_64: howto manager. (line 26) -* BFD_RELOC_64_PCREL: howto manager. (line 35) -* BFD_RELOC_64_PLT_PCREL: howto manager. (line 60) -* BFD_RELOC_64_PLTOFF: howto manager. (line 65) -* BFD_RELOC_68K_GLOB_DAT: howto manager. (line 74) -* BFD_RELOC_68K_JMP_SLOT: howto manager. (line 75) -* BFD_RELOC_68K_RELATIVE: howto manager. (line 76) -* BFD_RELOC_8: howto manager. (line 32) -* BFD_RELOC_860_COPY: howto manager. (line 1543) -* BFD_RELOC_860_GLOB_DAT: howto manager. (line 1544) -* BFD_RELOC_860_HAGOT: howto manager. (line 1569) -* BFD_RELOC_860_HAGOTOFF: howto manager. (line 1570) -* BFD_RELOC_860_HAPC: howto manager. (line 1571) -* BFD_RELOC_860_HIGH: howto manager. (line 1572) -* BFD_RELOC_860_HIGHADJ: howto manager. (line 1568) -* BFD_RELOC_860_HIGOT: howto manager. (line 1573) -* BFD_RELOC_860_HIGOTOFF: howto manager. (line 1574) -* BFD_RELOC_860_JUMP_SLOT: howto manager. (line 1545) -* BFD_RELOC_860_LOGOT0: howto manager. (line 1557) -* BFD_RELOC_860_LOGOT1: howto manager. (line 1559) -* BFD_RELOC_860_LOGOTOFF0: howto manager. (line 1561) -* BFD_RELOC_860_LOGOTOFF1: howto manager. (line 1563) -* BFD_RELOC_860_LOGOTOFF2: howto manager. (line 1565) -* BFD_RELOC_860_LOGOTOFF3: howto manager. (line 1566) -* BFD_RELOC_860_LOPC: howto manager. (line 1567) -* BFD_RELOC_860_LOW0: howto manager. (line 1550) -* BFD_RELOC_860_LOW1: howto manager. (line 1552) -* BFD_RELOC_860_LOW2: howto manager. (line 1554) -* BFD_RELOC_860_LOW3: howto manager. (line 1556) -* BFD_RELOC_860_PC16: howto manager. (line 1549) -* BFD_RELOC_860_PC26: howto manager. (line 1547) -* BFD_RELOC_860_PLT26: howto manager. (line 1548) -* BFD_RELOC_860_RELATIVE: howto manager. (line 1546) -* BFD_RELOC_860_SPGOT0: howto manager. (line 1558) -* BFD_RELOC_860_SPGOT1: howto manager. (line 1560) -* BFD_RELOC_860_SPGOTOFF0: howto manager. (line 1562) -* BFD_RELOC_860_SPGOTOFF1: howto manager. (line 1564) -* BFD_RELOC_860_SPLIT0: howto manager. (line 1551) -* BFD_RELOC_860_SPLIT1: howto manager. (line 1553) -* BFD_RELOC_860_SPLIT2: howto manager. (line 1555) -* BFD_RELOC_8_BASEREL: howto manager. (line 84) -* BFD_RELOC_8_FFnn: howto manager. (line 88) -* BFD_RELOC_8_GOT_PCREL: howto manager. (line 53) -* BFD_RELOC_8_GOTOFF: howto manager. (line 59) -* BFD_RELOC_8_PCREL: howto manager. (line 40) -* BFD_RELOC_8_PLT_PCREL: howto manager. (line 64) -* BFD_RELOC_8_PLTOFF: howto manager. (line 71) -* BFD_RELOC_ALPHA_BRSGP: howto manager. (line 259) -* BFD_RELOC_ALPHA_CODEADDR: howto manager. (line 250) -* BFD_RELOC_ALPHA_DTPMOD64: howto manager. (line 266) -* BFD_RELOC_ALPHA_DTPREL16: howto manager. (line 271) -* BFD_RELOC_ALPHA_DTPREL64: howto manager. (line 268) -* BFD_RELOC_ALPHA_DTPREL_HI16: howto manager. (line 269) -* BFD_RELOC_ALPHA_DTPREL_LO16: howto manager. (line 270) -* BFD_RELOC_ALPHA_ELF_LITERAL: howto manager. (line 215) -* BFD_RELOC_ALPHA_GOTDTPREL16: howto manager. (line 267) -* BFD_RELOC_ALPHA_GOTTPREL16: howto manager. (line 272) -* BFD_RELOC_ALPHA_GPDISP: howto manager. (line 209) -* BFD_RELOC_ALPHA_GPDISP_HI16: howto manager. (line 195) -* BFD_RELOC_ALPHA_GPDISP_LO16: howto manager. (line 203) -* BFD_RELOC_ALPHA_GPREL_HI16: howto manager. (line 254) -* BFD_RELOC_ALPHA_GPREL_LO16: howto manager. (line 255) -* BFD_RELOC_ALPHA_HINT: howto manager. (line 241) -* BFD_RELOC_ALPHA_LINKAGE: howto manager. (line 246) -* BFD_RELOC_ALPHA_LITERAL: howto manager. (line 214) -* BFD_RELOC_ALPHA_LITUSE: howto manager. (line 216) -* BFD_RELOC_ALPHA_TLSGD: howto manager. (line 264) -* BFD_RELOC_ALPHA_TLSLDM: howto manager. (line 265) -* BFD_RELOC_ALPHA_TPREL16: howto manager. (line 276) -* BFD_RELOC_ALPHA_TPREL64: howto manager. (line 273) -* BFD_RELOC_ALPHA_TPREL_HI16: howto manager. (line 274) -* BFD_RELOC_ALPHA_TPREL_LO16: howto manager. (line 275) -* BFD_RELOC_ARC_B22_PCREL: howto manager. (line 754) -* BFD_RELOC_ARC_B26: howto manager. (line 759) -* BFD_RELOC_ARM_ADR_IMM: howto manager. (line 615) -* BFD_RELOC_ARM_ADRL_IMMEDIATE: howto manager. (line 607) -* BFD_RELOC_ARM_COPY: howto manager. (line 628) -* BFD_RELOC_ARM_CP_OFF_IMM: howto manager. (line 613) -* BFD_RELOC_ARM_CP_OFF_IMM_S2: howto manager. (line 614) -* BFD_RELOC_ARM_GLOB_DAT: howto manager. (line 629) -* BFD_RELOC_ARM_GOT12: howto manager. (line 625) -* BFD_RELOC_ARM_GOT32: howto manager. (line 626) -* BFD_RELOC_ARM_GOTOFF: howto manager. (line 632) -* BFD_RELOC_ARM_GOTPC: howto manager. (line 633) -* BFD_RELOC_ARM_HWLITERAL: howto manager. (line 620) -* BFD_RELOC_ARM_IMMEDIATE: howto manager. (line 606) -* BFD_RELOC_ARM_IN_POOL: howto manager. (line 618) -* BFD_RELOC_ARM_JUMP_SLOT: howto manager. (line 627) -* BFD_RELOC_ARM_LDR_IMM: howto manager. (line 616) -* BFD_RELOC_ARM_LITERAL: howto manager. (line 617) -* BFD_RELOC_ARM_MULTI: howto manager. (line 612) -* BFD_RELOC_ARM_OFFSET_IMM: howto manager. (line 608) -* BFD_RELOC_ARM_OFFSET_IMM8: howto manager. (line 619) -* BFD_RELOC_ARM_PCREL_BLX: howto manager. (line 596) -* BFD_RELOC_ARM_PCREL_BRANCH: howto manager. (line 592) -* BFD_RELOC_ARM_PLT32: howto manager. (line 630) -* BFD_RELOC_ARM_PREL31: howto manager. (line 652) -* BFD_RELOC_ARM_RELATIVE: howto manager. (line 631) -* BFD_RELOC_ARM_ROSEGREL32: howto manager. (line 641) -* BFD_RELOC_ARM_SBREL32: howto manager. (line 644) -* BFD_RELOC_ARM_SHIFT_IMM: howto manager. (line 609) -* BFD_RELOC_ARM_SMI: howto manager. (line 610) -* BFD_RELOC_ARM_SWI: howto manager. (line 611) -* BFD_RELOC_ARM_TARGET1: howto manager. (line 637) -* BFD_RELOC_ARM_TARGET2: howto manager. (line 647) -* BFD_RELOC_ARM_THUMB_ADD: howto manager. (line 621) -* BFD_RELOC_ARM_THUMB_IMM: howto manager. (line 622) -* BFD_RELOC_ARM_THUMB_OFFSET: howto manager. (line 624) -* BFD_RELOC_ARM_THUMB_SHIFT: howto manager. (line 623) -* BFD_RELOC_AVR_13_PCREL: howto manager. (line 1076) -* BFD_RELOC_AVR_16_PM: howto manager. (line 1080) -* BFD_RELOC_AVR_6: howto manager. (line 1147) -* BFD_RELOC_AVR_6_ADIW: howto manager. (line 1151) -* BFD_RELOC_AVR_7_PCREL: howto manager. (line 1072) -* BFD_RELOC_AVR_CALL: howto manager. (line 1139) -* BFD_RELOC_AVR_HH8_LDI: howto manager. (line 1092) -* BFD_RELOC_AVR_HH8_LDI_NEG: howto manager. (line 1107) -* BFD_RELOC_AVR_HH8_LDI_PM: howto manager. (line 1120) -* BFD_RELOC_AVR_HH8_LDI_PM_NEG: howto manager. (line 1134) -* BFD_RELOC_AVR_HI8_LDI: howto manager. (line 1088) -* BFD_RELOC_AVR_HI8_LDI_NEG: howto manager. (line 1102) -* BFD_RELOC_AVR_HI8_LDI_PM: howto manager. (line 1116) -* BFD_RELOC_AVR_HI8_LDI_PM_NEG: howto manager. (line 1129) -* BFD_RELOC_AVR_LDI: howto manager. (line 1143) -* BFD_RELOC_AVR_LO8_LDI: howto manager. (line 1084) -* BFD_RELOC_AVR_LO8_LDI_NEG: howto manager. (line 1097) -* BFD_RELOC_AVR_LO8_LDI_PM: howto manager. (line 1112) -* BFD_RELOC_AVR_LO8_LDI_PM_NEG: howto manager. (line 1125) -* bfd_reloc_code_type: howto manager. (line 10) -* BFD_RELOC_CRIS_16_GOT: howto manager. (line 1524) -* BFD_RELOC_CRIS_16_GOTPLT: howto manager. (line 1530) -* BFD_RELOC_CRIS_32_GOT: howto manager. (line 1521) -* BFD_RELOC_CRIS_32_GOTPLT: howto manager. (line 1527) -* BFD_RELOC_CRIS_32_GOTREL: howto manager. (line 1533) -* BFD_RELOC_CRIS_32_PLT_GOTREL: howto manager. (line 1536) -* BFD_RELOC_CRIS_32_PLT_PCREL: howto manager. (line 1539) -* BFD_RELOC_CRIS_BDISP8: howto manager. (line 1502) -* BFD_RELOC_CRIS_COPY: howto manager. (line 1515) -* BFD_RELOC_CRIS_GLOB_DAT: howto manager. (line 1516) -* BFD_RELOC_CRIS_JUMP_SLOT: howto manager. (line 1517) -* BFD_RELOC_CRIS_LAPCQ_OFFSET: howto manager. (line 1510) -* BFD_RELOC_CRIS_RELATIVE: howto manager. (line 1518) -* BFD_RELOC_CRIS_SIGNED_16: howto manager. (line 1508) -* BFD_RELOC_CRIS_SIGNED_6: howto manager. (line 1504) -* BFD_RELOC_CRIS_SIGNED_8: howto manager. (line 1506) -* BFD_RELOC_CRIS_UNSIGNED_16: howto manager. (line 1509) -* BFD_RELOC_CRIS_UNSIGNED_4: howto manager. (line 1511) -* BFD_RELOC_CRIS_UNSIGNED_5: howto manager. (line 1503) -* BFD_RELOC_CRIS_UNSIGNED_6: howto manager. (line 1505) -* BFD_RELOC_CRIS_UNSIGNED_8: howto manager. (line 1507) -* BFD_RELOC_CRX_ABS16: howto manager. (line 1490) -* BFD_RELOC_CRX_ABS32: howto manager. (line 1491) -* BFD_RELOC_CRX_IMM16: howto manager. (line 1495) -* BFD_RELOC_CRX_IMM32: howto manager. (line 1496) -* BFD_RELOC_CRX_NUM16: howto manager. (line 1493) -* BFD_RELOC_CRX_NUM32: howto manager. (line 1494) -* BFD_RELOC_CRX_NUM8: howto manager. (line 1492) -* BFD_RELOC_CRX_REGREL12: howto manager. (line 1486) -* BFD_RELOC_CRX_REGREL22: howto manager. (line 1487) -* BFD_RELOC_CRX_REGREL28: howto manager. (line 1488) -* BFD_RELOC_CRX_REGREL32: howto manager. (line 1489) -* BFD_RELOC_CRX_REL16: howto manager. (line 1483) -* BFD_RELOC_CRX_REL24: howto manager. (line 1484) -* BFD_RELOC_CRX_REL32: howto manager. (line 1485) -* BFD_RELOC_CRX_REL4: howto manager. (line 1480) -* BFD_RELOC_CRX_REL8: howto manager. (line 1481) -* BFD_RELOC_CRX_REL8_CMP: howto manager. (line 1482) -* BFD_RELOC_CRX_SWITCH16: howto manager. (line 1498) -* BFD_RELOC_CRX_SWITCH32: howto manager. (line 1499) -* BFD_RELOC_CRX_SWITCH8: howto manager. (line 1497) -* BFD_RELOC_CTOR: howto manager. (line 586) -* BFD_RELOC_D10V_10_PCREL_L: howto manager. (line 768) -* BFD_RELOC_D10V_10_PCREL_R: howto manager. (line 764) -* BFD_RELOC_D10V_18: howto manager. (line 773) -* BFD_RELOC_D10V_18_PCREL: howto manager. (line 776) -* BFD_RELOC_D30V_15: howto manager. (line 791) -* BFD_RELOC_D30V_15_PCREL: howto manager. (line 795) -* BFD_RELOC_D30V_15_PCREL_R: howto manager. (line 799) -* BFD_RELOC_D30V_21: howto manager. (line 804) -* BFD_RELOC_D30V_21_PCREL: howto manager. (line 808) -* BFD_RELOC_D30V_21_PCREL_R: howto manager. (line 812) -* BFD_RELOC_D30V_32: howto manager. (line 817) -* BFD_RELOC_D30V_32_PCREL: howto manager. (line 820) -* BFD_RELOC_D30V_6: howto manager. (line 779) -* BFD_RELOC_D30V_9_PCREL: howto manager. (line 782) -* BFD_RELOC_D30V_9_PCREL_R: howto manager. (line 786) -* BFD_RELOC_DLX_HI16_S: howto manager. (line 823) -* BFD_RELOC_DLX_JMP26: howto manager. (line 829) -* BFD_RELOC_DLX_LO16: howto manager. (line 826) -* BFD_RELOC_FR30_10_IN_8: howto manager. (line 1002) -* BFD_RELOC_FR30_12_PCREL: howto manager. (line 1010) -* BFD_RELOC_FR30_20: howto manager. (line 986) -* BFD_RELOC_FR30_48: howto manager. (line 983) -* BFD_RELOC_FR30_6_IN_4: howto manager. (line 990) -* BFD_RELOC_FR30_8_IN_8: howto manager. (line 994) -* BFD_RELOC_FR30_9_IN_8: howto manager. (line 998) -* BFD_RELOC_FR30_9_PCREL: howto manager. (line 1006) -* BFD_RELOC_FRV_FUNCDESC: howto manager. (line 364) -* BFD_RELOC_FRV_FUNCDESC_GOT12: howto manager. (line 365) -* BFD_RELOC_FRV_FUNCDESC_GOTHI: howto manager. (line 366) -* BFD_RELOC_FRV_FUNCDESC_GOTLO: howto manager. (line 367) -* BFD_RELOC_FRV_FUNCDESC_GOTOFF12: howto manager. (line 369) -* BFD_RELOC_FRV_FUNCDESC_GOTOFFHI: howto manager. (line 370) -* BFD_RELOC_FRV_FUNCDESC_GOTOFFLO: howto manager. (line 371) -* BFD_RELOC_FRV_FUNCDESC_VALUE: howto manager. (line 368) -* BFD_RELOC_FRV_GETTLSOFF: howto manager. (line 375) -* BFD_RELOC_FRV_GETTLSOFF_RELAX: howto manager. (line 388) -* BFD_RELOC_FRV_GOT12: howto manager. (line 361) -* BFD_RELOC_FRV_GOTHI: howto manager. (line 362) -* BFD_RELOC_FRV_GOTLO: howto manager. (line 363) -* BFD_RELOC_FRV_GOTOFF12: howto manager. (line 372) -* BFD_RELOC_FRV_GOTOFFHI: howto manager. (line 373) -* BFD_RELOC_FRV_GOTOFFLO: howto manager. (line 374) -* BFD_RELOC_FRV_GOTTLSDESC12: howto manager. (line 377) -* BFD_RELOC_FRV_GOTTLSDESCHI: howto manager. (line 378) -* BFD_RELOC_FRV_GOTTLSDESCLO: howto manager. (line 379) -* BFD_RELOC_FRV_GOTTLSOFF12: howto manager. (line 383) -* BFD_RELOC_FRV_GOTTLSOFFHI: howto manager. (line 384) -* BFD_RELOC_FRV_GOTTLSOFFLO: howto manager. (line 385) -* BFD_RELOC_FRV_GPREL12: howto manager. (line 356) -* BFD_RELOC_FRV_GPREL32: howto manager. (line 358) -* BFD_RELOC_FRV_GPRELHI: howto manager. (line 359) -* BFD_RELOC_FRV_GPRELLO: howto manager. (line 360) -* BFD_RELOC_FRV_GPRELU12: howto manager. (line 357) -* BFD_RELOC_FRV_HI16: howto manager. (line 355) -* BFD_RELOC_FRV_LABEL16: howto manager. (line 352) -* BFD_RELOC_FRV_LABEL24: howto manager. (line 353) -* BFD_RELOC_FRV_LO16: howto manager. (line 354) -* BFD_RELOC_FRV_TLSDESC_RELAX: howto manager. (line 387) -* BFD_RELOC_FRV_TLSDESC_VALUE: howto manager. (line 376) -* BFD_RELOC_FRV_TLSMOFF: howto manager. (line 390) -* BFD_RELOC_FRV_TLSMOFF12: howto manager. (line 380) -* BFD_RELOC_FRV_TLSMOFFHI: howto manager. (line 381) -* BFD_RELOC_FRV_TLSMOFFLO: howto manager. (line 382) -* BFD_RELOC_FRV_TLSOFF: howto manager. (line 386) -* BFD_RELOC_FRV_TLSOFF_RELAX: howto manager. (line 389) -* BFD_RELOC_GPREL16: howto manager. (line 106) -* BFD_RELOC_GPREL32: howto manager. (line 107) -* BFD_RELOC_H8_DIR16A8: howto manager. (line 1581) -* BFD_RELOC_H8_DIR16R8: howto manager. (line 1582) -* BFD_RELOC_H8_DIR24A8: howto manager. (line 1583) -* BFD_RELOC_H8_DIR24R8: howto manager. (line 1584) -* BFD_RELOC_H8_DIR32A16: howto manager. (line 1585) -* BFD_RELOC_HI16: howto manager. (line 289) -* BFD_RELOC_HI16_BASEREL: howto manager. (line 82) -* BFD_RELOC_HI16_GOTOFF: howto manager. (line 57) -* BFD_RELOC_HI16_PLTOFF: howto manager. (line 69) -* BFD_RELOC_HI16_S: howto manager. (line 292) -* BFD_RELOC_HI16_S_BASEREL: howto manager. (line 83) -* BFD_RELOC_HI16_S_GOTOFF: howto manager. (line 58) -* BFD_RELOC_HI16_S_PLTOFF: howto manager. (line 70) -* BFD_RELOC_HI22: howto manager. (line 101) -* BFD_RELOC_I370_D12: howto manager. (line 583) -* BFD_RELOC_I960_CALLJ: howto manager. (line 113) -* BFD_RELOC_IA64_COPY: howto manager. (line 1374) -* BFD_RELOC_IA64_DIR32LSB: howto manager. (line 1319) -* BFD_RELOC_IA64_DIR32MSB: howto manager. (line 1318) -* BFD_RELOC_IA64_DIR64LSB: howto manager. (line 1321) -* BFD_RELOC_IA64_DIR64MSB: howto manager. (line 1320) -* BFD_RELOC_IA64_DTPMOD64LSB: howto manager. (line 1384) -* BFD_RELOC_IA64_DTPMOD64MSB: howto manager. (line 1383) -* BFD_RELOC_IA64_DTPREL14: howto manager. (line 1386) -* BFD_RELOC_IA64_DTPREL22: howto manager. (line 1387) -* BFD_RELOC_IA64_DTPREL32LSB: howto manager. (line 1390) -* BFD_RELOC_IA64_DTPREL32MSB: howto manager. (line 1389) -* BFD_RELOC_IA64_DTPREL64I: howto manager. (line 1388) -* BFD_RELOC_IA64_DTPREL64LSB: howto manager. (line 1392) -* BFD_RELOC_IA64_DTPREL64MSB: howto manager. (line 1391) -* BFD_RELOC_IA64_FPTR32LSB: howto manager. (line 1336) -* BFD_RELOC_IA64_FPTR32MSB: howto manager. (line 1335) -* BFD_RELOC_IA64_FPTR64I: howto manager. (line 1334) -* BFD_RELOC_IA64_FPTR64LSB: howto manager. (line 1338) -* BFD_RELOC_IA64_FPTR64MSB: howto manager. (line 1337) -* BFD_RELOC_IA64_GPREL22: howto manager. (line 1322) -* BFD_RELOC_IA64_GPREL32LSB: howto manager. (line 1325) -* BFD_RELOC_IA64_GPREL32MSB: howto manager. (line 1324) -* BFD_RELOC_IA64_GPREL64I: howto manager. (line 1323) -* BFD_RELOC_IA64_GPREL64LSB: howto manager. (line 1327) -* BFD_RELOC_IA64_GPREL64MSB: howto manager. (line 1326) -* BFD_RELOC_IA64_IMM14: howto manager. (line 1315) -* BFD_RELOC_IA64_IMM22: howto manager. (line 1316) -* BFD_RELOC_IA64_IMM64: howto manager. (line 1317) -* BFD_RELOC_IA64_IPLTLSB: howto manager. (line 1373) -* BFD_RELOC_IA64_IPLTMSB: howto manager. (line 1372) -* BFD_RELOC_IA64_LDXMOV: howto manager. (line 1376) -* BFD_RELOC_IA64_LTOFF22: howto manager. (line 1328) -* BFD_RELOC_IA64_LTOFF22X: howto manager. (line 1375) -* BFD_RELOC_IA64_LTOFF64I: howto manager. (line 1329) -* BFD_RELOC_IA64_LTOFF_DTPMOD22: howto manager. (line 1385) -* BFD_RELOC_IA64_LTOFF_DTPREL22: howto manager. (line 1393) -* BFD_RELOC_IA64_LTOFF_FPTR22: howto manager. (line 1350) -* BFD_RELOC_IA64_LTOFF_FPTR32LSB: howto manager. (line 1353) -* BFD_RELOC_IA64_LTOFF_FPTR32MSB: howto manager. (line 1352) -* BFD_RELOC_IA64_LTOFF_FPTR64I: howto manager. (line 1351) -* BFD_RELOC_IA64_LTOFF_FPTR64LSB: howto manager. (line 1355) -* BFD_RELOC_IA64_LTOFF_FPTR64MSB: howto manager. (line 1354) -* BFD_RELOC_IA64_LTOFF_TPREL22: howto manager. (line 1382) -* BFD_RELOC_IA64_LTV32LSB: howto manager. (line 1369) -* BFD_RELOC_IA64_LTV32MSB: howto manager. (line 1368) -* BFD_RELOC_IA64_LTV64LSB: howto manager. (line 1371) -* BFD_RELOC_IA64_LTV64MSB: howto manager. (line 1370) -* BFD_RELOC_IA64_PCREL21B: howto manager. (line 1339) -* BFD_RELOC_IA64_PCREL21BI: howto manager. (line 1340) -* BFD_RELOC_IA64_PCREL21F: howto manager. (line 1342) -* BFD_RELOC_IA64_PCREL21M: howto manager. (line 1341) -* BFD_RELOC_IA64_PCREL22: howto manager. (line 1343) -* BFD_RELOC_IA64_PCREL32LSB: howto manager. (line 1347) -* BFD_RELOC_IA64_PCREL32MSB: howto manager. (line 1346) -* BFD_RELOC_IA64_PCREL60B: howto manager. (line 1344) -* BFD_RELOC_IA64_PCREL64I: howto manager. (line 1345) -* BFD_RELOC_IA64_PCREL64LSB: howto manager. (line 1349) -* BFD_RELOC_IA64_PCREL64MSB: howto manager. (line 1348) -* BFD_RELOC_IA64_PLTOFF22: howto manager. (line 1330) -* BFD_RELOC_IA64_PLTOFF64I: howto manager. (line 1331) -* BFD_RELOC_IA64_PLTOFF64LSB: howto manager. (line 1333) -* BFD_RELOC_IA64_PLTOFF64MSB: howto manager. (line 1332) -* BFD_RELOC_IA64_REL32LSB: howto manager. (line 1365) -* BFD_RELOC_IA64_REL32MSB: howto manager. (line 1364) -* BFD_RELOC_IA64_REL64LSB: howto manager. (line 1367) -* BFD_RELOC_IA64_REL64MSB: howto manager. (line 1366) -* BFD_RELOC_IA64_SECREL32LSB: howto manager. (line 1361) -* BFD_RELOC_IA64_SECREL32MSB: howto manager. (line 1360) -* BFD_RELOC_IA64_SECREL64LSB: howto manager. (line 1363) -* BFD_RELOC_IA64_SECREL64MSB: howto manager. (line 1362) -* BFD_RELOC_IA64_SEGREL32LSB: howto manager. (line 1357) -* BFD_RELOC_IA64_SEGREL32MSB: howto manager. (line 1356) -* BFD_RELOC_IA64_SEGREL64LSB: howto manager. (line 1359) -* BFD_RELOC_IA64_SEGREL64MSB: howto manager. (line 1358) -* BFD_RELOC_IA64_TPREL14: howto manager. (line 1377) -* BFD_RELOC_IA64_TPREL22: howto manager. (line 1378) -* BFD_RELOC_IA64_TPREL64I: howto manager. (line 1379) -* BFD_RELOC_IA64_TPREL64LSB: howto manager. (line 1381) -* BFD_RELOC_IA64_TPREL64MSB: howto manager. (line 1380) -* BFD_RELOC_IP2K_ADDR16CJP: howto manager. (line 1267) -* BFD_RELOC_IP2K_BANK: howto manager. (line 1264) -* BFD_RELOC_IP2K_EX8DATA: howto manager. (line 1275) -* BFD_RELOC_IP2K_FR9: howto manager. (line 1261) -* BFD_RELOC_IP2K_FR_OFFSET: howto manager. (line 1288) -* BFD_RELOC_IP2K_HI8DATA: howto manager. (line 1274) -* BFD_RELOC_IP2K_HI8INSN: howto manager. (line 1279) -* BFD_RELOC_IP2K_LO8DATA: howto manager. (line 1273) -* BFD_RELOC_IP2K_LO8INSN: howto manager. (line 1278) -* BFD_RELOC_IP2K_PAGE3: howto manager. (line 1270) -* BFD_RELOC_IP2K_PC_SKIP: howto manager. (line 1282) -* BFD_RELOC_IP2K_TEXT: howto manager. (line 1285) -* BFD_RELOC_IQ2000_OFFSET_16: howto manager. (line 1608) -* BFD_RELOC_IQ2000_OFFSET_21: howto manager. (line 1609) -* BFD_RELOC_IQ2000_UHI16: howto manager. (line 1610) -* BFD_RELOC_LO10: howto manager. (line 102) -* BFD_RELOC_LO16: howto manager. (line 298) -* BFD_RELOC_LO16_BASEREL: howto manager. (line 81) -* BFD_RELOC_LO16_GOTOFF: howto manager. (line 56) -* BFD_RELOC_LO16_PLTOFF: howto manager. (line 68) -* BFD_RELOC_M32R_10_PCREL: howto manager. (line 836) -* BFD_RELOC_M32R_18_PCREL: howto manager. (line 840) -* BFD_RELOC_M32R_24: howto manager. (line 832) -* BFD_RELOC_M32R_26_PCREL: howto manager. (line 843) -* BFD_RELOC_M32R_26_PLTREL: howto manager. (line 862) -* BFD_RELOC_M32R_COPY: howto manager. (line 863) -* BFD_RELOC_M32R_GLOB_DAT: howto manager. (line 864) -* BFD_RELOC_M32R_GOT16_HI_SLO: howto manager. (line 873) -* BFD_RELOC_M32R_GOT16_HI_ULO: howto manager. (line 872) -* BFD_RELOC_M32R_GOT16_LO: howto manager. (line 874) -* BFD_RELOC_M32R_GOT24: howto manager. (line 861) -* BFD_RELOC_M32R_GOTOFF: howto manager. (line 867) -* BFD_RELOC_M32R_GOTOFF_HI_SLO: howto manager. (line 869) -* BFD_RELOC_M32R_GOTOFF_HI_ULO: howto manager. (line 868) -* BFD_RELOC_M32R_GOTOFF_LO: howto manager. (line 870) -* BFD_RELOC_M32R_GOTPC24: howto manager. (line 871) -* BFD_RELOC_M32R_GOTPC_HI_SLO: howto manager. (line 876) -* BFD_RELOC_M32R_GOTPC_HI_ULO: howto manager. (line 875) -* BFD_RELOC_M32R_GOTPC_LO: howto manager. (line 877) -* BFD_RELOC_M32R_HI16_SLO: howto manager. (line 850) -* BFD_RELOC_M32R_HI16_ULO: howto manager. (line 846) -* BFD_RELOC_M32R_JMP_SLOT: howto manager. (line 865) -* BFD_RELOC_M32R_LO16: howto manager. (line 854) -* BFD_RELOC_M32R_RELATIVE: howto manager. (line 866) -* BFD_RELOC_M32R_SDA16: howto manager. (line 857) -* BFD_RELOC_M68HC11_24: howto manager. (line 1429) -* BFD_RELOC_M68HC11_3B: howto manager. (line 1404) -* BFD_RELOC_M68HC11_HI8: howto manager. (line 1396) -* BFD_RELOC_M68HC11_LO16: howto manager. (line 1418) -* BFD_RELOC_M68HC11_LO8: howto manager. (line 1400) -* BFD_RELOC_M68HC11_PAGE: howto manager. (line 1424) -* BFD_RELOC_M68HC11_RL_GROUP: howto manager. (line 1413) -* BFD_RELOC_M68HC11_RL_JUMP: howto manager. (line 1407) -* BFD_RELOC_M68HC12_5B: howto manager. (line 1435) -* BFD_RELOC_MCORE_PCREL_32: howto manager. (line 1017) -* BFD_RELOC_MCORE_PCREL_IMM11BY2: howto manager. (line 1015) -* BFD_RELOC_MCORE_PCREL_IMM4BY2: howto manager. (line 1016) -* BFD_RELOC_MCORE_PCREL_IMM8BY4: howto manager. (line 1014) -* BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2: howto manager. (line 1018) -* BFD_RELOC_MCORE_RVA: howto manager. (line 1019) -* BFD_RELOC_MIPS16_GPREL: howto manager. (line 286) -* BFD_RELOC_MIPS16_HI16: howto manager. (line 301) -* BFD_RELOC_MIPS16_HI16_S: howto manager. (line 304) -* BFD_RELOC_MIPS16_JMP: howto manager. (line 283) -* BFD_RELOC_MIPS16_LO16: howto manager. (line 310) -* BFD_RELOC_MIPS_CALL16: howto manager. (line 317) -* BFD_RELOC_MIPS_CALL_HI16: howto manager. (line 320) -* BFD_RELOC_MIPS_CALL_LO16: howto manager. (line 321) -* BFD_RELOC_MIPS_DELETE: howto manager. (line 330) -* BFD_RELOC_MIPS_GOT16: howto manager. (line 316) -* BFD_RELOC_MIPS_GOT_DISP: howto manager. (line 325) -* BFD_RELOC_MIPS_GOT_HI16: howto manager. (line 318) -* BFD_RELOC_MIPS_GOT_LO16: howto manager. (line 319) -* BFD_RELOC_MIPS_GOT_OFST: howto manager. (line 324) -* BFD_RELOC_MIPS_GOT_PAGE: howto manager. (line 323) -* BFD_RELOC_MIPS_HIGHER: howto manager. (line 332) -* BFD_RELOC_MIPS_HIGHEST: howto manager. (line 331) -* BFD_RELOC_MIPS_INSERT_A: howto manager. (line 328) -* BFD_RELOC_MIPS_INSERT_B: howto manager. (line 329) -* BFD_RELOC_MIPS_JALR: howto manager. (line 336) -* BFD_RELOC_MIPS_JMP: howto manager. (line 279) -* BFD_RELOC_MIPS_LITERAL: howto manager. (line 313) -* BFD_RELOC_MIPS_REL16: howto manager. (line 334) -* BFD_RELOC_MIPS_RELGOT: howto manager. (line 335) -* BFD_RELOC_MIPS_SCN_DISP: howto manager. (line 333) -* BFD_RELOC_MIPS_SHIFT5: howto manager. (line 326) -* BFD_RELOC_MIPS_SHIFT6: howto manager. (line 327) -* BFD_RELOC_MIPS_SUB: howto manager. (line 322) -* BFD_RELOC_MIPS_TLS_DTPMOD32: howto manager. (line 337) -* BFD_RELOC_MIPS_TLS_DTPMOD64: howto manager. (line 339) -* BFD_RELOC_MIPS_TLS_DTPREL32: howto manager. (line 338) -* BFD_RELOC_MIPS_TLS_DTPREL64: howto manager. (line 340) -* BFD_RELOC_MIPS_TLS_DTPREL_HI16: howto manager. (line 343) -* BFD_RELOC_MIPS_TLS_DTPREL_LO16: howto manager. (line 344) -* BFD_RELOC_MIPS_TLS_GD: howto manager. (line 341) -* BFD_RELOC_MIPS_TLS_GOTTPREL: howto manager. (line 345) -* BFD_RELOC_MIPS_TLS_LDM: howto manager. (line 342) -* BFD_RELOC_MIPS_TLS_TPREL32: howto manager. (line 346) -* BFD_RELOC_MIPS_TLS_TPREL64: howto manager. (line 347) -* BFD_RELOC_MIPS_TLS_TPREL_HI16: howto manager. (line 348) -* BFD_RELOC_MIPS_TLS_TPREL_LO16: howto manager. (line 349) -* BFD_RELOC_MMIX_ADDR19: howto manager. (line 1048) -* BFD_RELOC_MMIX_ADDR27: howto manager. (line 1052) -* BFD_RELOC_MMIX_BASE_PLUS_OFFSET: howto manager. (line 1064) -* BFD_RELOC_MMIX_CBRANCH: howto manager. (line 1028) -* BFD_RELOC_MMIX_CBRANCH_1: howto manager. (line 1030) -* BFD_RELOC_MMIX_CBRANCH_2: howto manager. (line 1031) -* BFD_RELOC_MMIX_CBRANCH_3: howto manager. (line 1032) -* BFD_RELOC_MMIX_CBRANCH_J: howto manager. (line 1029) -* BFD_RELOC_MMIX_GETA: howto manager. (line 1022) -* BFD_RELOC_MMIX_GETA_1: howto manager. (line 1023) -* BFD_RELOC_MMIX_GETA_2: howto manager. (line 1024) -* BFD_RELOC_MMIX_GETA_3: howto manager. (line 1025) -* BFD_RELOC_MMIX_JMP: howto manager. (line 1042) -* BFD_RELOC_MMIX_JMP_1: howto manager. (line 1043) -* BFD_RELOC_MMIX_JMP_2: howto manager. (line 1044) -* BFD_RELOC_MMIX_JMP_3: howto manager. (line 1045) -* BFD_RELOC_MMIX_LOCAL: howto manager. (line 1068) -* BFD_RELOC_MMIX_PUSHJ: howto manager. (line 1035) -* BFD_RELOC_MMIX_PUSHJ_1: howto manager. (line 1036) -* BFD_RELOC_MMIX_PUSHJ_2: howto manager. (line 1037) -* BFD_RELOC_MMIX_PUSHJ_3: howto manager. (line 1038) -* BFD_RELOC_MMIX_PUSHJ_STUBBABLE: howto manager. (line 1039) -* BFD_RELOC_MMIX_REG: howto manager. (line 1060) -* BFD_RELOC_MMIX_REG_OR_BYTE: howto manager. (line 1056) -* BFD_RELOC_MN10300_16_PCREL: howto manager. (line 952) -* BFD_RELOC_MN10300_32_PCREL: howto manager. (line 948) -* BFD_RELOC_MN10300_COPY: howto manager. (line 408) -* BFD_RELOC_MN10300_GLOB_DAT: howto manager. (line 411) -* BFD_RELOC_MN10300_GOT16: howto manager. (line 404) -* BFD_RELOC_MN10300_GOT24: howto manager. (line 400) -* BFD_RELOC_MN10300_GOT32: howto manager. (line 396) -* BFD_RELOC_MN10300_GOTOFF24: howto manager. (line 393) -* BFD_RELOC_MN10300_JMP_SLOT: howto manager. (line 414) -* BFD_RELOC_MN10300_RELATIVE: howto manager. (line 417) -* BFD_RELOC_MSP430_10_PCREL: howto manager. (line 1599) -* BFD_RELOC_MSP430_16: howto manager. (line 1601) -* BFD_RELOC_MSP430_16_BYTE: howto manager. (line 1603) -* BFD_RELOC_MSP430_16_PCREL: howto manager. (line 1600) -* BFD_RELOC_MSP430_16_PCREL_BYTE: howto manager. (line 1602) -* BFD_RELOC_MSP430_2X_PCREL: howto manager. (line 1604) -* BFD_RELOC_MSP430_RL_PCREL: howto manager. (line 1605) -* BFD_RELOC_NONE: howto manager. (line 116) -* BFD_RELOC_NS32K_DISP_16: howto manager. (line 467) -* BFD_RELOC_NS32K_DISP_16_PCREL: howto manager. (line 470) -* BFD_RELOC_NS32K_DISP_32: howto manager. (line 468) -* BFD_RELOC_NS32K_DISP_32_PCREL: howto manager. (line 471) -* BFD_RELOC_NS32K_DISP_8: howto manager. (line 466) -* BFD_RELOC_NS32K_DISP_8_PCREL: howto manager. (line 469) -* BFD_RELOC_NS32K_IMM_16: howto manager. (line 461) -* BFD_RELOC_NS32K_IMM_16_PCREL: howto manager. (line 464) -* BFD_RELOC_NS32K_IMM_32: howto manager. (line 462) -* BFD_RELOC_NS32K_IMM_32_PCREL: howto manager. (line 465) -* BFD_RELOC_NS32K_IMM_8: howto manager. (line 460) -* BFD_RELOC_NS32K_IMM_8_PCREL: howto manager. (line 463) -* BFD_RELOC_OPENRISC_ABS_26: howto manager. (line 1577) -* BFD_RELOC_OPENRISC_REL_26: howto manager. (line 1578) -* BFD_RELOC_PDP11_DISP_6_PCREL: howto manager. (line 475) -* BFD_RELOC_PDP11_DISP_8_PCREL: howto manager. (line 474) -* BFD_RELOC_PJ_CODE_DIR16: howto manager. (line 480) -* BFD_RELOC_PJ_CODE_DIR32: howto manager. (line 481) -* BFD_RELOC_PJ_CODE_HI16: howto manager. (line 478) -* BFD_RELOC_PJ_CODE_LO16: howto manager. (line 479) -* BFD_RELOC_PJ_CODE_REL16: howto manager. (line 482) -* BFD_RELOC_PJ_CODE_REL32: howto manager. (line 483) -* BFD_RELOC_PPC64_ADDR16_DS: howto manager. (line 528) -* BFD_RELOC_PPC64_ADDR16_LO_DS: howto manager. (line 529) -* BFD_RELOC_PPC64_DTPREL16_DS: howto manager. (line 575) -* BFD_RELOC_PPC64_DTPREL16_HIGHER: howto manager. (line 577) -* BFD_RELOC_PPC64_DTPREL16_HIGHERA: howto manager. (line 578) -* BFD_RELOC_PPC64_DTPREL16_HIGHEST: howto manager. (line 579) -* BFD_RELOC_PPC64_DTPREL16_HIGHESTA: howto manager. (line 580) -* BFD_RELOC_PPC64_DTPREL16_LO_DS: howto manager. (line 576) -* BFD_RELOC_PPC64_GOT16_DS: howto manager. (line 530) -* BFD_RELOC_PPC64_GOT16_LO_DS: howto manager. (line 531) -* BFD_RELOC_PPC64_HIGHER: howto manager. (line 516) -* BFD_RELOC_PPC64_HIGHER_S: howto manager. (line 517) -* BFD_RELOC_PPC64_HIGHEST: howto manager. (line 518) -* BFD_RELOC_PPC64_HIGHEST_S: howto manager. (line 519) -* BFD_RELOC_PPC64_PLT16_LO_DS: howto manager. (line 532) -* BFD_RELOC_PPC64_PLTGOT16: howto manager. (line 524) -* BFD_RELOC_PPC64_PLTGOT16_DS: howto manager. (line 537) -* BFD_RELOC_PPC64_PLTGOT16_HA: howto manager. (line 527) -* BFD_RELOC_PPC64_PLTGOT16_HI: howto manager. (line 526) -* BFD_RELOC_PPC64_PLTGOT16_LO: howto manager. (line 525) -* BFD_RELOC_PPC64_PLTGOT16_LO_DS: howto manager. (line 538) -* BFD_RELOC_PPC64_SECTOFF_DS: howto manager. (line 533) -* BFD_RELOC_PPC64_SECTOFF_LO_DS: howto manager. (line 534) -* BFD_RELOC_PPC64_TOC: howto manager. (line 523) -* BFD_RELOC_PPC64_TOC16_DS: howto manager. (line 535) -* BFD_RELOC_PPC64_TOC16_HA: howto manager. (line 522) -* BFD_RELOC_PPC64_TOC16_HI: howto manager. (line 521) -* BFD_RELOC_PPC64_TOC16_LO: howto manager. (line 520) -* BFD_RELOC_PPC64_TOC16_LO_DS: howto manager. (line 536) -* BFD_RELOC_PPC64_TPREL16_DS: howto manager. (line 569) -* BFD_RELOC_PPC64_TPREL16_HIGHER: howto manager. (line 571) -* BFD_RELOC_PPC64_TPREL16_HIGHERA: howto manager. (line 572) -* BFD_RELOC_PPC64_TPREL16_HIGHEST: howto manager. (line 573) -* BFD_RELOC_PPC64_TPREL16_HIGHESTA: howto manager. (line 574) -* BFD_RELOC_PPC64_TPREL16_LO_DS: howto manager. (line 570) -* BFD_RELOC_PPC_B16: howto manager. (line 489) -* BFD_RELOC_PPC_B16_BRNTAKEN: howto manager. (line 491) -* BFD_RELOC_PPC_B16_BRTAKEN: howto manager. (line 490) -* BFD_RELOC_PPC_B26: howto manager. (line 486) -* BFD_RELOC_PPC_BA16: howto manager. (line 492) -* BFD_RELOC_PPC_BA16_BRNTAKEN: howto manager. (line 494) -* BFD_RELOC_PPC_BA16_BRTAKEN: howto manager. (line 493) -* BFD_RELOC_PPC_BA26: howto manager. (line 487) -* BFD_RELOC_PPC_COPY: howto manager. (line 495) -* BFD_RELOC_PPC_DTPMOD: howto manager. (line 542) -* BFD_RELOC_PPC_DTPREL: howto manager. (line 552) -* BFD_RELOC_PPC_DTPREL16: howto manager. (line 548) -* BFD_RELOC_PPC_DTPREL16_HA: howto manager. (line 551) -* BFD_RELOC_PPC_DTPREL16_HI: howto manager. (line 550) -* BFD_RELOC_PPC_DTPREL16_LO: howto manager. (line 549) -* BFD_RELOC_PPC_EMB_BIT_FLD: howto manager. (line 514) -* BFD_RELOC_PPC_EMB_MRKREF: howto manager. (line 509) -* BFD_RELOC_PPC_EMB_NADDR16: howto manager. (line 501) -* BFD_RELOC_PPC_EMB_NADDR16_HA: howto manager. (line 504) -* BFD_RELOC_PPC_EMB_NADDR16_HI: howto manager. (line 503) -* BFD_RELOC_PPC_EMB_NADDR16_LO: howto manager. (line 502) -* BFD_RELOC_PPC_EMB_NADDR32: howto manager. (line 500) -* BFD_RELOC_PPC_EMB_RELSDA: howto manager. (line 515) -* BFD_RELOC_PPC_EMB_RELSEC16: howto manager. (line 510) -* BFD_RELOC_PPC_EMB_RELST_HA: howto manager. (line 513) -* BFD_RELOC_PPC_EMB_RELST_HI: howto manager. (line 512) -* BFD_RELOC_PPC_EMB_RELST_LO: howto manager. (line 511) -* BFD_RELOC_PPC_EMB_SDA21: howto manager. (line 508) -* BFD_RELOC_PPC_EMB_SDA2I16: howto manager. (line 506) -* BFD_RELOC_PPC_EMB_SDA2REL: howto manager. (line 507) -* BFD_RELOC_PPC_EMB_SDAI16: howto manager. (line 505) -* BFD_RELOC_PPC_GLOB_DAT: howto manager. (line 496) -* BFD_RELOC_PPC_GOT_DTPREL16: howto manager. (line 565) -* BFD_RELOC_PPC_GOT_DTPREL16_HA: howto manager. (line 568) -* BFD_RELOC_PPC_GOT_DTPREL16_HI: howto manager. (line 567) -* BFD_RELOC_PPC_GOT_DTPREL16_LO: howto manager. (line 566) -* BFD_RELOC_PPC_GOT_TLSGD16: howto manager. (line 553) -* BFD_RELOC_PPC_GOT_TLSGD16_HA: howto manager. (line 556) -* BFD_RELOC_PPC_GOT_TLSGD16_HI: howto manager. (line 555) -* BFD_RELOC_PPC_GOT_TLSGD16_LO: howto manager. (line 554) -* BFD_RELOC_PPC_GOT_TLSLD16: howto manager. (line 557) -* BFD_RELOC_PPC_GOT_TLSLD16_HA: howto manager. (line 560) -* BFD_RELOC_PPC_GOT_TLSLD16_HI: howto manager. (line 559) -* BFD_RELOC_PPC_GOT_TLSLD16_LO: howto manager. (line 558) -* BFD_RELOC_PPC_GOT_TPREL16: howto manager. (line 561) -* BFD_RELOC_PPC_GOT_TPREL16_HA: howto manager. (line 564) -* BFD_RELOC_PPC_GOT_TPREL16_HI: howto manager. (line 563) -* BFD_RELOC_PPC_GOT_TPREL16_LO: howto manager. (line 562) -* BFD_RELOC_PPC_JMP_SLOT: howto manager. (line 497) -* BFD_RELOC_PPC_LOCAL24PC: howto manager. (line 499) -* BFD_RELOC_PPC_RELATIVE: howto manager. (line 498) -* BFD_RELOC_PPC_TLS: howto manager. (line 541) -* BFD_RELOC_PPC_TOC16: howto manager. (line 488) -* BFD_RELOC_PPC_TPREL: howto manager. (line 547) -* BFD_RELOC_PPC_TPREL16: howto manager. (line 543) -* BFD_RELOC_PPC_TPREL16_HA: howto manager. (line 546) -* BFD_RELOC_PPC_TPREL16_HI: howto manager. (line 545) -* BFD_RELOC_PPC_TPREL16_LO: howto manager. (line 544) -* BFD_RELOC_RVA: howto manager. (line 85) -* BFD_RELOC_SH_ALIGN: howto manager. (line 677) -* BFD_RELOC_SH_CODE: howto manager. (line 678) -* BFD_RELOC_SH_COPY: howto manager. (line 683) -* BFD_RELOC_SH_COPY64: howto manager. (line 708) -* BFD_RELOC_SH_COUNT: howto manager. (line 676) -* BFD_RELOC_SH_DATA: howto manager. (line 679) -* BFD_RELOC_SH_DISP12: howto manager. (line 659) -* BFD_RELOC_SH_DISP12BY2: howto manager. (line 660) -* BFD_RELOC_SH_DISP12BY4: howto manager. (line 661) -* BFD_RELOC_SH_DISP12BY8: howto manager. (line 662) -* BFD_RELOC_SH_DISP20: howto manager. (line 663) -* BFD_RELOC_SH_DISP20BY8: howto manager. (line 664) -* BFD_RELOC_SH_GLOB_DAT: howto manager. (line 684) -* BFD_RELOC_SH_GLOB_DAT64: howto manager. (line 709) -* BFD_RELOC_SH_GOT10BY4: howto manager. (line 712) -* BFD_RELOC_SH_GOT10BY8: howto manager. (line 713) -* BFD_RELOC_SH_GOT_HI16: howto manager. (line 691) -* BFD_RELOC_SH_GOT_LOW16: howto manager. (line 688) -* BFD_RELOC_SH_GOT_MEDHI16: howto manager. (line 690) -* BFD_RELOC_SH_GOT_MEDLOW16: howto manager. (line 689) -* BFD_RELOC_SH_GOTOFF_HI16: howto manager. (line 703) -* BFD_RELOC_SH_GOTOFF_LOW16: howto manager. (line 700) -* BFD_RELOC_SH_GOTOFF_MEDHI16: howto manager. (line 702) -* BFD_RELOC_SH_GOTOFF_MEDLOW16: howto manager. (line 701) -* BFD_RELOC_SH_GOTPC: howto manager. (line 687) -* BFD_RELOC_SH_GOTPC_HI16: howto manager. (line 707) -* BFD_RELOC_SH_GOTPC_LOW16: howto manager. (line 704) -* BFD_RELOC_SH_GOTPC_MEDHI16: howto manager. (line 706) -* BFD_RELOC_SH_GOTPC_MEDLOW16: howto manager. (line 705) -* BFD_RELOC_SH_GOTPLT10BY4: howto manager. (line 714) -* BFD_RELOC_SH_GOTPLT10BY8: howto manager. (line 715) -* BFD_RELOC_SH_GOTPLT32: howto manager. (line 716) -* BFD_RELOC_SH_GOTPLT_HI16: howto manager. (line 695) -* BFD_RELOC_SH_GOTPLT_LOW16: howto manager. (line 692) -* BFD_RELOC_SH_GOTPLT_MEDHI16: howto manager. (line 694) -* BFD_RELOC_SH_GOTPLT_MEDLOW16: howto manager. (line 693) -* BFD_RELOC_SH_IMM3: howto manager. (line 657) -* BFD_RELOC_SH_IMM3U: howto manager. (line 658) -* BFD_RELOC_SH_IMM4: howto manager. (line 665) -* BFD_RELOC_SH_IMM4BY2: howto manager. (line 666) -* BFD_RELOC_SH_IMM4BY4: howto manager. (line 667) -* BFD_RELOC_SH_IMM8: howto manager. (line 668) -* BFD_RELOC_SH_IMM8BY2: howto manager. (line 669) -* BFD_RELOC_SH_IMM8BY4: howto manager. (line 670) -* BFD_RELOC_SH_IMM_HI16: howto manager. (line 734) -* BFD_RELOC_SH_IMM_HI16_PCREL: howto manager. (line 735) -* BFD_RELOC_SH_IMM_LOW16: howto manager. (line 728) -* BFD_RELOC_SH_IMM_LOW16_PCREL: howto manager. (line 729) -* BFD_RELOC_SH_IMM_MEDHI16: howto manager. (line 732) -* BFD_RELOC_SH_IMM_MEDHI16_PCREL: howto manager. (line 733) -* BFD_RELOC_SH_IMM_MEDLOW16: howto manager. (line 730) -* BFD_RELOC_SH_IMM_MEDLOW16_PCREL: howto manager. (line 731) -* BFD_RELOC_SH_IMMS10: howto manager. (line 722) -* BFD_RELOC_SH_IMMS10BY2: howto manager. (line 723) -* BFD_RELOC_SH_IMMS10BY4: howto manager. (line 724) -* BFD_RELOC_SH_IMMS10BY8: howto manager. (line 725) -* BFD_RELOC_SH_IMMS16: howto manager. (line 726) -* BFD_RELOC_SH_IMMS6: howto manager. (line 719) -* BFD_RELOC_SH_IMMS6BY32: howto manager. (line 720) -* BFD_RELOC_SH_IMMU16: howto manager. (line 727) -* BFD_RELOC_SH_IMMU5: howto manager. (line 718) -* BFD_RELOC_SH_IMMU6: howto manager. (line 721) -* BFD_RELOC_SH_JMP_SLOT: howto manager. (line 685) -* BFD_RELOC_SH_JMP_SLOT64: howto manager. (line 710) -* BFD_RELOC_SH_LABEL: howto manager. (line 680) -* BFD_RELOC_SH_LOOP_END: howto manager. (line 682) -* BFD_RELOC_SH_LOOP_START: howto manager. (line 681) -* BFD_RELOC_SH_PCDISP12BY2: howto manager. (line 656) -* BFD_RELOC_SH_PCDISP8BY2: howto manager. (line 655) -* BFD_RELOC_SH_PCRELIMM8BY2: howto manager. (line 671) -* BFD_RELOC_SH_PCRELIMM8BY4: howto manager. (line 672) -* BFD_RELOC_SH_PLT_HI16: howto manager. (line 699) -* BFD_RELOC_SH_PLT_LOW16: howto manager. (line 696) -* BFD_RELOC_SH_PLT_MEDHI16: howto manager. (line 698) -* BFD_RELOC_SH_PLT_MEDLOW16: howto manager. (line 697) -* BFD_RELOC_SH_PT_16: howto manager. (line 736) -* BFD_RELOC_SH_RELATIVE: howto manager. (line 686) -* BFD_RELOC_SH_RELATIVE64: howto manager. (line 711) -* BFD_RELOC_SH_SHMEDIA_CODE: howto manager. (line 717) -* BFD_RELOC_SH_SWITCH16: howto manager. (line 673) -* BFD_RELOC_SH_SWITCH32: howto manager. (line 674) -* BFD_RELOC_SH_TLS_DTPMOD32: howto manager. (line 742) -* BFD_RELOC_SH_TLS_DTPOFF32: howto manager. (line 743) -* BFD_RELOC_SH_TLS_GD_32: howto manager. (line 737) -* BFD_RELOC_SH_TLS_IE_32: howto manager. (line 740) -* BFD_RELOC_SH_TLS_LD_32: howto manager. (line 738) -* BFD_RELOC_SH_TLS_LDO_32: howto manager. (line 739) -* BFD_RELOC_SH_TLS_LE_32: howto manager. (line 741) -* BFD_RELOC_SH_TLS_TPOFF32: howto manager. (line 744) -* BFD_RELOC_SH_USES: howto manager. (line 675) -* BFD_RELOC_SPARC13: howto manager. (line 119) -* BFD_RELOC_SPARC22: howto manager. (line 118) -* BFD_RELOC_SPARC_10: howto manager. (line 141) -* BFD_RELOC_SPARC_11: howto manager. (line 142) -* BFD_RELOC_SPARC_5: howto manager. (line 154) -* BFD_RELOC_SPARC_6: howto manager. (line 153) -* BFD_RELOC_SPARC_64: howto manager. (line 140) -* BFD_RELOC_SPARC_7: howto manager. (line 152) -* BFD_RELOC_SPARC_BASE13: howto manager. (line 136) -* BFD_RELOC_SPARC_BASE22: howto manager. (line 137) -* BFD_RELOC_SPARC_COPY: howto manager. (line 126) -* BFD_RELOC_SPARC_DISP64: howto manager. (line 155) -* BFD_RELOC_SPARC_GLOB_DAT: howto manager. (line 127) -* BFD_RELOC_SPARC_GOT10: howto manager. (line 120) -* BFD_RELOC_SPARC_GOT13: howto manager. (line 121) -* BFD_RELOC_SPARC_GOT22: howto manager. (line 122) -* BFD_RELOC_SPARC_H44: howto manager. (line 160) -* BFD_RELOC_SPARC_HH22: howto manager. (line 144) -* BFD_RELOC_SPARC_HIX22: howto manager. (line 158) -* BFD_RELOC_SPARC_HM10: howto manager. (line 145) -* BFD_RELOC_SPARC_JMP_SLOT: howto manager. (line 128) -* BFD_RELOC_SPARC_L44: howto manager. (line 162) -* BFD_RELOC_SPARC_LM22: howto manager. (line 146) -* BFD_RELOC_SPARC_LOX10: howto manager. (line 159) -* BFD_RELOC_SPARC_M44: howto manager. (line 161) -* BFD_RELOC_SPARC_OLO10: howto manager. (line 143) -* BFD_RELOC_SPARC_PC10: howto manager. (line 123) -* BFD_RELOC_SPARC_PC22: howto manager. (line 124) -* BFD_RELOC_SPARC_PC_HH22: howto manager. (line 147) -* BFD_RELOC_SPARC_PC_HM10: howto manager. (line 148) -* BFD_RELOC_SPARC_PC_LM22: howto manager. (line 149) -* BFD_RELOC_SPARC_PLT32: howto manager. (line 156) -* BFD_RELOC_SPARC_PLT64: howto manager. (line 157) -* BFD_RELOC_SPARC_REGISTER: howto manager. (line 163) -* BFD_RELOC_SPARC_RELATIVE: howto manager. (line 129) -* BFD_RELOC_SPARC_REV32: howto manager. (line 166) -* BFD_RELOC_SPARC_TLS_DTPMOD32: howto manager. (line 187) -* BFD_RELOC_SPARC_TLS_DTPMOD64: howto manager. (line 188) -* BFD_RELOC_SPARC_TLS_DTPOFF32: howto manager. (line 189) -* BFD_RELOC_SPARC_TLS_DTPOFF64: howto manager. (line 190) -* BFD_RELOC_SPARC_TLS_GD_ADD: howto manager. (line 171) -* BFD_RELOC_SPARC_TLS_GD_CALL: howto manager. (line 172) -* BFD_RELOC_SPARC_TLS_GD_HI22: howto manager. (line 169) -* BFD_RELOC_SPARC_TLS_GD_LO10: howto manager. (line 170) -* BFD_RELOC_SPARC_TLS_IE_ADD: howto manager. (line 184) -* BFD_RELOC_SPARC_TLS_IE_HI22: howto manager. (line 180) -* BFD_RELOC_SPARC_TLS_IE_LD: howto manager. (line 182) -* BFD_RELOC_SPARC_TLS_IE_LDX: howto manager. (line 183) -* BFD_RELOC_SPARC_TLS_IE_LO10: howto manager. (line 181) -* BFD_RELOC_SPARC_TLS_LDM_ADD: howto manager. (line 175) -* BFD_RELOC_SPARC_TLS_LDM_CALL: howto manager. (line 176) -* BFD_RELOC_SPARC_TLS_LDM_HI22: howto manager. (line 173) -* BFD_RELOC_SPARC_TLS_LDM_LO10: howto manager. (line 174) -* BFD_RELOC_SPARC_TLS_LDO_ADD: howto manager. (line 179) -* BFD_RELOC_SPARC_TLS_LDO_HIX22: howto manager. (line 177) -* BFD_RELOC_SPARC_TLS_LDO_LOX10: howto manager. (line 178) -* BFD_RELOC_SPARC_TLS_LE_HIX22: howto manager. (line 185) -* BFD_RELOC_SPARC_TLS_LE_LOX10: howto manager. (line 186) -* BFD_RELOC_SPARC_TLS_TPOFF32: howto manager. (line 191) -* BFD_RELOC_SPARC_TLS_TPOFF64: howto manager. (line 192) -* BFD_RELOC_SPARC_UA16: howto manager. (line 130) -* BFD_RELOC_SPARC_UA32: howto manager. (line 131) -* BFD_RELOC_SPARC_UA64: howto manager. (line 132) -* BFD_RELOC_SPARC_WDISP16: howto manager. (line 150) -* BFD_RELOC_SPARC_WDISP19: howto manager. (line 151) -* BFD_RELOC_SPARC_WDISP22: howto manager. (line 117) -* BFD_RELOC_SPARC_WPLT30: howto manager. (line 125) -* BFD_RELOC_THUMB_PCREL_BLX: howto manager. (line 601) -* BFD_RELOC_THUMB_PCREL_BRANCH12: howto manager. (line 749) -* BFD_RELOC_THUMB_PCREL_BRANCH23: howto manager. (line 750) -* BFD_RELOC_THUMB_PCREL_BRANCH9: howto manager. (line 748) -* BFD_RELOC_TIC30_LDP: howto manager. (line 956) -* BFD_RELOC_TIC54X_16_OF_23: howto manager. (line 974) -* BFD_RELOC_TIC54X_23: howto manager. (line 971) -* BFD_RELOC_TIC54X_MS7_OF_23: howto manager. (line 979) -* BFD_RELOC_TIC54X_PARTLS7: howto manager. (line 961) -* BFD_RELOC_TIC54X_PARTMS9: howto manager. (line 966) -* bfd_reloc_type_lookup: howto manager. (line 1693) -* BFD_RELOC_V850_22_PCREL: howto manager. (line 883) -* BFD_RELOC_V850_9_PCREL: howto manager. (line 880) -* BFD_RELOC_V850_ALIGN: howto manager. (line 941) -* BFD_RELOC_V850_CALLT_16_16_OFFSET: howto manager. (line 932) -* BFD_RELOC_V850_CALLT_6_7_OFFSET: howto manager. (line 929) -* BFD_RELOC_V850_LO16_SPLIT_OFFSET: howto manager. (line 944) -* BFD_RELOC_V850_LONGCALL: howto manager. (line 935) -* BFD_RELOC_V850_LONGJUMP: howto manager. (line 938) -* BFD_RELOC_V850_SDA_15_16_OFFSET: howto manager. (line 889) -* BFD_RELOC_V850_SDA_16_16_OFFSET: howto manager. (line 886) -* BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET: howto manager. (line 921) -* BFD_RELOC_V850_TDA_16_16_OFFSET: howto manager. (line 911) -* BFD_RELOC_V850_TDA_4_4_OFFSET: howto manager. (line 918) -* BFD_RELOC_V850_TDA_4_5_OFFSET: howto manager. (line 914) -* BFD_RELOC_V850_TDA_6_8_OFFSET: howto manager. (line 900) -* BFD_RELOC_V850_TDA_7_7_OFFSET: howto manager. (line 908) -* BFD_RELOC_V850_TDA_7_8_OFFSET: howto manager. (line 904) -* BFD_RELOC_V850_ZDA_15_16_OFFSET: howto manager. (line 896) -* BFD_RELOC_V850_ZDA_16_16_OFFSET: howto manager. (line 893) -* BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET: howto manager. (line 925) -* BFD_RELOC_VAX_GLOB_DAT: howto manager. (line 1594) -* BFD_RELOC_VAX_JMP_SLOT: howto manager. (line 1595) -* BFD_RELOC_VAX_RELATIVE: howto manager. (line 1596) -* BFD_RELOC_VPE4KMATH_DATA: howto manager. (line 1291) -* BFD_RELOC_VPE4KMATH_INSN: howto manager. (line 1292) -* BFD_RELOC_VTABLE_ENTRY: howto manager. (line 1296) -* BFD_RELOC_VTABLE_INHERIT: howto manager. (line 1295) -* BFD_RELOC_X86_64_32S: howto manager. (line 449) -* BFD_RELOC_X86_64_COPY: howto manager. (line 444) -* BFD_RELOC_X86_64_DTPMOD64: howto manager. (line 450) -* BFD_RELOC_X86_64_DTPOFF32: howto manager. (line 455) -* BFD_RELOC_X86_64_DTPOFF64: howto manager. (line 451) -* BFD_RELOC_X86_64_GLOB_DAT: howto manager. (line 445) -* BFD_RELOC_X86_64_GOT32: howto manager. (line 442) -* BFD_RELOC_X86_64_GOTPCREL: howto manager. (line 448) -* BFD_RELOC_X86_64_GOTTPOFF: howto manager. (line 456) -* BFD_RELOC_X86_64_JUMP_SLOT: howto manager. (line 446) -* BFD_RELOC_X86_64_PLT32: howto manager. (line 443) -* BFD_RELOC_X86_64_RELATIVE: howto manager. (line 447) -* BFD_RELOC_X86_64_TLSGD: howto manager. (line 453) -* BFD_RELOC_X86_64_TLSLD: howto manager. (line 454) -* BFD_RELOC_X86_64_TPOFF32: howto manager. (line 457) -* BFD_RELOC_X86_64_TPOFF64: howto manager. (line 452) -* BFD_RELOC_XSTORMY16_12: howto manager. (line 1589) -* BFD_RELOC_XSTORMY16_24: howto manager. (line 1590) -* BFD_RELOC_XSTORMY16_FPTR16: howto manager. (line 1591) -* BFD_RELOC_XSTORMY16_REL_12: howto manager. (line 1588) -* BFD_RELOC_XTENSA_ASM_EXPAND: howto manager. (line 1682) -* BFD_RELOC_XTENSA_ASM_SIMPLIFY: howto manager. (line 1687) -* BFD_RELOC_XTENSA_DIFF16: howto manager. (line 1629) -* BFD_RELOC_XTENSA_DIFF32: howto manager. (line 1630) -* BFD_RELOC_XTENSA_DIFF8: howto manager. (line 1628) -* BFD_RELOC_XTENSA_GLOB_DAT: howto manager. (line 1618) -* BFD_RELOC_XTENSA_JMP_SLOT: howto manager. (line 1619) -* BFD_RELOC_XTENSA_OP0: howto manager. (line 1676) -* BFD_RELOC_XTENSA_OP1: howto manager. (line 1677) -* BFD_RELOC_XTENSA_OP2: howto manager. (line 1678) -* BFD_RELOC_XTENSA_PLT: howto manager. (line 1623) -* BFD_RELOC_XTENSA_RELATIVE: howto manager. (line 1620) -* BFD_RELOC_XTENSA_RTLD: howto manager. (line 1613) -* BFD_RELOC_XTENSA_SLOT0_ALT: howto manager. (line 1658) -* BFD_RELOC_XTENSA_SLOT0_OP: howto manager. (line 1638) -* BFD_RELOC_XTENSA_SLOT10_ALT: howto manager. (line 1668) -* BFD_RELOC_XTENSA_SLOT10_OP: howto manager. (line 1648) -* BFD_RELOC_XTENSA_SLOT11_ALT: howto manager. (line 1669) -* BFD_RELOC_XTENSA_SLOT11_OP: howto manager. (line 1649) -* BFD_RELOC_XTENSA_SLOT12_ALT: howto manager. (line 1670) -* BFD_RELOC_XTENSA_SLOT12_OP: howto manager. (line 1650) -* BFD_RELOC_XTENSA_SLOT13_ALT: howto manager. (line 1671) -* BFD_RELOC_XTENSA_SLOT13_OP: howto manager. (line 1651) -* BFD_RELOC_XTENSA_SLOT14_ALT: howto manager. (line 1672) -* BFD_RELOC_XTENSA_SLOT14_OP: howto manager. (line 1652) -* BFD_RELOC_XTENSA_SLOT1_ALT: howto manager. (line 1659) -* BFD_RELOC_XTENSA_SLOT1_OP: howto manager. (line 1639) -* BFD_RELOC_XTENSA_SLOT2_ALT: howto manager. (line 1660) -* BFD_RELOC_XTENSA_SLOT2_OP: howto manager. (line 1640) -* BFD_RELOC_XTENSA_SLOT3_ALT: howto manager. (line 1661) -* BFD_RELOC_XTENSA_SLOT3_OP: howto manager. (line 1641) -* BFD_RELOC_XTENSA_SLOT4_ALT: howto manager. (line 1662) -* BFD_RELOC_XTENSA_SLOT4_OP: howto manager. (line 1642) -* BFD_RELOC_XTENSA_SLOT5_ALT: howto manager. (line 1663) -* BFD_RELOC_XTENSA_SLOT5_OP: howto manager. (line 1643) -* BFD_RELOC_XTENSA_SLOT6_ALT: howto manager. (line 1664) -* BFD_RELOC_XTENSA_SLOT6_OP: howto manager. (line 1644) -* BFD_RELOC_XTENSA_SLOT7_ALT: howto manager. (line 1665) -* BFD_RELOC_XTENSA_SLOT7_OP: howto manager. (line 1645) -* BFD_RELOC_XTENSA_SLOT8_ALT: howto manager. (line 1666) -* BFD_RELOC_XTENSA_SLOT8_OP: howto manager. (line 1646) -* BFD_RELOC_XTENSA_SLOT9_ALT: howto manager. (line 1667) -* BFD_RELOC_XTENSA_SLOT9_OP: howto manager. (line 1647) -* bfd_scan_arch: Architectures. (line 369) -* bfd_scan_vma: BFD front end. (line 420) -* bfd_seach_for_target: bfd_target. (line 445) -* bfd_section_already_linked: Writing the symbol table. - (line 55) -* bfd_section_list_clear: section prototypes. (line 8) -* bfd_sections_find_if: section prototypes. (line 145) -* bfd_set_arch_info: Architectures. (line 410) -* bfd_set_archive_head: Archives. (line 66) -* bfd_set_default_target: bfd_target. (line 410) -* bfd_set_error: BFD front end. (line 235) -* bfd_set_error_handler: BFD front end. (line 275) -* bfd_set_error_program_name: BFD front end. (line 284) -* bfd_set_file_flags: BFD front end. (line 340) -* bfd_set_format: Formats. (line 65) -* bfd_set_gp_size: BFD front end. (line 410) -* bfd_set_private_flags: BFD front end. (line 487) -* bfd_set_reloc: BFD front end. (line 330) -* bfd_set_section_contents: section prototypes. (line 176) -* bfd_set_section_flags: section prototypes. (line 109) -* bfd_set_section_size: section prototypes. (line 162) -* bfd_set_start_address: BFD front end. (line 389) -* bfd_set_symtab: symbol handling functions. - (line 60) -* bfd_symbol_info: symbol handling functions. - (line 130) -* bfd_target_list: bfd_target. (line 436) -* bfd_write_bigendian_4byte_int: Internal. (line 10) -* bfd_zalloc: Opening and Closing. - (line 188) -* coff_symbol_type: coff. (line 186) -* core_file_matches_executable_p: Core Files. (line 27) -* find_separate_debug_file: Opening and Closing. - (line 230) -* get_debug_link_info: Opening and Closing. - (line 211) -* Hash tables: Hash Tables. (line 6) -* internal object-file format: Canonical format. (line 11) -* Linker: Linker Functions. (line 6) -* Other functions: BFD front end. (line 502) -* separate_debug_file_exists: Opening and Closing. - (line 221) -* struct bfd_iovec: BFD front end. (line 646) -* target vector (_bfd_final_link): Performing the Final Link. - (line 6) -* target vector (_bfd_link_add_symbols): Adding Symbols to the Hash Table. - (line 6) -* target vector (_bfd_link_hash_table_create): Creating a Linker Hash Table. - (line 6) -* The HOWTO Macro: typedef arelent. (line 290) -* what is it?: Overview. (line 6) - - diff --git a/bfd/po/da.gmo b/bfd/po/da.gmo deleted file mode 100644 index 944a11c1610b78a696d9df49faf3ede29a908b5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 60556 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 R%_kJDWV~?fM0e!p`2T{BLqz}p diff --git a/bfd/po/es.gmo b/bfd/po/es.gmo deleted file mode 100644 index cff702a204fd0b809f1b2039085aba9895a89512..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 84719 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 TQjzYq1?>pP+R-fTpMd)R@X7JR diff --git a/bfd/po/sv.gmo b/bfd/po/sv.gmo deleted file mode 100644 index e746ec02e7563ca81ddea6cb6a048da279bf1ded..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 67266 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 z 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%0D~A=*?4 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. -.tr \(*W-|\(bv\*(Tr -.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' -.ie n \{\ -. ds -- \(*W- -. ds PI pi -. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch -. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch -. ds L" "" -. ds R" "" -. ds C` "" -. ds C' "" -'br\} -.el\{\ -. ds -- \|\(em\| -. ds PI \(*p -. ds L" `` -. ds R" '' -'br\} -.\" -.\" 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 -.\" 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 -.\" -.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). -.\" Fear. Run. Save yourself. No user-serviceable parts. -. \" fudge factors for nroff and troff -.if n \{\ -. ds #H 0 -. ds #V .8m -. ds #F .3m -. ds #[ \f1 -. ds #] \fP -.\} -.if t \{\ -. ds #H ((1u-(\\\\n(.fu%2u))*.13m) -. ds #V .6m -. ds #F 0 -. ds #[ \& -. ds #] \& -.\} -. \" simple accents for nroff and troff -.if n \{\ -. ds ' \& -. ds ` \& -. ds ^ \& -. ds , \& -. ds ~ ~ -. ds / -.\} -.if t \{\ -. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" -. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' -. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' -. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' -. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' -. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' -.\} -. \" troff and (daisy-wheel) nroff accents -.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' -.ds 8 \h'\*(#H'\(*b\h'-\*(#H' -.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] -.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' -.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' -.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] -.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] -.ds ae a\h'-(\w'a'u*4/10)'e -.ds Ae A\h'-(\w'A'u*4/10)'E -. \" corrections for vroff -.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' -.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' -. \" for low resolution devices (crt and lpr) -.if \n(.H>23 .if \n(.V>19 \ -\{\ -. ds : e -. ds 8 ss -. ds o a -. ds d- d\h'-1'\(ga -. ds D- D\h'-1'\(hy -. ds th \o'bp' -. ds Th \o'LP' -. ds ae ae -. ds Ae AE -.\} -.rm #[ #] #H #V #F C -.\" ======================================================================== -.\" -.IX Title "ADDR2LINE 1" -.TH ADDR2LINE 1 "2005-03-08" "binutils-2.15.96" "GNU Development Tools" -.SH "NAME" -addr2line \- convert addresses into file names and line numbers. -.SH "SYNOPSIS" -.IX Header "SYNOPSIS" -addr2line [\fB\-b\fR \fIbfdname\fR|\fB\-\-target=\fR\fIbfdname\fR] - [\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR]] - [\fB\-e\fR \fIfilename\fR|\fB\-\-exe=\fR\fIfilename\fR] - [\fB\-f\fR|\fB\-\-functions\fR] [\fB\-s\fR|\fB\-\-basename\fR] - [\fB\-H\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR] - [addr addr ...] -.SH "DESCRIPTION" -.IX Header "DESCRIPTION" -\&\fBaddr2line\fR translates program addresses into file names and line -numbers. Given an address and an executable, it uses the debugging -information in the executable to figure out which file name and line -number are associated with a given address. -.PP -The executable to use is specified with the \fB\-e\fR option. The -default is the file \fIa.out\fR. -.PP -\&\fBaddr2line\fR has two modes of operation. -.PP -In the first, hexadecimal addresses are specified on the command line, -and \fBaddr2line\fR displays the file name and line number for each -address. -.PP -In the second, \fBaddr2line\fR reads hexadecimal addresses from -standard input, and prints the file name and line number for each -address on standard output. In this mode, \fBaddr2line\fR may be used -in a pipe to convert dynamically chosen addresses. -.PP -The format of the output is \fB\s-1FILENAME:LINENO\s0\fR. The file name and -line number for each address is printed on a separate line. If the -\&\fB\-f\fR option is used, then each \fB\s-1FILENAME:LINENO\s0\fR line is -preceded by a \fB\s-1FUNCTIONNAME\s0\fR line which is the name of the function -containing the address. -.PP -If the file name or function name can not be determined, -\&\fBaddr2line\fR will print two question marks in their place. If the -line number can not be determined, \fBaddr2line\fR will print 0. -.SH "OPTIONS" -.IX Header "OPTIONS" -The long and short forms of options, shown here as alternatives, are -equivalent. -.IP "\fB\-b\fR \fIbfdname\fR" 4 -.IX Item "-b bfdname" -.PD 0 -.IP "\fB\-\-target=\fR\fIbfdname\fR" 4 -.IX Item "--target=bfdname" -.PD -Specify that the object-code format for the object files is -\&\fIbfdname\fR. -.IP "\fB\-C\fR" 4 -.IX Item "-C" -.PD 0 -.IP "\fB\-\-demangle[=\fR\fIstyle\fR\fB]\fR" 4 -.IX Item "--demangle[=style]" -.PD -Decode (\fIdemangle\fR) low-level symbol names into user-level names. -Besides removing any initial underscore prepended by the system, this -makes \*(C+ function names readable. Different compilers have different -mangling styles. The optional demangling style argument can be used to -choose an appropriate demangling style for your compiler. -.IP "\fB\-e\fR \fIfilename\fR" 4 -.IX Item "-e filename" -.PD 0 -.IP "\fB\-\-exe=\fR\fIfilename\fR" 4 -.IX Item "--exe=filename" -.PD -Specify the name of the executable for which addresses should be -translated. The default file is \fIa.out\fR. -.IP "\fB\-f\fR" 4 -.IX Item "-f" -.PD 0 -.IP "\fB\-\-functions\fR" 4 -.IX Item "--functions" -.PD -Display function names as well as file and line number information. -.IP "\fB\-s\fR" 4 -.IX Item "-s" -.PD 0 -.IP "\fB\-\-basenames\fR" 4 -.IX Item "--basenames" -.PD -Display only the base of each file name. -.SH "SEE ALSO" -.IX Header "SEE ALSO" -Info entries for \fIbinutils\fR. -.SH "COPYRIGHT" -.IX Header "COPYRIGHT" -Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -.PP -Permission is granted to copy, distribute and/or modify this document -under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1 -or any later version published by the Free Software Foundation; -with no Invariant Sections, with no Front-Cover Texts, and with no -Back-Cover Texts. A copy of the license is included in the -section entitled ``\s-1GNU\s0 Free Documentation License''. diff --git a/binutils/doc/ar.1 b/binutils/doc/ar.1 deleted file mode 100644 index 3e36beafc50..00000000000 --- a/binutils/doc/ar.1 +++ /dev/null @@ -1,377 +0,0 @@ -.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 -.\" -.\" 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 -.. -.de Vb \" Begin verbatim text -.ft CW -.nf -.ne \\$1 -.. -.de Ve \" End verbatim text -.ft R -.fi -.. -.\" 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 -.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' -.ie n \{\ -. ds -- \(*W- -. ds PI pi -. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch -. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch -. ds L" "" -. ds R" "" -. ds C` "" -. ds C' "" -'br\} -.el\{\ -. ds -- \|\(em\| -. ds PI \(*p -. ds L" `` -. ds R" '' -'br\} -.\" -.\" 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 -.\" 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 -.\" -.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). -.\" Fear. Run. Save yourself. No user-serviceable parts. -. \" fudge factors for nroff and troff -.if n \{\ -. ds #H 0 -. ds #V .8m -. ds #F .3m -. ds #[ \f1 -. ds #] \fP -.\} -.if t \{\ -. ds #H ((1u-(\\\\n(.fu%2u))*.13m) -. ds #V .6m -. ds #F 0 -. ds #[ \& -. ds #] \& -.\} -. \" simple accents for nroff and troff -.if n \{\ -. ds ' \& -. ds ` \& -. ds ^ \& -. ds , \& -. ds ~ ~ -. ds / -.\} -.if t \{\ -. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" -. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' -. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' -. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' -. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' -. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' -.\} -. \" troff and (daisy-wheel) nroff accents -.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' -.ds 8 \h'\*(#H'\(*b\h'-\*(#H' -.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] -.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' -.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' -.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] -.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] -.ds ae a\h'-(\w'a'u*4/10)'e -.ds Ae A\h'-(\w'A'u*4/10)'E -. \" corrections for vroff -.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' -.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' -. \" for low resolution devices (crt and lpr) -.if \n(.H>23 .if \n(.V>19 \ -\{\ -. ds : e -. ds 8 ss -. ds o a -. ds d- d\h'-1'\(ga -. ds D- D\h'-1'\(hy -. ds th \o'bp' -. ds Th \o'LP' -. ds ae ae -. ds Ae AE -.\} -.rm #[ #] #H #V #F C -.\" ======================================================================== -.\" -.IX Title "AR 1" -.TH AR 1 "2005-03-08" "binutils-2.15.96" "GNU Development Tools" -.SH "NAME" -ar \- create, modify, and extract from archives -.SH "SYNOPSIS" -.IX Header "SYNOPSIS" -ar [\fB\-X32_64\fR] [\fB\-\fR]\fIp\fR[\fImod\fR [\fIrelpos\fR] [\fIcount\fR]] \fIarchive\fR [\fImember\fR...] -.SH "DESCRIPTION" -.IX Header "DESCRIPTION" -The \s-1GNU\s0 \fBar\fR program creates, modifies, and extracts from -archives. An \fIarchive\fR is a single file holding a collection of -other files in a structure that makes it possible to retrieve -the original individual files (called \fImembers\fR of the archive). -.PP -The original files' contents, mode (permissions), timestamp, owner, and -group are preserved in the archive, and can be restored on -extraction. -.PP -\&\s-1GNU\s0 \fBar\fR can maintain archives whose members have names of any -length; however, depending on how \fBar\fR is configured on your -system, a limit on member-name length may be imposed for compatibility -with archive formats maintained with other tools. If it exists, the -limit is often 15 characters (typical of formats related to a.out) or 16 -characters (typical of formats related to coff). -.PP -\&\fBar\fR is considered a binary utility because archives of this sort -are most often used as \fIlibraries\fR holding commonly needed -subroutines. -.PP -\&\fBar\fR creates an index to the symbols defined in relocatable -object modules in the archive when you specify the modifier \fBs\fR. -Once created, this index is updated in the archive whenever \fBar\fR -makes a change to its contents (save for the \fBq\fR update operation). -An archive with such an index speeds up linking to the library, and -allows routines in the library to call each other without regard to -their placement in the archive. -.PP -You may use \fBnm \-s\fR or \fBnm \-\-print\-armap\fR to list this index -table. If an archive lacks the table, another form of \fBar\fR called -\&\fBranlib\fR can be used to add just the table. -.PP -\&\s-1GNU\s0 \fBar\fR is designed to be compatible with two different -facilities. You can control its activity using command-line options, -like the different varieties of \fBar\fR on Unix systems; or, if you -specify the single command-line option \fB\-M\fR, you can control it -with a script supplied via standard input, like the \s-1MRI\s0 ``librarian'' -program. -.SH "OPTIONS" -.IX Header "OPTIONS" -\&\s-1GNU\s0 \fBar\fR allows you to mix the operation code \fIp\fR and modifier -flags \fImod\fR in any order, within the first command-line argument. -.PP -If you wish, you may begin the first command-line argument with a -dash. -.PP -The \fIp\fR keyletter specifies what operation to execute; it may be -any of the following, but you must specify only one of them: -.IP "\fBd\fR" 4 -.IX Item "d" -\&\fIDelete\fR modules from the archive. Specify the names of modules to -be deleted as \fImember\fR...; the archive is untouched if you -specify no files to delete. -.Sp -If you specify the \fBv\fR modifier, \fBar\fR lists each module -as it is deleted. -.IP "\fBm\fR" 4 -.IX Item "m" -Use this operation to \fImove\fR members in an archive. -.Sp -The ordering of members in an archive can make a difference in how -programs are linked using the library, if a symbol is defined in more -than one member. -.Sp -If no modifiers are used with \f(CW\*(C`m\*(C'\fR, any members you name in the -\&\fImember\fR arguments are moved to the \fIend\fR of the archive; -you can use the \fBa\fR, \fBb\fR, or \fBi\fR modifiers to move them to a -specified place instead. -.IP "\fBp\fR" 4 -.IX Item "p" -\&\fIPrint\fR the specified members of the archive, to the standard -output file. If the \fBv\fR modifier is specified, show the member -name before copying its contents to standard output. -.Sp -If you specify no \fImember\fR arguments, all the files in the archive are -printed. -.IP "\fBq\fR" 4 -.IX Item "q" -\&\fIQuick append\fR; Historically, add the files \fImember\fR... to the end of -\&\fIarchive\fR, without checking for replacement. -.Sp -The modifiers \fBa\fR, \fBb\fR, and \fBi\fR do \fInot\fR affect this -operation; new members are always placed at the end of the archive. -.Sp -The modifier \fBv\fR makes \fBar\fR list each file as it is appended. -.Sp -Since the point of this operation is speed, the archive's symbol table -index is not updated, even if it already existed; you can use \fBar s\fR or -\&\fBranlib\fR explicitly to update the symbol table index. -.Sp -However, too many different systems assume quick append rebuilds the -index, so \s-1GNU\s0 \fBar\fR implements \fBq\fR as a synonym for \fBr\fR. -.IP "\fBr\fR" 4 -.IX Item "r" -Insert the files \fImember\fR... into \fIarchive\fR (with -\&\fIreplacement\fR). This operation differs from \fBq\fR in that any -previously existing members are deleted if their names match those being -added. -.Sp -If one of the files named in \fImember\fR... does not exist, \fBar\fR -displays an error message, and leaves undisturbed any existing members -of the archive matching that name. -.Sp -By default, new members are added at the end of the file; but you may -use one of the modifiers \fBa\fR, \fBb\fR, or \fBi\fR to request -placement relative to some existing member. -.Sp -The modifier \fBv\fR used with this operation elicits a line of -output for each file inserted, along with one of the letters \fBa\fR or -\&\fBr\fR to indicate whether the file was appended (no old member -deleted) or replaced. -.IP "\fBt\fR" 4 -.IX Item "t" -Display a \fItable\fR listing the contents of \fIarchive\fR, or those -of the files listed in \fImember\fR... that are present in the -archive. Normally only the member name is shown; if you also want to -see the modes (permissions), timestamp, owner, group, and size, you can -request that by also specifying the \fBv\fR modifier. -.Sp -If you do not specify a \fImember\fR, all files in the archive -are listed. -.Sp -If there is more than one file with the same name (say, \fBfie\fR) in -an archive (say \fBb.a\fR), \fBar t b.a fie\fR lists only the -first instance; to see them all, you must ask for a complete -listing\-\-\-in our example, \fBar t b.a\fR. -.IP "\fBx\fR" 4 -.IX Item "x" -\&\fIExtract\fR members (named \fImember\fR) from the archive. You can -use the \fBv\fR modifier with this operation, to request that -\&\fBar\fR list each name as it extracts it. -.Sp -If you do not specify a \fImember\fR, all files in the archive -are extracted. -.PP -A number of modifiers (\fImod\fR) may immediately follow the \fIp\fR -keyletter, to specify variations on an operation's behavior: -.IP "\fBa\fR" 4 -.IX Item "a" -Add new files \fIafter\fR an existing member of the -archive. If you use the modifier \fBa\fR, the name of an existing archive -member must be present as the \fIrelpos\fR argument, before the -\&\fIarchive\fR specification. -.IP "\fBb\fR" 4 -.IX Item "b" -Add new files \fIbefore\fR an existing member of the -archive. If you use the modifier \fBb\fR, the name of an existing archive -member must be present as the \fIrelpos\fR argument, before the -\&\fIarchive\fR specification. (same as \fBi\fR). -.IP "\fBc\fR" 4 -.IX Item "c" -\&\fICreate\fR the archive. The specified \fIarchive\fR is always -created if it did not exist, when you request an update. But a warning is -issued unless you specify in advance that you expect to create it, by -using this modifier. -.IP "\fBf\fR" 4 -.IX Item "f" -Truncate names in the archive. \s-1GNU\s0 \fBar\fR will normally permit file -names of any length. This will cause it to create archives which are -not compatible with the native \fBar\fR program on some systems. If -this is a concern, the \fBf\fR modifier may be used to truncate file -names when putting them in the archive. -.IP "\fBi\fR" 4 -.IX Item "i" -Insert new files \fIbefore\fR an existing member of the -archive. If you use the modifier \fBi\fR, the name of an existing archive -member must be present as the \fIrelpos\fR argument, before the -\&\fIarchive\fR specification. (same as \fBb\fR). -.IP "\fBl\fR" 4 -.IX Item "l" -This modifier is accepted but not used. -.IP "\fBN\fR" 4 -.IX Item "N" -Uses the \fIcount\fR parameter. This is used if there are multiple -entries in the archive with the same name. Extract or delete instance -\&\fIcount\fR of the given name from the archive. -.IP "\fBo\fR" 4 -.IX Item "o" -Preserve the \fIoriginal\fR dates of members when extracting them. If -you do not specify this modifier, files extracted from the archive -are stamped with the time of extraction. -.IP "\fBP\fR" 4 -.IX Item "P" -Use the full path name when matching names in the archive. \s-1GNU\s0 -\&\fBar\fR can not create an archive with a full path name (such archives -are not \s-1POSIX\s0 complaint), but other archive creators can. This option -will cause \s-1GNU\s0 \fBar\fR to match file names using a complete path -name, which can be convenient when extracting a single file from an -archive created by another tool. -.IP "\fBs\fR" 4 -.IX Item "s" -Write an object-file index into the archive, or update an existing one, -even if no other change is made to the archive. You may use this modifier -flag either with any operation, or alone. Running \fBar s\fR on an -archive is equivalent to running \fBranlib\fR on it. -.IP "\fBS\fR" 4 -.IX Item "S" -Do not generate an archive symbol table. This can speed up building a -large library in several steps. The resulting archive can not be used -with the linker. In order to build a symbol table, you must omit the -\&\fBS\fR modifier on the last execution of \fBar\fR, or you must run -\&\fBranlib\fR on the archive. -.IP "\fBu\fR" 4 -.IX Item "u" -Normally, \fBar r\fR... inserts all files -listed into the archive. If you would like to insert \fIonly\fR those -of the files you list that are newer than existing members of the same -names, use this modifier. The \fBu\fR modifier is allowed only for the -operation \fBr\fR (replace). In particular, the combination \fBqu\fR is -not allowed, since checking the timestamps would lose any speed -advantage from the operation \fBq\fR. -.IP "\fBv\fR" 4 -.IX Item "v" -This modifier requests the \fIverbose\fR version of an operation. Many -operations display additional information, such as filenames processed, -when the modifier \fBv\fR is appended. -.IP "\fBV\fR" 4 -.IX Item "V" -This modifier shows the version number of \fBar\fR. -.PP -\&\fBar\fR ignores an initial option spelt \fB\-X32_64\fR, for -compatibility with \s-1AIX\s0. The behaviour produced by this option is the -default for \s-1GNU\s0 \fBar\fR. \fBar\fR does not support any of the other -\&\fB\-X\fR options; in particular, it does not support \fB\-X32\fR -which is the default for \s-1AIX\s0 \fBar\fR. -.SH "SEE ALSO" -.IX Header "SEE ALSO" -\&\fInm\fR\|(1), \fIranlib\fR\|(1), and the Info entries for \fIbinutils\fR. -.SH "COPYRIGHT" -.IX Header "COPYRIGHT" -Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -.PP -Permission is granted to copy, distribute and/or modify this document -under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1 -or any later version published by the Free Software Foundation; -with no Invariant Sections, with no Front-Cover Texts, and with no -Back-Cover Texts. A copy of the license is included in the -section entitled ``\s-1GNU\s0 Free Documentation License''. diff --git a/binutils/doc/cxxfilt.man b/binutils/doc/cxxfilt.man deleted file mode 100644 index 62de3fd4faf..00000000000 --- a/binutils/doc/cxxfilt.man +++ /dev/null @@ -1,276 +0,0 @@ -.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 -.\" -.\" 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 -.. -.de Vb \" Begin verbatim text -.ft CW -.nf -.ne \\$1 -.. -.de Ve \" End verbatim text -.ft R -.fi -.. -.\" 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 -.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' -.ie n \{\ -. ds -- \(*W- -. ds PI pi -. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch -. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch -. ds L" "" -. ds R" "" -. ds C` "" -. ds C' "" -'br\} -.el\{\ -. ds -- \|\(em\| -. ds PI \(*p -. ds L" `` -. ds R" '' -'br\} -.\" -.\" 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 -.\" 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 -.\" -.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). -.\" Fear. Run. Save yourself. No user-serviceable parts. -. \" fudge factors for nroff and troff -.if n \{\ -. ds #H 0 -. ds #V .8m -. ds #F .3m -. ds #[ \f1 -. ds #] \fP -.\} -.if t \{\ -. ds #H ((1u-(\\\\n(.fu%2u))*.13m) -. ds #V .6m -. ds #F 0 -. ds #[ \& -. ds #] \& -.\} -. \" simple accents for nroff and troff -.if n \{\ -. ds ' \& -. ds ` \& -. ds ^ \& -. ds , \& -. ds ~ ~ -. ds / -.\} -.if t \{\ -. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" -. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' -. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' -. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' -. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' -. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' -.\} -. \" troff and (daisy-wheel) nroff accents -.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' -.ds 8 \h'\*(#H'\(*b\h'-\*(#H' -.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] -.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' -.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' -.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] -.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] -.ds ae a\h'-(\w'a'u*4/10)'e -.ds Ae A\h'-(\w'A'u*4/10)'E -. \" corrections for vroff -.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' -.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' -. \" for low resolution devices (crt and lpr) -.if \n(.H>23 .if \n(.V>19 \ -\{\ -. ds : e -. ds 8 ss -. ds o a -. ds d- d\h'-1'\(ga -. ds D- D\h'-1'\(hy -. ds th \o'bp' -. ds Th \o'LP' -. ds ae ae -. ds Ae AE -.\} -.rm #[ #] #H #V #F C -.\" ======================================================================== -.\" -.IX Title "C++FILT 1" -.TH C++FILT 1 "2005-03-08" "binutils-2.15.96" "GNU Development Tools" -.SH "NAME" -cxxfilt \- Demangle C++ and Java symbols. -.SH "SYNOPSIS" -.IX Header "SYNOPSIS" -c++filt [\fB\-_\fR|\fB\-\-strip\-underscores\fR] - [\fB\-j\fR|\fB\-\-java\fR] - [\fB\-n\fR|\fB\-\-no\-strip\-underscores\fR] - [\fB\-p\fR|\fB\-\-no\-params\fR] - [\fB\-s\fR \fIformat\fR|\fB\-\-format=\fR\fIformat\fR] - [\fB\-\-help\fR] [\fB\-\-version\fR] [\fIsymbol\fR...] -.SH "DESCRIPTION" -.IX Header "DESCRIPTION" -The \*(C+ and Java languages provides function overloading, which means -that you can write many functions with the same name (providing each -takes parameters of different types). All \*(C+ and Java function names -are encoded into a low-level assembly label (this process is known as -\&\fImangling\fR). The \fBc++filt\fR -[1] -program does the inverse mapping: it decodes (\fIdemangles\fR) low-level -names into user-level names so that the linker can keep these overloaded -functions from clashing. -.PP -Every alphanumeric word (consisting of letters, digits, underscores, -dollars, or periods) seen in the input is a potential label. If the -label decodes into a \*(C+ name, the \*(C+ name replaces the low-level -name in the output. -.PP -You can use \fBc++filt\fR to decipher individual symbols: -.PP -.Vb 1 -\& c++filt -.Ve -.PP -If no \fIsymbol\fR arguments are given, \fBc++filt\fR reads symbol -names from the standard input and writes the demangled names to the -standard output. All results are printed on the standard output. -.SH "OPTIONS" -.IX Header "OPTIONS" -.IP "\fB\-_\fR" 4 -.IX Item "-_" -.PD 0 -.IP "\fB\-\-strip\-underscores\fR" 4 -.IX Item "--strip-underscores" -.PD -On some systems, both the C and \*(C+ compilers put an underscore in front -of every name. For example, the C name \f(CW\*(C`foo\*(C'\fR gets the low-level -name \f(CW\*(C`_foo\*(C'\fR. This option removes the initial underscore. Whether -\&\fBc++filt\fR removes the underscore by default is target dependent. -.IP "\fB\-j\fR" 4 -.IX Item "-j" -.PD 0 -.IP "\fB\-\-java\fR" 4 -.IX Item "--java" -.PD -Prints demangled names using Java syntax. The default is to use \*(C+ -syntax. -.IP "\fB\-n\fR" 4 -.IX Item "-n" -.PD 0 -.IP "\fB\-\-no\-strip\-underscores\fR" 4 -.IX Item "--no-strip-underscores" -.PD -Do not remove the initial underscore. -.IP "\fB\-p\fR" 4 -.IX Item "-p" -.PD 0 -.IP "\fB\-\-no\-params\fR" 4 -.IX Item "--no-params" -.PD -When demangling the name of a function, do not display the types of -the function's parameters. -.IP "\fB\-s\fR \fIformat\fR" 4 -.IX Item "-s format" -.PD 0 -.IP "\fB\-\-format=\fR\fIformat\fR" 4 -.IX Item "--format=format" -.PD -\&\fBc++filt\fR can decode various methods of mangling, used by -different compilers. The argument to this option selects which -method it uses: -.RS 4 -.ie n .IP """auto""" 4 -.el .IP "\f(CWauto\fR" 4 -.IX Item "auto" -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++) -.ie n .IP """lucid""" 4 -.el .IP "\f(CWlucid\fR" 4 -.IX Item "lucid" -the one used by the Lucid compiler (lcc) -.ie n .IP """arm""" 4 -.el .IP "\f(CWarm\fR" 4 -.IX Item "arm" -the one specified by the \*(C+ Annotated Reference Manual -.ie n .IP """hp""" 4 -.el .IP "\f(CWhp\fR" 4 -.IX Item "hp" -the one used by the \s-1HP\s0 compiler (aCC) -.ie n .IP """edg""" 4 -.el .IP "\f(CWedg\fR" 4 -.IX Item "edg" -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. -.ie n .IP """java""" 4 -.el .IP "\f(CWjava\fR" 4 -.IX Item "java" -the one used by the \s-1GNU\s0 Java compiler (gcj) -.ie n .IP """gnat""" 4 -.el .IP "\f(CWgnat\fR" 4 -.IX Item "gnat" -the one used by the \s-1GNU\s0 Ada compiler (\s-1GNAT\s0). -.RE -.RS 4 -.RE -.IP "\fB\-\-help\fR" 4 -.IX Item "--help" -Print a summary of the options to \fBc++filt\fR and exit. -.IP "\fB\-\-version\fR" 4 -.IX Item "--version" -Print the version number of \fBc++filt\fR and exit. -.SH "FOOTNOTES" -.IX Header "FOOTNOTES" -.IP "1." 4 -MS-DOS does not allow \f(CW\*(C`+\*(C'\fR characters in file names, so on -MS-DOS this program is named \fB\s-1CXXFILT\s0\fR. -.SH "SEE ALSO" -.IX Header "SEE ALSO" -the Info entries for \fIbinutils\fR. -.SH "COPYRIGHT" -.IX Header "COPYRIGHT" -Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -.PP -Permission is granted to copy, distribute and/or modify this document -under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1 -or any later version published by the Free Software Foundation; -with no Invariant Sections, with no Front-Cover Texts, and with no -Back-Cover Texts. A copy of the license is included in the -section entitled ``\s-1GNU\s0 Free Documentation License''. diff --git a/binutils/doc/dlltool.1 b/binutils/doc/dlltool.1 deleted file mode 100644 index 4f130719f47..00000000000 --- a/binutils/doc/dlltool.1 +++ /dev/null @@ -1,457 +0,0 @@ -.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 -.\" -.\" 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 -.. -.de Vb \" Begin verbatim text -.ft CW -.nf -.ne \\$1 -.. -.de Ve \" End verbatim text -.ft R -.fi -.. -.\" 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 -.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' -.ie n \{\ -. ds -- \(*W- -. ds PI pi -. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch -. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch -. ds L" "" -. ds R" "" -. ds C` "" -. ds C' "" -'br\} -.el\{\ -. ds -- \|\(em\| -. ds PI \(*p -. ds L" `` -. ds R" '' -'br\} -.\" -.\" 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 -.\" 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 -.\" -.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). -.\" Fear. Run. Save yourself. No user-serviceable parts. -. \" fudge factors for nroff and troff -.if n \{\ -. ds #H 0 -. ds #V .8m -. ds #F .3m -. ds #[ \f1 -. ds #] \fP -.\} -.if t \{\ -. ds #H ((1u-(\\\\n(.fu%2u))*.13m) -. ds #V .6m -. ds #F 0 -. ds #[ \& -. ds #] \& -.\} -. \" simple accents for nroff and troff -.if n \{\ -. ds ' \& -. ds ` \& -. ds ^ \& -. ds , \& -. ds ~ ~ -. ds / -.\} -.if t \{\ -. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" -. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' -. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' -. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' -. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' -. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' -.\} -. \" troff and (daisy-wheel) nroff accents -.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' -.ds 8 \h'\*(#H'\(*b\h'-\*(#H' -.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] -.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' -.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' -.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] -.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] -.ds ae a\h'-(\w'a'u*4/10)'e -.ds Ae A\h'-(\w'A'u*4/10)'E -. \" corrections for vroff -.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' -.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' -. \" for low resolution devices (crt and lpr) -.if \n(.H>23 .if \n(.V>19 \ -\{\ -. ds : e -. ds 8 ss -. ds o a -. ds d- d\h'-1'\(ga -. ds D- D\h'-1'\(hy -. ds th \o'bp' -. ds Th \o'LP' -. ds ae ae -. ds Ae AE -.\} -.rm #[ #] #H #V #F C -.\" ======================================================================== -.\" -.IX Title "DLLTOOL 1" -.TH DLLTOOL 1 "2005-03-08" "binutils-2.15.96" "GNU Development Tools" -.SH "NAME" -dlltool \- Create files needed to build and use DLLs. -.SH "SYNOPSIS" -.IX Header "SYNOPSIS" -dlltool [\fB\-d\fR|\fB\-\-input\-def\fR \fIdef-file-name\fR] - [\fB\-b\fR|\fB\-\-base\-file\fR \fIbase-file-name\fR] - [\fB\-e\fR|\fB\-\-output\-exp\fR \fIexports-file-name\fR] - [\fB\-z\fR|\fB\-\-output\-def\fR \fIdef-file-name\fR] - [\fB\-l\fR|\fB\-\-output\-lib\fR \fIlibrary-file-name\fR] - [\fB\-\-export\-all\-symbols\fR] [\fB\-\-no\-export\-all\-symbols\fR] - [\fB\-\-exclude\-symbols\fR \fIlist\fR] - [\fB\-\-no\-default\-excludes\fR] - [\fB\-S\fR|\fB\-\-as\fR \fIpath-to-assembler\fR] [\fB\-f\fR|\fB\-\-as\-flags\fR \fIoptions\fR] - [\fB\-D\fR|\fB\-\-dllname\fR \fIname\fR] [\fB\-m\fR|\fB\-\-machine\fR \fImachine\fR] - [\fB\-a\fR|\fB\-\-add\-indirect\fR] [\fB\-U\fR|\fB\-\-add\-underscore\fR] [\fB\-k\fR|\fB\-\-kill\-at\fR] - [\fB\-A\fR|\fB\-\-add\-stdcall\-alias\fR] - [\fB\-p\fR|\fB\-\-ext\-prefix\-alias\fR \fIprefix\fR] - [\fB\-x\fR|\fB\-\-no\-idata4\fR] [\fB\-c\fR|\fB\-\-no\-idata5\fR] [\fB\-i\fR|\fB\-\-interwork\fR] - [\fB\-n\fR|\fB\-\-nodelete\fR] [\fB\-t\fR|\fB\-\-temp\-prefix\fR \fIprefix\fR] - [\fB\-v\fR|\fB\-\-verbose\fR] - [\fB\-h\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR] - [object\-file ...] -.SH "DESCRIPTION" -.IX Header "DESCRIPTION" -\&\fBdlltool\fR reads its inputs, which can come from the \fB\-d\fR and -\&\fB\-b\fR options as well as object files specified on the command -line. It then processes these inputs and if the \fB\-e\fR option has -been specified it creates a exports file. If the \fB\-l\fR option -has been specified it creates a library file and if the \fB\-z\fR option -has been specified it creates a def file. Any or all of the \fB\-e\fR, -\&\fB\-l\fR and \fB\-z\fR options can be present in one invocation of -dlltool. -.PP -When creating a \s-1DLL\s0, along with the source for the \s-1DLL\s0, it is necessary -to have three other files. \fBdlltool\fR can help with the creation of -these files. -.PP -The first file is a \fI.def\fR file which specifies which functions are -exported from the \s-1DLL\s0, which functions the \s-1DLL\s0 imports, and so on. This -is a text file and can be created by hand, or \fBdlltool\fR can be used -to create it using the \fB\-z\fR option. In this case \fBdlltool\fR -will scan the object files specified on its command line looking for -those functions which have been specially marked as being exported and -put entries for them in the \fI.def\fR file it creates. -.PP -In order to mark a function as being exported from a \s-1DLL\s0, it needs to -have an \fB\-export:\fR entry in the \fB.drectve\fR -section of the object file. This can be done in C by using the -\&\fIasm()\fR operator: -.PP -.Vb 2 -\& asm (".section .drectve"); -\& asm (".ascii \e"-export:my_func\e""); -.Ve -.PP -.Vb 1 -\& int my_func (void) { ... } -.Ve -.PP -The second file needed for \s-1DLL\s0 creation is an exports file. This file -is linked with the object files that make up the body of the \s-1DLL\s0 and it -handles the interface between the \s-1DLL\s0 and the outside world. This is a -binary file and it can be created by giving the \fB\-e\fR option to -\&\fBdlltool\fR when it is creating or reading in a \fI.def\fR file. -.PP -The third file needed for \s-1DLL\s0 creation is the library file that programs -will link with in order to access the functions in the \s-1DLL\s0. This file -can be created by giving the \fB\-l\fR option to dlltool when it -is creating or reading in a \fI.def\fR file. -.PP -\&\fBdlltool\fR builds the library file by hand, but it builds the -exports file by creating temporary files containing assembler statements -and then assembling these. The \fB\-S\fR command line option can be -used to specify the path to the assembler that dlltool will use, -and the \fB\-f\fR option can be used to pass specific flags to that -assembler. The \fB\-n\fR can be used to prevent dlltool from deleting -these temporary assembler files when it is done, and if \fB\-n\fR is -specified twice then this will prevent dlltool from deleting the -temporary object files it used to build the library. -.PP -Here is an example of creating a \s-1DLL\s0 from a source file \fBdll.c\fR and -also creating a program (from an object file called \fBprogram.o\fR) -that uses that \s-1DLL:\s0 -.PP -.Vb 4 -\& gcc -c dll.c -\& dlltool -e exports.o -l dll.lib dll.o -\& gcc dll.o exports.o -o dll.dll -\& gcc program.o dll.lib -o program -.Ve -.SH "OPTIONS" -.IX Header "OPTIONS" -The command line options have the following meanings: -.IP "\fB\-d\fR \fIfilename\fR" 4 -.IX Item "-d filename" -.PD 0 -.IP "\fB\-\-input\-def\fR \fIfilename\fR" 4 -.IX Item "--input-def filename" -.PD -Specifies the name of a \fI.def\fR file to be read in and processed. -.IP "\fB\-b\fR \fIfilename\fR" 4 -.IX Item "-b filename" -.PD 0 -.IP "\fB\-\-base\-file\fR \fIfilename\fR" 4 -.IX Item "--base-file filename" -.PD -Specifies the name of a base file to be read in and processed. The -contents of this file will be added to the relocation section in the -exports file generated by dlltool. -.IP "\fB\-e\fR \fIfilename\fR" 4 -.IX Item "-e filename" -.PD 0 -.IP "\fB\-\-output\-exp\fR \fIfilename\fR" 4 -.IX Item "--output-exp filename" -.PD -Specifies the name of the export file to be created by dlltool. -.IP "\fB\-z\fR \fIfilename\fR" 4 -.IX Item "-z filename" -.PD 0 -.IP "\fB\-\-output\-def\fR \fIfilename\fR" 4 -.IX Item "--output-def filename" -.PD -Specifies the name of the \fI.def\fR file to be created by dlltool. -.IP "\fB\-l\fR \fIfilename\fR" 4 -.IX Item "-l filename" -.PD 0 -.IP "\fB\-\-output\-lib\fR \fIfilename\fR" 4 -.IX Item "--output-lib filename" -.PD -Specifies the name of the library file to be created by dlltool. -.IP "\fB\-\-export\-all\-symbols\fR" 4 -.IX Item "--export-all-symbols" -Treat all global and weak defined symbols found in the input object -files as symbols to be exported. There is a small list of symbols which -are not exported by default; see the \fB\-\-no\-default\-excludes\fR -option. You may add to the list of symbols to not export by using the -\&\fB\-\-exclude\-symbols\fR option. -.IP "\fB\-\-no\-export\-all\-symbols\fR" 4 -.IX Item "--no-export-all-symbols" -Only export symbols explicitly listed in an input \fI.def\fR file or in -\&\fB.drectve\fR sections in the input object files. This is the default -behaviour. The \fB.drectve\fR sections are created by \fBdllexport\fR -attributes in the source code. -.IP "\fB\-\-exclude\-symbols\fR \fIlist\fR" 4 -.IX Item "--exclude-symbols list" -Do not export the symbols in \fIlist\fR. This is a list of symbol names -separated by comma or colon characters. The symbol names should not -contain a leading underscore. This is only meaningful when -\&\fB\-\-export\-all\-symbols\fR is used. -.IP "\fB\-\-no\-default\-excludes\fR" 4 -.IX Item "--no-default-excludes" -When \fB\-\-export\-all\-symbols\fR is used, it will by default avoid -exporting certain special symbols. The current list of symbols to avoid -exporting is \fBDllMain@12\fR, \fBDllEntryPoint@0\fR, -\&\fBimpure_ptr\fR. You may use the \fB\-\-no\-default\-excludes\fR option -to go ahead and export these special symbols. This is only meaningful -when \fB\-\-export\-all\-symbols\fR is used. -.IP "\fB\-S\fR \fIpath\fR" 4 -.IX Item "-S path" -.PD 0 -.IP "\fB\-\-as\fR \fIpath\fR" 4 -.IX Item "--as path" -.PD -Specifies the path, including the filename, of the assembler to be used -to create the exports file. -.IP "\fB\-f\fR \fIoptions\fR" 4 -.IX Item "-f options" -.PD 0 -.IP "\fB\-\-as\-flags\fR \fIoptions\fR" 4 -.IX Item "--as-flags options" -.PD -Specifies any specific command line options to be passed to the -assembler when building the exports file. This option will work even if -the \fB\-S\fR option is not used. This option only takes one argument, -and if it occurs more than once on the command line, then later -occurrences will override earlier occurrences. So if it is necessary to -pass multiple options to the assembler they should be enclosed in -double quotes. -.IP "\fB\-D\fR \fIname\fR" 4 -.IX Item "-D name" -.PD 0 -.IP "\fB\-\-dll\-name\fR \fIname\fR" 4 -.IX Item "--dll-name name" -.PD -Specifies the name to be stored in the \fI.def\fR file as the name of -the \s-1DLL\s0 when the \fB\-e\fR option is used. If this option is not -present, then the filename given to the \fB\-e\fR option will be -used as the name of the \s-1DLL\s0. -.IP "\fB\-m\fR \fImachine\fR" 4 -.IX Item "-m machine" -.PD 0 -.IP "\fB\-machine\fR \fImachine\fR" 4 -.IX Item "-machine machine" -.PD -Specifies the type of machine for which the library file should be -built. \fBdlltool\fR has a built in default type, depending upon how -it was created, but this option can be used to override that. This is -normally only useful when creating DLLs for an \s-1ARM\s0 processor, when the -contents of the \s-1DLL\s0 are actually encode using Thumb instructions. -.IP "\fB\-a\fR" 4 -.IX Item "-a" -.PD 0 -.IP "\fB\-\-add\-indirect\fR" 4 -.IX Item "--add-indirect" -.PD -Specifies that when \fBdlltool\fR is creating the exports file it -should add a section which allows the exported functions to be -referenced without using the import library. Whatever the hell that -means! -.IP "\fB\-U\fR" 4 -.IX Item "-U" -.PD 0 -.IP "\fB\-\-add\-underscore\fR" 4 -.IX Item "--add-underscore" -.PD -Specifies that when \fBdlltool\fR is creating the exports file it -should prepend an underscore to the names of the exported functions. -.IP "\fB\-k\fR" 4 -.IX Item "-k" -.PD 0 -.IP "\fB\-\-kill\-at\fR" 4 -.IX Item "--kill-at" -.PD -Specifies that when \fBdlltool\fR is creating the exports file it -should not append the string \fB@ \fR. These numbers are -called ordinal numbers and they represent another way of accessing the -function in a \s-1DLL\s0, other than by name. -.IP "\fB\-A\fR" 4 -.IX Item "-A" -.PD 0 -.IP "\fB\-\-add\-stdcall\-alias\fR" 4 -.IX Item "--add-stdcall-alias" -.PD -Specifies that when \fBdlltool\fR is creating the exports file it -should add aliases for stdcall symbols without \fB@ \fR -in addition to the symbols with \fB@ \fR. -.IP "\fB\-p\fR" 4 -.IX Item "-p" -.PD 0 -.IP "\fB\-\-ext\-prefix\-alias\fR \fIprefix\fR" 4 -.IX Item "--ext-prefix-alias prefix" -.PD -Causes \fBdlltool\fR to create external aliases for all \s-1DLL\s0 -imports with the specified prefix. The aliases are created for both -external and import symbols with no leading underscore. -.IP "\fB\-x\fR" 4 -.IX Item "-x" -.PD 0 -.IP "\fB\-\-no\-idata4\fR" 4 -.IX Item "--no-idata4" -.PD -Specifies that when \fBdlltool\fR is creating the exports and library -files it should omit the \f(CW\*(C`.idata4\*(C'\fR section. This is for compatibility -with certain operating systems. -.IP "\fB\-c\fR" 4 -.IX Item "-c" -.PD 0 -.IP "\fB\-\-no\-idata5\fR" 4 -.IX Item "--no-idata5" -.PD -Specifies that when \fBdlltool\fR is creating the exports and library -files it should omit the \f(CW\*(C`.idata5\*(C'\fR section. This is for compatibility -with certain operating systems. -.IP "\fB\-i\fR" 4 -.IX Item "-i" -.PD 0 -.IP "\fB\-\-interwork\fR" 4 -.IX Item "--interwork" -.PD -Specifies that \fBdlltool\fR should mark the objects in the library -file and exports file that it produces as supporting interworking -between \s-1ARM\s0 and Thumb code. -.IP "\fB\-n\fR" 4 -.IX Item "-n" -.PD 0 -.IP "\fB\-\-nodelete\fR" 4 -.IX Item "--nodelete" -.PD -Makes \fBdlltool\fR preserve the temporary assembler files it used to -create the exports file. If this option is repeated then dlltool will -also preserve the temporary object files it uses to create the library -file. -.IP "\fB\-t\fR \fIprefix\fR" 4 -.IX Item "-t prefix" -.PD 0 -.IP "\fB\-\-temp\-prefix\fR \fIprefix\fR" 4 -.IX Item "--temp-prefix prefix" -.PD -Makes \fBdlltool\fR use \fIprefix\fR when constructing the names of -temporary assembler and object files. By default, the temp file prefix -is generated from the pid. -.IP "\fB\-v\fR" 4 -.IX Item "-v" -.PD 0 -.IP "\fB\-\-verbose\fR" 4 -.IX Item "--verbose" -.PD -Make dlltool describe what it is doing. -.IP "\fB\-h\fR" 4 -.IX Item "-h" -.PD 0 -.IP "\fB\-\-help\fR" 4 -.IX Item "--help" -.PD -Displays a list of command line options and then exits. -.IP "\fB\-V\fR" 4 -.IX Item "-V" -.PD 0 -.IP "\fB\-\-version\fR" 4 -.IX Item "--version" -.PD -Displays dlltool's version number and then exits. -.SH "SEE ALSO" -.IX Header "SEE ALSO" -The Info pages for \fIbinutils\fR. -.SH "COPYRIGHT" -.IX Header "COPYRIGHT" -Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -.PP -Permission is granted to copy, distribute and/or modify this document -under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1 -or any later version published by the Free Software Foundation; -with no Invariant Sections, with no Front-Cover Texts, and with no -Back-Cover Texts. A copy of the license is included in the -section entitled ``\s-1GNU\s0 Free Documentation License''. diff --git a/binutils/doc/nlmconv.1 b/binutils/doc/nlmconv.1 deleted file mode 100644 index 38e1bbfd4cb..00000000000 --- a/binutils/doc/nlmconv.1 +++ /dev/null @@ -1,230 +0,0 @@ -.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 -.\" -.\" 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 -.. -.de Vb \" Begin verbatim text -.ft CW -.nf -.ne \\$1 -.. -.de Ve \" End verbatim text -.ft R -.fi -.. -.\" 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 -.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' -.ie n \{\ -. ds -- \(*W- -. ds PI pi -. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch -. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch -. ds L" "" -. ds R" "" -. ds C` "" -. ds C' "" -'br\} -.el\{\ -. ds -- \|\(em\| -. ds PI \(*p -. ds L" `` -. ds R" '' -'br\} -.\" -.\" 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 -.\" 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 -.\" -.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). -.\" Fear. Run. Save yourself. No user-serviceable parts. -. \" fudge factors for nroff and troff -.if n \{\ -. ds #H 0 -. ds #V .8m -. ds #F .3m -. ds #[ \f1 -. ds #] \fP -.\} -.if t \{\ -. ds #H ((1u-(\\\\n(.fu%2u))*.13m) -. ds #V .6m -. ds #F 0 -. ds #[ \& -. ds #] \& -.\} -. \" simple accents for nroff and troff -.if n \{\ -. ds ' \& -. ds ` \& -. ds ^ \& -. ds , \& -. ds ~ ~ -. ds / -.\} -.if t \{\ -. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" -. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' -. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' -. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' -. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' -. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' -.\} -. \" troff and (daisy-wheel) nroff accents -.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' -.ds 8 \h'\*(#H'\(*b\h'-\*(#H' -.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] -.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' -.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' -.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] -.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] -.ds ae a\h'-(\w'a'u*4/10)'e -.ds Ae A\h'-(\w'A'u*4/10)'E -. \" corrections for vroff -.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' -.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' -. \" for low resolution devices (crt and lpr) -.if \n(.H>23 .if \n(.V>19 \ -\{\ -. ds : e -. ds 8 ss -. ds o a -. ds d- d\h'-1'\(ga -. ds D- D\h'-1'\(hy -. ds th \o'bp' -. ds Th \o'LP' -. ds ae ae -. ds Ae AE -.\} -.rm #[ #] #H #V #F C -.\" ======================================================================== -.\" -.IX Title "NLMCONV 1" -.TH NLMCONV 1 "2005-03-08" "binutils-2.15.96" "GNU Development Tools" -.SH "NAME" -nlmconv \- converts object code into an NLM. -.SH "SYNOPSIS" -.IX Header "SYNOPSIS" -nlmconv [\fB\-I\fR \fIbfdname\fR|\fB\-\-input\-target=\fR\fIbfdname\fR] - [\fB\-O\fR \fIbfdname\fR|\fB\-\-output\-target=\fR\fIbfdname\fR] - [\fB\-T\fR \fIheaderfile\fR|\fB\-\-header\-file=\fR\fIheaderfile\fR] - [\fB\-d\fR|\fB\-\-debug\fR] [\fB\-l\fR \fIlinker\fR|\fB\-\-linker=\fR\fIlinker\fR] - [\fB\-h\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR] - \fIinfile\fR \fIoutfile\fR -.SH "DESCRIPTION" -.IX Header "DESCRIPTION" -\&\fBnlmconv\fR converts the relocatable \fBi386\fR object file -\&\fIinfile\fR into the NetWare Loadable Module \fIoutfile\fR, optionally -reading \fIheaderfile\fR for \s-1NLM\s0 header information. For instructions -on writing the \s-1NLM\s0 command file language used in header files, see the -\&\fBlinkers\fR section, \fB\s-1NLMLINK\s0\fR in particular, of the \fI\s-1NLM\s0 -Development and Tools Overview\fR, which is part of the \s-1NLM\s0 Software -Developer's Kit (``\s-1NLM\s0 \s-1SDK\s0''), available from Novell, Inc. -\&\fBnlmconv\fR uses the \s-1GNU\s0 Binary File Descriptor library to read -\&\fIinfile\fR; -.PP -\&\fBnlmconv\fR can perform a link step. In other words, you can list -more than one object file for input if you list them in the definitions -file (rather than simply specifying one input file on the command line). -In this case, \fBnlmconv\fR calls the linker for you. -.SH "OPTIONS" -.IX Header "OPTIONS" -.IP "\fB\-I\fR \fIbfdname\fR" 4 -.IX Item "-I bfdname" -.PD 0 -.IP "\fB\-\-input\-target=\fR\fIbfdname\fR" 4 -.IX Item "--input-target=bfdname" -.PD -Object format of the input file. \fBnlmconv\fR can usually determine -the format of a given file (so no default is necessary). -.IP "\fB\-O\fR \fIbfdname\fR" 4 -.IX Item "-O bfdname" -.PD 0 -.IP "\fB\-\-output\-target=\fR\fIbfdname\fR" 4 -.IX Item "--output-target=bfdname" -.PD -Object format of the output file. \fBnlmconv\fR infers the output -format based on the input format, e.g. for a \fBi386\fR input file the -output format is \fBnlm32\-i386\fR. -.IP "\fB\-T\fR \fIheaderfile\fR" 4 -.IX Item "-T headerfile" -.PD 0 -.IP "\fB\-\-header\-file=\fR\fIheaderfile\fR" 4 -.IX Item "--header-file=headerfile" -.PD -Reads \fIheaderfile\fR for \s-1NLM\s0 header information. For instructions on -writing the \s-1NLM\s0 command file language used in header files, see see the -\&\fBlinkers\fR section, of the \fI\s-1NLM\s0 Development and Tools -Overview\fR, which is part of the \s-1NLM\s0 Software Developer's Kit, available -from Novell, Inc. -.IP "\fB\-d\fR" 4 -.IX Item "-d" -.PD 0 -.IP "\fB\-\-debug\fR" 4 -.IX Item "--debug" -.PD -Displays (on standard error) the linker command line used by \fBnlmconv\fR. -.IP "\fB\-l\fR \fIlinker\fR" 4 -.IX Item "-l linker" -.PD 0 -.IP "\fB\-\-linker=\fR\fIlinker\fR" 4 -.IX Item "--linker=linker" -.PD -Use \fIlinker\fR for any linking. \fIlinker\fR can be an absolute or a -relative pathname. -.IP "\fB\-h\fR" 4 -.IX Item "-h" -.PD 0 -.IP "\fB\-\-help\fR" 4 -.IX Item "--help" -.PD -Prints a usage summary. -.IP "\fB\-V\fR" 4 -.IX Item "-V" -.PD 0 -.IP "\fB\-\-version\fR" 4 -.IX Item "--version" -.PD -Prints the version number for \fBnlmconv\fR. -.SH "SEE ALSO" -.IX Header "SEE ALSO" -the Info entries for \fIbinutils\fR. -.SH "COPYRIGHT" -.IX Header "COPYRIGHT" -Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -.PP -Permission is granted to copy, distribute and/or modify this document -under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1 -or any later version published by the Free Software Foundation; -with no Invariant Sections, with no Front-Cover Texts, and with no -Back-Cover Texts. A copy of the license is included in the -section entitled ``\s-1GNU\s0 Free Documentation License''. diff --git a/binutils/doc/nm.1 b/binutils/doc/nm.1 deleted file mode 100644 index f2698b19978..00000000000 --- a/binutils/doc/nm.1 +++ /dev/null @@ -1,436 +0,0 @@ -.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 -.\" -.\" 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 -.. -.de Vb \" Begin verbatim text -.ft CW -.nf -.ne \\$1 -.. -.de Ve \" End verbatim text -.ft R -.fi -.. -.\" 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 -.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' -.ie n \{\ -. ds -- \(*W- -. ds PI pi -. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch -. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch -. ds L" "" -. ds R" "" -. ds C` "" -. ds C' "" -'br\} -.el\{\ -. ds -- \|\(em\| -. ds PI \(*p -. ds L" `` -. ds R" '' -'br\} -.\" -.\" 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 -.\" 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 -.\" -.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). -.\" Fear. Run. Save yourself. No user-serviceable parts. -. \" fudge factors for nroff and troff -.if n \{\ -. ds #H 0 -. ds #V .8m -. ds #F .3m -. ds #[ \f1 -. ds #] \fP -.\} -.if t \{\ -. ds #H ((1u-(\\\\n(.fu%2u))*.13m) -. ds #V .6m -. ds #F 0 -. ds #[ \& -. ds #] \& -.\} -. \" simple accents for nroff and troff -.if n \{\ -. ds ' \& -. ds ` \& -. ds ^ \& -. ds , \& -. ds ~ ~ -. ds / -.\} -.if t \{\ -. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" -. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' -. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' -. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' -. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' -. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' -.\} -. \" troff and (daisy-wheel) nroff accents -.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' -.ds 8 \h'\*(#H'\(*b\h'-\*(#H' -.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] -.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' -.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' -.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] -.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] -.ds ae a\h'-(\w'a'u*4/10)'e -.ds Ae A\h'-(\w'A'u*4/10)'E -. \" corrections for vroff -.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' -.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' -. \" for low resolution devices (crt and lpr) -.if \n(.H>23 .if \n(.V>19 \ -\{\ -. ds : e -. ds 8 ss -. ds o a -. ds d- d\h'-1'\(ga -. ds D- D\h'-1'\(hy -. ds th \o'bp' -. ds Th \o'LP' -. ds ae ae -. ds Ae AE -.\} -.rm #[ #] #H #V #F C -.\" ======================================================================== -.\" -.IX Title "NM 1" -.TH NM 1 "2005-03-08" "binutils-2.15.96" "GNU Development Tools" -.SH "NAME" -nm \- list symbols from object files -.SH "SYNOPSIS" -.IX Header "SYNOPSIS" -nm [\fB\-a\fR|\fB\-\-debug\-syms\fR] [\fB\-g\fR|\fB\-\-extern\-only\fR] - [\fB\-B\fR] [\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR]] [\fB\-D\fR|\fB\-\-dynamic\fR] - [\fB\-S\fR|\fB\-\-print\-size\fR] [\fB\-s\fR|\fB\-\-print\-armap\fR] - [\fB\-A\fR|\fB\-o\fR|\fB\-\-print\-file\-name\fR][\fB\-\-special\-syms\fR] - [\fB\-n\fR|\fB\-v\fR|\fB\-\-numeric\-sort\fR] [\fB\-p\fR|\fB\-\-no\-sort\fR] - [\fB\-r\fR|\fB\-\-reverse\-sort\fR] [\fB\-\-size\-sort\fR] [\fB\-u\fR|\fB\-\-undefined\-only\fR] - [\fB\-t\fR \fIradix\fR|\fB\-\-radix=\fR\fIradix\fR] [\fB\-P\fR|\fB\-\-portability\fR] - [\fB\-\-target=\fR\fIbfdname\fR] [\fB\-f\fR\fIformat\fR|\fB\-\-format=\fR\fIformat\fR] - [\fB\-\-defined\-only\fR] [\fB\-l\fR|\fB\-\-line\-numbers\fR] [\fB\-\-no\-demangle\fR] - [\fB\-V\fR|\fB\-\-version\fR] [\fB\-X 32_64\fR] [\fB\-\-help\fR] [\fIobjfile\fR...] -.SH "DESCRIPTION" -.IX Header "DESCRIPTION" -\&\s-1GNU\s0 \fBnm\fR lists the symbols from object files \fIobjfile\fR.... -If no object files are listed as arguments, \fBnm\fR assumes the file -\&\fIa.out\fR. -.PP -For each symbol, \fBnm\fR shows: -.IP "\(bu" 4 -The symbol value, in the radix selected by options (see below), or -hexadecimal by default. -.IP "\(bu" 4 -The symbol type. At least the following types are used; others are, as -well, depending on the object file format. If lowercase, the symbol is -local; if uppercase, the symbol is global (external). -.RS 4 -.ie n .IP """A""" 4 -.el .IP "\f(CWA\fR" 4 -.IX Item "A" -The symbol's value is absolute, and will not be changed by further -linking. -.ie n .IP """B""" 4 -.el .IP "\f(CWB\fR" 4 -.IX Item "B" -The symbol is in the uninitialized data section (known as \s-1BSS\s0). -.ie n .IP """C""" 4 -.el .IP "\f(CWC\fR" 4 -.IX Item "C" -The symbol is common. Common symbols are uninitialized data. When -linking, multiple common symbols may appear with the same name. If the -symbol is defined anywhere, the common symbols are treated as undefined -references. -.ie n .IP """D""" 4 -.el .IP "\f(CWD\fR" 4 -.IX Item "D" -The symbol is in the initialized data section. -.ie n .IP """G""" 4 -.el .IP "\f(CWG\fR" 4 -.IX Item "G" -The symbol is in an initialized data section for small objects. Some -object file formats permit more efficient access to small data objects, -such as a global int variable as opposed to a large global array. -.ie n .IP """I""" 4 -.el .IP "\f(CWI\fR" 4 -.IX Item "I" -The symbol is an indirect reference to another symbol. This is a \s-1GNU\s0 -extension to the a.out object file format which is rarely used. -.ie n .IP """N""" 4 -.el .IP "\f(CWN\fR" 4 -.IX Item "N" -The symbol is a debugging symbol. -.ie n .IP """R""" 4 -.el .IP "\f(CWR\fR" 4 -.IX Item "R" -The symbol is in a read only data section. -.ie n .IP """S""" 4 -.el .IP "\f(CWS\fR" 4 -.IX Item "S" -The symbol is in an uninitialized data section for small objects. -.ie n .IP """T""" 4 -.el .IP "\f(CWT\fR" 4 -.IX Item "T" -The symbol is in the text (code) section. -.ie n .IP """U""" 4 -.el .IP "\f(CWU\fR" 4 -.IX Item "U" -The symbol is undefined. -.ie n .IP """V""" 4 -.el .IP "\f(CWV\fR" 4 -.IX Item "V" -The symbol is a weak object. When a weak defined symbol is linked with -a normal defined symbol, the normal defined symbol is used with no error. -When a weak undefined symbol is linked and the symbol is not defined, -the value of the weak symbol becomes zero with no error. -.ie n .IP """W""" 4 -.el .IP "\f(CWW\fR" 4 -.IX Item "W" -The symbol is a weak symbol that has not been specifically tagged as a -weak object symbol. When a weak defined symbol is linked with a normal -defined symbol, the normal defined symbol is used with no error. -When a weak undefined symbol is linked and the symbol is not defined, -the value of the symbol is determined in a system-specific manner without -error. On some systems, uppercase indicates that a default value has been -specified. -.ie n .IP """\-""" 4 -.el .IP "\f(CW\-\fR" 4 -.IX Item "-" -The symbol is a stabs symbol in an a.out object file. In this case, the -next values printed are the stabs other field, the stabs desc field, and -the stab type. Stabs symbols are used to hold debugging information. -.ie n .IP """?""" 4 -.el .IP "\f(CW?\fR" 4 -.IX Item "?" -The symbol type is unknown, or object file format specific. -.RE -.RS 4 -.RE -.IP "\(bu" 4 -The symbol name. -.SH "OPTIONS" -.IX Header "OPTIONS" -The long and short forms of options, shown here as alternatives, are -equivalent. -.IP "\fB\-A\fR" 4 -.IX Item "-A" -.PD 0 -.IP "\fB\-o\fR" 4 -.IX Item "-o" -.IP "\fB\-\-print\-file\-name\fR" 4 -.IX Item "--print-file-name" -.PD -Precede each symbol by the name of the input file (or archive member) -in which it was found, rather than identifying the input file once only, -before all of its symbols. -.IP "\fB\-a\fR" 4 -.IX Item "-a" -.PD 0 -.IP "\fB\-\-debug\-syms\fR" 4 -.IX Item "--debug-syms" -.PD -Display all symbols, even debugger-only symbols; normally these are not -listed. -.IP "\fB\-B\fR" 4 -.IX Item "-B" -The same as \fB\-\-format=bsd\fR (for compatibility with the \s-1MIPS\s0 \fBnm\fR). -.IP "\fB\-C\fR" 4 -.IX Item "-C" -.PD 0 -.IP "\fB\-\-demangle[=\fR\fIstyle\fR\fB]\fR" 4 -.IX Item "--demangle[=style]" -.PD -Decode (\fIdemangle\fR) low-level symbol names into user-level names. -Besides removing any initial underscore prepended by the system, this -makes \*(C+ function names readable. Different compilers have different -mangling styles. The optional demangling style argument can be used to -choose an appropriate demangling style for your compiler. -.IP "\fB\-\-no\-demangle\fR" 4 -.IX Item "--no-demangle" -Do not demangle low-level symbol names. This is the default. -.IP "\fB\-D\fR" 4 -.IX Item "-D" -.PD 0 -.IP "\fB\-\-dynamic\fR" 4 -.IX Item "--dynamic" -.PD -Display the dynamic symbols rather than the normal symbols. This is -only meaningful for dynamic objects, such as certain types of shared -libraries. -.IP "\fB\-f\fR \fIformat\fR" 4 -.IX Item "-f format" -.PD 0 -.IP "\fB\-\-format=\fR\fIformat\fR" 4 -.IX Item "--format=format" -.PD -Use the output format \fIformat\fR, which can be \f(CW\*(C`bsd\*(C'\fR, -\&\f(CW\*(C`sysv\*(C'\fR, or \f(CW\*(C`posix\*(C'\fR. The default is \f(CW\*(C`bsd\*(C'\fR. -Only the first character of \fIformat\fR is significant; it can be -either upper or lower case. -.IP "\fB\-g\fR" 4 -.IX Item "-g" -.PD 0 -.IP "\fB\-\-extern\-only\fR" 4 -.IX Item "--extern-only" -.PD -Display only external symbols. -.IP "\fB\-l\fR" 4 -.IX Item "-l" -.PD 0 -.IP "\fB\-\-line\-numbers\fR" 4 -.IX Item "--line-numbers" -.PD -For each symbol, use debugging information to try to find a filename and -line number. For a defined symbol, look for the line number of the -address of the symbol. For an undefined symbol, look for the line -number of a relocation entry which refers to the symbol. If line number -information can be found, print it after the other symbol information. -.IP "\fB\-n\fR" 4 -.IX Item "-n" -.PD 0 -.IP "\fB\-v\fR" 4 -.IX Item "-v" -.IP "\fB\-\-numeric\-sort\fR" 4 -.IX Item "--numeric-sort" -.PD -Sort symbols numerically by their addresses, rather than alphabetically -by their names. -.IP "\fB\-p\fR" 4 -.IX Item "-p" -.PD 0 -.IP "\fB\-\-no\-sort\fR" 4 -.IX Item "--no-sort" -.PD -Do not bother to sort the symbols in any order; print them in the order -encountered. -.IP "\fB\-P\fR" 4 -.IX Item "-P" -.PD 0 -.IP "\fB\-\-portability\fR" 4 -.IX Item "--portability" -.PD -Use the \s-1POSIX\s0.2 standard output format instead of the default format. -Equivalent to \fB\-f posix\fR. -.IP "\fB\-S\fR" 4 -.IX Item "-S" -.PD 0 -.IP "\fB\-\-print\-size\fR" 4 -.IX Item "--print-size" -.PD -Print size, not the value, of defined symbols for the \f(CW\*(C`bsd\*(C'\fR output format. -.IP "\fB\-s\fR" 4 -.IX Item "-s" -.PD 0 -.IP "\fB\-\-print\-armap\fR" 4 -.IX Item "--print-armap" -.PD -When listing symbols from archive members, include the index: a mapping -(stored in the archive by \fBar\fR or \fBranlib\fR) of which modules -contain definitions for which names. -.IP "\fB\-r\fR" 4 -.IX Item "-r" -.PD 0 -.IP "\fB\-\-reverse\-sort\fR" 4 -.IX Item "--reverse-sort" -.PD -Reverse the order of the sort (whether numeric or alphabetic); let the -last come first. -.IP "\fB\-\-size\-sort\fR" 4 -.IX Item "--size-sort" -Sort symbols by size. The size is computed as the difference between -the value of the symbol and the value of the symbol with the next higher -value. If the \f(CW\*(C`bsd\*(C'\fR output format is used the size of the symbol -is printed, rather than the value, and \fB\-S\fR must be used in order -both size and value to be printed. -.IP "\fB\-\-special\-syms\fR" 4 -.IX Item "--special-syms" -Display symbols which have a target-specific special meaning. These -symbols are usually used by the target for some special processing and -are not normally helpful when included included in the normal symbol -lists. For example for \s-1ARM\s0 targets this option would skip the mapping -symbols used to mark transistions between \s-1ARM\s0 code, \s-1THUMB\s0 code and -data. -.IP "\fB\-t\fR \fIradix\fR" 4 -.IX Item "-t radix" -.PD 0 -.IP "\fB\-\-radix=\fR\fIradix\fR" 4 -.IX Item "--radix=radix" -.PD -Use \fIradix\fR as the radix for printing the symbol values. It must be -\&\fBd\fR for decimal, \fBo\fR for octal, or \fBx\fR for hexadecimal. -.IP "\fB\-\-target=\fR\fIbfdname\fR" 4 -.IX Item "--target=bfdname" -Specify an object code format other than your system's default format. -.IP "\fB\-u\fR" 4 -.IX Item "-u" -.PD 0 -.IP "\fB\-\-undefined\-only\fR" 4 -.IX Item "--undefined-only" -.PD -Display only undefined symbols (those external to each object file). -.IP "\fB\-\-defined\-only\fR" 4 -.IX Item "--defined-only" -Display only defined symbols for each object file. -.IP "\fB\-V\fR" 4 -.IX Item "-V" -.PD 0 -.IP "\fB\-\-version\fR" 4 -.IX Item "--version" -.PD -Show the version number of \fBnm\fR and exit. -.IP "\fB\-X\fR" 4 -.IX Item "-X" -This option is ignored for compatibility with the \s-1AIX\s0 version of -\&\fBnm\fR. It takes one parameter which must be the string -\&\fB32_64\fR. The default mode of \s-1AIX\s0 \fBnm\fR corresponds -to \fB\-X 32\fR, which is not supported by \s-1GNU\s0 \fBnm\fR. -.IP "\fB\-\-help\fR" 4 -.IX Item "--help" -Show a summary of the options to \fBnm\fR and exit. -.SH "SEE ALSO" -.IX Header "SEE ALSO" -\&\fIar\fR\|(1), \fIobjdump\fR\|(1), \fIranlib\fR\|(1), and the Info entries for \fIbinutils\fR. -.SH "COPYRIGHT" -.IX Header "COPYRIGHT" -Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -.PP -Permission is granted to copy, distribute and/or modify this document -under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1 -or any later version published by the Free Software Foundation; -with no Invariant Sections, with no Front-Cover Texts, and with no -Back-Cover Texts. A copy of the license is included in the -section entitled ``\s-1GNU\s0 Free Documentation License''. diff --git a/binutils/doc/objcopy.1 b/binutils/doc/objcopy.1 deleted file mode 100644 index e2f119da3c9..00000000000 --- a/binutils/doc/objcopy.1 +++ /dev/null @@ -1,760 +0,0 @@ -.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 -.\" -.\" 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 -.. -.de Vb \" Begin verbatim text -.ft CW -.nf -.ne \\$1 -.. -.de Ve \" End verbatim text -.ft R -.fi -.. -.\" 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 -.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' -.ie n \{\ -. ds -- \(*W- -. ds PI pi -. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch -. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch -. ds L" "" -. ds R" "" -. ds C` "" -. ds C' "" -'br\} -.el\{\ -. ds -- \|\(em\| -. ds PI \(*p -. ds L" `` -. ds R" '' -'br\} -.\" -.\" 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 -.\" 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 -.\" -.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). -.\" Fear. Run. Save yourself. No user-serviceable parts. -. \" fudge factors for nroff and troff -.if n \{\ -. ds #H 0 -. ds #V .8m -. ds #F .3m -. ds #[ \f1 -. ds #] \fP -.\} -.if t \{\ -. ds #H ((1u-(\\\\n(.fu%2u))*.13m) -. ds #V .6m -. ds #F 0 -. ds #[ \& -. ds #] \& -.\} -. \" simple accents for nroff and troff -.if n \{\ -. ds ' \& -. ds ` \& -. ds ^ \& -. ds , \& -. ds ~ ~ -. ds / -.\} -.if t \{\ -. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" -. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' -. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' -. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' -. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' -. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' -.\} -. \" troff and (daisy-wheel) nroff accents -.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' -.ds 8 \h'\*(#H'\(*b\h'-\*(#H' -.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] -.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' -.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' -.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] -.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] -.ds ae a\h'-(\w'a'u*4/10)'e -.ds Ae A\h'-(\w'A'u*4/10)'E -. \" corrections for vroff -.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' -.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' -. \" for low resolution devices (crt and lpr) -.if \n(.H>23 .if \n(.V>19 \ -\{\ -. ds : e -. ds 8 ss -. ds o a -. ds d- d\h'-1'\(ga -. ds D- D\h'-1'\(hy -. ds th \o'bp' -. ds Th \o'LP' -. ds ae ae -. ds Ae AE -.\} -.rm #[ #] #H #V #F C -.\" ======================================================================== -.\" -.IX Title "OBJCOPY 1" -.TH OBJCOPY 1 "2005-03-08" "binutils-2.15.96" "GNU Development Tools" -.SH "NAME" -objcopy \- copy and translate object files -.SH "SYNOPSIS" -.IX Header "SYNOPSIS" -objcopy [\fB\-F\fR \fIbfdname\fR|\fB\-\-target=\fR\fIbfdname\fR] - [\fB\-I\fR \fIbfdname\fR|\fB\-\-input\-target=\fR\fIbfdname\fR] - [\fB\-O\fR \fIbfdname\fR|\fB\-\-output\-target=\fR\fIbfdname\fR] - [\fB\-B\fR \fIbfdarch\fR|\fB\-\-binary\-architecture=\fR\fIbfdarch\fR] - [\fB\-S\fR|\fB\-\-strip\-all\fR] - [\fB\-g\fR|\fB\-\-strip\-debug\fR] - [\fB\-K\fR \fIsymbolname\fR|\fB\-\-keep\-symbol=\fR\fIsymbolname\fR] - [\fB\-N\fR \fIsymbolname\fR|\fB\-\-strip\-symbol=\fR\fIsymbolname\fR] - [\fB\-\-strip\-unneeded\-symbol=\fR\fIsymbolname\fR] - [\fB\-G\fR \fIsymbolname\fR|\fB\-\-keep\-global\-symbol=\fR\fIsymbolname\fR] - [\fB\-L\fR \fIsymbolname\fR|\fB\-\-localize\-symbol=\fR\fIsymbolname\fR] - [\fB\-W\fR \fIsymbolname\fR|\fB\-\-weaken\-symbol=\fR\fIsymbolname\fR] - [\fB\-w\fR|\fB\-\-wildcard\fR] - [\fB\-x\fR|\fB\-\-discard\-all\fR] - [\fB\-X\fR|\fB\-\-discard\-locals\fR] - [\fB\-b\fR \fIbyte\fR|\fB\-\-byte=\fR\fIbyte\fR] - [\fB\-i\fR \fIinterleave\fR|\fB\-\-interleave=\fR\fIinterleave\fR] - [\fB\-j\fR \fIsectionname\fR|\fB\-\-only\-section=\fR\fIsectionname\fR] - [\fB\-R\fR \fIsectionname\fR|\fB\-\-remove\-section=\fR\fIsectionname\fR] - [\fB\-p\fR|\fB\-\-preserve\-dates\fR] - [\fB\-\-debugging\fR] - [\fB\-\-gap\-fill=\fR\fIval\fR] - [\fB\-\-pad\-to=\fR\fIaddress\fR] - [\fB\-\-set\-start=\fR\fIval\fR] - [\fB\-\-adjust\-start=\fR\fIincr\fR] - [\fB\-\-change\-addresses=\fR\fIincr\fR] - [\fB\-\-change\-section\-address\fR \fIsection\fR{=,+,\-}\fIval\fR] - [\fB\-\-change\-section\-lma\fR \fIsection\fR{=,+,\-}\fIval\fR] - [\fB\-\-change\-section\-vma\fR \fIsection\fR{=,+,\-}\fIval\fR] - [\fB\-\-change\-warnings\fR] [\fB\-\-no\-change\-warnings\fR] - [\fB\-\-set\-section\-flags\fR \fIsection\fR=\fIflags\fR] - [\fB\-\-add\-section\fR \fIsectionname\fR=\fIfilename\fR] - [\fB\-\-rename\-section\fR \fIoldname\fR=\fInewname\fR[,\fIflags\fR]] - [\fB\-\-change\-leading\-char\fR] [\fB\-\-remove\-leading\-char\fR] - [\fB\-\-srec\-len=\fR\fIival\fR] [\fB\-\-srec\-forceS3\fR] - [\fB\-\-redefine\-sym\fR \fIold\fR=\fInew\fR] - [\fB\-\-redefine\-syms=\fR\fIfilename\fR] - [\fB\-\-weaken\fR] - [\fB\-\-keep\-symbols=\fR\fIfilename\fR] - [\fB\-\-strip\-symbols=\fR\fIfilename\fR] - [\fB\-\-strip\-unneeded\-symbols=\fR\fIfilename\fR] - [\fB\-\-keep\-global\-symbols=\fR\fIfilename\fR] - [\fB\-\-localize\-symbols=\fR\fIfilename\fR] - [\fB\-\-weaken\-symbols=\fR\fIfilename\fR] - [\fB\-\-alt\-machine\-code=\fR\fIindex\fR] - [\fB\-\-prefix\-symbols=\fR\fIstring\fR] - [\fB\-\-prefix\-sections=\fR\fIstring\fR] - [\fB\-\-prefix\-alloc\-sections=\fR\fIstring\fR] - [\fB\-\-add\-gnu\-debuglink=\fR\fIpath-to-file\fR] - [\fB\-\-only\-keep\-debug\fR] - [\fB\-\-writable\-text\fR] - [\fB\-\-readonly\-text\fR] - [\fB\-\-pure\fR] - [\fB\-\-impure\fR] - [\fB\-v\fR|\fB\-\-verbose\fR] - [\fB\-V\fR|\fB\-\-version\fR] - [\fB\-\-help\fR] [\fB\-\-info\fR] - \fIinfile\fR [\fIoutfile\fR] -.SH "DESCRIPTION" -.IX Header "DESCRIPTION" -The \s-1GNU\s0 \fBobjcopy\fR utility copies the contents of an object -file to another. \fBobjcopy\fR uses the \s-1GNU\s0 \s-1BFD\s0 Library to -read and write the object files. It can write the destination object -file in a format different from that of the source object file. The -exact behavior of \fBobjcopy\fR is controlled by command-line options. -Note that \fBobjcopy\fR should be able to copy a fully linked file -between any two formats. However, copying a relocatable object file -between any two formats may not work as expected. -.PP -\&\fBobjcopy\fR creates temporary files to do its translations and -deletes them afterward. \fBobjcopy\fR uses \s-1BFD\s0 to do all its -translation work; it has access to all the formats described in \s-1BFD\s0 -and thus is able to recognize most formats without being told -explicitly. -.PP -\&\fBobjcopy\fR can be used to generate S\-records by using an output -target of \fBsrec\fR (e.g., use \fB\-O srec\fR). -.PP -\&\fBobjcopy\fR can be used to generate a raw binary file by using an -output target of \fBbinary\fR (e.g., use \fB\-O binary\fR). When -\&\fBobjcopy\fR generates a raw binary file, it will essentially produce -a memory dump of the contents of the input object file. All symbols and -relocation information will be discarded. The memory dump will start at -the load address of the lowest section copied into the output file. -.PP -When generating an S\-record or a raw binary file, it may be helpful to -use \fB\-S\fR to remove sections containing debugging information. In -some cases \fB\-R\fR will be useful to remove sections which contain -information that is not needed by the binary file. -.PP -Note\-\-\-\fBobjcopy\fR is not able to change the endianness of its input -files. If the input format has an endianness (some formats do not), -\&\fBobjcopy\fR can only copy the inputs into file formats that have the -same endianness or which have no endianness (e.g., \fBsrec\fR). -.SH "OPTIONS" -.IX Header "OPTIONS" -.IP "\fIinfile\fR" 4 -.IX Item "infile" -.PD 0 -.IP "\fIoutfile\fR" 4 -.IX Item "outfile" -.PD -The input and output files, respectively. -If you do not specify \fIoutfile\fR, \fBobjcopy\fR creates a -temporary file and destructively renames the result with -the name of \fIinfile\fR. -.IP "\fB\-I\fR \fIbfdname\fR" 4 -.IX Item "-I bfdname" -.PD 0 -.IP "\fB\-\-input\-target=\fR\fIbfdname\fR" 4 -.IX Item "--input-target=bfdname" -.PD -Consider the source file's object format to be \fIbfdname\fR, rather than -attempting to deduce it. -.IP "\fB\-O\fR \fIbfdname\fR" 4 -.IX Item "-O bfdname" -.PD 0 -.IP "\fB\-\-output\-target=\fR\fIbfdname\fR" 4 -.IX Item "--output-target=bfdname" -.PD -Write the output file using the object format \fIbfdname\fR. -.IP "\fB\-F\fR \fIbfdname\fR" 4 -.IX Item "-F bfdname" -.PD 0 -.IP "\fB\-\-target=\fR\fIbfdname\fR" 4 -.IX Item "--target=bfdname" -.PD -Use \fIbfdname\fR as the object format for both the input and the output -file; i.e., simply transfer data from source to destination with no -translation. -.IP "\fB\-B\fR \fIbfdarch\fR" 4 -.IX Item "-B bfdarch" -.PD 0 -.IP "\fB\-\-binary\-architecture=\fR\fIbfdarch\fR" 4 -.IX Item "--binary-architecture=bfdarch" -.PD -Useful when transforming a raw binary input file into an object file. -In this case the output architecture can be set to \fIbfdarch\fR. This -option will be ignored if the input file has a known \fIbfdarch\fR. You -can access this binary data inside a program by referencing the special -symbols that are created by the conversion process. These symbols are -called _binary_\fIobjfile\fR_start, _binary_\fIobjfile\fR_end and -_binary_\fIobjfile\fR_size. e.g. you can transform a picture file into -an object file and then access it in your code using these symbols. -.IP "\fB\-j\fR \fIsectionname\fR" 4 -.IX Item "-j sectionname" -.PD 0 -.IP "\fB\-\-only\-section=\fR\fIsectionname\fR" 4 -.IX Item "--only-section=sectionname" -.PD -Copy only the named section from the input file to the output file. -This option may be given more than once. Note that using this option -inappropriately may make the output file unusable. -.IP "\fB\-R\fR \fIsectionname\fR" 4 -.IX Item "-R sectionname" -.PD 0 -.IP "\fB\-\-remove\-section=\fR\fIsectionname\fR" 4 -.IX Item "--remove-section=sectionname" -.PD -Remove any section named \fIsectionname\fR from the output file. This -option may be given more than once. Note that using this option -inappropriately may make the output file unusable. -.IP "\fB\-S\fR" 4 -.IX Item "-S" -.PD 0 -.IP "\fB\-\-strip\-all\fR" 4 -.IX Item "--strip-all" -.PD -Do not copy relocation and symbol information from the source file. -.IP "\fB\-g\fR" 4 -.IX Item "-g" -.PD 0 -.IP "\fB\-\-strip\-debug\fR" 4 -.IX Item "--strip-debug" -.PD -Do not copy debugging symbols or sections from the source file. -.IP "\fB\-\-strip\-unneeded\fR" 4 -.IX Item "--strip-unneeded" -Strip all symbols that are not needed for relocation processing. -.IP "\fB\-K\fR \fIsymbolname\fR" 4 -.IX Item "-K symbolname" -.PD 0 -.IP "\fB\-\-keep\-symbol=\fR\fIsymbolname\fR" 4 -.IX Item "--keep-symbol=symbolname" -.PD -Copy only symbol \fIsymbolname\fR from the source file. This option may -be given more than once. -.IP "\fB\-N\fR \fIsymbolname\fR" 4 -.IX Item "-N symbolname" -.PD 0 -.IP "\fB\-\-strip\-symbol=\fR\fIsymbolname\fR" 4 -.IX Item "--strip-symbol=symbolname" -.PD -Do not copy symbol \fIsymbolname\fR from the source file. This option -may be given more than once. -.IP "\fB\-\-strip\-unneeded\-symbol=\fR\fIsymbolname\fR" 4 -.IX Item "--strip-unneeded-symbol=symbolname" -Do not copy symbol \fIsymbolname\fR from the source file unless it is needed -by a relocation. This option may be given more than once. -.IP "\fB\-G\fR \fIsymbolname\fR" 4 -.IX Item "-G symbolname" -.PD 0 -.IP "\fB\-\-keep\-global\-symbol=\fR\fIsymbolname\fR" 4 -.IX Item "--keep-global-symbol=symbolname" -.PD -Keep only symbol \fIsymbolname\fR global. Make all other symbols local -to the file, so that they are not visible externally. This option may -be given more than once. -.IP "\fB\-L\fR \fIsymbolname\fR" 4 -.IX Item "-L symbolname" -.PD 0 -.IP "\fB\-\-localize\-symbol=\fR\fIsymbolname\fR" 4 -.IX Item "--localize-symbol=symbolname" -.PD -Make symbol \fIsymbolname\fR local to the file, so that it is not -visible externally. This option may be given more than once. -.IP "\fB\-W\fR \fIsymbolname\fR" 4 -.IX Item "-W symbolname" -.PD 0 -.IP "\fB\-\-weaken\-symbol=\fR\fIsymbolname\fR" 4 -.IX Item "--weaken-symbol=symbolname" -.PD -Make symbol \fIsymbolname\fR weak. This option may be given more than once. -.IP "\fB\-w\fR" 4 -.IX Item "-w" -.PD 0 -.IP "\fB\-\-wildcard\fR" 4 -.IX Item "--wildcard" -.PD -Permit regular expressions in \fIsymbolname\fRs used in other command -line options. The question mark (?), asterisk (*), backslash (\e) and -square brackets ([]) operators can be used anywhere in the symbol -name. If the first character of the symbol name is the exclamation -point (!) then the sense of the switch is reversed for that symbol. -For example: -.Sp -.Vb 1 -\& -w -W !foo -W fo* -.Ve -.Sp -would cause objcopy to weaken all symbols that start with ``fo'' -except for the symbol ``foo''. -.IP "\fB\-x\fR" 4 -.IX Item "-x" -.PD 0 -.IP "\fB\-\-discard\-all\fR" 4 -.IX Item "--discard-all" -.PD -Do not copy non-global symbols from the source file. -.IP "\fB\-X\fR" 4 -.IX Item "-X" -.PD 0 -.IP "\fB\-\-discard\-locals\fR" 4 -.IX Item "--discard-locals" -.PD -Do not copy compiler-generated local symbols. -(These usually start with \fBL\fR or \fB.\fR.) -.IP "\fB\-b\fR \fIbyte\fR" 4 -.IX Item "-b byte" -.PD 0 -.IP "\fB\-\-byte=\fR\fIbyte\fR" 4 -.IX Item "--byte=byte" -.PD -Keep only every \fIbyte\fRth byte of the input file (header data is not -affected). \fIbyte\fR can be in the range from 0 to \fIinterleave\fR\-1, -where \fIinterleave\fR is given by the \fB\-i\fR or \fB\-\-interleave\fR -option, or the default of 4. This option is useful for creating files -to program \s-1ROM\s0. It is typically used with an \f(CW\*(C`srec\*(C'\fR output -target. -.IP "\fB\-i\fR \fIinterleave\fR" 4 -.IX Item "-i interleave" -.PD 0 -.IP "\fB\-\-interleave=\fR\fIinterleave\fR" 4 -.IX Item "--interleave=interleave" -.PD -Only copy one out of every \fIinterleave\fR bytes. Select which byte to -copy with the \fB\-b\fR or \fB\-\-byte\fR option. The default is 4. -\&\fBobjcopy\fR ignores this option if you do not specify either \fB\-b\fR or -\&\fB\-\-byte\fR. -.IP "\fB\-p\fR" 4 -.IX Item "-p" -.PD 0 -.IP "\fB\-\-preserve\-dates\fR" 4 -.IX Item "--preserve-dates" -.PD -Set the access and modification dates of the output file to be the same -as those of the input file. -.IP "\fB\-\-debugging\fR" 4 -.IX Item "--debugging" -Convert debugging information, if possible. This is not the default -because only certain debugging formats are supported, and the -conversion process can be time consuming. -.IP "\fB\-\-gap\-fill\fR \fIval\fR" 4 -.IX Item "--gap-fill val" -Fill gaps between sections with \fIval\fR. This operation applies to -the \fIload address\fR (\s-1LMA\s0) of the sections. It is done by increasing -the size of the section with the lower address, and filling in the extra -space created with \fIval\fR. -.IP "\fB\-\-pad\-to\fR \fIaddress\fR" 4 -.IX Item "--pad-to address" -Pad the output file up to the load address \fIaddress\fR. This is -done by increasing the size of the last section. The extra space is -filled in with the value specified by \fB\-\-gap\-fill\fR (default zero). -.IP "\fB\-\-set\-start\fR \fIval\fR" 4 -.IX Item "--set-start val" -Set the start address of the new file to \fIval\fR. Not all object file -formats support setting the start address. -.IP "\fB\-\-change\-start\fR \fIincr\fR" 4 -.IX Item "--change-start incr" -.PD 0 -.IP "\fB\-\-adjust\-start\fR \fIincr\fR" 4 -.IX Item "--adjust-start incr" -.PD -Change the start address by adding \fIincr\fR. Not all object file -formats support setting the start address. -.IP "\fB\-\-change\-addresses\fR \fIincr\fR" 4 -.IX Item "--change-addresses incr" -.PD 0 -.IP "\fB\-\-adjust\-vma\fR \fIincr\fR" 4 -.IX Item "--adjust-vma incr" -.PD -Change the \s-1VMA\s0 and \s-1LMA\s0 addresses of all sections, as well as the start -address, by adding \fIincr\fR. Some object file formats do not permit -section addresses to be changed arbitrarily. Note that this does not -relocate the sections; if the program expects sections to be loaded at a -certain address, and this option is used to change the sections such -that they are loaded at a different address, the program may fail. -.IP "\fB\-\-change\-section\-address\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4 -.IX Item "--change-section-address section{=,+,-}val" -.PD 0 -.IP "\fB\-\-adjust\-section\-vma\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4 -.IX Item "--adjust-section-vma section{=,+,-}val" -.PD -Set or change both the \s-1VMA\s0 address and the \s-1LMA\s0 address of the named -\&\fIsection\fR. If \fB=\fR is used, the section address is set to -\&\fIval\fR. Otherwise, \fIval\fR is added to or subtracted from the -section address. See the comments under \fB\-\-change\-addresses\fR, -above. If \fIsection\fR does not exist in the input file, a warning will -be issued, unless \fB\-\-no\-change\-warnings\fR is used. -.IP "\fB\-\-change\-section\-lma\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4 -.IX Item "--change-section-lma section{=,+,-}val" -Set or change the \s-1LMA\s0 address of the named \fIsection\fR. The \s-1LMA\s0 -address is the address where the section will be loaded into memory at -program load time. Normally this is the same as the \s-1VMA\s0 address, which -is the address of the section at program run time, but on some systems, -especially those where a program is held in \s-1ROM\s0, the two can be -different. If \fB=\fR is used, the section address is set to -\&\fIval\fR. Otherwise, \fIval\fR is added to or subtracted from the -section address. See the comments under \fB\-\-change\-addresses\fR, -above. If \fIsection\fR does not exist in the input file, a warning -will be issued, unless \fB\-\-no\-change\-warnings\fR is used. -.IP "\fB\-\-change\-section\-vma\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4 -.IX Item "--change-section-vma section{=,+,-}val" -Set or change the \s-1VMA\s0 address of the named \fIsection\fR. The \s-1VMA\s0 -address is the address where the section will be located once the -program has started executing. Normally this is the same as the \s-1LMA\s0 -address, which is the address where the section will be loaded into -memory, but on some systems, especially those where a program is held in -\&\s-1ROM\s0, the two can be different. If \fB=\fR is used, the section address -is set to \fIval\fR. Otherwise, \fIval\fR is added to or subtracted -from the section address. See the comments under -\&\fB\-\-change\-addresses\fR, above. If \fIsection\fR does not exist in -the input file, a warning will be issued, unless -\&\fB\-\-no\-change\-warnings\fR is used. -.IP "\fB\-\-change\-warnings\fR" 4 -.IX Item "--change-warnings" -.PD 0 -.IP "\fB\-\-adjust\-warnings\fR" 4 -.IX Item "--adjust-warnings" -.PD -If \fB\-\-change\-section\-address\fR or \fB\-\-change\-section\-lma\fR or -\&\fB\-\-change\-section\-vma\fR is used, and the named section does not -exist, issue a warning. This is the default. -.IP "\fB\-\-no\-change\-warnings\fR" 4 -.IX Item "--no-change-warnings" -.PD 0 -.IP "\fB\-\-no\-adjust\-warnings\fR" 4 -.IX Item "--no-adjust-warnings" -.PD -Do not issue a warning if \fB\-\-change\-section\-address\fR or -\&\fB\-\-adjust\-section\-lma\fR or \fB\-\-adjust\-section\-vma\fR is used, even -if the named section does not exist. -.IP "\fB\-\-set\-section\-flags\fR \fIsection\fR\fB=\fR\fIflags\fR" 4 -.IX Item "--set-section-flags section=flags" -Set the flags for the named section. The \fIflags\fR argument is a -comma separated string of flag names. The recognized names are -\&\fBalloc\fR, \fBcontents\fR, \fBload\fR, \fBnoload\fR, -\&\fBreadonly\fR, \fBcode\fR, \fBdata\fR, \fBrom\fR, \fBshare\fR, and -\&\fBdebug\fR. You can set the \fBcontents\fR flag for a section which -does not have contents, but it is not meaningful to clear the -\&\fBcontents\fR flag of a section which does have contents\*(--just remove -the section instead. Not all flags are meaningful for all object file -formats. -.IP "\fB\-\-add\-section\fR \fIsectionname\fR\fB=\fR\fIfilename\fR" 4 -.IX Item "--add-section sectionname=filename" -Add a new section named \fIsectionname\fR while copying the file. The -contents of the new section are taken from the file \fIfilename\fR. The -size of the section will be the size of the file. This option only -works on file formats which can support sections with arbitrary names. -.IP "\fB\-\-rename\-section\fR \fIoldname\fR\fB=\fR\fInewname\fR\fB[,\fR\fIflags\fR\fB]\fR" 4 -.IX Item "--rename-section oldname=newname[,flags]" -Rename a section from \fIoldname\fR to \fInewname\fR, optionally -changing the section's flags to \fIflags\fR in the process. This has -the advantage over usng a linker script to perform the rename in that -the output stays as an object file and does not become a linked -executable. -.Sp -This option is particularly helpful when the input format is binary, -since this will always create a section called .data. If for example, -you wanted instead to create a section called .rodata containing binary -data you could use the following command line to achieve it: -.Sp -.Vb 3 -\& objcopy -I binary -O -B \e -\& --rename-section .data=.rodata,alloc,load,readonly,data,contents \e -\& -.Ve -.IP "\fB\-\-change\-leading\-char\fR" 4 -.IX Item "--change-leading-char" -Some object file formats use special characters at the start of -symbols. The most common such character is underscore, which compilers -often add before every symbol. This option tells \fBobjcopy\fR to -change the leading character of every symbol when it converts between -object file formats. If the object file formats use the same leading -character, this option has no effect. Otherwise, it will add a -character, or remove a character, or change a character, as -appropriate. -.IP "\fB\-\-remove\-leading\-char\fR" 4 -.IX Item "--remove-leading-char" -If the first character of a global symbol is a special symbol leading -character used by the object file format, remove the character. The -most common symbol leading character is underscore. This option will -remove a leading underscore from all global symbols. This can be useful -if you want to link together objects of different file formats with -different conventions for symbol names. This is different from -\&\fB\-\-change\-leading\-char\fR because it always changes the symbol name -when appropriate, regardless of the object file format of the output -file. -.IP "\fB\-\-srec\-len=\fR\fIival\fR" 4 -.IX Item "--srec-len=ival" -Meaningful only for srec output. Set the maximum length of the Srecords -being produced to \fIival\fR. This length covers both address, data and -crc fields. -.IP "\fB\-\-srec\-forceS3\fR" 4 -.IX Item "--srec-forceS3" -Meaningful only for srec output. Avoid generation of S1/S2 records, -creating S3\-only record format. -.IP "\fB\-\-redefine\-sym\fR \fIold\fR\fB=\fR\fInew\fR" 4 -.IX Item "--redefine-sym old=new" -Change the name of a symbol \fIold\fR, to \fInew\fR. This can be useful -when one is trying link two things together for which you have no -source, and there are name collisions. -.IP "\fB\-\-redefine\-syms=\fR\fIfilename\fR" 4 -.IX Item "--redefine-syms=filename" -Apply \fB\-\-redefine\-sym\fR to each symbol pair "\fIold\fR \fInew\fR" -listed in the file \fIfilename\fR. \fIfilename\fR is simply a flat file, -with one symbol pair per line. Line comments may be introduced by the hash -character. This option may be given more than once. -.IP "\fB\-\-weaken\fR" 4 -.IX Item "--weaken" -Change all global symbols in the file to be weak. This can be useful -when building an object which will be linked against other objects using -the \fB\-R\fR option to the linker. This option is only effective when -using an object file format which supports weak symbols. -.IP "\fB\-\-keep\-symbols=\fR\fIfilename\fR" 4 -.IX Item "--keep-symbols=filename" -Apply \fB\-\-keep\-symbol\fR option to each symbol listed in the file -\&\fIfilename\fR. \fIfilename\fR is simply a flat file, with one symbol -name per line. Line comments may be introduced by the hash character. -This option may be given more than once. -.IP "\fB\-\-strip\-symbols=\fR\fIfilename\fR" 4 -.IX Item "--strip-symbols=filename" -Apply \fB\-\-strip\-symbol\fR option to each symbol listed in the file -\&\fIfilename\fR. \fIfilename\fR is simply a flat file, with one symbol -name per line. Line comments may be introduced by the hash character. -This option may be given more than once. -.IP "\fB\-\-strip\-unneeded\-symbols=\fR\fIfilename\fR" 4 -.IX Item "--strip-unneeded-symbols=filename" -Apply \fB\-\-strip\-unneeded\-symbol\fR option to each symbol listed in -the file \fIfilename\fR. \fIfilename\fR is simply a flat file, with one -symbol name per line. Line comments may be introduced by the hash -character. This option may be given more than once. -.IP "\fB\-\-keep\-global\-symbols=\fR\fIfilename\fR" 4 -.IX Item "--keep-global-symbols=filename" -Apply \fB\-\-keep\-global\-symbol\fR option to each symbol listed in the -file \fIfilename\fR. \fIfilename\fR is simply a flat file, with one -symbol name per line. Line comments may be introduced by the hash -character. This option may be given more than once. -.IP "\fB\-\-localize\-symbols=\fR\fIfilename\fR" 4 -.IX Item "--localize-symbols=filename" -Apply \fB\-\-localize\-symbol\fR option to each symbol listed in the file -\&\fIfilename\fR. \fIfilename\fR is simply a flat file, with one symbol -name per line. Line comments may be introduced by the hash character. -This option may be given more than once. -.IP "\fB\-\-weaken\-symbols=\fR\fIfilename\fR" 4 -.IX Item "--weaken-symbols=filename" -Apply \fB\-\-weaken\-symbol\fR option to each symbol listed in the file -\&\fIfilename\fR. \fIfilename\fR is simply a flat file, with one symbol -name per line. Line comments may be introduced by the hash character. -This option may be given more than once. -.IP "\fB\-\-alt\-machine\-code=\fR\fIindex\fR" 4 -.IX Item "--alt-machine-code=index" -If the output architecture has alternate machine codes, use the -\&\fIindex\fRth code instead of the default one. This is useful in case -a machine is assigned an official code and the tool-chain adopts the -new code, but other applications still depend on the original code -being used. -.IP "\fB\-\-writable\-text\fR" 4 -.IX Item "--writable-text" -Mark the output text as writable. This option isn't meaningful for all -object file formats. -.IP "\fB\-\-readonly\-text\fR" 4 -.IX Item "--readonly-text" -Make the output text write protected. This option isn't meaningful for all -object file formats. -.IP "\fB\-\-pure\fR" 4 -.IX Item "--pure" -Mark the output file as demand paged. This option isn't meaningful for all -object file formats. -.IP "\fB\-\-impure\fR" 4 -.IX Item "--impure" -Mark the output file as impure. This option isn't meaningful for all -object file formats. -.IP "\fB\-\-prefix\-symbols=\fR\fIstring\fR" 4 -.IX Item "--prefix-symbols=string" -Prefix all symbols in the output file with \fIstring\fR. -.IP "\fB\-\-prefix\-sections=\fR\fIstring\fR" 4 -.IX Item "--prefix-sections=string" -Prefix all section names in the output file with \fIstring\fR. -.IP "\fB\-\-prefix\-alloc\-sections=\fR\fIstring\fR" 4 -.IX Item "--prefix-alloc-sections=string" -Prefix all the names of all allocated sections in the output file with -\&\fIstring\fR. -.IP "\fB\-\-add\-gnu\-debuglink=\fR\fIpath-to-file\fR" 4 -.IX Item "--add-gnu-debuglink=path-to-file" -Creates a .gnu_debuglink section which contains a reference to \fIpath-to-file\fR -and adds it to the output file. -.IP "\fB\-\-only\-keep\-debug\fR" 4 -.IX Item "--only-keep-debug" -Strip a file, removing any sections that would be stripped by -\&\fB\-\-strip\-debug\fR and leaving the debugging sections. -.Sp -The intention is that this option will be used in conjunction with -\&\fB\-\-add\-gnu\-debuglink\fR to create a two part executable. One a -stripped binary which will occupy less space in \s-1RAM\s0 and in a -distribution and the second a debugging information file which is only -needed if debugging abilities are required. The suggested procedure -to create these files is as follows: -.RS 4 -.IP "1." 4 -.IX Item "1." -\&\f(CW\*(C`foo\*(C'\fR then... -.ie n .IP "1." 4 -.el .IP "1." 4 -.IX Item "1." -create a file containing the debugging info. -.ie n .IP "1." 4 -.el .IP "1." 4 -.IX Item "1." -stripped executable. -.ie n .IP "1." 4 -.el .IP "1." 4 -.IX Item "1." -to add a link to the debugging info into the stripped executable. -.RE -.RS 4 -.Sp -Note \- the choice of \f(CW\*(C`.dbg\*(C'\fR as an extension for the debug info -file is arbitrary. Also the \f(CW\*(C`\-\-only\-keep\-debug\*(C'\fR step is -optional. You could instead do this: -.IP "1." 4 -.IX Item "1." -.PD 0 -.ie n .IP "1." 4 -.el .IP "1." 4 -.IX Item "1." -.ie n .IP "1." 4 -.el .IP "1." 4 -.IX Item "1." -.ie n .IP "1." 4 -.el .IP "1." 4 -.IX Item "1." -.RE -.RS 4 -.PD -.Sp -ie the file pointed to by the \fB\-\-add\-gnu\-debuglink\fR can be the -full executable. It does not have to be a file created by the -\&\fB\-\-only\-keep\-debug\fR switch. -.RE -.IP "\fB\-V\fR" 4 -.IX Item "-V" -.PD 0 -.IP "\fB\-\-version\fR" 4 -.IX Item "--version" -.PD -Show the version number of \fBobjcopy\fR. -.IP "\fB\-v\fR" 4 -.IX Item "-v" -.PD 0 -.IP "\fB\-\-verbose\fR" 4 -.IX Item "--verbose" -.PD -Verbose output: list all object files modified. In the case of -archives, \fBobjcopy \-V\fR lists all members of the archive. -.IP "\fB\-\-help\fR" 4 -.IX Item "--help" -Show a summary of the options to \fBobjcopy\fR. -.IP "\fB\-\-info\fR" 4 -.IX Item "--info" -Display a list showing all architectures and object formats available. -.SH "SEE ALSO" -.IX Header "SEE ALSO" -\&\fIld\fR\|(1), \fIobjdump\fR\|(1), and the Info entries for \fIbinutils\fR. -.SH "COPYRIGHT" -.IX Header "COPYRIGHT" -Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -.PP -Permission is granted to copy, distribute and/or modify this document -under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1 -or any later version published by the Free Software Foundation; -with no Invariant Sections, with no Front-Cover Texts, and with no -Back-Cover Texts. A copy of the license is included in the -section entitled ``\s-1GNU\s0 Free Documentation License''. diff --git a/binutils/doc/objdump.1 b/binutils/doc/objdump.1 deleted file mode 100644 index 0d153f21d1c..00000000000 --- a/binutils/doc/objdump.1 +++ /dev/null @@ -1,604 +0,0 @@ -.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 -.\" -.\" 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 -.. -.de Vb \" Begin verbatim text -.ft CW -.nf -.ne \\$1 -.. -.de Ve \" End verbatim text -.ft R -.fi -.. -.\" 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 -.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' -.ie n \{\ -. ds -- \(*W- -. ds PI pi -. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch -. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch -. ds L" "" -. ds R" "" -. ds C` "" -. ds C' "" -'br\} -.el\{\ -. ds -- \|\(em\| -. ds PI \(*p -. ds L" `` -. ds R" '' -'br\} -.\" -.\" 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 -.\" 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 -.\" -.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). -.\" Fear. Run. Save yourself. No user-serviceable parts. -. \" fudge factors for nroff and troff -.if n \{\ -. ds #H 0 -. ds #V .8m -. ds #F .3m -. ds #[ \f1 -. ds #] \fP -.\} -.if t \{\ -. ds #H ((1u-(\\\\n(.fu%2u))*.13m) -. ds #V .6m -. ds #F 0 -. ds #[ \& -. ds #] \& -.\} -. \" simple accents for nroff and troff -.if n \{\ -. ds ' \& -. ds ` \& -. ds ^ \& -. ds , \& -. ds ~ ~ -. ds / -.\} -.if t \{\ -. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" -. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' -. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' -. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' -. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' -. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' -.\} -. \" troff and (daisy-wheel) nroff accents -.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' -.ds 8 \h'\*(#H'\(*b\h'-\*(#H' -.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] -.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' -.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' -.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] -.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] -.ds ae a\h'-(\w'a'u*4/10)'e -.ds Ae A\h'-(\w'A'u*4/10)'E -. \" corrections for vroff -.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' -.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' -. \" for low resolution devices (crt and lpr) -.if \n(.H>23 .if \n(.V>19 \ -\{\ -. ds : e -. ds 8 ss -. ds o a -. ds d- d\h'-1'\(ga -. ds D- D\h'-1'\(hy -. ds th \o'bp' -. ds Th \o'LP' -. ds ae ae -. ds Ae AE -.\} -.rm #[ #] #H #V #F C -.\" ======================================================================== -.\" -.IX Title "OBJDUMP 1" -.TH OBJDUMP 1 "2005-03-08" "binutils-2.15.96" "GNU Development Tools" -.SH "NAME" -objdump \- display information from object files. -.SH "SYNOPSIS" -.IX Header "SYNOPSIS" -objdump [\fB\-a\fR|\fB\-\-archive\-headers\fR] - [\fB\-b\fR \fIbfdname\fR|\fB\-\-target=\fR\fIbfdname\fR] - [\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR] ] - [\fB\-d\fR|\fB\-\-disassemble\fR] - [\fB\-D\fR|\fB\-\-disassemble\-all\fR] - [\fB\-z\fR|\fB\-\-disassemble\-zeroes\fR] - [\fB\-EB\fR|\fB\-EL\fR|\fB\-\-endian=\fR{big | little }] - [\fB\-f\fR|\fB\-\-file\-headers\fR] - [\fB\-\-file\-start\-context\fR] - [\fB\-g\fR|\fB\-\-debugging\fR] - [\fB\-e\fR|\fB\-\-debugging\-tags\fR] - [\fB\-h\fR|\fB\-\-section\-headers\fR|\fB\-\-headers\fR] - [\fB\-i\fR|\fB\-\-info\fR] - [\fB\-j\fR \fIsection\fR|\fB\-\-section=\fR\fIsection\fR] - [\fB\-l\fR|\fB\-\-line\-numbers\fR] - [\fB\-S\fR|\fB\-\-source\fR] - [\fB\-m\fR \fImachine\fR|\fB\-\-architecture=\fR\fImachine\fR] - [\fB\-M\fR \fIoptions\fR|\fB\-\-disassembler\-options=\fR\fIoptions\fR] - [\fB\-p\fR|\fB\-\-private\-headers\fR] - [\fB\-r\fR|\fB\-\-reloc\fR] - [\fB\-R\fR|\fB\-\-dynamic\-reloc\fR] - [\fB\-s\fR|\fB\-\-full\-contents\fR] - [\fB\-G\fR|\fB\-\-stabs\fR] - [\fB\-t\fR|\fB\-\-syms\fR] - [\fB\-T\fR|\fB\-\-dynamic\-syms\fR] - [\fB\-x\fR|\fB\-\-all\-headers\fR] - [\fB\-w\fR|\fB\-\-wide\fR] - [\fB\-\-start\-address=\fR\fIaddress\fR] - [\fB\-\-stop\-address=\fR\fIaddress\fR] - [\fB\-\-prefix\-addresses\fR] - [\fB\-\-[no\-]show\-raw\-insn\fR] - [\fB\-\-adjust\-vma=\fR\fIoffset\fR] - [\fB\-\-special\-syms\fR] - [\fB\-V\fR|\fB\-\-version\fR] - [\fB\-H\fR|\fB\-\-help\fR] - \fIobjfile\fR... -.SH "DESCRIPTION" -.IX Header "DESCRIPTION" -\&\fBobjdump\fR displays information about one or more object files. -The options control what particular information to display. This -information is mostly useful to programmers who are working on the -compilation tools, as opposed to programmers who just want their -program to compile and work. -.PP -\&\fIobjfile\fR... are the object files to be examined. When you -specify archives, \fBobjdump\fR shows information on each of the member -object files. -.SH "OPTIONS" -.IX Header "OPTIONS" -The long and short forms of options, shown here as alternatives, are -equivalent. At least one option from the list -\&\fB\-a,\-d,\-D,\-e,\-f,\-g,\-G,\-h,\-H,\-p,\-r,\-R,\-s,\-S,\-t,\-T,\-V,\-x\fR must be given. -.IP "\fB\-a\fR" 4 -.IX Item "-a" -.PD 0 -.IP "\fB\-\-archive\-header\fR" 4 -.IX Item "--archive-header" -.PD -If any of the \fIobjfile\fR files are archives, display the archive -header information (in a format similar to \fBls \-l\fR). Besides the -information you could list with \fBar tv\fR, \fBobjdump \-a\fR shows -the object file format of each archive member. -.IP "\fB\-\-adjust\-vma=\fR\fIoffset\fR" 4 -.IX Item "--adjust-vma=offset" -When dumping information, first add \fIoffset\fR to all the section -addresses. This is useful if the section addresses do not correspond to -the symbol table, which can happen when putting sections at particular -addresses when using a format which can not represent section addresses, -such as a.out. -.IP "\fB\-b\fR \fIbfdname\fR" 4 -.IX Item "-b bfdname" -.PD 0 -.IP "\fB\-\-target=\fR\fIbfdname\fR" 4 -.IX Item "--target=bfdname" -.PD -Specify that the object-code format for the object files is -\&\fIbfdname\fR. This option may not be necessary; \fIobjdump\fR can -automatically recognize many formats. -.Sp -For example, -.Sp -.Vb 1 -\& objdump -b oasys -m vax -h fu.o -.Ve -.Sp -displays summary information from the section headers (\fB\-h\fR) of -\&\fIfu.o\fR, which is explicitly identified (\fB\-m\fR) as a \s-1VAX\s0 object -file in the format produced by Oasys compilers. You can list the -formats available with the \fB\-i\fR option. -.IP "\fB\-C\fR" 4 -.IX Item "-C" -.PD 0 -.IP "\fB\-\-demangle[=\fR\fIstyle\fR\fB]\fR" 4 -.IX Item "--demangle[=style]" -.PD -Decode (\fIdemangle\fR) low-level symbol names into user-level names. -Besides removing any initial underscore prepended by the system, this -makes \*(C+ function names readable. Different compilers have different -mangling styles. The optional demangling style argument can be used to -choose an appropriate demangling style for your compiler. -.IP "\fB\-g\fR" 4 -.IX Item "-g" -.PD 0 -.IP "\fB\-\-debugging\fR" 4 -.IX Item "--debugging" -.PD -Display debugging information. This attempts to parse debugging -information stored in the file and print it out using a C like syntax. -Only certain types of debugging information have been implemented. -Some other types are supported by \fBreadelf \-w\fR. -.IP "\fB\-e\fR" 4 -.IX Item "-e" -.PD 0 -.IP "\fB\-\-debugging\-tags\fR" 4 -.IX Item "--debugging-tags" -.PD -Like \fB\-g\fR, but the information is generated in a format compatible -with ctags tool. -.IP "\fB\-d\fR" 4 -.IX Item "-d" -.PD 0 -.IP "\fB\-\-disassemble\fR" 4 -.IX Item "--disassemble" -.PD -Display the assembler mnemonics for the machine instructions from -\&\fIobjfile\fR. This option only disassembles those sections which are -expected to contain instructions. -.IP "\fB\-D\fR" 4 -.IX Item "-D" -.PD 0 -.IP "\fB\-\-disassemble\-all\fR" 4 -.IX Item "--disassemble-all" -.PD -Like \fB\-d\fR, but disassemble the contents of all sections, not just -those expected to contain instructions. -.IP "\fB\-\-prefix\-addresses\fR" 4 -.IX Item "--prefix-addresses" -When disassembling, print the complete address on each line. This is -the older disassembly format. -.IP "\fB\-EB\fR" 4 -.IX Item "-EB" -.PD 0 -.IP "\fB\-EL\fR" 4 -.IX Item "-EL" -.IP "\fB\-\-endian={big|little}\fR" 4 -.IX Item "--endian={big|little}" -.PD -Specify the endianness of the object files. This only affects -disassembly. This can be useful when disassembling a file format which -does not describe endianness information, such as S\-records. -.IP "\fB\-f\fR" 4 -.IX Item "-f" -.PD 0 -.IP "\fB\-\-file\-headers\fR" 4 -.IX Item "--file-headers" -.PD -Display summary information from the overall header of -each of the \fIobjfile\fR files. -.IP "\fB\-\-file\-start\-context\fR" 4 -.IX Item "--file-start-context" -Specify that when displaying interlisted source code/disassembly -(assumes \fB\-S\fR) from a file that has not yet been displayed, extend the -context to the start of the file. -.IP "\fB\-h\fR" 4 -.IX Item "-h" -.PD 0 -.IP "\fB\-\-section\-headers\fR" 4 -.IX Item "--section-headers" -.IP "\fB\-\-headers\fR" 4 -.IX Item "--headers" -.PD -Display summary information from the section headers of the -object file. -.Sp -File segments may be relocated to nonstandard addresses, for example by -using the \fB\-Ttext\fR, \fB\-Tdata\fR, or \fB\-Tbss\fR options to -\&\fBld\fR. However, some object file formats, such as a.out, do not -store the starting address of the file segments. In those situations, -although \fBld\fR relocates the sections correctly, using \fBobjdump -\&\-h\fR to list the file section headers cannot show the correct addresses. -Instead, it shows the usual addresses, which are implicit for the -target. -.IP "\fB\-H\fR" 4 -.IX Item "-H" -.PD 0 -.IP "\fB\-\-help\fR" 4 -.IX Item "--help" -.PD -Print a summary of the options to \fBobjdump\fR and exit. -.IP "\fB\-i\fR" 4 -.IX Item "-i" -.PD 0 -.IP "\fB\-\-info\fR" 4 -.IX Item "--info" -.PD -Display a list showing all architectures and object formats available -for specification with \fB\-b\fR or \fB\-m\fR. -.IP "\fB\-j\fR \fIname\fR" 4 -.IX Item "-j name" -.PD 0 -.IP "\fB\-\-section=\fR\fIname\fR" 4 -.IX Item "--section=name" -.PD -Display information only for section \fIname\fR. -.IP "\fB\-l\fR" 4 -.IX Item "-l" -.PD 0 -.IP "\fB\-\-line\-numbers\fR" 4 -.IX Item "--line-numbers" -.PD -Label the display (using debugging information) with the filename and -source line numbers corresponding to the object code or relocs shown. -Only useful with \fB\-d\fR, \fB\-D\fR, or \fB\-r\fR. -.IP "\fB\-m\fR \fImachine\fR" 4 -.IX Item "-m machine" -.PD 0 -.IP "\fB\-\-architecture=\fR\fImachine\fR" 4 -.IX Item "--architecture=machine" -.PD -Specify the architecture to use when disassembling object files. This -can be useful when disassembling object files which do not describe -architecture information, such as S\-records. You can list the available -architectures with the \fB\-i\fR option. -.IP "\fB\-M\fR \fIoptions\fR" 4 -.IX Item "-M options" -.PD 0 -.IP "\fB\-\-disassembler\-options=\fR\fIoptions\fR" 4 -.IX Item "--disassembler-options=options" -.PD -Pass target specific information to the disassembler. Only supported on -some targets. If it is necessary to specify more than one -disassembler option then multiple \fB\-M\fR options can be used or -can be placed together into a comma separated list. -.Sp -If the target is an \s-1ARM\s0 architecture then this switch can be used to -select which register name set is used during disassembler. Specifying -\&\fB\-M reg-name-std\fR (the default) will select the register names as -used in \s-1ARM\s0's instruction set documentation, but with register 13 called -\&'sp', register 14 called 'lr' and register 15 called 'pc'. Specifying -\&\fB\-M reg-names-apcs\fR will select the name set used by the \s-1ARM\s0 -Procedure Call Standard, whilst specifying \fB\-M reg-names-raw\fR will -just use \fBr\fR followed by the register number. -.Sp -There are also two variants on the \s-1APCS\s0 register naming scheme enabled -by \fB\-M reg-names-atpcs\fR and \fB\-M reg-names-special-atpcs\fR which -use the ARM/Thumb Procedure Call Standard naming conventions. (Either -with the normal register names or the special register names). -.Sp -This option can also be used for \s-1ARM\s0 architectures to force the -disassembler to interpret all instructions as Thumb instructions by -using the switch \fB\-\-disassembler\-options=force\-thumb\fR. This can be -useful when attempting to disassemble thumb code produced by other -compilers. -.Sp -For the x86, some of the options duplicate functions of the \fB\-m\fR -switch, but allow finer grained control. Multiple selections from the -following may be specified as a comma separated string. -\&\fBx86\-64\fR, \fBi386\fR and \fBi8086\fR select disassembly for -the given architecture. \fBintel\fR and \fBatt\fR select between -intel syntax mode and \s-1AT&T\s0 syntax mode. \fBaddr32\fR, -\&\fBaddr16\fR, \fBdata32\fR and \fBdata16\fR specify the default -address size and operand size. These four options will be overridden if -\&\fBx86\-64\fR, \fBi386\fR or \fBi8086\fR appear later in the -option string. Lastly, \fBsuffix\fR, when in \s-1AT&T\s0 mode, -instructs the disassembler to print a mnemonic suffix even when the -suffix could be inferred by the operands. -.Sp -For \s-1PPC\s0, \fBbooke\fR, \fBbooke32\fR and \fBbooke64\fR select -disassembly of BookE instructions. \fB32\fR and \fB64\fR select -PowerPC and PowerPC64 disassembly, respectively. -.Sp -For \s-1MIPS\s0, this option controls the printing of instruction mneumonic -names and register names in disassembled instructions. Multiple -selections from the following may be specified as a comma separated -string, and invalid options are ignored: -.RS 4 -.ie n .IP """no\-aliases""" 4 -.el .IP "\f(CWno\-aliases\fR" 4 -.IX Item "no-aliases" -Print the 'raw' instruction mneumonic instead of some pseudo -instruction mneumonic. I.E. print 'daddu' or 'or' instead of 'move', -\&'sll' instead of 'nop', etc. -.ie n .IP """gpr\-names=\f(CI\s-1ABI\s0\f(CW""" 4 -.el .IP "\f(CWgpr\-names=\f(CI\s-1ABI\s0\f(CW\fR" 4 -.IX Item "gpr-names=ABI" -Print \s-1GPR\s0 (general\-purpose register) names as appropriate -for the specified \s-1ABI\s0. By default, \s-1GPR\s0 names are selected according to -the \s-1ABI\s0 of the binary being disassembled. -.ie n .IP """fpr\-names=\f(CI\s-1ABI\s0\f(CW""" 4 -.el .IP "\f(CWfpr\-names=\f(CI\s-1ABI\s0\f(CW\fR" 4 -.IX Item "fpr-names=ABI" -Print \s-1FPR\s0 (floating\-point register) names as -appropriate for the specified \s-1ABI\s0. By default, \s-1FPR\s0 numbers are printed -rather than names. -.ie n .IP """cp0\-names=\f(CI\s-1ARCH\s0\f(CW""" 4 -.el .IP "\f(CWcp0\-names=\f(CI\s-1ARCH\s0\f(CW\fR" 4 -.IX Item "cp0-names=ARCH" -Print \s-1CP0\s0 (system control coprocessor; coprocessor 0) register names -as appropriate for the \s-1CPU\s0 or architecture specified by -\&\fI\s-1ARCH\s0\fR. By default, \s-1CP0\s0 register names are selected according to -the architecture and \s-1CPU\s0 of the binary being disassembled. -.ie n .IP """hwr\-names=\f(CI\s-1ARCH\s0\f(CW""" 4 -.el .IP "\f(CWhwr\-names=\f(CI\s-1ARCH\s0\f(CW\fR" 4 -.IX Item "hwr-names=ARCH" -Print \s-1HWR\s0 (hardware register, used by the \f(CW\*(C`rdhwr\*(C'\fR instruction) names -as appropriate for the \s-1CPU\s0 or architecture specified by -\&\fI\s-1ARCH\s0\fR. By default, \s-1HWR\s0 names are selected according to -the architecture and \s-1CPU\s0 of the binary being disassembled. -.ie n .IP """reg\-names=\f(CI\s-1ABI\s0\f(CW""" 4 -.el .IP "\f(CWreg\-names=\f(CI\s-1ABI\s0\f(CW\fR" 4 -.IX Item "reg-names=ABI" -Print \s-1GPR\s0 and \s-1FPR\s0 names as appropriate for the selected \s-1ABI\s0. -.ie n .IP """reg\-names=\f(CI\s-1ARCH\s0\f(CW""" 4 -.el .IP "\f(CWreg\-names=\f(CI\s-1ARCH\s0\f(CW\fR" 4 -.IX Item "reg-names=ARCH" -Print CPU-specific register names (\s-1CP0\s0 register and \s-1HWR\s0 names) -as appropriate for the selected \s-1CPU\s0 or architecture. -.RE -.RS 4 -.Sp -For any of the options listed above, \fI\s-1ABI\s0\fR or -\&\fI\s-1ARCH\s0\fR may be specified as \fBnumeric\fR to have numbers printed -rather than names, for the selected types of registers. -You can list the available values of \fI\s-1ABI\s0\fR and \fI\s-1ARCH\s0\fR using -the \fB\-\-help\fR option. -.RE -.IP "\fB\-p\fR" 4 -.IX Item "-p" -.PD 0 -.IP "\fB\-\-private\-headers\fR" 4 -.IX Item "--private-headers" -.PD -Print information that is specific to the object file format. The exact -information printed depends upon the object file format. For some -object file formats, no additional information is printed. -.IP "\fB\-r\fR" 4 -.IX Item "-r" -.PD 0 -.IP "\fB\-\-reloc\fR" 4 -.IX Item "--reloc" -.PD -Print the relocation entries of the file. If used with \fB\-d\fR or -\&\fB\-D\fR, the relocations are printed interspersed with the -disassembly. -.IP "\fB\-R\fR" 4 -.IX Item "-R" -.PD 0 -.IP "\fB\-\-dynamic\-reloc\fR" 4 -.IX Item "--dynamic-reloc" -.PD -Print the dynamic relocation entries of the file. This is only -meaningful for dynamic objects, such as certain types of shared -libraries. -.IP "\fB\-s\fR" 4 -.IX Item "-s" -.PD 0 -.IP "\fB\-\-full\-contents\fR" 4 -.IX Item "--full-contents" -.PD -Display the full contents of any sections requested. By default all -non-empty sections are displayed. -.IP "\fB\-S\fR" 4 -.IX Item "-S" -.PD 0 -.IP "\fB\-\-source\fR" 4 -.IX Item "--source" -.PD -Display source code intermixed with disassembly, if possible. Implies -\&\fB\-d\fR. -.IP "\fB\-\-show\-raw\-insn\fR" 4 -.IX Item "--show-raw-insn" -When disassembling instructions, print the instruction in hex as well as -in symbolic form. This is the default except when -\&\fB\-\-prefix\-addresses\fR is used. -.IP "\fB\-\-no\-show\-raw\-insn\fR" 4 -.IX Item "--no-show-raw-insn" -When disassembling instructions, do not print the instruction bytes. -This is the default when \fB\-\-prefix\-addresses\fR is used. -.IP "\fB\-G\fR" 4 -.IX Item "-G" -.PD 0 -.IP "\fB\-\-stabs\fR" 4 -.IX Item "--stabs" -.PD -Display the full contents of any sections requested. Display the -contents of the .stab and .stab.index and .stab.excl sections from an -\&\s-1ELF\s0 file. This is only useful on systems (such as Solaris 2.0) in which -\&\f(CW\*(C`.stab\*(C'\fR debugging symbol-table entries are carried in an \s-1ELF\s0 -section. In most other file formats, debugging symbol-table entries are -interleaved with linkage symbols, and are visible in the \fB\-\-syms\fR -output. -.IP "\fB\-\-start\-address=\fR\fIaddress\fR" 4 -.IX Item "--start-address=address" -Start displaying data at the specified address. This affects the output -of the \fB\-d\fR, \fB\-r\fR and \fB\-s\fR options. -.IP "\fB\-\-stop\-address=\fR\fIaddress\fR" 4 -.IX Item "--stop-address=address" -Stop displaying data at the specified address. This affects the output -of the \fB\-d\fR, \fB\-r\fR and \fB\-s\fR options. -.IP "\fB\-t\fR" 4 -.IX Item "-t" -.PD 0 -.IP "\fB\-\-syms\fR" 4 -.IX Item "--syms" -.PD -Print the symbol table entries of the file. -This is similar to the information provided by the \fBnm\fR program. -.IP "\fB\-T\fR" 4 -.IX Item "-T" -.PD 0 -.IP "\fB\-\-dynamic\-syms\fR" 4 -.IX Item "--dynamic-syms" -.PD -Print the dynamic symbol table entries of the file. This is only -meaningful for dynamic objects, such as certain types of shared -libraries. This is similar to the information provided by the \fBnm\fR -program when given the \fB\-D\fR (\fB\-\-dynamic\fR) option. -.IP "\fB\-\-special\-syms\fR" 4 -.IX Item "--special-syms" -When displaying symbols include those which the target considers to be -special in some way and which would not normally be of interest to the -user. -.IP "\fB\-V\fR" 4 -.IX Item "-V" -.PD 0 -.IP "\fB\-\-version\fR" 4 -.IX Item "--version" -.PD -Print the version number of \fBobjdump\fR and exit. -.IP "\fB\-x\fR" 4 -.IX Item "-x" -.PD 0 -.IP "\fB\-\-all\-headers\fR" 4 -.IX Item "--all-headers" -.PD -Display all available header information, including the symbol table and -relocation entries. Using \fB\-x\fR is equivalent to specifying all of -\&\fB\-a \-f \-h \-p \-r \-t\fR. -.IP "\fB\-w\fR" 4 -.IX Item "-w" -.PD 0 -.IP "\fB\-\-wide\fR" 4 -.IX Item "--wide" -.PD -Format some lines for output devices that have more than 80 columns. -Also do not truncate symbol names when they are displayed. -.IP "\fB\-z\fR" 4 -.IX Item "-z" -.PD 0 -.IP "\fB\-\-disassemble\-zeroes\fR" 4 -.IX Item "--disassemble-zeroes" -.PD -Normally the disassembly output will skip blocks of zeroes. This -option directs the disassembler to disassemble those blocks, just like -any other data. -.SH "SEE ALSO" -.IX Header "SEE ALSO" -\&\fInm\fR\|(1), \fIreadelf\fR\|(1), and the Info entries for \fIbinutils\fR. -.SH "COPYRIGHT" -.IX Header "COPYRIGHT" -Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -.PP -Permission is granted to copy, distribute and/or modify this document -under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1 -or any later version published by the Free Software Foundation; -with no Invariant Sections, with no Front-Cover Texts, and with no -Back-Cover Texts. A copy of the license is included in the -section entitled ``\s-1GNU\s0 Free Documentation License''. diff --git a/binutils/doc/ranlib.1 b/binutils/doc/ranlib.1 deleted file mode 100644 index 33d38430119..00000000000 --- a/binutils/doc/ranlib.1 +++ /dev/null @@ -1,175 +0,0 @@ -.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 -.\" -.\" 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 -.. -.de Vb \" Begin verbatim text -.ft CW -.nf -.ne \\$1 -.. -.de Ve \" End verbatim text -.ft R -.fi -.. -.\" 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 -.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' -.ie n \{\ -. ds -- \(*W- -. ds PI pi -. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch -. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch -. ds L" "" -. ds R" "" -. ds C` "" -. ds C' "" -'br\} -.el\{\ -. ds -- \|\(em\| -. ds PI \(*p -. ds L" `` -. ds R" '' -'br\} -.\" -.\" 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 -.\" 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 -.\" -.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). -.\" Fear. Run. Save yourself. No user-serviceable parts. -. \" fudge factors for nroff and troff -.if n \{\ -. ds #H 0 -. ds #V .8m -. ds #F .3m -. ds #[ \f1 -. ds #] \fP -.\} -.if t \{\ -. ds #H ((1u-(\\\\n(.fu%2u))*.13m) -. ds #V .6m -. ds #F 0 -. ds #[ \& -. ds #] \& -.\} -. \" simple accents for nroff and troff -.if n \{\ -. ds ' \& -. ds ` \& -. ds ^ \& -. ds , \& -. ds ~ ~ -. ds / -.\} -.if t \{\ -. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" -. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' -. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' -. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' -. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' -. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' -.\} -. \" troff and (daisy-wheel) nroff accents -.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' -.ds 8 \h'\*(#H'\(*b\h'-\*(#H' -.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] -.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' -.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' -.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] -.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] -.ds ae a\h'-(\w'a'u*4/10)'e -.ds Ae A\h'-(\w'A'u*4/10)'E -. \" corrections for vroff -.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' -.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' -. \" for low resolution devices (crt and lpr) -.if \n(.H>23 .if \n(.V>19 \ -\{\ -. ds : e -. ds 8 ss -. ds o a -. ds d- d\h'-1'\(ga -. ds D- D\h'-1'\(hy -. ds th \o'bp' -. ds Th \o'LP' -. ds ae ae -. ds Ae AE -.\} -.rm #[ #] #H #V #F C -.\" ======================================================================== -.\" -.IX Title "RANLIB 1" -.TH RANLIB 1 "2005-03-08" "binutils-2.15.96" "GNU Development Tools" -.SH "NAME" -ranlib \- generate index to archive. -.SH "SYNOPSIS" -.IX Header "SYNOPSIS" -ranlib [\fB\-vV\fR] \fIarchive\fR -.SH "DESCRIPTION" -.IX Header "DESCRIPTION" -\&\fBranlib\fR generates an index to the contents of an archive and -stores it in the archive. The index lists each symbol defined by a -member of an archive that is a relocatable object file. -.PP -You may use \fBnm \-s\fR or \fBnm \-\-print\-armap\fR to list this index. -.PP -An archive with such an index speeds up linking to the library and -allows routines in the library to call each other without regard to -their placement in the archive. -.PP -The \s-1GNU\s0 \fBranlib\fR program is another form of \s-1GNU\s0 \fBar\fR; running -\&\fBranlib\fR is completely equivalent to executing \fBar \-s\fR. -.SH "OPTIONS" -.IX Header "OPTIONS" -.IP "\fB\-v\fR" 4 -.IX Item "-v" -.PD 0 -.IP "\fB\-V\fR" 4 -.IX Item "-V" -.IP "\fB\-\-version\fR" 4 -.IX Item "--version" -.PD -Show the version number of \fBranlib\fR. -.SH "SEE ALSO" -.IX Header "SEE ALSO" -\&\fIar\fR\|(1), \fInm\fR\|(1), and the Info entries for \fIbinutils\fR. -.SH "COPYRIGHT" -.IX Header "COPYRIGHT" -Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -.PP -Permission is granted to copy, distribute and/or modify this document -under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1 -or any later version published by the Free Software Foundation; -with no Invariant Sections, with no Front-Cover Texts, and with no -Back-Cover Texts. A copy of the license is included in the -section entitled ``\s-1GNU\s0 Free Documentation License''. diff --git a/binutils/doc/readelf.1 b/binutils/doc/readelf.1 deleted file mode 100644 index f430df09c6d..00000000000 --- a/binutils/doc/readelf.1 +++ /dev/null @@ -1,352 +0,0 @@ -.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 -.\" -.\" 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 -.. -.de Vb \" Begin verbatim text -.ft CW -.nf -.ne \\$1 -.. -.de Ve \" End verbatim text -.ft R -.fi -.. -.\" 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 -.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' -.ie n \{\ -. ds -- \(*W- -. ds PI pi -. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch -. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch -. ds L" "" -. ds R" "" -. ds C` "" -. ds C' "" -'br\} -.el\{\ -. ds -- \|\(em\| -. ds PI \(*p -. ds L" `` -. ds R" '' -'br\} -.\" -.\" 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 -.\" 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 -.\" -.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). -.\" Fear. Run. Save yourself. No user-serviceable parts. -. \" fudge factors for nroff and troff -.if n \{\ -. ds #H 0 -. ds #V .8m -. ds #F .3m -. ds #[ \f1 -. ds #] \fP -.\} -.if t \{\ -. ds #H ((1u-(\\\\n(.fu%2u))*.13m) -. ds #V .6m -. ds #F 0 -. ds #[ \& -. ds #] \& -.\} -. \" simple accents for nroff and troff -.if n \{\ -. ds ' \& -. ds ` \& -. ds ^ \& -. ds , \& -. ds ~ ~ -. ds / -.\} -.if t \{\ -. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" -. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' -. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' -. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' -. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' -. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' -.\} -. \" troff and (daisy-wheel) nroff accents -.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' -.ds 8 \h'\*(#H'\(*b\h'-\*(#H' -.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] -.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' -.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' -.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] -.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] -.ds ae a\h'-(\w'a'u*4/10)'e -.ds Ae A\h'-(\w'A'u*4/10)'E -. \" corrections for vroff -.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' -.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' -. \" for low resolution devices (crt and lpr) -.if \n(.H>23 .if \n(.V>19 \ -\{\ -. ds : e -. ds 8 ss -. ds o a -. ds d- d\h'-1'\(ga -. ds D- D\h'-1'\(hy -. ds th \o'bp' -. ds Th \o'LP' -. ds ae ae -. ds Ae AE -.\} -.rm #[ #] #H #V #F C -.\" ======================================================================== -.\" -.IX Title "READELF 1" -.TH READELF 1 "2005-03-08" "binutils-2.15.96" "GNU Development Tools" -.SH "NAME" -readelf \- Displays information about ELF files. -.SH "SYNOPSIS" -.IX Header "SYNOPSIS" -readelf [\fB\-a\fR|\fB\-\-all\fR] - [\fB\-h\fR|\fB\-\-file\-header\fR] - [\fB\-l\fR|\fB\-\-program\-headers\fR|\fB\-\-segments\fR] - [\fB\-S\fR|\fB\-\-section\-headers\fR|\fB\-\-sections\fR] - [\fB\-e\fR|\fB\-\-headers\fR] - [\fB\-s\fR|\fB\-\-syms\fR|\fB\-\-symbols\fR] - [\fB\-n\fR|\fB\-\-notes\fR] - [\fB\-r\fR|\fB\-\-relocs\fR] - [\fB\-u\fR|\fB\-\-unwind\fR] - [\fB\-d\fR|\fB\-\-dynamic\fR] - [\fB\-V\fR|\fB\-\-version\-info\fR] - [\fB\-A\fR|\fB\-\-arch\-specific\fR] - [\fB\-D\fR|\fB\-\-use\-dynamic\fR] - [\fB\-x\fR |\fB\-\-hex\-dump=\fR] - [\fB\-w[liaprmfFsoR]\fR| - \fB\-\-debug\-dump\fR[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames\-interp,=str,=loc,=Ranges]] - [\fB\-I\fR|\fB\-histogram\fR] - [\fB\-v\fR|\fB\-\-version\fR] - [\fB\-W\fR|\fB\-\-wide\fR] - [\fB\-H\fR|\fB\-\-help\fR] - \fIelffile\fR... -.SH "DESCRIPTION" -.IX Header "DESCRIPTION" -\&\fBreadelf\fR displays information about one or more \s-1ELF\s0 format object -files. The options control what particular information to display. -.PP -\&\fIelffile\fR... are the object files to be examined. 32\-bit and -64\-bit \s-1ELF\s0 files are supported, as are archives containing \s-1ELF\s0 files. -.PP -This program performs a similar function to \fBobjdump\fR but it -goes into more detail and it exists independently of the \s-1BFD\s0 -library, so if there is a bug in \s-1BFD\s0 then readelf will not be -affected. -.SH "OPTIONS" -.IX Header "OPTIONS" -The long and short forms of options, shown here as alternatives, are -equivalent. At least one option besides \fB\-v\fR or \fB\-H\fR must be -given. -.IP "\fB\-a\fR" 4 -.IX Item "-a" -.PD 0 -.IP "\fB\-\-all\fR" 4 -.IX Item "--all" -.PD -Equivalent to specifiying \fB\-\-file\-header\fR, -\&\fB\-\-program\-headers\fR, \fB\-\-sections\fR, \fB\-\-symbols\fR, -\&\fB\-\-relocs\fR, \fB\-\-dynamic\fR, \fB\-\-notes\fR and -\&\fB\-\-version\-info\fR. -.IP "\fB\-h\fR" 4 -.IX Item "-h" -.PD 0 -.IP "\fB\-\-file\-header\fR" 4 -.IX Item "--file-header" -.PD -Displays the information contained in the \s-1ELF\s0 header at the start of the -file. -.IP "\fB\-l\fR" 4 -.IX Item "-l" -.PD 0 -.IP "\fB\-\-program\-headers\fR" 4 -.IX Item "--program-headers" -.IP "\fB\-\-segments\fR" 4 -.IX Item "--segments" -.PD -Displays the information contained in the file's segment headers, if it -has any. -.IP "\fB\-S\fR" 4 -.IX Item "-S" -.PD 0 -.IP "\fB\-\-sections\fR" 4 -.IX Item "--sections" -.IP "\fB\-\-section\-headers\fR" 4 -.IX Item "--section-headers" -.PD -Displays the information contained in the file's section headers, if it -has any. -.IP "\fB\-s\fR" 4 -.IX Item "-s" -.PD 0 -.IP "\fB\-\-symbols\fR" 4 -.IX Item "--symbols" -.IP "\fB\-\-syms\fR" 4 -.IX Item "--syms" -.PD -Displays the entries in symbol table section of the file, if it has one. -.IP "\fB\-e\fR" 4 -.IX Item "-e" -.PD 0 -.IP "\fB\-\-headers\fR" 4 -.IX Item "--headers" -.PD -Display all the headers in the file. Equivalent to \fB\-h \-l \-S\fR. -.IP "\fB\-n\fR" 4 -.IX Item "-n" -.PD 0 -.IP "\fB\-\-notes\fR" 4 -.IX Item "--notes" -.PD -Displays the contents of the \s-1NOTE\s0 segments and/or sections, if any. -.IP "\fB\-r\fR" 4 -.IX Item "-r" -.PD 0 -.IP "\fB\-\-relocs\fR" 4 -.IX Item "--relocs" -.PD -Displays the contents of the file's relocation section, if it has one. -.IP "\fB\-u\fR" 4 -.IX Item "-u" -.PD 0 -.IP "\fB\-\-unwind\fR" 4 -.IX Item "--unwind" -.PD -Displays the contents of the file's unwind section, if it has one. Only -the unwind sections for \s-1IA64\s0 \s-1ELF\s0 files are currently supported. -.IP "\fB\-u\fR" 4 -.IX Item "-u" -.PD 0 -.IP "\fB\-\-unwind\fR" 4 -.IX Item "--unwind" -.PD -Displays the contents of the file's unwind section, if it has one. Only -the unwind sections for \s-1IA64\s0 \s-1ELF\s0 files are currently supported. -.IP "\fB\-d\fR" 4 -.IX Item "-d" -.PD 0 -.IP "\fB\-\-dynamic\fR" 4 -.IX Item "--dynamic" -.PD -Displays the contents of the file's dynamic section, if it has one. -.IP "\fB\-V\fR" 4 -.IX Item "-V" -.PD 0 -.IP "\fB\-\-version\-info\fR" 4 -.IX Item "--version-info" -.PD -Displays the contents of the version sections in the file, it they -exist. -.IP "\fB\-A\fR" 4 -.IX Item "-A" -.PD 0 -.IP "\fB\-\-arch\-specific\fR" 4 -.IX Item "--arch-specific" -.PD -Displays architecture-specific information in the file, if there -is any. -.IP "\fB\-D\fR" 4 -.IX Item "-D" -.PD 0 -.IP "\fB\-\-use\-dynamic\fR" 4 -.IX Item "--use-dynamic" -.PD -When displaying symbols, this option makes \fBreadelf\fR use the -symbol table in the file's dynamic section, rather than the one in the -symbols section. -.IP "\fB\-x \fR" 4 -.IX Item "-x " -.PD 0 -.IP "\fB\-\-hex\-dump=\fR" 4 -.IX Item "--hex-dump=" -.PD -Displays the contents of the indicated section as a hexadecimal dump. -.IP "\fB\-w[liaprmfFsoR]\fR" 4 -.IX Item "-w[liaprmfFsoR]" -.PD 0 -.IP "\fB\-\-debug\-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames\-interp,=str,=loc,=Ranges]\fR" 4 -.IX Item "--debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges]" -.PD -Displays the contents of the debug sections in the file, if any are -present. If one of the optional letters or words follows the switch -then only data found in those specific sections will be dumped. -.IP "\fB\-I\fR" 4 -.IX Item "-I" -.PD 0 -.IP "\fB\-\-histogram\fR" 4 -.IX Item "--histogram" -.PD -Display a histogram of bucket list lengths when displaying the contents -of the symbol tables. -.IP "\fB\-v\fR" 4 -.IX Item "-v" -.PD 0 -.IP "\fB\-\-version\fR" 4 -.IX Item "--version" -.PD -Display the version number of readelf. -.IP "\fB\-W\fR" 4 -.IX Item "-W" -.PD 0 -.IP "\fB\-\-wide\fR" 4 -.IX Item "--wide" -.PD -Don't break output lines to fit into 80 columns. By default -\&\fBreadelf\fR breaks section header and segment listing lines for -64\-bit \s-1ELF\s0 files, so that they fit into 80 columns. This option causes -\&\fBreadelf\fR to print each section header resp. each segment one a -single line, which is far more readable on terminals wider than 80 columns. -.IP "\fB\-H\fR" 4 -.IX Item "-H" -.PD 0 -.IP "\fB\-\-help\fR" 4 -.IX Item "--help" -.PD -Display the command line options understood by \fBreadelf\fR. -.SH "SEE ALSO" -.IX Header "SEE ALSO" -\&\fIobjdump\fR\|(1), and the Info entries for \fIbinutils\fR. -.SH "COPYRIGHT" -.IX Header "COPYRIGHT" -Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -.PP -Permission is granted to copy, distribute and/or modify this document -under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1 -or any later version published by the Free Software Foundation; -with no Invariant Sections, with no Front-Cover Texts, and with no -Back-Cover Texts. A copy of the license is included in the -section entitled ``\s-1GNU\s0 Free Documentation License''. diff --git a/binutils/doc/size.1 b/binutils/doc/size.1 deleted file mode 100644 index a3f55c852c1..00000000000 --- a/binutils/doc/size.1 +++ /dev/null @@ -1,250 +0,0 @@ -.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 -.\" -.\" 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 -.. -.de Vb \" Begin verbatim text -.ft CW -.nf -.ne \\$1 -.. -.de Ve \" End verbatim text -.ft R -.fi -.. -.\" 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 -.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' -.ie n \{\ -. ds -- \(*W- -. ds PI pi -. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch -. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch -. ds L" "" -. ds R" "" -. ds C` "" -. ds C' "" -'br\} -.el\{\ -. ds -- \|\(em\| -. ds PI \(*p -. ds L" `` -. ds R" '' -'br\} -.\" -.\" 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 -.\" 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 -.\" -.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). -.\" Fear. Run. Save yourself. No user-serviceable parts. -. \" fudge factors for nroff and troff -.if n \{\ -. ds #H 0 -. ds #V .8m -. ds #F .3m -. ds #[ \f1 -. ds #] \fP -.\} -.if t \{\ -. ds #H ((1u-(\\\\n(.fu%2u))*.13m) -. ds #V .6m -. ds #F 0 -. ds #[ \& -. ds #] \& -.\} -. \" simple accents for nroff and troff -.if n \{\ -. ds ' \& -. ds ` \& -. ds ^ \& -. ds , \& -. ds ~ ~ -. ds / -.\} -.if t \{\ -. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" -. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' -. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' -. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' -. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' -. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' -.\} -. \" troff and (daisy-wheel) nroff accents -.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' -.ds 8 \h'\*(#H'\(*b\h'-\*(#H' -.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] -.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' -.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' -.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] -.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] -.ds ae a\h'-(\w'a'u*4/10)'e -.ds Ae A\h'-(\w'A'u*4/10)'E -. \" corrections for vroff -.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' -.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' -. \" for low resolution devices (crt and lpr) -.if \n(.H>23 .if \n(.V>19 \ -\{\ -. ds : e -. ds 8 ss -. ds o a -. ds d- d\h'-1'\(ga -. ds D- D\h'-1'\(hy -. ds th \o'bp' -. ds Th \o'LP' -. ds ae ae -. ds Ae AE -.\} -.rm #[ #] #H #V #F C -.\" ======================================================================== -.\" -.IX Title "SIZE 1" -.TH SIZE 1 "2005-03-08" "binutils-2.15.96" "GNU Development Tools" -.SH "NAME" -size \- list section sizes and total size. -.SH "SYNOPSIS" -.IX Header "SYNOPSIS" -size [\fB\-A\fR|\fB\-B\fR|\fB\-\-format=\fR\fIcompatibility\fR] - [\fB\-\-help\fR] - [\fB\-d\fR|\fB\-o\fR|\fB\-x\fR|\fB\-\-radix=\fR\fInumber\fR] - [\fB\-t\fR|\fB\-\-totals\fR] - [\fB\-\-target=\fR\fIbfdname\fR] [\fB\-V\fR|\fB\-\-version\fR] - [\fIobjfile\fR...] -.SH "DESCRIPTION" -.IX Header "DESCRIPTION" -The \s-1GNU\s0 \fBsize\fR utility lists the section sizes\-\-\-and the total -size\-\-\-for each of the object or archive files \fIobjfile\fR in its -argument list. By default, one line of output is generated for each -object file or each module in an archive. -.PP -\&\fIobjfile\fR... are the object files to be examined. -If none are specified, the file \f(CW\*(C`a.out\*(C'\fR will be used. -.SH "OPTIONS" -.IX Header "OPTIONS" -The command line options have the following meanings: -.IP "\fB\-A\fR" 4 -.IX Item "-A" -.PD 0 -.IP "\fB\-B\fR" 4 -.IX Item "-B" -.IP "\fB\-\-format=\fR\fIcompatibility\fR" 4 -.IX Item "--format=compatibility" -.PD -Using one of these options, you can choose whether the output from \s-1GNU\s0 -\&\fBsize\fR resembles output from System V \fBsize\fR (using \fB\-A\fR, -or \fB\-\-format=sysv\fR), or Berkeley \fBsize\fR (using \fB\-B\fR, or -\&\fB\-\-format=berkeley\fR). The default is the one-line format similar to -Berkeley's. -.Sp -Here is an example of the Berkeley (default) format of output from -\&\fBsize\fR: -.Sp -.Vb 4 -\& $ size --format=Berkeley ranlib size -\& text data bss dec hex filename -\& 294880 81920 11592 388392 5ed28 ranlib -\& 294880 81920 11888 388688 5ee50 size -.Ve -.Sp -This is the same data, but displayed closer to System V conventions: -.Sp -.Vb 7 -\& $ size --format=SysV ranlib size -\& ranlib : -\& section size addr -\& .text 294880 8192 -\& .data 81920 303104 -\& .bss 11592 385024 -\& Total 388392 -.Ve -.Sp -.Vb 6 -\& size : -\& section size addr -\& .text 294880 8192 -\& .data 81920 303104 -\& .bss 11888 385024 -\& Total 388688 -.Ve -.IP "\fB\-\-help\fR" 4 -.IX Item "--help" -Show a summary of acceptable arguments and options. -.IP "\fB\-d\fR" 4 -.IX Item "-d" -.PD 0 -.IP "\fB\-o\fR" 4 -.IX Item "-o" -.IP "\fB\-x\fR" 4 -.IX Item "-x" -.IP "\fB\-\-radix=\fR\fInumber\fR" 4 -.IX Item "--radix=number" -.PD -Using one of these options, you can control whether the size of each -section is given in decimal (\fB\-d\fR, or \fB\-\-radix=10\fR); octal -(\fB\-o\fR, or \fB\-\-radix=8\fR); or hexadecimal (\fB\-x\fR, or -\&\fB\-\-radix=16\fR). In \fB\-\-radix=\fR\fInumber\fR, only the three -values (8, 10, 16) are supported. The total size is always given in two -radices; decimal and hexadecimal for \fB\-d\fR or \fB\-x\fR output, or -octal and hexadecimal if you're using \fB\-o\fR. -.IP "\fB\-t\fR" 4 -.IX Item "-t" -.PD 0 -.IP "\fB\-\-totals\fR" 4 -.IX Item "--totals" -.PD -Show totals of all objects listed (Berkeley format listing mode only). -.IP "\fB\-\-target=\fR\fIbfdname\fR" 4 -.IX Item "--target=bfdname" -Specify that the object-code format for \fIobjfile\fR is -\&\fIbfdname\fR. This option may not be necessary; \fBsize\fR can -automatically recognize many formats. -.IP "\fB\-V\fR" 4 -.IX Item "-V" -.PD 0 -.IP "\fB\-\-version\fR" 4 -.IX Item "--version" -.PD -Display the version number of \fBsize\fR. -.SH "SEE ALSO" -.IX Header "SEE ALSO" -\&\fIar\fR\|(1), \fIobjdump\fR\|(1), \fIreadelf\fR\|(1), and the Info entries for \fIbinutils\fR. -.SH "COPYRIGHT" -.IX Header "COPYRIGHT" -Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -.PP -Permission is granted to copy, distribute and/or modify this document -under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1 -or any later version published by the Free Software Foundation; -with no Invariant Sections, with no Front-Cover Texts, and with no -Back-Cover Texts. A copy of the license is included in the -section entitled ``\s-1GNU\s0 Free Documentation License''. diff --git a/binutils/doc/strings.1 b/binutils/doc/strings.1 deleted file mode 100644 index 60462ed6b67..00000000000 --- a/binutils/doc/strings.1 +++ /dev/null @@ -1,236 +0,0 @@ -.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 -.\" -.\" 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 -.. -.de Vb \" Begin verbatim text -.ft CW -.nf -.ne \\$1 -.. -.de Ve \" End verbatim text -.ft R -.fi -.. -.\" 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 -.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' -.ie n \{\ -. ds -- \(*W- -. ds PI pi -. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch -. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch -. ds L" "" -. ds R" "" -. ds C` "" -. ds C' "" -'br\} -.el\{\ -. ds -- \|\(em\| -. ds PI \(*p -. ds L" `` -. ds R" '' -'br\} -.\" -.\" 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 -.\" 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 -.\" -.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). -.\" Fear. Run. Save yourself. No user-serviceable parts. -. \" fudge factors for nroff and troff -.if n \{\ -. ds #H 0 -. ds #V .8m -. ds #F .3m -. ds #[ \f1 -. ds #] \fP -.\} -.if t \{\ -. ds #H ((1u-(\\\\n(.fu%2u))*.13m) -. ds #V .6m -. ds #F 0 -. ds #[ \& -. ds #] \& -.\} -. \" simple accents for nroff and troff -.if n \{\ -. ds ' \& -. ds ` \& -. ds ^ \& -. ds , \& -. ds ~ ~ -. ds / -.\} -.if t \{\ -. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" -. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' -. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' -. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' -. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' -. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' -.\} -. \" troff and (daisy-wheel) nroff accents -.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' -.ds 8 \h'\*(#H'\(*b\h'-\*(#H' -.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] -.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' -.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' -.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] -.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] -.ds ae a\h'-(\w'a'u*4/10)'e -.ds Ae A\h'-(\w'A'u*4/10)'E -. \" corrections for vroff -.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' -.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' -. \" for low resolution devices (crt and lpr) -.if \n(.H>23 .if \n(.V>19 \ -\{\ -. ds : e -. ds 8 ss -. ds o a -. ds d- d\h'-1'\(ga -. ds D- D\h'-1'\(hy -. ds th \o'bp' -. ds Th \o'LP' -. ds ae ae -. ds Ae AE -.\} -.rm #[ #] #H #V #F C -.\" ======================================================================== -.\" -.IX Title "STRINGS 1" -.TH STRINGS 1 "2005-03-08" "binutils-2.15.96" "GNU Development Tools" -.SH "NAME" -strings \- print the strings of printable characters in files. -.SH "SYNOPSIS" -.IX Header "SYNOPSIS" -strings [\fB\-afov\fR] [\fB\-\fR\fImin-len\fR] - [\fB\-n\fR \fImin-len\fR] [\fB\-\-bytes=\fR\fImin-len\fR] - [\fB\-t\fR \fIradix\fR] [\fB\-\-radix=\fR\fIradix\fR] - [\fB\-e\fR \fIencoding\fR] [\fB\-\-encoding=\fR\fIencoding\fR] - [\fB\-\fR] [\fB\-\-all\fR] [\fB\-\-print\-file\-name\fR] - [\fB\-\-target=\fR\fIbfdname\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 -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 -and loaded sections of object files; for other types of files, it prints -the strings from the whole file. -.PP -\&\fBstrings\fR is mainly useful for determining the contents of non-text -files. -.SH "OPTIONS" -.IX Header "OPTIONS" -.IP "\fB\-a\fR" 4 -.IX Item "-a" -.PD 0 -.IP "\fB\-\-all\fR" 4 -.IX Item "--all" -.IP "\fB\-\fR" 4 -.IX Item "-" -.PD -Do not scan only the initialized and loaded sections of object files; -scan the whole files. -.IP "\fB\-f\fR" 4 -.IX Item "-f" -.PD 0 -.IP "\fB\-\-print\-file\-name\fR" 4 -.IX Item "--print-file-name" -.PD -Print the name of the file before each string. -.IP "\fB\-\-help\fR" 4 -.IX Item "--help" -Print a summary of the program usage on the standard output and exit. -.IP "\fB\-\fR\fImin-len\fR" 4 -.IX Item "-min-len" -.PD 0 -.IP "\fB\-n\fR \fImin-len\fR" 4 -.IX Item "-n min-len" -.IP "\fB\-\-bytes=\fR\fImin-len\fR" 4 -.IX Item "--bytes=min-len" -.PD -Print sequences of characters that are at least \fImin-len\fR characters -long, instead of the default 4. -.IP "\fB\-o\fR" 4 -.IX Item "-o" -Like \fB\-t o\fR. Some other versions of \fBstrings\fR have \fB\-o\fR -act like \fB\-t d\fR instead. Since we can not be compatible with both -ways, we simply chose one. -.IP "\fB\-t\fR \fIradix\fR" 4 -.IX Item "-t radix" -.PD 0 -.IP "\fB\-\-radix=\fR\fIradix\fR" 4 -.IX Item "--radix=radix" -.PD -Print the offset within the file before each string. The single -character argument specifies the radix of the offset\-\-\-\fBo\fR for -octal, \fBx\fR for hexadecimal, or \fBd\fR for decimal. -.IP "\fB\-e\fR \fIencoding\fR" 4 -.IX Item "-e encoding" -.PD 0 -.IP "\fB\-\-encoding=\fR\fIencoding\fR" 4 -.IX Item "--encoding=encoding" -.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 = -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. -.IP "\fB\-\-target=\fR\fIbfdname\fR" 4 -.IX Item "--target=bfdname" -Specify an object code format other than your system's default format. -.IP "\fB\-v\fR" 4 -.IX Item "-v" -.PD 0 -.IP "\fB\-\-version\fR" 4 -.IX Item "--version" -.PD -Print the program version number on the standard output and exit. -.SH "SEE ALSO" -.IX Header "SEE ALSO" -\&\fIar\fR\|(1), \fInm\fR\|(1), \fIobjdump\fR\|(1), \fIranlib\fR\|(1), \fIreadelf\fR\|(1) -and the Info entries for \fIbinutils\fR. -.SH "COPYRIGHT" -.IX Header "COPYRIGHT" -Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -.PP -Permission is granted to copy, distribute and/or modify this document -under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1 -or any later version published by the Free Software Foundation; -with no Invariant Sections, with no Front-Cover Texts, and with no -Back-Cover Texts. A copy of the license is included in the -section entitled ``\s-1GNU\s0 Free Documentation License''. diff --git a/binutils/doc/strip.1 b/binutils/doc/strip.1 deleted file mode 100644 index cc25e239093..00000000000 --- a/binutils/doc/strip.1 +++ /dev/null @@ -1,364 +0,0 @@ -.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 -.\" -.\" 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 -.. -.de Vb \" Begin verbatim text -.ft CW -.nf -.ne \\$1 -.. -.de Ve \" End verbatim text -.ft R -.fi -.. -.\" 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 -.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' -.ie n \{\ -. ds -- \(*W- -. ds PI pi -. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch -. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch -. ds L" "" -. ds R" "" -. ds C` "" -. ds C' "" -'br\} -.el\{\ -. ds -- \|\(em\| -. ds PI \(*p -. ds L" `` -. ds R" '' -'br\} -.\" -.\" 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 -.\" 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 -.\" -.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). -.\" Fear. Run. Save yourself. No user-serviceable parts. -. \" fudge factors for nroff and troff -.if n \{\ -. ds #H 0 -. ds #V .8m -. ds #F .3m -. ds #[ \f1 -. ds #] \fP -.\} -.if t \{\ -. ds #H ((1u-(\\\\n(.fu%2u))*.13m) -. ds #V .6m -. ds #F 0 -. ds #[ \& -. ds #] \& -.\} -. \" simple accents for nroff and troff -.if n \{\ -. ds ' \& -. ds ` \& -. ds ^ \& -. ds , \& -. ds ~ ~ -. ds / -.\} -.if t \{\ -. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" -. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' -. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' -. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' -. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' -. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' -.\} -. \" troff and (daisy-wheel) nroff accents -.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' -.ds 8 \h'\*(#H'\(*b\h'-\*(#H' -.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] -.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' -.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' -.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] -.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] -.ds ae a\h'-(\w'a'u*4/10)'e -.ds Ae A\h'-(\w'A'u*4/10)'E -. \" corrections for vroff -.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' -.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' -. \" for low resolution devices (crt and lpr) -.if \n(.H>23 .if \n(.V>19 \ -\{\ -. ds : e -. ds 8 ss -. ds o a -. ds d- d\h'-1'\(ga -. ds D- D\h'-1'\(hy -. ds th \o'bp' -. ds Th \o'LP' -. ds ae ae -. ds Ae AE -.\} -.rm #[ #] #H #V #F C -.\" ======================================================================== -.\" -.IX Title "STRIP 1" -.TH STRIP 1 "2005-03-08" "binutils-2.15.96" "GNU Development Tools" -.SH "NAME" -strip \- Discard symbols from object files. -.SH "SYNOPSIS" -.IX Header "SYNOPSIS" -strip [\fB\-F\fR \fIbfdname\fR |\fB\-\-target=\fR\fIbfdname\fR] - [\fB\-I\fR \fIbfdname\fR |\fB\-\-input\-target=\fR\fIbfdname\fR] - [\fB\-O\fR \fIbfdname\fR |\fB\-\-output\-target=\fR\fIbfdname\fR] - [\fB\-s\fR|\fB\-\-strip\-all\fR] - [\fB\-S\fR|\fB\-g\fR|\fB\-d\fR|\fB\-\-strip\-debug\fR] - [\fB\-K\fR \fIsymbolname\fR |\fB\-\-keep\-symbol=\fR\fIsymbolname\fR] - [\fB\-N\fR \fIsymbolname\fR |\fB\-\-strip\-symbol=\fR\fIsymbolname\fR] - [\fB\-w\fR|\fB\-\-wildcard\fR] - [\fB\-x\fR|\fB\-\-discard\-all\fR] [\fB\-X\fR |\fB\-\-discard\-locals\fR] - [\fB\-R\fR \fIsectionname\fR |\fB\-\-remove\-section=\fR\fIsectionname\fR] - [\fB\-o\fR \fIfile\fR] [\fB\-p\fR|\fB\-\-preserve\-dates\fR] - [\fB\-\-only\-keep\-debug\fR] - [\fB\-v\fR |\fB\-\-verbose\fR] [\fB\-V\fR|\fB\-\-version\fR] - [\fB\-\-help\fR] [\fB\-\-info\fR] - \fIobjfile\fR... -.SH "DESCRIPTION" -.IX Header "DESCRIPTION" -\&\s-1GNU\s0 \fBstrip\fR discards all symbols from object files -\&\fIobjfile\fR. The list of object files may include archives. -At least one object file must be given. -.PP -\&\fBstrip\fR modifies the files named in its argument, -rather than writing modified copies under different names. -.SH "OPTIONS" -.IX Header "OPTIONS" -.IP "\fB\-F\fR \fIbfdname\fR" 4 -.IX Item "-F bfdname" -.PD 0 -.IP "\fB\-\-target=\fR\fIbfdname\fR" 4 -.IX Item "--target=bfdname" -.PD -Treat the original \fIobjfile\fR as a file with the object -code format \fIbfdname\fR, and rewrite it in the same format. -.IP "\fB\-\-help\fR" 4 -.IX Item "--help" -Show a summary of the options to \fBstrip\fR and exit. -.IP "\fB\-\-info\fR" 4 -.IX Item "--info" -Display a list showing all architectures and object formats available. -.IP "\fB\-I\fR \fIbfdname\fR" 4 -.IX Item "-I bfdname" -.PD 0 -.IP "\fB\-\-input\-target=\fR\fIbfdname\fR" 4 -.IX Item "--input-target=bfdname" -.PD -Treat the original \fIobjfile\fR as a file with the object -code format \fIbfdname\fR. -.IP "\fB\-O\fR \fIbfdname\fR" 4 -.IX Item "-O bfdname" -.PD 0 -.IP "\fB\-\-output\-target=\fR\fIbfdname\fR" 4 -.IX Item "--output-target=bfdname" -.PD -Replace \fIobjfile\fR with a file in the output format \fIbfdname\fR. -.IP "\fB\-R\fR \fIsectionname\fR" 4 -.IX Item "-R sectionname" -.PD 0 -.IP "\fB\-\-remove\-section=\fR\fIsectionname\fR" 4 -.IX Item "--remove-section=sectionname" -.PD -Remove any section named \fIsectionname\fR from the output file. This -option may be given more than once. Note that using this option -inappropriately may make the output file unusable. -.IP "\fB\-s\fR" 4 -.IX Item "-s" -.PD 0 -.IP "\fB\-\-strip\-all\fR" 4 -.IX Item "--strip-all" -.PD -Remove all symbols. -.IP "\fB\-g\fR" 4 -.IX Item "-g" -.PD 0 -.IP "\fB\-S\fR" 4 -.IX Item "-S" -.IP "\fB\-d\fR" 4 -.IX Item "-d" -.IP "\fB\-\-strip\-debug\fR" 4 -.IX Item "--strip-debug" -.PD -Remove debugging symbols only. -.IP "\fB\-\-strip\-unneeded\fR" 4 -.IX Item "--strip-unneeded" -Remove all symbols that are not needed for relocation processing. -.IP "\fB\-K\fR \fIsymbolname\fR" 4 -.IX Item "-K symbolname" -.PD 0 -.IP "\fB\-\-keep\-symbol=\fR\fIsymbolname\fR" 4 -.IX Item "--keep-symbol=symbolname" -.PD -Keep only symbol \fIsymbolname\fR from the source file. This option may -be given more than once. -.IP "\fB\-N\fR \fIsymbolname\fR" 4 -.IX Item "-N symbolname" -.PD 0 -.IP "\fB\-\-strip\-symbol=\fR\fIsymbolname\fR" 4 -.IX Item "--strip-symbol=symbolname" -.PD -Remove symbol \fIsymbolname\fR from the source file. This option may be -given more than once, and may be combined with strip options other than -\&\fB\-K\fR. -.IP "\fB\-o\fR \fIfile\fR" 4 -.IX Item "-o file" -Put the stripped output in \fIfile\fR, rather than replacing the -existing file. When this argument is used, only one \fIobjfile\fR -argument may be specified. -.IP "\fB\-p\fR" 4 -.IX Item "-p" -.PD 0 -.IP "\fB\-\-preserve\-dates\fR" 4 -.IX Item "--preserve-dates" -.PD -Preserve the access and modification dates of the file. -.IP "\fB\-w\fR" 4 -.IX Item "-w" -.PD 0 -.IP "\fB\-\-wildcard\fR" 4 -.IX Item "--wildcard" -.PD -Permit regular expressions in \fIsymbolname\fRs used in other command -line options. The question mark (?), asterisk (*), backslash (\e) and -square brackets ([]) operators can be used anywhere in the symbol -name. If the first character of the symbol name is the exclamation -point (!) then the sense of the switch is reversed for that symbol. -For example: -.Sp -.Vb 1 -\& -w -K !foo -K fo* -.Ve -.Sp -would cause strip to only keep symbols that start with the letters -``fo'', but to discard the symbol ``foo''. -.IP "\fB\-x\fR" 4 -.IX Item "-x" -.PD 0 -.IP "\fB\-\-discard\-all\fR" 4 -.IX Item "--discard-all" -.PD -Remove non-global symbols. -.IP "\fB\-X\fR" 4 -.IX Item "-X" -.PD 0 -.IP "\fB\-\-discard\-locals\fR" 4 -.IX Item "--discard-locals" -.PD -Remove compiler-generated local symbols. -(These usually start with \fBL\fR or \fB.\fR.) -.IP "\fB\-\-only\-keep\-debug\fR" 4 -.IX Item "--only-keep-debug" -Strip a file, removing any sections that would be stripped by -\&\fB\-\-strip\-debug\fR and leaving the debugging sections. -.Sp -The intention is that this option will be used in conjunction with -\&\fB\-\-add\-gnu\-debuglink\fR to create a two part executable. One a -stripped binary which will occupy less space in \s-1RAM\s0 and in a -distribution and the second a debugging information file which is only -needed if debugging abilities are required. The suggested procedure -to create these files is as follows: -.RS 4 -.IP "1." 4 -.IX Item "1." -\&\f(CW\*(C`foo\*(C'\fR then... -.ie n .IP "1." 4 -.el .IP "1." 4 -.IX Item "1." -create a file containing the debugging info. -.ie n .IP "1." 4 -.el .IP "1." 4 -.IX Item "1." -stripped executable. -.ie n .IP "1." 4 -.el .IP "1." 4 -.IX Item "1." -to add a link to the debugging info into the stripped executable. -.RE -.RS 4 -.Sp -Note \- the choice of \f(CW\*(C`.dbg\*(C'\fR as an extension for the debug info -file is arbitrary. Also the \f(CW\*(C`\-\-only\-keep\-debug\*(C'\fR step is -optional. You could instead do this: -.IP "1." 4 -.IX Item "1." -.PD 0 -.ie n .IP "1." 4 -.el .IP "1." 4 -.IX Item "1." -.ie n .IP "1." 4 -.el .IP "1." 4 -.IX Item "1." -.ie n .IP "1." 4 -.el .IP "1." 4 -.IX Item "1." -.RE -.RS 4 -.PD -.Sp -ie the file pointed to by the \fB\-\-add\-gnu\-debuglink\fR can be the -full executable. It does not have to be a file created by the -\&\fB\-\-only\-keep\-debug\fR switch. -.RE -.IP "\fB\-V\fR" 4 -.IX Item "-V" -.PD 0 -.IP "\fB\-\-version\fR" 4 -.IX Item "--version" -.PD -Show the version number for \fBstrip\fR. -.IP "\fB\-v\fR" 4 -.IX Item "-v" -.PD 0 -.IP "\fB\-\-verbose\fR" 4 -.IX Item "--verbose" -.PD -Verbose output: list all object files modified. In the case of -archives, \fBstrip \-v\fR lists all members of the archive. -.SH "SEE ALSO" -.IX Header "SEE ALSO" -the Info entries for \fIbinutils\fR. -.SH "COPYRIGHT" -.IX Header "COPYRIGHT" -Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -.PP -Permission is granted to copy, distribute and/or modify this document -under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1 -or any later version published by the Free Software Foundation; -with no Invariant Sections, with no Front-Cover Texts, and with no -Back-Cover Texts. A copy of the license is included in the -section entitled ``\s-1GNU\s0 Free Documentation License''. diff --git a/binutils/doc/windres.1 b/binutils/doc/windres.1 deleted file mode 100644 index 87ece4768db..00000000000 --- a/binutils/doc/windres.1 +++ /dev/null @@ -1,330 +0,0 @@ -.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 -.\" -.\" 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 -.. -.de Vb \" Begin verbatim text -.ft CW -.nf -.ne \\$1 -.. -.de Ve \" End verbatim text -.ft R -.fi -.. -.\" 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 -.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' -.ie n \{\ -. ds -- \(*W- -. ds PI pi -. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch -. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch -. ds L" "" -. ds R" "" -. ds C` "" -. ds C' "" -'br\} -.el\{\ -. ds -- \|\(em\| -. ds PI \(*p -. ds L" `` -. ds R" '' -'br\} -.\" -.\" 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 -.\" 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 -.\" -.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). -.\" Fear. Run. Save yourself. No user-serviceable parts. -. \" fudge factors for nroff and troff -.if n \{\ -. ds #H 0 -. ds #V .8m -. ds #F .3m -. ds #[ \f1 -. ds #] \fP -.\} -.if t \{\ -. ds #H ((1u-(\\\\n(.fu%2u))*.13m) -. ds #V .6m -. ds #F 0 -. ds #[ \& -. ds #] \& -.\} -. \" simple accents for nroff and troff -.if n \{\ -. ds ' \& -. ds ` \& -. ds ^ \& -. ds , \& -. ds ~ ~ -. ds / -.\} -.if t \{\ -. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" -. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' -. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' -. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' -. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' -. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' -.\} -. \" troff and (daisy-wheel) nroff accents -.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' -.ds 8 \h'\*(#H'\(*b\h'-\*(#H' -.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] -.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' -.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' -.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] -.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] -.ds ae a\h'-(\w'a'u*4/10)'e -.ds Ae A\h'-(\w'A'u*4/10)'E -. \" corrections for vroff -.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' -.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' -. \" for low resolution devices (crt and lpr) -.if \n(.H>23 .if \n(.V>19 \ -\{\ -. ds : e -. ds 8 ss -. ds o a -. ds d- d\h'-1'\(ga -. ds D- D\h'-1'\(hy -. ds th \o'bp' -. ds Th \o'LP' -. ds ae ae -. ds Ae AE -.\} -.rm #[ #] #H #V #F C -.\" ======================================================================== -.\" -.IX Title "WINDRES 1" -.TH WINDRES 1 "2005-03-08" "binutils-2.15.96" "GNU Development Tools" -.SH "NAME" -windres \- manipulate Windows resources. -.SH "SYNOPSIS" -.IX Header "SYNOPSIS" -windres [options] [input\-file] [output\-file] -.SH "DESCRIPTION" -.IX Header "DESCRIPTION" -\&\fBwindres\fR reads resources from an input file and copies them into -an output file. Either file may be in one of three formats: -.ie n .IP """rc""" 4 -.el .IP "\f(CWrc\fR" 4 -.IX Item "rc" -A text format read by the Resource Compiler. -.ie n .IP """res""" 4 -.el .IP "\f(CWres\fR" 4 -.IX Item "res" -A binary format generated by the Resource Compiler. -.ie n .IP """coff""" 4 -.el .IP "\f(CWcoff\fR" 4 -.IX Item "coff" -A \s-1COFF\s0 object or executable. -.PP -The exact description of these different formats is available in -documentation from Microsoft. -.PP -When \fBwindres\fR converts from the \f(CW\*(C`rc\*(C'\fR format to the \f(CW\*(C`res\*(C'\fR -format, it is acting like the Windows Resource Compiler. When -\&\fBwindres\fR converts from the \f(CW\*(C`res\*(C'\fR format to the \f(CW\*(C`coff\*(C'\fR -format, it is acting like the Windows \f(CW\*(C`CVTRES\*(C'\fR program. -.PP -When \fBwindres\fR generates an \f(CW\*(C`rc\*(C'\fR file, the output is similar -but not identical to the format expected for the input. When an input -\&\f(CW\*(C`rc\*(C'\fR file refers to an external filename, an output \f(CW\*(C`rc\*(C'\fR file -will instead include the file contents. -.PP -If the input or output format is not specified, \fBwindres\fR will -guess based on the file name, or, for the input file, the file contents. -A file with an extension of \fI.rc\fR will be treated as an \f(CW\*(C`rc\*(C'\fR -file, a file with an extension of \fI.res\fR will be treated as a -\&\f(CW\*(C`res\*(C'\fR file, and a file with an extension of \fI.o\fR or -\&\fI.exe\fR will be treated as a \f(CW\*(C`coff\*(C'\fR file. -.PP -If no output file is specified, \fBwindres\fR will print the resources -in \f(CW\*(C`rc\*(C'\fR format to standard output. -.PP -The normal use is for you to write an \f(CW\*(C`rc\*(C'\fR file, use \fBwindres\fR -to convert it to a \s-1COFF\s0 object file, and then link the \s-1COFF\s0 file into -your application. This will make the resources described in the -\&\f(CW\*(C`rc\*(C'\fR file available to Windows. -.SH "OPTIONS" -.IX Header "OPTIONS" -.IP "\fB\-i\fR \fIfilename\fR" 4 -.IX Item "-i filename" -.PD 0 -.IP "\fB\-\-input\fR \fIfilename\fR" 4 -.IX Item "--input filename" -.PD -The name of the input file. If this option is not used, then -\&\fBwindres\fR will use the first non-option argument as the input file -name. If there are no non-option arguments, then \fBwindres\fR will -read from standard input. \fBwindres\fR can not read a \s-1COFF\s0 file from -standard input. -.IP "\fB\-o\fR \fIfilename\fR" 4 -.IX Item "-o filename" -.PD 0 -.IP "\fB\-\-output\fR \fIfilename\fR" 4 -.IX Item "--output filename" -.PD -The name of the output file. If this option is not used, then -\&\fBwindres\fR will use the first non-option argument, after any used -for the input file name, as the output file name. If there is no -non-option argument, then \fBwindres\fR will write to standard output. -\&\fBwindres\fR can not write a \s-1COFF\s0 file to standard output. Note, -for compatability with \fBrc\fR the option \fB\-fo\fR is also -accepted, but its use is not recommended. -.IP "\fB\-J\fR \fIformat\fR" 4 -.IX Item "-J format" -.PD 0 -.IP "\fB\-\-input\-format\fR \fIformat\fR" 4 -.IX Item "--input-format format" -.PD -The input format to read. \fIformat\fR may be \fBres\fR, \fBrc\fR, or -\&\fBcoff\fR. If no input format is specified, \fBwindres\fR will -guess, as described above. -.IP "\fB\-O\fR \fIformat\fR" 4 -.IX Item "-O format" -.PD 0 -.IP "\fB\-\-output\-format\fR \fIformat\fR" 4 -.IX Item "--output-format format" -.PD -The output format to generate. \fIformat\fR may be \fBres\fR, -\&\fBrc\fR, or \fBcoff\fR. If no output format is specified, -\&\fBwindres\fR will guess, as described above. -.IP "\fB\-F\fR \fItarget\fR" 4 -.IX Item "-F target" -.PD 0 -.IP "\fB\-\-target\fR \fItarget\fR" 4 -.IX Item "--target target" -.PD -Specify the \s-1BFD\s0 format to use for a \s-1COFF\s0 file as input or output. This -is a \s-1BFD\s0 target name; you can use the \fB\-\-help\fR option to see a list -of supported targets. Normally \fBwindres\fR will use the default -format, which is the first one listed by the \fB\-\-help\fR option. -.IP "\fB\-\-preprocessor\fR \fIprogram\fR" 4 -.IX Item "--preprocessor program" -When \fBwindres\fR reads an \f(CW\*(C`rc\*(C'\fR file, it runs it through the C -preprocessor first. This option may be used to specify the preprocessor -to use, including any leading arguments. The default preprocessor -argument is \f(CW\*(C`gcc \-E \-xc\-header \-DRC_INVOKED\*(C'\fR. -.IP "\fB\-I\fR \fIdirectory\fR" 4 -.IX Item "-I directory" -.PD 0 -.IP "\fB\-\-include\-dir\fR \fIdirectory\fR" 4 -.IX Item "--include-dir directory" -.PD -Specify an include directory to use when reading an \f(CW\*(C`rc\*(C'\fR file. -\&\fBwindres\fR will pass this to the preprocessor as an \fB\-I\fR -option. \fBwindres\fR will also search this directory when looking for -files named in the \f(CW\*(C`rc\*(C'\fR file. If the argument passed to this command -matches any of the supported \fIformats\fR (as descrived in the \fB\-J\fR -option), it will issue a deprecation warning, and behave just like the -\&\fB\-J\fR option. New programs should not use this behaviour. If a -directory happens to match a \fIformat\fR, simple prefix it with \fB./\fR -to disable the backward compatibility. -.IP "\fB\-D\fR \fItarget\fR" 4 -.IX Item "-D target" -.PD 0 -.IP "\fB\-\-define\fR \fIsym\fR\fB[=\fR\fIval\fR\fB]\fR" 4 -.IX Item "--define sym[=val]" -.PD -Specify a \fB\-D\fR option to pass to the preprocessor when reading an -\&\f(CW\*(C`rc\*(C'\fR file. -.IP "\fB\-U\fR \fItarget\fR" 4 -.IX Item "-U target" -.PD 0 -.IP "\fB\-\-undefine\fR \fIsym\fR" 4 -.IX Item "--undefine sym" -.PD -Specify a \fB\-U\fR option to pass to the preprocessor when reading an -\&\f(CW\*(C`rc\*(C'\fR file. -.IP "\fB\-r\fR" 4 -.IX Item "-r" -Ignored for compatibility with rc. -.IP "\fB\-v\fR" 4 -.IX Item "-v" -Enable verbose mode. This tells you what the preprocessor is if you -didn't specify one. -.IP "\fB\-l\fR \fIval\fR" 4 -.IX Item "-l val" -.PD 0 -.IP "\fB\-\-language\fR \fIval\fR" 4 -.IX Item "--language val" -.PD -Specify the default language to use when reading an \f(CW\*(C`rc\*(C'\fR file. -\&\fIval\fR should be a hexadecimal language code. The low eight bits are -the language, and the high eight bits are the sublanguage. -.IP "\fB\-\-use\-temp\-file\fR" 4 -.IX Item "--use-temp-file" -Use a temporary file to instead of using popen to read the output of -the preprocessor. Use this option if the popen implementation is buggy -on the host (eg., certain non-English language versions of Windows 95 and -Windows 98 are known to have buggy popen where the output will instead -go the console). -.IP "\fB\-\-no\-use\-temp\-file\fR" 4 -.IX Item "--no-use-temp-file" -Use popen, not a temporary file, to read the output of the preprocessor. -This is the default behaviour. -.IP "\fB\-h\fR" 4 -.IX Item "-h" -.PD 0 -.IP "\fB\-\-help\fR" 4 -.IX Item "--help" -.PD -Prints a usage summary. -.IP "\fB\-V\fR" 4 -.IX Item "-V" -.PD 0 -.IP "\fB\-\-version\fR" 4 -.IX Item "--version" -.PD -Prints the version number for \fBwindres\fR. -.IP "\fB\-\-yydebug\fR" 4 -.IX Item "--yydebug" -If \fBwindres\fR is compiled with \f(CW\*(C`YYDEBUG\*(C'\fR defined as \f(CW1\fR, -this will turn on parser debugging. -.SH "SEE ALSO" -.IX Header "SEE ALSO" -the Info entries for \fIbinutils\fR. -.SH "COPYRIGHT" -.IX Header "COPYRIGHT" -Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -.PP -Permission is granted to copy, distribute and/or modify this document -under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1 -or any later version published by the Free Software Foundation; -with no Invariant Sections, with no Front-Cover Texts, and with no -Back-Cover Texts. A copy of the license is included in the -section entitled ``\s-1GNU\s0 Free Documentation License''. diff --git a/binutils/po/da.gmo b/binutils/po/da.gmo deleted file mode 100644 index 8f9b965b6edf3be9e4c3fea6be8d4dc76563f2d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 80846 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 diff --git a/binutils/po/es.gmo b/binutils/po/es.gmo deleted file mode 100644 index bc12e337746ed347796f43b07160a0f75488bbfc..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 133199 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 diff --git a/binutils/po/fr.gmo b/binutils/po/fr.gmo deleted file mode 100644 index eb0d177980461f8cfc78f652cb1c26904c2c523e..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 129943 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 r@{b^Q6Yz}A6R!bH3! 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 diff --git a/binutils/po/ja.gmo b/binutils/po/ja.gmo deleted file mode 100644 index 5152d33babf8885213e8459c3ef2e31add7f8ddd..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 97376 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 diff --git a/binutils/po/ru.gmo b/binutils/po/ru.gmo deleted file mode 100644 index df9584885b232fabfe6d3d9354c847a513fd39bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 126130 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 diff --git a/binutils/po/sv.gmo b/binutils/po/sv.gmo deleted file mode 100644 index 16e64439949396f570964c4423d1a8c2e56064c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 103077 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

wb%u!r*au>Sr< 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. -.tr \(*W-|\(bv\*(Tr -.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' -.ie n \{\ -. ds -- \(*W- -. ds PI pi -. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch -. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch -. ds L" "" -. ds R" "" -. ds C` "" -. ds C' "" -'br\} -.el\{\ -. ds -- \|\(em\| -. ds PI \(*p -. ds L" `` -. ds R" '' -'br\} -.\" -.\" 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 -.\" 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 -.\" -.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). -.\" Fear. Run. Save yourself. No user-serviceable parts. -. \" fudge factors for nroff and troff -.if n \{\ -. ds #H 0 -. ds #V .8m -. ds #F .3m -. ds #[ \f1 -. ds #] \fP -.\} -.if t \{\ -. ds #H ((1u-(\\\\n(.fu%2u))*.13m) -. ds #V .6m -. ds #F 0 -. ds #[ \& -. ds #] \& -.\} -. \" simple accents for nroff and troff -.if n \{\ -. ds ' \& -. ds ` \& -. ds ^ \& -. ds , \& -. ds ~ ~ -. ds / -.\} -.if t \{\ -. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" -. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' -. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' -. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' -. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' -. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' -.\} -. \" troff and (daisy-wheel) nroff accents -.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' -.ds 8 \h'\*(#H'\(*b\h'-\*(#H' -.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] -.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' -.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' -.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] -.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] -.ds ae a\h'-(\w'a'u*4/10)'e -.ds Ae A\h'-(\w'A'u*4/10)'E -. \" corrections for vroff -.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' -.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' -. \" for low resolution devices (crt and lpr) -.if \n(.H>23 .if \n(.V>19 \ -\{\ -. ds : e -. ds 8 ss -. ds o a -. ds d- d\h'-1'\(ga -. ds D- D\h'-1'\(hy -. ds th \o'bp' -. ds Th \o'LP' -. ds ae ae -. ds Ae AE -.\} -.rm #[ #] #H #V #F C -.\" ======================================================================== -.\" -.IX Title "LD 1" -.TH LD 1 "2005-03-08" "binutils-2.15.96" "GNU Development Tools" -.SH "NAME" -ld \- Using LD, the GNU linker -.SH "SYNOPSIS" -.IX Header "SYNOPSIS" -ld [\fBoptions\fR] \fIobjfile\fR ... -.SH "DESCRIPTION" -.IX Header "DESCRIPTION" -\&\fBld\fR combines a number of object and archive files, relocates -their data and ties up symbol references. Usually the last step in -compiling a program is to run \fBld\fR. -.PP -\&\fBld\fR accepts Linker Command Language files written in -a superset of \s-1AT&T\s0's Link Editor Command Language syntax, -to provide explicit and total control over the linking process. -.PP -This man page does not describe the command language; see the -\&\fBld\fR entry in \f(CW\*(C`info\*(C'\fR, 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. -.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. -.PP -Aside from its flexibility, the \s-1GNU\s0 linker is more helpful than other -linkers in providing diagnostic information. Many linkers abandon -execution immediately upon encountering an error; whenever possible, -\&\fBld\fR continues executing, allowing you to identify other errors -(or, in some cases, to get an output file in spite of the error). -.PP -The \s-1GNU\s0 linker \fBld\fR is meant to cover a broad range of situations, -and to be as compatible as possible with other linkers. As a result, -you have many choices to control its behavior. -.SH "OPTIONS" -.IX Header "OPTIONS" -The linker supports a plethora of command-line options, but in actual -practice few of them are used in any particular context. -For instance, a frequent use of \fBld\fR is to link standard Unix -object files on a standard, supported Unix system. On such a system, to -link a file \f(CW\*(C`hello.o\*(C'\fR: -.PP -.Vb 1 -\& ld -o /lib/crt0.o hello.o -lc -.Ve -.PP -This tells \fBld\fR to produce a file called \fIoutput\fR as the -result of linking the file \f(CW\*(C`/lib/crt0.o\*(C'\fR with \f(CW\*(C`hello.o\*(C'\fR and -the library \f(CW\*(C`libc.a\*(C'\fR, which will come from the standard search -directories. (See the discussion of the \fB\-l\fR option below.) -.PP -Some of the command-line options to \fBld\fR may be specified at any -point in the command line. However, options which refer to files, such -as \fB\-l\fR or \fB\-T\fR, cause the file to be read at the point at -which the option appears in the command line, relative to the object -files and other file options. Repeating non-file options with a -different argument will either have no further effect, or override prior -occurrences (those further to the left on the command line) of that -option. Options which may be meaningfully specified more than once are -noted in the descriptions below. -.PP -Non-option arguments are object files or archives which are to be linked -together. They may follow, precede, or be mixed in with command-line -options, except that an object file argument may not be placed between -an option and its argument. -.PP -Usually the linker is invoked with at least one object file, but you can -specify other forms of binary input files using \fB\-l\fR, \fB\-R\fR, -and the script command language. If \fIno\fR binary input files at all -are specified, the linker does not produce any output, and issues the -message \fBNo input files\fR. -.PP -If the linker cannot recognize the format of an object file, it will -assume that it is a linker script. A script specified in this way -augments the main linker script used for the link (either the default -linker script or the one specified by using \fB\-T\fR). This feature -permits the linker to link against a file which appears to be an object -or an archive, but actually merely defines some symbol values, or uses -\&\f(CW\*(C`INPUT\*(C'\fR or \f(CW\*(C`GROUP\*(C'\fR to load other objects. Note that -specifying a script in this way merely augments the main linker script; -use the \fB\-T\fR option to replace the default linker script entirely. -.PP -For options whose names are a single letter, -option arguments must either follow the option letter without intervening -whitespace, or be given as separate arguments immediately following the -option that requires them. -.PP -For options whose names are multiple letters, either one dash or two can -precede the option name; for example, \fB\-trace\-symbol\fR and -\&\fB\-\-trace\-symbol\fR are equivalent. Note\-\-\-there is one exception to -this rule. Multiple letter options that start with a lower case 'o' can -only be preceeded by two dashes. This is to reduce confusion with the -\&\fB\-o\fR option. So for example \fB\-omagic\fR sets the output file -name to \fBmagic\fR whereas \fB\-\-omagic\fR sets the \s-1NMAGIC\s0 flag on the -output. -.PP -Arguments to multiple-letter options must either be separated from the -option name by an equals sign, or be given as separate arguments -immediately following the option that requires them. For example, -\&\fB\-\-trace\-symbol foo\fR and \fB\-\-trace\-symbol=foo\fR are equivalent. -Unique abbreviations of the names of multiple-letter options are -accepted. -.PP -Note\-\-\-if the linker is being invoked indirectly, via a compiler driver -(e.g. \fBgcc\fR) then all the linker command line options should be -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 -.Ve -.PP -This is important, because otherwise the compiler driver program may -silently drop the linker options, resulting in a bad link. -.PP -Here is a table of the generic command line switches accepted by the \s-1GNU\s0 -linker: -.IP "\fB\-a\fR\fIkeyword\fR" 4 -.IX Item "-akeyword" -This option is supported for \s-1HP/UX\s0 compatibility. The \fIkeyword\fR -argument must be one of the strings \fBarchive\fR, \fBshared\fR, or -\&\fBdefault\fR. \fB\-aarchive\fR is functionally equivalent to -\&\fB\-Bstatic\fR, and the other two keywords are functionally equivalent -to \fB\-Bdynamic\fR. This option may be used any number of times. -.IP "\fB\-A\fR\fIarchitecture\fR" 4 -.IX Item "-Aarchitecture" -.PD 0 -.IP "\fB\-\-architecture=\fR\fIarchitecture\fR" 4 -.IX Item "--architecture=architecture" -.PD -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. -.Sp -Future releases of \fBld\fR may support similar functionality for -other architecture families. -.IP "\fB\-b\fR \fIinput-format\fR" 4 -.IX Item "-b input-format" -.PD 0 -.IP "\fB\-\-format=\fR\fIinput-format\fR" 4 -.IX Item "--format=input-format" -.PD -\&\fBld\fR may be configured to support more than one kind of object -file. If your \fBld\fR is configured this way, you can use the -\&\fB\-b\fR option to specify the binary format for input object files -that follow this option on the command line. Even when \fBld\fR is -configured to support alternative object formats, you don't usually need -to specify this, as \fBld\fR should be configured to expect as a -default input format the most usual format on each machine. -\&\fIinput-format\fR is a text string, the name of a particular format -supported by the \s-1BFD\s0 libraries. (You can list the available binary -formats with \fBobjdump \-i\fR.) -.Sp -You may want to use this option if you are linking files with an unusual -binary format. You can also use \fB\-b\fR to switch formats explicitly (when -linking object files of different formats), by including -\&\fB\-b\fR \fIinput-format\fR before each group of object files in a -particular format. -.Sp -The default format is taken from the environment variable -\&\f(CW\*(C`GNUTARGET\*(C'\fR. -.Sp -You can also define the input format from a script, using the command -\&\f(CW\*(C`TARGET\*(C'\fR; -.IP "\fB\-c\fR \fIMRI-commandfile\fR" 4 -.IX Item "-c MRI-commandfile" -.PD 0 -.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 -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 -the option \fB\-c\fR; use the \fB\-T\fR option to run linker -scripts written in the general-purpose \fBld\fR scripting language. -If \fIMRI-cmdfile\fR does not exist, \fBld\fR looks for it in the directories -specified by any \fB\-L\fR options. -.IP "\fB\-d\fR" 4 -.IX Item "-d" -.PD 0 -.IP "\fB\-dc\fR" 4 -.IX Item "-dc" -.IP "\fB\-dp\fR" 4 -.IX Item "-dp" -.PD -These three options are equivalent; multiple forms are supported for -compatibility with other linkers. They assign space to common symbols -even if a relocatable output file is specified (with \fB\-r\fR). The -script command \f(CW\*(C`FORCE_COMMON_ALLOCATION\*(C'\fR has the same effect. -.IP "\fB\-e\fR \fIentry\fR" 4 -.IX Item "-e entry" -.PD 0 -.IP "\fB\-\-entry=\fR\fIentry\fR" 4 -.IX Item "--entry=entry" -.PD -Use \fIentry\fR as the explicit symbol for beginning execution of your -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). -.IP "\fB\-\-exclude\-libs\fR \fIlib\fR\fB,\fR\fIlib\fR\fB,...\fR" 4 -.IX Item "--exclude-libs lib,lib,..." -Specifies a list of archive libraries from which symbols should not be automatically -exported. The library names may be delimited by commas or colons. Specifying -\&\f(CW\*(C`\-\-exclude\-libs ALL\*(C'\fR excludes symbols in all archive libraries from -automatic export. This option is available only for the i386 \s-1PE\s0 targeted -port of the linker and for \s-1ELF\s0 targeted ports. For i386 \s-1PE\s0, symbols -explicitly listed in a .def file are still exported, regardless of this -option. For \s-1ELF\s0 targeted ports, symbols affected by this option will -be treated as hidden. -.IP "\fB\-E\fR" 4 -.IX Item "-E" -.PD 0 -.IP "\fB\-\-export\-dynamic\fR" 4 -.IX Item "--export-dynamic" -.PD -When creating a dynamically linked executable, add all symbols to the -dynamic symbol table. The dynamic symbol table is the set of symbols -which are visible from dynamic objects at run time. -.Sp -If you do not use this option, the dynamic symbol table will normally -contain only those symbols which are referenced by some dynamic object -mentioned in the link. -.Sp -If you use \f(CW\*(C`dlopen\*(C'\fR to load a dynamic object which needs to refer -back to the symbols defined by the program, rather than some other -dynamic object, then you will probably need to use this option when -linking the program itself. -.Sp -You can also use the version script to control what symbols should -be added to the dynamic symbol table if the output format supports it. -See the description of \fB\-\-version\-script\fR in \f(CW@ref\fR{\s-1VERSION\s0}. -.IP "\fB\-EB\fR" 4 -.IX Item "-EB" -Link big-endian objects. This affects the default output format. -.IP "\fB\-EL\fR" 4 -.IX Item "-EL" -Link little-endian objects. This affects the default output format. -.IP "\fB\-f\fR" 4 -.IX Item "-f" -.PD 0 -.IP "\fB\-\-auxiliary\fR \fIname\fR" 4 -.IX Item "--auxiliary name" -.PD -When creating an \s-1ELF\s0 shared object, set the internal \s-1DT_AUXILIARY\s0 field -to the specified name. This tells the dynamic linker that the symbol -table of the shared object should be used as an auxiliary filter on the -symbol table of the shared object \fIname\fR. -.Sp -If you later link a program against this filter object, then, when you -run the program, the dynamic linker will see the \s-1DT_AUXILIARY\s0 field. If -the dynamic linker resolves any symbols from the filter object, it will -first check whether there is a definition in the shared object -\&\fIname\fR. If there is one, it will be used instead of the definition -in the filter object. The shared object \fIname\fR need not exist. -Thus the shared object \fIname\fR may be used to provide an alternative -implementation of certain functions, perhaps for debugging or for -machine specific performance. -.Sp -This option may be specified more than once. The \s-1DT_AUXILIARY\s0 entries -will be created in the order in which they appear on the command line. -.IP "\fB\-F\fR \fIname\fR" 4 -.IX Item "-F name" -.PD 0 -.IP "\fB\-\-filter\fR \fIname\fR" 4 -.IX Item "--filter name" -.PD -When creating an \s-1ELF\s0 shared object, set the internal \s-1DT_FILTER\s0 field to -the specified name. This tells the dynamic linker that the symbol table -of the shared object which is being created should be used as a filter -on the symbol table of the shared object \fIname\fR. -.Sp -If you later link a program against this filter object, then, when you -run the program, the dynamic linker will see the \s-1DT_FILTER\s0 field. The -dynamic linker will resolve symbols according to the symbol table of the -filter object as usual, but it will actually link to the definitions -found in the shared object \fIname\fR. Thus the filter object can be -used to select a subset of the symbols provided by the object -\&\fIname\fR. -.Sp -Some older linkers used the \fB\-F\fR option throughout a compilation -toolchain for specifying object-file format for both input and output -object files. -The \s-1GNU\s0 linker uses other mechanisms for this purpose: the -\&\fB\-b\fR, \fB\-\-format\fR, \fB\-\-oformat\fR options, the -\&\f(CW\*(C`TARGET\*(C'\fR command in linker scripts, and the \f(CW\*(C`GNUTARGET\*(C'\fR -environment variable. -The \s-1GNU\s0 linker will ignore the \fB\-F\fR option when not -creating an \s-1ELF\s0 shared object. -.IP "\fB\-fini\fR \fIname\fR" 4 -.IX Item "-fini name" -When creating an \s-1ELF\s0 executable or shared object, call \s-1NAME\s0 when the -executable or shared object is unloaded, by setting \s-1DT_FINI\s0 to the -address of the function. By default, the linker uses \f(CW\*(C`_fini\*(C'\fR as -the function to call. -.IP "\fB\-g\fR" 4 -.IX Item "-g" -Ignored. Provided for compatibility with other tools. -.IP "\fB\-G\fR\fIvalue\fR" 4 -.IX Item "-Gvalue" -.PD 0 -.IP "\fB\-\-gpsize=\fR\fIvalue\fR" 4 -.IX Item "--gpsize=value" -.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 -sections. This is ignored for other object file formats. -.IP "\fB\-h\fR\fIname\fR" 4 -.IX Item "-hname" -.PD 0 -.IP "\fB\-soname=\fR\fIname\fR" 4 -.IX Item "-soname=name" -.PD -When creating an \s-1ELF\s0 shared object, set the internal \s-1DT_SONAME\s0 field to -the specified name. When an executable is linked with a shared object -which has a \s-1DT_SONAME\s0 field, then when the executable is run the dynamic -linker will attempt to load the shared object specified by the \s-1DT_SONAME\s0 -field rather than the using the file name given to the linker. -.IP "\fB\-i\fR" 4 -.IX Item "-i" -Perform an incremental link (same as option \fB\-r\fR). -.IP "\fB\-init\fR \fIname\fR" 4 -.IX Item "-init name" -When creating an \s-1ELF\s0 executable or shared object, call \s-1NAME\s0 when the -executable or shared object is loaded, by setting \s-1DT_INIT\s0 to the address -of the function. By default, the linker uses \f(CW\*(C`_init\*(C'\fR as the -function to call. -.IP "\fB\-l\fR\fIarchive\fR" 4 -.IX Item "-larchive" -.PD 0 -.IP "\fB\-\-library=\fR\fIarchive\fR" 4 -.IX Item "--library=archive" -.PD -Add archive file \fIarchive\fR to the list of files to link. This -option may be used any number of times. \fBld\fR will search its -path-list for occurrences of \f(CW\*(C`lib\f(CIarchive\f(CW.a\*(C'\fR for every -\&\fIarchive\fR specified. -.Sp -On systems which support shared libraries, \fBld\fR may also search for -libraries with extensions other than \f(CW\*(C`.a\*(C'\fR. Specifically, on \s-1ELF\s0 -and SunOS systems, \fBld\fR will search a directory for a library with -an extension of \f(CW\*(C`.so\*(C'\fR before searching for one with an extension of -\&\f(CW\*(C`.a\*(C'\fR. By convention, a \f(CW\*(C`.so\*(C'\fR extension indicates a shared -library. -.Sp -The linker will search an archive only once, at the location where it is -specified on the command line. If the archive defines a symbol which -was undefined in some object which appeared before the archive on the -command line, the linker will include the appropriate file(s) from the -archive. However, an undefined symbol in an object appearing later on -the command line will not cause the linker to search the archive again. -.Sp -See the \fB\-(\fR option for a way to force the linker to search -archives multiple times. -.Sp -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 -behaviour of the \s-1AIX\s0 linker. -.IP "\fB\-L\fR\fIsearchdir\fR" 4 -.IX Item "-Lsearchdir" -.PD 0 -.IP "\fB\-\-library\-path=\fR\fIsearchdir\fR" 4 -.IX Item "--library-path=searchdir" -.PD -Add path \fIsearchdir\fR to the list of paths that \fBld\fR will search -for archive libraries and \fBld\fR control scripts. You may use this -option any number of times. The directories are searched in the order -in which they are specified on the command line. Directories specified -on the command line are searched before the default directories. All -\&\fB\-L\fR options apply to all \fB\-l\fR options, regardless of the -order in which the options appear. -.Sp -If \fIsearchdir\fR begins with \f(CW\*(C`=\*(C'\fR, then the \f(CW\*(C`=\*(C'\fR will be replaced -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. -.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 -at the point in which the linker script appears in the command line. -.IP "\fB\-m\fR\fIemulation\fR" 4 -.IX Item "-memulation" -Emulate the \fIemulation\fR linker. You can list the available -emulations with the \fB\-\-verbose\fR or \fB\-V\fR options. -.Sp -If the \fB\-m\fR option is not used, the emulation is taken from the -\&\f(CW\*(C`LDEMULATION\*(C'\fR environment variable, if that is defined. -.Sp -Otherwise, the default emulation depends upon how the linker was -configured. -.IP "\fB\-M\fR" 4 -.IX Item "-M" -.PD 0 -.IP "\fB\-\-print\-map\fR" 4 -.IX Item "--print-map" -.PD -Print a link map to the standard output. A link map provides -information about the link, including the following: -.RS 4 -.IP "*" 4 -Where object files and symbols are mapped into memory. -.IP "*" 4 -How common symbols are allocated. -.IP "*" 4 -All archive members included in the link, with a mention of the symbol -which caused the archive member to be brought in. -.RE -.RS 4 -.RE -.IP "\fB\-n\fR" 4 -.IX Item "-n" -.PD 0 -.IP "\fB\-\-nmagic\fR" 4 -.IX Item "--nmagic" -.PD -Turn off page alignment of sections, and mark the output as -\&\f(CW\*(C`NMAGIC\*(C'\fR if possible. -.IP "\fB\-N\fR" 4 -.IX Item "-N" -.PD 0 -.IP "\fB\-\-omagic\fR" 4 -.IX Item "--omagic" -.PD -Set the text and data sections to be readable and writable. Also, do -not page-align the data segment, and disable linking against shared -libraries. If the output format supports Unix style magic numbers, -mark the output as \f(CW\*(C`OMAGIC\*(C'\fR. Note: Although a writable text section -is allowed for PE-COFF targets, it does not conform to the format -specification published by Microsoft. -.IP "\fB\-\-no\-omagic\fR" 4 -.IX Item "--no-omagic" -This option negates most of the effects of the \fB\-N\fR option. It -sets the text section to be read\-only, and forces the data segment to -be page\-aligned. Note \- this option does not enable linking against -shared libraries. Use \fB\-Bdynamic\fR for this. -.IP "\fB\-o\fR \fIoutput\fR" 4 -.IX Item "-o output" -.PD 0 -.IP "\fB\-\-output=\fR\fIoutput\fR" 4 -.IX Item "--output=output" -.PD -Use \fIoutput\fR as the name for the program produced by \fBld\fR; if this -option is not specified, the name \fIa.out\fR is used by default. The -script command \f(CW\*(C`OUTPUT\*(C'\fR can also specify the output file name. -.IP "\fB\-O\fR \fIlevel\fR" 4 -.IX Item "-O level" -If \fIlevel\fR is a numeric values greater than zero \fBld\fR optimizes -the output. This might take significantly longer and therefore probably -should only be enabled for the final binary. -.IP "\fB\-q\fR" 4 -.IX Item "-q" -.PD 0 -.IP "\fB\-\-emit\-relocs\fR" 4 -.IX Item "--emit-relocs" -.PD -Leave relocation sections and contents in fully linked exececutables. -Post link analysis and optimization tools may need this information in -order to perform correct modifications of executables. This results -in larger executables. -.Sp -This option is currently only supported on \s-1ELF\s0 platforms. -.IP "\fB\-r\fR" 4 -.IX Item "-r" -.PD 0 -.IP "\fB\-\-relocatable\fR" 4 -.IX Item "--relocatable" -.PD -Generate relocatable output\-\-\-i.e., generate an output file that can in -turn serve as input to \fBld\fR. This is often called \fIpartial -linking\fR. As a side effect, in environments that support standard Unix -magic numbers, this option also sets the output file's magic number to -\&\f(CW\*(C`OMAGIC\*(C'\fR. -If this option is not specified, an absolute file is produced. When -linking \*(C+ programs, this option \fIwill not\fR resolve references to -constructors; to do that, use \fB\-Ur\fR. -.Sp -When an input file does not have the same format as the output file, -partial linking is only supported if that input file does not contain any -relocations. Different output formats can have further restrictions; for -example some \f(CW\*(C`a.out\*(C'\fR\-based formats do not support partial linking -with input files in other formats at all. -.Sp -This option does the same thing as \fB\-i\fR. -.IP "\fB\-R\fR \fIfilename\fR" 4 -.IX Item "-R filename" -.PD 0 -.IP "\fB\-\-just\-symbols=\fR\fIfilename\fR" 4 -.IX Item "--just-symbols=filename" -.PD -Read symbol names and their addresses from \fIfilename\fR, but do not -relocate it or include it in the output. This allows your output file -to refer symbolically to absolute locations of memory defined in other -programs. You may use this option more than once. -.Sp -For compatibility with other \s-1ELF\s0 linkers, if the \fB\-R\fR option is -followed by a directory name, rather than a file name, it is treated as -the \fB\-rpath\fR option. -.IP "\fB\-s\fR" 4 -.IX Item "-s" -.PD 0 -.IP "\fB\-\-strip\-all\fR" 4 -.IX Item "--strip-all" -.PD -Omit all symbol information from the output file. -.IP "\fB\-S\fR" 4 -.IX Item "-S" -.PD 0 -.IP "\fB\-\-strip\-debug\fR" 4 -.IX Item "--strip-debug" -.PD -Omit debugger symbol information (but not all symbols) from the output file. -.IP "\fB\-t\fR" 4 -.IX Item "-t" -.PD 0 -.IP "\fB\-\-trace\fR" 4 -.IX Item "--trace" -.PD -Print the names of the input files as \fBld\fR processes them. -.IP "\fB\-T\fR \fIscriptfile\fR" 4 -.IX Item "-T scriptfile" -.PD 0 -.IP "\fB\-\-script=\fR\fIscriptfile\fR" 4 -.IX Item "--script=scriptfile" -.PD -Use \fIscriptfile\fR as the linker script. This script replaces -\&\fBld\fR's default linker script (rather than adding to it), so -\&\fIcommandfile\fR must specify everything necessary to describe the -output file. If \fIscriptfile\fR does not exist in -the current directory, \f(CW\*(C`ld\*(C'\fR looks for it in the directories -specified by any preceding \fB\-L\fR options. Multiple \fB\-T\fR -options accumulate. -.IP "\fB\-u\fR \fIsymbol\fR" 4 -.IX Item "-u symbol" -.PD 0 -.IP "\fB\-\-undefined=\fR\fIsymbol\fR" 4 -.IX Item "--undefined=symbol" -.PD -Force \fIsymbol\fR to be entered in the output file as an undefined -symbol. Doing this may, for example, trigger linking of additional -modules from standard libraries. \fB\-u\fR may be repeated with -different option arguments to enter additional undefined symbols. This -option is equivalent to the \f(CW\*(C`EXTERN\*(C'\fR linker script command. -.IP "\fB\-Ur\fR" 4 -.IX Item "-Ur" -For anything other than \*(C+ programs, this option is equivalent to -\&\fB\-r\fR: it generates relocatable output\-\-\-i.e., an output file that can in -turn serve as input to \fBld\fR. When linking \*(C+ programs, \fB\-Ur\fR -\&\fIdoes\fR resolve references to constructors, unlike \fB\-r\fR. -It does not work to use \fB\-Ur\fR on files that were themselves linked -with \fB\-Ur\fR; once the constructor table has been built, it cannot -be added to. Use \fB\-Ur\fR only for the last partial link, and -\&\fB\-r\fR for the others. -.IP "\fB\-\-unique[=\fR\fI\s-1SECTION\s0\fR\fB]\fR" 4 -.IX Item "--unique[=SECTION]" -Creates a separate output section for every input section matching -\&\fI\s-1SECTION\s0\fR, or if the optional wildcard \fI\s-1SECTION\s0\fR argument is -missing, for every orphan input section. An orphan section is one not -specifically mentioned in a linker script. You may use this option -multiple times on the command line; It prevents the normal merging of -input sections with the same name, overriding output section assignments -in a linker script. -.IP "\fB\-v\fR" 4 -.IX Item "-v" -.PD 0 -.IP "\fB\-\-version\fR" 4 -.IX Item "--version" -.IP "\fB\-V\fR" 4 -.IX Item "-V" -.PD -Display the version number for \fBld\fR. The \fB\-V\fR option also -lists the supported emulations. -.IP "\fB\-x\fR" 4 -.IX Item "-x" -.PD 0 -.IP "\fB\-\-discard\-all\fR" 4 -.IX Item "--discard-all" -.PD -Delete all local symbols. -.IP "\fB\-X\fR" 4 -.IX Item "-X" -.PD 0 -.IP "\fB\-\-discard\-locals\fR" 4 -.IX Item "--discard-locals" -.PD -Delete all temporary local symbols. For most targets, this is all local -symbols whose names begin with \fBL\fR. -.IP "\fB\-y\fR \fIsymbol\fR" 4 -.IX Item "-y symbol" -.PD 0 -.IP "\fB\-\-trace\-symbol=\fR\fIsymbol\fR" 4 -.IX Item "--trace-symbol=symbol" -.PD -Print the name of each linked file in which \fIsymbol\fR appears. This -option may be given any number of times. On many systems it is necessary -to prepend an underscore. -.Sp -This option is useful when you have an undefined symbol in your link but -don't know where the reference is coming from. -.IP "\fB\-Y\fR \fIpath\fR" 4 -.IX Item "-Y path" -Add \fIpath\fR to the default library search path. This option exists -for Solaris compatibility. -.IP "\fB\-z\fR \fIkeyword\fR" 4 -.IX Item "-z keyword" -The recognized keywords are: -.RS 4 -.IP "\fBcombreloc\fR" 4 -.IX Item "combreloc" -Combines multiple reloc sections and sorts them to make dynamic symbol -lookup caching possible. -.IP "\fBdefs\fR" 4 -.IX Item "defs" -Disallows undefined symbols in object files. Undefined symbols in -shared libraries are still allowed. -.IP "\fBinitfirst\fR" 4 -.IX Item "initfirst" -This option is only meaningful when building a shared object. -It marks the object so that its runtime initialization will occur -before the runtime initialization of any other objects brought into -the process at the same time. Similarly the runtime finalization of -the object will occur after the runtime finalization of any other -objects. -.IP "\fBinterpose\fR" 4 -.IX Item "interpose" -Marks the object that its symbol table interposes before all symbols -but the primary executable. -.IP "\fBloadfltr\fR" 4 -.IX Item "loadfltr" -Marks the object that its filters be processed immediately at -runtime. -.IP "\fBmuldefs\fR" 4 -.IX Item "muldefs" -Allows multiple definitions. -.IP "\fBnocombreloc\fR" 4 -.IX Item "nocombreloc" -Disables multiple reloc sections combining. -.IP "\fBnocopyreloc\fR" 4 -.IX Item "nocopyreloc" -Disables production of copy relocs. -.IP "\fBnodefaultlib\fR" 4 -.IX Item "nodefaultlib" -Marks the object that the search for dependencies of this object will -ignore any default library search paths. -.IP "\fBnodelete\fR" 4 -.IX Item "nodelete" -Marks the object shouldn't be unloaded at runtime. -.IP "\fBnodlopen\fR" 4 -.IX Item "nodlopen" -Marks the object not available to \f(CW\*(C`dlopen\*(C'\fR. -.IP "\fBnodump\fR" 4 -.IX Item "nodump" -Marks the object can not be dumped by \f(CW\*(C`dldump\*(C'\fR. -.IP "\fBnow\fR" 4 -.IX Item "now" -When generating an executable or shared library, mark it to tell the -dynamic linker to resolve all symbols when the program is started, or -when the shared library is linked to using dlopen, instead of -deferring function call resolution to the point when the function is -first called. -.IP "\fBorigin\fR" 4 -.IX Item "origin" -Marks the object may contain \f(CW$ORIGIN\fR. -.RE -.RS 4 -.Sp -Other keywords are ignored for Solaris compatibility. -.RE -.IP "\fB\-(\fR \fIarchives\fR \fB\-)\fR" 4 -.IX Item "-( archives -)" -.PD 0 -.IP "\fB\-\-start\-group\fR \fIarchives\fR \fB\-\-end\-group\fR" 4 -.IX Item "--start-group archives --end-group" -.PD -The \fIarchives\fR should be a list of archive files. They may be -either explicit file names, or \fB\-l\fR options. -.Sp -The specified archives are searched repeatedly until no new undefined -references are created. Normally, an archive is searched only once in -the order that it is specified on the command line. If a symbol in that -archive is needed to resolve an undefined symbol referred to by an -object in an archive that appears later on the command line, the linker -would not be able to resolve that reference. By grouping the archives, -they all be searched repeatedly until all possible references are -resolved. -.Sp -Using this option has a significant performance cost. It is best to use -it only when there are unavoidable circular references between two or -more archives. -.IP "\fB\-\-accept\-unknown\-input\-arch\fR" 4 -.IX Item "--accept-unknown-input-arch" -.PD 0 -.IP "\fB\-\-no\-accept\-unknown\-input\-arch\fR" 4 -.IX Item "--no-accept-unknown-input-arch" -.PD -Tells the linker to accept input files whose architecture cannot be -recognised. The assumption is that the user knows what they are doing -and deliberately wants to link in these unknown input files. This was -the default behaviour of the linker, before release 2.14. The default -behaviour from release 2.14 onwards is to reject such input files, and -so the \fB\-\-accept\-unknown\-input\-arch\fR option has been added to -restore the old behaviour. -.IP "\fB\-\-as\-needed\fR" 4 -.IX Item "--as-needed" -.PD 0 -.IP "\fB\-\-no\-as\-needed\fR" 4 -.IX Item "--no-as-needed" -.PD -This option affects \s-1ELF\s0 \s-1DT_NEEDED\s0 tags for dynamic libraries mentioned -on the command line after the \fB\-\-as\-needed\fR option. Normally, -the linker will add a \s-1DT_NEEDED\s0 tag for each dynamic library mentioned -on the command line, regardless of whether the library is actually -needed. \fB\-\-as\-needed\fR causes \s-1DT_NEEDED\s0 tags to only be emitted -for libraries that satisfy some symbol reference from regular objects -which is undefined at the point that the library was linked. -\&\fB\-\-no\-as\-needed\fR restores the default behaviour. -.IP "\fB\-\-add\-needed\fR" 4 -.IX Item "--add-needed" -.PD 0 -.IP "\fB\-\-no\-add\-needed\fR" 4 -.IX Item "--no-add-needed" -.PD -This option affects the treatment of dynamic libraries from \s-1ELF\s0 -\&\s-1DT_NEEDED\s0 tags in dynamic libraries mentioned on the command line after -the \fB\-\-no\-add\-needed\fR option. Normally, the linker will add -a \s-1DT_NEEDED\s0 tag for each dynamic library from \s-1DT_NEEDED\s0 tags. -\&\fB\-\-no\-add\-needed\fR causes \s-1DT_NEEDED\s0 tags will never be emitted -for those libraries from \s-1DT_NEEDED\s0 tags. \fB\-\-add\-needed\fR restores -the default behaviour. -.IP "\fB\-assert\fR \fIkeyword\fR" 4 -.IX Item "-assert keyword" -This option is ignored for SunOS compatibility. -.IP "\fB\-Bdynamic\fR" 4 -.IX Item "-Bdynamic" -.PD 0 -.IP "\fB\-dy\fR" 4 -.IX Item "-dy" -.IP "\fB\-call_shared\fR" 4 -.IX Item "-call_shared" -.PD -Link against dynamic libraries. This is only meaningful on platforms -for which shared libraries are supported. This option is normally the -default on such platforms. The different variants of this option are -for compatibility with various systems. You may use this option -multiple times on the command line: it affects library searching for -\&\fB\-l\fR options which follow it. -.IP "\fB\-Bgroup\fR" 4 -.IX Item "-Bgroup" -Set the \f(CW\*(C`DF_1_GROUP\*(C'\fR flag in the \f(CW\*(C`DT_FLAGS_1\*(C'\fR entry in the dynamic -section. This causes the runtime linker to handle lookups in this -object and its dependencies to be performed only inside the group. -\&\fB\-\-unresolved\-symbols=report\-all\fR is implied. This option is -only meaningful on \s-1ELF\s0 platforms which support shared libraries. -.IP "\fB\-Bstatic\fR" 4 -.IX Item "-Bstatic" -.PD 0 -.IP "\fB\-dn\fR" 4 -.IX Item "-dn" -.IP "\fB\-non_shared\fR" 4 -.IX Item "-non_shared" -.IP "\fB\-static\fR" 4 -.IX Item "-static" -.PD -Do not link against shared libraries. This is only meaningful on -platforms for which shared libraries are supported. The different -variants of this option are for compatibility with various systems. You -may use this option multiple times on the command line: it affects -library searching for \fB\-l\fR options which follow it. This -option also implies \fB\-\-unresolved\-symbols=report\-all\fR. -.IP "\fB\-Bsymbolic\fR" 4 -.IX Item "-Bsymbolic" -When creating a shared library, bind references to global symbols to the -definition within the shared library, if any. Normally, it is possible -for a program linked against a shared library to override the definition -within the shared library. This option is only meaningful on \s-1ELF\s0 -platforms which support shared libraries. -.IP "\fB\-\-check\-sections\fR" 4 -.IX Item "--check-sections" -.PD 0 -.IP "\fB\-\-no\-check\-sections\fR" 4 -.IX Item "--no-check-sections" -.PD -Asks the linker \fInot\fR to check section addresses after they have -been assigned to see if there any overlaps. Normally the linker will -perform this check, and if it finds any overlaps it will produce -suitable error messages. The linker does know about, and does make -allowances for sections in overlays. The default behaviour can be -restored by using the command line switch \fB\-\-check\-sections\fR. -.IP "\fB\-\-cref\fR" 4 -.IX Item "--cref" -Output a cross reference table. If a linker map file is being -generated, the cross reference table is printed to the map file. -Otherwise, it is printed on the standard output. -.Sp -The format of the table is intentionally simple, so that it may be -easily processed by a script if necessary. The symbols are printed out, -sorted by name. For each symbol, a list of file names is given. If the -symbol is defined, the first file listed is the location of the -definition. The remaining files contain references to the symbol. -.IP "\fB\-\-no\-define\-common\fR" 4 -.IX Item "--no-define-common" -This option inhibits the assignment of addresses to common symbols. -The script command \f(CW\*(C`INHIBIT_COMMON_ALLOCATION\*(C'\fR has the same effect. -.Sp -The \fB\-\-no\-define\-common\fR option allows decoupling -the decision to assign addresses to Common symbols from the choice -of the output file type; otherwise a non-Relocatable output type -forces assigning addresses to Common symbols. -Using \fB\-\-no\-define\-common\fR allows Common symbols that are referenced -from a shared library to be assigned addresses only in the main program. -This eliminates the unused duplicate space in the shared library, -and also prevents any possible confusion over resolving to the wrong -duplicate when there are many dynamic modules with specialized search -paths for runtime symbol resolution. -.IP "\fB\-\-defsym\fR \fIsymbol\fR\fB=\fR\fIexpression\fR" 4 -.IX Item "--defsym symbol=expression" -Create a global symbol in the output file, containing the absolute -address given by \fIexpression\fR. You may use this option as many -times as necessary to define multiple symbols in the command line. A -limited form of arithmetic is supported for the \fIexpression\fR in this -context: you may give a hexadecimal constant or the name of an existing -symbol, or use \f(CW\*(C`+\*(C'\fR and \f(CW\*(C`\-\*(C'\fR to add or subtract hexadecimal -constants or symbols. If you need more elaborate expressions, consider -using the linker command language from a script. \fINote:\fR there should be no white -space between \fIsymbol\fR, the equals sign (``\fB=\fR''), and -\&\fIexpression\fR. -.IP "\fB\-\-demangle[=\fR\fIstyle\fR\fB]\fR" 4 -.IX Item "--demangle[=style]" -.PD 0 -.IP "\fB\-\-no\-demangle\fR" 4 -.IX Item "--no-demangle" -.PD -These options control whether to demangle symbol names in error messages -and other output. When the linker is told to demangle, it tries to -present symbol names in a readable fashion: it strips leading -underscores if they are used by the object file format, and converts \*(C+ -mangled symbol names into user readable names. Different compilers have -different mangling styles. The optional demangling style argument can be used -to choose an appropriate demangling style for your compiler. The linker will -demangle by default unless the environment variable \fB\s-1COLLECT_NO_DEMANGLE\s0\fR -is set. These options may be used to override the default. -.IP "\fB\-\-dynamic\-linker\fR \fIfile\fR" 4 -.IX Item "--dynamic-linker file" -Set the name of the dynamic linker. This is only meaningful when -generating dynamically linked \s-1ELF\s0 executables. The default dynamic -linker is normally correct; don't use this unless you know what you are -doing. -.IP "\fB\-\-fatal\-warnings\fR" 4 -.IX Item "--fatal-warnings" -Treat all warnings as errors. -.IP "\fB\-\-force\-exe\-suffix\fR" 4 -.IX Item "--force-exe-suffix" -Make sure that an output file has a .exe suffix. -.Sp -If a successfully built fully linked output file does not have a -\&\f(CW\*(C`.exe\*(C'\fR or \f(CW\*(C`.dll\*(C'\fR suffix, this option forces the linker to copy -the output file to one of the same name with a \f(CW\*(C`.exe\*(C'\fR suffix. This -option is useful when using unmodified Unix makefiles on a Microsoft -Windows host, since some versions of Windows won't run an image unless -it ends in a \f(CW\*(C`.exe\*(C'\fR suffix. -.IP "\fB\-\-no\-gc\-sections\fR" 4 -.IX Item "--no-gc-sections" -.PD 0 -.IP "\fB\-\-gc\-sections\fR" 4 -.IX Item "--gc-sections" -.PD -Enable garbage collection of unused input sections. It is ignored on -targets that do not support this option. This option is not compatible -with \fB\-r\fR. The default behaviour (of not performing this garbage -collection) can be restored by specifying \fB\-\-no\-gc\-sections\fR on -the command line. -.IP "\fB\-\-help\fR" 4 -.IX Item "--help" -Print a summary of the command-line options on the standard output and exit. -.IP "\fB\-\-target\-help\fR" 4 -.IX Item "--target-help" -Print a summary of all target specific options on the standard output and exit. -.IP "\fB\-Map\fR \fImapfile\fR" 4 -.IX Item "-Map mapfile" -Print a link map to the file \fImapfile\fR. See the description of the -\&\fB\-M\fR option, above. -.IP "\fB\-\-no\-keep\-memory\fR" 4 -.IX Item "--no-keep-memory" -\&\fBld\fR normally optimizes for speed over memory usage by caching the -symbol tables of input files in memory. This option tells \fBld\fR to -instead optimize for memory usage, by rereading the symbol tables as -necessary. This may be required if \fBld\fR runs out of memory space -while linking a large executable. -.IP "\fB\-\-no\-undefined\fR" 4 -.IX Item "--no-undefined" -.PD 0 -.IP "\fB\-z defs\fR" 4 -.IX Item "-z defs" -.PD -Report unresolved symbol references from regular object files. This -is done even if the linker is creating a non-symbolic shared library. -The switch \fB\-\-[no\-]allow\-shlib\-undefined\fR controls the -behaviour for reporting unresolved references found in shared -libraries being linked in. -.IP "\fB\-\-allow\-multiple\-definition\fR" 4 -.IX Item "--allow-multiple-definition" -.PD 0 -.IP "\fB\-z muldefs\fR" 4 -.IX Item "-z muldefs" -.PD -Normally when a symbol is defined multiple times, the linker will -report a fatal error. These options allow multiple definitions and the -first definition will be used. -.IP "\fB\-\-allow\-shlib\-undefined\fR" 4 -.IX Item "--allow-shlib-undefined" -.PD 0 -.IP "\fB\-\-no\-allow\-shlib\-undefined\fR" 4 -.IX Item "--no-allow-shlib-undefined" -.PD -Allows (the default) or disallows undefined symbols in shared libraries. -This switch is similar to \fB\-\-no\-undefined\fR except that it -determines the behaviour when the undefined symbols are in a -shared library rather than a regular object file. It does not affect -how undefined symbols in regular object files are handled. -.Sp -The reason that \fB\-\-allow\-shlib\-undefined\fR is the default is that -the shared library being specified at link time may not be the same as -the one that is available at load time, so the symbols might actually be -resolvable at load time. Plus there are some systems, (eg BeOS) where -undefined symbols in shared libraries is normal. (The kernel patches -them at load time to select which function is most appropriate -for the current architecture. This is used for example to dynamically -select an appropriate memset function). Apparently it is also normal -for \s-1HPPA\s0 shared libraries to have undefined symbols. -.IP "\fB\-\-no\-undefined\-version\fR" 4 -.IX Item "--no-undefined-version" -Normally when a symbol has an undefined version, the linker will ignore -it. This option disallows symbols with undefined version and a fatal error -will be issued instead. -.IP "\fB\-\-default\-symver\fR" 4 -.IX Item "--default-symver" -Create and use a default symbol version (the soname) for unversioned -exported symbols. -.IP "\fB\-\-default\-imported\-symver\fR" 4 -.IX Item "--default-imported-symver" -Create and use a default symbol version (the soname) for unversioned -imported symbols. -.IP "\fB\-\-no\-warn\-mismatch\fR" 4 -.IX Item "--no-warn-mismatch" -Normally \fBld\fR will give an error if you try to link together input -files that are mismatched for some reason, perhaps because they have -been compiled for different processors or for different endiannesses. -This option tells \fBld\fR that it should silently permit such possible -errors. This option should only be used with care, in cases when you -have taken some special action that ensures that the linker errors are -inappropriate. -.IP "\fB\-\-no\-whole\-archive\fR" 4 -.IX Item "--no-whole-archive" -Turn off the effect of the \fB\-\-whole\-archive\fR option for subsequent -archive files. -.IP "\fB\-\-noinhibit\-exec\fR" 4 -.IX Item "--noinhibit-exec" -Retain the executable output file whenever it is still usable. -Normally, the linker will not produce an output file if it encounters -errors during the link process; it exits without writing an output file -when it issues any error whatsoever. -.IP "\fB\-nostdlib\fR" 4 -.IX Item "-nostdlib" -Only search library directories explicitly specified on the -command line. Library directories specified in linker scripts -(including linker scripts specified on the command line) are ignored. -.IP "\fB\-\-oformat\fR \fIoutput-format\fR" 4 -.IX Item "--oformat output-format" -\&\fBld\fR may be configured to support more than one kind of object -file. If your \fBld\fR is configured this way, you can use the -\&\fB\-\-oformat\fR option to specify the binary format for the output -object file. Even when \fBld\fR is configured to support alternative -object formats, you don't usually need to specify this, as \fBld\fR -should be configured to produce as a default output format the most -usual format on each machine. \fIoutput-format\fR is a text string, the -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. -.IP "\fB\-pie\fR" 4 -.IX Item "-pie" -.PD 0 -.IP "\fB\-\-pic\-executable\fR" 4 -.IX Item "--pic-executable" -.PD -Create a position independent executable. This is currently only supported on -\&\s-1ELF\s0 platforms. Position independent executables are similar to shared -libraries in that they are relocated by the dynamic linker to the virtual -address the \s-1OS\s0 chooses for them (which can vary between invocations). Like -normal dynamically linked executables they can be executed and symbols -defined in the executable cannot be overridden by shared libraries. -.IP "\fB\-qmagic\fR" 4 -.IX Item "-qmagic" -This option is ignored for Linux compatibility. -.IP "\fB\-Qy\fR" 4 -.IX Item "-Qy" -This option is ignored for \s-1SVR4\s0 compatibility. -.IP "\fB\-\-relax\fR" 4 -.IX Item "--relax" -An option with machine dependent effects. -This option is only supported on a few targets. -.Sp -On some platforms, the \fB\-\-relax\fR option performs global -optimizations that become possible when the linker resolves addressing -in the program, such as relaxing address modes and synthesizing new -instructions in the output object file. -.Sp -On some platforms these link time global optimizations may make symbolic -debugging of the resulting executable impossible. -This is known to be -the case for the Matsushita \s-1MN10200\s0 and \s-1MN10300\s0 family of processors. -.Sp -On platforms where this is not supported, \fB\-\-relax\fR is accepted, -but ignored. -.IP "\fB\-\-retain\-symbols\-file\fR \fIfilename\fR" 4 -.IX Item "--retain-symbols-file filename" -Retain \fIonly\fR the symbols listed in the file \fIfilename\fR, -discarding all others. \fIfilename\fR is simply a flat file, with one -symbol name per line. This option is especially useful in environments -(such as VxWorks) -where a large global symbol table is accumulated gradually, to conserve -run-time memory. -.Sp -\&\fB\-\-retain\-symbols\-file\fR does \fInot\fR discard undefined symbols, -or symbols needed for relocations. -.Sp -You may only specify \fB\-\-retain\-symbols\-file\fR once in the command -line. It overrides \fB\-s\fR and \fB\-S\fR. -.IP "\fB\-rpath\fR \fIdir\fR" 4 -.IX Item "-rpath dir" -Add a directory to the runtime library search path. This is used when -linking an \s-1ELF\s0 executable with shared objects. All \fB\-rpath\fR -arguments are concatenated and passed to the runtime linker, which uses -them to locate shared objects at runtime. The \fB\-rpath\fR option is -also used when locating shared objects which are needed by shared -objects explicitly included in the link; see the description of the -\&\fB\-rpath\-link\fR option. If \fB\-rpath\fR is not used when linking an -\&\s-1ELF\s0 executable, the contents of the environment variable -\&\f(CW\*(C`LD_RUN_PATH\*(C'\fR will be used if it is defined. -.Sp -The \fB\-rpath\fR option may also be used on SunOS. By default, on -SunOS, the linker will form a runtime search patch out of all the -\&\fB\-L\fR options it is given. If a \fB\-rpath\fR option is used, the -runtime search path will be formed exclusively using the \fB\-rpath\fR -options, ignoring the \fB\-L\fR options. This can be useful when using -gcc, which adds many \fB\-L\fR options which may be on \s-1NFS\s0 mounted -filesystems. -.Sp -For compatibility with other \s-1ELF\s0 linkers, if the \fB\-R\fR option is -followed by a directory name, rather than a file name, it is treated as -the \fB\-rpath\fR option. -.IP "\fB\-rpath\-link\fR \fI\s-1DIR\s0\fR" 4 -.IX Item "-rpath-link DIR" -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, -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 -specifies the first set of directories to search. The -\&\fB\-rpath\-link\fR option may specify a sequence of directory names -either by specifying a list of names separated by colons, or by -appearing multiple times. -.Sp -This option should be used with caution as it overrides the search path -that may have been hard compiled into a shared library. In such a case it -is possible to use unintentionally a different search path than the -runtime linker would do. -.Sp -The linker uses the following search paths to locate required shared -libraries. -.RS 4 -.IP "1." 4 -Any directories specified by \fB\-rpath\-link\fR options. -.IP "2." 4 -Any directories specified by \fB\-rpath\fR options. The difference -between \fB\-rpath\fR and \fB\-rpath\-link\fR is that directories -specified by \fB\-rpath\fR options are included in the executable and -used at runtime, whereas the \fB\-rpath\-link\fR option is only effective -at link time. It is for the native linker only. -.IP "3." 4 -On an \s-1ELF\s0 system, if the \fB\-rpath\fR and \f(CW\*(C`rpath\-link\*(C'\fR options -were not used, search the contents of the environment variable -\&\f(CW\*(C`LD_RUN_PATH\*(C'\fR. It is for the native linker only. -.IP "4." 4 -On SunOS, if the \fB\-rpath\fR option was not used, search any -directories specified using \fB\-L\fR options. -.IP "5." 4 -For a native linker, the contents of the environment variable -\&\f(CW\*(C`LD_LIBRARY_PATH\*(C'\fR. -.IP "6." 4 -For a native \s-1ELF\s0 linker, the directories in \f(CW\*(C`DT_RUNPATH\*(C'\fR or -\&\f(CW\*(C`DT_RPATH\*(C'\fR of a shared library are searched for shared -libraries needed by it. The \f(CW\*(C`DT_RPATH\*(C'\fR entries are ignored if -\&\f(CW\*(C`DT_RUNPATH\*(C'\fR entries exist. -.IP "7." 4 -The default directories, normally \fI/lib\fR and \fI/usr/lib\fR. -.IP "8." 4 -For a native linker on an \s-1ELF\s0 system, if the file \fI/etc/ld.so.conf\fR -exists, the list of directories found in that file. -.RE -.RS 4 -.Sp -If the required shared library is not found, the linker will issue a -warning and continue with the link. -.RE -.IP "\fB\-shared\fR" 4 -.IX Item "-shared" -.PD 0 -.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 -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. -.IP "\fB\-\-sort\-common\fR" 4 -.IX Item "--sort-common" -This option tells \fBld\fR to sort the common symbols by size when it -places them in the appropriate output sections. First come all the one -byte symbols, then all the two byte, then all the four byte, and then -everything else. This is to prevent gaps between symbols due to -alignment constraints. -.IP "\fB\-\-sort\-section name\fR" 4 -.IX Item "--sort-section name" -This option will apply \f(CW\*(C`SORT_BY_NAME\*(C'\fR to all wildcard section -patterns in the linker script. -.IP "\fB\-\-sort\-section alignment\fR" 4 -.IX Item "--sort-section alignment" -This option will apply \f(CW\*(C`SORT_BY_ALIGNMENT\*(C'\fR to all wildcard section -patterns in the linker script. -.IP "\fB\-\-split\-by\-file [\fR\fIsize\fR\fB]\fR" 4 -.IX Item "--split-by-file [size]" -Similar to \fB\-\-split\-by\-reloc\fR but creates a new output section for -each input file when \fIsize\fR is reached. \fIsize\fR defaults to a -size of 1 if not given. -.IP "\fB\-\-split\-by\-reloc [\fR\fIcount\fR\fB]\fR" 4 -.IX Item "--split-by-reloc [count]" -Tries to creates extra sections in the output file so that no single -output section in the file contains more than \fIcount\fR relocations. -This is useful when generating huge relocatable files for downloading into -certain real time kernels with the \s-1COFF\s0 object file format; since \s-1COFF\s0 -cannot represent more than 65535 relocations in a single section. Note -that this will fail to work with object file formats which do not -support arbitrary sections. The linker will not split up individual -input sections for redistribution, so if a single input section contains -more than \fIcount\fR relocations one output section will contain that -many relocations. \fIcount\fR defaults to a value of 32768. -.IP "\fB\-\-stats\fR" 4 -.IX Item "--stats" -Compute and display statistics about the operation of the linker, such -as execution time and memory usage. -.IP "\fB\-\-sysroot=\fR\fIdirectory\fR" 4 -.IX Item "--sysroot=directory" -Use \fIdirectory\fR as the location of the sysroot, overriding the -configure-time default. This option is only supported by linkers -that were configured using \fB\-\-with\-sysroot\fR. -.IP "\fB\-\-traditional\-format\fR" 4 -.IX Item "--traditional-format" -For some targets, the output of \fBld\fR is different in some ways from -the output of some existing linker. This switch requests \fBld\fR to -use the traditional format instead. -.Sp -For example, on SunOS, \fBld\fR combines duplicate entries in the -symbol string table. This can reduce the size of an output file with -full debugging information by over 30 percent. Unfortunately, the SunOS -\&\f(CW\*(C`dbx\*(C'\fR program can not read the resulting program (\f(CW\*(C`gdb\*(C'\fR has no -trouble). The \fB\-\-traditional\-format\fR switch tells \fBld\fR to not -combine duplicate entries. -.IP "\fB\-\-section\-start\fR \fIsectionname\fR\fB=\fR\fIorg\fR" 4 -.IX Item "--section-start sectionname=org" -Locate a section in the output file at the absolute -address given by \fIorg\fR. You may use this option as many -times as necessary to locate multiple sections in the command -line. -\&\fIorg\fR must be a single hexadecimal integer; -for compatibility with other linkers, you may omit the leading -\&\fB0x\fR usually associated with hexadecimal values. \fINote:\fR there -should be no white space between \fIsectionname\fR, the equals -sign (``\fB=\fR''), and \fIorg\fR. -.IP "\fB\-Tbss\fR \fIorg\fR" 4 -.IX Item "-Tbss org" -.PD 0 -.IP "\fB\-Tdata\fR \fIorg\fR" 4 -.IX Item "-Tdata org" -.IP "\fB\-Ttext\fR \fIorg\fR" 4 -.IX Item "-Ttext org" -.PD -Same as \-\-section\-start, with \f(CW\*(C`.bss\*(C'\fR, \f(CW\*(C`.data\*(C'\fR or -\&\f(CW\*(C`.text\*(C'\fR as the \fIsectionname\fR. -.IP "\fB\-\-unresolved\-symbols=\fR\fImethod\fR" 4 -.IX Item "--unresolved-symbols=method" -Determine how to handle unresolved symbols. There are four possible -values for \fBmethod\fR: -.RS 4 -.IP "\fBignore-all\fR" 4 -.IX Item "ignore-all" -Do not report any unresolved symbols. -.IP "\fBreport-all\fR" 4 -.IX Item "report-all" -Report all unresolved symbols. This is the default. -.IP "\fBignore-in-object-files\fR" 4 -.IX Item "ignore-in-object-files" -Report unresolved symbols that are contained in shared libraries, but -ignore them if they come from regular object files. -.IP "\fBignore-in-shared-libs\fR" 4 -.IX Item "ignore-in-shared-libs" -Report unresolved symbols that come from regular object files, but -ignore them if they come from shared libraries. This can be useful -when creating a dynamic binary and it is known that all the shared -libraries that it should be referencing are included on the linker's -command line. -.RE -.RS 4 -.Sp -The behaviour for shared libraries on their own can also be controlled -by the \fB\-\-[no\-]allow\-shlib\-undefined\fR option. -.Sp -Normally the linker will generate an error message for each reported -unresolved symbol but the option \fB\-\-warn\-unresolved\-symbols\fR -can change this to a warning. -.RE -.IP "\fB\-\-dll\-verbose\fR" 4 -.IX Item "--dll-verbose" -.PD 0 -.IP "\fB\-\-verbose\fR" 4 -.IX Item "--verbose" -.PD -Display the version number for \fBld\fR and list the linker emulations -supported. Display which input files can and cannot be opened. Display -the linker script being used by the linker. -.IP "\fB\-\-version\-script=\fR\fIversion-scriptfile\fR" 4 -.IX Item "--version-script=version-scriptfile" -Specify the name of a version script to the linker. This is typically -used when creating shared libraries to specify additional information -about the version hierarchy for the library being created. This option -is only meaningful on \s-1ELF\s0 platforms which support shared libraries. -.IP "\fB\-\-warn\-common\fR" 4 -.IX Item "--warn-common" -Warn when a common symbol is combined with another common symbol or with -a symbol definition. Unix linkers allow this somewhat sloppy practise, -but linkers on some other operating systems do not. This option allows -you to find potential problems from combining global symbols. -Unfortunately, some C libraries use this practise, so you may get some -warnings about symbols in the libraries as well as in your programs. -.Sp -There are three kinds of global symbols, illustrated here by C examples: -.RS 4 -.IP "\fBint i = 1;\fR" 4 -.IX Item "int i = 1;" -A definition, which goes in the initialized data section of the output -file. -.IP "\fBextern int i;\fR" 4 -.IX Item "extern int i;" -An undefined reference, which does not allocate space. -There must be either a definition or a common symbol for the -variable somewhere. -.IP "\fBint i;\fR" 4 -.IX Item "int i;" -A common symbol. If there are only (one or more) common symbols for a -variable, it goes in the uninitialized data area of the output file. -The linker merges multiple common symbols for the same variable into a -single symbol. If they are of different sizes, it picks the largest -size. The linker turns a common symbol into a declaration, if there is -a definition of the same variable. -.RE -.RS 4 -.Sp -The \fB\-\-warn\-common\fR option can produce five kinds of warnings. -Each warning consists of a pair of lines: the first describes the symbol -just encountered, and the second describes the previous symbol -encountered with the same name. One or both of the two symbols will be -a common symbol. -.IP "1." 4 -Turning a common symbol into a reference, because there is already a -definition for the symbol. -.Sp -.Vb 3 -\& (

): warning: common of `' -\& overridden by definition -\& (
): warning: defined here -.Ve -.IP "2." 4 -Turning a common symbol into a reference, because a later definition for -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 -\& (
): warning: definition of `' -\& overriding common -\& (
): warning: common is here -.Ve -.IP "3." 4 -Merging a common symbol with a previous same-sized common symbol. -.Sp -.Vb 3 -\& (
): warning: multiple common -\& of `' -\& (
): warning: previous common is here -.Ve -.IP "4." 4 -Merging a common symbol with a previous larger common symbol. -.Sp -.Vb 3 -\& (
): warning: common of `' -\& overridden by larger common -\& (
): warning: larger common is here -.Ve -.IP "5." 4 -Merging a common symbol with a previous smaller common symbol. This is -the same as the previous case, except that the symbols are -encountered in a different order. -.Sp -.Vb 3 -\& (
): warning: common of `' -\& overriding smaller common -\& (
): warning: smaller common is here -.Ve -.RE -.RS 4 -.RE -.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 -detect the use of global constructors. -.IP "\fB\-\-warn\-multiple\-gp\fR" 4 -.IX Item "--warn-multiple-gp" -Warn if multiple global pointer values are required in the output file. -This is only meaningful for certain processors, such as the Alpha. -Specifically, some processors put large-valued constants in a special -section. A special register (the global pointer) points into the middle -of this section, so that constants can be loaded efficiently via a -base-register relative addressing mode. Since the offset in -base-register relative mode is fixed and relatively small (e.g., 16 -bits), this limits the maximum size of the constant pool. Thus, in -large programs, it is often necessary to use multiple global pointer -values in order to be able to address all possible constants. This -option causes a warning to be issued whenever this case occurs. -.IP "\fB\-\-warn\-once\fR" 4 -.IX Item "--warn-once" -Only warn once for each undefined symbol, rather than once per module -which refers to it. -.IP "\fB\-\-warn\-section\-align\fR" 4 -.IX Item "--warn-section-align" -Warn if the address of an output section is changed because of -alignment. Typically, the alignment will be set by an input section. -The address will only be changed if it not explicitly specified; that -is, if the \f(CW\*(C`SECTIONS\*(C'\fR command does not specify a start address for -the section. -.IP "\fB\-\-warn\-shared\-textrel\fR" 4 -.IX Item "--warn-shared-textrel" -Warn if the linker adds a \s-1DT_TEXTREL\s0 to a shared object. -.IP "\fB\-\-warn\-unresolved\-symbols\fR" 4 -.IX Item "--warn-unresolved-symbols" -If the linker is going to report an unresolved symbol (see the option -\&\fB\-\-unresolved\-symbols\fR) it will normally generate an error. -This option makes it generate a warning instead. -.IP "\fB\-\-error\-unresolved\-symbols\fR" 4 -.IX Item "--error-unresolved-symbols" -This restores the linker's default behaviour of generating errors when -it is reporting unresolved symbols. -.IP "\fB\-\-whole\-archive\fR" 4 -.IX Item "--whole-archive" -For each archive mentioned on the command line after the -\&\fB\-\-whole\-archive\fR option, include every object file in the archive -in the link, rather than searching the archive for the required object -files. This is normally used to turn an archive file into a shared -library, forcing every object to be included in the resulting shared -library. This option may be used more than once. -.Sp -Two notes when using this option from gcc: First, gcc doesn't know -about this option, so you have to use \fB\-Wl,\-whole\-archive\fR. -Second, don't forget to use \fB\-Wl,\-no\-whole\-archive\fR after your -list of archives, because gcc will add its own list of archives to -your link and you may not want this flag to affect those as well. -.IP "\fB\-\-wrap\fR \fIsymbol\fR" 4 -.IX Item "--wrap symbol" -Use a wrapper function for \fIsymbol\fR. Any undefined reference to -\&\fIsymbol\fR will be resolved to \f(CW\*(C`_\|_wrap_\f(CIsymbol\f(CW\*(C'\fR. Any -undefined reference to \f(CW\*(C`_\|_real_\f(CIsymbol\f(CW\*(C'\fR will be resolved to -\&\fIsymbol\fR. -.Sp -This can be used to provide a wrapper for a system function. The -wrapper function should be called \f(CW\*(C`_\|_wrap_\f(CIsymbol\f(CW\*(C'\fR. If it -wishes to call the system function, it should call -\&\f(CW\*(C`_\|_real_\f(CIsymbol\f(CW\*(C'\fR. -.Sp -Here is a trivial example: -.Sp -.Vb 6 -\& void * -\& __wrap_malloc (size_t c) -\& { -\& printf ("malloc called with %zu\en", c); -\& return __real_malloc (c); -\& } -.Ve -.Sp -If you link other code with this file using \fB\-\-wrap malloc\fR, then -all calls to \f(CW\*(C`malloc\*(C'\fR will call the function \f(CW\*(C`_\|_wrap_malloc\*(C'\fR -instead. The call to \f(CW\*(C`_\|_real_malloc\*(C'\fR in \f(CW\*(C`_\|_wrap_malloc\*(C'\fR will -call the real \f(CW\*(C`malloc\*(C'\fR function. -.Sp -You may wish to provide a \f(CW\*(C`_\|_real_malloc\*(C'\fR function as well, so that -links without the \fB\-\-wrap\fR option will succeed. If you do this, -you should not put the definition of \f(CW\*(C`_\|_real_malloc\*(C'\fR in the same -file as \f(CW\*(C`_\|_wrap_malloc\*(C'\fR; if you do, the assembler may resolve the -call before the linker has a chance to wrap it to \f(CW\*(C`malloc\*(C'\fR. -.IP "\fB\-\-enable\-new\-dtags\fR" 4 -.IX Item "--enable-new-dtags" -.PD 0 -.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 -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 -created. By default, the new dynamic tags are not created. Note that -those options are only available for \s-1ELF\s0 systems. -.Sp -Set the default size of the linker's hash tables to a prime number -close to \fInumber\fR. Increasing this value can reduce the length of -time it takes the linker to perform its tasks, at the expense of -increasing the linker's memory requirements. Similarly reducing this -value can reduce the memory requirements at the expense of speed. -.IP "\fB\-\-reduce\-memory\-overheads\fR" 4 -.IX Item "--reduce-memory-overheads" -This option reduces memory requirements at ld runtime, at the expense of -linking speed. This was introduced to to select the old O(n^2) algorithm -for link map file generation, rather than the new O(n) algorithm which uses -about 40% more memory for symbol storage. -.Sp -Another affect of the switch is to set the default hash table size to -1021, which again saves memory at the cost of lengthening the linker's -run time. This is not done however if the \fB\-\-hash\-size\fR switch -has been used. -.Sp -The \fB\-\-reduce\-memory\-overheads\fR switch may be also be used to -enable other tradeoffs in future versions of the linker. -.PP -The i386 \s-1PE\s0 linker supports the \fB\-shared\fR option, which causes -the output to be a dynamically linked library (\s-1DLL\s0) instead of a -normal executable. You should name the output \f(CW\*(C`*.dll\*(C'\fR when you -use this option. In addition, the linker fully supports the standard -\&\f(CW\*(C`*.def\*(C'\fR files, which may be specified on the linker command line -like an object file (in fact, it should precede archives it exports -symbols from, to ensure that they get linked in, just like a normal -object file). -.PP -In addition to the options common to all targets, the i386 \s-1PE\s0 linker -support additional command line options that are specific to the i386 -\&\s-1PE\s0 target. Options that take values may be separated from their -values by either a space or an equals sign. -.IP "\fB\-\-add\-stdcall\-alias\fR" 4 -.IX Item "--add-stdcall-alias" -If given, symbols with a stdcall suffix (@\fInn\fR) will be exported -as-is and also with the suffix stripped. -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.IP "\fB\-\-base\-file\fR \fIfile\fR" 4 -.IX Item "--base-file file" -Use \fIfile\fR as the name of a file in which to save the base -addresses of all the relocations needed for generating DLLs with -\&\fIdlltool\fR. -[This is an i386 \s-1PE\s0 specific option] -.IP "\fB\-\-dll\fR" 4 -.IX Item "--dll" -Create a \s-1DLL\s0 instead of a regular executable. You may also use -\&\fB\-shared\fR or specify a \f(CW\*(C`LIBRARY\*(C'\fR in a given \f(CW\*(C`.def\*(C'\fR -file. -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.IP "\fB\-\-enable\-stdcall\-fixup\fR" 4 -.IX Item "--enable-stdcall-fixup" -.PD 0 -.IP "\fB\-\-disable\-stdcall\-fixup\fR" 4 -.IX Item "--disable-stdcall-fixup" -.PD -If the link finds a symbol that it cannot resolve, it will attempt to -do ``fuzzy linking'' by looking for another defined symbol that differs -only in the format of the symbol name (cdecl vs stdcall) and will -resolve that symbol by linking to the match. For example, the -undefined symbol \f(CW\*(C`_foo\*(C'\fR might be linked to the function -\&\f(CW\*(C`_foo@12\*(C'\fR, or the undefined symbol \f(CW\*(C`_bar@16\*(C'\fR might be linked -to the function \f(CW\*(C`_bar\*(C'\fR. When the linker does this, it prints a -warning, since it normally should have failed to link, but sometimes -import libraries generated from third-party dlls may need this feature -to be usable. If you specify \fB\-\-enable\-stdcall\-fixup\fR, this -feature is fully enabled and warnings are not printed. If you specify -\&\fB\-\-disable\-stdcall\-fixup\fR, this feature is disabled and such -mismatches are considered to be errors. -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.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 -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 -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 -such as those beginning with \f(CW\*(C`_head_\*(C'\fR or ending with -\&\f(CW\*(C`_iname\*(C'\fR. In addition, no symbols from \f(CW\*(C`libgcc\*(C'\fR, -\&\f(CW\*(C`libstd++\*(C'\fR, \f(CW\*(C`libmingw32\*(C'\fR, or \f(CW\*(C`crtX.o\*(C'\fR will be exported. -Symbols whose names begin with \f(CW\*(C`_\|_rtti_\*(C'\fR or \f(CW\*(C`_\|_builtin_\*(C'\fR will -not be exported, to help with \*(C+ DLLs. Finally, there is an -extensive list of cygwin-private symbols that are not exported -(obviously, this applies on when building DLLs for cygwin targets). -These cygwin-excludes are: \f(CW\*(C`_cygwin_dll_entry@12\*(C'\fR, -\&\f(CW\*(C`_cygwin_crt0_common@8\*(C'\fR, \f(CW\*(C`_cygwin_noncygwin_dll_entry@12\*(C'\fR, -\&\f(CW\*(C`_fmode\*(C'\fR, \f(CW\*(C`_impure_ptr\*(C'\fR, \f(CW\*(C`cygwin_attach_dll\*(C'\fR, -\&\f(CW\*(C`cygwin_premain0\*(C'\fR, \f(CW\*(C`cygwin_premain1\*(C'\fR, \f(CW\*(C`cygwin_premain2\*(C'\fR, -\&\f(CW\*(C`cygwin_premain3\*(C'\fR, and \f(CW\*(C`environ\*(C'\fR. -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.IP "\fB\-\-exclude\-symbols\fR \fIsymbol\fR\fB,\fR\fIsymbol\fR\fB,...\fR" 4 -.IX Item "--exclude-symbols symbol,symbol,..." -Specifies a list of symbols which should not be automatically -exported. The symbol names may be delimited by commas or colons. -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.IP "\fB\-\-file\-alignment\fR" 4 -.IX Item "--file-alignment" -Specify the file alignment. Sections in the file will always begin at -file offsets which are multiples of this number. This defaults to -512. -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.IP "\fB\-\-heap\fR \fIreserve\fR" 4 -.IX Item "--heap reserve" -.PD 0 -.IP "\fB\-\-heap\fR \fIreserve\fR\fB,\fR\fIcommit\fR" 4 -.IX Item "--heap reserve,commit" -.PD -Specify the amount of memory to reserve (and optionally commit) to be -used as heap for this program. The default is 1Mb reserved, 4K -committed. -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.IP "\fB\-\-image\-base\fR \fIvalue\fR" 4 -.IX Item "--image-base value" -Use \fIvalue\fR as the base address of your program or dll. This is -the lowest memory location that will be used when your program or dll -is loaded. To reduce the need to relocate and improve performance of -your dlls, each should have a unique base address and not overlap any -other dlls. The default is 0x400000 for executables, and 0x10000000 -for dlls. -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.IP "\fB\-\-kill\-at\fR" 4 -.IX Item "--kill-at" -If given, the stdcall suffixes (@\fInn\fR) will be stripped from -symbols before they are exported. -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.IP "\fB\-\-large\-address\-aware\fR" 4 -.IX Item "--large-address-aware" -If given, the appropriate bit in the ``Charateristics'' field of the \s-1COFF\s0 -header is set to indicate that this executable supports virtual addresses -greater than 2 gigabytes. This should be used in conjuction with the /3GB -or /USERVA=\fIvalue\fR megabytes switch in the ``[operating systems]'' -section of the \s-1BOOT\s0.INI. Otherwise, this bit has no effect. -[This option is specific to \s-1PE\s0 targeted ports of the linker] -.IP "\fB\-\-major\-image\-version\fR \fIvalue\fR" 4 -.IX Item "--major-image-version value" -Sets the major number of the ``image version''. Defaults to 1. -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.IP "\fB\-\-major\-os\-version\fR \fIvalue\fR" 4 -.IX Item "--major-os-version value" -Sets the major number of the ``os version''. Defaults to 4. -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.IP "\fB\-\-major\-subsystem\-version\fR \fIvalue\fR" 4 -.IX Item "--major-subsystem-version value" -Sets the major number of the ``subsystem version''. Defaults to 4. -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.IP "\fB\-\-minor\-image\-version\fR \fIvalue\fR" 4 -.IX Item "--minor-image-version value" -Sets the minor number of the ``image version''. Defaults to 0. -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.IP "\fB\-\-minor\-os\-version\fR \fIvalue\fR" 4 -.IX Item "--minor-os-version value" -Sets the minor number of the ``os version''. Defaults to 0. -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.IP "\fB\-\-minor\-subsystem\-version\fR \fIvalue\fR" 4 -.IX Item "--minor-subsystem-version value" -Sets the minor number of the ``subsystem version''. Defaults to 0. -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.IP "\fB\-\-output\-def\fR \fIfile\fR" 4 -.IX Item "--output-def file" -The linker will create the file \fIfile\fR which will contain a \s-1DEF\s0 -file corresponding to the \s-1DLL\s0 the linker is generating. This \s-1DEF\s0 file -(which should be called \f(CW\*(C`*.def\*(C'\fR) may be used to create an import -library with \f(CW\*(C`dlltool\*(C'\fR or may be used as a reference to -automatically or implicitly exported symbols. -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.IP "\fB\-\-out\-implib\fR \fIfile\fR" 4 -.IX Item "--out-implib file" -The linker will create the file \fIfile\fR which will contain an -import lib corresponding to the \s-1DLL\s0 the linker is generating. This -import lib (which should be called \f(CW\*(C`*.dll.a\*(C'\fR or \f(CW\*(C`*.a\*(C'\fR -may be used to link clients against the generated \s-1DLL\s0; this behaviour -makes it possible to skip a separate \f(CW\*(C`dlltool\*(C'\fR import library -creation step. -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.IP "\fB\-\-enable\-auto\-image\-base\fR" 4 -.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 -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] -.IP "\fB\-\-disable\-auto\-image\-base\fR" 4 -.IX Item "--disable-auto-image-base" -Do not automatically generate a unique image base. If there is no -user-specified image base (\f(CW\*(C`\-\-image\-base\*(C'\fR) then use the platform -default. -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.IP "\fB\-\-dll\-search\-prefix\fR \fIstring\fR" 4 -.IX Item "--dll-search-prefix string" -When linking dynamically to a dll without an import library, -search for \f(CW\*(C`.dll\*(C'\fR in preference to -\&\f(CW\*(C`lib.dll\*(C'\fR. This behaviour allows easy distinction -between DLLs built for the various \*(L"subplatforms\*(R": native, cygwin, -uwin, pw, etc. For instance, cygwin DLLs typically use -\&\f(CW\*(C`\-\-dll\-search\-prefix=cyg\*(C'\fR. -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.IP "\fB\-\-enable\-auto\-import\fR" 4 -.IX Item "--enable-auto-import" -Do sophisticated linking of \f(CW\*(C`_symbol\*(C'\fR to \f(CW\*(C`_\|_imp_\|_symbol\*(C'\fR for -\&\s-1DATA\s0 imports from DLLs, and create the necessary thunking symbols when -building the import libraries with those \s-1DATA\s0 exports. Note: Use of the -\&'auto\-import' extension will cause the text section of the image file -to be made writable. This does not conform to the PE-COFF format -specification published by Microsoft. -.Sp -Using 'auto\-import' generally will 'just work' \*(-- but sometimes you may -see this message: -.Sp -"variable '' can't be auto\-imported. Please read the -documentation for ld's \f(CW\*(C`\-\-enable\-auto\-import\*(C'\fR for details." -.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 -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 -the warning, and exit. -.Sp -There are several ways to address this difficulty, regardless of the -data type of the exported variable: -.Sp -One way is to use \-\-enable\-runtime\-pseudo\-reloc switch. This leaves the task -of adjusting references in your client code for runtime environment, so -this method works only when runtime environment supports this feature. -.Sp -A second solution is to force one of the 'constants' to be a variable \*(-- -that is, unknown and un-optimizable at compile time. For arrays, -there are two possibilities: a) make the indexee (the array's address) -a variable, or b) make the 'constant' index a variable. Thus: -.Sp -.Vb 3 -\& extern type extern_array[]; -\& extern_array[1] --> -\& { volatile type *t=extern_array; t[1] } -.Ve -.Sp -or -.Sp -.Vb 3 -\& extern type extern_array[]; -\& extern_array[1] --> -\& { volatile int t=1; extern_array[t] } -.Ve -.Sp -For structs (and most other multiword data types) the only option -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 } -.Ve -.Sp -or -.Sp -.Vb 3 -\& extern long long extern_ll; -\& extern_ll --> -\& { volatile long long * local_ll=&extern_ll; *local_ll } -.Ve -.Sp -A third method of dealing with this difficulty is to abandon -\&'auto\-import' for the offending symbol and mark it with -\&\f(CW\*(C`_\|_declspec(dllimport)\*(C'\fR. However, in practise 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 -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: -.Sp -Original: -.Sp -.Vb 7 -\& --foo.h -\& extern int arr[]; -\& --foo.c -\& #include "foo.h" -\& void main(int argc, char **argv){ -\& printf("%d\en",arr[1]); -\& } -.Ve -.Sp -Solution 1: -.Sp -.Vb 9 -\& --foo.h -\& extern int arr[]; -\& --foo.c -\& #include "foo.h" -\& void main(int argc, char **argv){ -\& /* This workaround is for win32 and cygwin; do not "optimize" */ -\& volatile int *parr = arr; -\& printf("%d\en",parr[1]); -\& } -.Ve -.Sp -Solution 2: -.Sp -.Vb 14 -\& --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) -\& #else -\& #define FOO_IMPORT -\& #endif -\& extern FOO_IMPORT int arr[]; -\& --foo.c -\& #include "foo.h" -\& void main(int argc, char **argv){ -\& printf("%d\en",arr[1]); -\& } -.Ve -.Sp -A fourth way to avoid this problem is to re-code your -library to use a functional interface rather than a data interface -for the offending variables (e.g. \fIset_foo()\fR and \fIget_foo()\fR accessor -functions). -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.IP "\fB\-\-disable\-auto\-import\fR" 4 -.IX Item "--disable-auto-import" -Do not attempt to do sophisticated linking of \f(CW\*(C`_symbol\*(C'\fR to -\&\f(CW\*(C`_\|_imp_\|_symbol\*(C'\fR for \s-1DATA\s0 imports from DLLs. -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.IP "\fB\-\-enable\-runtime\-pseudo\-reloc\fR" 4 -.IX Item "--enable-runtime-pseudo-reloc" -If your code contains expressions described in \-\-enable\-auto\-import section, -that is, \s-1DATA\s0 imports from \s-1DLL\s0 with non-zero offset, this switch will create -a vector of 'runtime pseudo relocations' which can be used by runtime -environment to adjust references to such data in your client code. -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.IP "\fB\-\-disable\-runtime\-pseudo\-reloc\fR" 4 -.IX Item "--disable-runtime-pseudo-reloc" -Do not create pseudo relocations for non-zero offset \s-1DATA\s0 imports from -DLLs. This is the default. -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.IP "\fB\-\-enable\-extra\-pe\-debug\fR" 4 -.IX Item "--enable-extra-pe-debug" -Show additional debug info related to auto-import symbol thunking. -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.IP "\fB\-\-section\-alignment\fR" 4 -.IX Item "--section-alignment" -Sets the section alignment. Sections in memory will always begin at -addresses which are a multiple of this number. Defaults to 0x1000. -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.IP "\fB\-\-stack\fR \fIreserve\fR" 4 -.IX Item "--stack reserve" -.PD 0 -.IP "\fB\-\-stack\fR \fIreserve\fR\fB,\fR\fIcommit\fR" 4 -.IX Item "--stack reserve,commit" -.PD -Specify the amount of memory to reserve (and optionally commit) to be -used as stack for this program. The default is 2Mb reserved, 4K -committed. -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.IP "\fB\-\-subsystem\fR \fIwhich\fR" 4 -.IX Item "--subsystem which" -.PD 0 -.IP "\fB\-\-subsystem\fR \fIwhich\fR\fB:\fR\fImajor\fR" 4 -.IX Item "--subsystem which:major" -.IP "\fB\-\-subsystem\fR \fIwhich\fR\fB:\fR\fImajor\fR\fB.\fR\fIminor\fR" 4 -.IX Item "--subsystem which:major.minor" -.PD -Specifies the subsystem under which your program will execute. The -legal values for \fIwhich\fR are \f(CW\*(C`native\*(C'\fR, \f(CW\*(C`windows\*(C'\fR, -\&\f(CW\*(C`console\*(C'\fR, \f(CW\*(C`posix\*(C'\fR, and \f(CW\*(C`xbox\*(C'\fR. You may optionally set -the subsystem version also. Numeric values are also accepted for -\&\fIwhich\fR. -[This option is specific to the i386 \s-1PE\s0 targeted port of the linker] -.PP -The 68HC11 and 68HC12 linkers support specific options to control the -memory bank switching mapping and trampoline code generation. -.IP "\fB\-\-no\-trampoline\fR" 4 -.IX Item "--no-trampoline" -This option disables the generation of trampoline. By default a trampoline -is generated for each far function which is called using a \f(CW\*(C`jsr\*(C'\fR -instruction (this happens when a pointer to a far function is taken). -.IP "\fB\-\-bank\-window\fR \fIname\fR" 4 -.IX Item "--bank-window name" -This option indicates to the linker the name of the memory region in -the \fB\s-1MEMORY\s0\fR specification that describes the memory bank window. -The definition of such region is then used by the linker to compute -paging and addresses within the memory window. -.SH "ENVIRONMENT" -.IX Header "ENVIRONMENT" -You can change the behaviour of \fBld\fR with the environment variables -\&\f(CW\*(C`GNUTARGET\*(C'\fR, -\&\f(CW\*(C`LDEMULATION\*(C'\fR and \f(CW\*(C`COLLECT_NO_DEMANGLE\*(C'\fR. -.PP -\&\f(CW\*(C`GNUTARGET\*(C'\fR determines the input-file object format if you don't -use \fB\-b\fR (or its synonym \fB\-\-format\fR). Its value should be one -of the \s-1BFD\s0 names for an input format. If there is no -\&\f(CW\*(C`GNUTARGET\*(C'\fR in the environment, \fBld\fR uses the natural format -of the target. If \f(CW\*(C`GNUTARGET\*(C'\fR is set to \f(CW\*(C`default\*(C'\fR then \s-1BFD\s0 -attempts to discover the input format by examining binary input files; -this method often succeeds, but there are potential ambiguities, since -there is no method of ensuring that the magic number used to specify -object-file formats is unique. However, the configuration procedure for -\&\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. -.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 -behaviour, particularly the default linker script. You can list the -available emulations with the \fB\-\-verbose\fR or \fB\-V\fR options. If -the \fB\-m\fR option is not used, and the \f(CW\*(C`LDEMULATION\*(C'\fR environment -variable is not defined, the default emulation depends upon how the -linker was configured. -.PP -Normally, the linker will default to demangling symbols. However, if -\&\f(CW\*(C`COLLECT_NO_DEMANGLE\*(C'\fR is set in the environment, then it will -default to not demangling symbols. This environment variable is used in -a similar fashion by the \f(CW\*(C`gcc\*(C'\fR linker wrapper program. The default -may be overridden by the \fB\-\-demangle\fR and \fB\-\-no\-demangle\fR -options. -.SH "SEE ALSO" -.IX Header "SEE ALSO" -\&\fIar\fR\|(1), \fInm\fR\|(1), \fIobjcopy\fR\|(1), \fIobjdump\fR\|(1), \fIreadelf\fR\|(1) and -the Info entries for \fIbinutils\fR and -\&\fIld\fR. -.SH "COPYRIGHT" -.IX Header "COPYRIGHT" -Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, -2002, 2003, 2004 Free Software Foundation, Inc. -.PP -Permission is granted to copy, distribute and/or modify this document -under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1 -or any later version published by the Free Software Foundation; -with no Invariant Sections, with no Front-Cover Texts, and with no -Back-Cover Texts. A copy of the license is included in the -section entitled ``\s-1GNU\s0 Free Documentation License''. diff --git a/ld/ld.info b/ld/ld.info deleted file mode 100644 index 0a28ca6c2e3..00000000000 --- a/ld/ld.info +++ /dev/null @@ -1,6313 +0,0 @@ -This is ld.info, produced by makeinfo version 4.7 from -.././ld/ld.texinfo. - -START-INFO-DIR-ENTRY -* Ld: (ld). The GNU linker. -END-INFO-DIR-ENTRY - - This file documents the GNU linker LD version 2.15.96. - - Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, -2002, 2003, 2004 Free Software Foundation, Inc. - - -File: ld.info, Node: Top, Next: Overview, Up: (dir) - -Using ld -******** - -This file documents the GNU linker ld version 2.15.96. - - This document is distributed under the terms of the GNU Free -Documentation License. A copy of the license is included in the -section entitled "GNU Free Documentation License". - -* Menu: - -* Overview:: Overview -* Invocation:: Invocation -* Scripts:: Linker Scripts - -* Machine Dependent:: Machine Dependent Features - -* BFD:: BFD - -* Reporting Bugs:: Reporting Bugs -* MRI:: MRI Compatible Script Files -* GNU Free Documentation License:: GNU Free Documentation License -* Index:: Index - - -File: ld.info, Node: Overview, Next: Invocation, Prev: Top, Up: Top - -1 Overview -********** - -`ld' combines a number of object and archive files, relocates their -data and ties up symbol references. Usually the last step in compiling -a program is to run `ld'. - - `ld' accepts Linker Command Language files written in a superset of -AT&T's Link Editor Command Language syntax, to provide explicit and -total control over the linking process. - - This version of `ld' uses the general purpose BFD libraries to -operate on object files. This allows `ld' to read, combine, and write -object files in many different formats--for example, COFF or `a.out'. -Different formats may be linked together to produce any available kind -of object file. *Note BFD::, for more information. - - Aside from its flexibility, the GNU linker is more helpful than other -linkers in providing diagnostic information. Many linkers abandon -execution immediately upon encountering an error; whenever possible, -`ld' continues executing, allowing you to identify other errors (or, in -some cases, to get an output file in spite of the error). - - -File: ld.info, Node: Invocation, Next: Scripts, Prev: Overview, Up: Top - -2 Invocation -************ - -The GNU linker `ld' is meant to cover a broad range of situations, and -to be as compatible as possible with other linkers. As a result, you -have many choices to control its behavior. - -* Menu: - -* Options:: Command Line Options -* Environment:: Environment Variables - - -File: ld.info, Node: Options, Next: Environment, Up: Invocation - -2.1 Command Line Options -======================== - - The linker supports a plethora of command-line options, but in actual -practice few of them are used in any particular context. For instance, -a frequent use of `ld' is to link standard Unix object files on a -standard, supported Unix system. On such a system, to link a file -`hello.o': - - ld -o OUTPUT /lib/crt0.o hello.o -lc - - This tells `ld' to produce a file called OUTPUT as the result of -linking the file `/lib/crt0.o' with `hello.o' and the library `libc.a', -which will come from the standard search directories. (See the -discussion of the `-l' option below.) - - Some of the command-line options to `ld' may be specified at any -point in the command line. However, options which refer to files, such -as `-l' or `-T', cause the file to be read at the point at which the -option appears in the command line, relative to the object files and -other file options. Repeating non-file options with a different -argument will either have no further effect, or override prior -occurrences (those further to the left on the command line) of that -option. Options which may be meaningfully specified more than once are -noted in the descriptions below. - - Non-option arguments are object files or archives which are to be -linked together. They may follow, precede, or be mixed in with -command-line options, except that an object file argument may not be -placed between an option and its argument. - - Usually the linker is invoked with at least one object file, but you -can specify other forms of binary input files using `-l', `-R', and the -script command language. If _no_ binary input files at all are -specified, the linker does not produce any output, and issues the -message `No input files'. - - If the linker cannot recognize the format of an object file, it will -assume that it is a linker script. A script specified in this way -augments the main linker script used for the link (either the default -linker script or the one specified by using `-T'). This feature -permits the linker to link against a file which appears to be an object -or an archive, but actually merely defines some symbol values, or uses -`INPUT' or `GROUP' to load other objects. Note that specifying a -script in this way merely augments the main linker script; use the `-T' -option to replace the default linker script entirely. *Note Scripts::. - - For options whose names are a single letter, option arguments must -either follow the option letter without intervening whitespace, or be -given as separate arguments immediately following the option that -requires them. - - For options whose names are multiple letters, either one dash or two -can precede the option name; for example, `-trace-symbol' and -`--trace-symbol' are equivalent. Note--there is one exception to this -rule. Multiple letter options that start with a lower case 'o' can -only be preceeded by two dashes. This is to reduce confusion with the -`-o' option. So for example `-omagic' sets the output file name to -`magic' whereas `--omagic' sets the NMAGIC flag on the output. - - Arguments to multiple-letter options must either be separated from -the option name by an equals sign, or be given as separate arguments -immediately following the option that requires them. For example, -`--trace-symbol foo' and `--trace-symbol=foo' are equivalent. Unique -abbreviations of the names of multiple-letter options are accepted. - - Note--if the linker is being invoked indirectly, via a compiler -driver (e.g. `gcc') then all the linker command line options should be -prefixed by `-Wl,' (or whatever is appropriate for the particular -compiler driver) like this: - - gcc -Wl,--startgroup foo.o bar.o -Wl,--endgroup - - This is important, because otherwise the compiler driver program may -silently drop the linker options, resulting in a bad link. - - Here is a table of the generic command line switches accepted by the -GNU linker: - -`-aKEYWORD' - This option is supported for HP/UX compatibility. The KEYWORD - argument must be one of the strings `archive', `shared', or - `default'. `-aarchive' is functionally equivalent to `-Bstatic', - and the other two keywords are functionally equivalent to - `-Bdynamic'. This option may be used any number of times. - -`-AARCHITECTURE' -`--architecture=ARCHITECTURE' - In the current release of `ld', this option is useful only for the - Intel 960 family of architectures. In that `ld' configuration, the - ARCHITECTURE argument identifies the particular architecture in - the 960 family, enabling some safeguards and modifying the - archive-library search path. *Note `ld' and the Intel 960 family: - i960, for details. - - Future releases of `ld' may support similar functionality for - other architecture families. - -`-b INPUT-FORMAT' -`--format=INPUT-FORMAT' - `ld' may be configured to support more than one kind of object - file. If your `ld' is configured this way, you can use the `-b' - option to specify the binary format for input object files that - follow this option on the command line. Even when `ld' is - configured to support alternative object formats, you don't - usually need to specify this, as `ld' should be configured to - expect as a default input format the most usual format on each - machine. INPUT-FORMAT is a text string, the name of a particular - format supported by the BFD libraries. (You can list the - available binary formats with `objdump -i'.) *Note BFD::. - - You may want to use this option if you are linking files with an - unusual binary format. You can also use `-b' to switch formats - explicitly (when linking object files of different formats), by - including `-b INPUT-FORMAT' before each group of object files in a - particular format. - - The default format is taken from the environment variable - `GNUTARGET'. *Note Environment::. You can also define the input - format from a script, using the command `TARGET'; see *Note Format - Commands::. - -`-c MRI-COMMANDFILE' -`--mri-script=MRI-COMMANDFILE' - For compatibility with linkers produced by MRI, `ld' accepts script - files written in an alternate, restricted command language, - described in *Note MRI Compatible Script Files: MRI. Introduce - MRI script files with the option `-c'; use the `-T' option to run - linker scripts written in the general-purpose `ld' scripting - language. If MRI-CMDFILE does not exist, `ld' looks for it in the - directories specified by any `-L' options. - -`-d' -`-dc' -`-dp' - These three options are equivalent; multiple forms are supported - for compatibility with other linkers. They assign space to common - symbols even if a relocatable output file is specified (with - `-r'). The script command `FORCE_COMMON_ALLOCATION' has the same - effect. *Note Miscellaneous Commands::. - -`-e ENTRY' -`--entry=ENTRY' - Use ENTRY as the explicit symbol for beginning execution of your - program, rather than the default entry point. If there is no - symbol named ENTRY, the linker will try to parse ENTRY as a number, - and use that as the entry address (the number will be interpreted - in base 10; you may use a leading `0x' for base 16, or a leading - `0' for base 8). *Note Entry Point::, for a discussion of defaults - and other ways of specifying the entry point. - -`--exclude-libs LIB,LIB,...' - Specifies a list of archive libraries from which symbols should - not be automatically exported. The library names may be delimited - by commas or colons. Specifying `--exclude-libs ALL' excludes - symbols in all archive libraries from automatic export. This - option is available only for the i386 PE targeted port of the - linker and for ELF targeted ports. For i386 PE, symbols - explicitly listed in a .def file are still exported, regardless of - this option. For ELF targeted ports, symbols affected by this - option will be treated as hidden. - -`-E' -`--export-dynamic' - When creating a dynamically linked executable, add all symbols to - the dynamic symbol table. The dynamic symbol table is the set of - symbols which are visible from dynamic objects at run time. - - If you do not use this option, the dynamic symbol table will - normally contain only those symbols which are referenced by some - dynamic object mentioned in the link. - - If you use `dlopen' to load a dynamic object which needs to refer - back to the symbols defined by the program, rather than some other - dynamic object, then you will probably need to use this option when - linking the program itself. - - You can also use the version script to control what symbols should - be added to the dynamic symbol table if the output format supports - it. See the description of `--version-script' in *Note VERSION::. - -`-EB' - Link big-endian objects. This affects the default output format. - -`-EL' - Link little-endian objects. This affects the default output - format. - -`-f' -`--auxiliary NAME' - When creating an ELF shared object, set the internal DT_AUXILIARY - field to the specified name. This tells the dynamic linker that - the symbol table of the shared object should be used as an - auxiliary filter on the symbol table of the shared object NAME. - - If you later link a program against this filter object, then, when - you run the program, the dynamic linker will see the DT_AUXILIARY - field. If the dynamic linker resolves any symbols from the filter - object, it will first check whether there is a definition in the - shared object NAME. If there is one, it will be used instead of - the definition in the filter object. The shared object NAME need - not exist. Thus the shared object NAME may be used to provide an - alternative implementation of certain functions, perhaps for - debugging or for machine specific performance. - - This option may be specified more than once. The DT_AUXILIARY - entries will be created in the order in which they appear on the - command line. - -`-F NAME' -`--filter NAME' - When creating an ELF shared object, set the internal DT_FILTER - field to the specified name. This tells the dynamic linker that - the symbol table of the shared object which is being created - should be used as a filter on the symbol table of the shared - object NAME. - - If you later link a program against this filter object, then, when - you run the program, the dynamic linker will see the DT_FILTER - field. The dynamic linker will resolve symbols according to the - symbol table of the filter object as usual, but it will actually - link to the definitions found in the shared object NAME. Thus the - filter object can be used to select a subset of the symbols - provided by the object NAME. - - Some older linkers used the `-F' option throughout a compilation - toolchain for specifying object-file format for both input and - output object files. The GNU linker uses other mechanisms for - this purpose: the `-b', `--format', `--oformat' options, the - `TARGET' command in linker scripts, and the `GNUTARGET' - environment variable. The GNU linker will ignore the `-F' option - when not creating an ELF shared object. - -`-fini NAME' - When creating an ELF executable or shared object, call NAME when - the executable or shared object is unloaded, by setting DT_FINI to - the address of the function. By default, the linker uses `_fini' - as the function to call. - -`-g' - Ignored. Provided for compatibility with other tools. - -`-GVALUE' -`--gpsize=VALUE' - Set the maximum size of objects to be optimized using the GP - register to SIZE. This is only meaningful for object file formats - such as MIPS ECOFF which supports putting large and small objects - into different sections. This is ignored for other object file - formats. - -`-hNAME' -`-soname=NAME' - When creating an ELF shared object, set the internal DT_SONAME - field to the specified name. When an executable is linked with a - shared object which has a DT_SONAME field, then when the - executable is run the dynamic linker will attempt to load the - shared object specified by the DT_SONAME field rather than the - using the file name given to the linker. - -`-i' - Perform an incremental link (same as option `-r'). - -`-init NAME' - When creating an ELF executable or shared object, call NAME when - the executable or shared object is loaded, by setting DT_INIT to - the address of the function. By default, the linker uses `_init' - as the function to call. - -`-lARCHIVE' -`--library=ARCHIVE' - Add archive file ARCHIVE to the list of files to link. This - option may be used any number of times. `ld' will search its - path-list for occurrences of `libARCHIVE.a' for every ARCHIVE - specified. - - On systems which support shared libraries, `ld' may also search for - libraries with extensions other than `.a'. Specifically, on ELF - and SunOS systems, `ld' will search a directory for a library with - an extension of `.so' before searching for one with an extension of - `.a'. By convention, a `.so' extension indicates a shared library. - - The linker will search an archive only once, at the location where - it is specified on the command line. If the archive defines a - symbol which was undefined in some object which appeared before - the archive on the command line, the linker will include the - appropriate file(s) from the archive. However, an undefined - symbol in an object appearing later on the command line will not - cause the linker to search the archive again. - - See the `-(' option for a way to force the linker to search - archives multiple times. - - You may list the same archive multiple times on the command line. - - This type of archive searching is standard for Unix linkers. - However, if you are using `ld' on AIX, note that it is different - from the behaviour of the AIX linker. - -`-LSEARCHDIR' -`--library-path=SEARCHDIR' - Add path SEARCHDIR to the list of paths that `ld' will search for - archive libraries and `ld' control scripts. You may use this - option any number of times. The directories are searched in the - order in which they are specified on the command line. - Directories specified on the command line are searched before the - default directories. All `-L' options apply to all `-l' options, - regardless of the order in which the options appear. - - If SEARCHDIR begins with `=', then the `=' will be replaced by the - "sysroot prefix", a path specified when the linker is configured. - - The default set of paths searched (without being specified with - `-L') depends on which emulation mode `ld' is using, and in some - cases also on how it was configured. *Note Environment::. - - The paths can also be specified in a link script with the - `SEARCH_DIR' command. Directories specified this way are searched - at the point in which the linker script appears in the command - line. - -`-mEMULATION' - Emulate the EMULATION linker. You can list the available - emulations with the `--verbose' or `-V' options. - - If the `-m' option is not used, the emulation is taken from the - `LDEMULATION' environment variable, if that is defined. - - Otherwise, the default emulation depends upon how the linker was - configured. - -`-M' -`--print-map' - Print a link map to the standard output. A link map provides - information about the link, including the following: - - * Where object files and symbols are mapped into memory. - - * How common symbols are allocated. - - * All archive members included in the link, with a mention of - the symbol which caused the archive member to be brought in. - -`-n' -`--nmagic' - Turn off page alignment of sections, and mark the output as - `NMAGIC' if possible. - -`-N' -`--omagic' - Set the text and data sections to be readable and writable. Also, - do not page-align the data segment, and disable linking against - shared libraries. If the output format supports Unix style magic - numbers, mark the output as `OMAGIC'. Note: Although a writable - text section is allowed for PE-COFF targets, it does not conform - to the format specification published by Microsoft. - -`--no-omagic' - This option negates most of the effects of the `-N' 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 shared libraries. Use `-Bdynamic' for this. - -`-o OUTPUT' -`--output=OUTPUT' - Use OUTPUT as the name for the program produced by `ld'; if this - option is not specified, the name `a.out' is used by default. The - script command `OUTPUT' can also specify the output file name. - -`-O LEVEL' - If LEVEL is a numeric values greater than zero `ld' optimizes the - output. This might take significantly longer and therefore - probably should only be enabled for the final binary. - -`-q' -`--emit-relocs' - Leave relocation sections and contents in fully linked - exececutables. Post link analysis and optimization tools may need - this information in order to perform correct modifications of - executables. This results in larger executables. - - This option is currently only supported on ELF platforms. - -`-r' -`--relocatable' - Generate relocatable output--i.e., generate an output file that - can in turn serve as input to `ld'. This is often called "partial - linking". As a side effect, in environments that support standard - Unix magic numbers, this option also sets the output file's magic - number to `OMAGIC'. If this option is not specified, an absolute - file is produced. When linking C++ programs, this option _will - not_ resolve references to constructors; to do that, use `-Ur'. - - When an input file does not have the same format as the output - file, partial linking is only supported if that input file does - not contain any relocations. Different output formats can have - further restrictions; for example some `a.out'-based formats do - not support partial linking with input files in other formats at - all. - - This option does the same thing as `-i'. - -`-R FILENAME' -`--just-symbols=FILENAME' - Read symbol names and their addresses from FILENAME, but do not - relocate it or include it in the output. This allows your output - file to refer symbolically to absolute locations of memory defined - in other programs. You may use this option more than once. - - For compatibility with other ELF linkers, if the `-R' option is - followed by a directory name, rather than a file name, it is - treated as the `-rpath' option. - -`-s' -`--strip-all' - Omit all symbol information from the output file. - -`-S' -`--strip-debug' - Omit debugger symbol information (but not all symbols) from the - output file. - -`-t' -`--trace' - Print the names of the input files as `ld' processes them. - -`-T SCRIPTFILE' -`--script=SCRIPTFILE' - Use SCRIPTFILE as the linker script. This script replaces `ld''s - default linker script (rather than adding to it), so COMMANDFILE - must specify everything necessary to describe the output file. - *Note Scripts::. If SCRIPTFILE does not exist in the current - directory, `ld' looks for it in the directories specified by any - preceding `-L' options. Multiple `-T' options accumulate. - -`-u SYMBOL' -`--undefined=SYMBOL' - Force SYMBOL to be entered in the output file as an undefined - symbol. Doing this may, for example, trigger linking of additional - modules from standard libraries. `-u' may be repeated with - different option arguments to enter additional undefined symbols. - This option is equivalent to the `EXTERN' linker script command. - -`-Ur' - For anything other than C++ programs, this option is equivalent to - `-r': it generates relocatable output--i.e., an output file that - can in turn serve as input to `ld'. When linking C++ programs, - `-Ur' _does_ resolve references to constructors, unlike `-r'. It - does not work to use `-Ur' on files that were themselves linked - with `-Ur'; once the constructor table has been built, it cannot - be added to. Use `-Ur' only for the last partial link, and `-r' - for the others. - -`--unique[=SECTION]' - Creates a separate output section for every input section matching - SECTION, or if the optional wildcard SECTION argument is missing, - for every orphan input section. An orphan section is one not - specifically mentioned in a linker script. You may use this option - multiple times on the command line; It prevents the normal - merging of input sections with the same name, overriding output - section assignments in a linker script. - -`-v' -`--version' -`-V' - Display the version number for `ld'. The `-V' option also lists - the supported emulations. - -`-x' -`--discard-all' - Delete all local symbols. - -`-X' -`--discard-locals' - Delete all temporary local symbols. For most targets, this is all - local symbols whose names begin with `L'. - -`-y SYMBOL' -`--trace-symbol=SYMBOL' - Print the name of each linked file in which SYMBOL appears. This - option may be given any number of times. On many systems it is - necessary to prepend an underscore. - - This option is useful when you have an undefined symbol in your - link but don't know where the reference is coming from. - -`-Y PATH' - Add PATH to the default library search path. This option exists - for Solaris compatibility. - -`-z KEYWORD' - The recognized keywords are: - `combreloc' - Combines multiple reloc sections and sorts them to make - dynamic symbol lookup caching possible. - - `defs' - Disallows undefined symbols in object files. Undefined - symbols in shared libraries are still allowed. - - `initfirst' - This option is only meaningful when building a shared object. - It marks the object so that its runtime initialization will - occur before the runtime initialization of any other objects - brought into the process at the same time. Similarly the - runtime finalization of the object will occur after the - runtime finalization of any other objects. - - `interpose' - Marks the object that its symbol table interposes before all - symbols but the primary executable. - - `loadfltr' - Marks the object that its filters be processed immediately at - runtime. - - `muldefs' - Allows multiple definitions. - - `nocombreloc' - Disables multiple reloc sections combining. - - `nocopyreloc' - Disables production of copy relocs. - - `nodefaultlib' - Marks the object that the search for dependencies of this - object will ignore any default library search paths. - - `nodelete' - Marks the object shouldn't be unloaded at runtime. - - `nodlopen' - Marks the object not available to `dlopen'. - - `nodump' - Marks the object can not be dumped by `dldump'. - - `now' - When generating an executable or shared library, mark it to - tell the dynamic linker to resolve all symbols when the - program is started, or when the shared library is linked to - using dlopen, instead of deferring function call resolution - to the point when the function is first called. - - `origin' - Marks the object may contain $ORIGIN. - - - Other keywords are ignored for Solaris compatibility. - -`-( ARCHIVES -)' -`--start-group ARCHIVES --end-group' - The ARCHIVES should be a list of archive files. They may be - either explicit file names, or `-l' options. - - The specified archives are searched repeatedly until no new - undefined references are created. Normally, an archive is - searched only once in the order that it is specified on the - command line. If a symbol in that archive is needed to resolve an - undefined symbol referred to by an object in an archive that - appears later on the command line, the linker would not be able to - resolve that reference. By grouping the archives, they all be - searched repeatedly until all possible references are resolved. - - Using this option has a significant performance cost. It is best - to use it only when there are unavoidable circular references - between two or more archives. - -`--accept-unknown-input-arch' -`--no-accept-unknown-input-arch' - Tells the linker to accept input files whose architecture cannot be - recognised. The assumption is that the user knows what they are - doing and deliberately wants to link in these unknown input files. - This was the default behaviour of the linker, before release - 2.14. The default behaviour from release 2.14 onwards is to - reject such input files, and so the `--accept-unknown-input-arch' - option has been added to restore the old behaviour. - -`--as-needed' -`--no-as-needed' - This option affects ELF DT_NEEDED tags for dynamic libraries - mentioned on the command line after the `--as-needed' option. - Normally, the linker will add a DT_NEEDED tag for each dynamic - library mentioned on the command line, regardless of whether the - library is actually needed. `--as-needed' causes DT_NEEDED tags - to only be emitted for libraries that satisfy some symbol - reference from regular objects which is undefined at the point - that the library was linked. `--no-as-needed' restores the - default behaviour. - -`--add-needed' -`--no-add-needed' - This option affects the treatment of dynamic libraries from ELF - DT_NEEDED tags in dynamic libraries mentioned on the command line - after the `--no-add-needed' option. Normally, the linker will add - a DT_NEEDED tag for each dynamic library from DT_NEEDED tags. - `--no-add-needed' causes DT_NEEDED tags will never be emitted for - those libraries from DT_NEEDED tags. `--add-needed' restores the - default behaviour. - -`-assert KEYWORD' - This option is ignored for SunOS compatibility. - -`-Bdynamic' -`-dy' -`-call_shared' - Link against dynamic libraries. This is only meaningful on - platforms for which shared libraries are supported. This option - is normally the default on such platforms. The different variants - of this option are for compatibility with various systems. You - may use this option multiple times on the command line: it affects - library searching for `-l' options which follow it. - -`-Bgroup' - Set the `DF_1_GROUP' flag in the `DT_FLAGS_1' entry in the dynamic - section. This causes the runtime linker to handle lookups in this - object and its dependencies to be performed only inside the group. - `--unresolved-symbols=report-all' is implied. This option is only - meaningful on ELF platforms which support shared libraries. - -`-Bstatic' -`-dn' -`-non_shared' -`-static' - Do not link against shared libraries. This is only meaningful on - platforms for which shared libraries are supported. The different - variants of this option are for compatibility with various - systems. You may use this option multiple times on the command - line: it affects library searching for `-l' options which follow - it. This option also implies `--unresolved-symbols=report-all'. - -`-Bsymbolic' - When creating a shared library, bind references to global symbols - to the definition within the shared library, if any. Normally, it - is possible for a program linked against a shared library to - override the definition within the shared library. This option is - only meaningful on ELF platforms which support shared libraries. - -`--check-sections' -`--no-check-sections' - Asks the linker _not_ to check section addresses after they have - been assigned to see if there any overlaps. Normally the linker - will perform this check, and if it finds any overlaps it will - produce suitable error messages. The linker does know about, and - does make allowances for sections in overlays. The default - behaviour can be restored by using the command line switch - `--check-sections'. - -`--cref' - Output a cross reference table. If a linker map file is being - generated, the cross reference table is printed to the map file. - Otherwise, it is printed on the standard output. - - The format of the table is intentionally simple, so that it may be - easily processed by a script if necessary. The symbols are - printed out, sorted by name. For each symbol, a list of file - names is given. If the symbol is defined, the first file listed - is the location of the definition. The remaining files contain - references to the symbol. - -`--no-define-common' - This option inhibits the assignment of addresses to common symbols. - The script command `INHIBIT_COMMON_ALLOCATION' has the same effect. - *Note Miscellaneous Commands::. - - The `--no-define-common' option allows decoupling the decision to - assign addresses to Common symbols from the choice of the output - file type; otherwise a non-Relocatable output type forces - assigning addresses to Common symbols. Using `--no-define-common' - allows Common symbols that are referenced from a shared library to - be assigned addresses only in the main program. This eliminates - the unused duplicate space in the shared library, and also - prevents any possible confusion over resolving to the wrong - duplicate when there are many dynamic modules with specialized - search paths for runtime symbol resolution. - -`--defsym SYMBOL=EXPRESSION' - Create a global symbol in the output file, containing the absolute - address given by EXPRESSION. You may use this option as many - times as necessary to define multiple symbols in the command line. - A limited form of arithmetic is supported for the EXPRESSION in - this context: you may give a hexadecimal constant or the name of - an existing symbol, or use `+' and `-' to add or subtract - hexadecimal constants or symbols. If you need more elaborate - expressions, consider using the linker command language from a - script (*note Assignment: Symbol Definitions: Assignments.). - _Note:_ there should be no white space between SYMBOL, the equals - sign ("<=>"), and EXPRESSION. - -`--demangle[=STYLE]' -`--no-demangle' - These options control whether to demangle symbol names in error - messages and other output. When the linker is told to demangle, - it tries to present symbol names in a readable fashion: it strips - leading underscores if they are used by the object file format, - and converts C++ mangled symbol names into user readable names. - Different compilers have different mangling styles. The optional - demangling style argument can be used to choose an appropriate - demangling style for your compiler. The linker will demangle by - default unless the environment variable `COLLECT_NO_DEMANGLE' is - set. These options may be used to override the default. - -`--dynamic-linker FILE' - Set the name of the dynamic linker. This is only meaningful when - generating dynamically linked ELF executables. The default dynamic - linker is normally correct; don't use this unless you know what - you are doing. - -`--fatal-warnings' - Treat all warnings as errors. - -`--force-exe-suffix' - Make sure that an output file has a .exe suffix. - - If a successfully built fully linked output file does not have a - `.exe' or `.dll' suffix, this option forces the linker to copy the - output file to one of the same name with a `.exe' suffix. This - option is useful when using unmodified Unix makefiles on a - Microsoft Windows host, since some versions of Windows won't run - an image unless it ends in a `.exe' suffix. - -`--no-gc-sections' -`--gc-sections' - Enable garbage collection of unused input sections. It is ignored - on targets that do not support this option. This option is not - compatible with `-r'. The default behaviour (of not performing - this garbage collection) can be restored by specifying - `--no-gc-sections' on the command line. - -`--help' - Print a summary of the command-line options on the standard output - and exit. - -`--target-help' - Print a summary of all target specific options on the standard - output and exit. - -`-Map MAPFILE' - Print a link map to the file MAPFILE. See the description of the - `-M' option, above. - -`--no-keep-memory' - `ld' normally optimizes for speed over memory usage by caching the - symbol tables of input files in memory. This option tells `ld' to - instead optimize for memory usage, by rereading the symbol tables - as necessary. This may be required if `ld' runs out of memory - space while linking a large executable. - -`--no-undefined' -`-z defs' - Report unresolved symbol references from regular object files. - This is done even if the linker is creating a non-symbolic shared - library. The switch `--[no-]allow-shlib-undefined' controls the - behaviour for reporting unresolved references found in shared - libraries being linked in. - -`--allow-multiple-definition' -`-z muldefs' - Normally when a symbol is defined multiple times, the linker will - report a fatal error. These options allow multiple definitions and - the first definition will be used. - -`--allow-shlib-undefined' -`--no-allow-shlib-undefined' - Allows (the default) or disallows undefined symbols in shared - libraries. This switch is similar to `--no-undefined' except that - it determines the behaviour when the undefined symbols are in a - shared library rather than a regular object file. It does not - affect how undefined symbols in regular object files are handled. - - The reason that `--allow-shlib-undefined' is the default is that - the shared library being specified at link time may not be the - same as the one that is available at load time, so the symbols - might actually be resolvable at load time. Plus there are some - systems, (eg BeOS) where undefined symbols in shared libraries is - normal. (The kernel patches them at load time to select which - function is most appropriate for the current architecture. This - is used for example to dynamically select an appropriate memset - function). Apparently it is also normal for HPPA shared libraries - to have undefined symbols. - -`--no-undefined-version' - Normally when a symbol has an undefined version, the linker will - ignore it. This option disallows symbols with undefined version - and a fatal error will be issued instead. - -`--default-symver' - Create and use a default symbol version (the soname) for - unversioned exported symbols. - -`--default-imported-symver' - Create and use a default symbol version (the soname) for - unversioned imported symbols. - -`--no-warn-mismatch' - Normally `ld' will give an error if you try to link together input - files that are mismatched for some reason, perhaps because they - have been compiled for different processors or for different - endiannesses. This option tells `ld' that it should silently - permit such possible errors. This option should only be used with - care, in cases when you have taken some special action that - ensures that the linker errors are inappropriate. - -`--no-whole-archive' - Turn off the effect of the `--whole-archive' option for subsequent - archive files. - -`--noinhibit-exec' - Retain the executable output file whenever it is still usable. - Normally, the linker will not produce an output file if it - encounters errors during the link process; it exits without - writing an output file when it issues any error whatsoever. - -`-nostdlib' - Only search library directories explicitly specified on the - command line. Library directories specified in linker scripts - (including linker scripts specified on the command line) are - ignored. - -`--oformat OUTPUT-FORMAT' - `ld' may be configured to support more than one kind of object - file. If your `ld' is configured this way, you can use the - `--oformat' option to specify the binary format for the output - object file. Even when `ld' is configured to support alternative - object formats, you don't usually need to specify this, as `ld' - should be configured to produce as a default output format the most - usual format on each machine. OUTPUT-FORMAT is a text string, the - name of a particular format supported by the BFD libraries. (You - can list the available binary formats with `objdump -i'.) The - script command `OUTPUT_FORMAT' can also specify the output format, - but this option overrides it. *Note BFD::. - -`-pie' -`--pic-executable' - Create a position independent executable. This is currently only - supported on ELF platforms. Position independent executables are - similar to shared libraries in that they are relocated by the - dynamic linker to the virtual address the OS chooses for them - (which can vary between invocations). Like normal dynamically - linked executables they can be executed and symbols defined in the - executable cannot be overridden by shared libraries. - -`-qmagic' - This option is ignored for Linux compatibility. - -`-Qy' - This option is ignored for SVR4 compatibility. - -`--relax' - An option with machine dependent effects. This option is only - supported on a few targets. *Note `ld' and the H8/300: H8/300. - *Note `ld' and the Intel 960 family: i960. *Note `ld' and Xtensa - Processors: Xtensa. - - On some platforms, the `--relax' option performs global - optimizations that become possible when the linker resolves - addressing in the program, such as relaxing address modes and - synthesizing new instructions in the output object file. - - On some platforms these link time global optimizations may make - symbolic debugging of the resulting executable impossible. This - is known to be the case for the Matsushita MN10200 and MN10300 - family of processors. - - On platforms where this is not supported, `--relax' is accepted, - but ignored. - -`--retain-symbols-file FILENAME' - Retain _only_ the symbols listed in the file FILENAME, discarding - all others. FILENAME is simply a flat file, with one symbol name - per line. This option is especially useful in environments (such - as VxWorks) where a large global symbol table is accumulated - gradually, to conserve run-time memory. - - `--retain-symbols-file' does _not_ discard undefined symbols, or - symbols needed for relocations. - - You may only specify `--retain-symbols-file' once in the command - line. It overrides `-s' and `-S'. - -`-rpath DIR' - Add a directory to the runtime library search path. This is used - when linking an ELF executable with shared objects. All `-rpath' - arguments are concatenated and passed to the runtime linker, which - uses them to locate shared objects at runtime. The `-rpath' - option is also used when locating shared objects which are needed - by shared objects explicitly included in the link; see the - description of the `-rpath-link' option. If `-rpath' is not used - when linking an ELF executable, the contents of the environment - variable `LD_RUN_PATH' will be used if it is defined. - - The `-rpath' option may also be used on SunOS. By default, on - SunOS, the linker will form a runtime search patch out of all the - `-L' options it is given. If a `-rpath' option is used, the - runtime search path will be formed exclusively using the `-rpath' - options, ignoring the `-L' options. This can be useful when using - gcc, which adds many `-L' options which may be on NFS mounted - filesystems. - - For compatibility with other ELF linkers, if the `-R' option is - followed by a directory name, rather than a file name, it is - treated as the `-rpath' option. - -`-rpath-link DIR' - When using ELF or SunOS, one shared library may require another. - This happens when an `ld -shared' link includes a shared library - as one of the input files. - - 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 `-rpath-link' - option specifies the first set of directories to search. The - `-rpath-link' option may specify a sequence of directory names - either by specifying a list of names separated by colons, or by - appearing multiple times. - - This option should be used with caution as it overrides the search - path that may have been hard compiled into a shared library. In - such a case it is possible to use unintentionally a different - search path than the runtime linker would do. - - The linker uses the following search paths to locate required - shared libraries. - 1. Any directories specified by `-rpath-link' options. - - 2. Any directories specified by `-rpath' options. The difference - between `-rpath' and `-rpath-link' is that directories - specified by `-rpath' options are included in the executable - and used at runtime, whereas the `-rpath-link' option is only - effective at link time. It is for the native linker only. - - 3. On an ELF system, if the `-rpath' and `rpath-link' options - were not used, search the contents of the environment variable - `LD_RUN_PATH'. It is for the native linker only. - - 4. On SunOS, if the `-rpath' option was not used, search any - directories specified using `-L' options. - - 5. For a native linker, the contents of the environment variable - `LD_LIBRARY_PATH'. - - 6. For a native ELF linker, the directories in `DT_RUNPATH' or - `DT_RPATH' of a shared library are searched for shared - libraries needed by it. The `DT_RPATH' entries are ignored if - `DT_RUNPATH' entries exist. - - 7. The default directories, normally `/lib' and `/usr/lib'. - - 8. For a native linker on an ELF system, if the file - `/etc/ld.so.conf' exists, the list of directories found in - that file. - - If the required shared library is not found, the linker will issue - a warning and continue with the link. - -`-shared' -`-Bshareable' - Create a shared library. This is currently only supported on ELF, - XCOFF and SunOS platforms. On SunOS, the linker will - automatically create a shared library if the `-e' option is not - used and there are undefined symbols in the link. - -`--sort-common' - This option tells `ld' to sort the common symbols by size when it - places them in the appropriate output sections. First come all - the one byte symbols, then all the two byte, then all the four - byte, and then everything else. This is to prevent gaps between - symbols due to alignment constraints. - -`--sort-section name' - This option will apply `SORT_BY_NAME' to all wildcard section - patterns in the linker script. - -`--sort-section alignment' - This option will apply `SORT_BY_ALIGNMENT' to all wildcard section - patterns in the linker script. - -`--split-by-file [SIZE]' - Similar to `--split-by-reloc' but creates a new output section for - each input file when SIZE is reached. SIZE defaults to a size of - 1 if not given. - -`--split-by-reloc [COUNT]' - Tries to creates extra sections in the output file so that no - single output section in the file contains more than COUNT - relocations. This is useful when generating huge relocatable - files for downloading into certain real time kernels with the COFF - object file format; since COFF cannot represent more than 65535 - relocations in a single section. Note that this will fail to work - with object file formats which do not support arbitrary sections. - The linker will not split up individual input sections for - redistribution, so if a single input section contains more than - COUNT relocations one output section will contain that many - relocations. COUNT defaults to a value of 32768. - -`--stats' - Compute and display statistics about the operation of the linker, - such as execution time and memory usage. - -`--sysroot=DIRECTORY' - Use DIRECTORY as the location of the sysroot, overriding the - configure-time default. This option is only supported by linkers - that were configured using `--with-sysroot'. - -`--traditional-format' - For some targets, the output of `ld' is different in some ways from - the output of some existing linker. This switch requests `ld' to - use the traditional format instead. - - For example, on SunOS, `ld' combines duplicate entries in the - symbol string table. This can reduce the size of an output file - with full debugging information by over 30 percent. - Unfortunately, the SunOS `dbx' program can not read the resulting - program (`gdb' has no trouble). The `--traditional-format' switch - tells `ld' to not combine duplicate entries. - -`--section-start SECTIONNAME=ORG' - Locate a section in the output file at the absolute address given - by ORG. You may use this option as many times as necessary to - locate multiple sections in the command line. ORG must be a - single hexadecimal integer; for compatibility with other linkers, - you may omit the leading `0x' usually associated with hexadecimal - values. _Note:_ there should be no white space between - SECTIONNAME, the equals sign ("<=>"), and ORG. - -`-Tbss ORG' -`-Tdata ORG' -`-Ttext ORG' - Same as -section-start, with `.bss', `.data' or `.text' as the - SECTIONNAME. - -`--unresolved-symbols=METHOD' - Determine how to handle unresolved symbols. There are four - possible values for `method': - - `ignore-all' - Do not report any unresolved symbols. - - `report-all' - Report all unresolved symbols. This is the default. - - `ignore-in-object-files' - Report unresolved symbols that are contained in shared - libraries, but ignore them if they come from regular object - files. - - `ignore-in-shared-libs' - Report unresolved symbols that come from regular object - files, but ignore them if they come from shared libraries. - This can be useful when creating a dynamic binary and it is - known that all the shared libraries that it should be - referencing are included on the linker's command line. - - The behaviour for shared libraries on their own can also be - controlled by the `--[no-]allow-shlib-undefined' option. - - Normally the linker will generate an error message for each - reported unresolved symbol but the option - `--warn-unresolved-symbols' can change this to a warning. - -`--dll-verbose' -`--verbose' - Display the version number for `ld' and list the linker emulations - supported. Display which input files can and cannot be opened. - Display the linker script being used by the linker. - -`--version-script=VERSION-SCRIPTFILE' - Specify the name of a version script to the linker. This is - typically used when creating shared libraries to specify - additional information about the version hierarchy for the library - being created. This option is only meaningful on ELF platforms - which support shared libraries. *Note VERSION::. - -`--warn-common' - Warn when a common symbol is combined with another common symbol - or with a symbol definition. Unix linkers allow this somewhat - sloppy practise, but linkers on some other operating systems do - not. This option allows you to find potential problems from - combining global symbols. Unfortunately, some C libraries use - this practise, so you may get some warnings about symbols in the - libraries as well as in your programs. - - There are three kinds of global symbols, illustrated here by C - examples: - - `int i = 1;' - A definition, which goes in the initialized data section of - the output file. - - `extern int i;' - An undefined reference, which does not allocate space. There - must be either a definition or a common symbol for the - variable somewhere. - - `int i;' - A common symbol. If there are only (one or more) common - symbols for a variable, it goes in the uninitialized data - area of the output file. The linker merges multiple common - symbols for the same variable into a single symbol. If they - are of different sizes, it picks the largest size. The - linker turns a common symbol into a declaration, if there is - a definition of the same variable. - - The `--warn-common' option can produce five kinds of warnings. - Each warning consists of a pair of lines: the first describes the - symbol just encountered, and the second describes the previous - symbol encountered with the same name. One or both of the two - symbols will be a common symbol. - - 1. Turning a common symbol into a reference, because there is - already a definition for the symbol. - FILE(SECTION): warning: common of `SYMBOL' - overridden by definition - FILE(SECTION): warning: defined here - - 2. Turning a common symbol into a reference, because a later - definition for the symbol is encountered. This is the same - as the previous case, except that the symbols are encountered - in a different order. - FILE(SECTION): warning: definition of `SYMBOL' - overriding common - FILE(SECTION): warning: common is here - - 3. Merging a common symbol with a previous same-sized common - symbol. - FILE(SECTION): warning: multiple common - of `SYMBOL' - FILE(SECTION): warning: previous common is here - - 4. Merging a common symbol with a previous larger common symbol. - FILE(SECTION): warning: common of `SYMBOL' - overridden by larger common - FILE(SECTION): warning: larger common is here - - 5. Merging a common symbol with a previous smaller common - symbol. This is the same as the previous case, except that - the symbols are encountered in a different order. - FILE(SECTION): warning: common of `SYMBOL' - overriding smaller common - FILE(SECTION): warning: smaller common is here - -`--warn-constructors' - Warn if any global constructors are used. This is only useful for - a few object file formats. For formats like COFF or ELF, the - linker can not detect the use of global constructors. - -`--warn-multiple-gp' - Warn if multiple global pointer values are required in the output - file. This is only meaningful for certain processors, such as the - Alpha. Specifically, some processors put large-valued constants - in a special section. A special register (the global pointer) - points into the middle of this section, so that constants can be - loaded efficiently via a base-register relative addressing mode. - Since the offset in base-register relative mode is fixed and - relatively small (e.g., 16 bits), this limits the maximum size of - the constant pool. Thus, in large programs, it is often necessary - to use multiple global pointer values in order to be able to - address all possible constants. This option causes a warning to - be issued whenever this case occurs. - -`--warn-once' - Only warn once for each undefined symbol, rather than once per - module which refers to it. - -`--warn-section-align' - Warn if the address of an output section is changed because of - alignment. Typically, the alignment will be set by an input - section. The address will only be changed if it not explicitly - specified; that is, if the `SECTIONS' command does not specify a - start address for the section (*note SECTIONS::). - -`--warn-shared-textrel' - Warn if the linker adds a DT_TEXTREL to a shared object. - -`--warn-unresolved-symbols' - If the linker is going to report an unresolved symbol (see the - option `--unresolved-symbols') it will normally generate an error. - This option makes it generate a warning instead. - -`--error-unresolved-symbols' - This restores the linker's default behaviour of generating errors - when it is reporting unresolved symbols. - -`--whole-archive' - For each archive mentioned on the command line after the - `--whole-archive' option, include every object file in the archive - in the link, rather than searching the archive for the required - object files. This is normally used to turn an archive file into - a shared library, forcing every object to be included in the - resulting shared library. This option may be used more than once. - - Two notes when using this option from gcc: First, gcc doesn't know - about this option, so you have to use `-Wl,-whole-archive'. - Second, don't forget to use `-Wl,-no-whole-archive' after your - list of archives, because gcc will add its own list of archives to - your link and you may not want this flag to affect those as well. - -`--wrap SYMBOL' - Use a wrapper function for SYMBOL. Any undefined reference to - SYMBOL will be resolved to `__wrap_SYMBOL'. Any undefined - reference to `__real_SYMBOL' will be resolved to SYMBOL. - - This can be used to provide a wrapper for a system function. The - wrapper function should be called `__wrap_SYMBOL'. If it wishes - to call the system function, it should call `__real_SYMBOL'. - - Here is a trivial example: - - void * - __wrap_malloc (size_t c) - { - printf ("malloc called with %zu\n", c); - return __real_malloc (c); - } - - If you link other code with this file using `--wrap malloc', then - all calls to `malloc' will call the function `__wrap_malloc' - instead. The call to `__real_malloc' in `__wrap_malloc' will call - the real `malloc' function. - - You may wish to provide a `__real_malloc' function as well, so that - links without the `--wrap' option will succeed. If you do this, - you should not put the definition of `__real_malloc' in the same - file as `__wrap_malloc'; if you do, the assembler may resolve the - call before the linker has a chance to wrap it to `malloc'. - -`--enable-new-dtags' -`--disable-new-dtags' - This linker can create the new dynamic tags in ELF. But the older - ELF systems may not understand them. If you specify - `--enable-new-dtags', the dynamic tags will be created as needed. - If you specify `--disable-new-dtags', no new dynamic tags will be - created. By default, the new dynamic tags are not created. Note - that those options are only available for ELF systems. - - Set the default size of the linker's hash tables to a prime number - close to NUMBER. Increasing this value can reduce the length of - time it takes the linker to perform its tasks, at the expense of - increasing the linker's memory requirements. Similarly reducing - this value can reduce the memory requirements at the expense of - speed. - -`--reduce-memory-overheads' - This option reduces memory requirements at ld runtime, at the - expense of linking speed. This was introduced to to select the - old O(n^2) algorithm for link map file generation, rather than the - new O(n) algorithm which uses about 40% more memory for symbol - storage. - - Another affect of the switch is to set the default hash table size - to 1021, which again saves memory at the cost of lengthening the - linker's run time. This is not done however if the `--hash-size' - switch has been used. - - The `--reduce-memory-overheads' switch may be also be used to - enable other tradeoffs in future versions of the linker. - - -2.1.1 Options Specific to i386 PE Targets ------------------------------------------ - -The i386 PE linker supports the `-shared' option, which causes the -output to be a dynamically linked library (DLL) instead of a normal -executable. You should name the output `*.dll' when you use this -option. In addition, the linker fully supports the standard `*.def' -files, which may be specified on the linker command line like an object -file (in fact, it should precede archives it exports symbols from, to -ensure that they get linked in, just like a normal object file). - - In addition to the options common to all targets, the i386 PE linker -support additional command line options that are specific to the i386 -PE target. Options that take values may be separated from their values -by either a space or an equals sign. - -`--add-stdcall-alias' - If given, symbols with a stdcall suffix (@NN) will be exported - as-is and also with the suffix stripped. [This option is specific - to the i386 PE targeted port of the linker] - -`--base-file FILE' - Use FILE as the name of a file in which to save the base addresses - of all the relocations needed for generating DLLs with `dlltool'. - [This is an i386 PE specific option] - -`--dll' - Create a DLL instead of a regular executable. You may also use - `-shared' or specify a `LIBRARY' in a given `.def' file. [This - option is specific to the i386 PE targeted port of the linker] - -`--enable-stdcall-fixup' -`--disable-stdcall-fixup' - If the link finds a symbol that it cannot resolve, it will attempt - to do "fuzzy linking" by looking for another defined symbol that - differs only in the format of the symbol name (cdecl vs stdcall) - and will resolve that symbol by linking to the match. For - example, the undefined symbol `_foo' might be linked to the - function `_foo@12', or the undefined symbol `_bar@16' might be - linked to the function `_bar'. When the linker does this, it - prints a warning, since it normally should have failed to link, - but sometimes import libraries generated from third-party dlls may - need this feature to be usable. If you specify - `--enable-stdcall-fixup', this feature is fully enabled and - warnings are not printed. If you specify - `--disable-stdcall-fixup', this feature is disabled and such - mismatches are considered to be errors. [This option is specific - to the i386 PE targeted port of the linker] - -`--export-all-symbols' - If given, all global symbols in the objects used to build a DLL - will be exported by the DLL. Note that this is the default if - there otherwise wouldn't be any exported symbols. When symbols are - explicitly exported via DEF files or implicitly exported via - function attributes, the default is to not export anything else - unless this option is given. Note that the symbols `DllMain@12', - `DllEntryPoint@0', `DllMainCRTStartup@12', and `impure_ptr' will - not be automatically exported. Also, symbols imported from other - DLLs will not be re-exported, nor will symbols specifying the - DLL's internal layout such as those beginning with `_head_' or - ending with `_iname'. In addition, no symbols from `libgcc', - `libstd++', `libmingw32', or `crtX.o' will be exported. Symbols - whose names begin with `__rtti_' or `__builtin_' will not be - exported, to help with C++ DLLs. Finally, there is an extensive - list of cygwin-private symbols that are not exported (obviously, - this applies on when building DLLs for cygwin targets). These - cygwin-excludes are: `_cygwin_dll_entry@12', - `_cygwin_crt0_common@8', `_cygwin_noncygwin_dll_entry@12', - `_fmode', `_impure_ptr', `cygwin_attach_dll', `cygwin_premain0', - `cygwin_premain1', `cygwin_premain2', `cygwin_premain3', and - `environ'. [This option is specific to the i386 PE targeted port - of the linker] - -`--exclude-symbols SYMBOL,SYMBOL,...' - Specifies a list of symbols which should not be automatically - exported. The symbol names may be delimited by commas or colons. - [This option is specific to the i386 PE targeted port of the - linker] - -`--file-alignment' - Specify the file alignment. Sections in the file will always - begin at file offsets which are multiples of this number. This - defaults to 512. [This option is specific to the i386 PE targeted - port of the linker] - -`--heap RESERVE' -`--heap RESERVE,COMMIT' - Specify the amount of memory to reserve (and optionally commit) to - be used as heap for this program. The default is 1Mb reserved, 4K - committed. [This option is specific to the i386 PE targeted port - of the linker] - -`--image-base VALUE' - Use VALUE as the base address of your program or dll. This is the - lowest memory location that will be used when your program or dll - is loaded. To reduce the need to relocate and improve performance - of your dlls, each should have a unique base address and not - overlap any other dlls. The default is 0x400000 for executables, - and 0x10000000 for dlls. [This option is specific to the i386 PE - targeted port of the linker] - -`--kill-at' - If given, the stdcall suffixes (@NN) will be stripped from symbols - before they are exported. [This option is specific to the i386 PE - targeted port of the linker] - -`--large-address-aware' - If given, the appropriate bit in the "Charateristics" field of the - COFF header is set to indicate that this executable supports - virtual addresses greater than 2 gigabytes. This should be used - in conjuction with the /3GB or /USERVA=VALUE megabytes switch in - the "[operating systems]" section of the BOOT.INI. Otherwise, - this bit has no effect. [This option is specific to PE targeted - ports of the linker] - -`--major-image-version VALUE' - Sets the major number of the "image version". Defaults to 1. - [This option is specific to the i386 PE targeted port of the - linker] - -`--major-os-version VALUE' - Sets the major number of the "os version". Defaults to 4. [This - option is specific to the i386 PE targeted port of the linker] - -`--major-subsystem-version VALUE' - Sets the major number of the "subsystem version". Defaults to 4. - [This option is specific to the i386 PE targeted port of the - linker] - -`--minor-image-version VALUE' - Sets the minor number of the "image version". Defaults to 0. - [This option is specific to the i386 PE targeted port of the - linker] - -`--minor-os-version VALUE' - Sets the minor number of the "os version". Defaults to 0. [This - option is specific to the i386 PE targeted port of the linker] - -`--minor-subsystem-version VALUE' - Sets the minor number of the "subsystem version". Defaults to 0. - [This option is specific to the i386 PE targeted port of the - linker] - -`--output-def FILE' - The linker will create the file FILE which will contain a DEF file - corresponding to the DLL the linker is generating. This DEF file - (which should be called `*.def') may be used to create an import - library with `dlltool' or may be used as a reference to - automatically or implicitly exported symbols. [This option is - specific to the i386 PE targeted port of the linker] - -`--out-implib FILE' - The linker will create the file FILE which will contain an import - lib corresponding to the DLL the linker is generating. This import - lib (which should be called `*.dll.a' or `*.a' may be used to link - clients against the generated DLL; this behaviour makes it - possible to skip a separate `dlltool' import library creation step. - [This option is specific to the i386 PE targeted port of the - linker] - -`--enable-auto-image-base' - Automatically choose the image base for DLLs, unless one is - specified using the `--image-base' argument. By using a hash - generated from the dllname to create unique image bases for each - DLL, in-memory collisions and relocations which can delay program - execution are avoided. [This option is specific to the i386 PE - targeted port of the linker] - -`--disable-auto-image-base' - Do not automatically generate a unique image base. If there is no - user-specified image base (`--image-base') then use the platform - default. [This option is specific to the i386 PE targeted port of - the linker] - -`--dll-search-prefix STRING' - When linking dynamically to a dll without an import library, - search for `.dll' in preference to - `lib.dll'. This behaviour allows easy distinction - between DLLs built for the various "subplatforms": native, cygwin, - uwin, pw, etc. For instance, cygwin DLLs typically use - `--dll-search-prefix=cyg'. [This option is specific to the i386 - PE targeted port of the linker] - -`--enable-auto-import' - Do sophisticated linking of `_symbol' to `__imp__symbol' for DATA - imports from DLLs, and create the necessary thunking symbols when - building the import libraries with those DATA exports. Note: Use - of the 'auto-import' extension will cause the text section of the - image file to be made writable. This does not conform to the - PE-COFF format specification published by Microsoft. - - Using 'auto-import' generally will 'just work' - but sometimes you - may see this message: - - "variable '' can't be auto-imported. Please read the - documentation for ld's `--enable-auto-import' for details." - - This message occurs when some (sub)expression accesses an address - ultimately given by the sum of two constants (Win32 import tables - only allow one). Instances where this may occur include accesses - to member fields of struct variables imported from a DLL, as well - as using a constant index into an array variable imported from a - DLL. Any multiword variable (arrays, structs, long long, etc) may - trigger this error condition. However, regardless of the exact - data type of the offending exported variable, ld will always - detect it, issue the warning, and exit. - - There are several ways to address this difficulty, regardless of - the data type of the exported variable: - - One way is to use -enable-runtime-pseudo-reloc switch. This leaves - the task of adjusting references in your client code for runtime - environment, so this method works only when runtime environment - supports this feature. - - A second solution is to force one of the 'constants' to be a - variable - that is, unknown and un-optimizable at compile time. - For arrays, there are two possibilities: a) make the indexee (the - array's address) a variable, or b) make the 'constant' index a - variable. Thus: - - extern type extern_array[]; - extern_array[1] --> - { volatile type *t=extern_array; t[1] } - - or - - extern type extern_array[]; - extern_array[1] --> - { volatile int t=1; extern_array[t] } - - For structs (and most other multiword data types) the only option - is to make the struct itself (or the long long, or the ...) - variable: - - extern struct s extern_struct; - extern_struct.field --> - { volatile struct s *t=&extern_struct; t->field } - - or - - extern long long extern_ll; - extern_ll --> - { volatile long long * local_ll=&extern_ll; *local_ll } - - A third method of dealing with this difficulty is to abandon - 'auto-import' for the offending symbol and mark it with - `__declspec(dllimport)'. However, in practise that requires using - compile-time #defines to indicate whether you are building a DLL, - building client code that will link to the DLL, or merely - building/linking to a static library. In making the choice - between the various methods of resolving the 'direct address with - constant offset' problem, you should consider typical real-world - usage: - - Original: - --foo.h - extern int arr[]; - --foo.c - #include "foo.h" - void main(int argc, char **argv){ - printf("%d\n",arr[1]); - } - - Solution 1: - --foo.h - extern int arr[]; - --foo.c - #include "foo.h" - void main(int argc, char **argv){ - /* This workaround is for win32 and cygwin; do not "optimize" */ - volatile int *parr = arr; - printf("%d\n",parr[1]); - } - - Solution 2: - --foo.h - /* Note: auto-export is assumed (no __declspec(dllexport)) */ - #if (defined(_WIN32) || defined(__CYGWIN__)) && \ - !(defined(FOO_BUILD_DLL) || defined(FOO_STATIC)) - #define FOO_IMPORT __declspec(dllimport) - #else - #define FOO_IMPORT - #endif - extern FOO_IMPORT int arr[]; - --foo.c - #include "foo.h" - void main(int argc, char **argv){ - printf("%d\n",arr[1]); - } - - A fourth way to avoid this problem is to re-code your library to - use a functional interface rather than a data interface for the - offending variables (e.g. set_foo() and get_foo() accessor - functions). [This option is specific to the i386 PE targeted port - of the linker] - -`--disable-auto-import' - Do not attempt to do sophisticated linking of `_symbol' to - `__imp__symbol' for DATA imports from DLLs. [This option is - specific to the i386 PE targeted port of the linker] - -`--enable-runtime-pseudo-reloc' - If your code contains expressions described in -enable-auto-import - section, that is, DATA imports from DLL with non-zero offset, this - switch will create a vector of 'runtime pseudo relocations' which - can be used by runtime environment to adjust references to such - data in your client code. [This option is specific to the i386 PE - targeted port of the linker] - -`--disable-runtime-pseudo-reloc' - Do not create pseudo relocations for non-zero offset DATA imports - from DLLs. This is the default. [This option is specific to the - i386 PE targeted port of the linker] - -`--enable-extra-pe-debug' - Show additional debug info related to auto-import symbol thunking. - [This option is specific to the i386 PE targeted port of the - linker] - -`--section-alignment' - Sets the section alignment. Sections in memory will always begin - at addresses which are a multiple of this number. Defaults to - 0x1000. [This option is specific to the i386 PE targeted port of - the linker] - -`--stack RESERVE' -`--stack RESERVE,COMMIT' - Specify the amount of memory to reserve (and optionally commit) to - be used as stack for this program. The default is 2Mb reserved, 4K - committed. [This option is specific to the i386 PE targeted port - of the linker] - -`--subsystem WHICH' -`--subsystem WHICH:MAJOR' -`--subsystem WHICH:MAJOR.MINOR' - Specifies the subsystem under which your program will execute. The - legal values for WHICH are `native', `windows', `console', - `posix', and `xbox'. You may optionally set the subsystem version - also. Numeric values are also accepted for WHICH. [This option - is specific to the i386 PE targeted port of the linker] - - - -File: ld.info, Node: Environment, Prev: Options, Up: Invocation - -2.2 Environment Variables -========================= - -You can change the behaviour of `ld' with the environment variables -`GNUTARGET', `LDEMULATION' and `COLLECT_NO_DEMANGLE'. - - `GNUTARGET' determines the input-file object format if you don't use -`-b' (or its synonym `--format'). Its value should be one of the BFD -names for an input format (*note BFD::). If there is no `GNUTARGET' in -the environment, `ld' uses the natural format of the target. If -`GNUTARGET' is set to `default' then BFD attempts to discover the input -format by examining binary input files; this method often succeeds, but -there are potential ambiguities, since there is no method of ensuring -that the magic number used to specify object-file formats is unique. -However, the configuration procedure for BFD on each system places the -conventional format for that system first in the search-list, so -ambiguities are resolved in favor of convention. - - `LDEMULATION' determines the default emulation if you don't use the -`-m' option. The emulation can affect various aspects of linker -behaviour, particularly the default linker script. You can list the -available emulations with the `--verbose' or `-V' options. If the `-m' -option is not used, and the `LDEMULATION' environment variable is not -defined, the default emulation depends upon how the linker was -configured. - - Normally, the linker will default to demangling symbols. However, if -`COLLECT_NO_DEMANGLE' is set in the environment, then it will default -to not demangling symbols. This environment variable is used in a -similar fashion by the `gcc' linker wrapper program. The default may -be overridden by the `--demangle' and `--no-demangle' options. - - -File: ld.info, Node: Scripts, Next: Machine Dependent, Prev: Invocation, Up: Top - -3 Linker Scripts -**************** - -Every link is controlled by a "linker script". This script is written -in the linker command language. - - The main purpose of the linker script is to describe how the -sections in the input files should be mapped into the output file, and -to control the memory layout of the output file. Most linker scripts -do nothing more than this. However, when necessary, the linker script -can also direct the linker to perform many other operations, using the -commands described below. - - The linker always uses a linker script. If you do not supply one -yourself, the linker will use a default script that is compiled into the -linker executable. You can use the `--verbose' command line option to -display the default linker script. Certain command line options, such -as `-r' or `-N', will affect the default linker script. - - You may supply your own linker script by using the `-T' command line -option. When you do this, your linker script will replace the default -linker script. - - You may also use linker scripts implicitly by naming them as input -files to the linker, as though they were files to be linked. *Note -Implicit Linker Scripts::. - -* Menu: - -* Basic Script Concepts:: Basic Linker Script Concepts -* Script Format:: Linker Script Format -* Simple Example:: Simple Linker Script Example -* Simple Commands:: Simple Linker Script Commands -* Assignments:: Assigning Values to Symbols -* SECTIONS:: SECTIONS Command -* MEMORY:: MEMORY Command -* PHDRS:: PHDRS Command -* VERSION:: VERSION Command -* Expressions:: Expressions in Linker Scripts -* Implicit Linker Scripts:: Implicit Linker Scripts - - -File: ld.info, Node: Basic Script Concepts, Next: Script Format, Up: Scripts - -3.1 Basic Linker Script Concepts -================================ - -We need to define some basic concepts and vocabulary in order to -describe the linker script language. - - The linker combines input files into a single output file. The -output file and each input file are in a special data format known as an -"object file format". Each file is called an "object file". The -output file is often called an "executable", but for our purposes we -will also call it an object file. Each object file has, among other -things, a list of "sections". We sometimes refer to a section in an -input file as an "input section"; similarly, a section in the output -file is an "output section". - - Each section in an object file has a name and a size. Most sections -also have an associated block of data, known as the "section contents". -A section may be marked as "loadable", which mean that the contents -should be loaded into memory when the output file is run. A section -with no contents may be "allocatable", which means that an area in -memory should be set aside, but nothing in particular should be loaded -there (in some cases this memory must be zeroed out). A section which -is neither loadable nor allocatable typically contains some sort of -debugging information. - - Every loadable or allocatable output section has two addresses. The -first is the "VMA", or virtual memory address. This is the address the -section will have when the output file is run. The second is the -"LMA", or load memory address. This is the address at which the -section will be loaded. In most cases the two addresses will be the -same. An example of when they might be different is when a data section -is loaded into ROM, and then copied into RAM when the program starts up -(this technique is often used to initialize global variables in a ROM -based system). In this case the ROM address would be the LMA, and the -RAM address would be the VMA. - - You can see the sections in an object file by using the `objdump' -program with the `-h' option. - - Every object file also has a list of "symbols", known as the "symbol -table". A symbol may be defined or undefined. Each symbol has a name, -and each defined symbol has an address, among other information. If -you compile a C or C++ program into an object file, you will get a -defined symbol for every defined function and global or static -variable. Every undefined function or global variable which is -referenced in the input file will become an undefined symbol. - - You can see the symbols in an object file by using the `nm' program, -or by using the `objdump' program with the `-t' option. - - -File: ld.info, Node: Script Format, Next: Simple Example, Prev: Basic Script Concepts, Up: Scripts - -3.2 Linker Script Format -======================== - -Linker scripts are text files. - - You write a linker script as a series of commands. Each command is -either a keyword, possibly followed by arguments, or an assignment to a -symbol. You may separate commands using semicolons. Whitespace is -generally ignored. - - Strings such as file or format names can normally be entered -directly. If the file name contains a character such as a comma which -would otherwise serve to separate file names, you may put the file name -in double quotes. There is no way to use a double quote character in a -file name. - - You may include comments in linker scripts just as in C, delimited by -`/*' and `*/'. As in C, comments are syntactically equivalent to -whitespace. - - -File: ld.info, Node: Simple Example, Next: Simple Commands, Prev: Script Format, Up: Scripts - -3.3 Simple Linker Script Example -================================ - -Many linker scripts are fairly simple. - - The simplest possible linker script has just one command: -`SECTIONS'. You use the `SECTIONS' command to describe the memory -layout of the output file. - - The `SECTIONS' command is a powerful command. Here we will describe -a simple use of it. Let's assume your program consists only of code, -initialized data, and uninitialized data. These will be in the -`.text', `.data', and `.bss' sections, respectively. Let's assume -further that these are the only sections which appear in your input -files. - - For this example, let's say that the code should be loaded at address -0x10000, and that the data should start at address 0x8000000. Here is a -linker script which will do that: - SECTIONS - { - . = 0x10000; - .text : { *(.text) } - . = 0x8000000; - .data : { *(.data) } - .bss : { *(.bss) } - } - - You write the `SECTIONS' command as the keyword `SECTIONS', followed -by a series of symbol assignments and output section descriptions -enclosed in curly braces. - - The first line inside the `SECTIONS' command of the above example -sets the value of the special symbol `.', which is the location -counter. If you do not specify the address of an output section in some -other way (other ways are described later), the address is set from the -current value of the location counter. The location counter is then -incremented by the size of the output section. At the start of the -`SECTIONS' command, the location counter has the value `0'. - - The second line defines an output section, `.text'. The colon is -required syntax which may be ignored for now. Within the curly braces -after the output section name, you list the names of the input sections -which should be placed into this output section. The `*' is a wildcard -which matches any file name. The expression `*(.text)' means all -`.text' input sections in all input files. - - Since the location counter is `0x10000' when the output section -`.text' is defined, the linker will set the address of the `.text' -section in the output file to be `0x10000'. - - The remaining lines define the `.data' and `.bss' sections in the -output file. The linker will place the `.data' output section at -address `0x8000000'. After the linker places the `.data' output -section, the value of the location counter will be `0x8000000' plus the -size of the `.data' output section. The effect is that the linker will -place the `.bss' output section immediately after the `.data' output -section in memory. - - The linker will ensure that each output section has the required -alignment, by increasing the location counter if necessary. In this -example, the specified addresses for the `.text' and `.data' sections -will probably satisfy any alignment constraints, but the linker may -have to create a small gap between the `.data' and `.bss' sections. - - That's it! That's a simple and complete linker script. - - -File: ld.info, Node: Simple Commands, Next: Assignments, Prev: Simple Example, Up: Scripts - -3.4 Simple Linker Script Commands -================================= - -In this section we describe the simple linker script commands. - -* Menu: - -* Entry Point:: Setting the entry point -* File Commands:: Commands dealing with files - -* Format Commands:: Commands dealing with object file formats - -* Miscellaneous Commands:: Other linker script commands - - -File: ld.info, Node: Entry Point, Next: File Commands, Up: Simple Commands - -3.4.1 Setting the Entry Point ------------------------------ - -The first instruction to execute in a program is called the "entry -point". You can use the `ENTRY' linker script command to set the entry -point. The argument is a symbol name: - ENTRY(SYMBOL) - - There are several ways to set the entry point. The linker will set -the entry point by trying each of the following methods in order, and -stopping when one of them succeeds: - * the `-e' ENTRY command-line option; - - * the `ENTRY(SYMBOL)' command in a linker script; - - * the value of the symbol `start', if defined; - - * the address of the first byte of the `.text' section, if present; - - * The address `0'. - - -File: ld.info, Node: File Commands, Next: Format Commands, Prev: Entry Point, Up: Simple Commands - -3.4.2 Commands Dealing with Files ---------------------------------- - -Several linker script commands deal with files. - -`INCLUDE FILENAME' - Include the linker script FILENAME at this point. The file will - be searched for in the current directory, and in any directory - specified with the `-L' option. You can nest calls to `INCLUDE' - up to 10 levels deep. - -`INPUT(FILE, FILE, ...)' -`INPUT(FILE FILE ...)' - The `INPUT' command directs the linker to include the named files - in the link, as though they were named on the command line. - - For example, if you always want to include `subr.o' any time you do - a link, but you can't be bothered to put it on every link command - line, then you can put `INPUT (subr.o)' in your linker script. - - In fact, if you like, you can list all of your input files in the - linker script, and then invoke the linker with nothing but a `-T' - option. - - In case a "sysroot prefix" is configured, and the filename starts - with the `/' character, and the script being processed was located - inside the "sysroot prefix", the filename will be looked for in - the "sysroot prefix". Otherwise, the linker will try to open the - file in the current directory. If it is not found, the linker - will search through the archive library search path. See the - description of `-L' in *Note Command Line Options: Options. - - If you use `INPUT (-lFILE)', `ld' will transform the name to - `libFILE.a', as with the command line argument `-l'. - - When you use the `INPUT' command in an implicit linker script, the - files will be included in the link at the point at which the linker - script file is included. This can affect archive searching. - -`GROUP(FILE, FILE, ...)' -`GROUP(FILE FILE ...)' - The `GROUP' command is like `INPUT', except that the named files - should all be archives, and they are searched repeatedly until no - new undefined references are created. See the description of `-(' - in *Note Command Line Options: Options. - -`AS_NEEDED(FILE, FILE, ...)' -`AS_NEEDED(FILE FILE ...)' - This construct can appear only inside of the `INPUT' or `GROUP' - commands, among other filenames. The files listed will be handled - as if they appear directly in the `INPUT' or `GROUP' commands, - with the exception of ELF shared libraries, that will be added only - when they are actually needed. This construct essentially enables - `--as-needed' option for all the files listed inside of it and - restores previous `--as-needed' resp. `--no-as-needed' setting - afterwards. - -`OUTPUT(FILENAME)' - The `OUTPUT' command names the output file. Using - `OUTPUT(FILENAME)' in the linker script is exactly like using `-o - FILENAME' on the command line (*note Command Line Options: - Options.). If both are used, the command line option takes - precedence. - - You can use the `OUTPUT' command to define a default name for the - output file other than the usual default of `a.out'. - -`SEARCH_DIR(PATH)' - The `SEARCH_DIR' command adds PATH to the list of paths where `ld' - looks for archive libraries. Using `SEARCH_DIR(PATH)' is exactly - like using `-L PATH' on the command line (*note Command Line - Options: Options.). If both are used, then the linker will search - both paths. Paths specified using the command line option are - searched first. - -`STARTUP(FILENAME)' - The `STARTUP' command is just like the `INPUT' command, except - that FILENAME will become the first input file to be linked, as - though it were specified first on the command line. This may be - useful when using a system in which the entry point is always the - start of the first file. - - -File: ld.info, Node: Format Commands, Next: Miscellaneous Commands, Prev: File Commands, Up: Simple Commands - -3.4.3 Commands Dealing with Object File Formats ------------------------------------------------ - -A couple of linker script commands deal with object file formats. - -`OUTPUT_FORMAT(BFDNAME)' -`OUTPUT_FORMAT(DEFAULT, BIG, LITTLE)' - The `OUTPUT_FORMAT' command names the BFD format to use for the - output file (*note BFD::). Using `OUTPUT_FORMAT(BFDNAME)' is - exactly like using `--oformat BFDNAME' on the command line (*note - Command Line Options: Options.). If both are used, the command - line option takes precedence. - - You can use `OUTPUT_FORMAT' with three arguments to use different - formats based on the `-EB' and `-EL' command line options. This - permits the linker script to set the output format based on the - desired endianness. - - If neither `-EB' nor `-EL' are used, then the output format will - be the first argument, DEFAULT. If `-EB' is used, the output - format will be the second argument, BIG. If `-EL' is used, the - output format will be the third argument, LITTLE. - - For example, the default linker script for the MIPS ELF target - uses this command: - OUTPUT_FORMAT(elf32-bigmips, elf32-bigmips, elf32-littlemips) - This says that the default format for the output file is - `elf32-bigmips', but if the user uses the `-EL' command line - option, the output file will be created in the `elf32-littlemips' - format. - -`TARGET(BFDNAME)' - The `TARGET' command names the BFD format to use when reading input - files. It affects subsequent `INPUT' and `GROUP' commands. This - command is like using `-b BFDNAME' on the command line (*note - Command Line Options: Options.). If the `TARGET' command is used - but `OUTPUT_FORMAT' is not, then the last `TARGET' command is also - used to set the format for the output file. *Note BFD::. - - -File: ld.info, Node: Miscellaneous Commands, Prev: Format Commands, Up: Simple Commands - -3.4.4 Other Linker Script Commands ----------------------------------- - -There are a few other linker scripts commands. - -`ASSERT(EXP, MESSAGE)' - Ensure that EXP is non-zero. If it is zero, then exit the linker - with an error code, and print MESSAGE. - -`EXTERN(SYMBOL SYMBOL ...)' - Force SYMBOL to be entered in the output file as an undefined - symbol. Doing this may, for example, trigger linking of additional - modules from standard libraries. You may list several SYMBOLs for - each `EXTERN', and you may use `EXTERN' multiple times. This - command has the same effect as the `-u' command-line option. - -`FORCE_COMMON_ALLOCATION' - This command has the same effect as the `-d' command-line option: - to make `ld' assign space to common symbols even if a relocatable - output file is specified (`-r'). - -`INHIBIT_COMMON_ALLOCATION' - This command has the same effect as the `--no-define-common' - command-line option: to make `ld' omit the assignment of addresses - to common symbols even for a non-relocatable output file. - -`NOCROSSREFS(SECTION SECTION ...)' - This command may be used to tell `ld' to issue an error about any - references among certain output sections. - - In certain types of programs, particularly on embedded systems when - using overlays, when one section is loaded into memory, another - section will not be. Any direct references between the two - sections would be errors. For example, it would be an error if - code in one section called a function defined in the other section. - - The `NOCROSSREFS' command takes a list of output section names. If - `ld' detects any cross references between the sections, it reports - an error and returns a non-zero exit status. Note that the - `NOCROSSREFS' command uses output section names, not input section - names. - -`OUTPUT_ARCH(BFDARCH)' - Specify a particular output machine architecture. The argument is - one of the names used by the BFD library (*note BFD::). You can - see the architecture of an object file by using the `objdump' - program with the `-f' option. - - -File: ld.info, Node: Assignments, Next: SECTIONS, Prev: Simple Commands, Up: Scripts - -3.5 Assigning Values to Symbols -=============================== - -You may assign a value to a symbol in a linker script. This will define -the symbol and place it into the symbol table with a global scope. - -* Menu: - -* Simple Assignments:: Simple Assignments -* PROVIDE:: PROVIDE -* Source Code Reference:: How to use a linker script defined symbol in source code - - -File: ld.info, Node: Simple Assignments, Next: PROVIDE, Up: Assignments - -3.5.1 Simple Assignments ------------------------- - -You may assign to a symbol using any of the C assignment operators: - -`SYMBOL = EXPRESSION ;' -`SYMBOL += EXPRESSION ;' -`SYMBOL -= EXPRESSION ;' -`SYMBOL *= EXPRESSION ;' -`SYMBOL /= EXPRESSION ;' -`SYMBOL <<= EXPRESSION ;' -`SYMBOL >>= EXPRESSION ;' -`SYMBOL &= EXPRESSION ;' -`SYMBOL |= EXPRESSION ;' - - The first case will define SYMBOL to the value of EXPRESSION. In -the other cases, SYMBOL must already be defined, and the value will be -adjusted accordingly. - - The special symbol name `.' indicates the location counter. You may -only use this within a `SECTIONS' command. *Note Location Counter::. - - The semicolon after EXPRESSION is required. - - Expressions are defined below; see *Note Expressions::. - - You may write symbol assignments as commands in their own right, or -as statements within a `SECTIONS' command, or as part of an output -section description in a `SECTIONS' command. - - The section of the symbol will be set from the section of the -expression; for more information, see *Note Expression Section::. - - Here is an example showing the three different places that symbol -assignments may be used: - - floating_point = 0; - SECTIONS - { - .text : - { - *(.text) - _etext = .; - } - _bdata = (. + 3) & ~ 3; - .data : { *(.data) } - } - In this example, the symbol `floating_point' will be defined as -zero. The symbol `_etext' will be defined as the address following the -last `.text' input section. The symbol `_bdata' will be defined as the -address following the `.text' output section aligned upward to a 4 byte -boundary. - - -File: ld.info, Node: PROVIDE, Next: Source Code Reference, Prev: Simple Assignments, Up: Assignments - -3.5.2 PROVIDE -------------- - -In some cases, it is desirable for a linker script to define a symbol -only if it is referenced and is not defined by any object included in -the link. For example, traditional linkers defined the symbol `etext'. -However, ANSI C requires that the user be able to use `etext' as a -function name without encountering an error. The `PROVIDE' keyword may -be used to define a symbol, such as `etext', only if it is referenced -but not defined. The syntax is `PROVIDE(SYMBOL = EXPRESSION)'. - - Here is an example of using `PROVIDE' to define `etext': - SECTIONS - { - .text : - { - *(.text) - _etext = .; - PROVIDE(etext = .); - } - } - - In this example, if the program defines `_etext' (with a leading -underscore), the linker will give a multiple definition error. If, on -the other hand, the program defines `etext' (with no leading -underscore), the linker will silently use the definition in the program. -If the program references `etext' but does not define it, the linker -will use the definition in the linker script. - - -File: ld.info, Node: Source Code Reference, Prev: PROVIDE, Up: Assignments - -3.5.3 Source Code Reference ---------------------------- - -Accessing a linker script defined variable from source code is not -intuitive. In particular a linker script symbol is not equivalent to a -variable declaration in a high level language, it is instead a symbol -that does not have a value. - - Before going further, it is important to note that compilers often -transform names in the source code into different names when they are -stored in the symbol table. For example, Fortran compilers commonly -prepend or append an underscore, and C++ performs extensive `name -mangling'. Therefore there might be a discrepancy between the name of -a variable as it is used in source code and the name of the same -variable as it is defined in a linker script. For example in C a -linker script variable might be referred to as: - - extern int foo; - - But in the linker script it might be defined as: - - _foo = 1000; - - In the remaining examples however it is assumed that no name -transformation has taken place. - - When a symbol is declared in a high level language such as C, two -things happen. The first is that the compiler reserves enough space in -the program's memory to hold the _value_ of the symbol. The second is -that the compiler creates an entry in the program's symbol table which -holds the symbol's _address_. ie the symbol table contains the address -of the block of memory holding the symbol's value. So for example the -following C declaration, at file scope: - - int foo = 1000; - - creates a entry called `foo' in the symbol table. This entry holds -the address of an `int' sized block of memory where the number 1000 is -initially stored. - - When a program references a symbol the compiler generates code that -first accesses the symbol table to find the address of the symbol's -memory block and then code to read the value from that memory block. -So: - - foo = 1; - - looks up the symbol `foo' in the symbol table, gets the address -associated with this symbol and then writes the value 1 into that -address. Whereas: - - int * a = & foo; - - looks up the symbol `foo' in the symbol table, gets it address and -then copies this address into the block of memory associated with the -variable `a'. - - Linker scripts symbol declarations, by contrast, create an entry in -the symbol table but do not assign any memory to them. Thus they are -an address without a value. So for example the linker script -definition: - - foo = 1000; - - creates an entry in the symbol table called `foo' which holds the -address of memory location 1000, but nothing special is stored at -address 1000. This means that you cannot access the _value_ of a -linker script defined symbol - it has no value - all you can do is -access the _address_ of a linker script defined symbol. - - Hence when you are using a linker script defined symbol in source -code you should always take the address of the symbol, and never -attempt to use its value. For example suppose you want to copy the -contents of a section of memory called .ROM into a section called -.FLASH and the linker script contains these declarations: - - start_of_ROM = .ROM; - end_of_ROM = .ROM + sizeof (.ROM) - 1; - start_of_FLASH = .FLASH; - - Then the C source code to perform the copy would be: - - extern char start_of_ROM, end_of_ROM, start_of_FLASH; - - memcpy (& start_of_FLASH, & start_of_ROM, & end_of_ROM - & start_of_ROM); - - Note the use of the `&' operators. These are correct. - - -File: ld.info, Node: SECTIONS, Next: MEMORY, Prev: Assignments, Up: Scripts - -3.6 SECTIONS Command -==================== - -The `SECTIONS' command tells the linker how to map input sections into -output sections, and how to place the output sections in memory. - - The format of the `SECTIONS' command is: - SECTIONS - { - SECTIONS-COMMAND - SECTIONS-COMMAND - ... - } - - Each SECTIONS-COMMAND may of be one of the following: - - * an `ENTRY' command (*note Entry command: Entry Point.) - - * a symbol assignment (*note Assignments::) - - * an output section description - - * an overlay description - - The `ENTRY' command and symbol assignments are permitted inside the -`SECTIONS' command for convenience in using the location counter in -those commands. This can also make the linker script easier to -understand because you can use those commands at meaningful points in -the layout of the output file. - - Output section descriptions and overlay descriptions are described -below. - - If you do not use a `SECTIONS' command in your linker script, the -linker will place each input section into an identically named output -section in the order that the sections are first encountered in the -input files. If all input sections are present in the first file, for -example, the order of sections in the output file will match the order -in the first input file. The first section will be at address zero. - -* Menu: - -* Output Section Description:: Output section description -* Output Section Name:: Output section name -* Output Section Address:: Output section address -* Input Section:: Input section description -* Output Section Data:: Output section data -* Output Section Keywords:: Output section keywords -* Output Section Discarding:: Output section discarding -* Output Section Attributes:: Output section attributes -* Overlay Description:: Overlay description - - -File: ld.info, Node: Output Section Description, Next: Output Section Name, Up: SECTIONS - -3.6.1 Output Section Description --------------------------------- - -The full description of an output section looks like this: - SECTION [ADDRESS] [(TYPE)] : - [AT(LMA)] [SUBALIGN(SUBSECTION_ALIGN)] - { - OUTPUT-SECTION-COMMAND - OUTPUT-SECTION-COMMAND - ... - } [>REGION] [AT>LMA_REGION] [:PHDR :PHDR ...] [=FILLEXP] - - Most output sections do not use most of the optional section -attributes. - - The whitespace around SECTION is required, so that the section name -is unambiguous. The colon and the curly braces are also required. The -line breaks and other white space are optional. - - Each OUTPUT-SECTION-COMMAND may be one of the following: - - * a symbol assignment (*note Assignments::) - - * an input section description (*note Input Section::) - - * data values to include directly (*note Output Section Data::) - - * a special output section keyword (*note Output Section Keywords::) - - -File: ld.info, Node: Output Section Name, Next: Output Section Address, Prev: Output Section Description, Up: SECTIONS - -3.6.2 Output Section Name -------------------------- - -The name of the output section is SECTION. SECTION must meet the -constraints of your output format. In formats which only support a -limited number of sections, such as `a.out', the name must be one of -the names supported by the format (`a.out', for example, allows only -`.text', `.data' or `.bss'). If the output format supports any number -of sections, but with numbers and not names (as is the case for Oasys), -the name should be supplied as a quoted numeric string. A section name -may consist of any sequence of characters, but a name which contains -any unusual characters such as commas must be quoted. - - The output section name `/DISCARD/' is special; *Note Output Section -Discarding::. - - -File: ld.info, Node: Output Section Address, Next: Input Section, Prev: Output Section Name, Up: SECTIONS - -3.6.3 Output Section Address ----------------------------- - -The ADDRESS is an expression for the VMA (the virtual memory address) -of the output section. If you do not provide ADDRESS, the linker will -set it based on REGION if present, or otherwise based on the current -value of the location counter. - - If you provide ADDRESS, the address of the output section will be -set to precisely that. If you provide neither ADDRESS nor REGION, then -the address of the output section will be set to the current value of -the location counter aligned to the alignment requirements of the -output section. The alignment requirement of the output section is the -strictest alignment of any input section contained within the output -section. - - For example, - .text . : { *(.text) } - and - .text : { *(.text) } - are subtly different. The first will set the address of the `.text' -output section to the current value of the location counter. The -second will set it to the current value of the location counter aligned -to the strictest alignment of a `.text' input section. - - The ADDRESS may be an arbitrary expression; *Note Expressions::. -For example, if you want to align the section on a 0x10 byte boundary, -so that the lowest four bits of the section address are zero, you could -do something like this: - .text ALIGN(0x10) : { *(.text) } - This works because `ALIGN' returns the current location counter -aligned upward to the specified value. - - Specifying ADDRESS for a section will change the value of the -location counter. - - -File: ld.info, Node: Input Section, Next: Output Section Data, Prev: Output Section Address, Up: SECTIONS - -3.6.4 Input Section Description -------------------------------- - -The most common output section command is an input section description. - - The input section description is the most basic linker script -operation. You use output sections to tell the linker how to lay out -your program in memory. You use input section descriptions to tell the -linker how to map the input files into your memory layout. - -* Menu: - -* Input Section Basics:: Input section basics -* Input Section Wildcards:: Input section wildcard patterns -* Input Section Common:: Input section for common symbols -* Input Section Keep:: Input section and garbage collection -* Input Section Example:: Input section example - - -File: ld.info, Node: Input Section Basics, Next: Input Section Wildcards, Up: Input Section - -3.6.4.1 Input Section Basics -............................ - -An input section description consists of a file name optionally followed -by a list of section names in parentheses. - - The file name and the section name may be wildcard patterns, which we -describe further below (*note Input Section Wildcards::). - - The most common input section description is to include all input -sections with a particular name in the output section. For example, to -include all input `.text' sections, you would write: - *(.text) - Here the `*' is a wildcard which matches any file name. To exclude -a list of files from matching the file name wildcard, EXCLUDE_FILE may -be used to match all files except the ones specified in the -EXCLUDE_FILE list. For example: - (*(EXCLUDE_FILE (*crtend.o *otherfile.o) .ctors)) - will cause all .ctors sections from all files except `crtend.o' and -`otherfile.o' to be included. - - There are two ways to include more than one section: - *(.text .rdata) - *(.text) *(.rdata) - The difference between these is the order in which the `.text' and -`.rdata' input sections will appear in the output section. In the -first example, they will be intermingled, appearing in the same order as -they are found in the linker input. In the second example, all `.text' -input sections will appear first, followed by all `.rdata' input -sections. - - You can specify a file name to include sections from a particular -file. You would do this if one or more of your files contain special -data that needs to be at a particular location in memory. For example: - data.o(.data) - - If you use a file name without a list of sections, then all sections -in the input file will be included in the output section. This is not -commonly done, but it may by useful on occasion. For example: - data.o - - When you use a file name which does not contain any wild card -characters, the linker will first see if you also specified the file -name on the linker command line or in an `INPUT' command. If you did -not, the linker will attempt to open the file as an input file, as -though it appeared on the command line. Note that this differs from an -`INPUT' command, because the linker will not search for the file in the -archive search path. - - -File: ld.info, Node: Input Section Wildcards, Next: Input Section Common, Prev: Input Section Basics, Up: Input Section - -3.6.4.2 Input Section Wildcard Patterns -....................................... - -In an input section description, either the file name or the section -name or both may be wildcard patterns. - - The file name of `*' seen in many examples is a simple wildcard -pattern for the file name. - - The wildcard patterns are like those used by the Unix shell. - -`*' - matches any number of characters - -`?' - matches any single character - -`[CHARS]' - matches a single instance of any of the CHARS; the `-' character - may be used to specify a range of characters, as in `[a-z]' to - match any lower case letter - -`\' - quotes the following character - - When a file name is matched with a wildcard, the wildcard characters -will not match a `/' character (used to separate directory names on -Unix). A pattern consisting of a single `*' character is an exception; -it will always match any file name, whether it contains a `/' or not. -In a section name, the wildcard characters will match a `/' character. - - File name wildcard patterns only match files which are explicitly -specified on the command line or in an `INPUT' command. The linker -does not search directories to expand wildcards. - - If a file name matches more than one wildcard pattern, or if a file -name appears explicitly and is also matched by a wildcard pattern, the -linker will use the first match in the linker script. For example, this -sequence of input section descriptions is probably in error, because the -`data.o' rule will not be used: - .data : { *(.data) } - .data1 : { data.o(.data) } - - Normally, the linker will place files and sections matched by -wildcards in the order in which they are seen during the link. You can -change this by using the `SORT_BY_NAME' keyword, which appears before a -wildcard pattern in parentheses (e.g., `SORT_BY_NAME(.text*)'). When -the `SORT_BY_NAME' keyword is used, the linker will sort the files or -sections into ascending order by name before placing them in the output -file. - - `SORT_BY_ALIGNMENT' is very similar to `SORT_BY_NAME'. The -difference is `SORT_BY_ALIGNMENT' will sort sections into ascending -order by alignment before placing them in the output file. - - `SORT' is an alias for `SORT_BY_NAME'. - - When there are nested section sorting commands in linker script, -there can be at most 1 level of nesting for section sorting commands. - - 1. `SORT_BY_NAME' (`SORT_BY_ALIGNMENT' (wildcard section pattern)). - It will sort the input sections by name first, then by alignment - if 2 sections have the same name. - - 2. `SORT_BY_ALIGNMENT' (`SORT_BY_NAME' (wildcard section pattern)). - It will sort the input sections by alignment first, then by name - if 2 sections have the same alignment. - - 3. `SORT_BY_NAME' (`SORT_BY_NAME' (wildcard section pattern)) is - treated the same as `SORT_BY_NAME' (wildcard section pattern). - - 4. `SORT_BY_ALIGNMENT' (`SORT_BY_ALIGNMENT' (wildcard section - pattern)) is treated the same as `SORT_BY_ALIGNMENT' (wildcard - section pattern). - - 5. All other nested section sorting commands are invalid. - - When both command line section sorting option and linker script -section sorting command are used, section sorting command always takes -precedence over the command line option. - - If the section sorting command in linker script isn't nested, the -command line option will make the section sorting command to be treated -as nested sorting command. - - 1. `SORT_BY_NAME' (wildcard section pattern ) with `--sort-sections - alignment' is equivalent to `SORT_BY_NAME' (`SORT_BY_ALIGNMENT' - (wildcard section pattern)). - - 2. `SORT_BY_ALIGNMENT' (wildcard section pattern) with - `--sort-section name' is equivalent to `SORT_BY_ALIGNMENT' - (`SORT_BY_NAME' (wildcard section pattern)). - - If the section sorting command in linker script is nested, the -command line option will be ignored. - - If you ever get confused about where input sections are going, use -the `-M' linker option to generate a map file. The map file shows -precisely how input sections are mapped to output sections. - - This example shows how wildcard patterns might be used to partition -files. This linker script directs the linker to place all `.text' -sections in `.text' and all `.bss' sections in `.bss'. The linker will -place the `.data' section from all files beginning with an upper case -character in `.DATA'; for all other files, the linker will place the -`.data' section in `.data'. - SECTIONS { - .text : { *(.text) } - .DATA : { [A-Z]*(.data) } - .data : { *(.data) } - .bss : { *(.bss) } - } - - -File: ld.info, Node: Input Section Common, Next: Input Section Keep, Prev: Input Section Wildcards, Up: Input Section - -3.6.4.3 Input Section for Common Symbols -........................................ - -A special notation is needed for common symbols, because in many object -file formats common symbols do not have a particular input section. The -linker treats common symbols as though they are in an input section -named `COMMON'. - - You may use file names with the `COMMON' section just as with any -other input sections. You can use this to place common symbols from a -particular input file in one section while common symbols from other -input files are placed in another section. - - In most cases, common symbols in input files will be placed in the -`.bss' section in the output file. For example: - .bss { *(.bss) *(COMMON) } - - Some object file formats have more than one type of common symbol. -For example, the MIPS ELF object file format distinguishes standard -common symbols and small common symbols. In this case, the linker will -use a different special section name for other types of common symbols. -In the case of MIPS ELF, the linker uses `COMMON' for standard common -symbols and `.scommon' for small common symbols. This permits you to -map the different types of common symbols into memory at different -locations. - - You will sometimes see `[COMMON]' in old linker scripts. This -notation is now considered obsolete. It is equivalent to `*(COMMON)'. - - -File: ld.info, Node: Input Section Keep, Next: Input Section Example, Prev: Input Section Common, Up: Input Section - -3.6.4.4 Input Section and Garbage Collection -............................................ - -When link-time garbage collection is in use (`--gc-sections'), it is -often useful to mark sections that should not be eliminated. This is -accomplished by surrounding an input section's wildcard entry with -`KEEP()', as in `KEEP(*(.init))' or `KEEP(SORT_BY_NAME(*)(.ctors))'. - - -File: ld.info, Node: Input Section Example, Prev: Input Section Keep, Up: Input Section - -3.6.4.5 Input Section Example -............................. - -The following example is a complete linker script. It tells the linker -to read all of the sections from file `all.o' and place them at the -start of output section `outputa' which starts at location `0x10000'. -All of section `.input1' from file `foo.o' follows immediately, in the -same output section. All of section `.input2' from `foo.o' goes into -output section `outputb', followed by section `.input1' from `foo1.o'. -All of the remaining `.input1' and `.input2' sections from any files -are written to output section `outputc'. - - SECTIONS { - outputa 0x10000 : - { - all.o - foo.o (.input1) - } - outputb : - { - foo.o (.input2) - foo1.o (.input1) - } - outputc : - { - *(.input1) - *(.input2) - } - } - - -File: ld.info, Node: Output Section Data, Next: Output Section Keywords, Prev: Input Section, Up: SECTIONS - -3.6.5 Output Section Data -------------------------- - -You can include explicit bytes of data in an output section by using -`BYTE', `SHORT', `LONG', `QUAD', or `SQUAD' as an output section -command. Each keyword is followed by an expression in parentheses -providing the value to store (*note Expressions::). The value of the -expression is stored at the current value of the location counter. - - The `BYTE', `SHORT', `LONG', and `QUAD' commands store one, two, -four, and eight bytes (respectively). After storing the bytes, the -location counter is incremented by the number of bytes stored. - - For example, this will store the byte 1 followed by the four byte -value of the symbol `addr': - BYTE(1) - LONG(addr) - - When using a 64 bit host or target, `QUAD' and `SQUAD' are the same; -they both store an 8 byte, or 64 bit, value. When both host and target -are 32 bits, an expression is computed as 32 bits. In this case `QUAD' -stores a 32 bit value zero extended to 64 bits, and `SQUAD' stores a 32 -bit value sign extended to 64 bits. - - If the object file format of the output file has an explicit -endianness, which is the normal case, the value will be stored in that -endianness. When the object file format does not have an explicit -endianness, as is true of, for example, S-records, the value will be -stored in the endianness of the first input object file. - - Note--these commands only work inside a section description and not -between them, so the following will produce an error from the linker: - SECTIONS { .text : { *(.text) } LONG(1) .data : { *(.data) } } - whereas this will work: - SECTIONS { .text : { *(.text) ; LONG(1) } .data : { *(.data) } } - - You may use the `FILL' command to set the fill pattern for the -current section. It is followed by an expression in parentheses. Any -otherwise unspecified regions of memory within the section (for example, -gaps left due to the required alignment of input sections) are filled -with the value of the expression, repeated as necessary. A `FILL' -statement covers memory locations after the point at which it occurs in -the section definition; by including more than one `FILL' statement, -you can have different fill patterns in different parts of an output -section. - - This example shows how to fill unspecified regions of memory with the -value `0x90': - FILL(0x90909090) - - The `FILL' command is similar to the `=FILLEXP' output section -attribute, but it only affects the part of the section following the -`FILL' command, rather than the entire section. If both are used, the -`FILL' command takes precedence. *Note Output Section Fill::, for -details on the fill expression. - - -File: ld.info, Node: Output Section Keywords, Next: Output Section Discarding, Prev: Output Section Data, Up: SECTIONS - -3.6.6 Output Section Keywords ------------------------------ - -There are a couple of keywords which can appear as output section -commands. - -`CREATE_OBJECT_SYMBOLS' - The command tells the linker to create a symbol for each input - file. The name of each symbol will be the name of the - corresponding input file. The section of each symbol will be the - output section in which the `CREATE_OBJECT_SYMBOLS' command - appears. - - This is conventional for the a.out object file format. It is not - normally used for any other object file format. - -`CONSTRUCTORS' - When linking using the a.out object file format, the linker uses an - unusual set construct to support C++ global constructors and - destructors. When linking object file formats which do not support - arbitrary sections, such as ECOFF and XCOFF, the linker will - automatically recognize C++ global constructors and destructors by - name. For these object file formats, the `CONSTRUCTORS' command - tells the linker to place constructor information in the output - section where the `CONSTRUCTORS' command appears. The - `CONSTRUCTORS' command is ignored for other object file formats. - - The symbol `__CTOR_LIST__' marks the start of the global - constructors, and the symbol `__CTOR_END__' marks the end. - Similarly, `__DTOR_LIST__' and `__DTOR_END__' mark the start and - end of the global destructors. The first word in the list is the - number of entries, followed by the address of each constructor or - destructor, followed by a zero word. The compiler must arrange to - actually run the code. For these object file formats GNU C++ - normally calls constructors from a subroutine `__main'; a call to - `__main' is automatically inserted into the startup code for - `main'. GNU C++ normally runs destructors either by using - `atexit', or directly from the function `exit'. - - For object file formats such as `COFF' or `ELF' which support - arbitrary section names, GNU C++ will normally arrange to put the - addresses of global constructors and destructors into the `.ctors' - and `.dtors' sections. Placing the following sequence into your - linker script will build the sort of table which the GNU C++ - runtime code expects to see. - - __CTOR_LIST__ = .; - LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) - *(.ctors) - LONG(0) - __CTOR_END__ = .; - __DTOR_LIST__ = .; - LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) - *(.dtors) - LONG(0) - __DTOR_END__ = .; - - If you are using the GNU C++ support for initialization priority, - which provides some control over the order in which global - constructors are run, you must sort the constructors at link time - to ensure that they are executed in the correct order. When using - the `CONSTRUCTORS' command, use `SORT_BY_NAME(CONSTRUCTORS)' - instead. When using the `.ctors' and `.dtors' sections, use - `*(SORT_BY_NAME(.ctors))' and `*(SORT_BY_NAME(.dtors))' instead of - just `*(.ctors)' and `*(.dtors)'. - - Normally the compiler and linker will handle these issues - automatically, and you will not need to concern yourself with - them. However, you may need to consider this if you are using C++ - and writing your own linker scripts. - - - -File: ld.info, Node: Output Section Discarding, Next: Output Section Attributes, Prev: Output Section Keywords, Up: SECTIONS - -3.6.7 Output Section Discarding -------------------------------- - -The linker will not create output section which do not have any -contents. This is for convenience when referring to input sections that -may or may not be present in any of the input files. For example: - .foo { *(.foo) } - will only create a `.foo' section in the output file if there is a -`.foo' section in at least one input file. - - If you use anything other than an input section description as an -output section command, such as a symbol assignment, then the output -section will always be created, even if there are no matching input -sections. - - The special output section name `/DISCARD/' may be used to discard -input sections. Any input sections which are assigned to an output -section named `/DISCARD/' are not included in the output file. - - -File: ld.info, Node: Output Section Attributes, Next: Overlay Description, Prev: Output Section Discarding, Up: SECTIONS - -3.6.8 Output Section Attributes -------------------------------- - -We showed above that the full description of an output section looked -like this: - SECTION [ADDRESS] [(TYPE)] : - [AT(LMA)] [SUBALIGN(SUBSECTION_ALIGN)] - { - OUTPUT-SECTION-COMMAND - OUTPUT-SECTION-COMMAND - ... - } [>REGION] [AT>LMA_REGION] [:PHDR :PHDR ...] [=FILLEXP] -We've already described SECTION, ADDRESS, and -OUTPUT-SECTION-COMMAND. In this section we will describe the remaining -section attributes. - -* Menu: - -* Output Section Type:: Output section type -* Output Section LMA:: Output section LMA -* Forced Input Alignment:: Forced Input Alignment -* Output Section Region:: Output section region -* Output Section Phdr:: Output section phdr -* Output Section Fill:: Output section fill - - -File: ld.info, Node: Output Section Type, Next: Output Section LMA, Up: Output Section Attributes - -3.6.8.1 Output Section Type -........................... - -Each output section may have a type. The type is a keyword in -parentheses. The following types are defined: - -`NOLOAD' - The section should be marked as not loadable, so that it will not - be loaded into memory when the program is run. - -`DSECT' -`COPY' -`INFO' -`OVERLAY' - These type names are supported for backward compatibility, and are - rarely used. They all have the same effect: the section should be - marked as not allocatable, so that no memory is allocated for the - section when the program is run. - - The linker normally sets the attributes of an output section based on -the input sections which map into it. You can override this by using -the section type. For example, in the script sample below, the `ROM' -section is addressed at memory location `0' and does not need to be -loaded when the program is run. The contents of the `ROM' section will -appear in the linker output file as usual. - SECTIONS { - ROM 0 (NOLOAD) : { ... } - ... - } - - -File: ld.info, Node: Output Section LMA, Next: Forced Input Alignment, Prev: Output Section Type, Up: Output Section Attributes - -3.6.8.2 Output Section LMA -.......................... - -Every section has a virtual address (VMA) and a load address (LMA); see -*Note Basic Script Concepts::. The address expression which may appear -in an output section description sets the VMA (*note Output Section -Address::). - - The linker will normally set the LMA equal to the VMA. You can -change that by using the `AT' keyword. The expression LMA that follows -the `AT' keyword specifies the load address of the section. - - Alternatively, with `AT>LMA_REGION' expression, you may specify a -memory region for the section's load address. *Note MEMORY::. Note -that if the section has not had a VMA assigned to it then the linker -will use the LMA_REGION as the VMA region as well. *Note Output -Section Region::. - - This feature is designed to make it easy to build a ROM image. For -example, the following linker script creates three output sections: one -called `.text', which starts at `0x1000', one called `.mdata', which is -loaded at the end of the `.text' section even though its VMA is -`0x2000', and one called `.bss' to hold uninitialized data at address -`0x3000'. The symbol `_data' is defined with the value `0x2000', which -shows that the location counter holds the VMA value, not the LMA value. - - SECTIONS - { - .text 0x1000 : { *(.text) _etext = . ; } - .mdata 0x2000 : - AT ( ADDR (.text) + SIZEOF (.text) ) - { _data = . ; *(.data); _edata = . ; } - .bss 0x3000 : - { _bstart = . ; *(.bss) *(COMMON) ; _bend = . ;} - } - - The run-time initialization code for use with a program generated -with this linker script would include something like the following, to -copy the initialized data from the ROM image to its runtime address. -Notice how this code takes advantage of the symbols defined by the -linker script. - - extern char _etext, _data, _edata, _bstart, _bend; - char *src = &_etext; - char *dst = &_data; - - /* ROM has data at end of text; copy it. */ - while (dst < &_edata) { - *dst++ = *src++; - } - - /* Zero bss */ - for (dst = &_bstart; dst< &_bend; dst++) - *dst = 0; - - -File: ld.info, Node: Forced Input Alignment, Next: Output Section Region, Prev: Output Section LMA, Up: Output Section Attributes - -3.6.8.3 Forced Input Alignment -.............................. - -You can force input section alignment within an output section by using -SUBALIGN. The value specified overrides any alignment given by input -sections, whether larger or smaller. - - -File: ld.info, Node: Output Section Region, Next: Output Section Phdr, Prev: Forced Input Alignment, Up: Output Section Attributes - -3.6.8.4 Output Section Region -............................. - -You can assign a section to a previously defined region of memory by -using `>REGION'. *Note MEMORY::. - - Here is a simple example: - MEMORY { rom : ORIGIN = 0x1000, LENGTH = 0x1000 } - SECTIONS { ROM : { *(.text) } >rom } - - -File: ld.info, Node: Output Section Phdr, Next: Output Section Fill, Prev: Output Section Region, Up: Output Section Attributes - -3.6.8.5 Output Section Phdr -........................... - -You can assign a section to a previously defined program segment by -using `:PHDR'. *Note PHDRS::. If a section is assigned to one or more -segments, then all subsequent allocated sections will be assigned to -those segments as well, unless they use an explicitly `:PHDR' modifier. -You can use `:NONE' to tell the linker to not put the section in any -segment at all. - - Here is a simple example: - PHDRS { text PT_LOAD ; } - SECTIONS { .text : { *(.text) } :text } - - -File: ld.info, Node: Output Section Fill, Prev: Output Section Phdr, Up: Output Section Attributes - -3.6.8.6 Output Section Fill -........................... - -You can set the fill pattern for an entire section by using `=FILLEXP'. -FILLEXP is an expression (*note Expressions::). Any otherwise -unspecified regions of memory within the output section (for example, -gaps left due to the required alignment of input sections) will be -filled with the value, repeated as necessary. If the fill expression -is a simple hex number, ie. a string of hex digit starting with `0x' -and without a trailing `k' or `M', then an arbitrarily long sequence of -hex digits can be used to specify the fill pattern; Leading zeros -become part of the pattern too. For all other cases, including extra -parentheses or a unary `+', the fill pattern is the four least -significant bytes of the value of the expression. In all cases, the -number is big-endian. - - You can also change the fill value with a `FILL' command in the -output section commands; (*note Output Section Data::). - - Here is a simple example: - SECTIONS { .text : { *(.text) } =0x90909090 } - - -File: ld.info, Node: Overlay Description, Prev: Output Section Attributes, Up: SECTIONS - -3.6.9 Overlay Description -------------------------- - -An overlay description provides an easy way to describe sections which -are to be loaded as part of a single memory image but are to be run at -the same memory address. At run time, some sort of overlay manager will -copy the overlaid sections in and out of the runtime memory address as -required, perhaps by simply manipulating addressing bits. This approach -can be useful, for example, when a certain region of memory is faster -than another. - - Overlays are described using the `OVERLAY' command. The `OVERLAY' -command is used within a `SECTIONS' command, like an output section -description. The full syntax of the `OVERLAY' command is as follows: - OVERLAY [START] : [NOCROSSREFS] [AT ( LDADDR )] - { - SECNAME1 - { - OUTPUT-SECTION-COMMAND - OUTPUT-SECTION-COMMAND - ... - } [:PHDR...] [=FILL] - SECNAME2 - { - OUTPUT-SECTION-COMMAND - OUTPUT-SECTION-COMMAND - ... - } [:PHDR...] [=FILL] - ... - } [>REGION] [:PHDR...] [=FILL] - - Everything is optional except `OVERLAY' (a keyword), and each -section must have a name (SECNAME1 and SECNAME2 above). The section -definitions within the `OVERLAY' construct are identical to those -within the general `SECTIONS' contruct (*note SECTIONS::), except that -no addresses and no memory regions may be defined for sections within -an `OVERLAY'. - - The sections are all defined with the same starting address. The -load addresses of the sections are arranged such that they are -consecutive in memory starting at the load address used for the -`OVERLAY' as a whole (as with normal section definitions, the load -address is optional, and defaults to the start address; the start -address is also optional, and defaults to the current value of the -location counter). - - If the `NOCROSSREFS' keyword is used, and there any references among -the sections, the linker will report an error. Since the sections all -run at the same address, it normally does not make sense for one -section to refer directly to another. *Note NOCROSSREFS: Miscellaneous -Commands. - - For each section within the `OVERLAY', the linker automatically -defines two symbols. The symbol `__load_start_SECNAME' is defined as -the starting load address of the section. The symbol -`__load_stop_SECNAME' is defined as the final load address of the -section. Any characters within SECNAME which are not legal within C -identifiers are removed. C (or assembler) code may use these symbols -to move the overlaid sections around as necessary. - - At the end of the overlay, the value of the location counter is set -to the start address of the overlay plus the size of the largest -section. - - Here is an example. Remember that this would appear inside a -`SECTIONS' construct. - OVERLAY 0x1000 : AT (0x4000) - { - .text0 { o1/*.o(.text) } - .text1 { o2/*.o(.text) } - } -This will define both `.text0' and `.text1' to start at address -0x1000. `.text0' will be loaded at address 0x4000, and `.text1' will -be loaded immediately after `.text0'. The following symbols will be -defined: `__load_start_text0', `__load_stop_text0', -`__load_start_text1', `__load_stop_text1'. - - C code to copy overlay `.text1' into the overlay area might look -like the following. - - extern char __load_start_text1, __load_stop_text1; - memcpy ((char *) 0x1000, &__load_start_text1, - &__load_stop_text1 - &__load_start_text1); - - Note that the `OVERLAY' command is just syntactic sugar, since -everything it does can be done using the more basic commands. The above -example could have been written identically as follows. - - .text0 0x1000 : AT (0x4000) { o1/*.o(.text) } - __load_start_text0 = LOADADDR (.text0); - __load_stop_text0 = LOADADDR (.text0) + SIZEOF (.text0); - .text1 0x1000 : AT (0x4000 + SIZEOF (.text0)) { o2/*.o(.text) } - __load_start_text1 = LOADADDR (.text1); - __load_stop_text1 = LOADADDR (.text1) + SIZEOF (.text1); - . = 0x1000 + MAX (SIZEOF (.text0), SIZEOF (.text1)); - - -File: ld.info, Node: MEMORY, Next: PHDRS, Prev: SECTIONS, Up: Scripts - -3.7 MEMORY Command -================== - -The linker's default configuration permits allocation of all available -memory. You can override this by using the `MEMORY' command. - - The `MEMORY' command describes the location and size of blocks of -memory in the target. You can use it to describe which memory regions -may be used by the linker, and which memory regions it must avoid. You -can then assign sections to particular memory regions. The linker will -set section addresses based on the memory regions, and will warn about -regions that become too full. The linker will not shuffle sections -around to fit into the available regions. - - A linker script may contain at most one use of the `MEMORY' command. -However, you can define as many blocks of memory within it as you -wish. The syntax is: - MEMORY - { - NAME [(ATTR)] : ORIGIN = ORIGIN, LENGTH = LEN - ... - } - - The NAME is a name used in the linker script to refer to the region. -The region name has no meaning outside of the linker script. Region -names are stored in a separate name space, and will not conflict with -symbol names, file names, or section names. Each memory region must -have a distinct name. - - The ATTR string is an optional list of attributes that specify -whether to use a particular memory region for an input section which is -not explicitly mapped in the linker script. As described in *Note -SECTIONS::, if you do not specify an output section for some input -section, the linker will create an output section with the same name as -the input section. If you define region attributes, the linker will use -them to select the memory region for the output section that it creates. - - The ATTR string must consist only of the following characters: -`R' - Read-only section - -`W' - Read/write section - -`X' - Executable section - -`A' - Allocatable section - -`I' - Initialized section - -`L' - Same as `I' - -`!' - Invert the sense of any of the preceding attributes - - If a unmapped section matches any of the listed attributes other than -`!', it will be placed in the memory region. The `!' attribute -reverses this test, so that an unmapped section will be placed in the -memory region only if it does not match any of the listed attributes. - - The ORIGIN is an numerical expression for the start address of the -memory region. The expression must evaluate to a constant and it -cannot involve any symbols. The keyword `ORIGIN' may be abbreviated to -`org' or `o' (but not, for example, `ORG'). - - The LEN is an expression for the size in bytes of the memory region. -As with the ORIGIN expression, the expression must be numerical only -and must evaluate to a constant. The keyword `LENGTH' may be -abbreviated to `len' or `l'. - - In the following example, we specify that there are two memory -regions available for allocation: one starting at `0' for 256 kilobytes, -and the other starting at `0x40000000' for four megabytes. The linker -will place into the `rom' memory region every section which is not -explicitly mapped into a memory region, and is either read-only or -executable. The linker will place other sections which are not -explicitly mapped into a memory region into the `ram' memory region. - - MEMORY - { - rom (rx) : ORIGIN = 0, LENGTH = 256K - ram (!rx) : org = 0x40000000, l = 4M - } - - Once you define a memory region, you can direct the linker to place -specific output sections into that memory region by using the `>REGION' -output section attribute. For example, if you have a memory region -named `mem', you would use `>mem' in the output section definition. -*Note Output Section Region::. If no address was specified for the -output section, the linker will set the address to the next available -address within the memory region. If the combined output sections -directed to a memory region are too large for the region, the linker -will issue an error message. - - It is possible to access the origin and length of a memory in an -expression via the `ORIGIN(MEMORY)' and `LENGTH(MEMORY)' functions: - - _fstack = ORIGIN(ram) + LENGTH(ram) - 4; - - -File: ld.info, Node: PHDRS, Next: VERSION, Prev: MEMORY, Up: Scripts - -3.8 PHDRS Command -================= - -The ELF object file format uses "program headers", also knows as -"segments". The program headers describe how the program should be -loaded into memory. You can print them out by using the `objdump' -program with the `-p' option. - - When you run an ELF program on a native ELF system, the system loader -reads the program headers in order to figure out how to load the -program. This will only work if the program headers are set correctly. -This manual does not describe the details of how the system loader -interprets program headers; for more information, see the ELF ABI. - - The linker will create reasonable program headers by default. -However, in some cases, you may need to specify the program headers more -precisely. You may use the `PHDRS' command for this purpose. When the -linker sees the `PHDRS' command in the linker script, it will not -create any program headers other than the ones specified. - - The linker only pays attention to the `PHDRS' command when -generating an ELF output file. In other cases, the linker will simply -ignore `PHDRS'. - - This is the syntax of the `PHDRS' command. The words `PHDRS', -`FILEHDR', `AT', and `FLAGS' are keywords. - - PHDRS - { - NAME TYPE [ FILEHDR ] [ PHDRS ] [ AT ( ADDRESS ) ] - [ FLAGS ( FLAGS ) ] ; - } - - The NAME is used only for reference in the `SECTIONS' command of the -linker script. It is not put into the output file. Program header -names are stored in a separate name space, and will not conflict with -symbol names, file names, or section names. Each program header must -have a distinct name. - - Certain program header types describe segments of memory which the -system loader will load from the file. In the linker script, you -specify the contents of these segments by placing allocatable output -sections in the segments. You use the `:PHDR' output section attribute -to place a section in a particular segment. *Note Output Section -Phdr::. - - It is normal to put certain sections in more than one segment. This -merely implies that one segment of memory contains another. You may -repeat `:PHDR', using it once for each segment which should contain the -section. - - If you place a section in one or more segments using `:PHDR', then -the linker will place all subsequent allocatable sections which do not -specify `:PHDR' in the same segments. This is for convenience, since -generally a whole set of contiguous sections will be placed in a single -segment. You can use `:NONE' to override the default segment and tell -the linker to not put the section in any segment at all. - - You may use the `FILEHDR' and `PHDRS' keywords appear after the -program header type to further describe the contents of the segment. -The `FILEHDR' keyword means that the segment should include the ELF -file header. The `PHDRS' keyword means that the segment should include -the ELF program headers themselves. - - The TYPE may be one of the following. The numbers indicate the -value of the keyword. - -`PT_NULL' (0) - Indicates an unused program header. - -`PT_LOAD' (1) - Indicates that this program header describes a segment to be - loaded from the file. - -`PT_DYNAMIC' (2) - Indicates a segment where dynamic linking information can be found. - -`PT_INTERP' (3) - Indicates a segment where the name of the program interpreter may - be found. - -`PT_NOTE' (4) - Indicates a segment holding note information. - -`PT_SHLIB' (5) - A reserved program header type, defined but not specified by the - ELF ABI. - -`PT_PHDR' (6) - Indicates a segment where the program headers may be found. - -EXPRESSION - An expression giving the numeric type of the program header. This - may be used for types not defined above. - - You can specify that a segment should be loaded at a particular -address in memory by using an `AT' expression. This is identical to the -`AT' command used as an output section attribute (*note Output Section -LMA::). The `AT' command for a program header overrides the output -section attribute. - - The linker will normally set the segment flags based on the sections -which comprise the segment. You may use the `FLAGS' keyword to -explicitly specify the segment flags. The value of FLAGS must be an -integer. It is used to set the `p_flags' field of the program header. - - Here is an example of `PHDRS'. This shows a typical set of program -headers used on a native ELF system. - - PHDRS - { - headers PT_PHDR PHDRS ; - interp PT_INTERP ; - text PT_LOAD FILEHDR PHDRS ; - data PT_LOAD ; - dynamic PT_DYNAMIC ; - } - - SECTIONS - { - . = SIZEOF_HEADERS; - .interp : { *(.interp) } :text :interp - .text : { *(.text) } :text - .rodata : { *(.rodata) } /* defaults to :text */ - ... - . = . + 0x1000; /* move to a new page in memory */ - .data : { *(.data) } :data - .dynamic : { *(.dynamic) } :data :dynamic - ... - } - - -File: ld.info, Node: VERSION, Next: Expressions, Prev: PHDRS, Up: Scripts - -3.9 VERSION Command -=================== - -The linker supports symbol versions when using ELF. Symbol versions are -only useful when using shared libraries. The dynamic linker can use -symbol versions to select a specific version of a function when it runs -a program that may have been linked against an earlier version of the -shared library. - - You can include a version script directly in the main linker script, -or you can supply the version script as an implicit linker script. You -can also use the `--version-script' linker option. - - The syntax of the `VERSION' command is simply - VERSION { version-script-commands } - - The format of the version script commands is identical to that used -by Sun's linker in Solaris 2.5. The version script defines a tree of -version nodes. You specify the node names and interdependencies in the -version script. You can specify which symbols are bound to which -version nodes, and you can reduce a specified set of symbols to local -scope so that they are not globally visible outside of the shared -library. - - The easiest way to demonstrate the version script language is with a -few examples. - - VERS_1.1 { - global: - foo1; - local: - old*; - original*; - new*; - }; - - VERS_1.2 { - foo2; - } VERS_1.1; - - VERS_2.0 { - bar1; bar2; - } VERS_1.2; - - This example version script defines three version nodes. The first -version node defined is `VERS_1.1'; it has no other dependencies. The -script binds the symbol `foo1' to `VERS_1.1'. It reduces a number of -symbols to local scope so that they are not visible outside of the -shared library; this is done using wildcard patterns, so that any -symbol whose name begins with `old', `original', or `new' is matched. -The wildcard patterns available are the same as those used in the shell -when matching filenames (also known as "globbing"). - - Next, the version script defines node `VERS_1.2'. This node depends -upon `VERS_1.1'. The script binds the symbol `foo2' to the version -node `VERS_1.2'. - - Finally, the version script defines node `VERS_2.0'. This node -depends upon `VERS_1.2'. The scripts binds the symbols `bar1' and -`bar2' are bound to the version node `VERS_2.0'. - - When the linker finds a symbol defined in a library which is not -specifically bound to a version node, it will effectively bind it to an -unspecified base version of the library. You can bind all otherwise -unspecified symbols to a given version node by using `global: *;' -somewhere in the version script. - - The names of the version nodes have no specific meaning other than -what they might suggest to the person reading them. The `2.0' version -could just as well have appeared in between `1.1' and `1.2'. However, -this would be a confusing way to write a version script. - - Node name can be omited, provided it is the only version node in the -version script. Such version script doesn't assign any versions to -symbols, only selects which symbols will be globally visible out and -which won't. - - { global: foo; bar; local: *; }; - - When you link an application against a shared library that has -versioned symbols, the application itself knows which version of each -symbol it requires, and it also knows which version nodes it needs from -each shared library it is linked against. Thus at runtime, the dynamic -loader can make a quick check to make sure that the libraries you have -linked against do in fact supply all of the version nodes that the -application will need to resolve all of the dynamic symbols. In this -way it is possible for the dynamic linker to know with certainty that -all external symbols that it needs will be resolvable without having to -search for each symbol reference. - - The symbol versioning is in effect a much more sophisticated way of -doing minor version checking that SunOS does. The fundamental problem -that is being addressed here is that typically references to external -functions are bound on an as-needed basis, and are not all bound when -the application starts up. If a shared library is out of date, a -required interface may be missing; when the application tries to use -that interface, it may suddenly and unexpectedly fail. With symbol -versioning, the user will get a warning when they start their program if -the libraries being used with the application are too old. - - There are several GNU extensions to Sun's versioning approach. The -first of these is the ability to bind a symbol to a version node in the -source file where the symbol is defined instead of in the versioning -script. This was done mainly to reduce the burden on the library -maintainer. You can do this by putting something like: - __asm__(".symver original_foo,foo@VERS_1.1"); - in the C source file. This renames the function `original_foo' to -be an alias for `foo' bound to the version node `VERS_1.1'. The -`local:' directive can be used to prevent the symbol `original_foo' -from being exported. A `.symver' directive takes precedence over a -version script. - - The second GNU extension is to allow multiple versions of the same -function to appear in a given shared library. In this way you can make -an incompatible change to an interface without increasing the major -version number of the shared library, while still allowing applications -linked against the old interface to continue to function. - - To do this, you must use multiple `.symver' directives in the source -file. Here is an example: - - __asm__(".symver original_foo,foo@"); - __asm__(".symver old_foo,foo@VERS_1.1"); - __asm__(".symver old_foo1,foo@VERS_1.2"); - __asm__(".symver new_foo,foo@@VERS_2.0"); - - In this example, `foo@' represents the symbol `foo' bound to the -unspecified base version of the symbol. The source file that contains -this example would define 4 C functions: `original_foo', `old_foo', -`old_foo1', and `new_foo'. - - When you have multiple definitions of a given symbol, there needs to -be some way to specify a default version to which external references to -this symbol will be bound. You can do this with the `foo@@VERS_2.0' -type of `.symver' directive. You can only declare one version of a -symbol as the default in this manner; otherwise you would effectively -have multiple definitions of the same symbol. - - If you wish to bind a reference to a specific version of the symbol -within the shared library, you can use the aliases of convenience -(i.e., `old_foo'), or you can use the `.symver' directive to -specifically bind to an external version of the function in question. - - You can also specify the language in the version script: - - VERSION extern "lang" { version-script-commands } - - The supported `lang's are `C', `C++', and `Java'. The linker will -iterate over the list of symbols at the link time and demangle them -according to `lang' before matching them to the patterns specified in -`version-script-commands'. - - -File: ld.info, Node: Expressions, Next: Implicit Linker Scripts, Prev: VERSION, Up: Scripts - -3.10 Expressions in Linker Scripts -================================== - -The syntax for expressions in the linker script language is identical to -that of C expressions. All expressions are evaluated as integers. All -expressions are evaluated in the same size, which is 32 bits if both the -host and target are 32 bits, and is otherwise 64 bits. - - You can use and set symbol values in expressions. - - The linker defines several special purpose builtin functions for use -in expressions. - -* Menu: - -* Constants:: Constants -* Symbols:: Symbol Names -* Location Counter:: The Location Counter -* Operators:: Operators -* Evaluation:: Evaluation -* Expression Section:: The Section of an Expression -* Builtin Functions:: Builtin Functions - - -File: ld.info, Node: Constants, Next: Symbols, Up: Expressions - -3.10.1 Constants ----------------- - -All constants are integers. - - As in C, the linker considers an integer beginning with `0' to be -octal, and an integer beginning with `0x' or `0X' to be hexadecimal. -The linker considers other integers to be decimal. - - In addition, you can use the suffixes `K' and `M' to scale a -constant by `1024' or `1024*1024' respectively. For example, the -following all refer to the same quantity: - _fourk_1 = 4K; - _fourk_2 = 4096; - _fourk_3 = 0x1000; - - -File: ld.info, Node: Symbols, Next: Location Counter, Prev: Constants, Up: Expressions - -3.10.2 Symbol Names -------------------- - -Unless quoted, symbol names start with a letter, underscore, or period -and may include letters, digits, underscores, periods, and hyphens. -Unquoted symbol names must not conflict with any keywords. You can -specify a symbol which contains odd characters or has the same name as a -keyword by surrounding the symbol name in double quotes: - "SECTION" = 9; - "with a space" = "also with a space" + 10; - - Since symbols can contain many non-alphabetic characters, it is -safest to delimit symbols with spaces. For example, `A-B' is one -symbol, whereas `A - B' is an expression involving subtraction. - - -File: ld.info, Node: Location Counter, Next: Operators, Prev: Symbols, Up: Expressions - -3.10.3 The Location Counter ---------------------------- - -The special linker variable "dot" `.' always contains the current -output location counter. Since the `.' always refers to a location in -an output section, it may only appear in an expression within a -`SECTIONS' command. The `.' symbol may appear anywhere that an -ordinary symbol is allowed in an expression. - - Assigning a value to `.' will cause the location counter to be -moved. This may be used to create holes in the output section. The -location counter may never be moved backwards. - - SECTIONS - { - output : - { - file1(.text) - . = . + 1000; - file2(.text) - . += 1000; - file3(.text) - } = 0x12345678; - } - In the previous example, the `.text' section from `file1' is located -at the beginning of the output section `output'. It is followed by a -1000 byte gap. Then the `.text' section from `file2' appears, also -with a 1000 byte gap following before the `.text' section from `file3'. -The notation `= 0x12345678' specifies what data to write in the gaps -(*note Output Section Fill::). - - Note: `.' actually refers to the byte offset from the start of the -current containing object. Normally this is the `SECTIONS' statement, -whose start address is 0, hence `.' can be used as an absolute address. -If `.' is used inside a section description however, it refers to the -byte offset from the start of that section, not an absolute address. -Thus in a script like this: - - SECTIONS - { - . = 0x100 - .text: { - *(.text) - . = 0x200 - } - . = 0x500 - .data: { - *(.data) - . += 0x600 - } - } - - The `.text' section will be assigned a starting address of 0x100 and -a size of exactly 0x200 bytes, even if there is not enough data in the -`.text' input sections to fill this area. (If there is too much data, -an error will be produced because this would be an attempt to move `.' -backwards). The `.data' section will start at 0x500 and it will have -an extra 0x600 bytes worth of space after the end of the values from -the `.data' input sections and before the end of the `.data' output -section itself. - - Setting symbols to the value of the location counter outside of an -output section statement can result in unexpected values if the linker -needs to place orphan sections. For example, given the following: - - SECTIONS - { - start_of_text = . ; - .text: { *(.text) } - end_of_text = . ; - - start_of_data = . ; - .data: { *(.data) } - end_of_data = . ; - } - - If the linker needs to place some input section, e.g. `.rodata', not -mentioned in the script, it might choose to place that section between -`.text' and `.data'. You might think the linker should place `.rodata' -on the blank line in the above script, but blank lines are of no -particular significance to the linker. As well, the linker doesn't -associate the above symbol names with their sections. Instead, it -assumes that all assignments or other statements belong to the previous -output section, except for the special case of an assignment to `.'. -I.e., the linker will place the orphan `.rodata' section as if the -script was written as follows: - - SECTIONS - { - start_of_text = . ; - .text: { *(.text) } - end_of_text = . ; - - start_of_data = . ; - .rodata: { *(.rodata) } - .data: { *(.data) } - end_of_data = . ; - } - - This may or may not be the script author's intention for the value of -`start_of_data'. One way to influence the orphan section placement is -to assign the location counter to itself, as the linker assumes that an -assignment to `.' is setting the start address of a following output -section and thus should be grouped with that section. So you could -write: - - SECTIONS - { - start_of_text = . ; - .text: { *(.text) } - end_of_text = . ; - - . = . ; - start_of_data = . ; - .data: { *(.data) } - end_of_data = . ; - } - - Now, the orphan `.rodata' section will be placed between -`end_of_text' and `start_of_data'. - - -File: ld.info, Node: Operators, Next: Evaluation, Prev: Location Counter, Up: Expressions - -3.10.4 Operators ----------------- - -The linker recognizes the standard C set of arithmetic operators, with -the standard bindings and precedence levels: - precedence associativity Operators Notes - (highest) - 1 left ! - ~ (1) - 2 left * / % - 3 left + - - 4 left >> << - 5 left == != > < <= >= - 6 left & - 7 left | - 8 left && - 9 left || - 10 right ? : - 11 right &= += -= *= /= (2) - (lowest) - Notes: (1) Prefix operators (2) *Note Assignments::. - - -File: ld.info, Node: Evaluation, Next: Expression Section, Prev: Operators, Up: Expressions - -3.10.5 Evaluation ------------------ - -The linker evaluates expressions lazily. It only computes the value of -an expression when absolutely necessary. - - The linker needs some information, such as the value of the start -address of the first section, and the origins and lengths of memory -regions, in order to do any linking at all. These values are computed -as soon as possible when the linker reads in the linker script. - - However, other values (such as symbol values) are not known or needed -until after storage allocation. Such values are evaluated later, when -other information (such as the sizes of output sections) is available -for use in the symbol assignment expression. - - The sizes of sections cannot be known until after allocation, so -assignments dependent upon these are not performed until after -allocation. - - Some expressions, such as those depending upon the location counter -`.', must be evaluated during section allocation. - - If the result of an expression is required, but the value is not -available, then an error results. For example, a script like the -following - SECTIONS - { - .text 9+this_isnt_constant : - { *(.text) } - } -will cause the error message `non constant expression for initial -address'. - - -File: ld.info, Node: Expression Section, Next: Builtin Functions, Prev: Evaluation, Up: Expressions - -3.10.6 The Section of an Expression ------------------------------------ - -When the linker evaluates an expression, the result is either absolute -or relative to some section. A relative expression is expressed as a -fixed offset from the base of a section. - - The position of the expression within the linker script determines -whether it is absolute or relative. An expression which appears within -an output section definition is relative to the base of the output -section. An expression which appears elsewhere will be absolute. - - A symbol set to a relative expression will be relocatable if you -request relocatable output using the `-r' option. That means that a -further link operation may change the value of the symbol. The symbol's -section will be the section of the relative expression. - - A symbol set to an absolute expression will retain the same value -through any further link operation. The symbol will be absolute, and -will not have any particular associated section. - - You can use the builtin function `ABSOLUTE' to force an expression -to be absolute when it would otherwise be relative. For example, to -create an absolute symbol set to the address of the end of the output -section `.data': - SECTIONS - { - .data : { *(.data) _edata = ABSOLUTE(.); } - } - If `ABSOLUTE' were not used, `_edata' would be relative to the -`.data' section. - - -File: ld.info, Node: Builtin Functions, Prev: Expression Section, Up: Expressions - -3.10.7 Builtin Functions ------------------------- - -The linker script language includes a number of builtin functions for -use in linker script expressions. - -`ABSOLUTE(EXP)' - Return the absolute (non-relocatable, as opposed to non-negative) - value of the expression EXP. Primarily useful to assign an - absolute value to a symbol within a section definition, where - symbol values are normally section relative. *Note Expression - Section::. - -`ADDR(SECTION)' - Return the absolute address (the VMA) of the named SECTION. Your - script must previously have defined the location of that section. - In the following example, `symbol_1' and `symbol_2' are assigned - identical values: - SECTIONS { ... - .output1 : - { - start_of_output_1 = ABSOLUTE(.); - ... - } - .output : - { - symbol_1 = ADDR(.output1); - symbol_2 = start_of_output_1; - } - ... } - -`ALIGN(ALIGN)' -`ALIGN(EXP,ALIGN)' - Return the location counter (`.') or arbitrary expression aligned - to the next ALIGN boundary. The single operand `ALIGN' doesn't - change the value of the location counter--it just does arithmetic - on it. The two operand `ALIGN' allows an arbitrary expression to - be aligned upwards (`ALIGN(ALIGN)' is equivalent to `ALIGN(., - ALIGN)'). - - Here is an example which aligns the output `.data' section to the - next `0x2000' byte boundary after the preceding section and sets a - variable within the section to the next `0x8000' boundary after the - input sections: - SECTIONS { ... - .data ALIGN(0x2000): { - *(.data) - variable = ALIGN(0x8000); - } - ... } - The first use of `ALIGN' in this example specifies the - location of a section because it is used as the optional ADDRESS - attribute of a section definition (*note Output Section - Address::). The second use of `ALIGN' is used to defines the - value of a symbol. - - The builtin function `NEXT' is closely related to `ALIGN'. - -`BLOCK(EXP)' - This is a synonym for `ALIGN', for compatibility with older linker - scripts. It is most often seen when setting the address of an - output section. - -`DATA_SEGMENT_ALIGN(MAXPAGESIZE, COMMONPAGESIZE)' - This is equivalent to either - (ALIGN(MAXPAGESIZE) + (. & (MAXPAGESIZE - 1))) - or - (ALIGN(MAXPAGESIZE) + (. & (MAXPAGESIZE - COMMONPAGESIZE))) - depending on whether the latter uses fewer COMMONPAGESIZE sized - pages for the data segment (area between the result of this - expression and `DATA_SEGMENT_END') than the former or not. If the - latter form is used, it means COMMONPAGESIZE bytes of runtime - memory will be saved at the expense of up to COMMONPAGESIZE wasted - bytes in the on-disk file. - - This expression can only be used directly in `SECTIONS' commands, - not in any output section descriptions and only once in the linker - script. COMMONPAGESIZE should be less or equal to MAXPAGESIZE and - should be the system page size the object wants to be optimized - for (while still working on system page sizes up to MAXPAGESIZE). - - Example: - . = DATA_SEGMENT_ALIGN(0x10000, 0x2000); - -`DATA_SEGMENT_END(EXP)' - This defines the end of data segment for `DATA_SEGMENT_ALIGN' - evaluation purposes. - - . = DATA_SEGMENT_END(.); - -`DATA_SEGMENT_RELRO_END(OFFSET, EXP)' - This defines the end of the `PT_GNU_RELRO' segment when `-z relro' - option is used. Second argument is returned. When `-z relro' - option is not present, `DATA_SEGMENT_RELRO_END' does nothing, - otherwise `DATA_SEGMENT_ALIGN' is padded so that EXP + OFFSET is - aligned to the most commonly used page boundary for particular - target. If present in the linker script, it must always come in - between `DATA_SEGMENT_ALIGN' and `DATA_SEGMENT_END'. - - . = DATA_SEGMENT_RELRO_END(24, .); - -`DEFINED(SYMBOL)' - Return 1 if SYMBOL is in the linker global symbol table and is - defined before the statement using DEFINED in the script, otherwise - return 0. You can use this function to provide default values for - symbols. For example, the following script fragment shows how to - set a global symbol `begin' to the first location in the `.text' - section--but if a symbol called `begin' already existed, its value - is preserved: - - SECTIONS { ... - .text : { - begin = DEFINED(begin) ? begin : . ; - ... - } - ... - } - -`LENGTH(MEMORY)' - Return the length of the memory region named MEMORY. - -`LOADADDR(SECTION)' - Return the absolute LMA of the named SECTION. This is normally - the same as `ADDR', but it may be different if the `AT' attribute - is used in the output section definition (*note Output Section - LMA::). - -`MAX(EXP1, EXP2)' - Returns the maximum of EXP1 and EXP2. - -`MIN(EXP1, EXP2)' - Returns the minimum of EXP1 and EXP2. - -`NEXT(EXP)' - Return the next unallocated address that is a multiple of EXP. - This function is closely related to `ALIGN(EXP)'; unless you use - the `MEMORY' command to define discontinuous memory for the output - file, the two functions are equivalent. - -`ORIGIN(MEMORY)' - Return the origin of the memory region named MEMORY. - -`SEGMENT_START(SEGMENT, DEFAULT)' - Return the base address of the named SEGMENT. If an explicit - value has been given for this segment (with a command-line `-T' - option) that value will be returned; otherwise the value will be - DEFAULT. At present, the `-T' command-line option can only be - used to set the base address for the "text", "data", and "bss" - sections, but you use `SEGMENT_START' with any segment name. - -`SIZEOF(SECTION)' - Return the size in bytes of the named SECTION, if that section has - been allocated. If the section has not been allocated when this is - evaluated, the linker will report an error. In the following - example, `symbol_1' and `symbol_2' are assigned identical values: - SECTIONS{ ... - .output { - .start = . ; - ... - .end = . ; - } - symbol_1 = .end - .start ; - symbol_2 = SIZEOF(.output); - ... } - -`SIZEOF_HEADERS' -`sizeof_headers' - Return the size in bytes of the output file's headers. This is - information which appears at the start of the output file. You - can use this number when setting the start address of the first - section, if you choose, to facilitate paging. - - When producing an ELF output file, if the linker script uses the - `SIZEOF_HEADERS' builtin function, the linker must compute the - number of program headers before it has determined all the section - addresses and sizes. If the linker later discovers that it needs - additional program headers, it will report an error `not enough - room for program headers'. To avoid this error, you must avoid - using the `SIZEOF_HEADERS' function, or you must rework your linker - script to avoid forcing the linker to use additional program - headers, or you must define the program headers yourself using the - `PHDRS' command (*note PHDRS::). - - -File: ld.info, Node: Implicit Linker Scripts, Prev: Expressions, Up: Scripts - -3.11 Implicit Linker Scripts -============================ - -If you specify a linker input file which the linker can not recognize as -an object file or an archive file, it will try to read the file as a -linker script. If the file can not be parsed as a linker script, the -linker will report an error. - - An implicit linker script will not replace the default linker script. - - Typically an implicit linker script would contain only symbol -assignments, or the `INPUT', `GROUP', or `VERSION' commands. - - Any input files read because of an implicit linker script will be -read at the position in the command line where the implicit linker -script was read. This can affect archive searching. - - -File: ld.info, Node: Machine Dependent, Next: BFD, Prev: Scripts, Up: Top - -4 Machine Dependent Features -**************************** - -`ld' has additional features on some platforms; the following sections -describe them. Machines where `ld' has no additional functionality are -not listed. - -* Menu: - - -* H8/300:: `ld' and the H8/300 - -* i960:: `ld' and the Intel 960 family - -* ARM:: `ld' and the ARM family - -* HPPA ELF32:: `ld' and HPPA 32-bit ELF - -* MMIX:: `ld' and MMIX - -* MSP430:: `ld' and MSP430 - -* TI COFF:: `ld' and TI COFF - -* WIN32:: `ld' and WIN32 (cygwin/mingw) - -* Xtensa:: `ld' and Xtensa Processors - - -File: ld.info, Node: H8/300, Next: i960, Up: Machine Dependent - -4.1 `ld' and the H8/300 -======================= - -For the H8/300, `ld' can perform these global optimizations when you -specify the `--relax' command-line option. - -_relaxing address modes_ - `ld' finds all `jsr' and `jmp' instructions whose targets are - within eight bits, and turns them into eight-bit program-counter - relative `bsr' and `bra' instructions, respectively. - -_synthesizing instructions_ - `ld' finds all `mov.b' instructions which use the sixteen-bit - absolute address form, but refer to the top page of memory, and - changes them to use the eight-bit address form. (That is: the - linker turns `mov.b `@'AA:16' into `mov.b `@'AA:8' whenever the - address AA is in the top page of memory). - -_bit manipulation instructions_ - `ld' finds all bit manipulation instructions like `band, bclr, - biand, bild, bior, bist, bixor, bld, bnot, bor, bset, bst, btst, - bxor' which use 32 bit and 16 bit absolute address form, but refer - to the top page of memory, and changes them to use the 8 bit - address form. (That is: the linker turns `bset #xx:3,`@'AA:32' - into `bset #xx:3,`@'AA:8' whenever the address AA is in the top - page of memory). - -_system control instructions_ - `ld' finds all `ldc.w, stc.w' instrcutions which use the 32 bit - absolute address form, but refer to the top page of memory, and - changes them to use 16 bit address form. (That is: the linker - turns `ldc.w `@'AA:32,ccr' into `ldc.w `@'AA:16,ccr' whenever the - address AA is in the top page of memory). - - -File: ld.info, Node: i960, Next: ARM, Prev: H8/300, Up: Machine Dependent - -4.2 `ld' and the Intel 960 Family -================================= - -You can use the `-AARCHITECTURE' command line option to specify one of -the two-letter names identifying members of the 960 family; the option -specifies the desired output target, and warns of any incompatible -instructions in the input files. It also modifies the linker's search -strategy for archive libraries, to support the use of libraries -specific to each particular architecture, by including in the search -loop names suffixed with the string identifying the architecture. - - For example, if your `ld' command line included `-ACA' as well as -`-ltry', the linker would look (in its built-in search paths, and in -any paths you specify with `-L') for a library with the names - - try - libtry.a - tryca - libtryca.a - -The first two possibilities would be considered in any event; the last -two are due to the use of `-ACA'. - - You can meaningfully use `-A' more than once on a command line, since -the 960 architecture family allows combination of target architectures; -each use will add another pair of name variants to search for when `-l' -specifies a library. - - `ld' supports the `--relax' option for the i960 family. If you -specify `--relax', `ld' finds all `balx' and `calx' instructions whose -targets are within 24 bits, and turns them into 24-bit program-counter -relative `bal' and `cal' instructions, respectively. `ld' also turns -`cal' instructions into `bal' instructions when it determines that the -target subroutine is a leaf routine (that is, the target subroutine does -not itself call any subroutines). - - -File: ld.info, Node: ARM, Next: HPPA ELF32, Prev: i960, Up: Machine Dependent - -4.3 `ld' and the ARM family -=========================== - -For the ARM, `ld' will generate code stubs to allow functions calls -betweem ARM and Thumb code. These stubs only work with code that has -been compiled and assembled with the `-mthumb-interwork' command line -option. If it is necessary to link with old ARM object files or -libraries, which have not been compiled with the -mthumb-interwork -option then the `--support-old-code' command line switch should be -given to the linker. This will make it generate larger stub functions -which will work with non-interworking aware ARM code. Note, however, -the linker does not support generating stubs for function calls to -non-interworking aware Thumb code. - - The `--thumb-entry' switch is a duplicate of the generic `--entry' -switch, in that it sets the program's starting address. But it also -sets the bottom bit of the address, so that it can be branched to using -a BX instruction, and the program will start executing in Thumb mode -straight away. - - The `--be8' switch instructs `ld' to generate BE8 format -executables. This option is only valid when linking big-endian objects. -The resulting image will contain big-endian data and little-endian code. - - The `R_ARM_TARGET1' relocation is typically used for entries in the -`.init_array' section. It is interpreted as either `R_ARM_REL32' or -`R_ARM_ABS32', depending on the target. The `--target1-rel' and -`--target1-abs' switches override the default. - - The `--target2=type' switch overrides the default definition of the -`R_ARM_TARGET2' relocation. Valid values for `type', their meanings, -and target defaults are as follows: -`rel' - `R_ARM_REL32' (arm*-*-elf, arm*-*-eabi) - -`abs' - `R_ARM_ABS32' (arm*-*-symbianelf) - -`got-rel' - `R_ARM_GOT_PREL' (arm*-*-linux, arm*-*-*bsd) - - The `R_ARM_V4BX' relocation (defined by the ARM AAELF specification) -enables objects compiled for the ARMv4 architecture to be -interworking-safe when linked with other objects compiled for ARMv4t, -but also allows pure ARMv4 binaries to be built from the same ARMv4 -objects. - - In the latter case, the switch `--fix-v4bx' must be passed to the -linker, which causes v4t `BX rM' instructions to be rewritten as `MOV -PC,rM', since v4 processors do not have a `BX' instruction. - - In the former case, the switch should not be used, and `R_ARM_V4BX' -relocations are ignored. - - -File: ld.info, Node: HPPA ELF32, Next: MMIX, Prev: ARM, Up: Machine Dependent - -4.4 `ld' and HPPA 32-bit ELF Support -==================================== - -When generating a shared library, `ld' will by default generate import -stubs suitable for use with a single sub-space application. The -`--multi-subspace' switch causes `ld' to generate export stubs, and -different (larger) import stubs suitable for use with multiple -sub-spaces. - - Long branch stubs and import/export stubs are placed by `ld' in stub -sections located between groups of input sections. `--stub-group-size' -specifies the maximum size of a group of input sections handled by one -stub section. Since branch offsets are signed, a stub section may -serve two groups of input sections, one group before the stub section, -and one group after it. However, when using conditional branches that -require stubs, it may be better (for branch prediction) that stub -sections only serve one group of input sections. A negative value for -`N' chooses this scheme, ensuring that branches to stubs always use a -negative offset. Two special values of `N' are recognized, `1' and -`-1'. These both instruct `ld' to automatically size input section -groups for the branch types detected, with the same behaviour regarding -stub placement as other positive or negative values of `N' respectively. - - Note that `--stub-group-size' does not split input sections. A -single input section larger than the group size specified will of course -create a larger group (of one section). If input sections are too -large, it may not be possible for a branch to reach its stub. - - -File: ld.info, Node: MMIX, Next: MSP430, Prev: HPPA ELF32, Up: Machine Dependent - -4.5 `ld' and MMIX -================= - -For MMIX, there is a choice of generating `ELF' object files or `mmo' -object files when linking. The simulator `mmix' understands the `mmo' -format. The binutils `objcopy' utility can translate between the two -formats. - - There is one special section, the `.MMIX.reg_contents' section. -Contents in this section is assumed to correspond to that of global -registers, and symbols referring to it are translated to special -symbols, equal to registers. In a final link, the start address of the -`.MMIX.reg_contents' section corresponds to the first allocated global -register multiplied by 8. Register `$255' is not included in this -section; it is always set to the program entry, which is at the symbol -`Main' for `mmo' files. - - Symbols with the prefix `__.MMIX.start.', for example -`__.MMIX.start..text' and `__.MMIX.start..data' are special; there must -be only one each, even if they are local. The default linker script -uses these to set the default start address of a section. - - Initial and trailing multiples of zero-valued 32-bit words in a -section, are left out from an mmo file. - - -File: ld.info, Node: MSP430, Next: TI COFF, Prev: MMIX, Up: Machine Dependent - -4.6 `ld' and MSP430 -=================== - -For the MSP430 it is possible to select the MPU architecture. The flag -`-m [mpu type]' will select an appropriate linker script for selected -MPU type. (To get a list of known MPUs just pass `-m help' option to -the linker). - - The linker will recognize some extra sections which are MSP430 -specific: - -``.vectors'' - Defines a portion of ROM where interrupt vectors located. - -``.bootloader'' - Defines the bootloader portion of the ROM (if applicable). Any - code in this section will be uploaded to the MPU. - -``.infomem'' - Defines an information memory section (if applicable). Any code in - this section will be uploaded to the MPU. - -``.infomemnobits'' - This is the same as the `.infomem' section except that any code in - this section will not be uploaded to the MPU. - -``.noinit'' - Denotes a portion of RAM located above `.bss' section. - - The last two sections are used by gcc. - - -File: ld.info, Node: TI COFF, Next: WIN32, Prev: MSP430, Up: Machine Dependent - -4.7 `ld''s Support for Various TI COFF Versions -=============================================== - -The `--format' switch allows selection of one of the various TI COFF -versions. The latest of this writing is 2; versions 0 and 1 are also -supported. The TI COFF versions also vary in header byte-order format; -`ld' will read any version or byte order, but the output header format -depends on the default specified by the specific target. - - -File: ld.info, Node: WIN32, Next: Xtensa, Prev: TI COFF, Up: Machine Dependent - -4.8 `ld' and WIN32 (cygwin/mingw) -================================= - -This section describes some of the win32 specific `ld' issues. See -*Note Command Line Options: Options. for detailed decription of the -command line options mentioned here. - -_import libraries_ - The standard Windows linker creates and uses so-called import - libraries, which contains information for linking to dll's. They - are regular static archives and are handled as any other static - archive. The cygwin and mingw ports of `ld' have specific support - for creating such libraries provided with the `--out-implib' - command line option. - -_exporting DLL symbols_ - The cygwin/mingw `ld' has several ways to export symbols for dll's. - - _using auto-export functionality_ - By default `ld' exports symbols with the auto-export - functionality, which is controlled by the following command - line options: - - * -export-all-symbols [This is the default] - - * -exclude-symbols - - * -exclude-libs - - If, however, `--export-all-symbols' is not given explicitly - on the command line, then the default auto-export behavior - will be _disabled_ if either of the following are true: - - * A DEF file is used. - - * Any symbol in any object file was marked with the - __declspec(dllexport) attribute. - - _using a DEF file_ - Another way of exporting symbols is using a DEF file. A DEF - file is an ASCII file containing definitions of symbols which - should be exported when a dll is created. Usually it is - named `.def' and is added as any other object file - to the linker's command line. The file's name must end in - `.def' or `.DEF'. - - gcc -o .def - - Using a DEF file turns off the normal auto-export behavior, - unless the `--export-all-symbols' option is also used. - - Here is an example of a DEF file for a shared library called - `xyz.dll': - - LIBRARY "xyz.dll" BASE=0x10000000 - - EXPORTS - foo - bar - _bar = bar - - This example defines a base address and three symbols. The - third symbol is an alias for the second. For the complete - format specification see ld/deffilep.y in the binutils - sources. - - While linking a shared dll, `ld' is able to create a DEF file - with the `--output-def ' command line option. - - _Using decorations_ - Another way of marking symbols for export is to modify the - source code itself, so that when building the DLL each symbol - to be exported is declared as: - - __declspec(dllexport) int a_variable - __declspec(dllexport) void a_function(int with_args) - - All such symbols will be exported from the DLL. If, however, - any of the object files in the DLL contain symbols decorated - in this way, then the normal auto-export behavior is - disabled, unless the `--export-all-symbols' option is also - used. - - Note that object files that wish to access these symbols must - _not_ decorate them with dllexport. Instead, they should use - dllimport, instead: - - __declspec(dllimport) int a_variable - __declspec(dllimport) void a_function(int with_args) - - This complicates the structure of library header files, - because when included by the library itself the header must - declare the variables and functions as dllexport, but when - included by client code the header must declare them as - dllimport. There are a number of idioms that are typically - used to do this; often client code can omit the __declspec() - declaration completely. See `--enable-auto-import' and - `automatic data imports' for more imformation. - -_automatic data imports_ - The standard Windows dll format supports data imports from dlls - only by adding special decorations (dllimport/dllexport), which - let the compiler produce specific assembler instructions to deal - with this issue. This increases the effort necessary to port - existing Un*x code to these platforms, especially for large c++ - libraries and applications. The auto-import feature, which was - initially provided by Paul Sokolovsky, allows one to omit the - decorations to archieve a behavior that conforms to that on - POSIX/Un*x platforms. This feature is enabled with the - `--enable-auto-import' command-line option, although it is enabled - by default on cygwin/mingw. The `--enable-auto-import' option - itself now serves mainly to suppress any warnings that are - ordinarily emitted when linked objects trigger the feature's use. - - auto-import of variables does not always work flawlessly without - additional assistance. Sometimes, you will see this message - - "variable '' can't be auto-imported. Please read the - documentation for ld's `--enable-auto-import' for details." - - The `--enable-auto-import' documentation explains why this error - occurs, and several methods that can be used to overcome this - difficulty. One of these methods is the _runtime pseudo-relocs_ - feature, described below. - - For complex variables imported from DLLs (such as structs or - classes), object files typically contain a base address for the - variable and an offset (_addend_) within the variable-to specify a - particular field or public member, for instance. Unfortunately, - the runtime loader used in win32 environments is incapable of - fixing these references at runtime without the additional - information supplied by dllimport/dllexport decorations. The - standard auto-import feature described above is unable to resolve - these references. - - The `--enable-runtime-pseudo-relocs' switch allows these - references to be resolved without error, while leaving the task of - adjusting the references themselves (with their non-zero addends) - to specialized code provided by the runtime environment. Recent - versions of the cygwin and mingw environments and compilers - provide this runtime support; older versions do not. However, the - support is only necessary on the developer's platform; the - compiled result will run without error on an older system. - - `--enable-runtime-pseudo-relocs' is not the default; it must be - explicitly enabled as needed. - -_direct linking to a dll_ - The cygwin/mingw ports of `ld' support the direct linking, - including data symbols, to a dll without the usage of any import - libraries. This is much faster and uses much less memory than - does the traditional import library method, expecially when - linking large libraries or applications. When `ld' creates an - import lib, each function or variable exported from the dll is - stored in its own bfd, even though a single bfd could contain many - exports. The overhead involved in storing, loading, and - processing so many bfd's is quite large, and explains the - tremendous time, memory, and storage needed to link against - particularly large or complex libraries when using import libs. - - Linking directly to a dll uses no extra command-line switches - other than `-L' and `-l', because `ld' already searches for a - number of names to match each library. All that is needed from - the developer's perspective is an understanding of this search, in - order to force ld to select the dll instead of an import library. - - For instance, when ld is called with the argument `-lxxx' it will - attempt to find, in the first directory of its search path, - - libxxx.dll.a - xxx.dll.a - libxxx.a - cygxxx.dll (*) - libxxx.dll - xxx.dll - - before moving on to the next directory in the search path. - - (*) Actually, this is not `cygxxx.dll' but in fact is - `xxx.dll', where `' is set by the `ld' option - `--dll-search-prefix='. In the case of cygwin, the - standard gcc spec file includes `--dll-search-prefix=cyg', so in - effect we actually search for `cygxxx.dll'. - - Other win32-based unix environments, such as mingw or pw32, may - use other `'es, although at present only cygwin makes use - of this feature. It was originally intended to help avoid name - conflicts among dll's built for the various win32/un*x - environments, so that (for example) two versions of a zlib dll - could coexist on the same machine. - - The generic cygwin/mingw path layout uses a `bin' directory for - applications and dll's and a `lib' directory for the import - libraries (using cygwin nomenclature): - - bin/ - cygxxx.dll - lib/ - libxxx.dll.a (in case of dll's) - libxxx.a (in case of static archive) - - Linking directly to a dll without using the import library can be - done two ways: - - 1. Use the dll directly by adding the `bin' path to the link line - gcc -Wl,-verbose -o a.exe -L../bin/ -lxxx - - However, as the dll's often have version numbers appended to their - names (`cygncurses-5.dll') this will often fail, unless one - specifies `-L../bin -lncurses-5' to include the version. Import - libs are generally not versioned, and do not have this difficulty. - - 2. Create a symbolic link from the dll to a file in the `lib' - directory according to the above mentioned search pattern. This - should be used to avoid unwanted changes in the tools needed for - making the app/dll. - - ln -s bin/cygxxx.dll lib/[cyg|lib|]xxx.dll[.a] - - Then you can link without any make environment changes. - - gcc -Wl,-verbose -o a.exe -L../lib/ -lxxx - - This technique also avoids the version number problems, because - the following is perfectly legal - - bin/ - cygxxx-5.dll - lib/ - libxxx.dll.a -> ../bin/cygxxx-5.dll - - Linking directly to a dll without using an import lib will work - even when auto-import features are exercised, and even when - `--enable-runtime-pseudo-relocs' is used. - - Given the improvements in speed and memory usage, one might - justifiably wonder why import libraries are used at all. There - are two reasons: - - 1. Until recently, the link-directly-to-dll functionality did _not_ - work with auto-imported data. - - 2. Sometimes it is necessary to include pure static objects within - the import library (which otherwise contains only bfd's for - indirection symbols that point to the exports of a dll). Again, - the import lib for the cygwin kernel makes use of this ability, - and it is not possible to do this without an import lib. - - So, import libs are not going away. But the ability to replace - true import libs with a simple symbolic link to (or a copy of) a - dll, in most cases, is a useful addition to the suite of tools - binutils makes available to the win32 developer. Given the - massive improvements in memory requirements during linking, storage - requirements, and linking speed, we expect that many developers - will soon begin to use this feature whenever possible. - -_symbol aliasing_ - - _adding additional names_ - Sometimes, it is useful to export symbols with additional - names. A symbol `foo' will be exported as `foo', but it can - also be exported as `_foo' by using special directives in the - DEF file when creating the dll. This will affect also the - optional created import library. Consider the following DEF - file: - - LIBRARY "xyz.dll" BASE=0x61000000 - - EXPORTS - foo - _foo = foo - - The line `_foo = foo' maps the symbol `foo' to `_foo'. - - Another method for creating a symbol alias is to create it in - the source code using the "weak" attribute: - - void foo () { /* Do something. */; } - void _foo () __attribute__ ((weak, alias ("foo"))); - - See the gcc manual for more information about attributes and - weak symbols. - - _renaming symbols_ - Sometimes it is useful to rename exports. For instance, the - cygwin kernel does this regularly. A symbol `_foo' can be - exported as `foo' but not as `_foo' by using special - directives in the DEF file. (This will also affect the import - library, if it is created). In the following example: - - LIBRARY "xyz.dll" BASE=0x61000000 - - EXPORTS - _foo = foo - - The line `_foo = foo' maps the exported symbol `foo' to - `_foo'. - - Note: using a DEF file disables the default auto-export behavior, - unless the `--export-all-symbols' command line option is used. - If, however, you are trying to rename symbols, then you should list - _all_ desired exports in the DEF file, including the symbols that - are not being renamed, and do _not_ use the `--export-all-symbols' - option. If you list only the renamed symbols in the DEF file, and - use `--export-all-symbols' to handle the other symbols, then the - both the new names _and_ the original names for the renamed - symbols will be exported. In effect, you'd be aliasing those - symbols, not renaming them, which is probably not what you wanted. - -_weak externals_ - The Windows object format, PE, specifies a form of weak symbols - called weak externals. When a weak symbol is linked and the - symbol is not defined, the weak symbol becomes an alias for some - other symbol. There are three variants of weak externals: - * Definition is searched for in objects and libraries, - historically called lazy externals. - - * Definition is searched for only in other objects, not in - libraries. This form is not presently implemented. - - * No search; the symbol is an alias. This form is not presently - implemented. - As a GNU extension, weak symbols that do not specify an alternate - symbol are supported. If the symbol is undefined when linking, - the symbol uses a default value. - - -File: ld.info, Node: Xtensa, Prev: WIN32, Up: Machine Dependent - -4.9 `ld' and Xtensa Processors -============================== - -The default `ld' behavior for Xtensa processors is to interpret -`SECTIONS' commands so that lists of explicitly named sections in a -specification with a wildcard file will be interleaved when necessary to -keep literal pools within the range of PC-relative load offsets. For -example, with the command: - - SECTIONS - { - .text : { - *(.literal .text) - } - } - -`ld' may interleave some of the `.literal' and `.text' sections from -different object files to ensure that the literal pools are within the -range of PC-relative load offsets. A valid interleaving might place -the `.literal' sections from an initial group of files followed by the -`.text' sections of that group of files. Then, the `.literal' sections -from the rest of the files and the `.text' sections from the rest of -the files would follow. - - Relaxation is enabled by default for the Xtensa version of `ld' and -provides two important link-time optimizations. The first optimization -is to combine identical literal values to reduce code size. A redundant -literal will be removed and all the `L32R' instructions that use it -will be changed to reference an identical literal, as long as the -location of the replacement literal is within the offset range of all -the `L32R' instructions. The second optimization is to remove -unnecessary overhead from assembler-generated "longcall" sequences of -`L32R'/`CALLXN' when the target functions are within range of direct -`CALLN' instructions. - - For each of these cases where an indirect call sequence can be -optimized to a direct call, the linker will change the `CALLXN' -instruction to a `CALLN' instruction, remove the `L32R' instruction, -and remove the literal referenced by the `L32R' instruction if it is -not used for anything else. Removing the `L32R' instruction always -reduces code size but can potentially hurt performance by changing the -alignment of subsequent branch targets. By default, the linker will -always preserve alignments, either by switching some instructions -between 24-bit encodings and the equivalent density instructions or by -inserting a no-op in place of the `L32R' instruction that was removed. -If code size is more important than performance, the `--size-opt' -option can be used to prevent the linker from widening density -instructions or inserting no-ops, except in a few cases where no-ops -are required for correctness. - - The following Xtensa-specific command-line options can be used to -control the linker: - -`--no-relax' - Since the Xtensa version of `ld' enables the `--relax' option by - default, the `--no-relax' option is provided to disable relaxation. - -`--size-opt' - When optimizing indirect calls to direct calls, optimize for code - size more than performance. With this option, the linker will not - insert no-ops or widen density instructions to preserve branch - target alignment. There may still be some cases where no-ops are - required to preserve the correctness of the code. - - -File: ld.info, Node: BFD, Next: Reporting Bugs, Prev: Machine Dependent, Up: Top - -5 BFD -***** - -The linker accesses object and archive files using the BFD libraries. -These libraries allow the linker to use the same routines to operate on -object files whatever the object file format. A different object file -format can be supported simply by creating a new BFD back end and adding -it to the library. To conserve runtime memory, however, the linker and -associated tools are usually configured to support only a subset of the -object file formats available. You can use `objdump -i' (*note -objdump: (binutils.info)objdump.) to list all the formats available for -your configuration. - - As with most implementations, BFD is a compromise between several -conflicting requirements. The major factor influencing BFD design was -efficiency: any time used converting between formats is time which -would not have been spent had BFD not been involved. This is partly -offset by abstraction payback; since BFD simplifies applications and -back ends, more time and care may be spent optimizing algorithms for a -greater speed. - - One minor artifact of the BFD solution which you should bear in mind -is the potential for information loss. There are two places where -useful information can be lost using the BFD mechanism: during -conversion and during output. *Note BFD information loss::. - -* Menu: - -* BFD outline:: How it works: an outline of BFD - - -File: ld.info, Node: BFD outline, Up: BFD - -5.1 How It Works: An Outline of BFD -=================================== - -When an object file is opened, BFD subroutines automatically determine -the format of the input object file. They then build a descriptor in -memory with pointers to routines that will be used to access elements of -the object file's data structures. - - As different information from the object files is required, BFD -reads from different sections of the file and processes them. For -example, a very common operation for the linker is processing symbol -tables. Each BFD back end provides a routine for converting between -the object file's representation of symbols and an internal canonical -format. When the linker asks for the symbol table of an object file, it -calls through a memory pointer to the routine from the relevant BFD -back end which reads and converts the table into a canonical form. The -linker then operates upon the canonical form. When the link is finished -and the linker writes the output file's symbol table, another BFD back -end routine is called to take the newly created symbol table and -convert it into the chosen output format. - -* Menu: - -* BFD information loss:: Information Loss -* Canonical format:: The BFD canonical object-file format - - -File: ld.info, Node: BFD information loss, Next: Canonical format, Up: BFD outline - -5.1.1 Information Loss ----------------------- - -_Information can be lost during output._ The output formats supported -by BFD do not provide identical facilities, and information which can -be described in one form has nowhere to go in another format. One -example of this is alignment information in `b.out'. There is nowhere -in an `a.out' format file to store alignment information on the -contained data, so when a file is linked from `b.out' and an `a.out' -image is produced, alignment information will not propagate to the -output file. (The linker will still use the alignment information -internally, so the link is performed correctly). - - Another example is COFF section names. COFF files may contain an -unlimited number of sections, each one with a textual section name. If -the target of the link is a format which does not have many sections -(e.g., `a.out') or has sections without names (e.g., the Oasys format), -the link cannot be done simply. You can circumvent this problem by -describing the desired input-to-output section mapping with the linker -command language. - - _Information can be lost during canonicalization._ The BFD internal -canonical form of the external formats is not exhaustive; there are -structures in input formats for which there is no direct representation -internally. This means that the BFD back ends cannot maintain all -possible data richness through the transformation between external to -internal and back to external formats. - - This limitation is only a problem when an application reads one -format and writes another. Each BFD back end is responsible for -maintaining as much data as possible, and the internal BFD canonical -form has structures which are opaque to the BFD core, and exported only -to the back ends. When a file is read in one format, the canonical form -is generated for BFD and the application. At the same time, the back -end saves away any information which may otherwise be lost. If the data -is then written back in the same format, the back end routine will be -able to use the canonical form provided by the BFD core as well as the -information it prepared earlier. Since there is a great deal of -commonality between back ends, there is no information lost when -linking or copying big endian COFF to little endian COFF, or `a.out' to -`b.out'. When a mixture of formats is linked, the information is only -lost from the files whose format differs from the destination. - - -File: ld.info, Node: Canonical format, Prev: BFD information loss, Up: BFD outline - -5.1.2 The BFD canonical object-file format ------------------------------------------- - -The greatest potential for loss of information occurs when there is the -least overlap between the information provided by the source format, -that stored by the canonical format, and that needed by the destination -format. A brief description of the canonical form may help you -understand which kinds of data you can count on preserving across -conversions. - -_files_ - Information stored on a per-file basis includes target machine - architecture, particular implementation format type, a demand - pageable bit, and a write protected bit. Information like Unix - magic numbers is not stored here--only the magic numbers' meaning, - so a `ZMAGIC' file would have both the demand pageable bit and the - write protected text bit set. The byte order of the target is - stored on a per-file basis, so that big- and little-endian object - files may be used with one another. - -_sections_ - Each section in the input file contains the name of the section, - the section's original address in the object file, size and - alignment information, various flags, and pointers into other BFD - data structures. - -_symbols_ - Each symbol contains a pointer to the information for the object - file which originally defined it, its name, its value, and various - flag bits. When a BFD back end reads in a symbol table, it - relocates all symbols to make them relative to the base of the - section where they were defined. Doing this ensures that each - symbol points to its containing section. Each symbol also has a - varying amount of hidden private data for the BFD back end. Since - the symbol points to the original file, the private data format - for that symbol is accessible. `ld' can operate on a collection - of symbols of wildly different formats without problems. - - Normal global and simple local symbols are maintained on output, - so an output file (no matter its format) will retain symbols - pointing to functions and to global, static, and common variables. - Some symbol information is not worth retaining; in `a.out', type - information is stored in the symbol table as long symbol names. - This information would be useless to most COFF debuggers; the - linker has command line switches to allow users to throw it away. - - There is one word of type information within the symbol, so if the - format supports symbol type information within symbols (for - example, COFF, IEEE, Oasys) and the type is simple enough to fit - within one word (nearly everything but aggregates), the - information will be preserved. - -_relocation level_ - Each canonical BFD relocation record contains a pointer to the - symbol to relocate to, the offset of the data to relocate, the - section the data is in, and a pointer to a relocation type - descriptor. Relocation is performed by passing messages through - the relocation type descriptor and the symbol pointer. Therefore, - relocations can be performed on output data using a relocation - method that is only available in one of the input formats. For - instance, Oasys provides a byte relocation format. A relocation - record requesting this relocation type would point indirectly to a - routine to perform this, so the relocation may be performed on a - byte being written to a 68k COFF file, even though 68k COFF has no - such relocation type. - -_line numbers_ - Object formats can contain, for debugging purposes, some form of - mapping between symbols, source line numbers, and addresses in the - output file. These addresses have to be relocated along with the - symbol information. Each symbol with an associated list of line - number records points to the first record of the list. The head - of a line number list consists of a pointer to the symbol, which - allows finding out the address of the function whose line number - is being described. The rest of the list is made up of pairs: - offsets into the section and line numbers. Any format which can - simply derive this information can pass it successfully between - formats (COFF, IEEE and Oasys). - - -File: ld.info, Node: Reporting Bugs, Next: MRI, Prev: BFD, Up: Top - -6 Reporting Bugs -**************** - -Your bug reports play an essential role in making `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 `ld' work -better. Bug reports are your contribution to the maintenance of `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 - - -File: ld.info, Node: Bug Criteria, Next: Bug Reporting, Up: Reporting Bugs - -6.1 Have You Found a Bug? -========================= - -If you are not sure whether you have found a bug, here are some -guidelines: - - * If the linker gets a fatal signal, for any input whatever, that is - a `ld' bug. Reliable linkers never crash. - - * If `ld' produces an error message for valid input, that is a bug. - - * If `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. - - * If you are an experienced user of linkers, your suggestions for - improvement of `ld' are welcome in any case. - - -File: ld.info, Node: Bug Reporting, Prev: Bug Criteria, Up: Reporting Bugs - -6.2 How to Report Bugs -====================== - -A number of companies and individuals offer support for GNU products. -If you obtained `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 `etc/SERVICE' in the GNU Emacs distribution. - - Otherwise, send bug reports for `ld' to `bug-binutils@gnu.org'. - - The fundamental principle of reporting bugs usefully is this: -*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?" This cannot help us fix a bug, so it is basically useless. We -respond by asking for enough details to enable us to investigate. You -might as well expedite matters by sending them to begin with. - - To enable us to fix the bug, you should include all these things: - - * The version of `ld'. `ld' announces it if you start it with the - `--version' argument. - - Without this, we will not know whether there is any point in - looking for the bug in the current version of `ld'. - - * Any patches you may have applied to the `ld' source, including any - patches made to the `BFD' library. - - * The type of machine you are using, and the operating system name - and version number. - - * What compiler (and its version) was used to compile `ld'--e.g. - "`gcc-2.7'". - - * 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. - - * 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 provided that they are reasonably small. Say no more than - 10K. For bigger files you can either make them available by FTP - or HTTP or else state that you are willing to send the object - file(s) to whomever requests them. (Note - your email will be - going to a mailing list, so we do not want to clog it up with - large attachments). But small attachments are best. - - If the source files were assembled using `gas' or compiled using - `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 - `gas' or `gcc' was used to produce the object files. Also say how - `gas' or `gcc' were configured. - - * 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 `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 `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. - - * If you wish to suggest changes to the `ld' source, send us context - diffs, as generated by `diff' with the `-u', `-c', or `-p' option. - Always send diffs from the old file to the new file. If you even - discuss something in the `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. - - Here are some things that are not necessary: - - * 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 _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. - - * 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 `ld' 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. - - * 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. - - -File: ld.info, Node: MRI, Next: GNU Free Documentation License, Prev: Reporting Bugs, Up: Top - -Appendix A MRI Compatible Script Files -************************************** - -To aid users making the transition to GNU `ld' from the MRI linker, -`ld' can use MRI compatible linker scripts as an alternative to the -more general-purpose linker scripting language described in *Note -Scripts::. MRI compatible linker scripts have a much simpler command -set than the scripting language otherwise used with `ld'. GNU `ld' -supports the most commonly used MRI linker commands; these commands are -described here. - - In general, MRI scripts aren't of much use with the `a.out' object -file format, since it only has three sections and MRI scripts lack some -features to make use of them. - - You can specify a file containing an MRI-compatible script using the -`-c' command-line option. - - Each command in an MRI-compatible script occupies its own line; each -command line starts with the keyword that identifies the command (though -blank lines are also allowed for punctuation). If a line of an -MRI-compatible script begins with an unrecognized keyword, `ld' issues -a warning message, but continues processing the script. - - Lines beginning with `*' are comments. - - You can write these commands using all upper-case letters, or all -lower case; for example, `chip' is the same as `CHIP'. The following -list shows only the upper-case form of each command. - -`ABSOLUTE SECNAME' -`ABSOLUTE SECNAME, SECNAME, ... SECNAME' - Normally, `ld' includes in the output file all sections from all - the input files. However, in an MRI-compatible script, you can - use the `ABSOLUTE' command to restrict the sections that will be - present in your output program. If the `ABSOLUTE' command is used - at all in a script, then only the sections named explicitly in - `ABSOLUTE' commands will appear in the linker output. You can - still use other input sections (whatever you select on the command - line, or using `LOAD') to resolve addresses in the output file. - -`ALIAS OUT-SECNAME, IN-SECNAME' - Use this command to place the data from input section IN-SECNAME - in a section called OUT-SECNAME in the linker output file. - - IN-SECNAME may be an integer. - -`ALIGN SECNAME = EXPRESSION' - Align the section called SECNAME to EXPRESSION. The EXPRESSION - should be a power of two. - -`BASE EXPRESSION' - Use the value of EXPRESSION as the lowest address (other than - absolute addresses) in the output file. - -`CHIP EXPRESSION' -`CHIP EXPRESSION, EXPRESSION' - This command does nothing; it is accepted only for compatibility. - -`END' - This command does nothing whatever; it's only accepted for - compatibility. - -`FORMAT OUTPUT-FORMAT' - Similar to the `OUTPUT_FORMAT' command in the more general linker - language, but restricted to one of these output formats: - - 1. S-records, if OUTPUT-FORMAT is `S' - - 2. IEEE, if OUTPUT-FORMAT is `IEEE' - - 3. COFF (the `coff-m68k' variant in BFD), if OUTPUT-FORMAT is - `COFF' - -`LIST ANYTHING...' - Print (to the standard output file) a link map, as produced by the - `ld' command-line option `-M'. - - The keyword `LIST' may be followed by anything on the same line, - with no change in its effect. - -`LOAD FILENAME' -`LOAD FILENAME, FILENAME, ... FILENAME' - Include one or more object file FILENAME in the link; this has the - same effect as specifying FILENAME directly on the `ld' command - line. - -`NAME OUTPUT-NAME' - OUTPUT-NAME is the name for the program produced by `ld'; the - MRI-compatible command `NAME' is equivalent to the command-line - option `-o' or the general script language command `OUTPUT'. - -`ORDER SECNAME, SECNAME, ... SECNAME' -`ORDER SECNAME SECNAME SECNAME' - Normally, `ld' orders the sections in its output file in the order - in which they first appear in the input files. In an - MRI-compatible script, you can override this ordering with the - `ORDER' command. The sections you list with `ORDER' will appear - first in your output file, in the order specified. - -`PUBLIC NAME=EXPRESSION' -`PUBLIC NAME,EXPRESSION' -`PUBLIC NAME EXPRESSION' - Supply a value (EXPRESSION) for external symbol NAME used in the - linker input files. - -`SECT SECNAME, EXPRESSION' -`SECT SECNAME=EXPRESSION' -`SECT SECNAME EXPRESSION' - You can use any of these three forms of the `SECT' command to - specify the start address (EXPRESSION) for section SECNAME. If - you have more than one `SECT' statement for the same SECNAME, only - the _first_ sets the start address. - - -File: ld.info, Node: GNU Free Documentation License, Next: Index, Prev: MRI, Up: Top - -Appendix B GNU Free Documentation License -***************************************** - - Version 1.1, March 2000 - - Copyright (C) 2000, 2003 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - 0. PREAMBLE - - The purpose of this License is to make a manual, textbook, or other - written document "free" in the sense of freedom: to assure everyone - the effective freedom to copy and redistribute it, with or without - modifying it, either commercially or noncommercially. Secondarily, - this License preserves for the author and publisher a way to get - credit for their work, while not being considered responsible for - modifications made by others. - - This License is a kind of "copyleft", which means that derivative - works of the document must themselves be free in the same sense. - It complements the GNU General Public License, which is a copyleft - license designed for free software. - - We have designed this License in order to use it for manuals for - free software, because free software needs free documentation: a - free program should come with manuals providing the same freedoms - that the software does. But this License is not limited to - software manuals; it can be used for any textual work, regardless - of subject matter or whether it is published as a printed book. - We recommend this License principally for works whose purpose is - instruction or reference. - - - 1. APPLICABILITY AND DEFINITIONS - - This License applies to any manual or other work that contains a - notice placed by the copyright holder saying it can be distributed - under the terms of this License. The "Document", below, refers to - any such manual or work. Any member of the public is a licensee, - and is addressed as "you." - - A "Modified Version" of the Document means any work containing the - Document or a portion of it, either copied verbatim, or with - modifications and/or translated into another language. - - A "Secondary Section" is a named appendix or a front-matter - section of the Document that deals exclusively with the - relationship of the publishers or authors of the Document to the - Document's overall subject (or to related matters) and contains - nothing that could fall directly within that overall subject. - (For example, if the Document is in part a textbook of - mathematics, a Secondary Section may not explain any mathematics.) - The relationship could be a matter of historical connection with - the subject or with related matters, or of legal, commercial, - philosophical, ethical or political position regarding them. - - The "Invariant Sections" are certain Secondary Sections whose - titles are designated, as being those of Invariant Sections, in - the notice that says that the Document is released under this - License. - - The "Cover Texts" are certain short passages of text that are - listed, as Front-Cover Texts or Back-Cover Texts, in the notice - that says that the Document is released under this License. - - A "Transparent" copy of the Document means a machine-readable copy, - represented in a format whose specification is available to the - general public, whose contents can be viewed and edited directly - and straightforwardly with generic text editors or (for images - composed of pixels) generic paint programs or (for drawings) some - widely available drawing editor, and that is suitable for input to - text formatters or for automatic translation to a variety of - formats suitable for input to text formatters. A copy made in an - otherwise Transparent file format whose markup has been designed - to thwart or discourage subsequent modification by readers is not - Transparent. A copy that is not "Transparent" is called "Opaque." - - Examples of suitable formats for Transparent copies include plain - ASCII without markup, Texinfo input format, LaTeX input format, - SGML or XML using a publicly available DTD, and - standard-conforming simple HTML designed for human modification. - Opaque formats include PostScript, PDF, proprietary formats that - can be read and edited only by proprietary word processors, SGML - or XML for which the DTD and/or processing tools are not generally - available, and the machine-generated HTML produced by some word - processors for output purposes only. - - The "Title Page" means, for a printed book, the title page itself, - plus such following pages as are needed to hold, legibly, the - material this License requires to appear in the title page. For - works in formats which do not have any title page as such, "Title - Page" means the text near the most prominent appearance of the - work's title, preceding the beginning of the body of the text. - - 2. VERBATIM COPYING - - You may copy and distribute the Document in any medium, either - commercially or noncommercially, provided that this License, the - copyright notices, and the license notice saying this License - applies to the Document are reproduced in all copies, and that you - add no other conditions whatsoever to those of this License. You - may not use technical measures to obstruct or control the reading - or further copying of the copies you make or distribute. However, - you may accept compensation in exchange for copies. If you - distribute a large enough number of copies you must also follow - the conditions in section 3. - - You may also lend copies, under the same conditions stated above, - and you may publicly display copies. - - 3. COPYING IN QUANTITY - - If you publish printed copies of the Document numbering more than - 100, and the Document's license notice requires Cover Texts, you - must enclose the copies in covers that carry, clearly and legibly, - all these Cover Texts: Front-Cover Texts on the front cover, and - Back-Cover Texts on the back cover. Both covers must also clearly - and legibly identify you as the publisher of these copies. The - front cover must present the full title with all words of the - title equally prominent and visible. You may add other material - on the covers in addition. Copying with changes limited to the - covers, as long as they preserve the title of the Document and - satisfy these conditions, can be treated as verbatim copying in - other respects. - - If the required texts for either cover are too voluminous to fit - legibly, you should put the first ones listed (as many as fit - reasonably) on the actual cover, and continue the rest onto - adjacent pages. - - If you publish or distribute Opaque copies of the Document - numbering more than 100, you must either include a - machine-readable Transparent copy along with each Opaque copy, or - state in or with each Opaque copy a publicly-accessible - computer-network location containing a complete Transparent copy - of the Document, free of added material, which the general - network-using public has access to download anonymously at no - charge using public-standard network protocols. If you use the - latter option, you must take reasonably prudent steps, when you - begin distribution of Opaque copies in quantity, to ensure that - this Transparent copy will remain thus accessible at the stated - location until at least one year after the last time you - distribute an Opaque copy (directly or through your agents or - retailers) of that edition to the public. - - It is requested, but not required, that you contact the authors of - the Document well before redistributing any large number of - copies, to give them a chance to provide you with an updated - version of the Document. - - 4. MODIFICATIONS - - You may copy and distribute a Modified Version of the Document - under the conditions of sections 2 and 3 above, provided that you - release the Modified Version under precisely this License, with - the Modified Version filling the role of the Document, thus - licensing distribution and modification of the Modified Version to - whoever possesses a copy of it. In addition, you must do these - things in the Modified Version: - - A. Use in the Title Page (and on the covers, if any) a title - distinct from that of the Document, and from those of previous - versions (which should, if there were any, be listed in the - History section of the Document). You may use the same title - as a previous version if the original publisher of that version - gives permission. - B. List on the Title Page, as authors, one or more persons or - entities responsible for authorship of the modifications in the - Modified Version, together with at least five of the principal - authors of the Document (all of its principal authors, if it - has less than five). - C. State on the Title page the name of the publisher of the - Modified Version, as the publisher. - D. Preserve all the copyright notices of the Document. - E. Add an appropriate copyright notice for your modifications - adjacent to the other copyright notices. - F. Include, immediately after the copyright notices, a license - notice giving the public permission to use the Modified Version - under the terms of this License, in the form shown in the - Addendum below. - G. Preserve in that license notice the full lists of Invariant - Sections and required Cover Texts given in the Document's - license notice. - H. Include an unaltered copy of this License. - I. Preserve the section entitled "History", and its title, and add - to it an item stating at least the title, year, new authors, and - publisher of the Modified Version as given on the Title Page. - If there is no section entitled "History" in the Document, - create one stating the title, year, authors, and publisher of - the Document as given on its Title Page, then add an item - describing the Modified Version as stated in the previous - sentence. - J. Preserve the network location, if any, given in the Document for - public access to a Transparent copy of the Document, and - likewise the network locations given in the Document for - previous versions it was based on. These may be placed in the - "History" section. You may omit a network location for a work - that was published at least four years before the Document - itself, or if the original publisher of the version it refers - to gives permission. - K. In any section entitled "Acknowledgements" or "Dedications", - preserve the section's title, and preserve in the section all the - substance and tone of each of the contributor acknowledgements - and/or dedications given therein. - L. Preserve all the Invariant Sections of the Document, - unaltered in their text and in their titles. Section numbers - or the equivalent are not considered part of the section titles. - M. Delete any section entitled "Endorsements." Such a section - may not be included in the Modified Version. - N. Do not retitle any existing section as "Endorsements" or to - conflict in title with any Invariant Section. - - If the Modified Version includes new front-matter sections or - appendices that qualify as Secondary Sections and contain no - material copied from the Document, you may at your option - designate some or all of these sections as invariant. To do this, - add their titles to the list of Invariant Sections in the Modified - Version's license notice. These titles must be distinct from any - other section titles. - - You may add a section entitled "Endorsements", provided it contains - nothing but endorsements of your Modified Version by various - parties-for example, statements of peer review or that the text has - been approved by an organization as the authoritative definition - of a standard. - - You may add a passage of up to five words as a Front-Cover Text, - and a passage of up to 25 words as a Back-Cover Text, to the end - of the list of Cover Texts in the Modified Version. Only one - passage of Front-Cover Text and one of Back-Cover Text may be - added by (or through arrangements made by) any one entity. If the - Document already includes a cover text for the same cover, - previously added by you or by arrangement made by the same entity - you are acting on behalf of, you may not add another; but you may - replace the old one, on explicit permission from the previous - publisher that added the old one. - - The author(s) and publisher(s) of the Document do not by this - License give permission to use their names for publicity for or to - assert or imply endorsement of any Modified Version. - - 5. COMBINING DOCUMENTS - - You may combine the Document with other documents released under - this License, under the terms defined in section 4 above for - modified versions, provided that you include in the combination - all of the Invariant Sections of all of the original documents, - unmodified, and list them all as Invariant Sections of your - combined work in its license notice. - - The combined work need only contain one copy of this License, and - multiple identical Invariant Sections may be replaced with a single - copy. If there are multiple Invariant Sections with the same name - but different contents, make the title of each such section unique - by adding at the end of it, in parentheses, the name of the - original author or publisher of that section if known, or else a - unique number. Make the same adjustment to the section titles in - the list of Invariant Sections in the license notice of the - combined work. - - In the combination, you must combine any sections entitled - "History" in the various original documents, forming one section - entitled "History"; likewise combine any sections entitled - "Acknowledgements", and any sections entitled "Dedications." You - must delete all sections entitled "Endorsements." - - 6. COLLECTIONS OF DOCUMENTS - - You may make a collection consisting of the Document and other - documents released under this License, and replace the individual - copies of this License in the various documents with a single copy - that is included in the collection, provided that you follow the - rules of this License for verbatim copying of each of the - documents in all other respects. - - You may extract a single document from such a collection, and - distribute it individually under this License, provided you insert - a copy of this License into the extracted document, and follow - this License in all other respects regarding verbatim copying of - that document. - - 7. AGGREGATION WITH INDEPENDENT WORKS - - A compilation of the Document or its derivatives with other - separate and independent documents or works, in or on a volume of - a storage or distribution medium, does not as a whole count as a - Modified Version of the Document, provided no compilation - copyright is claimed for the compilation. Such a compilation is - called an "aggregate", and this License does not apply to the - other self-contained works thus compiled with the Document, on - account of their being thus compiled, if they are not themselves - derivative works of the Document. - - If the Cover Text requirement of section 3 is applicable to these - copies of the Document, then if the Document is less than one - quarter of the entire aggregate, the Document's Cover Texts may be - placed on covers that surround only the Document within the - aggregate. Otherwise they must appear on covers around the whole - aggregate. - - 8. TRANSLATION - - Translation is considered a kind of modification, so you may - distribute translations of the Document under the terms of section - 4. Replacing Invariant Sections with translations requires special - permission from their copyright holders, but you may include - translations of some or all Invariant Sections in addition to the - original versions of these Invariant Sections. You may include a - translation of this License provided that you also include the - original English version of this License. In case of a - disagreement between the translation and the original English - version of this License, the original English version will prevail. - - 9. TERMINATION - - You may not copy, modify, sublicense, or distribute the Document - except as expressly provided for under this License. Any other - attempt to copy, modify, sublicense or distribute the Document is - void, and will automatically terminate your rights under this - License. However, parties who have received copies, or rights, - from you under this License will not have their licenses - terminated so long as such parties remain in full compliance. - - 10. FUTURE REVISIONS OF THIS LICENSE - - The Free Software Foundation may publish new, revised versions of - the GNU Free Documentation License from time to time. Such new - versions will be similar in spirit to the present version, but may - differ in detail to address new problems or concerns. See - http://www.gnu.org/copyleft/. - - Each version of the License is given a distinguishing version - number. If the Document specifies that a particular numbered - version of this License "or any later version" applies to it, you - have the option of following the terms and conditions either of - that specified version or of any later version that has been - published (not as a draft) by the Free Software Foundation. If - the Document does not specify a version number of this License, - you may choose any version ever published (not as a draft) by the - Free Software Foundation. - - -ADDENDUM: How to use this License for your documents -==================================================== - -To use this License in a document you have written, include a copy of -the License in the document and put the following copyright and license -notices just after the title page: - - Copyright (C) YEAR YOUR NAME. - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 - or any later version published by the Free Software Foundation; - with the Invariant Sections being LIST THEIR TITLES, with the - Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. - A copy of the license is included in the section entitled "GNU - Free Documentation License." - - If you have no Invariant Sections, write "with no Invariant Sections" -instead of saying which ones are invariant. If you have no Front-Cover -Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being -LIST"; likewise for Back-Cover Texts. - - If your document contains nontrivial examples of program code, we -recommend releasing these examples in parallel under your choice of -free software license, such as the GNU General Public License, to -permit their use in free software. - - -File: ld.info, Node: Index, Prev: GNU Free Documentation License, Up: Top - -Index -***** - -[index] -* Menu: - -* ": Symbols. (line 6) -* -(: Options. (line 553) -* --accept-unknown-input-arch: Options. (line 571) -* --add-needed: Options. (line 593) -* --add-stdcall-alias: Options. (line 1278) -* --allow-multiple-definition: Options. (line 759) -* --allow-shlib-undefined: Options. (line 765) -* --architecture=ARCH: Options. (line 90) -* --as-needed: Options. (line 581) -* --auxiliary: Options. (line 191) -* --base-file: Options. (line 1283) -* --be8: ARM. (line 23) -* --check-sections: Options. (line 641) -* --cref: Options. (line 651) -* --default-imported-symver: Options. (line 793) -* --default-symver: Options. (line 789) -* --defsym SYMBOL=EXP: Options. (line 679) -* --demangle[=STYLE]: Options. (line 692) -* --disable-auto-image-base: Options. (line 1430) -* --disable-auto-import: Options. (line 1559) -* --disable-new-dtags: Options. (line 1230) -* --disable-runtime-pseudo-reloc: Options. (line 1572) -* --disable-stdcall-fixup: Options. (line 1293) -* --discard-all: Options. (line 470) -* --discard-locals: Options. (line 474) -* --dll: Options. (line 1288) -* --dll-search-prefix: Options. (line 1436) -* --dynamic-linker FILE: Options. (line 705) -* --emit-relocs: Options. (line 376) -* --enable-auto-image-base: Options. (line 1422) -* --enable-auto-import: Options. (line 1445) -* --enable-extra-pe-debug: Options. (line 1577) -* --enable-new-dtags: Options. (line 1230) -* --enable-runtime-pseudo-reloc: Options. (line 1564) -* --enable-stdcall-fixup: Options. (line 1293) -* --entry=ENTRY: Options. (line 144) -* --error-unresolved-symbols: Options. (line 1183) -* --exclude-libs: Options. (line 154) -* --exclude-symbols: Options. (line 1335) -* --export-all-symbols: Options. (line 1311) -* --export-dynamic: Options. (line 165) -* --fatal-warnings: Options. (line 711) -* --file-alignment: Options. (line 1341) -* --filter: Options. (line 212) -* --fix-v4bx: ARM. (line 44) -* --force-exe-suffix: Options. (line 714) -* --format=FORMAT: Options. (line 101) -* --format=VERSION: TI COFF. (line 6) -* --gc-sections: Options. (line 724) -* --gpsize: Options. (line 245) -* --hash-size=NUMBER: Options. (line 1239) -* --heap: Options. (line 1347) -* --help: Options. (line 732) -* --image-base: Options. (line 1354) -* --just-symbols=FILE: Options. (line 404) -* --kill-at: Options. (line 1363) -* --large-address-aware: Options. (line 1368) -* --library-path=DIR: Options. (line 301) -* --library=ARCHIVE: Options. (line 271) -* --major-image-version: Options. (line 1377) -* --major-os-version: Options. (line 1382) -* --major-subsystem-version: Options. (line 1386) -* --minor-image-version: Options. (line 1391) -* --minor-os-version: Options. (line 1396) -* --minor-subsystem-version: Options. (line 1400) -* --mri-script=MRI-CMDFILE: Options. (line 125) -* --multi-subspace: HPPA ELF32. (line 6) -* --nmagic: Options. (line 345) -* --no-accept-unknown-input-arch: Options. (line 571) -* --no-add-needed: Options. (line 593) -* --no-allow-shlib-undefined: Options. (line 765) -* --no-as-needed: Options. (line 581) -* --no-check-sections: Options. (line 641) -* --no-define-common: Options. (line 663) -* --no-demangle: Options. (line 692) -* --no-gc-sections: Options. (line 724) -* --no-keep-memory: Options. (line 744) -* --no-omagic: Options. (line 359) -* --no-relax: Xtensa. (line 56) -* --no-undefined: Options. (line 751) -* --no-undefined-version: Options. (line 784) -* --no-warn-mismatch: Options. (line 797) -* --no-whole-archive: Options. (line 806) -* --noinhibit-exec: Options. (line 810) -* --oformat: Options. (line 822) -* --omagic: Options. (line 350) -* --out-implib: Options. (line 1413) -* --output-def: Options. (line 1405) -* --output=OUTPUT: Options. (line 365) -* --pic-executable: Options. (line 835) -* --print-map: Options. (line 333) -* --reduce-memory-overheads: Options. (line 1246) -* --relax: Options. (line 851) -* --relax on i960: i960. (line 31) -* --relax on Xtensa: Xtensa. (line 27) -* --relocatable: Options. (line 385) -* --script=SCRIPT: Options. (line 428) -* --section-alignment: Options. (line 1582) -* --section-start SECTIONNAME=ORG: Options. (line 1020) -* --sort-common: Options. (line 967) -* --sort-section alignment: Options. (line 977) -* --sort-section name: Options. (line 973) -* --split-by-file: Options. (line 981) -* --split-by-reloc: Options. (line 986) -* --stack: Options. (line 1588) -* --stats: Options. (line 999) -* --strip-all: Options. (line 415) -* --strip-debug: Options. (line 419) -* --stub-group-size=N: HPPA ELF32. (line 12) -* --subsystem: Options. (line 1595) -* --support-old-code: ARM. (line 6) -* --sysroot: Options. (line 1003) -* --target-help: Options. (line 736) -* --target1-abs: ARM. (line 27) -* --target1-rel: ARM. (line 27) -* --target2=TYPE: ARM. (line 32) -* --thumb-entry=ENTRY: ARM. (line 17) -* --trace: Options. (line 424) -* --trace-symbol=SYMBOL: Options. (line 479) -* --traditional-format: Options. (line 1008) -* --undefined=SYMBOL: Options. (line 437) -* --unique[=SECTION]: Options. (line 455) -* --unresolved-symbols: Options. (line 1035) -* --verbose: Options. (line 1064) -* --version: Options. (line 464) -* --version-script=VERSION-SCRIPTFILE: Options. (line 1070) -* --warn-common: Options. (line 1077) -* --warn-constructors: Options. (line 1145) -* --warn-multiple-gp: Options. (line 1150) -* --warn-once: Options. (line 1164) -* --warn-section-align: Options. (line 1168) -* --warn-shared-textrel: Options. (line 1175) -* --warn-unresolved-symbols: Options. (line 1178) -* --whole-archive: Options. (line 1187) -* --wrap: Options. (line 1201) -* -AARCH: Options. (line 89) -* -aKEYWORD: Options. (line 82) -* -assert KEYWORD: Options. (line 603) -* -b FORMAT: Options. (line 101) -* -Bdynamic: Options. (line 606) -* -Bgroup: Options. (line 616) -* -Bshareable: Options. (line 959) -* -Bstatic: Options. (line 623) -* -Bsymbolic: Options. (line 634) -* -c MRI-CMDFILE: Options. (line 125) -* -call_shared: Options. (line 606) -* -d: Options. (line 135) -* -dc: Options. (line 135) -* -dn: Options. (line 623) -* -dp: Options. (line 135) -* -dy: Options. (line 606) -* -E: Options. (line 165) -* -e ENTRY: Options. (line 144) -* -EB: Options. (line 184) -* -EL: Options. (line 187) -* -F: Options. (line 212) -* -f: Options. (line 191) -* -fini: Options. (line 236) -* -G: Options. (line 245) -* -g: Options. (line 242) -* -hNAME: Options. (line 253) -* -i: Options. (line 262) -* -IFILE: Options. (line 705) -* -init: Options. (line 265) -* -lARCHIVE: Options. (line 271) -* -LDIR: Options. (line 301) -* -M: Options. (line 333) -* -m EMULATION: Options. (line 323) -* -Map: Options. (line 740) -* -N: Options. (line 350) -* -n: Options. (line 345) -* -non_shared: Options. (line 623) -* -nostdlib: Options. (line 816) -* -O LEVEL: Options. (line 371) -* -o OUTPUT: Options. (line 365) -* -pie: Options. (line 835) -* -q: Options. (line 376) -* -qmagic: Options. (line 845) -* -Qy: Options. (line 848) -* -r: Options. (line 385) -* -R FILE: Options. (line 404) -* -rpath: Options. (line 884) -* -rpath-link: Options. (line 906) -* -S: Options. (line 419) -* -s: Options. (line 415) -* -shared: Options. (line 959) -* -soname=NAME: Options. (line 253) -* -static: Options. (line 623) -* -t: Options. (line 424) -* -T SCRIPT: Options. (line 428) -* -Tbss ORG: Options. (line 1029) -* -Tdata ORG: Options. (line 1029) -* -Ttext ORG: Options. (line 1029) -* -u SYMBOL: Options. (line 437) -* -Ur: Options. (line 445) -* -V: Options. (line 464) -* -v: Options. (line 464) -* -X: Options. (line 474) -* -x: Options. (line 470) -* -Y PATH: Options. (line 488) -* -y SYMBOL: Options. (line 479) -* -z defs: Options. (line 751) -* -z KEYWORD: Options. (line 492) -* -z muldefs: Options. (line 759) -* .: Location Counter. (line 6) -* /DISCARD/: Output Section Discarding. - (line 18) -* :PHDR: Output Section Phdr. - (line 6) -* =FILLEXP: Output Section Fill. - (line 6) -* >REGION: Output Section Region. - (line 6) -* [COMMON]: Input Section Common. - (line 29) -* ABSOLUTE (MRI): MRI. (line 33) -* absolute and relocatable symbols: Expression Section. (line 6) -* absolute expressions: Expression Section. (line 6) -* ABSOLUTE(EXP): Builtin Functions. (line 10) -* ADDR(SECTION): Builtin Functions. (line 17) -* address, section: Output Section Address. - (line 6) -* ALIAS (MRI): MRI. (line 44) -* ALIGN (MRI): MRI. (line 50) -* align expression: Builtin Functions. (line 36) -* align location counter: Builtin Functions. (line 36) -* ALIGN(ALIGN): Builtin Functions. (line 36) -* ALIGN(EXP,ALIGN): Builtin Functions. (line 36) -* allocating memory: MEMORY. (line 6) -* architecture: Miscellaneous Commands. - (line 46) -* architectures: Options. (line 89) -* archive files, from cmd line: Options. (line 271) -* archive search path in linker script: File Commands. (line 71) -* arithmetic: Expressions. (line 6) -* arithmetic operators: Operators. (line 6) -* ARM interworking support: ARM. (line 6) -* AS_NEEDED(FILES): File Commands. (line 51) -* ASSERT: Miscellaneous Commands. - (line 9) -* assertion in linker script: Miscellaneous Commands. - (line 9) -* assignment in scripts: Assignments. (line 6) -* AT(LMA): Output Section LMA. (line 6) -* AT>LMA_REGION: Output Section LMA. (line 6) -* automatic data imports: WIN32. (line 102) -* back end: BFD. (line 6) -* BASE (MRI): MRI. (line 54) -* BE8: ARM. (line 23) -* BFD canonical format: Canonical format. (line 11) -* BFD requirements: BFD. (line 16) -* big-endian objects: Options. (line 184) -* binary input format: Options. (line 101) -* BLOCK(EXP): Builtin Functions. (line 62) -* bug criteria: Bug Criteria. (line 6) -* bug reports: Bug Reporting. (line 6) -* bugs in ld: Reporting Bugs. (line 6) -* BYTE(EXPRESSION): Output Section Data. - (line 6) -* C++ constructors, arranging in link: Output Section Keywords. - (line 19) -* CHIP (MRI): MRI. (line 58) -* COLLECT_NO_DEMANGLE: Environment. (line 29) -* combining symbols, warnings on: Options. (line 1077) -* command files: Scripts. (line 6) -* command line: Options. (line 6) -* common allocation: Options. (line 135) -* common allocation in linker script: Miscellaneous Commands. - (line 20) -* common symbol placement: Input Section Common. - (line 6) -* compatibility, MRI: Options. (line 125) -* constants in linker scripts: Constants. (line 6) -* CONSTRUCTORS: Output Section Keywords. - (line 19) -* constructors: Options. (line 445) -* constructors, arranging in link: Output Section Keywords. - (line 19) -* crash of linker: Bug Criteria. (line 9) -* CREATE_OBJECT_SYMBOLS: Output Section Keywords. - (line 9) -* creating a DEF file: WIN32. (line 69) -* cross reference table: Options. (line 651) -* cross references: Miscellaneous Commands. - (line 30) -* current output location: Location Counter. (line 6) -* data: Output Section Data. - (line 6) -* DATA_SEGMENT_ALIGN(MAXPAGESIZE, COMMONPAGESIZE): Builtin Functions. - (line 67) -* DATA_SEGMENT_END(EXP): Builtin Functions. (line 88) -* DATA_SEGMENT_RELRO_END(OFFSET, EXP): Builtin Functions. (line 94) -* dbx: Options. (line 1013) -* DEF files, creating: Options. (line 1405) -* default emulation: Environment. (line 21) -* default input format: Environment. (line 9) -* DEFINED(SYMBOL): Builtin Functions. (line 105) -* deleting local symbols: Options. (line 470) -* demangling, default: Environment. (line 29) -* demangling, from command line: Options. (line 692) -* direct linking to a dll: WIN32. (line 150) -* discarding sections: Output Section Discarding. - (line 6) -* discontinuous memory: MEMORY. (line 6) -* DLLs, creating: Options. (line 1311) -* DLLs, linking to: Options. (line 1436) -* dot: Location Counter. (line 6) -* dot inside sections: Location Counter. (line 34) -* dot outside sections: Location Counter. (line 64) -* dynamic linker, from command line: Options. (line 705) -* dynamic symbol table: Options. (line 165) -* ELF program headers: PHDRS. (line 6) -* emulation: Options. (line 323) -* emulation, default: Environment. (line 21) -* END (MRI): MRI. (line 62) -* endianness: Options. (line 184) -* entry point: Entry Point. (line 6) -* entry point, from command line: Options. (line 144) -* entry point, thumb: ARM. (line 17) -* ENTRY(SYMBOL): Entry Point. (line 6) -* error on valid input: Bug Criteria. (line 12) -* example of linker script: Simple Example. (line 6) -* exporting DLL symbols: WIN32. (line 19) -* expression evaluation order: Evaluation. (line 6) -* expression sections: Expression Section. (line 6) -* expression, absolute: Builtin Functions. (line 10) -* expressions: Expressions. (line 6) -* EXTERN: Miscellaneous Commands. - (line 13) -* fatal signal: Bug Criteria. (line 9) -* file name wildcard patterns: Input Section Wildcards. - (line 6) -* FILEHDR: PHDRS. (line 61) -* filename symbols: Output Section Keywords. - (line 9) -* fill pattern, entire section: Output Section Fill. - (line 6) -* FILL(EXPRESSION): Output Section Data. - (line 39) -* finalization function: Options. (line 236) -* first input file: File Commands. (line 79) -* first instruction: Entry Point. (line 6) -* FIX_V4BX: ARM. (line 44) -* FORCE_COMMON_ALLOCATION: Miscellaneous Commands. - (line 20) -* forcing input section alignment: Forced Input Alignment. - (line 6) -* FORMAT (MRI): MRI. (line 66) -* functions in expressions: Builtin Functions. (line 6) -* garbage collection <1>: Input Section Keep. (line 6) -* garbage collection: Options. (line 724) -* generating optimized output: Options. (line 371) -* GNU linker: Overview. (line 6) -* GNUTARGET: Environment. (line 9) -* GROUP(FILES): File Commands. (line 44) -* grouping input files: File Commands. (line 44) -* groups of archives: Options. (line 553) -* H8/300 support: H8/300. (line 6) -* header size: Builtin Functions. (line 170) -* heap size: Options. (line 1347) -* help: Options. (line 732) -* holes: Location Counter. (line 12) -* holes, filling: Output Section Data. - (line 39) -* HPPA multiple sub-space stubs: HPPA ELF32. (line 6) -* HPPA stub grouping: HPPA ELF32. (line 12) -* i960 support: i960. (line 6) -* image base: Options. (line 1354) -* implicit linker scripts: Implicit Linker Scripts. - (line 6) -* import libraries: WIN32. (line 10) -* INCLUDE FILENAME: File Commands. (line 9) -* including a linker script: File Commands. (line 9) -* including an entire archive: Options. (line 1187) -* incremental link: Options. (line 262) -* INHIBIT_COMMON_ALLOCATION: Miscellaneous Commands. - (line 25) -* initialization function: Options. (line 265) -* initialized data in ROM: Output Section LMA. (line 21) -* input file format in linker script: Format Commands. (line 35) -* input filename symbols: Output Section Keywords. - (line 9) -* input files in linker scripts: File Commands. (line 16) -* input files, displaying: Options. (line 424) -* input format: Options. (line 101) -* input object files in linker scripts: File Commands. (line 16) -* input section alignment: Forced Input Alignment. - (line 6) -* input section basics: Input Section Basics. - (line 6) -* input section wildcards: Input Section Wildcards. - (line 6) -* input sections: Input Section. (line 6) -* INPUT(FILES): File Commands. (line 16) -* integer notation: Constants. (line 6) -* integer suffixes: Constants. (line 12) -* internal object-file format: Canonical format. (line 11) -* invalid input: Bug Criteria. (line 14) -* K and M integer suffixes: Constants. (line 12) -* KEEP: Input Section Keep. (line 6) -* l =: MEMORY. (line 72) -* L, deleting symbols beginning: Options. (line 474) -* lazy evaluation: Evaluation. (line 6) -* ld bugs, reporting: Bug Reporting. (line 6) -* LDEMULATION: Environment. (line 21) -* len =: MEMORY. (line 72) -* LENGTH =: MEMORY. (line 72) -* LENGTH(MEMORY): Builtin Functions. (line 122) -* library search path in linker script: File Commands. (line 71) -* link map: Options. (line 333) -* link-time runtime library search path: Options. (line 906) -* linker crash: Bug Criteria. (line 9) -* linker script concepts: Basic Script Concepts. - (line 6) -* linker script example: Simple Example. (line 6) -* linker script file commands: File Commands. (line 6) -* linker script format: Script Format. (line 6) -* linker script input object files: File Commands. (line 16) -* linker script simple commands: Simple Commands. (line 6) -* linker scripts: Scripts. (line 6) -* LIST (MRI): MRI. (line 77) -* little-endian objects: Options. (line 187) -* LOAD (MRI): MRI. (line 84) -* load address: Output Section LMA. (line 6) -* LOADADDR(SECTION): Builtin Functions. (line 125) -* loading, preventing: Output Section Type. - (line 22) -* local symbols, deleting: Options. (line 474) -* location counter: Location Counter. (line 6) -* LONG(EXPRESSION): Output Section Data. - (line 6) -* M and K integer suffixes: Constants. (line 12) -* machine architecture: Miscellaneous Commands. - (line 46) -* machine dependencies: Machine Dependent. (line 6) -* mapping input sections to output sections: Input Section. (line 6) -* MAX: Builtin Functions. (line 130) -* MEMORY: MEMORY. (line 6) -* memory region attributes: MEMORY. (line 32) -* memory regions: MEMORY. (line 6) -* memory regions and sections: Output Section Region. - (line 6) -* memory usage: Options. (line 744) -* MIN: Builtin Functions. (line 133) -* MRI compatibility: MRI. (line 6) -* MSP430 extra sections: MSP430. (line 11) -* NAME (MRI): MRI. (line 90) -* name, section: Output Section Name. - (line 6) -* names: Symbols. (line 6) -* naming the output file: Options. (line 365) -* NEXT(EXP): Builtin Functions. (line 137) -* NMAGIC: Options. (line 345) -* NOCROSSREFS(SECTIONS): Miscellaneous Commands. - (line 30) -* NOLOAD: Output Section Type. - (line 22) -* not enough room for program headers: Builtin Functions. (line 175) -* o =: MEMORY. (line 67) -* objdump -i: BFD. (line 6) -* object file management: BFD. (line 6) -* object files: Options. (line 29) -* object formats available: BFD. (line 6) -* object size: Options. (line 245) -* OMAGIC: Options. (line 350) -* opening object files: BFD outline. (line 6) -* operators for arithmetic: Operators. (line 6) -* options: Options. (line 6) -* ORDER (MRI): MRI. (line 95) -* org =: MEMORY. (line 67) -* ORIGIN =: MEMORY. (line 67) -* ORIGIN(MEMORY): Builtin Functions. (line 143) -* output file after errors: Options. (line 810) -* output file format in linker script: Format Commands. (line 10) -* output file name in linker scripot: File Commands. (line 61) -* output section attributes: Output Section Attributes. - (line 6) -* output section data: Output Section Data. - (line 6) -* OUTPUT(FILENAME): File Commands. (line 61) -* OUTPUT_ARCH(BFDARCH): Miscellaneous Commands. - (line 46) -* OUTPUT_FORMAT(BFDNAME): Format Commands. (line 10) -* OVERLAY: Overlay Description. - (line 6) -* overlays: Overlay Description. - (line 6) -* partial link: Options. (line 385) -* PHDRS: PHDRS. (line 6) -* position independent executables: Options. (line 837) -* precedence in expressions: Operators. (line 6) -* prevent unnecessary loading: Output Section Type. - (line 22) -* program headers: PHDRS. (line 6) -* program headers and sections: Output Section Phdr. - (line 6) -* program headers, not enough room: Builtin Functions. (line 175) -* program segments: PHDRS. (line 6) -* PROVIDE: PROVIDE. (line 6) -* PUBLIC (MRI): MRI. (line 103) -* QUAD(EXPRESSION): Output Section Data. - (line 6) -* quoted symbol names: Symbols. (line 6) -* read-only text: Options. (line 345) -* read/write from cmd line: Options. (line 350) -* regions of memory: MEMORY. (line 6) -* relative expressions: Expression Section. (line 6) -* relaxing addressing modes: Options. (line 851) -* relaxing on H8/300: H8/300. (line 9) -* relaxing on i960: i960. (line 31) -* relaxing on Xtensa: Xtensa. (line 27) -* relocatable and absolute symbols: Expression Section. (line 6) -* relocatable output: Options. (line 385) -* removing sections: Output Section Discarding. - (line 6) -* reporting bugs in ld: Reporting Bugs. (line 6) -* requirements for BFD: BFD. (line 16) -* retain relocations in final executable: Options. (line 376) -* retaining specified symbols: Options. (line 870) -* ROM initialized data: Output Section LMA. (line 21) -* round up expression: Builtin Functions. (line 36) -* round up location counter: Builtin Functions. (line 36) -* runtime library name: Options. (line 253) -* runtime library search path: Options. (line 884) -* runtime pseudo-relocation: WIN32. (line 128) -* scaled integers: Constants. (line 12) -* scommon section: Input Section Common. - (line 20) -* script files: Options. (line 428) -* scripts: Scripts. (line 6) -* search directory, from cmd line: Options. (line 301) -* search path in linker script: File Commands. (line 71) -* SEARCH_DIR(PATH): File Commands. (line 71) -* SECT (MRI): MRI. (line 109) -* section address: Output Section Address. - (line 6) -* section address in expression: Builtin Functions. (line 17) -* section alignment, warnings on: Options. (line 1168) -* section data: Output Section Data. - (line 6) -* section fill pattern: Output Section Fill. - (line 6) -* section load address: Output Section LMA. (line 6) -* section load address in expression: Builtin Functions. (line 125) -* section name: Output Section Name. - (line 6) -* section name wildcard patterns: Input Section Wildcards. - (line 6) -* section size: Builtin Functions. (line 154) -* section, assigning to memory region: Output Section Region. - (line 6) -* section, assigning to program header: Output Section Phdr. - (line 6) -* SECTIONS: SECTIONS. (line 6) -* sections, discarding: Output Section Discarding. - (line 6) -* segment origins, cmd line: Options. (line 1029) -* SEGMENT_START(SEGMENT, DEFAULT): Builtin Functions. (line 146) -* segments, ELF: PHDRS. (line 6) -* shared libraries: Options. (line 961) -* SHORT(EXPRESSION): Output Section Data. - (line 6) -* SIZEOF(SECTION): Builtin Functions. (line 154) -* SIZEOF_HEADERS: Builtin Functions. (line 170) -* small common symbols: Input Section Common. - (line 20) -* SORT: Input Section Wildcards. - (line 58) -* SORT_BY_ALIGNMENT: Input Section Wildcards. - (line 54) -* SORT_BY_NAME: Input Section Wildcards. - (line 46) -* SQUAD(EXPRESSION): Output Section Data. - (line 6) -* stack size: Options. (line 1588) -* standard Unix system: Options. (line 7) -* start of execution: Entry Point. (line 6) -* STARTUP(FILENAME): File Commands. (line 79) -* strip all symbols: Options. (line 415) -* strip debugger symbols: Options. (line 419) -* stripping all but some symbols: Options. (line 870) -* SUBALIGN(SUBSECTION_ALIGN): Forced Input Alignment. - (line 6) -* suffixes for integers: Constants. (line 12) -* symbol defaults: Builtin Functions. (line 105) -* symbol definition, scripts: Assignments. (line 6) -* symbol names: Symbols. (line 6) -* symbol tracing: Options. (line 479) -* symbol versions: VERSION. (line 6) -* symbol-only input: Options. (line 404) -* symbols, from command line: Options. (line 679) -* symbols, relocatable and absolute: Expression Section. (line 6) -* symbols, retaining selectively: Options. (line 870) -* synthesizing linker: Options. (line 851) -* synthesizing on H8/300: H8/300. (line 14) -* TARGET(BFDNAME): Format Commands. (line 35) -* TARGET1: ARM. (line 27) -* TARGET2: ARM. (line 32) -* thumb entry point: ARM. (line 17) -* TI COFF versions: TI COFF. (line 6) -* traditional format: Options. (line 1008) -* unallocated address, next: Builtin Functions. (line 137) -* undefined symbol: Options. (line 437) -* undefined symbol in linker script: Miscellaneous Commands. - (line 13) -* undefined symbols, warnings on: Options. (line 1164) -* uninitialized data placement: Input Section Common. - (line 6) -* unspecified memory: Output Section Data. - (line 39) -* usage: Options. (line 732) -* using a DEF file: WIN32. (line 42) -* using auto-export functionality: WIN32. (line 22) -* Using decorations: WIN32. (line 73) -* variables, defining: Assignments. (line 6) -* verbose: Options. (line 1064) -* version: Options. (line 464) -* version script: VERSION. (line 6) -* version script, symbol versions: Options. (line 1070) -* VERSION {script text}: VERSION. (line 6) -* versions of symbols: VERSION. (line 6) -* warnings, on combining symbols: Options. (line 1077) -* warnings, on section alignment: Options. (line 1168) -* warnings, on undefined symbols: Options. (line 1164) -* weak externals: WIN32. (line 312) -* what is this?: Overview. (line 6) -* wildcard file name patterns: Input Section Wildcards. - (line 6) -* Xtensa options: Xtensa. (line 56) -* Xtensa processors: Xtensa. (line 6) - - - -Tag Table: -Node: Top342 -Node: Overview1107 -Node: Invocation2221 -Node: Options2629 -Node: Environment74726 -Node: Scripts76486 -Node: Basic Script Concepts78220 -Node: Script Format80927 -Node: Simple Example81790 -Node: Simple Commands84886 -Node: Entry Point85337 -Node: File Commands86096 -Node: Format Commands89962 -Node: Miscellaneous Commands91928 -Node: Assignments94158 -Node: Simple Assignments94614 -Node: PROVIDE96350 -Node: Source Code Reference97562 -Node: SECTIONS101135 -Node: Output Section Description103026 -Node: Output Section Name104056 -Node: Output Section Address104932 -Node: Input Section106581 -Node: Input Section Basics107382 -Node: Input Section Wildcards109734 -Node: Input Section Common114467 -Node: Input Section Keep115949 -Node: Input Section Example116439 -Node: Output Section Data117407 -Node: Output Section Keywords120184 -Node: Output Section Discarding123753 -Node: Output Section Attributes124709 -Node: Output Section Type125638 -Node: Output Section LMA126792 -Node: Forced Input Alignment129062 -Node: Output Section Region129442 -Node: Output Section Phdr129872 -Node: Output Section Fill130536 -Node: Overlay Description131678 -Node: MEMORY135926 -Node: PHDRS140126 -Node: VERSION145165 -Node: Expressions152163 -Node: Constants153004 -Node: Symbols153565 -Node: Location Counter154304 -Node: Operators158600 -Node: Evaluation159522 -Node: Expression Section160886 -Node: Builtin Functions162375 -Node: Implicit Linker Scripts169867 -Node: Machine Dependent170642 -Node: H8/300171387 -Node: i960173012 -Node: ARM174697 -Node: HPPA ELF32177157 -Node: MMIX178780 -Node: MSP430179997 -Node: TI COFF181039 -Node: WIN32181562 -Node: Xtensa196152 -Node: BFD199272 -Node: BFD outline200727 -Node: BFD information loss202013 -Node: Canonical format204530 -Node: Reporting Bugs208887 -Node: Bug Criteria209581 -Node: Bug Reporting210280 -Node: MRI217305 -Node: GNU Free Documentation License221948 -Node: Index241657 - -End Tag Table diff --git a/ld/po/da.po b/ld/po/da.po deleted file mode 100644 index 37457b76b29..00000000000 --- a/ld/po/da.po +++ /dev/null @@ -1,1702 +0,0 @@ -# Danish messages for ld. -# Copyright (C) 2001, 2002 Free Software Foundation, Inc. -# Keld Simonsen , 2002 -# -msgid "" -msgstr "" -"Project-Id-Version: ld 2.12.91\n" -"POT-Creation-Date: 2002-07-23 15:58-0400\n" -"PO-Revision-Date: 2002-11-10 12:31+0100\n" -"Last-Translator: Keld Simonsen \n" -"Language-Team: Danish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-1\n" -"Content-Transfer-Encoding: 8bit\n" - -#: emultempl/armcoff.em:71 -msgid " --support-old-code Support interworking with old code\n" -msgstr " --support-old-code Understøt samvirke med gammel kode\n" - -#: emultempl/armcoff.em:72 -msgid " --thumb-entry= Set the entry point to be Thumb symbol \n" -msgstr "" -" --thumb-entry= Indstil indgangspunktet til at være tommelsymbolet\n" -" \n" - -#: emultempl/armcoff.em:141 -#, c-format -msgid "Errors encountered processing file %s" -msgstr "Fejl skete ved behandling af filen %s" - -#: emultempl/armcoff.em:207 emultempl/pe.em:1422 -msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n" -msgstr "%P: advarsel: \"--thumb-entry %s\" tilsidesætter \"-e %s\"\n" - -#: emultempl/armcoff.em:212 emultempl/pe.em:1427 -msgid "%P: warning: connot find thumb start symbol %s\n" -msgstr "%P: advarsel: kan ikke finde tommelstartsymbol %s\n" - -#: emultempl/pe.em:317 -msgid " --base_file Generate a base file for relocatable DLLs\n" -msgstr "" -" --base_file Generér en basefil for\n" -" relokérbare DLL'er\n" - -#: emultempl/pe.em:318 -msgid " --dll Set image base to the default for DLLs\n" -msgstr "" -" --dll Sæt billedbase til standard for\n" -" DLL'er\n" - -#: emultempl/pe.em:319 -msgid " --file-alignment Set file alignment\n" -msgstr " --file-alignment Sæt filjustering\n" - -#: emultempl/pe.em:320 -msgid " --heap Set initial size of the heap\n" -msgstr " --heap Sæt initiel størrelse på bunken\n" - -#: emultempl/pe.em:321 -msgid " --image-base
Set start address of the executable\n" -msgstr " --image-base Sæt startadressen for den kørbare\n" - -#: emultempl/pe.em:322 -msgid " --major-image-version Set version number of the executable\n" -msgstr " --major-image-version Sæt versionsnummer for den kørbare\n" - -#: emultempl/pe.em:323 -msgid " --major-os-version Set minimum required OS version\n" -msgstr " --major-os-version Sæt laveste krævet OS-version\n" - -#: emultempl/pe.em:324 -msgid " --major-subsystem-version Set minimum required OS subsystem version\n" -msgstr "" -" --major-subsystem-version Sæt laveste nødvendige\n" -" OS-undersystemsversion\n" - -#: emultempl/pe.em:325 -msgid " --minor-image-version Set revision number of the executable\n" -msgstr "" -" --minor-image-version Sæt underrevisionsnummer for\n" -" den kørbare\n" - -#: emultempl/pe.em:326 -msgid " --minor-os-version Set minimum required OS revision\n" -msgstr " --minor-os-version Sæt laveste krævet OS-revision\n" - -#: emultempl/pe.em:327 -msgid " --minor-subsystem-version Set minimum required OS subsystem revision\n" -msgstr "" -" --minor-subsystem-version Sæt laveste nødvendige\n" -" OS-undersystemsrevision\n" - -#: emultempl/pe.em:328 -msgid " --section-alignment Set section alignment\n" -msgstr " --section-alignment Sæt sektionsjustering\n" - -#: emultempl/pe.em:329 -msgid " --stack Set size of the initial stack\n" -msgstr " --stack Sæt størrelse på initiel stak\n" - -#: emultempl/pe.em:330 -msgid " --subsystem [:] Set required OS subsystem [& version]\n" -msgstr "" -" --subsystem [:] Sæt nødvendigt OS-undersystem\n" -" [og krævet version]\n" - -#: emultempl/pe.em:331 -msgid " --support-old-code Support interworking with old code\n" -msgstr " --support-old-code Understøttelse samvirken med gammel kode\n" - -#: emultempl/pe.em:332 -msgid " --thumb-entry= Set the entry point to be Thumb \n" -msgstr "" -" --thumb-entry= Sæt indgangspunktet til at\n" -" være tommel \n" - -#: emultempl/pe.em:334 -msgid " --add-stdcall-alias Export symbols with and without @nn\n" -msgstr " --add-stdcall-alias Eksportér symboler med og uden @nn\n" - -#: emultempl/pe.em:335 -msgid " --disable-stdcall-fixup Don't link _sym to _sym@nn\n" -msgstr " --disable-stdcall-fixup Lænk ikke _sym til _sym@nn\n" - -#: emultempl/pe.em:336 -msgid " --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n" -msgstr " --enable-stdcall-fixup Lænk _sym til _sym@nn uden advarsler\n" - -#: emultempl/pe.em:337 -msgid " --exclude-symbols sym,sym,... Exclude symbols from automatic export\n" -msgstr "" -" --exclude-symbols sym,sym,... Udelad symboler fra automatisk\n" -" export\n" - -#: emultempl/pe.em:338 -msgid " --exclude-libs lib,lib,... Exclude libraries from automatic export\n" -msgstr "" -" --exclude-libs bibl,bibl,... Udelad bibliotek fra automatisk\n" -" export\n" - -#: emultempl/pe.em:339 -msgid " --export-all-symbols Automatically export all globals to DLL\n" -msgstr "" -" --export-all-symbols Eksportér automatisk alle symboler\n" -" til DLL\n" - -#: emultempl/pe.em:340 -msgid " --kill-at Remove @nn from exported symbols\n" -msgstr " --kill-at Fjern @nn fra eksporterede symboler\n" - -#: emultempl/pe.em:341 -msgid " --out-implib Generate import library\n" -msgstr " --out-implib Generér importbibliotek\n" - -#: emultempl/pe.em:342 -msgid " --output-def Generate a .DEF file for the built DLL\n" -msgstr " --output-def Generér en .DEF-fil for bygget DLL\n" - -#: emultempl/pe.em:343 -msgid " --warn-duplicate-exports Warn about duplicate exports.\n" -msgstr " --warn-duplicate-exports Advar om dublet-eksporter.\n" - -#: emultempl/pe.em:344 -msgid "" -" --compat-implib Create backward compatible import libs;\n" -" create __imp_ as well.\n" -msgstr "" -" --compat-implib Opret bagudkompatible importbiblioteker;\n" -" og opret også __imp_.\n" - -#: emultempl/pe.em:346 -msgid "" -" --enable-auto-image-base Automatically choose image base for DLLs\n" -" unless user specifies one\n" -msgstr "" -" --enable-auto-image-base Vælg automatisk billedbase for DLL'er\n" -" med mindre brugeren ikke angiver én\n" - -#: emultempl/pe.em:348 -msgid " --disable-auto-image-base Do not auto-choose image base. (default)\n" -msgstr "" -" --disable-auto-image-base Vælg ikke billedbase automatisk\n" -" (standard).\n" - -#: emultempl/pe.em:349 -msgid "" -" --dll-search-prefix= When linking dynamically to a dll without an\n" -" importlib, use .dll \n" -" in preference to lib.dll \n" -msgstr "" -" --dll-search-prefix= Brug .dll i stedet\n" -" for lib.dll ved dynamisk\n" -" lænkning uden et importbibliotek\n" - -#: emultempl/pe.em:352 -msgid "" -" --enable-auto-import Do sophistcated linking of _sym to \n" -" __imp_sym for DATA references\n" -msgstr "" -" --enable-auto-import Udfør sofistikeret lænkning af _sym til\n" -" __imp_sym for DATA-referencer\n" - -#: emultempl/pe.em:354 -msgid " --disable-auto-import Do not auto-import DATA items from DLLs\n" -msgstr "" -" --disable-auto-import Importér ikke DATA-objekter fra DLL'er\n" -" automatisk\n" - -#: emultempl/pe.em:355 -msgid "" -" --enable-extra-pe-debug Enable verbose debug output when building\n" -" or linking to DLLs (esp. auto-import)\n" -msgstr "" -" --enable-extra-pe-debug Brug udførlig fejlsøgningsuddata ved\n" -" bygning af eller lænkning til DLL'er\n" -" (især automatisk import)\n" - -#: emultempl/pe.em:424 -msgid "%P: warning: bad version number in -subsystem option\n" -msgstr "%P: advarsel: fejlagtigt nummer i flaget -subsystem\n" - -#: emultempl/pe.em:460 -msgid "%P%F: invalid subsystem type %s\n" -msgstr "%P%F: ugyldig type af undersystem %s\n" - -#: emultempl/pe.em:475 -msgid "%P%F: invalid hex number for PE parameter '%s'\n" -msgstr "%P%F: ugyldigt heksadecimalt tal for PE-parameteren \"%s\"\n" - -#: emultempl/pe.em:493 -msgid "%P%F: strange hex info for PE parameter '%s'\n" -msgstr "%P%F: mærkelig heksadecimal information for PE-parameteren \"%s\"\n" - -#: emultempl/pe.em:532 -#, c-format -msgid "%s: Can't open base file %s\n" -msgstr "%s: Kan ikke åbne basefilen %s\n" - -#: emultempl/pe.em:738 -msgid "%P: warning, file alignment > section alignment.\n" -msgstr "%P: advarsel, filjusteringen > sektionsjusteringen.\n" - -#: emultempl/pe.em:822 emultempl/pe.em:848 -#, c-format -msgid "Warning: resolving %s by linking to %s\n" -msgstr "Advarsel: løser %s ved at lænke til %s\n" - -#: emultempl/pe.em:827 emultempl/pe.em:853 -msgid "Use --enable-stdcall-fixup to disable these warnings\n" -msgstr "Brug --enable-stdcall-fixup til at deaktivere disse advarsler\n" - -#: emultempl/pe.em:828 emultempl/pe.em:854 -msgid "Use --disable-stdcall-fixup to disable these fixups\n" -msgstr "Brug --disable-stdcall-fixup til at deaktivere disse rettelser\n" - -#: emultempl/pe.em:879 -msgid "%C: Cannot get section contents - auto-import exception\n" -msgstr "%C: Kan ikke få fat i sektionsindhold - undtagen i automatisk import\n" - -#: emultempl/pe.em:887 -msgid "%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n" -msgstr "%C: variablen \"%T\" kan ikke importeres automatisk. Læs dokumentationen for ld's --enable-auto-import for detaljer.\n" - -#: emultempl/pe.em:916 -#, c-format -msgid "Info: resolving %s by linking to %s (auto-import)\n" -msgstr "Info: løser %s ved at lænke til %s (automatisk import)\n" - -#: emultempl/pe.em:997 -msgid "%F%P: PE operations on non PE file.\n" -msgstr "%F%P: PE-operationer på fil som ikke er PE.\n" - -#: emultempl/pe.em:1226 -#, c-format -msgid "Errors encountered processing file %s\n" -msgstr "Fejl opstod ved behandling af filen %s\n" - -#: emultempl/pe.em:1249 -#, c-format -msgid "Errors encountered processing file %s for interworking" -msgstr "Fejl opstod ved behandling af filen %s for interaktion" - -#: emultempl/pe.em:1305 ldlang.c:2065 ldlang.c:4608 ldlang.c:4641 -#: ldmain.c:1061 -msgid "%P%F: bfd_link_hash_lookup failed: %E\n" -msgstr "%P%F: bfd_link_hash_lookup mislykkedes: %E\n" - -#: ldcref.c:158 -msgid "%X%P: bfd_hash_table_init of cref table failed: %E\n" -msgstr "%X%P: bfd_hash_table_init af krydsreferencetabellen mislykkedes: %E\n" - -#: ldcref.c:164 -msgid "%X%P: cref_hash_lookup failed: %E\n" -msgstr "%X%P: cref_hash_lookup mislykkedes: %E\n" - -#: ldcref.c:235 -msgid "" -"\n" -"Cross Reference Table\n" -"\n" -msgstr "" -"\n" -"Krydsreferencetabel\n" -"\n" - -#: ldcref.c:236 -msgid "Symbol" -msgstr "Symbol" - -#: ldcref.c:244 -msgid "File\n" -msgstr "Fil\n" - -#: ldcref.c:248 -msgid "No symbols\n" -msgstr "Ingen symboler\n" - -#: ldcref.c:400 -msgid "%P: symbol `%T' missing from main hash table\n" -msgstr "%P: symbol \"%T\" mangler fra hastabellen\n" - -#: ldcref.c:465 -msgid "%B%F: could not read symbols; %E\n" -msgstr "%B%F: kunne ikke læse symboler; %E\n" - -#: ldcref.c:469 ldmain.c:1127 ldmain.c:1131 -msgid "%B%F: could not read symbols: %E\n" -msgstr "%B%F: kunne ikke læse symboler: %E\n" - -#: ldcref.c:537 ldcref.c:544 ldmain.c:1177 ldmain.c:1184 -msgid "%B%F: could not read relocs: %E\n" -msgstr "%B%F: kunne ikke læse relokeringer: %E\n" - -#. We found a reloc for the symbol. The symbol is defined -#. in OUTSECNAME. This reloc is from a section which is -#. mapped into a section from which references to OUTSECNAME -#. are prohibited. We must report an error. -#: ldcref.c:563 -msgid "%X%C: prohibited cross reference from %s to `%T' in %s\n" -msgstr "%X%C: forbudt krydsreference fra %s til \"%T\" i %s\n" - -#: ldctor.c:88 -msgid "%P%X: Different relocs used in set %s\n" -msgstr "%P%X: Forskellige relokeringer brugt i gruppen %s\n" - -#: ldctor.c:106 -msgid "%P%X: Different object file formats composing set %s\n" -msgstr "%P%X: Forskellige objektfilformater udgør gruppen %s\n" - -#: ldctor.c:288 ldctor.c:302 -msgid "%P%X: %s does not support reloc %s for set %s\n" -msgstr "%P%X: %s understøtter ikke relokeringen %s for gruppen %s\n" - -#: ldctor.c:323 -msgid "%P%X: Unsupported size %d for set %s\n" -msgstr "%P%X: Størrelsen %d for gruppen %s understøttes ikke\n" - -#: ldctor.c:344 -msgid "" -"\n" -"Set Symbol\n" -"\n" -msgstr "" -"\n" -"Gruppe Symbol\n" -"\n" - -#: ldemul.c:225 -msgid "%S SYSLIB ignored\n" -msgstr "%S SYSLIB ignoreredes\n" - -#: ldemul.c:232 -msgid "%S HLL ignored\n" -msgstr "%S HLL ignoreredes\n" - -#: ldemul.c:253 -msgid "%P: unrecognised emulation mode: %s\n" -msgstr "%P: ukendt emuleringstilstand: %s\n" - -#: ldemul.c:254 -msgid "Supported emulations: " -msgstr "Emuleringer som understøttes: " - -#: ldemul.c:298 -msgid " no emulation specific options.\n" -msgstr " ingen emuleringsspecifikke flag.\n" - -#: ldexp.c:174 -msgid "%F%P: %s uses undefined section %s\n" -msgstr "%F%P: %s bruger udefineret sektion %s\n" - -#: ldexp.c:176 -msgid "%F%P: %s forward reference of section %s\n" -msgstr "%F%P: %s fremadreference af sektionen %s\n" - -#: ldexp.c:304 -msgid "%F%S %% by zero\n" -msgstr "%F%S %% med nul\n" - -#: ldexp.c:311 -msgid "%F%S / by zero\n" -msgstr "%F%S / med nul\n" - -#: ldexp.c:463 -msgid "%X%S: unresolvable symbol `%s' referenced in expression\n" -msgstr "%X%S: uløseligt symbol \"%s\" refereredes i udtrykket\n" - -#: ldexp.c:483 -msgid "%F%S: undefined symbol `%s' referenced in expression\n" -msgstr "%F%S: udefinerede symbol \"%s\" refereredes i udtrykket\n" - -#: ldexp.c:685 -msgid "%F%S can not PROVIDE assignment to location counter\n" -msgstr "%F%S kan ikke LEVERE tildeling til pladsregnere\n" - -#: ldexp.c:695 -msgid "%F%S invalid assignment to location counter\n" -msgstr "%F%S ugyldig tildeling til pladsregnere\n" - -#: ldexp.c:699 -msgid "%F%S assignment to location counter invalid outside of SECTION\n" -msgstr "%F%S tildeling til pladsregnere som er ugyldig uden for SEKTION\n" - -#: ldexp.c:708 -msgid "%F%S cannot move location counter backwards (from %V to %V)\n" -msgstr "%F%S kan ikke flytte pladsregnere bagud (fra %V til %V)\n" - -#: ldexp.c:735 -msgid "%P%F:%s: hash creation failed\n" -msgstr "%P%F:%s: oprettelse af hash mislykkedes\n" - -#: ldexp.c:1037 ldexp.c:1071 -msgid "%F%S nonconstant expression for %s\n" -msgstr "%F%S ikke-konstant udtryk for %s\n" - -#: ldexp.c:1126 -msgid "%F%S non constant expression for %s\n" -msgstr "%F%S ikke-konstant udtryk for %s\n" - -#: ldfile.c:105 -#, c-format -msgid "attempt to open %s failed\n" -msgstr "forsøg på at åbne %s mislykkedes\n" - -#: ldfile.c:107 -#, c-format -msgid "attempt to open %s succeeded\n" -msgstr "forsøg på at åbne %s lykkedes\n" - -#: ldfile.c:113 -msgid "%F%P: invalid BFD target `%s'\n" -msgstr "%F%P: ugyldigt BFD-mål \"%s\"\n" - -#: ldfile.c:142 -msgid "%P: skipping incompatible %s when searching for %s\n" -msgstr "%P: hopper over inkompatibel %s ved søgning af %s\n" - -#: ldfile.c:234 -msgid "%F%P: cannot open %s for %s: %E\n" -msgstr "%F%P: kan ikke åbne %s for %s: %E\n" - -#: ldfile.c:237 -msgid "%F%P: cannot open %s: %E\n" -msgstr "%F%P: kan ikke åbne %s: %E\n" - -#: ldfile.c:267 -msgid "%F%P: cannot find %s\n" -msgstr "%F%P: kan ikke finde %s\n" - -#: ldfile.c:286 ldfile.c:302 -#, c-format -msgid "cannot find script file %s\n" -msgstr "kan ikke finde skriptfilen %s\n" - -#: ldfile.c:288 ldfile.c:304 -#, c-format -msgid "opened script file %s\n" -msgstr "åbnede skriptfilen %s\n" - -#: ldfile.c:353 -msgid "%P%F: cannot open linker script file %s: %E\n" -msgstr "%P%F: kan ikke åbne lænkerskriptfilen %s: %E\n" - -#: ldfile.c:391 -msgid "%P%F: unknown architecture: %s\n" -msgstr "%P%F: ukendt arkitektur: %s\n" - -#: ldfile.c:407 -msgid "%P%F: target architecture respecified\n" -msgstr "%P%F: målarkitekturen specificeredes igen\n" - -#: ldfile.c:461 -msgid "%P%F: cannot represent machine `%s'\n" -msgstr "%P%F: kan ikke repræsentere maskinen \"%s\"\n" - -#: ldlang.c:784 -msgid "" -"\n" -"Memory Configuration\n" -"\n" -msgstr "" -"\n" -"Hukommelseskonfiguration\n" -"\n" - -#: ldlang.c:786 -msgid "Name" -msgstr "Navn" - -#: ldlang.c:786 -msgid "Origin" -msgstr "Begyndelse" - -#: ldlang.c:786 -msgid "Length" -msgstr "Længde" - -#: ldlang.c:786 -msgid "Attributes" -msgstr "Attributter" - -#: ldlang.c:828 -msgid "" -"\n" -"Linker script and memory map\n" -"\n" -msgstr "" -"\n" -"Lænkerskript og hukommelsestabel\n" -"\n" - -#: ldlang.c:845 -msgid "%P%F: Illegal use of `%s' section\n" -msgstr "%P%F: Ikke tilladt brug af sektionen \"%s\"\n" - -#: ldlang.c:855 -msgid "%P%F: output format %s cannot represent section called %s\n" -msgstr "%P%F: uddataformatet %s kan ikke repræsentere sektionen kaldet %s\n" - -#: ldlang.c:1016 -msgid "%P: %B: warning: ignoring duplicate section `%s'\n" -msgstr "%P: %B: advarsel: ignorerer dublet-sektion \"%s\"\n" - -#: ldlang.c:1019 -msgid "%P: %B: warning: ignoring duplicate `%s' section symbol `%s'\n" -msgstr "%P: %B: advarsel: ignorerer dobbelt \"%s\"-sektionssymbol \"%s\"\n" - -#: ldlang.c:1033 -msgid "%P: %B: warning: duplicate section `%s' has different size\n" -msgstr "%P: %B: advarsel: dublet-sektion \"%s\" har anden størrelse\n" - -#: ldlang.c:1084 -msgid "%P%F: Failed to create hash table\n" -msgstr "%P%F: Mislykkedes med at oprette hashtabel\n" - -#: ldlang.c:1503 -msgid "%B: file not recognized: %E\n" -msgstr "%B: filen ikke genkendt: %E\n" - -#: ldlang.c:1504 -msgid "%B: matching formats:" -msgstr "%B: matchende format:" - -#: ldlang.c:1511 -msgid "%F%B: file not recognized: %E\n" -msgstr "%F%B: filen ikke genkendt: %E\n" - -#: ldlang.c:1567 -msgid "%F%B: member %B in archive is not an object\n" -msgstr "%F%B: medlem %B i arkivet er ikke et objekt\n" - -#: ldlang.c:1578 ldlang.c:1592 -msgid "%F%B: could not read symbols: %E\n" -msgstr "%F%B: kunne ikke læse symboler: %E\n" - -#: ldlang.c:1853 -msgid "%P: warning: could not find any targets that match endianness requirement\n" -msgstr "%P: advarsel: kunne ikke finde nogen mål som matcher kravet på endianess\n" - -#: ldlang.c:1866 -msgid "%P%F: target %s not found\n" -msgstr "%P%F: målet %s fandtes ikke\n" - -#: ldlang.c:1868 -msgid "%P%F: cannot open output file %s: %E\n" -msgstr "%P%F: kan ikke åbne uddatafilen %s: %E\n" - -#: ldlang.c:1878 -msgid "%P%F:%s: can not make object file: %E\n" -msgstr "%P%F:%s: kan ikke oprette objektfilen: %E\n" - -#: ldlang.c:1882 -msgid "%P%F:%s: can not set architecture: %E\n" -msgstr "%P%F:%s: kan ikke sætte arkitektur: %E\n" - -#: ldlang.c:1886 -msgid "%P%F: can not create link hash table: %E\n" -msgstr "%P%F: kan ikke oprette hashtabel over lænker: %E\n" - -#: ldlang.c:2235 -msgid " load address 0x%V" -msgstr " indlæsningsadresse 0x%V" - -#: ldlang.c:2375 -msgid "%W (size before relaxing)\n" -msgstr "%W (størrelse inden forenkling)\n" - -#: ldlang.c:2462 -#, c-format -msgid "Address of section %s set to " -msgstr "Adressen på sektionen %s sat til " - -#: ldlang.c:2623 -#, c-format -msgid "Fail with %d\n" -msgstr "Mislykkes med %d\n" - -#: ldlang.c:2868 -msgid "%X%P: section %s [%V -> %V] overlaps section %s [%V -> %V]\n" -msgstr "%X%P: sektionen %s [%V -> %V] overlapper med sektionen %s [%V -> %V]\n" - -#: ldlang.c:2897 -msgid "%X%P: address 0x%v of %B section %s is not within region %s\n" -msgstr "%X%P: adressen 0x%v i %B-sektionen %s er ikke inden for området %s\n" - -#: ldlang.c:2905 -msgid "%X%P: region %s is full (%B section %s)\n" -msgstr "%X%P: området %s er fuldt (%B-sektion %s)\n" - -#: ldlang.c:2955 -msgid "%P%X: Internal error on COFF shared library section %s\n" -msgstr "%P%X: Intern fejl i delt COFF-bibliotek sektion %s\n" - -#: ldlang.c:2999 -msgid "%P: warning: no memory region specified for section `%s'\n" -msgstr "%P: advarsel: intet hukommelsesområde angivet for sektionen \"%s\"\n" - -#: ldlang.c:3014 -msgid "%P: warning: changing start of section %s by %u bytes\n" -msgstr "%P: advarsel: ændrer start på sektionen %s med %u byte\n" - -#: ldlang.c:3028 -msgid "%F%S: non constant address expression for section %s\n" -msgstr "%F%S: ikke-konstant adresseudtryk for sektionen %s\n" - -#: ldlang.c:3203 -msgid "%P%F: can't relax section: %E\n" -msgstr "%P%F: kan ikke forenkle sektion: %E\n" - -#: ldlang.c:3398 -msgid "%F%P: invalid data statement\n" -msgstr "%F%P: ugyldig datasætning\n" - -#: ldlang.c:3435 -msgid "%F%P: invalid reloc statement\n" -msgstr "%F%P: ugyldig relokeringssætning\n" - -#: ldlang.c:3574 -msgid "%P%F:%s: can't set start address\n" -msgstr "%P%F:%s: kan ikke sætte startadresse\n" - -#: ldlang.c:3587 ldlang.c:3605 -msgid "%P%F: can't set start address\n" -msgstr "%P%F: kan ikke sætte startadresse\n" - -#: ldlang.c:3599 -msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n" -msgstr "%P: advarsel: kan ikke finde indgangssymbol %s; bruger som standard %V\n" - -#: ldlang.c:3610 -msgid "%P: warning: cannot find entry symbol %s; not setting start address\n" -msgstr "%P: advarsel: kan ikke finde indgangssymbol %s; sætter ikke startadresse\n" - -#: ldlang.c:3660 -msgid "%P%F: Relocatable linking with relocations from format %s (%B) to format %s (%B) is not supported\n" -msgstr "%P%F: Relokérbar lænkning med omlænkninger fra formatet %s (%B) til formatet %s (%B) understøttes ikke\n" - -#: ldlang.c:3669 -msgid "%P: warning: %s architecture of input file `%B' is incompatible with %s output\n" -msgstr "%P: advarsel: %s-arkitekturen i inddatafilen \"%B\" er inkompatibel med %s-uddata\n" - -#: ldlang.c:3690 -msgid "%E%X: failed to merge target specific data of file %B\n" -msgstr "%E%X: mislykkedes at sammenslå målspecifik data i filen %B\n" - -#: ldlang.c:3779 -msgid "" -"\n" -"Allocating common symbols\n" -msgstr "" -"\n" -"Allokerer fælles symboler\n" - -#: ldlang.c:3780 -msgid "" -"Common symbol size file\n" -"\n" -msgstr "" -"Fælles symbol størrelse fil\n" -"\n" - -#. This message happens when using the -#. svr3.ifile linker script, so I have -#. disabled it. -#: ldlang.c:3858 -msgid "%P: no [COMMON] command, defaulting to .bss\n" -msgstr "%P: ingen [COMMON]-kommando, bruger standardalternativet .bss\n" - -#: ldlang.c:3917 -msgid "%P%F: invalid syntax in flags\n" -msgstr "%P%F: ugyldig syntaks i flag\n" - -#: ldlang.c:4532 -msgid "%P%Fmultiple STARTUP files\n" -msgstr "%P%Fflere samtidige STARTUP-filer\n" - -#: ldlang.c:4575 -msgid "%X%P:%S: section has both a load address and a load region\n" -msgstr "%X%P:%S: sektionen har både en indlæsningsadresse og et hukommelsesindlæsningsområde\n" - -#: ldlang.c:4825 -msgid "%F%P: bfd_record_phdr failed: %E\n" -msgstr "%F%P: bfd_record_phdr mislykkedes: %E\n" - -#: ldlang.c:4844 -msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n" -msgstr "%X%P: sektionen \"%s\" er tildelt til ikke-eksisterende phvd \"%s\"\n" - -#: ldlang.c:5143 -msgid "%X%P: unknown language `%s' in version information\n" -msgstr "%X%P: ukendt sprog i \"%s\" i versionsinformation\n" - -#: ldlang.c:5195 -msgid "%X%P: anonymous version tag cannot be combined with other version tags\n" -msgstr "%X%P: anonym versionsmærke kan ikke kombineres med andre versionsmærker\n" - -#: ldlang.c:5202 -msgid "%X%P: duplicate version tag `%s'\n" -msgstr "%X%P: dobbelt versionsmærke \"%s\"\n" - -#: ldlang.c:5215 ldlang.c:5228 -msgid "%X%P: duplicate expression `%s' in version information\n" -msgstr "%X%P: dobbelt udtryk \"%s\" i versionsinformation\n" - -#: ldlang.c:5270 -msgid "%X%P: unable to find version dependency `%s'\n" -msgstr "%X%P: kan ikke finde versionsafhængighed \"%s\"\n" - -#: ldlang.c:5292 -msgid "%X%P: unable to read .exports section contents\n" -msgstr "%X%P: kan ikke læse indeholdet i .exports-sektionen\n" - -#: ldmain.c:198 -msgid "%X%P: can't set BFD default target to `%s': %E\n" -msgstr "%X%P: kan ikke sætte BSD-standardmålet til \"%s\": %E\n" - -#: ldmain.c:290 -msgid "%P%F: -r and --mpc860c0 may not be used together\n" -msgstr "%P%F: -r og --mpc860c0 kan ikke bruges sammen\n" - -#: ldmain.c:292 -msgid "%P%F: --relax and -r may not be used together\n" -msgstr "%P%F: --relax og -r kan ikke bruges sammen\n" - -#: ldmain.c:294 -msgid "%P%F: -r and -shared may not be used together\n" -msgstr "%P%F: -r og -shared kan ikke bruges sammen\n" - -#: ldmain.c:300 -msgid "%P%F: -F may not be used without -shared\n" -msgstr "%P%F: -F kan ikke bruges uden -shared\n" - -#: ldmain.c:302 -msgid "%P%F: -f may not be used without -shared\n" -msgstr "%P%F: -f kan ikke bruges uden -shared\n" - -#: ldmain.c:341 -msgid "using external linker script:" -msgstr "bruger eksternt lænkerskript:" - -#: ldmain.c:343 -msgid "using internal linker script:" -msgstr "bruger internt lænkerskript:" - -#: ldmain.c:377 -msgid "%P%F: no input files\n" -msgstr "%P%F: ingen inddatafiler\n" - -#: ldmain.c:382 -msgid "%P: mode %s\n" -msgstr "%P: tilstand %s\n" - -#: ldmain.c:399 -msgid "%P%F: cannot open map file %s: %E\n" -msgstr "%P%F: kan ikke åbne tabelfil %s: %E\n" - -#: ldmain.c:432 -msgid "%P: link errors found, deleting executable `%s'\n" -msgstr "%P: lænkefejl fandtes, fjerner den kørbare fil \"%s\"\n" - -#: ldmain.c:443 -msgid "%F%B: final close failed: %E\n" -msgstr "%F%B: afsluttende lukning mislykkedes: %E\n" - -#: ldmain.c:467 -msgid "%X%P: unable to open for source of copy `%s'\n" -msgstr "%X%P: kan ikke åbne for kildekoden til kopien \"%s\"\n" - -#: ldmain.c:469 -msgid "%X%P: unable to open for destination of copy `%s'\n" -msgstr "%X%P: kan ikke åbne for mål af kopien \"%s\"\n" - -#: ldmain.c:475 -msgid "%P: Error writing file `%s'\n" -msgstr "%P: Fejl ved skrivning af filen \"%s\"\n" - -#: ldmain.c:481 pe-dll.c:1463 -#, c-format -msgid "%P: Error closing file `%s'\n" -msgstr "%P: Fejl ved lukning af filen \"%s\"\n" - -#: ldmain.c:498 -#, c-format -msgid "%s: total time in link: %ld.%06ld\n" -msgstr "%s: total tid i lænkning: %ld.%06ld\n" - -#: ldmain.c:501 -#, c-format -msgid "%s: data size %ld\n" -msgstr "%s: datastørrelse %ld\n" - -#: ldmain.c:542 -msgid "%P%F: missing argument to -m\n" -msgstr "%P%F: argument mangler til -m\n" - -#: ldmain.c:670 ldmain.c:691 ldmain.c:722 -msgid "%P%F: bfd_hash_table_init failed: %E\n" -msgstr "%P%F: bfd_hash_table_init mislykkedes: %E\n" - -#: ldmain.c:675 ldmain.c:694 -msgid "%P%F: bfd_hash_lookup failed: %E\n" -msgstr "%P%F: bfd_hash_lookup mislykkedes: %E\n" - -#: ldmain.c:709 -msgid "%X%P: error: duplicate retain-symbols-file\n" -msgstr "%X%P: fejl: dobbelt retain-symbols-file\n" - -#: ldmain.c:753 -msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n" -msgstr "%P%F: bfd_hash_lookup for indgang mislykkedes: %E\n" - -#: ldmain.c:758 -msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n" -msgstr "%P: \"-retain-symbols-file\" tilsidesætter \"-s\" og \"-S\"\n" - -#: ldmain.c:834 -msgid "" -"Archive member included because of file (symbol)\n" -"\n" -msgstr "" -"Arkivmedlem inkluderet på grund af fil (symbol)\n" -"\n" - -#: ldmain.c:905 -msgid "%X%C: multiple definition of `%T'\n" -msgstr "%X%C: flere definitioner af \"%T\"\n" - -#: ldmain.c:908 -msgid "%D: first defined here\n" -msgstr "%D: først defineret hér\n" - -#: ldmain.c:912 -msgid "%P: Disabling relaxation: it will not work with multiple definitions\n" -msgstr "%P: Deaktiverer forenkling: det vil ikke fungere med flere definitioner\n" - -#: ldmain.c:943 -msgid "%B: warning: definition of `%T' overriding common\n" -msgstr "%B: advarsel: definitioner af \"%T\" tilsidesætter fælles\n" - -#: ldmain.c:946 -msgid "%B: warning: common is here\n" -msgstr "%B: advarsel: fælles er hér\n" - -#: ldmain.c:953 -msgid "%B: warning: common of `%T' overridden by definition\n" -msgstr "%B: advarsel: fælles i \"%T\" tilsidesattes af definition\n" - -#: ldmain.c:956 -msgid "%B: warning: defined here\n" -msgstr "%B: advarsel: defineret hér\n" - -#: ldmain.c:963 -msgid "%B: warning: common of `%T' overridden by larger common\n" -msgstr "%B: advarsel: fælles i \"%T\" tilsidesattes af større fælles\n" - -#: ldmain.c:966 -msgid "%B: warning: larger common is here\n" -msgstr "%B: advarsel: større fælles er hér\n" - -#: ldmain.c:970 -msgid "%B: warning: common of `%T' overriding smaller common\n" -msgstr "%B: advarsel: fælles i \"%T\" tilsidesætter mindre fælles\n" - -#: ldmain.c:973 -msgid "%B: warning: smaller common is here\n" -msgstr "%B: advarsel: mindre fælles er hér\n" - -#: ldmain.c:977 -msgid "%B: warning: multiple common of `%T'\n" -msgstr "%B: advarsel: flere fælles i \"%T\"\n" - -#: ldmain.c:979 -msgid "%B: warning: previous common is here\n" -msgstr "%B: advarsel: foregående fælles er hér\n" - -#: ldmain.c:1000 ldmain.c:1039 -msgid "%P: warning: global constructor %s used\n" -msgstr "%P: advarsel: global konstruktor %s bruges\n" - -#: ldmain.c:1049 -msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n" -msgstr "%P%F: Fejl i BFD-bagende: BFD_RELOC_CTOR understøttes ikke\n" - -#: ldmain.c:1233 -msgid "%F%P: bfd_hash_table_init failed: %E\n" -msgstr "%F%P: bfd_hash_table_init mislykkedes: %E\n" - -#: ldmain.c:1240 -msgid "%F%P: bfd_hash_lookup failed: %E\n" -msgstr "%F%P: bfd_hash_lookup mislykkedes: %E\n" - -#: ldmain.c:1260 -msgid "%C: undefined reference to `%T'\n" -msgstr "%C: udefineret reference til \"%T\"\n" - -#: ldmain.c:1266 -msgid "%D: more undefined references to `%T' follow\n" -msgstr "%D: flere udefinerede referencer til \"%T\" følger\n" - -#: ldmain.c:1273 -msgid "%B: undefined reference to `%T'\n" -msgstr "%B: udefineret reference til \"%T\"\n" - -#: ldmain.c:1279 -msgid "%B: more undefined references to `%T' follow\n" -msgstr "%B: flere udefinerede referencer til \"%T\" følger\n" - -#: ldmain.c:1299 ldmain.c:1320 ldmain.c:1339 -msgid "%P%X: generated" -msgstr "%P%X: genereret" - -#: ldmain.c:1302 -msgid " relocation truncated to fit: %s %T" -msgstr " relokering trunkeret til at passe til: %s %T" - -#: ldmain.c:1323 -#, c-format -msgid "dangerous relocation: %s\n" -msgstr "farlig relokering: %s\n" - -#: ldmain.c:1342 -msgid " reloc refers to symbol `%T' which is not being output\n" -msgstr " relokering refererer til symbol \"%T\" som ikke skrives ud\n" - -#: ldmisc.c:157 -msgid "no symbol" -msgstr "intet symbol" - -#: ldmisc.c:221 -#, c-format -msgid "built in linker script:%u" -msgstr "indbygget lænkerskript:%u" - -#: ldmisc.c:271 ldmisc.c:275 -msgid "%B%F: could not read symbols\n" -msgstr "%B%F: kunne ikke læse symboler\n" - -#. We use abfd->filename in this initial line, -#. in case filename is a .h file or something -#. similarly unhelpful. -#: ldmisc.c:311 -msgid "%B: In function `%T':\n" -msgstr "%B: I funktionen \"%T\":\n" - -#: ldmisc.c:463 -msgid "%F%P: internal error %s %d\n" -msgstr "%F%P: intern fejl %s %d\n" - -#: ldmisc.c:513 -msgid "%P: internal error: aborting at %s line %d in %s\n" -msgstr "%P: intern fejl: afbryder ved %s linje %d i %s\n" - -#: ldmisc.c:516 -msgid "%P: internal error: aborting at %s line %d\n" -msgstr "%P: intern fejl: afbryder ved %s linje %d\n" - -#: ldmisc.c:518 -msgid "%P%F: please report this bug\n" -msgstr "%P%F: rapportér denne fejl\n" - -#. Output for noisy == 2 is intended to follow the GNU standards. -#: ldver.c:38 -#, c-format -msgid "GNU ld version %s\n" -msgstr "GNU ld version %s\n" - -#: ldver.c:42 -msgid "Copyright 2002 Free Software Foundation, Inc.\n" -msgstr "Copyright 2002 Free Software Foundation, Inc.\n" - -#: ldver.c:43 -msgid "" -"This program is free software; you may redistribute it under the terms of\n" -"the GNU General Public License. This program has absolutely no warranty.\n" -msgstr "" -"Dette program er frit programmel. Du kan videredistribuere det under\n" -"betingelserne i GNU General Public License. Dette program har ingen som\n" -"helst garanti.\n" - -#: ldver.c:52 -msgid " Supported emulations:\n" -msgstr " Emuleringer som understøttes:\n" - -#: ldwrite.c:59 ldwrite.c:195 -msgid "%P%F: bfd_new_link_order failed\n" -msgstr "%P%F: bfd_new_link_order mislykkedes\n" - -#: ldwrite.c:325 -msgid "%F%P: clone section failed: %E\n" -msgstr "%F%P: klonsektion mislykkedes: %E\n" - -#: ldwrite.c:364 -#, c-format -msgid "%8x something else\n" -msgstr "%8x noget andet\n" - -#: ldwrite.c:547 -msgid "%F%P: final link failed: %E\n" -msgstr "%F%P: afsluttende lænkning mislykkedes: %E\n" - -#: lexsup.c:172 lexsup.c:267 -msgid "KEYWORD" -msgstr "NØGLEORD" - -#: lexsup.c:172 -msgid "Shared library control for HP/UX compatibility" -msgstr "Styrelse af delte biblioteker for kompatibilitet med HP/UX" - -#: lexsup.c:175 -msgid "ARCH" -msgstr "ARK" - -#: lexsup.c:175 -msgid "Set architecture" -msgstr "Sæt arkitektur" - -#: lexsup.c:177 lexsup.c:336 -msgid "TARGET" -msgstr "MÅL" - -#: lexsup.c:177 -msgid "Specify target for following input files" -msgstr "Angiv mål for følgende inddatafiler" - -#: lexsup.c:179 lexsup.c:220 lexsup.c:232 lexsup.c:241 lexsup.c:312 -#: lexsup.c:343 lexsup.c:383 -msgid "FILE" -msgstr "FIL" - -#: lexsup.c:179 -msgid "Read MRI format linker script" -msgstr "Læs lænkerskript i MRI-format" - -#: lexsup.c:181 -msgid "Force common symbols to be defined" -msgstr "Tving fælles symboler til at være definerede" - -#: lexsup.c:185 lexsup.c:373 lexsup.c:375 lexsup.c:377 -msgid "ADDRESS" -msgstr "ADRESSE" - -#: lexsup.c:185 -msgid "Set start address" -msgstr "Sæt startadresse" - -#: lexsup.c:187 -msgid "Export all dynamic symbols" -msgstr "Eksportér alle dynamiske symboler" - -#: lexsup.c:189 -msgid "Link big-endian objects" -msgstr "Lænk objekt som er big-endian" - -#: lexsup.c:191 -msgid "Link little-endian objects" -msgstr "Lænk objekt som er little-endian" - -#: lexsup.c:193 lexsup.c:196 -msgid "SHLIB" -msgstr "DELBIBL" - -#: lexsup.c:193 -msgid "Auxiliary filter for shared object symbol table" -msgstr "Ydre filter for symboltabel over delte objekter" - -#: lexsup.c:196 -msgid "Filter for shared object symbol table" -msgstr "Filter for symboltabel over delte objekter" - -#: lexsup.c:198 -msgid "Ignored" -msgstr "Ignoreret" - -#: lexsup.c:200 -msgid "SIZE" -msgstr "STØRRELSE" - -#: lexsup.c:200 -msgid "Small data size (if no size, same as --shared)" -msgstr "Lille datastørrelse (hvis ingen størrelse, samme som --shared)" - -#: lexsup.c:203 -msgid "FILENAME" -msgstr "FILNAVN" - -#: lexsup.c:203 -msgid "Set internal name of shared library" -msgstr "Sæt internt navn på delt bibliotek" - -#: lexsup.c:205 -msgid "PROGRAM" -msgstr "PROGRAM" - -#: lexsup.c:205 -msgid "Set PROGRAM as the dynamic linker to use" -msgstr "Sæt PROGRAM som den dynamiske lænker der bruges" - -#: lexsup.c:207 -msgid "LIBNAME" -msgstr "BIBLNAVN" - -#: lexsup.c:207 -msgid "Search for library LIBNAME" -msgstr "Søg efter biblioteket BIBLNAVN" - -#: lexsup.c:209 -msgid "DIRECTORY" -msgstr "KATALOG" - -#: lexsup.c:209 -msgid "Add DIRECTORY to library search path" -msgstr "Tilføj KATALOG til bibliotekssøgestien" - -#: lexsup.c:211 -msgid "EMULATION" -msgstr "EMULERING" - -#: lexsup.c:211 -msgid "Set emulation" -msgstr "Sæt emulering" - -#: lexsup.c:213 -msgid "Print map file on standard output" -msgstr "Vis tabelfil på standard ud" - -#: lexsup.c:215 -msgid "Do not page align data" -msgstr "Justér ikke data efter lige sider" - -#: lexsup.c:217 -msgid "Do not page align data, do not make text readonly" -msgstr "Justér ikke data efter lige sider, gør ikke teksten kun læsbar" - -#: lexsup.c:220 -msgid "Set output file name" -msgstr "Sæt uddatafilnavnet" - -#: lexsup.c:222 -msgid "Optimize output file" -msgstr "Optimér uddatafil" - -#: lexsup.c:224 -msgid "Ignored for SVR4 compatibility" -msgstr "Ignoreret for kompatibilitet med SVR4" - -#: lexsup.c:228 -msgid "Generate relocateable output" -msgstr "Generér relokérbar uddata" - -#: lexsup.c:232 -msgid "Just link symbols (if directory, same as --rpath)" -msgstr "Lænk kun symboler (hvis katalog, samme som --rpath)" - -#: lexsup.c:235 -msgid "Strip all symbols" -msgstr "Fjern alle symboler" - -#: lexsup.c:237 -msgid "Strip debugging symbols" -msgstr "Fjern fejlsøgningssymboler" - -#: lexsup.c:239 -msgid "Trace file opens" -msgstr "Udskriv filåbninger" - -#: lexsup.c:241 -msgid "Read linker script" -msgstr "Læs lænkerskript" - -#: lexsup.c:243 lexsup.c:259 lexsup.c:298 lexsup.c:310 lexsup.c:367 -#: lexsup.c:386 lexsup.c:406 -msgid "SYMBOL" -msgstr "SYMBOL" - -#: lexsup.c:243 -msgid "Start with undefined reference to SYMBOL" -msgstr "Begynd med udefineret reference til SYMBOL" - -#: lexsup.c:245 -msgid "[=SECTION]" -msgstr "[=SEKTION]" - -#: lexsup.c:245 -msgid "Don't merge input [SECTION | orphan] sections" -msgstr "Flet ikke [SEKTION | forælderløse] sektioner" - -#: lexsup.c:247 -msgid "Build global constructor/destructor tables" -msgstr "Byg globale konstruktors-/destruktorstabeller" - -#: lexsup.c:249 -msgid "Print version information" -msgstr "Vis versionsinformation" - -#: lexsup.c:251 -msgid "Print version and emulation information" -msgstr "Vis versions- og emuleringsinformation" - -#: lexsup.c:253 -msgid "Discard all local symbols" -msgstr "Smid alle lokale symboler væk" - -#: lexsup.c:255 -msgid "Discard temporary local symbols (default)" -msgstr "Smid temporære lokale symboler væk (standard)" - -#: lexsup.c:257 -msgid "Don't discard any local symbols" -msgstr "Smid ikke nogen lokale symboler væk" - -#: lexsup.c:259 -msgid "Trace mentions of SYMBOL" -msgstr "Udskriv omtale af SYMBOL" - -#: lexsup.c:261 lexsup.c:345 lexsup.c:347 -msgid "PATH" -msgstr "SØGESTI" - -#: lexsup.c:261 -msgid "Default search path for Solaris compatibility" -msgstr "Standardsøgesti for Solaris-kompatibilitet" - -#: lexsup.c:263 -msgid "Start a group" -msgstr "Start en gruppe" - -#: lexsup.c:265 -msgid "End a group" -msgstr "Slut en gruppe" - -#: lexsup.c:267 -msgid "Ignored for SunOS compatibility" -msgstr "Ignoreret for SunOS-kompatibilitet" - -#: lexsup.c:269 -msgid "Link against shared libraries" -msgstr "Lænk mod delte biblioteker" - -#: lexsup.c:275 -msgid "Do not link against shared libraries" -msgstr "Lænk ikke mod delte biblioteker" - -#: lexsup.c:283 -msgid "Bind global references locally" -msgstr "Bind globale referencer lokalt" - -#: lexsup.c:285 -msgid "Check section addresses for overlaps (default)" -msgstr "Kontrollér sektionsadresser for overlapninger (standard)" - -#: lexsup.c:287 -msgid "Do not check section addresses for overlaps" -msgstr "Kontrollér ikke sektionsadresser for overlapninger" - -#: lexsup.c:290 -msgid "Output cross reference table" -msgstr "Opret krydsreferencetabel" - -#: lexsup.c:292 -msgid "SYMBOL=EXPRESSION" -msgstr "SYMBOL=UDTRYK" - -#: lexsup.c:292 -msgid "Define a symbol" -msgstr "Definér en symbol" - -#: lexsup.c:294 -msgid "[=STYLE]" -msgstr "[=STIL]" - -#: lexsup.c:294 -msgid "Demangle symbol names [using STYLE]" -msgstr "Afkod symbolnavn [brug STIL]" - -#: lexsup.c:296 -msgid "Generate embedded relocs" -msgstr "Generér indlejrede relokeringer" - -#: lexsup.c:298 -msgid "Call SYMBOL at unload-time" -msgstr "Kald SYMBOL ved udlæsning" - -#: lexsup.c:300 -msgid "Force generation of file with .exe suffix" -msgstr "Tving generering af fil med endelsen .exe" - -#: lexsup.c:302 -msgid "Remove unused sections (on some targets)" -msgstr "Fjern ubrugte sektioner (på visse mål)" - -#: lexsup.c:305 -msgid "Don't remove unused sections (default)" -msgstr "Fjern ikke ubrugte sektioner (standard)" - -#: lexsup.c:308 -msgid "Print option help" -msgstr "Vis hjælp om flag" - -#: lexsup.c:310 -msgid "Call SYMBOL at load-time" -msgstr "Kald SYMBOL ved indlæsning" - -#: lexsup.c:312 -msgid "Write a map file" -msgstr "Skriv en tabelfil" - -#: lexsup.c:314 -msgid "Do not define Common storage" -msgstr "Definér ikke fælles lagring" - -#: lexsup.c:316 -msgid "Do not demangle symbol names" -msgstr "Afkod ikke symbolnavne" - -#: lexsup.c:318 -msgid "Use less memory and more disk I/O" -msgstr "Brug mindre hukommelse og mere disk-I/O" - -#: lexsup.c:320 -msgid "Allow no undefined symbols" -msgstr "Tillad ingen udefinerede symboler" - -#: lexsup.c:322 -msgid "Allow undefined symbols in shared objects" -msgstr "Tillad udefinerede symboler i delte objekter" - -#: lexsup.c:324 -msgid "Allow multiple definitions" -msgstr "Tillad flere definitioner" - -# src/prefs.c:170 -#: lexsup.c:326 -msgid "Don't warn about mismatched input files" -msgstr "Advar ikke om uparrede inddatafiler" - -#: lexsup.c:328 -msgid "Turn off --whole-archive" -msgstr "Deaktivér ---whole-archive" - -#: lexsup.c:330 -msgid "Create an output file even if errors occur" -msgstr "Opret en uddatafil også hvis fejl forekommer" - -#: lexsup.c:334 -msgid "" -"Only use library directories specified on\n" -"\t\t\t\tthe command line" -msgstr "" -"Brug kun bibliotekskataloger som angives\n" -"\t\t\t\tpå kommandolinjen" - -#: lexsup.c:336 -msgid "Specify target of output file" -msgstr "Angiv mål for uddatafil" - -#: lexsup.c:338 -msgid "Ignored for Linux compatibility" -msgstr "Ignoreret for kompatibilitet med Linux" - -#: lexsup.c:340 -msgid "Relax branches on certain targets" -msgstr "Forenkl greninger på visse mål" - -#: lexsup.c:343 -msgid "Keep only symbols listed in FILE" -msgstr "Behold kun symboler angivne i FIL" - -#: lexsup.c:345 -msgid "Set runtime shared library search path" -msgstr "Sæt kørselstidssøgesti for delte biblioteker" - -#: lexsup.c:347 -msgid "Set link time shared library search path" -msgstr "Sæt lænkningstidssøgesti for delte biblioteker" - -#: lexsup.c:349 -msgid "Create a shared library" -msgstr "Opret et delt bibliotek" - -#: lexsup.c:353 -msgid "Sort common symbols by size" -msgstr "Sortér fælles symboler efter størrelse" - -#: lexsup.c:357 -msgid "COUNT" -msgstr "ANTAL" - -#: lexsup.c:357 -msgid "How many tags to reserve in .dynamic section" -msgstr "Hvor mange mærker som skal reserveres i .dynamic-sektion" - -#: lexsup.c:359 -msgid "[=SIZE]" -msgstr "[=STØRRELSE]" - -#: lexsup.c:359 -msgid "Split output sections every SIZE octets" -msgstr "Del uddatasektioner hver STØRRELSE oktetter" - -#: lexsup.c:361 -msgid "[=COUNT]" -msgstr "[=ANTAL]" - -#: lexsup.c:361 -msgid "Split output sections every COUNT relocs" -msgstr "Del uddatasektioner hver ANTAL relokeringer" - -#: lexsup.c:363 -msgid "Print memory usage statistics" -msgstr "Vis statistik over hukommelsesbrug" - -#: lexsup.c:365 -msgid "Display target specific options" -msgstr "Vis målspecifikke flag" - -#: lexsup.c:367 -msgid "Do task level linking" -msgstr "Udfør lænkning på opgaveniveau" - -#: lexsup.c:369 -msgid "Use same format as native linker" -msgstr "Brug samme format som indbygget lænker" - -#: lexsup.c:371 -msgid "SECTION=ADDRESS" -msgstr "SEKTION=ADRESSE" - -#: lexsup.c:371 -msgid "Set address of named section" -msgstr "Sæt adresse på navngiven sektion" - -#: lexsup.c:373 -msgid "Set address of .bss section" -msgstr "Sæt adresse på .bss-sektion" - -#: lexsup.c:375 -msgid "Set address of .data section" -msgstr "Sæt adresse på .data-sektion" - -#: lexsup.c:377 -msgid "Set address of .text section" -msgstr "Sæt adresse på .text-sektion" - -#: lexsup.c:379 -msgid "Output lots of information during link" -msgstr "Vis meget information under lænkning" - -#: lexsup.c:383 -msgid "Read version information script" -msgstr "Læs skript med versionsinformation" - -#: lexsup.c:386 -msgid "" -"Take export symbols list from .exports, using\n" -"\t\t\t\tSYMBOL as the version." -msgstr "" -"Tag liste med eksportsymboler fra .exports og\n" -"\t\t\t\tbrug SYMBOL som version." - -#: lexsup.c:389 -msgid "Warn about duplicate common symbols" -msgstr "Advar for duplerede fælles symboler" - -#: lexsup.c:391 -msgid "Warn if global constructors/destructors are seen" -msgstr "Advar hvis globale konstruktorer/destruktorer findes" - -#: lexsup.c:394 -msgid "Warn if the multiple GP values are used" -msgstr "Advar hvis flere GP-værdier bruges" - -#: lexsup.c:396 -msgid "Warn only once per undefined symbol" -msgstr "Advar kun én gang per udefineret symbol" - -#: lexsup.c:398 -msgid "Warn if start of section changes due to alignment" -msgstr "Advar hvis begyndelsen på sektionen ændres på grund af justering" - -#: lexsup.c:401 -msgid "Treat warnings as errors" -msgstr "Behandl advarsler som fejl" - -#: lexsup.c:404 -msgid "Include all objects from following archives" -msgstr "Inkludér alle objekter fra følgende arkiver" - -#: lexsup.c:406 -msgid "Use wrapper functions for SYMBOL" -msgstr "Brug indkapslingsfunktioner for SYMBOL" - -#: lexsup.c:408 -msgid "[=WORDS]" -msgstr "[=ORD]" - -#: lexsup.c:408 -msgid "" -"Modify problematic branches in last WORDS (1-10,\n" -"\t\t\t\tdefault 5) words of a page" -msgstr "" -"Ændr problematiske greninger i sidste ORD (1-10,\n" -"\t\t\t\tstandardværdi 5) ord på en side" - -#: lexsup.c:574 -msgid "%P: unrecognized option '%s'\n" -msgstr "%P: ukendt flag \"%s\"\n" - -#: lexsup.c:576 -msgid "%P%F: use the --help option for usage information\n" -msgstr "%P%F: brug flaget --help for brugsinformation\n" - -#: lexsup.c:595 -msgid "%P%F: unrecognized -a option `%s'\n" -msgstr "%P%F: ukendt -a-flag \"%s\"\n" - -#: lexsup.c:608 -msgid "%P%F: unrecognized -assert option `%s'\n" -msgstr "%P%F: ukendt -assert-flag \"%s\"\n" - -#: lexsup.c:651 -msgid "%F%P: unknown demangling style `%s'" -msgstr "%F%P: ukendt afkodningsstil \"%s\"" - -#: lexsup.c:711 -msgid "%P%F: invalid number `%s'\n" -msgstr "%P%F: ugyldigt tal \"%s\"\n" - -#. This can happen if the user put "-rpath,a" on the command -#. line. (Or something similar. The comma is important). -#. Getopt becomes confused and thinks that this is a -r option -#. but it cannot parse the text after the -r so it refuses to -#. increment the optind counter. Detect this case and issue -#. an error message here. We cannot just make this a warning, -#. increment optind, and continue because getopt is too confused -#. and will seg-fault the next time around. -#: lexsup.c:812 -msgid "%P%F: bad -rpath option\n" -msgstr "%P%F: ukendt -rpath-flag\n" - -#: lexsup.c:910 -msgid "%P%F: -shared not supported\n" -msgstr "%P%F: -shared understøttes ikke\n" - -#: lexsup.c:942 -msgid "%P%F: invalid argument to option \"--section-start\"\n" -msgstr "%P%F: ugyldigt argument til flaget \"--section-start\"\n" - -#: lexsup.c:948 -msgid "%P%F: missing argument(s) to option \"--section-start\"\n" -msgstr "%P%F: argumenter mangler til flaget \"--section-start\"\n" - -#: lexsup.c:1097 -msgid "%P%F: may not nest groups (--help for usage)\n" -msgstr "%P%F: må ikke neste grupper (--help for brug)\n" - -#: lexsup.c:1104 -msgid "%P%F: group ended before it began (--help for usage)\n" -msgstr "%P%F: gruppen sluttede inden den begyndte (--help for brug)\n" - -#: lexsup.c:1118 -msgid "%P%F: invalid argument to option \"mpc860c0\"\n" -msgstr "%P%F: ugyldigt argument til flaget \"mpc860c0\"\n" - -#: lexsup.c:1173 -msgid "%P%F: invalid hex number `%s'\n" -msgstr "%P%F: ugyldigt heksadecimalt tal \"%s\"\n" - -#: lexsup.c:1185 -#, c-format -msgid "Usage: %s [options] file...\n" -msgstr "Brug: %s [flag] fil...\n" - -#: lexsup.c:1187 -msgid "Options:\n" -msgstr "Alternativer:\n" - -#. Note: Various tools (such as libtool) depend upon the -#. format of the listings below - do not change them. -#: lexsup.c:1270 -#, c-format -msgid "%s: supported targets:" -msgstr "%s: mål som understøttes:" - -#: lexsup.c:1278 -#, c-format -msgid "%s: supported emulations: " -msgstr "%s: emuleringer som understøttes: " - -#: lexsup.c:1283 -#, c-format -msgid "%s: emulation specific options:\n" -msgstr "%s: emuleringsspecifikke flag:\n" - -#: lexsup.c:1287 -#, c-format -msgid "Report bugs to %s\n" -msgstr "" -"Rapportér fejl til %s\n" -"Rapportér fejl i oversættelsen til dansk@klid.dk\n" - -#: mri.c:334 -msgid "%P%F: unknown format type %s\n" -msgstr "%P%F: ukendt formattype %s\n" - -#: pe-dll.c:321 -#, c-format -msgid "%XUnsupported PEI architecture: %s\n" -msgstr "%XPEI-arkitekturen understøttes ikke: %s\n" - -#: pe-dll.c:671 -#, c-format -msgid "%XError, duplicate EXPORT with ordinals: %s (%d vs %d)\n" -msgstr "%XFejl, dubleret EXPORT med ordinaler: %s (%d mod %d)\n" - -#: pe-dll.c:678 -#, c-format -msgid "Warning, duplicate EXPORT: %s\n" -msgstr "Advarsel, dubleret EXPORT: %s\n" - -#: pe-dll.c:742 -#, c-format -msgid "%XCannot export %s: symbol not defined\n" -msgstr "%XKan ikke eksportere %s: symbol er ikke defineret\n" - -#: pe-dll.c:748 -#, c-format -msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n" -msgstr "%XKan ikke eksportere %s: symbol er af forkert type (%d mod %d)\n" - -#: pe-dll.c:755 -#, c-format -msgid "%XCannot export %s: symbol not found\n" -msgstr "%XKan ikke eksportere %s: symbol fandtes ikke\n" - -#: pe-dll.c:870 -#, c-format -msgid "%XError, ordinal used twice: %d (%s vs %s)\n" -msgstr "%XFejl, ordinalen bruges to gange: %d (%s mod %s)\n" - -#: pe-dll.c:1181 -#, c-format -msgid "%XError: %d-bit reloc in dll\n" -msgstr "%XFejl: %d-bit relokering i dll\n" - -#: pe-dll.c:1316 -#, c-format -msgid "%s: Can't open output def file %s\n" -msgstr "%s: Kan ikke åbne uddatadefinitionsfilen %s\n" - -#: pe-dll.c:1459 -msgid "; no contents available\n" -msgstr "; intet indhold er tilgængeligt\n" - -#: pe-dll.c:2128 -#, c-format -msgid "%XCan't open .lib file: %s\n" -msgstr "%XKan ikke åbne .lib-filen: %s\n" - -#: pe-dll.c:2133 -#, c-format -msgid "Creating library file: %s\n" -msgstr "Opretter biblioteksfil: %s\n" diff --git a/ld/po/es.po b/ld/po/es.po deleted file mode 100644 index 2aad5479f19..00000000000 --- a/ld/po/es.po +++ /dev/null @@ -1,1988 +0,0 @@ -# Mensajes en español para ld 2.15.96. -# Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. -# Cristian Othón Martínez Vera , 2002, 2003, 2004, 2005. -# -msgid "" -msgstr "" -"Project-Id-Version: ld 2.15.96\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-03-03 21:05+1030\n" -"PO-Revision-Date: 2005-03-14 17:12-0600\n" -"Last-Translator: Cristian Othón Martínez Vera \n" -"Language-Team: Spanish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" -"Content-Transfer-Encoding: 8bit\n" - -#: emultempl/armcoff.em:72 -#, c-format -msgid " --support-old-code Support interworking with old code\n" -msgstr " --support-old-code Soporte para interoperar con código antiguo\n" - -#: emultempl/armcoff.em:73 -#, c-format -msgid " --thumb-entry= Set the entry point to be Thumb symbol \n" -msgstr " --thumb-entry= Establece el punto de entrada para el símbolo Thumb \n" - -#: emultempl/armcoff.em:121 -#, c-format -msgid "Errors encountered processing file %s" -msgstr "Errores encontrados al procesar el fichero %s" - -#: emultempl/armcoff.em:188 emultempl/pe.em:1455 -msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n" -msgstr "%P: aviso: '--thumb-entry %s' se impone a '-e %s'\n" - -#: emultempl/armcoff.em:193 emultempl/pe.em:1460 -msgid "%P: warning: connot find thumb start symbol %s\n" -msgstr "%P: aviso: no se puede encontrar el símbolo de inicio thumb %s\n" - -#: emultempl/pe.em:301 -#, c-format -msgid " --base_file Generate a base file for relocatable DLLs\n" -msgstr " --base_file Genera un fichero base para DLLs reubicables\n" - -# DLL son las siglas en inglés de `Biblioteca de Enlace Dinámico'. -# El problema es que las siglas en español (BED) no están muy extendidas. -# Se dejó `DLL' sin traducir en todas las ocasiones. cfuga -#: emultempl/pe.em:302 -#, c-format -msgid " --dll Set image base to the default for DLLs\n" -msgstr " --dll Establece la imagen base por defecto para las DLLs\n" - -#: emultempl/pe.em:303 -#, c-format -msgid " --file-alignment Set file alignment\n" -msgstr " --file-alignment Establece el fichero de alineación\n" - -#: emultempl/pe.em:304 -#, c-format -msgid " --heap Set initial size of the heap\n" -msgstr " --heap Establece el tamaño inicial del montón\n" - -#: emultempl/pe.em:305 -#, c-format -msgid " --image-base
Set start address of the executable\n" -msgstr " --image-base Establece la dirección de inicio del ejecutable\n" - -#: emultempl/pe.em:306 -#, c-format -msgid " --major-image-version Set version number of the executable\n" -msgstr " --major-image-version Establece el número de versión del ejecutable\n" - -#: emultempl/pe.em:307 -#, c-format -msgid " --major-os-version Set minimum required OS version\n" -msgstr " --major-os-version Establece la versión mínima requerida del SO\n" - -#: emultempl/pe.em:308 -#, c-format -msgid " --major-subsystem-version Set minimum required OS subsystem version\n" -msgstr " --major-subsystem-version Establece la versión mínima requerida del subsistema del SO\n" - -#: emultempl/pe.em:309 -#, c-format -msgid " --minor-image-version Set revision number of the executable\n" -msgstr " --minor-image-version Establece el número de revisión del ejecutable\n" - -#: emultempl/pe.em:310 -#, c-format -msgid " --minor-os-version Set minimum required OS revision\n" -msgstr " --minor-os-version Establece la revisión mínima requerida del SO\n" - -#: emultempl/pe.em:311 -#, c-format -msgid " --minor-subsystem-version Set minimum required OS subsystem revision\n" -msgstr " --minor-subsystem-version Establece la revisión mínima requerida del subsistema del SO\n" - -#: emultempl/pe.em:312 -#, c-format -msgid " --section-alignment Set section alignment\n" -msgstr " --section-alignment Establece la alineación de la sección\n" - -#: emultempl/pe.em:313 -#, c-format -msgid " --stack Set size of the initial stack\n" -msgstr " --stack Establece el tamaño de la pila inicial\n" - -#: emultempl/pe.em:314 -#, c-format -msgid " --subsystem [:] Set required OS subsystem [& version]\n" -msgstr " --subsystem [:] Establece el subsistema [y versión] requeridos del SO\n" - -#: emultempl/pe.em:315 -#, c-format -msgid " --support-old-code Support interworking with old code\n" -msgstr " --support-old-code Soporte para interoperar con código antiguo\n" - -#: emultempl/pe.em:316 -#, c-format -msgid " --thumb-entry= Set the entry point to be Thumb \n" -msgstr " --thumb-entry= Establece el punto de entrada para el símbolo Thumb \n" - -#: emultempl/pe.em:318 -#, c-format -msgid " --add-stdcall-alias Export symbols with and without @nn\n" -msgstr " --add-stdcall-alias Exportar símbolos con y sin @nn\n" - -#: emultempl/pe.em:319 -#, c-format -msgid " --disable-stdcall-fixup Don't link _sym to _sym@nn\n" -msgstr " --disable-stdcall-fixup No enlazar _sym con _sym@nn\n" - -#: emultempl/pe.em:320 -#, c-format -msgid " --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n" -msgstr " --enable-stdcall-fixup Enlazar _sym con _sym@nn sin avisos\n" - -#: emultempl/pe.em:321 -#, c-format -msgid " --exclude-symbols sym,sym,... Exclude symbols from automatic export\n" -msgstr " --exclude-symbols sim,sim,... Excluye los símbolos de la exportación automática\n" - -#: emultempl/pe.em:322 -#, c-format -msgid " --exclude-libs lib,lib,... Exclude libraries from automatic export\n" -msgstr " --exclude-libs bib,bib,... Excluye las bibliotecas de la exportación automática\n" - -#: emultempl/pe.em:323 -#, c-format -msgid " --export-all-symbols Automatically export all globals to DLL\n" -msgstr " --export-all-symbols Exporta automáticamente todos los globales a la DLL\n" - -#: emultempl/pe.em:324 -#, c-format -msgid " --kill-at Remove @nn from exported symbols\n" -msgstr " --kill-at Elimina @nn de los símbolos exportados\n" - -#: emultempl/pe.em:325 -#, c-format -msgid " --out-implib Generate import library\n" -msgstr " --out-implib Generar una biblioteca de importación\n" - -#: emultempl/pe.em:326 -#, c-format -msgid " --output-def Generate a .DEF file for the built DLL\n" -msgstr " --output-def Generar un fichero .DEF para la DLL construida\n" - -#: emultempl/pe.em:327 -#, c-format -msgid " --warn-duplicate-exports Warn about duplicate exports.\n" -msgstr " --warn-duplicate-exports Avisar sobre exportaciones duplicadas.\n" - -#: emultempl/pe.em:328 -#, c-format -msgid "" -" --compat-implib Create backward compatible import libs;\n" -" create __imp_ as well.\n" -msgstr "" -" --compat-implib Crear bibliotecas de importación compatibles hacia atrás;\n" -" cerar además __imp_.\n" - -#: emultempl/pe.em:330 -#, c-format -msgid "" -" --enable-auto-image-base Automatically choose image base for DLLs\n" -" unless user specifies one\n" -msgstr "" -" --enable-auto-image-base Escoger automáticamente la imagen base para las DLLs\n" -" a menos que el usuario especifique una\n" - -#: emultempl/pe.em:332 -#, c-format -msgid " --disable-auto-image-base Do not auto-choose image base. (default)\n" -msgstr " --disable-auto-image-base No escoger automáticamente una imagen base. (por defecto)\n" - -#: emultempl/pe.em:333 -#, c-format -msgid "" -" --dll-search-prefix= When linking dynamically to a dll without\n" -" an importlib, use .dll\n" -" in preference to lib.dll \n" -msgstr "" -" --dll-search-prefix= Al enlazar dinámicamente con una dll sin una\n" -" biblioteca de importación, usar .dll \n" -" en lugar de lib.dll \n" - -#: emultempl/pe.em:336 -#, c-format -msgid "" -" --enable-auto-import Do sophistcated linking of _sym to\n" -" __imp_sym for DATA references\n" -msgstr "" -" --enable-auto-import Hacer enlazado sofisticado de _sym a\n" -" __imp_sym para las referencias DATA\n" - -#: emultempl/pe.em:338 -#, c-format -msgid " --disable-auto-import Do not auto-import DATA items from DLLs\n" -msgstr " --disable-auto-import No importar automáticamente elementos DATA de las DLLs\n" - -#: emultempl/pe.em:339 -#, c-format -msgid "" -" --enable-runtime-pseudo-reloc Work around auto-import limitations by\n" -" adding pseudo-relocations resolved at\n" -" runtime.\n" -msgstr "" -" --enable-runtime-pseudo-reloc Evitar limitaciones de autoimportación\n" -" agregando pseudo-reubicaciones resueltas\n" -" al momento de ejecución.\n" - -#: emultempl/pe.em:342 -#, c-format -msgid "" -" --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations for\n" -" auto-imported DATA.\n" -msgstr "" -" --disable-runtime-pseudo-reloc No agregar pseudo-reubicaciones al momento\n" -" de ejecución para DATOS autoimportados.\n" - -#: emultempl/pe.em:344 -#, c-format -msgid "" -" --enable-extra-pe-debug Enable verbose debug output when building\n" -" or linking to DLLs (esp. auto-import)\n" -msgstr "" -" --enable-extra-pe-debug Activa la salida de depuración detallada al construir\n" -" o enlazar a DLLs (en part. con auto-importación)\n" - -#: emultempl/pe.em:347 -#, c-format -msgid "" -" --large-address-aware Executable supports virtual addresses\n" -" greater than 2 gigabytes\n" -msgstr "" -" --large-address-aware El ejecutable tiene soporte para direcciones\n" -" virtuales mayores a 2 gigabytes\n" - -#: emultempl/pe.em:414 -msgid "%P: warning: bad version number in -subsystem option\n" -msgstr "%P: aviso: número de versión erróneo en la opción -subsystem\n" - -#: emultempl/pe.em:445 -msgid "%P%F: invalid subsystem type %s\n" -msgstr "%P%F: tipo de subsistema %s inválido\n" - -#: emultempl/pe.em:484 -msgid "%P%F: invalid hex number for PE parameter '%s'\n" -msgstr "%P%F: número hexadecimal inválido para el parámetro PE '%s'\n" - -#: emultempl/pe.em:501 -msgid "%P%F: strange hex info for PE parameter '%s'\n" -msgstr "%P%F: información hexadecimal extraña para el parámetro PE '%s'\n" - -#: emultempl/pe.em:518 -#, c-format -msgid "%s: Can't open base file %s\n" -msgstr "%s: No se puede abrir el fichero base %s\n" - -#: emultempl/pe.em:734 -msgid "%P: warning, file alignment > section alignment.\n" -msgstr "%P: aviso, alineación del fichero > alineación de la sección.\n" - -#: emultempl/pe.em:821 emultempl/pe.em:848 -#, c-format -msgid "Warning: resolving %s by linking to %s\n" -msgstr "Aviso: resolviendo %s al enlazar con %s\n" - -#: emultempl/pe.em:826 emultempl/pe.em:853 -msgid "Use --enable-stdcall-fixup to disable these warnings\n" -msgstr "Use --enable-stdcall-fixup para desactivar estos avisos\n" - -#: emultempl/pe.em:827 emultempl/pe.em:854 -msgid "Use --disable-stdcall-fixup to disable these fixups\n" -msgstr "Use --disable-stdcall-fixup para desactivar estas composturas\n" - -#: emultempl/pe.em:873 -#, c-format -msgid "%C: Cannot get section contents - auto-import exception\n" -msgstr "%C: No se puede obtener el contenido de la sección - excepción de auto-importación\n" - -#: emultempl/pe.em:910 -#, c-format -msgid "Info: resolving %s by linking to %s (auto-import)\n" -msgstr "Información: resolviendo %s al enlazar con %s (auto-importación)\n" - -#: emultempl/pe.em:983 -msgid "%F%P: PE operations on non PE file.\n" -msgstr "%F%P: operaciones PE en un fichero que no es PE.\n" - -#: emultempl/pe.em:1258 -#, c-format -msgid "Errors encountered processing file %s\n" -msgstr "Se encontraron errores al procesar el fichero %s\n" - -#: emultempl/pe.em:1281 -#, c-format -msgid "Errors encountered processing file %s for interworking" -msgstr "Se encontraron errores el procesar el fichero %s para interoperabilidad" - -#: emultempl/pe.em:1340 ldexp.c:570 ldlang.c:2408 ldlang.c:5135 ldlang.c:5166 -#: ldmain.c:1161 -msgid "%P%F: bfd_link_hash_lookup failed: %E\n" -msgstr "%P%F: falló bfd_link_hash_lookup: %E\n" - -#: ldcref.c:153 -msgid "%X%P: bfd_hash_table_init of cref table failed: %E\n" -msgstr "%X%P: falló bfd_hash_table_init de la tabla cref: %E\n" - -#: ldcref.c:159 -msgid "%X%P: cref_hash_lookup failed: %E\n" -msgstr "%X%P: falló cref_hash_lookup: %E\n" - -#: ldcref.c:225 -#, c-format -msgid "" -"\n" -"Cross Reference Table\n" -"\n" -msgstr "" -"\n" -"Tabla de Referencias Cruzadas\n" -"\n" - -#: ldcref.c:226 -msgid "Symbol" -msgstr "Símbolo" - -#: ldcref.c:234 -#, c-format -msgid "File\n" -msgstr "Fichero\n" - -#: ldcref.c:238 -#, c-format -msgid "No symbols\n" -msgstr "No hay símbolos\n" - -#: ldcref.c:359 ldcref.c:478 -msgid "%B%F: could not read symbols; %E\n" -msgstr "%B%F: no se pueden leer símbolos; %E\n" - -#: ldcref.c:363 ldcref.c:482 ldmain.c:1226 ldmain.c:1230 -msgid "%B%F: could not read symbols: %E\n" -msgstr "%B%F: no se pueden leer símbolos: %E\n" - -#: ldcref.c:414 -msgid "%P: symbol `%T' missing from main hash table\n" -msgstr "%P: falta el símbolo `%T' de la tabla principal de dispersión\n" - -#: ldcref.c:547 ldcref.c:554 ldmain.c:1273 ldmain.c:1280 -msgid "%B%F: could not read relocs: %E\n" -msgstr "%B%F: no se pueden leer las reubicaciones: %E\n" - -#. We found a reloc for the symbol. The symbol is defined -#. in OUTSECNAME. This reloc is from a section which is -#. mapped into a section from which references to OUTSECNAME -#. are prohibited. We must report an error. -#: ldcref.c:573 -msgid "%X%C: prohibited cross reference from %s to `%T' in %s\n" -msgstr "%X%C: referencia cruzada prohibida de %s a `%T' en %s\n" - -#: ldctor.c:84 -msgid "%P%X: Different relocs used in set %s\n" -msgstr "%P%X: Se usaron diferentes reubicaciones en el conjunto %s\n" - -#: ldctor.c:102 -msgid "%P%X: Different object file formats composing set %s\n" -msgstr "%P%X: Formatos diferentes de fichero objeto componen al conjunto %s\n" - -#: ldctor.c:281 ldctor.c:295 -msgid "%P%X: %s does not support reloc %s for set %s\n" -msgstr "%P%X: %s no tiene soporte para la reubicación para el conjunto %s\n" - -#: ldctor.c:316 -msgid "%P%X: Unsupported size %d for set %s\n" -msgstr "%P%X: Tamaño %d sin soporte para el conjunto %s\n" - -#: ldctor.c:337 -msgid "" -"\n" -"Set Symbol\n" -"\n" -msgstr "" -"\n" -"Conjunto Símbolo\n" -"\n" - -#: ldemul.c:227 -#, c-format -msgid "%S SYSLIB ignored\n" -msgstr "%S se ignora SYSLIB\n" - -#: ldemul.c:233 -#, c-format -msgid "%S HLL ignored\n" -msgstr "%S se ignora HLL\n" - -#: ldemul.c:253 -msgid "%P: unrecognised emulation mode: %s\n" -msgstr "%P: no se reconoce el modo de emulación: %s\n" - -#: ldemul.c:254 -msgid "Supported emulations: " -msgstr "Emulaciones con soporte: " - -#: ldemul.c:296 -#, c-format -msgid " no emulation specific options.\n" -msgstr " no hay opciones específicas de emulación.\n" - -#: ldexp.c:379 -#, c-format -msgid "%F%S %% by zero\n" -msgstr "%F%S %% por cero\n" - -#: ldexp.c:386 -#, c-format -msgid "%F%S / by zero\n" -msgstr "%F%S / por cero\n" - -#: ldexp.c:583 -#, c-format -msgid "%X%S: unresolvable symbol `%s' referenced in expression\n" -msgstr "%X%S: símbolo `%s' sin resolución referenciado en la expresión\n" - -#: ldexp.c:604 -#, c-format -msgid "%F%S: undefined symbol `%s' referenced in expression\n" -msgstr "%F%S: símbolo `%s' indefinido referenciado en la expresión\n" - -#: ldexp.c:665 ldexp.c:678 -#, c-format -msgid "%F%S: undefined MEMORY region `%s' referenced in expression\n" -msgstr "%F%S: región MEMORY `%s' indefinida referenciada en la expresión\n" - -#: ldexp.c:757 -#, c-format -msgid "%F%S can not PROVIDE assignment to location counter\n" -msgstr "%F%S no puede hacer una asignación PROVIDE al contador de ubicación\n" - -#: ldexp.c:770 -#, c-format -msgid "%F%S invalid assignment to location counter\n" -msgstr "%F%S asignación inválida al contador de ubicación\n" - -#: ldexp.c:774 -#, c-format -msgid "%F%S assignment to location counter invalid outside of SECTION\n" -msgstr "%F%S asignación al contador de ubicación es inválida fuera de SECTION\n" - -#: ldexp.c:783 -msgid "%F%S cannot move location counter backwards (from %V to %V)\n" -msgstr "%F%S no se puede mover el contador de ubicación hacia atrás (de %V a %V)\n" - -#: ldexp.c:810 -msgid "%P%F:%s: hash creation failed\n" -msgstr "%P%F:%s: falló la creación de la dispersión\n" - -#: ldexp.c:1077 ldexp.c:1109 -#, c-format -msgid "%F%S nonconstant expression for %s\n" -msgstr "%F%S expresión no constante para %s\n" - -#: ldexp.c:1163 -#, c-format -msgid "%F%S non constant expression for %s\n" -msgstr "%F%S expresión no constante para %s\n" - -#: ldfile.c:139 -#, c-format -msgid "attempt to open %s failed\n" -msgstr "falló el intento de abrir %s\n" - -#: ldfile.c:141 -#, c-format -msgid "attempt to open %s succeeded\n" -msgstr "tuvo éxito el intento de abrir %s\n" - -#: ldfile.c:147 -msgid "%F%P: invalid BFD target `%s'\n" -msgstr "%F%P: objetivo BFD inválido `%s'\n" - -#: ldfile.c:255 ldfile.c:282 -msgid "%P: skipping incompatible %s when searching for %s\n" -msgstr "%P: saltando el %s incompatible mientras se buscaba %s\n" - -#: ldfile.c:267 -msgid "%F%P: attempted static link of dynamic object `%s'\n" -msgstr "%F%P: se intentó el enlazado estático del objeto dinámico `%s'\n" - -#: ldfile.c:384 -msgid "%F%P: %s (%s): No such file: %E\n" -msgstr "%F%P: %s (%s): No hay tal fichero: %E\n" - -#: ldfile.c:387 -msgid "%F%P: %s: No such file: %E\n" -msgstr "%F%P: %s No hay tal fichero: %E\n" - -#: ldfile.c:417 -msgid "%F%P: cannot find %s inside %s\n" -msgstr "%F%P: no se puede encontrar %s dentro de %s\n" - -#: ldfile.c:420 -msgid "%F%P: cannot find %s\n" -msgstr "%F%P: no se puede encontrar %s\n" - -#: ldfile.c:437 ldfile.c:453 -#, c-format -msgid "cannot find script file %s\n" -msgstr "no se puede encontrar el fichero de guión %s\n" - -#: ldfile.c:439 ldfile.c:455 -#, c-format -msgid "opened script file %s\n" -msgstr "fichero de guión %s abierto\n" - -#: ldfile.c:499 -msgid "%P%F: cannot open linker script file %s: %E\n" -msgstr "%P%F: no se puede abrir el fichero de guión del enlazador %s: %E\n" - -#: ldfile.c:546 -msgid "%P%F: cannot represent machine `%s'\n" -msgstr "%P%F: no se puede representar la máquina `%s'\n" - -#: ldlang.c:511 -msgid "%P%F: out of memory during initialization" -msgstr "%P%F: memoria agotada durante la inicialización" - -#: ldlang.c:551 -msgid "%P:%S: warning: redeclaration of memory region '%s'\n" -msgstr "%P:%S: aviso: redeclaración de la región de memoria '%s'\n" - -#: ldlang.c:557 -msgid "%P:%S: warning: memory region %s not declared\n" -msgstr "%P:%S: aviso: no se declaró la región %s\n" - -#: ldlang.c:1073 -msgid "" -"\n" -"Memory Configuration\n" -"\n" -msgstr "" -"\n" -"Configuración de la Memoria\n" -"\n" - -#: ldlang.c:1075 -msgid "Name" -msgstr "Nombre" - -#: ldlang.c:1075 -msgid "Origin" -msgstr "Origen" - -#: ldlang.c:1075 -msgid "Length" -msgstr "Longitud" - -#: ldlang.c:1075 -msgid "Attributes" -msgstr "Atributos" - -#: ldlang.c:1115 -#, c-format -msgid "" -"\n" -"Linker script and memory map\n" -"\n" -msgstr "" -"\n" -"Guión del enlazador y mapa de memoria\n" -"\n" - -#: ldlang.c:1183 -msgid "%P%F: Illegal use of `%s' section\n" -msgstr "%P%F: Uso ilegal de la sección `%s'\n" - -#: ldlang.c:1193 -msgid "%P%F: output format %s cannot represent section called %s\n" -msgstr "%P%F: el formato de salida %s no puede representar la sección llamada %s\n" - -#: ldlang.c:1775 -msgid "%B: file not recognized: %E\n" -msgstr "%B: fichero no reconocido: %E\n" - -#: ldlang.c:1776 -msgid "%B: matching formats:" -msgstr "%B: formatos coincidentes:" - -#: ldlang.c:1783 -msgid "%F%B: file not recognized: %E\n" -msgstr "%F%B: fichero no reconocido: %E\n" - -#: ldlang.c:1847 -msgid "%F%B: member %B in archive is not an object\n" -msgstr "%F%B: el miembro %B en el archivo no es un objeto\n" - -#: ldlang.c:1858 ldlang.c:1872 -msgid "%F%B: could not read symbols: %E\n" -msgstr "%F%B: no se puede leer símbolos: %E\n" - -#: ldlang.c:2127 -msgid "%P: warning: could not find any targets that match endianness requirement\n" -msgstr "%P: aviso: no se puede encontrar ningún objetivo que coincida con los requerimientos de endianess\n" - -#: ldlang.c:2141 -msgid "%P%F: target %s not found\n" -msgstr "%P%F: no se encuentra el objetivo %s\n" - -#: ldlang.c:2143 -msgid "%P%F: cannot open output file %s: %E\n" -msgstr "%P%F: no se puede abrir el fichero de salida %s: %E\n" - -#: ldlang.c:2149 -msgid "%P%F:%s: can not make object file: %E\n" -msgstr "%P%F:%s: no se puede hacer el fichero objeto: %E\n" - -#: ldlang.c:2153 -msgid "%P%F:%s: can not set architecture: %E\n" -msgstr "%P%F:%s: no se puede establecer la arquitectura: %E\n" - -#: ldlang.c:2157 -msgid "%P%F: can not create link hash table: %E\n" -msgstr "%P%F: no se puede crear la tabla de dispersión de enlace: %E\n" - -#: ldlang.c:2301 -msgid "%P%F: bfd_hash_lookup failed creating symbol %s\n" -msgstr "%P%F: falló bfd_hash_lookup al crear el símbolo %s\n" - -#: ldlang.c:2319 -msgid "%P%F: bfd_hash_allocate failed creating symbol %s\n" -msgstr "%P%F: falló bfd_hash_allocate al crear el símbolo %s\n" - -#: ldlang.c:2710 -msgid " load address 0x%V" -msgstr " cargar la dirección 0x%V" - -#: ldlang.c:2874 -msgid "%W (size before relaxing)\n" -msgstr "%W (tamaño antes de la relajación)\n" - -#: ldlang.c:2961 -#, c-format -msgid "Address of section %s set to " -msgstr "La dirección de la sección %s se estableció a " - -#: ldlang.c:3114 -#, c-format -msgid "Fail with %d\n" -msgstr "Falló con %d\n" - -#: ldlang.c:3351 -msgid "%X%P: section %s [%V -> %V] overlaps section %s [%V -> %V]\n" -msgstr "%X%P: la sección %s [%V -> %V] sobreescribe a la sección %s [%V -> %V]\n" - -#: ldlang.c:3379 -msgid "%X%P: address 0x%v of %B section %s is not within region %s\n" -msgstr "%X%P: la dirección 0x%v de %B sección %s no está dentro de la región %s\n" - -#: ldlang.c:3388 -msgid "%X%P: region %s is full (%B section %s)\n" -msgstr "%X%P: la región %s está llena (%B sección %s)\n" - -#: ldlang.c:3439 -msgid "%P%X: Internal error on COFF shared library section %s\n" -msgstr "%P%X: Error interno en la sección %s de biblioteca compartida COFF\n" - -#: ldlang.c:3493 -msgid "%P%F: error: no memory region specified for loadable section `%s'\n" -msgstr "%P%F: aviso: no se especificó una región de memoria para la sección cargable `%s'\n" - -#: ldlang.c:3498 -msgid "%P: warning: no memory region specified for loadable section `%s'\n" -msgstr "%P: aviso: no se especificó una región de memoria para la sección cargable `%s'\n" - -#: ldlang.c:3515 -msgid "%P: warning: changing start of section %s by %u bytes\n" -msgstr "%P: aviso: cambiando el inicio de la sección %s por %u bytes\n" - -#: ldlang.c:3532 -#, c-format -msgid "%F%S: non constant or forward reference address expression for section %s\n" -msgstr "%F%S: expresión de dirección de referencia hacia adelante o no constante para la sección %s\n" - -#: ldlang.c:3703 -msgid "%P%F: can't relax section: %E\n" -msgstr "%P%F: no se puede relajar la sección: %E\n" - -#: ldlang.c:3960 -msgid "%F%P: invalid data statement\n" -msgstr "%F%P: declaración inválida de datos\n" - -#: ldlang.c:3999 -msgid "%F%P: invalid reloc statement\n" -msgstr "%F%P: declaración inválida de reubicación\n" - -#: ldlang.c:4141 -msgid "%P%F:%s: can't set start address\n" -msgstr "%P%F:%s: no se puede establecer la dirección de inicio\n" - -#: ldlang.c:4154 ldlang.c:4173 -msgid "%P%F: can't set start address\n" -msgstr "%P%F: no se puede establecer la dirección de inicio\n" - -#: ldlang.c:4166 -msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n" -msgstr "%P: aviso: no se puede encontrar el símbolo de entrada %s; usando por defecto %V\n" - -#: ldlang.c:4178 -msgid "%P: warning: cannot find entry symbol %s; not setting start address\n" -msgstr "%P: aviso: no se puede encontrar el símbolo de entrada %s; no se establece la dirección de inicio\n" - -#: ldlang.c:4227 -msgid "%P%F: Relocatable linking with relocations from format %s (%B) to format %s (%B) is not supported\n" -msgstr "%P%F: No tiene soporte el enlazado reubicable con reubicaciones del formato %s (%B) al formato %s (%B)\n" - -#: ldlang.c:4237 -msgid "%P: warning: %s architecture of input file `%B' is incompatible with %s output\n" -msgstr "%P: aviso: la arquitectura %s del fichero de entrada `%B' es incompatible con la salida %s\n" - -#: ldlang.c:4259 -msgid "%P%X: failed to merge target specific data of file %B\n" -msgstr "%P%X: falló la mezcla de datos específicos de objetivo del fichero %B\n" - -#: ldlang.c:4343 -msgid "" -"\n" -"Allocating common symbols\n" -msgstr "" -"\n" -"Asignando símbolos comunes\n" - -#: ldlang.c:4344 -msgid "" -"Common symbol size file\n" -"\n" -msgstr "" -"Símbolo común tamaño fichero\n" -"\n" - -#: ldlang.c:4470 -msgid "%P%F: invalid syntax in flags\n" -msgstr "%P%F: sintaxis inválida en los interruptores\n" - -#: ldlang.c:4740 -msgid "%P%F: Failed to create hash table\n" -msgstr "%P%F: Falló al crear la tabla de dispersión\n" - -#: ldlang.c:5057 -msgid "%P%Fmultiple STARTUP files\n" -msgstr "%P%Fficheros STARTUP múltiples\n" - -#: ldlang.c:5105 -msgid "%X%P:%S: section has both a load address and a load region\n" -msgstr "%X%P:%S: la sección tiene tanto una dirección de carga como una región de carga\n" - -#: ldlang.c:5345 -msgid "%F%P: bfd_record_phdr failed: %E\n" -msgstr "%F%P: falló bfd_record_phdr: %E\n" - -#: ldlang.c:5365 -msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n" -msgstr "%X%P: se asignó la sección `%s' al phdr no existente `%s'\n" - -#: ldlang.c:5751 -msgid "%X%P: unknown language `%s' in version information\n" -msgstr "%X%P: lenguaje `%s' desconocido en la información de la versión\n" - -#: ldlang.c:5893 -msgid "%X%P: anonymous version tag cannot be combined with other version tags\n" -msgstr "%X%P: la marca de versión anónima no se puede combinar con otras marcas de versión\n" - -#: ldlang.c:5902 -msgid "%X%P: duplicate version tag `%s'\n" -msgstr "%X%P: marca de versión `%s' duplicada\n" - -#: ldlang.c:5922 ldlang.c:5931 ldlang.c:5948 ldlang.c:5958 -msgid "%X%P: duplicate expression `%s' in version information\n" -msgstr "%X%P: expresión `%s' duplicada en la información de la versión\n" - -#: ldlang.c:5998 -msgid "%X%P: unable to find version dependency `%s'\n" -msgstr "%X%P: no se puede encontrar la dependencia de versión `%s'\n" - -#: ldlang.c:6020 -msgid "%X%P: unable to read .exports section contents\n" -msgstr "%X%P: no se pueden leer los contenidos de la sección .exports\n" - -#: ldmain.c:229 -msgid "%X%P: can't set BFD default target to `%s': %E\n" -msgstr "%X%P: no se puede establecer el objetivo BFD por defecto a `%s': %E\n" - -#: ldmain.c:341 -msgid "%P%F: --relax and -r may not be used together\n" -msgstr "%P%F: no se pueden usar juntos -relax y -r\n" - -#: ldmain.c:343 -msgid "%P%F: -r and -shared may not be used together\n" -msgstr "%P%F: no se pueden usar juntos -r y -shared\n" - -#: ldmain.c:347 -msgid "%P%F: -static and -shared may not be used together\n" -msgstr "%P%F: no se pueden usar juntos -static y -shared\n" - -#: ldmain.c:352 -msgid "%P%F: -F may not be used without -shared\n" -msgstr "%P%F: no se puede usar -F sin -shared\n" - -#: ldmain.c:354 -msgid "%P%F: -f may not be used without -shared\n" -msgstr "%P%F: no se puede usar -f sin -shared\n" - -#: ldmain.c:396 -msgid "using external linker script:" -msgstr "usando el guión externo del enlazador:" - -#: ldmain.c:398 -msgid "using internal linker script:" -msgstr "usando el guión interno del enlazador:" - -#: ldmain.c:432 -msgid "%P%F: no input files\n" -msgstr "%P%F: no hay ficheros de entrada\n" - -#: ldmain.c:436 -msgid "%P: mode %s\n" -msgstr "%P: modo %s\n" - -#: ldmain.c:452 -msgid "%P%F: cannot open map file %s: %E\n" -msgstr "%P%F: no se puede encontrar el fichero de mapeo %s: %E\n" - -#: ldmain.c:482 -msgid "%P: link errors found, deleting executable `%s'\n" -msgstr "%P: se encontraron errores de enlace, borrando el ejecutable `%s'\n" - -#: ldmain.c:491 -msgid "%F%B: final close failed: %E\n" -msgstr "%F%B: falló el cerrado final: %E\n" - -#: ldmain.c:517 -msgid "%X%P: unable to open for source of copy `%s'\n" -msgstr "%X%P: no se puede abrir para la fuente de la copia `%s'\n" - -#: ldmain.c:520 -msgid "%X%P: unable to open for destination of copy `%s'\n" -msgstr "%X%P: no se puede abrir para el destino de la copia `%s'\n" - -#: ldmain.c:527 -msgid "%P: Error writing file `%s'\n" -msgstr "%P: Error al escribir el fichero `%s'\n" - -#: ldmain.c:532 pe-dll.c:1447 -#, c-format -msgid "%P: Error closing file `%s'\n" -msgstr "%P: Error al cerrar el fichero `%s'\n" - -#: ldmain.c:548 -#, c-format -msgid "%s: total time in link: %ld.%06ld\n" -msgstr "%s: tiempo total en el enlazado: %ld.%06ld\n" - -#: ldmain.c:551 -#, c-format -msgid "%s: data size %ld\n" -msgstr "%s: tamaño de los datos %ld\n" - -#: ldmain.c:634 -msgid "%P%F: missing argument to -m\n" -msgstr "%P%F: falta el argumento para -m\n" - -#: ldmain.c:780 ldmain.c:798 ldmain.c:828 -msgid "%P%F: bfd_hash_table_init failed: %E\n" -msgstr "%P%F: falló bfd_hash_table_init: %E\n" - -#: ldmain.c:784 ldmain.c:802 -msgid "%P%F: bfd_hash_lookup failed: %E\n" -msgstr "%P%F: falló bfd_hash_lookup: %E\n" - -#: ldmain.c:816 -msgid "%X%P: error: duplicate retain-symbols-file\n" -msgstr "%X%P: error: fichero de símbolos a retener duplicado\n" - -#: ldmain.c:858 -msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n" -msgstr "%P%F: falló bfd_hash_lookup para la inserción: %E\n" - -#: ldmain.c:863 -msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n" -msgstr "%P `-retain-symbols-file' se impone a `-s' y `-S'\n" - -#: ldmain.c:938 -#, c-format -msgid "" -"Archive member included because of file (symbol)\n" -"\n" -msgstr "" -"Se incluyó el miembro del archivo debido al fichero (símbolo)\n" -"\n" - -#: ldmain.c:1008 -msgid "%X%C: multiple definition of `%T'\n" -msgstr "%X%C: definiciones múltiples de `%T'\n" - -#: ldmain.c:1011 -msgid "%D: first defined here\n" -msgstr "%D: primero se definió aquí\n" - -#: ldmain.c:1015 -msgid "%P: Disabling relaxation: it will not work with multiple definitions\n" -msgstr "%P: Desactivandola la relajación: no trabajará con definiciones múltiples\n" - -# FIXME: Revisar en el código fuente si `common' se refiere a una orden o -# se puede sustituir por `común'. cfuga -#: ldmain.c:1045 -msgid "%B: warning: definition of `%T' overriding common\n" -msgstr "%B: aviso: la definición de `%T' se impone a common\n" - -#: ldmain.c:1048 -msgid "%B: warning: common is here\n" -msgstr "%B: aviso: common está aquí\n" - -#: ldmain.c:1055 -msgid "%B: warning: common of `%T' overridden by definition\n" -msgstr "%B: aviso: el common de `%T' es sobrepasado por definición\n" - -#: ldmain.c:1058 -msgid "%B: warning: defined here\n" -msgstr "%B: aviso: definido aquí\n" - -#: ldmain.c:1065 -msgid "%B: warning: common of `%T' overridden by larger common\n" -msgstr "%B: aviso: el common de `%T' es sobrepasado por un common más grande\n" - -#: ldmain.c:1068 -msgid "%B: warning: larger common is here\n" -msgstr "%B: aviso: el common más grande está aquí\n" - -#: ldmain.c:1072 -msgid "%B: warning: common of `%T' overriding smaller common\n" -msgstr "%B: aviso: el common de `%T' es sobrepasado por un common más pequeño\n" - -#: ldmain.c:1075 -msgid "%B: warning: smaller common is here\n" -msgstr "%B: aviso: el common más pequeño está aquí\n" - -#: ldmain.c:1079 -msgid "%B: warning: multiple common of `%T'\n" -msgstr "%B: aviso: common múltiple de `%T'\n" - -#: ldmain.c:1081 -msgid "%B: warning: previous common is here\n" -msgstr "%B: aviso: el common previo está aquí\n" - -#: ldmain.c:1101 ldmain.c:1139 -msgid "%P: warning: global constructor %s used\n" -msgstr "%P: aviso: se usó el constructor global %s\n" - -#: ldmain.c:1149 -msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n" -msgstr "%P%F: error del frente trasero de BFD: BFD_RELOC_CTOR sin soporte\n" - -#. We found a reloc for the symbol we are looking for. -#: ldmain.c:1203 ldmain.c:1205 ldmain.c:1207 ldmain.c:1245 ldmain.c:1293 -msgid "warning: " -msgstr "aviso: " - -#: ldmain.c:1327 -msgid "%F%P: bfd_hash_table_init failed: %E\n" -msgstr "%F%P: falló bfd_hash_table_init: %E\n" - -#: ldmain.c:1334 -msgid "%F%P: bfd_hash_lookup failed: %E\n" -msgstr "%F%P: falló bfd_hash_lookup: %E\n" - -#: ldmain.c:1355 -msgid "%X%C: undefined reference to `%T'\n" -msgstr "%X%C: referencia a `%T' sin definir\n" - -#: ldmain.c:1358 -msgid "%C: warning: undefined reference to `%T'\n" -msgstr "%C: aviso: referencia a `%T' sin definir\n" - -#: ldmain.c:1364 -msgid "%X%D: more undefined references to `%T' follow\n" -msgstr "%X%D: más referencias a `%T' sin definir a continuación\n" - -#: ldmain.c:1367 -msgid "%D: warning: more undefined references to `%T' follow\n" -msgstr "%D: aviso: más referencias a `%T' sin definir a continuación\n" - -#: ldmain.c:1378 -msgid "%X%B: undefined reference to `%T'\n" -msgstr "%X%B: referencia a `%T' sin definir\n" - -#: ldmain.c:1381 -msgid "%B: warning: undefined reference to `%T'\n" -msgstr "%B: aviso: referencia a `%T' sin definir\n" - -#: ldmain.c:1387 -msgid "%X%B: more undefined references to `%T' follow\n" -msgstr "%X%B: más referencias a `%T' sin definir a continuación\n" - -#: ldmain.c:1390 -msgid "%B: warning: more undefined references to `%T' follow\n" -msgstr "%B: aviso: más referencias a `%T' sin definir a continuación\n" - -#: ldmain.c:1425 ldmain.c:1478 ldmain.c:1496 -msgid "%P%X: generated" -msgstr "%P%X: generado" - -#: ldmain.c:1432 -msgid " additional relocation overflows omitted from the output\n" -msgstr " se omitieron desbordamientos de reubicación adicionales de la salida\n" - -#: ldmain.c:1445 -msgid " relocation truncated to fit: %s against undefined symbol `%T'" -msgstr " reubicación truncada para ajustar: %s contra el símbolo `%T' sin definir" - -#: ldmain.c:1450 -msgid " relocation truncated to fit: %s against symbol `%T' defined in %A section in %B" -msgstr " reubicación truncada para ajustar: %s contra el símbolo `%T' definido en la sección %A en %B" - -#: ldmain.c:1460 -msgid " relocation truncated to fit: %s against `%T'" -msgstr " reubicación truncada para ajustar: %s contra `%T'" - -#: ldmain.c:1481 -#, c-format -msgid "dangerous relocation: %s\n" -msgstr "reubicación peligrosa: %s\n" - -#: ldmain.c:1499 -msgid " reloc refers to symbol `%T' which is not being output\n" -msgstr " la reubicación se refiere al símbolo `%T' el cual no se muestra\n" - -#: ldmisc.c:149 -#, c-format -msgid "no symbol" -msgstr "no hay símbolo" - -#: ldmisc.c:240 -#, c-format -msgid "built in linker script:%u" -msgstr "guión interno del enlazador:%u" - -#: ldmisc.c:289 ldmisc.c:293 -msgid "%B%F: could not read symbols\n" -msgstr "%B%F: no se pueden leer los símbolos\n" - -#: ldmisc.c:329 -msgid "%B: In function `%T':\n" -msgstr "%B: En la función `%T':\n" - -#: ldmisc.c:480 -msgid "%F%P: internal error %s %d\n" -msgstr "%F%P: error interno %s %d\n" - -#: ldmisc.c:526 -msgid "%P: internal error: aborting at %s line %d in %s\n" -msgstr "%P: error interno: abortando en %s línea %d en %s\n" - -#: ldmisc.c:529 -msgid "%P: internal error: aborting at %s line %d\n" -msgstr "%P: error interno: abortando en %s línea %d\n" - -#: ldmisc.c:531 -msgid "%P%F: please report this bug\n" -msgstr "%P%F: por favor reporte este bicho\n" - -#. Output for noisy == 2 is intended to follow the GNU standards. -#: ldver.c:38 -#, c-format -msgid "GNU ld version %s\n" -msgstr "GNU ld versión %s\n" - -#: ldver.c:42 -#, c-format -msgid "Copyright 2005 Free Software Foundation, Inc.\n" -msgstr "Copyright 2005 Free Software Foundation, Inc.\n" - -#: ldver.c:43 -#, c-format -msgid "" -"This program is free software; you may redistribute it under the terms of\n" -"the GNU General Public License. This program has absolutely no warranty.\n" -msgstr "" -"Este programa es software libre; puede redistribuirse bajo los términos de\n" -"la Licencia Pública General de GNU. Este programa no tiene absolutamente\n" -"ninguna garantía.\n" - -#: ldver.c:52 -#, c-format -msgid " Supported emulations:\n" -msgstr " Emulaciones con soporte:\n" - -#: ldwrite.c:55 ldwrite.c:191 -msgid "%P%F: bfd_new_link_order failed\n" -msgstr "%P%F: falló bfd_new_link_order\n" - -#: ldwrite.c:341 -msgid "%F%P: cannot create split section name for %s\n" -msgstr "%F%P: no se puede crear la tabla de división de secciones para %s\n" - -#: ldwrite.c:353 -msgid "%F%P: clone section failed: %E\n" -msgstr "%F%P: falló la clonación de la sección: %E\n" - -#: ldwrite.c:391 -#, c-format -msgid "%8x something else\n" -msgstr "%8x algo más\n" - -#: ldwrite.c:561 -msgid "%F%P: final link failed: %E\n" -msgstr "%F%P: falló el enlace final: %E\n" - -#: lexsup.c:195 lexsup.c:327 -msgid "KEYWORD" -msgstr "PALABRA CLAVE" - -#: lexsup.c:195 -msgid "Shared library control for HP/UX compatibility" -msgstr "Control de biblioteca compartida para compatibilidad con HP/UX" - -#: lexsup.c:198 -msgid "ARCH" -msgstr "ARQ" - -#: lexsup.c:198 -msgid "Set architecture" -msgstr "Establecer la arquitectura" - -#: lexsup.c:200 lexsup.c:421 -msgid "TARGET" -msgstr "OBJETIVO" - -#: lexsup.c:200 -msgid "Specify target for following input files" -msgstr "Especificar el objetivo para los siguientes ficheros de entrada" - -#: lexsup.c:203 lexsup.c:252 lexsup.c:264 lexsup.c:277 lexsup.c:380 -#: lexsup.c:433 lexsup.c:490 -msgid "FILE" -msgstr "FICHERO" - -#: lexsup.c:203 -msgid "Read MRI format linker script" -msgstr "Leer el guión del enlazador de formato MRI" - -#: lexsup.c:205 -msgid "Force common symbols to be defined" -msgstr "Forzar que los símbolos comunes sean definidos" - -#: lexsup.c:209 lexsup.c:475 lexsup.c:477 lexsup.c:479 -msgid "ADDRESS" -msgstr "DIRECCIÓN" - -#: lexsup.c:209 -msgid "Set start address" -msgstr "Establecer la dirección de inicio" - -#: lexsup.c:211 -msgid "Export all dynamic symbols" -msgstr "Exportar todos los símbolos dinámicos" - -#: lexsup.c:213 -msgid "Link big-endian objects" -msgstr "Enlazar objetos big-endian" - -#: lexsup.c:215 -msgid "Link little-endian objects" -msgstr "Enlazar objetos little-endian" - -#: lexsup.c:217 lexsup.c:220 -msgid "SHLIB" -msgstr "BIBCOMP" - -#: lexsup.c:217 -msgid "Auxiliary filter for shared object symbol table" -msgstr "Filtro auxiliar para la tabla de símbolos de objetos compartidos" - -#: lexsup.c:220 -msgid "Filter for shared object symbol table" -msgstr "Filtro para la tabla de símbolos de objetos compartidos" - -#: lexsup.c:223 -msgid "Ignored" -msgstr "Ignorado" - -#: lexsup.c:225 -msgid "SIZE" -msgstr "TAMAÑO" - -#: lexsup.c:225 -msgid "Small data size (if no size, same as --shared)" -msgstr "Tamaño de los datos small (si no se especifica, es el mismo que --shared)" - -#: lexsup.c:228 -msgid "FILENAME" -msgstr "FICHERO" - -#: lexsup.c:228 -msgid "Set internal name of shared library" -msgstr "Establecer el nombre interno de la biblioteca compartida" - -#: lexsup.c:230 -msgid "PROGRAM" -msgstr "PROGRAMA" - -#: lexsup.c:230 -msgid "Set PROGRAM as the dynamic linker to use" -msgstr "Establece el PROGRAMA como el enlazador dinámico a utilizar" - -#: lexsup.c:233 -msgid "LIBNAME" -msgstr "NOMBREBIB" - -#: lexsup.c:233 -msgid "Search for library LIBNAME" -msgstr "Buscar la biblioteca NOMBREBIB" - -#: lexsup.c:235 -msgid "DIRECTORY" -msgstr "DIRECTORIO" - -#: lexsup.c:235 -msgid "Add DIRECTORY to library search path" -msgstr "Agregar el DIRECTORIO a la ruta de búsqueda de bibliotecas" - -#: lexsup.c:238 -msgid "Override the default sysroot location" -msgstr "Sobreescribir la ubicación de sysroot por defecto" - -#: lexsup.c:240 -msgid "EMULATION" -msgstr "EMULACIÓN" - -#: lexsup.c:240 -msgid "Set emulation" -msgstr "Establecer la emulación" - -#: lexsup.c:242 -msgid "Print map file on standard output" -msgstr "Imprimir el fichero mapa en la salida estándar" - -#: lexsup.c:244 -msgid "Do not page align data" -msgstr "No paginar los datos alineados" - -#: lexsup.c:246 -msgid "Do not page align data, do not make text readonly" -msgstr "No paginar los datos alineados, no hacer el texto de sólo lectura" - -#: lexsup.c:249 -msgid "Page align data, make text readonly" -msgstr "Paginar los datos alineados, hacer el texto de sólo lectura" - -#: lexsup.c:252 -msgid "Set output file name" -msgstr "Establecer el nombre del fichero de salida" - -#: lexsup.c:254 -msgid "Optimize output file" -msgstr "Optimizar la salida del fichero" - -#: lexsup.c:256 -msgid "Ignored for SVR4 compatibility" -msgstr "Ignorado por compatibilidad con SVR4" - -#: lexsup.c:260 -msgid "Generate relocatable output" -msgstr "Generar salida reubicable" - -#: lexsup.c:264 -msgid "Just link symbols (if directory, same as --rpath)" -msgstr "Sólo enlazar símbolos (si es un directorio, es igual que --rpath)" - -#: lexsup.c:267 -msgid "Strip all symbols" -msgstr "Descartar todos los símbolos" - -#: lexsup.c:269 -msgid "Strip debugging symbols" -msgstr "Descartar los símbolos de depuración" - -#: lexsup.c:271 -msgid "Strip symbols in discarded sections" -msgstr "Descartar símbolos en las secciones descartadas" - -#: lexsup.c:273 -msgid "Do not strip symbols in discarded sections" -msgstr "No descartar símbolos en las secciones descartadas" - -#: lexsup.c:275 -msgid "Trace file opens" -msgstr "Rastrear la apertura de ficheros" - -#: lexsup.c:277 -msgid "Read linker script" -msgstr "Leer el guión del enlazador" - -#: lexsup.c:279 lexsup.c:297 lexsup.c:363 lexsup.c:378 lexsup.c:468 -#: lexsup.c:493 lexsup.c:520 -msgid "SYMBOL" -msgstr "SÍMBOLO" - -#: lexsup.c:279 -msgid "Start with undefined reference to SYMBOL" -msgstr "Iniciar con una referencia sin definir hacia el SÍMBOLO" - -#: lexsup.c:282 -msgid "[=SECTION]" -msgstr "[=SECCIóN]" - -#: lexsup.c:283 -msgid "Don't merge input [SECTION | orphan] sections" -msgstr "No mezclar secciones de entrada [SECCIÓN | huérfanas]" - -#: lexsup.c:285 -msgid "Build global constructor/destructor tables" -msgstr "Construir tablas globales de constructores/destructores" - -#: lexsup.c:287 -msgid "Print version information" -msgstr "Mostrar la información de la versión" - -#: lexsup.c:289 -msgid "Print version and emulation information" -msgstr "Mostrar la información de la versión y la emulación" - -#: lexsup.c:291 -msgid "Discard all local symbols" -msgstr "Descartar todos los símbolos locales" - -#: lexsup.c:293 -msgid "Discard temporary local symbols (default)" -msgstr "Descartar los símbolos locales temporales (por defecto)" - -#: lexsup.c:295 -msgid "Don't discard any local symbols" -msgstr "No descartar ningún símbolo local" - -#: lexsup.c:297 -msgid "Trace mentions of SYMBOL" -msgstr "Rastrear las menciones del SÍMBOLO" - -#: lexsup.c:299 lexsup.c:435 lexsup.c:437 -msgid "PATH" -msgstr "RUTA" - -#: lexsup.c:299 -msgid "Default search path for Solaris compatibility" -msgstr "Ruta de búsqueda por defecto para compatibilidad con Solaris" - -#: lexsup.c:302 -msgid "Start a group" -msgstr "Iniciar un grupo" - -#: lexsup.c:304 -msgid "End a group" -msgstr "Terminar un grupo" - -#: lexsup.c:308 -msgid "Accept input files whose architecture cannot be determined" -msgstr "Aceptar ficheros de entrada cuya arquitectura no se pueda determinar" - -#: lexsup.c:312 -msgid "Reject input files whose architecture is unknown" -msgstr "Rechazar ficheros de entrada cuya arquitectura es desconocida" - -#: lexsup.c:315 -msgid "" -"Set DT_NEEDED tags for DT_NEEDED entries in\n" -"\t\t\t\tfollowing dynamic libs" -msgstr "" -"Establece las marcas DT_NEEDED para las entradas DT_NEEDED en\n" -"\t\t\t\tlas bibliotecas dinámicas a continuación" - -#: lexsup.c:318 -msgid "" -"Do not set DT_NEEDED tags for DT_NEEDED entries\n" -"\t\t\t\tin following dynamic libs" -msgstr "" -"No establece las marcas DT_NEEDED para las entradas DT_NEEDED en\n" -"\t\t\t\tlas bibliotecas dinámicas a continuación" - -#: lexsup.c:321 -msgid "Only set DT_NEEDED for following dynamic libs if used" -msgstr "Sólo establece DT_NEEDED para las siguientes bibliotecas dinámicas si se usan" - -#: lexsup.c:324 -msgid "Always set DT_NEEDED for following dynamic libs" -msgstr "Siempre establece DT_NEEDED para las siguientes bibliotecas dinámicas" - -#: lexsup.c:327 -msgid "Ignored for SunOS compatibility" -msgstr "Ignorado por compatibilidad con SunOS" - -#: lexsup.c:329 -msgid "Link against shared libraries" -msgstr "Enlazar contra bibliotecas compartidas" - -#: lexsup.c:335 -msgid "Do not link against shared libraries" -msgstr "No enlazar contra bibliotecas compartidas" - -#: lexsup.c:343 -msgid "Bind global references locally" -msgstr "Asociar localmente las referencias globlales" - -#: lexsup.c:345 -msgid "Check section addresses for overlaps (default)" -msgstr "Revisar las direcciones de las secciones por traslapes (por defecto)" - -#: lexsup.c:348 -msgid "Do not check section addresses for overlaps" -msgstr "No revisar las direcciones de las secciones por traslapes" - -#: lexsup.c:351 -msgid "Output cross reference table" -msgstr "Mostrar la tabla de referencias cruzadas" - -#: lexsup.c:353 -msgid "SYMBOL=EXPRESSION" -msgstr "SÍMBOLO=EXPRESIÓN" - -#: lexsup.c:353 -msgid "Define a symbol" -msgstr "Define un símbolo" - -#: lexsup.c:355 -msgid "[=STYLE]" -msgstr "[=ESTILO]" - -#: lexsup.c:355 -msgid "Demangle symbol names [using STYLE]" -msgstr "Desenreda los nombres de los símbolos [utilizando el ESTILO]" - -# No me convence mucho la traducción de `embedded' por imbuído. cfuga -#: lexsup.c:358 -msgid "Generate embedded relocs" -msgstr "Genera reubicaciones imbuídas" - -#: lexsup.c:360 -msgid "Treat warnings as errors" -msgstr "Tratar los avisos como errores" - -#: lexsup.c:363 -msgid "Call SYMBOL at unload-time" -msgstr "Llamar al SÍMBOLO al momento de descargar" - -#: lexsup.c:365 -msgid "Force generation of file with .exe suffix" -msgstr "Forzar la generación del fichero con sufijo .exe" - -#: lexsup.c:367 -msgid "Remove unused sections (on some targets)" -msgstr "Eliminar las secciones sin uso (en algunos objetivos)" - -#: lexsup.c:370 -msgid "Don't remove unused sections (default)" -msgstr "No eliminar las secciones sin uso (por defecto)" - -#: lexsup.c:373 -msgid "Set default hash table size close to " -msgstr "Establece el tamaño de de la tabla de dispersión cercano al " - -#: lexsup.c:376 -msgid "Print option help" -msgstr "Muestra la ayuda de opciones" - -#: lexsup.c:378 -msgid "Call SYMBOL at load-time" -msgstr "Llamar al SÍMBOLO al momento de cargar" - -#: lexsup.c:380 -msgid "Write a map file" -msgstr "Escribir un fichero mapa" - -#: lexsup.c:382 -msgid "Do not define Common storage" -msgstr "No definir almacenamiento Common" - -#: lexsup.c:384 -msgid "Do not demangle symbol names" -msgstr "No desenredar los nombres de los símbolos" - -#: lexsup.c:386 -msgid "Use less memory and more disk I/O" -msgstr "Usar menos memoria y más E/S de disco" - -#: lexsup.c:388 -msgid "Do not allow unresolved references in object files" -msgstr "No permitir referencias sin resolver en ficheros objeto" - -#: lexsup.c:391 -msgid "Allow unresolved references in shared libaries" -msgstr "Permitir referencias sin resolver en bibliotecas compartidas" - -#: lexsup.c:395 -msgid "Do not allow unresolved references in shared libs" -msgstr "No permitir referencias sin resolver en bibliotecas compartidas" - -#: lexsup.c:399 -msgid "Allow multiple definitions" -msgstr "Permitir definiciones múltiples" - -#: lexsup.c:401 -msgid "Disallow undefined version" -msgstr "No permitir versiones sin definir" - -#: lexsup.c:403 -msgid "Create default symbol version" -msgstr "Crear la versión de símbolo por defecto" - -#: lexsup.c:406 -msgid "Create default symbol version for imported symbols" -msgstr "Crear la versión de símbolo por defecto para símbolos importados" - -#: lexsup.c:409 -msgid "Don't warn about mismatched input files" -msgstr "No avisar sobre ficheros de entrada sin coincidencia" - -#: lexsup.c:411 -msgid "Turn off --whole-archive" -msgstr "Apagar --whole-archive" - -#: lexsup.c:413 -msgid "Create an output file even if errors occur" -msgstr "Crear un fichero de salida aún si ocurren errores" - -#: lexsup.c:418 -msgid "" -"Only use library directories specified on\n" -"\t\t\t\tthe command line" -msgstr "" -"Utilizar solamente los directorios de bibliotecas\n" -"\t\t\t\tespecificados en la línea de comandos" - -#: lexsup.c:421 -msgid "Specify target of output file" -msgstr "Especificar el objetivo del fichero de salida" - -#: lexsup.c:424 -msgid "Ignored for Linux compatibility" -msgstr "Ignorado por compatibilidad con Linux" - -#: lexsup.c:427 -msgid "Reduce memory overheads, possibly taking much longer" -msgstr "Reducir las saturaciones de memoria, tal vez tomando más tiempo" - -#: lexsup.c:430 -msgid "Relax branches on certain targets" -msgstr "Relajar ramificaciones en ciertos objetivos" - -#: lexsup.c:433 -msgid "Keep only symbols listed in FILE" -msgstr "Conservar solamente los símbolos enlistados en el FICHERO" - -#: lexsup.c:435 -msgid "Set runtime shared library search path" -msgstr "Establecer la rúta de búsqueda de bibliotecas compartidas en tiempo de ejecución" - -#: lexsup.c:437 -msgid "Set link time shared library search path" -msgstr "Establecer la rúta de búsqueda de bibliotecas compartidas en tiempo de enlace" - -#: lexsup.c:440 -msgid "Create a shared library" -msgstr "Crear una biblioteca compartida" - -#: lexsup.c:444 -msgid "Create a position independent executable" -msgstr "Crear un ejecutable independiente de posición" - -#: lexsup.c:448 -msgid "Sort common symbols by size" -msgstr "Ordenar los símbolos comunes por tamaño" - -#: lexsup.c:452 -msgid "name|alignment" -msgstr "nombre|alineación" - -#: lexsup.c:453 -msgid "Sort sections by name or maximum alignment" -msgstr "Ordenar secciones por nombre o alineación máxima" - -#: lexsup.c:455 -msgid "COUNT" -msgstr "CUENTA" - -#: lexsup.c:455 -msgid "How many tags to reserve in .dynamic section" -msgstr "Cúantas marcas reservar en la sección .dynamic" - -#: lexsup.c:458 -msgid "[=SIZE]" -msgstr "[=TAMAÑO]" - -#: lexsup.c:458 -msgid "Split output sections every SIZE octets" -msgstr "Dividir las secciones de salida cada TAMAÑO octetos" - -#: lexsup.c:461 -msgid "[=COUNT]" -msgstr "[=CUENTA]" - -#: lexsup.c:461 -msgid "Split output sections every COUNT relocs" -msgstr "Dividir las secciones de salida cada CUENTA reubicaciones" - -#: lexsup.c:464 -msgid "Print memory usage statistics" -msgstr "Mostrar las estadísticas de uso de memoria" - -#: lexsup.c:466 -msgid "Display target specific options" -msgstr "Mostrar las opciones específicas del objetivo" - -#: lexsup.c:468 -msgid "Do task level linking" -msgstr "Enlazar a nivel de tarea" - -#: lexsup.c:470 -msgid "Use same format as native linker" -msgstr "Usar el mismo formato que el enlazador nativo" - -#: lexsup.c:472 -msgid "SECTION=ADDRESS" -msgstr "SECCIÓN=DIRECCIÓN" - -#: lexsup.c:472 -msgid "Set address of named section" -msgstr "Establecer la dirección de la sección nombrada" - -#: lexsup.c:475 -msgid "Set address of .bss section" -msgstr "Establecer la dirección de la sección .bss" - -#: lexsup.c:477 -msgid "Set address of .data section" -msgstr "Establecer la dirección de la sección .data" - -#: lexsup.c:479 -msgid "Set address of .text section" -msgstr "Establecer la dirección de la sección .text" - -#: lexsup.c:482 -msgid "" -"How to handle unresolved symbols. is:\n" -"\t\t\t\tignore-all, report-all, ignore-in-object-files,\n" -"\t\t\t\tignore-in-shared-libs" -msgstr "" -"Cómo manejar símbolos sin resolver. es:\n" -"\t\t\t\tignore-all, report-all, ignore-in-object-files,\n" -"\t\t\t\tignore-in-shared-libs" - -#: lexsup.c:486 -msgid "Output lots of information during link" -msgstr "Mostrar mucha información durante el enlace" - -#: lexsup.c:490 -msgid "Read version information script" -msgstr "Leer la información de la versión del guión" - -#: lexsup.c:493 -msgid "" -"Take export symbols list from .exports, using\n" -"\t\t\t\tSYMBOL as the version." -msgstr "" -"Tomar la lista de exportación de símbolos de .exports, usando\n" -"\t\t\tel SÍMBOLO como la versión." - -#: lexsup.c:496 -msgid "Warn about duplicate common symbols" -msgstr "Avisar sobre símbolos comunes duplicados" - -#: lexsup.c:498 -msgid "Warn if global constructors/destructors are seen" -msgstr "Avisar si se ven constructores/destructores globales" - -#: lexsup.c:501 -msgid "Warn if the multiple GP values are used" -msgstr "Avisar si se usan los valores múltiples GP" - -#: lexsup.c:503 -msgid "Warn only once per undefined symbol" -msgstr "Avisar sólo una vez por cada símbolo sin definir" - -#: lexsup.c:505 -msgid "Warn if start of section changes due to alignment" -msgstr "Avisar si el inicio de la sección cambia debido a la alineación" - -#: lexsup.c:508 -msgid "Warn if shared object has DT_TEXTREL" -msgstr "Avisar si el objeto compartido tiene DT_TEXTREL" - -#: lexsup.c:512 -msgid "Report unresolved symbols as warnings" -msgstr "Reportar símbolos sin resolver como avisos" - -#: lexsup.c:515 -msgid "Report unresolved symbols as errors" -msgstr "Reportar símbolos sin resolver como errores" - -#: lexsup.c:517 -msgid "Include all objects from following archives" -msgstr "Incluir todos los objetos de los siguientes ficheros" - -#: lexsup.c:520 -msgid "Use wrapper functions for SYMBOL" -msgstr "Usar funciones de envoltura para el SÍMBOLO" - -#: lexsup.c:667 -msgid "%P: unrecognized option '%s'\n" -msgstr "%P: opción `%s' no reconocida\n" - -#: lexsup.c:669 -msgid "%P%F: use the --help option for usage information\n" -msgstr "%P%F: use la opción --help para información de modo de empleo\n" - -#: lexsup.c:687 -msgid "%P%F: unrecognized -a option `%s'\n" -msgstr "%P%F: opción -a `%s' no reconocida\n" - -#: lexsup.c:700 -msgid "%P%F: unrecognized -assert option `%s'\n" -msgstr "%P%F: opción -assert `%s' no reconocida\n" - -#: lexsup.c:743 -msgid "%F%P: unknown demangling style `%s'" -msgstr "%F%P: estilo de desenredo `%s' desconocido" - -#: lexsup.c:805 -msgid "%P%F: invalid number `%s'\n" -msgstr "%P%F: número `%s' inválido\n" - -#: lexsup.c:897 -msgid "%P%F: bad --unresolved-symbols option: %s\n" -msgstr "%P%F: opción --unresolved-symbols no reconocida: %s\n" - -#. This can happen if the user put "-rpath,a" on the command -#. line. (Or something similar. The comma is important). -#. Getopt becomes confused and thinks that this is a -r option -#. but it cannot parse the text after the -r so it refuses to -#. increment the optind counter. Detect this case and issue -#. an error message here. We cannot just make this a warning, -#. increment optind, and continue because getopt is too confused -#. and will seg-fault the next time around. -#: lexsup.c:968 -msgid "%P%F: bad -rpath option\n" -msgstr "%P%F: opción -rpath errónea\n" - -#: lexsup.c:1080 -msgid "%P%F: -shared not supported\n" -msgstr "%P%F: -shared no tiene soporte\n" - -#: lexsup.c:1089 -msgid "%P%F: -pie not supported\n" -msgstr "%P%F: -pie no tiene soporte\n" - -#: lexsup.c:1099 -msgid "name" -msgstr "nombre" - -#: lexsup.c:1101 -msgid "alignment" -msgstr "alineación" - -#: lexsup.c:1104 -msgid "%P%F: invalid section sorting option: %s\n" -msgstr "%P%F: opción de ordenado de sección inválida: %s\n" - -#: lexsup.c:1130 -msgid "%P%F: invalid argument to option \"--section-start\"\n" -msgstr "%P%F: argumento inválido para la opción \"--section-start\"\n" - -#: lexsup.c:1137 -msgid "%P%F: missing argument(s) to option \"--section-start\"\n" -msgstr "%P%F: falta(n) argumento(s) para la opción \"--section-start\"\n" - -#: lexsup.c:1311 -msgid "%P%F: may not nest groups (--help for usage)\n" -msgstr "%P%F: no se pueden anidar grupos (--help para modo de empleo)\n" - -#: lexsup.c:1318 -msgid "%P%F: group ended before it began (--help for usage)\n" -msgstr "%P%F: el grupo terminó antes de empezar (--help para modo de empleo)\n" - -#: lexsup.c:1346 -msgid "%P%X: --hash-size needs a numeric argument\n" -msgstr "%P%X: --hash-size necesita un argumento numérico\n" - -#: lexsup.c:1397 lexsup.c:1410 -msgid "%P%F: invalid hex number `%s'\n" -msgstr "%P%F: número hexadecimal `%s' inválido\n" - -#: lexsup.c:1445 -#, c-format -msgid "Usage: %s [options] file...\n" -msgstr "Modo de empleo: %s [opciones] fichero...\n" - -#: lexsup.c:1447 -#, c-format -msgid "Options:\n" -msgstr "Opciones:\n" - -#. Note: Various tools (such as libtool) depend upon the -#. format of the listings below - do not change them. -#: lexsup.c:1530 -#, c-format -msgid "%s: supported targets:" -msgstr "%s: objetivos con soporte:" - -#: lexsup.c:1538 -#, c-format -msgid "%s: supported emulations: " -msgstr "%s: emulaciones con soporte: " - -#: lexsup.c:1543 -#, c-format -msgid "%s: emulation specific options:\n" -msgstr "%s: opciones específicas de emulación:\n" - -#: lexsup.c:1547 -#, c-format -msgid "Report bugs to %s\n" -msgstr "Reportar bichos a %s\n" - -#: mri.c:291 -msgid "%P%F: unknown format type %s\n" -msgstr "%P%F: tipo de formato %s desconocido\n" - -#: pe-dll.c:303 -#, c-format -msgid "%XUnsupported PEI architecture: %s\n" -msgstr "%XArquitectura PEI sin soporte: %s\n" - -#: pe-dll.c:652 -#, c-format -msgid "%XError, duplicate EXPORT with ordinals: %s (%d vs %d)\n" -msgstr "%XError, EXPORT duplicado con ordinales: %s (%d vs %d)\n" - -#: pe-dll.c:659 -#, c-format -msgid "Warning, duplicate EXPORT: %s\n" -msgstr "Aviso, EXPORT duplicado: %s\n" - -#: pe-dll.c:725 -#, c-format -msgid "%XCannot export %s: symbol not defined\n" -msgstr "%XNo se puede exportar %s: símbolo no definido\n" - -#: pe-dll.c:731 -#, c-format -msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n" -msgstr "%XNo se puede exportar %s: tipo erróneo del símbolo (%d vs %d)\n" - -#: pe-dll.c:738 -#, c-format -msgid "%XCannot export %s: symbol not found\n" -msgstr "%XNo se puede exportar %s: no se encuentra el símbolo\n" - -#: pe-dll.c:850 -#, c-format -msgid "%XError, ordinal used twice: %d (%s vs %s)\n" -msgstr "%XError, ordinal utilizado dos veces: %d (%s vs %s)\n" - -#: pe-dll.c:1172 -#, c-format -msgid "%XError: %d-bit reloc in dll\n" -msgstr "%XError: reubicación de %d-bit en la dll\n" - -#: pe-dll.c:1300 -#, c-format -msgid "%s: Can't open output def file %s\n" -msgstr "%s: No se puede abrir el fichero por defecto de salida %s\n" - -#: pe-dll.c:1443 -#, c-format -msgid "; no contents available\n" -msgstr "; no hay contenido disponible\n" - -#: pe-dll.c:2205 -msgid "%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n" -msgstr "%C: no se puede auto-importar la variable '%T'. Por favor lea la documentación para --enable-auto-import de ld para más detalles.\n" - -#: pe-dll.c:2235 -#, c-format -msgid "%XCan't open .lib file: %s\n" -msgstr "%XNo se puede abrir el fichero .lib: %s\n" - -#: pe-dll.c:2240 -#, c-format -msgid "Creating library file: %s\n" -msgstr "Creando el fichero de biblioteca: %s\n" - -#~ msgid "%F%P: %s uses undefined section %s\n" -#~ msgstr "%F%P: %s usa la sección sin definir %s\n" - -#~ msgid "%F%P: %s forward reference of section %s\n" -#~ msgstr "%F%P: %s es una referencia hacia adelante de la sección %s\n" - -#~ msgid "%F%P: cannot open %s for %s: %E\n" -#~ msgstr "%F%P: no se puede abrir %s para %s: %E\n" - -#~ msgid "%F%P: cannot open %s: %E\n" -#~ msgstr "%F%P: no se puede abrir %s: %E\n" - -#~ msgid "%P%F: unknown architecture: %s\n" -#~ msgstr "%P%F: arquitectura desconocida: %s\n" - -#~ msgid "%P%F: target architecture respecified\n" -#~ msgstr "%P%F: arquitectura destino reespecificada\n" - -#~ msgid "%P: %B: warning: ignoring duplicate `%s' section symbol `%s'\n" -#~ msgstr "%P: %B: aviso: ignorando el símbolo duplicado `%s' de la sección `%s'\n" - -#~ msgid "%P: %B: warning: duplicate section `%s' has different size\n" -#~ msgstr "%P: %B: aviso: la sección duplicada `%s' tiene tamaño diferente\n" - -#~ msgid "%P: no [COMMON] command, defaulting to .bss\n" -#~ msgstr "%P: no hay una orden [COMMON], usando .bss por defecto\n" - -#~ msgid "%P%F: -r and --mpc860c0 may not be used together\n" -#~ msgstr "%P%F: no se pueden usar juntos -r y --mpc860c0\n" - -#~ msgid "Allow no undefined symbols" -#~ msgstr "No permitir símbolos sin definir" - -#~ msgid "Allow undefined symbols in shared objects (the default)" -#~ msgstr "Permitir símbolos sin definir en objetos compartidos (por defecto)" - -#~ msgid "[=WORDS]" -#~ msgstr "[=PALABRAS]" - -#~ msgid "" -#~ "Modify problematic branches in last WORDS (1-10,\n" -#~ "\t\t\t\tdefault 5) words of a page" -#~ msgstr "" -#~ "Modificar las ramificaciones problemáticas en las últimas PALABRAS (1-10,\n" -#~ "\t\t\t5 por defecto) palabras de una página" - -#~ msgid "%P%F: invalid argument to option \"mpc860c0\"\n" -#~ msgstr "%P%F: Argumento inválido para la opción \"mpc860c0\"\n" - -#~ msgid " create __imp_ as well.\n" -#~ msgstr " creando también __imp_.\n" - -#~ msgid " unless user specifies one\n" -#~ msgstr " a menos que el usuario especifique alguna\n" - -#~ msgid " --dll-search-prefix= When linking dynamically to a dll witout an\n" -#~ msgstr " --dll-search-prefix= Al enlazar dinámicamente con una dll sin una\n" - -#~ msgid " importlib, use .dll \n" -#~ msgstr " biblioteca de importación, usar .dll\n" - -#~ msgid " in preference to lib.dll \n" -#~ msgstr " en lugar de lib.dll \n" - -#~ msgid "Archive member included" -#~ msgstr "Se incluyó el fichero miembro" - -#~ msgid "Don't merge orphan sections with the same name" -#~ msgstr "No mezclar secciones huérfanas con el mismo nombre" diff --git a/ld/po/fr.po b/ld/po/fr.po deleted file mode 100644 index 2b07f861c0f..00000000000 --- a/ld/po/fr.po +++ /dev/null @@ -1,1987 +0,0 @@ -# Messages français pour ld. -# Copyright © 2004 Free Software Foundation, Inc. -# Michel Robitaille , traducteur depuis/since 1996. -# -msgid "" -msgstr "" -"Project-Id-Version: ld 2.15.96\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-03-03 21:05+1030\n" -"PO-Revision-Date: 2005-03-23 08:00-0500\n" -"Last-Translator: Michel Robitaille \n" -"Language-Team: French \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#: emultempl/armcoff.em:72 -#, c-format -msgid " --support-old-code Support interworking with old code\n" -msgstr " --support-old-code supporter les veilles versions de code\n" - -#: emultempl/armcoff.em:73 -#, c-format -msgid " --thumb-entry= Set the entry point to be Thumb symbol \n" -msgstr " --thumb-entry= initialiser le point d'entrée de Thumb symbol à \n" - -#: emultempl/armcoff.em:121 -#, c-format -msgid "Errors encountered processing file %s" -msgstr "Erreur rencontrées lors du traitement du fichier %s" - -#: emultempl/armcoff.em:188 emultempl/pe.em:1455 -msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n" -msgstr "%P: AVERTISSEMENT: « --thumb-entry %s » écrase « -e %s »\n" - -#: emultempl/armcoff.em:193 emultempl/pe.em:1460 -msgid "%P: warning: connot find thumb start symbol %s\n" -msgstr "%P: AVERTISSEMENT: ne peut repérer le symbole thumb de départ %s\n" - -#: emultempl/pe.em:301 -#, c-format -msgid " --base_file Generate a base file for relocatable DLLs\n" -msgstr " --base_file générer une fichier de base les les DLL relocalisables\n" - -#: emultempl/pe.em:302 -#, c-format -msgid " --dll Set image base to the default for DLLs\n" -msgstr " --dll initialise l'image de base au DLL par défaut\n" - -#: emultempl/pe.em:303 -#, c-format -msgid " --file-alignment Set file alignment\n" -msgstr " --file-alignment initialiser l'alignement du fichier\n" - -#: emultempl/pe.em:304 -#, c-format -msgid " --heap Set initial size of the heap\n" -msgstr " --heap initialiser la taille initiale du monceau\n" - -#: emultempl/pe.em:305 -#, c-format -msgid " --image-base
Set start address of the executable\n" -msgstr " --image-base initialiser l'adresse de début de l'exécutable\n" - -#: emultempl/pe.em:306 -#, c-format -msgid " --major-image-version Set version number of the executable\n" -msgstr " --major-image-version initialiser le numéro de version de l'exécutable\n" - -#: emultempl/pe.em:307 -#, c-format -msgid " --major-os-version Set minimum required OS version\n" -msgstr " --major-os-version initialiser le numéro minimum de version du système d'exploitation\n" - -#: emultempl/pe.em:308 -#, c-format -msgid " --major-subsystem-version Set minimum required OS subsystem version\n" -msgstr " --major-subsystem-version initialiser le numéro minimum de version du sous-système\n" - -#: emultempl/pe.em:309 -#, c-format -msgid " --minor-image-version Set revision number of the executable\n" -msgstr " --minor-image-version initialiser le numéro de révision de l'exécutable\n" - -#: emultempl/pe.em:310 -#, c-format -msgid " --minor-os-version Set minimum required OS revision\n" -msgstr " --minor-os-version initialiser le numéro minimum de version du système d'exploitation\n" - -#: emultempl/pe.em:311 -#, c-format -msgid " --minor-subsystem-version Set minimum required OS subsystem revision\n" -msgstr " --minor-subsystem-version initialiser le numéro minimum de version du sous-système\n" - -#: emultempl/pe.em:312 -#, c-format -msgid " --section-alignment Set section alignment\n" -msgstr " --section-alignment initialiser l'alignement de section\n" - -#: emultempl/pe.em:313 -#, c-format -msgid " --stack Set size of the initial stack\n" -msgstr " --stack initialiser la taille initiale de la pile\n" - -#: emultempl/pe.em:314 -#, c-format -msgid " --subsystem [:] Set required OS subsystem [& version]\n" -msgstr " --subsystem [:] initialiser le sous-système de l'OS requis [&version]\n" - -#: emultempl/pe.em:315 -#, c-format -msgid " --support-old-code Support interworking with old code\n" -msgstr " --support-old-code supporter l'inter-réseautage avec le vieux code\n" - -#: emultempl/pe.em:316 -#, c-format -msgid " --thumb-entry= Set the entry point to be Thumb \n" -msgstr " --thumb-entry= initialiser le point d'entrée de Thumb \n" - -#: emultempl/pe.em:318 -#, c-format -msgid " --add-stdcall-alias Export symbols with and without @nn\n" -msgstr " --add-stdcall-alias exporter les symboles avec et sans @nn\n" - -#: emultempl/pe.em:319 -#, c-format -msgid " --disable-stdcall-fixup Don't link _sym to _sym@nn\n" -msgstr " --disable-stdcall-fixup ne lier _sym à _sym@nn\n" - -#: emultempl/pe.em:320 -#, c-format -msgid " --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n" -msgstr " --enable-stdcall-fixup lier _sym à _sym@nn sans avertissement\n" - -#: emultempl/pe.em:321 -#, c-format -msgid " --exclude-symbols sym,sym,... Exclude symbols from automatic export\n" -msgstr " --exclude-symbols sym,sym,... exclure les symboles de l'exportation automatique\n" - -#: emultempl/pe.em:322 -#, c-format -msgid " --exclude-libs lib,lib,... Exclude libraries from automatic export\n" -msgstr " --exclude-libs libs,lib,... exclure les librairies lors l'exportation automatique\n" - -#: emultempl/pe.em:323 -#, c-format -msgid " --export-all-symbols Automatically export all globals to DLL\n" -msgstr " --export-all-symbols exporter automatiquement tous les globaux au DLL\n" - -#: emultempl/pe.em:324 -#, c-format -msgid " --kill-at Remove @nn from exported symbols\n" -msgstr " --kill-at enlever les @nn des symboles exportés\n" - -#: emultempl/pe.em:325 -#, c-format -msgid " --out-implib Generate import library\n" -msgstr " --out-implib générer la librairie d'importation\n" - -#: emultempl/pe.em:326 -#, c-format -msgid " --output-def Generate a .DEF file for the built DLL\n" -msgstr " --output-def générer le fichier .DEF pour le DLL construit\n" - -#: emultempl/pe.em:327 -#, c-format -msgid " --warn-duplicate-exports Warn about duplicate exports.\n" -msgstr " --warn-duplicate-exports avertir lors de l'exportation avec duplication\n" - -#: emultempl/pe.em:328 -#, c-format -msgid "" -" --compat-implib Create backward compatible import libs;\n" -" create __imp_ as well.\n" -msgstr "" -" --compat-implib créer des librairies d'importation avec\n" -" compatibilité arrière; \n" -" créer __imp_ aussi\n" - -#: emultempl/pe.em:330 -#, c-format -msgid "" -" --enable-auto-image-base Automatically choose image base for DLLs\n" -" unless user specifies one\n" -msgstr "" -" --enable-auto-image-base automatiquement choisir l'image de base pour les DLL\n" -" à moins que l'usager en ait spécifié une\n" - -#: emultempl/pe.em:332 -#, c-format -msgid " --disable-auto-image-base Do not auto-choose image base. (default)\n" -msgstr " --disable-auto-image-base ne pas choisir automatiquement l'image de base (par défaut)\n" - -#: emultempl/pe.em:333 -#, c-format -msgid "" -" --dll-search-prefix= When linking dynamically to a dll without\n" -" an importlib, use .dll\n" -" in preference to lib.dll \n" -msgstr "" -" --dll-search-prefix= lors de l'édition dynamique de liens vers un DLL sans\n" -" importlib, utiliser .dll \n" -" de préférence à lib.dll \n" - -#: emultempl/pe.em:336 -#, c-format -msgid "" -" --enable-auto-import Do sophistcated linking of _sym to\n" -" __imp_sym for DATA references\n" -msgstr "" -" --enable-auto-import faire de l'édition sophitiquée de liens de _sym vers \n" -" __imp_sym pour les références DATA\n" - -#: emultempl/pe.em:338 -#, c-format -msgid " --disable-auto-import Do not auto-import DATA items from DLLs\n" -msgstr " --disable-auto-image-base ne pas choisir des items DATA auto-importés à partir des DLLs\n" - -#: emultempl/pe.em:339 -#, c-format -msgid "" -" --enable-runtime-pseudo-reloc Work around auto-import limitations by\n" -" adding pseudo-relocations resolved at\n" -" runtime.\n" -msgstr "" -" --dll-search-prefix= traiter les limitation d'auto-importations en\n" -" ajoutant des pseudo-relocalisations résolues\n" -" lors de l'exécution\n" - -#: emultempl/pe.em:342 -#, c-format -msgid "" -" --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations for\n" -" auto-imported DATA.\n" -msgstr "" -" --enable-auto-import ne pas ajouter de pseudo-relocalisations lors\n" -" lors de l'exécution pour les données auto-importées\n" - -#: emultempl/pe.em:344 -#, c-format -msgid "" -" --enable-extra-pe-debug Enable verbose debug output when building\n" -" or linking to DLLs (esp. auto-import)\n" -msgstr "" -" --enable-extra-pe-debug permettre le mode informatif durant la sortie\n" -" de mise au point lors de la construction ou du lien\n" -" vers un DLLs (spécialement en auto-import)\n" - -#: emultempl/pe.em:347 -#, c-format -msgid "" -" --large-address-aware Executable supports virtual addresses\n" -" greater than 2 gigabytes\n" -msgstr "" -" --large-address-aware supporter des adresses virtuelles pour les exécutables\n" -" plus grande que 2 gigaoctets\n" - -#: emultempl/pe.em:414 -msgid "%P: warning: bad version number in -subsystem option\n" -msgstr "%P: AVERTISSEMENT: mauvais numéro de version dans l'option -subsystem\n" - -#: emultempl/pe.em:445 -msgid "%P%F: invalid subsystem type %s\n" -msgstr "%P%F: type de sous-système invalide %s\n" - -#: emultempl/pe.em:484 -msgid "%P%F: invalid hex number for PE parameter '%s'\n" -msgstr "%P%F: nombre hexadécimal invalide pour un paramètre PE « %s »\n" - -#: emultempl/pe.em:501 -msgid "%P%F: strange hex info for PE parameter '%s'\n" -msgstr "%P%F: info étrange en hexadécimal pour un paramètre PE « %s »\n" - -#: emultempl/pe.em:518 -#, c-format -msgid "%s: Can't open base file %s\n" -msgstr "%s: ne peut ouvrir le fichier de base %s\n" - -#: emultempl/pe.em:734 -msgid "%P: warning, file alignment > section alignment.\n" -msgstr "%P: AVERTISSEMENT, alignement de fichier > alignement de section\n" - -#: emultempl/pe.em:821 emultempl/pe.em:848 -#, c-format -msgid "Warning: resolving %s by linking to %s\n" -msgstr "AVERTISSEMENT: résolution de %s par un lien vers %s\n" - -#: emultempl/pe.em:826 emultempl/pe.em:853 -msgid "Use --enable-stdcall-fixup to disable these warnings\n" -msgstr "Utiliser --enable-stdcall-fixup pour inhiber les avertissements\n" - -#: emultempl/pe.em:827 emultempl/pe.em:854 -msgid "Use --disable-stdcall-fixup to disable these fixups\n" -msgstr "Utiliser --disable-stdcall-fixup pour inhiber les correctifs\n" - -#: emultempl/pe.em:873 -#, c-format -msgid "%C: Cannot get section contents - auto-import exception\n" -msgstr "%C: ne peut obtenir le contenu de section - exception auto-import\n" - -#: emultempl/pe.em:910 -#, c-format -msgid "Info: resolving %s by linking to %s (auto-import)\n" -msgstr "Info: résolution de %s par un lien vers %s (auto-importé)\n" - -#: emultempl/pe.em:983 -msgid "%F%P: PE operations on non PE file.\n" -msgstr "%F%P: operations PE sur des fichiers non PE.\n" - -#: emultempl/pe.em:1258 -#, c-format -msgid "Errors encountered processing file %s\n" -msgstr "Erreurs rencontrées lors du traitement du fichier %s\n" - -#: emultempl/pe.em:1281 -#, c-format -msgid "Errors encountered processing file %s for interworking" -msgstr "Erreurs rencontrées lors du traitement du fichier %s pour l'inter-réseautage" - -#: emultempl/pe.em:1340 ldexp.c:570 ldlang.c:2408 ldlang.c:5135 ldlang.c:5166 -#: ldmain.c:1161 -msgid "%P%F: bfd_link_hash_lookup failed: %E\n" -msgstr "%P%F: bfd_link_hash_lookup en échec: %E\n" - -#: ldcref.c:153 -msgid "%X%P: bfd_hash_table_init of cref table failed: %E\n" -msgstr "%X%P: bfd_hash_table_init de la tacle cref en échec: %E\n" - -#: ldcref.c:159 -msgid "%X%P: cref_hash_lookup failed: %E\n" -msgstr "%X%P: cref_hash_lookup en échec: %E\n" - -#: ldcref.c:225 -#, c-format -msgid "" -"\n" -"Cross Reference Table\n" -"\n" -msgstr "" -"\n" -"Table de référence croisé\n" -"\n" - -#: ldcref.c:226 -msgid "Symbol" -msgstr "Symbole" - -#: ldcref.c:234 -#, c-format -msgid "File\n" -msgstr "Fichier\n" - -#: ldcref.c:238 -#, c-format -msgid "No symbols\n" -msgstr "Aucun symbol\n" - -#: ldcref.c:359 ldcref.c:478 -msgid "%B%F: could not read symbols; %E\n" -msgstr "%B%F: ne peut lire les symboles; %E\n" - -#: ldcref.c:363 ldcref.c:482 ldmain.c:1226 ldmain.c:1230 -msgid "%B%F: could not read symbols: %E\n" -msgstr "%B%F: ne peut lire les symboles: %E\n" - -#: ldcref.c:414 -msgid "%P: symbol `%T' missing from main hash table\n" -msgstr "%P: symbole « %T » manquant dans la table de hachage principale\n" - -#: ldcref.c:547 ldcref.c:554 ldmain.c:1273 ldmain.c:1280 -msgid "%B%F: could not read relocs: %E\n" -msgstr "%B%F: ne peut lire les relocalisations: %E\n" - -#. We found a reloc for the symbol. The symbol is defined -#. in OUTSECNAME. This reloc is from a section which is -#. mapped into a section from which references to OUTSECNAME -#. are prohibited. We must report an error. -#: ldcref.c:573 -msgid "%X%C: prohibited cross reference from %s to `%T' in %s\n" -msgstr "%X%C: référence croisée prohibé de %s vers « %T » dans %s\n" - -#: ldctor.c:84 -msgid "%P%X: Different relocs used in set %s\n" -msgstr "%P%X: différentes relocalisations utilisées dans l'ensemble %s\n" - -#: ldctor.c:102 -msgid "%P%X: Different object file formats composing set %s\n" -msgstr "%P%X: différents format de fichiers objet composant l'ensemble %s\n" - -#: ldctor.c:281 ldctor.c:295 -msgid "%P%X: %s does not support reloc %s for set %s\n" -msgstr "%P%X: %s ne supporter pas la relocalisation %s pour l'ensemble %s\n" - -#: ldctor.c:316 -msgid "%P%X: Unsupported size %d for set %s\n" -msgstr "%P%X: taille non supportée %d pour l'ensemble %s\n" - -#: ldctor.c:337 -msgid "" -"\n" -"Set Symbol\n" -"\n" -msgstr "" -"\n" -"Ensemble Symbole\n" -"\n" - -#: ldemul.c:227 -#, c-format -msgid "%S SYSLIB ignored\n" -msgstr "%S SYSLIB ignoré\n" - -#: ldemul.c:233 -#, c-format -msgid "%S HLL ignored\n" -msgstr "%S HLL ignoré\n" - -#: ldemul.c:253 -msgid "%P: unrecognised emulation mode: %s\n" -msgstr "%P: mode d'émulation non reconnu: %s\n" - -#: ldemul.c:254 -msgid "Supported emulations: " -msgstr "Émulations supportées: " - -#: ldemul.c:296 -#, c-format -msgid " no emulation specific options.\n" -msgstr " aucune option spécifique d'émulation.\n" - -#: ldexp.c:379 -#, c-format -msgid "%F%S %% by zero\n" -msgstr "%F%S %% par zéro\n" - -#: ldexp.c:386 -#, c-format -msgid "%F%S / by zero\n" -msgstr "%F%S / by zéro\n" - -#: ldexp.c:583 -#, c-format -msgid "%X%S: unresolvable symbol `%s' referenced in expression\n" -msgstr "%X%S: symbole non résolu « %s » référencé dans l'expression\n" - -#: ldexp.c:604 -#, c-format -msgid "%F%S: undefined symbol `%s' referenced in expression\n" -msgstr "%F%S: symbole non résolu « %s » référencé dans l'expression\n" - -#: ldexp.c:665 ldexp.c:678 -#, c-format -msgid "%F%S: undefined MEMORY region `%s' referenced in expression\n" -msgstr "%F%S: région MÉMOIRE indéfinie « %s » référencé dans l'expression\n" - -#: ldexp.c:757 -#, c-format -msgid "%F%S can not PROVIDE assignment to location counter\n" -msgstr "%F%S ne peut FOURNIR une assignation au compteur de localisation\n" - -#: ldexp.c:770 -#, c-format -msgid "%F%S invalid assignment to location counter\n" -msgstr "%F%S affection invalide au compteur de localisation\n" - -#: ldexp.c:774 -#, c-format -msgid "%F%S assignment to location counter invalid outside of SECTION\n" -msgstr "%F%S affection au compteur de localisation invalide en dehors de la SECTION\n" - -#: ldexp.c:783 -msgid "%F%S cannot move location counter backwards (from %V to %V)\n" -msgstr "%F%S ne peut déplacer le compteur de localisation par en arrière (de %V vers %V)\n" - -#: ldexp.c:810 -msgid "%P%F:%s: hash creation failed\n" -msgstr "%P%F:%s: création de la table de hachage en échec\n" - -#: ldexp.c:1077 ldexp.c:1109 -#, c-format -msgid "%F%S nonconstant expression for %s\n" -msgstr "%F%S expression d'une non constante: %s\n" - -#: ldexp.c:1163 -#, c-format -msgid "%F%S non constant expression for %s\n" -msgstr "%F%S expression de non constante: %s\n" - -#: ldfile.c:139 -#, c-format -msgid "attempt to open %s failed\n" -msgstr "échec de la tentative d'ouverture de %s\n" - -#: ldfile.c:141 -#, c-format -msgid "attempt to open %s succeeded\n" -msgstr "succès de la tentative d'ouverture de %s\n" - -#: ldfile.c:147 -msgid "%F%P: invalid BFD target `%s'\n" -msgstr "%F%P: cible BFD invalide « %s »\n" - -#: ldfile.c:255 ldfile.c:282 -msgid "%P: skipping incompatible %s when searching for %s\n" -msgstr "%P: escamotage incompatible %s lors de la recherche de %s\n" - -#: ldfile.c:267 -msgid "%F%P: attempted static link of dynamic object `%s'\n" -msgstr "%F%P: tentative de liaison statique de l'objet dynamique `%s'\n" - -#: ldfile.c:384 -msgid "%F%P: %s (%s): No such file: %E\n" -msgstr "%F%P: %s (%s): pas de fichier tel: %E\n" - -#: ldfile.c:387 -msgid "%F%P: %s: No such file: %E\n" -msgstr "%F%P: %s: pas de fichier tel: %E\n" - -#: ldfile.c:417 -msgid "%F%P: cannot find %s inside %s\n" -msgstr "%F%P: ne peut trouver %s à l'intérieur de %s\n" - -#: ldfile.c:420 -msgid "%F%P: cannot find %s\n" -msgstr "%F%P: ne peut trouver %s\n" - -#: ldfile.c:437 ldfile.c:453 -#, c-format -msgid "cannot find script file %s\n" -msgstr "ne peut repérer le fichier de scripts %s\n" - -#: ldfile.c:439 ldfile.c:455 -#, c-format -msgid "opened script file %s\n" -msgstr "fichier de scripts ouvert %s\n" - -#: ldfile.c:499 -msgid "%P%F: cannot open linker script file %s: %E\n" -msgstr "%P%F: ne peut ouvrir le fichier de scripts de l'éditeur de liens %s: %E\n" - -#: ldfile.c:546 -msgid "%P%F: cannot represent machine `%s'\n" -msgstr "%P%F: ne peut représenter la machine « %s »\n" - -#: ldlang.c:511 -msgid "%P%F: out of memory during initialization" -msgstr "%P%F: mémoire épuisée durant l'initialisation" - -#: ldlang.c:551 -msgid "%P:%S: warning: redeclaration of memory region '%s'\n" -msgstr "%P:%S: AVERTISSEMENT: redéclaration de la région mémoire « %s »\n" - -#: ldlang.c:557 -msgid "%P:%S: warning: memory region %s not declared\n" -msgstr "%P:%S: AVERTISSEMENT: région mémoire %s non déclarée\n" - -#: ldlang.c:1073 -msgid "" -"\n" -"Memory Configuration\n" -"\n" -msgstr "" -"\n" -"Configuration mémoire\n" -"\n" - -#: ldlang.c:1075 -msgid "Name" -msgstr "Nom" - -#: ldlang.c:1075 -msgid "Origin" -msgstr "Origine" - -#: ldlang.c:1075 -msgid "Length" -msgstr "Longueur" - -#: ldlang.c:1075 -msgid "Attributes" -msgstr "Attributs" - -#: ldlang.c:1115 -#, c-format -msgid "" -"\n" -"Linker script and memory map\n" -"\n" -msgstr "" -"\n" -"Script de l'éditeurs de liens and table de projection mémoire\n" -"\n" - -#: ldlang.c:1183 -msgid "%P%F: Illegal use of `%s' section\n" -msgstr "%P%F: utilisation illégale de la section « %s »\n" - -#: ldlang.c:1193 -msgid "%P%F: output format %s cannot represent section called %s\n" -msgstr "%P%F: format de sortie %s ne peut représenter la section %s\n" - -#: ldlang.c:1775 -msgid "%B: file not recognized: %E\n" -msgstr "%B: fichier non reconnue: %E\n" - -#: ldlang.c:1776 -msgid "%B: matching formats:" -msgstr "%B: formats concordants:" - -#: ldlang.c:1783 -msgid "%F%B: file not recognized: %E\n" -msgstr "%F%B: fichier non reconnu: %E\n" - -#: ldlang.c:1847 -msgid "%F%B: member %B in archive is not an object\n" -msgstr "%F%B: membre %B dans l'archive n'est pas un objet\n" - -#: ldlang.c:1858 ldlang.c:1872 -msgid "%F%B: could not read symbols: %E\n" -msgstr "%F%B: ne peut lire les symboles: %E\n" - -#: ldlang.c:2127 -msgid "%P: warning: could not find any targets that match endianness requirement\n" -msgstr "" -"%P: AVERTISSEMENT: ne peut repérer les cibles qui concordent avec\n" -"les types de système à octets de poids faible ou fort requis\n" - -#: ldlang.c:2141 -msgid "%P%F: target %s not found\n" -msgstr "%P%F: cible %s non trouvée\n" - -#: ldlang.c:2143 -msgid "%P%F: cannot open output file %s: %E\n" -msgstr "%P%F: ne peut ouvrir le fichier de sortie %s: %E\n" - -#: ldlang.c:2149 -msgid "%P%F:%s: can not make object file: %E\n" -msgstr "%P%F:%s: ne peut créer le fichier objet: %E\n" - -#: ldlang.c:2153 -msgid "%P%F:%s: can not set architecture: %E\n" -msgstr "%P%F:%s: ne peut initialiser l'architecture: %E\n" - -#: ldlang.c:2157 -msgid "%P%F: can not create link hash table: %E\n" -msgstr "%P%F: ne peut créer un lien vers la table de hachage: %E\n" - -#: ldlang.c:2301 -msgid "%P%F: bfd_hash_lookup failed creating symbol %s\n" -msgstr "%P%F: bfd_hash_lookup en échec lors de la création du symbole %s\n" - -#: ldlang.c:2319 -msgid "%P%F: bfd_hash_allocate failed creating symbol %s\n" -msgstr "%P%F: bfd_hash_allocate en échec lors de la création dusymbole %s\n" - -#: ldlang.c:2710 -msgid " load address 0x%V" -msgstr " address de chargement 0x%V" - -#: ldlang.c:2874 -msgid "%W (size before relaxing)\n" -msgstr "%W (taille avant relaxe)\n" - -#: ldlang.c:2961 -#, c-format -msgid "Address of section %s set to " -msgstr "Adresse de la section %s initialisé à " - -#: ldlang.c:3114 -#, c-format -msgid "Fail with %d\n" -msgstr "Échec avec %d\n" - -#: ldlang.c:3351 -msgid "%X%P: section %s [%V -> %V] overlaps section %s [%V -> %V]\n" -msgstr "%X%P: section %s [%V -> %V] chevauche la section %s [%V -> %V]\n" - -#: ldlang.c:3379 -msgid "%X%P: address 0x%v of %B section %s is not within region %s\n" -msgstr "%X%P: l'adresse 0x%v de %B de la section %s n'est pas dans la région %s\n" - -#: ldlang.c:3388 -msgid "%X%P: region %s is full (%B section %s)\n" -msgstr "%X%P: région %s est pleine (%B section %s)\n" - -#: ldlang.c:3439 -msgid "%P%X: Internal error on COFF shared library section %s\n" -msgstr "%P%X: erreur interne dans la section partagée de la librairie de COFF %s\n" - -#: ldlang.c:3493 -msgid "%P%F: error: no memory region specified for loadable section `%s'\n" -msgstr "%P%F: ERREUR: aucune région mémoire spécifiée pour la section chargeable « %s »\n" - -#: ldlang.c:3498 -msgid "%P: warning: no memory region specified for loadable section `%s'\n" -msgstr "%P: AVERTISSEMENT: aucune région mémoire spécifiée pour la section chargeable « %s »\n" - -#: ldlang.c:3515 -msgid "%P: warning: changing start of section %s by %u bytes\n" -msgstr "%P: AVERTISSEMENT: modification du début de section %s de %u octets\n" - -#: ldlang.c:3532 -#, c-format -msgid "%F%S: non constant or forward reference address expression for section %s\n" -msgstr "%F%S: référence d'adresse avant d'expression ou non constante pour la section %s\n" - -#: ldlang.c:3703 -msgid "%P%F: can't relax section: %E\n" -msgstr "%P%F: ne peut relâcher la section: %E\n" - -#: ldlang.c:3960 -msgid "%F%P: invalid data statement\n" -msgstr "%F%P: déclaration invalide de données\n" - -#: ldlang.c:3999 -msgid "%F%P: invalid reloc statement\n" -msgstr "%F%P: déclaration invalide de relocalisation\n" - -#: ldlang.c:4141 -msgid "%P%F:%s: can't set start address\n" -msgstr "%P%F:%s: ne peut initialiser l'adresse de départ\n" - -#: ldlang.c:4154 ldlang.c:4173 -msgid "%P%F: can't set start address\n" -msgstr "%P%F: ne peut initialiser l'adresse de départ\n" - -#: ldlang.c:4166 -msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n" -msgstr "%P: AVERTISSEMENT: ne peut trouver le symbole d'entrée %s; utilise par défaut %V\n" - -#: ldlang.c:4178 -msgid "%P: warning: cannot find entry symbol %s; not setting start address\n" -msgstr "%P: AVERTISSEMENT: ne peut trouver le symbole d'entrée %s; pas d'initialisation de l'adresse de départ\n" - -#: ldlang.c:4227 -msgid "%P%F: Relocatable linking with relocations from format %s (%B) to format %s (%B) is not supported\n" -msgstr "%P%F: liaison relocalisable avec relocalisation à partir du format %s (%B) au format %s (%B) n'est pas supportée\n" - -#: ldlang.c:4237 -msgid "%P: warning: %s architecture of input file `%B' is incompatible with %s output\n" -msgstr "%P: AVERTISSEMENT: architecture %s du fichier d'entrée « %B » est incompatible avec la sortie %s\n" - -#: ldlang.c:4259 -msgid "%P%X: failed to merge target specific data of file %B\n" -msgstr "%E%X: échec de fusion des données spécifiques cibles du fichier %B\n" - -#: ldlang.c:4343 -msgid "" -"\n" -"Allocating common symbols\n" -msgstr "" -"\n" -"Allocation des symboles communs\n" - -#: ldlang.c:4344 -msgid "" -"Common symbol size file\n" -"\n" -msgstr "" -"Symbole commun taille fichier\n" -"\n" - -#: ldlang.c:4470 -msgid "%P%F: invalid syntax in flags\n" -msgstr "%P%F: syntaxe invalide dans les fanions\n" - -#: ldlang.c:4740 -msgid "%P%F: Failed to create hash table\n" -msgstr "%P%F: échec de création de la table de hachage\n" - -#: ldlang.c:5057 -msgid "%P%Fmultiple STARTUP files\n" -msgstr "%P%F fichiers multiples de DÉPART\n" - -#: ldlang.c:5105 -msgid "%X%P:%S: section has both a load address and a load region\n" -msgstr "%X%P:%S: section a à la fois une adresse de chargement et une région de chargement\n" - -#: ldlang.c:5345 -msgid "%F%P: bfd_record_phdr failed: %E\n" -msgstr "%F%P: bfd_record_phdr en échec: %E\n" - -#: ldlang.c:5365 -msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n" -msgstr "%X%P: section « %s » affectée à phdr inexistent « %s »\n" - -#: ldlang.c:5751 -msgid "%X%P: unknown language `%s' in version information\n" -msgstr "%X%P: langage inconnue « %s » dans l'information de la version\n" - -#: ldlang.c:5893 -msgid "%X%P: anonymous version tag cannot be combined with other version tags\n" -msgstr "%X%P: étiquette de version anonyme ne peut être combinée avec d'autres étiquettes de version\n" - -#: ldlang.c:5902 -msgid "%X%P: duplicate version tag `%s'\n" -msgstr "%X%P: duplication de l'étiquette de version « %s »\n" - -#: ldlang.c:5922 ldlang.c:5931 ldlang.c:5948 ldlang.c:5958 -msgid "%X%P: duplicate expression `%s' in version information\n" -msgstr "%X%P: duplication de l'expression « %s » dans l'information de version\n" - -#: ldlang.c:5998 -msgid "%X%P: unable to find version dependency `%s'\n" -msgstr "%X%P: incapable de repérer les dépendences de version « %s »\n" - -#: ldlang.c:6020 -msgid "%X%P: unable to read .exports section contents\n" -msgstr "%X%P: incapable de lire le contenu de la section .exports\n" - -#: ldmain.c:229 -msgid "%X%P: can't set BFD default target to `%s': %E\n" -msgstr "%X%P: ne peut initialiser la cible par défaut BFD à « %s »: %E\n" - -#: ldmain.c:341 -msgid "%P%F: --relax and -r may not be used together\n" -msgstr "%P%F: --relax et -r ne peuvent être utilisés ensemble\n" - -#: ldmain.c:343 -msgid "%P%F: -r and -shared may not be used together\n" -msgstr "%P%F: -r et -shared ne peuvent être utilisés ensemble\n" - -#: ldmain.c:347 -msgid "%P%F: -static and -shared may not be used together\n" -msgstr "%P%F: -static et -shared ne peuvent être utilisés ensemble\n" - -#: ldmain.c:352 -msgid "%P%F: -F may not be used without -shared\n" -msgstr "%P%F: -F ne peut être utilisé sans -shared\n" - -#: ldmain.c:354 -msgid "%P%F: -f may not be used without -shared\n" -msgstr "%P%F: -f ne peut être utilisé sans -shared\n" - -#: ldmain.c:396 -msgid "using external linker script:" -msgstr "utilisation du script externe d'édition de liens:" - -#: ldmain.c:398 -msgid "using internal linker script:" -msgstr "utilisation du script interne d'édition de liens:" - -#: ldmain.c:432 -msgid "%P%F: no input files\n" -msgstr "%P%F: aucun fichier d'entrée\n" - -#: ldmain.c:436 -msgid "%P: mode %s\n" -msgstr "%P: mode %s\n" - -#: ldmain.c:452 -msgid "%P%F: cannot open map file %s: %E\n" -msgstr "%P%F: ne peut ouvrir le fichier de la table de projection %s: %E\n" - -#: ldmain.c:482 -msgid "%P: link errors found, deleting executable `%s'\n" -msgstr "%P: erreurs de lien trouvés, destruction de l'exécutable « %s »\n" - -#: ldmain.c:491 -msgid "%F%B: final close failed: %E\n" -msgstr "%F%B: fermeture finale en échec: %E\n" - -#: ldmain.c:517 -msgid "%X%P: unable to open for source of copy `%s'\n" -msgstr "%X%P: incapable d'ouvrir la copie source de « %s »\n" - -#: ldmain.c:520 -msgid "%X%P: unable to open for destination of copy `%s'\n" -msgstr "%X%P: incpapable d'ouvrir la copie destination de « %s »\n" - -#: ldmain.c:527 -msgid "%P: Error writing file `%s'\n" -msgstr "%P: erreur lors de l'écriture du fichier « %s »\n" - -#: ldmain.c:532 pe-dll.c:1447 -#, c-format -msgid "%P: Error closing file `%s'\n" -msgstr "%P: erreur lors de la fermeture du fichier « %s »\n" - -#: ldmain.c:548 -#, c-format -msgid "%s: total time in link: %ld.%06ld\n" -msgstr "%s: temps total d'édition de liens: %ld.%06ld\n" - -#: ldmain.c:551 -#, c-format -msgid "%s: data size %ld\n" -msgstr "%s: tailles des données %ld\n" - -#: ldmain.c:634 -msgid "%P%F: missing argument to -m\n" -msgstr "%P%F: argument manquant pour -m\n" - -#: ldmain.c:780 ldmain.c:798 ldmain.c:828 -msgid "%P%F: bfd_hash_table_init failed: %E\n" -msgstr "%P%F: bfd_hash_table_init en échec: %E\n" - -#: ldmain.c:784 ldmain.c:802 -msgid "%P%F: bfd_hash_lookup failed: %E\n" -msgstr "%P%F: bfd_hash_lookup en échec: %E\n" - -#: ldmain.c:816 -msgid "%X%P: error: duplicate retain-symbols-file\n" -msgstr "%X%P: erreur: duplication dans retain-symbols-file\n" - -#: ldmain.c:858 -msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n" -msgstr "%P%F: bfd_hash_lookup en échec lors d'une insertion: %E\n" - -#: ldmain.c:863 -msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n" -msgstr "%P: « -retain-symbols-file » écrase les options « -s » et « -S »\n" - -#: ldmain.c:938 -#, c-format -msgid "" -"Archive member included because of file (symbol)\n" -"\n" -msgstr "" -"Membre de l'archive est inclu en raison du fichier (symbole)\n" -"\n" - -#: ldmain.c:1008 -msgid "%X%C: multiple definition of `%T'\n" -msgstr "%X%C: définitions multiples de « %T »\n" - -#: ldmain.c:1011 -msgid "%D: first defined here\n" -msgstr "%D: défini pour la première fois ici\n" - -#: ldmain.c:1015 -msgid "%P: Disabling relaxation: it will not work with multiple definitions\n" -msgstr "%P: désactivation de la relâche: il ne pourra pas travailler avec des définitions multiples\n" - -#: ldmain.c:1045 -msgid "%B: warning: definition of `%T' overriding common\n" -msgstr "%B: AVERTISSEMENT: définition de « %T » écrase le commun\n" - -#: ldmain.c:1048 -msgid "%B: warning: common is here\n" -msgstr "%B: AVERTISSEMENT: le commun est ici\n" - -#: ldmain.c:1055 -msgid "%B: warning: common of `%T' overridden by definition\n" -msgstr "%B: AVERTISSEMENT: le commun de « %T » écrasé par définition\n" - -#: ldmain.c:1058 -msgid "%B: warning: defined here\n" -msgstr "%B: AVERTISSEMENT: défini ici\n" - -#: ldmain.c:1065 -msgid "%B: warning: common of `%T' overridden by larger common\n" -msgstr "%B: AVERTISSEMENT: le commun de « %T » écrasé par un commun de plus grande taille\n" - -#: ldmain.c:1068 -msgid "%B: warning: larger common is here\n" -msgstr "%B: AVERTISSEMENT: le commun de plus grande taille est ici\n" - -#: ldmain.c:1072 -msgid "%B: warning: common of `%T' overriding smaller common\n" -msgstr "%B: AVERTISSEMENT: le commun de « %T » écrasé par un commun de plus petite taille\n" - -#: ldmain.c:1075 -msgid "%B: warning: smaller common is here\n" -msgstr "%B: AVERTISSEMENT: le commun de plus petite taille est ici\n" - -#: ldmain.c:1079 -msgid "%B: warning: multiple common of `%T'\n" -msgstr "%B: AVERTISSEMENT: communs multiples de « %T »\n" - -#: ldmain.c:1081 -msgid "%B: warning: previous common is here\n" -msgstr "%B: AVERTISSEMENT: commun précédent est ici\n" - -#: ldmain.c:1101 ldmain.c:1139 -msgid "%P: warning: global constructor %s used\n" -msgstr "%P: AVERTISSEMENT: constructeur global %s est utilisé\n" - -#: ldmain.c:1149 -msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n" -msgstr "%P%F: BFD erreur de terminaison arrière (backend): BFD_RELOC_CTOR non supporté\n" - -#. We found a reloc for the symbol we are looking for. -#: ldmain.c:1203 ldmain.c:1205 ldmain.c:1207 ldmain.c:1245 ldmain.c:1293 -msgid "warning: " -msgstr "AVERTISSEMENT: " - -#: ldmain.c:1327 -msgid "%F%P: bfd_hash_table_init failed: %E\n" -msgstr "%F%P: bfd_hash_table_init en échec: %E\n" - -#: ldmain.c:1334 -msgid "%F%P: bfd_hash_lookup failed: %E\n" -msgstr "%F%P: bfd_hash_lookup en échec: %E\n" - -#: ldmain.c:1355 -msgid "%X%C: undefined reference to `%T'\n" -msgstr "%X%C: référence indéfinie vers « %T »\n" - -#: ldmain.c:1358 -msgid "%C: warning: undefined reference to `%T'\n" -msgstr "%C: AVERTISSEMENT: référence indéfinie vers « %T »\n" - -#: ldmain.c:1364 -msgid "%X%D: more undefined references to `%T' follow\n" -msgstr "%X%D: encore plus de références indéfinies suivent vers « %T »\n" - -#: ldmain.c:1367 -msgid "%D: warning: more undefined references to `%T' follow\n" -msgstr "%D: AVERTISSEMENT: encore plus de références indéfinies suivent vers « %T »\n" - -#: ldmain.c:1378 -msgid "%X%B: undefined reference to `%T'\n" -msgstr "%X%B: référence indéfinie vers « %T »\n" - -#: ldmain.c:1381 -msgid "%B: warning: undefined reference to `%T'\n" -msgstr "%B: AVERTISSMENT: référence indéfinie vers « %T »\n" - -#: ldmain.c:1387 -msgid "%X%B: more undefined references to `%T' follow\n" -msgstr "%X%B: encore plus de références indéfinies suivent vers « %T »\n" - -#: ldmain.c:1390 -msgid "%B: warning: more undefined references to `%T' follow\n" -msgstr "%B: AVERTISSEMENT: encore plus de références indéfinies suivent vers « %T »\n" - -#: ldmain.c:1425 ldmain.c:1478 ldmain.c:1496 -msgid "%P%X: generated" -msgstr "%P%X: généré" - -#: ldmain.c:1432 -msgid " additional relocation overflows omitted from the output\n" -msgstr " débordement de relocalisation additionnelle omise à partir de la sortie\n" - -#: ldmain.c:1445 -msgid " relocation truncated to fit: %s against undefined symbol `%T'" -msgstr " relocalisation tronquée pour concorder avec la taille: %s vers le symbole indéfini %T" - -#: ldmain.c:1450 -msgid " relocation truncated to fit: %s against symbol `%T' defined in %A section in %B" -msgstr " relocalisation tronquée pour concorder: %s vers le symbole %T défini sans la section %A dans %B" - -#: ldmain.c:1460 -msgid " relocation truncated to fit: %s against `%T'" -msgstr " relocalisation tronquée pour concorder: %s avec %T" - -#: ldmain.c:1481 -#, c-format -msgid "dangerous relocation: %s\n" -msgstr "relocalisation dangereuse: %s\n" - -#: ldmain.c:1499 -msgid " reloc refers to symbol `%T' which is not being output\n" -msgstr " relocalisation réfère au symbole « %T » qui n'a pas été sorti\n" - -#: ldmisc.c:149 -#, c-format -msgid "no symbol" -msgstr "aucun symbole" - -#: ldmisc.c:240 -#, c-format -msgid "built in linker script:%u" -msgstr "construit dans le script d'édition de liens:%u" - -#: ldmisc.c:289 ldmisc.c:293 -msgid "%B%F: could not read symbols\n" -msgstr "%B%F: ne peut lire les symboles\n" - -#: ldmisc.c:329 -msgid "%B: In function `%T':\n" -msgstr "%B: dans la fonction « %T »:\n" - -#: ldmisc.c:480 -msgid "%F%P: internal error %s %d\n" -msgstr "%F%P: erreur interne %s %d\n" - -#: ldmisc.c:526 -msgid "%P: internal error: aborting at %s line %d in %s\n" -msgstr "%P: erreur interne: arrêt immédiat %s, ligne %d dans %s\n" - -#: ldmisc.c:529 -msgid "%P: internal error: aborting at %s line %d\n" -msgstr "%P: erreur interne: arrêt immédiat à %s ligne %d\n" - -#: ldmisc.c:531 -msgid "%P%F: please report this bug\n" -msgstr "%P%F: rapporter cette anomalie\n" - -#. Output for noisy == 2 is intended to follow the GNU standards. -#: ldver.c:38 -#, c-format -msgid "GNU ld version %s\n" -msgstr "GNU ld version %s\n" - -#: ldver.c:42 -#, c-format -msgid "Copyright 2005 Free Software Foundation, Inc.\n" -msgstr "Copyright 2005 Free Software Foundation, Inc.\n" - -#: ldver.c:43 -#, c-format -msgid "" -"This program is free software; you may redistribute it under the terms of\n" -"the GNU General Public License. This program has absolutely no warranty.\n" -msgstr "" -"Ce logiciel est libre; voir les sources pour les conditions de\n" -"reproduction. AUCUNE garantie n'est donnée; tant pour des raisons\n" -"COMMERCIALES que pour RÉPONDRE À UN BESOIN PARTICULIER.\n" - -#: ldver.c:52 -#, c-format -msgid " Supported emulations:\n" -msgstr " Émulations supportées:\n" - -#: ldwrite.c:55 ldwrite.c:191 -msgid "%P%F: bfd_new_link_order failed\n" -msgstr "%P%F: bfd_new_link_order en échec\n" - -#: ldwrite.c:341 -msgid "%F%P: cannot create split section name for %s\n" -msgstr "%F%P: ne peut créer un nom de section scindé pour %s\n" - -#: ldwrite.c:353 -msgid "%F%P: clone section failed: %E\n" -msgstr "%F%P: section clone en échec: %E\n" - -#: ldwrite.c:391 -#, c-format -msgid "%8x something else\n" -msgstr "%8x quelque chose d'autre\n" - -#: ldwrite.c:561 -msgid "%F%P: final link failed: %E\n" -msgstr "%F%P: édition de lien finale en échec: %E\n" - -#: lexsup.c:195 lexsup.c:327 -msgid "KEYWORD" -msgstr "MOT CLÉ" - -#: lexsup.c:195 -msgid "Shared library control for HP/UX compatibility" -msgstr "Librairie partagée de contrôle pour compatibilité HP/UX" - -#: lexsup.c:198 -msgid "ARCH" -msgstr "ARCH" - -#: lexsup.c:198 -msgid "Set architecture" -msgstr "Initilisé l'architecture" - -#: lexsup.c:200 lexsup.c:421 -msgid "TARGET" -msgstr "CIBLE" - -#: lexsup.c:200 -msgid "Specify target for following input files" -msgstr "Spécifier la cible pour les règles suivantes pour les fichiers d'entrée" - -#: lexsup.c:203 lexsup.c:252 lexsup.c:264 lexsup.c:277 lexsup.c:380 -#: lexsup.c:433 lexsup.c:490 -msgid "FILE" -msgstr "FICHIER" - -#: lexsup.c:203 -msgid "Read MRI format linker script" -msgstr "Lecture du format MRI du script de l'éditeur de liens" - -#: lexsup.c:205 -msgid "Force common symbols to be defined" -msgstr "Forcer les symboles communs à être définis" - -#: lexsup.c:209 lexsup.c:475 lexsup.c:477 lexsup.c:479 -msgid "ADDRESS" -msgstr "ADRESSE" - -#: lexsup.c:209 -msgid "Set start address" -msgstr "Initialiser l'adresse de début" - -#: lexsup.c:211 -msgid "Export all dynamic symbols" -msgstr "Exportation de tous les symboles dynamiques" - -#: lexsup.c:213 -msgid "Link big-endian objects" -msgstr "Lier les objets pour les systèmes à octet de poids fort (big endian)" - -#: lexsup.c:215 -msgid "Link little-endian objects" -msgstr "Lier les objets pour les systèmes à octets de poids faible (little endian)" - -#: lexsup.c:217 lexsup.c:220 -msgid "SHLIB" -msgstr "LIBRAIRIE COMMMUNE (SHLIB)" - -#: lexsup.c:217 -msgid "Auxiliary filter for shared object symbol table" -msgstr "Filtre auxiliaire de la table de symboles de l'objet partagé" - -#: lexsup.c:220 -msgid "Filter for shared object symbol table" -msgstr "Filtre de la table de symboles de l'objet partagé" - -#: lexsup.c:223 -msgid "Ignored" -msgstr "Ignoré" - -#: lexsup.c:225 -msgid "SIZE" -msgstr "TAILLE" - -#: lexsup.c:225 -msgid "Small data size (if no size, same as --shared)" -msgstr "Petite taille des données (si aucune taille spécifié, identique à --shared)" - -#: lexsup.c:228 -msgid "FILENAME" -msgstr "NOM DE FICHIER" - -#: lexsup.c:228 -msgid "Set internal name of shared library" -msgstr "Initialisé le nom interne de la librairie partagée" - -#: lexsup.c:230 -msgid "PROGRAM" -msgstr "PROGRAMME" - -#: lexsup.c:230 -msgid "Set PROGRAM as the dynamic linker to use" -msgstr "Utiliser le PROGRAM comme éditeur de liens dynamique" - -#: lexsup.c:233 -msgid "LIBNAME" -msgstr "NOM de LIBRAIRIE" - -#: lexsup.c:233 -msgid "Search for library LIBNAME" -msgstr "Recherche de la librairie LIBNAME" - -#: lexsup.c:235 -msgid "DIRECTORY" -msgstr "RÉPERTOIRE" - -#: lexsup.c:235 -msgid "Add DIRECTORY to library search path" -msgstr "Ajout du RÉPERTOIRE au chemin de recherche de librairie" - -#: lexsup.c:238 -msgid "Override the default sysroot location" -msgstr "Localisation de sysroot par défaut est écrasée" - -#: lexsup.c:240 -msgid "EMULATION" -msgstr "ÉMULATION" - -#: lexsup.c:240 -msgid "Set emulation" -msgstr "Initialisation de l'émuilation" - -#: lexsup.c:242 -msgid "Print map file on standard output" -msgstr "Afficher le fichier de projection sur la sortie standard" - -#: lexsup.c:244 -msgid "Do not page align data" -msgstr "Ne pas paginer l'alignement des données" - -#: lexsup.c:246 -msgid "Do not page align data, do not make text readonly" -msgstr "Ne pas paginer l'alignement des donnnées, ne pas faire de texte en lecture seulement" - -#: lexsup.c:249 -msgid "Page align data, make text readonly" -msgstr "Données d'alignement de page, texte en mis en mode lecture seulement" - -#: lexsup.c:252 -msgid "Set output file name" -msgstr "Initialisé le nom du fichier de sortie" - -#: lexsup.c:254 -msgid "Optimize output file" -msgstr "Optimisé le fichier de sortie" - -#: lexsup.c:256 -msgid "Ignored for SVR4 compatibility" -msgstr "Ignoré pour la compatibilité avec SVR4" - -#: lexsup.c:260 -msgid "Generate relocatable output" -msgstr "Générer une sortie relocalisable" - -#: lexsup.c:264 -msgid "Just link symbols (if directory, same as --rpath)" -msgstr "Juste lier les symboles (si répertoire, identique à --rpath)" - -#: lexsup.c:267 -msgid "Strip all symbols" -msgstr "Élaguer tous les symboles" - -#: lexsup.c:269 -msgid "Strip debugging symbols" -msgstr "Élaguer tous les symboles de débug" - -#: lexsup.c:271 -msgid "Strip symbols in discarded sections" -msgstr "Éliminer les symboles des sections éliminées" - -#: lexsup.c:273 -msgid "Do not strip symbols in discarded sections" -msgstr "Ne pas éliminer les symboles des sections éliminées" - -#: lexsup.c:275 -msgid "Trace file opens" -msgstr "Ouverture des fichiers de trace" - -#: lexsup.c:277 -msgid "Read linker script" -msgstr "Lecture du script de l'éditeur de lien" - -#: lexsup.c:279 lexsup.c:297 lexsup.c:363 lexsup.c:378 lexsup.c:468 -#: lexsup.c:493 lexsup.c:520 -msgid "SYMBOL" -msgstr "SYMBOLE" - -#: lexsup.c:279 -msgid "Start with undefined reference to SYMBOL" -msgstr "Débuter avec une référence indéfinie au SYMBOLE" - -#: lexsup.c:282 -msgid "[=SECTION]" -msgstr "[=SECTION]" - -#: lexsup.c:283 -msgid "Don't merge input [SECTION | orphan] sections" -msgstr "Ne pas fusionner les sections d'entrée [SECTION | orpheline]" - -#: lexsup.c:285 -msgid "Build global constructor/destructor tables" -msgstr "Bâtir les tables de constructeurs/destructeurs globaux" - -#: lexsup.c:287 -msgid "Print version information" -msgstr "Afficher les informations de version" - -#: lexsup.c:289 -msgid "Print version and emulation information" -msgstr "Afficher les information de version et d'émulation" - -#: lexsup.c:291 -msgid "Discard all local symbols" -msgstr "Ignorer tous les symboles locaux" - -#: lexsup.c:293 -msgid "Discard temporary local symbols (default)" -msgstr "Ignorer tous les symboles locaux temporaires (par défaut)" - -#: lexsup.c:295 -msgid "Don't discard any local symbols" -msgstr "Ne pas ignorer tous les symboles locaux" - -#: lexsup.c:297 -msgid "Trace mentions of SYMBOL" -msgstr "Tracer les mentions de SYMBOLE" - -#: lexsup.c:299 lexsup.c:435 lexsup.c:437 -msgid "PATH" -msgstr "CHEMIN" - -#: lexsup.c:299 -msgid "Default search path for Solaris compatibility" -msgstr "Chemin par défaut de recherche pour la compatibilité Solaris" - -#: lexsup.c:302 -msgid "Start a group" -msgstr "Débuter un groupe" - -#: lexsup.c:304 -msgid "End a group" -msgstr "Terminer un groupe" - -#: lexsup.c:308 -msgid "Accept input files whose architecture cannot be determined" -msgstr "Accepter les fichiers à l'entrée dont l'architecture ne peut être déterminée" - -#: lexsup.c:312 -msgid "Reject input files whose architecture is unknown" -msgstr "Rejeter les fichiers à l'entrée dont l'architecture est inconnue" - -#: lexsup.c:315 -msgid "" -"Set DT_NEEDED tags for DT_NEEDED entries in\n" -"\t\t\t\tfollowing dynamic libs" -msgstr "" -"Initialiser les étiquettes DT_NEEDED pour les entrées DT_NEEDED dans\n" -"\t\t\t\tsuivant les librairies dynamiques" - -#: lexsup.c:318 -msgid "" -"Do not set DT_NEEDED tags for DT_NEEDED entries\n" -"\t\t\t\tin following dynamic libs" -msgstr "" -"Ne pas initialiser les étiquettes DT_NEEDED pour les entrées DT_NEEDED\n" -"\t\t\t\tsuivant les librairies dynamiques" - -#: lexsup.c:321 -msgid "Only set DT_NEEDED for following dynamic libs if used" -msgstr "Initialiser seulement DT_NEEDED pour les librairies dynamiques suivantes si utilisées" - -#: lexsup.c:324 -msgid "Always set DT_NEEDED for following dynamic libs" -msgstr "Toujours initialiser DT_NEEDED pour les librairies dynamiques suivantes" - -#: lexsup.c:327 -msgid "Ignored for SunOS compatibility" -msgstr "Ignoré pour la compatibilité avec SunOS" - -#: lexsup.c:329 -msgid "Link against shared libraries" -msgstr "Établir des liens vis à vis des librairies partagées" - -#: lexsup.c:335 -msgid "Do not link against shared libraries" -msgstr "Ne pas établir de liens vis à vis des librairies partagées" - -#: lexsup.c:343 -msgid "Bind global references locally" -msgstr "Lier les référence locales globales" - -#: lexsup.c:345 -msgid "Check section addresses for overlaps (default)" -msgstr "Vérifier les adresses de section pour le chevauchement (par défaut)" - -#: lexsup.c:348 -msgid "Do not check section addresses for overlaps" -msgstr "Ne pas vérifier les adresses des sections pour le chevauchement" - -#: lexsup.c:351 -msgid "Output cross reference table" -msgstr "Produire la table des références croisées" - -#: lexsup.c:353 -msgid "SYMBOL=EXPRESSION" -msgstr "SYMBOLE=EXPRESSION" - -#: lexsup.c:353 -msgid "Define a symbol" -msgstr "Définir un symbole" - -#: lexsup.c:355 -msgid "[=STYLE]" -msgstr "[=STYLE]" - -#: lexsup.c:355 -msgid "Demangle symbol names [using STYLE]" -msgstr "Recouvrir les noms des symboles encodés par mutilisation [utilisant le STYLE]" - -#: lexsup.c:358 -msgid "Generate embedded relocs" -msgstr "Générer des relocalisations imbriqués" - -#: lexsup.c:360 -msgid "Treat warnings as errors" -msgstr "Traiter les avertissements comme des erreurs" - -#: lexsup.c:363 -msgid "Call SYMBOL at unload-time" -msgstr "Appeler le SYMBOLE au moment du déchargement" - -#: lexsup.c:365 -msgid "Force generation of file with .exe suffix" -msgstr "Force la génération de fichier avec le suffixe .exe" - -#: lexsup.c:367 -msgid "Remove unused sections (on some targets)" -msgstr "Enlever les sections inutilisées (sur quelques cibles)" - -#: lexsup.c:370 -msgid "Don't remove unused sections (default)" -msgstr "Ne pas enlever les sections inutilisées (par défaut)" - -#: lexsup.c:373 -msgid "Set default hash table size close to " -msgstr "Initialiser la table de hachage par défaut près de " - -#: lexsup.c:376 -msgid "Print option help" -msgstr "Afficher l'aide-mémoire" - -#: lexsup.c:378 -msgid "Call SYMBOL at load-time" -msgstr "Appeler le SYMBOLE au moment du chargement" - -#: lexsup.c:380 -msgid "Write a map file" -msgstr "Écrire un fichier de projection" - -#: lexsup.c:382 -msgid "Do not define Common storage" -msgstr "Ne pas définir le stockage commun" - -#: lexsup.c:384 -msgid "Do not demangle symbol names" -msgstr "Ne pas recouvrir les noms des symboles encodés par mutilisation" - -#: lexsup.c:386 -msgid "Use less memory and more disk I/O" -msgstr "Utiliser moins de mémoire et plus d'espace disque" - -#: lexsup.c:388 -msgid "Do not allow unresolved references in object files" -msgstr "Ne pas permettre les références indéfinis dans les objets partagés" - -#: lexsup.c:391 -msgid "Allow unresolved references in shared libaries" -msgstr "Permettre les références non résolues dans les librairies partagées" - -#: lexsup.c:395 -msgid "Do not allow unresolved references in shared libs" -msgstr "Ne pas permettre les références non résolues dans les librairies partagés" - -#: lexsup.c:399 -msgid "Allow multiple definitions" -msgstr "Autoriser des définitions multiples" - -#: lexsup.c:401 -msgid "Disallow undefined version" -msgstr "Ne pas permettre de version indéfinie" - -#: lexsup.c:403 -msgid "Create default symbol version" -msgstr "Créer la version de symbole par défaut" - -#: lexsup.c:406 -msgid "Create default symbol version for imported symbols" -msgstr "Créer la version de symbole par défaut pour les symboles importés" - -#: lexsup.c:409 -msgid "Don't warn about mismatched input files" -msgstr "Ne pas avertir à propos des non-concordances dans les fichiers d'entrée" - -#: lexsup.c:411 -msgid "Turn off --whole-archive" -msgstr "Désactiver --whole-archive" - -#: lexsup.c:413 -msgid "Create an output file even if errors occur" -msgstr "Créer un fichier de sortie même si des erreurs surviennent" - -#: lexsup.c:418 -msgid "" -"Only use library directories specified on\n" -"\t\t\t\tthe command line" -msgstr "" -"Utiliser seuelement les répertoires de librairies spécifiés sur\n" -"la ligne de commande" - -#: lexsup.c:421 -msgid "Specify target of output file" -msgstr "Spécifier un fichier cible de sortie" - -#: lexsup.c:424 -msgid "Ignored for Linux compatibility" -msgstr "Ignoré pour la compatibilité avec Linux" - -#: lexsup.c:427 -msgid "Reduce memory overheads, possibly taking much longer" -msgstr "Réduire la surcharge en mémoire, en prenant possiblement plus de temps" - -#: lexsup.c:430 -msgid "Relax branches on certain targets" -msgstr "Relâcher les branches de certaines cibles" - -#: lexsup.c:433 -msgid "Keep only symbols listed in FILE" -msgstr "Conserver uniquement les symboles listés dans le FICHIER" - -#: lexsup.c:435 -msgid "Set runtime shared library search path" -msgstr "Initialisé le chemin de recherche des librairies partagées pour l'exécution" - -#: lexsup.c:437 -msgid "Set link time shared library search path" -msgstr "Initialisé le chemin de recherche des librairies partagées pour l'édition de liens" - -#: lexsup.c:440 -msgid "Create a shared library" -msgstr "Créer une librairie partagée" - -#: lexsup.c:444 -msgid "Create a position independent executable" -msgstr "Créer un exécutable à position indépendante" - -#: lexsup.c:448 -msgid "Sort common symbols by size" -msgstr "Trier les symboles communs par taille" - -#: lexsup.c:452 -msgid "name|alignment" -msgstr "nom|alignement" - -#: lexsup.c:453 -msgid "Sort sections by name or maximum alignment" -msgstr "Tries les sections par le nom ou l'alignement maximal" - -#: lexsup.c:455 -msgid "COUNT" -msgstr "DÉCOMPTE" - -#: lexsup.c:455 -msgid "How many tags to reserve in .dynamic section" -msgstr "Combien d'étiquettes réservées dans la section .dynamic" - -#: lexsup.c:458 -msgid "[=SIZE]" -msgstr "[=TAILLE]" - -#: lexsup.c:458 -msgid "Split output sections every SIZE octets" -msgstr "Découper à la sortie les sections à chaque NOMBRE d'octets" - -#: lexsup.c:461 -msgid "[=COUNT]" -msgstr "[=DÉCOMPTE]" - -#: lexsup.c:461 -msgid "Split output sections every COUNT relocs" -msgstr "Découper à la sortie les sections à chaque NOMBRE de relocalisations" - -#: lexsup.c:464 -msgid "Print memory usage statistics" -msgstr "Afficher les statistiques de l'utilisation de la mémoire" - -#: lexsup.c:466 -msgid "Display target specific options" -msgstr "Afficher les options spécifiques cibles" - -#: lexsup.c:468 -msgid "Do task level linking" -msgstr "Composer des liens au niveau de l'exécution de la tache" - -#: lexsup.c:470 -msgid "Use same format as native linker" -msgstr "Utiliser le même format que l'éditeur de lien natif" - -#: lexsup.c:472 -msgid "SECTION=ADDRESS" -msgstr "SECTION=ADRESSE" - -#: lexsup.c:472 -msgid "Set address of named section" -msgstr "Initialisé l'adresse de la section nommé" - -#: lexsup.c:475 -msgid "Set address of .bss section" -msgstr "Initialisé l'adresse de la section .bss" - -#: lexsup.c:477 -msgid "Set address of .data section" -msgstr "Initialisé l'adresse de la section .data" - -#: lexsup.c:479 -msgid "Set address of .text section" -msgstr "Initialisé l'adresse de la section .text" - -#: lexsup.c:482 -msgid "" -"How to handle unresolved symbols. is:\n" -"\t\t\t\tignore-all, report-all, ignore-in-object-files,\n" -"\t\t\t\tignore-in-shared-libs" -msgstr "" -"Comment traiter les symboles non résolus. est:\n" -"\t\t\t\tignore-all, report-all, ignore-in-object-files,\n" -"\t\t\t\tignore-in-shared-libs" - -#: lexsup.c:486 -msgid "Output lots of information during link" -msgstr "Afficher des tas d'information durant l'édition de lien" - -#: lexsup.c:490 -msgid "Read version information script" -msgstr "Lire le script des informations de version" - -#: lexsup.c:493 -msgid "" -"Take export symbols list from .exports, using\n" -"\t\t\t\tSYMBOL as the version." -msgstr "" -"Prendre la liste des symboles exportés de .exports, en utilisant\n" -"\t\t\t\tSYMBOLE comme version." - -#: lexsup.c:496 -msgid "Warn about duplicate common symbols" -msgstr "AVERTIR au sujet des symboles communs dupliqués" - -#: lexsup.c:498 -msgid "Warn if global constructors/destructors are seen" -msgstr "AVERTIR si des constructeurs/destructeurs globaux sont détectés" - -#: lexsup.c:501 -msgid "Warn if the multiple GP values are used" -msgstr "AVERTIR si des valeurs GP multiples sont utilisées" - -#: lexsup.c:503 -msgid "Warn only once per undefined symbol" -msgstr "AVERTIR seulement une fois pour chaque symbole indéfini" - -#: lexsup.c:505 -msgid "Warn if start of section changes due to alignment" -msgstr "AVERTIR si le début de la section est modifié en raison de l'alignement" - -#: lexsup.c:508 -msgid "Warn if shared object has DT_TEXTREL" -msgstr "Avertir si l'objet partagé a DT_TEXTREL" - -#: lexsup.c:512 -msgid "Report unresolved symbols as warnings" -msgstr "Rapporter les symboles non résolus par avertissement" - -#: lexsup.c:515 -msgid "Report unresolved symbols as errors" -msgstr "Rapporter des symboles non résolus comme des errreurs" - -#: lexsup.c:517 -msgid "Include all objects from following archives" -msgstr "Inclure tous les objets des archives suivantes" - -#: lexsup.c:520 -msgid "Use wrapper functions for SYMBOL" -msgstr "Utiliser les fonctions d'emballage pour SYMBOLE" - -#: lexsup.c:667 -msgid "%P: unrecognized option '%s'\n" -msgstr "%P: option « %s » non reocnnue\n" - -#: lexsup.c:669 -msgid "%P%F: use the --help option for usage information\n" -msgstr "%P%F: utiliser --help pour afficher l'aide-mémoire\n" - -#: lexsup.c:687 -msgid "%P%F: unrecognized -a option `%s'\n" -msgstr "%P%F: -a option non reocnnue « %s »\n" - -#: lexsup.c:700 -msgid "%P%F: unrecognized -assert option `%s'\n" -msgstr "%P%F: -assert option non reconnue « %s »\n" - -#: lexsup.c:743 -msgid "%F%P: unknown demangling style `%s'" -msgstr "%F%P: style inconnu de recouvrement du transcodage par mutilisation « %s »" - -#: lexsup.c:805 -msgid "%P%F: invalid number `%s'\n" -msgstr "%P%F: nombre invalide « %s »\n" - -#: lexsup.c:897 -msgid "%P%F: bad --unresolved-symbols option: %s\n" -msgstr "%P%F: option erronée de --unresolved-symbols: %s\n" - -#. This can happen if the user put "-rpath,a" on the command -#. line. (Or something similar. The comma is important). -#. Getopt becomes confused and thinks that this is a -r option -#. but it cannot parse the text after the -r so it refuses to -#. increment the optind counter. Detect this case and issue -#. an error message here. We cannot just make this a warning, -#. increment optind, and continue because getopt is too confused -#. and will seg-fault the next time around. -#: lexsup.c:968 -msgid "%P%F: bad -rpath option\n" -msgstr "%P%F: option -rpath non reconnue\n" - -#: lexsup.c:1080 -msgid "%P%F: -shared not supported\n" -msgstr "%P%F: -shared non supporté\n" - -#: lexsup.c:1089 -msgid "%P%F: -pie not supported\n" -msgstr "%P%F: -pie n'est pas supportée\n" - -#: lexsup.c:1099 -msgid "name" -msgstr "nom" - -#: lexsup.c:1101 -msgid "alignment" -msgstr "alignement" - -#: lexsup.c:1104 -msgid "%P%F: invalid section sorting option: %s\n" -msgstr "%P%F:option de trie de section invalide: %s\n" - -#: lexsup.c:1130 -msgid "%P%F: invalid argument to option \"--section-start\"\n" -msgstr "%P%F: argument invalide pour l'option \"--section-start\"\n" - -#: lexsup.c:1137 -msgid "%P%F: missing argument(s) to option \"--section-start\"\n" -msgstr "%P%F: argument(s) manquant(s) pour l'option \"--section-start\"\n" - -#: lexsup.c:1311 -msgid "%P%F: may not nest groups (--help for usage)\n" -msgstr "%P%F: ne peut imbriquer les groupes (--help pour l'usage)\n" - -#: lexsup.c:1318 -msgid "%P%F: group ended before it began (--help for usage)\n" -msgstr "%P%F: fin du groupe avant son début (--help pour l'usage)\n" - -#: lexsup.c:1346 -msgid "%P%X: --hash-size needs a numeric argument\n" -msgstr "%P%X: --hash-size a beoin d'un argument numérique\n" - -#: lexsup.c:1397 lexsup.c:1410 -msgid "%P%F: invalid hex number `%s'\n" -msgstr "%P%F: nombre hexadécimal invalide « %s »\n" - -#: lexsup.c:1445 -#, c-format -msgid "Usage: %s [options] file...\n" -msgstr "Usage: %s [options] fichier...\n" - -#: lexsup.c:1447 -#, c-format -msgid "Options:\n" -msgstr "Options:\n" - -#. Note: Various tools (such as libtool) depend upon the -#. format of the listings below - do not change them. -#: lexsup.c:1530 -#, c-format -msgid "%s: supported targets:" -msgstr "%s: cibles supportées:" - -#: lexsup.c:1538 -#, c-format -msgid "%s: supported emulations: " -msgstr "%s: émulations supportées: " - -#: lexsup.c:1543 -#, c-format -msgid "%s: emulation specific options:\n" -msgstr "%s: options spécifiques d'émulation:\n" - -#: lexsup.c:1547 -#, c-format -msgid "Report bugs to %s\n" -msgstr "Rapporter toutes anomalies à %s\n" - -#: mri.c:291 -msgid "%P%F: unknown format type %s\n" -msgstr "%P%F: type de format inconnu %s\n" - -#: pe-dll.c:303 -#, c-format -msgid "%XUnsupported PEI architecture: %s\n" -msgstr "%XArchitecture PEI non supportée: %s\n" - -#: pe-dll.c:652 -#, c-format -msgid "%XError, duplicate EXPORT with ordinals: %s (%d vs %d)\n" -msgstr "%XErreur, duplicattion EXPORT avec nombre ordinal: %s (%d vs %d)\n" - -#: pe-dll.c:659 -#, c-format -msgid "Warning, duplicate EXPORT: %s\n" -msgstr "AVERTISSEMENT, duplication EXPORT: %s\n" - -#: pe-dll.c:725 -#, c-format -msgid "%XCannot export %s: symbol not defined\n" -msgstr "%XNe peut exporter %s: symbole indéfini\n" - -#: pe-dll.c:731 -#, c-format -msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n" -msgstr "%XNe peut exporter %s: mauvais type de symbole (%d vs %d)\n" - -#: pe-dll.c:738 -#, c-format -msgid "%XCannot export %s: symbol not found\n" -msgstr "%XNe peut exporter %s: symbole non repéré\n" - -#: pe-dll.c:850 -#, c-format -msgid "%XError, ordinal used twice: %d (%s vs %s)\n" -msgstr "%XErreur, ordinal utilisé 2 fois: %d (%s vs %s)\n" - -#: pe-dll.c:1172 -#, c-format -msgid "%XError: %d-bit reloc in dll\n" -msgstr "%XErreur: %d-bit relocalisation dans dll\n" - -#: pe-dll.c:1300 -#, c-format -msgid "%s: Can't open output def file %s\n" -msgstr "%s: ne peut ouvrir le fichier def %s\n" - -#: pe-dll.c:1443 -#, c-format -msgid "; no contents available\n" -msgstr "; aucun contenu disponible\n" - -#: pe-dll.c:2205 -msgid "%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n" -msgstr "%C: variable « %T » ne peut être auto-importée. SVP lire la documentation de ld --enable-auto-import pour plus de détails.\n" - -#: pe-dll.c:2235 -#, c-format -msgid "%XCan't open .lib file: %s\n" -msgstr "%XNe peut ouvrir le fichier .lib: %s\n" - -#: pe-dll.c:2240 -#, c-format -msgid "Creating library file: %s\n" -msgstr "Création du fichier de librairie: %s\n" - -#~ msgid "%F%P: %s uses undefined section %s\n" -#~ msgstr "%F%P: %s utilise une section indéfinie %s\n" - -#~ msgid "%F%P: %s forward reference of section %s\n" -#~ msgstr "%F%P: %s référence avant de la section %s\n" - -#~ msgid "%F%P: cannot open %s for %s: %E\n" -#~ msgstr "%F%P: ne peut ouvrir %s pour %s: %E\n" - -#~ msgid "%F%P: cannot open %s: %E\n" -#~ msgstr "%F%P: ne peut ouvrir %s: %E\n" - -#~ msgid "%P%F: unknown architecture: %s\n" -#~ msgstr "%P%F: architecture inconnue: %s\n" - -#~ msgid "%P%F: target architecture respecified\n" -#~ msgstr "%P%F: architecture cible re-spécifiée\n" - -#~ msgid "%P: %B: warning: ignoring duplicate `%s' section symbol `%s'\n" -#~ msgstr "%P: %B: AVERTISSEMENT: duplication ignorée « %s » dans la section symbole « %s »\n" - -#~ msgid "%P: %B: warning: duplicate section `%s' has different size\n" -#~ msgstr "%P: %B: AVERTISSEMENT: section dupliquée « %s » a un taille différente\n" - -#~ msgid "%P: no [COMMON] command, defaulting to .bss\n" -#~ msgstr "%P: pas de commande [COMMUNE], utilisation par défaut de .bss\n" - -#~ msgid "%P%F: -r and --mpc860c0 may not be used together\n" -#~ msgstr "%P%F: -r et --mpc860c0 ne peuvent être utilisés ensemble\n" - -#~ msgid "Allow no undefined symbols" -#~ msgstr "Ne pas permettre de symboles indéfinis" - -#~ msgid "Allow undefined symbols in shared objects (the default)" -#~ msgstr "Permettre les symboles indéfinis dans les objets partagés (par défaut)" - -#~ msgid "[=WORDS]" -#~ msgstr "[=MOTS]" - -#~ msgid "" -#~ "Modify problematic branches in last WORDS (1-10,\n" -#~ "\t\t\t\tdefault 5) words of a page" -#~ msgstr "" -#~ "Modifier les branches problématiques dans les derniers MOTS (1-10,\n" -#~ "\t\t\t\tpar défaut 5 derniers) mots de la page" - -#~ msgid "%P%F: invalid argument to option \"mpc860c0\"\n" -#~ msgstr "%P%F: argument invalide pour l'option « mpc860c0 »\n" - -#~ msgid " create __imp_ as well.\n" -#~ msgstr " créer __imp_ aussi.\n" - -#~ msgid " unless user specifies one\n" -#~ msgstr " à moins que l'usager en spécifie une\n" - -#~ msgid " --dll-search-prefix= When linking dynamically to a dll witout an\n" -#~ msgstr " --dll-search-prefix= lors du lien dynamique à un DLL sans un\n" - -#~ msgid " importlib, use .dll \n" -#~ msgstr " librairie d'importation, utilier .dll \n" - -#~ msgid " in preference to lib.dll \n" -#~ msgstr " à la place de lib.dll \n" - -#~ msgid "Archive member included" -#~ msgstr "Membre d'archive inclus" - -#~ msgid "Don't merge orphan sections with the same name" -#~ msgstr "Ne pas fusionner les section orphelines avec le même nom" diff --git a/ld/po/sv.po b/ld/po/sv.po deleted file mode 100644 index 4c17a25584c..00000000000 --- a/ld/po/sv.po +++ /dev/null @@ -1,1815 +0,0 @@ -# Swedish messages for ld. -# Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc. -# Christian Rose , 2001, 2002, 2004. -# -msgid "" -msgstr "" -"Project-Id-Version: ld 2.14rel030712\n" -"POT-Creation-Date: 2003-07-11 13:58+0930\n" -"PO-Revision-Date: 2004-03-22 15:32+0100\n" -"Last-Translator: Christian Rose \n" -"Language-Team: Swedish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-1\n" -"Content-Transfer-Encoding: 8bit\n" - -#: emultempl/armcoff.em:72 -msgid " --support-old-code Support interworking with old code\n" -msgstr " --support-old-code Stöd interaktion med gammal kod\n" - -#: emultempl/armcoff.em:73 -msgid " --thumb-entry= Set the entry point to be Thumb symbol \n" -msgstr "" -" --thumb-entry= Ställ in ingångspunkten till att vara tumsymbolen\n" -" \n" - -#: emultempl/armcoff.em:121 -#, c-format -msgid "Errors encountered processing file %s" -msgstr "Fel inträffade vid bearbetning av filen %s" - -#: emultempl/armcoff.em:188 emultempl/pe.em:1396 -msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n" -msgstr "%P: varning: \"--thumb-entry %s\" åsidosätter \"-e %s\"\n" - -#: emultempl/armcoff.em:193 emultempl/pe.em:1401 -msgid "%P: warning: connot find thumb start symbol %s\n" -msgstr "%P: varning: kan inte hitta tumstartsymbol %s\n" - -#: emultempl/pe.em:300 -msgid " --base_file Generate a base file for relocatable DLLs\n" -msgstr "" -" --base_file Generera en basfil för\n" -" omlokaliseringsbara DLL:er\n" - -#: emultempl/pe.em:301 -msgid " --dll Set image base to the default for DLLs\n" -msgstr "" -" --dll Ställ in bildbas till standard för\n" -" DLL:er\n" - -#: emultempl/pe.em:302 -msgid " --file-alignment Set file alignment\n" -msgstr " --file-alignment Ställ in filjustering\n" - -#: emultempl/pe.em:303 -msgid " --heap Set initial size of the heap\n" -msgstr " --heap Ställ in initial storlek på högen\n" - -#: emultempl/pe.em:304 -msgid " --image-base
Set start address of the executable\n" -msgstr " --image-base Ställ in startadressen för det körbara\n" - -#: emultempl/pe.em:305 -msgid " --major-image-version Set version number of the executable\n" -msgstr " --major-image-version Ställ in versionsnummer för det körbara\n" - -#: emultempl/pe.em:306 -msgid " --major-os-version Set minimum required OS version\n" -msgstr " --major-os-version Ställ in lägsta nödvändiga OS-version\n" - -#: emultempl/pe.em:307 -msgid " --major-subsystem-version Set minimum required OS subsystem version\n" -msgstr "" -" --major-subsystem-version Ställ in lägsta nödvändiga\n" -" OS-undersystemsversion\n" - -#: emultempl/pe.em:308 -msgid " --minor-image-version Set revision number of the executable\n" -msgstr "" -" --minor-image-version Ställ in underrevisionsnummer för\n" -" det körbara\n" - -#: emultempl/pe.em:309 -msgid " --minor-os-version Set minimum required OS revision\n" -msgstr " --minor-os-version Ställ in lägsta nödvändiga OS-revision\n" - -#: emultempl/pe.em:310 -msgid " --minor-subsystem-version Set minimum required OS subsystem revision\n" -msgstr "" -" --minor-subsystem-version Ställ in lägsta nödvändiga\n" -" OS-undersystemsrevision\n" - -#: emultempl/pe.em:311 -msgid " --section-alignment Set section alignment\n" -msgstr " --section-alignment Ställ in sektionsjustering\n" - -#: emultempl/pe.em:312 -msgid " --stack Set size of the initial stack\n" -msgstr " --stack Ställ in storlek på initiala stacken\n" - -#: emultempl/pe.em:313 -msgid " --subsystem [:] Set required OS subsystem [& version]\n" -msgstr "" -" --subsystem [:] Ställ in nödvändigt OS-undersystem\n" -" [och nödvändig version]\n" - -#: emultempl/pe.em:314 -msgid " --support-old-code Support interworking with old code\n" -msgstr " --support-old-code Stöd interaktion med gammal kod\n" - -#: emultempl/pe.em:315 -msgid " --thumb-entry= Set the entry point to be Thumb \n" -msgstr "" -" --thumb-entry= Ställ in ingångspunkten till att\n" -" vara tummen \n" - -#: emultempl/pe.em:317 -msgid " --add-stdcall-alias Export symbols with and without @nn\n" -msgstr " --add-stdcall-alias Exportera symboler med och utan @nn\n" - -#: emultempl/pe.em:318 -msgid " --disable-stdcall-fixup Don't link _sym to _sym@nn\n" -msgstr " --disable-stdcall-fixup Länka inte _sym till _sym@nn\n" - -#: emultempl/pe.em:319 -msgid " --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n" -msgstr " --enable-stdcall-fixup Länka _sym till _sym@nn utan varningar\n" - -#: emultempl/pe.em:320 -msgid " --exclude-symbols sym,sym,... Exclude symbols from automatic export\n" -msgstr "" -" --exclude-symbols sym,sym,... Exkludera symboler från automatisk\n" -" export\n" - -#: emultempl/pe.em:321 -msgid " --exclude-libs lib,lib,... Exclude libraries from automatic export\n" -msgstr "" -" --exclude-libs bibl,bibl,... Exkludera bibliotek från automatisk\n" -" export\n" - -#: emultempl/pe.em:322 -msgid " --export-all-symbols Automatically export all globals to DLL\n" -msgstr "" -" --export-all-symbols Exportera automatiskt alla symboler\n" -" till DLL\n" - -#: emultempl/pe.em:323 -msgid " --kill-at Remove @nn from exported symbols\n" -msgstr " --kill-at Ta bort @nn från exporterade symboler\n" - -#: emultempl/pe.em:324 -msgid " --out-implib Generate import library\n" -msgstr " --out-implib Generera importbibliotek\n" - -#: emultempl/pe.em:325 -msgid " --output-def Generate a .DEF file for the built DLL\n" -msgstr " --output-def Generera en .DEF-fil för byggd DLL\n" - -#: emultempl/pe.em:326 -msgid " --warn-duplicate-exports Warn about duplicate exports.\n" -msgstr " --warn-duplicate-exports Varna för dubbla exporter.\n" - -#: emultempl/pe.em:327 -msgid "" -" --compat-implib Create backward compatible import libs;\n" -" create __imp_ as well.\n" -msgstr "" -" --compat-implib Skapa bakåtkompatibla importbibliotek;\n" -" och skapa även __imp_.\n" - -#: emultempl/pe.em:329 -msgid "" -" --enable-auto-image-base Automatically choose image base for DLLs\n" -" unless user specifies one\n" -msgstr "" -" --enable-auto-image-base Välj automatiskt bildbas för DLL:er\n" -" såvida inte användaren anger en\n" - -#: emultempl/pe.em:331 -msgid " --disable-auto-image-base Do not auto-choose image base. (default)\n" -msgstr "" -" --disable-auto-image-base Välj inte bildbas automatiskt\n" -" (standard).\n" - -#: emultempl/pe.em:332 -msgid "" -" --dll-search-prefix= When linking dynamically to a dll without\n" -" an importlib, use .dll\n" -" in preference to lib.dll \n" -msgstr "" -" --dll-search-prefix= Använd .dll istället\n" -" för lib.dll vid dynamisk\n" -" länkning utan ett importbibliotek\n" - -#: emultempl/pe.em:335 -msgid "" -" --enable-auto-import Do sophistcated linking of _sym to\n" -" __imp_sym for DATA references\n" -msgstr "" -" --enable-auto-import Utför sofistikerad länkning av _sym till\n" -" __imp_sym för DATA-referenser\n" - -#: emultempl/pe.em:337 -msgid " --disable-auto-import Do not auto-import DATA items from DLLs\n" -msgstr "" -" --disable-auto-import Importera inte DATA-objekt från DLL:er\n" -" automatiskt\n" - -#: emultempl/pe.em:338 -msgid "" -" --enable-runtime-pseudo-reloc Work around auto-import limitations by\n" -" adding pseudo-relocations resolved at\n" -" runtime.\n" -msgstr "" -" --enable-runtime-pseudo-reloc Kringgå begränsningar i automatisk\n" -" import genom att lägga till\n" -" pseudoomlokaliseringar som löses under\n" -" körtid.\n" - -#: emultempl/pe.em:341 -msgid "" -" --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations for\n" -" auto-imported DATA.\n" -msgstr "" -" --disable-runtime-pseudo-reloc Lägg inte till pseudoomlokaliseringar\n" -" för automatisk importerad DATA under\n" -" körtid.\n" - -#: emultempl/pe.em:343 -msgid "" -" --enable-extra-pe-debug Enable verbose debug output when building\n" -" or linking to DLLs (esp. auto-import)\n" -msgstr "" -" --enable-extra-pe-debug Använd utförlig felsökningsutdata vid\n" -" bygge av eller länkning till DLL:er\n" -" (särskilt automatisk import)\n" - -#: emultempl/pe.em:412 -msgid "%P: warning: bad version number in -subsystem option\n" -msgstr "%P: varning: felaktigt nummer i flaggan -subsystem\n" - -#: emultempl/pe.em:448 -msgid "%P%F: invalid subsystem type %s\n" -msgstr "%P%F: ogiltig typ av undersystem %s\n" - -#: emultempl/pe.em:460 -msgid "%P%F: invalid hex number for PE parameter '%s'\n" -msgstr "%P%F: ogiltigt hexadecimalt tal för PE-parametern \"%s\"\n" - -#: emultempl/pe.em:477 -msgid "%P%F: strange hex info for PE parameter '%s'\n" -msgstr "%P%F: konstig hexadecimal information för PE-parametern \"%s\"\n" - -#: emultempl/pe.em:494 -#, c-format -msgid "%s: Can't open base file %s\n" -msgstr "%s: Kan inte öppna basfilen %s\n" - -#: emultempl/pe.em:707 -msgid "%P: warning, file alignment > section alignment.\n" -msgstr "%P: varning, filjusteringen > sektionsjusteringen.\n" - -#: emultempl/pe.em:794 emultempl/pe.em:821 -#, c-format -msgid "Warning: resolving %s by linking to %s\n" -msgstr "Varning: löser upp %s genom att länka till %s\n" - -#: emultempl/pe.em:799 emultempl/pe.em:826 -msgid "Use --enable-stdcall-fixup to disable these warnings\n" -msgstr "Använd --enable-stdcall-fixup för att stänga av dessa varningar\n" - -#: emultempl/pe.em:800 emultempl/pe.em:827 -msgid "Use --disable-stdcall-fixup to disable these fixups\n" -msgstr "Använd --disable-stdcall-fixup för att stänga av dessa korrigeringar\n" - -#: emultempl/pe.em:846 -#, c-format -msgid "%C: Cannot get section contents - auto-import exception\n" -msgstr "%C: Kan inte få tag i sektionsinnehåll - undantag i automatisk import\n" - -#: emultempl/pe.em:883 -#, c-format -msgid "Info: resolving %s by linking to %s (auto-import)\n" -msgstr "Info: löser upp %s genom att länka till %s (automatisk import)\n" - -#: emultempl/pe.em:954 -msgid "%F%P: PE operations on non PE file.\n" -msgstr "%F%P: PE-operationer på fil som inte är PE.\n" - -#: emultempl/pe.em:1188 -#, c-format -msgid "Errors encountered processing file %s\n" -msgstr "Fel uppstod vid behandling av filen %s\n" - -#: emultempl/pe.em:1211 -#, c-format -msgid "Errors encountered processing file %s for interworking" -msgstr "Fel uppstod vid behandling av filen %s för interaktion" - -#: emultempl/pe.em:1273 ldlang.c:1904 ldlang.c:4397 ldlang.c:4428 -#: ldmain.c:1122 -msgid "%P%F: bfd_link_hash_lookup failed: %E\n" -msgstr "%P%F: bfd_link_hash_lookup misslyckades: %E\n" - -#: ldcref.c:153 -msgid "%X%P: bfd_hash_table_init of cref table failed: %E\n" -msgstr "%X%P: bfd_hash_table_init av korsreferenstabellen misslyckades: %E\n" - -#: ldcref.c:159 -msgid "%X%P: cref_hash_lookup failed: %E\n" -msgstr "%X%P: cref_hash_lookup misslyckades: %E\n" - -#: ldcref.c:225 -msgid "" -"\n" -"Cross Reference Table\n" -"\n" -msgstr "" -"\n" -"Korsreferenstabell\n" -"\n" - -#: ldcref.c:226 -msgid "Symbol" -msgstr "Symbol" - -#: ldcref.c:234 -msgid "File\n" -msgstr "Fil\n" - -#: ldcref.c:238 -msgid "No symbols\n" -msgstr "Inga symboler\n" - -#: ldcref.c:384 -msgid "%P: symbol `%T' missing from main hash table\n" -msgstr "%P: symbolen \"%T\" saknas från hastabellen\n" - -#: ldcref.c:448 -msgid "%B%F: could not read symbols; %E\n" -msgstr "%B%F: kunde inte läsa symboler; %E\n" - -#: ldcref.c:452 ldmain.c:1187 ldmain.c:1191 -msgid "%B%F: could not read symbols: %E\n" -msgstr "%B%F: kunde inte läsa symboler: %E\n" - -#: ldcref.c:517 ldcref.c:524 ldmain.c:1234 ldmain.c:1241 -msgid "%B%F: could not read relocs: %E\n" -msgstr "%B%F: kunde inte läsa omlokaliseringar: %E\n" - -#. We found a reloc for the symbol. The symbol is defined -#. in OUTSECNAME. This reloc is from a section which is -#. mapped into a section from which references to OUTSECNAME -#. are prohibited. We must report an error. -#: ldcref.c:543 -msgid "%X%C: prohibited cross reference from %s to `%T' in %s\n" -msgstr "%X%C: förbjuden korsreferens från %s till \"%T\" i %s\n" - -#: ldctor.c:84 -msgid "%P%X: Different relocs used in set %s\n" -msgstr "%P%X: Olika omlokaliseringar använda i gruppen %s\n" - -#: ldctor.c:102 -msgid "%P%X: Different object file formats composing set %s\n" -msgstr "%P%X: Olika objektfilformat utgör gruppen %s\n" - -#: ldctor.c:281 ldctor.c:295 -msgid "%P%X: %s does not support reloc %s for set %s\n" -msgstr "%P%X: %s stöder inte omlokaliseringen %s för gruppen %s\n" - -#: ldctor.c:316 -msgid "%P%X: Unsupported size %d for set %s\n" -msgstr "%P%X: Storleken %d för gruppen %s stöds inte\n" - -#: ldctor.c:337 -msgid "" -"\n" -"Set Symbol\n" -"\n" -msgstr "" -"\n" -"Grupp Symbol\n" -"\n" - -#: ldemul.c:247 -#, c-format -msgid "%S SYSLIB ignored\n" -msgstr "%S SYSLIB ignorerades\n" - -#: ldemul.c:254 -#, c-format -msgid "%S HLL ignored\n" -msgstr "%S HLL ignorerades\n" - -#: ldemul.c:275 -msgid "%P: unrecognised emulation mode: %s\n" -msgstr "%P: okänt emuleringsläge: %s\n" - -#: ldemul.c:276 -msgid "Supported emulations: " -msgstr "Emuleringar som stöds: " - -#: ldemul.c:320 -msgid " no emulation specific options.\n" -msgstr " inga emuleringsspecifika flaggor.\n" - -#: ldexp.c:148 -msgid "%F%P: %s uses undefined section %s\n" -msgstr "%F%P: %s använder odefinierad sektion %s\n" - -#: ldexp.c:150 -msgid "%F%P: %s forward reference of section %s\n" -msgstr "%F%P: %s framåtreferens av sektionen %s\n" - -#: ldexp.c:355 -#, c-format -msgid "%F%S %% by zero\n" -msgstr "%F%S %% med noll\n" - -#: ldexp.c:362 -#, c-format -msgid "%F%S / by zero\n" -msgstr "%F%S / med noll\n" - -#: ldexp.c:533 -#, c-format -msgid "%X%S: unresolvable symbol `%s' referenced in expression\n" -msgstr "%X%S: oupplösningsbara symbolen \"%s\" refererades i uttrycket\n" - -#: ldexp.c:553 -#, c-format -msgid "%F%S: undefined symbol `%s' referenced in expression\n" -msgstr "%F%S: odefinierade symbolen \"%s\" refererades i uttrycket\n" - -#: ldexp.c:677 -#, c-format -msgid "%F%S can not PROVIDE assignment to location counter\n" -msgstr "%F%S kan inte TILLHANDAHÅLLA tilldelning till platsräknare\n" - -#: ldexp.c:687 -#, c-format -msgid "%F%S invalid assignment to location counter\n" -msgstr "%F%S ogiltig tilldelning till platsräknare\n" - -#: ldexp.c:691 -#, c-format -msgid "%F%S assignment to location counter invalid outside of SECTION\n" -msgstr "%F%S tilldelning till platsräknare som är ogiltig utanför SEKTION\n" - -#: ldexp.c:700 -msgid "%F%S cannot move location counter backwards (from %V to %V)\n" -msgstr "%F%S kan inte flytta platsräknare bakåt (från %V till %V)\n" - -#: ldexp.c:727 -msgid "%P%F:%s: hash creation failed\n" -msgstr "%P%F:%s: skapande av hash misslyckades\n" - -#: ldexp.c:1003 ldexp.c:1035 -#, c-format -msgid "%F%S nonconstant expression for %s\n" -msgstr "%F%S ickekonstant uttryck för %s\n" - -#: ldexp.c:1089 -#, c-format -msgid "%F%S non constant expression for %s\n" -msgstr "%F%S ickekonstant uttryck för %s\n" - -#: ldfile.c:144 -#, c-format -msgid "attempt to open %s failed\n" -msgstr "försök att öppna %s misslyckades\n" - -#: ldfile.c:146 -#, c-format -msgid "attempt to open %s succeeded\n" -msgstr "försök att öppna %s lyckades\n" - -#: ldfile.c:152 -msgid "%F%P: invalid BFD target `%s'\n" -msgstr "%F%P: ogiltigt BFD-mål \"%s\"\n" - -#: ldfile.c:258 ldfile.c:275 -msgid "%P: skipping incompatible %s when searching for %s\n" -msgstr "%P: hoppar över inkompatibel %s vid sökning av %s\n" - -#: ldfile.c:377 -msgid "%F%P: cannot open %s for %s: %E\n" -msgstr "%F%P: kan inte öppna %s för %s: %E\n" - -#: ldfile.c:380 -msgid "%F%P: cannot open %s: %E\n" -msgstr "%F%P: kan inte öppna %s: %E\n" - -#: ldfile.c:410 -msgid "%F%P: cannot find %s inside %s\n" -msgstr "%F%P: kan inte hitta %s inuti %s\n" - -#: ldfile.c:413 -msgid "%F%P: cannot find %s\n" -msgstr "%F%P: kan inte hitta %s\n" - -#: ldfile.c:430 ldfile.c:446 -#, c-format -msgid "cannot find script file %s\n" -msgstr "kan inte hitta skriptfilen %s\n" - -#: ldfile.c:432 ldfile.c:448 -#, c-format -msgid "opened script file %s\n" -msgstr "öppnade skriptfilen %s\n" - -#: ldfile.c:492 -msgid "%P%F: cannot open linker script file %s: %E\n" -msgstr "%P%F: kan inte öppna länkskriptfilen %s: %E\n" - -#: ldfile.c:529 -msgid "%P%F: unknown architecture: %s\n" -msgstr "%P%F: okänd arkitektur: %s\n" - -#: ldfile.c:543 -msgid "%P%F: target architecture respecified\n" -msgstr "%P%F: målarkitekturen specifierades om\n" - -#: ldfile.c:594 -msgid "%P%F: cannot represent machine `%s'\n" -msgstr "%P%F: kan inte representera maskinen \"%s\"\n" - -#: ldlang.c:640 -msgid "" -"\n" -"Memory Configuration\n" -"\n" -msgstr "" -"\n" -"Minneskonfiguration\n" -"\n" - -#: ldlang.c:642 -msgid "Name" -msgstr "Namn" - -#: ldlang.c:642 -msgid "Origin" -msgstr "Början" - -#: ldlang.c:642 -msgid "Length" -msgstr "Längd" - -#: ldlang.c:642 -msgid "Attributes" -msgstr "Attribut" - -#: ldlang.c:682 -msgid "" -"\n" -"Linker script and memory map\n" -"\n" -msgstr "" -"\n" -"Länkskript och minnestabell\n" -"\n" - -#: ldlang.c:698 -msgid "%P%F: Illegal use of `%s' section\n" -msgstr "%P%F: Otillåten användning av sektionen \"%s\"\n" - -#: ldlang.c:707 -msgid "%P%F: output format %s cannot represent section called %s\n" -msgstr "%P%F: utdataformatet %s kan inte representera sektionen kallad %s\n" - -#: ldlang.c:867 -msgid "%P: %B: warning: ignoring duplicate section `%s'\n" -msgstr "%P: %B: varning: ignorerar dubbel sektion \"%s\"\n" - -#: ldlang.c:870 -msgid "%P: %B: warning: ignoring duplicate `%s' section symbol `%s'\n" -msgstr "%P: %B: varning: ignorerar dubbla \"%s\"-sektionssymbolen \"%s\"\n" - -#: ldlang.c:884 -msgid "%P: %B: warning: duplicate section `%s' has different size\n" -msgstr "%P: %B: varning: dubbla sektionen \"%s\" har annan storlek\n" - -#: ldlang.c:936 -msgid "%P%F: Failed to create hash table\n" -msgstr "%P%F: Misslyckades med att skapa hashtabell\n" - -#: ldlang.c:1351 -msgid "%B: file not recognized: %E\n" -msgstr "%B: filen inte igenkänd: %E\n" - -#: ldlang.c:1352 -msgid "%B: matching formats:" -msgstr "%B: matchande format:" - -#: ldlang.c:1359 -msgid "%F%B: file not recognized: %E\n" -msgstr "%F%B: filen inte igenkänd: %E\n" - -#: ldlang.c:1418 -msgid "%F%B: member %B in archive is not an object\n" -msgstr "%F%B: medlem %B i arkivet är inte ett objekt\n" - -#: ldlang.c:1429 ldlang.c:1443 -msgid "%F%B: could not read symbols: %E\n" -msgstr "%F%B: kunde inte läsa symboler: %E\n" - -#: ldlang.c:1698 -msgid "%P: warning: could not find any targets that match endianness requirement\n" -msgstr "%P: varning: kunde inte hitta några mål som matchar kravet på endianess\n" - -#: ldlang.c:1711 -msgid "%P%F: target %s not found\n" -msgstr "%P%F: målet %s hittades inte\n" - -#: ldlang.c:1713 -msgid "%P%F: cannot open output file %s: %E\n" -msgstr "%P%F: kan inte öppna utdatafilen %s: %E\n" - -#: ldlang.c:1723 -msgid "%P%F:%s: can not make object file: %E\n" -msgstr "%P%F:%s: kan inte skapa objektfilen: %E\n" - -#: ldlang.c:1727 -msgid "%P%F:%s: can not set architecture: %E\n" -msgstr "%P%F:%s: kan inte ställa in arkitektur: %E\n" - -#: ldlang.c:1731 -msgid "%P%F: can not create link hash table: %E\n" -msgstr "%P%F: kan inte skapa hashtabell över länkar: %E\n" - -#: ldlang.c:2069 -msgid " load address 0x%V" -msgstr " inläsningsadress 0x%V" - -#: ldlang.c:2204 -msgid "%W (size before relaxing)\n" -msgstr "%W (storlek innan avslappning)\n" - -#: ldlang.c:2288 -#, c-format -msgid "Address of section %s set to " -msgstr "Adressen på sektionen %s ställd till " - -#: ldlang.c:2443 -#, c-format -msgid "Fail with %d\n" -msgstr "Misslyckas med %d\n" - -#: ldlang.c:2683 -msgid "%X%P: section %s [%V -> %V] overlaps section %s [%V -> %V]\n" -msgstr "%X%P: sektionen %s [%V -> %V] överlappar med sektionen %s [%V -> %V]\n" - -#: ldlang.c:2711 -msgid "%X%P: address 0x%v of %B section %s is not within region %s\n" -msgstr "%X%P: adressen 0x%v i %B-sektionen %s är inte inom området %s\n" - -#: ldlang.c:2719 -msgid "%X%P: region %s is full (%B section %s)\n" -msgstr "%X%P: området %s är fullt (%B-sektion %s)\n" - -#: ldlang.c:2770 -msgid "%P%X: Internal error on COFF shared library section %s\n" -msgstr "%P%X: Internt fel i delat COFF-bibliotek sektion %s\n" - -#: ldlang.c:2826 -msgid "%P%F: error: no memory region specified for loadable section `%s'\n" -msgstr "%P%F: fel: inget minnesområde angivet för inläsbara sektionen \"%s\"\n" - -#: ldlang.c:2830 -msgid "%P: warning: no memory region specified for loadable section `%s'\n" -msgstr "%P: varning: inget minnesområde angivet för inläsbara sektionen \"%s\"\n" - -#: ldlang.c:2846 -msgid "%P: warning: changing start of section %s by %u bytes\n" -msgstr "%P: varning: ändrar start på sektionen %s med %u byte\n" - -#: ldlang.c:2859 -#, c-format -msgid "%F%S: non constant address expression for section %s\n" -msgstr "%F%S: ickekonstant adressuttryck för sektionen %s\n" - -#: ldlang.c:3036 -msgid "%P%F: can't relax section: %E\n" -msgstr "%P%F: kan inte slappna av sektion: %E\n" - -#: ldlang.c:3232 -msgid "%F%P: invalid data statement\n" -msgstr "%F%P: ogiltig datasats\n" - -#: ldlang.c:3269 -msgid "%F%P: invalid reloc statement\n" -msgstr "%F%P: ogiltig omlokaliseringssats\n" - -#: ldlang.c:3408 -msgid "%P%F:%s: can't set start address\n" -msgstr "%P%F:%s: kan inte ställa in startadress\n" - -#: ldlang.c:3421 ldlang.c:3439 -msgid "%P%F: can't set start address\n" -msgstr "%P%F: kan inte ställa in startadress\n" - -#: ldlang.c:3433 -msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n" -msgstr "%P: varning: kan inte hitta ingångssymbolen %s; använder som standard %V\n" - -#: ldlang.c:3444 -msgid "%P: warning: cannot find entry symbol %s; not setting start address\n" -msgstr "%P: varning: kan inte hitta ingångssymbolen %s; ställer inte in startadress\n" - -#: ldlang.c:3488 -msgid "%P%F: Relocatable linking with relocations from format %s (%B) to format %s (%B) is not supported\n" -msgstr "%P%F: Omlokaliseringsbar länkning med omlänkningar från formatet %s (%B) till formatet %s (%B) stöds inte\n" - -#: ldlang.c:3497 -msgid "%P: warning: %s architecture of input file `%B' is incompatible with %s output\n" -msgstr "%P: varning: %s-arkitekturen i indatafilen \"%B\" är inkompatibel med %s-utdata\n" - -#: ldlang.c:3518 -msgid "%E%X: failed to merge target specific data of file %B\n" -msgstr "%E%X: misslyckades med att slå samman målspecifik data i filen %B\n" - -#: ldlang.c:3604 -msgid "" -"\n" -"Allocating common symbols\n" -msgstr "" -"\n" -"Allokerar gemensamma symboler\n" - -#: ldlang.c:3605 -msgid "" -"Common symbol size file\n" -"\n" -msgstr "" -"Gemensam symbol storlek fil\n" -"\n" - -#. This message happens when using the -#. svr3.ifile linker script, so I have -#. disabled it. -#: ldlang.c:3681 -msgid "%P: no [COMMON] command, defaulting to .bss\n" -msgstr "%P: inget [COMMON]-kommando, använder standardalternativet .bss\n" - -#: ldlang.c:3737 -msgid "%P%F: invalid syntax in flags\n" -msgstr "%P%F: ogiltig syntax i flaggor\n" - -#: ldlang.c:4325 -msgid "%P%Fmultiple STARTUP files\n" -msgstr "%P%Fflera samtidiga STARTUP-filer\n" - -#: ldlang.c:4368 -msgid "%X%P:%S: section has both a load address and a load region\n" -msgstr "%X%P:%S: sektionen har både en inläsningsadress och ett minnesinläsningsområde\n" - -#: ldlang.c:4608 -msgid "%F%P: bfd_record_phdr failed: %E\n" -msgstr "%F%P: bfd_record_phdr misslyckades: %E\n" - -#: ldlang.c:4627 -msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n" -msgstr "%X%P: sektionen \"%s\" är tilldelad till ickexisterande phvd \"%s\"\n" - -#: ldlang.c:4919 -msgid "%X%P: unknown language `%s' in version information\n" -msgstr "%X%P: okänt språk i \"%s\" i versionsinformation\n" - -#: ldlang.c:4969 -msgid "%X%P: anonymous version tag cannot be combined with other version tags\n" -msgstr "%X%P: anonym versionstagg kan inte kombineras med andra versionstaggar\n" - -#: ldlang.c:4977 -msgid "%X%P: duplicate version tag `%s'\n" -msgstr "%X%P: dubbel versionstagg \"%s\"\n" - -#: ldlang.c:4990 ldlang.c:5003 -msgid "%X%P: duplicate expression `%s' in version information\n" -msgstr "%X%P: dubbelt uttryck \"%s\" i versionsinformation\n" - -#: ldlang.c:5043 -msgid "%X%P: unable to find version dependency `%s'\n" -msgstr "%X%P: kan inte hitta versionsberoende \"%s\"\n" - -#: ldlang.c:5065 -msgid "%X%P: unable to read .exports section contents\n" -msgstr "%X%P: kan inte läsa innehållet i .exports-sektionen\n" - -#: ldmain.c:247 -msgid "%X%P: can't set BFD default target to `%s': %E\n" -msgstr "%X%P: kan inte ställa in BSD-standardmålet till \"%s\": %E\n" - -#: ldmain.c:349 -msgid "%P%F: -r and --mpc860c0 may not be used together\n" -msgstr "%P%F: -r och --mpc860c0 kan inte användas tillsammans\n" - -#: ldmain.c:351 -msgid "%P%F: --relax and -r may not be used together\n" -msgstr "%P%F: --relax och -r kan inte användas tillsammans\n" - -#: ldmain.c:353 -msgid "%P%F: -r and -shared may not be used together\n" -msgstr "%P%F: -r och -shared kan inte användas tillsammans\n" - -#: ldmain.c:359 -msgid "%P%F: -F may not be used without -shared\n" -msgstr "%P%F: -F kan inte användas utan -shared\n" - -#: ldmain.c:361 -msgid "%P%F: -f may not be used without -shared\n" -msgstr "%P%F: -f kan inte användas utan -shared\n" - -#: ldmain.c:403 -msgid "using external linker script:" -msgstr "använder externt länkskript:" - -#: ldmain.c:405 -msgid "using internal linker script:" -msgstr "använder internt länkskript:" - -#: ldmain.c:439 -msgid "%P%F: no input files\n" -msgstr "%P%F: inga indatafiler\n" - -#: ldmain.c:443 -msgid "%P: mode %s\n" -msgstr "%P: läge %s\n" - -#: ldmain.c:459 -msgid "%P%F: cannot open map file %s: %E\n" -msgstr "%P%F: kan inte öppna tabellfil %s: %E\n" - -#: ldmain.c:489 -msgid "%P: link errors found, deleting executable `%s'\n" -msgstr "%P: länkfel hittades, tar bort den körbara filen \"%s\"\n" - -#: ldmain.c:498 -msgid "%F%B: final close failed: %E\n" -msgstr "%F%B: avslutande stängning misslyckades: %E\n" - -#: ldmain.c:524 -msgid "%X%P: unable to open for source of copy `%s'\n" -msgstr "%X%P: kan inte öppna för källkoden till kopian \"%s\"\n" - -#: ldmain.c:527 -msgid "%X%P: unable to open for destination of copy `%s'\n" -msgstr "%X%P: kan inte öppna för mål av kopian \"%s\"\n" - -#: ldmain.c:534 -msgid "%P: Error writing file `%s'\n" -msgstr "%P: Fel vid skrivning av filen \"%s\"\n" - -#: ldmain.c:539 pe-dll.c:1443 -#, c-format -msgid "%P: Error closing file `%s'\n" -msgstr "%P: Fel vid stängning av filen \"%s\"\n" - -#: ldmain.c:555 -#, c-format -msgid "%s: total time in link: %ld.%06ld\n" -msgstr "%s: total tid i länkning: %ld.%06ld\n" - -#: ldmain.c:558 -#, c-format -msgid "%s: data size %ld\n" -msgstr "%s: datastorlek %ld\n" - -#: ldmain.c:596 -msgid "%P%F: missing argument to -m\n" -msgstr "%P%F: argument saknas till -m\n" - -#: ldmain.c:741 ldmain.c:759 ldmain.c:789 -msgid "%P%F: bfd_hash_table_init failed: %E\n" -msgstr "%P%F: bfd_hash_table_init misslyckades: %E\n" - -#: ldmain.c:745 ldmain.c:763 -msgid "%P%F: bfd_hash_lookup failed: %E\n" -msgstr "%P%F: bfd_hash_lookup misslyckades: %E\n" - -#: ldmain.c:777 -msgid "%X%P: error: duplicate retain-symbols-file\n" -msgstr "%X%P: fel: dubbel retain-symbols-file\n" - -#: ldmain.c:819 -msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n" -msgstr "%P%F: bfd_hash_lookup för ingång misslyckades: %E\n" - -#: ldmain.c:824 -msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n" -msgstr "%P: \"-retain-symbols-file\" åsidosätter \"-s\" och \"-S\"\n" - -#: ldmain.c:899 -msgid "" -"Archive member included because of file (symbol)\n" -"\n" -msgstr "" -"Arkivmedlem inkluderad på grund av fil (symbol)\n" -"\n" - -#: ldmain.c:969 -msgid "%X%C: multiple definition of `%T'\n" -msgstr "%X%C: flera defintioner av \"%T\"\n" - -#: ldmain.c:972 -msgid "%D: first defined here\n" -msgstr "%D: först definierad här\n" - -#: ldmain.c:976 -msgid "%P: Disabling relaxation: it will not work with multiple definitions\n" -msgstr "%P: Stänger av avslappning: det kommer inte att fungera med flera definitioner\n" - -#: ldmain.c:1006 -msgid "%B: warning: definition of `%T' overriding common\n" -msgstr "%B: varning: definitioner av \"%T\" åsidosätter gemensam\n" - -#: ldmain.c:1009 -msgid "%B: warning: common is here\n" -msgstr "%B: varning: gemensam är här\n" - -#: ldmain.c:1016 -msgid "%B: warning: common of `%T' overridden by definition\n" -msgstr "%B: varning: gemensam i \"%T\" åsidosattes av definition\n" - -#: ldmain.c:1019 -msgid "%B: warning: defined here\n" -msgstr "%B: varning: definierad här\n" - -#: ldmain.c:1026 -msgid "%B: warning: common of `%T' overridden by larger common\n" -msgstr "%B: varning: gemensam i \"%T\" åsidosattes av större gemensam\n" - -#: ldmain.c:1029 -msgid "%B: warning: larger common is here\n" -msgstr "%B: varning: större gemensam är här\n" - -#: ldmain.c:1033 -msgid "%B: warning: common of `%T' overriding smaller common\n" -msgstr "%B: varning: gemensam i \"%T\" åsidosätter mindre gemensam\n" - -#: ldmain.c:1036 -msgid "%B: warning: smaller common is here\n" -msgstr "%B: varning: mindre gemensam är här\n" - -#: ldmain.c:1040 -msgid "%B: warning: multiple common of `%T'\n" -msgstr "%B: varning: flera gemensamma i \"%T\"\n" - -#: ldmain.c:1042 -msgid "%B: warning: previous common is here\n" -msgstr "%B: varning: föregående gemensam är här\n" - -#: ldmain.c:1062 ldmain.c:1100 -msgid "%P: warning: global constructor %s used\n" -msgstr "%P: varning: global konstruktor %s användes\n" - -#: ldmain.c:1110 -msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n" -msgstr "%P%F: Fel i BFD-backend: BFD_RELOC_CTOR stöds inte\n" - -#: ldmain.c:1287 ldmisc.c:533 -msgid "%F%P: bfd_hash_table_init failed: %E\n" -msgstr "%F%P: bfd_hash_table_init misslyckades: %E\n" - -#: ldmain.c:1294 ldmisc.c:540 -msgid "%F%P: bfd_hash_lookup failed: %E\n" -msgstr "%F%P: bfd_hash_lookup misslyckades: %E\n" - -#: ldmain.c:1314 -msgid "%C: undefined reference to `%T'\n" -msgstr "%C: odefinierad referens till \"%T\"\n" - -#: ldmain.c:1320 -msgid "%D: more undefined references to `%T' follow\n" -msgstr "%D: flera odefinierade referenser till \"%T\" följer\n" - -#: ldmain.c:1327 -msgid "%B: undefined reference to `%T'\n" -msgstr "%B: odefinierad referens till \"%T\"\n" - -#: ldmain.c:1333 -msgid "%B: more undefined references to `%T' follow\n" -msgstr "%B: flera odefinierade referenser till \"%T\" följer\n" - -#: ldmain.c:1364 ldmain.c:1392 ldmain.c:1410 -msgid "%P%X: generated" -msgstr "%P%X: genererad" - -#: ldmain.c:1371 -msgid " additional relocation overflows omitted from the output\n" -msgstr " ytterligare omlokaliseringsspill utelämnade från utdatan\n" - -#: ldmain.c:1375 -msgid " relocation truncated to fit: %s %T" -msgstr " omlokalisering trunkerad för att passa: %s %T" - -#: ldmain.c:1395 -#, c-format -msgid "dangerous relocation: %s\n" -msgstr "farlig omlokalisering: %s\n" - -#: ldmain.c:1413 -msgid " reloc refers to symbol `%T' which is not being output\n" -msgstr " omlokalisering refererar till symbolen \"%T\" som inte skrivs ut\n" - -#: ldmisc.c:147 -msgid "no symbol" -msgstr "ingen symbol" - -#: ldmisc.c:211 -#, c-format -msgid "built in linker script:%u" -msgstr "inbyggt länkskript:%u" - -#: ldmisc.c:260 ldmisc.c:264 -msgid "%B%F: could not read symbols\n" -msgstr "%B%F: kunde inte läsa symboler\n" - -#: ldmisc.c:291 -msgid ": In function `%T':\n" -msgstr ": I funktionen \"%T\":\n" - -#: ldmisc.c:438 -msgid "%F%P: internal error %s %d\n" -msgstr "%F%P: internt fel %s %d\n" - -#: ldmisc.c:484 -msgid "%P: internal error: aborting at %s line %d in %s\n" -msgstr "%P: internt fel: avbryter vid %s rad %d i %s\n" - -#: ldmisc.c:487 -msgid "%P: internal error: aborting at %s line %d\n" -msgstr "%P: internt fel: avbryter vid %s rad %d\n" - -#: ldmisc.c:489 -msgid "%P%F: please report this bug\n" -msgstr "%P%F: rapportera detta fel\n" - -#. Output for noisy == 2 is intended to follow the GNU standards. -#: ldver.c:39 -#, c-format -msgid "GNU ld version %s\n" -msgstr "GNU ld version %s\n" - -#: ldver.c:43 -msgid "Copyright 2002 Free Software Foundation, Inc.\n" -msgstr "Copyright 2002 Free Software Foundation, Inc.\n" - -#: ldver.c:44 -msgid "" -"This program is free software; you may redistribute it under the terms of\n" -"the GNU General Public License. This program has absolutely no warranty.\n" -msgstr "" -"Detta program är fri programvara. Du kan vidaredistribuera det under\n" -"villkoren i GNU General Public License. Detta program har ingen som\n" -"helst garanti.\n" - -#: ldver.c:53 -msgid " Supported emulations:\n" -msgstr " Emuleringar som stöds:\n" - -#: ldwrite.c:54 ldwrite.c:190 -msgid "%P%F: bfd_new_link_order failed\n" -msgstr "%P%F: bfd_new_link_order misslyckades\n" - -#: ldwrite.c:310 -msgid "%F%P: clone section failed: %E\n" -msgstr "%F%P: klonsektion misslyckades: %E\n" - -#: ldwrite.c:348 -#, c-format -msgid "%8x something else\n" -msgstr "%8x någonting annat\n" - -#: ldwrite.c:525 -msgid "%F%P: final link failed: %E\n" -msgstr "%F%P: avslutande länkning misslyckades: %E\n" - -#: lexsup.c:179 lexsup.c:284 -msgid "KEYWORD" -msgstr "NYCKELORD" - -#: lexsup.c:179 -msgid "Shared library control for HP/UX compatibility" -msgstr "Styrning av delade bibliotek för kompatibilitet med HP/UX" - -#: lexsup.c:182 -msgid "ARCH" -msgstr "ARK" - -#: lexsup.c:182 -msgid "Set architecture" -msgstr "Ställ in arkitektur" - -#: lexsup.c:184 lexsup.c:357 -msgid "TARGET" -msgstr "MÅL" - -#: lexsup.c:184 -msgid "Specify target for following input files" -msgstr "Ange mål för följande indatafiler" - -#: lexsup.c:186 lexsup.c:229 lexsup.c:241 lexsup.c:254 lexsup.c:329 -#: lexsup.c:364 lexsup.c:408 -msgid "FILE" -msgstr "FIL" - -#: lexsup.c:186 -msgid "Read MRI format linker script" -msgstr "Läs länkskript i MRI-format" - -#: lexsup.c:188 -msgid "Force common symbols to be defined" -msgstr "Tvinga gemensamma symboler att vara definierade" - -#: lexsup.c:192 lexsup.c:398 lexsup.c:400 lexsup.c:402 -msgid "ADDRESS" -msgstr "ADRESS" - -#: lexsup.c:192 -msgid "Set start address" -msgstr "Ställ in startadress" - -#: lexsup.c:194 -msgid "Export all dynamic symbols" -msgstr "Exportera alla dynamiska symboler" - -#: lexsup.c:196 -msgid "Link big-endian objects" -msgstr "Länka objekt som är big-endian" - -#: lexsup.c:198 -msgid "Link little-endian objects" -msgstr "Länka objekt som är little-endian" - -#: lexsup.c:200 lexsup.c:203 -msgid "SHLIB" -msgstr "DELBIBL" - -#: lexsup.c:200 -msgid "Auxiliary filter for shared object symbol table" -msgstr "Yttre filter för symboltabell över delade objekt" - -#: lexsup.c:203 -msgid "Filter for shared object symbol table" -msgstr "Filter för symboltabell över delade objekt" - -#: lexsup.c:205 -msgid "Ignored" -msgstr "Ignorerad" - -#: lexsup.c:207 -msgid "SIZE" -msgstr "STORLEK" - -#: lexsup.c:207 -msgid "Small data size (if no size, same as --shared)" -msgstr "Liten datastorlek (om ingen storlek, samma som --shared)" - -#: lexsup.c:210 -msgid "FILENAME" -msgstr "FILNAMN" - -#: lexsup.c:210 -msgid "Set internal name of shared library" -msgstr "Ställ in internt namn på delat bibliotek" - -#: lexsup.c:212 -msgid "PROGRAM" -msgstr "PROGRAM" - -#: lexsup.c:212 -msgid "Set PROGRAM as the dynamic linker to use" -msgstr "Ställ in PROGRAM som den dynamiska länkare som ska användas" - -#: lexsup.c:214 -msgid "LIBNAME" -msgstr "BIBLNAMN" - -#: lexsup.c:214 -msgid "Search for library LIBNAME" -msgstr "Sök efter biblioteket BIBLNAMN" - -#: lexsup.c:216 -msgid "DIRECTORY" -msgstr "KATALOG" - -#: lexsup.c:216 -msgid "Add DIRECTORY to library search path" -msgstr "Lägg till KATALOG till bibliotekssökvägen" - -#: lexsup.c:218 -msgid "EMULATION" -msgstr "EMULERING" - -#: lexsup.c:218 -msgid "Set emulation" -msgstr "Ställ in emulering" - -#: lexsup.c:220 -msgid "Print map file on standard output" -msgstr "Visa tabellfil på standard ut" - -#: lexsup.c:222 -msgid "Do not page align data" -msgstr "Justera inte data efter jämna sidor" - -#: lexsup.c:224 -msgid "Do not page align data, do not make text readonly" -msgstr "Justera inte data efter jämna sidor, gör inte texten endast läsbar" - -#: lexsup.c:227 -msgid "Page align data, make text readonly" -msgstr "Sidjustera data, gör texten endast läsbar" - -#: lexsup.c:229 -msgid "Set output file name" -msgstr "Ställ in utdatafilnamnet" - -#: lexsup.c:231 -msgid "Optimize output file" -msgstr "Optimera utdatafil" - -#: lexsup.c:233 -msgid "Ignored for SVR4 compatibility" -msgstr "Ignorerad för kompatibilitet med SVR4" - -#: lexsup.c:237 -msgid "Generate relocatable output" -msgstr "Generera omlokaliseringsbar utdata" - -#: lexsup.c:241 -msgid "Just link symbols (if directory, same as --rpath)" -msgstr "Länka bara symboler (om katalog, samma som --rpath)" - -#: lexsup.c:244 -msgid "Strip all symbols" -msgstr "Ta bort alla symboler" - -#: lexsup.c:246 -msgid "Strip debugging symbols" -msgstr "Ta bort felsökningssymboler" - -#: lexsup.c:248 -msgid "Strip symbols in discarded sections" -msgstr "Ta bort symboler i kastade sektioner" - -#: lexsup.c:250 -msgid "Do not strip symbols in discarded sections" -msgstr "Ta inte bort symboler i kastade sektioner" - -#: lexsup.c:252 -msgid "Trace file opens" -msgstr "Spåra filöppningar" - -#: lexsup.c:254 -msgid "Read linker script" -msgstr "Läs länkskript" - -#: lexsup.c:256 lexsup.c:272 lexsup.c:315 lexsup.c:327 lexsup.c:392 -#: lexsup.c:411 lexsup.c:431 -msgid "SYMBOL" -msgstr "SYMBOL" - -#: lexsup.c:256 -msgid "Start with undefined reference to SYMBOL" -msgstr "Börja med odefinierad referens till SYMBOL" - -#: lexsup.c:258 -msgid "[=SECTION]" -msgstr "[=SEKTION]" - -#: lexsup.c:258 -msgid "Don't merge input [SECTION | orphan] sections" -msgstr "Slå inte samman [SEKTION | föräldralösa] sektioner" - -#: lexsup.c:260 -msgid "Build global constructor/destructor tables" -msgstr "Bygg globala konstruktors-/destruktorstabeller" - -#: lexsup.c:262 -msgid "Print version information" -msgstr "Visa versionsinformation" - -#: lexsup.c:264 -msgid "Print version and emulation information" -msgstr "Visa versions- och emuleringsinformation" - -#: lexsup.c:266 -msgid "Discard all local symbols" -msgstr "Kasta alla lokala symboler" - -#: lexsup.c:268 -msgid "Discard temporary local symbols (default)" -msgstr "Kasta temporära lokala symboler (standard)" - -#: lexsup.c:270 -msgid "Don't discard any local symbols" -msgstr "Kasta inte några lokala symboler" - -#: lexsup.c:272 -msgid "Trace mentions of SYMBOL" -msgstr "Spåra omnämningar av SYMBOL" - -#: lexsup.c:274 lexsup.c:366 lexsup.c:368 -msgid "PATH" -msgstr "SÖKVÄG" - -#: lexsup.c:274 -msgid "Default search path for Solaris compatibility" -msgstr "Standardsökväg för Solaris-kompatibilitet" - -#: lexsup.c:276 -msgid "Start a group" -msgstr "Starta en grupp" - -#: lexsup.c:278 -msgid "End a group" -msgstr "Sluta en grupp" - -#: lexsup.c:280 -msgid "Accept input files whose architecture cannot be determined" -msgstr "Acceptera indatafiler vars arkitektur inte kan avgöras" - -#: lexsup.c:282 -msgid "Reject input files whose architecture is unknown" -msgstr "Avvisa indatafiler vars arkitektur är okänd" - -#: lexsup.c:284 -msgid "Ignored for SunOS compatibility" -msgstr "Ignorerad för SunOS-kompatibilitet" - -#: lexsup.c:286 -msgid "Link against shared libraries" -msgstr "Länka mot delade bibliotek" - -#: lexsup.c:292 -msgid "Do not link against shared libraries" -msgstr "Länka inte mot delade bibliotek" - -#: lexsup.c:300 -msgid "Bind global references locally" -msgstr "Bind globala referenser lokalt" - -#: lexsup.c:302 -msgid "Check section addresses for overlaps (default)" -msgstr "Kontrollera sektionsadresser för överlappningar (standard)" - -#: lexsup.c:304 -msgid "Do not check section addresses for overlaps" -msgstr "Kontrollera inte sektionsadresser för överlappningar" - -#: lexsup.c:307 -msgid "Output cross reference table" -msgstr "Skapa korsreferenstabell" - -#: lexsup.c:309 -msgid "SYMBOL=EXPRESSION" -msgstr "SYMBOL=UTTRYCK" - -#: lexsup.c:309 -msgid "Define a symbol" -msgstr "Definiera en symbol" - -#: lexsup.c:311 -msgid "[=STYLE]" -msgstr "[=STIL]" - -#: lexsup.c:311 -msgid "Demangle symbol names [using STYLE]" -msgstr "Avkoda symbolnamn [använd STIL]" - -#: lexsup.c:313 -msgid "Generate embedded relocs" -msgstr "Generera inbäddade omlokaliseringar" - -#: lexsup.c:315 -msgid "Call SYMBOL at unload-time" -msgstr "Anropa SYMBOL vid urladdning" - -#: lexsup.c:317 -msgid "Force generation of file with .exe suffix" -msgstr "Tvinga generering av fil med ändelsen .exe" - -#: lexsup.c:319 -msgid "Remove unused sections (on some targets)" -msgstr "Ta bort oanvända sektioner (på vissa mål)" - -#: lexsup.c:322 -msgid "Don't remove unused sections (default)" -msgstr "Ta inte bort oanvända sektioner (standard)" - -#: lexsup.c:325 -msgid "Print option help" -msgstr "Visa hjälp om flaggor" - -#: lexsup.c:327 -msgid "Call SYMBOL at load-time" -msgstr "Anropa SYMBOL vid inläsning" - -#: lexsup.c:329 -msgid "Write a map file" -msgstr "Skriv en tabellfil" - -#: lexsup.c:331 -msgid "Do not define Common storage" -msgstr "Definiera inte gemensam lagring" - -#: lexsup.c:333 -msgid "Do not demangle symbol names" -msgstr "Avkoda inte symbolnamn" - -#: lexsup.c:335 -msgid "Use less memory and more disk I/O" -msgstr "Använd mindre minne och mer disk-I/O" - -#: lexsup.c:337 -msgid "Allow no undefined symbols" -msgstr "Tillåt inga odefinierade symboler" - -#: lexsup.c:339 -msgid "Allow undefined symbols in shared objects (the default)" -msgstr "Tillåt odefinierade symboler i delade objekt (standardalternativet)" - -#: lexsup.c:341 -msgid "Do not allow undefined symbols in shared objects" -msgstr "Tillåt inte odefinierade symboler i delade objekt" - -#: lexsup.c:343 -msgid "Allow multiple definitions" -msgstr "Tillåt flera defintioner" - -#: lexsup.c:345 -msgid "Disallow undefined version" -msgstr "Tillåt inte odefinierad version" - -#: lexsup.c:347 -msgid "Don't warn about mismatched input files" -msgstr "Varna inte om opassande indatafiler" - -#: lexsup.c:349 -msgid "Turn off --whole-archive" -msgstr "Slå av ---whole-archive" - -#: lexsup.c:351 -msgid "Create an output file even if errors occur" -msgstr "Skapa en utdatafil även om fel förekommer" - -#: lexsup.c:355 -msgid "" -"Only use library directories specified on\n" -"\t\t\t\tthe command line" -msgstr "" -"Använd endast bibliotekskataloger som anges\n" -"\t\t\t\tpå kommandoraden" - -#: lexsup.c:357 -msgid "Specify target of output file" -msgstr "Ange mål för utdatafil" - -#: lexsup.c:359 -msgid "Ignored for Linux compatibility" -msgstr "Ignorerad för kompatibilitet med Linux" - -#: lexsup.c:361 -msgid "Relax branches on certain targets" -msgstr "Slappna av greningar på vissa mål" - -#: lexsup.c:364 -msgid "Keep only symbols listed in FILE" -msgstr "Behåll endast symboler angivna i FIL" - -#: lexsup.c:366 -msgid "Set runtime shared library search path" -msgstr "Ställ in körtidssökväg för delade bibliotek" - -#: lexsup.c:368 -msgid "Set link time shared library search path" -msgstr "Ställ in länkningstidssökväg för delade bibliotek" - -#: lexsup.c:370 -msgid "Create a shared library" -msgstr "Skapa ett delat bibliotek" - -#: lexsup.c:374 -msgid "Create a position independent executable" -msgstr "Skapa en positionsoberoende körbar fil" - -#: lexsup.c:378 -msgid "Sort common symbols by size" -msgstr "Sortera gemensamma symboler efter storlek" - -#: lexsup.c:382 -msgid "COUNT" -msgstr "ANTAL" - -#: lexsup.c:382 -msgid "How many tags to reserve in .dynamic section" -msgstr "Hur många taggar som ska reserveras i .dynamic-sektion" - -#: lexsup.c:384 -msgid "[=SIZE]" -msgstr "[=STORLEK]" - -#: lexsup.c:384 -msgid "Split output sections every SIZE octets" -msgstr "Dela utdatasektioner var STORLEK oktett" - -#: lexsup.c:386 -msgid "[=COUNT]" -msgstr "[=ANTAL]" - -#: lexsup.c:386 -msgid "Split output sections every COUNT relocs" -msgstr "Dela utdatasektioner var ANTAL omlokalisering" - -#: lexsup.c:388 -msgid "Print memory usage statistics" -msgstr "Visa statistik över minnesanvändning" - -#: lexsup.c:390 -msgid "Display target specific options" -msgstr "Visa målspecifika flaggor" - -#: lexsup.c:392 -msgid "Do task level linking" -msgstr "Utför länkning på uppgiftsnivå" - -#: lexsup.c:394 -msgid "Use same format as native linker" -msgstr "Använd samma format som inhemska länkaren" - -#: lexsup.c:396 -msgid "SECTION=ADDRESS" -msgstr "SEKTION=ADRESS" - -#: lexsup.c:396 -msgid "Set address of named section" -msgstr "Ställ in adress på namngiven sektion" - -#: lexsup.c:398 -msgid "Set address of .bss section" -msgstr "Ställ in adress på .bss-sektion" - -#: lexsup.c:400 -msgid "Set address of .data section" -msgstr "Ställ in adress på .data-sektion" - -#: lexsup.c:402 -msgid "Set address of .text section" -msgstr "Ställ in adress på .text-sektion" - -#: lexsup.c:404 -msgid "Output lots of information during link" -msgstr "Visa mycket information under länkning" - -#: lexsup.c:408 -msgid "Read version information script" -msgstr "Läs skript med versionsinformation" - -#: lexsup.c:411 -msgid "" -"Take export symbols list from .exports, using\n" -"\t\t\t\tSYMBOL as the version." -msgstr "" -"Plocka lista med exportsymboler från .exports och\n" -"\t\t\t\tanvänd SYMBOL som version." - -#: lexsup.c:414 -msgid "Warn about duplicate common symbols" -msgstr "Varna för dubbla gemensamma symboler" - -#: lexsup.c:416 -msgid "Warn if global constructors/destructors are seen" -msgstr "Varna om globala konstruktorer/destruktorer hittas" - -#: lexsup.c:419 -msgid "Warn if the multiple GP values are used" -msgstr "Varna om flera GP-värden används" - -#: lexsup.c:421 -msgid "Warn only once per undefined symbol" -msgstr "Varna endast en gång per odefinierad symbol" - -#: lexsup.c:423 -msgid "Warn if start of section changes due to alignment" -msgstr "Varna om början på sektionen ändras på grund av justering" - -#: lexsup.c:426 -msgid "Treat warnings as errors" -msgstr "Behandla varningar som fel" - -#: lexsup.c:429 -msgid "Include all objects from following archives" -msgstr "Inkludera alla objekt från följande arkiv" - -#: lexsup.c:431 -msgid "Use wrapper functions for SYMBOL" -msgstr "Använd inkapslingsfunktioner för SYMBOL" - -#: lexsup.c:433 -msgid "[=WORDS]" -msgstr "[=ORD]" - -#: lexsup.c:433 -msgid "" -"Modify problematic branches in last WORDS (1-10,\n" -"\t\t\t\tdefault 5) words of a page" -msgstr "" -"Ändra problematiska greningar i sista ORD (1-10,\n" -"\t\t\t\tstandardvärde 5) orden på en sida" - -#: lexsup.c:602 -msgid "%P: unrecognized option '%s'\n" -msgstr "%P: okänd flagga \"%s\"\n" - -#: lexsup.c:604 -msgid "%P%F: use the --help option for usage information\n" -msgstr "%P%F: använd flaggan --help för användningsinformation\n" - -#: lexsup.c:622 -msgid "%P%F: unrecognized -a option `%s'\n" -msgstr "%P%F: okänd -a-flagga \"%s\"\n" - -#: lexsup.c:635 -msgid "%P%F: unrecognized -assert option `%s'\n" -msgstr "%P%F: okänd -assert-flagga \"%s\"\n" - -#: lexsup.c:678 -msgid "%F%P: unknown demangling style `%s'" -msgstr "%F%P: okänd avkodningsstil \"%s\"" - -#: lexsup.c:737 -msgid "%P%F: invalid number `%s'\n" -msgstr "%P%F: ogiltigt tal \"%s\"\n" - -#. This can happen if the user put "-rpath,a" on the command -#. line. (Or something similar. The comma is important). -#. Getopt becomes confused and thinks that this is a -r option -#. but it cannot parse the text after the -r so it refuses to -#. increment the optind counter. Detect this case and issue -#. an error message here. We cannot just make this a warning, -#. increment optind, and continue because getopt is too confused -#. and will seg-fault the next time around. -#: lexsup.c:849 -msgid "%P%F: bad -rpath option\n" -msgstr "%P%F: okänd -rpath-flagga\n" - -#: lexsup.c:953 -msgid "%P%F: -shared not supported\n" -msgstr "%P%F: -shared stöds inte\n" - -#: lexsup.c:962 -msgid "%P%F: -pie not supported\n" -msgstr "%P%F: -pie stöds inte\n" - -#: lexsup.c:994 -msgid "%P%F: invalid argument to option \"--section-start\"\n" -msgstr "%P%F: ogiltigt argument till flaggan \"--section-start\"\n" - -#: lexsup.c:1000 -msgid "%P%F: missing argument(s) to option \"--section-start\"\n" -msgstr "%P%F: argument saknas till flaggan \"--section-start\"\n" - -#: lexsup.c:1158 -msgid "%P%F: may not nest groups (--help for usage)\n" -msgstr "%P%F: får inte nästla grupper (--help för användning)\n" - -#: lexsup.c:1165 -msgid "%P%F: group ended before it began (--help for usage)\n" -msgstr "%P%F: gruppen slutade innan den började (--help för användning)\n" - -#: lexsup.c:1179 -msgid "%P%F: invalid argument to option \"mpc860c0\"\n" -msgstr "%P%F: ogiltigt argument till flaggan \"mpc860c0\"\n" - -#: lexsup.c:1234 -msgid "%P%F: invalid hex number `%s'\n" -msgstr "%P%F: ogiltigt hexadecimalt tal \"%s\"\n" - -#: lexsup.c:1246 -#, c-format -msgid "Usage: %s [options] file...\n" -msgstr "Användning: %s [flaggor] fil...\n" - -#: lexsup.c:1248 -msgid "Options:\n" -msgstr "Alternativ:\n" - -#. Note: Various tools (such as libtool) depend upon the -#. format of the listings below - do not change them. -#: lexsup.c:1331 -#, c-format -msgid "%s: supported targets:" -msgstr "%s: mål som stöds:" - -#: lexsup.c:1339 -#, c-format -msgid "%s: supported emulations: " -msgstr "%s: emuleringar som stöds: " - -#: lexsup.c:1344 -#, c-format -msgid "%s: emulation specific options:\n" -msgstr "%s: emuleringsspecifika flaggor:\n" - -#: lexsup.c:1348 -#, c-format -msgid "Report bugs to %s\n" -msgstr "" -"Rapportera fel till %s\n" -"Rapportera fel i översättningen till sv@li.org\n" - -#: mri.c:307 -msgid "%P%F: unknown format type %s\n" -msgstr "%P%F: okänd formattyp %s\n" - -#: pe-dll.c:301 -#, c-format -msgid "%XUnsupported PEI architecture: %s\n" -msgstr "%XPEI-arkitekturen stöds inte: %s\n" - -#: pe-dll.c:650 -#, c-format -msgid "%XError, duplicate EXPORT with ordinals: %s (%d vs %d)\n" -msgstr "%XFel, dubbel EXPORT med ordinaler: %s (%d gentemot %d)\n" - -#: pe-dll.c:657 -#, c-format -msgid "Warning, duplicate EXPORT: %s\n" -msgstr "Varning, dubbel EXPORT: %s\n" - -#: pe-dll.c:723 -#, c-format -msgid "%XCannot export %s: symbol not defined\n" -msgstr "%XKan inte exportera %s: symbolen är inte definierad\n" - -#: pe-dll.c:729 -#, c-format -msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n" -msgstr "%XKan inte exportera %s: symbolen är av fel typ (%d gentemot %d)\n" - -#: pe-dll.c:736 -#, c-format -msgid "%XCannot export %s: symbol not found\n" -msgstr "%XKan inte exportera %s: symbolen hittades inte\n" - -#: pe-dll.c:848 -#, c-format -msgid "%XError, ordinal used twice: %d (%s vs %s)\n" -msgstr "%XFel, ordinalen användes två gånger: %d (%s gentemot %s)\n" - -#: pe-dll.c:1165 -#, c-format -msgid "%XError: %d-bit reloc in dll\n" -msgstr "%XFel: %d-bitars omlokalisering i dll\n" - -#: pe-dll.c:1296 -#, c-format -msgid "%s: Can't open output def file %s\n" -msgstr "%s: Kan inte öppna utdatadefinitionsfilen %s\n" - -#: pe-dll.c:1439 -msgid "; no contents available\n" -msgstr "; inget innehåll är tillgängligt\n" - -#: pe-dll.c:2203 -msgid "%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n" -msgstr "%C: variabeln \"%T\" kan inte importeras automatiskt. Läs dokumentationen för ld:s --enable-auto-import för detaljer.\n" - -#: pe-dll.c:2233 -#, c-format -msgid "%XCan't open .lib file: %s\n" -msgstr "%XKan inte öppna .lib-filen: %s\n" - -#: pe-dll.c:2238 -#, c-format -msgid "Creating library file: %s\n" -msgstr "Skapar biblioteksfil: %s\n" - -#~ msgid "" -#~ " --enable-auto-import Do sophisticated linking of _sym to\n" -#~ " __imp_sym for DATA references\n" -#~ msgstr "" -#~ " --enable-auto-import Utför sofistikerad länkning av _sym till\n" -#~ " __imp_sym för DATA-referenser\n" - -#~ msgid "%B: In function `%T':\n" -#~ msgstr "%B: I funktionen \"%T\":\n" - -#~ msgid "Allow undefined symbols in shared objects" -#~ msgstr "Tillåt odefinierade symboler i delade objekt" - -#~ msgid " create __imp_ as well.\n" -#~ msgstr " skapa även __imp_.\n" - -#~ msgid " unless user specifies one\n" -#~ msgstr " såvida användaren inte anger en\n" - -#~ msgid " --dll-search-prefix= When linking dynamically to a dll witout an\n" -#~ msgstr " --dll-search-prefix= Använd hellre .dll\n" - -#~ msgid " importlib, use .dll \n" -#~ msgstr " än lib.dll vid dynamisk\n" - -#~ msgid " in preference to lib.dll \n" -#~ msgstr "" -#~ " länkning till en dll utan ett\n" -#~ " importbibliotek.\n" - -#~ msgid "Archive member included" -#~ msgstr "Inkluderade arkivmedlem" - -#~ msgid "Don't merge orphan sections with the same name" -#~ msgstr "Slå inte samman föräldralösa sektioner med samma namn" diff --git a/ld/po/tr.po b/ld/po/tr.po deleted file mode 100644 index edeb684dbc9..00000000000 --- a/ld/po/tr.po +++ /dev/null @@ -1,2001 +0,0 @@ -# translation of ld-2.15.96.tr.po to Turkish -# Copyright (C) 2003, 2005 Free Software Foundation, Inc. -# Deniz Akkus Kanca , 2001,2003. -# -msgid "" -msgstr "" -"Project-Id-Version: ld 2.15.96\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-03-03 21:05+1030\n" -"PO-Revision-Date: 2005-03-14 04:48+0200\n" -"Last-Translator: Deniz Akkus Kanca \n" -"Language-Team: Turkish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.9.1\n" - -#: emultempl/armcoff.em:72 -#, c-format -msgid " --support-old-code Support interworking with old code\n" -msgstr " --support-old-code Eski yazılım ile beraber çalışmayı destekler\n" - -#: emultempl/armcoff.em:73 -#, c-format -msgid " --thumb-entry= Set the entry point to be Thumb symbol \n" -msgstr " --thumb-entry= Giriş noktasını Thumb sembolü olarak atar\n" - -#: emultempl/armcoff.em:121 -#, c-format -msgid "Errors encountered processing file %s" -msgstr "%s dosyası işlenirken hata oluştu" - -#: emultempl/armcoff.em:188 emultempl/pe.em:1455 -msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n" -msgstr "%P: uyarı: '--thumb-entry %s', '-e %s' seçeneğini etkisizleştiriyor\n" - -#: emultempl/armcoff.em:193 emultempl/pe.em:1460 -msgid "%P: warning: connot find thumb start symbol %s\n" -msgstr "%P: uyarı: thumb başlangıç sembolü %s bulunamadı\n" - -#: emultempl/pe.em:301 -#, c-format -msgid " --base_file Generate a base file for relocatable DLLs\n" -msgstr "" -" --base_file Yerdeğiştirebilen DLL'ler için temeldosya\n" -" oluşturur.\n" - -#: emultempl/pe.em:302 -#, c-format -msgid " --dll Set image base to the default for DLLs\n" -msgstr "" -" --dll DLL'ler için görüntü temelini öntanımlıya\n" -" ayarlar.\n" - -#: emultempl/pe.em:303 -#, c-format -msgid " --file-alignment Set file alignment\n" -msgstr " --file-alignment Dosya hizalamasını ayarlar\n" - -#: emultempl/pe.em:304 -#, c-format -msgid " --heap Set initial size of the heap\n" -msgstr " --heap Yığının ilk boyunu ayarlar.\n" - -#: emultempl/pe.em:305 -#, c-format -msgid " --image-base
Set start address of the executable\n" -msgstr " --image-base Uygulamanın başlangıç adresini ayarlar\n" - -#: emultempl/pe.em:306 -#, c-format -msgid " --major-image-version Set version number of the executable\n" -msgstr " --major-image-version Uygulamanın sürüm numarasını ayarlar\n" - -#: emultempl/pe.em:307 -#, c-format -msgid " --major-os-version Set minimum required OS version\n" -msgstr " --major-os-version OS için en alt gerekli sürümü belirler\n" - -#: emultempl/pe.em:308 -#, c-format -msgid " --major-subsystem-version Set minimum required OS subsystem version\n" -msgstr "" -" --major-subsystem-version OS alt sistem sürümü için en küçük gerekli\n" -" sürüm sayısını belirler\n" - -#: emultempl/pe.em:309 -#, c-format -msgid " --minor-image-version Set revision number of the executable\n" -msgstr " --minor-image-version Uygulamanın değişim sayısını ayarlar\n" - -#: emultempl/pe.em:310 -#, c-format -msgid " --minor-os-version Set minimum required OS revision\n" -msgstr " --minor-os-version Gerekli en alt OS değişimini belirler\n" - -#: emultempl/pe.em:311 -#, c-format -msgid " --minor-subsystem-version Set minimum required OS subsystem revision\n" -msgstr "" -" --minor-subsystem-version Gerekli en alt OS alt sistem değişim\n" -" sayısını belirler\n" - -#: emultempl/pe.em:312 -#, c-format -msgid " --section-alignment Set section alignment\n" -msgstr " --section-alignment Bölüm hizalamasını ayarlar\n" - -#: emultempl/pe.em:313 -#, c-format -msgid " --stack Set size of the initial stack\n" -msgstr " --stack Yığıtın ilk boyunu belirler\n" - -#: emultempl/pe.em:314 -#, c-format -msgid " --subsystem [:] Set required OS subsystem [& version]\n" -msgstr " --subsystem [:] Gerekli OS, altsistem ve sürümü belirler\n" - -#: emultempl/pe.em:315 -#, c-format -msgid " --support-old-code Support interworking with old code\n" -msgstr " --support-old-code Eski kod ile beraber çalışmayı destekler\n" - -#: emultempl/pe.em:316 -#, c-format -msgid " --thumb-entry= Set the entry point to be Thumb \n" -msgstr " --thumb-entry= Giriş noktasını Thumb olarak atar\n" - -#: emultempl/pe.em:318 -#, c-format -msgid " --add-stdcall-alias Export symbols with and without @nn\n" -msgstr " --add-stdcall-alias Sembolleri @nn ile ve @nn'siz ihraç eder\n" - -#: emultempl/pe.em:319 -#, c-format -msgid " --disable-stdcall-fixup Don't link _sym to _sym@nn\n" -msgstr " --disable-stdcall-fixup _sym'i _sym@nn'e bağlamaz\n" - -#: emultempl/pe.em:320 -#, c-format -msgid " --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n" -msgstr " --enable-stdcall-fixup _sym'i _sym@nn'e uyarı vermeksizin bağlar\n" - -#: emultempl/pe.em:321 -#, c-format -msgid " --exclude-symbols sym,sym,... Exclude symbols from automatic export\n" -msgstr " --exclude-symbols sem,sem,... Sembolleri otomatik ihraçtan ayrı tutar\n" - -#: emultempl/pe.em:322 -#, c-format -msgid " --exclude-libs lib,lib,... Exclude libraries from automatic export\n" -msgstr " --exclude-libs lib,lib,... Kitaplıkları otomatik ihraçtan ayrı tutar\n" - -#: emultempl/pe.em:323 -#, c-format -msgid " --export-all-symbols Automatically export all globals to DLL\n" -msgstr " --export-all-symbols Bütün evrenselleri DLL'e ihraç eder\n" - -#: emultempl/pe.em:324 -#, c-format -msgid " --kill-at Remove @nn from exported symbols\n" -msgstr " --kill-at İhraç edilen sembollerden @nn'i çıkarır\n" - -#: emultempl/pe.em:325 -#, c-format -msgid " --out-implib Generate import library\n" -msgstr " --out-implib İthal kitaplığı oluşturur\n" - -#: emultempl/pe.em:326 -#, c-format -msgid " --output-def Generate a .DEF file for the built DLL\n" -msgstr "" -" --output-def Oluşturulmuş DLL için .DEF dosyası\n" -" oluşturur\n" - -#: emultempl/pe.em:327 -#, c-format -msgid " --warn-duplicate-exports Warn about duplicate exports.\n" -msgstr " --warn-duplicate-exports Birden fazla ihraçlarda uyarı verir\n" - -#: emultempl/pe.em:328 -#, c-format -msgid "" -" --compat-implib Create backward compatible import libs;\n" -" create __imp_ as well.\n" -msgstr "" -" --compat-implib Geçmişe uyumlu ithal kitaplığı ve\n" -" __imp_ oluşturur.\n" - -#: emultempl/pe.em:330 -#, c-format -msgid "" -" --enable-auto-image-base Automatically choose image base for DLLs\n" -" unless user specifies one\n" -msgstr "" -" --enable-auto-image-base Kullanıcılar bir görüntü temeli seçmezse\n" -" DLL'ler için otomatik görüntü temeli seçer\n" - -#: emultempl/pe.em:332 -#, c-format -msgid " --disable-auto-image-base Do not auto-choose image base. (default)\n" -msgstr "" -" --disable-auto-image-base Görüntü temelini otomatik olarak seçmez\n" -" (öntanımlı).\n" - -#: emultempl/pe.em:333 -#, c-format -msgid "" -" --dll-search-prefix= When linking dynamically to a dll without\n" -" an importlib, use .dll\n" -" in preference to lib.dll \n" -msgstr "" -" --dll-search-prefix= Bir dll'e ithal kitaplığı olmaksızın\n" -" dinamik bağlanma esnasında\n" -" lib.dll yerine\n" -" .dll'i tercih eder\n" - -#: emultempl/pe.em:336 -#, c-format -msgid "" -" --enable-auto-import Do sophistcated linking of _sym to\n" -" __imp_sym for DATA references\n" -msgstr "" -" --enable-auto-import VERİ (DATA) başvuruları için _sym'in\n" -" __imp_sym'e ileri düzey bağlamasını yapar\n" - -#: emultempl/pe.em:338 -#, c-format -msgid " --disable-auto-import Do not auto-import DATA items from DLLs\n" -msgstr " --disable-auto-image-base Görüntü temelini otomatik olarak seçmez\n" - -#: emultempl/pe.em:339 -#, c-format -msgid "" -" --enable-runtime-pseudo-reloc Work around auto-import limitations by\n" -" adding pseudo-relocations resolved at\n" -" runtime.\n" -msgstr "" -" --enable-runtime-pseudo-reloc Çalışma zamanında çözümlenen sanal \n" -" yerdeğişimler ekleyerek otomatik ithal \n" -" sınırlamalarını aşar.\n" - -#: emultempl/pe.em:342 -#, c-format -msgid "" -" --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations for\n" -" auto-imported DATA.\n" -msgstr "" -" --disable-runtime-pseudo-reloc Otomatik ithal edilen VERİ (DATA) için\n" -" çalışma zamanı sanal yerdeğişim eklemez.\n" - -#: emultempl/pe.em:344 -#, c-format -msgid "" -" --enable-extra-pe-debug Enable verbose debug output when building\n" -" or linking to DLLs (esp. auto-import)\n" -msgstr "" -" --enable-extra-pe-debug DLL'leri oluşturur veya DLL'lere\n" -" bağlanırken detaylı hata ayıklama\n" -" çıktısını etkinleştirir. (özellikle\n" -" otomatik ithallerde)\n" - -#: emultempl/pe.em:347 -#, fuzzy, c-format -msgid "" -" --large-address-aware Executable supports virtual addresses\n" -" greater than 2 gigabytes\n" -msgstr "" -" --enable-auto-image-base Kullanıcılar bir görüntü temeli seçmezse\n" -" DLL'ler için otomatik görüntü temeli seçer\n" - -#: emultempl/pe.em:414 -msgid "%P: warning: bad version number in -subsystem option\n" -msgstr "%P: uyarı: -subsystem seçeneğinde hatalı sürüm sayısı\n" - -#: emultempl/pe.em:445 -msgid "%P%F: invalid subsystem type %s\n" -msgstr "%P%F: geçersiz altsistem türü %s\n" - -#: emultempl/pe.em:484 -msgid "%P%F: invalid hex number for PE parameter '%s'\n" -msgstr "%P%F: PE parametresi '%s' için geçersiz onaltılık sayı\n" - -#: emultempl/pe.em:501 -msgid "%P%F: strange hex info for PE parameter '%s'\n" -msgstr "%P%F: PE parametresi '%s' için garip onaltılık bilgi\n" - -#: emultempl/pe.em:518 -#, c-format -msgid "%s: Can't open base file %s\n" -msgstr "%s: %s temel dosyası açılamadı\n" - -#: emultempl/pe.em:734 -msgid "%P: warning, file alignment > section alignment.\n" -msgstr "%P: uyarı, dosya hizalaması > bölüm hizalaması.\n" - -#: emultempl/pe.em:821 emultempl/pe.em:848 -#, c-format -msgid "Warning: resolving %s by linking to %s\n" -msgstr "Uyarı: %s %s'yi bağlayarak çözümleniyor\n" - -#: emultempl/pe.em:826 emultempl/pe.em:853 -msgid "Use --enable-stdcall-fixup to disable these warnings\n" -msgstr "Bu uyarıları etkisizleşirmek için --enable-stdcall-fixup kullanın\n" - -#: emultempl/pe.em:827 emultempl/pe.em:854 -msgid "Use --disable-stdcall-fixup to disable these fixups\n" -msgstr "Bu düzeltmeleri etkisizleştirmek için --disable-stdcall-fixup kullanın\n" - -#: emultempl/pe.em:873 -#, c-format -msgid "%C: Cannot get section contents - auto-import exception\n" -msgstr "%C: Bölüm içerikleri alınamadı - otomatik ithal hatası\n" - -#: emultempl/pe.em:910 -#, c-format -msgid "Info: resolving %s by linking to %s (auto-import)\n" -msgstr "Bilgi: %s %s'yi bağlayarak çözümleniyor (oto-ithal)\n" - -#: emultempl/pe.em:983 -msgid "%F%P: PE operations on non PE file.\n" -msgstr "%F%P: PE dosyası olmayan dosya üzerinde PE işlemleri.\n" - -#: emultempl/pe.em:1258 -#, c-format -msgid "Errors encountered processing file %s\n" -msgstr "%s dosyası işlenirken hata oluştu\n" - -#: emultempl/pe.em:1281 -#, c-format -msgid "Errors encountered processing file %s for interworking" -msgstr "%s dosyası beraber çalışma için işlenirken hata oluştu" - -#: emultempl/pe.em:1340 ldexp.c:570 ldlang.c:2408 ldlang.c:5135 ldlang.c:5166 -#: ldmain.c:1161 -msgid "%P%F: bfd_link_hash_lookup failed: %E\n" -msgstr "%P%F: bfd_link_hash_lookup başarısız: %E\n" - -#: ldcref.c:153 -msgid "%X%P: bfd_hash_table_init of cref table failed: %E\n" -msgstr "%X%P: cref tablosunda bfd_hash_table_init başarısız: %E\n" - -#: ldcref.c:159 -msgid "%X%P: cref_hash_lookup failed: %E\n" -msgstr "%X%P: cref_hash_lookup başarısız: %E\n" - -#: ldcref.c:225 -#, c-format -msgid "" -"\n" -"Cross Reference Table\n" -"\n" -msgstr "" -"\n" -"Çapraz Başvuru Tablosu\n" -"\n" - -#: ldcref.c:226 -msgid "Symbol" -msgstr "Sembol" - -#: ldcref.c:234 -#, c-format -msgid "File\n" -msgstr "Dosya\n" - -#: ldcref.c:238 -#, c-format -msgid "No symbols\n" -msgstr "Sembol yok\n" - -#: ldcref.c:359 ldcref.c:478 -msgid "%B%F: could not read symbols; %E\n" -msgstr "%B%F: semboller okunamadı; %E\n" - -#: ldcref.c:363 ldcref.c:482 ldmain.c:1226 ldmain.c:1230 -msgid "%B%F: could not read symbols: %E\n" -msgstr "%B%F: semboller okunamadı: %E\n" - -#: ldcref.c:414 -msgid "%P: symbol `%T' missing from main hash table\n" -msgstr "%P: `%T' sembolü ana hash tablosunda yok\n" - -#: ldcref.c:547 ldcref.c:554 ldmain.c:1273 ldmain.c:1280 -msgid "%B%F: could not read relocs: %E\n" -msgstr "%B%F: yer değişimleri okunamadı: %E\n" - -#. We found a reloc for the symbol. The symbol is defined -#. in OUTSECNAME. This reloc is from a section which is -#. mapped into a section from which references to OUTSECNAME -#. are prohibited. We must report an error. -#: ldcref.c:573 -msgid "%X%C: prohibited cross reference from %s to `%T' in %s\n" -msgstr "%1$X%2$C: %5$s içinde %3$s'den `%4$T'e yasak çapraz başvuru\n" - -#: ldctor.c:84 -msgid "%P%X: Different relocs used in set %s\n" -msgstr "%P%X: %s kümesinde farklı yerdeğişimler kullanılmış\n" - -#: ldctor.c:102 -msgid "%P%X: Different object file formats composing set %s\n" -msgstr "%P%X: %s kümesi farklı nesne dosyası biçemleri içeriyor\n" - -#: ldctor.c:281 ldctor.c:295 -msgid "%P%X: %s does not support reloc %s for set %s\n" -msgstr "%1$P%2$X: %3$s %5$s %4$s yerdeğişimlerini desteklemiyor\n" - -#: ldctor.c:316 -msgid "%P%X: Unsupported size %d for set %s\n" -msgstr "%1$P%2$X: %4$s kümesi için desteklenmeyen boy %3$d\n" - -#: ldctor.c:337 -msgid "" -"\n" -"Set Symbol\n" -"\n" -msgstr "" -"\n" -"Küme Sembol\n" -"\n" - -#: ldemul.c:227 -#, c-format -msgid "%S SYSLIB ignored\n" -msgstr "%S SYSLIB yoksayıldı\n" - -#: ldemul.c:233 -#, c-format -msgid "%S HLL ignored\n" -msgstr "%S HLL yoksayıldı\n" - -#: ldemul.c:253 -msgid "%P: unrecognised emulation mode: %s\n" -msgstr "%P: bilinmeyen öykünüm kipi: %s\n" - -#: ldemul.c:254 -msgid "Supported emulations: " -msgstr "Desteklenen öykünümler: " - -#: ldemul.c:296 -#, c-format -msgid " no emulation specific options.\n" -msgstr " öykünüme özel seçenek yok.\n" - -#: ldexp.c:379 -#, c-format -msgid "%F%S %% by zero\n" -msgstr "%F%S %% sıfırla\n" - -#: ldexp.c:386 -#, c-format -msgid "%F%S / by zero\n" -msgstr "%F%S sıfırla bölme\n" - -#: ldexp.c:583 -#, c-format -msgid "%X%S: unresolvable symbol `%s' referenced in expression\n" -msgstr "%X%S: ifadede çözümlenemeyen `%s' sembolüne başvuru var\n" - -#: ldexp.c:604 -#, c-format -msgid "%F%S: undefined symbol `%s' referenced in expression\n" -msgstr "%F%S: ifadede tanımlanmamış `%s' sembolüne başvuru var\n" - -#: ldexp.c:665 ldexp.c:678 -#, fuzzy, c-format -msgid "%F%S: undefined MEMORY region `%s' referenced in expression\n" -msgstr "%F%S: ifadede tanımlanmamış `%s' sembolüne başvuru var\n" - -#: ldexp.c:757 -#, c-format -msgid "%F%S can not PROVIDE assignment to location counter\n" -msgstr "%F%S yer sayacına atama YAPILAMAZ\n" - -#: ldexp.c:770 -#, c-format -msgid "%F%S invalid assignment to location counter\n" -msgstr "%F%S yer sayacına hatalı atama\n" - -#: ldexp.c:774 -#, c-format -msgid "%F%S assignment to location counter invalid outside of SECTION\n" -msgstr "%F%S yer sayacına atama BÖLÜM'ün dışında geçersiz\n" - -#: ldexp.c:783 -msgid "%F%S cannot move location counter backwards (from %V to %V)\n" -msgstr "%F%S yer sayacı geri gidemez (%V'den %V'e)\n" - -#: ldexp.c:810 -msgid "%P%F:%s: hash creation failed\n" -msgstr "%P%F:%s: hash oluşturulması başarısız\n" - -#: ldexp.c:1077 ldexp.c:1109 -#, c-format -msgid "%F%S nonconstant expression for %s\n" -msgstr "%F%S %s için sabit olmayan ifade\n" - -#: ldexp.c:1163 -#, c-format -msgid "%F%S non constant expression for %s\n" -msgstr "%F%S %s için sabit olmayan ifade\n" - -#: ldfile.c:139 -#, c-format -msgid "attempt to open %s failed\n" -msgstr "%s açılamadı\n" - -#: ldfile.c:141 -#, c-format -msgid "attempt to open %s succeeded\n" -msgstr "%s açılabildi\n" - -#: ldfile.c:147 -msgid "%F%P: invalid BFD target `%s'\n" -msgstr "%F%P: hatalı BFD hedefi `%s'\n" - -#: ldfile.c:255 ldfile.c:282 -msgid "%P: skipping incompatible %s when searching for %s\n" -msgstr "%1$P: %3$s için arama yapılırken uyumsuz %2$s atlandı\n" - -#: ldfile.c:267 -msgid "%F%P: attempted static link of dynamic object `%s'\n" -msgstr "" - -#: ldfile.c:384 -#, fuzzy -msgid "%F%P: %s (%s): No such file: %E\n" -msgstr "%F%P: bölümü çoğaltmak başarısız : %E\n" - -#: ldfile.c:387 -#, fuzzy -msgid "%F%P: %s: No such file: %E\n" -msgstr "%F%P: bölümü çoğaltmak başarısız : %E\n" - -#: ldfile.c:417 -msgid "%F%P: cannot find %s inside %s\n" -msgstr "%F%P: %s, %s içinde bulunamadı\n" - -#: ldfile.c:420 -msgid "%F%P: cannot find %s\n" -msgstr "%F%P: %s bulunamadı\n" - -#: ldfile.c:437 ldfile.c:453 -#, c-format -msgid "cannot find script file %s\n" -msgstr "%s betik dosyası bulunamadı\n" - -#: ldfile.c:439 ldfile.c:455 -#, c-format -msgid "opened script file %s\n" -msgstr "%s betik dosyası açıldı\n" - -#: ldfile.c:499 -msgid "%P%F: cannot open linker script file %s: %E\n" -msgstr "%P%F: %s bağlayıcı betik dosyası açılamadı: %E\n" - -#: ldfile.c:546 -msgid "%P%F: cannot represent machine `%s'\n" -msgstr "%P%F: `%s' makinası gösterilemiyor\n" - -#: ldlang.c:511 -msgid "%P%F: out of memory during initialization" -msgstr "" - -#: ldlang.c:551 -#, fuzzy -msgid "%P:%S: warning: redeclaration of memory region '%s'\n" -msgstr "%P: %B: uyarı: birden fazla tekrar edilmiş `%s' bölümü yoksayıldı\n" - -#: ldlang.c:557 -#, fuzzy -msgid "%P:%S: warning: memory region %s not declared\n" -msgstr "%P: uyarı: `%s' yüklenebilir bölümü için bellek bölümü belirtilmemiş\n" - -#: ldlang.c:1073 -msgid "" -"\n" -"Memory Configuration\n" -"\n" -msgstr "" -"\n" -"Bellek Ayarları\n" -"\n" - -#: ldlang.c:1075 -msgid "Name" -msgstr "İsim" - -#: ldlang.c:1075 -msgid "Origin" -msgstr "Orijin" - -#: ldlang.c:1075 -msgid "Length" -msgstr "Uzunluk" - -#: ldlang.c:1075 -msgid "Attributes" -msgstr "Özellikler" - -#: ldlang.c:1115 -#, c-format -msgid "" -"\n" -"Linker script and memory map\n" -"\n" -msgstr "" -"\n" -"Bağlayıcı betiği ve bellek eşlemesi\n" -"\n" - -#: ldlang.c:1183 -msgid "%P%F: Illegal use of `%s' section\n" -msgstr "%P%F: `%s' bölümünün geçersiz kullanımı\n" - -#: ldlang.c:1193 -msgid "%P%F: output format %s cannot represent section called %s\n" -msgstr "%P%F: %s çıktı biçemi %s adındaki bölümü temsil edemez\n" - -#: ldlang.c:1775 -msgid "%B: file not recognized: %E\n" -msgstr "%B: Bilinmeyen dosya: %E\n" - -#: ldlang.c:1776 -msgid "%B: matching formats:" -msgstr "%B: eşleşen biçemler:" - -#: ldlang.c:1783 -msgid "%F%B: file not recognized: %E\n" -msgstr "%F%B: bilinmeyen dosya: %E\n" - -#: ldlang.c:1847 -msgid "%F%B: member %B in archive is not an object\n" -msgstr "%F%B: arşivdeki %B nesnesi nesne değil\n" - -#: ldlang.c:1858 ldlang.c:1872 -msgid "%F%B: could not read symbols: %E\n" -msgstr "%F%B: semboller okunamadı: %E\n" - -#: ldlang.c:2127 -msgid "%P: warning: could not find any targets that match endianness requirement\n" -msgstr "%P: uyarı: küçük/büyük sonlu gerekliliğini karşılayan hedef bulunamadı\n" - -#: ldlang.c:2141 -msgid "%P%F: target %s not found\n" -msgstr "%P%F: %s hedefi bulunamadı\n" - -#: ldlang.c:2143 -msgid "%P%F: cannot open output file %s: %E\n" -msgstr "%P%F: %s çıktı dosyası açılamadı: %E\n" - -#: ldlang.c:2149 -msgid "%P%F:%s: can not make object file: %E\n" -msgstr "%P%F:%s: nesne dosyası oluşturulamadı: %E\n" - -#: ldlang.c:2153 -msgid "%P%F:%s: can not set architecture: %E\n" -msgstr "%P%F:%s: platform türü atanamadı: %E\n" - -#: ldlang.c:2157 -msgid "%P%F: can not create link hash table: %E\n" -msgstr "%P%F: bağ hash tablosu oluşturulamadı: %E\n" - -#: ldlang.c:2301 -#, fuzzy -msgid "%P%F: bfd_hash_lookup failed creating symbol %s\n" -msgstr "%P%F: bfd_hash_lookup başarısız: %E\n" - -#: ldlang.c:2319 -#, fuzzy -msgid "%P%F: bfd_hash_allocate failed creating symbol %s\n" -msgstr "%P%F: bfd_hash_lookup başarısız: %E\n" - -#: ldlang.c:2710 -msgid " load address 0x%V" -msgstr " yükleme adresi 0x%V" - -#: ldlang.c:2874 -msgid "%W (size before relaxing)\n" -msgstr "%W (gevşetmeden önceki boyut)\n" - -#: ldlang.c:2961 -#, c-format -msgid "Address of section %s set to " -msgstr "%s bölümünün adresi atanmış" - -#: ldlang.c:3114 -#, c-format -msgid "Fail with %d\n" -msgstr "%d hatası verildi\n" - -#: ldlang.c:3351 -msgid "%X%P: section %s [%V -> %V] overlaps section %s [%V -> %V]\n" -msgstr "%X%P: %s bölümü [%V -> %V] %s bölümü [%V -> %V] ile örtüşüyor\n" - -#: ldlang.c:3379 -msgid "%X%P: address 0x%v of %B section %s is not within region %s\n" -msgstr "%1$X%2$P: %5$s %4$B bölümünde 0x%3$v adresi %6$s kapsamı içinde değil\n" - -#: ldlang.c:3388 -msgid "%X%P: region %s is full (%B section %s)\n" -msgstr "%X%P: %s bölümü dolu (%B %s bölümü)\n" - -#: ldlang.c:3439 -msgid "%P%X: Internal error on COFF shared library section %s\n" -msgstr "%P%X: %s COFF paylaşımlı kitaplık bölümünde iç hata\n" - -#: ldlang.c:3493 -msgid "%P%F: error: no memory region specified for loadable section `%s'\n" -msgstr "%P%F: hata: `%s' yüklenebilir bölümü için bellek bölümü belirtilmemiş\n" - -#: ldlang.c:3498 -msgid "%P: warning: no memory region specified for loadable section `%s'\n" -msgstr "%P: uyarı: `%s' yüklenebilir bölümü için bellek bölümü belirtilmemiş\n" - -#: ldlang.c:3515 -msgid "%P: warning: changing start of section %s by %u bytes\n" -msgstr "%P: uyarı: %s bölümünün başlangıcı %u bayt değiştirildi\n" - -#: ldlang.c:3532 -#, fuzzy, c-format -msgid "%F%S: non constant or forward reference address expression for section %s\n" -msgstr "%F%S: %s bölümü için sabit olmayan adres açılımı\n" - -#: ldlang.c:3703 -msgid "%P%F: can't relax section: %E\n" -msgstr "%P%F: bölüm gevşetilemedi: %E\n" - -#: ldlang.c:3960 -msgid "%F%P: invalid data statement\n" -msgstr "%F%P: geçersiz veri deyimi\n" - -#: ldlang.c:3999 -msgid "%F%P: invalid reloc statement\n" -msgstr "%F%P: geçersiz yerdeğişim deyimi\n" - -#: ldlang.c:4141 -msgid "%P%F:%s: can't set start address\n" -msgstr "%P%F:%s: başlangıç adresi atanamadı\n" - -#: ldlang.c:4154 ldlang.c:4173 -msgid "%P%F: can't set start address\n" -msgstr "%P%F: başlangıç adresi atanamadı\n" - -#: ldlang.c:4166 -msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n" -msgstr "%P: uyarı: giriş sembolü %s bulunamadı; öntanımlı %V kullanılıyor\n" - -#: ldlang.c:4178 -msgid "%P: warning: cannot find entry symbol %s; not setting start address\n" -msgstr "%P: uyarı: giriş sembolü %s bulunamadı; başlangıç adresi atanmıyor\n" - -#: ldlang.c:4227 -msgid "%P%F: Relocatable linking with relocations from format %s (%B) to format %s (%B) is not supported\n" -msgstr "%P%F: %s (%B) biçeminden yerdeğişimlerle %s (%B) biçemine yerdeğiştirebilen bağlanma desteklenmiyor\n" - -#: ldlang.c:4237 -msgid "%P: warning: %s architecture of input file `%B' is incompatible with %s output\n" -msgstr "%1$P: uyarı: `%3$B' girdi dosyasının platformu %2$s, %4$s çıktısıyla uyumlu değil\n" - -#: ldlang.c:4259 -#, fuzzy -msgid "%P%X: failed to merge target specific data of file %B\n" -msgstr "%E%X: %B dosyasındaki hedefe özel veri birleştirilemedi\n" - -#: ldlang.c:4343 -msgid "" -"\n" -"Allocating common symbols\n" -msgstr "" -"\n" -"Ortak sembollere bellek ayrılıyor\n" - -#: ldlang.c:4344 -msgid "" -"Common symbol size file\n" -"\n" -msgstr "" -"Ortak sembol boy dosya\n" -"\n" - -#: ldlang.c:4470 -msgid "%P%F: invalid syntax in flags\n" -msgstr "%P%F: bayraklarda geçersiz sözdizimi\n" - -#: ldlang.c:4740 -msgid "%P%F: Failed to create hash table\n" -msgstr "%P%F: Hash tablosu oluşturulamadı\n" - -#: ldlang.c:5057 -msgid "%P%Fmultiple STARTUP files\n" -msgstr "%P%Fbirden fazla BAŞLANGIÇ dosyası\n" - -#: ldlang.c:5105 -msgid "%X%P:%S: section has both a load address and a load region\n" -msgstr "%X%P:%S: bölümün hem bir yükleme adresi, hem de bir yükleme bölgesi var\n" - -#: ldlang.c:5345 -msgid "%F%P: bfd_record_phdr failed: %E\n" -msgstr "%F%P: bfd_record_phdr başarısız: %E\n" - -#: ldlang.c:5365 -msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n" -msgstr "%X%P: `%s' bölümü var olmayan phdr `%s'a atanmış\n" - -#: ldlang.c:5751 -msgid "%X%P: unknown language `%s' in version information\n" -msgstr "%X%P: sürüm bilgisinde bilinmeyen `%s' dili\n" - -#: ldlang.c:5893 -msgid "%X%P: anonymous version tag cannot be combined with other version tags\n" -msgstr "%X%P: anonim sürüm etiketi diğer sürüm etiketleri ile birleştirilemez\n" - -#: ldlang.c:5902 -msgid "%X%P: duplicate version tag `%s'\n" -msgstr "%X%P: birden fazla sürüm etiketi `%s'\n" - -#: ldlang.c:5922 ldlang.c:5931 ldlang.c:5948 ldlang.c:5958 -msgid "%X%P: duplicate expression `%s' in version information\n" -msgstr "%X%P: sürüm bilgisinde birden fazla `%s' ifadesi\n" - -#: ldlang.c:5998 -msgid "%X%P: unable to find version dependency `%s'\n" -msgstr "%X%P: sürüm bağımlılığı `%s' karşılanamadı\n" - -#: ldlang.c:6020 -msgid "%X%P: unable to read .exports section contents\n" -msgstr "%X%P: .exports bölümünün içeriği okunamadı\n" - -#: ldmain.c:229 -msgid "%X%P: can't set BFD default target to `%s': %E\n" -msgstr "%X%P: BFD öntanımlı hedefi `%s' olarak atanamadı: %E\n" - -#: ldmain.c:341 -msgid "%P%F: --relax and -r may not be used together\n" -msgstr "%P%F: --relax ve -r beraber kullanılamaz\n" - -#: ldmain.c:343 -msgid "%P%F: -r and -shared may not be used together\n" -msgstr "%P%F: -r ve -shared beraber kullanılamaz\n" - -#: ldmain.c:347 -#, fuzzy -msgid "%P%F: -static and -shared may not be used together\n" -msgstr "%P%F: -r ve -shared beraber kullanılamaz\n" - -#: ldmain.c:352 -msgid "%P%F: -F may not be used without -shared\n" -msgstr "%P%F: -F, -shared olmaksızın kullanılamaz\n" - -#: ldmain.c:354 -msgid "%P%F: -f may not be used without -shared\n" -msgstr "%P%F: -f, -shared olmaksızın kullanılamaz\n" - -#: ldmain.c:396 -msgid "using external linker script:" -msgstr "dış bağlayıcı betiği kullanılıyor:" - -#: ldmain.c:398 -msgid "using internal linker script:" -msgstr "iç bağlayıcı betiği kullanılıyor:" - -#: ldmain.c:432 -msgid "%P%F: no input files\n" -msgstr "%P%F: girdi dosyası yok\n" - -#: ldmain.c:436 -msgid "%P: mode %s\n" -msgstr "%P: %s kipi\n" - -#: ldmain.c:452 -msgid "%P%F: cannot open map file %s: %E\n" -msgstr "%P%F: Eşleme dosyası %s açılamadı: %E\n" - -#: ldmain.c:482 -msgid "%P: link errors found, deleting executable `%s'\n" -msgstr "%P: bağlama hataları bulundu, `%s' uygulaması siliniyor\n" - -#: ldmain.c:491 -msgid "%F%B: final close failed: %E\n" -msgstr "%F%B: son kapatma başarısız: %E\n" - -#: ldmain.c:517 -msgid "%X%P: unable to open for source of copy `%s'\n" -msgstr "%X%P: `%s' kopyasının kaynağı açılamadı\n" - -#: ldmain.c:520 -msgid "%X%P: unable to open for destination of copy `%s'\n" -msgstr "%X%P: `%s' kopyası için hedef açılamadı\n" - -#: ldmain.c:527 -msgid "%P: Error writing file `%s'\n" -msgstr "%P: `%s' dosyası yazılırken hata oluştu\n" - -#: ldmain.c:532 pe-dll.c:1447 -#, c-format -msgid "%P: Error closing file `%s'\n" -msgstr "%P: `%s' dosyası kapatılırken hata oluştu\n" - -#: ldmain.c:548 -#, c-format -msgid "%s: total time in link: %ld.%06ld\n" -msgstr "%s: Bağlanmada geçen toplam süre: %ld.%06ld\n" - -#: ldmain.c:551 -#, c-format -msgid "%s: data size %ld\n" -msgstr "%s: veri boyu %ld\n" - -#: ldmain.c:634 -msgid "%P%F: missing argument to -m\n" -msgstr "%P%F: -m için argüman eksik\n" - -#: ldmain.c:780 ldmain.c:798 ldmain.c:828 -msgid "%P%F: bfd_hash_table_init failed: %E\n" -msgstr "%P%F: bfd_hash_table_init başarısız: %E\n" - -#: ldmain.c:784 ldmain.c:802 -msgid "%P%F: bfd_hash_lookup failed: %E\n" -msgstr "%P%F: bfd_hash_lookup başarısız: %E\n" - -#: ldmain.c:816 -msgid "%X%P: error: duplicate retain-symbols-file\n" -msgstr "%X%P: hata: duplicate retain-symbols-file\n" - -#: ldmain.c:858 -msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n" -msgstr "%P%F: yerleştirme için bfd_hash_lookup başarısız: %E\n" - -#: ldmain.c:863 -msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n" -msgstr "%P: `-retain-symbols-file' seçeneği `-s' and `-S' seçeneklerinin yerine geçer\n" - -#: ldmain.c:938 -#, c-format -msgid "" -"Archive member included because of file (symbol)\n" -"\n" -msgstr "" -"Arşiv üyesi dosya yüzünden (sembol) içerildi\n" -"\n" - -#: ldmain.c:1008 -msgid "%X%C: multiple definition of `%T'\n" -msgstr "%X%C: `%T' için birden fazla tanım\n" - -#: ldmain.c:1011 -msgid "%D: first defined here\n" -msgstr "%D: ilk burada tanımlanmış\n" - -#: ldmain.c:1015 -msgid "%P: Disabling relaxation: it will not work with multiple definitions\n" -msgstr "%P: Gevşetme etkisizleştirildi: çoklu tanımlarla beraber çalışmaz\n" - -#: ldmain.c:1045 -msgid "%B: warning: definition of `%T' overriding common\n" -msgstr "%B: uyarı: `%T' tanımı genelin yerine geçiyor\n" - -#: ldmain.c:1048 -msgid "%B: warning: common is here\n" -msgstr "%B: uyarı: genel burada\n" - -#: ldmain.c:1055 -msgid "%B: warning: common of `%T' overridden by definition\n" -msgstr "%B: uyarı: tanım, `%T'nin genelinin yerine geçti\n" - -#: ldmain.c:1058 -msgid "%B: warning: defined here\n" -msgstr "%B: uyarı: burada tanımlanmış\n" - -#: ldmain.c:1065 -msgid "%B: warning: common of `%T' overridden by larger common\n" -msgstr "%B: uyarı: Daha büyük genel, `%T'nin genelinin yerine geçti\n" - -#: ldmain.c:1068 -msgid "%B: warning: larger common is here\n" -msgstr "%B: uyarı: daha büyük genel burada\n" - -#: ldmain.c:1072 -msgid "%B: warning: common of `%T' overriding smaller common\n" -msgstr "%B: uyarı: `%T'nin geneli daha küçük genelin yerine geçti\n" - -#: ldmain.c:1075 -msgid "%B: warning: smaller common is here\n" -msgstr "%B: uyarı: daha küçük genel burada\n" - -#: ldmain.c:1079 -msgid "%B: warning: multiple common of `%T'\n" -msgstr "%B: uyarı: `%T'nin birden fazla geneli var\n" - -#: ldmain.c:1081 -msgid "%B: warning: previous common is here\n" -msgstr "%B: uyarı: bir önceki genel burada\n" - -#: ldmain.c:1101 ldmain.c:1139 -msgid "%P: warning: global constructor %s used\n" -msgstr "%P: uyarı: evrensel kurucu %s kullanıldı\n" - -#: ldmain.c:1149 -msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n" -msgstr "%P%F: BFD arkayüz hatası: BFD_RELOC_CTOR desteklenmiyor\n" - -#. We found a reloc for the symbol we are looking for. -#: ldmain.c:1203 ldmain.c:1205 ldmain.c:1207 ldmain.c:1245 ldmain.c:1293 -msgid "warning: " -msgstr "" - -#: ldmain.c:1327 -msgid "%F%P: bfd_hash_table_init failed: %E\n" -msgstr "%F%P: bfd_hash_table_init başarısız: %E\n" - -#: ldmain.c:1334 -msgid "%F%P: bfd_hash_lookup failed: %E\n" -msgstr "%F%P: bfd_hash_lookup başarısız: %E\n" - -#: ldmain.c:1355 -#, fuzzy -msgid "%X%C: undefined reference to `%T'\n" -msgstr "%C: `%T'ye tanımsız başvuru\n" - -#: ldmain.c:1358 -#, fuzzy -msgid "%C: warning: undefined reference to `%T'\n" -msgstr "%C: `%T'ye tanımsız başvuru\n" - -#: ldmain.c:1364 -#, fuzzy -msgid "%X%D: more undefined references to `%T' follow\n" -msgstr "%D: `%T'ye başka tanımsız başvurular aşağıda\n" - -#: ldmain.c:1367 -#, fuzzy -msgid "%D: warning: more undefined references to `%T' follow\n" -msgstr "%D: `%T'ye başka tanımsız başvurular aşağıda\n" - -#: ldmain.c:1378 -#, fuzzy -msgid "%X%B: undefined reference to `%T'\n" -msgstr "%B: `%T'ye tanımsız başvuru\n" - -#: ldmain.c:1381 -#, fuzzy -msgid "%B: warning: undefined reference to `%T'\n" -msgstr "%B: `%T'ye tanımsız başvuru\n" - -#: ldmain.c:1387 -#, fuzzy -msgid "%X%B: more undefined references to `%T' follow\n" -msgstr "%B: `%T'ye başka tanımsız başvurular aşağıda\n" - -#: ldmain.c:1390 -#, fuzzy -msgid "%B: warning: more undefined references to `%T' follow\n" -msgstr "%B: `%T'ye başka tanımsız başvurular aşağıda\n" - -#: ldmain.c:1425 ldmain.c:1478 ldmain.c:1496 -msgid "%P%X: generated" -msgstr "%P%X: oluşturuldu" - -#: ldmain.c:1432 -msgid " additional relocation overflows omitted from the output\n" -msgstr " ek yerdeğişim taşmaları çıktıya gönderilmedi\n" - -#: ldmain.c:1445 -#, fuzzy -msgid " relocation truncated to fit: %s against undefined symbol `%T'" -msgstr " yer değişim sığması için budandı: %s %T" - -#: ldmain.c:1450 -#, fuzzy -msgid " relocation truncated to fit: %s against symbol `%T' defined in %A section in %B" -msgstr " yer değişim sığması için budandı: %s %T" - -#: ldmain.c:1460 -#, fuzzy -msgid " relocation truncated to fit: %s against `%T'" -msgstr " yer değişim sığması için budandı: %s %T" - -#: ldmain.c:1481 -#, c-format -msgid "dangerous relocation: %s\n" -msgstr "tehlikeli yerdeğişim: %s\n" - -#: ldmain.c:1499 -msgid " reloc refers to symbol `%T' which is not being output\n" -msgstr " yer değişim, çıktılanmayan `%T' sembolüne referans veriyor\n" - -#: ldmisc.c:149 -#, c-format -msgid "no symbol" -msgstr "sembol yok" - -#: ldmisc.c:240 -#, c-format -msgid "built in linker script:%u" -msgstr "yerleşik bağlayıcı betiği:%u" - -#: ldmisc.c:289 ldmisc.c:293 -msgid "%B%F: could not read symbols\n" -msgstr "%B%F: semboller okunamadı\n" - -#: ldmisc.c:329 -#, fuzzy -msgid "%B: In function `%T':\n" -msgstr ": `%T' İşlevinde:\n" - -#: ldmisc.c:480 -msgid "%F%P: internal error %s %d\n" -msgstr "%F%P: iç hata %s %d\n" - -#: ldmisc.c:526 -msgid "%P: internal error: aborting at %s line %d in %s\n" -msgstr "%1$P: iç hata: %4$s içinde %3$d satırı %2$s'da durduruldu\n" - -#: ldmisc.c:529 -msgid "%P: internal error: aborting at %s line %d\n" -msgstr "%P: iç hata: %s'da, %d satırında durduruldu\n" - -#: ldmisc.c:531 -msgid "%P%F: please report this bug\n" -msgstr "%P%F: lütfen bu yazılım hatasını bildirin\n" - -#. Output for noisy == 2 is intended to follow the GNU standards. -#: ldver.c:38 -#, c-format -msgid "GNU ld version %s\n" -msgstr "GNU ld sürüm %s\n" - -#: ldver.c:42 -#, fuzzy, c-format -msgid "Copyright 2005 Free Software Foundation, Inc.\n" -msgstr "Telif Hakkı 2002 Free Software Foundation, Inc.\n" - -#: ldver.c:43 -#, c-format -msgid "" -"This program is free software; you may redistribute it under the terms of\n" -"the GNU General Public License. This program has absolutely no warranty.\n" -msgstr "" -"Bu, bir serbest yazılımdır; GNU Genel Kamu Lisansı koşulları altında değişiklik\n" -"yapabilir ve/veya yeniden dağıtabilirsiniz. \n" -"Bu yazılımın herhangi bir garantisi yoktur.\n" - -#: ldver.c:52 -#, c-format -msgid " Supported emulations:\n" -msgstr " Desteklenen öykünümler:\n" - -#: ldwrite.c:55 ldwrite.c:191 -msgid "%P%F: bfd_new_link_order failed\n" -msgstr "%P%F: bfd_new_link_order başarısız\n" - -#: ldwrite.c:341 -#, fuzzy -msgid "%F%P: cannot create split section name for %s\n" -msgstr "%P%F: bağ hash tablosu oluşturulamadı: %E\n" - -#: ldwrite.c:353 -msgid "%F%P: clone section failed: %E\n" -msgstr "%F%P: bölümü çoğaltmak başarısız : %E\n" - -#: ldwrite.c:391 -#, c-format -msgid "%8x something else\n" -msgstr "%8x başka bir şey\n" - -#: ldwrite.c:561 -msgid "%F%P: final link failed: %E\n" -msgstr "%F%P: son bağlama başarısız: %E\n" - -#: lexsup.c:195 lexsup.c:327 -msgid "KEYWORD" -msgstr "ANAHTARSÖZ" - -#: lexsup.c:195 -msgid "Shared library control for HP/UX compatibility" -msgstr "HP/UX uyumluluğu için paylaşımlı kitaplık kontrolü" - -#: lexsup.c:198 -msgid "ARCH" -msgstr "PLATFORM" - -#: lexsup.c:198 -msgid "Set architecture" -msgstr "Platformu belirler" - -#: lexsup.c:200 lexsup.c:421 -msgid "TARGET" -msgstr "HEDEF" - -#: lexsup.c:200 -msgid "Specify target for following input files" -msgstr "Aşağıdaki girdi dosyaları için hedef belirler" - -#: lexsup.c:203 lexsup.c:252 lexsup.c:264 lexsup.c:277 lexsup.c:380 -#: lexsup.c:433 lexsup.c:490 -msgid "FILE" -msgstr "DOSYA" - -#: lexsup.c:203 -msgid "Read MRI format linker script" -msgstr "MRI biçeminde bağlayıcı betiği okur" - -#: lexsup.c:205 -msgid "Force common symbols to be defined" -msgstr "genel sembollerin tanımlı olmasını şart koşar" - -#: lexsup.c:209 lexsup.c:475 lexsup.c:477 lexsup.c:479 -msgid "ADDRESS" -msgstr "ADRES" - -#: lexsup.c:209 -msgid "Set start address" -msgstr "Başlangıç adresini atar" - -#: lexsup.c:211 -msgid "Export all dynamic symbols" -msgstr "Bütün dinamik sembolleri ihraç eder" - -#: lexsup.c:213 -msgid "Link big-endian objects" -msgstr "Büyük sonlu nesneleri bağlar" - -#: lexsup.c:215 -msgid "Link little-endian objects" -msgstr "Küçük-sonlu nesneleri bağlar" - -#: lexsup.c:217 lexsup.c:220 -msgid "SHLIB" -msgstr "SHLIB" - -#: lexsup.c:217 -msgid "Auxiliary filter for shared object symbol table" -msgstr "Paylaşımlı nesne sembol tablosu için ikincil filtre" - -#: lexsup.c:220 -msgid "Filter for shared object symbol table" -msgstr "Paylaşımlı nesne sembol tablosu için filtre" - -#: lexsup.c:223 -msgid "Ignored" -msgstr "Gözardı edilmiş" - -#: lexsup.c:225 -msgid "SIZE" -msgstr "BOYUT" - -#: lexsup.c:225 -msgid "Small data size (if no size, same as --shared)" -msgstr "Küçük veri boyu (eğer boy belirtilmemişse, --shared ile aynı)" - -#: lexsup.c:228 -msgid "FILENAME" -msgstr "DOSYAİSMİ" - -#: lexsup.c:228 -msgid "Set internal name of shared library" -msgstr "Paylaşımlı kitaplığın iç adını belirler" - -#: lexsup.c:230 -msgid "PROGRAM" -msgstr "YAZILIM" - -#: lexsup.c:230 -msgid "Set PROGRAM as the dynamic linker to use" -msgstr "YAZILIM'ı kullanılacak dinamik bağlayıcı olarak atar" - -#: lexsup.c:233 -msgid "LIBNAME" -msgstr "KİTAPLIKADI" - -#: lexsup.c:233 -msgid "Search for library LIBNAME" -msgstr "KİTAPLIKADI kitaplığını arar" - -#: lexsup.c:235 -msgid "DIRECTORY" -msgstr "DİZİN" - -#: lexsup.c:235 -msgid "Add DIRECTORY to library search path" -msgstr "DİZİN'i kitaplık arama yoluna ekler" - -#: lexsup.c:238 -msgid "Override the default sysroot location" -msgstr "" - -#: lexsup.c:240 -msgid "EMULATION" -msgstr "ÖYKÜNÜM" - -#: lexsup.c:240 -msgid "Set emulation" -msgstr "Öykünümü belirler" - -#: lexsup.c:242 -msgid "Print map file on standard output" -msgstr "Eşleme dosyasını standart çıktıya yazdırır" - -#: lexsup.c:244 -msgid "Do not page align data" -msgstr "Veriyi sayfaya hizalamaz" - -#: lexsup.c:246 -msgid "Do not page align data, do not make text readonly" -msgstr "Veriyi sayfaya hizalamaz, metni saltokunur yapmaz" - -#: lexsup.c:249 -msgid "Page align data, make text readonly" -msgstr "Veriyi sayfaya hizalar, metni saltokunur yapar" - -#: lexsup.c:252 -msgid "Set output file name" -msgstr "Çıktı dosyası adını belirler" - -#: lexsup.c:254 -msgid "Optimize output file" -msgstr "Çıktı dosyasını eniyiler" - -#: lexsup.c:256 -msgid "Ignored for SVR4 compatibility" -msgstr "SVR4 uyumluluğu için yoksayıldı" - -#: lexsup.c:260 -msgid "Generate relocatable output" -msgstr "Yerdeğişimli çıktı oluşturur" - -#: lexsup.c:264 -msgid "Just link symbols (if directory, same as --rpath)" -msgstr "Yalnız sembolleri bağlar (eğer dizin ise, --rpath ile aynı)" - -#: lexsup.c:267 -msgid "Strip all symbols" -msgstr "Bütün sembolleri soyar" - -#: lexsup.c:269 -msgid "Strip debugging symbols" -msgstr "Hata ayıklama sembollerini soyar" - -#: lexsup.c:271 -msgid "Strip symbols in discarded sections" -msgstr "Atılan bölümlerdeki sembolleri soyar" - -#: lexsup.c:273 -msgid "Do not strip symbols in discarded sections" -msgstr "Atılan bölümlerdeki sembolleri soymaz" - -#: lexsup.c:275 -msgid "Trace file opens" -msgstr "İzleme dosyası açılır" - -#: lexsup.c:277 -msgid "Read linker script" -msgstr "Bağlama betiği okunur" - -#: lexsup.c:279 lexsup.c:297 lexsup.c:363 lexsup.c:378 lexsup.c:468 -#: lexsup.c:493 lexsup.c:520 -msgid "SYMBOL" -msgstr "SEMBOL" - -#: lexsup.c:279 -msgid "Start with undefined reference to SYMBOL" -msgstr "SEMBOL'e tanımsız başvuru ile başlıyor" - -#: lexsup.c:282 -msgid "[=SECTION]" -msgstr "[=BÖLÜM]" - -#: lexsup.c:283 -msgid "Don't merge input [SECTION | orphan] sections" -msgstr "Girdide [BÖLÜM | öksüz] bölümlerini katıştırmaz" - -#: lexsup.c:285 -msgid "Build global constructor/destructor tables" -msgstr "Evrensel kurucu/serbestleştirici tabloları hazırlar" - -#: lexsup.c:287 -msgid "Print version information" -msgstr "Sürüm bilgisini gösterir" - -#: lexsup.c:289 -msgid "Print version and emulation information" -msgstr "Sürüm ve öykünüm bilgisini gösterir" - -#: lexsup.c:291 -msgid "Discard all local symbols" -msgstr "Bütün yerel sembolleri siler" - -#: lexsup.c:293 -msgid "Discard temporary local symbols (default)" -msgstr "Geçici yerel sembolleri siler (öntanımlı)" - -#: lexsup.c:295 -msgid "Don't discard any local symbols" -msgstr "Hiçbir yerel sembolü silmez" - -#: lexsup.c:297 -msgid "Trace mentions of SYMBOL" -msgstr "SEMBOL'ün geçtiği yerleri takip eder" - -#: lexsup.c:299 lexsup.c:435 lexsup.c:437 -msgid "PATH" -msgstr "YOL" - -#: lexsup.c:299 -msgid "Default search path for Solaris compatibility" -msgstr "Solaris uyumluluğu için öntanımlı arama yolu" - -#: lexsup.c:302 -msgid "Start a group" -msgstr "Grup başlatır" - -#: lexsup.c:304 -msgid "End a group" -msgstr "Grup sonlandırır" - -#: lexsup.c:308 -msgid "Accept input files whose architecture cannot be determined" -msgstr "Mimarisi belirlenemeyen girdi dosyalarını kabul eder" - -#: lexsup.c:312 -msgid "Reject input files whose architecture is unknown" -msgstr "Mimarisi belirlenemeyen girdi dosyalarını reddeder" - -#: lexsup.c:315 -msgid "" -"Set DT_NEEDED tags for DT_NEEDED entries in\n" -"\t\t\t\tfollowing dynamic libs" -msgstr "" - -#: lexsup.c:318 -msgid "" -"Do not set DT_NEEDED tags for DT_NEEDED entries\n" -"\t\t\t\tin following dynamic libs" -msgstr "" - -#: lexsup.c:321 -msgid "Only set DT_NEEDED for following dynamic libs if used" -msgstr "" - -#: lexsup.c:324 -msgid "Always set DT_NEEDED for following dynamic libs" -msgstr "" - -#: lexsup.c:327 -msgid "Ignored for SunOS compatibility" -msgstr "SunOS uyumluluğu için yoksayıldı" - -#: lexsup.c:329 -msgid "Link against shared libraries" -msgstr "Paylaşımlı kitaplıklara bağlanır" - -#: lexsup.c:335 -msgid "Do not link against shared libraries" -msgstr "Paylaşımlı kitaplıklara bağlanmaz" - -#: lexsup.c:343 -msgid "Bind global references locally" -msgstr "Evrensel başvuruları yerel bağlar" - -#: lexsup.c:345 -msgid "Check section addresses for overlaps (default)" -msgstr "(öntanımlı) Bölüm adreslerini örtüşme için kontrol eder" - -#: lexsup.c:348 -msgid "Do not check section addresses for overlaps" -msgstr "Bölüm adreslerini örtüşme için kontrol etmez" - -#: lexsup.c:351 -msgid "Output cross reference table" -msgstr "Çapraz başvuru tablosunu çıktılar" - -#: lexsup.c:353 -msgid "SYMBOL=EXPRESSION" -msgstr "SEMBOL=İFADE" - -#: lexsup.c:353 -msgid "Define a symbol" -msgstr "Sembol tanımlar" - -#: lexsup.c:355 -msgid "[=STYLE]" -msgstr "[=TARZ]" - -#: lexsup.c:355 -msgid "Demangle symbol names [using STYLE]" -msgstr "[TARZ kullanarak] sembol isimlerini düzeltir" - -#: lexsup.c:358 -msgid "Generate embedded relocs" -msgstr "Gömülü yerdeğişimler oluşturur" - -#: lexsup.c:360 -msgid "Treat warnings as errors" -msgstr "Uyarıları hata olarak işler" - -#: lexsup.c:363 -msgid "Call SYMBOL at unload-time" -msgstr "Boşaltma zamanında SEMBOL'ü çağırır" - -#: lexsup.c:365 -msgid "Force generation of file with .exe suffix" -msgstr "Dosyanın .exe soneki ile oluşturulmasını sağlar" - -#: lexsup.c:367 -msgid "Remove unused sections (on some targets)" -msgstr "(Bazı hedeflerde) kullanılmayan bölümleri siler" - -#: lexsup.c:370 -msgid "Don't remove unused sections (default)" -msgstr "(öntanımlı) Kullanılmayan bölümleri silmez" - -#: lexsup.c:373 -msgid "Set default hash table size close to " -msgstr "" - -#: lexsup.c:376 -msgid "Print option help" -msgstr "Seçenek yardımını gösterir" - -#: lexsup.c:378 -msgid "Call SYMBOL at load-time" -msgstr "Yükleme sırasında SEMBOL'ü çağırır" - -#: lexsup.c:380 -msgid "Write a map file" -msgstr "Eşleme dosyası yazdırır" - -#: lexsup.c:382 -msgid "Do not define Common storage" -msgstr "Ortak depo'yu tanımlamaz" - -#: lexsup.c:384 -msgid "Do not demangle symbol names" -msgstr "Sembol isimlerini düzeltmez" - -#: lexsup.c:386 -msgid "Use less memory and more disk I/O" -msgstr "Daha az bellek ve daha fazla disk I/O kullanır" - -#: lexsup.c:388 -#, fuzzy -msgid "Do not allow unresolved references in object files" -msgstr "Paylaşımlı nesnelerde tanımsız sembollere izin vermez" - -#: lexsup.c:391 -#, fuzzy -msgid "Allow unresolved references in shared libaries" -msgstr "Paylaşımlı kitaplıklara bağlanmaz" - -#: lexsup.c:395 -#, fuzzy -msgid "Do not allow unresolved references in shared libs" -msgstr "Paylaşımlı nesnelerde tanımsız sembollere izin vermez" - -#: lexsup.c:399 -msgid "Allow multiple definitions" -msgstr "Birden fazla tanıma izin verir" - -#: lexsup.c:401 -msgid "Disallow undefined version" -msgstr "Tanımsız sürüme izin vermez" - -#: lexsup.c:403 -msgid "Create default symbol version" -msgstr "" - -#: lexsup.c:406 -msgid "Create default symbol version for imported symbols" -msgstr "" - -#: lexsup.c:409 -msgid "Don't warn about mismatched input files" -msgstr "Eşleşmeyen girdi dosyaları hakkında uyarmaz" - -#: lexsup.c:411 -msgid "Turn off --whole-archive" -msgstr "--whole-archive seçeneğini etkisizleştirir" - -#: lexsup.c:413 -msgid "Create an output file even if errors occur" -msgstr "Hatalar oluşsa bile bir çıktı dosyası oluşturur" - -#: lexsup.c:418 -msgid "" -"Only use library directories specified on\n" -"\t\t\t\tthe command line" -msgstr "" -"Yalnızca komut satırında belirtilen\n" -"\t\t\t\tkitaplık dizinlerini kullanır" - -#: lexsup.c:421 -msgid "Specify target of output file" -msgstr "Çıktı dosyasının hedefini belirler" - -#: lexsup.c:424 -msgid "Ignored for Linux compatibility" -msgstr "Linux uyumluluğu için yoksayıldı" - -#: lexsup.c:427 -msgid "Reduce memory overheads, possibly taking much longer" -msgstr "" - -#: lexsup.c:430 -msgid "Relax branches on certain targets" -msgstr "Bazı hedeflerde dalları gevşetir" - -#: lexsup.c:433 -msgid "Keep only symbols listed in FILE" -msgstr "Yalnızca DOSYA'da belirtilen sembolleri tutar" - -#: lexsup.c:435 -msgid "Set runtime shared library search path" -msgstr "Çalışma zamanı paylaşımlı kitaplık arama yolunu belirler" - -#: lexsup.c:437 -msgid "Set link time shared library search path" -msgstr "Bağlama zamanı paylaşımlı kitaplık arama yolunu belirler" - -#: lexsup.c:440 -msgid "Create a shared library" -msgstr "Paylaşımlı kitaplık oluşturur" - -#: lexsup.c:444 -msgid "Create a position independent executable" -msgstr "Yerden bağımsız uygulama oluşturur" - -#: lexsup.c:448 -msgid "Sort common symbols by size" -msgstr "Ortak sembolleri boyuta göre sıralar" - -#: lexsup.c:452 -msgid "name|alignment" -msgstr "" - -#: lexsup.c:453 -msgid "Sort sections by name or maximum alignment" -msgstr "" - -#: lexsup.c:455 -msgid "COUNT" -msgstr "SAYI" - -#: lexsup.c:455 -msgid "How many tags to reserve in .dynamic section" -msgstr "Bir .dynamic bölümde tutulacak etiket sayısı" - -#: lexsup.c:458 -msgid "[=SIZE]" -msgstr "[=BOYUT]" - -#: lexsup.c:458 -msgid "Split output sections every SIZE octets" -msgstr "Her BOYUT sekizliğinde çıktı bölümlerini ayırır" - -#: lexsup.c:461 -msgid "[=COUNT]" -msgstr "[=SAYI]" - -#: lexsup.c:461 -msgid "Split output sections every COUNT relocs" -msgstr "Her SAYI yerdeğişiminde çıktı bölümlerini ayırır" - -#: lexsup.c:464 -msgid "Print memory usage statistics" -msgstr "Bellek kullanım istatistiklerini gösterir" - -#: lexsup.c:466 -msgid "Display target specific options" -msgstr "Hedefe özel seçenekleri gösterir" - -#: lexsup.c:468 -msgid "Do task level linking" -msgstr "Görev seviyesinde bağlama yapar" - -#: lexsup.c:470 -msgid "Use same format as native linker" -msgstr "Yerel bağlayıcı ile aynı biçemi kullanır" - -#: lexsup.c:472 -msgid "SECTION=ADDRESS" -msgstr "BÖLÜM=ADRES" - -#: lexsup.c:472 -msgid "Set address of named section" -msgstr "İsimli bölümün adresini belirler" - -#: lexsup.c:475 -msgid "Set address of .bss section" -msgstr ".bss bölümünün adresini belirler" - -#: lexsup.c:477 -msgid "Set address of .data section" -msgstr ".data bölümünün adresini belirler" - -#: lexsup.c:479 -msgid "Set address of .text section" -msgstr ".text bölümünün adresini belirler" - -#: lexsup.c:482 -msgid "" -"How to handle unresolved symbols. is:\n" -"\t\t\t\tignore-all, report-all, ignore-in-object-files,\n" -"\t\t\t\tignore-in-shared-libs" -msgstr "" - -#: lexsup.c:486 -msgid "Output lots of information during link" -msgstr "Bağlama esnasında ek bilgi gösterir" - -#: lexsup.c:490 -msgid "Read version information script" -msgstr "Sürüm bilgisi betiğini okur" - -#: lexsup.c:493 -msgid "" -"Take export symbols list from .exports, using\n" -"\t\t\t\tSYMBOL as the version." -msgstr "" -"İhraç sembolleri listesini .exports'dan alır, sürüm olarak\n" -"\t\t\t\tSEMBOL değerini kullanır." - -#: lexsup.c:496 -msgid "Warn about duplicate common symbols" -msgstr "Tekrarlanmış ortak semboller hakkında uyarı verir" - -#: lexsup.c:498 -msgid "Warn if global constructors/destructors are seen" -msgstr "Evrensel kurucu/serbestleştiriciler bulunursa uyarı verir" - -#: lexsup.c:501 -msgid "Warn if the multiple GP values are used" -msgstr "Çoklu GP değerleri kullanılırsa uyarı verir" - -#: lexsup.c:503 -msgid "Warn only once per undefined symbol" -msgstr "Her tanımsız sembol için bir defa uyarı verir" - -#: lexsup.c:505 -msgid "Warn if start of section changes due to alignment" -msgstr "Hizalama sebebi ile bölüm başlangıcı değişirse uyarı verir" - -#: lexsup.c:508 -msgid "Warn if shared object has DT_TEXTREL" -msgstr "" - -#: lexsup.c:512 -msgid "Report unresolved symbols as warnings" -msgstr "" - -#: lexsup.c:515 -msgid "Report unresolved symbols as errors" -msgstr "" - -#: lexsup.c:517 -msgid "Include all objects from following archives" -msgstr "Aşağıdaki arşivlerdeki tüm nesneleri içerir" - -#: lexsup.c:520 -msgid "Use wrapper functions for SYMBOL" -msgstr "SEMBOL için sarmalama işlevleri kullanır" - -#: lexsup.c:667 -msgid "%P: unrecognized option '%s'\n" -msgstr "%P: bilinmeyen `%s' seçeneği\n" - -#: lexsup.c:669 -msgid "%P%F: use the --help option for usage information\n" -msgstr "%P%F: kullanım bilgisi için --help seçeneğini kullanın\n" - -#: lexsup.c:687 -msgid "%P%F: unrecognized -a option `%s'\n" -msgstr "%P%F: bilinmeyen -a seçeneği `%s'\n" - -#: lexsup.c:700 -msgid "%P%F: unrecognized -assert option `%s'\n" -msgstr "%P%F: bilinmeyen -assert seçeneği `%s'\n" - -#: lexsup.c:743 -msgid "%F%P: unknown demangling style `%s'" -msgstr "%F%P: bilinmeyen düzeltme tarzı `%s'" - -#: lexsup.c:805 -msgid "%P%F: invalid number `%s'\n" -msgstr "%P%F: geçersiz sayı `%s'\n" - -#: lexsup.c:897 -#, fuzzy -msgid "%P%F: bad --unresolved-symbols option: %s\n" -msgstr "%P%F: bilinmeyen -assert seçeneği `%s'\n" - -#. This can happen if the user put "-rpath,a" on the command -#. line. (Or something similar. The comma is important). -#. Getopt becomes confused and thinks that this is a -r option -#. but it cannot parse the text after the -r so it refuses to -#. increment the optind counter. Detect this case and issue -#. an error message here. We cannot just make this a warning, -#. increment optind, and continue because getopt is too confused -#. and will seg-fault the next time around. -#: lexsup.c:968 -msgid "%P%F: bad -rpath option\n" -msgstr "%P%F: hatalı -rpath seçeneği\n" - -#: lexsup.c:1080 -msgid "%P%F: -shared not supported\n" -msgstr "%P%F: -shared desteklenmiyor\n" - -#: lexsup.c:1089 -msgid "%P%F: -pie not supported\n" -msgstr "%P%F: -pie desteklenmiyor\n" - -#: lexsup.c:1099 -#, fuzzy -msgid "name" -msgstr "İsim" - -#: lexsup.c:1101 -msgid "alignment" -msgstr "" - -#: lexsup.c:1104 -#, fuzzy -msgid "%P%F: invalid section sorting option: %s\n" -msgstr "%P%F: bilinmeyen -assert seçeneği `%s'\n" - -#: lexsup.c:1130 -msgid "%P%F: invalid argument to option \"--section-start\"\n" -msgstr "%P%F: \"--section-start\" seçeneğine geçersiz argüman verilmiş\n" - -#: lexsup.c:1137 -msgid "%P%F: missing argument(s) to option \"--section-start\"\n" -msgstr "%P%F: \"--section-start\" seçeneğine eksik argüman(lar) verilmiş\n" - -#: lexsup.c:1311 -msgid "%P%F: may not nest groups (--help for usage)\n" -msgstr "%P%F: gruplar yuvalanamaz (yardım için --help)\n" - -#: lexsup.c:1318 -msgid "%P%F: group ended before it began (--help for usage)\n" -msgstr "%P%F: grup başlamadan bitti (yardım için --help)\n" - -#: lexsup.c:1346 -msgid "%P%X: --hash-size needs a numeric argument\n" -msgstr "" - -#: lexsup.c:1397 lexsup.c:1410 -msgid "%P%F: invalid hex number `%s'\n" -msgstr "%P%F: geçersiz onaltılık sayı `%s'\n" - -#: lexsup.c:1445 -#, c-format -msgid "Usage: %s [options] file...\n" -msgstr "Kullanımı: %s [seçenekler] DOSYA...\n" - -#: lexsup.c:1447 -#, c-format -msgid "Options:\n" -msgstr "Seçenekler:\n" - -#. Note: Various tools (such as libtool) depend upon the -#. format of the listings below - do not change them. -#: lexsup.c:1530 -#, c-format -msgid "%s: supported targets:" -msgstr "%s: desteklenen hedefler:" - -#: lexsup.c:1538 -#, c-format -msgid "%s: supported emulations: " -msgstr "%s: desteklenen öykünümler: " - -#: lexsup.c:1543 -#, c-format -msgid "%s: emulation specific options:\n" -msgstr "%s: öykünüme özel seçenekler:\n" - -#: lexsup.c:1547 -#, c-format -msgid "Report bugs to %s\n" -msgstr "" -"Yazılım hatalarını %s adresine,\n" -"çeviri hatalarını adresine bildirin.\n" - -#: mri.c:291 -msgid "%P%F: unknown format type %s\n" -msgstr "%P%F: bilinmeyen biçem türü %s\n" - -#: pe-dll.c:303 -#, c-format -msgid "%XUnsupported PEI architecture: %s\n" -msgstr "%XDesteklenmeyen PEI platformu: %s\n" - -#: pe-dll.c:652 -#, c-format -msgid "%XError, duplicate EXPORT with ordinals: %s (%d vs %d)\n" -msgstr "%XHata, %s (%d yerine %d) onlukları ile tekrarlanmış İHRAÇ\n" - -#: pe-dll.c:659 -#, c-format -msgid "Warning, duplicate EXPORT: %s\n" -msgstr "Uyarı, tekrarlanmış İHRAÇ: %s\n" - -#: pe-dll.c:725 -#, c-format -msgid "%XCannot export %s: symbol not defined\n" -msgstr "%X%s ihraç edilemedi: sembol tanımsız\n" - -#: pe-dll.c:731 -#, c-format -msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n" -msgstr "%X%s ihraç edilemedi: sembol hatalı türde (%d yerine %d)\n" - -#: pe-dll.c:738 -#, c-format -msgid "%XCannot export %s: symbol not found\n" -msgstr "%X%s ihraç edilemedi: sembol bulunamadı\n" - -#: pe-dll.c:850 -#, c-format -msgid "%XError, ordinal used twice: %d (%s vs %s)\n" -msgstr "%XHata, %d (%s yerine %s) onluğu iki defa kullanılmış\n" - -#: pe-dll.c:1172 -#, c-format -msgid "%XError: %d-bit reloc in dll\n" -msgstr "%XHata: dll'de %d-bitlik yerdeğişim\n" - -#: pe-dll.c:1300 -#, c-format -msgid "%s: Can't open output def file %s\n" -msgstr "%s: %s tanım dosyası açılamadı\n" - -#: pe-dll.c:1443 -#, c-format -msgid "; no contents available\n" -msgstr "; içerik yok\n" - -#: pe-dll.c:2205 -msgid "%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n" -msgstr "" -"%C: '%T' değişkeni oto-ithal edilemez. Lütfen ld için dökümantasyonu okuyun.\n" -" detay için --enable-auto-import kullanın.\n" - -#: pe-dll.c:2235 -#, c-format -msgid "%XCan't open .lib file: %s\n" -msgstr "%X.lib dosyası açılamadı: %s\n" - -#: pe-dll.c:2240 -#, c-format -msgid "Creating library file: %s\n" -msgstr "Kitaplık dosyası oluşturuluyor: %s\n" - -#~ msgid "%F%P: %s uses undefined section %s\n" -#~ msgstr "%F%P: %s tanımsız %s bölümünü kullanıyor\n" - -#~ msgid "%F%P: %s forward reference of section %s\n" -#~ msgstr "%F%P: %s %s bölümüne ileriye başvuru\n" - -#~ msgid "%F%P: cannot open %s for %s: %E\n" -#~ msgstr "%1$F%2$P: %4$s için %3$s açılamadı: %5$E\n" - -#~ msgid "%F%P: cannot open %s: %E\n" -#~ msgstr "%F%P: %s açılamadı: %E\n" - -#~ msgid "%P%F: unknown architecture: %s\n" -#~ msgstr "%P%F: bilinmeyen platform: %s\n" - -#~ msgid "%P%F: target architecture respecified\n" -#~ msgstr "%P%F: hedef platform yeniden belirtilmiş\n" - -#~ msgid "%P: %B: warning: ignoring duplicate `%s' section symbol `%s'\n" -#~ msgstr "%P: %B: uyarı: birden fazla tekrar edilmiş `%s' bölümü `%s' sembolü yoksayıldı\n" - -#~ msgid "%P: %B: warning: duplicate section `%s' has different size\n" -#~ msgstr "%P: %B: uyarı: birden fazla tekrar edilmiş `%s' bölümünün boyutu farklı\n" - -#~ msgid "%P: no [COMMON] command, defaulting to .bss\n" -#~ msgstr "%P: [ORTAK] komutu yok, öntanımlı .bss kullanılıyor\n" - -#~ msgid "%P%F: -r and --mpc860c0 may not be used together\n" -#~ msgstr "%P%F: -r ve --mpc860c0 beraber kullanılamaz\n" - -#~ msgid "Allow no undefined symbols" -#~ msgstr "Tanımsız sembollere izin vermez" - -#~ msgid "Allow undefined symbols in shared objects (the default)" -#~ msgstr "Paylaşımlı nesnelerde tanımsız sembollere izin verir (öntanımlı)" - -#~ msgid "[=WORDS]" -#~ msgstr "[=SÖZCÜKLER]" - -#~ msgid "" -#~ "Modify problematic branches in last WORDS (1-10,\n" -#~ "\t\t\t\tdefault 5) words of a page" -#~ msgstr "" -#~ "Bir sayfanın son SÖZCÜKLER sözcüklerindeki (1-10,\n" -#~ "\t\t\t\töntanımlı 5) problemli dalları değiştirir" - -#~ msgid "%P%F: invalid argument to option \"mpc860c0\"\n" -#~ msgstr "%P%F: \"mpc860c0\" seçeneğine geçersiz argüman\n" diff --git a/opcodes/po/da.gmo b/opcodes/po/da.gmo deleted file mode 100644 index 42d668d182727870889a26fd8ddc5a18514831c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 8332 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 Vkga8={wqlQNY3w#OP$p_{}0{voq+%V diff --git a/opcodes/po/es.gmo b/opcodes/po/es.gmo deleted file mode 100644 index b4084c506d7ad083a965caffe41dd0dd4162dd3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 16747 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 diff --git a/opcodes/po/fr.gmo b/opcodes/po/fr.gmo deleted file mode 100644 index 47a17c62c283473e315a87c08a9938ece5b61d05..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 16408 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 diff --git a/opcodes/po/id.gmo b/opcodes/po/id.gmo deleted file mode 100644 index 5d6dcd45e5e81498b2aa2f78b19aa43bdc34ca52..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 8307 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 Wlbef?sh)Crr}J_5LYjQC+2DWp?kkG` diff --git a/opcodes/po/nl.gmo b/opcodes/po/nl.gmo deleted file mode 100644 index d90ae8d030ba830babd3217242624b060cac7711..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 16097 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 SK#%0o)5XAnB)Rs_r2h*lM_;`F diff --git a/opcodes/po/sv.gmo b/opcodes/po/sv.gmo deleted file mode 100644 index 2bbaca69dd3959069974a1bee171f47cab69f386..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 15872 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 NSARQSi;aWz{{aizG$jB4 diff --git a/opcodes/po/tr.gmo b/opcodes/po/tr.gmo deleted file mode 100644 index 98b9df15351bb968b81b4e2d65c0bf9170d80498..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 16094 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 bVS%2ijdaBKZJn>hJo8d)b%*Hj7VN(Pc58;7 -- 2.47.2

-n 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 byd4lilIgG;d4^Z)G#RccVM9eD;IaMx4CWwC diff --git a/binutils/po/zh_CN.gmo b/binutils/po/zh_CN.gmo deleted file mode 100644 index 04e985e361fd5fa1efcc1aa7eace383c008ae69f..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 75903 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 b@RfPp>BhxG%QZCnr+_dS6=J25I4k!rlZ#)T diff --git a/etc/configure.info b/etc/configure.info deleted file mode 100644 index 589b25c415b..00000000000 --- a/etc/configure.info +++ /dev/null @@ -1,2771 +0,0 @@ -This is configure.info, produced by makeinfo version 4.7 from -.././etc/configure.texi. - -INFO-DIR-SECTION GNU admin -START-INFO-DIR-ENTRY -* configure: (configure). The GNU configure and build system -END-INFO-DIR-ENTRY - - This file documents the GNU configure and build system. - - Copyright (C) 1998 Cygnus Solutions. - - Permission is granted to make and distribute verbatim copies of this -manual provided the copyright notice and this permission notice are -preserved on all copies. - - Permission is granted to copy and distribute modified versions of -this manual under the conditions for verbatim copying, provided that -the entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - - Permission is granted to copy and distribute translations of this -manual into another language, under the above conditions for modified -versions, except that this permission notice may be stated in a -translation approved by the Foundation. - - -File: configure.info, Node: Top, Next: Introduction, Up: (dir) - -GNU configure and build system -****************************** - -The GNU configure and build system. - -* Menu: - -* Introduction:: Introduction. -* Getting Started:: Getting Started. -* Files:: Files. -* Configuration Names:: Configuration Names. -* Cross Compilation Tools:: Cross Compilation Tools. -* Canadian Cross:: Canadian Cross. -* Cygnus Configure:: Cygnus Configure. -* Multilibs:: Multilibs. -* FAQ:: Frequently Asked Questions. -* Index:: Index. - - -File: configure.info, Node: Introduction, Next: Getting Started, Prev: Top, Up: Top - -1 Introduction -************** - -This document describes the GNU configure and build systems. It -describes how autoconf, automake, libtool, and make fit together. It -also includes a discussion of the older Cygnus configure system. - - This document does not describe in detail how to use each of the -tools; see the respective manuals for that. Instead, it describes -which files the developer must write, which files are machine generated -and how they are generated, and where certain common problems should be -addressed. - - This document draws on several sources, including the autoconf -manual by David MacKenzie (*note autoconf overview: (autoconf)Top.), -the automake manual by David MacKenzie and Tom Tromey (*note automake -overview: (automake)Top.), the libtool manual by Gordon Matzigkeit -(*note libtool overview: (libtool)Top.), and the Cygnus configure -manual by K. Richard Pixley. - -* Menu: - -* Goals:: Goals. -* Tools:: The tools. -* History:: History. -* Building:: Building. - - -File: configure.info, Node: Goals, Next: Tools, Up: Introduction - -1.1 Goals -========= - -The GNU configure and build system has two main goals. - - The first is to simplify the development of portable programs. The -system permits the developer to concentrate on writing the program, -simplifying many details of portability across Unix and even Windows -systems, and permitting the developer to describe how to build the -program using simple rules rather than complex Makefiles. - - The second is to simplify the building of programs distributed as -source code. All programs are built using a simple, standardized, two -step process. The program builder need not install any special tools in -order to build the program. - - -File: configure.info, Node: Tools, Next: History, Prev: Goals, Up: Introduction - -1.2 Tools -========= - -The GNU configure and build system is comprised of several different -tools. Program developers must build and install all of these tools. - - People who just want to build programs from distributed sources -normally do not need any special tools beyond a Unix shell, a make -program, and a C compiler. - -autoconf - provides a general portability framework, based on testing the - features of the host system at build time. - -automake - a system for describing how to build a program, permitting the - developer to write a simplified `Makefile'. - -libtool - a standardized approach to building shared libraries. - -gettext - provides a framework for translation of text messages into other - languages; not really discussed in this document. - -m4 - autoconf requires the GNU version of m4; the standard Unix m4 does - not suffice. - -perl - automake requires perl. - - -File: configure.info, Node: History, Next: Building, Prev: Tools, Up: Introduction - -1.3 History -=========== - -This is a very brief and probably inaccurate history. - - As the number of Unix variants increased during the 1980s, it became -harder to write programs which could run on all variants. While it was -often possible to use `#ifdef' to identify particular systems, -developers frequently did not have access to every system, and the -characteristics of some systems changed from version to version. - - By 1992, at least three different approaches had been developed: - * The Metaconfig program, by Larry Wall, Harlan Stenn, and Raphael - Manfredi. - - * The Cygnus configure script, by K. Richard Pixley, and the gcc - configure script, by Richard Stallman. These use essentially the - same approach, and the developers communicated regularly. - - * The autoconf program, by David MacKenzie. - - The Metaconfig program is still used for Perl and a few other -programs. It is part of the Dist package. I do not know if it is -being developed. - - In 1994, David MacKenzie and others modified autoconf to incorporate -all the features of Cygnus configure. Since then, there has been a -slow but steady conversion of GNU programs from Cygnus configure to -autoconf. gcc has been converted, eliminating the gcc configure script. - - GNU autoconf was regularly maintained until late 1996. As of this -writing in June, 1998, it has no public maintainer. - - Most programs are built using the make program, which requires the -developer to write Makefiles describing how to build the programs. -Since most programs are built in pretty much the same way, this led to a -lot of duplication. - - The X Window system is built using the imake tool, which uses a -database of rules to eliminate the duplication. However, building a -tool which was developed using imake requires that the builder have -imake installed, violating one of the goals of the GNU system. - - The new BSD make provides a standard library of Makefile fragments, -which permits developers to write very simple Makefiles. However, this -requires that the builder install the new BSD make program. - - In 1994, David MacKenzie wrote the first version of automake, which -permitted writing a simple build description which was converted into a -Makefile which could be used by the standard make program. In 1995, Tom -Tromey completely rewrote automake in Perl, and he continues to enhance -it. - - Various free packages built libraries, and by around 1995 several -included support to build shared libraries on various platforms. -However, there was no consistent approach. In early 1996, Gordon -Matzigkeit began working on libtool, which provided a standardized -approach to building shared libraries. This was integrated into -automake from the start. - - The development of automake and libtool was driven by the GNITS -project, a group of GNU maintainers who designed standardized tools to -help meet the GNU coding standards. - - -File: configure.info, Node: Building, Prev: History, Up: Introduction - -1.4 Building -============ - -Most readers of this document should already know how to build a tool by -running `configure' and `make'. This section may serve as a quick -introduction or reminder. - - Building a tool is normally as simple as running `configure' -followed by `make'. You should normally run `configure' from an empty -directory, using some path to refer to the `configure' script in the -source directory. The directory in which you run `configure' is called -the "object directory". - - In order to use a object directory which is different from the source -directory, you must be using the GNU version of `make', which has the -required `VPATH' support. Despite this restriction, using a different -object directory is highly recommended: - * It keeps the files generated during the build from cluttering up - your sources. - - * It permits you to remove the built files by simply removing the - entire build directory. - - * It permits you to build from the same sources with several sets of - configure options simultaneously. - - If you don't have GNU `make', you will have to run `configure' in -the source directory. All GNU packages should support this; in -particular, GNU packages should not assume the presence of GNU `make'. - - After running `configure', you can build the tools by running `make'. - - To install the tools, run `make install'. Installing the tools will -copy the programs and any required support files to the "installation -directory". The location of the installation directory is controlled -by `configure' options, as described below. - - In the Cygnus tree at present, the info files are built and -installed as a separate step. To build them, run `make info'. To -install them, run `make install-info'. - - All `configure' scripts support a wide variety of options. The most -interesting ones are `--with' and `--enable' options which are -generally specific to particular tools. You can usually use the -`--help' option to get a list of interesting options for a particular -configure script. - - The only generic options you are likely to use are the `--prefix' -and `--exec-prefix' options. These options are used to specify the -installation directory. - - The directory named by the `--prefix' option will hold machine -independent files such as info files. - - The directory named by the `--exec-prefix' option, which is normally -a subdirectory of the `--prefix' directory, will hold machine dependent -files such as executables. - - The default for `--prefix' is `/usr/local'. The default for -`--exec-prefix' is the value used for `--prefix'. - - The convention used in Cygnus releases is to use a `--prefix' option -of `/usr/cygnus/RELEASE', where RELEASE is the name of the release, and -to use a `--exec-prefix' option of `/usr/cygnus/RELEASE/H-HOST', where -HOST is the configuration name of the host system (*note Configuration -Names::). - - Do not use either the source or the object directory as the -installation directory. That will just lead to confusion. - - -File: configure.info, Node: Getting Started, Next: Files, Prev: Introduction, Up: Top - -2 Getting Started -***************** - -To start using the GNU configure and build system with your software -package, you must write three files, and you must run some tools to -manually generate additional files. - -* Menu: - -* Write configure.in:: Write configure.in. -* Write Makefile.am:: Write Makefile.am. -* Write acconfig.h:: Write acconfig.h. -* Generate files:: Generate files. -* Getting Started Example:: Example. - - -File: configure.info, Node: Write configure.in, Next: Write Makefile.am, Up: Getting Started - -2.1 Write configure.in -====================== - -You must first write the file `configure.in'. This is an autoconf -input file, and the autoconf manual describes in detail what this file -should look like. - - You will write tests in your `configure.in' file to check for -conditions that may change from one system to another, such as the -presence of particular header files or functions. - - For example, not all systems support the `gettimeofday' function. -If you want to use the `gettimeofday' function when it is available, -and to use some other function when it is not, you would check for this -by putting `AC_CHECK_FUNCS(gettimeofday)' in `configure.in'. - - When the configure script is run at build time, this will arrange to -define the preprocessor macro `HAVE_GETTIMEOFDAY' to the value 1 if the -`gettimeofday' function is available, and to not define the macro at -all if the function is not available. Your code can then use `#ifdef' -to test whether it is safe to call `gettimeofday'. - - If you have an existing body of code, the `autoscan' program may -help identify potential portability problems, and hence configure tests -that you will want to use. *Note Invoking autoscan: (autoconf)Invoking -autoscan. - - Another handy tool for an existing body of code is `ifnames'. This -will show you all the preprocessor conditionals that the code already -uses. *Note Invoking ifnames: (autoconf)Invoking ifnames. - - Besides the portability tests which are specific to your particular -package, every `configure.in' file should contain the following macros. - -`AC_INIT' - This macro takes a single argument, which is the name of a file in - your package. For example, `AC_INIT(foo.c)'. - -`AC_PREREQ(VERSION)' - This macro is optional. It may be used to indicate the version of - `autoconf' that you are using. This will prevent users from - running an earlier version of `autoconf' and perhaps getting an - invalid `configure' script. For example, `AC_PREREQ(2.12)'. - -`AM_INIT_AUTOMAKE' - This macro takes two arguments: the name of the package, and a - version number. For example, `AM_INIT_AUTOMAKE(foo, 1.0)'. (This - macro is not needed if you are not using automake). - -`AM_CONFIG_HEADER' - This macro names the header file which will hold the preprocessor - macro definitions at run time. Normally this should be - `config.h'. Your sources would then use `#include "config.h"' to - include it. - - This macro may optionally name the input file for that header - file; by default, this is `config.h.in', but that file name works - poorly on DOS filesystems. Therefore, it is often better to name - it explicitly as `config.in'. - - This is what you should normally put in `configure.in': - AM_CONFIG_HEADER(config.h:config.in) - - (If you are not using automake, use `AC_CONFIG_HEADER' rather than - `AM_CONFIG_HEADER'). - -`AM_MAINTAINER_MODE' - This macro always appears in Cygnus configure scripts. Other - programs may or may not use it. - - If this macro is used, the `--enable-maintainer-mode' option is - required to enable automatic rebuilding of generated files used by - the configure system. This of course requires that developers be - aware of, and use, that option. - - If this macro is not used, then the generated files will always be - rebuilt automatically. This will cause problems if the wrong - versions of autoconf, automake, or others are in the builder's - `PATH'. - - (If you are not using automake, you do not need to use this macro). - -`AC_EXEEXT' - Either this macro or `AM_EXEEXT' always appears in Cygnus configure - files. Other programs may or may not use one of them. - - This macro looks for the executable suffix used on the host - system. On Unix systems, this is the empty string. On Windows - systems, this is `.exe'. This macro directs automake to use the - executable suffix as appropriate when creating programs. This - macro does not take any arguments. - - The `AC_EXEEXT' form is new, and is part of a Cygnus patch to - autoconf to support compiling with Visual C++. Older programs use - `AM_EXEEXT' instead. - - (Programs which do not use automake use neither `AC_EXEEXT' nor - `AM_EXEEXT'). - -`AC_PROG_CC' - If you are writing C code, you will normally want to use this - macro. It locates the C compiler to use. It does not take any - arguments. - - However, if this `configure.in' file is for a library which is to - be compiled by a cross compiler which may not fully work, then you - will not want to use `AC_PROG_CC'. Instead, you will want to use a - variant which does not call the macro `AC_PROG_CC_WORKS'. Examples - can be found in various `configure.in' files for libraries that are - compiled with cross compilers, such as libiberty or libgloss. - This is essentially a bug in autoconf, and there will probably be - a better workaround at some point. - -`AC_PROG_CXX' - If you are writing C++ code, you will want to use this macro. It - locates the C++ compiler to use. It does not take any arguments. - The same cross compiler comments apply as for `AC_PROG_CC'. - -`AM_PROG_LIBTOOL' - If you want to build libraries, and you want to permit them to be - shared, or you want to link against libraries which were built - using libtool, then you will need this macro. This macro is - required in order to use libtool. - - By default, this will cause all libraries to be built as shared - libraries. To prevent this-to change the default-use - `AM_DISABLE_SHARED' before `AM_PROG_LIBTOOL'. The configure - options `--enable-shared' and `--disable-shared' may be used to - override the default at build time. - -`AC_DEFINE(_GNU_SOURCE)' - GNU packages should normally include this line before any other - feature tests. This defines the macro `_GNU_SOURCE' when - compiling, which directs the libc header files to provide the - standard GNU system interfaces including all GNU extensions. If - this macro is not defined, certain GNU extensions may not be - available. - -`AC_OUTPUT' - This macro takes a list of file names which the configure process - should produce. This is normally a list of one or more `Makefile' - files in different directories. If your package lives entirely in - a single directory, you would use simply `AC_OUTPUT(Makefile)'. - If you also have, for example, a `lib' subdirectory, you would use - `AC_OUTPUT(Makefile lib/Makefile)'. - - If you want to use locally defined macros in your `configure.in' -file, then you will need to write a `acinclude.m4' file which defines -them (if not using automake, this file is called `aclocal.m4'). -Alternatively, you can put separate macros in an `m4' subdirectory, and -put `ACLOCAL_AMFLAGS = -I m4' in your `Makefile.am' file so that the -`aclocal' program will be able to find them. - - The different macro prefixes indicate which tool defines the macro. -Macros which start with `AC_' are part of autoconf. Macros which start -with `AM_' are provided by automake or libtool. - - -File: configure.info, Node: Write Makefile.am, Next: Write acconfig.h, Prev: Write configure.in, Up: Getting Started - -2.2 Write Makefile.am -===================== - -You must write the file `Makefile.am'. This is an automake input file, -and the automake manual describes in detail what this file should look -like. - - The automake commands in `Makefile.am' mostly look like variable -assignments in a `Makefile'. automake recognizes special variable -names, and automatically add make rules to the output as needed. - - There will be one `Makefile.am' file for each directory in your -package. For each directory with subdirectories, the `Makefile.am' -file should contain the line - SUBDIRS = DIR DIR ... - where each DIR is the name of a subdirectory. - - For each `Makefile.am', there should be a corresponding `Makefile' -in the `AC_OUTPUT' macro in `configure.in'. - - Every `Makefile.am' written at Cygnus should contain the line - AUTOMAKE_OPTIONS = cygnus - This puts automake into Cygnus mode. See the automake manual for -details. - - You may to include the version number of `automake' that you are -using on the `AUTOMAKE_OPTIONS' line. For example, - AUTOMAKE_OPTIONS = cygnus 1.3 - This will prevent users from running an earlier version of -`automake' and perhaps getting an invalid `Makefile.in'. - - If your package builds a program, then in the directory where that -program is built you will normally want a line like - bin_PROGRAMS = PROGRAM - where PROGRAM is the name of the program. You will then want a line -like - PROGRAM_SOURCES = FILE FILE ... - where each FILE is the name of a source file to link into the -program (e.g., `foo.c'). - - If your package builds a library, and you do not want the library to -ever be built as a shared library, then in the directory where that -library is built you will normally want a line like - lib_LIBRARIES = libNAME.a - where `libNAME.a' is the name of the library. You will then want a -line like - libNAME_a_SOURCES = FILE FILE ... - where each FILE is the name of a source file to add to the library. - - If your package builds a library, and you want to permit building the -library as a shared library, then in the directory where that library is -built you will normally want a line like - lib_LTLIBRARIES = libNAME.la - The use of `LTLIBRARIES', and the `.la' extension, indicate a -library to be built using libtool. As usual, you will then want a line -like - libNAME_la_SOURCES = FILE FILE ... - - The strings `bin' and `lib' that appear above in `bin_PROGRAMS' and -`lib_LIBRARIES' are not arbitrary. They refer to particular -directories, which may be set by the `--bindir' and `--libdir' options -to `configure'. If those options are not used, the default values are -based on the `--prefix' or `--exec-prefix' options to `configure'. It -is possible to use other names if the program or library should be -installed in some other directory. - - The `Makefile.am' file may also contain almost anything that may -appear in a normal `Makefile'. automake also supports many other -special variables, as well as conditionals. - - See the automake manual for more information. - - -File: configure.info, Node: Write acconfig.h, Next: Generate files, Prev: Write Makefile.am, Up: Getting Started - -2.3 Write acconfig.h -==================== - -If you are generating a portability header file, (i.e., you are using -`AM_CONFIG_HEADER' in `configure.in'), then you will have to write a -`acconfig.h' file. It will have to contain the following lines. - - /* Name of package. */ - #undef PACKAGE - - /* Version of package. */ - #undef VERSION - - This requirement is really a bug in the system, and the requirement -may be eliminated at some later date. - - The `acconfig.h' file will also similar comment and `#undef' lines -for any unusual macros in the `configure.in' file, including any macro -which appears in a `AC_DEFINE' macro. - - In particular, if you are writing a GNU package and therefore include -`AC_DEFINE(_GNU_SOURCE)' in `configure.in' as suggested above, you will -need lines like this in `acconfig.h': - /* Enable GNU extensions. */ - #undef _GNU_SOURCE - - Normally the `autoheader' program will inform you of any such -requirements by printing an error message when it is run. However, if -you do anything particular odd in your `configure.in' file, you will -have to make sure that the right entries appear in `acconfig.h', since -otherwise the results of the tests may not be available in the -`config.h' file which your code will use. - - (Thee `PACKAGE' and `VERSION' lines are not required if you are not -using automake, and in that case you may not need a `acconfig.h' file -at all). - - -File: configure.info, Node: Generate files, Next: Getting Started Example, Prev: Write acconfig.h, Up: Getting Started - -2.4 Generate files -================== - -Once you have written `configure.in', `Makefile.am', `acconfig.h', and -possibly `acinclude.m4', you must use autoconf and automake programs to -produce the first versions of the generated files. This is done by -executing the following sequence of commands. - - aclocal - autoconf - autoheader - automake - - The `aclocal' and `automake' commands are part of the automake -package, and the `autoconf' and `autoheader' commands are part of the -autoconf package. - - If you are using a `m4' subdirectory for your macros, you will need -to use the `-I m4' option when you run `aclocal'. - - If you are not using the Cygnus tree, use the `-a' option when -running `automake' command in order to copy the required support files -into your source directory. - - If you are using libtool, you must build and install the libtool -package with the same `--prefix' and `--exec-prefix' options as you -used with the autoconf and automake packages. You must do this before -running any of the above commands. If you are not using the Cygnus -tree, you will need to run the `libtoolize' program to copy the libtool -support files into your directory. - - Once you have managed to run these commands without getting any -errors, you should create a new empty directory, and run the `configure' -script which will have been created by `autoconf' with the -`--enable-maintainer-mode' option. This will give you a set of -Makefiles which will include rules to automatically rebuild all the -generated files. - - After doing that, whenever you have changed some of the input files -and want to regenerated the other files, go to your object directory -and run `make'. Doing this is more reliable than trying to rebuild the -files manually, because there are complex order dependencies and it is -easy to forget something. - - -File: configure.info, Node: Getting Started Example, Prev: Generate files, Up: Getting Started - -2.5 Example -=========== - -Let's consider a trivial example. - - Suppose we want to write a simple version of `touch'. Our program, -which we will call `poke', will take a single file name argument, and -use the `utime' system call to set the modification and access times of -the file to the current time. We want this program to be highly -portable. - - We'll first see what this looks like without using autoconf and -automake, and then see what it looks like with them. - -* Menu: - -* Getting Started Example 1:: First Try. -* Getting Started Example 2:: Second Try. -* Getting Started Example 3:: Third Try. -* Generate Files in Example:: Generate Files. - - -File: configure.info, Node: Getting Started Example 1, Next: Getting Started Example 2, Up: Getting Started Example - -2.5.1 First Try ---------------- - -Here is our first try at `poke.c'. Note that we've written it without -ANSI/ISO C prototypes, since we want it to be highly portable. - - #include - #include - #include - #include - - int - main (argc, argv) - int argc; - char **argv; - { - if (argc != 2) - { - fprintf (stderr, "Usage: poke file\n"); - exit (1); - } - - if (utime (argv[1], NULL) < 0) - { - perror ("utime"); - exit (1); - } - - exit (0); - } - - We also write a simple `Makefile'. - - CC = gcc - CFLAGS = -g -O2 - - all: poke - - poke: poke.o - $(CC) -o poke $(CFLAGS) $(LDFLAGS) poke.o - - So far, so good. - - Unfortunately, there are a few problems. - - On older Unix systems derived from BSD 4.3, the `utime' system call -does not accept a second argument of `NULL'. On those systems, we need -to pass a pointer to `struct utimbuf' structure. Unfortunately, even -older systems don't define that structure; on those systems, we need to -pass an array of two `long' values. - - The header file `stdlib.h' was invented by ANSI C, and older systems -don't have a copy. We included it above to get a declaration of `exit'. - - We can find some of these portability problems by running -`autoscan', which will create a `configure.scan' file which we can use -as a prototype for our `configure.in' file. I won't show the output, -but it will notice the potential problems with `utime' and `stdlib.h'. - - In our `Makefile', we don't provide any way to install the program. -This doesn't matter much for such a simple example, but a real program -will need an `install' target. For that matter, we will also want a -`clean' target. - - -File: configure.info, Node: Getting Started Example 2, Next: Getting Started Example 3, Prev: Getting Started Example 1, Up: Getting Started Example - -2.5.2 Second Try ----------------- - -Here is our second try at this program. - - We modify `poke.c' to use preprocessor macros to control what -features are available. (I've cheated a bit by using the same macro -names which autoconf will use). - - #include - - #ifdef STDC_HEADERS - #include - #endif - - #include - - #ifdef HAVE_UTIME_H - #include - #endif - - #ifndef HAVE_UTIME_NULL - - #include - - #ifndef HAVE_STRUCT_UTIMBUF - - struct utimbuf - { - long actime; - long modtime; - }; - - #endif - - static int - utime_now (file) - char *file; - { - struct utimbuf now; - - now.actime = now.modtime = time (NULL); - return utime (file, &now); - } - - #define utime(f, p) utime_now (f) - - #endif /* HAVE_UTIME_NULL */ - - int - main (argc, argv) - int argc; - char **argv; - { - if (argc != 2) - { - fprintf (stderr, "Usage: poke file\n"); - exit (1); - } - - if (utime (argv[1], NULL) < 0) - { - perror ("utime"); - exit (1); - } - - exit (0); - } - - Here is the associated `Makefile'. We've added support for the -preprocessor flags we use. We've also added `install' and `clean' -targets. - - # Set this to your installation directory. - bindir = /usr/local/bin - - # Uncomment this if you have the standard ANSI/ISO C header files. - # STDC_HDRS = -DSTDC_HEADERS - - # Uncomment this if you have utime.h. - # UTIME_H = -DHAVE_UTIME_H - - # Uncomment this if utime (FILE, NULL) works on your system. - # UTIME_NULL = -DHAVE_UTIME_NULL - - # Uncomment this if struct utimbuf is defined in utime.h. - # UTIMBUF = -DHAVE_STRUCT_UTIMBUF - - CC = gcc - CFLAGS = -g -O2 - - ALL_CFLAGS = $(STDC_HDRS) $(UTIME_H) $(UTIME_NULL) $(UTIMBUF) $(CFLAGS) - - all: poke - - poke: poke.o - $(CC) -o poke $(ALL_CFLAGS) $(LDFLAGS) poke.o - - .c.o: - $(CC) -c $(ALL_CFLAGS) poke.c - - install: poke - cp poke $(bindir)/poke - - clean: - rm poke poke.o - - Some problems with this approach should be clear. - - Users who want to compile poke will have to know how `utime' works -on their systems, so that they can uncomment the `Makefile' correctly. - - The installation is done using `cp', but many systems have an -`install' program which may be used, and which supports optional -features such as stripping debugging information out of the installed -binary. - - The use of `Makefile' variables like `CC', `CFLAGS' and `LDFLAGS' -follows the requirements of the GNU standards. This is convenient for -all packages, since it reduces surprises for users. However, it is -easy to get the details wrong, and wind up with a slightly nonstandard -distribution. - - -File: configure.info, Node: Getting Started Example 3, Next: Generate Files in Example, Prev: Getting Started Example 2, Up: Getting Started Example - -2.5.3 Third Try ---------------- - -For our third try at this program, we will write a `configure.in' -script to discover the configuration features on the host system, rather -than requiring the user to edit the `Makefile'. We will also write a -`Makefile.am' rather than a `Makefile'. - - The only change to `poke.c' is to add a line at the start of the -file: - #include "config.h" - - The new `configure.in' file is as follows. - - AC_INIT(poke.c) - AM_INIT_AUTOMAKE(poke, 1.0) - AM_CONFIG_HEADER(config.h:config.in) - AC_PROG_CC - AC_HEADER_STDC - AC_CHECK_HEADERS(utime.h) - AC_EGREP_HEADER(utimbuf, utime.h, AC_DEFINE(HAVE_STRUCT_UTIMBUF)) - AC_FUNC_UTIME_NULL - AC_OUTPUT(Makefile) - - The first four macros in this file, and the last one, were described -above; see *Note Write configure.in::. If we omit these macros, then -when we run `automake' we will get a reminder that we need them. - - The other macros are standard autoconf macros. - -`AC_HEADER_STDC' - Check for standard C headers. - -`AC_CHECK_HEADERS' - Check whether a particular header file exists. - -`AC_EGREP_HEADER' - Check for a particular string in a particular header file, in this - case checking for `utimbuf' in `utime.h'. - -`AC_FUNC_UTIME_NULL' - Check whether `utime' accepts a NULL second argument to set the - file change time to the current time. - - See the autoconf manual for a more complete description. - - The new `Makefile.am' file is as follows. Note how simple this is -compared to our earlier `Makefile'. - - bin_PROGRAMS = poke - - poke_SOURCES = poke.c - - This means that we should build a single program name `poke'. It -should be installed in the binary directory, which we called `bindir' -earlier. The program `poke' is built from the source file `poke.c'. - - We must also write a `acconfig.h' file. Besides `PACKAGE' and -`VERSION', which must be mentioned for all packages which use automake, -we must include `HAVE_STRUCT_UTIMBUF', since we mentioned it in an -`AC_DEFINE'. - - /* Name of package. */ - #undef PACKAGE - - /* Version of package. */ - #undef VERSION - - /* Whether utime.h defines struct utimbuf. */ - #undef HAVE_STRUCT_UTIMBUF - - -File: configure.info, Node: Generate Files in Example, Prev: Getting Started Example 3, Up: Getting Started Example - -2.5.4 Generate Files --------------------- - -We must now generate the other files, using the following commands. - - aclocal - autoconf - autoheader - automake - - When we run `autoheader', it will remind us of any macros we forgot -to add to `acconfig.h'. - - When we run `automake', it will want to add some files to our -distribution. It will add them automatically if we use the -`--add-missing' option. - - By default, `automake' will run in GNU mode, which means that it -will want us to create certain additional files; as of this writing, it -will want `NEWS', `README', `AUTHORS', and `ChangeLog', all of which -are files which should appear in a standard GNU distribution. We can -either add those files, or run `automake' with the `--foreign' option. - - Running these tools will generate the following files, all of which -are described in the next chapter. - - * `aclocal.m4' - - * `configure' - - * `config.in' - - * `Makefile.in' - - * `stamp-h.in' - - -File: configure.info, Node: Files, Next: Configuration Names, Prev: Getting Started, Up: Top - -3 Files -******* - -As was seen in the previous chapter, the GNU configure and build system -uses a number of different files. The developer must write a few files. -The others are generated by various tools. - - The system is rather flexible, and can be used in many different -ways. In describing the files that it uses, I will describe the common -case, and mention some other cases that may arise. - -* Menu: - -* Developer Files:: Developer Files. -* Build Files:: Build Files. -* Support Files:: Support Files. - - -File: configure.info, Node: Developer Files, Next: Build Files, Up: Files - -3.1 Developer Files -=================== - -This section describes the files written or generated by the developer -of a package. - -* Menu: - -* Developer Files Picture:: Developer Files Picture. -* Written Developer Files:: Written Developer Files. -* Generated Developer Files:: Generated Developer Files. - - -File: configure.info, Node: Developer Files Picture, Next: Written Developer Files, Up: Developer Files - -3.1.1 Developer Files Picture ------------------------------ - -Here is a picture of the files which are written by the developer, the -generated files which would be included with a complete source -distribution, and the tools which create those files. The file names -are plain text and the tool names are enclosed by `*' characters (e.g., -`autoheader' is the name of a tool, not the name of a file). - - acconfig.h configure.in Makefile.am - | | | - | --------------+---------------------- | - | | | | | - v v | acinclude.m4 | | - *autoheader* | | v v - | | v --->*automake* - v |--->*aclocal* | | - config.in | | | v - | v | Makefile.in - | aclocal.m4--- - | | - v v - *autoconf* - | - v - configure - - -File: configure.info, Node: Written Developer Files, Next: Generated Developer Files, Prev: Developer Files Picture, Up: Developer Files - -3.1.2 Written Developer Files ------------------------------ - -The following files would be written by the developer. - -`configure.in' - This is the configuration script. This script contains - invocations of autoconf macros. It may also contain ordinary - shell script code. This file will contain feature tests for - portability issues. The last thing in the file will normally be - an `AC_OUTPUT' macro listing which files to create when the - builder runs the configure script. This file is always required - when using the GNU configure system. *Note Write configure.in::. - -`Makefile.am' - This is the automake input file. It describes how the code should - be built. It consists of definitions of automake variables. It - may also contain ordinary Makefile targets. This file is only - needed when using automake (newer tools normally use automake, but - there are still older tools which have not been converted, in - which the developer writes `Makefile.in' directly). *Note Write - Makefile.am::. - -`acconfig.h' - When the configure script creates a portability header file, by - using `AM_CONFIG_HEADER' (or, if not using automake, - `AC_CONFIG_HEADER'), this file is used to describe macros which are - not recognized by the `autoheader' command. This is normally a - fairly uninteresting file, consisting of a collection of `#undef' - lines with comments. Normally any call to `AC_DEFINE' in - `configure.in' will require a line in this file. *Note Write - acconfig.h::. - -`acinclude.m4' - This file is not always required. It defines local autoconf - macros. These macros may then be used in `configure.in'. If you - don't need any local autoconf macros, then you don't need this - file at all. In fact, in general, you never need local autoconf - macros, since you can put everything in `configure.in', but - sometimes a local macro is convenient. - - Newer tools may omit `acinclude.m4', and instead use a - subdirectory, typically named `m4', and define `ACLOCAL_AMFLAGS = - -I m4' in `Makefile.am' to force `aclocal' to look there for macro - definitions. The macro definitions are then placed in separate - files in that directory. - - The `acinclude.m4' file is only used when using automake; in older - tools, the developer writes `aclocal.m4' directly, if it is needed. - - -File: configure.info, Node: Generated Developer Files, Prev: Written Developer Files, Up: Developer Files - -3.1.3 Generated Developer Files -------------------------------- - -The following files would be generated by the developer. - - When using automake, these files are normally not generated manually -after the first time. Instead, the generated `Makefile' contains rules -to automatically rebuild the files as required. When -`AM_MAINTAINER_MODE' is used in `configure.in' (the normal case in -Cygnus code), the automatic rebuilding rules will only be defined if -you configure using the `--enable-maintainer-mode' option. - - When using automatic rebuilding, it is important to ensure that all -the various tools have been built and installed on your `PATH'. Using -automatic rebuilding is highly recommended, so much so that I'm not -going to explain what you have to do if you don't use it. - -`configure' - This is the configure script which will be run when building the - package. This is generated by `autoconf' from `configure.in' and - `aclocal.m4'. This is a shell script. - -`Makefile.in' - This is the file which the configure script will turn into the - `Makefile' at build time. This file is generated by `automake' - from `Makefile.am'. If you aren't using automake, you must write - this file yourself. This file is pretty much a normal `Makefile', - with some configure substitutions for certain variables. - -`aclocal.m4' - This file is created by the `aclocal' program, based on the - contents of `configure.in' and `acinclude.m4' (or, as noted in the - description of `acinclude.m4' above, on the contents of an `m4' - subdirectory). This file contains definitions of autoconf macros - which `autoconf' will use when generating the file `configure'. - These autoconf macros may be defined by you in `acinclude.m4' or - they may be defined by other packages such as automake, libtool or - gettext. If you aren't using automake, you will normally write - this file yourself; in that case, if `configure.in' uses only - standard autoconf macros, this file will not be needed at all. - -`config.in' - This file is created by `autoheader' based on `acconfig.h' and - `configure.in'. At build time, the configure script will define - some of the macros in it to create `config.h', which may then be - included by your program. This permits your C code to use - preprocessor conditionals to change its behaviour based on the - characteristics of the host system. This file may also be called - `config.h.in'. - -`stamp.h-in' - This rather uninteresting file, which I omitted from the picture, - is generated by `automake'. It always contains the string - `timestamp'. It is used as a timestamp file indicating whether - `config.in' is up to date. Using a timestamp file means that - `config.in' can be marked as up to date without actually changing - its modification time. This is useful since `config.in' depends - upon `configure.in', but it is easy to change `configure.in' in a - way which does not affect `config.in'. - - -File: configure.info, Node: Build Files, Next: Support Files, Prev: Developer Files, Up: Files - -3.2 Build Files -=============== - -This section describes the files which are created at configure and -build time. These are the files which somebody who builds the package -will see. - - Of course, the developer will also build the package. The -distinction between developer files and build files is not that the -developer does not see the build files, but that somebody who only -builds the package does not have to worry about the developer files. - -* Menu: - -* Build Files Picture:: Build Files Picture. -* Build Files Description:: Build Files Description. - - -File: configure.info, Node: Build Files Picture, Next: Build Files Description, Up: Build Files - -3.2.1 Build Files Picture -------------------------- - -Here is a picture of the files which will be created at build time. -`config.status' is both a created file and a shell script which is run -to create other files, and the picture attempts to show that. - - config.in *configure* Makefile.in - | | | - | v | - | config.status | - | | | - *config.status*<======+==========>*config.status* - | | - v v - config.h Makefile - - -File: configure.info, Node: Build Files Description, Prev: Build Files Picture, Up: Build Files - -3.2.2 Build Files Description ------------------------------ - -This is a description of the files which are created at build time. - -`config.status' - The first step in building a package is to run the `configure' - script. The `configure' script will create the file - `config.status', which is itself a shell script. When you first - run `configure', it will automatically run `config.status'. An - `Makefile' derived from an automake generated `Makefile.in' will - contain rules to automatically run `config.status' again when - necessary to recreate certain files if their inputs change. - -`Makefile' - This is the file which make will read to build the program. The - `config.status' script will transform `Makefile.in' into - `Makefile'. - -`config.h' - This file defines C preprocessor macros which C code can use to - adjust its behaviour on different systems. The `config.status' - script will transform `config.in' into `config.h'. - -`config.cache' - This file did not fit neatly into the picture, and I omitted it. - It is used by the `configure' script to cache results between - runs. This can be an important speedup. If you modify - `configure.in' in such a way that the results of old tests should - change (perhaps you have added a new library to `LDFLAGS'), then - you will have to remove `config.cache' to force the tests to be - rerun. - - The autoconf manual explains how to set up a site specific cache - file. This can speed up running `configure' scripts on your - system. - -`stamp.h' - This file, which I omitted from the picture, is similar to - `stamp-h.in'. It is used as a timestamp file indicating whether - `config.h' is up to date. This is useful since `config.h' depends - upon `config.status', but it is easy for `config.status' to change - in a way which does not affect `config.h'. - - -File: configure.info, Node: Support Files, Prev: Build Files, Up: Files - -3.3 Support Files -================= - -The GNU configure and build system requires several support files to be -included with your distribution. You do not normally need to concern -yourself with these. If you are using the Cygnus tree, most are already -present. Otherwise, they will be installed with your source by -`automake' (with the `--add-missing' option) and `libtoolize'. - - You don't have to put the support files in the top level directory. -You can put them in a subdirectory, and use the `AC_CONFIG_AUX_DIR' -macro in `configure.in' to tell `automake' and the `configure' script -where they are. - - In this section, I describe the support files, so that you can know -what they are and why they are there. - -`ABOUT-NLS' - Added by automake if you are using gettext. This is a - documentation file about the gettext project. - -`ansi2knr.c' - Used by an automake generated `Makefile' if you put `ansi2knr' in - `AUTOMAKE_OPTIONS' in `Makefile.am'. This permits compiling ANSI - C code with a K&R C compiler. - -`ansi2knr.1' - The man page which goes with `ansi2knr.c'. - -`config.guess' - A shell script which determines the configuration name for the - system on which it is run. - -`config.sub' - A shell script which canonicalizes a configuration name entered by - a user. - -`elisp-comp' - Used to compile Emacs LISP files. - -`install-sh' - A shell script which installs a program. This is used if the - configure script can not find an install binary. - -`ltconfig' - Used by libtool. This is a shell script which configures libtool - for the particular system on which it is used. - -`ltmain.sh' - Used by libtool. This is the actual libtool script which is used, - after it is configured by `ltconfig' to build a library. - -`mdate-sh' - A shell script used by an automake generated `Makefile' to pretty - print the modification time of a file. This is used to maintain - version numbers for texinfo files. - -`missing' - A shell script used if some tool is missing entirely. This is - used by an automake generated `Makefile' to avoid certain sorts of - timestamp problems. - -`mkinstalldirs' - A shell script which creates a directory, including all parent - directories. This is used by an automake generated `Makefile' - during installation. - -`texinfo.tex' - Required if you have any texinfo files. This is used when - converting Texinfo files into DVI using `texi2dvi' and TeX. - -`ylwrap' - A shell script used by an automake generated `Makefile' to run - programs like `bison', `yacc', `flex', and `lex'. These programs - default to producing output files with a fixed name, and the - `ylwrap' script runs them in a subdirectory to avoid file name - conflicts when using a parallel make program. - - -File: configure.info, Node: Configuration Names, Next: Cross Compilation Tools, Prev: Files, Up: Top - -4 Configuration Names -********************* - -The GNU configure system names all systems using a "configuration -name". All such names used to be triplets (they may now contain four -parts in certain cases), and the term "configuration triplet" is still -seen. - -* Menu: - -* Configuration Name Definition:: Configuration Name Definition. -* Using Configuration Names:: Using Configuration Names. - - -File: configure.info, Node: Configuration Name Definition, Next: Using Configuration Names, Up: Configuration Names - -4.1 Configuration Name Definition -================================= - -This is a string of the form CPU-MANUFACTURER-OPERATING_SYSTEM. In -some cases, this is extended to a four part form: -CPU-MANUFACTURER-KERNEL-OPERATING_SYSTEM. - - When using a configuration name in a configure option, it is normally -not necessary to specify an entire name. In particular, the -MANUFACTURER field is often omitted, leading to strings such as -`i386-linux' or `sparc-sunos'. The shell script `config.sub' will -translate these shortened strings into the canonical form. autoconf -will arrange for `config.sub' to be run automatically when it is needed. - - The fields of a configuration name are as follows: - -CPU - The type of processor. This is typically something like `i386' or - `sparc'. More specific variants are used as well, such as - `mipsel' to indicate a little endian MIPS processor. - -MANUFACTURER - A somewhat freeform field which indicates the manufacturer of the - system. This is often simply `unknown'. Other common strings are - `pc' for an IBM PC compatible system, or the name of a workstation - vendor, such as `sun'. - -OPERATING_SYSTEM - The name of the operating system which is run on the system. This - will be something like `solaris2.5' or `irix6.3'. There is no - particular restriction on the version number, and strings like - `aix4.1.4.0' are seen. For an embedded system, which has no - operating system, this field normally indicates the type of object - file format, such as `elf' or `coff'. - -KERNEL - This is used mainly for GNU/Linux. A typical GNU/Linux - configuration name is `i586-pc-linux-gnulibc1'. In this case the - kernel, `linux', is separated from the operating system, - `gnulibc1'. - - The shell script `config.guess' will normally print the correct -configuration name for the system on which it is run. It does by -running `uname' and by examining other characteristics of the system. - - Because `config.guess' can normally determine the configuration name -for a machine, it is normally only necessary to specify a configuration -name when building a cross-compiler or when building using a -cross-compiler. - - -File: configure.info, Node: Using Configuration Names, Prev: Configuration Name Definition, Up: Configuration Names - -4.2 Using Configuration Names -============================= - -A configure script will sometimes have to make a decision based on a -configuration name. You will need to do this if you have to compile -code differently based on something which can not be tested using a -standard autoconf feature test. - - It is normally better to test for particular features, rather than to -test for a particular system. This is because as Unix evolves, -different systems copy features from one another. Even if you need to -determine whether the feature is supported based on a configuration -name, you should define a macro which describes the feature, rather than -defining a macro which describes the particular system you are on. - - Testing for a particular system is normally done using a case -statement in `configure.in'. The case statement might look something -like the following, assuming that `host' is a shell variable holding a -canonical configuration name (which will be the case if `configure.in' -uses the `AC_CANONICAL_HOST' or `AC_CANONICAL_SYSTEM' macro). - - case "${host}" in - i[3-7]86-*-linux-gnu*) do something ;; - sparc*-sun-solaris2.[56789]*) do something ;; - sparc*-sun-solaris*) do something ;; - mips*-*-elf*) do something ;; - esac - - It is particularly important to use `*' after the operating system -field, in order to match the version number which will be generated by -`config.guess'. - - In most cases you must be careful to match a range of processor -types. For most processor families, a trailing `*' suffices, as in -`mips*' above. For the i386 family, something along the lines of -`i[3-7]86' suffices at present. For the m68k family, you will need -something like `m68*'. Of course, if you do not need to match on the -processor, it is simpler to just replace the entire field by a `*', as -in `*-*-irix*'. - - -File: configure.info, Node: Cross Compilation Tools, Next: Canadian Cross, Prev: Configuration Names, Up: Top - -5 Cross Compilation Tools -************************* - -The GNU configure and build system can be used to build "cross -compilation" tools. A cross compilation tool is a tool which runs on -one system and produces code which runs on another system. - -* Menu: - -* Cross Compilation Concepts:: Cross Compilation Concepts. -* Host and Target:: Host and Target. -* Using the Host Type:: Using the Host Type. -* Specifying the Target:: Specifying the Target. -* Using the Target Type:: Using the Target Type. -* Cross Tools in the Cygnus Tree:: Cross Tools in the Cygnus Tree - - -File: configure.info, Node: Cross Compilation Concepts, Next: Host and Target, Up: Cross Compilation Tools - -5.1 Cross Compilation Concepts -============================== - -A compiler which produces programs which run on a different system is a -cross compilation compiler, or simply a "cross compiler". Similarly, -we speak of cross assemblers, cross linkers, etc. - - In the normal case, a compiler produces code which runs on the same -system as the one on which the compiler runs. When it is necessary to -distinguish this case from the cross compilation case, such a compiler -is called a "native compiler". Similarly, we speak of native -assemblers, etc. - - Although the debugger is not strictly speaking a compilation tool, -it is nevertheless meaningful to speak of a cross debugger: a debugger -which is used to debug code which runs on another system. Everything -that is said below about configuring cross compilation tools applies to -the debugger as well. - - -File: configure.info, Node: Host and Target, Next: Using the Host Type, Prev: Cross Compilation Concepts, Up: Cross Compilation Tools - -5.2 Host and Target -=================== - -When building cross compilation tools, there are two different systems -involved: the system on which the tools will run, and the system for -which the tools generate code. - - The system on which the tools will run is called the "host" system. - - The system for which the tools generate code is called the "target" -system. - - For example, suppose you have a compiler which runs on a GNU/Linux -system and generates ELF programs for a MIPS embedded system. In this -case the GNU/Linux system is the host, and the MIPS ELF system is the -target. Such a compiler could be called a GNU/Linux cross MIPS ELF -compiler, or, equivalently, a `i386-linux-gnu' cross `mips-elf' -compiler. - - Naturally, most programs are not cross compilation tools. For those -programs, it does not make sense to speak of a target. It only makes -sense to speak of a target for tools like `gcc' or the `binutils' which -actually produce running code. For example, it does not make sense to -speak of the target of a tool like `bison' or `make'. - - Most cross compilation tools can also serve as native tools. For a -native compilation tool, it is still meaningful to speak of a target. -For a native tool, the target is the same as the host. For example, for -a GNU/Linux native compiler, the host is GNU/Linux, and the target is -also GNU/Linux. - - -File: configure.info, Node: Using the Host Type, Next: Specifying the Target, Prev: Host and Target, Up: Cross Compilation Tools - -5.3 Using the Host Type -======================= - -In almost all cases the host system is the system on which you run the -`configure' script, and on which you build the tools (for the case when -they differ, *note Canadian Cross::). - - If your configure script needs to know the configuration name of the -host system, and the package is not a cross compilation tool and -therefore does not have a target, put `AC_CANONICAL_HOST' in -`configure.in'. This macro will arrange to define a few shell -variables when the `configure' script is run. - -`host' - The canonical configuration name of the host. This will normally - be determined by running the `config.guess' shell script, although - the user is permitted to override this by using an explicit - `--host' option. - -`host_alias' - In the unusual case that the user used an explicit `--host' option, - this will be the argument to `--host'. In the normal case, this - will be the same as the `host' variable. - -`host_cpu' -`host_vendor' -`host_os' - The first three parts of the canonical configuration name. - - The shell variables may be used by putting shell code in -`configure.in'. For an example, see *Note Using Configuration Names::. - - -File: configure.info, Node: Specifying the Target, Next: Using the Target Type, Prev: Using the Host Type, Up: Cross Compilation Tools - -5.4 Specifying the Target -========================= - -By default, the `configure' script will assume that the target is the -same as the host. This is the more common case; for example, it leads -to a native compiler rather than a cross compiler. - - If you want to build a cross compilation tool, you must specify the -target explicitly by using the `--target' option when you run -`configure'. The argument to `--target' is the configuration name of -the system for which you wish to generate code. *Note Configuration -Names::. - - For example, to build tools which generate code for a MIPS ELF -embedded system, you would use `--target mips-elf'. - - -File: configure.info, Node: Using the Target Type, Next: Cross Tools in the Cygnus Tree, Prev: Specifying the Target, Up: Cross Compilation Tools - -5.5 Using the Target Type -========================= - -When writing `configure.in' for a cross compilation tool, you will need -to use information about the target. To do this, put -`AC_CANONICAL_SYSTEM' in `configure.in'. - - `AC_CANONICAL_SYSTEM' will look for a `--target' option and -canonicalize it using the `config.sub' shell script. It will also run -`AC_CANONICAL_HOST' (*note Using the Host Type::). - - The target type will be recorded in the following shell variables. -Note that the host versions of these variables will also be defined by -`AC_CANONICAL_HOST'. - -`target' - The canonical configuration name of the target. - -`target_alias' - The argument to the `--target' option. If the user did not specify - a `--target' option, this will be the same as `host_alias'. - -`target_cpu' -`target_vendor' -`target_os' - The first three parts of the canonical target configuration name. - - Note that if `host' and `target' are the same string, you can assume -a native configuration. If they are different, you can assume a cross -configuration. - - It is arguably possible for `host' and `target' to represent the -same system, but for the strings to not be identical. For example, if -`config.guess' returns `sparc-sun-sunos4.1.4', and somebody configures -with `--target sparc-sun-sunos4.1', then the slight differences between -the two versions of SunOS may be unimportant for your tool. However, -in the general case it can be quite difficult to determine whether the -differences between two configuration names are significant or not. -Therefore, by convention, if the user specifies a `--target' option -without specifying a `--host' option, it is assumed that the user wants -to configure a cross compilation tool. - - The variables `target' and `target_alias' should be handled -differently. - - In general, whenever the user may actually see a string, -`target_alias' should be used. This includes anything which may appear -in the file system, such as a directory name or part of a tool name. -It also includes any tool output, unless it is clearly labelled as the -canonical target configuration name. This permits the user to use the -`--target' option to specify how the tool will appear to the outside -world. - - On the other hand, when checking for characteristics of the target -system, `target' should be used. This is because a wide variety of -`--target' options may map into the same canonical configuration name. -You should not attempt to duplicate the canonicalization done by -`config.sub' in your own code. - - By convention, cross tools are installed with a prefix of the -argument used with the `--target' option, also known as `target_alias' -(*note Using the Target Type::). If the user does not use the -`--target' option, and thus is building a native tool, no prefix is -used. - - For example, if gcc is configured with `--target mips-elf', then the -installed binary will be named `mips-elf-gcc'. If gcc is configured -without a `--target' option, then the installed binary will be named -`gcc'. - - The autoconf macro `AC_ARG_PROGRAM' will handle this for you. If -you are using automake, no more need be done; the programs will -automatically be installed with the correct prefixes. Otherwise, see -the autoconf documentation for `AC_ARG_PROGRAM'. - - -File: configure.info, Node: Cross Tools in the Cygnus Tree, Prev: Using the Target Type, Up: Cross Compilation Tools - -5.6 Cross Tools in the Cygnus Tree -================================== - -The Cygnus tree is used for various packages including gdb, the GNU -binutils, and egcs. It is also, of course, used for Cygnus releases. - - In the Cygnus tree, the top level `configure' script uses the old -Cygnus configure system, not autoconf. The top level `Makefile.in' is -written to build packages based on what is in the source tree, and -supports building a large number of tools in a single -`configure'/`make' step. - - The Cygnus tree may be configured with a `--target' option. The -`--target' option applies recursively to every subdirectory, and -permits building an entire set of cross tools at once. - -* Menu: - -* Host and Target Libraries:: Host and Target Libraries. -* Target Library Configure Scripts:: Target Library Configure Scripts. -* Make Targets in Cygnus Tree:: Make Targets in Cygnus Tree. -* Target libiberty:: Target libiberty - - -File: configure.info, Node: Host and Target Libraries, Next: Target Library Configure Scripts, Up: Cross Tools in the Cygnus Tree - -5.6.1 Host and Target Libraries -------------------------------- - -The Cygnus tree distinguishes host libraries from target libraries. - - Host libraries are built with the compiler used to build the programs -which run on the host, which is called the host compiler. This includes -libraries such as `bfd' and `tcl'. These libraries are built with the -host compiler, and are linked into programs like the binutils or gcc -which run on the host. - - Target libraries are built with the target compiler. If gcc is -present in the source tree, then the target compiler is the gcc that is -built using the host compiler. Target libraries are libraries such as -`newlib' and `libstdc++'. These libraries are not linked into the host -programs, but are instead made available for use with programs built -with the target compiler. - - For the rest of this section, assume that gcc is present in the -source tree, so that it will be used to build the target libraries. - - There is a complication here. The configure process needs to know -which compiler you are going to use to build a tool; otherwise, the -feature tests will not work correctly. The Cygnus tree handles this by -not configuring the target libraries until the target compiler is -built. In order to permit everything to build using a single -`configure'/`make', the configuration of the target libraries is -actually triggered during the make step. - - When the target libraries are configured, the `--target' option is -not used. Instead, the `--host' option is used with the argument of -the `--target' option for the overall configuration. If no `--target' -option was used for the overall configuration, the `--host' option will -be passed with the output of the `config.guess' shell script. Any -`--build' option is passed down unchanged. - - This translation of configuration options is done because since the -target libraries are compiled with the target compiler, they are being -built in order to run on the target of the overall configuration. By -the definition of host, this means that their host system is the same as -the target system of the overall configuration. - - The same process is used for both a native configuration and a cross -configuration. Even when using a native configuration, the target -libraries will be configured and built using the newly built compiler. -This is particularly important for the C++ libraries, since there is no -reason to assume that the C++ compiler used to build the host tools (if -there even is one) uses the same ABI as the g++ compiler which will be -used to build the target libraries. - - There is one difference between a native configuration and a cross -configuration. In a native configuration, the target libraries are -normally configured and built as siblings of the host tools. In a cross -configuration, the target libraries are normally built in a subdirectory -whose name is the argument to `--target'. This is mainly for -historical reasons. - - To summarize, running `configure' in the Cygnus tree configures all -the host libraries and tools, but does not configure any of the target -libraries. Running `make' then does the following steps: - - * Build the host libraries. - - * Build the host programs, including gcc. Note that we call gcc - both a host program (since it runs on the host) and a target - compiler (since it generates code for the target). - - * Using the newly built target compiler, configure the target - libraries. - - * Build the target libraries. - - The steps need not be done in precisely this order, since they are -actually controlled by `Makefile' targets. - - -File: configure.info, Node: Target Library Configure Scripts, Next: Make Targets in Cygnus Tree, Prev: Host and Target Libraries, Up: Cross Tools in the Cygnus Tree - -5.6.2 Target Library Configure Scripts --------------------------------------- - -There are a few things you must know in order to write a configure -script for a target library. This is just a quick sketch, and beginners -shouldn't worry if they don't follow everything here. - - The target libraries are configured and built using a newly built -target compiler. There may not be any startup files or libraries for -this target compiler. In fact, those files will probably be built as -part of some target library, which naturally means that they will not -exist when your target library is configured. - - This means that the configure script for a target library may not use -any test which requires doing a link. This unfortunately includes many -useful autoconf macros, such as `AC_CHECK_FUNCS'. autoconf macros -which do a compile but not a link, such as `AC_CHECK_HEADERS', may be -used. - - This is a severe restriction, but normally not a fatal one, as target -libraries can often assume the presence of other target libraries, and -thus know which functions will be available. - - As of this writing, the autoconf macro `AC_PROG_CC' does a link to -make sure that the compiler works. This may fail in a target library, -so target libraries must use a different set of macros to locate the -compiler. See the `configure.in' file in a directory like `libiberty' -or `libgloss' for an example. - - As noted in the previous section, target libraries are sometimes -built in directories which are siblings to the host tools, and are -sometimes built in a subdirectory. The `--with-target-subdir' configure -option will be passed when the library is configured. Its value will be -an empty string if the target library is a sibling. Its value will be -the name of the subdirectory if the target library is in a subdirectory. - - If the overall build is not a native build (i.e., the overall -configure used the `--target' option), then the library will be -configured with the `--with-cross-host' option. The value of this -option will be the host system of the overall build. Recall that the -host system of the library will be the target of the overall build. If -the overall build is a native build, the `--with-cross-host' option -will not be used. - - A library which can be built both standalone and as a target library -may want to install itself into different directories depending upon the -case. When built standalone, or when built native, the library should -be installed in `$(libdir)'. When built as a target library which is -not native, the library should be installed in `$(tooldir)/lib'. The -`--with-cross-host' option may be used to distinguish these cases. - - This same test of `--with-cross-host' may be used to see whether it -is OK to use link tests in the configure script. If the -`--with-cross-host' option is not used, then the library is being built -either standalone or native, and a link should work. - - -File: configure.info, Node: Make Targets in Cygnus Tree, Next: Target libiberty, Prev: Target Library Configure Scripts, Up: Cross Tools in the Cygnus Tree - -5.6.3 Make Targets in Cygnus Tree ---------------------------------- - -The top level `Makefile' in the Cygnus tree defines targets for every -known subdirectory. - - For every subdirectory DIR which holds a host library or program, -the `Makefile' target `all-DIR' will build that library or program. - - There are dependencies among host tools. For example, building gcc -requires first building gas, because the gcc build process invokes the -target assembler. These dependencies are reflected in the top level -`Makefile'. - - For every subdirectory DIR which holds a target library, the -`Makefile' target `configure-target-DIR' will configure that library. -The `Makefile' target `all-target-DIR' will build that library. - - Every `configure-target-DIR' target depends upon `all-gcc', since -gcc, the target compiler, is required to configure the tool. Every -`all-target-DIR' target depends upon the corresponding -`configure-target-DIR' target. - - There are several other targets which may be of interest for each -directory: `install-DIR', `clean-DIR', and `check-DIR'. There are also -corresponding `target' versions of these for the target libraries , -such as `install-target-DIR'. - - -File: configure.info, Node: Target libiberty, Prev: Make Targets in Cygnus Tree, Up: Cross Tools in the Cygnus Tree - -5.6.4 Target libiberty ----------------------- - -The `libiberty' subdirectory is currently a special case, in that it is -the only directory which is built both using the host compiler and -using the target compiler. - - This is because the files in `libiberty' are used when building the -host tools, and they are also incorporated into the `libstdc++' target -library as support code. - - This duality does not pose any particular difficulties. It means -that there are targets for both `all-libiberty' and -`all-target-libiberty'. - - In a native configuration, when target libraries are not built in a -subdirectory, the same objects are normally used as both the host build -and the target build. This is normally OK, since libiberty contains -only C code, and in a native configuration the results of the host -compiler and the target compiler are normally interoperable. - - Irix 6 is again an exception here, since the SGI native compiler -defaults to using the `O32' ABI, and gcc defaults to using the `N32' -ABI. On Irix 6, the target libraries are built in a subdirectory even -for a native configuration, avoiding this problem. - - There are currently no other libraries built for both the host and -the target, but there is no conceptual problem with adding more. - - -File: configure.info, Node: Canadian Cross, Next: Cygnus Configure, Prev: Cross Compilation Tools, Up: Top - -6 Canadian Cross -**************** - -It is possible to use the GNU configure and build system to build a -program which will run on a system which is different from the system on -which the tools are built. In other words, it is possible to build -programs using a cross compiler. - - This is referred to as a "Canadian Cross". - -* Menu: - -* Canadian Cross Example:: Canadian Cross Example. -* Canadian Cross Concepts:: Canadian Cross Concepts. -* Build Cross Host Tools:: Build Cross Host Tools. -* Build and Host Options:: Build and Host Options. -* CCross not in Cygnus Tree:: Canadian Cross not in Cygnus Tree. -* CCross in Cygnus Tree:: Canadian Cross in Cygnus Tree. -* Supporting Canadian Cross:: Supporting Canadian Cross. - - -File: configure.info, Node: Canadian Cross Example, Next: Canadian Cross Concepts, Up: Canadian Cross - -6.1 Canadian Cross Example -========================== - -Here is an example of a Canadian Cross. - - While running on a GNU/Linux, you can build a program which will run -on a Solaris system. You would use a GNU/Linux cross Solaris compiler -to build the program. - - Of course, you could not run the resulting program on your GNU/Linux -system. You would have to copy it over to a Solaris system before you -would run it. - - Of course, you could also simply build the programs on the Solaris -system in the first place. However, perhaps the Solaris system is not -available for some reason; perhaps you actually don't have one, but you -want to build the tools for somebody else to use. Or perhaps your -GNU/Linux system is much faster than your Solaris system. - - A Canadian Cross build is most frequently used when building -programs to run on a non-Unix system, such as DOS or Windows. It may -be simpler to configure and build on a Unix system than to support the -configuration machinery on a non-Unix system. - - -File: configure.info, Node: Canadian Cross Concepts, Next: Build Cross Host Tools, Prev: Canadian Cross Example, Up: Canadian Cross - -6.2 Canadian Cross Concepts -=========================== - -When building a Canadian Cross, there are at least two different systems -involved: the system on which the tools are being built, and the system -on which the tools will run. - - The system on which the tools are being built is called the "build" -system. - - The system on which the tools will run is called the host system. - - For example, if you are building a Solaris program on a GNU/Linux -system, as in the previous section, the build system would be GNU/Linux, -and the host system would be Solaris. - - It is, of course, possible to build a cross compiler using a Canadian -Cross (i.e., build a cross compiler using a cross compiler). In this -case, the system for which the resulting cross compiler generates code -is called the target system. (For a more complete discussion of host -and target systems, *note Host and Target::). - - An example of building a cross compiler using a Canadian Cross would -be building a Windows cross MIPS ELF compiler on a GNU/Linux system. In -this case the build system would be GNU/Linux, the host system would be -Windows, and the target system would be MIPS ELF. - - The name Canadian Cross comes from the case when the build, host, and -target systems are all different. At the time that these issues were -all being hashed out, Canada had three national political parties. - - -File: configure.info, Node: Build Cross Host Tools, Next: Build and Host Options, Prev: Canadian Cross Concepts, Up: Canadian Cross - -6.3 Build Cross Host Tools -========================== - -In order to configure a program for a Canadian Cross build, you must -first build and install the set of cross tools you will use to build the -program. - - These tools will be build cross host tools. That is, they will run -on the build system, and will produce code that runs on the host system. - - It is easy to confuse the meaning of build and host here. Always -remember that the build system is where you are doing the build, and the -host system is where the resulting program will run. Therefore, you -need a build cross host compiler. - - In general, you must have a complete cross environment in order to do -the build. This normally means a cross compiler, cross assembler, and -so forth, as well as libraries and include files for the host system. - - -File: configure.info, Node: Build and Host Options, Next: CCross not in Cygnus Tree, Prev: Build Cross Host Tools, Up: Canadian Cross - -6.4 Build and Host Options -========================== - -When you run `configure', you must use both the `--build' and `--host' -options. - - The `--build' option is used to specify the configuration name of -the build system. This can normally be the result of running the -`config.guess' shell script, and it is reasonable to use -`--build=`config.guess`'. - - The `--host' option is used to specify the configuration name of the -host system. - - As we explained earlier, `config.guess' is used to set the default -value for the `--host' option (*note Using the Host Type::). We can -now see that since `config.guess' returns the type of system on which -it is run, it really identifies the build system. Since the host -system is normally the same as the build system (i.e., people do not -normally build using a cross compiler), it is reasonable to use the -result of `config.guess' as the default for the host system when the -`--host' option is not used. - - It might seem that if the `--host' option were used without the -`--build' option that the configure script could run `config.guess' to -determine the build system, and presume a Canadian Cross if the result -of `config.guess' differed from the `--host' option. However, for -historical reasons, some configure scripts are routinely run using an -explicit `--host' option, rather than using the default from -`config.guess'. As noted earlier, it is difficult or impossible to -reliably compare configuration names (*note Using the Target Type::). -Therefore, by convention, if the `--host' option is used, but the -`--build' option is not used, then the build system defaults to the -host system. - - -File: configure.info, Node: CCross not in Cygnus Tree, Next: CCross in Cygnus Tree, Prev: Build and Host Options, Up: Canadian Cross - -6.5 Canadian Cross not in Cygnus Tree. -====================================== - -If you are not using the Cygnus tree, you must explicitly specify the -cross tools which you want to use to build the program. This is done by -setting environment variables before running the `configure' script. - - You must normally set at least the environment variables `CC', `AR', -and `RANLIB' to the cross tools which you want to use to build. - - For some programs, you must set additional cross tools as well, such -as `AS', `LD', or `NM'. - - You would set these environment variables to the build cross tools -which you are going to use. - - For example, if you are building a Solaris program on a GNU/Linux -system, and your GNU/Linux cross Solaris compiler were named -`solaris-gcc', then you would set the environment variable `CC' to -`solaris-gcc'. - - -File: configure.info, Node: CCross in Cygnus Tree, Next: Supporting Canadian Cross, Prev: CCross not in Cygnus Tree, Up: Canadian Cross - -6.6 Canadian Cross in Cygnus Tree -================================= - -This section describes configuring and building a Canadian Cross when -using the Cygnus tree. - -* Menu: - -* Standard Cygnus CCross:: Building a Normal Program. -* Cross Cygnus CCross:: Building a Cross Program. - - -File: configure.info, Node: Standard Cygnus CCross, Next: Cross Cygnus CCross, Up: CCross in Cygnus Tree - -6.6.1 Building a Normal Program -------------------------------- - -When configuring a Canadian Cross in the Cygnus tree, all the -appropriate environment variables are automatically set to `HOST-TOOL', -where HOST is the value used for the `--host' option, and TOOL is the -name of the tool (e.g., `gcc', `as', etc.). These tools must be on -your `PATH'. - - Adding a prefix of HOST will give the usual name for the build cross -host tools. To see this, consider that when these cross tools were -built, they were configured to run on the build system and to produce -code for the host system. That is, they were configured with a -`--target' option that is the same as the system which we are now -calling the host. Recall that the default name for installed cross -tools uses the target system as a prefix (*note Using the Target -Type::). Since that is the system which we are now calling the host, -HOST is the right prefix to use. - - For example, if you configure with `--build=i386-linux-gnu' and -`--host=solaris', then the Cygnus tree will automatically default to -using the compiler `solaris-gcc'. You must have previously built and -installed this compiler, probably by doing a build with no `--host' -option and with a `--target' option of `solaris'. - - -File: configure.info, Node: Cross Cygnus CCross, Prev: Standard Cygnus CCross, Up: CCross in Cygnus Tree - -6.6.2 Building a Cross Program ------------------------------- - -There are additional considerations if you want to build a cross -compiler, rather than a native compiler, in the Cygnus tree using a -Canadian Cross. - - When you build a cross compiler using the Cygnus tree, then the -target libraries will normally be built with the newly built target -compiler (*note Host and Target Libraries::). However, this will not -work when building with a Canadian Cross. This is because the newly -built target compiler will be a program which runs on the host system, -and therefore will not be able to run on the build system. - - Therefore, when building a cross compiler with the Cygnus tree, you -must first install a set of build cross target tools. These tools will -be used when building the target libraries. - - Note that this is not a requirement of a Canadian Cross in general. -For example, it would be possible to build just the host cross target -tools on the build system, to copy the tools to the host system, and to -build the target libraries on the host system. The requirement for -build cross target tools is imposed by the Cygnus tree, which expects -to be able to build both host programs and target libraries in a single -`configure'/`make' step. Because it builds these in a single step, it -expects to be able to build the target libraries on the build system, -which means that it must use a build cross target toolchain. - - For example, suppose you want to build a Windows cross MIPS ELF -compiler on a GNU/Linux system. You must have previously installed -both a GNU/Linux cross Windows compiler and a GNU/Linux cross MIPS ELF -compiler. - - In order to build the Windows (configuration name `i386-cygwin32') -cross MIPS ELF (configure name `mips-elf') compiler, you might execute -the following commands (long command lines are broken across lines with -a trailing backslash as a continuation character). - - mkdir linux-x-cygwin32 - cd linux-x-cygwin32 - SRCDIR/configure --target i386-cygwin32 --prefix=INSTALLDIR \ - --exec-prefix=INSTALLDIR/H-i386-linux - make - make install - cd .. - mkdir linux-x-mips-elf - cd linux-x-mips-elf - SRCDIR/configure --target mips-elf --prefix=INSTALLDIR \ - --exec-prefix=INSTALLDIR/H-i386-linux - make - make install - cd .. - mkdir cygwin32-x-mips-elf - cd cygwin32-x-mips-elf - SRCDIR/configure --build=i386-linux-gnu --host=i386-cygwin32 \ - --target=mips-elf --prefix=WININSTALLDIR \ - --exec-prefix=WININSTALLDIR/H-i386-cygwin32 - make - make install - - You would then copy the contents of WININSTALLDIR over to the -Windows machine, and run the resulting programs. - - -File: configure.info, Node: Supporting Canadian Cross, Prev: CCross in Cygnus Tree, Up: Canadian Cross - -6.7 Supporting Canadian Cross -============================= - -If you want to make it possible to build a program you are developing -using a Canadian Cross, you must take some care when writing your -configure and make rules. Simple cases will normally work correctly. -However, it is not hard to write configure and make tests which will -fail in a Canadian Cross. - -* Menu: - -* CCross in Configure:: Supporting Canadian Cross in Configure Scripts. -* CCross in Make:: Supporting Canadian Cross in Makefiles. - - -File: configure.info, Node: CCross in Configure, Next: CCross in Make, Up: Supporting Canadian Cross - -6.7.1 Supporting Canadian Cross in Configure Scripts ----------------------------------------------------- - -In a `configure.in' file, after calling `AC_PROG_CC', you can find out -whether this is a Canadian Cross configure by examining the shell -variable `cross_compiling'. In a Canadian Cross, which means that the -compiler is a cross compiler, `cross_compiling' will be `yes'. In a -normal configuration, `cross_compiling' will be `no'. - - You ordinarily do not need to know the type of the build system in a -configure script. However, if you do need that information, you can get -it by using the macro `AC_CANONICAL_SYSTEM', the same macro that is -used to determine the target system. This macro will set the variables -`build', `build_alias', `build_cpu', `build_vendor', and `build_os', -which correspond to the similar `target' and `host' variables, except -that they describe the build system. - - When writing tests in `configure.in', you must remember that you -want to test the host environment, not the build environment. - - Macros like `AC_CHECK_FUNCS' which use the compiler will test the -host environment. That is because the tests will be done by running the -compiler, which is actually a build cross host compiler. If the -compiler can find the function, that means that the function is present -in the host environment. - - Tests like `test -f /dev/ptyp0', on the other hand, will test the -build environment. Remember that the configure script is running on the -build system, not the host system. If your configure scripts examines -files, those files will be on the build system. Whatever you determine -based on those files may or may not be the case on the host system. - - Most autoconf macros will work correctly for a Canadian Cross. The -main exception is `AC_TRY_RUN'. This macro tries to compile and run a -test program. This will fail in a Canadian Cross, because the program -will be compiled for the host system, which means that it will not run -on the build system. - - The `AC_TRY_RUN' macro provides an optional argument to tell the -configure script what to do in a Canadian Cross. If that argument is -not present, you will get a warning when you run `autoconf': - warning: AC_TRY_RUN called without default to allow cross compiling - This tells you that the resulting `configure' script will not work -with a Canadian Cross. - - In some cases while it may better to perform a test at configure -time, it is also possible to perform the test at run time. In such a -case you can use the cross compiling argument to `AC_TRY_RUN' to tell -your program that the test could not be performed at configure time. - - There are a few other autoconf macros which will not work correctly -with a Canadian Cross: a partial list is `AC_FUNC_GETPGRP', -`AC_FUNC_SETPGRP', `AC_FUNC_SETVBUF_REVERSED', and -`AC_SYS_RESTARTABLE_SYSCALLS'. The `AC_CHECK_SIZEOF' macro is -generally not very useful with a Canadian Cross; it permits an optional -argument indicating the default size, but there is no way to know what -the correct default should be. - - -File: configure.info, Node: CCross in Make, Prev: CCross in Configure, Up: Supporting Canadian Cross - -6.7.2 Supporting Canadian Cross in Makefiles. ---------------------------------------------- - -The main Canadian Cross issue in a `Makefile' arises when you want to -use a subsidiary program to generate code or data which you will then -include in your real program. - - If you compile this subsidiary program using `$(CC)' in the usual -way, you will not be able to run it. This is because `$(CC)' will -build a program for the host system, but the program is being built on -the build system. - - You must instead use a compiler for the build system, rather than the -host system. In the Cygnus tree, this make variable `$(CC_FOR_BUILD)' -will hold a compiler for the build system. - - Note that you should not include `config.h' in a file you are -compiling with `$(CC_FOR_BUILD)'. The `configure' script will build -`config.h' with information for the host system. However, you are -compiling the file using a compiler for the build system (a native -compiler). Subsidiary programs are normally simple filters which do no -user interaction, and it is normally possible to write them in a highly -portable fashion so that the absence of `config.h' is not crucial. - - The gcc `Makefile.in' shows a complex situation in which certain -files, such as `rtl.c', must be compiled into both subsidiary programs -run on the build system and into the final program. This approach may -be of interest for advanced build system hackers. Note that the build -system compiler is rather confusingly called `HOST_CC'. - - -File: configure.info, Node: Cygnus Configure, Next: Multilibs, Prev: Canadian Cross, Up: Top - -7 Cygnus Configure -****************** - -The Cygnus configure script predates autoconf. All of its interesting -features have been incorporated into autoconf. No new programs should -be written to use the Cygnus configure script. - - However, the Cygnus configure script is still used in a few places: -at the top of the Cygnus tree and in a few target libraries in the -Cygnus tree. Until those uses have been replaced with autoconf, some -brief notes are appropriate here. This is not complete documentation, -but it should be possible to use this as a guide while examining the -scripts themselves. - -* Menu: - -* Cygnus Configure Basics:: Cygnus Configure Basics. -* Cygnus Configure in C++ Libraries:: Cygnus Configure in C++ Libraries. - - -File: configure.info, Node: Cygnus Configure Basics, Next: Cygnus Configure in C++ Libraries, Up: Cygnus Configure - -7.1 Cygnus Configure Basics -=========================== - -Cygnus configure does not use any generated files; there is no program -corresponding to `autoconf'. Instead, there is a single shell script -named `configure' which may be found at the top of the Cygnus tree. -This shell script was written by hand; it was not generated by -autoconf, and it is incorrect, and indeed harmful, to run `autoconf' in -the top level of a Cygnus tree. - - Cygnus configure works in a particular directory by examining the -file `configure.in' in that directory. That file is broken into four -separate shell scripts. - - The first is the contents of `configure.in' up to a line that starts -with `# per-host:'. This is the common part. - - The second is the rest of `configure.in' up to a line that starts -with `# per-target:'. This is the per host part. - - The third is the rest of `configure.in' up to a line that starts -with `# post-target:'. This is the per target part. - - The fourth is the remainder of `configure.in'. This is the post -target part. - - If any of these comment lines are missing, the corresponding shell -script is empty. - - Cygnus configure will first execute the common part. This must set -the shell variable `srctrigger' to the name of a source file, to -confirm that Cygnus configure is looking at the right directory. This -may set the shell variables `package_makefile_frag' and -`package_makefile_rules_frag'. - - Cygnus configure will next set the `build' and `host' shell -variables, and execute the per host part. This may set the shell -variable `host_makefile_frag'. - - Cygnus configure will next set the `target' variable, and execute -the per target part. This may set the shell variable -`target_makefile_frag'. - - Any of these scripts may set the `subdirs' shell variable. This -variable is a list of subdirectories where a `Makefile.in' file may be -found. Cygnus configure will automatically look for a `Makefile.in' -file in the current directory. The `subdirs' shell variable is not -normally used, and I believe that the only directory which uses it at -present is `newlib'. - - For each `Makefile.in', Cygnus configure will automatically create a -`Makefile' by adding definitions for `make' variables such as `host' -and `target', and automatically editing the values of `make' variables -such as `prefix' if they are present. - - Also, if any of the `makefile_frag' shell variables are set, Cygnus -configure will interpret them as file names relative to either the -working directory or the source directory, and will read the contents of -the file into the generated `Makefile'. The file contents will be read -in after the first line in `Makefile.in' which starts with `####'. - - These `Makefile' fragments are used to customize behaviour for a -particular host or target. They serve to select particular files to -compile, and to define particular preprocessor macros by providing -values for `make' variables which are then used during compilation. -Cygnus configure, unlike autoconf, normally does not do feature tests, -and normally requires support to be added manually for each new host. - - The `Makefile' fragment support is similar to the autoconf -`AC_SUBST_FILE' macro. - - After creating each `Makefile', the post target script will be run -(i.e., it may be run several times). This script may further customize -the `Makefile'. When it is run, the shell variable `Makefile' will -hold the name of the `Makefile', including the appropriate directory -component. - - Like an autoconf generated `configure' script, Cygnus configure will -create a file named `config.status' which, when run, will automatically -recreate the configuration. The `config.status' file will simply -execute the Cygnus configure script again with the appropriate -arguments. - - Any of the parts of `configure.in' may set the shell variables -`files' and `links'. Cygnus configure will set up symlinks from the -names in `links' to the files named in `files'. This is similar to the -autoconf `AC_LINK_FILES' macro. - - Finally, any of the parts of `configure.in' may set the shell -variable `configdirs' to a set of subdirectories. If it is set, Cygnus -configure will recursively run the configure process in each -subdirectory. If the subdirectory uses Cygnus configure, it will -contain a `configure.in' file but no `configure' file, in which case -Cygnus configure will invoke itself recursively. If the subdirectory -has a `configure' file, Cygnus configure assumes that it is an autoconf -generated `configure' script, and simply invokes it directly. - - -File: configure.info, Node: Cygnus Configure in C++ Libraries, Prev: Cygnus Configure Basics, Up: Cygnus Configure - -7.2 Cygnus Configure in C++ Libraries -===================================== - -The C++ library configure system, written by Per Bothner, deserves -special mention. It uses Cygnus configure, but it does feature testing -like that done by autoconf generated `configure' scripts. This -approach is used in the libraries `libio', `libstdc++', and `libg++'. - - Most of the `Makefile' information is written out by the shell -script `libio/config.shared'. Each `configure.in' file sets certain -shell variables, and then invokes `config.shared' to create two package -`Makefile' fragments. These fragments are then incorporated into the -resulting `Makefile' by the Cygnus configure script. - - The file `_G_config.h' is created in the `libio' object directory by -running the shell script `libio/gen-params'. This shell script uses -feature tests to define macros and typedefs in `_G_config.h'. - - -File: configure.info, Node: Multilibs, Next: FAQ, Prev: Cygnus Configure, Up: Top - -8 Multilibs -*********** - -For some targets gcc may have different processor requirements depending -upon command line options. An obvious example is the `-msoft-float' -option supported on several processors. This option means that the -floating point registers are not available, which means that floating -point operations must be done by calling an emulation subroutine rather -than by using machine instructions. - - For such options, gcc is often configured to compile target libraries -twice: once with `-msoft-float' and once without. When gcc compiles -target libraries more than once, the resulting libraries are called -"multilibs". - - Multilibs are not really part of the GNU configure and build system, -but we discuss them here since they require support in the `configure' -scripts and `Makefile's used for target libraries. - -* Menu: - -* Multilibs in gcc:: Multilibs in gcc. -* Multilibs in Target Libraries:: Multilibs in Target Libraries. - - -File: configure.info, Node: Multilibs in gcc, Next: Multilibs in Target Libraries, Up: Multilibs - -8.1 Multilibs in gcc -==================== - -In gcc, multilibs are defined by setting the variable -`MULTILIB_OPTIONS' in the target `Makefile' fragment. Several other -`MULTILIB' variables may also be defined there. *Note The Target -Makefile Fragment: (gcc)Target Fragment. - - If you have built gcc, you can see what multilibs it uses by running -it with the `-print-multi-lib' option. The output `.;' means that no -multilibs are used. In general, the output is a sequence of lines, one -per multilib. The first part of each line, up to the `;', is the name -of the multilib directory. The second part is a list of compiler -options separated by `@' characters. - - Multilibs are built in a tree of directories. The top of the tree, -represented by `.' in the list of multilib directories, is the default -library to use when no special compiler options are used. The -subdirectories of the tree hold versions of the library to use when -particular compiler options are used. - - -File: configure.info, Node: Multilibs in Target Libraries, Prev: Multilibs in gcc, Up: Multilibs - -8.2 Multilibs in Target Libraries -================================= - -The target libraries in the Cygnus tree are automatically built with -multilibs. That means that each library is built multiple times. - - This default is set in the top level `configure.in' file, by adding -`--enable-multilib' to the list of arguments passed to configure when -it is run for the target libraries (*note Host and Target Libraries::). - - Each target library uses the shell script `config-ml.in', written by -Doug Evans, to prepare to build target libraries. This shell script is -invoked after the `Makefile' has been created by the `configure' -script. If multilibs are not enabled, it does nothing, otherwise it -modifies the `Makefile' to support multilibs. - - The `config-ml.in' script makes one copy of the `Makefile' for each -multilib in the appropriate subdirectory. When configuring in the -source directory (which is not recommended), it will build a symlink -tree of the sources in each subdirectory. - - The `config-ml.in' script sets several variables in the various -`Makefile's. The `Makefile.in' must have definitions for these -variables already; `config-ml.in' simply changes the existing values. -The `Makefile' should use default values for these variables which will -do the right thing in the subdirectories. - -`MULTISRCTOP' - `config-ml.in' will set this to a sequence of `../' strings, where - the number of strings is the number of multilib levels in the - source tree. The default value should be the empty string. - -`MULTIBUILDTOP' - `config-ml.in' will set this to a sequence of `../' strings, where - the number of strings is number of multilib levels in the object - directory. The default value should be the empty string. This - will differ from `MULTISRCTOP' when configuring in the source tree - (which is not recommended). - -`MULTIDIRS' - In the top level `Makefile' only, `config-ml.in' will set this to - the list of multilib subdirectories. The default value should be - the empty string. - -`MULTISUBDIR' - `config-ml.in' will set this to the installed subdirectory name to - use for this subdirectory, with a leading `/'. The default value - shold be the empty string. - -`MULTIDO' -`MULTICLEAN' - In the top level `Makefile' only, `config-ml.in' will set these - variables to commands to use when doing a recursive make. These - variables should both default to the string `true', so that by - default nothing happens. - - All references to the parent of the source directory should use the -variable `MULTISRCTOP'. Instead of writing `$(srcdir)/..', you must -write `$(srcdir)/$(MULTISRCTOP)..'. - - Similarly, references to the parent of the object directory should -use the variable `MULTIBUILDTOP'. - - In the installation target, the libraries should be installed in the -subdirectory `MULTISUBDIR'. Instead of installing -`$(libdir)/libfoo.a', install `$(libdir)$(MULTISUBDIR)/libfoo.a'. - - The `config-ml.in' script also modifies the top level `Makefile' to -add `multi-do' and `multi-clean' targets which are used when building -multilibs. - - The default target of the `Makefile' should include the following -command: - @$(MULTIDO) $(FLAGS_TO_PASS) DO=all multi-do - This assumes that `$(FLAGS_TO_PASS)' is defined as a set of -variables to pass to a recursive invocation of `make'. This will build -all the multilibs. Note that the default value of `MULTIDO' is `true', -so by default this command will do nothing. It will only do something -in the top level `Makefile' if multilibs were enabled. - - The `install' target of the `Makefile' should include the following -command: - @$(MULTIDO) $(FLAGS_TO_PASS) DO=install multi-do - - In general, any operation, other than clean, which should be -performed on all the multilibs should use a `$(MULTIDO)' line, setting -the variable `DO' to the target of each recursive call to `make'. - - The `clean' targets (`clean', `mostlyclean', etc.) should use -`$(MULTICLEAN)'. For example, the `clean' target should do this: - @$(MULTICLEAN) DO=clean multi-clean - - -File: configure.info, Node: FAQ, Next: Index, Prev: Multilibs, Up: Top - -9 Frequently Asked Questions -**************************** - -Which do I run first, `autoconf' or `automake'? - Except when you first add autoconf or automake support to a - package, you shouldn't run either by hand. Instead, configure - with the `--enable-maintainer-mode' option, and let `make' take - care of it. - -`autoconf' says something about undefined macros. - This means that you have macros in your `configure.in' which are - not defined by `autoconf'. You may be using an old version of - `autoconf'; try building and installing a newer one. Make sure the - newly installled `autoconf' is first on your `PATH'. Also, see - the next question. - -My `configure' script has stuff like `CY_GNU_GETTEXT' in it. - This means that you have macros in your `configure.in' which should - be defined in your `aclocal.m4' file, but aren't. This usually - means that `aclocal' was not able to appropriate definitions of the - macros. Make sure that you have installed all the packages you - need. In particular, make sure that you have installed libtool - (this is where `AM_PROG_LIBTOOL' is defined) and gettext (this is - where `CY_GNU_GETTEXT' is defined, at least in the Cygnus version - of gettext). - -My `Makefile' has `@' characters in it. - This may mean that you tried to use an autoconf substitution in - your `Makefile.in' without adding the appropriate `AC_SUBST' call - to your `configure' script. Or it may just mean that you need to - rebuild `Makefile' in your build directory. To rebuild `Makefile' - from `Makefile.in', run the shell script `config.status' with no - arguments. If you need to force `configure' to run again, first - run `config.status --recheck'. These runs are normally done - automatically by `Makefile' targets, but if your `Makefile' has - gotten messed up you'll need to help them along. - -Why do I have to run both `config.status --recheck' and `config.status'? - Normally, you don't; they will be run automatically by `Makefile' - targets. If you do need to run them, use `config.status --recheck' - to run the `configure' script again with the same arguments as the - first time you ran it. Use `config.status' (with no arguments) to - regenerate all files (`Makefile', `config.h', etc.) based on the - results of the configure script. The two cases are separate - because it isn't always necessary to regenerate all the files - after running `config.status --recheck'. The `Makefile' targets - generated by automake will use the environment variables - `CONFIG_FILES' and `CONFIG_HEADERS' to only regenerate files as - they are needed. - -What is the Cygnus tree? - The Cygnus tree is used for various packages including gdb, the GNU - binutils, and egcs. It is also, of course, used for Cygnus - releases. It is the build system which was developed at Cygnus, - using the Cygnus configure script. It permits building many - different packages with a single configure and make. The - configure scripts in the tree are being converted to autoconf, but - the general build structure remains intact. - -Why do I have to keep rebuilding and reinstalling the tools? - I know, it's a pain. Unfortunately, there are bugs in the tools - themselves which need to be fixed, and each time that happens - everybody who uses the tools need to reinstall new versions of - them. I don't know if there is going to be a clever fix until the - tools stabilize. - -Why not just have a Cygnus tree `make' target to update the tools? - The tools unfortunately need to be installed before they can be - used. That means that they must be built using an appropriate - prefix, and it seems unwise to assume that every configuration - uses an appropriate prefix. It might be possible to make them - work in place, or it might be possible to install them in some - subdirectory; so far these approaches have not been implemented. - - -File: configure.info, Node: Index, Prev: FAQ, Up: Top - -Index -***** - -[index] -* Menu: - -* --build option: Build and Host Options. - (line 9) -* --host option: Build and Host Options. - (line 14) -* --target option: Specifying the Target. - (line 10) -* _GNU_SOURCE: Write configure.in. (line 134) -* AC_CANONICAL_HOST: Using the Host Type. (line 10) -* AC_CANONICAL_SYSTEM: Using the Target Type. - (line 6) -* AC_CONFIG_HEADER: Write configure.in. (line 66) -* AC_EXEEXT: Write configure.in. (line 86) -* AC_INIT: Write configure.in. (line 38) -* AC_OUTPUT: Write configure.in. (line 142) -* AC_PREREQ: Write configure.in. (line 42) -* AC_PROG_CC: Write configure.in. (line 103) -* AC_PROG_CXX: Write configure.in. (line 117) -* acconfig.h: Written Developer Files. - (line 27) -* acconfig.h, writing: Write acconfig.h. (line 6) -* acinclude.m4: Written Developer Files. - (line 37) -* aclocal.m4: Generated Developer Files. - (line 33) -* AM_CONFIG_HEADER: Write configure.in. (line 53) -* AM_DISABLE_SHARED: Write configure.in. (line 127) -* AM_EXEEXT: Write configure.in. (line 86) -* AM_INIT_AUTOMAKE: Write configure.in. (line 48) -* AM_MAINTAINER_MODE: Write configure.in. (line 70) -* AM_PROG_LIBTOOL: Write configure.in. (line 122) -* AM_PROG_LIBTOOL in configure: FAQ. (line 19) -* build option: Build and Host Options. - (line 9) -* building with a cross compiler: Canadian Cross. (line 6) -* canadian cross: Canadian Cross. (line 6) -* canadian cross in configure: CCross in Configure. (line 6) -* canadian cross in cygnus tree: CCross in Cygnus Tree. - (line 6) -* canadian cross in makefile: CCross in Make. (line 6) -* canadian cross, configuring: Build and Host Options. - (line 6) -* canonical system names: Configuration Names. (line 6) -* config.cache: Build Files Description. - (line 28) -* config.h: Build Files Description. - (line 23) -* config.h.in: Generated Developer Files. - (line 45) -* config.in: Generated Developer Files. - (line 45) -* config.status: Build Files Description. - (line 9) -* config.status --recheck: FAQ. (line 40) -* configuration names: Configuration Names. (line 6) -* configuration triplets: Configuration Names. (line 6) -* configure: Generated Developer Files. - (line 21) -* configure build system: Build and Host Options. - (line 9) -* configure host: Build and Host Options. - (line 14) -* configure target: Specifying the Target. - (line 10) -* configure.in: Written Developer Files. - (line 9) -* configure.in, writing: Write configure.in. (line 6) -* configuring a canadian cross: Build and Host Options. - (line 6) -* cross compiler: Cross Compilation Concepts. - (line 6) -* cross compiler, building with: Canadian Cross. (line 6) -* cross tools: Cross Compilation Tools. - (line 6) -* CY_GNU_GETTEXT in configure: FAQ. (line 19) -* cygnus configure: Cygnus Configure. (line 6) -* goals: Goals. (line 6) -* history: History. (line 6) -* host names: Configuration Names. (line 6) -* host option: Build and Host Options. - (line 14) -* host system: Host and Target. (line 6) -* host triplets: Configuration Names. (line 6) -* HOST_CC: CCross in Make. (line 27) -* libg++ configure: Cygnus Configure in C++ Libraries. - (line 6) -* libio configure: Cygnus Configure in C++ Libraries. - (line 6) -* libstdc++ configure: Cygnus Configure in C++ Libraries. - (line 6) -* Makefile: Build Files Description. - (line 18) -* Makefile, garbage characters: FAQ. (line 29) -* Makefile.am: Written Developer Files. - (line 18) -* Makefile.am, writing: Write Makefile.am. (line 6) -* Makefile.in: Generated Developer Files. - (line 26) -* multilibs: Multilibs. (line 6) -* stamp-h: Build Files Description. - (line 41) -* stamp-h.in: Generated Developer Files. - (line 54) -* system names: Configuration Names. (line 6) -* system types: Configuration Names. (line 6) -* target option: Specifying the Target. - (line 10) -* target system: Host and Target. (line 6) -* triplets: Configuration Names. (line 6) -* undefined macros: FAQ. (line 12) - - - -Tag Table: -Node: Top978 -Node: Introduction1506 -Node: Goals2588 -Node: Tools3312 -Node: History4306 -Node: Building7304 -Node: Getting Started10399 -Node: Write configure.in10912 -Node: Write Makefile.am18163 -Node: Write acconfig.h21340 -Node: Generate files22877 -Node: Getting Started Example24843 -Node: Getting Started Example 125598 -Node: Getting Started Example 227519 -Node: Getting Started Example 330514 -Node: Generate Files in Example32878 -Node: Files33968 -Node: Developer Files34579 -Node: Developer Files Picture34959 -Node: Written Developer Files36247 -Node: Generated Developer Files38799 -Node: Build Files41943 -Node: Build Files Picture42604 -Node: Build Files Description43368 -Node: Support Files45374 -Node: Configuration Names48256 -Node: Configuration Name Definition48756 -Node: Using Configuration Names51079 -Node: Cross Compilation Tools53049 -Node: Cross Compilation Concepts53740 -Node: Host and Target54708 -Node: Using the Host Type56209 -Node: Specifying the Target57558 -Node: Using the Target Type58347 -Node: Cross Tools in the Cygnus Tree61778 -Node: Host and Target Libraries62835 -Node: Target Library Configure Scripts66584 -Node: Make Targets in Cygnus Tree69676 -Node: Target libiberty71024 -Node: Canadian Cross72411 -Node: Canadian Cross Example73252 -Node: Canadian Cross Concepts74371 -Node: Build Cross Host Tools75883 -Node: Build and Host Options76835 -Node: CCross not in Cygnus Tree78621 -Node: CCross in Cygnus Tree79599 -Node: Standard Cygnus CCross80020 -Node: Cross Cygnus CCross81384 -Node: Supporting Canadian Cross84184 -Node: CCross in Configure84799 -Node: CCross in Make87967 -Node: Cygnus Configure89570 -Node: Cygnus Configure Basics90405 -Node: Cygnus Configure in C++ Libraries95083 -Node: Multilibs96090 -Node: Multilibs in gcc97135 -Node: Multilibs in Target Libraries98213 -Node: FAQ102404 -Node: Index106504 - -End Tag Table diff --git a/etc/standards.info b/etc/standards.info deleted file mode 100644 index 50ee69bdd09..00000000000 --- a/etc/standards.info +++ /dev/null @@ -1,4930 +0,0 @@ -This is standards.info, produced by makeinfo version 4.7 from -.././etc/standards.texi. - -START-INFO-DIR-ENTRY -* Standards: (standards). GNU coding standards. -END-INFO-DIR-ENTRY - - GNU Coding Standards Copyright (C) 1992, 1993, 1994, 1995, 1996, -1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. - - Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.1 or -any later version published by the Free Software Foundation; with no -Invariant Sections, with no Front-Cover Texts, and with no Back-Cover -Texts. A copy of the license is included in the section entitled "GNU -Free Documentation License". - - -File: standards.info, Node: Top, Next: Preface, Prev: (dir), Up: (dir) - -Version -******* - -Last updated February 14, 2002. - -* Menu: - -* Preface:: About the GNU Coding Standards -* Legal Issues:: Keeping Free Software Free -* Design Advice:: General Program Design -* Program Behavior:: Program Behavior for All Programs -* Writing C:: Making The Best Use of C -* Documentation:: Documenting Programs -* Managing Releases:: The Release Process -* References:: References to Non-Free Software or Documentation -* Copying This Manual:: How to Make Copies of This Manual -* Index:: - - -File: standards.info, Node: Preface, Next: Legal Issues, Prev: Top, Up: Top - -1 About the GNU Coding Standards -******************************** - -The GNU Coding Standards were written by Richard Stallman and other GNU -Project volunteers. Their purpose is to make the GNU system clean, -consistent, and easy to install. This document can also be read as a -guide to writing portable, robust and reliable programs. It focuses on -programs written in C, but many of the rules and principles are useful -even if you write in another programming language. The rules often -state reasons for writing in a certain way. - - This release of the GNU Coding Standards was last updated February -14, 2002. - - If you did not obtain this file directly from the GNU project and -recently, please check for a newer version. You can ftp the GNU Coding -Standards from any GNU FTP host in the directory `/pub/gnu/standards/'. -The GNU Coding Standards are available there in several different -formats: `standards.text', `standards.info', and `standards.dvi', as -well as the Texinfo "source" which is divided in two files: -`standards.texi' and `make-stds.texi'. The GNU Coding Standards are -also available on the GNU World Wide Web server: -`http://www.gnu.org/prep/standards_toc.html'. - - Corrections or suggestions for this document should be sent to -. If you make a suggestion, please include a -suggested new wording for it; our time is limited. We prefer a context -diff to the `standards.texi' or `make-stds.texi' files, but if you -don't have those files, please mail your suggestion anyway. - - These standards cover the minimum of what is important when writing a -GNU package. Likely, the needs for additional standards will come up. -Sometimes, you might suggest that such standards be added to this -document. If you think your standards would be generally useful, please -do suggest them. - - You should also set standards for your package on many questions not -addressed or not firmly specified here. The most important point is to -be self-consistent--try to stick to the conventions you pick, and try -to document them as much as possible. That way, your program will be -more maintainable by others. - - -File: standards.info, Node: Legal Issues, Next: Design Advice, Prev: Preface, Up: Top - -2 Keeping Free Software Free -**************************** - -This node discusses how you can make sure that GNU software avoids -legal difficulties, and other related issues. - -* Menu: - -* Reading Non-Free Code:: Referring to Proprietary Programs -* Contributions:: Accepting Contributions -* Trademarks:: How We Deal with Trademark Issues - - -File: standards.info, Node: Reading Non-Free Code, Next: Contributions, Up: Legal Issues - -2.1 Referring to Proprietary Programs -===================================== - -Don't in any circumstances refer to Unix source code for or during your -work on GNU! (Or to any other proprietary programs.) - - If you have a vague recollection of the internals of a Unix program, -this does not absolutely mean you can't write an imitation of it, but -do try to organize the imitation internally along different lines, -because this is likely to make the details of the Unix version -irrelevant and dissimilar to your results. - - For example, Unix utilities were generally optimized to minimize -memory use; if you go for speed instead, your program will be very -different. You could keep the entire input file in core and scan it -there instead of using stdio. Use a smarter algorithm discovered more -recently than the Unix program. Eliminate use of temporary files. Do -it in one pass instead of two (we did this in the assembler). - - Or, on the contrary, emphasize simplicity instead of speed. For some -applications, the speed of today's computers makes simpler algorithms -adequate. - - Or go for generality. For example, Unix programs often have static -tables or fixed-size strings, which make for arbitrary limits; use -dynamic allocation instead. Make sure your program handles NULs and -other funny characters in the input files. Add a programming language -for extensibility and write part of the program in that language. - - Or turn some parts of the program into independently usable -libraries. Or use a simple garbage collector instead of tracking -precisely when to free memory, or use a new GNU facility such as -obstacks. - - -File: standards.info, Node: Contributions, Next: Trademarks, Prev: Reading Non-Free Code, Up: Legal Issues - -2.2 Accepting Contributions -=========================== - -If the program you are working on is copyrighted by the Free Software -Foundation, then when someone else sends you a piece of code to add to -the program, we need legal papers to use it--just as we asked you to -sign papers initially. _Each_ person who makes a nontrivial -contribution to a program must sign some sort of legal papers in order -for us to have clear title to the program; the main author alone is not -enough. - - So, before adding in any contributions from other people, please tell -us, so we can arrange to get the papers. Then wait until we tell you -that we have received the signed papers, before you actually use the -contribution. - - This applies both before you release the program and afterward. If -you receive diffs to fix a bug, and they make significant changes, we -need legal papers for that change. - - This also applies to comments and documentation files. For copyright -law, comments and code are just text. Copyright applies to all kinds of -text, so we need legal papers for all kinds. - - We know it is frustrating to ask for legal papers; it's frustrating -for us as well. But if you don't wait, you are going out on a limb--for -example, what if the contributor's employer won't sign a disclaimer? -You might have to take that code out again! - - You don't need papers for changes of a few lines here or there, since -they are not significant for copyright purposes. Also, you don't need -papers if all you get from the suggestion is some ideas, not actual code -which you use. For example, if someone send you one implementation, but -you write a different implementation of the same idea, you don't need to -get papers. - - The very worst thing is if you forget to tell us about the other -contributor. We could be very embarrassed in court some day as a -result. - - We have more detailed advice for maintainers of programs; if you have -reached the stage of actually maintaining a program for GNU (whether -released or not), please ask us for a copy. - - -File: standards.info, Node: Trademarks, Prev: Contributions, Up: Legal Issues - -2.3 Trademarks -============== - -Please do not include any trademark acknowledgements in GNU software -packages or documentation. - - Trademark acknowledgements are the statements that such-and-such is a -trademark of so-and-so. The GNU Project has no objection to the basic -idea of trademarks, but these acknowledgements feel like kowtowing, so -we don't use them. There is no legal requirement for them. - - What is legally required, as regards other people's trademarks, is to -avoid using them in ways which a reader might read as naming or labeling -our own programs or activities. For example, since "Objective C" is -(or at least was) a trademark, we made sure to say that we provide a -"compiler for the Objective C language" rather than an "Objective C -compiler". The latter is meant to be short for the former, but it does -not explicitly state the relationship, so it could be misinterpreted as -using "Objective C" as a label for the compiler rather than for the -language. - - -File: standards.info, Node: Design Advice, Next: Program Behavior, Prev: Legal Issues, Up: Top - -3 General Program Design -************************ - -This node discusses some of the issues you should take into account -when designing your program. - -* Menu: - -* Source Language:: Which languges to use. -* Compatibility:: Compatibility with other implementations -* Using Extensions:: Using non-standard features -* Standard C:: Using Standard C features -* Conditional Compilation:: Compiling Code Only If A Conditional is True - - -File: standards.info, Node: Source Language, Next: Compatibility, Up: Design Advice - -3.1 Which Languages to Use -========================== - -When you want to use a language that gets compiled and runs at high -speed, the best language to use is C. Using another language is like -using a non-standard feature: it will cause trouble for users. Even if -GCC supports the other language, users may find it inconvenient to have -to install the compiler for that other language in order to build your -program. For example, if you write your program in C++, people will -have to install the GNU C++ compiler in order to compile your program. - - C has one other advantage over C++ and other compiled languages: more -people know C, so more people will find it easy to read and modify the -program if it is written in C. - - So in general it is much better to use C, rather than the comparable -alternatives. - - But there are two exceptions to that conclusion: - - * It is no problem to use another language to write a tool - specifically intended for use with that language. That is because - the only people who want to build the tool will be those who have - installed the other language anyway. - - * If an application is of interest only to a narrow part of the - community, then the question of which language it is written in - has less effect on other people, so you may as well please - yourself. - - Many programs are designed to be extensible: they include an -interpreter for a language that is higher level than C. Often much of -the program is written in that language, too. The Emacs editor -pioneered this technique. - - The standard extensibility interpreter for GNU software is GUILE, -which implements the language Scheme (an especially clean and simple -dialect of Lisp). `http://www.gnu.org/software/guile/'. We don't -reject programs written in other "scripting languages" such as Perl and -Python, but using GUILE is very important for the overall consistency of -the GNU system. - - -File: standards.info, Node: Compatibility, Next: Using Extensions, Prev: Source Language, Up: Design Advice - -3.2 Compatibility with Other Implementations -============================================ - -With occasional exceptions, utility programs and libraries for GNU -should be upward compatible with those in Berkeley Unix, and upward -compatible with Standard C if Standard C specifies their behavior, and -upward compatible with POSIX if POSIX specifies their behavior. - - When these standards conflict, it is useful to offer compatibility -modes for each of them. - - Standard C and POSIX prohibit many kinds of extensions. Feel free -to make the extensions anyway, and include a `--ansi', `--posix', or -`--compatible' option to turn them off. However, if the extension has -a significant chance of breaking any real programs or scripts, then it -is not really upward compatible. So you should try to redesign its -interface to make it upward compatible. - - Many GNU programs suppress extensions that conflict with POSIX if the -environment variable `POSIXLY_CORRECT' is defined (even if it is -defined with a null value). Please make your program recognize this -variable if appropriate. - - When a feature is used only by users (not by programs or command -files), and it is done poorly in Unix, feel free to replace it -completely with something totally different and better. (For example, -`vi' is replaced with Emacs.) But it is nice to offer a compatible -feature as well. (There is a free `vi' clone, so we offer it.) - - Additional useful features are welcome regardless of whether there -is any precedent for them. - - -File: standards.info, Node: Using Extensions, Next: Standard C, Prev: Compatibility, Up: Design Advice - -3.3 Using Non-standard Features -=============================== - -Many GNU facilities that already exist support a number of convenient -extensions over the comparable Unix facilities. Whether to use these -extensions in implementing your program is a difficult question. - - On the one hand, using the extensions can make a cleaner program. -On the other hand, people will not be able to build the program unless -the other GNU tools are available. This might cause the program to -work on fewer kinds of machines. - - With some extensions, it might be easy to provide both alternatives. -For example, you can define functions with a "keyword" `INLINE' and -define that as a macro to expand into either `inline' or nothing, -depending on the compiler. - - In general, perhaps it is best not to use the extensions if you can -straightforwardly do without them, but to use the extensions if they -are a big improvement. - - An exception to this rule are the large, established programs (such -as Emacs) which run on a great variety of systems. Using GNU -extensions in such programs would make many users unhappy, so we don't -do that. - - Another exception is for programs that are used as part of -compilation: anything that must be compiled with other compilers in -order to bootstrap the GNU compilation facilities. If these require -the GNU compiler, then no one can compile them without having them -installed already. That would be extremely troublesome in certain -cases. - - -File: standards.info, Node: Standard C, Next: Conditional Compilation, Prev: Using Extensions, Up: Design Advice - -3.4 Standard C and Pre-Standard C -================================= - -1989 Standard C is widespread enough now that it is ok to use its -features in new programs. There is one exception: do not ever use the -"trigraph" feature of Standard C. - - 1999 Standard C is not widespread yet, so please do not require its -features in programs. It is ok to use its features if they are present. - - However, it is easy to support pre-standard compilers in most -programs, so if you know how to do that, feel free. If a program you -are maintaining has such support, you should try to keep it working. - - To support pre-standard C, instead of writing function definitions in -standard prototype form, - - int - foo (int x, int y) - ... - -write the definition in pre-standard style like this, - - int - foo (x, y) - int x, y; - ... - -and use a separate declaration to specify the argument prototype: - - int foo (int, int); - - You need such a declaration anyway, in a header file, to get the -benefit of prototypes in all the files where the function is called. -And once you have the declaration, you normally lose nothing by writing -the function definition in the pre-standard style. - - This technique does not work for integer types narrower than `int'. -If you think of an argument as being of a type narrower than `int', -declare it as `int' instead. - - There are a few special cases where this technique is hard to use. -For example, if a function argument needs to hold the system type -`dev_t', you run into trouble, because `dev_t' is shorter than `int' on -some machines; but you cannot use `int' instead, because `dev_t' is -wider than `int' on some machines. There is no type you can safely use -on all machines in a non-standard definition. The only way to support -non-standard C and pass such an argument is to check the width of -`dev_t' using Autoconf and choose the argument type accordingly. This -may not be worth the trouble. - - In order to support pre-standard compilers that do not recognize -prototypes, you may want to use a preprocessor macro like this: - - /* Declare the prototype for a general external function. */ - #if defined (__STDC__) || defined (WINDOWSNT) - #define P_(proto) proto - #else - #define P_(proto) () - #endif - - -File: standards.info, Node: Conditional Compilation, Prev: Standard C, Up: Design Advice - -3.5 Conditional Compilation -=========================== - -When supporting configuration options already known when building your -program we prefer using `if (... )' over conditional compilation, as in -the former case the compiler is able to perform more extensive checking -of all possible code paths. - - For example, please write - - if (HAS_FOO) - ... - else - ... - - instead of: - - #ifdef HAS_FOO - ... - #else - ... - #endif - - A modern compiler such as GCC will generate exactly the same code in -both cases, and we have been using similar techniques with good success -in several projects. - - While this is not a silver bullet solving all portability problems, -following this policy would have saved the GCC project alone many person -hours if not days per year. - - In the case of function-like macros like `REVERSIBLE_CC_MODE' in GCC -which cannot be simply used in `if( ...)' statements, there is an easy -workaround. Simply introduce another macro `HAS_REVERSIBLE_CC_MODE' as -in the following example: - - #ifdef REVERSIBLE_CC_MODE - #define HAS_REVERSIBLE_CC_MODE 1 - #else - #define HAS_REVERSIBLE_CC_MODE 0 - #endif - - -File: standards.info, Node: Program Behavior, Next: Writing C, Prev: Design Advice, Up: Top - -4 Program Behavior for All Programs -*********************************** - -This node describes conventions for writing robust software. It also -describes general standards for error messages, the command line -interface, and how libraries should behave. - -* Menu: - -* Semantics:: Writing robust programs -* Libraries:: Library behavior -* Errors:: Formatting error messages -* User Interfaces:: Standards about interfaces generally -* Graphical Interfaces:: Standards for graphical interfaces -* Command-Line Interfaces:: Standards for command line interfaces -* Option Table:: Table of long options -* Memory Usage:: When and how to care about memory needs -* File Usage:: Which files to use, and where - - -File: standards.info, Node: Semantics, Next: Libraries, Up: Program Behavior - -4.1 Writing Robust Programs -=========================== - -Avoid arbitrary limits on the length or number of _any_ data structure, -including file names, lines, files, and symbols, by allocating all data -structures dynamically. In most Unix utilities, "long lines are -silently truncated". This is not acceptable in a GNU utility. - - Utilities reading files should not drop NUL characters, or any other -nonprinting characters _including those with codes above 0177_. The -only sensible exceptions would be utilities specifically intended for -interface to certain types of terminals or printers that can't handle -those characters. Whenever possible, try to make programs work -properly with sequences of bytes that represent multibyte characters, -using encodings such as UTF-8 and others. - - Check every system call for an error return, unless you know you -wish to ignore errors. Include the system error text (from `perror' or -equivalent) in _every_ error message resulting from a failing system -call, as well as the name of the file if any and the name of the -utility. Just "cannot open foo.c" or "stat failed" is not sufficient. - - Check every call to `malloc' or `realloc' to see if it returned -zero. Check `realloc' even if you are making the block smaller; in a -system that rounds block sizes to a power of 2, `realloc' may get a -different block if you ask for less space. - - In Unix, `realloc' can destroy the storage block if it returns zero. -GNU `realloc' does not have this bug: if it fails, the original block -is unchanged. Feel free to assume the bug is fixed. If you wish to -run your program on Unix, and wish to avoid lossage in this case, you -can use the GNU `malloc'. - - You must expect `free' to alter the contents of the block that was -freed. Anything you want to fetch from the block, you must fetch before -calling `free'. - - If `malloc' fails in a noninteractive program, make that a fatal -error. In an interactive program (one that reads commands from the -user), it is better to abort the command and return to the command -reader loop. This allows the user to kill other processes to free up -virtual memory, and then try the command again. - - Use `getopt_long' to decode arguments, unless the argument syntax -makes this unreasonable. - - When static storage is to be written in during program execution, use -explicit C code to initialize it. Reserve C initialized declarations -for data that will not be changed. - - Try to avoid low-level interfaces to obscure Unix data structures -(such as file directories, utmp, or the layout of kernel memory), since -these are less likely to work compatibly. If you need to find all the -files in a directory, use `readdir' or some other high-level interface. -These are supported compatibly by GNU. - - The preferred signal handling facilities are the BSD variant of -`signal', and the POSIX `sigaction' function; the alternative USG -`signal' interface is an inferior design. - - Nowadays, using the POSIX signal functions may be the easiest way to -make a program portable. If you use `signal', then on GNU/Linux -systems running GNU libc version 1, you should include `bsd/signal.h' -instead of `signal.h', so as to get BSD behavior. It is up to you -whether to support systems where `signal' has only the USG behavior, or -give up on them. - - In error checks that detect "impossible" conditions, just abort. -There is usually no point in printing any message. These checks -indicate the existence of bugs. Whoever wants to fix the bugs will have -to read the source code and run a debugger. So explain the problem with -comments in the source. The relevant data will be in variables, which -are easy to examine with the debugger, so there is no point moving them -elsewhere. - - Do not use a count of errors as the exit status for a program. -_That does not work_, because exit status values are limited to 8 bits -(0 through 255). A single run of the program might have 256 errors; if -you try to return 256 as the exit status, the parent process will see 0 -as the status, and it will appear that the program succeeded. - - If you make temporary files, check the `TMPDIR' environment -variable; if that variable is defined, use the specified directory -instead of `/tmp'. - - In addition, be aware that there is a possible security problem when -creating temporary files in world-writable directories. In C, you can -avoid this problem by creating temporary files in this manner: - - fd = open(filename, O_WRONLY | O_CREAT | O_EXCL, 0600); - -or by using the `mkstemps' function from libiberty. - - In bash, use `set -C' to avoid this problem. - - -File: standards.info, Node: Libraries, Next: Errors, Prev: Semantics, Up: Program Behavior - -4.2 Library Behavior -==================== - -Try to make library functions reentrant. If they need to do dynamic -storage allocation, at least try to avoid any nonreentrancy aside from -that of `malloc' itself. - - Here are certain name conventions for libraries, to avoid name -conflicts. - - Choose a name prefix for the library, more than two characters long. -All external function and variable names should start with this prefix. -In addition, there should only be one of these in any given library -member. This usually means putting each one in a separate source file. - - An exception can be made when two external symbols are always used -together, so that no reasonable program could use one without the -other; then they can both go in the same file. - - External symbols that are not documented entry points for the user -should have names beginning with `_'. The `_' should be followed by -the chosen name prefix for the library, to prevent collisions with -other libraries. These can go in the same files with user entry points -if you like. - - Static functions and variables can be used as you like and need not -fit any naming convention. - - -File: standards.info, Node: Errors, Next: User Interfaces, Prev: Libraries, Up: Program Behavior - -4.3 Formatting Error Messages -============================= - -Error messages from compilers should look like this: - - SOURCE-FILE-NAME:LINENO: MESSAGE - -If you want to mention the column number, use this format: - - SOURCE-FILE-NAME:LINENO:COLUMN: MESSAGE - -Line numbers should start from 1 at the beginning of the file, and -column numbers should start from 1 at the beginning of the line. (Both -of these conventions are chosen for compatibility.) Calculate column -numbers assuming that space and all ASCII printing characters have -equal width, and assuming tab stops every 8 columns. - - Error messages from other noninteractive programs should look like -this: - - PROGRAM:SOURCE-FILE-NAME:LINENO: MESSAGE - -when there is an appropriate source file, or like this: - - PROGRAM: MESSAGE - -when there is no relevant source file. - - If you want to mention the column number, use this format: - - PROGRAM:SOURCE-FILE-NAME:LINENO:COLUMN: MESSAGE - - In an interactive program (one that is reading commands from a -terminal), it is better not to include the program name in an error -message. The place to indicate which program is running is in the -prompt or with the screen layout. (When the same program runs with -input from a source other than a terminal, it is not interactive and -would do best to print error messages using the noninteractive style.) - - The string MESSAGE should not begin with a capital letter when it -follows a program name and/or file name. Also, it should not end with -a period. - - Error messages from interactive programs, and other messages such as -usage messages, should start with a capital letter. But they should not -end with a period. - - -File: standards.info, Node: User Interfaces, Next: Graphical Interfaces, Prev: Errors, Up: Program Behavior - -4.4 Standards for Interfaces Generally -====================================== - -Please don't make the behavior of a utility depend on the name used to -invoke it. It is useful sometimes to make a link to a utility with a -different name, and that should not change what it does. - - Instead, use a run time option or a compilation switch or both to -select among the alternate behaviors. - - Likewise, please don't make the behavior of the program depend on the -type of output device it is used with. Device independence is an -important principle of the system's design; do not compromise it merely -to save someone from typing an option now and then. (Variation in error -message syntax when using a terminal is ok, because that is a side issue -that people do not depend on.) - - If you think one behavior is most useful when the output is to a -terminal, and another is most useful when the output is a file or a -pipe, then it is usually best to make the default behavior the one that -is useful with output to a terminal, and have an option for the other -behavior. - - Compatibility requires certain programs to depend on the type of -output device. It would be disastrous if `ls' or `sh' did not do so in -the way all users expect. In some of these cases, we supplement the -program with a preferred alternate version that does not depend on the -output device type. For example, we provide a `dir' program much like -`ls' except that its default output format is always multi-column -format. - - -File: standards.info, Node: Graphical Interfaces, Next: Command-Line Interfaces, Prev: User Interfaces, Up: Program Behavior - -4.5 Standards for Graphical Interfaces -====================================== - -When you write a program that provides a graphical user interface, -please make it work with X Windows and the GTK toolkit unless the -functionality specifically requires some alternative (for example, -"displaying jpeg images while in console mode"). - - In addition, please provide a command-line interface to control the -functionality. (In many cases, the graphical user interface can be a -separate program which invokes the command-line program.) This is so -that the same jobs can be done from scripts. - - Please also consider providing a CORBA interface (for use from -GNOME), a library interface (for use from C), and perhaps a -keyboard-driven console interface (for use by users from console mode). -Once you are doing the work to provide the functionality and the -graphical interface, these won't be much extra work. - - -File: standards.info, Node: Command-Line Interfaces, Next: Option Table, Prev: Graphical Interfaces, Up: Program Behavior - -4.6 Standards for Command Line Interfaces -========================================= - -It is a good idea to follow the POSIX guidelines for the command-line -options of a program. The easiest way to do this is to use `getopt' to -parse them. Note that the GNU version of `getopt' will normally permit -options anywhere among the arguments unless the special argument `--' -is used. This is not what POSIX specifies; it is a GNU extension. - - Please define long-named options that are equivalent to the -single-letter Unix-style options. We hope to make GNU more user -friendly this way. This is easy to do with the GNU function -`getopt_long'. - - One of the advantages of long-named options is that they can be -consistent from program to program. For example, users should be able -to expect the "verbose" option of any GNU program which has one, to be -spelled precisely `--verbose'. To achieve this uniformity, look at the -table of common long-option names when you choose the option names for -your program (*note Option Table::). - - It is usually a good idea for file names given as ordinary arguments -to be input files only; any output files would be specified using -options (preferably `-o' or `--output'). Even if you allow an output -file name as an ordinary argument for compatibility, try to provide an -option as another way to specify it. This will lead to more consistency -among GNU utilities, and fewer idiosyncracies for users to remember. - - All programs should support two standard options: `--version' and -`--help'. - -`--version' - This option should direct the program to print information about - its name, version, origin and legal status, all on standard - output, and then exit successfully. Other options and arguments - should be ignored once this is seen, and the program should not - perform its normal function. - - The first line is meant to be easy for a program to parse; the - version number proper starts after the last space. In addition, - it contains the canonical name for this program, in this format: - - GNU Emacs 19.30 - - The program's name should be a constant string; _don't_ compute it - from `argv[0]'. The idea is to state the standard or canonical - name for the program, not its file name. There are other ways to - find out the precise file name where a command is found in `PATH'. - - If the program is a subsidiary part of a larger package, mention - the package name in parentheses, like this: - - emacsserver (GNU Emacs) 19.30 - - If the package has a version number which is different from this - program's version number, you can mention the package version - number just before the close-parenthesis. - - If you *need* to mention the version numbers of libraries which - are distributed separately from the package which contains this - program, you can do so by printing an additional line of version - info for each library you want to mention. Use the same format - for these lines as for the first line. - - Please do not mention all of the libraries that the program uses - "just for completeness"--that would produce a lot of unhelpful - clutter. Please mention library version numbers only if you find - in practice that they are very important to you in debugging. - - The following line, after the version number line or lines, should - be a copyright notice. If more than one copyright notice is - called for, put each on a separate line. - - Next should follow a brief statement that the program is free - software, and that users are free to copy and change it on certain - conditions. If the program is covered by the GNU GPL, say so - here. Also mention that there is no warranty, to the extent - permitted by law. - - It is ok to finish the output with a list of the major authors of - the program, as a way of giving credit. - - Here's an example of output that follows these rules: - - GNU Emacs 19.34.5 - Copyright (C) 1996 Free Software Foundation, Inc. - GNU Emacs comes with NO WARRANTY, - to the extent permitted by law. - You may redistribute copies of GNU Emacs - under the terms of the GNU General Public License. - For more information about these matters, - see the files named COPYING. - - You should adapt this to your program, of course, filling in the - proper year, copyright holder, name of program, and the references - to distribution terms, and changing the rest of the wording as - necessary. - - This copyright notice only needs to mention the most recent year in - which changes were made--there's no need to list the years for - previous versions' changes. You don't have to mention the name of - the program in these notices, if that is inconvenient, since it - appeared in the first line. - - Translations of the above lines must preserve the validity of the - copyright notices (*note Internationalization::). If the - translation's character set supports it, the `(C)' should be - replaced with the copyright symbol, as follows: - - (the official copyright symbol, which is the letter C in a circle); - - Write the word "Copyright" exactly like that, in English. Do not - translate it into another language. International treaties - recognize the English word "Copyright"; translations into other - languages do not have legal significance. - -`--help' - This option should output brief documentation for how to invoke the - program, on standard output, then exit successfully. Other - options and arguments should be ignored once this is seen, and the - program should not perform its normal function. - - Near the end of the `--help' option's output there should be a line - that says where to mail bug reports. It should have this format: - - Report bugs to MAILING-ADDRESS. - - -File: standards.info, Node: Option Table, Next: Memory Usage, Prev: Command-Line Interfaces, Up: Program Behavior - -4.7 Table of Long Options -========================= - -Here is a table of long options used by GNU programs. It is surely -incomplete, but we aim to list all the options that a new program might -want to be compatible with. If you use names not already in the table, -please send a list of them, with their -meanings, so we can update the table. - -`after-date' - `-N' in `tar'. - -`all' - `-a' in `du', `ls', `nm', `stty', `uname', and `unexpand'. - -`all-text' - `-a' in `diff'. - -`almost-all' - `-A' in `ls'. - -`append' - `-a' in `etags', `tee', `time'; `-r' in `tar'. - -`archive' - `-a' in `cp'. - -`archive-name' - `-n' in `shar'. - -`arglength' - `-l' in `m4'. - -`ascii' - `-a' in `diff'. - -`assign' - `-v' in `gawk'. - -`assume-new' - `-W' in Make. - -`assume-old' - `-o' in Make. - -`auto-check' - `-a' in `recode'. - -`auto-pager' - `-a' in `wdiff'. - -`auto-reference' - `-A' in `ptx'. - -`avoid-wraps' - `-n' in `wdiff'. - -`background' - For server programs, run in the background. - -`backward-search' - `-B' in `ctags'. - -`basename' - `-f' in `shar'. - -`batch' - Used in GDB. - -`baud' - Used in GDB. - -`before' - `-b' in `tac'. - -`binary' - `-b' in `cpio' and `diff'. - -`bits-per-code' - `-b' in `shar'. - -`block-size' - Used in `cpio' and `tar'. - -`blocks' - `-b' in `head' and `tail'. - -`break-file' - `-b' in `ptx'. - -`brief' - Used in various programs to make output shorter. - -`bytes' - `-c' in `head', `split', and `tail'. - -`c++' - `-C' in `etags'. - -`catenate' - `-A' in `tar'. - -`cd' - Used in various programs to specify the directory to use. - -`changes' - `-c' in `chgrp' and `chown'. - -`classify' - `-F' in `ls'. - -`colons' - `-c' in `recode'. - -`command' - `-c' in `su'; `-x' in GDB. - -`compare' - `-d' in `tar'. - -`compat' - Used in `gawk'. - -`compress' - `-Z' in `tar' and `shar'. - -`concatenate' - `-A' in `tar'. - -`confirmation' - `-w' in `tar'. - -`context' - Used in `diff'. - -`copyleft' - `-W copyleft' in `gawk'. - -`copyright' - `-C' in `ptx', `recode', and `wdiff'; `-W copyright' in `gawk'. - -`core' - Used in GDB. - -`count' - `-q' in `who'. - -`count-links' - `-l' in `du'. - -`create' - Used in `tar' and `cpio'. - -`cut-mark' - `-c' in `shar'. - -`cxref' - `-x' in `ctags'. - -`date' - `-d' in `touch'. - -`debug' - `-d' in Make and `m4'; `-t' in Bison. - -`define' - `-D' in `m4'. - -`defines' - `-d' in Bison and `ctags'. - -`delete' - `-D' in `tar'. - -`dereference' - `-L' in `chgrp', `chown', `cpio', `du', `ls', and `tar'. - -`dereference-args' - `-D' in `du'. - -`device' - Specify an I/O device (special file name). - -`diacritics' - `-d' in `recode'. - -`dictionary-order' - `-d' in `look'. - -`diff' - `-d' in `tar'. - -`digits' - `-n' in `csplit'. - -`directory' - Specify the directory to use, in various programs. In `ls', it - means to show directories themselves rather than their contents. - In `rm' and `ln', it means to not treat links to directories - specially. - -`discard-all' - `-x' in `strip'. - -`discard-locals' - `-X' in `strip'. - -`dry-run' - `-n' in Make. - -`ed' - `-e' in `diff'. - -`elide-empty-files' - `-z' in `csplit'. - -`end-delete' - `-x' in `wdiff'. - -`end-insert' - `-z' in `wdiff'. - -`entire-new-file' - `-N' in `diff'. - -`environment-overrides' - `-e' in Make. - -`eof' - `-e' in `xargs'. - -`epoch' - Used in GDB. - -`error-limit' - Used in `makeinfo'. - -`error-output' - `-o' in `m4'. - -`escape' - `-b' in `ls'. - -`exclude-from' - `-X' in `tar'. - -`exec' - Used in GDB. - -`exit' - `-x' in `xargs'. - -`exit-0' - `-e' in `unshar'. - -`expand-tabs' - `-t' in `diff'. - -`expression' - `-e' in `sed'. - -`extern-only' - `-g' in `nm'. - -`extract' - `-i' in `cpio'; `-x' in `tar'. - -`faces' - `-f' in `finger'. - -`fast' - `-f' in `su'. - -`fatal-warnings' - `-E' in `m4'. - -`file' - `-f' in `info', `gawk', Make, `mt', and `tar'; `-n' in `sed'; `-r' - in `touch'. - -`field-separator' - `-F' in `gawk'. - -`file-prefix' - `-b' in Bison. - -`file-type' - `-F' in `ls'. - -`files-from' - `-T' in `tar'. - -`fill-column' - Used in `makeinfo'. - -`flag-truncation' - `-F' in `ptx'. - -`fixed-output-files' - `-y' in Bison. - -`follow' - `-f' in `tail'. - -`footnote-style' - Used in `makeinfo'. - -`force' - `-f' in `cp', `ln', `mv', and `rm'. - -`force-prefix' - `-F' in `shar'. - -`foreground' - For server programs, run in the foreground; in other words, don't - do anything special to run the server in the background. - -`format' - Used in `ls', `time', and `ptx'. - -`freeze-state' - `-F' in `m4'. - -`fullname' - Used in GDB. - -`gap-size' - `-g' in `ptx'. - -`get' - `-x' in `tar'. - -`graphic' - `-i' in `ul'. - -`graphics' - `-g' in `recode'. - -`group' - `-g' in `install'. - -`gzip' - `-z' in `tar' and `shar'. - -`hashsize' - `-H' in `m4'. - -`header' - `-h' in `objdump' and `recode' - -`heading' - `-H' in `who'. - -`help' - Used to ask for brief usage information. - -`here-delimiter' - `-d' in `shar'. - -`hide-control-chars' - `-q' in `ls'. - -`html' - In `makeinfo', output HTML. - -`idle' - `-u' in `who'. - -`ifdef' - `-D' in `diff'. - -`ignore' - `-I' in `ls'; `-x' in `recode'. - -`ignore-all-space' - `-w' in `diff'. - -`ignore-backups' - `-B' in `ls'. - -`ignore-blank-lines' - `-B' in `diff'. - -`ignore-case' - `-f' in `look' and `ptx'; `-i' in `diff' and `wdiff'. - -`ignore-errors' - `-i' in Make. - -`ignore-file' - `-i' in `ptx'. - -`ignore-indentation' - `-I' in `etags'. - -`ignore-init-file' - `-f' in Oleo. - -`ignore-interrupts' - `-i' in `tee'. - -`ignore-matching-lines' - `-I' in `diff'. - -`ignore-space-change' - `-b' in `diff'. - -`ignore-zeros' - `-i' in `tar'. - -`include' - `-i' in `etags'; `-I' in `m4'. - -`include-dir' - `-I' in Make. - -`incremental' - `-G' in `tar'. - -`info' - `-i', `-l', and `-m' in Finger. - -`init-file' - In some programs, specify the name of the file to read as the - user's init file. - -`initial' - `-i' in `expand'. - -`initial-tab' - `-T' in `diff'. - -`inode' - `-i' in `ls'. - -`interactive' - `-i' in `cp', `ln', `mv', `rm'; `-e' in `m4'; `-p' in `xargs'; - `-w' in `tar'. - -`intermix-type' - `-p' in `shar'. - -`iso-8601' - Used in `date' - -`jobs' - `-j' in Make. - -`just-print' - `-n' in Make. - -`keep-going' - `-k' in Make. - -`keep-files' - `-k' in `csplit'. - -`kilobytes' - `-k' in `du' and `ls'. - -`language' - `-l' in `etags'. - -`less-mode' - `-l' in `wdiff'. - -`level-for-gzip' - `-g' in `shar'. - -`line-bytes' - `-C' in `split'. - -`lines' - Used in `split', `head', and `tail'. - -`link' - `-l' in `cpio'. - -`lint' -`lint-old' - Used in `gawk'. - -`list' - `-t' in `cpio'; `-l' in `recode'. - -`list' - `-t' in `tar'. - -`literal' - `-N' in `ls'. - -`load-average' - `-l' in Make. - -`login' - Used in `su'. - -`machine' - No listing of which programs already use this; someone should - check to see if any actually do, and tell . - -`macro-name' - `-M' in `ptx'. - -`mail' - `-m' in `hello' and `uname'. - -`make-directories' - `-d' in `cpio'. - -`makefile' - `-f' in Make. - -`mapped' - Used in GDB. - -`max-args' - `-n' in `xargs'. - -`max-chars' - `-n' in `xargs'. - -`max-lines' - `-l' in `xargs'. - -`max-load' - `-l' in Make. - -`max-procs' - `-P' in `xargs'. - -`mesg' - `-T' in `who'. - -`message' - `-T' in `who'. - -`minimal' - `-d' in `diff'. - -`mixed-uuencode' - `-M' in `shar'. - -`mode' - `-m' in `install', `mkdir', and `mkfifo'. - -`modification-time' - `-m' in `tar'. - -`multi-volume' - `-M' in `tar'. - -`name-prefix' - `-a' in Bison. - -`nesting-limit' - `-L' in `m4'. - -`net-headers' - `-a' in `shar'. - -`new-file' - `-W' in Make. - -`no-builtin-rules' - `-r' in Make. - -`no-character-count' - `-w' in `shar'. - -`no-check-existing' - `-x' in `shar'. - -`no-common' - `-3' in `wdiff'. - -`no-create' - `-c' in `touch'. - -`no-defines' - `-D' in `etags'. - -`no-deleted' - `-1' in `wdiff'. - -`no-dereference' - `-d' in `cp'. - -`no-inserted' - `-2' in `wdiff'. - -`no-keep-going' - `-S' in Make. - -`no-lines' - `-l' in Bison. - -`no-piping' - `-P' in `shar'. - -`no-prof' - `-e' in `gprof'. - -`no-regex' - `-R' in `etags'. - -`no-sort' - `-p' in `nm'. - -`no-split' - Used in `makeinfo'. - -`no-static' - `-a' in `gprof'. - -`no-time' - `-E' in `gprof'. - -`no-timestamp' - `-m' in `shar'. - -`no-validate' - Used in `makeinfo'. - -`no-wait' - Used in `emacsclient'. - -`no-warn' - Used in various programs to inhibit warnings. - -`node' - `-n' in `info'. - -`nodename' - `-n' in `uname'. - -`nonmatching' - `-f' in `cpio'. - -`nstuff' - `-n' in `objdump'. - -`null' - `-0' in `xargs'. - -`number' - `-n' in `cat'. - -`number-nonblank' - `-b' in `cat'. - -`numeric-sort' - `-n' in `nm'. - -`numeric-uid-gid' - `-n' in `cpio' and `ls'. - -`nx' - Used in GDB. - -`old-archive' - `-o' in `tar'. - -`old-file' - `-o' in Make. - -`one-file-system' - `-l' in `tar', `cp', and `du'. - -`only-file' - `-o' in `ptx'. - -`only-prof' - `-f' in `gprof'. - -`only-time' - `-F' in `gprof'. - -`options' - `-o' in `getopt', `fdlist', `fdmount', `fdmountd', and `fdumount'. - -`output' - In various programs, specify the output file name. - -`output-prefix' - `-o' in `shar'. - -`override' - `-o' in `rm'. - -`overwrite' - `-c' in `unshar'. - -`owner' - `-o' in `install'. - -`paginate' - `-l' in `diff'. - -`paragraph-indent' - Used in `makeinfo'. - -`parents' - `-p' in `mkdir' and `rmdir'. - -`pass-all' - `-p' in `ul'. - -`pass-through' - `-p' in `cpio'. - -`port' - `-P' in `finger'. - -`portability' - `-c' in `cpio' and `tar'. - -`posix' - Used in `gawk'. - -`prefix-builtins' - `-P' in `m4'. - -`prefix' - `-f' in `csplit'. - -`preserve' - Used in `tar' and `cp'. - -`preserve-environment' - `-p' in `su'. - -`preserve-modification-time' - `-m' in `cpio'. - -`preserve-order' - `-s' in `tar'. - -`preserve-permissions' - `-p' in `tar'. - -`print' - `-l' in `diff'. - -`print-chars' - `-L' in `cmp'. - -`print-data-base' - `-p' in Make. - -`print-directory' - `-w' in Make. - -`print-file-name' - `-o' in `nm'. - -`print-symdefs' - `-s' in `nm'. - -`printer' - `-p' in `wdiff'. - -`prompt' - `-p' in `ed'. - -`proxy' - Specify an HTTP proxy. - -`query-user' - `-X' in `shar'. - -`question' - `-q' in Make. - -`quiet' - Used in many programs to inhibit the usual output. *Note:* every - program accepting `--quiet' should accept `--silent' as a synonym. - -`quiet-unshar' - `-Q' in `shar' - -`quote-name' - `-Q' in `ls'. - -`rcs' - `-n' in `diff'. - -`re-interval' - Used in `gawk'. - -`read-full-blocks' - `-B' in `tar'. - -`readnow' - Used in GDB. - -`recon' - `-n' in Make. - -`record-number' - `-R' in `tar'. - -`recursive' - Used in `chgrp', `chown', `cp', `ls', `diff', and `rm'. - -`reference-limit' - Used in `makeinfo'. - -`references' - `-r' in `ptx'. - -`regex' - `-r' in `tac' and `etags'. - -`release' - `-r' in `uname'. - -`reload-state' - `-R' in `m4'. - -`relocation' - `-r' in `objdump'. - -`rename' - `-r' in `cpio'. - -`replace' - `-i' in `xargs'. - -`report-identical-files' - `-s' in `diff'. - -`reset-access-time' - `-a' in `cpio'. - -`reverse' - `-r' in `ls' and `nm'. - -`reversed-ed' - `-f' in `diff'. - -`right-side-defs' - `-R' in `ptx'. - -`same-order' - `-s' in `tar'. - -`same-permissions' - `-p' in `tar'. - -`save' - `-g' in `stty'. - -`se' - Used in GDB. - -`sentence-regexp' - `-S' in `ptx'. - -`separate-dirs' - `-S' in `du'. - -`separator' - `-s' in `tac'. - -`sequence' - Used by `recode' to chose files or pipes for sequencing passes. - -`shell' - `-s' in `su'. - -`show-all' - `-A' in `cat'. - -`show-c-function' - `-p' in `diff'. - -`show-ends' - `-E' in `cat'. - -`show-function-line' - `-F' in `diff'. - -`show-tabs' - `-T' in `cat'. - -`silent' - Used in many programs to inhibit the usual output. *Note:* every - program accepting `--silent' should accept `--quiet' as a synonym. - -`size' - `-s' in `ls'. - -`socket' - Specify a file descriptor for a network server to use for its - socket, instead of opening and binding a new socket. This - provides a way to run, in a nonpriveledged process, a server that - normally needs a reserved port number. - -`sort' - Used in `ls'. - -`source' - `-W source' in `gawk'. - -`sparse' - `-S' in `tar'. - -`speed-large-files' - `-H' in `diff'. - -`split-at' - `-E' in `unshar'. - -`split-size-limit' - `-L' in `shar'. - -`squeeze-blank' - `-s' in `cat'. - -`start-delete' - `-w' in `wdiff'. - -`start-insert' - `-y' in `wdiff'. - -`starting-file' - Used in `tar' and `diff' to specify which file within a directory - to start processing with. - -`statistics' - `-s' in `wdiff'. - -`stdin-file-list' - `-S' in `shar'. - -`stop' - `-S' in Make. - -`strict' - `-s' in `recode'. - -`strip' - `-s' in `install'. - -`strip-all' - `-s' in `strip'. - -`strip-debug' - `-S' in `strip'. - -`submitter' - `-s' in `shar'. - -`suffix' - `-S' in `cp', `ln', `mv'. - -`suffix-format' - `-b' in `csplit'. - -`sum' - `-s' in `gprof'. - -`summarize' - `-s' in `du'. - -`symbolic' - `-s' in `ln'. - -`symbols' - Used in GDB and `objdump'. - -`synclines' - `-s' in `m4'. - -`sysname' - `-s' in `uname'. - -`tabs' - `-t' in `expand' and `unexpand'. - -`tabsize' - `-T' in `ls'. - -`terminal' - `-T' in `tput' and `ul'. `-t' in `wdiff'. - -`text' - `-a' in `diff'. - -`text-files' - `-T' in `shar'. - -`time' - Used in `ls' and `touch'. - -`timeout' - Specify how long to wait before giving up on some operation. - -`to-stdout' - `-O' in `tar'. - -`total' - `-c' in `du'. - -`touch' - `-t' in Make, `ranlib', and `recode'. - -`trace' - `-t' in `m4'. - -`traditional' - `-t' in `hello'; `-W traditional' in `gawk'; `-G' in `ed', `m4', - and `ptx'. - -`tty' - Used in GDB. - -`typedefs' - `-t' in `ctags'. - -`typedefs-and-c++' - `-T' in `ctags'. - -`typeset-mode' - `-t' in `ptx'. - -`uncompress' - `-z' in `tar'. - -`unconditional' - `-u' in `cpio'. - -`undefine' - `-U' in `m4'. - -`undefined-only' - `-u' in `nm'. - -`update' - `-u' in `cp', `ctags', `mv', `tar'. - -`usage' - Used in `gawk'; same as `--help'. - -`uuencode' - `-B' in `shar'. - -`vanilla-operation' - `-V' in `shar'. - -`verbose' - Print more information about progress. Many programs support this. - -`verify' - `-W' in `tar'. - -`version' - Print the version number. - -`version-control' - `-V' in `cp', `ln', `mv'. - -`vgrind' - `-v' in `ctags'. - -`volume' - `-V' in `tar'. - -`what-if' - `-W' in Make. - -`whole-size-limit' - `-l' in `shar'. - -`width' - `-w' in `ls' and `ptx'. - -`word-regexp' - `-W' in `ptx'. - -`writable' - `-T' in `who'. - -`zeros' - `-z' in `gprof'. - - -File: standards.info, Node: Memory Usage, Next: File Usage, Prev: Option Table, Up: Program Behavior - -4.8 Memory Usage -================ - -If a program typically uses just a few meg of memory, don't bother -making any effort to reduce memory usage. For example, if it is -impractical for other reasons to operate on files more than a few meg -long, it is reasonable to read entire input files into core to operate -on them. - - However, for programs such as `cat' or `tail', that can usefully -operate on very large files, it is important to avoid using a technique -that would artificially limit the size of files it can handle. If a -program works by lines and could be applied to arbitrary user-supplied -input files, it should keep only a line in memory, because this is not -very hard and users will want to be able to operate on input files that -are bigger than will fit in core all at once. - - If your program creates complicated data structures, just make them -in core and give a fatal error if `malloc' returns zero. - - -File: standards.info, Node: File Usage, Prev: Memory Usage, Up: Program Behavior - -4.9 File Usage -============== - -Programs should be prepared to operate when `/usr' and `/etc' are -read-only file systems. Thus, if the program manages log files, lock -files, backup files, score files, or any other files which are modified -for internal purposes, these files should not be stored in `/usr' or -`/etc'. - - There are two exceptions. `/etc' is used to store system -configuration information; it is reasonable for a program to modify -files in `/etc' when its job is to update the system configuration. -Also, if the user explicitly asks to modify one file in a directory, it -is reasonable for the program to store other files in the same -directory. - - -File: standards.info, Node: Writing C, Next: Documentation, Prev: Program Behavior, Up: Top - -5 Making The Best Use of C -************************** - -This node provides advice on how best to use the C language when -writing GNU software. - -* Menu: - -* Formatting:: Formatting Your Source Code -* Comments:: Commenting Your Work -* Syntactic Conventions:: Clean Use of C Constructs -* Names:: Naming Variables, Functions, and Files -* System Portability:: Portability between different operating systems -* CPU Portability:: Supporting the range of CPU types -* System Functions:: Portability and ``standard'' library functions -* Internationalization:: Techniques for internationalization -* Mmap:: How you can safely use `mmap'. - - -File: standards.info, Node: Formatting, Next: Comments, Up: Writing C - -5.1 Formatting Your Source Code -=============================== - -It is important to put the open-brace that starts the body of a C -function in column zero, and avoid putting any other open-brace or -open-parenthesis or open-bracket in column zero. Several tools look -for open-braces in column zero to find the beginnings of C functions. -These tools will not work on code not formatted that way. - - It is also important for function definitions to start the name of -the function in column zero. This helps people to search for function -definitions, and may also help certain tools recognize them. Thus, the -proper format is this: - - static char * - concat (s1, s2) /* Name starts in column zero here */ - char *s1, *s2; - { /* Open brace in column zero here */ - ... - } - -or, if you want to use Standard C syntax, format the definition like -this: - - static char * - concat (char *s1, char *s2) - { - ... - } - - In Standard C, if the arguments don't fit nicely on one line, split -it like this: - - int - lots_of_args (int an_integer, long a_long, short a_short, - double a_double, float a_float) - ... - - The rest of this section gives our recommendations for other aspects -of C formatting style, which is also the default style of the `indent' -program in version 1.2 and newer. It corresponds to the options - - -nbad -bap -nbc -bbo -bl -bli2 -bls -ncdb -nce -cp1 -cs -di2 - -ndj -nfc1 -nfca -hnl -i2 -ip5 -lp -pcs -psl -nsc -nsob - - We don't think of these recommendations as requirements, because it -causes no problems for users if two different programs have different -formatting styles. - - But whatever style you use, please use it consistently, since a -mixture of styles within one program tends to look ugly. If you are -contributing changes to an existing program, please follow the style of -that program. - - For the body of the function, our recommended style looks like this: - - if (x < foo (y, z)) - haha = bar[4] + 5; - else - { - while (z) - { - haha += foo (z, z); - z--; - } - return ++x + bar (); - } - - We find it easier to read a program when it has spaces before the -open-parentheses and after the commas. Especially after the commas. - - When you split an expression into multiple lines, split it before an -operator, not after one. Here is the right way: - - if (foo_this_is_long && bar > win (x, y, z) - && remaining_condition) - - Try to avoid having two operators of different precedence at the same -level of indentation. For example, don't write this: - - mode = (inmode[j] == VOIDmode - || GET_MODE_SIZE (outmode[j]) > GET_MODE_SIZE (inmode[j]) - ? outmode[j] : inmode[j]); - - Instead, use extra parentheses so that the indentation shows the -nesting: - - mode = ((inmode[j] == VOIDmode - || (GET_MODE_SIZE (outmode[j]) > GET_MODE_SIZE (inmode[j]))) - ? outmode[j] : inmode[j]); - - Insert extra parentheses so that Emacs will indent the code properly. -For example, the following indentation looks nice if you do it by hand, - - v = rup->ru_utime.tv_sec*1000 + rup->ru_utime.tv_usec/1000 - + rup->ru_stime.tv_sec*1000 + rup->ru_stime.tv_usec/1000; - -but Emacs would alter it. Adding a set of parentheses produces -something that looks equally nice, and which Emacs will preserve: - - v = (rup->ru_utime.tv_sec*1000 + rup->ru_utime.tv_usec/1000 - + rup->ru_stime.tv_sec*1000 + rup->ru_stime.tv_usec/1000); - - Format do-while statements like this: - - do - { - a = foo (a); - } - while (a > 0); - - Please use formfeed characters (control-L) to divide the program into -pages at logical places (but not within a function). It does not matter -just how long the pages are, since they do not have to fit on a printed -page. The formfeeds should appear alone on lines by themselves. - - -File: standards.info, Node: Comments, Next: Syntactic Conventions, Prev: Formatting, Up: Writing C - -5.2 Commenting Your Work -======================== - -Every program should start with a comment saying briefly what it is for. -Example: `fmt - filter for simple filling of text'. - - Please write the comments in a GNU program in English, because -English is the one language that nearly all programmers in all -countries can read. If you do not write English well, please write -comments in English as well as you can, then ask other people to help -rewrite them. If you can't write comments in English, please find -someone to work with you and translate your comments into English. - - Please put a comment on each function saying what the function does, -what sorts of arguments it gets, and what the possible values of -arguments mean and are used for. It is not necessary to duplicate in -words the meaning of the C argument declarations, if a C type is being -used in its customary fashion. If there is anything nonstandard about -its use (such as an argument of type `char *' which is really the -address of the second character of a string, not the first), or any -possible values that would not work the way one would expect (such as, -that strings containing newlines are not guaranteed to work), be sure -to say so. - - Also explain the significance of the return value, if there is one. - - Please put two spaces after the end of a sentence in your comments, -so that the Emacs sentence commands will work. Also, please write -complete sentences and capitalize the first word. If a lower-case -identifier comes at the beginning of a sentence, don't capitalize it! -Changing the spelling makes it a different identifier. If you don't -like starting a sentence with a lower case letter, write the sentence -differently (e.g., "The identifier lower-case is ..."). - - The comment on a function is much clearer if you use the argument -names to speak about the argument values. The variable name itself -should be lower case, but write it in upper case when you are speaking -about the value rather than the variable itself. Thus, "the inode -number NODE_NUM" rather than "an inode". - - There is usually no purpose in restating the name of the function in -the comment before it, because the reader can see that for himself. -There might be an exception when the comment is so long that the -function itself would be off the bottom of the screen. - - There should be a comment on each static variable as well, like this: - - /* Nonzero means truncate lines in the display; - zero means continue them. */ - int truncate_lines; - - Every `#endif' should have a comment, except in the case of short -conditionals (just a few lines) that are not nested. The comment should -state the condition of the conditional that is ending, _including its -sense_. `#else' should have a comment describing the condition _and -sense_ of the code that follows. For example: - - #ifdef foo - ... - #else /* not foo */ - ... - #endif /* not foo */ - #ifdef foo - ... - #endif /* foo */ - -but, by contrast, write the comments this way for a `#ifndef': - - #ifndef foo - ... - #else /* foo */ - ... - #endif /* foo */ - #ifndef foo - ... - #endif /* not foo */ - - -File: standards.info, Node: Syntactic Conventions, Next: Names, Prev: Comments, Up: Writing C - -5.3 Clean Use of C Constructs -============================= - -Please explicitly declare the types of all objects. For example, you -should explicitly declare all arguments to functions, and you should -declare functions to return `int' rather than omitting the `int'. - - Some programmers like to use the GCC `-Wall' option, and change the -code whenever it issues a warning. If you want to do this, then do. -Other programmers prefer not to use `-Wall', because it gives warnings -for valid and legitimate code which they do not want to change. If you -want to do this, then do. The compiler should be your servant, not -your master. - - Declarations of external functions and functions to appear later in -the source file should all go in one place near the beginning of the -file (somewhere before the first function definition in the file), or -else should go in a header file. Don't put `extern' declarations inside -functions. - - It used to be common practice to use the same local variables (with -names like `tem') over and over for different values within one -function. Instead of doing this, it is better declare a separate local -variable for each distinct purpose, and give it a name which is -meaningful. This not only makes programs easier to understand, it also -facilitates optimization by good compilers. You can also move the -declaration of each local variable into the smallest scope that includes -all its uses. This makes the program even cleaner. - - Don't use local variables or parameters that shadow global -identifiers. - - Don't declare multiple variables in one declaration that spans lines. -Start a new declaration on each line, instead. For example, instead of -this: - - int foo, - bar; - -write either this: - - int foo, bar; - -or this: - - int foo; - int bar; - -(If they are global variables, each should have a comment preceding it -anyway.) - - When you have an `if'-`else' statement nested in another `if' -statement, always put braces around the `if'-`else'. Thus, never write -like this: - - if (foo) - if (bar) - win (); - else - lose (); - -always like this: - - if (foo) - { - if (bar) - win (); - else - lose (); - } - - If you have an `if' statement nested inside of an `else' statement, -either write `else if' on one line, like this, - - if (foo) - ... - else if (bar) - ... - -with its `then'-part indented like the preceding `then'-part, or write -the nested `if' within braces like this: - - if (foo) - ... - else - { - if (bar) - ... - } - - Don't declare both a structure tag and variables or typedefs in the -same declaration. Instead, declare the structure tag separately and -then use it to declare the variables or typedefs. - - Try to avoid assignments inside `if'-conditions. For example, don't -write this: - - if ((foo = (char *) malloc (sizeof *foo)) == 0) - fatal ("virtual memory exhausted"); - -instead, write this: - - foo = (char *) malloc (sizeof *foo); - if (foo == 0) - fatal ("virtual memory exhausted"); - - Don't make the program ugly to placate `lint'. Please don't insert -any casts to `void'. Zero without a cast is perfectly fine as a null -pointer constant, except when calling a varargs function. - - -File: standards.info, Node: Names, Next: System Portability, Prev: Syntactic Conventions, Up: Writing C - -5.4 Naming Variables, Functions, and Files -========================================== - -The names of global variables and functions in a program serve as -comments of a sort. So don't choose terse names--instead, look for -names that give useful information about the meaning of the variable or -function. In a GNU program, names should be English, like other -comments. - - Local variable names can be shorter, because they are used only -within one context, where (presumably) comments explain their purpose. - - Try to limit your use of abbreviations in symbol names. It is ok to -make a few abbreviations, explain what they mean, and then use them -frequently, but don't use lots of obscure abbreviations. - - Please use underscores to separate words in a name, so that the Emacs -word commands can be useful within them. Stick to lower case; reserve -upper case for macros and `enum' constants, and for name-prefixes that -follow a uniform convention. - - For example, you should use names like `ignore_space_change_flag'; -don't use names like `iCantReadThis'. - - Variables that indicate whether command-line options have been -specified should be named after the meaning of the option, not after -the option-letter. A comment should state both the exact meaning of -the option and its letter. For example, - - /* Ignore changes in horizontal whitespace (-b). */ - int ignore_space_change_flag; - - When you want to define names with constant integer values, use -`enum' rather than `#define'. GDB knows about enumeration constants. - - You might want to make sure that none of the file names would -conflict the files were loaded onto an MS-DOS file system which -shortens the names. You can use the program `doschk' to test for this. - - Some GNU programs were designed to limit themselves to file names of -14 characters or less, to avoid file name conflicts if they are read -into older System V systems. Please preserve this feature in the -existing GNU programs that have it, but there is no need to do this in -new GNU programs. `doschk' also reports file names longer than 14 -characters. - - -File: standards.info, Node: System Portability, Next: CPU Portability, Prev: Names, Up: Writing C - -5.5 Portability between System Types -==================================== - -In the Unix world, "portability" refers to porting to different Unix -versions. For a GNU program, this kind of portability is desirable, but -not paramount. - - The primary purpose of GNU software is to run on top of the GNU -kernel, compiled with the GNU C compiler, on various types of CPU. So -the kinds of portability that are absolutely necessary are quite -limited. But it is important to support Linux-based GNU systems, since -they are the form of GNU that is popular. - - Beyond that, it is good to support the other free operating systems -(*BSD), and it is nice to support other Unix-like systems if you want -to. Supporting a variety of Unix-like systems is desirable, although -not paramount. It is usually not too hard, so you may as well do it. -But you don't have to consider it an obligation, if it does turn out to -be hard. - - The easiest way to achieve portability to most Unix-like systems is -to use Autoconf. It's unlikely that your program needs to know more -information about the host platform than Autoconf can provide, simply -because most of the programs that need such knowledge have already been -written. - - Avoid using the format of semi-internal data bases (e.g., -directories) when there is a higher-level alternative (`readdir'). - - As for systems that are not like Unix, such as MSDOS, Windows, the -Macintosh, VMS, and MVS, supporting them is often a lot of work. When -that is the case, it is better to spend your time adding features that -will be useful on GNU and GNU/Linux, rather than on supporting other -incompatible systems. - - It is a good idea to define the "feature test macro" `_GNU_SOURCE' -when compiling your C files. When you compile on GNU or GNU/Linux, -this will enable the declarations of GNU library extension functions, -and that will usually give you a compiler error message if you define -the same function names in some other way in your program. (You don't -have to actually _use_ these functions, if you prefer to make the -program more portable to other systems.) - - But whether or not you use these GNU extensions, you should avoid -using their names for any other meanings. Doing so would make it hard -to move your code into other GNU programs. - - -File: standards.info, Node: CPU Portability, Next: System Functions, Prev: System Portability, Up: Writing C - -5.6 Portability between CPUs -============================ - -Even GNU systems will differ because of differences among CPU -types--for example, difference in byte ordering and alignment -requirements. It is absolutely essential to handle these differences. -However, don't make any effort to cater to the possibility that an -`int' will be less than 32 bits. We don't support 16-bit machines in -GNU. - - Similarly, don't make any effort to cater to the possibility that -`long' will be smaller than predefined types like `size_t'. For -example, the following code is ok: - - printf ("size = %lu\n", (unsigned long) sizeof array); - printf ("diff = %ld\n", (long) (pointer2 - pointer1)); - - 1989 Standard C requires this to work, and we know of only one -counterexample: 64-bit programs on Microsoft Windows IA-64. We will -leave it to those who want to port GNU programs to that environment to -figure out how to do it. - - Predefined file-size types like `off_t' are an exception: they are -longer than `long' on many platforms, so code like the above won't work -with them. One way to print an `off_t' value portably is to print its -digits yourself, one by one. - - Don't assume that the address of an `int' object is also the address -of its least-significant byte. This is false on big-endian machines. -Thus, don't make the following mistake: - - int c; - ... - while ((c = getchar()) != EOF) - write(file_descriptor, &c, 1); - - When calling functions, you need not worry about the difference -between pointers of various types, or between pointers and integers. -On most machines, there's no difference anyway. As for the few -machines where there is a difference, all of them support Standard C -prototypes, so you can use prototypes (perhaps conditionalized to be -active only in Standard C) to make the code work on those systems. - - In certain cases, it is ok to pass integer and pointer arguments -indiscriminately to the same function, and use no prototype on any -system. For example, many GNU programs have error-reporting functions -that pass their arguments along to `printf' and friends: - - error (s, a1, a2, a3) - char *s; - char *a1, *a2, *a3; - { - fprintf (stderr, "error: "); - fprintf (stderr, s, a1, a2, a3); - } - -In practice, this works on all machines, since a pointer is generally -the widest possible kind of argument; it is much simpler than any -"correct" alternative. Be sure _not_ to use a prototype for such -functions. - - If you have decided to use Standard C, then you can instead define -`error' using `stdarg.h', and pass the arguments along to `vfprintf'. - - Avoid casting pointers to integers if you can. Such casts greatly -reduce portability, and in most programs they are easy to avoid. In the -cases where casting pointers to integers is essential--such as, a Lisp -interpreter which stores type information as well as an address in one -word--you'll have to make explicit provisions to handle different word -sizes. You will also need to make provision for systems in which the -normal range of addresses you can get from `malloc' starts far away -from zero. - - -File: standards.info, Node: System Functions, Next: Internationalization, Prev: CPU Portability, Up: Writing C - -5.7 Calling System Functions -============================ - -C implementations differ substantially. Standard C reduces but does -not eliminate the incompatibilities; meanwhile, many GNU packages still -support pre-standard compilers because this is not hard to do. This -chapter gives recommendations for how to use the more-or-less standard C -library functions to avoid unnecessary loss of portability. - - * Don't use the return value of `sprintf'. It returns the number of - characters written on some systems, but not on all systems. - - * Be aware that `vfprintf' is not always available. - - * `main' should be declared to return type `int'. It should - terminate either by calling `exit' or by returning the integer - status code; make sure it cannot ever return an undefined value. - - * Don't declare system functions explicitly. - - Almost any declaration for a system function is wrong on some - system. To minimize conflicts, leave it to the system header - files to declare system functions. If the headers don't declare a - function, let it remain undeclared. - - While it may seem unclean to use a function without declaring it, - in practice this works fine for most system library functions on - the systems where this really happens; thus, the disadvantage is - only theoretical. By contrast, actual declarations have - frequently caused actual conflicts. - - * If you must declare a system function, don't specify the argument - types. Use an old-style declaration, not a Standard C prototype. - The more you specify about the function, the more likely a - conflict. - - * In particular, don't unconditionally declare `malloc' or `realloc'. - - Most GNU programs use those functions just once, in functions - conventionally named `xmalloc' and `xrealloc'. These functions - call `malloc' and `realloc', respectively, and check the results. - - Because `xmalloc' and `xrealloc' are defined in your program, you - can declare them in other files without any risk of type conflict. - - On most systems, `int' is the same length as a pointer; thus, the - calls to `malloc' and `realloc' work fine. For the few - exceptional systems (mostly 64-bit machines), you can use - *conditionalized* declarations of `malloc' and `realloc'--or put - these declarations in configuration files specific to those - systems. - - * The string functions require special treatment. Some Unix systems - have a header file `string.h'; others have `strings.h'. Neither - file name is portable. There are two things you can do: use - Autoconf to figure out which file to include, or don't include - either file. - - * If you don't include either strings file, you can't get - declarations for the string functions from the header file in the - usual way. - - That causes less of a problem than you might think. The newer - standard string functions should be avoided anyway because many - systems still don't support them. The string functions you can - use are these: - - strcpy strncpy strcat strncat - strlen strcmp strncmp - strchr strrchr - - The copy and concatenate functions work fine without a declaration - as long as you don't use their values. Using their values without - a declaration fails on systems where the width of a pointer - differs from the width of `int', and perhaps in other cases. It - is trivial to avoid using their values, so do that. - - The compare functions and `strlen' work fine without a declaration - on most systems, possibly all the ones that GNU software runs on. - You may find it necessary to declare them *conditionally* on a few - systems. - - The search functions must be declared to return `char *'. Luckily, - there is no variation in the data type they return. But there is - variation in their names. Some systems give these functions the - names `index' and `rindex'; other systems use the names `strchr' - and `strrchr'. Some systems support both pairs of names, but - neither pair works on all systems. - - You should pick a single pair of names and use it throughout your - program. (Nowadays, it is better to choose `strchr' and `strrchr' - for new programs, since those are the standard names.) Declare - both of those names as functions returning `char *'. On systems - which don't support those names, define them as macros in terms of - the other pair. For example, here is what to put at the beginning - of your file (or in a header) if you want to use the names - `strchr' and `strrchr' throughout: - - #ifndef HAVE_STRCHR - #define strchr index - #endif - #ifndef HAVE_STRRCHR - #define strrchr rindex - #endif - - char *strchr (); - char *strrchr (); - - Here we assume that `HAVE_STRCHR' and `HAVE_STRRCHR' are macros -defined in systems where the corresponding functions exist. One way to -get them properly defined is to use Autoconf. - - -File: standards.info, Node: Internationalization, Next: Mmap, Prev: System Functions, Up: Writing C - -5.8 Internationalization -======================== - -GNU has a library called GNU gettext that makes it easy to translate the -messages in a program into various languages. You should use this -library in every program. Use English for the messages as they appear -in the program, and let gettext provide the way to translate them into -other languages. - - Using GNU gettext involves putting a call to the `gettext' macro -around each string that might need translation--like this: - - printf (gettext ("Processing file `%s'...")); - -This permits GNU gettext to replace the string `"Processing file -`%s'..."' with a translated version. - - Once a program uses gettext, please make a point of writing calls to -`gettext' when you add new strings that call for translation. - - Using GNU gettext in a package involves specifying a "text domain -name" for the package. The text domain name is used to separate the -translations for this package from the translations for other packages. -Normally, the text domain name should be the same as the name of the -package--for example, `fileutils' for the GNU file utilities. - - To enable gettext to work well, avoid writing code that makes -assumptions about the structure of words or sentences. When you want -the precise text of a sentence to vary depending on the data, use two or -more alternative string constants each containing a complete sentences, -rather than inserting conditionalized words or phrases into a single -sentence framework. - - Here is an example of what not to do: - - printf ("%d file%s processed", nfiles, - nfiles != 1 ? "s" : ""); - -The problem with that example is that it assumes that plurals are made -by adding `s'. If you apply gettext to the format string, like this, - - printf (gettext ("%d file%s processed"), nfiles, - nfiles != 1 ? "s" : ""); - -the message can use different words, but it will still be forced to use -`s' for the plural. Here is a better way: - - printf ((nfiles != 1 ? "%d files processed" - : "%d file processed"), - nfiles); - -This way, you can apply gettext to each of the two strings -independently: - - printf ((nfiles != 1 ? gettext ("%d files processed") - : gettext ("%d file processed")), - nfiles); - -This can be any method of forming the plural of the word for "file", and -also handles languages that require agreement in the word for -"processed". - - A similar problem appears at the level of sentence structure with -this code: - - printf ("# Implicit rule search has%s been done.\n", - f->tried_implicit ? "" : " not"); - -Adding `gettext' calls to this code cannot give correct results for all -languages, because negation in some languages requires adding words at -more than one place in the sentence. By contrast, adding `gettext' -calls does the job straightfowardly if the code starts out like this: - - printf (f->tried_implicit - ? "# Implicit rule search has been done.\n", - : "# Implicit rule search has not been done.\n"); - - -File: standards.info, Node: Mmap, Prev: Internationalization, Up: Writing C - -5.9 Mmap -======== - -Don't assume that `mmap' either works on all files or fails for all -files. It may work on some files and fail on others. - - The proper way to use `mmap' is to try it on the specific file for -which you want to use it--and if `mmap' doesn't work, fall back on -doing the job in another way using `read' and `write'. - - The reason this precaution is needed is that the GNU kernel (the -HURD) provides a user-extensible file system, in which there can be many -different kinds of "ordinary files." Many of them support `mmap', but -some do not. It is important to make programs handle all these kinds -of files. - - -File: standards.info, Node: Documentation, Next: Managing Releases, Prev: Writing C, Up: Top - -6 Documenting Programs -********************** - -A GNU program should ideally come with full free documentation, adequate -for both reference and tutorial purposes. If the package can be -programmed or extended, the documentation should cover programming or -extending it, as well as just using it. - -* Menu: - -* GNU Manuals:: Writing proper manuals. -* Doc Strings and Manuals:: Compiling doc strings doesn't make a manual. -* Manual Structure Details:: Specific structure conventions. -* License for Manuals:: Writing the distribution terms for a manual. -* Manual Credits:: Giving credit to documentation contributors. -* Printed Manuals:: Mentioning the printed manual. -* NEWS File:: NEWS files supplement manuals. -* Change Logs:: Recording Changes -* Man Pages:: Man pages are secondary. -* Reading other Manuals:: How far you can go in learning - from other manuals. - - -File: standards.info, Node: GNU Manuals, Next: Doc Strings and Manuals, Up: Documentation - -6.1 GNU Manuals -=============== - -The preferred document format for the GNU system is the Texinfo -formatting language. Every GNU package should (ideally) have -documentation in Texinfo both for reference and for learners. Texinfo -makes it possible to produce a good quality formatted book, using TeX, -and to generate an Info file. It is also possible to generate HTML -output from Texinfo source. See the Texinfo manual, either the -hardcopy, or the on-line version available through `info' or the Emacs -Info subsystem (`C-h i'). - - Nowadays some other formats such as Docbook and Sgmltexi can be -converted automatically into Texinfo. It is ok to produce the Texinfo -documentation by conversion this way, as long as it gives good results. - - Programmers often find it most natural to structure the documentation -following the structure of the implementation, which they know. But -this structure is not necessarily good for explaining how to use the -program; it may be irrelevant and confusing for a user. - - At every level, from the sentences in a paragraph to the grouping of -topics into separate manuals, the right way to structure documentation -is according to the concepts and questions that a user will have in mind -when reading it. Sometimes this structure of ideas matches the -structure of the implementation of the software being documented--but -often they are different. Often the most important part of learning to -write good documentation is learning to notice when you are structuring -the documentation like the implementation, and think about better -alternatives. - - For example, each program in the GNU system probably ought to be -documented in one manual; but this does not mean each program should -have its own manual. That would be following the structure of the -implementation, rather than the structure that helps the user -understand. - - Instead, each manual should cover a coherent _topic_. For example, -instead of a manual for `diff' and a manual for `diff3', we have one -manual for "comparison of files" which covers both of those programs, -as well as `cmp'. By documenting these programs together, we can make -the whole subject clearer. - - The manual which discusses a program should certainly document all of -the program's command-line options and all of its commands. It should -give examples of their use. But don't organize the manual as a list of -features. Instead, organize it logically, by subtopics. Address the -questions that a user will ask when thinking about the job that the -program does. - - In general, a GNU manual should serve both as tutorial and reference. -It should be set up for convenient access to each topic through Info, -and for reading straight through (appendixes aside). A GNU manual -should give a good introduction to a beginner reading through from the -start, and should also provide all the details that hackers want. The -Bison manual is a good example of this--please take a look at it to see -what we mean. - - That is not as hard as it first sounds. Arrange each chapter as a -logical breakdown of its topic, but order the sections, and write their -text, so that reading the chapter straight through makes sense. Do -likewise when structuring the book into chapters, and when structuring a -section into paragraphs. The watchword is, _at each point, address the -most fundamental and important issue raised by the preceding text._ - - If necessary, add extra chapters at the beginning of the manual which -are purely tutorial and cover the basics of the subject. These provide -the framework for a beginner to understand the rest of the manual. The -Bison manual provides a good example of how to do this. - - To serve as a reference, a manual should have an Index that list all -the functions, variables, options, and important concepts that are part -of the program. One combined Index should do for a short manual, but -sometimes for a complex package it is better to use multiple indices. -The Texinfo manual includes advice on preparing good index entries, see -*Note Making Index Entries: (texinfo)Index Entries, and see *Note -Defining the Entries of an Index: (texinfo)Indexing Commands. - - Don't use Unix man pages as a model for how to write GNU -documentation; most of them are terse, badly structured, and give -inadequate explanation of the underlying concepts. (There are, of -course, some exceptions.) Also, Unix man pages use a particular format -which is different from what we use in GNU manuals. - - Please include an email address in the manual for where to report -bugs _in the manual_. - - Please do not use the term "pathname" that is used in Unix -documentation; use "file name" (two words) instead. We use the term -"path" only for search paths, which are lists of directory names. - - Please do not use the term "illegal" to refer to erroneous input to a -computer program. Please use "invalid" for this, and reserve the term -"illegal" for activities punishable by law. - - -File: standards.info, Node: Doc Strings and Manuals, Next: Manual Structure Details, Prev: GNU Manuals, Up: Documentation - -6.2 Doc Strings and Manuals -=========================== - -Some programming systems, such as Emacs, provide a documentation string -for each function, command or variable. You may be tempted to write a -reference manual by compiling the documentation strings and writing a -little additional text to go around them--but you must not do it. That -approach is a fundamental mistake. The text of well-written -documentation strings will be entirely wrong for a manual. - - A documentation string needs to stand alone--when it appears on the -screen, there will be no other text to introduce or explain it. -Meanwhile, it can be rather informal in style. - - The text describing a function or variable in a manual must not stand -alone; it appears in the context of a section or subsection. Other text -at the beginning of the section should explain some of the concepts, and -should often make some general points that apply to several functions or -variables. The previous descriptions of functions and variables in the -section will also have given information about the topic. A description -written to stand alone would repeat some of that information; this -redundance looks bad. Meanwhile, the informality that is acceptable in -a documentation string is totally unacceptable in a manual. - - The only good way to use documentation strings in writing a good -manual is to use them as a source of information for writing good text. - - -File: standards.info, Node: Manual Structure Details, Next: License for Manuals, Prev: Doc Strings and Manuals, Up: Documentation - -6.3 Manual Structure Details -============================ - -The title page of the manual should state the version of the programs or -packages documented in the manual. The Top node of the manual should -also contain this information. If the manual is changing more -frequently than or independent of the program, also state a version -number for the manual in both of these places. - - Each program documented in the manual should have a node named -`PROGRAM Invocation' or `Invoking PROGRAM'. This node (together with -its subnodes, if any) should describe the program's command line -arguments and how to run it (the sort of information people would look -in a man page for). Start with an `@example' containing a template for -all the options and arguments that the program uses. - - Alternatively, put a menu item in some menu whose item name fits one -of the above patterns. This identifies the node which that item points -to as the node for this purpose, regardless of the node's actual name. - - The `--usage' feature of the Info reader looks for such a node or -menu item in order to find the relevant text, so it is essential for -every Texinfo file to have one. - - If one manual describes several programs, it should have such a node -for each program described in the manual. - - -File: standards.info, Node: License for Manuals, Next: Manual Credits, Prev: Manual Structure Details, Up: Documentation - -6.4 License for Manuals -======================= - -Please use the GNU Free Documentation License for all GNU manuals that -are more than a few pages long. Likewise for a collection of short -documents--you only need one copy of the GNU FDL for the whole -collection. For a single short document, you can use a very permissive -non-copyleft license, to avoid taking up space with a long license. - - See `http://www.gnu.org/copyleft/fdl-howto.html' for more explanation -of how to employ the GFDL. - - Note that it is not obligatory to include a copy of the GNU GPL or -GNU LGPL in a manual whose license is neither the GPL nor the LGPL. It -can be a good idea to include the program's license in a large manual; -in a short manual, whose size would be increased considerably by -including the program's license, it is probably better not to include -it. - - -File: standards.info, Node: Manual Credits, Next: Printed Manuals, Prev: License for Manuals, Up: Documentation - -6.5 Manual Credits -================== - -Please credit the principal human writers of the manual as the authors, -on the title page of the manual. If a company sponsored the work, thank -the company in a suitable place in the manual, but do not cite the -company as an author. - - -File: standards.info, Node: Printed Manuals, Next: NEWS File, Prev: Manual Credits, Up: Documentation - -6.6 Printed Manuals -=================== - -The FSF publishes some GNU manuals in printed form. To encourage sales -of these manuals, the on-line versions of the manual should mention at -the very start that the printed manual is available and should point at -information for getting it--for instance, with a link to the page -`http://www.gnu.org/order/order.html'. This should not be included in -the printed manual, though, because there it is redundant. - - It is also useful to explain in the on-line forms of the manual how -the user can print out the manual from the sources. - - -File: standards.info, Node: NEWS File, Next: Change Logs, Prev: Printed Manuals, Up: Documentation - -6.7 The NEWS File -================= - -In addition to its manual, the package should have a file named `NEWS' -which contains a list of user-visible changes worth mentioning. In -each new release, add items to the front of the file and identify the -version they pertain to. Don't discard old items; leave them in the -file after the newer items. This way, a user upgrading from any -previous version can see what is new. - - If the `NEWS' file gets very long, move some of the older items into -a file named `ONEWS' and put a note at the end referring the user to -that file. - - -File: standards.info, Node: Change Logs, Next: Man Pages, Prev: NEWS File, Up: Documentation - -6.8 Change Logs -=============== - -Keep a change log to describe all the changes made to program source -files. The purpose of this is so that people investigating bugs in the -future will know about the changes that might have introduced the bug. -Often a new bug can be found by looking at what was recently changed. -More importantly, change logs can help you eliminate conceptual -inconsistencies between different parts of a program, by giving you a -history of how the conflicting concepts arose and who they came from. - -* Menu: - -* Change Log Concepts:: -* Style of Change Logs:: -* Simple Changes:: -* Conditional Changes:: -* Indicating the Part Changed:: - - -File: standards.info, Node: Change Log Concepts, Next: Style of Change Logs, Up: Change Logs - -6.8.1 Change Log Concepts -------------------------- - -You can think of the change log as a conceptual "undo list" which -explains how earlier versions were different from the current version. -People can see the current version; they don't need the change log to -tell them what is in it. What they want from a change log is a clear -explanation of how the earlier version differed. - - The change log file is normally called `ChangeLog' and covers an -entire directory. Each directory can have its own change log, or a -directory can use the change log of its parent directory-it's up to you. - - Another alternative is to record change log information with a -version control system such as RCS or CVS. This can be converted -automatically to a `ChangeLog' file using `rcs2log'; in Emacs, the -command `C-x v a' (`vc-update-change-log') does the job. - - There's no need to describe the full purpose of the changes or how -they work together. If you think that a change calls for explanation, -you're probably right. Please do explain it--but please put the -explanation in comments in the code, where people will see it whenever -they see the code. For example, "New function" is enough for the -change log when you add a function, because there should be a comment -before the function definition to explain what it does. - - However, sometimes it is useful to write one line to describe the -overall purpose of a batch of changes. - - The easiest way to add an entry to `ChangeLog' is with the Emacs -command `M-x add-change-log-entry'. An entry should have an asterisk, -the name of the changed file, and then in parentheses the name of the -changed functions, variables or whatever, followed by a colon. Then -describe the changes you made to that function or variable. - - -File: standards.info, Node: Style of Change Logs, Next: Simple Changes, Prev: Change Log Concepts, Up: Change Logs - -6.8.2 Style of Change Logs --------------------------- - -Here are some simple examples of change log entries, starting with the -header line that says who made the change and when, followed by -descriptions of specific changes. (These examples are drawn from Emacs -and GCC.) - - 1998-08-17 Richard Stallman - - * register.el (insert-register): Return nil. - (jump-to-register): Likewise. - - * sort.el (sort-subr): Return nil. - - * tex-mode.el (tex-bibtex-file, tex-file, tex-region): - Restart the tex shell if process is gone or stopped. - (tex-shell-running): New function. - - * expr.c (store_one_arg): Round size up for move_block_to_reg. - (expand_call): Round up when emitting USE insns. - * stmt.c (assign_parms): Round size up for move_block_from_reg. - - It's important to name the changed function or variable in full. -Don't abbreviate function or variable names, and don't combine them. -Subsequent maintainers will often search for a function name to find all -the change log entries that pertain to it; if you abbreviate the name, -they won't find it when they search. - - For example, some people are tempted to abbreviate groups of function -names by writing `* register.el ({insert,jump-to}-register)'; this is -not a good idea, since searching for `jump-to-register' or -`insert-register' would not find that entry. - - Separate unrelated change log entries with blank lines. When two -entries represent parts of the same change, so that they work together, -then don't put blank lines between them. Then you can omit the file -name and the asterisk when successive entries are in the same file. - - Break long lists of function names by closing continued lines with -`)', rather than `,', and opening the continuation with `(' as in this -example: - - * keyboard.c (menu_bar_items, tool_bar_items) - (Fexecute_extended_command): Deal with `keymap' property. - - -File: standards.info, Node: Simple Changes, Next: Conditional Changes, Prev: Style of Change Logs, Up: Change Logs - -6.8.3 Simple Changes --------------------- - -Certain simple kinds of changes don't need much detail in the change -log. - - When you change the calling sequence of a function in a simple -fashion, and you change all the callers of the function to use the new -calling sequence, there is no need to make individual entries for all -the callers that you changed. Just write in the entry for the function -being called, "All callers changed"--like this: - - * keyboard.c (Fcommand_execute): New arg SPECIAL. - All callers changed. - - When you change just comments or doc strings, it is enough to write -an entry for the file, without mentioning the functions. Just "Doc -fixes" is enough for the change log. - - There's no need to make change log entries for documentation files. -This is because documentation is not susceptible to bugs that are hard -to fix. Documentation does not consist of parts that must interact in a -precisely engineered fashion. To correct an error, you need not know -the history of the erroneous passage; it is enough to compare what the -documentation says with the way the program actually works. - - -File: standards.info, Node: Conditional Changes, Next: Indicating the Part Changed, Prev: Simple Changes, Up: Change Logs - -6.8.4 Conditional Changes -------------------------- - -C programs often contain compile-time `#if' conditionals. Many changes -are conditional; sometimes you add a new definition which is entirely -contained in a conditional. It is very useful to indicate in the -change log the conditions for which the change applies. - - Our convention for indicating conditional changes is to use square -brackets around the name of the condition. - - Here is a simple example, describing a change which is conditional -but does not have a function or entity name associated with it: - - * xterm.c [SOLARIS2]: Include string.h. - - Here is an entry describing a new definition which is entirely -conditional. This new definition for the macro `FRAME_WINDOW_P' is -used only when `HAVE_X_WINDOWS' is defined: - - * frame.h [HAVE_X_WINDOWS] (FRAME_WINDOW_P): Macro defined. - - Here is an entry for a change within the function `init_display', -whose definition as a whole is unconditional, but the changes themselves -are contained in a `#ifdef HAVE_LIBNCURSES' conditional: - - * dispnew.c (init_display) [HAVE_LIBNCURSES]: If X, call tgetent. - - Here is an entry for a change that takes affect only when a certain -macro is _not_ defined: - - (gethostname) [!HAVE_SOCKETS]: Replace with winsock version. - - -File: standards.info, Node: Indicating the Part Changed, Prev: Conditional Changes, Up: Change Logs - -6.8.5 Indicating the Part Changed ---------------------------------- - -Indicate the part of a function which changed by using angle brackets -enclosing an indication of what the changed part does. Here is an entry -for a change in the part of the function `sh-while-getopts' that deals -with `sh' commands: - - * progmodes/sh-script.el (sh-while-getopts) : Handle case that - user-specified option string is empty. - - -File: standards.info, Node: Man Pages, Next: Reading other Manuals, Prev: Change Logs, Up: Documentation - -6.9 Man Pages -============= - -In the GNU project, man pages are secondary. It is not necessary or -expected for every GNU program to have a man page, but some of them do. -It's your choice whether to include a man page in your program. - - When you make this decision, consider that supporting a man page -requires continual effort each time the program is changed. The time -you spend on the man page is time taken away from more useful work. - - For a simple program which changes little, updating the man page may -be a small job. Then there is little reason not to include a man page, -if you have one. - - For a large program that changes a great deal, updating a man page -may be a substantial burden. If a user offers to donate a man page, -you may find this gift costly to accept. It may be better to refuse -the man page unless the same person agrees to take full responsibility -for maintaining it--so that you can wash your hands of it entirely. If -this volunteer later ceases to do the job, then don't feel obliged to -pick it up yourself; it may be better to withdraw the man page from the -distribution until someone else agrees to update it. - - When a program changes only a little, you may feel that the -discrepancies are small enough that the man page remains useful without -updating. If so, put a prominent note near the beginning of the man -page explaining that you don't maintain it and that the Texinfo manual -is more authoritative. The note should say how to access the Texinfo -documentation. - - -File: standards.info, Node: Reading other Manuals, Prev: Man Pages, Up: Documentation - -6.10 Reading other Manuals -========================== - -There may be non-free books or documentation files that describe the -program you are documenting. - - It is ok to use these documents for reference, just as the author of -a new algebra textbook can read other books on algebra. A large portion -of any non-fiction book consists of facts, in this case facts about how -a certain program works, and these facts are necessarily the same for -everyone who writes about the subject. But be careful not to copy your -outline structure, wording, tables or examples from preexisting non-free -documentation. Copying from free documentation may be ok; please check -with the FSF about the individual case. - - -File: standards.info, Node: Managing Releases, Next: References, Prev: Documentation, Up: Top - -7 The Release Process -********************* - -Making a release is more than just bundling up your source files in a -tar file and putting it up for FTP. You should set up your software so -that it can be configured to run on a variety of systems. Your Makefile -should conform to the GNU standards described below, and your directory -layout should also conform to the standards discussed below. Doing so -makes it easy to include your package into the larger framework of all -GNU software. - -* Menu: - -* Configuration:: How Configuration Should Work -* Makefile Conventions:: Makefile Conventions -* Releases:: Making Releases - - -File: standards.info, Node: Configuration, Next: Makefile Conventions, Up: Managing Releases - -7.1 How Configuration Should Work -================================= - -Each GNU distribution should come with a shell script named -`configure'. This script is given arguments which describe the kind of -machine and system you want to compile the program for. - - The `configure' script must record the configuration options so that -they affect compilation. - - One way to do this is to make a link from a standard name such as -`config.h' to the proper configuration file for the chosen system. If -you use this technique, the distribution should _not_ contain a file -named `config.h'. This is so that people won't be able to build the -program without configuring it first. - - Another thing that `configure' can do is to edit the Makefile. If -you do this, the distribution should _not_ contain a file named -`Makefile'. Instead, it should include a file `Makefile.in' which -contains the input used for editing. Once again, this is so that people -won't be able to build the program without configuring it first. - - If `configure' does write the `Makefile', then `Makefile' should -have a target named `Makefile' which causes `configure' to be rerun, -setting up the same configuration that was set up last time. The files -that `configure' reads should be listed as dependencies of `Makefile'. - - All the files which are output from the `configure' script should -have comments at the beginning explaining that they were generated -automatically using `configure'. This is so that users won't think of -trying to edit them by hand. - - The `configure' script should write a file named `config.status' -which describes which configuration options were specified when the -program was last configured. This file should be a shell script which, -if run, will recreate the same configuration. - - The `configure' script should accept an option of the form -`--srcdir=DIRNAME' to specify the directory where sources are found (if -it is not the current directory). This makes it possible to build the -program in a separate directory, so that the actual source directory is -not modified. - - If the user does not specify `--srcdir', then `configure' should -check both `.' and `..' to see if it can find the sources. If it finds -the sources in one of these places, it should use them from there. -Otherwise, it should report that it cannot find the sources, and should -exit with nonzero status. - - Usually the easy way to support `--srcdir' is by editing a -definition of `VPATH' into the Makefile. Some rules may need to refer -explicitly to the specified source directory. To make this possible, -`configure' can add to the Makefile a variable named `srcdir' whose -value is precisely the specified directory. - - The `configure' script should also take an argument which specifies -the type of system to build the program for. This argument should look -like this: - - CPU-COMPANY-SYSTEM - - For example, a Sun 3 might be `m68k-sun-sunos4.1'. - - The `configure' script needs to be able to decode all plausible -alternatives for how to describe a machine. Thus, `sun3-sunos4.1' -would be a valid alias. For many programs, `vax-dec-ultrix' would be -an alias for `vax-dec-bsd', simply because the differences between -Ultrix and BSD are rarely noticeable, but a few programs might need to -distinguish them. - - There is a shell script called `config.sub' that you can use as a -subroutine to validate system types and canonicalize aliases. - - Other options are permitted to specify in more detail the software -or hardware present on the machine, and include or exclude optional -parts of the package: - -`--enable-FEATURE[=PARAMETER]' - Configure the package to build and install an optional user-level - facility called FEATURE. This allows users to choose which - optional features to include. Giving an optional PARAMETER of - `no' should omit FEATURE, if it is built by default. - - No `--enable' option should *ever* cause one feature to replace - another. No `--enable' option should ever substitute one useful - behavior for another useful behavior. The only proper use for - `--enable' is for questions of whether to build part of the program - or exclude it. - -`--with-PACKAGE' - The package PACKAGE will be installed, so configure this package - to work with PACKAGE. - - Possible values of PACKAGE include `gnu-as' (or `gas'), `gnu-ld', - `gnu-libc', `gdb', `x', and `x-toolkit'. - - Do not use a `--with' option to specify the file name to use to - find certain files. That is outside the scope of what `--with' - options are for. - - All `configure' scripts should accept all of these "detail" options, -whether or not they make any difference to the particular package at -hand. In particular, they should accept any option that starts with -`--with-' or `--enable-'. This is so users will be able to configure -an entire GNU source tree at once with a single set of options. - - You will note that the categories `--with-' and `--enable-' are -narrow: they *do not* provide a place for any sort of option you might -think of. That is deliberate. We want to limit the possible -configuration options in GNU software. We do not want GNU programs to -have idiosyncratic configuration options. - - Packages that perform part of the compilation process may support -cross-compilation. In such a case, the host and target machines for the -program may be different. - - The `configure' script should normally treat the specified type of -system as both the host and the target, thus producing a program which -works for the same type of machine that it runs on. - - To configure a cross-compiler, cross-assembler, or what have you, you -should specify a target different from the host, using the configure -option `--target=TARGETTYPE'. The syntax for TARGETTYPE is the same as -for the host type. So the command would look like this: - - ./configure HOSTTYPE --target=TARGETTYPE - - Programs for which cross-operation is not meaningful need not accept -the `--target' option, because configuring an entire operating system -for cross-operation is not a meaningful operation. - - Bootstrapping a cross-compiler requires compiling it on a machine -other than the host it will run on. Compilation packages accept a -configuration option `--build=BUILDTYPE' for specifying the -configuration on which you will compile them, but the configure script -should normally guess the build machine type (using `config.guess'), so -this option is probably not necessary. The host and target types -normally default from the build type, so in bootstrapping a -cross-compiler you must specify them both explicitly. - - Some programs have ways of configuring themselves automatically. If -your program is set up to do this, your `configure' script can simply -ignore most of its arguments. - - -File: standards.info, Node: Makefile Conventions, Next: Releases, Prev: Configuration, Up: Managing Releases - -7.2 Makefile Conventions -======================== - -This node describes conventions for writing the Makefiles for GNU -programs. Using Automake will help you write a Makefile that follows -these conventions. - -* Menu: - -* Makefile Basics:: General Conventions for Makefiles -* Utilities in Makefiles:: Utilities in Makefiles -* Command Variables:: Variables for Specifying Commands -* Directory Variables:: Variables for Installation Directories -* Standard Targets:: Standard Targets for Users -* Install Command Categories:: Three categories of commands in the `install' - rule: normal, pre-install and post-install. - - -File: standards.info, Node: Makefile Basics, Next: Utilities in Makefiles, Up: Makefile Conventions - -7.2.1 General Conventions for Makefiles ---------------------------------------- - -Every Makefile should contain this line: - - SHELL = /bin/sh - -to avoid trouble on systems where the `SHELL' variable might be -inherited from the environment. (This is never a problem with GNU -`make'.) - - Different `make' programs have incompatible suffix lists and -implicit rules, and this sometimes creates confusion or misbehavior. So -it is a good idea to set the suffix list explicitly using only the -suffixes you need in the particular Makefile, like this: - - .SUFFIXES: - .SUFFIXES: .c .o - -The first line clears out the suffix list, the second introduces all -suffixes which may be subject to implicit rules in this Makefile. - - Don't assume that `.' is in the path for command execution. When -you need to run programs that are a part of your package during the -make, please make sure that it uses `./' if the program is built as -part of the make or `$(srcdir)/' if the file is an unchanging part of -the source code. Without one of these prefixes, the current search -path is used. - - The distinction between `./' (the "build directory") and -`$(srcdir)/' (the "source directory") is important because users can -build in a separate directory using the `--srcdir' option to -`configure'. A rule of the form: - - foo.1 : foo.man sedscript - sed -e sedscript foo.man > foo.1 - -will fail when the build directory is not the source directory, because -`foo.man' and `sedscript' are in the source directory. - - When using GNU `make', relying on `VPATH' to find the source file -will work in the case where there is a single dependency file, since -the `make' automatic variable `$<' will represent the source file -wherever it is. (Many versions of `make' set `$<' only in implicit -rules.) A Makefile target like - - foo.o : bar.c - $(CC) -I. -I$(srcdir) $(CFLAGS) -c bar.c -o foo.o - -should instead be written as - - foo.o : bar.c - $(CC) -I. -I$(srcdir) $(CFLAGS) -c $< -o $@ - -in order to allow `VPATH' to work correctly. When the target has -multiple dependencies, using an explicit `$(srcdir)' is the easiest way -to make the rule work well. For example, the target above for `foo.1' -is best written as: - - foo.1 : foo.man sedscript - sed -e $(srcdir)/sedscript $(srcdir)/foo.man > $@ - - GNU distributions usually contain some files which are not source -files--for example, Info files, and the output from Autoconf, Automake, -Bison or Flex. Since these files normally appear in the source -directory, they should always appear in the source directory, not in the -build directory. So Makefile rules to update them should put the -updated files in the source directory. - - However, if a file does not appear in the distribution, then the -Makefile should not put it in the source directory, because building a -program in ordinary circumstances should not modify the source directory -in any way. - - Try to make the build and installation targets, at least (and all -their subtargets) work correctly with a parallel `make'. - - -File: standards.info, Node: Utilities in Makefiles, Next: Command Variables, Prev: Makefile Basics, Up: Makefile Conventions - -7.2.2 Utilities in Makefiles ----------------------------- - -Write the Makefile commands (and any shell scripts, such as -`configure') to run in `sh', not in `csh'. Don't use any special -features of `ksh' or `bash'. - - The `configure' script and the Makefile rules for building and -installation should not use any utilities directly except these: - - cat cmp cp diff echo egrep expr false grep install-info - ln ls mkdir mv pwd rm rmdir sed sleep sort tar test touch true - - The compression program `gzip' can be used in the `dist' rule. - - Stick to the generally supported options for these programs. For -example, don't use `mkdir -p', convenient as it may be, because most -systems don't support it. - - It is a good idea to avoid creating symbolic links in makefiles, -since a few systems don't support them. - - The Makefile rules for building and installation can also use -compilers and related programs, but should do so via `make' variables -so that the user can substitute alternatives. Here are some of the -programs we mean: - - ar bison cc flex install ld ldconfig lex - make makeinfo ranlib texi2dvi yacc - - Use the following `make' variables to run those programs: - - $(AR) $(BISON) $(CC) $(FLEX) $(INSTALL) $(LD) $(LDCONFIG) $(LEX) - $(MAKE) $(MAKEINFO) $(RANLIB) $(TEXI2DVI) $(YACC) - - When you use `ranlib' or `ldconfig', you should make sure nothing -bad happens if the system does not have the program in question. -Arrange to ignore an error from that command, and print a message before -the command to tell the user that failure of this command does not mean -a problem. (The Autoconf `AC_PROG_RANLIB' macro can help with this.) - - If you use symbolic links, you should implement a fallback for -systems that don't have symbolic links. - - Additional utilities that can be used via Make variables are: - - chgrp chmod chown mknod - - It is ok to use other utilities in Makefile portions (or scripts) -intended only for particular systems where you know those utilities -exist. - - -File: standards.info, Node: Command Variables, Next: Directory Variables, Prev: Utilities in Makefiles, Up: Makefile Conventions - -7.2.3 Variables for Specifying Commands ---------------------------------------- - -Makefiles should provide variables for overriding certain commands, -options, and so on. - - In particular, you should run most utility programs via variables. -Thus, if you use Bison, have a variable named `BISON' whose default -value is set with `BISON = bison', and refer to it with `$(BISON)' -whenever you need to use Bison. - - File management utilities such as `ln', `rm', `mv', and so on, need -not be referred to through variables in this way, since users don't -need to replace them with other programs. - - Each program-name variable should come with an options variable that -is used to supply options to the program. Append `FLAGS' to the -program-name variable name to get the options variable name--for -example, `BISONFLAGS'. (The names `CFLAGS' for the C compiler, -`YFLAGS' for yacc, and `LFLAGS' for lex, are exceptions to this rule, -but we keep them because they are standard.) Use `CPPFLAGS' in any -compilation command that runs the preprocessor, and use `LDFLAGS' in -any compilation command that does linking as well as in any direct use -of `ld'. - - If there are C compiler options that _must_ be used for proper -compilation of certain files, do not include them in `CFLAGS'. Users -expect to be able to specify `CFLAGS' freely themselves. Instead, -arrange to pass the necessary options to the C compiler independently -of `CFLAGS', by writing them explicitly in the compilation commands or -by defining an implicit rule, like this: - - CFLAGS = -g - ALL_CFLAGS = -I. $(CFLAGS) - .c.o: - $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $< - - Do include the `-g' option in `CFLAGS', because that is not -_required_ for proper compilation. You can consider it a default that -is only recommended. If the package is set up so that it is compiled -with GCC by default, then you might as well include `-O' in the default -value of `CFLAGS' as well. - - Put `CFLAGS' last in the compilation command, after other variables -containing compiler options, so the user can use `CFLAGS' to override -the others. - - `CFLAGS' should be used in every invocation of the C compiler, both -those which do compilation and those which do linking. - - Every Makefile should define the variable `INSTALL', which is the -basic command for installing a file into the system. - - Every Makefile should also define the variables `INSTALL_PROGRAM' -and `INSTALL_DATA'. (The default for `INSTALL_PROGRAM' should be -`$(INSTALL)'; the default for `INSTALL_DATA' should be `${INSTALL} -m -644'.) Then it should use those variables as the commands for actual -installation, for executables and nonexecutables respectively. Use -these variables as follows: - - $(INSTALL_PROGRAM) foo $(bindir)/foo - $(INSTALL_DATA) libfoo.a $(libdir)/libfoo.a - - Optionally, you may prepend the value of `DESTDIR' to the target -filename. Doing this allows the installer to create a snapshot of the -installation to be copied onto the real target filesystem later. Do not -set the value of `DESTDIR' in your Makefile, and do not include it in -any installed files. With support for `DESTDIR', the above examples -become: - - $(INSTALL_PROGRAM) foo $(DESTDIR)$(bindir)/foo - $(INSTALL_DATA) libfoo.a $(DESTDIR)$(libdir)/libfoo.a - -Always use a file name, not a directory name, as the second argument of -the installation commands. Use a separate command for each file to be -installed. - - -File: standards.info, Node: Directory Variables, Next: Standard Targets, Prev: Command Variables, Up: Makefile Conventions - -7.2.4 Variables for Installation Directories --------------------------------------------- - -Installation directories should always be named by variables, so it is -easy to install in a nonstandard place. The standard names for these -variables are described below. They are based on a standard filesystem -layout; variants of it are used in SVR4, 4.4BSD, GNU/Linux, Ultrix v4, -and other modern operating systems. - - These two variables set the root for the installation. All the other -installation directories should be subdirectories of one of these two, -and nothing should be directly installed into these two directories. - -`prefix' - A prefix used in constructing the default values of the variables - listed below. The default value of `prefix' should be - `/usr/local'. When building the complete GNU system, the prefix - will be empty and `/usr' will be a symbolic link to `/'. (If you - are using Autoconf, write it as `@prefix@'.) - - Running `make install' with a different value of `prefix' from the - one used to build the program should _not_ recompile the program. - -`exec_prefix' - A prefix used in constructing the default values of some of the - variables listed below. The default value of `exec_prefix' should - be `$(prefix)'. (If you are using Autoconf, write it as - `@exec_prefix@'.) - - Generally, `$(exec_prefix)' is used for directories that contain - machine-specific files (such as executables and subroutine - libraries), while `$(prefix)' is used directly for other - directories. - - Running `make install' with a different value of `exec_prefix' - from the one used to build the program should _not_ recompile the - program. - - Executable programs are installed in one of the following -directories. - -`bindir' - The directory for installing executable programs that users can - run. This should normally be `/usr/local/bin', but write it as - `$(exec_prefix)/bin'. (If you are using Autoconf, write it as - `@bindir@'.) - -`sbindir' - The directory for installing executable programs that can be run - from the shell, but are only generally useful to system - administrators. This should normally be `/usr/local/sbin', but - write it as `$(exec_prefix)/sbin'. (If you are using Autoconf, - write it as `@sbindir@'.) - -`libexecdir' - The directory for installing executable programs to be run by other - programs rather than by users. This directory should normally be - `/usr/local/libexec', but write it as `$(exec_prefix)/libexec'. - (If you are using Autoconf, write it as `@libexecdir@'.) - - Data files used by the program during its execution are divided into -categories in two ways. - - * Some files are normally modified by programs; others are never - normally modified (though users may edit some of these). - - * Some files are architecture-independent and can be shared by all - machines at a site; some are architecture-dependent and can be - shared only by machines of the same kind and operating system; - others may never be shared between two machines. - - This makes for six different possibilities. However, we want to -discourage the use of architecture-dependent files, aside from object -files and libraries. It is much cleaner to make other data files -architecture-independent, and it is generally not hard. - - Therefore, here are the variables Makefiles should use to specify -directories: - -`datadir' - The directory for installing read-only architecture independent - data files. This should normally be `/usr/local/share', but write - it as `$(prefix)/share'. (If you are using Autoconf, write it as - `@datadir@'.) As a special exception, see `$(infodir)' and - `$(includedir)' below. - -`sysconfdir' - The directory for installing read-only data files that pertain to a - single machine-that is to say, files for configuring a host. - Mailer and network configuration files, `/etc/passwd', and so - forth belong here. All the files in this directory should be - ordinary ASCII text files. This directory should normally be - `/usr/local/etc', but write it as `$(prefix)/etc'. (If you are - using Autoconf, write it as `@sysconfdir@'.) - - Do not install executables here in this directory (they probably - belong in `$(libexecdir)' or `$(sbindir)'). Also do not install - files that are modified in the normal course of their use (programs - whose purpose is to change the configuration of the system - excluded). Those probably belong in `$(localstatedir)'. - -`sharedstatedir' - The directory for installing architecture-independent data files - which the programs modify while they run. This should normally be - `/usr/local/com', but write it as `$(prefix)/com'. (If you are - using Autoconf, write it as `@sharedstatedir@'.) - -`localstatedir' - The directory for installing data files which the programs modify - while they run, and that pertain to one specific machine. Users - should never need to modify files in this directory to configure - the package's operation; put such configuration information in - separate files that go in `$(datadir)' or `$(sysconfdir)'. - `$(localstatedir)' should normally be `/usr/local/var', but write - it as `$(prefix)/var'. (If you are using Autoconf, write it as - `@localstatedir@'.) - -`libdir' - The directory for object files and libraries of object code. Do - not install executables here, they probably ought to go in - `$(libexecdir)' instead. The value of `libdir' should normally be - `/usr/local/lib', but write it as `$(exec_prefix)/lib'. (If you - are using Autoconf, write it as `@libdir@'.) - -`infodir' - The directory for installing the Info files for this package. By - default, it should be `/usr/local/info', but it should be written - as `$(prefix)/info'. (If you are using Autoconf, write it as - `@infodir@'.) - -`lispdir' - The directory for installing any Emacs Lisp files in this package. - By default, it should be `/usr/local/share/emacs/site-lisp', but - it should be written as `$(prefix)/share/emacs/site-lisp'. - - If you are using Autoconf, write the default as `@lispdir@'. In - order to make `@lispdir@' work, you need the following lines in - your `configure.in' file: - - lispdir='${datadir}/emacs/site-lisp' - AC_SUBST(lispdir) - -`includedir' - The directory for installing header files to be included by user - programs with the C `#include' preprocessor directive. This - should normally be `/usr/local/include', but write it as - `$(prefix)/include'. (If you are using Autoconf, write it as - `@includedir@'.) - - Most compilers other than GCC do not look for header files in - directory `/usr/local/include'. So installing the header files - this way is only useful with GCC. Sometimes this is not a problem - because some libraries are only really intended to work with GCC. - But some libraries are intended to work with other compilers. - They should install their header files in two places, one - specified by `includedir' and one specified by `oldincludedir'. - -`oldincludedir' - The directory for installing `#include' header files for use with - compilers other than GCC. This should normally be `/usr/include'. - (If you are using Autoconf, you can write it as `@oldincludedir@'.) - - The Makefile commands should check whether the value of - `oldincludedir' is empty. If it is, they should not try to use - it; they should cancel the second installation of the header files. - - A package should not replace an existing header in this directory - unless the header came from the same package. Thus, if your Foo - package provides a header file `foo.h', then it should install the - header file in the `oldincludedir' directory if either (1) there - is no `foo.h' there or (2) the `foo.h' that exists came from the - Foo package. - - To tell whether `foo.h' came from the Foo package, put a magic - string in the file--part of a comment--and `grep' for that string. - - Unix-style man pages are installed in one of the following: - -`mandir' - The top-level directory for installing the man pages (if any) for - this package. It will normally be `/usr/local/man', but you should - write it as `$(prefix)/man'. (If you are using Autoconf, write it - as `@mandir@'.) - -`man1dir' - The directory for installing section 1 man pages. Write it as - `$(mandir)/man1'. - -`man2dir' - The directory for installing section 2 man pages. Write it as - `$(mandir)/man2' - -`...' - *Don't make the primary documentation for any GNU software be a - man page. Write a manual in Texinfo instead. Man pages are just - for the sake of people running GNU software on Unix, which is a - secondary application only.* - -`manext' - The file name extension for the installed man page. This should - contain a period followed by the appropriate digit; it should - normally be `.1'. - -`man1ext' - The file name extension for installed section 1 man pages. - -`man2ext' - The file name extension for installed section 2 man pages. - -`...' - Use these names instead of `manext' if the package needs to - install man pages in more than one section of the manual. - - And finally, you should set the following variable: - -`srcdir' - The directory for the sources being compiled. The value of this - variable is normally inserted by the `configure' shell script. - (If you are using Autconf, use `srcdir = @srcdir@'.) - - For example: - - # Common prefix for installation directories. - # NOTE: This directory must exist when you start the install. - prefix = /usr/local - exec_prefix = $(prefix) - # Where to put the executable for the command `gcc'. - bindir = $(exec_prefix)/bin - # Where to put the directories used by the compiler. - libexecdir = $(exec_prefix)/libexec - # Where to put the Info files. - infodir = $(prefix)/info - - If your program installs a large number of files into one of the -standard user-specified directories, it might be useful to group them -into a subdirectory particular to that program. If you do this, you -should write the `install' rule to create these subdirectories. - - Do not expect the user to include the subdirectory name in the value -of any of the variables listed above. The idea of having a uniform set -of variable names for installation directories is to enable the user to -specify the exact same values for several different GNU packages. In -order for this to be useful, all the packages must be designed so that -they will work sensibly when the user does so. - - -File: standards.info, Node: Standard Targets, Next: Install Command Categories, Prev: Directory Variables, Up: Makefile Conventions - -7.2.5 Standard Targets for Users --------------------------------- - -All GNU programs should have the following targets in their Makefiles: - -`all' - Compile the entire program. This should be the default target. - This target need not rebuild any documentation files; Info files - should normally be included in the distribution, and DVI files - should be made only when explicitly asked for. - - By default, the Make rules should compile and link with `-g', so - that executable programs have debugging symbols. Users who don't - mind being helpless can strip the executables later if they wish. - -`install' - Compile the program and copy the executables, libraries, and so on - to the file names where they should reside for actual use. If - there is a simple test to verify that a program is properly - installed, this target should run that test. - - Do not strip executables when installing them. Devil-may-care - users can use the `install-strip' target to do that. - - If possible, write the `install' target rule so that it does not - modify anything in the directory where the program was built, - provided `make all' has just been done. This is convenient for - building the program under one user name and installing it under - another. - - The commands should create all the directories in which files are - to be installed, if they don't already exist. This includes the - directories specified as the values of the variables `prefix' and - `exec_prefix', as well as all subdirectories that are needed. One - way to do this is by means of an `installdirs' target as described - below. - - Use `-' before any command for installing a man page, so that - `make' will ignore any errors. This is in case there are systems - that don't have the Unix man page documentation system installed. - - The way to install Info files is to copy them into `$(infodir)' - with `$(INSTALL_DATA)' (*note Command Variables::), and then run - the `install-info' program if it is present. `install-info' is a - program that edits the Info `dir' file to add or update the menu - entry for the given Info file; it is part of the Texinfo package. - Here is a sample rule to install an Info file: - - $(DESTDIR)$(infodir)/foo.info: foo.info - $(POST_INSTALL) - # There may be a newer info file in . than in srcdir. - -if test -f foo.info; then d=.; \ - else d=$(srcdir); fi; \ - $(INSTALL_DATA) $$d/foo.info $(DESTDIR)$@; \ - # Run install-info only if it exists. - # Use `if' instead of just prepending `-' to the - # line so we notice real errors from install-info. - # We use `$(SHELL) -c' because some shells do not - # fail gracefully when there is an unknown command. - if $(SHELL) -c 'install-info --version' \ - >/dev/null 2>&1; then \ - install-info --dir-file=$(DESTDIR)$(infodir)/dir \ - $(DESTDIR)$(infodir)/foo.info; \ - else true; fi - - When writing the `install' target, you must classify all the - commands into three categories: normal ones, "pre-installation" - commands and "post-installation" commands. *Note Install Command - Categories::. - -`uninstall' - Delete all the installed files--the copies that the `install' - target creates. - - This rule should not modify the directories where compilation is - done, only the directories where files are installed. - - The uninstallation commands are divided into three categories, - just like the installation commands. *Note Install Command - Categories::. - -`install-strip' - Like `install', but strip the executable files while installing - them. In simple cases, this target can use the `install' target in - a simple way: - - install-strip: - $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' \ - install - - But if the package installs scripts as well as real executables, - the `install-strip' target can't just refer to the `install' - target; it has to strip the executables but not the scripts. - - `install-strip' should not strip the executables in the build - directory which are being copied for installation. It should only - strip the copies that are installed. - - Normally we do not recommend stripping an executable unless you - are sure the program has no bugs. However, it can be reasonable - to install a stripped executable for actual execution while saving - the unstripped executable elsewhere in case there is a bug. - -`clean' - Delete all files from the current directory that are normally - created by building the program. Don't delete the files that - record the configuration. Also preserve files that could be made - by building, but normally aren't because the distribution comes - with them. - - Delete `.dvi' files here if they are not part of the distribution. - -`distclean' - Delete all files from the current directory that are created by - configuring or building the program. If you have unpacked the - source and built the program without creating any other files, - `make distclean' should leave only the files that were in the - distribution. - -`mostlyclean' - Like `clean', but may refrain from deleting a few files that people - normally don't want to recompile. For example, the `mostlyclean' - target for GCC does not delete `libgcc.a', because recompiling it - is rarely necessary and takes a lot of time. - -`maintainer-clean' - Delete almost everything from the current directory that can be - reconstructed with this Makefile. This typically includes - everything deleted by `distclean', plus more: C source files - produced by Bison, tags tables, Info files, and so on. - - The reason we say "almost everything" is that running the command - `make maintainer-clean' should not delete `configure' even if - `configure' can be remade using a rule in the Makefile. More - generally, `make maintainer-clean' should not delete anything that - needs to exist in order to run `configure' and then begin to build - the program. This is the only exception; `maintainer-clean' should - delete everything else that can be rebuilt. - - The `maintainer-clean' target is intended to be used by a - maintainer of the package, not by ordinary users. You may need - special tools to reconstruct some of the files that `make - maintainer-clean' deletes. Since these files are normally - included in the distribution, we don't take care to make them easy - to reconstruct. If you find you need to unpack the full - distribution again, don't blame us. - - To help make users aware of this, the commands for the special - `maintainer-clean' target should start with these two: - - @echo 'This command is intended for maintainers to use; it' - @echo 'deletes files that may need special tools to rebuild.' - -`TAGS' - Update a tags table for this program. - -`info' - Generate any Info files needed. The best way to write the rules - is as follows: - - info: foo.info - - foo.info: foo.texi chap1.texi chap2.texi - $(MAKEINFO) $(srcdir)/foo.texi - - You must define the variable `MAKEINFO' in the Makefile. It should - run the `makeinfo' program, which is part of the Texinfo - distribution. - - Normally a GNU distribution comes with Info files, and that means - the Info files are present in the source directory. Therefore, - the Make rule for an info file should update it in the source - directory. When users build the package, ordinarily Make will not - update the Info files because they will already be up to date. - -`dvi' - Generate DVI files for all Texinfo documentation. For example: - - dvi: foo.dvi - - foo.dvi: foo.texi chap1.texi chap2.texi - $(TEXI2DVI) $(srcdir)/foo.texi - - You must define the variable `TEXI2DVI' in the Makefile. It should - run the program `texi2dvi', which is part of the Texinfo - distribution.(1) Alternatively, write just the dependencies, and - allow GNU `make' to provide the command. - -`dist' - Create a distribution tar file for this program. The tar file - should be set up so that the file names in the tar file start with - a subdirectory name which is the name of the package it is a - distribution for. This name can include the version number. - - For example, the distribution tar file of GCC version 1.40 unpacks - into a subdirectory named `gcc-1.40'. - - The easiest way to do this is to create a subdirectory - appropriately named, use `ln' or `cp' to install the proper files - in it, and then `tar' that subdirectory. - - Compress the tar file with `gzip'. For example, the actual - distribution file for GCC version 1.40 is called `gcc-1.40.tar.gz'. - - The `dist' target should explicitly depend on all non-source files - that are in the distribution, to make sure they are up to date in - the distribution. *Note Making Releases: Releases. - -`check' - Perform self-tests (if any). The user must build the program - before running the tests, but need not install the program; you - should write the self-tests so that they work when the program is - built but not installed. - - The following targets are suggested as conventional names, for -programs in which they are useful. - -`installcheck' - Perform installation tests (if any). The user must build and - install the program before running the tests. You should not - assume that `$(bindir)' is in the search path. - -`installdirs' - It's useful to add a target named `installdirs' to create the - directories where files are installed, and their parent - directories. There is a script called `mkinstalldirs' which is - convenient for this; you can find it in the Texinfo package. You - can use a rule like this: - - # Make sure all installation directories (e.g. $(bindir)) - # actually exist by making them if necessary. - installdirs: mkinstalldirs - $(srcdir)/mkinstalldirs $(bindir) $(datadir) \ - $(libdir) $(infodir) \ - $(mandir) - - or, if you wish to support `DESTDIR', - - # Make sure all installation directories (e.g. $(bindir)) - # actually exist by making them if necessary. - installdirs: mkinstalldirs - $(srcdir)/mkinstalldirs \ - $(DESTDIR)$(bindir) $(DESTDIR)$(datadir) \ - $(DESTDIR)$(libdir) $(DESTDIR)$(infodir) \ - $(DESTDIR)$(mandir) - - This rule should not modify the directories where compilation is - done. It should do nothing but create installation directories. - - ---------- Footnotes ---------- - - (1) `texi2dvi' uses TeX to do the real work of formatting. TeX is -not distributed with Texinfo. - - -File: standards.info, Node: Install Command Categories, Prev: Standard Targets, Up: Makefile Conventions - -7.2.6 Install Command Categories --------------------------------- - -When writing the `install' target, you must classify all the commands -into three categories: normal ones, "pre-installation" commands and -"post-installation" commands. - - Normal commands move files into their proper places, and set their -modes. They may not alter any files except the ones that come entirely -from the package they belong to. - - Pre-installation and post-installation commands may alter other -files; in particular, they can edit global configuration files or data -bases. - - Pre-installation commands are typically executed before the normal -commands, and post-installation commands are typically run after the -normal commands. - - The most common use for a post-installation command is to run -`install-info'. This cannot be done with a normal command, since it -alters a file (the Info directory) which does not come entirely and -solely from the package being installed. It is a post-installation -command because it needs to be done after the normal command which -installs the package's Info files. - - Most programs don't need any pre-installation commands, but we have -the feature just in case it is needed. - - To classify the commands in the `install' rule into these three -categories, insert "category lines" among them. A category line -specifies the category for the commands that follow. - - A category line consists of a tab and a reference to a special Make -variable, plus an optional comment at the end. There are three -variables you can use, one for each category; the variable name -specifies the category. Category lines are no-ops in ordinary execution -because these three Make variables are normally undefined (and you -_should not_ define them in the makefile). - - Here are the three possible category lines, each with a comment that -explains what it means: - - $(PRE_INSTALL) # Pre-install commands follow. - $(POST_INSTALL) # Post-install commands follow. - $(NORMAL_INSTALL) # Normal commands follow. - - If you don't use a category line at the beginning of the `install' -rule, all the commands are classified as normal until the first category -line. If you don't use any category lines, all the commands are -classified as normal. - - These are the category lines for `uninstall': - - $(PRE_UNINSTALL) # Pre-uninstall commands follow. - $(POST_UNINSTALL) # Post-uninstall commands follow. - $(NORMAL_UNINSTALL) # Normal commands follow. - - Typically, a pre-uninstall command would be used for deleting entries -from the Info directory. - - If the `install' or `uninstall' target has any dependencies which -act as subroutines of installation, then you should start _each_ -dependency's commands with a category line, and start the main target's -commands with a category line also. This way, you can ensure that each -command is placed in the right category regardless of which of the -dependencies actually run. - - Pre-installation and post-installation commands should not run any -programs except for these: - - [ basename bash cat chgrp chmod chown cmp cp dd diff echo - egrep expand expr false fgrep find getopt grep gunzip gzip - hostname install install-info kill ldconfig ln ls md5sum - mkdir mkfifo mknod mv printenv pwd rm rmdir sed sort tee - test touch true uname xargs yes - - The reason for distinguishing the commands in this way is for the -sake of making binary packages. Typically a binary package contains -all the executables and other files that need to be installed, and has -its own method of installing them--so it does not need to run the normal -installation commands. But installing the binary package does need to -execute the pre-installation and post-installation commands. - - Programs to build binary packages work by extracting the -pre-installation and post-installation commands. Here is one way of -extracting the pre-installation commands: - - make -n install -o all \ - PRE_INSTALL=pre-install \ - POST_INSTALL=post-install \ - NORMAL_INSTALL=normal-install \ - | gawk -f pre-install.awk - -where the file `pre-install.awk' could contain this: - - $0 ~ /^\t[ \t]*(normal_install|post_install)[ \t]*$/ {on = 0} - on {print $0} - $0 ~ /^\t[ \t]*pre_install[ \t]*$/ {on = 1} - - The resulting file of pre-installation commands is executed as a -shell script as part of installing the binary package. - - -File: standards.info, Node: Releases, Prev: Makefile Conventions, Up: Managing Releases - -7.3 Making Releases -=================== - -Package the distribution of `Foo version 69.96' up in a gzipped tar -file with the name `foo-69.96.tar.gz'. It should unpack into a -subdirectory named `foo-69.96'. - - Building and installing the program should never modify any of the -files contained in the distribution. This means that all the files -that form part of the program in any way must be classified into "source -files" and "non-source files". Source files are written by humans and -never changed automatically; non-source files are produced from source -files by programs under the control of the Makefile. - - The distribution should contain a file named `README' which gives -the name of the package, and a general description of what it does. It -is also good to explain the purpose of each of the first-level -subdirectories in the package, if there are any. The `README' file -should either state the version number of the package, or refer to where -in the package it can be found. - - The `README' file should refer to the file `INSTALL', which should -contain an explanation of the installation procedure. - - The `README' file should also refer to the file which contains the -copying conditions. The GNU GPL, if used, should be in a file called -`COPYING'. If the GNU LGPL is used, it should be in a file called -`COPYING.LIB'. - - Naturally, all the source files must be in the distribution. It is -okay to include non-source files in the distribution, provided they are -up-to-date and machine-independent, so that building the distribution -normally will never modify them. We commonly include non-source files -produced by Bison, `lex', TeX, and `makeinfo'; this helps avoid -unnecessary dependencies between our distributions, so that users can -install whichever packages they want to install. - - Non-source files that might actually be modified by building and -installing the program should *never* be included in the distribution. -So if you do distribute non-source files, always make sure they are up -to date when you make a new distribution. - - Make sure that the directory into which the distribution unpacks (as -well as any subdirectories) are all world-writable (octal mode 777). -This is so that old versions of `tar' which preserve the ownership and -permissions of the files from the tar archive will be able to extract -all the files even if the user is unprivileged. - - Make sure that all the files in the distribution are world-readable. - - Make sure that no file name in the distribution is more than 14 -characters long. Likewise, no file created by building the program -should have a name longer than 14 characters. The reason for this is -that some systems adhere to a foolish interpretation of the POSIX -standard, and refuse to open a longer name, rather than truncating as -they did in the past. - - Don't include any symbolic links in the distribution itself. If the -tar file contains symbolic links, then people cannot even unpack it on -systems that don't support symbolic links. Also, don't use multiple -names for one file in different directories, because certain file -systems cannot handle this and that prevents unpacking the distribution. - - Try to make sure that all the file names will be unique on MS-DOS. A -name on MS-DOS consists of up to 8 characters, optionally followed by a -period and up to three characters. MS-DOS will truncate extra -characters both before and after the period. Thus, `foobarhacker.c' -and `foobarhacker.o' are not ambiguous; they are truncated to -`foobarha.c' and `foobarha.o', which are distinct. - - Include in your distribution a copy of the `texinfo.tex' you used to -test print any `*.texinfo' or `*.texi' files. - - Likewise, if your program uses small GNU software packages like -regex, getopt, obstack, or termcap, include them in the distribution -file. Leaving them out would make the distribution file a little -smaller at the expense of possible inconvenience to a user who doesn't -know what other files to get. - - -File: standards.info, Node: References, Next: Copying This Manual, Prev: Managing Releases, Up: Top - -8 References to Non-Free Software and Documentation -*************************************************** - -A GNU program should not recommend use of any non-free program. We -can't stop some people from writing proprietary programs, or stop other -people from using them, but we can and should avoid helping to -advertise them to new potential customers. Proprietary software is a -social and ethical problem, and the point of GNU is to solve that -problem. - - When a non-free program or system is well known, you can mention it -in passing--that is harmless, since users who might want to use it -probably already know about it. For instance, it is fine to explain -how to build your package on top of some non-free operating system, or -how to use it together with some widely used non-free program. - - However, you should give only the necessary information to help those -who already use the non-free program to use your program with it--don't -give, or refer to, any further information about the proprietary -program, and don't imply that the proprietary program enhances your -program, or that its existence is in any way a good thing. The goal -should be that people already using the proprietary program will get -the advice they need about how to use your free program, while people -who don't already use the proprietary program will not see anything to -lead them to take an interest in it. - - If a non-free program or system is obscure in your program's domain, -your program should not mention or support it at all, since doing so -would tend to popularize the non-free program more than it popularizes -your program. (You cannot hope to find many additional users among the -users of Foobar if the users of Foobar are few.) - - A GNU package should not refer the user to any non-free documentation -for free software. Free documentation that can be included in free -operating systems is essential for completing the GNU system, so it is -a major focus of the GNU Project; to recommend use of documentation -that we are not allowed to use in GNU would undermine the efforts to -get documentation that we can include. So GNU packages should never -recommend non-free documentation. - - -File: standards.info, Node: Copying This Manual, Next: Index, Prev: References, Up: Top - -Appendix A Copying This Manual -****************************** - -* Menu: - -* GNU Free Documentation License:: License for copying this manual - - -File: standards.info, Node: GNU Free Documentation License, Up: Copying This Manual - -Appendix B GNU Free Documentation License -***************************************** - - Version 1.1, March 2000 - - Copyright (C) 2000 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - 0. PREAMBLE - - The purpose of this License is to make a manual, textbook, or other - written document "free" in the sense of freedom: to assure everyone - the effective freedom to copy and redistribute it, with or without - modifying it, either commercially or noncommercially. Secondarily, - this License preserves for the author and publisher a way to get - credit for their work, while not being considered responsible for - modifications made by others. - - This License is a kind of "copyleft", which means that derivative - works of the document must themselves be free in the same sense. - It complements the GNU General Public License, which is a copyleft - license designed for free software. - - We have designed this License in order to use it for manuals for - free software, because free software needs free documentation: a - free program should come with manuals providing the same freedoms - that the software does. But this License is not limited to - software manuals; it can be used for any textual work, regardless - of subject matter or whether it is published as a printed book. - We recommend this License principally for works whose purpose is - instruction or reference. - - - 1. APPLICABILITY AND DEFINITIONS - - This License applies to any manual or other work that contains a - notice placed by the copyright holder saying it can be distributed - under the terms of this License. The "Document", below, refers to - any such manual or work. Any member of the public is a licensee, - and is addressed as "you." - - A "Modified Version" of the Document means any work containing the - Document or a portion of it, either copied verbatim, or with - modifications and/or translated into another language. - - A "Secondary Section" is a named appendix or a front-matter - section of the Document that deals exclusively with the - relationship of the publishers or authors of the Document to the - Document's overall subject (or to related matters) and contains - nothing that could fall directly within that overall subject. - (For example, if the Document is in part a textbook of - mathematics, a Secondary Section may not explain any mathematics.) - The relationship could be a matter of historical connection with - the subject or with related matters, or of legal, commercial, - philosophical, ethical or political position regarding them. - - The "Invariant Sections" are certain Secondary Sections whose - titles are designated, as being those of Invariant Sections, in - the notice that says that the Document is released under this - License. - - The "Cover Texts" are certain short passages of text that are - listed, as Front-Cover Texts or Back-Cover Texts, in the notice - that says that the Document is released under this License. - - A "Transparent" copy of the Document means a machine-readable copy, - represented in a format whose specification is available to the - general public, whose contents can be viewed and edited directly - and straightforwardly with generic text editors or (for images - composed of pixels) generic paint programs or (for drawings) some - widely available drawing editor, and that is suitable for input to - text formatters or for automatic translation to a variety of - formats suitable for input to text formatters. A copy made in an - otherwise Transparent file format whose markup has been designed - to thwart or discourage subsequent modification by readers is not - Transparent. A copy that is not "Transparent" is called "Opaque." - - Examples of suitable formats for Transparent copies include plain - ASCII without markup, Texinfo input format, LaTeX input format, - SGML or XML using a publicly available DTD, and - standard-conforming simple HTML designed for human modification. - Opaque formats include PostScript, PDF, proprietary formats that - can be read and edited only by proprietary word processors, SGML - or XML for which the DTD and/or processing tools are not generally - available, and the machine-generated HTML produced by some word - processors for output purposes only. - - The "Title Page" means, for a printed book, the title page itself, - plus such following pages as are needed to hold, legibly, the - material this License requires to appear in the title page. For - works in formats which do not have any title page as such, "Title - Page" means the text near the most prominent appearance of the - work's title, preceding the beginning of the body of the text. - - 2. VERBATIM COPYING - - You may copy and distribute the Document in any medium, either - commercially or noncommercially, provided that this License, the - copyright notices, and the license notice saying this License - applies to the Document are reproduced in all copies, and that you - add no other conditions whatsoever to those of this License. You - may not use technical measures to obstruct or control the reading - or further copying of the copies you make or distribute. However, - you may accept compensation in exchange for copies. If you - distribute a large enough number of copies you must also follow - the conditions in section 3. - - You may also lend copies, under the same conditions stated above, - and you may publicly display copies. - - 3. COPYING IN QUANTITY - - If you publish printed copies of the Document numbering more than - 100, and the Document's license notice requires Cover Texts, you - must enclose the copies in covers that carry, clearly and legibly, - all these Cover Texts: Front-Cover Texts on the front cover, and - Back-Cover Texts on the back cover. Both covers must also clearly - and legibly identify you as the publisher of these copies. The - front cover must present the full title with all words of the - title equally prominent and visible. You may add other material - on the covers in addition. Copying with changes limited to the - covers, as long as they preserve the title of the Document and - satisfy these conditions, can be treated as verbatim copying in - other respects. - - If the required texts for either cover are too voluminous to fit - legibly, you should put the first ones listed (as many as fit - reasonably) on the actual cover, and continue the rest onto - adjacent pages. - - If you publish or distribute Opaque copies of the Document - numbering more than 100, you must either include a - machine-readable Transparent copy along with each Opaque copy, or - state in or with each Opaque copy a publicly-accessible - computer-network location containing a complete Transparent copy - of the Document, free of added material, which the general - network-using public has access to download anonymously at no - charge using public-standard network protocols. If you use the - latter option, you must take reasonably prudent steps, when you - begin distribution of Opaque copies in quantity, to ensure that - this Transparent copy will remain thus accessible at the stated - location until at least one year after the last time you - distribute an Opaque copy (directly or through your agents or - retailers) of that edition to the public. - - It is requested, but not required, that you contact the authors of - the Document well before redistributing any large number of - copies, to give them a chance to provide you with an updated - version of the Document. - - 4. MODIFICATIONS - - You may copy and distribute a Modified Version of the Document - under the conditions of sections 2 and 3 above, provided that you - release the Modified Version under precisely this License, with - the Modified Version filling the role of the Document, thus - licensing distribution and modification of the Modified Version to - whoever possesses a copy of it. In addition, you must do these - things in the Modified Version: - - A. Use in the Title Page (and on the covers, if any) a title - distinct from that of the Document, and from those of previous - versions (which should, if there were any, be listed in the - History section of the Document). You may use the same title - as a previous version if the original publisher of that version - gives permission. - B. List on the Title Page, as authors, one or more persons or - entities responsible for authorship of the modifications in the - Modified Version, together with at least five of the principal - authors of the Document (all of its principal authors, if it - has less than five). - C. State on the Title page the name of the publisher of the - Modified Version, as the publisher. - D. Preserve all the copyright notices of the Document. - E. Add an appropriate copyright notice for your modifications - adjacent to the other copyright notices. - F. Include, immediately after the copyright notices, a license - notice giving the public permission to use the Modified Version - under the terms of this License, in the form shown in the - Addendum below. - G. Preserve in that license notice the full lists of Invariant - Sections and required Cover Texts given in the Document's - license notice. - H. Include an unaltered copy of this License. - I. Preserve the section entitled "History", and its title, and add - to it an item stating at least the title, year, new authors, and - publisher of the Modified Version as given on the Title Page. - If there is no section entitled "History" in the Document, - create one stating the title, year, authors, and publisher of - the Document as given on its Title Page, then add an item - describing the Modified Version as stated in the previous - sentence. - J. Preserve the network location, if any, given in the Document for - public access to a Transparent copy of the Document, and - likewise the network locations given in the Document for - previous versions it was based on. These may be placed in the - "History" section. You may omit a network location for a work - that was published at least four years before the Document - itself, or if the original publisher of the version it refers - to gives permission. - K. In any section entitled "Acknowledgements" or "Dedications", - preserve the section's title, and preserve in the section all the - substance and tone of each of the contributor acknowledgements - and/or dedications given therein. - L. Preserve all the Invariant Sections of the Document, - unaltered in their text and in their titles. Section numbers - or the equivalent are not considered part of the section titles. - M. Delete any section entitled "Endorsements." Such a section - may not be included in the Modified Version. - N. Do not retitle any existing section as "Endorsements" or to - conflict in title with any Invariant Section. - - If the Modified Version includes new front-matter sections or - appendices that qualify as Secondary Sections and contain no - material copied from the Document, you may at your option - designate some or all of these sections as invariant. To do this, - add their titles to the list of Invariant Sections in the Modified - Version's license notice. These titles must be distinct from any - other section titles. - - You may add a section entitled "Endorsements", provided it contains - nothing but endorsements of your Modified Version by various - parties-for example, statements of peer review or that the text has - been approved by an organization as the authoritative definition - of a standard. - - You may add a passage of up to five words as a Front-Cover Text, - and a passage of up to 25 words as a Back-Cover Text, to the end - of the list of Cover Texts in the Modified Version. Only one - passage of Front-Cover Text and one of Back-Cover Text may be - added by (or through arrangements made by) any one entity. If the - Document already includes a cover text for the same cover, - previously added by you or by arrangement made by the same entity - you are acting on behalf of, you may not add another; but you may - replace the old one, on explicit permission from the previous - publisher that added the old one. - - The author(s) and publisher(s) of the Document do not by this - License give permission to use their names for publicity for or to - assert or imply endorsement of any Modified Version. - - 5. COMBINING DOCUMENTS - - You may combine the Document with other documents released under - this License, under the terms defined in section 4 above for - modified versions, provided that you include in the combination - all of the Invariant Sections of all of the original documents, - unmodified, and list them all as Invariant Sections of your - combined work in its license notice. - - The combined work need only contain one copy of this License, and - multiple identical Invariant Sections may be replaced with a single - copy. If there are multiple Invariant Sections with the same name - but different contents, make the title of each such section unique - by adding at the end of it, in parentheses, the name of the - original author or publisher of that section if known, or else a - unique number. Make the same adjustment to the section titles in - the list of Invariant Sections in the license notice of the - combined work. - - In the combination, you must combine any sections entitled - "History" in the various original documents, forming one section - entitled "History"; likewise combine any sections entitled - "Acknowledgements", and any sections entitled "Dedications." You - must delete all sections entitled "Endorsements." - - 6. COLLECTIONS OF DOCUMENTS - - You may make a collection consisting of the Document and other - documents released under this License, and replace the individual - copies of this License in the various documents with a single copy - that is included in the collection, provided that you follow the - rules of this License for verbatim copying of each of the - documents in all other respects. - - You may extract a single document from such a collection, and - distribute it individually under this License, provided you insert - a copy of this License into the extracted document, and follow - this License in all other respects regarding verbatim copying of - that document. - - 7. AGGREGATION WITH INDEPENDENT WORKS - - A compilation of the Document or its derivatives with other - separate and independent documents or works, in or on a volume of - a storage or distribution medium, does not as a whole count as a - Modified Version of the Document, provided no compilation - copyright is claimed for the compilation. Such a compilation is - called an "aggregate", and this License does not apply to the - other self-contained works thus compiled with the Document, on - account of their being thus compiled, if they are not themselves - derivative works of the Document. - - If the Cover Text requirement of section 3 is applicable to these - copies of the Document, then if the Document is less than one - quarter of the entire aggregate, the Document's Cover Texts may be - placed on covers that surround only the Document within the - aggregate. Otherwise they must appear on covers around the whole - aggregate. - - 8. TRANSLATION - - Translation is considered a kind of modification, so you may - distribute translations of the Document under the terms of section - 4. Replacing Invariant Sections with translations requires special - permission from their copyright holders, but you may include - translations of some or all Invariant Sections in addition to the - original versions of these Invariant Sections. You may include a - translation of this License provided that you also include the - original English version of this License. In case of a - disagreement between the translation and the original English - version of this License, the original English version will prevail. - - 9. TERMINATION - - You may not copy, modify, sublicense, or distribute the Document - except as expressly provided for under this License. Any other - attempt to copy, modify, sublicense or distribute the Document is - void, and will automatically terminate your rights under this - License. However, parties who have received copies, or rights, - from you under this License will not have their licenses - terminated so long as such parties remain in full compliance. - - 10. FUTURE REVISIONS OF THIS LICENSE - - The Free Software Foundation may publish new, revised versions of - the GNU Free Documentation License from time to time. Such new - versions will be similar in spirit to the present version, but may - differ in detail to address new problems or concerns. See - http://www.gnu.org/copyleft/. - - Each version of the License is given a distinguishing version - number. If the Document specifies that a particular numbered - version of this License "or any later version" applies to it, you - have the option of following the terms and conditions either of - that specified version or of any later version that has been - published (not as a draft) by the Free Software Foundation. If - the Document does not specify a version number of this License, - you may choose any version ever published (not as a draft) by the - Free Software Foundation. - - -ADDENDUM: How to use this License for your documents -==================================================== - -To use this License in a document you have written, include a copy of -the License in the document and put the following copyright and license -notices just after the title page: - - Copyright (C) YEAR YOUR NAME. - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 - or any later version published by the Free Software Foundation; - with the Invariant Sections being LIST THEIR TITLES, with the - Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. - A copy of the license is included in the section entitled "GNU - Free Documentation License." - - If you have no Invariant Sections, write "with no Invariant Sections" -instead of saying which ones are invariant. If you have no Front-Cover -Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being -LIST"; likewise for Back-Cover Texts. - - If your document contains nontrivial examples of program code, we -recommend releasing these examples in parallel under your choice of -free software license, such as the GNU General Public License, to -permit their use in free software. - - -File: standards.info, Node: Index, Prev: Copying This Manual, Up: Top - -Index -***** - -[index] -* Menu: - -* #endif, commenting: Comments. (line 54) -* --help option: Command-Line Interfaces. - (line 119) -* --version option: Command-Line Interfaces. - (line 34) -* -Wall compiler option: Syntactic Conventions. - (line 10) -* accepting contributions: Contributions. (line 6) -* address for bug reports: Command-Line Interfaces. - (line 125) -* ANSI C standard: Standard C. (line 6) -* arbitrary limits on data: Semantics. (line 6) -* autoconf: System Portability. (line 23) -* avoiding proprietary code: Reading Non-Free Code. - (line 6) -* behavior, dependent on program's name: User Interfaces. (line 6) -* binary packages: Install Command Categories. - (line 80) -* bindir: Directory Variables. (line 45) -* braces, in C source: Formatting. (line 6) -* bug reports: Command-Line Interfaces. - (line 125) -* canonical name of a program: Command-Line Interfaces. - (line 41) -* casting pointers to integers: CPU Portability. (line 67) -* change logs: Change Logs. (line 6) -* change logs, conditional changes: Conditional Changes. (line 6) -* change logs, style: Style of Change Logs. - (line 6) -* command-line arguments, decoding: Semantics. (line 46) -* command-line interface: Command-Line Interfaces. - (line 6) -* commenting: Comments. (line 6) -* compatibility with C and POSIX standards: Compatibility. (line 6) -* compiler warnings: Syntactic Conventions. - (line 10) -* conditional changes, and change logs: Conditional Changes. (line 6) -* conditionals, comments for: Comments. (line 54) -* configure: Configuration. (line 6) -* control-L: Formatting. (line 114) -* conventions for makefiles: Makefile Conventions. - (line 6) -* corba: Graphical Interfaces. - (line 16) -* credits for manuals: Manual Credits. (line 6) -* data types, and portability: CPU Portability. (line 6) -* declaration for system functions: System Functions. (line 21) -* documentation: Documentation. (line 6) -* doschk: Names. (line 38) -* downloading this manual: Preface. (line 17) -* error messages: Semantics. (line 19) -* error messages, formatting: Errors. (line 6) -* exec_prefix: Directory Variables. (line 27) -* expressions, splitting: Formatting. (line 77) -* file usage: File Usage. (line 6) -* file-name limitations: Names. (line 38) -* formatting error messages: Errors. (line 6) -* formatting source code: Formatting. (line 6) -* formfeed: Formatting. (line 114) -* function argument, declaring: Syntactic Conventions. - (line 6) -* function prototypes: Standard C. (line 17) -* getopt: Command-Line Interfaces. - (line 6) -* gettext: Internationalization. - (line 6) -* gnome: Graphical Interfaces. - (line 16) -* graphical user interface: Graphical Interfaces. - (line 6) -* gtk: Graphical Interfaces. - (line 6) -* GUILE: Source Language. (line 38) -* implicit int: Syntactic Conventions. - (line 6) -* impossible conditions: Semantics. (line 70) -* internationalization: Internationalization. - (line 6) -* legal aspects: Legal Issues. (line 6) -* legal papers: Contributions. (line 6) -* libexecdir: Directory Variables. (line 58) -* libraries: Libraries. (line 6) -* library functions, and portability: System Functions. (line 6) -* license for manuals: License for Manuals. (line 6) -* lint: Syntactic Conventions. - (line 109) -* long option names: Option Table. (line 6) -* long-named options: Command-Line Interfaces. - (line 12) -* makefile, conventions for: Makefile Conventions. - (line 6) -* malloc return value: Semantics. (line 25) -* man pages: Man Pages. (line 6) -* manual structure: Manual Structure Details. - (line 6) -* memory allocation failure: Semantics. (line 25) -* memory usage: Memory Usage. (line 6) -* message text, and internationalization: Internationalization. - (line 29) -* mmap: Mmap. (line 6) -* multiple variables in a line: Syntactic Conventions. - (line 35) -* names of variables, functions, and files: Names. (line 6) -* NEWS file: NEWS File. (line 6) -* non-POSIX systems, and portability: System Portability. (line 32) -* non-standard extensions: Using Extensions. (line 6) -* NUL characters: Semantics. (line 11) -* open brace: Formatting. (line 6) -* optional features, configure-time: Configuration. (line 76) -* options for compatibility: Compatibility. (line 14) -* output device and program's behavior: User Interfaces. (line 13) -* packaging: Releases. (line 6) -* portability, and data types: CPU Portability. (line 6) -* portability, and library functions: System Functions. (line 6) -* portability, between system types: System Portability. (line 6) -* POSIX compatibility: Compatibility. (line 6) -* POSIXLY_CORRECT, environment variable: Compatibility. (line 21) -* post-installation commands: Install Command Categories. - (line 6) -* pre-installation commands: Install Command Categories. - (line 6) -* prefix: Directory Variables. (line 17) -* program configuration: Configuration. (line 6) -* program design: Design Advice. (line 6) -* program name and its behavior: User Interfaces. (line 6) -* program's canonical name: Command-Line Interfaces. - (line 41) -* programming languges: Source Language. (line 6) -* proprietary programs: Reading Non-Free Code. - (line 6) -* README file: Releases. (line 17) -* references to non-free material: References. (line 6) -* releasing: Managing Releases. (line 6) -* sbindir: Directory Variables. (line 51) -* signal handling: Semantics. (line 59) -* spaces before open-paren: Formatting. (line 71) -* standard command-line options: Command-Line Interfaces. - (line 31) -* standards for makefiles: Makefile Conventions. - (line 6) -* string library functions: System Functions. (line 55) -* syntactic conventions: Syntactic Conventions. - (line 6) -* table of long options: Option Table. (line 6) -* temporary files: Semantics. (line 84) -* temporary variables: Syntactic Conventions. - (line 23) -* texinfo.tex, in a distribution: Releases. (line 73) -* TMPDIR environment variable: Semantics. (line 84) -* trademarks: Trademarks. (line 6) -* where to obtain standards.texi: Preface. (line 17) - - - -Tag Table: -Node: Top696 -Node: Preface1396 -Node: Legal Issues3616 -Node: Reading Non-Free Code4080 -Node: Contributions5808 -Node: Trademarks7962 -Node: Design Advice9025 -Node: Source Language9609 -Node: Compatibility11621 -Node: Using Extensions13249 -Node: Standard C14825 -Node: Conditional Compilation17228 -Node: Program Behavior18527 -Node: Semantics19446 -Node: Libraries24139 -Node: Errors25384 -Node: User Interfaces27165 -Node: Graphical Interfaces28770 -Node: Command-Line Interfaces29805 -Node: Option Table35876 -Node: Memory Usage50885 -Node: File Usage51910 -Node: Writing C52658 -Node: Formatting53508 -Node: Comments57571 -Node: Syntactic Conventions60873 -Node: Names64285 -Node: System Portability66494 -Node: CPU Portability68879 -Node: System Functions72135 -Node: Internationalization77332 -Node: Mmap80485 -Node: Documentation81195 -Node: GNU Manuals82300 -Node: Doc Strings and Manuals87357 -Node: Manual Structure Details88910 -Node: License for Manuals90328 -Node: Manual Credits91302 -Node: Printed Manuals91695 -Node: NEWS File92381 -Node: Change Logs93059 -Node: Change Log Concepts93813 -Node: Style of Change Logs95677 -Node: Simple Changes97712 -Node: Conditional Changes98956 -Node: Indicating the Part Changed100378 -Node: Man Pages100905 -Node: Reading other Manuals102529 -Node: Managing Releases103320 -Node: Configuration104083 -Node: Makefile Conventions110988 -Node: Makefile Basics111794 -Node: Utilities in Makefiles114968 -Node: Command Variables117113 -Node: Directory Variables120690 -Node: Standard Targets131584 -Ref: Standard Targets-Footnote-1142824 -Node: Install Command Categories142924 -Node: Releases147506 -Node: References151594 -Node: Copying This Manual153879 -Node: GNU Free Documentation License154115 -Node: Index173816 - -End Tag Table diff --git a/gas/doc/as.1 b/gas/doc/as.1 deleted file mode 100644 index d9ccd23a22a..00000000000 --- a/gas/doc/as.1 +++ /dev/null @@ -1,990 +0,0 @@ -.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 -.\" -.\" 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 -.. -.de Vb \" Begin verbatim text -.ft CW -.nf -.ne \\$1 -.. -.de Ve \" End verbatim text -.ft R -.fi -.. -.\" 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 -.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' -.ie n \{\ -. ds -- \(*W- -. ds PI pi -. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch -. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch -. ds L" "" -. ds R" "" -. ds C` "" -. ds C' "" -'br\} -.el\{\ -. ds -- \|\(em\| -. ds PI \(*p -. ds L" `` -. ds R" '' -'br\} -.\" -.\" 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 -.\" 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 -.\" -.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). -.\" Fear. Run. Save yourself. No user-serviceable parts. -. \" fudge factors for nroff and troff -.if n \{\ -. ds #H 0 -. ds #V .8m -. ds #F .3m -. ds #[ \f1 -. ds #] \fP -.\} -.if t \{\ -. ds #H ((1u-(\\\\n(.fu%2u))*.13m) -. ds #V .6m -. ds #F 0 -. ds #[ \& -. ds #] \& -.\} -. \" simple accents for nroff and troff -.if n \{\ -. ds ' \& -. ds ` \& -. ds ^ \& -. ds , \& -. ds ~ ~ -. ds / -.\} -.if t \{\ -. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" -. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' -. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' -. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' -. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' -. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' -.\} -. \" troff and (daisy-wheel) nroff accents -.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' -.ds 8 \h'\*(#H'\(*b\h'-\*(#H' -.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] -.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' -.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' -.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] -.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] -.ds ae a\h'-(\w'a'u*4/10)'e -.ds Ae A\h'-(\w'A'u*4/10)'E -. \" corrections for vroff -.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' -.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' -. \" for low resolution devices (crt and lpr) -.if \n(.H>23 .if \n(.V>19 \ -\{\ -. ds : e -. ds 8 ss -. ds o a -. ds d- d\h'-1'\(ga -. ds D- D\h'-1'\(hy -. ds th \o'bp' -. ds Th \o'LP' -. ds ae ae -. ds Ae AE -.\} -.rm #[ #] #H #V #F C -.\" ======================================================================== -.\" -.IX Title "AS 1" -.TH AS 1 "2005-03-08" "binutils-2.15.96" "GNU Development Tools" -.SH "NAME" -AS \- the portable GNU assembler. -.SH "SYNOPSIS" -.IX Header "SYNOPSIS" -as [\fB\-a\fR[\fBcdhlns\fR][=\fIfile\fR]] [\fB\-\-alternate\fR] [\fB\-D\fR] - [\fB\-\-defsym\fR \fIsym\fR=\fIval\fR] [\fB\-f\fR] [\fB\-g\fR] [\fB\-\-gstabs\fR] [\fB\-\-gstabs+\fR] - [\fB\-\-gdwarf\-2\fR] [\fB\-\-help\fR] [\fB\-I\fR \fIdir\fR] [\fB\-J\fR] [\fB\-K\fR] [\fB\-L\fR] - [\fB\-\-listing\-lhs\-width\fR=\fI\s-1NUM\s0\fR] [\fB\-\-listing\-lhs\-width2\fR=\fI\s-1NUM\s0\fR] - [\fB\-\-listing\-rhs\-width\fR=\fI\s-1NUM\s0\fR] [\fB\-\-listing\-cont\-lines\fR=\fI\s-1NUM\s0\fR] - [\fB\-\-keep\-locals\fR] [\fB\-o\fR \fIobjfile\fR] [\fB\-R\fR] [\fB\-\-statistics\fR] [\fB\-v\fR] - [\fB\-version\fR] [\fB\-\-version\fR] [\fB\-W\fR] [\fB\-\-warn\fR] [\fB\-\-fatal\-warnings\fR] - [\fB\-w\fR] [\fB\-x\fR] [\fB\-Z\fR] [\fB\-\-target\-help\fR] [\fItarget-options\fR] - [\fB\-\-\fR|\fIfiles\fR ...] -.PP -\&\fITarget Alpha options:\fR - [\fB\-m\fR\fIcpu\fR] - [\fB\-mdebug\fR | \fB\-no\-mdebug\fR] - [\fB\-relax\fR] [\fB\-g\fR] [\fB\-G\fR\fIsize\fR] - [\fB\-F\fR] [\fB\-32addr\fR] -.PP -\&\fITarget \s-1ARC\s0 options:\fR - [\fB\-marc[5|6|7|8]\fR] - [\fB\-EB\fR|\fB\-EL\fR] -.PP -\&\fITarget \s-1ARM\s0 options:\fR - [\fB\-mcpu\fR=\fIprocessor\fR[+\fIextension\fR...]] - [\fB\-march\fR=\fIarchitecture\fR[+\fIextension\fR...]] - [\fB\-mfpu\fR=\fIfloating-point-format\fR] - [\fB\-mfloat\-abi\fR=\fIabi\fR] - [\fB\-meabi\fR=\fIver\fR] - [\fB\-mthumb\fR] - [\fB\-EB\fR|\fB\-EL\fR] - [\fB\-mapcs\-32\fR|\fB\-mapcs\-26\fR|\fB\-mapcs\-float\fR| - \fB\-mapcs\-reentrant\fR] - [\fB\-mthumb\-interwork\fR] [\fB\-k\fR] -.PP -\&\fITarget \s-1CRIS\s0 options:\fR - [\fB\-\-underscore\fR | \fB\-\-no\-underscore\fR] - [\fB\-\-pic\fR] [\fB\-N\fR] - [\fB\-\-emulation=criself\fR | \fB\-\-emulation=crisaout\fR] - [\fB\-\-march=v0_v10\fR | \fB\-\-march=v10\fR | \fB\-\-march=v32\fR | \fB\-\-march=common_v10_v32\fR] -.PP -\&\fITarget D10V options:\fR - [\fB\-O\fR] -.PP -\&\fITarget D30V options:\fR - [\fB\-O\fR|\fB\-n\fR|\fB\-N\fR] -.PP -\&\fITarget i386 options:\fR - [\fB\-\-32\fR|\fB\-\-64\fR] [\fB\-n\fR] -.PP -\&\fITarget i960 options:\fR - [\fB\-ACA\fR|\fB\-ACA_A\fR|\fB\-ACB\fR|\fB\-ACC\fR|\fB\-AKA\fR|\fB\-AKB\fR| - \fB\-AKC\fR|\fB\-AMC\fR] - [\fB\-b\fR] [\fB\-no\-relax\fR] -.PP -\&\fITarget \s-1IA\-64\s0 options:\fR - [\fB\-mconstant\-gp\fR|\fB\-mauto\-pic\fR] - [\fB\-milp32\fR|\fB\-milp64\fR|\fB\-mlp64\fR|\fB\-mp64\fR] - [\fB\-mle\fR|\fBmbe\fR] - [\fB\-munwind\-check=warning\fR|\fB\-munwind\-check=error\fR] - [\fB\-mhint.b=ok\fR|\fB\-mhint.b=warning\fR|\fB\-mhint.b=error\fR] - [\fB\-x\fR|\fB\-xexplicit\fR] [\fB\-xauto\fR] [\fB\-xdebug\fR] -.PP -\&\fITarget \s-1IP2K\s0 options:\fR - [\fB\-mip2022\fR|\fB\-mip2022ext\fR] -.PP -\&\fITarget M32R options:\fR - [\fB\-\-m32rx\fR|\fB\-\-[no\-]warn\-explicit\-parallel\-conflicts\fR| - \fB\-\-W[n]p\fR] -.PP -\&\fITarget M680X0 options:\fR - [\fB\-l\fR] [\fB\-m68000\fR|\fB\-m68010\fR|\fB\-m68020\fR|...] -.PP -\&\fITarget M68HC11 options:\fR - [\fB\-m68hc11\fR|\fB\-m68hc12\fR|\fB\-m68hcs12\fR] - [\fB\-mshort\fR|\fB\-mlong\fR] - [\fB\-mshort\-double\fR|\fB\-mlong\-double\fR] - [\fB\-\-force\-long\-branchs\fR] [\fB\-\-short\-branchs\fR] - [\fB\-\-strict\-direct\-mode\fR] [\fB\-\-print\-insn\-syntax\fR] - [\fB\-\-print\-opcodes\fR] [\fB\-\-generate\-example\fR] -.PP -\&\fITarget \s-1MCORE\s0 options:\fR - [\fB\-jsri2bsr\fR] [\fB\-sifilter\fR] [\fB\-relax\fR] - [\fB\-mcpu=[210|340]\fR] -.PP -\&\fITarget \s-1MIPS\s0 options:\fR - [\fB\-nocpp\fR] [\fB\-EL\fR] [\fB\-EB\fR] [\fB\-O\fR[\fIoptimization level\fR]] - [\fB\-g\fR[\fIdebug level\fR]] [\fB\-G\fR \fInum\fR] [\fB\-KPIC\fR] [\fB\-call_shared\fR] - [\fB\-non_shared\fR] [\fB\-xgot\fR] - [\fB\-mabi\fR=\fI\s-1ABI\s0\fR] [\fB\-32\fR] [\fB\-n32\fR] [\fB\-64\fR] [\fB\-mfp32\fR] [\fB\-mgp32\fR] - [\fB\-march\fR=\fI\s-1CPU\s0\fR] [\fB\-mtune\fR=\fI\s-1CPU\s0\fR] [\fB\-mips1\fR] [\fB\-mips2\fR] - [\fB\-mips3\fR] [\fB\-mips4\fR] [\fB\-mips5\fR] [\fB\-mips32\fR] [\fB\-mips32r2\fR] - [\fB\-mips64\fR] [\fB\-mips64r2\fR] - [\fB\-construct\-floats\fR] [\fB\-no\-construct\-floats\fR] - [\fB\-trap\fR] [\fB\-no\-break\fR] [\fB\-break\fR] [\fB\-no\-trap\fR] - [\fB\-mfix7000\fR] [\fB\-mno\-fix7000\fR] - [\fB\-mips16\fR] [\fB\-no\-mips16\fR] - [\fB\-mips3d\fR] [\fB\-no\-mips3d\fR] - [\fB\-mdmx\fR] [\fB\-no\-mdmx\fR] - [\fB\-mdebug\fR] [\fB\-no\-mdebug\fR] - [\fB\-mpdr\fR] [\fB\-mno\-pdr\fR] -.PP -\&\fITarget \s-1MMIX\s0 options:\fR - [\fB\-\-fixed\-special\-register\-names\fR] [\fB\-\-globalize\-symbols\fR] - [\fB\-\-gnu\-syntax\fR] [\fB\-\-relax\fR] [\fB\-\-no\-predefined\-symbols\fR] - [\fB\-\-no\-expand\fR] [\fB\-\-no\-merge\-gregs\fR] [\fB\-x\fR] - [\fB\-\-linker\-allocated\-gregs\fR] -.PP -\&\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] -.PP -\&\fITarget picoJava options:\fR - [\fB\-mb\fR|\fB\-me\fR] -.PP -\&\fITarget PowerPC options:\fR - [\fB\-mpwrx\fR|\fB\-mpwr2\fR|\fB\-mpwr\fR|\fB\-m601\fR|\fB\-mppc\fR|\fB\-mppc32\fR|\fB\-m603\fR|\fB\-m604\fR| - \fB\-m403\fR|\fB\-m405\fR|\fB\-mppc64\fR|\fB\-m620\fR|\fB\-mppc64bridge\fR|\fB\-mbooke\fR| - \fB\-mbooke32\fR|\fB\-mbooke64\fR] - [\fB\-mcom\fR|\fB\-many\fR|\fB\-maltivec\fR] [\fB\-memb\fR] - [\fB\-mregnames\fR|\fB\-mno\-regnames\fR] - [\fB\-mrelocatable\fR|\fB\-mrelocatable\-lib\fR] - [\fB\-mlittle\fR|\fB\-mlittle\-endian\fR|\fB\-mbig\fR|\fB\-mbig\-endian\fR] - [\fB\-msolaris\fR|\fB\-mno\-solaris\fR] -.PP -\&\fITarget \s-1SPARC\s0 options:\fR - [\fB\-Av6\fR|\fB\-Av7\fR|\fB\-Av8\fR|\fB\-Asparclet\fR|\fB\-Asparclite\fR - \fB\-Av8plus\fR|\fB\-Av8plusa\fR|\fB\-Av9\fR|\fB\-Av9a\fR] - [\fB\-xarch=v8plus\fR|\fB\-xarch=v8plusa\fR] [\fB\-bump\fR] - [\fB\-32\fR|\fB\-64\fR] -.PP -\&\fITarget \s-1TIC54X\s0 options:\fR - [\fB\-mcpu=54[123589]\fR|\fB\-mcpu=54[56]lp\fR] [\fB\-mfar\-mode\fR|\fB\-mf\fR] - [\fB\-merrors\-to\-file\fR \fI\fR|\fB\-me\fR \fI\fR] -.PP -\&\fITarget Xtensa options:\fR - [\fB\-\-[no\-]text\-section\-literals\fR] [\fB\-\-[no\-]absolute\-literals\fR] - [\fB\-\-[no\-]target\-align\fR] [\fB\-\-[no\-]longcalls\fR] - [\fB\-\-[no\-]transform\fR] - [\fB\-\-rename\-section\fR \fIoldname\fR=\fInewname\fR] -.SH "DESCRIPTION" -.IX Header "DESCRIPTION" -\&\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, -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 \f(CW\*(C`gcc\*(C'\fR for use by the linker -\&\f(CW\*(C`ld\*(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. -This doesn't mean \fBas\fR always uses the same syntax as another -assembler for the same architecture; for example, we know of several -incompatible versions of 680x0 assembly language syntax. -.PP -Each time you run \fBas\fR it assembles exactly one source -program. The source program is made up of one or more files. -(The standard input is also a file.) -.PP -You give \fBas\fR a command line that has zero or more input file -names. The input files are read (from left file name to right). A -command line argument (in any position) that has no special meaning -is taken to be an input file name. -.PP -If you give \fBas\fR no file names it attempts to read one input file -from the \fBas\fR standard input, which is normally your terminal. You -may have to type \fBctl-D\fR to tell \fBas\fR there is no more program -to assemble. -.PP -Use \fB\-\-\fR if you need to explicitly name the standard input file -in your command line. -.PP -If the source is empty, \fBas\fR produces a small, empty object -file. -.PP -\&\fBas\fR may write warnings and error messages to the standard error -file (usually your terminal). This should not happen when a compiler -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, -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 -.Ve -.PP -This passes two options to the assembler: \fB\-alh\fR (emit a listing to -standard output with high-level and assembly source) and \fB\-L\fR (retain -local symbols in the symbol table). -.PP -Usually you do not need to use this \fB\-Wa\fR mechanism, since many compiler -command-line options are automatically passed to the assembler by the compiler. -(You can call the \s-1GNU\s0 compiler driver with the \fB\-v\fR option to see -precisely what options it passes to each compilation pass, including the -assembler.) -.SH "OPTIONS" -.IX Header "OPTIONS" -.IP "\fB\-a[cdhlmns]\fR" 4 -.IX Item "-a[cdhlmns]" -Turn on listings, in any of a variety of ways: -.RS 4 -.IP "\fB\-ac\fR" 4 -.IX Item "-ac" -omit false conditionals -.IP "\fB\-ad\fR" 4 -.IX Item "-ad" -omit debugging directives -.IP "\fB\-ah\fR" 4 -.IX Item "-ah" -include high-level source -.IP "\fB\-al\fR" 4 -.IX Item "-al" -include assembly -.IP "\fB\-am\fR" 4 -.IX Item "-am" -include macro expansions -.IP "\fB\-an\fR" 4 -.IX Item "-an" -omit forms processing -.IP "\fB\-as\fR" 4 -.IX Item "-as" -include symbols -.IP "\fB=file\fR" 4 -.IX Item "=file" -set the name of the listing file -.RE -.RS 4 -.Sp -You may combine these options; for example, use \fB\-aln\fR for assembly -listing without forms processing. The \fB=file\fR option, if used, must be -the last one. By itself, \fB\-a\fR defaults to \fB\-ahls\fR. -.RE -.IP "\fB\-\-alternate\fR" 4 -.IX Item "--alternate" -Begin in alternate macro mode, see \f(CW@ref\fR{Altmacro,,\f(CW\*(C`.altmacro\*(C'\fR}. -.IP "\fB\-D\fR" 4 -.IX Item "-D" -Ignored. This option is accepted for script compatibility with calls to -other assemblers. -.IP "\fB\-\-defsym\fR \fIsym\fR\fB=\fR\fIvalue\fR" 4 -.IX Item "--defsym sym=value" -Define the symbol \fIsym\fR to be \fIvalue\fR before assembling the input file. -\&\fIvalue\fR must be an integer constant. As in C, a leading \fB0x\fR -indicates a hexadecimal value, and a leading \fB0\fR indicates an octal value. -.IP "\fB\-f\fR" 4 -.IX Item "-f" -``fast''\-\-\-skip whitespace and comment preprocessing (assume source is -compiler output). -.IP "\fB\-g\fR" 4 -.IX Item "-g" -.PD 0 -.IP "\fB\-\-gen\-debug\fR" 4 -.IX Item "--gen-debug" -.PD -Generate debugging information for each assembler source line using whichever -debug format is preferred by the target. This currently means either \s-1STABS\s0, -\&\s-1ECOFF\s0 or \s-1DWARF2\s0. -.IP "\fB\-\-gstabs\fR" 4 -.IX Item "--gstabs" -Generate stabs debugging information for each assembler line. This -may help debugging assembler code, if the debugger can handle it. -.IP "\fB\-\-gstabs+\fR" 4 -.IX Item "--gstabs+" -Generate stabs debugging information for each assembler line, with \s-1GNU\s0 -extensions that probably only gdb can handle, and that could make other -debuggers crash or refuse to read your program. This -may help debugging assembler code. Currently the only \s-1GNU\s0 extension is -the location of the current working directory at assembling time. -.IP "\fB\-\-gdwarf\-2\fR" 4 -.IX Item "--gdwarf-2" -Generate \s-1DWARF2\s0 debugging information for each assembler line. This -may help debugging assembler code, if the debugger can handle it. Note\-\-\-this -option is only supported by some targets, not all of them. -.IP "\fB\-\-help\fR" 4 -.IX Item "--help" -Print a summary of the command line options and exit. -.IP "\fB\-\-target\-help\fR" 4 -.IX Item "--target-help" -Print a summary of all target specific options and exit. -.IP "\fB\-I\fR \fIdir\fR" 4 -.IX Item "-I dir" -Add directory \fIdir\fR to the search list for \f(CW\*(C`.include\*(C'\fR directives. -.IP "\fB\-J\fR" 4 -.IX Item "-J" -Don't warn about signed overflow. -.IP "\fB\-K\fR" 4 -.IX Item "-K" -Issue warnings when difference tables altered for long displacements. -.IP "\fB\-L\fR" 4 -.IX Item "-L" -.PD 0 -.IP "\fB\-\-keep\-locals\fR" 4 -.IX Item "--keep-locals" -.PD -Keep (in the symbol table) local symbols. On traditional a.out systems -these start with \fBL\fR, but different systems have different local -label prefixes. -.IP "\fB\-\-listing\-lhs\-width=\fR\fInumber\fR" 4 -.IX Item "--listing-lhs-width=number" -Set the maximum width, in words, of the output data column for an assembler -listing to \fInumber\fR. -.IP "\fB\-\-listing\-lhs\-width2=\fR\fInumber\fR" 4 -.IX Item "--listing-lhs-width2=number" -Set the maximum width, in words, of the output data column for continuation -lines in an assembler listing to \fInumber\fR. -.IP "\fB\-\-listing\-rhs\-width=\fR\fInumber\fR" 4 -.IX Item "--listing-rhs-width=number" -Set the maximum width of an input source line, as displayed in a listing, to -\&\fInumber\fR bytes. -.IP "\fB\-\-listing\-cont\-lines=\fR\fInumber\fR" 4 -.IX Item "--listing-cont-lines=number" -Set the maximum number of lines printed in a listing for a single line of input -to \fInumber\fR + 1. -.IP "\fB\-o\fR \fIobjfile\fR" 4 -.IX Item "-o objfile" -Name the object-file output from \fBas\fR \fIobjfile\fR. -.IP "\fB\-R\fR" 4 -.IX Item "-R" -Fold the data section into the text section. -.IP "\fB\-\-statistics\fR" 4 -.IX Item "--statistics" -Print the maximum space (in bytes) and total time (in seconds) used by -assembly. -.IP "\fB\-\-strip\-local\-absolute\fR" 4 -.IX Item "--strip-local-absolute" -Remove local absolute symbols from the outgoing symbol table. -.IP "\fB\-v\fR" 4 -.IX Item "-v" -.PD 0 -.IP "\fB\-version\fR" 4 -.IX Item "-version" -.PD -Print the \fBas\fR version. -.IP "\fB\-\-version\fR" 4 -.IX Item "--version" -Print the \fBas\fR version and exit. -.IP "\fB\-W\fR" 4 -.IX Item "-W" -.PD 0 -.IP "\fB\-\-no\-warn\fR" 4 -.IX Item "--no-warn" -.PD -Suppress warning messages. -.IP "\fB\-\-fatal\-warnings\fR" 4 -.IX Item "--fatal-warnings" -Treat warnings as errors. -.IP "\fB\-\-warn\fR" 4 -.IX Item "--warn" -Don't suppress warning messages or treat them as errors. -.IP "\fB\-w\fR" 4 -.IX Item "-w" -Ignored. -.IP "\fB\-x\fR" 4 -.IX Item "-x" -Ignored. -.IP "\fB\-Z\fR" 4 -.IX Item "-Z" -Generate an object file even after errors. -.IP "\fB\-\- |\fR \fIfiles\fR \fB...\fR" 4 -.IX Item "-- | files ..." -Standard input, or source files to assemble. -.PP -The following options are available when as is configured for -an \s-1ARC\s0 processor. -.IP "\fB\-marc[5|6|7|8]\fR" 4 -.IX Item "-marc[5|6|7|8]" -This option selects the core processor variant. -.IP "\fB\-EB | \-EL\fR" 4 -.IX Item "-EB | -EL" -Select either big-endian (\-EB) or little-endian (\-EL) output. -.PP -The following options are available when as is configured for the \s-1ARM\s0 -processor family. -.IP "\fB\-mcpu=\fR\fIprocessor\fR\fB[+\fR\fIextension\fR\fB...]\fR" 4 -.IX Item "-mcpu=processor[+extension...]" -Specify which \s-1ARM\s0 processor variant is the target. -.IP "\fB\-march=\fR\fIarchitecture\fR\fB[+\fR\fIextension\fR\fB...]\fR" 4 -.IX Item "-march=architecture[+extension...]" -Specify which \s-1ARM\s0 architecture variant is used by the target. -.IP "\fB\-mfpu=\fR\fIfloating-point-format\fR" 4 -.IX Item "-mfpu=floating-point-format" -Select which Floating Point architecture is the target. -.IP "\fB\-mfloat\-abi=\fR\fIabi\fR" 4 -.IX Item "-mfloat-abi=abi" -Select which floating point \s-1ABI\s0 is in use. -.IP "\fB\-mthumb\fR" 4 -.IX Item "-mthumb" -Enable Thumb only instruction decoding. -.IP "\fB\-mapcs\-32 | \-mapcs\-26 | \-mapcs\-float | \-mapcs\-reentrant\fR" 4 -.IX Item "-mapcs-32 | -mapcs-26 | -mapcs-float | -mapcs-reentrant" -Select which procedure calling convention is in use. -.IP "\fB\-EB | \-EL\fR" 4 -.IX Item "-EB | -EL" -Select either big-endian (\-EB) or little-endian (\-EL) output. -.IP "\fB\-mthumb\-interwork\fR" 4 -.IX Item "-mthumb-interwork" -Specify that the code has been generated with interworking between Thumb and -\&\s-1ARM\s0 code in mind. -.IP "\fB\-k\fR" 4 -.IX Item "-k" -Specify that \s-1PIC\s0 code has been generated. -.PP -See the info pages for documentation of the CRIS-specific options. -.PP -The following options are available when as is configured for -a D10V processor. -.IP "\fB\-O\fR" 4 -.IX Item "-O" -Optimize output by parallelizing instructions. -.PP -The following options are available when as is configured for a D30V -processor. -.IP "\fB\-O\fR" 4 -.IX Item "-O" -Optimize output by parallelizing instructions. -.IP "\fB\-n\fR" 4 -.IX Item "-n" -Warn when nops are generated. -.IP "\fB\-N\fR" 4 -.IX Item "-N" -Warn when a nop after a 32\-bit multiply instruction is generated. -.PP -The following options are available when as is configured for the -Intel 80960 processor. -.IP "\fB\-ACA | \-ACA_A | \-ACB | \-ACC | \-AKA | \-AKB | \-AKC | \-AMC\fR" 4 -.IX Item "-ACA | -ACA_A | -ACB | -ACC | -AKA | -AKB | -AKC | -AMC" -Specify which variant of the 960 architecture is the target. -.IP "\fB\-b\fR" 4 -.IX Item "-b" -Add code to collect statistics about branches taken. -.IP "\fB\-no\-relax\fR" 4 -.IX Item "-no-relax" -Do not alter compare-and-branch instructions for long displacements; -error if necessary. -.PP -The following options are available when as is configured for the -Ubicom \s-1IP2K\s0 series. -.IP "\fB\-mip2022ext\fR" 4 -.IX Item "-mip2022ext" -Specifies that the extended \s-1IP2022\s0 instructions are allowed. -.IP "\fB\-mip2022\fR" 4 -.IX Item "-mip2022" -Restores the default behaviour, which restricts the permitted instructions to -just the basic \s-1IP2022\s0 ones. -.PP -The following options are available when as is configured for the -Renesas M32R (formerly Mitsubishi M32R) series. -.IP "\fB\-\-m32rx\fR" 4 -.IX Item "--m32rx" -Specify which processor in the M32R family is the target. The default -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. -.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. -.PP -The following options are available when as is configured for the -Motorola 68000 series. -.IP "\fB\-l\fR" 4 -.IX Item "-l" -Shorten references to undefined symbols, to one word instead of two. -.IP "\fB\-m68000 | \-m68008 | \-m68010 | \-m68020 | \-m68030\fR" 4 -.IX Item "-m68000 | -m68008 | -m68010 | -m68020 | -m68030" -.PD 0 -.IP "\fB| \-m68040 | \-m68060 | \-m68302 | \-m68331 | \-m68332\fR" 4 -.IX Item "| -m68040 | -m68060 | -m68302 | -m68331 | -m68332" -.IP "\fB| \-m68333 | \-m68340 | \-mcpu32 | \-m5200\fR" 4 -.IX Item "| -m68333 | -m68340 | -mcpu32 | -m5200" -.PD -Specify what processor in the 68000 family is the target. The default -is normally the 68020, but this can be changed at configuration time. -.IP "\fB\-m68881 | \-m68882 | \-mno\-68881 | \-mno\-68882\fR" 4 -.IX Item "-m68881 | -m68882 | -mno-68881 | -mno-68882" -The target machine does (or does not) have a floating-point coprocessor. -The default is to assume a coprocessor for 68020, 68030, and cpu32. Although -the basic 68000 is not compatible with the 68881, a combination of the -two can be specified, since it's possible to do emulation of the -coprocessor instructions with the main processor. -.IP "\fB\-m68851 | \-mno\-68851\fR" 4 -.IX Item "-m68851 | -mno-68851" -The target machine does (or does not) have a memory-management -unit coprocessor. The default is to assume an \s-1MMU\s0 for 68020 and up. -.PP -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 -default is \fB\-mpic\fR. -.IP "\fB\-mall\fR" 4 -.IX Item "-mall" -.PD 0 -.IP "\fB\-mall\-extensions\fR" 4 -.IX Item "-mall-extensions" -.PD -Enable all instruction set extensions. This is the default. -.IP "\fB\-mno\-extensions\fR" 4 -.IX Item "-mno-extensions" -Disable all instruction set extensions. -.IP "\fB\-m\fR\fIextension\fR \fB| \-mno\-\fR\fIextension\fR" 4 -.IX Item "-mextension | -mno-extension" -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 -disable all other extensions. -.IP "\fB\-m\fR\fImachine\fR" 4 -.IX Item "-mmachine" -Enable the instruction set extensions supported by a particular machine -model, and disable all other extensions. -.PP -The following options are available when as is configured for -a picoJava processor. -.IP "\fB\-mb\fR" 4 -.IX Item "-mb" -Generate ``big endian'' format output. -.IP "\fB\-ml\fR" 4 -.IX Item "-ml" -Generate ``little endian'' format output. -.PP -The following options are available when as is configured for the -Motorola 68HC11 or 68HC12 series. -.IP "\fB\-m68hc11 | \-m68hc12 | \-m68hcs12\fR" 4 -.IX Item "-m68hc11 | -m68hc12 | -m68hcs12" -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. -.IP "\fB\-mlong\fR" 4 -.IX Item "-mlong" -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. -.IP "\fB\-mlong\-double\fR" 4 -.IX Item "-mlong-double" -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 -conditional branches, unconditional branches and branches to a -sub routine. -.IP "\fB\-S | \-\-short\-branchs\fR" 4 -.IX Item "-S | --short-branchs" -Do not turn relative branchs into absolute ones -when the offset is out of range. -.IP "\fB\-\-strict\-direct\-mode\fR" 4 -.IX Item "--strict-direct-mode" -Do not turn the direct addressing mode into extended addressing mode -when the instruction does not support direct addressing mode. -.IP "\fB\-\-print\-insn\-syntax\fR" 4 -.IX Item "--print-insn-syntax" -Print the syntax of instruction in case of error. -.IP "\fB\-\-print\-opcodes\fR" 4 -.IX Item "--print-opcodes" -print the list of instructions with syntax and then exit. -.IP "\fB\-\-generate\-example\fR" 4 -.IX Item "--generate-example" -print an example of instruction for each possible instruction and then exit. -This option is only useful for testing \fBas\fR. -.PP -The following options are available when \fBas\fR is configured -for the \s-1SPARC\s0 architecture: -.IP "\fB\-Av6 | \-Av7 | \-Av8 | \-Asparclet | \-Asparclite\fR" 4 -.IX Item "-Av6 | -Av7 | -Av8 | -Asparclet | -Asparclite" -.PD 0 -.IP "\fB\-Av8plus | \-Av8plusa | \-Av9 | \-Av9a\fR" 4 -.IX Item "-Av8plus | -Av8plusa | -Av9 | -Av9a" -.PD -Explicitly select a variant of the \s-1SPARC\s0 architecture. -.Sp -\&\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 -UltraSPARC extensions. -.IP "\fB\-xarch=v8plus | \-xarch=v8plusa\fR" 4 -.IX Item "-xarch=v8plus | -xarch=v8plusa" -For compatibility with the Solaris v9 assembler. These options are -equivalent to \-Av8plus and \-Av8plusa, respectively. -.IP "\fB\-bump\fR" 4 -.IX Item "-bump" -Warn when the assembler switches to another architecture. -.PP -The following options are available when as is configured for the 'c54x -architecture. -.IP "\fB\-mfar\-mode\fR" 4 -.IX Item "-mfar-mode" -Enable extended addressing mode. All addresses and relocations will assume -extended addressing (usually 23 bits). -.IP "\fB\-mcpu=\fR\fI\s-1CPU_VERSION\s0\fR" 4 -.IX Item "-mcpu=CPU_VERSION" -Sets the \s-1CPU\s0 version being compiled for. -.IP "\fB\-merrors\-to\-file\fR \fI\s-1FILENAME\s0\fR" 4 -.IX Item "-merrors-to-file FILENAME" -Redirect error output to a file, for broken systems which don't support such -behaviour in the shell. -.PP -The following options are available when as is configured for -a \s-1MIPS\s0 processor. -.IP "\fB\-G\fR \fInum\fR" 4 -.IX Item "-G num" -This option sets the largest size of an object that can be referenced -implicitly with the \f(CW\*(C`gp\*(C'\fR register. It is only accepted for targets that -use \s-1ECOFF\s0 format, such as a DECstation running Ultrix. The default value is 8. -.IP "\fB\-EB\fR" 4 -.IX Item "-EB" -Generate ``big endian'' format output. -.IP "\fB\-EL\fR" 4 -.IX Item "-EL" -Generate ``little endian'' format output. -.IP "\fB\-mips1\fR" 4 -.IX Item "-mips1" -.PD 0 -.IP "\fB\-mips2\fR" 4 -.IX Item "-mips2" -.IP "\fB\-mips3\fR" 4 -.IX Item "-mips3" -.IP "\fB\-mips4\fR" 4 -.IX Item "-mips4" -.IP "\fB\-mips5\fR" 4 -.IX Item "-mips5" -.IP "\fB\-mips32\fR" 4 -.IX Item "-mips32" -.IP "\fB\-mips32r2\fR" 4 -.IX Item "-mips32r2" -.IP "\fB\-mips64\fR" 4 -.IX Item "-mips64" -.IP "\fB\-mips64r2\fR" 4 -.IX Item "-mips64r2" -.PD -Generate code for a particular \s-1MIPS\s0 Instruction Set Architecture level. -\&\fB\-mips1\fR is an alias for \fB\-march=r3000\fR, \fB\-mips2\fR is an -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, \fB\-mips64\fR, and -\&\fB\-mips64r2\fR -correspond to generic -\&\fB\s-1MIPS\s0 V\fR, \fB\s-1MIPS32\s0\fR, \fB\s-1MIPS32\s0 Release 2\fR, \fB\s-1MIPS64\s0\fR, -and \fB\s-1MIPS64\s0 Release 2\fR -\&\s-1ISA\s0 processors, respectively. -.IP "\fB\-march=\fR\fI\s-1CPU\s0\fR" 4 -.IX Item "-march=CPU" -Generate code for a particular \s-1MIPS\s0 cpu. -.IP "\fB\-mtune=\fR\fIcpu\fR" 4 -.IX Item "-mtune=cpu" -Schedule and tune for a particular \s-1MIPS\s0 cpu. -.IP "\fB\-mfix7000\fR" 4 -.IX Item "-mfix7000" -.PD 0 -.IP "\fB\-mno\-fix7000\fR" 4 -.IX Item "-mno-fix7000" -.PD -Cause nops to be inserted if the read of the destination register -of an mfhi or mflo instruction occurs in the following two instructions. -.IP "\fB\-mdebug\fR" 4 -.IX Item "-mdebug" -.PD 0 -.IP "\fB\-no\-mdebug\fR" 4 -.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. -.IP "\fB\-mpdr\fR" 4 -.IX Item "-mpdr" -.PD 0 -.IP "\fB\-mno\-pdr\fR" 4 -.IX Item "-mno-pdr" -.PD -Control generation of \f(CW\*(C`.pdr\*(C'\fR 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 -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. -.IP "\fB\-mips16\fR" 4 -.IX Item "-mips16" -.PD 0 -.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 -\&\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 -.IX Item "-mips3d" -.PD 0 -.IP "\fB\-no\-mips3d\fR" 4 -.IX Item "-no-mips3d" -.PD -Generate code for the \s-1MIPS\-3D\s0 Application Specific Extension. -This tells the assembler to accept \s-1MIPS\-3D\s0 instructions. -\&\fB\-no\-mips3d\fR turns off this option. -.IP "\fB\-mdmx\fR" 4 -.IX Item "-mdmx" -.PD 0 -.IP "\fB\-no\-mdmx\fR" 4 -.IX Item "-no-mdmx" -.PD -Generate code for the \s-1MDMX\s0 Application Specific Extension. -This tells the assembler to accept \s-1MDMX\s0 instructions. -\&\fB\-no\-mdmx\fR turns off this option. -.IP "\fB\-\-construct\-floats\fR" 4 -.IX Item "--construct-floats" -.PD 0 -.IP "\fB\-\-no\-construct\-floats\fR" 4 -.IX Item "--no-construct-floats" -.PD -The \fB\-\-no\-construct\-floats\fR option disables the construction of -double width floating point constants by loading the two halves of the -value into the two single width floating point registers that make up -the double width register. By default \fB\-\-construct\-floats\fR is -selected, allowing construction of these floating point constants. -.IP "\fB\-\-emulation=\fR\fIname\fR" 4 -.IX Item "--emulation=name" -This option causes \fBas\fR to emulate \fBas\fR configured -for some other target, in all respects, including output format (choosing -between \s-1ELF\s0 and \s-1ECOFF\s0 only), handling of pseudo-opcodes which may generate -debugging information or store symbol table information, and default -endianness. The available configuration names are: \fBmipsecoff\fR, -\&\fBmipself\fR, \fBmipslecoff\fR, \fBmipsbecoff\fR, \fBmipslelf\fR, -\&\fBmipsbelf\fR. The first two do not alter the default endianness from that -of the primary target for which the assembler was configured; the others change -the default to little\- or big-endian as indicated by the \fBb\fR or \fBl\fR -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. -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 -configuration includes support for both. -.Sp -Eventually, this option will support more configurations, with more -fine-grained control over the assembler's behavior, and will be supported for -more processors. -.IP "\fB\-nocpp\fR" 4 -.IX Item "-nocpp" -\&\fBas\fR ignores this option. It is accepted for compatibility with -the native tools. -.IP "\fB\-\-trap\fR" 4 -.IX Item "--trap" -.PD 0 -.IP "\fB\-\-no\-trap\fR" 4 -.IX Item "--no-trap" -.IP "\fB\-\-break\fR" 4 -.IX Item "--break" -.IP "\fB\-\-no\-break\fR" 4 -.IX Item "--no-break" -.PD -Control how to deal with multiplication overflow and division by zero. -\&\fB\-\-trap\fR or \fB\-\-no\-break\fR (which are synonyms) take a trap exception -(and only work for Instruction Set Architecture level 2 and higher); -\&\fB\-\-break\fR or \fB\-\-no\-trap\fR (also synonyms, and the default) take a -break exception. -.IP "\fB\-n\fR" 4 -.IX Item "-n" -When this option is used, \fBas\fR will issue a warning every -time it generates a nop instruction from a macro. -.PP -The following options are available when as is configured for -an MCore processor. -.IP "\fB\-jsri2bsr\fR" 4 -.IX Item "-jsri2bsr" -.PD 0 -.IP "\fB\-nojsri2bsr\fR" 4 -.IX Item "-nojsri2bsr" -.PD -Enable or disable the \s-1JSRI\s0 to \s-1BSR\s0 transformation. By default this is enabled. -The command line option \fB\-nojsri2bsr\fR can be used to disable it. -.IP "\fB\-sifilter\fR" 4 -.IX Item "-sifilter" -.PD 0 -.IP "\fB\-nosifilter\fR" 4 -.IX Item "-nosifilter" -.PD -Enable or disable the silicon filter behaviour. By default this is disabled. -The default can be overridden by the \fB\-sifilter\fR command line option. -.IP "\fB\-relax\fR" 4 -.IX Item "-relax" -Alter jump instructions for long displacements. -.IP "\fB\-mcpu=[210|340]\fR" 4 -.IX Item "-mcpu=[210|340]" -Select the cpu type on the target hardware. This controls which instructions -can be assembled. -.IP "\fB\-EB\fR" 4 -.IX Item "-EB" -Assemble for a big endian target. -.IP "\fB\-EL\fR" 4 -.IX Item "-EL" -Assemble for a little endian target. -.PP -See the info pages for documentation of the MMIX-specific options. -.PP -The following options are available when as is configured for -an Xtensa processor. -.IP "\fB\-\-text\-section\-literals | \-\-no\-text\-section\-literals\fR" 4 -.IX Item "--text-section-literals | --no-text-section-literals" -With \fB\-\-text\-section\-literals\fR, literal pools are interspersed -in the text section. The default is -\&\fB\-\-no\-text\-section\-literals\fR, which places literals in a -separate section in the output file. These options only affect literals -referenced via PC-relative \f(CW\*(C`L32R\*(C'\fR instructions; literals for -absolute mode \f(CW\*(C`L32R\*(C'\fR instructions are handled separately. -.IP "\fB\-\-absolute\-literals | \-\-no\-absolute\-literals\fR" 4 -.IX Item "--absolute-literals | --no-absolute-literals" -Indicate to the assembler whether \f(CW\*(C`L32R\*(C'\fR instructions use absolute -or PC-relative addressing. The default is to assume absolute addressing -if the Xtensa processor includes the absolute \f(CW\*(C`L32R\*(C'\fR addressing -option. Otherwise, only the PC-relative \f(CW\*(C`L32R\*(C'\fR mode can be used. -.IP "\fB\-\-target\-align | \-\-no\-target\-align\fR" 4 -.IX Item "--target-align | --no-target-align" -Enable or disable automatic alignment to reduce branch penalties at the -expense of some code density. The default is \fB\-\-target\-align\fR. -.IP "\fB\-\-longcalls | \-\-no\-longcalls\fR" 4 -.IX Item "--longcalls | --no-longcalls" -Enable or disable transformation of call instructions to allow calls -across a greater range of addresses. The default is -\&\fB\-\-no\-longcalls\fR. -.IP "\fB\-\-transform | \-\-no\-transform\fR" 4 -.IX Item "--transform | --no-transform" -Enable or disable all assembler transformations of Xtensa instructions. -The default is \fB\-\-transform\fR; -\&\fB\-\-no\-transform\fR should be used only in the rare cases when the -instructions must be exactly as specified in the assembly source. -.SH "SEE ALSO" -.IX Header "SEE ALSO" -\&\fIgcc\fR\|(1), \fIld\fR\|(1), and the Info entries for \fIbinutils\fR and \fIld\fR. -.SH "COPYRIGHT" -.IX Header "COPYRIGHT" -Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc. -.PP -Permission is granted to copy, distribute and/or modify this document -under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1 -or any later version published by the Free Software Foundation; -with no Invariant Sections, with no Front-Cover Texts, and with no -Back-Cover Texts. A copy of the license is included in the -section entitled ``\s-1GNU\s0 Free Documentation License''. diff --git a/gas/doc/as.info b/gas/doc/as.info deleted file mode 100644 index 2dbc45aed78..00000000000 --- a/gas/doc/as.info +++ /dev/null @@ -1,490 +0,0 @@ -This is ../.././gas/doc/as.info, produced by makeinfo version 4.7 from -../.././gas/doc/as.texinfo. - -START-INFO-DIR-ENTRY -* As: (as). The GNU assembler. -* Gas: (as). The GNU assembler. -END-INFO-DIR-ENTRY - - This file documents the GNU Assembler "as". - - Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 -Free Software Foundation, Inc. - - Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.1 or -any later version published by the Free Software Foundation; with no -Invariant Sections, with no Front-Cover Texts, and with no Back-Cover -Texts. A copy of the license is included in the section entitled "GNU -Free Documentation License". - - -Indirect: -as.info-1: 778 -as.info-2: 299494 -as.info-3: 569799 - -Tag Table: -(Indirect) -Node: Top778 -Node: Overview1698 -Node: Manual24914 -Node: GNU Assembler25858 -Node: Object Formats27029 -Node: Command Line27481 -Node: Input Files28568 -Node: Object30549 -Node: Errors31501 -Node: Invoking32696 -Node: a34645 -Node: alternate36417 -Node: D36589 -Node: f36822 -Node: I37330 -Node: K37874 -Node: L38177 -Node: listing39014 -Node: M40606 -Node: MD45007 -Node: o45433 -Node: R45888 -Node: statistics46918 -Node: traditional-format47325 -Node: v47798 -Node: W48073 -Node: Z48980 -Node: Syntax49502 -Node: Preprocessing50093 -Node: Whitespace51656 -Node: Comments52052 -Node: Symbol Intro54245 -Node: Statements54935 -Node: Constants56851 -Node: Characters57482 -Node: Strings57984 -Node: Chars60150 -Node: Numbers60904 -Node: Integers61444 -Node: Bignums62100 -Node: Flonums62456 -Node: Sections64211 -Node: Secs Background64589 -Node: Ld Sections69639 -Node: As Sections72023 -Node: Sub-Sections72933 -Node: bss76080 -Node: Symbols77030 -Node: Labels77678 -Node: Setting Symbols78409 -Node: Symbol Names78779 -Node: Dot83248 -Node: Symbol Attributes83695 -Node: Symbol Value84432 -Node: Symbol Type85477 -Node: a.out Symbols85865 -Node: Symbol Desc86127 -Node: Symbol Other86422 -Node: COFF Symbols86591 -Node: SOM Symbols87264 -Node: Expressions87706 -Node: Empty Exprs88455 -Node: Integer Exprs88802 -Node: Arguments89197 -Node: Operators90303 -Node: Prefix Ops90638 -Node: Infix Ops90966 -Node: Pseudo Ops93363 -Node: Abort98387 -Node: ABORT98792 -Node: Align99059 -Node: Ascii101353 -Node: Asciz101662 -Node: Balign101907 -Node: Byte103770 -Node: Comm104008 -Node: CFI directives105382 -Node: Data107638 -Node: Def107965 -Node: Desc108340 -Node: Dim108840 -Node: Double109238 -Node: Eject109576 -Node: Else109751 -Node: Elseif110047 -Node: End110337 -Node: Endef110552 -Node: Endfunc110882 -Node: Endif111057 -Node: Equ111318 -Node: Equiv111627 -Node: Err112127 -Node: Error112437 -Node: Exitm112882 -Node: Extern113051 -Node: Fail113312 -Node: File113757 -Node: Fill114373 -Node: Float115337 -Node: Func115679 -Node: Global116269 -Node: Hidden117019 -Node: hword117598 -Node: Ident117926 -Node: If118232 -Node: Incbin121028 -Node: Include121723 -Node: Int122274 -Node: Internal122655 -Node: Irp123303 -Node: Irpc124108 -Node: Lcomm124933 -Node: Lflags125681 -Node: Line125875 -Node: Linkonce126908 -Node: Ln128135 -Node: MRI128290 -Node: List128628 -Node: Long129238 -Node: Macro129414 -Node: Altmacro132152 -Node: Noaltmacro133482 -Node: Nolist133650 -Node: Octa134080 -Node: Org134414 -Node: P2align135697 -Node: Previous137625 -Node: PopSection138319 -Node: Print138827 -Node: Protected139056 -Node: Psize139703 -Node: Purgem140387 -Node: PushSection140608 -Node: Quad141165 -Node: Rept141620 -Node: Sbttl142033 -Node: Scl142398 -Node: Section142901 -Node: Set148040 -Node: Short148599 -Node: Single148919 -Node: Size149264 -Node: Sleb128150078 -Node: Skip150400 -Node: Space150722 -Node: Stab151614 -Node: String153616 -Node: Struct154042 -Node: SubSection154765 -Node: Symver155326 -Node: Tag157717 -Node: Text158232 -Node: Title158551 -Node: Type158930 -Node: Uleb128160147 -Node: Val160469 -Node: Version160837 -Node: VTableEntry161110 -Node: VTableInherit161398 -Node: Warning161844 -Node: Weak162078 -Node: Word162744 -Node: Deprecated164587 -Node: Machine Dependencies164822 -Node: AMD29K-Dependent167602 -Node: AMD29K Options167993 -Node: AMD29K Syntax168176 -Node: AMD29K-Macros168452 -Node: AMD29K-Chars168716 -Node: AMD29K-Regs168992 -Node: AMD29K Floating Point170271 -Node: AMD29K Directives170486 -Node: AMD29K Opcodes171906 -Node: Alpha-Dependent172251 -Node: Alpha Notes172690 -Node: Alpha Options172971 -Node: Alpha Syntax175169 -Node: Alpha-Chars175638 -Node: Alpha-Regs175869 -Node: Alpha-Relocs176256 -Node: Alpha Floating Point182247 -Node: Alpha Directives182469 -Node: Alpha Opcodes187992 -Node: ARC-Dependent188287 -Node: ARC Options188670 -Node: ARC Syntax189739 -Node: ARC-Chars189971 -Node: ARC-Regs190103 -Node: ARC Floating Point190227 -Node: ARC Directives190538 -Node: ARC Opcodes196509 -Node: ARM-Dependent196735 -Node: ARM Options197162 -Node: ARM Syntax202763 -Node: ARM-Chars202995 -Node: ARM-Regs203519 -Node: ARM Floating Point203704 -Node: ARM Directives203903 -Node: ARM Opcodes209677 -Node: ARM Mapping Symbols211765 -Node: CRIS-Dependent212544 -Node: CRIS-Opts212889 -Ref: march-option214507 -Node: CRIS-Expand216324 -Node: CRIS-Symbols217507 -Node: CRIS-Syntax218676 -Node: CRIS-Chars219012 -Node: CRIS-Pic219563 -Ref: crispic219759 -Node: CRIS-Regs223299 -Node: CRIS-Pseudos223716 -Ref: crisnous224492 -Node: D10V-Dependent225774 -Node: D10V-Opts226125 -Node: D10V-Syntax227088 -Node: D10V-Size227617 -Node: D10V-Subs228590 -Node: D10V-Chars229625 -Node: D10V-Regs231229 -Node: D10V-Addressing232274 -Node: D10V-Word232960 -Node: D10V-Float233475 -Node: D10V-Opcodes233786 -Node: D30V-Dependent234179 -Node: D30V-Opts234532 -Node: D30V-Syntax235207 -Node: D30V-Size235739 -Node: D30V-Subs236710 -Node: D30V-Chars237745 -Node: D30V-Guarded240043 -Node: D30V-Regs240723 -Node: D30V-Addressing241862 -Node: D30V-Float242530 -Node: D30V-Opcodes242841 -Node: H8/300-Dependent243234 -Node: H8/300 Options243646 -Node: H8/300 Syntax243855 -Node: H8/300-Chars244154 -Node: H8/300-Regs244451 -Node: H8/300-Addressing245368 -Node: H8/300 Floating Point246407 -Node: H8/300 Directives246732 -Node: H8/300 Opcodes247858 -Node: H8/500-Dependent256178 -Node: H8/500 Options256590 -Node: H8/500 Syntax256799 -Node: H8/500-Chars257098 -Node: H8/500-Regs257402 -Node: H8/500-Addressing258171 -Node: H8/500 Floating Point258801 -Node: H8/500 Directives259126 -Node: H8/500 Opcodes259454 -Node: HPPA-Dependent264566 -Node: HPPA Notes265001 -Node: HPPA Options265759 -Node: HPPA Syntax265954 -Node: HPPA Floating Point267224 -Node: HPPA Directives267430 -Node: HPPA Opcodes276116 -Node: ESA/390-Dependent276375 -Node: ESA/390 Notes276835 -Node: ESA/390 Options277626 -Node: ESA/390 Syntax277836 -Node: ESA/390 Floating Point280009 -Node: ESA/390 Directives280288 -Node: ESA/390 Opcodes283577 -Node: i386-Dependent283839 -Node: i386-Options284907 -Node: i386-Syntax285752 -Node: i386-Mnemonics288166 -Node: i386-Regs290631 -Node: i386-Prefixes292676 -Node: i386-Memory295436 -Node: i386-Jumps298373 -Node: i386-Float299494 -Node: i386-SIMD301323 -Node: i386-16bit302432 -Node: i386-Bugs304470 -Node: i386-Arch305224 -Node: i386-Notes307359 -Node: i860-Dependent308217 -Node: Notes-i860308613 -Node: Options-i860309518 -Node: Directives-i860310881 -Node: Opcodes for i860311950 -Node: i960-Dependent314117 -Node: Options-i960314520 -Node: Floating Point-i960318404 -Node: Directives-i960318672 -Node: Opcodes for i960320706 -Node: callj-i960321323 -Node: Compare-and-branch-i960321812 -Node: IA-64-Dependent323716 -Node: IA-64 Options324017 -Node: IA-64 Syntax327049 -Node: IA-64-Chars327412 -Node: IA-64-Regs327642 -Node: IA-64-Bits328568 -Node: IA-64 Opcodes329077 -Node: IP2K-Dependent329349 -Node: IP2K-Opts329577 -Node: M32R-Dependent330057 -Node: M32R-Opts330378 -Node: M32R-Directives334544 -Node: M32R-Warnings338519 -Node: M68K-Dependent341525 -Node: M68K-Opts341992 -Node: M68K-Syntax348477 -Node: M68K-Moto-Syntax350316 -Node: M68K-Float352905 -Node: M68K-Directives353425 -Node: M68K-opcodes354031 -Node: M68K-Branch354257 -Node: M68K-Chars358455 -Node: M68HC11-Dependent358868 -Node: M68HC11-Opts359399 -Node: M68HC11-Syntax363215 -Node: M68HC11-Modifiers365429 -Node: M68HC11-Directives367257 -Node: M68HC11-Float368633 -Node: M68HC11-opcodes369161 -Node: M68HC11-Branch369343 -Node: M88K-Dependent371790 -Node: M88K Directives372041 -Node: MIPS-Dependent373561 -Node: MIPS Opts374648 -Node: MIPS Object381517 -Node: MIPS Stabs383083 -Node: MIPS symbol sizes383805 -Node: MIPS ISA385474 -Node: MIPS autoextend386623 -Node: MIPS insn387353 -Node: MIPS option stack387850 -Node: MIPS ASE instruction generation overrides388624 -Node: MMIX-Dependent389397 -Node: MMIX-Opts389777 -Node: MMIX-Expand393381 -Node: MMIX-Syntax394696 -Ref: mmixsite395053 -Node: MMIX-Chars395894 -Node: MMIX-Symbols396548 -Node: MMIX-Regs398616 -Node: MMIX-Pseudos399641 -Ref: MMIX-loc399782 -Ref: MMIX-local400862 -Ref: MMIX-is401394 -Ref: MMIX-greg401665 -Ref: GREG-base402584 -Ref: MMIX-byte403901 -Ref: MMIX-constants404372 -Ref: MMIX-prefix405018 -Ref: MMIX-spec405392 -Node: MMIX-mmixal405726 -Node: MSP430-Dependent409223 -Node: MSP430 Options409689 -Node: MSP430 Syntax409881 -Node: MSP430-Macros410197 -Node: MSP430-Chars410928 -Node: MSP430-Regs411241 -Node: MSP430-Ext411801 -Node: MSP430 Floating Point413622 -Node: MSP430 Directives413846 -Node: MSP430 Opcodes414637 -Node: MSP430 Profiling Capability415032 -Node: PDP-11-Dependent417361 -Node: PDP-11-Options417750 -Node: PDP-11-Pseudos422821 -Node: PDP-11-Syntax423166 -Node: PDP-11-Mnemonics423917 -Node: PDP-11-Synthetic424219 -Node: PJ-Dependent424437 -Node: PJ Options424662 -Node: PPC-Dependent424939 -Node: PowerPC-Opts425226 -Node: PowerPC-Pseudo427191 -Node: SH-Dependent427790 -Node: SH Options428202 -Node: SH Syntax429056 -Node: SH-Chars429329 -Node: SH-Regs429623 -Node: SH-Addressing430237 -Node: SH Floating Point431146 -Node: SH Directives432240 -Node: SH Opcodes432610 -Node: SH64-Dependent436932 -Node: SH64 Options437295 -Node: SH64 Syntax439012 -Node: SH64-Chars439295 -Node: SH64-Regs439595 -Node: SH64-Addressing440691 -Node: SH64 Directives441874 -Node: SH64 Opcodes442984 -Node: Sparc-Dependent443700 -Node: Sparc-Opts444085 -Node: Sparc-Aligned-Data446342 -Node: Sparc-Float447197 -Node: Sparc-Directives447398 -Node: TIC54X-Dependent449358 -Node: TIC54X-Opts450084 -Node: TIC54X-Block451127 -Node: TIC54X-Env451487 -Node: TIC54X-Constants451835 -Node: TIC54X-Subsyms452237 -Node: TIC54X-Locals454146 -Node: TIC54X-Builtins454890 -Node: TIC54X-Ext457361 -Node: TIC54X-Directives457932 -Node: TIC54X-Macros468834 -Node: TIC54X-MMRegs470944 -Node: Z8000-Dependent471160 -Node: Z8000 Options472124 -Node: Z8000 Syntax472341 -Node: Z8000-Chars472631 -Node: Z8000-Regs472864 -Node: Z8000-Addressing473654 -Node: Z8000 Directives474771 -Node: Z8000 Opcodes476380 -Node: Vax-Dependent486322 -Node: VAX-Opts486839 -Node: VAX-float490574 -Node: VAX-directives491206 -Node: VAX-opcodes492067 -Node: VAX-branch492456 -Node: VAX-operands494963 -Node: VAX-no495726 -Node: V850-Dependent495963 -Node: V850 Options496361 -Node: V850 Syntax498750 -Node: V850-Chars498990 -Node: V850-Regs499155 -Node: V850 Floating Point500723 -Node: V850 Directives500929 -Node: V850 Opcodes502072 -Node: Xtensa-Dependent507964 -Node: Xtensa Options508695 -Node: Xtensa Syntax511466 -Node: Xtensa Opcodes513355 -Node: Xtensa Registers515149 -Node: Xtensa Optimizations515782 -Node: Density Instructions516234 -Node: Xtensa Automatic Alignment517336 -Node: Xtensa Relaxation520082 -Node: Xtensa Branch Relaxation520990 -Node: Xtensa Call Relaxation522362 -Node: Xtensa Immediate Relaxation524148 -Node: Xtensa Directives526722 -Node: Schedule Directive528430 -Node: Longcalls Directive528770 -Node: Transform Directive529314 -Node: Literal Directive530056 -Node: Literal Position Directive531841 -Node: Literal Prefix Directive533540 -Node: Absolute Literals Directive535703 -Node: Reporting Bugs537010 -Node: Bug Criteria537734 -Node: Bug Reporting538499 -Node: Acknowledgements545132 -Ref: Acknowledgements-Footnote-1550051 -Node: GNU Free Documentation License550077 -Node: Index569799 - -End Tag Table diff --git a/gas/doc/as.info-1 b/gas/doc/as.info-1 deleted file mode 100644 index 36148e5696c..00000000000 --- a/gas/doc/as.info-1 +++ /dev/null @@ -1,8426 +0,0 @@ -This is ../.././gas/doc/as.info, produced by makeinfo version 4.7 from -../.././gas/doc/as.texinfo. - -START-INFO-DIR-ENTRY -* As: (as). The GNU assembler. -* Gas: (as). The GNU assembler. -END-INFO-DIR-ENTRY - - This file documents the GNU Assembler "as". - - Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 -Free Software Foundation, Inc. - - Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.1 or -any later version published by the Free Software Foundation; with no -Invariant Sections, with no Front-Cover Texts, and with no Back-Cover -Texts. A copy of the license is included in the section entitled "GNU -Free Documentation License". - - -File: as.info, Node: Top, Next: Overview, Up: (dir) - -Using as -******** - -This file is a user guide to the GNU assembler `as' version 2.15.96. - - This document is distributed under the terms of the GNU Free -Documentation License. A copy of the license is included in the -section entitled "GNU Free Documentation License". - -* Menu: - -* Overview:: Overview -* Invoking:: Command-Line Options -* Syntax:: Syntax -* Sections:: Sections and Relocation -* Symbols:: Symbols -* Expressions:: Expressions -* Pseudo Ops:: Assembler Directives -* Machine Dependencies:: Machine Dependent Features -* Reporting Bugs:: Reporting Bugs -* Acknowledgements:: Who Did What -* GNU Free Documentation License:: GNU Free Documentation License -* Index:: Index - - -File: as.info, Node: Overview, Next: Invoking, Prev: Top, Up: Top - -1 Overview -********** - -Here is a brief summary of how to invoke `as'. For details, *note -Command-Line Options: Invoking. - - as [-a[cdhlns][=FILE]] [-alternate] [-D] - [-defsym SYM=VAL] [-f] [-g] [-gstabs] [-gstabs+] - [-gdwarf-2] [-help] [-I DIR] [-J] [-K] [-L] - [-listing-lhs-width=NUM] [-listing-lhs-width2=NUM] - [-listing-rhs-width=NUM] [-listing-cont-lines=NUM] - [-keep-locals] [-o OBJFILE] [-R] [-statistics] [-v] - [-version] [-version] [-W] [-warn] [-fatal-warnings] - [-w] [-x] [-Z] [-target-help] [TARGET-OPTIONS] - [-|FILES ...] - - _Target Alpha options:_ - [-mCPU] - [-mdebug | -no-mdebug] - [-relax] [-g] [-GSIZE] - [-F] [-32addr] - - _Target ARC options:_ - [-marc[5|6|7|8]] - [-EB|-EL] - - _Target ARM options:_ - [-mcpu=PROCESSOR[+EXTENSION...]] - [-march=ARCHITECTURE[+EXTENSION...]] - [-mfpu=FLOATING-POINT-FORMAT] - [-mfloat-abi=ABI] - [-meabi=VER] - [-mthumb] - [-EB|-EL] - [-mapcs-32|-mapcs-26|-mapcs-float| - -mapcs-reentrant] - [-mthumb-interwork] [-k] - - _Target CRIS options:_ - [-underscore | -no-underscore] - [-pic] [-N] - [-emulation=criself | -emulation=crisaout] - [-march=v0_v10 | -march=v10 | -march=v32 | -march=common_v10_v32] - - _Target D10V options:_ - [-O] - - _Target D30V options:_ - [-O|-n|-N] - - _Target i386 options:_ - [-32|-64] [-n] - - _Target i960 options:_ - [-ACA|-ACA_A|-ACB|-ACC|-AKA|-AKB| - -AKC|-AMC] - [-b] [-no-relax] - - _Target IA-64 options:_ - [-mconstant-gp|-mauto-pic] - [-milp32|-milp64|-mlp64|-mp64] - [-mle|mbe] - [-munwind-check=warning|-munwind-check=error] - [-mhint.b=ok|-mhint.b=warning|-mhint.b=error] - [-x|-xexplicit] [-xauto] [-xdebug] - - _Target IP2K options:_ - [-mip2022|-mip2022ext] - - _Target M32R options:_ - [-m32rx|-[no-]warn-explicit-parallel-conflicts| - -W[n]p] - - _Target M680X0 options:_ - [-l] [-m68000|-m68010|-m68020|...] - - _Target M68HC11 options:_ - [-m68hc11|-m68hc12|-m68hcs12] - [-mshort|-mlong] - [-mshort-double|-mlong-double] - [-force-long-branchs] [-short-branchs] - [-strict-direct-mode] [-print-insn-syntax] - [-print-opcodes] [-generate-example] - - _Target MCORE options:_ - [-jsri2bsr] [-sifilter] [-relax] - [-mcpu=[210|340]] - - _Target MIPS options:_ - [-nocpp] [-EL] [-EB] [-O[OPTIMIZATION LEVEL]] - [-g[DEBUG LEVEL]] [-G NUM] [-KPIC] [-call_shared] - [-non_shared] [-xgot] - [-mabi=ABI] [-32] [-n32] [-64] [-mfp32] [-mgp32] - [-march=CPU] [-mtune=CPU] [-mips1] [-mips2] - [-mips3] [-mips4] [-mips5] [-mips32] [-mips32r2] - [-mips64] [-mips64r2] - [-construct-floats] [-no-construct-floats] - [-trap] [-no-break] [-break] [-no-trap] - [-mfix7000] [-mno-fix7000] - [-mips16] [-no-mips16] - [-mips3d] [-no-mips3d] - [-mdmx] [-no-mdmx] - [-mdebug] [-no-mdebug] - [-mpdr] [-mno-pdr] - - _Target MMIX options:_ - [-fixed-special-register-names] [-globalize-symbols] - [-gnu-syntax] [-relax] [-no-predefined-symbols] - [-no-expand] [-no-merge-gregs] [-x] - [-linker-allocated-gregs] - - _Target PDP11 options:_ - [-mpic|-mno-pic] [-mall] [-mno-extensions] - [-mEXTENSION|-mno-EXTENSION] - [-mCPU] [-mMACHINE] - - _Target picoJava options:_ - [-mb|-me] - - _Target PowerPC options:_ - [-mpwrx|-mpwr2|-mpwr|-m601|-mppc|-mppc32|-m603|-m604| - -m403|-m405|-mppc64|-m620|-mppc64bridge|-mbooke| - -mbooke32|-mbooke64] - [-mcom|-many|-maltivec] [-memb] - [-mregnames|-mno-regnames] - [-mrelocatable|-mrelocatable-lib] - [-mlittle|-mlittle-endian|-mbig|-mbig-endian] - [-msolaris|-mno-solaris] - - _Target SPARC options:_ - [-Av6|-Av7|-Av8|-Asparclet|-Asparclite - -Av8plus|-Av8plusa|-Av9|-Av9a] - [-xarch=v8plus|-xarch=v8plusa] [-bump] - [-32|-64] - - _Target TIC54X options:_ - [-mcpu=54[123589]|-mcpu=54[56]lp] [-mfar-mode|-mf] - [-merrors-to-file |-me ] - - _Target Xtensa options:_ - [-[no-]text-section-literals] [-[no-]absolute-literals] - [-[no-]target-align] [-[no-]longcalls] - [-[no-]transform] - [-rename-section OLDNAME=NEWNAME] - -`-a[cdhlmns]' - Turn on listings, in any of a variety of ways: - - `-ac' - omit false conditionals - - `-ad' - omit debugging directives - - `-ah' - include high-level source - - `-al' - include assembly - - `-am' - include macro expansions - - `-an' - omit forms processing - - `-as' - include symbols - - `=file' - set the name of the listing file - - You may combine these options; for example, use `-aln' for assembly - listing without forms processing. The `=file' option, if used, - must be the last one. By itself, `-a' defaults to `-ahls'. - -`--alternate' - Begin in alternate macro mode, see *Note `.altmacro': Altmacro. - -`-D' - Ignored. This option is accepted for script compatibility with - calls to other assemblers. - -`--defsym SYM=VALUE' - Define the symbol SYM to be VALUE before assembling the input file. - VALUE must be an integer constant. As in C, a leading `0x' - indicates a hexadecimal value, and a leading `0' indicates an - octal value. - -`-f' - "fast"--skip whitespace and comment preprocessing (assume source is - compiler output). - -`-g' -`--gen-debug' - Generate debugging information for each assembler source line - using whichever debug format is preferred by the target. This - currently means either STABS, ECOFF or DWARF2. - -`--gstabs' - Generate stabs debugging information for each assembler line. This - may help debugging assembler code, if the debugger can handle it. - -`--gstabs+' - Generate stabs debugging information for each assembler line, with - GNU extensions that probably only gdb can handle, and that could - make other debuggers crash or refuse to read your program. This - may help debugging assembler code. Currently the only GNU - extension is the location of the current working directory at - assembling time. - -`--gdwarf-2' - Generate DWARF2 debugging information for each assembler line. - This may help debugging assembler code, if the debugger can handle - it. Note--this option is only supported by some targets, not all - of them. - -`--help' - Print a summary of the command line options and exit. - -`--target-help' - Print a summary of all target specific options and exit. - -`-I DIR' - Add directory DIR to the search list for `.include' directives. - -`-J' - Don't warn about signed overflow. - -`-K' - Issue warnings when difference tables altered for long - displacements. - -`-L' -`--keep-locals' - Keep (in the symbol table) local symbols. On traditional a.out - systems these start with `L', but different systems have different - local label prefixes. - -`--listing-lhs-width=NUMBER' - Set the maximum width, in words, of the output data column for an - assembler listing to NUMBER. - -`--listing-lhs-width2=NUMBER' - Set the maximum width, in words, of the output data column for - continuation lines in an assembler listing to NUMBER. - -`--listing-rhs-width=NUMBER' - Set the maximum width of an input source line, as displayed in a - listing, to NUMBER bytes. - -`--listing-cont-lines=NUMBER' - Set the maximum number of lines printed in a listing for a single - line of input to NUMBER + 1. - -`-o OBJFILE' - Name the object-file output from `as' OBJFILE. - -`-R' - Fold the data section into the text section. - -`--statistics' - Print the maximum space (in bytes) and total time (in seconds) - used by assembly. - -`--strip-local-absolute' - Remove local absolute symbols from the outgoing symbol table. - -`-v' -`-version' - Print the `as' version. - -`--version' - Print the `as' version and exit. - -`-W' -`--no-warn' - Suppress warning messages. - -`--fatal-warnings' - Treat warnings as errors. - -`--warn' - Don't suppress warning messages or treat them as errors. - -`-w' - Ignored. - -`-x' - Ignored. - -`-Z' - Generate an object file even after errors. - -`-- | FILES ...' - Standard input, or source files to assemble. - - - The following options are available when as is configured for an ARC -processor. - -`-marc[5|6|7|8]' - This option selects the core processor variant. - -`-EB | -EL' - Select either big-endian (-EB) or little-endian (-EL) output. - - The following options are available when as is configured for the ARM -processor family. - -`-mcpu=PROCESSOR[+EXTENSION...]' - Specify which ARM processor variant is the target. - -`-march=ARCHITECTURE[+EXTENSION...]' - Specify which ARM architecture variant is used by the target. - -`-mfpu=FLOATING-POINT-FORMAT' - Select which Floating Point architecture is the target. - -`-mfloat-abi=ABI' - Select which floating point ABI is in use. - -`-mthumb' - Enable Thumb only instruction decoding. - -`-mapcs-32 | -mapcs-26 | -mapcs-float | -mapcs-reentrant' - Select which procedure calling convention is in use. - -`-EB | -EL' - Select either big-endian (-EB) or little-endian (-EL) output. - -`-mthumb-interwork' - Specify that the code has been generated with interworking between - Thumb and ARM code in mind. - -`-k' - Specify that PIC code has been generated. - - See the info pages for documentation of the CRIS-specific options. - - The following options are available when as is configured for a D10V -processor. -`-O' - Optimize output by parallelizing instructions. - - The following options are available when as is configured for a D30V -processor. -`-O' - Optimize output by parallelizing instructions. - -`-n' - Warn when nops are generated. - -`-N' - Warn when a nop after a 32-bit multiply instruction is generated. - - The following options are available when as is configured for the -Intel 80960 processor. - -`-ACA | -ACA_A | -ACB | -ACC | -AKA | -AKB | -AKC | -AMC' - Specify which variant of the 960 architecture is the target. - -`-b' - Add code to collect statistics about branches taken. - -`-no-relax' - Do not alter compare-and-branch instructions for long - displacements; error if necessary. - - - The following options are available when as is configured for the -Ubicom IP2K series. - -`-mip2022ext' - Specifies that the extended IP2022 instructions are allowed. - -`-mip2022' - Restores the default behaviour, which restricts the permitted - instructions to just the basic IP2022 ones. - - - The following options are available when as is configured for the -Renesas M32R (formerly Mitsubishi M32R) series. - -`--m32rx' - Specify which processor in the M32R family is the target. The - default is normally the M32R, but this option changes it to the - M32RX. - -`--warn-explicit-parallel-conflicts or --Wp' - Produce warning messages when questionable parallel constructs are - encountered. - -`--no-warn-explicit-parallel-conflicts or --Wnp' - Do not produce warning messages when questionable parallel - constructs are encountered. - - - The following options are available when as is configured for the -Motorola 68000 series. - -`-l' - Shorten references to undefined symbols, to one word instead of - two. - -`-m68000 | -m68008 | -m68010 | -m68020 | -m68030' -`| -m68040 | -m68060 | -m68302 | -m68331 | -m68332' -`| -m68333 | -m68340 | -mcpu32 | -m5200' - Specify what processor in the 68000 family is the target. The - default is normally the 68020, but this can be changed at - configuration time. - -`-m68881 | -m68882 | -mno-68881 | -mno-68882' - The target machine does (or does not) have a floating-point - coprocessor. The default is to assume a coprocessor for 68020, - 68030, and cpu32. Although the basic 68000 is not compatible with - the 68881, a combination of the two can be specified, since it's - possible to do emulation of the coprocessor instructions with the - main processor. - -`-m68851 | -mno-68851' - The target machine does (or does not) have a memory-management - unit coprocessor. The default is to assume an MMU for 68020 and - up. - - - For details about the PDP-11 machine dependent features options, see -*Note PDP-11-Options::. - -`-mpic | -mno-pic' - Generate position-independent (or position-dependent) code. The - default is `-mpic'. - -`-mall' -`-mall-extensions' - Enable all instruction set extensions. This is the default. - -`-mno-extensions' - Disable all instruction set extensions. - -`-mEXTENSION | -mno-EXTENSION' - Enable (or disable) a particular instruction set extension. - -`-mCPU' - Enable the instruction set extensions supported by a particular - CPU, and disable all other extensions. - -`-mMACHINE' - Enable the instruction set extensions supported by a particular - machine model, and disable all other extensions. - - The following options are available when as is configured for a -picoJava processor. - -`-mb' - Generate "big endian" format output. - -`-ml' - Generate "little endian" format output. - - - The following options are available when as is configured for the -Motorola 68HC11 or 68HC12 series. - -`-m68hc11 | -m68hc12 | -m68hcs12' - Specify what processor is the target. The default is defined by - the configuration option when building the assembler. - -`-mshort' - Specify to use the 16-bit integer ABI. - -`-mlong' - Specify to use the 32-bit integer ABI. - -`-mshort-double' - Specify to use the 32-bit double ABI. - -`-mlong-double' - Specify to use the 64-bit double ABI. - -`--force-long-branchs' - Relative branches are turned into absolute ones. This concerns - conditional branches, unconditional branches and branches to a sub - routine. - -`-S | --short-branchs' - Do not turn relative branchs into absolute ones when the offset is - out of range. - -`--strict-direct-mode' - Do not turn the direct addressing mode into extended addressing - mode when the instruction does not support direct addressing mode. - -`--print-insn-syntax' - Print the syntax of instruction in case of error. - -`--print-opcodes' - print the list of instructions with syntax and then exit. - -`--generate-example' - print an example of instruction for each possible instruction and - then exit. This option is only useful for testing `as'. - - - The following options are available when `as' is configured for the -SPARC architecture: - -`-Av6 | -Av7 | -Av8 | -Asparclet | -Asparclite' -`-Av8plus | -Av8plusa | -Av9 | -Av9a' - Explicitly select a variant of the SPARC architecture. - - `-Av8plus' and `-Av8plusa' select a 32 bit environment. `-Av9' - and `-Av9a' select a 64 bit environment. - - `-Av8plusa' and `-Av9a' enable the SPARC V9 instruction set with - UltraSPARC extensions. - -`-xarch=v8plus | -xarch=v8plusa' - For compatibility with the Solaris v9 assembler. These options are - equivalent to -Av8plus and -Av8plusa, respectively. - -`-bump' - Warn when the assembler switches to another architecture. - - The following options are available when as is configured for the -'c54x architecture. - -`-mfar-mode' - Enable extended addressing mode. All addresses and relocations - will assume extended addressing (usually 23 bits). - -`-mcpu=CPU_VERSION' - Sets the CPU version being compiled for. - -`-merrors-to-file FILENAME' - Redirect error output to a file, for broken systems which don't - support such behaviour in the shell. - - The following options are available when as is configured for a MIPS -processor. - -`-G NUM' - This option sets the largest size of an object that can be - referenced implicitly with the `gp' register. It is only accepted - for targets that use ECOFF format, such as a DECstation running - Ultrix. The default value is 8. - -`-EB' - Generate "big endian" format output. - -`-EL' - Generate "little endian" format output. - -`-mips1' -`-mips2' -`-mips3' -`-mips4' -`-mips5' -`-mips32' -`-mips32r2' -`-mips64' -`-mips64r2' - Generate code for a particular MIPS Instruction Set Architecture - level. `-mips1' is an alias for `-march=r3000', `-mips2' is an - alias for `-march=r6000', `-mips3' is an alias for `-march=r4000' - and `-mips4' is an alias for `-march=r8000'. `-mips5', `-mips32', - `-mips32r2', `-mips64', and `-mips64r2' correspond to generic - `MIPS V', `MIPS32', `MIPS32 Release 2', `MIPS64', and `MIPS64 - Release 2' ISA processors, respectively. - -`-march=CPU' - Generate code for a particular MIPS cpu. - -`-mtune=CPU' - Schedule and tune for a particular MIPS cpu. - -`-mfix7000' -`-mno-fix7000' - Cause nops to be inserted if the read of the destination register - of an mfhi or mflo instruction occurs in the following two - instructions. - -`-mdebug' -`-no-mdebug' - Cause stabs-style debugging output to go into an ECOFF-style - .mdebug section instead of the standard ELF .stabs sections. - -`-mpdr' -`-mno-pdr' - Control generation of `.pdr' sections. - -`-mgp32' -`-mfp32' - The register sizes are normally inferred from the ISA and ABI, but - these flags force a certain group of registers to be treated as 32 - bits wide at all times. `-mgp32' controls the size of - general-purpose registers and `-mfp32' controls the size of - floating-point registers. - -`-mips16' -`-no-mips16' - Generate code for the MIPS 16 processor. This is equivalent to - putting `.set mips16' at the start of the assembly file. - `-no-mips16' turns off this option. - -`-mips3d' -`-no-mips3d' - Generate code for the MIPS-3D Application Specific Extension. - This tells the assembler to accept MIPS-3D instructions. - `-no-mips3d' turns off this option. - -`-mdmx' -`-no-mdmx' - Generate code for the MDMX Application Specific Extension. This - tells the assembler to accept MDMX instructions. `-no-mdmx' turns - off this option. - -`--construct-floats' -`--no-construct-floats' - The `--no-construct-floats' option disables the construction of - double width floating point constants by loading the two halves of - the value into the two single width floating point registers that - make up the double width register. By default - `--construct-floats' is selected, allowing construction of these - floating point constants. - -`--emulation=NAME' - This option causes `as' to emulate `as' configured for some other - target, in all respects, including output format (choosing between - ELF and ECOFF only), handling of pseudo-opcodes which may generate - debugging information or store symbol table information, and - default endianness. The available configuration names are: - `mipsecoff', `mipself', `mipslecoff', `mipsbecoff', `mipslelf', - `mipsbelf'. The first two do not alter the default endianness - from that of the primary target for which the assembler was - configured; the others change the default to little- or big-endian - as indicated by the `b' or `l' in the name. Using `-EB' or `-EL' - will override the endianness selection in any case. - - This option is currently supported only when the primary target - `as' is configured for is a MIPS ELF or ECOFF target. - Furthermore, the primary target or others specified with - `--enable-targets=...' at configuration time must include support - for the other format, if both are to be available. For example, - the Irix 5 configuration includes support for both. - - Eventually, this option will support more configurations, with more - fine-grained control over the assembler's behavior, and will be - supported for more processors. - -`-nocpp' - `as' ignores this option. It is accepted for compatibility with - the native tools. - -`--trap' -`--no-trap' -`--break' -`--no-break' - Control how to deal with multiplication overflow and division by - zero. `--trap' or `--no-break' (which are synonyms) take a trap - exception (and only work for Instruction Set Architecture level 2 - and higher); `--break' or `--no-trap' (also synonyms, and the - default) take a break exception. - -`-n' - When this option is used, `as' will issue a warning every time it - generates a nop instruction from a macro. - - The following options are available when as is configured for an -MCore processor. - -`-jsri2bsr' -`-nojsri2bsr' - Enable or disable the JSRI to BSR transformation. By default this - is enabled. The command line option `-nojsri2bsr' can be used to - disable it. - -`-sifilter' -`-nosifilter' - Enable or disable the silicon filter behaviour. By default this - is disabled. The default can be overridden by the `-sifilter' - command line option. - -`-relax' - Alter jump instructions for long displacements. - -`-mcpu=[210|340]' - Select the cpu type on the target hardware. This controls which - instructions can be assembled. - -`-EB' - Assemble for a big endian target. - -`-EL' - Assemble for a little endian target. - - - See the info pages for documentation of the MMIX-specific options. - - The following options are available when as is configured for an -Xtensa processor. - -`--text-section-literals | --no-text-section-literals' - With `--text-section-literals', literal pools are interspersed in - the text section. The default is `--no-text-section-literals', - which places literals in a separate section in the output file. - These options only affect literals referenced via PC-relative - `L32R' instructions; literals for absolute mode `L32R' - instructions are handled separately. - -`--absolute-literals | --no-absolute-literals' - Indicate to the assembler whether `L32R' instructions use absolute - or PC-relative addressing. The default is to assume absolute - addressing if the Xtensa processor includes the absolute `L32R' - addressing option. Otherwise, only the PC-relative `L32R' mode - can be used. - -`--target-align | --no-target-align' - Enable or disable automatic alignment to reduce branch penalties - at the expense of some code density. The default is - `--target-align'. - -`--longcalls | --no-longcalls' - Enable or disable transformation of call instructions to allow - calls across a greater range of addresses. The default is - `--no-longcalls'. - -`--transform | --no-transform' - Enable or disable all assembler transformations of Xtensa - instructions. The default is `--transform'; `--no-transform' - should be used only in the rare cases when the instructions must - be exactly as specified in the assembly source. - -* Menu: - -* Manual:: Structure of this Manual -* GNU Assembler:: The GNU Assembler -* Object Formats:: Object File Formats -* Command Line:: Command Line -* Input Files:: Input Files -* Object:: Output (Object) File -* Errors:: Error and Warning Messages - - -File: as.info, Node: Manual, Next: GNU Assembler, Up: Overview - -1.1 Structure of this Manual -============================ - -This manual is intended to describe what you need to know to use GNU -`as'. We cover the syntax expected in source files, including notation -for symbols, constants, and expressions; the directives that `as' -understands; and of course how to invoke `as'. - - This manual also describes some of the machine-dependent features of -various flavors of the assembler. - - On the other hand, this manual is _not_ intended as an introduction -to programming in assembly language--let alone programming in general! -In a similar vein, we make no attempt to introduce the machine -architecture; we do _not_ describe the instruction set, standard -mnemonics, registers or addressing modes that are standard to a -particular architecture. You may want to consult the manufacturer's -machine architecture manual for this information. - - -File: as.info, Node: GNU Assembler, Next: Object Formats, Prev: Manual, Up: Overview - -1.2 The GNU Assembler -===================== - -GNU `as' is really a family of assemblers. If you use (or have used) -the GNU 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, including object file formats, most -assembler directives (often called "pseudo-ops") and assembler syntax. - - `as' is primarily intended to assemble the output of the GNU C -compiler `gcc' for use by the linker `ld'. Nevertheless, we've tried -to make `as' assemble correctly everything that other assemblers for -the same machine would assemble. Any exceptions are documented -explicitly (*note Machine Dependencies::). This doesn't mean `as' -always uses the same syntax as another assembler for the same -architecture; for example, we know of several incompatible versions of -680x0 assembly language syntax. - - Unlike older assemblers, `as' is designed to assemble a source -program in one pass of the source file. This has a subtle impact on the -`.org' directive (*note `.org': Org.). - - -File: as.info, Node: Object Formats, Next: Command Line, Prev: GNU Assembler, Up: Overview - -1.3 Object File Formats -======================= - -The GNU assembler can be configured to produce several alternative -object file formats. For the most part, this does not affect how you -write assembly language programs; but directives for debugging symbols -are typically different in different file formats. *Note Symbol -Attributes: Symbol Attributes. - - -File: as.info, Node: Command Line, Next: Input Files, Prev: Object Formats, Up: Overview - -1.4 Command Line -================ - -After the program name `as', the command line may contain options and -file names. Options may appear in any order, and may be before, after, -or between file names. The order of file names is significant. - - `--' (two hyphens) by itself names the standard input file -explicitly, as one of the files for `as' to assemble. - - Except for `--' any command line argument that begins with a hyphen -(`-') is an option. Each option changes the behavior of `as'. No -option changes the way another option works. An option is a `-' -followed by one or more letters; the case of the letter is important. -All options are optional. - - Some options expect exactly one file name to follow them. The file -name may either immediately follow the option's letter (compatible with -older assemblers) or it may be the next command argument (GNU -standard). These two command lines are equivalent: - - as -o my-object-file.o mumble.s - as -omy-object-file.o mumble.s - - -File: as.info, Node: Input Files, Next: Object, Prev: Command Line, Up: Overview - -1.5 Input Files -=============== - -We use the phrase "source program", abbreviated "source", to describe -the program input to one run of `as'. The program may be in one or -more files; how the source is partitioned into files doesn't change the -meaning of the source. - - The source program is a concatenation of the text in all the files, -in the order specified. - - Each time you run `as' it assembles exactly one source program. The -source program is made up of one or more files. (The standard input is -also a file.) - - You give `as' a command line that has zero or more input file names. -The input files are read (from left file name to right). A command -line argument (in any position) that has no special meaning is taken to -be an input file name. - - If you give `as' no file names it attempts to read one input file -from the `as' standard input, which is normally your terminal. You may -have to type to tell `as' there is no more program to assemble. - - Use `--' if you need to explicitly name the standard input file in -your command line. - - If the source is empty, `as' produces a small, empty object file. - -Filenames and Line-numbers --------------------------- - -There are two ways of locating a line in the input file (or files) and -either may be used in reporting error messages. One way refers to a -line number in a physical file; the other refers to a line number in a -"logical" file. *Note Error and Warning Messages: Errors. - - "Physical files" are those files named in the command line given to -`as'. - - "Logical files" are simply names declared explicitly by assembler -directives; they bear no relation to physical files. Logical file -names help error messages reflect the original source file, when `as' -source is itself synthesized from other files. `as' understands the -`#' directives emitted by the `gcc' preprocessor. See also *Note -`.file': File. - - -File: as.info, Node: Object, Next: Errors, Prev: Input Files, Up: Overview - -1.6 Output (Object) File -======================== - -Every time you run `as' it produces an output file, which is your -assembly language program translated into numbers. This file is the -object file. Its default name is `a.out', or `b.out' when `as' is -configured for the Intel 80960. You can give it another name by using -the `-o' option. Conventionally, object file names end with `.o'. The -default name is used for historical reasons: older assemblers were -capable of assembling self-contained programs directly into a runnable -program. (For some formats, this isn't currently possible, but it can -be done for the `a.out' format.) - - The object file is meant for input to the linker `ld'. It contains -assembled program code, information to help `ld' integrate the -assembled program into a runnable file, and (optionally) symbolic -information for the debugger. - - -File: as.info, Node: Errors, Prev: Object, Up: Overview - -1.7 Error and Warning Messages -============================== - -`as' may write warnings and error messages to the standard error file -(usually your terminal). This should not happen when a compiler runs -`as' automatically. Warnings report an assumption made so that `as' -could keep assembling a flawed program; errors report a grave problem -that stops the assembly. - - Warning messages have the format - - file_name:NNN:Warning Message Text - -(where NNN is a line number). If a logical file name has been given -(*note `.file': File.) it is used for the filename, otherwise the name -of the current input file is used. If a logical line number was given -(*note `.line': Line.) then it is used to calculate the number printed, -otherwise the actual line in the current source file is printed. The -message text is intended to be self explanatory (in the grand Unix -tradition). - - Error messages have the format - file_name:NNN:FATAL:Error Message Text - The file name and line number are derived as for warning messages. -The actual message text may be rather less explanatory because many of -them aren't supposed to happen. - - -File: as.info, Node: Invoking, Next: Syntax, Prev: Overview, Up: Top - -2 Command-Line Options -********************** - -This chapter describes command-line options available in _all_ versions -of the GNU assembler; *note Machine Dependencies::, for options specific -to particular machine architectures. - - If you are invoking `as' via the GNU C compiler, you can use the -`-Wa' option to pass arguments through to the assembler. The assembler -arguments must be separated from each other (and the `-Wa') by commas. -For example: - - gcc -c -g -O -Wa,-alh,-L file.c - -This passes two options to the assembler: `-alh' (emit a listing to -standard output with high-level and assembly source) and `-L' (retain -local symbols in the symbol table). - - Usually you do not need to use this `-Wa' mechanism, since many -compiler command-line options are automatically passed to the assembler -by the compiler. (You can call the GNU compiler driver with the `-v' -option to see precisely what options it passes to each compilation -pass, including the assembler.) - -* Menu: - -* a:: -a[cdhlns] enable listings -* alternate:: --alternate enable alternate macro syntax -* D:: -D for compatibility -* f:: -f to work faster -* I:: -I for .include search path - -* K:: -K for difference tables - -* L:: -L to retain local labels -* listing:: --listing-XXX to configure listing output -* M:: -M or --mri to assemble in MRI compatibility mode -* MD:: --MD for dependency tracking -* o:: -o to name the object file -* R:: -R to join data and text sections -* statistics:: --statistics to see statistics about assembly -* traditional-format:: --traditional-format for compatible output -* v:: -v to announce version -* W:: -W, --no-warn, --warn, --fatal-warnings to control warnings -* Z:: -Z to make object file even after errors - - -File: as.info, Node: a, Next: alternate, Up: Invoking - -2.1 Enable Listings: `-a[cdhlns]' -================================= - -These options enable listing output from the assembler. By itself, -`-a' requests high-level, assembly, and symbols listing. You can use -other letters to select specific options for the list: `-ah' requests a -high-level language listing, `-al' requests an output-program assembly -listing, and `-as' requests a symbol table listing. High-level -listings require that a compiler debugging option like `-g' be used, -and that assembly listings (`-al') be requested also. - - Use the `-ac' option to omit false conditionals from a listing. Any -lines which are not assembled because of a false `.if' (or `.ifdef', or -any other conditional), or a true `.if' followed by an `.else', will be -omitted from the listing. - - Use the `-ad' option to omit debugging directives from the listing. - - Once you have specified one of these options, you can further control -listing output and its appearance using the directives `.list', -`.nolist', `.psize', `.eject', `.title', and `.sbttl'. The `-an' -option turns off all forms processing. If you do not request listing -output with one of the `-a' options, the listing-control directives -have no effect. - - The letters after `-a' may be combined into one option, _e.g._, -`-aln'. - - Note if the assembler source is coming from the standard input (eg -because it is being created by `gcc' and the `-pipe' command line switch -is being used) then the listing will not contain any comments or -preprocessor directives. This is because the listing code buffers -input source lines from stdin only after they have been preprocessed by -the assembler. This reduces memory usage and makes the code more -efficient. - - -File: as.info, Node: alternate, Next: D, Prev: a, Up: Invoking - -2.2 `--alternate' -================= - -Begin in alternate macro mode, see *Note `.altmacro': Altmacro. - - -File: as.info, Node: D, Next: f, Prev: alternate, Up: Invoking - -2.3 `-D' -======== - -This option has no effect whatsoever, but it is accepted to make it more -likely that scripts written for other assemblers also work with `as'. - - -File: as.info, Node: f, Next: I, Prev: D, Up: Invoking - -2.4 Work Faster: `-f' -===================== - -`-f' should only be used when assembling programs written by a -(trusted) compiler. `-f' stops the assembler from doing whitespace and -comment preprocessing on the input file(s) before assembling them. -*Note Preprocessing: Preprocessing. - - _Warning:_ if you use `-f' when the files actually need to be - preprocessed (if they contain comments, for example), `as' does - not work correctly. - - -File: as.info, Node: I, Next: K, Prev: f, Up: Invoking - -2.5 `.include' Search Path: `-I' PATH -===================================== - -Use this option to add a PATH to the list of directories `as' searches -for files specified in `.include' directives (*note `.include': -Include.). You may use `-I' as many times as necessary to include a -variety of paths. The current working directory is always searched -first; after that, `as' searches any `-I' directories in the same order -as they were specified (left to right) on the command line. - - -File: as.info, Node: K, Next: L, Prev: I, Up: Invoking - -2.6 Difference Tables: `-K' -=========================== - -`as' sometimes alters the code emitted for directives of the form -`.word SYM1-SYM2'; *note `.word': Word. You can use the `-K' option if -you want a warning issued when this is done. - - -File: as.info, Node: L, Next: listing, Prev: K, Up: Invoking - -2.7 Include Local Labels: `-L' -============================== - -Labels beginning with `L' (upper case only) are called "local labels". -*Note Symbol Names::. Normally you do not see such labels when -debugging, because they are intended for the use of programs (like -compilers) that compose assembler programs, not for your notice. -Normally both `as' and `ld' discard such labels, so you do not normally -debug with them. - - This option tells `as' to retain those `L...' symbols in the object -file. Usually if you do this you also tell the linker `ld' to preserve -symbols whose names begin with `L'. - - By default, a local label is any label beginning with `L', but each -target is allowed to redefine the local label prefix. On the HPPA -local labels begin with `L$'. - - -File: as.info, Node: listing, Next: M, Prev: L, Up: Invoking - -2.8 Configuring listing output: `--listing' -=========================================== - -The listing feature of the assembler can be enabled via the command -line switch `-a' (*note a::). This feature combines the input source -file(s) with a hex dump of the corresponding locations in the output -object file, and displays them as a listing file. The format of this -listing can be controlled by pseudo ops inside the assembler source -(*note List:: *note Title:: *note Sbttl:: *note Psize:: *note Eject::) -and also by the following switches: - -`--listing-lhs-width=`number'' - Sets the maximum width, in words, of the first line of the hex - byte dump. This dump appears on the left hand side of the listing - output. - -`--listing-lhs-width2=`number'' - Sets the maximum width, in words, of any further lines of the hex - byte dump for a given input source line. If this value is not - specified, it defaults to being the same as the value specified - for `--listing-lhs-width'. If neither switch is used the default - is to one. - -`--listing-rhs-width=`number'' - Sets the maximum width, in characters, of the source line that is - displayed alongside the hex dump. The default value for this - parameter is 100. The source line is displayed on the right hand - side of the listing output. - -`--listing-cont-lines=`number'' - Sets the maximum number of continuation lines of hex dump that - will be displayed for a given single line of source input. The - default value is 4. - - -File: as.info, Node: M, Next: MD, Prev: listing, Up: Invoking - -2.9 Assemble in MRI Compatibility Mode: `-M' -============================================ - -The `-M' or `--mri' option selects MRI compatibility mode. This -changes the syntax and pseudo-op handling of `as' to make it compatible -with the `ASM68K' or the `ASM960' (depending upon the configured -target) assembler from Microtec Research. The exact nature of the MRI -syntax will not be documented here; see the MRI manuals for more -information. Note in particular that the handling of macros and macro -arguments is somewhat different. The purpose of this option is to -permit assembling existing MRI assembler code using `as'. - - The MRI compatibility is not complete. Certain operations of the -MRI assembler depend upon its object file format, and can not be -supported using other object file formats. Supporting these would -require enhancing each object file format individually. These are: - - * global symbols in common section - - The m68k MRI assembler supports common sections which are merged - by the linker. Other object file formats do not support this. - `as' handles common sections by treating them as a single common - symbol. It permits local symbols to be defined within a common - section, but it can not support global symbols, since it has no - way to describe them. - - * complex relocations - - The MRI assemblers support relocations against a negated section - address, and relocations which combine the start addresses of two - or more sections. These are not support by other object file - formats. - - * `END' pseudo-op specifying start address - - The MRI `END' pseudo-op permits the specification of a start - address. This is not supported by other object file formats. The - start address may instead be specified using the `-e' option to - the linker, or in a linker script. - - * `IDNT', `.ident' and `NAME' pseudo-ops - - The MRI `IDNT', `.ident' and `NAME' pseudo-ops assign a module - name to the output file. This is not supported by other object - file formats. - - * `ORG' pseudo-op - - The m68k MRI `ORG' pseudo-op begins an absolute section at a given - address. This differs from the usual `as' `.org' pseudo-op, which - changes the location within the current section. Absolute - sections are not supported by other object file formats. The - address of a section may be assigned within a linker script. - - There are some other features of the MRI assembler which are not -supported by `as', typically either because they are difficult or -because they seem of little consequence. Some of these may be -supported in future releases. - - * EBCDIC strings - - EBCDIC strings are not supported. - - * packed binary coded decimal - - Packed binary coded decimal is not supported. This means that the - `DC.P' and `DCB.P' pseudo-ops are not supported. - - * `FEQU' pseudo-op - - The m68k `FEQU' pseudo-op is not supported. - - * `NOOBJ' pseudo-op - - The m68k `NOOBJ' pseudo-op is not supported. - - * `OPT' branch control options - - The m68k `OPT' branch control options--`B', `BRS', `BRB', `BRL', - and `BRW'--are ignored. `as' automatically relaxes all branches, - whether forward or backward, to an appropriate size, so these - options serve no purpose. - - * `OPT' list control options - - The following m68k `OPT' list control options are ignored: `C', - `CEX', `CL', `CRE', `E', `G', `I', `M', `MEX', `MC', `MD', `X'. - - * other `OPT' options - - The following m68k `OPT' options are ignored: `NEST', `O', `OLD', - `OP', `P', `PCO', `PCR', `PCS', `R'. - - * `OPT' `D' option is default - - The m68k `OPT' `D' option is the default, unlike the MRI assembler. - `OPT NOD' may be used to turn it off. - - * `XREF' pseudo-op. - - The m68k `XREF' pseudo-op is ignored. - - * `.debug' pseudo-op - - The i960 `.debug' pseudo-op is not supported. - - * `.extended' pseudo-op - - The i960 `.extended' pseudo-op is not supported. - - * `.list' pseudo-op. - - The various options of the i960 `.list' pseudo-op are not - supported. - - * `.optimize' pseudo-op - - The i960 `.optimize' pseudo-op is not supported. - - * `.output' pseudo-op - - The i960 `.output' pseudo-op is not supported. - - * `.setreal' pseudo-op - - The i960 `.setreal' pseudo-op is not supported. - - - -File: as.info, Node: MD, Next: o, Prev: M, Up: Invoking - -2.10 Dependency Tracking: `--MD' -================================ - -`as' can generate a dependency file for the file it creates. This file -consists of a single rule suitable for `make' describing the -dependencies of the main source file. - - The rule is written to the file named in its argument. - - This feature is used in the automatic updating of makefiles. - - -File: as.info, Node: o, Next: R, Prev: MD, Up: Invoking - -2.11 Name the Object File: `-o' -=============================== - -There is always one object file output when you run `as'. By default -it has the name `a.out' (or `b.out', for Intel 960 targets only). You -use this option (which takes exactly one filename) to give the object -file a different name. - - Whatever the object file is called, `as' overwrites any existing -file of the same name. - - -File: as.info, Node: R, Next: statistics, Prev: o, Up: Invoking - -2.12 Join Data and Text Sections: `-R' -====================================== - -`-R' tells `as' to write the object file as if all data-section data -lives in the text section. This is only done at the very last moment: -your binary data are the same, but data section parts are relocated -differently. The data section part of your object file is zero bytes -long because all its bytes are appended to the text section. (*Note -Sections and Relocation: Sections.) - - When you specify `-R' it would be possible to generate shorter -address displacements (because we do not have to cross between text and -data section). We refrain from doing this simply for compatibility with -older versions of `as'. In future, `-R' may work this way. - - When `as' is configured for COFF or ELF output, this option is only -useful if you use sections named `.text' and `.data'. - - `-R' is not supported for any of the HPPA targets. Using `-R' -generates a warning from `as'. - - -File: as.info, Node: statistics, Next: traditional-format, Prev: R, Up: Invoking - -2.13 Display Assembly Statistics: `--statistics' -================================================ - -Use `--statistics' to display two statistics about the resources used by -`as': the maximum amount of space allocated during the assembly (in -bytes), and the total execution time taken for the assembly (in CPU -seconds). - - -File: as.info, Node: traditional-format, Next: v, Prev: statistics, Up: Invoking - -2.14 Compatible Output: `--traditional-format' -============================================== - -For some targets, the output of `as' is different in some ways from the -output of some existing assembler. This switch requests `as' to use -the traditional format instead. - - For example, it disables the exception frame optimizations which -`as' normally does by default on `gcc' output. - - -File: as.info, Node: v, Next: W, Prev: traditional-format, Up: Invoking - -2.15 Announce Version: `-v' -=========================== - -You can find out what version of as is running by including the option -`-v' (which you can also spell as `-version') on the command line. - - -File: as.info, Node: W, Next: Z, Prev: v, Up: Invoking - -2.16 Control Warnings: `-W', `--warn', `--no-warn', `--fatal-warnings' -====================================================================== - -`as' should never give a warning or error message when assembling -compiler output. But programs written by people often cause `as' to -give a warning that a particular assumption was made. All such -warnings are directed to the standard error file. - - If you use the `-W' and `--no-warn' options, no warnings are issued. -This only affects the warning messages: it does not change any -particular of how `as' assembles your file. Errors, which stop the -assembly, are still reported. - - If you use the `--fatal-warnings' option, `as' considers files that -generate warnings to be in error. - - You can switch these options off again by specifying `--warn', which -causes warnings to be output as usual. - - -File: as.info, Node: Z, Prev: W, Up: Invoking - -2.17 Generate Object File in Spite of Errors: `-Z' -================================================== - -After an error message, `as' normally produces no output. If for some -reason you are interested in object file output even after `as' gives -an error message on your program, use the `-Z' option. If there are -any errors, `as' continues anyways, and writes an object file after a -final warning message of the form `N errors, M warnings, generating bad -object file.' - - -File: as.info, Node: Syntax, Next: Sections, Prev: Invoking, Up: Top - -3 Syntax -******** - -This chapter describes the machine-independent syntax allowed in a -source file. `as' syntax is similar to what many other assemblers use; -it is inspired by the BSD 4.2 assembler, except that `as' does not -assemble Vax bit-fields. - -* Menu: - -* Preprocessing:: Preprocessing -* Whitespace:: Whitespace -* Comments:: Comments -* Symbol Intro:: Symbols -* Statements:: Statements -* Constants:: Constants - - -File: as.info, Node: Preprocessing, Next: Whitespace, Up: Syntax - -3.1 Preprocessing -================= - -The `as' internal preprocessor: - * adjusts and removes extra whitespace. It leaves one space or tab - before the keywords on a line, and turns any other whitespace on - the line into a single space. - - * removes all comments, replacing them with a single space, or an - appropriate number of newlines. - - * converts character constants into the appropriate numeric values. - - It does not do macro processing, include file handling, or anything -else you may get from your C compiler's preprocessor. You can do -include file processing with the `.include' directive (*note -`.include': Include.). You can use the GNU C compiler driver to get -other "CPP" style preprocessing by giving the input file a `.S' suffix. -*Note Options Controlling the Kind of Output: (gcc.info)Overall -Options. - - Excess whitespace, comments, and character constants cannot be used -in the portions of the input text that are not preprocessed. - - If the first line of an input file is `#NO_APP' or if you use the -`-f' option, whitespace and comments are not removed from the input -file. Within an input file, you can ask for whitespace and comment -removal in specific portions of the by putting a line that says `#APP' -before the text that may contain whitespace or comments, and putting a -line that says `#NO_APP' after this text. This feature is mainly -intend to support `asm' statements in compilers whose output is -otherwise free of comments and whitespace. - - -File: as.info, Node: Whitespace, Next: Comments, Prev: Preprocessing, Up: Syntax - -3.2 Whitespace -============== - -"Whitespace" is one or more blanks or tabs, in any order. Whitespace -is used to separate symbols, and to make programs neater for people to -read. Unless within character constants (*note Character Constants: -Characters.), any whitespace means the same as exactly one space. - - -File: as.info, Node: Comments, Next: Symbol Intro, Prev: Whitespace, Up: Syntax - -3.3 Comments -============ - -There are two ways of rendering comments to `as'. In both cases the -comment is equivalent to one space. - - Anything from `/*' through the next `*/' is a comment. This means -you may not nest these comments. - - /* - The only way to include a newline ('\n') in a comment - is to use this sort of comment. - */ - - /* This sort of comment does not nest. */ - - Anything from the "line comment" character to the next newline is -considered a comment and is ignored. The line comment character is `;' -for the AMD 29K family; `;' on the ARC; `@' on the ARM; `;' for the -H8/300 family; `!' for the H8/500 family; `;' for the HPPA; `#' on the -i386 and x86-64; `#' on the i960; `;' for the PDP-11; `;' for picoJava; -`#' for Motorola PowerPC; `!' for the Renesas / SuperH SH; `!' on the -SPARC; `#' on the ip2k; `#' on the m32r; `|' on the 680x0; `#' on the -68HC11 and 68HC12; `;' on the M880x0; `#' on the Vax; `!' for the Z8000; -`#' on the V850; `#' for Xtensa systems; see *Note Machine -Dependencies::. - - On some machines there are two different line comment characters. -One character only begins a comment if it is the first non-whitespace -character on a line, while the other always begins a comment. - - The V850 assembler also supports a double dash as starting a comment -that extends to the end of the line. - - `--'; - - To be compatible with past assemblers, lines that begin with `#' -have a special interpretation. Following the `#' should be an absolute -expression (*note Expressions::): the logical line number of the _next_ -line. Then a string (*note Strings: Strings.) is allowed: if present -it is a new logical file name. The rest of the line, if any, should be -whitespace. - - If the first non-whitespace characters on the line are not numeric, -the line is ignored. (Just like a comment.) - - # This is an ordinary comment. - # 42-6 "new_file_name" # New logical file name - # This is logical line # 36. - This feature is deprecated, and may disappear from future versions -of `as'. - - -File: as.info, Node: Symbol Intro, Next: Statements, Prev: Comments, Up: Syntax - -3.4 Symbols -=========== - -A "symbol" is one or more characters chosen from the set of all letters -(both upper and lower case), digits and the three characters `_.$'. On -most machines, you can also use `$' in symbol names; exceptions are -noted in *Note Machine Dependencies::. No symbol may begin with a -digit. Case is significant. There is no length limit: all characters -are significant. Symbols are delimited by characters not in that set, -or by the beginning of a file (since the source program must end with a -newline, the end of a file is not a possible symbol delimiter). *Note -Symbols::. - - -File: as.info, Node: Statements, Next: Constants, Prev: Symbol Intro, Up: Syntax - -3.5 Statements -============== - -A "statement" ends at a newline character (`\n') or line separator -character. (The line separator is usually `;', unless this conflicts -with the comment character; *note Machine Dependencies::.) The newline -or separator character is considered part of the preceding statement. -Newlines and separators within character constants are an exception: -they do not end statements. - -It is an error to end any statement with end-of-file: the last -character of any input file should be a newline. - - An empty statement is allowed, and may include whitespace. It is -ignored. - - A statement begins with zero or more labels, optionally followed by a -key symbol which determines what kind of statement it is. The key -symbol determines the syntax of the rest of the statement. If the -symbol begins with a dot `.' then the statement is an assembler -directive: typically valid for any computer. If the symbol begins with -a letter the statement is an assembly language "instruction": it -assembles into a machine language instruction. Different versions of -`as' for different computers recognize different instructions. In -fact, the same symbol may represent a different instruction in a -different computer's assembly language. - - A label is a symbol immediately followed by a colon (`:'). -Whitespace before a label or after a colon is permitted, but you may not -have whitespace between a label's symbol and its colon. *Note Labels::. - - For HPPA targets, labels need not be immediately followed by a -colon, but the definition of a label must begin in column zero. This -also implies that only one label may be defined on each line. - - label: .directive followed by something - another_label: # This is an empty statement. - instruction operand_1, operand_2, ... - - -File: as.info, Node: Constants, Prev: Statements, Up: Syntax - -3.6 Constants -============= - -A constant is a number, written so that its value is known by -inspection, without knowing any context. Like this: - .byte 74, 0112, 092, 0x4A, 0X4a, 'J, '\J # All the same value. - .ascii "Ring the bell\7" # A string constant. - .octa 0x123456789abcdef0123456789ABCDEF0 # A bignum. - .float 0f-314159265358979323846264338327\ - 95028841971.693993751E-40 # - pi, a flonum. - -* Menu: - -* Characters:: Character Constants -* Numbers:: Number Constants - - -File: as.info, Node: Characters, Next: Numbers, Up: Constants - -3.6.1 Character Constants -------------------------- - -There are two kinds of character constants. A "character" stands for -one character in one byte and its value may be used in numeric -expressions. String constants (properly called string _literals_) are -potentially many bytes and their values may not be used in arithmetic -expressions. - -* Menu: - -* Strings:: Strings -* Chars:: Characters - - -File: as.info, Node: Strings, Next: Chars, Up: Characters - -3.6.1.1 Strings -............... - -A "string" is written between double-quotes. It may contain -double-quotes or null characters. The way to get special characters -into a string is to "escape" these characters: precede them with a -backslash `\' character. For example `\\' represents one backslash: -the first `\' is an escape which tells `as' to interpret the second -character literally as a backslash (which prevents `as' from -recognizing the second `\' as an escape character). The complete list -of escapes follows. - -`\b' - Mnemonic for backspace; for ASCII this is octal code 010. - -`\f' - Mnemonic for FormFeed; for ASCII this is octal code 014. - -`\n' - Mnemonic for newline; for ASCII this is octal code 012. - -`\r' - Mnemonic for carriage-Return; for ASCII this is octal code 015. - -`\t' - Mnemonic for horizontal Tab; for ASCII this is octal code 011. - -`\ DIGIT DIGIT DIGIT' - An octal character code. The numeric code is 3 octal digits. For - compatibility with other Unix systems, 8 and 9 are accepted as - digits: for example, `\008' has the value 010, and `\009' the - value 011. - -`\`x' HEX-DIGITS...' - A hex character code. All trailing hex digits are combined. - Either upper or lower case `x' works. - -`\\' - Represents one `\' character. - -`\"' - Represents one `"' character. Needed in strings to represent this - character, because an unescaped `"' would end the string. - -`\ ANYTHING-ELSE' - Any other character when escaped by `\' gives a warning, but - assembles as if the `\' was not present. The idea is that if you - used an escape sequence you clearly didn't want the literal - interpretation of the following character. However `as' has no - other interpretation, so `as' knows it is giving you the wrong - code and warns you of the fact. - - Which characters are escapable, and what those escapes represent, -varies widely among assemblers. The current set is what we think the -BSD 4.2 assembler recognizes, and is a subset of what most C compilers -recognize. If you are in doubt, do not use an escape sequence. - - -File: as.info, Node: Chars, Prev: Strings, Up: Characters - -3.6.1.2 Characters -.................. - -A single character may be written as a single quote immediately -followed by that character. The same escapes apply to characters as to -strings. So if you want to write the character backslash, you must -write `'\\' where the first `\' escapes the second `\'. As you can -see, the quote is an acute accent, not a grave accent. A newline -immediately following an acute accent is taken as a literal character -and does not count as the end of a statement. The value of a character -constant in a numeric expression is the machine's byte-wide code for -that character. `as' assumes your character code is ASCII: `'A' means -65, `'B' means 66, and so on. - - -File: as.info, Node: Numbers, Prev: Characters, Up: Constants - -3.6.2 Number Constants ----------------------- - -`as' distinguishes three kinds of numbers according to how they are -stored in the target machine. _Integers_ are numbers that would fit -into an `int' in the C language. _Bignums_ are integers, but they are -stored in more than 32 bits. _Flonums_ are floating point numbers, -described below. - -* Menu: - -* Integers:: Integers -* Bignums:: Bignums -* Flonums:: Flonums - - -File: as.info, Node: Integers, Next: Bignums, Up: Numbers - -3.6.2.1 Integers -................ - -A binary integer is `0b' or `0B' followed by zero or more of the binary -digits `01'. - - An octal integer is `0' followed by zero or more of the octal digits -(`01234567'). - - A decimal integer starts with a non-zero digit followed by zero or -more digits (`0123456789'). - - A hexadecimal integer is `0x' or `0X' followed by one or more -hexadecimal digits chosen from `0123456789abcdefABCDEF'. - - Integers have the usual values. To denote a negative integer, use -the prefix operator `-' discussed under expressions (*note Prefix -Operators: Prefix Ops.). - - -File: as.info, Node: Bignums, Next: Flonums, Prev: Integers, Up: Numbers - -3.6.2.2 Bignums -............... - -A "bignum" has the same syntax and semantics as an integer except that -the number (or its negative) takes more than 32 bits to represent in -binary. The distinction is made because in some places integers are -permitted while bignums are not. - - -File: as.info, Node: Flonums, Prev: Bignums, Up: Numbers - -3.6.2.3 Flonums -............... - -A "flonum" represents a floating point number. The translation is -indirect: a decimal floating point number from the text is converted by -`as' to a generic binary floating point number of more than sufficient -precision. This generic floating point number is converted to a -particular computer's floating point format (or formats) by a portion -of `as' specialized to that computer. - - A flonum is written by writing (in order) - * The digit `0'. (`0' is optional on the HPPA.) - - * A letter, to tell `as' the rest of the number is a flonum. `e' is - recommended. Case is not important. - - On the H8/300, H8/500, Renesas / SuperH SH, and AMD 29K - architectures, the letter must be one of the letters `DFPRSX' (in - upper or lower case). - - On the ARC, the letter must be one of the letters `DFRS' (in upper - or lower case). - - On the Intel 960 architecture, the letter must be one of the - letters `DFT' (in upper or lower case). - - On the HPPA architecture, the letter must be `E' (upper case only). - - * An optional sign: either `+' or `-'. - - * An optional "integer part": zero or more decimal digits. - - * An optional "fractional part": `.' followed by zero or more - decimal digits. - - * An optional exponent, consisting of: - - * An `E' or `e'. - - * Optional sign: either `+' or `-'. - - * One or more decimal digits. - - - At least one of the integer part or the fractional part must be -present. The floating point number has the usual base-10 value. - - `as' does all processing using integers. Flonums are computed -independently of any floating point hardware in the computer running -`as'. - - -File: as.info, Node: Sections, Next: Symbols, Prev: Syntax, Up: Top - -4 Sections and Relocation -************************* - -* Menu: - -* Secs Background:: Background -* Ld Sections:: Linker Sections -* As Sections:: Assembler Internal Sections -* Sub-Sections:: Sub-Sections -* bss:: bss Section - - -File: as.info, Node: Secs Background, Next: Ld Sections, Up: Sections - -4.1 Background -============== - -Roughly, a section is a range of addresses, with no gaps; all data "in" -those addresses is treated the same for some particular purpose. For -example there may be a "read only" section. - - The linker `ld' reads many object files (partial programs) and -combines their contents to form a runnable program. When `as' emits an -object file, the partial program is assumed to start at address 0. -`ld' assigns the final addresses for the partial program, so that -different partial programs do not overlap. This is actually an -oversimplification, but it suffices to explain how `as' uses sections. - - `ld' moves blocks of bytes of your program to their run-time -addresses. These blocks slide to their run-time addresses as rigid -units; their length does not change and neither does the order of bytes -within them. Such a rigid unit is called a _section_. Assigning -run-time addresses to sections is called "relocation". It includes the -task of adjusting mentions of object-file addresses so they refer to -the proper run-time addresses. For the H8/300 and H8/500, and for the -Renesas / SuperH SH, `as' pads sections if needed to ensure they end on -a word (sixteen bit) boundary. - - An object file written by `as' has at least three sections, any of -which may be empty. These are named "text", "data" and "bss" sections. - - When it generates COFF or ELF output, `as' can also generate -whatever other named sections you specify using the `.section' -directive (*note `.section': Section.). If you do not use any -directives that place output in the `.text' or `.data' sections, these -sections still exist, but are empty. - - When `as' generates SOM or ELF output for the HPPA, `as' can also -generate whatever other named sections you specify using the `.space' -and `.subspace' directives. See `HP9000 Series 800 Assembly Language -Reference Manual' (HP 92432-90001) for details on the `.space' and -`.subspace' assembler directives. - - Additionally, `as' uses different names for the standard text, data, -and bss sections when generating SOM output. Program text is placed -into the `$CODE$' section, data into `$DATA$', and BSS into `$BSS$'. - - Within the object file, the text section starts at address `0', the -data section follows, and the bss section follows the data section. - - When generating either SOM or ELF output files on the HPPA, the text -section starts at address `0', the data section at address `0x4000000', -and the bss section follows the data section. - - To let `ld' know which data changes when the sections are relocated, -and how to change that data, `as' also writes to the object file -details of the relocation needed. To perform relocation `ld' must -know, each time an address in the object file is mentioned: - * Where in the object file is the beginning of this reference to an - address? - - * How long (in bytes) is this reference? - - * Which section does the address refer to? What is the numeric - value of - (ADDRESS) - (START-ADDRESS OF SECTION)? - - * Is the reference to an address "Program-Counter relative"? - - In fact, every address `as' ever uses is expressed as - (SECTION) + (OFFSET INTO SECTION) - Further, most expressions `as' computes have this section-relative -nature. (For some object formats, such as SOM for the HPPA, some -expressions are symbol-relative instead.) - - In this manual we use the notation {SECNAME N} to mean "offset N -into section SECNAME." - - Apart from text, data and bss sections you need to know about the -"absolute" section. When `ld' mixes partial programs, addresses in the -absolute section remain unchanged. For example, address `{absolute 0}' -is "relocated" to run-time address 0 by `ld'. Although the linker -never arranges two partial programs' data sections with overlapping -addresses after linking, _by definition_ their absolute sections must -overlap. Address `{absolute 239}' in one part of a program is always -the same address when the program is running as address `{absolute -239}' in any other part of the program. - - The idea of sections is extended to the "undefined" section. Any -address whose section is unknown at assembly time is by definition -rendered {undefined U}--where U is filled in later. Since numbers are -always defined, the only way to generate an undefined address is to -mention an undefined symbol. A reference to a named common block would -be such a symbol: its value is unknown at assembly time so it has -section _undefined_. - - By analogy the word _section_ is used to describe groups of sections -in the linked program. `ld' puts all partial programs' text sections -in contiguous addresses in the linked program. It is customary to -refer to the _text section_ of a program, meaning all the addresses of -all partial programs' text sections. Likewise for data and bss -sections. - - Some sections are manipulated by `ld'; others are invented for use -of `as' and have no meaning except during assembly. - - -File: as.info, Node: Ld Sections, Next: As Sections, Prev: Secs Background, Up: Sections - -4.2 Linker Sections -=================== - -`ld' deals with just four kinds of sections, summarized below. - -*named sections* -*text section* -*data section* - These sections hold your program. `as' and `ld' treat them as - separate but equal sections. Anything you can say of one section - is true of another. When the program is running, however, it is - customary for the text section to be unalterable. The text - section is often shared among processes: it contains instructions, - constants and the like. The data section of a running program is - usually alterable: for example, C variables would be stored in the - data section. - -*bss section* - This section contains zeroed bytes when your program begins - running. It is used to hold uninitialized variables or common - storage. The length of each partial program's bss section is - important, but because it starts out containing zeroed bytes there - is no need to store explicit zero bytes in the object file. The - bss section was invented to eliminate those explicit zeros from - object files. - -*absolute section* - Address 0 of this section is always "relocated" to runtime address - 0. This is useful if you want to refer to an address that `ld' - must not change when relocating. In this sense we speak of - absolute addresses being "unrelocatable": they do not change - during relocation. - -*undefined section* - This "section" is a catch-all for address references to objects - not in the preceding sections. - - An idealized example of three relocatable sections follows. The -example uses the traditional section names `.text' and `.data'. Memory -addresses are on the horizontal axis. - - +-----+----+--+ - partial program # 1: |ttttt|dddd|00| - +-----+----+--+ - - text data bss - seg. seg. seg. - - +---+---+---+ - partial program # 2: |TTT|DDD|000| - +---+---+---+ - - +--+---+-----+--+----+---+-----+~~ - linked program: | |TTT|ttttt| |dddd|DDD|00000| - +--+---+-----+--+----+---+-----+~~ - - addresses: 0 ... - - -File: as.info, Node: As Sections, Next: Sub-Sections, Prev: Ld Sections, Up: Sections - -4.3 Assembler Internal Sections -=============================== - -These sections are meant only for the internal use of `as'. They have -no meaning at run-time. You do not really need to know about these -sections for most purposes; but they can be mentioned in `as' warning -messages, so it might be helpful to have an idea of their meanings to -`as'. These sections are used to permit the value of every expression -in your assembly language program to be a section-relative address. - -ASSEMBLER-INTERNAL-LOGIC-ERROR! - An internal assembler logic error has been found. This means - there is a bug in the assembler. - -expr section - The assembler stores complex expression internally as combinations - of symbols. When it needs to represent an expression as a symbol, - it puts it in the expr section. - - -File: as.info, Node: Sub-Sections, Next: bss, Prev: As Sections, Up: Sections - -4.4 Sub-Sections -================ - -Assembled bytes conventionally fall into two sections: text and data. -You may have separate groups of data in named sections that you want to -end up near to each other in the object file, even though they are not -contiguous in the assembler source. `as' allows you to use -"subsections" for this purpose. Within each section, there can be -numbered subsections with values from 0 to 8192. Objects assembled -into the same subsection go into the object file together with other -objects in the same subsection. For example, a compiler might want to -store constants in the text section, but might not want to have them -interspersed with the program being assembled. In this case, the -compiler could issue a `.text 0' before each section of code being -output, and a `.text 1' before each group of constants being output. - -Subsections are optional. If you do not use subsections, everything -goes in subsection number zero. - - Each subsection is zero-padded up to a multiple of four bytes. -(Subsections may be padded a different amount on different flavors of -`as'.) - - Subsections appear in your object file in numeric order, lowest -numbered to highest. (All this to be compatible with other people's -assemblers.) The object file contains no representation of -subsections; `ld' and other programs that manipulate object files see -no trace of them. They just see all your text subsections as a text -section, and all your data subsections as a data section. - - To specify which subsection you want subsequent statements assembled -into, use a numeric argument to specify it, in a `.text EXPRESSION' or -a `.data EXPRESSION' statement. When generating COFF output, you can -also use an extra subsection argument with arbitrary named sections: -`.section NAME, EXPRESSION'. When generating ELF output, you can also -use the `.subsection' directive (*note SubSection::) to specify a -subsection: `.subsection EXPRESSION'. EXPRESSION should be an absolute -expression. (*Note Expressions::.) If you just say `.text' then -`.text 0' is assumed. Likewise `.data' means `.data 0'. Assembly -begins in `text 0'. For instance: - .text 0 # The default subsection is text 0 anyway. - .ascii "This lives in the first text subsection. *" - .text 1 - .ascii "But this lives in the second text subsection." - .data 0 - .ascii "This lives in the data section," - .ascii "in the first data subsection." - .text 0 - .ascii "This lives in the first text section," - .ascii "immediately following the asterisk (*)." - - Each section has a "location counter" incremented by one for every -byte assembled into that section. Because subsections are merely a -convenience restricted to `as' there is no concept of a subsection -location counter. There is no way to directly manipulate a location -counter--but the `.align' directive changes it, and any label -definition captures its current value. The location counter of the -section where statements are being assembled is said to be the "active" -location counter. - - -File: as.info, Node: bss, Prev: Sub-Sections, Up: Sections - -4.5 bss Section -=============== - -The bss section is used for local common variable storage. You may -allocate address space in the bss section, but you may not dictate data -to load into it before your program executes. When your program starts -running, all the contents of the bss section are zeroed bytes. - - The `.lcomm' pseudo-op defines a symbol in the bss section; see -*Note `.lcomm': Lcomm. - - The `.comm' pseudo-op may be used to declare a common symbol, which -is another form of uninitialized symbol; see *Note `.comm': Comm. - - When assembling for a target which supports multiple sections, such -as ELF or COFF, you may switch into the `.bss' section and define -symbols as usual; see *Note `.section': Section. You may only assemble -zero values into the section. Typically the section will only contain -symbol definitions and `.skip' directives (*note `.skip': Skip.). - - -File: as.info, Node: Symbols, Next: Expressions, Prev: Sections, Up: Top - -5 Symbols -********* - -Symbols are a central concept: the programmer uses symbols to name -things, the linker uses symbols to link, and the debugger uses symbols -to debug. - - _Warning:_ `as' does not place symbols in the object file in the - same order they were declared. This may break some debuggers. - -* Menu: - -* Labels:: Labels -* Setting Symbols:: Giving Symbols Other Values -* Symbol Names:: Symbol Names -* Dot:: The Special Dot Symbol -* Symbol Attributes:: Symbol Attributes - - -File: as.info, Node: Labels, Next: Setting Symbols, Up: Symbols - -5.1 Labels -========== - -A "label" is written as a symbol immediately followed by a colon `:'. -The symbol then represents the current value of the active location -counter, and is, for example, a suitable instruction operand. You are -warned if you use the same symbol to represent two different locations: -the first definition overrides any other definitions. - - On the HPPA, the usual form for a label need not be immediately -followed by a colon, but instead must start in column zero. Only one -label may be defined on a single line. To work around this, the HPPA -version of `as' also provides a special directive `.label' for defining -labels more flexibly. - - -File: as.info, Node: Setting Symbols, Next: Symbol Names, Prev: Labels, Up: Symbols - -5.2 Giving Symbols Other Values -=============================== - -A symbol can be given an arbitrary value by writing a symbol, followed -by an equals sign `=', followed by an expression (*note Expressions::). -This is equivalent to using the `.set' directive. *Note `.set': Set. - - -File: as.info, Node: Symbol Names, Next: Dot, Prev: Setting Symbols, Up: Symbols - -5.3 Symbol Names -================ - -Symbol names begin with a letter or with one of `._'. On most -machines, you can also use `$' in symbol names; exceptions are noted in -*Note Machine Dependencies::. That character may be followed by any -string of digits, letters, dollar signs (unless otherwise noted in -*Note Machine Dependencies::), and underscores. For the AMD 29K -family, `?' is also allowed in the body of a symbol name, though not at -its beginning. - -Case of letters is significant: `foo' is a different symbol name than -`Foo'. - - Each symbol has exactly one name. Each name in an assembly language -program refers to exactly one symbol. You may use that symbol name any -number of times in a program. - -Local Symbol Names ------------------- - -Local symbols help compilers and programmers use names temporarily. -They create symbols which are guaranteed to be unique over the entire -scope of the input source code and which can be referred to by a simple -notation. To define a local symbol, write a label of the form `N:' -(where N represents any positive integer). To refer to the most recent -previous definition of that symbol write `Nb', using the same number as -when you defined the label. To refer to the next definition of a local -label, write `Nf'-- The `b' stands for"backwards" and the `f' stands -for "forwards". - - There is no restriction on how you can use these labels, and you can -reuse them too. So that it is possible to repeatedly define the same -local label (using the same number `N'), although you can only refer to -the most recently defined local label of that number (for a backwards -reference) or the next definition of a specific local label for a -forward reference. It is also worth noting that the first 10 local -labels (`0:'...`9:') are implemented in a slightly more efficient -manner than the others. - - Here is an example: - - 1: branch 1f - 2: branch 1b - 1: branch 2f - 2: branch 1b - - Which is the equivalent of: - - label_1: branch label_3 - label_2: branch label_1 - label_3: branch label_4 - label_4: branch label_3 - - Local symbol names are only a notational device. They are -immediately transformed into more conventional symbol names before the -assembler uses them. The symbol names stored in the symbol table, -appearing in error messages and optionally emitted to the object file. -The names are constructed using these parts: - -`L' - All local labels begin with `L'. Normally both `as' and `ld' - forget symbols that start with `L'. These labels are used for - symbols you are never intended to see. If you use the `-L' option - then `as' retains these symbols in the object file. If you also - instruct `ld' to retain these symbols, you may use them in - debugging. - -`NUMBER' - This is the number that was used in the local label definition. - So if the label is written `55:' then the number is `55'. - -`C-B' - This unusual character is included so you do not accidentally - invent a symbol of the same name. The character has ASCII value - of `\002' (control-B). - -`_ordinal number_' - This is a serial number to keep the labels distinct. The first - definition of `0:' gets the number `1'. The 15th definition of - `0:' gets the number `15', and so on. Likewise the first - definition of `1:' gets the number `1' and its 15th defintion gets - `15' as well. - - So for example, the first `1:' is named `L1C-B1', the 44th `3:' is -named `L3C-B44'. - -Dollar Local Labels -------------------- - -`as' also supports an even more local form of local labels called -dollar labels. These labels go out of scope (ie they become undefined) -as soon as a non-local label is defined. Thus they remain valid for -only a small region of the input source code. Normal local labels, by -contrast, remain in scope for the entire file, or until they are -redefined by another occurrence of the same local label. - - Dollar labels are defined in exactly the same way as ordinary local -labels, except that instead of being terminated by a colon, they are -terminated by a dollar sign. eg `55$'. - - They can also be distinguished from ordinary local labels by their -transformed name which uses ASCII character `\001' (control-A) as the -magic character to distinguish them from ordinary labels. Thus the 5th -defintion of `6$' is named `L6C-A5'. - - -File: as.info, Node: Dot, Next: Symbol Attributes, Prev: Symbol Names, Up: Symbols - -5.4 The Special Dot Symbol -========================== - -The special symbol `.' refers to the current address that `as' is -assembling into. Thus, the expression `melvin: .long .' defines -`melvin' to contain its own address. Assigning a value to `.' is -treated the same as a `.org' directive. Thus, the expression `.=.+4' -is the same as saying `.space 4'. - - -File: as.info, Node: Symbol Attributes, Prev: Dot, Up: Symbols - -5.5 Symbol Attributes -===================== - -Every symbol has, as well as its name, the attributes "Value" and -"Type". Depending on output format, symbols can also have auxiliary -attributes. - - If you use a symbol without defining it, `as' assumes zero for all -these attributes, and probably won't warn you. This makes the symbol -an externally defined symbol, which is generally what you would want. - -* Menu: - -* Symbol Value:: Value -* Symbol Type:: Type - - -* a.out Symbols:: Symbol Attributes: `a.out' - -* COFF Symbols:: Symbol Attributes for COFF - -* SOM Symbols:: Symbol Attributes for SOM - - -File: as.info, Node: Symbol Value, Next: Symbol Type, Up: Symbol Attributes - -5.5.1 Value ------------ - -The value of a symbol is (usually) 32 bits. For a symbol which labels a -location in the text, data, bss or absolute sections the value is the -number of addresses from the start of that section to the label. -Naturally for text, data and bss sections the value of a symbol changes -as `ld' changes section base addresses during linking. Absolute -symbols' values do not change during linking: that is why they are -called absolute. - - The value of an undefined symbol is treated in a special way. If it -is 0 then the symbol is not defined in this assembler source file, and -`ld' tries to determine its value from other files linked into the same -program. You make this kind of symbol simply by mentioning a symbol -name without defining it. A non-zero value represents a `.comm' common -declaration. The value is how much common storage to reserve, in bytes -(addresses). The symbol refers to the first address of the allocated -storage. - - -File: as.info, Node: Symbol Type, Next: a.out Symbols, Prev: Symbol Value, Up: Symbol Attributes - -5.5.2 Type ----------- - -The type attribute of a symbol contains relocation (section) -information, any flag settings indicating that a symbol is external, and -(optionally), other information for linkers and debuggers. The exact -format depends on the object-code output format in use. - - -File: as.info, Node: a.out Symbols, Next: COFF Symbols, Prev: Symbol Type, Up: Symbol Attributes - -5.5.3 Symbol Attributes: `a.out' --------------------------------- - -* Menu: - -* Symbol Desc:: Descriptor -* Symbol Other:: Other - - -File: as.info, Node: Symbol Desc, Next: Symbol Other, Up: a.out Symbols - -5.5.3.1 Descriptor -.................. - -This is an arbitrary 16-bit value. You may establish a symbol's -descriptor value by using a `.desc' statement (*note `.desc': Desc.). -A descriptor value means nothing to `as'. - - -File: as.info, Node: Symbol Other, Prev: Symbol Desc, Up: a.out Symbols - -5.5.3.2 Other -............. - -This is an arbitrary 8-bit value. It means nothing to `as'. - - -File: as.info, Node: COFF Symbols, Next: SOM Symbols, Prev: a.out Symbols, Up: Symbol Attributes - -5.5.4 Symbol Attributes for COFF --------------------------------- - -The COFF format supports a multitude of auxiliary symbol attributes; -like the primary symbol attributes, they are set between `.def' and -`.endef' directives. - -5.5.4.1 Primary Attributes -.......................... - -The symbol name is set with `.def'; the value and type, respectively, -with `.val' and `.type'. - -5.5.4.2 Auxiliary Attributes -............................ - -The `as' directives `.dim', `.line', `.scl', `.size', `.tag', and -`.weak' can generate auxiliary symbol table information for COFF. - - -File: as.info, Node: SOM Symbols, Prev: COFF Symbols, Up: Symbol Attributes - -5.5.5 Symbol Attributes for SOM -------------------------------- - -The SOM format for the HPPA supports a multitude of symbol attributes -set with the `.EXPORT' and `.IMPORT' directives. - - The attributes are described in `HP9000 Series 800 Assembly Language -Reference Manual' (HP 92432-90001) under the `IMPORT' and `EXPORT' -assembler directive documentation. - - -File: as.info, Node: Expressions, Next: Pseudo Ops, Prev: Symbols, Up: Top - -6 Expressions -************* - -An "expression" specifies an address or numeric value. Whitespace may -precede and/or follow an expression. - - The result of an expression must be an absolute number, or else an -offset into a particular section. If an expression is not absolute, -and there is not enough information when `as' sees the expression to -know its section, a second pass over the source program might be -necessary to interpret the expression--but the second pass is currently -not implemented. `as' aborts with an error message in this situation. - -* Menu: - -* Empty Exprs:: Empty Expressions -* Integer Exprs:: Integer Expressions - - -File: as.info, Node: Empty Exprs, Next: Integer Exprs, Up: Expressions - -6.1 Empty Expressions -===================== - -An empty expression has no value: it is just whitespace or null. -Wherever an absolute expression is required, you may omit the -expression, and `as' assumes a value of (absolute) 0. This is -compatible with other assemblers. - - -File: as.info, Node: Integer Exprs, Prev: Empty Exprs, Up: Expressions - -6.2 Integer Expressions -======================= - -An "integer expression" is one or more _arguments_ delimited by -_operators_. - -* Menu: - -* Arguments:: Arguments -* Operators:: Operators -* Prefix Ops:: Prefix Operators -* Infix Ops:: Infix Operators - - -File: as.info, Node: Arguments, Next: Operators, Up: Integer Exprs - -6.2.1 Arguments ---------------- - -"Arguments" are symbols, numbers or subexpressions. In other contexts -arguments are sometimes called "arithmetic operands". In this manual, -to avoid confusing them with the "instruction operands" of the machine -language, we use the term "argument" to refer to parts of expressions -only, reserving the word "operand" to refer only to machine instruction -operands. - - Symbols are evaluated to yield {SECTION NNN} where SECTION is one of -text, data, bss, absolute, or undefined. NNN is a signed, 2's -complement 32 bit integer. - - Numbers are usually integers. - - A number can be a flonum or bignum. In this case, you are warned -that only the low order 32 bits are used, and `as' pretends these 32 -bits are an integer. You may write integer-manipulating instructions -that act on exotic constants, compatible with other assemblers. - - Subexpressions are a left parenthesis `(' followed by an integer -expression, followed by a right parenthesis `)'; or a prefix operator -followed by an argument. - - -File: as.info, Node: Operators, Next: Prefix Ops, Prev: Arguments, Up: Integer Exprs - -6.2.2 Operators ---------------- - -"Operators" are arithmetic functions, like `+' or `%'. Prefix -operators are followed by an argument. Infix operators appear between -their arguments. Operators may be preceded and/or followed by -whitespace. - - -File: as.info, Node: Prefix Ops, Next: Infix Ops, Prev: Operators, Up: Integer Exprs - -6.2.3 Prefix Operator ---------------------- - -`as' has the following "prefix operators". They each take one -argument, which must be absolute. - -`-' - "Negation". Two's complement negation. - -`~' - "Complementation". Bitwise not. - - -File: as.info, Node: Infix Ops, Prev: Prefix Ops, Up: Integer Exprs - -6.2.4 Infix Operators ---------------------- - -"Infix operators" take two arguments, one on either side. Operators -have precedence, but operations with equal precedence are performed left -to right. Apart from `+' or `-', both arguments must be absolute, and -the result is absolute. - - 1. Highest Precedence - - `*' - "Multiplication". - - `/' - "Division". Truncation is the same as the C operator `/' - - `%' - "Remainder". - - `<' - `<<' - "Shift Left". Same as the C operator `<<'. - - `>' - `>>' - "Shift Right". Same as the C operator `>>'. - - 2. Intermediate precedence - - `|' - "Bitwise Inclusive Or". - - `&' - "Bitwise And". - - `^' - "Bitwise Exclusive Or". - - `!' - "Bitwise Or Not". - - 3. Low Precedence - - `+' - "Addition". If either argument is absolute, the result has - the section of the other argument. You may not add together - arguments from different sections. - - `-' - "Subtraction". If the right argument is absolute, the result - has the section of the left argument. If both arguments are - in the same section, the result is absolute. You may not - subtract arguments from different sections. - - `==' - "Is Equal To" - - `<>' - "Is Not Equal To" - - `<' - "Is Less Than" - - `>' - "Is Greater Than" - - `>=' - "Is Greater Than Or Equal To" - - `<=' - "Is Less Than Or Equal To" - - The comparison operators can be used as infix operators. A - true results has a value of -1 whereas a false result has a - value of 0. Note, these operators perform signed - comparisons. - - 4. Lowest Precedence - - `&&' - "Logical And". - - `||' - "Logical Or". - - These two logical operations can be used to combine the - results of sub expressions. Note, unlike the comparison - operators a true result returns a value of 1 but a false - results does still return 0. Also note that the logical or - operator has a slightly lower precedence than logical and. - - - In short, it's only meaningful to add or subtract the _offsets_ in an -address; you can only have a defined section in one of the two -arguments. - - -File: as.info, Node: Pseudo Ops, Next: Machine Dependencies, Prev: Expressions, Up: Top - -7 Assembler Directives -********************** - -All assembler directives have names that begin with a period (`.'). -The rest of the name is letters, usually in lower case. - - This chapter discusses directives that are available regardless of -the target machine configuration for the GNU assembler. Some machine -configurations provide additional directives. *Note Machine -Dependencies::. - -* Menu: - -* Abort:: `.abort' - -* ABORT:: `.ABORT' - -* Align:: `.align ABS-EXPR , ABS-EXPR' -* Altmacro:: `.altmacro' -* Ascii:: `.ascii "STRING"'... -* Asciz:: `.asciz "STRING"'... -* Balign:: `.balign ABS-EXPR , ABS-EXPR' -* Byte:: `.byte EXPRESSIONS' -* Comm:: `.comm SYMBOL , LENGTH ' - -* CFI directives:: `.cfi_startproc', `.cfi_endproc', etc. - -* Data:: `.data SUBSECTION' - -* Def:: `.def NAME' - -* Desc:: `.desc SYMBOL, ABS-EXPRESSION' - -* Dim:: `.dim' - -* Double:: `.double FLONUMS' -* Eject:: `.eject' -* Else:: `.else' -* Elseif:: `.elseif' -* End:: `.end' - -* Endef:: `.endef' - -* Endfunc:: `.endfunc' -* Endif:: `.endif' -* Equ:: `.equ SYMBOL, EXPRESSION' -* Equiv:: `.equiv SYMBOL, EXPRESSION' -* Err:: `.err' -* Error:: `.error STRING' -* Exitm:: `.exitm' -* Extern:: `.extern' -* Fail:: `.fail' - -* File:: `.file STRING' - -* Fill:: `.fill REPEAT , SIZE , VALUE' -* Float:: `.float FLONUMS' -* Func:: `.func' -* Global:: `.global SYMBOL', `.globl SYMBOL' - -* Hidden:: `.hidden NAMES' - -* hword:: `.hword EXPRESSIONS' -* Ident:: `.ident' -* If:: `.if ABSOLUTE EXPRESSION' -* Incbin:: `.incbin "FILE"[,SKIP[,COUNT]]' -* Include:: `.include "FILE"' -* Int:: `.int EXPRESSIONS' - -* Internal:: `.internal NAMES' - -* Irp:: `.irp SYMBOL,VALUES'... -* Irpc:: `.irpc SYMBOL,VALUES'... -* Lcomm:: `.lcomm SYMBOL , LENGTH' -* Lflags:: `.lflags' - -* Line:: `.line LINE-NUMBER' - -* Ln:: `.ln LINE-NUMBER' -* Linkonce:: `.linkonce [TYPE]' -* List:: `.list' -* Long:: `.long EXPRESSIONS' - -* Macro:: `.macro NAME ARGS'... -* MRI:: `.mri VAL' -* Noaltmacro:: `.noaltmacro' -* Nolist:: `.nolist' -* Octa:: `.octa BIGNUMS' -* Org:: `.org NEW-LC , FILL' -* P2align:: `.p2align ABS-EXPR , ABS-EXPR' - -* PopSection:: `.popsection' -* Previous:: `.previous' - -* Print:: `.print STRING' - -* Protected:: `.protected NAMES' - -* Psize:: `.psize LINES, COLUMNS' -* Purgem:: `.purgem NAME' - -* PushSection:: `.pushsection NAME' - -* Quad:: `.quad BIGNUMS' -* Rept:: `.rept COUNT' -* Sbttl:: `.sbttl "SUBHEADING"' - -* Scl:: `.scl CLASS' - -* Section:: `.section NAME' - -* Set:: `.set SYMBOL, EXPRESSION' -* Short:: `.short EXPRESSIONS' -* Single:: `.single FLONUMS' - -* Size:: `.size [NAME , EXPRESSION]' - -* Skip:: `.skip SIZE , FILL' -* Sleb128:: `.sleb128 EXPRESSIONS' -* Space:: `.space SIZE , FILL' - -* Stab:: `.stabd, .stabn, .stabs' - -* String:: `.string "STR"' -* Struct:: `.struct EXPRESSION' - -* SubSection:: `.subsection' -* Symver:: `.symver NAME,NAME2@NODENAME' - - -* Tag:: `.tag STRUCTNAME' - -* Text:: `.text SUBSECTION' -* Title:: `.title "HEADING"' - -* Type:: `.type ' - -* Uleb128:: `.uleb128 EXPRESSIONS' - -* Val:: `.val ADDR' - - -* Version:: `.version "STRING"' -* VTableEntry:: `.vtable_entry TABLE, OFFSET' -* VTableInherit:: `.vtable_inherit CHILD, PARENT' - -* Warning:: `.warning STRING' -* Weak:: `.weak NAMES' -* Word:: `.word EXPRESSIONS' -* Deprecated:: Deprecated Directives - - -File: as.info, Node: Abort, Next: ABORT, Up: Pseudo Ops - -7.1 `.abort' -============ - -This directive stops the assembly immediately. It is for compatibility -with other assemblers. The original idea was that the assembly -language source would be piped into the assembler. If the sender of -the source quit, it could use this directive tells `as' to quit also. -One day `.abort' will not be supported. - - -File: as.info, Node: ABORT, Next: Align, Prev: Abort, Up: Pseudo Ops - -7.2 `.ABORT' -============ - -When producing COFF output, `as' accepts this directive as a synonym -for `.abort'. - - When producing `b.out' output, `as' accepts this directive, but -ignores it. - - -File: as.info, Node: Align, Next: Altmacro, Prev: ABORT, Up: Pseudo Ops - -7.3 `.align ABS-EXPR, ABS-EXPR, ABS-EXPR' -========================================= - -Pad the location counter (in the current subsection) to a particular -storage boundary. The first expression (which must be absolute) is the -alignment required, as described below. - - The second expression (also absolute) gives the fill value to be -stored in the padding bytes. It (and the comma) may be omitted. If it -is omitted, the padding bytes are normally zero. However, on some -systems, if the section is marked as containing code and the fill value -is omitted, the space is filled with no-op instructions. - - The third expression is also absolute, and is also optional. If it -is present, it is the maximum number of bytes that should be skipped by -this alignment directive. If doing the alignment would require -skipping more bytes than the specified maximum, then the alignment is -not done at all. You can omit the fill value (the second argument) -entirely by simply using two commas after the required alignment; this -can be useful if you want the alignment to be filled with no-op -instructions when appropriate. - - The way the required alignment is specified varies from system to -system. For the a29k, arc, hppa, i386 using ELF, i860, iq2000, m68k, -m88k, or32, s390, sparc, tic4x, tic80 and xtensa, the first expression -is the alignment request in bytes. For example `.align 8' advances the -location counter until it is a multiple of 8. If the location counter -is already a multiple of 8, no change is needed. For the tic54x, the -first expression is the alignment request in words. - - For other systems, including the i386 using a.out format, and the -arm and strongarm, it is the number of low-order zero bits the location -counter must have after advancement. For example `.align 3' advances -the location counter until it a multiple of 8. If the location counter -is already a multiple of 8, no change is needed. - - This inconsistency is due to the different behaviors of the various -native assemblers for these systems which GAS must emulate. GAS also -provides `.balign' and `.p2align' directives, described later, which -have a consistent behavior across all architectures (but are specific -to GAS). - - -File: as.info, Node: Ascii, Next: Asciz, Prev: Altmacro, Up: Pseudo Ops - -7.4 `.ascii "STRING"'... -======================== - -`.ascii' expects zero or more string literals (*note Strings::) -separated by commas. It assembles each string (with no automatic -trailing zero byte) into consecutive addresses. - - -File: as.info, Node: Asciz, Next: Balign, Prev: Ascii, Up: Pseudo Ops - -7.5 `.asciz "STRING"'... -======================== - -`.asciz' is just like `.ascii', but each string is followed by a zero -byte. The "z" in `.asciz' stands for "zero". - - -File: as.info, Node: Balign, Next: Byte, Prev: Asciz, Up: Pseudo Ops - -7.6 `.balign[wl] ABS-EXPR, ABS-EXPR, ABS-EXPR' -============================================== - -Pad the location counter (in the current subsection) to a particular -storage boundary. The first expression (which must be absolute) is the -alignment request in bytes. For example `.balign 8' advances the -location counter until it is a multiple of 8. If the location counter -is already a multiple of 8, no change is needed. - - The second expression (also absolute) gives the fill value to be -stored in the padding bytes. It (and the comma) may be omitted. If it -is omitted, the padding bytes are normally zero. However, on some -systems, if the section is marked as containing code and the fill value -is omitted, the space is filled with no-op instructions. - - The third expression is also absolute, and is also optional. If it -is present, it is the maximum number of bytes that should be skipped by -this alignment directive. If doing the alignment would require -skipping more bytes than the specified maximum, then the alignment is -not done at all. You can omit the fill value (the second argument) -entirely by simply using two commas after the required alignment; this -can be useful if you want the alignment to be filled with no-op -instructions when appropriate. - - The `.balignw' and `.balignl' directives are variants of the -`.balign' directive. The `.balignw' directive treats the fill pattern -as a two byte word value. The `.balignl' directives treats the fill -pattern as a four byte longword value. For example, `.balignw -4,0x368d' will align to a multiple of 4. If it skips two bytes, they -will be filled in with the value 0x368d (the exact placement of the -bytes depends upon the endianness of the processor). If it skips 1 or -3 bytes, the fill value is undefined. - - -File: as.info, Node: Byte, Next: Comm, Prev: Balign, Up: Pseudo Ops - -7.7 `.byte EXPRESSIONS' -======================= - -`.byte' expects zero or more expressions, separated by commas. Each -expression is assembled into the next byte. - - -File: as.info, Node: Comm, Next: CFI directives, Prev: Byte, Up: Pseudo Ops - -7.8 `.comm SYMBOL , LENGTH ' -============================ - -`.comm' declares a common symbol named SYMBOL. When linking, a common -symbol in one object file may be merged with a defined or common symbol -of the same name in another object file. If `ld' does not see a -definition for the symbol-just one or more common symbols-then it will -allocate LENGTH bytes of uninitialized memory. LENGTH must be an -absolute expression. If `ld' sees multiple common symbols with the -same name, and they do not all have the same size, it will allocate -space using the largest size. - - When using ELF, the `.comm' directive takes an optional third -argument. This is the desired alignment of the symbol, specified as a -byte boundary (for example, an alignment of 16 means that the least -significant 4 bits of the address should be zero). The alignment must -be an absolute expression, and it must be a power of two. If `ld' -allocates uninitialized memory for the common symbol, it will use the -alignment when placing the symbol. If no alignment is specified, `as' -will set the alignment to the largest power of two less than or equal -to the size of the symbol, up to a maximum of 16. - - The syntax for `.comm' differs slightly on the HPPA. The syntax is -`SYMBOL .comm, LENGTH'; SYMBOL is optional. - - -File: as.info, Node: CFI directives, Next: Data, Prev: Comm, Up: Pseudo Ops - -7.9 `.cfi_startproc' -==================== - -`.cfi_startproc' is used at the beginning of each function that should -have an entry in `.eh_frame'. It initializes some internal data -structures and emits architecture dependent initial CFI instructions. -Don't forget to close the function by `.cfi_endproc'. - -7.10 `.cfi_endproc' -=================== - -`.cfi_endproc' is used at the end of a function where it closes its -unwind entry previously opened by `.cfi_startproc'. and emits it to -`.eh_frame'. - -7.11 `.cfi_def_cfa REGISTER, OFFSET' -==================================== - -`.cfi_def_cfa' defines a rule for computing CFA as: take address from -REGISTER and add OFFSET to it. - -7.12 `.cfi_def_cfa_register REGISTER' -===================================== - -`.cfi_def_cfa_register' modifies a rule for computing CFA. From now on -REGISTER will be used instead of the old one. Offset remains the same. - -7.13 `.cfi_def_cfa_offset OFFSET' -================================= - -`.cfi_def_cfa_offset' modifies a rule for computing CFA. Register -remains the same, but OFFSET is new. Note that it is the absolute -offset that will be added to a defined register to compute CFA address. - -7.14 `.cfi_adjust_cfa_offset OFFSET' -==================================== - -Same as `.cfi_def_cfa_offset' but OFFSET is a relative value that is -added/substracted from the previous offset. - -7.15 `.cfi_offset REGISTER, OFFSET' -=================================== - -Previous value of REGISTER is saved at offset OFFSET from CFA. - -7.16 `.cfi_rel_offset REGISTER, OFFSET' -======================================= - -Previous value of REGISTER is saved at offset OFFSET from the current -CFA register. This is transformed to `.cfi_offset' using the known -displacement of the CFA register from the CFA. This is often easier to -use, because the number will match the code it's annotating. - -7.17 `.cfi_window_save' -======================= - -SPARC register window has been saved. - -7.18 `.cfi_escape' EXPRESSION[, ...] -==================================== - -Allows the user to add arbitrary bytes to the unwind info. One might -use this to add OS-specific CFI opcodes, or generic CFI opcodes that -GAS does not yet support. - - -File: as.info, Node: Data, Next: Def, Prev: CFI directives, Up: Pseudo Ops - -7.19 `.data SUBSECTION' -======================= - -`.data' tells `as' to assemble the following statements onto the end of -the data subsection numbered SUBSECTION (which is an absolute -expression). If SUBSECTION is omitted, it defaults to zero. - - -File: as.info, Node: Def, Next: Desc, Prev: Data, Up: Pseudo Ops - -7.20 `.def NAME' -================ - -Begin defining debugging information for a symbol NAME; the definition -extends until the `.endef' directive is encountered. - - This directive is only observed when `as' is configured for COFF -format output; when producing `b.out', `.def' is recognized, but -ignored. - - -File: as.info, Node: Desc, Next: Dim, Prev: Def, Up: Pseudo Ops - -7.21 `.desc SYMBOL, ABS-EXPRESSION' -=================================== - -This directive sets the descriptor of the symbol (*note Symbol -Attributes::) to the low 16 bits of an absolute expression. - - The `.desc' directive is not available when `as' is configured for -COFF output; it is only for `a.out' or `b.out' object format. For the -sake of compatibility, `as' accepts it, but produces no output, when -configured for COFF. - - -File: as.info, Node: Dim, Next: Double, Prev: Desc, Up: Pseudo Ops - -7.22 `.dim' -=========== - -This directive is generated by compilers to include auxiliary debugging -information in the symbol table. It is only permitted inside -`.def'/`.endef' pairs. - - `.dim' is only meaningful when generating COFF format output; when -`as' is generating `b.out', it accepts this directive but ignores it. - - -File: as.info, Node: Double, Next: Eject, Prev: Dim, Up: Pseudo Ops - -7.23 `.double FLONUMS' -====================== - -`.double' expects zero or more flonums, separated by commas. It -assembles floating point numbers. The exact kind of floating point -numbers emitted depends on how `as' is configured. *Note Machine -Dependencies::. - - -File: as.info, Node: Eject, Next: Else, Prev: Double, Up: Pseudo Ops - -7.24 `.eject' -============= - -Force a page break at this point, when generating assembly listings. - - -File: as.info, Node: Else, Next: Elseif, Prev: Eject, Up: Pseudo Ops - -7.25 `.else' -============ - -`.else' is part of the `as' support for conditional assembly; *note -`.if': If. It marks the beginning of a section of code to be assembled -if the condition for the preceding `.if' was false. - - -File: as.info, Node: Elseif, Next: End, Prev: Else, Up: Pseudo Ops - -7.26 `.elseif' -============== - -`.elseif' is part of the `as' support for conditional assembly; *note -`.if': If. It is shorthand for beginning a new `.if' block that would -otherwise fill the entire `.else' section. - - -File: as.info, Node: End, Next: Endef, Prev: Elseif, Up: Pseudo Ops - -7.27 `.end' -=========== - -`.end' marks the end of the assembly file. `as' does not process -anything in the file past the `.end' directive. - - -File: as.info, Node: Endef, Next: Endfunc, Prev: End, Up: Pseudo Ops - -7.28 `.endef' -============= - -This directive flags the end of a symbol definition begun with `.def'. - - `.endef' is only meaningful when generating COFF format output; if -`as' is configured to generate `b.out', it accepts this directive but -ignores it. - - -File: as.info, Node: Endfunc, Next: Endif, Prev: Endef, Up: Pseudo Ops - -7.29 `.endfunc' -=============== - -`.endfunc' marks the end of a function specified with `.func'. - - -File: as.info, Node: Endif, Next: Equ, Prev: Endfunc, Up: Pseudo Ops - -7.30 `.endif' -============= - -`.endif' is part of the `as' support for conditional assembly; it marks -the end of a block of code that is only assembled conditionally. *Note -`.if': If. - - -File: as.info, Node: Equ, Next: Equiv, Prev: Endif, Up: Pseudo Ops - -7.31 `.equ SYMBOL, EXPRESSION' -============================== - -This directive sets the value of SYMBOL to EXPRESSION. It is -synonymous with `.set'; *note `.set': Set. - - The syntax for `equ' on the HPPA is `SYMBOL .equ EXPRESSION'. - - -File: as.info, Node: Equiv, Next: Err, Prev: Equ, Up: Pseudo Ops - -7.32 `.equiv SYMBOL, EXPRESSION' -================================ - -The `.equiv' directive is like `.equ' and `.set', except that the -assembler will signal an error if SYMBOL is already defined. Note a -symbol which has been referenced but not actually defined is considered -to be undefined. - - Except for the contents of the error message, this is roughly -equivalent to - .ifdef SYM - .err - .endif - .equ SYM,VAL - - -File: as.info, Node: Err, Next: Error, Prev: Equiv, Up: Pseudo Ops - -7.33 `.err' -=========== - -If `as' assembles a `.err' directive, it will print an error message -and, unless the `-Z' option was used, it will not generate an object -file. This can be used to signal error an conditionally compiled code. - - -File: as.info, Node: Error, Next: Exitm, Prev: Err, Up: Pseudo Ops - -7.34 `.error "STRING"' -====================== - -Similarly to `.err', this directive emits an error, but you can specify -a string that will be emitted as the error message. If you don't -specify the message, it defaults to `".error directive invoked in -source file"'. *Note Error and Warning Messages: Errors. - - .error "This code has not been assembled and tested." - - -File: as.info, Node: Exitm, Next: Extern, Prev: Error, Up: Pseudo Ops - -7.35 `.exitm' -============= - -Exit early from the current macro definition. *Note Macro::. - - -File: as.info, Node: Extern, Next: Fail, Prev: Exitm, Up: Pseudo Ops - -7.36 `.extern' -============== - -`.extern' is accepted in the source program--for compatibility with -other assemblers--but it is ignored. `as' treats all undefined symbols -as external. - - -File: as.info, Node: Fail, Next: File, Prev: Extern, Up: Pseudo Ops - -7.37 `.fail EXPRESSION' -======================= - -Generates an error or a warning. If the value of the EXPRESSION is 500 -or more, `as' will print a warning message. If the value is less than -500, `as' will print an error message. The message will include the -value of EXPRESSION. This can occasionally be useful inside complex -nested macros or conditional assembly. - - -File: as.info, Node: File, Next: Fill, Prev: Fail, Up: Pseudo Ops - -7.38 `.file STRING' -=================== - -`.file' tells `as' that we are about to start a new logical file. -STRING is the new file name. In general, the filename is recognized -whether or not it is surrounded by quotes `"'; but if you wish to -specify an empty file name, you must give the quotes-`""'. This -statement may go away in future: it is only recognized to be compatible -with old `as' programs. In some configurations of `as', `.file' has -already been removed to avoid conflicts with other assemblers. *Note -Machine Dependencies::. - - -File: as.info, Node: Fill, Next: Float, Prev: File, Up: Pseudo Ops - -7.39 `.fill REPEAT , SIZE , VALUE' -================================== - -REPEAT, SIZE and VALUE are absolute expressions. This emits REPEAT -copies of SIZE bytes. REPEAT may be zero or more. SIZE may be zero or -more, but if it is more than 8, then it is deemed to have the value 8, -compatible with other people's assemblers. The contents of each REPEAT -bytes is taken from an 8-byte number. The highest order 4 bytes are -zero. The lowest order 4 bytes are VALUE rendered in the byte-order of -an integer on the computer `as' is assembling for. Each SIZE bytes in -a repetition is taken from the lowest order SIZE bytes of this number. -Again, this bizarre behavior is compatible with other people's -assemblers. - - SIZE and VALUE are optional. If the second comma and VALUE are -absent, VALUE is assumed zero. If the first comma and following tokens -are absent, SIZE is assumed to be 1. - - -File: as.info, Node: Float, Next: Func, Prev: Fill, Up: Pseudo Ops - -7.40 `.float FLONUMS' -===================== - -This directive assembles zero or more flonums, separated by commas. It -has the same effect as `.single'. The exact kind of floating point -numbers emitted depends on how `as' is configured. *Note Machine -Dependencies::. - - -File: as.info, Node: Func, Next: Global, Prev: Float, Up: Pseudo Ops - -7.41 `.func NAME[,LABEL]' -========================= - -`.func' emits debugging information to denote function NAME, and is -ignored unless the file is assembled with debugging enabled. Only -`--gstabs[+]' is currently supported. LABEL is the entry point of the -function and if omitted NAME prepended with the `leading char' is used. -`leading char' is usually `_' or nothing, depending on the target. All -functions are currently defined to have `void' return type. The -function must be terminated with `.endfunc'. - - -File: as.info, Node: Global, Next: Hidden, Prev: Func, Up: Pseudo Ops - -7.42 `.global SYMBOL', `.globl SYMBOL' -====================================== - -`.global' makes the symbol visible to `ld'. If you define SYMBOL in -your partial program, its value is made available to other partial -programs that are linked with it. Otherwise, SYMBOL takes its -attributes from a symbol of the same name from another file linked into -the same program. - - Both spellings (`.globl' and `.global') are accepted, for -compatibility with other assemblers. - - On the HPPA, `.global' is not always enough to make it accessible to -other partial programs. You may need the HPPA-only `.EXPORT' directive -as well. *Note HPPA Assembler Directives: HPPA Directives. - - -File: as.info, Node: Hidden, Next: hword, Prev: Global, Up: Pseudo Ops - -7.43 `.hidden NAMES' -==================== - -This is one of the ELF visibility directives. The other two are -`.internal' (*note `.internal': Internal.) and `.protected' (*note -`.protected': Protected.). - - This directive overrides the named symbols default visibility (which -is set by their binding: local, global or weak). The directive sets -the visibility to `hidden' which means that the symbols are not visible -to other components. Such symbols are always considered to be -`protected' as well. - - -File: as.info, Node: hword, Next: Ident, Prev: Hidden, Up: Pseudo Ops - -7.44 `.hword EXPRESSIONS' -========================= - -This expects zero or more EXPRESSIONS, and emits a 16 bit number for -each. - - This directive is a synonym for `.short'; depending on the target -architecture, it may also be a synonym for `.word'. - - -File: as.info, Node: Ident, Next: If, Prev: hword, Up: Pseudo Ops - -7.45 `.ident' -============= - -This directive is used by some assemblers to place tags in object files. -`as' simply accepts the directive for source-file compatibility with -such assemblers, but does not actually emit anything for it. - - -File: as.info, Node: If, Next: Incbin, Prev: Ident, Up: Pseudo Ops - -7.46 `.if ABSOLUTE EXPRESSION' -============================== - -`.if' marks the beginning of a section of code which is only considered -part of the source program being assembled if the argument (which must -be an ABSOLUTE EXPRESSION) is non-zero. The end of the conditional -section of code must be marked by `.endif' (*note `.endif': Endif.); -optionally, you may include code for the alternative condition, flagged -by `.else' (*note `.else': Else.). If you have several conditions to -check, `.elseif' may be used to avoid nesting blocks if/else within -each subsequent `.else' block. - - The following variants of `.if' are also supported: -`.ifdef SYMBOL' - Assembles the following section of code if the specified SYMBOL - has been defined. Note a symbol which has been referenced but not - yet defined is considered to be undefined. - -`.ifc STRING1,STRING2' - Assembles the following section of code if the two strings are the - same. The strings may be optionally quoted with single quotes. - If they are not quoted, the first string stops at the first comma, - and the second string stops at the end of the line. Strings which - contain whitespace should be quoted. The string comparison is - case sensitive. - -`.ifeq ABSOLUTE EXPRESSION' - Assembles the following section of code if the argument is zero. - -`.ifeqs STRING1,STRING2' - Another form of `.ifc'. The strings must be quoted using double - quotes. - -`.ifge ABSOLUTE EXPRESSION' - Assembles the following section of code if the argument is greater - than or equal to zero. - -`.ifgt ABSOLUTE EXPRESSION' - Assembles the following section of code if the argument is greater - than zero. - -`.ifle ABSOLUTE EXPRESSION' - Assembles the following section of code if the argument is less - than or equal to zero. - -`.iflt ABSOLUTE EXPRESSION' - Assembles the following section of code if the argument is less - than zero. - -`.ifnc STRING1,STRING2.' - Like `.ifc', but the sense of the test is reversed: this assembles - the following section of code if the two strings are not the same. - -`.ifndef SYMBOL' -`.ifnotdef SYMBOL' - Assembles the following section of code if the specified SYMBOL - has not been defined. Both spelling variants are equivalent. - Note a symbol which has been referenced but not yet defined is - considered to be undefined. - -`.ifne ABSOLUTE EXPRESSION' - Assembles the following section of code if the argument is not - equal to zero (in other words, this is equivalent to `.if'). - -`.ifnes STRING1,STRING2' - Like `.ifeqs', but the sense of the test is reversed: this - assembles the following section of code if the two strings are not - the same. - - -File: as.info, Node: Incbin, Next: Include, Prev: If, Up: Pseudo Ops - -7.47 `.incbin "FILE"[,SKIP[,COUNT]]' -==================================== - -The `incbin' directive includes FILE verbatim at the current location. -You can control the search paths used with the `-I' command-line option -(*note Command-Line Options: Invoking.). Quotation marks are required -around FILE. - - The SKIP argument skips a number of bytes from the start of the -FILE. The COUNT argument indicates the maximum number of bytes to -read. Note that the data is not aligned in any way, so it is the user's -responsibility to make sure that proper alignment is provided both -before and after the `incbin' directive. - - -File: as.info, Node: Include, Next: Int, Prev: Incbin, Up: Pseudo Ops - -7.48 `.include "FILE"' -====================== - -This directive provides a way to include supporting files at specified -points in your source program. The code from FILE is assembled as if -it followed the point of the `.include'; when the end of the included -file is reached, assembly of the original file continues. You can -control the search paths used with the `-I' command-line option (*note -Command-Line Options: Invoking.). Quotation marks are required around -FILE. - - -File: as.info, Node: Int, Next: Internal, Prev: Include, Up: Pseudo Ops - -7.49 `.int EXPRESSIONS' -======================= - -Expect zero or more EXPRESSIONS, of any section, separated by commas. -For each expression, emit a number that, at run time, is the value of -that expression. The byte order and bit size of the number depends on -what kind of target the assembly is for. - - -File: as.info, Node: Internal, Next: Irp, Prev: Int, Up: Pseudo Ops - -7.50 `.internal NAMES' -====================== - -This is one of the ELF visibility directives. The other two are -`.hidden' (*note `.hidden': Hidden.) and `.protected' (*note -`.protected': Protected.). - - This directive overrides the named symbols default visibility (which -is set by their binding: local, global or weak). The directive sets -the visibility to `internal' which means that the symbols are -considered to be `hidden' (i.e., not visible to other components), and -that some extra, processor specific processing must also be performed -upon the symbols as well. - - -File: as.info, Node: Irp, Next: Irpc, Prev: Internal, Up: Pseudo Ops - -7.51 `.irp SYMBOL,VALUES'... -============================ - -Evaluate a sequence of statements assigning different values to SYMBOL. -The sequence of statements starts at the `.irp' directive, and is -terminated by an `.endr' directive. For each VALUE, SYMBOL is set to -VALUE, and the sequence of statements is assembled. If no VALUE is -listed, the sequence of statements is assembled once, with SYMBOL set -to the null string. To refer to SYMBOL within the sequence of -statements, use \SYMBOL. - - For example, assembling - - .irp param,1,2,3 - move d\param,sp@- - .endr - - is equivalent to assembling - - move d1,sp@- - move d2,sp@- - move d3,sp@- - - -File: as.info, Node: Irpc, Next: Lcomm, Prev: Irp, Up: Pseudo Ops - -7.52 `.irpc SYMBOL,VALUES'... -============================= - -Evaluate a sequence of statements assigning different values to SYMBOL. -The sequence of statements starts at the `.irpc' directive, and is -terminated by an `.endr' directive. For each character in VALUE, -SYMBOL is set to the character, and the sequence of statements is -assembled. If no VALUE is listed, the sequence of statements is -assembled once, with SYMBOL set to the null string. To refer to SYMBOL -within the sequence of statements, use \SYMBOL. - - For example, assembling - - .irpc param,123 - move d\param,sp@- - .endr - - is equivalent to assembling - - move d1,sp@- - move d2,sp@- - move d3,sp@- - - -File: as.info, Node: Lcomm, Next: Lflags, Prev: Irpc, Up: Pseudo Ops - -7.53 `.lcomm SYMBOL , LENGTH' -============================= - -Reserve LENGTH (an absolute expression) bytes for a local common -denoted by SYMBOL. The section and value of SYMBOL are those of the -new local common. The addresses are allocated in the bss section, so -that at run-time the bytes start off zeroed. SYMBOL is not declared -global (*note `.global': Global.), so is normally not visible to `ld'. - - Some targets permit a third argument to be used with `.lcomm'. This -argument specifies the desired alignment of the symbol in the bss -section. - - The syntax for `.lcomm' differs slightly on the HPPA. The syntax is -`SYMBOL .lcomm, LENGTH'; SYMBOL is optional. - - -File: as.info, Node: Lflags, Next: Line, Prev: Lcomm, Up: Pseudo Ops - -7.54 `.lflags' -============== - -`as' accepts this directive, for compatibility with other assemblers, -but ignores it. - - -File: as.info, Node: Line, Next: Ln, Prev: Lflags, Up: Pseudo Ops - -7.55 `.line LINE-NUMBER' -======================== - - Change the logical line number. LINE-NUMBER must be an absolute -expression. The next line has that logical line number. Therefore any -other statements on the current line (after a statement separator -character) are reported as on logical line number LINE-NUMBER - 1. One -day `as' will no longer support this directive: it is recognized only -for compatibility with existing assembler programs. - - _Warning:_ In the AMD29K configuration of as, this command is not -available; use the synonym `.ln' in that context. - - Even though this is a directive associated with the `a.out' or -`b.out' object-code formats, `as' still recognizes it when producing -COFF output, and treats `.line' as though it were the COFF `.ln' _if_ -it is found outside a `.def'/`.endef' pair. - - Inside a `.def', `.line' is, instead, one of the directives used by -compilers to generate auxiliary symbol information for debugging. - - -File: as.info, Node: Linkonce, Next: List, Prev: Ln, Up: Pseudo Ops - -7.56 `.linkonce [TYPE]' -======================= - -Mark the current section so that the linker only includes a single copy -of it. This may be used to include the same section in several -different object files, but ensure that the linker will only include it -once in the final output file. The `.linkonce' pseudo-op must be used -for each instance of the section. Duplicate sections are detected -based on the section name, so it should be unique. - - This directive is only supported by a few object file formats; as of -this writing, the only object file format which supports it is the -Portable Executable format used on Windows NT. - - The TYPE argument is optional. If specified, it must be one of the -following strings. For example: - .linkonce same_size - Not all types may be supported on all object file formats. - -`discard' - Silently discard duplicate sections. This is the default. - -`one_only' - Warn if there are duplicate sections, but still keep only one copy. - -`same_size' - Warn if any of the duplicates have different sizes. - -`same_contents' - Warn if any of the duplicates do not have exactly the same - contents. - - -File: as.info, Node: Ln, Next: Linkonce, Prev: Line, Up: Pseudo Ops - -7.57 `.ln LINE-NUMBER' -====================== - -`.ln' is a synonym for `.line'. - - -File: as.info, Node: MRI, Next: Noaltmacro, Prev: Macro, Up: Pseudo Ops - -7.58 `.mri VAL' -=============== - -If VAL is non-zero, this tells `as' to enter MRI mode. If VAL is zero, -this tells `as' to exit MRI mode. This change affects code assembled -until the next `.mri' directive, or until the end of the file. *Note -MRI mode: M. - - -File: as.info, Node: List, Next: Long, Prev: Linkonce, Up: Pseudo Ops - -7.59 `.list' -============ - -Control (in conjunction with the `.nolist' directive) whether or not -assembly listings are generated. These two directives maintain an -internal counter (which is zero initially). `.list' increments the -counter, and `.nolist' decrements it. Assembly listings are generated -whenever the counter is greater than zero. - - By default, listings are disabled. When you enable them (with the -`-a' command line option; *note Command-Line Options: Invoking.), the -initial value of the listing counter is one. - - -File: as.info, Node: Long, Next: Macro, Prev: List, Up: Pseudo Ops - -7.60 `.long EXPRESSIONS' -======================== - -`.long' is the same as `.int', *note `.int': Int. - - -File: as.info, Node: Macro, Next: MRI, Prev: Long, Up: Pseudo Ops - -7.61 `.macro' -============= - -The commands `.macro' and `.endm' allow you to define macros that -generate assembly output. For example, this definition specifies a -macro `sum' that puts a sequence of numbers into memory: - - .macro sum from=0, to=5 - .long \from - .if \to-\from - sum "(\from+1)",\to - .endif - .endm - -With that definition, `SUM 0,5' is equivalent to this assembly input: - - .long 0 - .long 1 - .long 2 - .long 3 - .long 4 - .long 5 - -`.macro MACNAME' -`.macro MACNAME MACARGS ...' - Begin the definition of a macro called MACNAME. If your macro - definition requires arguments, specify their names after the macro - name, separated by commas or spaces. You can supply a default - value for any macro argument by following the name with `=DEFLT'. - You cannot define two macros with the same MACNAME unless it has - been subject to the `.purgem' directive (*Note Purgem::.) between - the two definitions. For example, these are all valid `.macro' - statements: - - `.macro comm' - Begin the definition of a macro called `comm', which takes no - arguments. - - `.macro plus1 p, p1' - `.macro plus1 p p1' - Either statement begins the definition of a macro called - `plus1', which takes two arguments; within the macro - definition, write `\p' or `\p1' to evaluate the arguments. - - `.macro reserve_str p1=0 p2' - Begin the definition of a macro called `reserve_str', with two - arguments. The first argument has a default value, but not - the second. After the definition is complete, you can call - the macro either as `reserve_str A,B' (with `\p1' evaluating - to A and `\p2' evaluating to B), or as `reserve_str ,B' (with - `\p1' evaluating as the default, in this case `0', and `\p2' - evaluating to B). - - When you call a macro, you can specify the argument values either - by position, or by keyword. For example, `sum 9,17' is equivalent - to `sum to=17, from=9'. - -`.endm' - Mark the end of a macro definition. - -`.exitm' - Exit early from the current macro definition. - -`\@' - `as' maintains a counter of how many macros it has executed in - this pseudo-variable; you can copy that number to your output with - `\@', but _only within a macro definition_. - -`LOCAL NAME [ , ... ]' - _Warning: `LOCAL' is only available if you select "alternate macro - syntax" with `--alternate' or `.altmacro'._ *Note `.altmacro': - Altmacro. - - -File: as.info, Node: Altmacro, Next: Ascii, Prev: Align, Up: Pseudo Ops - -7.62 `.altmacro' -================ - -Enable alternate macro mode, enabling: - -`LOCAL NAME [ , ... ]' - One additional directive, `LOCAL', is available. It is used to - generate a string replacement for each of the NAME arguments, and - replace any instances of NAME in each macro expansion. The - replacement string is unique in the assembly, and different for - each separate macro expansion. `LOCAL' allows you to write macros - that define symbols, without fear of conflict between separate - macro expansions. - -`String delimiters' - You can write strings delimited in these other ways besides - `"STRING"': - - `'STRING'' - You can delimit strings with single-quote charaters. - - `' - You can delimit strings with matching angle brackets. - -`single-character string escape' - To include any single character literally in a string (even if the - character would otherwise have some special meaning), you can - prefix the character with `!' (an exclamation mark). For example, - you can write `<4.3 !> 5.4!!>' to get the literal text `4.3 > - 5.4!'. - -`Expression results as strings' - You can write `%EXPR' to evaluate the expression EXPR and use the - result as a string. - - -File: as.info, Node: Noaltmacro, Next: Nolist, Prev: MRI, Up: Pseudo Ops - -7.63 `.noaltmacro' -================== - -Disable alternate macro mode. *Note Altmacro:: - - -File: as.info, Node: Nolist, Next: Octa, Prev: Noaltmacro, Up: Pseudo Ops - -7.64 `.nolist' -============== - -Control (in conjunction with the `.list' directive) whether or not -assembly listings are generated. These two directives maintain an -internal counter (which is zero initially). `.list' increments the -counter, and `.nolist' decrements it. Assembly listings are generated -whenever the counter is greater than zero. - - -File: as.info, Node: Octa, Next: Org, Prev: Nolist, Up: Pseudo Ops - -7.65 `.octa BIGNUMS' -==================== - -This directive expects zero or more bignums, separated by commas. For -each bignum, it emits a 16-byte integer. - - The term "octa" comes from contexts in which a "word" is two bytes; -hence _octa_-word for 16 bytes. - - -File: as.info, Node: Org, Next: P2align, Prev: Octa, Up: Pseudo Ops - -7.66 `.org NEW-LC , FILL' -========================= - -Advance the location counter of the current section to NEW-LC. NEW-LC -is either an absolute expression or an expression with the same section -as the current subsection. That is, you can't use `.org' to cross -sections: if NEW-LC has the wrong section, the `.org' directive is -ignored. To be compatible with former assemblers, if the section of -NEW-LC is absolute, `as' issues a warning, then pretends the section of -NEW-LC is the same as the current subsection. - - `.org' may only increase the location counter, or leave it -unchanged; you cannot use `.org' to move the location counter backwards. - - Because `as' tries to assemble programs in one pass, NEW-LC may not -be undefined. If you really detest this restriction we eagerly await a -chance to share your improved assembler. - - Beware that the origin is relative to the start of the section, not -to the start of the subsection. This is compatible with other people's -assemblers. - - When the location counter (of the current subsection) is advanced, -the intervening bytes are filled with FILL which should be an absolute -expression. If the comma and FILL are omitted, FILL defaults to zero. - - -File: as.info, Node: P2align, Next: PopSection, Prev: Org, Up: Pseudo Ops - -7.67 `.p2align[wl] ABS-EXPR, ABS-EXPR, ABS-EXPR' -================================================ - -Pad the location counter (in the current subsection) to a particular -storage boundary. The first expression (which must be absolute) is the -number of low-order zero bits the location counter must have after -advancement. For example `.p2align 3' advances the location counter -until it a multiple of 8. If the location counter is already a -multiple of 8, no change is needed. - - The second expression (also absolute) gives the fill value to be -stored in the padding bytes. It (and the comma) may be omitted. If it -is omitted, the padding bytes are normally zero. However, on some -systems, if the section is marked as containing code and the fill value -is omitted, the space is filled with no-op instructions. - - The third expression is also absolute, and is also optional. If it -is present, it is the maximum number of bytes that should be skipped by -this alignment directive. If doing the alignment would require -skipping more bytes than the specified maximum, then the alignment is -not done at all. You can omit the fill value (the second argument) -entirely by simply using two commas after the required alignment; this -can be useful if you want the alignment to be filled with no-op -instructions when appropriate. - - The `.p2alignw' and `.p2alignl' directives are variants of the -`.p2align' directive. The `.p2alignw' directive treats the fill -pattern as a two byte word value. The `.p2alignl' directives treats the -fill pattern as a four byte longword value. For example, `.p2alignw -2,0x368d' will align to a multiple of 4. If it skips two bytes, they -will be filled in with the value 0x368d (the exact placement of the -bytes depends upon the endianness of the processor). If it skips 1 or -3 bytes, the fill value is undefined. - - -File: as.info, Node: Previous, Next: Print, Prev: PopSection, Up: Pseudo Ops - -7.68 `.previous' -================ - -This is one of the ELF section stack manipulation directives. The -others are `.section' (*note Section::), `.subsection' (*note -SubSection::), `.pushsection' (*note PushSection::), and `.popsection' -(*note PopSection::). - - This directive swaps the current section (and subsection) with most -recently referenced section (and subsection) prior to this one. -Multiple `.previous' directives in a row will flip between two sections -(and their subsections). - - In terms of the section stack, this directive swaps the current -section with the top section on the section stack. - - -File: as.info, Node: PopSection, Next: Previous, Prev: P2align, Up: Pseudo Ops - -7.69 `.popsection' -================== - -This is one of the ELF section stack manipulation directives. The -others are `.section' (*note Section::), `.subsection' (*note -SubSection::), `.pushsection' (*note PushSection::), and `.previous' -(*note Previous::). - - This directive replaces the current section (and subsection) with -the top section (and subsection) on the section stack. This section is -popped off the stack. - - -File: as.info, Node: Print, Next: Protected, Prev: Previous, Up: Pseudo Ops - -7.70 `.print STRING' -==================== - -`as' will print STRING on the standard output during assembly. You -must put STRING in double quotes. - - -File: as.info, Node: Protected, Next: Psize, Prev: Print, Up: Pseudo Ops - -7.71 `.protected NAMES' -======================= - -This is one of the ELF visibility directives. The other two are -`.hidden' (*note Hidden::) and `.internal' (*note Internal::). - - This directive overrides the named symbols default visibility (which -is set by their binding: local, global or weak). The directive sets -the visibility to `protected' which means that any references to the -symbols from within the components that defines them must be resolved -to the definition in that component, even if a definition in another -component would normally preempt this. - - -File: as.info, Node: Psize, Next: Purgem, Prev: Protected, Up: Pseudo Ops - -7.72 `.psize LINES , COLUMNS' -============================= - -Use this directive to declare the number of lines--and, optionally, the -number of columns--to use for each page, when generating listings. - - If you do not use `.psize', listings use a default line-count of 60. -You may omit the comma and COLUMNS specification; the default width is -200 columns. - - `as' generates formfeeds whenever the specified number of lines is -exceeded (or whenever you explicitly request one, using `.eject'). - - If you specify LINES as `0', no formfeeds are generated save those -explicitly specified with `.eject'. - - -File: as.info, Node: Purgem, Next: PushSection, Prev: Psize, Up: Pseudo Ops - -7.73 `.purgem NAME' -=================== - -Undefine the macro NAME, so that later uses of the string will not be -expanded. *Note Macro::. - - -File: as.info, Node: PushSection, Next: Quad, Prev: Purgem, Up: Pseudo Ops - -7.74 `.pushsection NAME , SUBSECTION' -===================================== - -This is one of the ELF section stack manipulation directives. The -others are `.section' (*note Section::), `.subsection' (*note -SubSection::), `.popsection' (*note PopSection::), and `.previous' -(*note Previous::). - - This directive pushes the current section (and subsection) onto the -top of the section stack, and then replaces the current section and -subsection with `name' and `subsection'. - - -File: as.info, Node: Quad, Next: Rept, Prev: PushSection, Up: Pseudo Ops - -7.75 `.quad BIGNUMS' -==================== - -`.quad' expects zero or more bignums, separated by commas. For each -bignum, it emits an 8-byte integer. If the bignum won't fit in 8 -bytes, it prints a warning message; and just takes the lowest order 8 -bytes of the bignum. - - The term "quad" comes from contexts in which a "word" is two bytes; -hence _quad_-word for 8 bytes. - - -File: as.info, Node: Rept, Next: Sbttl, Prev: Quad, Up: Pseudo Ops - -7.76 `.rept COUNT' -================== - -Repeat the sequence of lines between the `.rept' directive and the next -`.endr' directive COUNT times. - - For example, assembling - - .rept 3 - .long 0 - .endr - - is equivalent to assembling - - .long 0 - .long 0 - .long 0 - - -File: as.info, Node: Sbttl, Next: Scl, Prev: Rept, Up: Pseudo Ops - -7.77 `.sbttl "SUBHEADING"' -========================== - -Use SUBHEADING as the title (third line, immediately after the title -line) when generating assembly listings. - - This directive affects subsequent pages, as well as the current page -if it appears within ten lines of the top of a page. - - -File: as.info, Node: Scl, Next: Section, Prev: Sbttl, Up: Pseudo Ops - -7.78 `.scl CLASS' -================= - -Set the storage-class value for a symbol. This directive may only be -used inside a `.def'/`.endef' pair. Storage class may flag whether a -symbol is static or external, or it may record further symbolic -debugging information. - - The `.scl' directive is primarily associated with COFF output; when -configured to generate `b.out' output format, `as' accepts this -directive but ignores it. - - -File: as.info, Node: Section, Next: Set, Prev: Scl, Up: Pseudo Ops - -7.79 `.section NAME' -==================== - -Use the `.section' directive to assemble the following code into a -section named NAME. - - This directive is only supported for targets that actually support -arbitrarily named sections; on `a.out' targets, for example, it is not -accepted, even with a standard `a.out' section name. - -COFF Version ------------- - - For COFF targets, the `.section' directive is used in one of the -following ways: - - .section NAME[, "FLAGS"] - .section NAME[, SUBSEGMENT] - - If the optional argument is quoted, it is taken as flags to use for -the section. Each flag is a single character. The following flags are -recognized: -`b' - bss section (uninitialized data) - -`n' - section is not loaded - -`w' - writable section - -`d' - data section - -`r' - read-only section - -`x' - executable section - -`s' - shared section (meaningful for PE targets) - -`a' - ignored. (For compatibility with the ELF version) - - If no flags are specified, the default flags depend upon the section -name. If the section name is not recognized, the default will be for -the section to be loaded and writable. Note the `n' and `w' flags -remove attributes from the section, rather than adding them, so if they -are used on their own it will be as if no flags had been specified at -all. - - If the optional argument to the `.section' directive is not quoted, -it is taken as a subsegment number (*note Sub-Sections::). - -ELF Version ------------ - - This is one of the ELF section stack manipulation directives. The -others are `.subsection' (*note SubSection::), `.pushsection' (*note -PushSection::), `.popsection' (*note PopSection::), and `.previous' -(*note Previous::). - - For ELF targets, the `.section' directive is used like this: - - .section NAME [, "FLAGS"[, @TYPE[,FLAG_SPECIFIC_ARGUMENTS]] - - The optional FLAGS argument is a quoted string which may contain any -combination of the following characters: -`a' - section is allocatable - -`w' - section is writable - -`x' - section is executable - -`M' - section is mergeable - -`S' - section contains zero terminated strings - -`G' - section is a member of a section group - -`T' - section is used for thread-local-storage - - The optional TYPE argument may contain one of the following -constants: -`@progbits' - section contains data - -`@nobits' - section does not contain data (i.e., section only occupies space) - -`@note' - section contains data which is used by things other than the - program - -`@init_array' - section contains an array of pointers to init functions - -`@fini_array' - section contains an array of pointers to finish functions - -`@preinit_array' - section contains an array of pointers to pre-init functions - - Many targets only support the first three section types. - - Note on targets where the `@' character is the start of a comment (eg -ARM) then another character is used instead. For example the ARM port -uses the `%' character. - - If FLAGS contains the `M' symbol then the TYPE argument must be -specified as well as an extra argument - ENTSIZE - like this: - - .section NAME , "FLAGS"M, @TYPE, ENTSIZE - - Sections with the `M' flag but not `S' flag must contain fixed size -constants, each ENTSIZE octets long. Sections with both `M' and `S' -must contain zero terminated strings where each character is ENTSIZE -bytes long. The linker may remove duplicates within sections with the -same name, same entity size and same flags. ENTSIZE must be an -absolute expression. - - If FLAGS contains the `G' symbol then the TYPE argument must be -present along with an additional field like this: - - .section NAME , "FLAGS"G, @TYPE, GROUPNAME[, LINKAGE] - - The GROUPNAME field specifies the name of the section group to which -this particular section belongs. The optional linkage field can -contain: -`comdat' - indicates that only one copy of this section should be retained - -`.gnu.linkonce' - an alias for comdat - - Note - if both the M and G flags are present then the fields for the -Merge flag should come first, like this: - - .section NAME , "FLAGS"MG, @TYPE, ENTSIZE, GROUPNAME[, LINKAGE] - - If no flags are specified, the default flags depend upon the section -name. If the section name is not recognized, the default will be for -the section to have none of the above flags: it will not be allocated -in memory, nor writable, nor executable. The section will contain data. - - For ELF targets, the assembler supports another type of `.section' -directive for compatibility with the Solaris assembler: - - .section "NAME"[, FLAGS...] - - Note that the section name is quoted. There may be a sequence of -comma separated flags: -`#alloc' - section is allocatable - -`#write' - section is writable - -`#execinstr' - section is executable - -`#tls' - section is used for thread local storage - - This directive replaces the current section and subsection. See the -contents of the gas testsuite directory `gas/testsuite/gas/elf' for -some examples of how this directive and the other section stack -directives work. - - -File: as.info, Node: Set, Next: Short, Prev: Section, Up: Pseudo Ops - -7.80 `.set SYMBOL, EXPRESSION' -============================== - -Set the value of SYMBOL to EXPRESSION. This changes SYMBOL's value and -type to conform to EXPRESSION. If SYMBOL was flagged as external, it -remains flagged (*note Symbol Attributes::). - - You may `.set' a symbol many times in the same assembly. - - If you `.set' a global symbol, the value stored in the object file -is the last value stored into it. - - The syntax for `set' on the HPPA is `SYMBOL .set EXPRESSION'. - - -File: as.info, Node: Short, Next: Single, Prev: Set, Up: Pseudo Ops - -7.81 `.short EXPRESSIONS' -========================= - -`.short' is normally the same as `.word'. *Note `.word': Word. - - In some configurations, however, `.short' and `.word' generate -numbers of different lengths; *note Machine Dependencies::. - - -File: as.info, Node: Single, Next: Size, Prev: Short, Up: Pseudo Ops - -7.82 `.single FLONUMS' -====================== - -This directive assembles zero or more flonums, separated by commas. It -has the same effect as `.float'. The exact kind of floating point -numbers emitted depends on how `as' is configured. *Note Machine -Dependencies::. - - -File: as.info, Node: Size, Next: Skip, Prev: Single, Up: Pseudo Ops - -7.83 `.size' -============ - -This directive is used to set the size associated with a symbol. - -COFF Version ------------- - - For COFF targets, the `.size' directive is only permitted inside -`.def'/`.endef' pairs. It is used like this: - - .size EXPRESSION - - `.size' is only meaningful when generating COFF format output; when -`as' is generating `b.out', it accepts this directive but ignores it. - -ELF Version ------------ - - For ELF targets, the `.size' directive is used like this: - - .size NAME , EXPRESSION - - This directive sets the size associated with a symbol NAME. The -size in bytes is computed from EXPRESSION which can make use of label -arithmetic. This directive is typically used to set the size of -function symbols. - - -File: as.info, Node: Sleb128, Next: Space, Prev: Skip, Up: Pseudo Ops - -7.84 `.sleb128 EXPRESSIONS' -=========================== - -SLEB128 stands for "signed little endian base 128." This is a compact, -variable length representation of numbers used by the DWARF symbolic -debugging format. *Note `.uleb128': Uleb128. - - -File: as.info, Node: Skip, Next: Sleb128, Prev: Size, Up: Pseudo Ops - -7.85 `.skip SIZE , FILL' -======================== - -This directive emits SIZE bytes, each of value FILL. Both SIZE and -FILL are absolute expressions. If the comma and FILL are omitted, FILL -is assumed to be zero. This is the same as `.space'. - - -File: as.info, Node: Space, Next: Stab, Prev: Sleb128, Up: Pseudo Ops - -7.86 `.space SIZE , FILL' -========================= - -This directive emits SIZE bytes, each of value FILL. Both SIZE and -FILL are absolute expressions. If the comma and FILL are omitted, FILL -is assumed to be zero. This is the same as `.skip'. - - _Warning:_ `.space' has a completely different meaning for HPPA - targets; use `.block' as a substitute. See `HP9000 Series 800 - Assembly Language Reference Manual' (HP 92432-90001) for the - meaning of the `.space' directive. *Note HPPA Assembler - Directives: HPPA Directives, for a summary. - - On the AMD 29K, this directive is ignored; it is accepted for -compatibility with other AMD 29K assemblers. - - _Warning:_ In most versions of the GNU assembler, the directive - `.space' has the effect of `.block' *Note Machine Dependencies::. - - -File: as.info, Node: Stab, Next: String, Prev: Space, Up: Pseudo Ops - -7.87 `.stabd, .stabn, .stabs' -============================= - -There are three directives that begin `.stab'. All emit symbols (*note -Symbols::), for use by symbolic debuggers. The symbols are not entered -in the `as' hash table: they cannot be referenced elsewhere in the -source file. Up to five fields are required: - -STRING - This is the symbol's name. It may contain any character except - `\000', so is more general than ordinary symbol names. Some - debuggers used to code arbitrarily complex structures into symbol - names using this field. - -TYPE - An absolute expression. The symbol's type is set to the low 8 - bits of this expression. Any bit pattern is permitted, but `ld' - and debuggers choke on silly bit patterns. - -OTHER - An absolute expression. The symbol's "other" attribute is set to - the low 8 bits of this expression. - -DESC - An absolute expression. The symbol's descriptor is set to the low - 16 bits of this expression. - -VALUE - An absolute expression which becomes the symbol's value. - - If a warning is detected while reading a `.stabd', `.stabn', or -`.stabs' statement, the symbol has probably already been created; you -get a half-formed symbol in your object file. This is compatible with -earlier assemblers! - -`.stabd TYPE , OTHER , DESC' - The "name" of the symbol generated is not even an empty string. - It is a null pointer, for compatibility. Older assemblers used a - null pointer so they didn't waste space in object files with empty - strings. - - The symbol's value is set to the location counter, relocatably. - When your program is linked, the value of this symbol is the - address of the location counter when the `.stabd' was assembled. - -`.stabn TYPE , OTHER , DESC , VALUE' - The name of the symbol is set to the empty string `""'. - -`.stabs STRING , TYPE , OTHER , DESC , VALUE' - All five fields are specified. - - -File: as.info, Node: String, Next: Struct, Prev: Stab, Up: Pseudo Ops - -7.88 `.string' "STR" -==================== - -Copy the characters in STR to the object file. You may specify more -than one string to copy, separated by commas. Unless otherwise -specified for a particular machine, the assembler marks the end of each -string with a 0 byte. You can use any of the escape sequences -described in *Note Strings: Strings. - - -File: as.info, Node: Struct, Next: SubSection, Prev: String, Up: Pseudo Ops - -7.89 `.struct EXPRESSION' -========================= - -Switch to the absolute section, and set the section offset to -EXPRESSION, which must be an absolute expression. You might use this -as follows: - .struct 0 - field1: - .struct field1 + 4 - field2: - .struct field2 + 4 - field3: - This would define the symbol `field1' to have the value 0, the symbol -`field2' to have the value 4, and the symbol `field3' to have the value -8. Assembly would be left in the absolute section, and you would need -to use a `.section' directive of some sort to change to some other -section before further assembly. - - -File: as.info, Node: SubSection, Next: Symver, Prev: Struct, Up: Pseudo Ops - -7.90 `.subsection NAME' -======================= - -This is one of the ELF section stack manipulation directives. The -others are `.section' (*note Section::), `.pushsection' (*note -PushSection::), `.popsection' (*note PopSection::), and `.previous' -(*note Previous::). - - This directive replaces the current subsection with `name'. The -current section is not changed. The replaced subsection is put onto -the section stack in place of the then current top of stack subsection. - - -File: as.info, Node: Symver, Next: Tag, Prev: SubSection, Up: Pseudo Ops - -7.91 `.symver' -============== - -Use the `.symver' directive to bind symbols to specific version nodes -within a source file. This is only supported on ELF platforms, and is -typically used when assembling files to be linked into a shared library. -There are cases where it may make sense to use this in objects to be -bound into an application itself so as to override a versioned symbol -from a shared library. - - For ELF targets, the `.symver' directive can be used like this: - .symver NAME, NAME2@NODENAME - If the symbol NAME is defined within the file being assembled, the -`.symver' directive effectively creates a symbol alias with the name -NAME2@NODENAME, and in fact the main reason that we just don't try and -create a regular alias is that the @ character isn't permitted in -symbol names. The NAME2 part of the name is the actual name of the -symbol by which it will be externally referenced. The name NAME itself -is merely a name of convenience that is used so that it is possible to -have definitions for multiple versions of a function within a single -source file, and so that the compiler can unambiguously know which -version of a function is being mentioned. The NODENAME portion of the -alias should be the name of a node specified in the version script -supplied to the linker when building a shared library. If you are -attempting to override a versioned symbol from a shared library, then -NODENAME should correspond to the nodename of the symbol you are trying -to override. - - If the symbol NAME is not defined within the file being assembled, -all references to NAME will be changed to NAME2@NODENAME. If no -reference to NAME is made, NAME2@NODENAME will be removed from the -symbol table. - - Another usage of the `.symver' directive is: - .symver NAME, NAME2@@NODENAME - In this case, the symbol NAME must exist and be defined within the -file being assembled. It is similar to NAME2@NODENAME. The difference -is NAME2@@NODENAME will also be used to resolve references to NAME2 by -the linker. - - The third usage of the `.symver' directive is: - .symver NAME, NAME2@@@NODENAME - When NAME is not defined within the file being assembled, it is -treated as NAME2@NODENAME. When NAME is defined within the file being -assembled, the symbol name, NAME, will be changed to NAME2@@NODENAME. - - -File: as.info, Node: Tag, Next: Text, Prev: Symver, Up: Pseudo Ops - -7.92 `.tag STRUCTNAME' -====================== - -This directive is generated by compilers to include auxiliary debugging -information in the symbol table. It is only permitted inside -`.def'/`.endef' pairs. Tags are used to link structure definitions in -the symbol table with instances of those structures. - - `.tag' is only used when generating COFF format output; when `as' is -generating `b.out', it accepts this directive but ignores it. - - -File: as.info, Node: Text, Next: Title, Prev: Tag, Up: Pseudo Ops - -7.93 `.text SUBSECTION' -======================= - -Tells `as' to assemble the following statements onto the end of the -text subsection numbered SUBSECTION, which is an absolute expression. -If SUBSECTION is omitted, subsection number zero is used. - - -File: as.info, Node: Title, Next: Type, Prev: Text, Up: Pseudo Ops - -7.94 `.title "HEADING"' -======================= - -Use HEADING as the title (second line, immediately after the source -file name and pagenumber) when generating assembly listings. - - This directive affects subsequent pages, as well as the current page -if it appears within ten lines of the top of a page. - - -File: as.info, Node: Type, Next: Uleb128, Prev: Title, Up: Pseudo Ops - -7.95 `.type' -============ - -This directive is used to set the type of a symbol. - -COFF Version ------------- - - For COFF targets, this directive is permitted only within -`.def'/`.endef' pairs. It is used like this: - - .type INT - - This records the integer INT as the type attribute of a symbol table -entry. - - `.type' is associated only with COFF format output; when `as' is -configured for `b.out' output, it accepts this directive but ignores it. - -ELF Version ------------ - - For ELF targets, the `.type' directive is used like this: - - .type NAME , TYPE DESCRIPTION - - This sets the type of symbol NAME to be either a function symbol or -an object symbol. There are five different syntaxes supported for the -TYPE DESCRIPTION field, in order to provide compatibility with various -other assemblers. The syntaxes supported are: - - .type ,#function - .type ,#object - - .type ,@function - .type ,@object - - .type ,%function - .type ,%object - - .type ,"function" - .type ,"object" - - .type STT_FUNCTION - .type STT_OBJECT - - -File: as.info, Node: Uleb128, Next: Val, Prev: Type, Up: Pseudo Ops - -7.96 `.uleb128 EXPRESSIONS' -=========================== - -ULEB128 stands for "unsigned little endian base 128." This is a -compact, variable length representation of numbers used by the DWARF -symbolic debugging format. *Note `.sleb128': Sleb128. - - -File: as.info, Node: Val, Next: Version, Prev: Uleb128, Up: Pseudo Ops - -7.97 `.val ADDR' -================ - -This directive, permitted only within `.def'/`.endef' pairs, records -the address ADDR as the value attribute of a symbol table entry. - - `.val' is used only for COFF output; when `as' is configured for -`b.out', it accepts this directive but ignores it. - - -File: as.info, Node: Version, Next: VTableEntry, Prev: Val, Up: Pseudo Ops - -7.98 `.version "STRING"' -======================== - -This directive creates a `.note' section and places into it an ELF -formatted note of type NT_VERSION. The note's name is set to `string'. - - -File: as.info, Node: VTableEntry, Next: VTableInherit, Prev: Version, Up: Pseudo Ops - -7.99 `.vtable_entry TABLE, OFFSET' -================================== - -This directive finds or creates a symbol `table' and creates a -`VTABLE_ENTRY' relocation for it with an addend of `offset'. - - -File: as.info, Node: VTableInherit, Next: Warning, Prev: VTableEntry, Up: Pseudo Ops - -7.100 `.vtable_inherit CHILD, PARENT' -===================================== - -This directive finds the symbol `child' and finds or creates the symbol -`parent' and then creates a `VTABLE_INHERIT' relocation for the parent -whose addend is the value of the child symbol. As a special case the -parent name of `0' is treated as refering the `*ABS*' section. - - -File: as.info, Node: Warning, Next: Weak, Prev: VTableInherit, Up: Pseudo Ops - -7.101 `.warning "STRING"' -========================= - -Similar to the directive `.error' (*note `.error "STRING"': Error.), -but just emits a warning. - - -File: as.info, Node: Weak, Next: Word, Prev: Warning, Up: Pseudo Ops - -7.102 `.weak NAMES' -=================== - -This directive sets the weak attribute on the comma separated list of -symbol `names'. If the symbols do not already exist, they will be -created. - - On COFF targets other than PE, weak symbols are a GNU extension. -This directive sets the weak attribute on the comma separated list of -symbol `names'. If the symbols do not already exist, they will be -created. - - On the PE target, weak symbols are supported natively as weak -aliases. When a weak symbol is created that is not an alias, GAS -creates an alternate symbol to hold the default value. - - -File: as.info, Node: Word, Next: Deprecated, Prev: Weak, Up: Pseudo Ops - -7.103 `.word EXPRESSIONS' -========================= - -This directive expects zero or more EXPRESSIONS, of any section, -separated by commas. - - The size of the number emitted, and its byte order, depend on what -target computer the assembly is for. - - _Warning: Special Treatment to support Compilers_ - - Machines with a 32-bit address space, but that do less than 32-bit -addressing, require the following special treatment. If the machine of -interest to you does 32-bit addressing (or doesn't require it; *note -Machine Dependencies::), you can ignore this issue. - - In order to assemble compiler output into something that works, `as' -occasionally does strange things to `.word' directives. Directives of -the form `.word sym1-sym2' are often emitted by compilers as part of -jump tables. Therefore, when `as' assembles a directive of the form -`.word sym1-sym2', and the difference between `sym1' and `sym2' does -not fit in 16 bits, `as' creates a "secondary jump table", immediately -before the next label. This secondary jump table is preceded by a -short-jump to the first byte after the secondary table. This -short-jump prevents the flow of control from accidentally falling into -the new table. Inside the table is a long-jump to `sym2'. The -original `.word' contains `sym1' minus the address of the long-jump to -`sym2'. - - If there were several occurrences of `.word sym1-sym2' before the -secondary jump table, all of them are adjusted. If there was a `.word -sym3-sym4', that also did not fit in sixteen bits, a long-jump to -`sym4' is included in the secondary jump table, and the `.word' -directives are adjusted to contain `sym3' minus the address of the -long-jump to `sym4'; and so on, for as many entries in the original -jump table as necessary. - - -File: as.info, Node: Deprecated, Prev: Word, Up: Pseudo Ops - -7.104 Deprecated Directives -=========================== - -One day these directives won't work. They are included for -compatibility with older assemblers. -.abort - -.line - - -File: as.info, Node: Machine Dependencies, Next: Reporting Bugs, Prev: Pseudo Ops, Up: Top - -8 Machine Dependent Features -**************************** - -The machine instruction sets are (almost by definition) different on -each machine where `as' runs. Floating point representations vary as -well, and `as' often supports a few additional directives or -command-line options for compatibility with other assemblers on a -particular platform. Finally, some versions of `as' support special -pseudo-instructions for branch optimization. - - This chapter discusses most of these differences, though it does not -include details on any machine's instruction set. For details on that -subject, see the hardware manufacturer's manual. - -* Menu: - - -* AMD29K-Dependent:: AMD 29K Dependent Features - -* Alpha-Dependent:: Alpha Dependent Features - -* ARC-Dependent:: ARC Dependent Features - -* ARM-Dependent:: ARM Dependent Features - -* CRIS-Dependent:: CRIS Dependent Features - -* D10V-Dependent:: D10V Dependent Features - -* D30V-Dependent:: D30V Dependent Features - -* H8/300-Dependent:: Renesas H8/300 Dependent Features - -* H8/500-Dependent:: Renesas H8/500 Dependent Features - -* HPPA-Dependent:: HPPA Dependent Features - -* ESA/390-Dependent:: IBM ESA/390 Dependent Features - -* i386-Dependent:: Intel 80386 and AMD x86-64 Dependent Features - -* i860-Dependent:: Intel 80860 Dependent Features - -* i960-Dependent:: Intel 80960 Dependent Features - -* IA-64-Dependent:: Intel IA-64 Dependent Features - -* IP2K-Dependent:: IP2K Dependent Features - -* M32R-Dependent:: M32R Dependent Features - -* M68K-Dependent:: M680x0 Dependent Features - -* M68HC11-Dependent:: M68HC11 and 68HC12 Dependent Features - -* M88K-Dependent:: M880x0 Dependent Features - -* MIPS-Dependent:: MIPS Dependent Features - -* MMIX-Dependent:: MMIX Dependent Features - -* MSP430-Dependent:: MSP430 Dependent Features - -* SH-Dependent:: Renesas / SuperH SH Dependent Features -* SH64-Dependent:: SuperH SH64 Dependent Features - -* PDP-11-Dependent:: PDP-11 Dependent Features - -* PJ-Dependent:: picoJava Dependent Features - -* PPC-Dependent:: PowerPC Dependent Features - -* Sparc-Dependent:: SPARC Dependent Features - -* TIC54X-Dependent:: TI TMS320C54x Dependent Features - -* V850-Dependent:: V850 Dependent Features - -* Xtensa-Dependent:: Xtensa Dependent Features - -* Z8000-Dependent:: Z8000 Dependent Features - -* Vax-Dependent:: VAX Dependent Features - - -File: as.info, Node: AMD29K-Dependent, Next: Alpha-Dependent, Up: Machine Dependencies - -8.1 AMD 29K Dependent Features -============================== - -* Menu: - -* AMD29K Options:: Options -* AMD29K Syntax:: Syntax -* AMD29K Floating Point:: Floating Point -* AMD29K Directives:: AMD 29K Machine Directives -* AMD29K Opcodes:: Opcodes - - -File: as.info, Node: AMD29K Options, Next: AMD29K Syntax, Up: AMD29K-Dependent - -8.1.1 Options -------------- - -`as' has no additional command-line options for the AMD 29K family. - - -File: as.info, Node: AMD29K Syntax, Next: AMD29K Floating Point, Prev: AMD29K Options, Up: AMD29K-Dependent - -8.1.2 Syntax ------------- - -* Menu: - -* AMD29K-Macros:: Macros -* AMD29K-Chars:: Special Characters -* AMD29K-Regs:: Register Names - - -File: as.info, Node: AMD29K-Macros, Next: AMD29K-Chars, Up: AMD29K Syntax - -8.1.2.1 Macros -.............. - -The macro syntax used on the AMD 29K is like that described in the AMD -29K Family Macro Assembler Specification. Normal `as' macros should -still work. - - -File: as.info, Node: AMD29K-Chars, Next: AMD29K-Regs, Prev: AMD29K-Macros, Up: AMD29K Syntax - -8.1.2.2 Special Characters -.......................... - -`;' is the line comment character. - - The character `?' is permitted in identifiers (but may not begin an -identifier). - - -File: as.info, Node: AMD29K-Regs, Prev: AMD29K-Chars, Up: AMD29K Syntax - -8.1.2.3 Register Names -...................... - -General-purpose registers are represented by predefined symbols of the -form `GRNNN' (for global registers) or `LRNNN' (for local registers), -where NNN represents a number between `0' and `127', written with no -leading zeros. The leading letters may be in either upper or lower -case; for example, `gr13' and `LR7' are both valid register names. - - You may also refer to general-purpose registers by specifying the -register number as the result of an expression (prefixed with `%%' to -flag the expression as a register number): - %%EXPRESSION - --where EXPRESSION must be an absolute expression evaluating to a -number between `0' and `255'. The range [0, 127] refers to global -registers, and the range [128, 255] to local registers. - - In addition, `as' understands the following protected -special-purpose register names for the AMD 29K family: - - vab chd pc0 - ops chc pc1 - cps rbp pc2 - cfg tmc mmu - cha tmr lru - - These unprotected special-purpose register names are also recognized: - ipc alu fpe - ipa bp inte - ipb fc fps - q cr exop - - -File: as.info, Node: AMD29K Floating Point, Next: AMD29K Directives, Prev: AMD29K Syntax, Up: AMD29K-Dependent - -8.1.3 Floating Point --------------------- - -The AMD 29K family uses IEEE floating-point numbers. - - -File: as.info, Node: AMD29K Directives, Next: AMD29K Opcodes, Prev: AMD29K Floating Point, Up: AMD29K-Dependent - -8.1.4 AMD 29K Machine Directives --------------------------------- - -`.block SIZE , FILL' - This directive emits SIZE bytes, each of value FILL. Both SIZE - and FILL are absolute expressions. If the comma and FILL are - omitted, FILL is assumed to be zero. - - In other versions of the GNU assembler, this directive is called - `.space'. - -`.cputype' - This directive is ignored; it is accepted for compatibility with - other AMD 29K assemblers. - -`.file' - This directive is ignored; it is accepted for compatibility with - other AMD 29K assemblers. - - _Warning:_ in other versions of the GNU assembler, `.file' is - used for the directive called `.app-file' in the AMD 29K - support. - -`.line' - This directive is ignored; it is accepted for compatibility with - other AMD 29K assemblers. - -`.sect' - This directive is ignored; it is accepted for compatibility with - other AMD 29K assemblers. - -`.use SECTION NAME' - Establishes the section and subsection for the following code; - SECTION NAME may be one of `.text', `.data', `.data1', or `.lit'. - With one of the first three SECTION NAME options, `.use' is - equivalent to the machine directive SECTION NAME; the remaining - case, `.use .lit', is the same as `.data 200'. - - -File: as.info, Node: AMD29K Opcodes, Prev: AMD29K Directives, Up: AMD29K-Dependent - -8.1.5 Opcodes -------------- - -`as' implements all the standard AMD 29K opcodes. No additional -pseudo-instructions are needed on this family. - - For information on the 29K machine instruction set, see `Am29000 -User's Manual', Advanced Micro Devices, Inc. - - -File: as.info, Node: Alpha-Dependent, Next: ARC-Dependent, Prev: AMD29K-Dependent, Up: Machine Dependencies - -8.2 Alpha Dependent Features -============================ - -* Menu: - -* Alpha Notes:: Notes -* Alpha Options:: Options -* Alpha Syntax:: Syntax -* Alpha Floating Point:: Floating Point -* Alpha Directives:: Alpha Machine Directives -* Alpha Opcodes:: Opcodes - - -File: as.info, Node: Alpha Notes, Next: Alpha Options, Up: Alpha-Dependent - -8.2.1 Notes ------------ - -The documentation here is primarily for the ELF object format. `as' -also supports the ECOFF and EVAX formats, but features specific to -these formats are not yet documented. - - -File: as.info, Node: Alpha Options, Next: Alpha Syntax, Prev: Alpha Notes, Up: Alpha-Dependent - -8.2.2 Options -------------- - -`-mCPU' - This option specifies the target processor. If an attempt is made - to assemble an instruction which will not execute on the target - processor, the assembler may either expand the instruction as a - macro or issue an error message. This option is equivalent to the - `.arch' directive. - - The following processor names are recognized: `21064', `21064a', - `21066', `21068', `21164', `21164a', `21164pc', `21264', `21264a', - `21264b', `ev4', `ev5', `lca45', `ev5', `ev56', `pca56', `ev6', - `ev67', `ev68'. The special name `all' may be used to allow the - assembler to accept instructions valid for any Alpha processor. - - In order to support existing practice in OSF/1 with respect to - `.arch', and existing practice within `MILO' (the Linux ARC - bootloader), the numbered processor names (e.g. 21064) enable the - processor-specific PALcode instructions, while the - "electro-vlasic" names (e.g. `ev4') do not. - -`-mdebug' -`-no-mdebug' - Enables or disables the generation of `.mdebug' encapsulation for - stabs directives and procedure descriptors. The default is to - automatically enable `.mdebug' when the first stabs directive is - seen. - -`-relax' - This option forces all relocations to be put into the object file, - instead of saving space and resolving some relocations at assembly - time. Note that this option does not propagate all symbol - arithmetic into the object file, because not all symbol arithmetic - can be represented. However, the option can still be useful in - specific applications. - -`-g' - This option is used when the compiler generates debug information. - When `gcc' is using `mips-tfile' to generate debug information - for ECOFF, local labels must be passed through to the object file. - Otherwise this option has no effect. - -`-GSIZE' - A local common symbol larger than SIZE is placed in `.bss', while - smaller symbols are placed in `.sbss'. - -`-F' -`-32addr' - These options are ignored for backward compatibility. - - -File: as.info, Node: Alpha Syntax, Next: Alpha Floating Point, Prev: Alpha Options, Up: Alpha-Dependent - -8.2.3 Syntax ------------- - -The assembler syntax closely follow the Alpha Reference Manual; -assembler directives and general syntax closely follow the OSF/1 and -OpenVMS syntax, with a few differences for ELF. - -* Menu: - -* Alpha-Chars:: Special Characters -* Alpha-Regs:: Register Names -* Alpha-Relocs:: Relocations - - -File: as.info, Node: Alpha-Chars, Next: Alpha-Regs, Up: Alpha Syntax - -8.2.3.1 Special Characters -.......................... - -`#' is the line comment character. - - `;' can be used instead of a newline to separate statements. - - -File: as.info, Node: Alpha-Regs, Next: Alpha-Relocs, Prev: Alpha-Chars, Up: Alpha Syntax - -8.2.3.2 Register Names -...................... - -The 32 integer registers are referred to as `$N' or `$rN'. In -addition, registers 15, 28, 29, and 30 may be referred to by the -symbols `$fp', `$at', `$gp', and `$sp' respectively. - - The 32 floating-point registers are referred to as `$fN'. - - -File: as.info, Node: Alpha-Relocs, Prev: Alpha-Regs, Up: Alpha Syntax - -8.2.3.3 Relocations -................... - -Some of these relocations are available for ECOFF, but mostly only for -ELF. They are modeled after the relocation format introduced in -Digital Unix 4.0, but there are additions. - - The format is `!TAG' or `!TAG!NUMBER' where TAG is the name of the -relocation. In some cases NUMBER is used to relate specific -instructions. - - The relocation is placed at the end of the instruction like so: - - ldah $0,a($29) !gprelhigh - lda $0,a($0) !gprellow - ldq $1,b($29) !literal!100 - ldl $2,0($1) !lituse_base!100 - -`!literal' -`!literal!N' - Used with an `ldq' instruction to load the address of a symbol - from the GOT. - - A sequence number N is optional, and if present is used to pair - `lituse' relocations with this `literal' relocation. The `lituse' - relocations are used by the linker to optimize the code based on - the final location of the symbol. - - Note that these optimizations are dependent on the data flow of the - program. Therefore, if _any_ `lituse' is paired with a `literal' - relocation, then _all_ uses of the register set by the `literal' - instruction must also be marked with `lituse' relocations. This - is because the original `literal' instruction may be deleted or - transformed into another instruction. - - Also note that there may be a one-to-many relationship between - `literal' and `lituse', but not a many-to-one. That is, if there - are two code paths that load up the same address and feed the - value to a single use, then the use may not use a `lituse' - relocation. - -`!lituse_base!N' - Used with any memory format instruction (e.g. `ldl') to indicate - that the literal is used for an address load. The offset field of - the instruction must be zero. During relaxation, the code may be - altered to use a gp-relative load. - -`!lituse_jsr!N' - Used with a register branch format instruction (e.g. `jsr') to - indicate that the literal is used for a call. During relaxation, - the code may be altered to use a direct branch (e.g. `bsr'). - -`!lituse_bytoff!N' - Used with a byte mask instruction (e.g. `extbl') to indicate that - only the low 3 bits of the address are relevant. During - relaxation, the code may be altered to use an immediate instead of - a register shift. - -`!lituse_addr!N' - Used with any other instruction to indicate that the original - address is in fact used, and the original `ldq' instruction may - not be altered or deleted. This is useful in conjunction with - `lituse_jsr' to test whether a weak symbol is defined. - - ldq $27,foo($29) !literal!1 - beq $27,is_undef !lituse_addr!1 - jsr $26,($27),foo !lituse_jsr!1 - -`!lituse_tlsgd!N' - Used with a register branch format instruction to indicate that the - literal is the call to `__tls_get_addr' used to compute the - address of the thread-local storage variable whose descriptor was - loaded with `!tlsgd!N'. - -`!lituse_tlsldm!N' - Used with a register branch format instruction to indicate that the - literal is the call to `__tls_get_addr' used to compute the - address of the base of the thread-local storage block for the - current module. The descriptor for the module must have been - loaded with `!tlsldm!N'. - -`!gpdisp!N' - Used with `ldah' and `lda' to load the GP from the current - address, a-la the `ldgp' macro. The source register for the - `ldah' instruction must contain the address of the `ldah' - instruction. There must be exactly one `lda' instruction paired - with the `ldah' instruction, though it may appear anywhere in the - instruction stream. The immediate operands must be zero. - - bsr $26,foo - ldah $29,0($26) !gpdisp!1 - lda $29,0($29) !gpdisp!1 - -`!gprelhigh' - Used with an `ldah' instruction to add the high 16 bits of a - 32-bit displacement from the GP. - -`!gprellow' - Used with any memory format instruction to add the low 16 bits of a - 32-bit displacement from the GP. - -`!gprel' - Used with any memory format instruction to add a 16-bit - displacement from the GP. - -`!samegp' - Used with any branch format instruction to skip the GP load at the - target address. The referenced symbol must have the same GP as the - source object file, and it must be declared to either not use `$27' - or perform a standard GP load in the first two instructions via the - `.prologue' directive. - -`!tlsgd' -`!tlsgd!N' - Used with an `lda' instruction to load the address of a TLS - descriptor for a symbol in the GOT. - - The sequence number N is optional, and if present it used to pair - the descriptor load with both the `literal' loading the address of - the `__tls_get_addr' function and the `lituse_tlsgd' marking the - call to that function. - - For proper relaxation, both the `tlsgd', `literal' and `lituse' - relocations must be in the same extended basic block. That is, - the relocation with the lowest address must be executed first at - runtime. - -`!tlsldm' -`!tlsldm!N' - Used with an `lda' instruction to load the address of a TLS - descriptor for the current module in the GOT. - - Similar in other respects to `tlsgd'. - -`!gotdtprel' - Used with an `ldq' instruction to load the offset of the TLS - symbol within its module's thread-local storage block. Also known - as the dynamic thread pointer offset or dtp-relative offset. - -`!dtprelhi' -`!dtprello' -`!dtprel' - Like `gprel' relocations except they compute dtp-relative offsets. - -`!gottprel' - Used with an `ldq' instruction to load the offset of the TLS - symbol from the thread pointer. Also known as the tp-relative - offset. - -`!tprelhi' -`!tprello' -`!tprel' - Like `gprel' relocations except they compute tp-relative offsets. - - -File: as.info, Node: Alpha Floating Point, Next: Alpha Directives, Prev: Alpha Syntax, Up: Alpha-Dependent - -8.2.4 Floating Point --------------------- - -The Alpha family uses both IEEE and VAX floating-point numbers. - - -File: as.info, Node: Alpha Directives, Next: Alpha Opcodes, Prev: Alpha Floating Point, Up: Alpha-Dependent - -8.2.5 Alpha Assembler Directives --------------------------------- - -`as' for the Alpha supports many additional directives for -compatibility with the native assembler. This section describes them -only briefly. - - These are the additional directives in `as' for the Alpha: - -`.arch CPU' - Specifies the target processor. This is equivalent to the `-mCPU' - command-line option. *Note Options: Alpha Options, for a list of - values for CPU. - -`.ent FUNCTION[, N]' - Mark the beginning of FUNCTION. An optional number may follow for - compatibility with the OSF/1 assembler, but is ignored. When - generating `.mdebug' information, this will create a procedure - descriptor for the function. In ELF, it will mark the symbol as a - function a-la the generic `.type' directive. - -`.end FUNCTION' - Mark the end of FUNCTION. In ELF, it will set the size of the - symbol a-la the generic `.size' directive. - -`.mask MASK, OFFSET' - Indicate which of the integer registers are saved in the current - function's stack frame. MASK is interpreted a bit mask in which - bit N set indicates that register N is saved. The registers are - saved in a block located OFFSET bytes from the "canonical frame - address" (CFA) which is the value of the stack pointer on entry to - the function. The registers are saved sequentially, except that - the return address register (normally `$26') is saved first. - - This and the other directives that describe the stack frame are - currently only used when generating `.mdebug' information. They - may in the future be used to generate DWARF2 `.debug_frame' unwind - information for hand written assembly. - -`.fmask MASK, OFFSET' - Indicate which of the floating-point registers are saved in the - current stack frame. The MASK and OFFSET parameters are - interpreted as with `.mask'. - -`.frame FRAMEREG, FRAMEOFFSET, RETREG[, ARGOFFSET]' - Describes the shape of the stack frame. The frame pointer in use - is FRAMEREG; normally this is either `$fp' or `$sp'. The frame - pointer is FRAMEOFFSET bytes below the CFA. The return address is - initially located in RETREG until it is saved as indicated in - `.mask'. For compatibility with OSF/1 an optional ARGOFFSET - parameter is accepted and ignored. It is believed to indicate the - offset from the CFA to the saved argument registers. - -`.prologue N' - Indicate that the stack frame is set up and all registers have been - spilled. The argument N indicates whether and how the function - uses the incoming "procedure vector" (the address of the called - function) in `$27'. 0 indicates that `$27' is not used; 1 - indicates that the first two instructions of the function use `$27' - to perform a load of the GP register; 2 indicates that `$27' is - used in some non-standard way and so the linker cannot elide the - load of the procedure vector during relaxation. - -`.usepv FUNCTION, WHICH' - Used to indicate the use of the `$27' register, similar to - `.prologue', but without the other semantics of needing to be - inside an open `.ent'/`.end' block. - - The WHICH argument should be either `no', indicating that `$27' is - not used, or `std', indicating that the first two instructions of - the function perform a GP load. - - One might use this directive instead of `.prologue' if you are - also using dwarf2 CFI directives. - -`.gprel32 EXPRESSION' - Computes the difference between the address in EXPRESSION and the - GP for the current object file, and stores it in 4 bytes. In - addition to being smaller than a full 8 byte address, this also - does not require a dynamic relocation when used in a shared - library. - -`.t_floating EXPRESSION' - Stores EXPRESSION as an IEEE double precision value. - -`.s_floating EXPRESSION' - Stores EXPRESSION as an IEEE single precision value. - -`.f_floating EXPRESSION' - Stores EXPRESSION as a VAX F format value. - -`.g_floating EXPRESSION' - Stores EXPRESSION as a VAX G format value. - -`.d_floating EXPRESSION' - Stores EXPRESSION as a VAX D format value. - -`.set FEATURE' - Enables or disables various assembler features. Using the positive - name of the feature enables while using `noFEATURE' disables. - - `at' - Indicates that macro expansions may clobber the "assembler - temporary" (`$at' or `$28') register. Some macros may not be - expanded without this and will generate an error message if - `noat' is in effect. When `at' is in effect, a warning will - be generated if `$at' is used by the programmer. - - `macro' - Enables the expansion of macro instructions. Note that - variants of real instructions, such as `br label' vs `br - $31,label' are considered alternate forms and not macros. - - `move' - `reorder' - `volatile' - These control whether and how the assembler may re-order - instructions. Accepted for compatibility with the OSF/1 - assembler, but `as' does not do instruction scheduling, so - these features are ignored. - - The following directives are recognized for compatibility with the -OSF/1 assembler but are ignored. - - .proc .aproc - .reguse .livereg - .option .aent - .ugen .eflag - .alias .noalias - - -File: as.info, Node: Alpha Opcodes, Prev: Alpha Directives, Up: Alpha-Dependent - -8.2.6 Opcodes -------------- - -For detailed information on the Alpha machine instruction set, see the -Alpha Architecture Handbook -(ftp://ftp.digital.com/pub/Digital/info/semiconductor/literature/alphaahb.pdf). - - -File: as.info, Node: ARC-Dependent, Next: ARM-Dependent, Prev: Alpha-Dependent, Up: Machine Dependencies - -8.3 ARC Dependent Features -========================== - -* Menu: - -* ARC Options:: Options -* ARC Syntax:: Syntax -* ARC Floating Point:: Floating Point -* ARC Directives:: ARC Machine Directives -* ARC Opcodes:: Opcodes - - -File: as.info, Node: ARC Options, Next: ARC Syntax, Up: ARC-Dependent - -8.3.1 Options -------------- - -`-marc[5|6|7|8]' - This option selects the core processor variant. Using `-marc' is - the same as `-marc6', which is also the default. - - `arc5' - Base instruction set. - - `arc6' - Jump-and-link (jl) instruction. No requirement of an - instruction between setting flags and conditional jump. For - example: - - mov.f r0,r1 - beq foo - - `arc7' - Break (brk) and sleep (sleep) instructions. - - `arc8' - Software interrupt (swi) instruction. - - - Note: the `.option' directive can to be used to select a core - variant from within assembly code. - -`-EB' - This option specifies that the output generated by the assembler - should be marked as being encoded for a big-endian processor. - -`-EL' - This option specifies that the output generated by the assembler - should be marked as being encoded for a little-endian processor - - this is the default. - - - -File: as.info, Node: ARC Syntax, Next: ARC Floating Point, Prev: ARC Options, Up: ARC-Dependent - -8.3.2 Syntax ------------- - -* Menu: - -* ARC-Chars:: Special Characters -* ARC-Regs:: Register Names - - -File: as.info, Node: ARC-Chars, Next: ARC-Regs, Up: ARC Syntax - -8.3.2.1 Special Characters -.......................... - -*TODO* - - -File: as.info, Node: ARC-Regs, Prev: ARC-Chars, Up: ARC Syntax - -8.3.2.2 Register Names -...................... - -*TODO* - - -File: as.info, Node: ARC Floating Point, Next: ARC Directives, Prev: ARC Syntax, Up: ARC-Dependent - -8.3.3 Floating Point --------------------- - -The ARC core does not currently have hardware floating point support. -Software floating point support is provided by `GCC' and uses IEEE -floating-point numbers. - - -File: as.info, Node: ARC Directives, Next: ARC Opcodes, Prev: ARC Floating Point, Up: ARC-Dependent - -8.3.4 ARC Machine Directives ----------------------------- - -The ARC version of `as' supports the following additional machine -directives: - -`.2byte EXPRESSIONS' - *TODO* - -`.3byte EXPRESSIONS' - *TODO* - -`.4byte EXPRESSIONS' - *TODO* - -`.extAuxRegister NAME,ADDRESS,MODE' - The ARCtangent A4 has extensible auxiliary register space. The - auxiliary registers can be defined in the assembler source code by - using this directive. The first parameter is the NAME of the new - auxiallry register. The second parameter is the ADDRESS of the - register in the auxiliary register memory map for the variant of - the ARC. The third parameter specifies the MODE in which the - register can be operated is and it can be one of: - - `r (readonly)' - - `w (write only)' - - `r|w (read or write)' - - For example: - - .extAuxRegister mulhi,0x12,w - - This specifies an extension auxiliary register called _mulhi_ - which is at address 0x12 in the memory space and which is only - writable. - -`.extCondCode SUFFIX,VALUE' - The condition codes on the ARCtangent A4 are extensible and can be - specified by means of this assembler directive. They are specified - by the suffix and the value for the condition code. They can be - used to specify extra condition codes with any values. For - example: - - .extCondCode is_busy,0x14 - - add.is_busy r1,r2,r3 - bis_busy _main - -`.extCoreRegister NAME,REGNUM,MODE,SHORTCUT' - Specifies an extension core register NAME for the application. - This allows a register NAME with a valid REGNUM between 0 and 60, - with the following as valid values for MODE - - `_r_ (readonly)' - - `_w_ (write only)' - - `_r|w_ (read or write)' - - The other parameter gives a description of the register having a - SHORTCUT in the pipeline. The valid values are: - - `can_shortcut' - - `cannot_shortcut' - - For example: - - .extCoreRegister mlo,57,r,can_shortcut - - This defines an extension core register mlo with the value 57 which - can shortcut the pipeline. - -`.extInstruction NAME,OPCODE,SUBOPCODE,SUFFIXCLASS,SYNTAXCLASS' - The ARCtangent A4 allows the user to specify extension - instructions. The extension instructions are not macros. The - assembler creates encodings for use of these instructions - according to the specification by the user. The parameters are: - - *NAME - Name of the extension instruction - - *OPCODE - Opcode to be used. (Bits 27:31 in the encoding). Valid values - 0x10-0x1f or 0x03 - - *SUBOPCODE - Subopcode to be used. Valid values are from 0x09-0x3f. - However the correct value also depends on SYNTAXCLASS - - *SUFFIXCLASS - Determines the kinds of suffixes to be allowed. Valid values - are `SUFFIX_NONE', `SUFFIX_COND', `SUFFIX_FLAG' which - indicates the absence or presence of conditional suffixes and - flag setting by the extension instruction. It is also - possible to specify that an instruction sets the flags and is - conditional by using `SUFFIX_CODE' | `SUFFIX_FLAG'. - - *SYNTAXCLASS - Determines the syntax class for the instruction. It can have - the following values: - - ``SYNTAX_2OP':' - 2 Operand Instruction - - ``SYNTAX_3OP':' - 3 Operand Instruction - - In addition there could be modifiers for the syntax class as - described below: - - Syntax Class Modifiers are: - - - `OP1_MUST_BE_IMM': Modifies syntax class SYNTAX_3OP, - specifying that the first operand of a three-operand - instruction must be an immediate (i.e. the result is - discarded). OP1_MUST_BE_IMM is used by bitwise ORing it - with SYNTAX_3OP as given in the example below. This - could usually be used to set the flags using specific - instructions and not retain results. - - - `OP1_IMM_IMPLIED': Modifies syntax class SYNTAX_20P, it - specifies that there is an implied immediate destination - operand which does not appear in the syntax. For - example, if the source code contains an instruction like: - - inst r1,r2 - - it really means that the first argument is an implied - immediate (that is, the result is discarded). This is - the same as though the source code were: inst 0,r1,r2. - You use OP1_IMM_IMPLIED by bitwise ORing it with - SYNTAX_20P. - - - For example, defining 64-bit multiplier with immediate operands: - - .extInstruction mp64,0x14,0x0,SUFFIX_COND | SUFFIX_FLAG , - SYNTAX_3OP|OP1_MUST_BE_IMM - - The above specifies an extension instruction called mp64 which has - 3 operands, sets the flags, can be used with a condition code, for - which the first operand is an immediate. (Equivalent to - discarding the result of the operation). - - .extInstruction mul64,0x14,0x00,SUFFIX_COND, SYNTAX_2OP|OP1_IMM_IMPLIED - - This describes a 2 operand instruction with an implicit first - immediate operand. The result of this operation would be - discarded. - -`.half EXPRESSIONS' - *TODO* - -`.long EXPRESSIONS' - *TODO* - -`.option ARC|ARC5|ARC6|ARC7|ARC8' - The `.option' directive must be followed by the desired core - version. Again `arc' is an alias for `arc6'. - - Note: the `.option' directive overrides the command line option - `-marc'; a warning is emitted when the version is not consistent - between the two - even for the implicit default core version - (arc6). - -`.short EXPRESSIONS' - *TODO* - -`.word EXPRESSIONS' - *TODO* - - - -File: as.info, Node: ARC Opcodes, Prev: ARC Directives, Up: ARC-Dependent - -8.3.5 Opcodes -------------- - -For information on the ARC instruction set, see `ARC Programmers -Reference Manual', ARC International (www.arc.com) - - -File: as.info, Node: ARM-Dependent, Next: CRIS-Dependent, Prev: ARC-Dependent, Up: Machine Dependencies - -8.4 ARM Dependent Features -========================== - -* Menu: - -* ARM Options:: Options -* ARM Syntax:: Syntax -* ARM Floating Point:: Floating Point -* ARM Directives:: ARM Machine Directives -* ARM Opcodes:: Opcodes -* ARM Mapping Symbols:: Mapping Symbols - - -File: as.info, Node: ARM Options, Next: ARM Syntax, Up: ARM-Dependent - -8.4.1 Options -------------- - -`-mcpu=PROCESSOR[+EXTENSION...]' - This option specifies the target processor. The assembler will - issue an error message if an attempt is made to assemble an - instruction which will not execute on the target processor. The - following processor names are recognized: `arm1', `arm2', `arm250', - `arm3', `arm6', `arm60', `arm600', `arm610', `arm620', `arm7', - `arm7m', `arm7d', `arm7dm', `arm7di', `arm7dmi', `arm70', `arm700', - `arm700i', `arm710', `arm710t', `arm720', `arm720t', `arm740t', - `arm710c', `arm7100', `arm7500', `arm7500fe', `arm7t', `arm7tdmi', - `arm7tdmi-s', `arm8', `arm810', `strongarm', `strongarm1', - `strongarm110', `strongarm1100', `strongarm1110', `arm9', `arm920', - `arm920t', `arm922t', `arm940t', `arm9tdmi', `arm9e', `arm926e', - `arm926ej-s', `arm946e-r0', `arm946e', `arm966e-r0', `arm966e', - `arm10t', `arm10e', `arm1020', `arm1020t', `arm1020e', - `arm1026ej-s', `arm1136j-s', `arm1136jf-s', `arm1176jz-s', - `arm1176jzf-s', `mpcore', `mpcorenovfp', `ep9312' (ARM920 with - Cirrus Maverick coprocessor), `i80200' (Intel XScale processor) - `iwmmxt' (Intel(r) XScale processor with Wireless MMX(tm) - technology coprocessor) and `xscale'. The special name `all' may - be used to allow the assembler to accept instructions valid for - any ARM processor. - - In addition to the basic instruction set, the assembler can be - told to accept various extension mnemonics that extend the - processor using the co-processor instruction space. For example, - `-mcpu=arm920+maverick' is equivalent to specifying - `-mcpu=ep9312'. The following extensions are currently supported: - `+maverick' `+iwmmxt' and `+xscale'. - -`-march=ARCHITECTURE[+EXTENSION...]' - This option specifies the target architecture. The assembler will - issue an error message if an attempt is made to assemble an - instruction which will not execute on the target architecture. - The following architecture names are recognized: `armv1', `armv2', - `armv2a', `armv2s', `armv3', `armv3m', `armv4', `armv4xm', - `armv4t', `armv4txm', `armv5', `armv5t', `armv5txm', `armv5te', - `armv5texp', `armv6', `armv6j', `armv6k', `armv6z', `armv6zk', - `iwmmxt' and `xscale'. If both `-mcpu' and `-march' are - specified, the assembler will use the setting for `-mcpu'. - - The architecture option can be extended with the same instruction - set extension options as the `-mcpu' option. - -`-mfpu=FLOATING-POINT-FORMAT' - This option specifies the floating point format to assemble for. - The assembler will issue an error message if an attempt is made to - assemble an instruction which will not execute on the target - floating point unit. The following format options are recognized: - `softfpa', `fpe', `fpe2', `fpe3', `fpa', `fpa10', `fpa11', - `arm7500fe', `softvfp', `softvfp+vfp', `vfp', `vfp10', `vfp10-r0', - `vfp9', `vfpxd', `arm1020t', `arm1020e', `arm1136jf-s' and - `maverick'. - - In addition to determining which instructions are assembled, this - option also affects the way in which the `.double' assembler - directive behaves when assembling little-endian code. - - The default is dependent on the processor selected. For - Architecture 5 or later, the default is to assembler for VFP - instructions; for earlier architectures the default is to assemble - for FPA instructions. - -`-mthumb' - This option specifies that the assembler should start assembling - Thumb instructions; that is, it should behave as though the file - starts with a `.code 16' directive. - -`-mthumb-interwork' - This option specifies that the output generated by the assembler - should be marked as supporting interworking. - -`-mapcs `[26|32]'' - This option specifies that the output generated by the assembler - should be marked as supporting the indicated version of the Arm - Procedure. Calling Standard. - -`-matpcs' - This option specifies that the output generated by the assembler - should be marked as supporting the Arm/Thumb Procedure Calling - Standard. If enabled this option will cause the assembler to - create an empty debugging section in the object file called - .arm.atpcs. Debuggers can use this to determine the ABI being - used by. - -`-mapcs-float' - This indicates the floating point variant of the APCS should be - used. In this variant floating point arguments are passed in FP - registers rather than integer registers. - -`-mapcs-reentrant' - This indicates that the reentrant variant of the APCS should be - used. This variant supports position independent code. - -`-mfloat-abi=ABI' - This option specifies that the output generated by the assembler - should be marked as using specified floating point ABI. The - following values are recognized: `soft', `softfp' and `hard'. - -`-meabi=VER' - This option specifies which EABI version the produced object files - should conform to. The following values are recognised: `gnu' and - `4'. - -`-EB' - This option specifies that the output generated by the assembler - should be marked as being encoded for a big-endian processor. - -`-EL' - This option specifies that the output generated by the assembler - should be marked as being encoded for a little-endian processor. - -`-k' - This option specifies that the output of the assembler should be - marked as position-independent code (PIC). - - - -File: as.info, Node: ARM Syntax, Next: ARM Floating Point, Prev: ARM Options, Up: ARM-Dependent - -8.4.2 Syntax ------------- - -* Menu: - -* ARM-Chars:: Special Characters -* ARM-Regs:: Register Names - - -File: as.info, Node: ARM-Chars, Next: ARM-Regs, Up: ARM Syntax - -8.4.2.1 Special Characters -.......................... - -The presence of a `@' on a line indicates the start of a comment that -extends to the end of the current line. If a `#' appears as the first -character of a line, the whole line is treated as a comment. - - The `;' character can be used instead of a newline to separate -statements. - - Either `#' or `$' can be used to indicate immediate operands. - - *TODO* Explain about /data modifier on symbols. - - -File: as.info, Node: ARM-Regs, Prev: ARM-Chars, Up: ARM Syntax - -8.4.2.2 Register Names -...................... - -*TODO* Explain about ARM register naming, and the predefined names. - - -File: as.info, Node: ARM Floating Point, Next: ARM Directives, Prev: ARM Syntax, Up: ARM-Dependent - -8.4.3 Floating Point --------------------- - -The ARM family uses IEEE floating-point numbers. - - -File: as.info, Node: ARM Directives, Next: ARM Opcodes, Prev: ARM Floating Point, Up: ARM-Dependent - -8.4.4 ARM Machine Directives ----------------------------- - -`.align EXPRESSION [, EXPRESSION]' - This is the generic .ALIGN directive. For the ARM however if the - first argument is zero (ie no alignment is needed) the assembler - will behave as if the argument had been 2 (ie pad to the next four - byte boundary). This is for compatibility with ARM's own - assembler. - -`NAME .req REGISTER NAME' - This creates an alias for REGISTER NAME called NAME. For example: - - foo .req r0 - -`.unreq ALIAS-NAME' - This undefines a register alias which was previously defined using - the `req' directive. For example: - - foo .req r0 - .unreq foo - - An error occurs if the name is undefined. Note - this pseudo op - can be used to delete builtin in register name aliases (eg 'r0'). - This should only be done if it is really necessary. - -`.code `[16|32]'' - This directive selects the instruction set being generated. The - value 16 selects Thumb, with the value 32 selecting ARM. - -`.thumb' - This performs the same action as .CODE 16. - -`.arm' - This performs the same action as .CODE 32. - -`.force_thumb' - This directive forces the selection of Thumb instructions, even if - the target processor does not support those instructions - -`.thumb_func' - This directive specifies that the following symbol is the name of a - Thumb encoded function. This information is necessary in order to - allow the assembler and linker to generate correct code for - interworking between Arm and Thumb instructions and should be used - even if interworking is not going to be performed. The presence - of this directive also implies `.thumb' - -`.thumb_set' - This performs the equivalent of a `.set' directive in that it - creates a symbol which is an alias for another symbol (possibly - not yet defined). This directive also has the added property in - that it marks the aliased symbol as being a thumb function entry - point, in the same way that the `.thumb_func' directive does. - -`.ltorg' - This directive causes the current contents of the literal pool to - be dumped into the current section (which is assumed to be the - .text section) at the current location (aligned to a word - boundary). `GAS' maintains a separate literal pool for each - section and each sub-section. The `.ltorg' directive will only - affect the literal pool of the current section and sub-section. - At the end of assembly all remaining, un-empty literal pools will - automatically be dumped. - - Note - older versions of `GAS' would dump the current literal pool - any time a section change occurred. This is no longer done, since - it prevents accurate control of the placement of literal pools. - -`.pool' - This is a synonym for .ltorg. - -`.unwind_fnstart' - Marks the start of a function with an unwind table entry. - -`.unwind_fnend' - Marks the end of a function with an unwind table entry. The - unwind index table entry is created when this directive is - processed. - - If no personality routine has been specified then standard - personality routine 0 or 1 will be used, depending on the number - of unwind opcodes required. - -`.cantunwind' - Prevents unwinding through the current function. No personality - routine or exception table data is required or permitted. - -`.personality NAME' - Sets the personality routine for the current function to NAME. - -`.personalityindex INDEX' - Sets the personality routine for the current function to the EABI - standard routine number INDEX - -`.handlerdata' - Marks the end of the current function, and the start of the - exception table entry for that function. Anything between this - directive and the `.fnend' directive will be added to the - exception table entry. - - Must be preceded by a `.personality' or `.personalityindex' - directive. - -`.save REGLIST' - Generate unwinder annotations to restore the registers in REGLIST. - The format of REGLIST is the same as the corresponding - store-multiple instruction. - - _core registers_ - .save {r4, r5, r6, lr} - stmfd sp!, {r4, r5, r6, lr} - _FPA registers_ - .save f4, 2 - sfmfd f4, 2, [sp]! - _VFP registers_ - .save {d8, d9, d10} - fstmdf sp!, {d8, d9, d10} - _iWMMXt registers_ - .save {wr10, wr11} - wstrd wr11, [sp, #-8]! - wstrd wr10, [sp, #-8]! - or - .save wr11 - wstrd wr11, [sp, #-8]! - .save wr10 - wstrd wr10, [sp, #-8]! - -`.pad #COUNT' - Generate unwinder annotations for a stack adjustment of COUNT - bytes. A positive value indicates the function prologue allocated - stack space by decrementing the stack pointer. - -`.movsp REG' - Tell the unwinder that REG contains the current stack pointer. - -`.setfp FPREG, SPREG [, #OFFSET]' - Make all unwinder annotations relaive to a frame pointer. Without - this the unwinder will use offsets from the stack pointer. - - The syntax of this directive is the same as the `sub' or `mov' - instruction used to set the frame pointer. SPREG must be either - `sp' or mentioned in a previous `.movsp' directive. - - .movsp ip - mov ip, sp - ... - .setfp fp, ip, #4 - sub fp, ip, #4 - -`.raw OFFSET, BYTE1, ...' - Insert one of more arbitary unwind opcode bytes, which are known - to adjust the stack pointer by OFFSET bytes. - - For example `.unwind_raw 4, 0xb1, 0x01' is equivalent to `.save - {r0}' - - - -File: as.info, Node: ARM Opcodes, Next: ARM Mapping Symbols, Prev: ARM Directives, Up: ARM-Dependent - -8.4.5 Opcodes -------------- - -`as' implements all the standard ARM opcodes. It also implements -several pseudo opcodes, including several synthetic load instructions. - -`NOP' - nop - - This pseudo op will always evaluate to a legal ARM instruction - that does nothing. Currently it will evaluate to MOV r0, r0. - -`LDR' - ldr , = - - If expression evaluates to a numeric constant then a MOV or MVN - instruction will be used in place of the LDR instruction, if the - constant can be generated by either of these instructions. - Otherwise the constant will be placed into the nearest literal - pool (if it not already there) and a PC relative LDR instruction - will be generated. - -`ADR' - adr q+u3f)Nydzr^AzzfA5+mN&`P^i4hFLykKH*0j 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 QtIeK;15v-2_5Ysze;L!`Q2+n{ diff --git a/gas/po/tr.gmo b/gas/po/tr.gmo deleted file mode 100644 index fe95cfbeb13294a5a2182cab7129863defba3e12..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 254790 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. -.tr \(*W-|\(bv\*(Tr -.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' -.ie n \{\ -. ds -- \(*W- -. ds PI pi -. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch -. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch -. ds L" "" -. ds R" "" -. ds C` "" -. ds C' "" -'br\} -.el\{\ -. ds -- \|\(em\| -. ds PI \(*p -. ds L" `` -. ds R" '' -'br\} -.\" -.\" 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 -.\" 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 -.\" -.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). -.\" Fear. Run. Save yourself. No user-serviceable parts. -. \" fudge factors for nroff and troff -.if n \{\ -. ds #H 0 -. ds #V .8m -. ds #F .3m -. ds #[ \f1 -. ds #] \fP -.\} -.if t \{\ -. ds #H ((1u-(\\\\n(.fu%2u))*.13m) -. ds #V .6m -. ds #F 0 -. ds #[ \& -. ds #] \& -.\} -. \" simple accents for nroff and troff -.if n \{\ -. ds ' \& -. ds ` \& -. ds ^ \& -. ds , \& -. ds ~ ~ -. ds / -.\} -.if t \{\ -. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" -. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' -. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' -. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' -. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' -. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' -.\} -. \" troff and (daisy-wheel) nroff accents -.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' -.ds 8 \h'\*(#H'\(*b\h'-\*(#H' -.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] -.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' -.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' -.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] -.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] -.ds ae a\h'-(\w'a'u*4/10)'e -.ds Ae A\h'-(\w'A'u*4/10)'E -. \" corrections for vroff -.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' -.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' -. \" for low resolution devices (crt and lpr) -.if \n(.H>23 .if \n(.V>19 \ -\{\ -. ds : e -. ds 8 ss -. ds o a -. ds d- d\h'-1'\(ga -. ds D- D\h'-1'\(hy -. ds th \o'bp' -. ds Th \o'LP' -. ds ae ae -. ds Ae AE -.\} -.rm #[ #] #H #V #F C -.\" ======================================================================== -.\" -.IX Title "GPROF 1" -.TH GPROF 1 "2005-03-08" "binutils-2.15.96" "GNU" -.SH "NAME" -gprof \- display call graph profile data -.SH "SYNOPSIS" -.IX Header "SYNOPSIS" -gprof [ \-[abcDhilLrsTvwxyz] ] [ \-[ACeEfFJnNOpPqQZ][\fIname\fR] ] - [ \-I \fIdirs\fR ] [ \-d[\fInum\fR] ] [ \-k \fIfrom/to\fR ] - [ \-m \fImin-count\fR ] [ \-R \fImap_file\fR ] [ \-t \fItable-length\fR ] - [ \-\-[no\-]annotated\-source[=\fIname\fR] ] - [ \-\-[no\-]exec\-counts[=\fIname\fR] ] - [ \-\-[no\-]flat\-profile[=\fIname\fR] ] [ \-\-[no\-]graph[=\fIname\fR] ] - [ \-\-[no\-]time=\fIname\fR] [ \-\-all\-lines ] [ \-\-brief ] - [ \-\-debug[=\fIlevel\fR] ] [ \-\-function\-ordering ] - [ \-\-file\-ordering ] [ \-\-directory\-path=\fIdirs\fR ] - [ \-\-display\-unused\-functions ] [ \-\-file\-format=\fIname\fR ] - [ \-\-file\-info ] [ \-\-help ] [ \-\-line ] [ \-\-min\-count=\fIn\fR ] - [ \-\-no\-static ] [ \-\-print\-path ] [ \-\-separate\-files ] - [ \-\-static\-call\-graph ] [ \-\-sum ] [ \-\-table\-length=\fIlen\fR ] - [ \-\-traditional ] [ \-\-version ] [ \-\-width=\fIn\fR ] - [ \-\-ignore\-non\-functions ] [ \-\-demangle[=\fI\s-1STYLE\s0\fR] ] - [ \-\-no\-demangle ] [ \fIimage-file\fR ] [ \fIprofile-file\fR ... ] -.SH "DESCRIPTION" -.IX Header "DESCRIPTION" -\&\f(CW\*(C`gprof\*(C'\fR produces an execution profile of C, Pascal, or Fortran77 -programs. The effect of called routines is incorporated in the profile -of each caller. The profile data is taken from the call graph profile file -(\fIgmon.out\fR default) which is created by programs -that are compiled with the \fB\-pg\fR option of -\&\f(CW\*(C`cc\*(C'\fR, \f(CW\*(C`pc\*(C'\fR, and \f(CW\*(C`f77\*(C'\fR. -The \fB\-pg\fR option also links in versions of the library routines -that are compiled for profiling. \f(CW\*(C`Gprof\*(C'\fR reads the given object -file (the default is \f(CW\*(C`a.out\*(C'\fR) and establishes the relation between -its symbol table and the call graph profile from \fIgmon.out\fR. -If more than one profile file is specified, the \f(CW\*(C`gprof\*(C'\fR -output shows the sum of the profile information in the given profile files. -.PP -\&\f(CW\*(C`Gprof\*(C'\fR calculates the amount of time spent in each routine. -Next, these times are propagated along the edges of the call graph. -Cycles are discovered, and calls into a cycle are made to share the time -of the cycle. -.PP -Several forms of output are available from the analysis. -.PP -The \fIflat profile\fR shows how much time your program spent in each function, -and how many times that function was called. If you simply want to know -which functions burn most of the cycles, it is stated concisely here. -.PP -The \fIcall graph\fR shows, for each function, which functions called it, which -other functions it called, and how many times. There is also an estimate -of how much time was spent in the subroutines of each function. This can -suggest places where you might try to eliminate function calls that use a -lot of time. -.PP -The \fIannotated source\fR listing is a copy of the program's -source code, labeled with the number of times each line of the -program was executed. -.SH "OPTIONS" -.IX Header "OPTIONS" -These options specify which of several output formats -\&\f(CW\*(C`gprof\*(C'\fR should produce. -.PP -Many of these options take an optional \fIsymspec\fR to specify -functions to be included or excluded. These options can be -specified multiple times, with different symspecs, to include -or exclude sets of symbols. -.PP -Specifying any of these options overrides the default (\fB\-p \-q\fR), -which prints a flat profile and call graph analysis -for all functions. -.ie n .IP """\-A[\f(CIsymspec\f(CW]""" 4 -.el .IP "\f(CW\-A[\f(CIsymspec\f(CW]\fR" 4 -.IX Item "-A[symspec]" -.PD 0 -.ie n .IP """\-\-annotated\-source[=\f(CIsymspec\f(CW]""" 4 -.el .IP "\f(CW\-\-annotated\-source[=\f(CIsymspec\f(CW]\fR" 4 -.IX Item "--annotated-source[=symspec]" -.PD -The \fB\-A\fR option causes \f(CW\*(C`gprof\*(C'\fR to print annotated source code. -If \fIsymspec\fR is specified, print output only for matching symbols. -.ie n .IP """\-b""" 4 -.el .IP "\f(CW\-b\fR" 4 -.IX Item "-b" -.PD 0 -.ie n .IP """\-\-brief""" 4 -.el .IP "\f(CW\-\-brief\fR" 4 -.IX Item "--brief" -.PD -If the \fB\-b\fR option is given, \f(CW\*(C`gprof\*(C'\fR doesn't print the -verbose blurbs that try to explain the meaning of all of the fields in -the tables. This is useful if you intend to print out the output, or -are tired of seeing the blurbs. -.ie n .IP """\-C[\f(CIsymspec\f(CW]""" 4 -.el .IP "\f(CW\-C[\f(CIsymspec\f(CW]\fR" 4 -.IX Item "-C[symspec]" -.PD 0 -.ie n .IP """\-\-exec\-counts[=\f(CIsymspec\f(CW]""" 4 -.el .IP "\f(CW\-\-exec\-counts[=\f(CIsymspec\f(CW]\fR" 4 -.IX Item "--exec-counts[=symspec]" -.PD -The \fB\-C\fR option causes \f(CW\*(C`gprof\*(C'\fR to -print a tally of functions and the number of times each was called. -If \fIsymspec\fR is specified, print tally only for matching symbols. -.Sp -If the profile data file contains basic-block count records, specifying -the \fB\-l\fR option, along with \fB\-C\fR, will cause basic-block -execution counts to be tallied and displayed. -.ie n .IP """\-i""" 4 -.el .IP "\f(CW\-i\fR" 4 -.IX Item "-i" -.PD 0 -.ie n .IP """\-\-file\-info""" 4 -.el .IP "\f(CW\-\-file\-info\fR" 4 -.IX Item "--file-info" -.PD -The \fB\-i\fR option causes \f(CW\*(C`gprof\*(C'\fR to display summary information -about the profile data file(s) and then exit. The number of histogram, -call graph, and basic-block count records is displayed. -.ie n .IP """\-I \f(CIdirs\f(CW""" 4 -.el .IP "\f(CW\-I \f(CIdirs\f(CW\fR" 4 -.IX Item "-I dirs" -.PD 0 -.ie n .IP """\-\-directory\-path=\f(CIdirs\f(CW""" 4 -.el .IP "\f(CW\-\-directory\-path=\f(CIdirs\f(CW\fR" 4 -.IX Item "--directory-path=dirs" -.PD -The \fB\-I\fR option specifies a list of search directories in -which to find source files. Environment variable \fI\s-1GPROF_PATH\s0\fR -can also be used to convey this information. -Used mostly for annotated source output. -.ie n .IP """\-J[\f(CIsymspec\f(CW]""" 4 -.el .IP "\f(CW\-J[\f(CIsymspec\f(CW]\fR" 4 -.IX Item "-J[symspec]" -.PD 0 -.ie n .IP """\-\-no\-annotated\-source[=\f(CIsymspec\f(CW]""" 4 -.el .IP "\f(CW\-\-no\-annotated\-source[=\f(CIsymspec\f(CW]\fR" 4 -.IX Item "--no-annotated-source[=symspec]" -.PD -The \fB\-J\fR option causes \f(CW\*(C`gprof\*(C'\fR not to -print annotated source code. -If \fIsymspec\fR is specified, \f(CW\*(C`gprof\*(C'\fR prints annotated source, -but excludes matching symbols. -.ie n .IP """\-L""" 4 -.el .IP "\f(CW\-L\fR" 4 -.IX Item "-L" -.PD 0 -.ie n .IP """\-\-print\-path""" 4 -.el .IP "\f(CW\-\-print\-path\fR" 4 -.IX Item "--print-path" -.PD -Normally, source filenames are printed with the path -component suppressed. The \fB\-L\fR option causes \f(CW\*(C`gprof\*(C'\fR -to print the full pathname of -source filenames, which is determined -from symbolic debugging information in the image file -and is relative to the directory in which the compiler -was invoked. -.ie n .IP """\-p[\f(CIsymspec\f(CW]""" 4 -.el .IP "\f(CW\-p[\f(CIsymspec\f(CW]\fR" 4 -.IX Item "-p[symspec]" -.PD 0 -.ie n .IP """\-\-flat\-profile[=\f(CIsymspec\f(CW]""" 4 -.el .IP "\f(CW\-\-flat\-profile[=\f(CIsymspec\f(CW]\fR" 4 -.IX Item "--flat-profile[=symspec]" -.PD -The \fB\-p\fR option causes \f(CW\*(C`gprof\*(C'\fR to print a flat profile. -If \fIsymspec\fR is specified, print flat profile only for matching symbols. -.ie n .IP """\-P[\f(CIsymspec\f(CW]""" 4 -.el .IP "\f(CW\-P[\f(CIsymspec\f(CW]\fR" 4 -.IX Item "-P[symspec]" -.PD 0 -.ie n .IP """\-\-no\-flat\-profile[=\f(CIsymspec\f(CW]""" 4 -.el .IP "\f(CW\-\-no\-flat\-profile[=\f(CIsymspec\f(CW]\fR" 4 -.IX Item "--no-flat-profile[=symspec]" -.PD -The \fB\-P\fR option causes \f(CW\*(C`gprof\*(C'\fR to suppress printing a flat profile. -If \fIsymspec\fR is specified, \f(CW\*(C`gprof\*(C'\fR prints a flat profile, -but excludes matching symbols. -.ie n .IP """\-q[\f(CIsymspec\f(CW]""" 4 -.el .IP "\f(CW\-q[\f(CIsymspec\f(CW]\fR" 4 -.IX Item "-q[symspec]" -.PD 0 -.ie n .IP """\-\-graph[=\f(CIsymspec\f(CW]""" 4 -.el .IP "\f(CW\-\-graph[=\f(CIsymspec\f(CW]\fR" 4 -.IX Item "--graph[=symspec]" -.PD -The \fB\-q\fR option causes \f(CW\*(C`gprof\*(C'\fR to print the call graph analysis. -If \fIsymspec\fR is specified, print call graph only for matching symbols -and their children. -.ie n .IP """\-Q[\f(CIsymspec\f(CW]""" 4 -.el .IP "\f(CW\-Q[\f(CIsymspec\f(CW]\fR" 4 -.IX Item "-Q[symspec]" -.PD 0 -.ie n .IP """\-\-no\-graph[=\f(CIsymspec\f(CW]""" 4 -.el .IP "\f(CW\-\-no\-graph[=\f(CIsymspec\f(CW]\fR" 4 -.IX Item "--no-graph[=symspec]" -.PD -The \fB\-Q\fR option causes \f(CW\*(C`gprof\*(C'\fR to suppress printing the -call graph. -If \fIsymspec\fR is specified, \f(CW\*(C`gprof\*(C'\fR prints a call graph, -but excludes matching symbols. -.ie n .IP """\-t""" 4 -.el .IP "\f(CW\-t\fR" 4 -.IX Item "-t" -.PD 0 -.ie n .IP """\-\-table\-length=\f(CInum\f(CW""" 4 -.el .IP "\f(CW\-\-table\-length=\f(CInum\f(CW\fR" 4 -.IX Item "--table-length=num" -.PD -The \fB\-t\fR option causes the \fInum\fR most active source lines in -each source file to be listed when source annotation is enabled. The -default is 10. -.ie n .IP """\-y""" 4 -.el .IP "\f(CW\-y\fR" 4 -.IX Item "-y" -.PD 0 -.ie n .IP """\-\-separate\-files""" 4 -.el .IP "\f(CW\-\-separate\-files\fR" 4 -.IX Item "--separate-files" -.PD -This option affects annotated source output only. -Normally, \f(CW\*(C`gprof\*(C'\fR prints annotated source files -to standard\-output. If this option is specified, -annotated source for a file named \fIpath/\fIfilename\fI\fR -is generated in the file \fI\fIfilename\fI\-ann\fR. If the underlying -filesystem would truncate \fI\fIfilename\fI\-ann\fR so that it -overwrites the original \fI\fIfilename\fI\fR, \f(CW\*(C`gprof\*(C'\fR generates -annotated source in the file \fI\fIfilename\fI.ann\fR instead (if the -original file name has an extension, that extension is \fIreplaced\fR -with \fI.ann\fR). -.ie n .IP """\-Z[\f(CIsymspec\f(CW]""" 4 -.el .IP "\f(CW\-Z[\f(CIsymspec\f(CW]\fR" 4 -.IX Item "-Z[symspec]" -.PD 0 -.ie n .IP """\-\-no\-exec\-counts[=\f(CIsymspec\f(CW]""" 4 -.el .IP "\f(CW\-\-no\-exec\-counts[=\f(CIsymspec\f(CW]\fR" 4 -.IX Item "--no-exec-counts[=symspec]" -.PD -The \fB\-Z\fR option causes \f(CW\*(C`gprof\*(C'\fR not to -print a tally of functions and the number of times each was called. -If \fIsymspec\fR is specified, print tally, but exclude matching symbols. -.ie n .IP """\-r""" 4 -.el .IP "\f(CW\-r\fR" 4 -.IX Item "-r" -.PD 0 -.ie n .IP """\-\-function\-ordering""" 4 -.el .IP "\f(CW\-\-function\-ordering\fR" 4 -.IX Item "--function-ordering" -.PD -The \fB\-\-function\-ordering\fR option causes \f(CW\*(C`gprof\*(C'\fR to print a -suggested function ordering for the program based on profiling data. -This option suggests an ordering which may improve paging, tlb and -cache behavior for the program on systems which support arbitrary -ordering of functions in an executable. -.Sp -The exact details of how to force the linker to place functions -in a particular order is system dependent and out of the scope of this -manual. -.ie n .IP """\-R \f(CImap_file\f(CW""" 4 -.el .IP "\f(CW\-R \f(CImap_file\f(CW\fR" 4 -.IX Item "-R map_file" -.PD 0 -.ie n .IP """\-\-file\-ordering \f(CImap_file\f(CW""" 4 -.el .IP "\f(CW\-\-file\-ordering \f(CImap_file\f(CW\fR" 4 -.IX Item "--file-ordering map_file" -.PD -The \fB\-\-file\-ordering\fR option causes \f(CW\*(C`gprof\*(C'\fR to print a -suggested .o link line ordering for the program based on profiling data. -This option suggests an ordering which may improve paging, tlb and -cache behavior for the program on systems which do not support arbitrary -ordering of functions in an executable. -.Sp -Use of the \fB\-a\fR argument is highly recommended with this option. -.Sp -The \fImap_file\fR argument is a pathname to a file which provides -function name to object file mappings. The format of the file is similar to -the output of the program \f(CW\*(C`nm\*(C'\fR. -.Sp -.Vb 8 -\& c-parse.o:00000000 T yyparse -\& c-parse.o:00000004 C yyerrflag -\& c-lang.o:00000000 T maybe_objc_method_name -\& c-lang.o:00000000 T print_lang_statistics -\& c-lang.o:00000000 T recognize_objc_keyword -\& c-decl.o:00000000 T print_lang_identifier -\& c-decl.o:00000000 T print_lang_type -\& ... -.Ve -.Sp -To create a \fImap_file\fR with \s-1GNU\s0 \f(CW\*(C`nm\*(C'\fR, type a command like -\&\f(CW\*(C`nm \-\-extern\-only \-\-defined\-only \-v \-\-print\-file\-name program\-name\*(C'\fR. -.ie n .IP """\-T""" 4 -.el .IP "\f(CW\-T\fR" 4 -.IX Item "-T" -.PD 0 -.ie n .IP """\-\-traditional""" 4 -.el .IP "\f(CW\-\-traditional\fR" 4 -.IX Item "--traditional" -.PD -The \fB\-T\fR option causes \f(CW\*(C`gprof\*(C'\fR to print its output in -``traditional'' \s-1BSD\s0 style. -.ie n .IP """\-w \f(CIwidth\f(CW""" 4 -.el .IP "\f(CW\-w \f(CIwidth\f(CW\fR" 4 -.IX Item "-w width" -.PD 0 -.ie n .IP """\-\-width=\f(CIwidth\f(CW""" 4 -.el .IP "\f(CW\-\-width=\f(CIwidth\f(CW\fR" 4 -.IX Item "--width=width" -.PD -Sets width of output lines to \fIwidth\fR. -Currently only used when printing the function index at the bottom -of the call graph. -.ie n .IP """\-x""" 4 -.el .IP "\f(CW\-x\fR" 4 -.IX Item "-x" -.PD 0 -.ie n .IP """\-\-all\-lines""" 4 -.el .IP "\f(CW\-\-all\-lines\fR" 4 -.IX Item "--all-lines" -.PD -This option affects annotated source output only. -By default, only the lines at the beginning of a basic-block -are annotated. If this option is specified, every line in -a basic-block is annotated by repeating the annotation for the -first line. This behavior is similar to \f(CW\*(C`tcov\*(C'\fR's \fB\-a\fR. -.ie n .IP """\-\-demangle[=\f(CIstyle\f(CW]""" 4 -.el .IP "\f(CW\-\-demangle[=\f(CIstyle\f(CW]\fR" 4 -.IX Item "--demangle[=style]" -.PD 0 -.ie n .IP """\-\-no\-demangle""" 4 -.el .IP "\f(CW\-\-no\-demangle\fR" 4 -.IX Item "--no-demangle" -.PD -These options control whether \*(C+ symbol names should be demangled when -printing output. The default is to demangle symbols. The -\&\f(CW\*(C`\-\-no\-demangle\*(C'\fR option may be used to turn off demangling. Different -compilers have different mangling styles. The optional demangling style -argument can be used to choose an appropriate demangling style for your -compiler. -.Sh "Analysis Options" -.IX Subsection "Analysis Options" -.ie n .IP """\-a""" 4 -.el .IP "\f(CW\-a\fR" 4 -.IX Item "-a" -.PD 0 -.ie n .IP """\-\-no\-static""" 4 -.el .IP "\f(CW\-\-no\-static\fR" 4 -.IX Item "--no-static" -.PD -The \fB\-a\fR option causes \f(CW\*(C`gprof\*(C'\fR to suppress the printing of -statically declared (private) functions. (These are functions whose -names are not listed as global, and which are not visible outside the -file/function/block where they were defined.) Time spent in these -functions, calls to/from them, etc, will all be attributed to the -function that was loaded directly before it in the executable file. -This option affects both the flat profile and the call graph. -.ie n .IP """\-c""" 4 -.el .IP "\f(CW\-c\fR" 4 -.IX Item "-c" -.PD 0 -.ie n .IP """\-\-static\-call\-graph""" 4 -.el .IP "\f(CW\-\-static\-call\-graph\fR" 4 -.IX Item "--static-call-graph" -.PD -The \fB\-c\fR option causes the call graph of the program to be -augmented by a heuristic which examines the text space of the object -file and identifies function calls in the binary machine code. -Since normal call graph records are only generated when functions are -entered, this option identifies children that could have been called, -but never were. Calls to functions that were not compiled with -profiling enabled are also identified, but only if symbol table -entries are present for them. -Calls to dynamic library routines are typically \fInot\fR found -by this option. -Parents or children identified via this heuristic -are indicated in the call graph with call counts of \fB0\fR. -.ie n .IP """\-D""" 4 -.el .IP "\f(CW\-D\fR" 4 -.IX Item "-D" -.PD 0 -.ie n .IP """\-\-ignore\-non\-functions""" 4 -.el .IP "\f(CW\-\-ignore\-non\-functions\fR" 4 -.IX Item "--ignore-non-functions" -.PD -The \fB\-D\fR option causes \f(CW\*(C`gprof\*(C'\fR to ignore symbols which -are not known to be functions. This option will give more accurate -profile data on systems where it is supported (Solaris and \s-1HPUX\s0 for -example). -.ie n .IP """\-k \f(CIfrom\f(CW/\f(CIto\f(CW""" 4 -.el .IP "\f(CW\-k \f(CIfrom\f(CW/\f(CIto\f(CW\fR" 4 -.IX Item "-k from/to" -The \fB\-k\fR option allows you to delete from the call graph any arcs from -symbols matching symspec \fIfrom\fR to those matching symspec \fIto\fR. -.ie n .IP """\-l""" 4 -.el .IP "\f(CW\-l\fR" 4 -.IX Item "-l" -.PD 0 -.ie n .IP """\-\-line""" 4 -.el .IP "\f(CW\-\-line\fR" 4 -.IX Item "--line" -.PD -The \fB\-l\fR option enables line-by-line profiling, which causes -histogram hits to be charged to individual source code lines, -instead of functions. -If the program was compiled with basic-block counting enabled, -this option will also identify how many times each line of -code was executed. -While line-by-line profiling can help isolate where in a large function -a program is spending its time, it also significantly increases -the running time of \f(CW\*(C`gprof\*(C'\fR, and magnifies statistical -inaccuracies. -.ie n .IP """\-m \f(CInum\f(CW""" 4 -.el .IP "\f(CW\-m \f(CInum\f(CW\fR" 4 -.IX Item "-m num" -.PD 0 -.ie n .IP """\-\-min\-count=\f(CInum\f(CW""" 4 -.el .IP "\f(CW\-\-min\-count=\f(CInum\f(CW\fR" 4 -.IX Item "--min-count=num" -.PD -This option affects execution count output only. -Symbols that are executed less than \fInum\fR times are suppressed. -.ie n .IP """\-n[\f(CIsymspec\f(CW]""" 4 -.el .IP "\f(CW\-n[\f(CIsymspec\f(CW]\fR" 4 -.IX Item "-n[symspec]" -.PD 0 -.ie n .IP """\-\-time[=\f(CIsymspec\f(CW]""" 4 -.el .IP "\f(CW\-\-time[=\f(CIsymspec\f(CW]\fR" 4 -.IX Item "--time[=symspec]" -.PD -The \fB\-n\fR option causes \f(CW\*(C`gprof\*(C'\fR, in its call graph analysis, -to only propagate times for symbols matching \fIsymspec\fR. -.ie n .IP """\-N[\f(CIsymspec\f(CW]""" 4 -.el .IP "\f(CW\-N[\f(CIsymspec\f(CW]\fR" 4 -.IX Item "-N[symspec]" -.PD 0 -.ie n .IP """\-\-no\-time[=\f(CIsymspec\f(CW]""" 4 -.el .IP "\f(CW\-\-no\-time[=\f(CIsymspec\f(CW]\fR" 4 -.IX Item "--no-time[=symspec]" -.PD -The \fB\-n\fR option causes \f(CW\*(C`gprof\*(C'\fR, in its call graph analysis, -not to propagate times for symbols matching \fIsymspec\fR. -.ie n .IP """\-z""" 4 -.el .IP "\f(CW\-z\fR" 4 -.IX Item "-z" -.PD 0 -.ie n .IP """\-\-display\-unused\-functions""" 4 -.el .IP "\f(CW\-\-display\-unused\-functions\fR" 4 -.IX Item "--display-unused-functions" -.PD -If you give the \fB\-z\fR option, \f(CW\*(C`gprof\*(C'\fR will mention all -functions in the flat profile, even those that were never called, and -that had no time spent in them. This is useful in conjunction with the -\&\fB\-c\fR option for discovering which routines were never called. -.Sh "Miscellaneous Options" -.IX Subsection "Miscellaneous Options" -.ie n .IP """\-d[\f(CInum\f(CW]""" 4 -.el .IP "\f(CW\-d[\f(CInum\f(CW]\fR" 4 -.IX Item "-d[num]" -.PD 0 -.ie n .IP """\-\-debug[=\f(CInum\f(CW]""" 4 -.el .IP "\f(CW\-\-debug[=\f(CInum\f(CW]\fR" 4 -.IX Item "--debug[=num]" -.PD -The \fB\-d\fR \fInum\fR option specifies debugging options. -If \fInum\fR is not specified, enable all debugging. -.ie n .IP """\-h""" 4 -.el .IP "\f(CW\-h\fR" 4 -.IX Item "-h" -.PD 0 -.ie n .IP """\-\-help""" 4 -.el .IP "\f(CW\-\-help\fR" 4 -.IX Item "--help" -.PD -The \fB\-h\fR option prints command line usage. -.ie n .IP """\-O\f(CIname\f(CW""" 4 -.el .IP "\f(CW\-O\f(CIname\f(CW\fR" 4 -.IX Item "-Oname" -.PD 0 -.ie n .IP """\-\-file\-format=\f(CIname\f(CW""" 4 -.el .IP "\f(CW\-\-file\-format=\f(CIname\f(CW\fR" 4 -.IX Item "--file-format=name" -.PD -Selects the format of the profile data files. Recognized formats are -\&\fBauto\fR (the default), \fBbsd\fR, \fB4.4bsd\fR, \fBmagic\fR, and -\&\fBprof\fR (not yet supported). -.ie n .IP """\-s""" 4 -.el .IP "\f(CW\-s\fR" 4 -.IX Item "-s" -.PD 0 -.ie n .IP """\-\-sum""" 4 -.el .IP "\f(CW\-\-sum\fR" 4 -.IX Item "--sum" -.PD -The \fB\-s\fR option causes \f(CW\*(C`gprof\*(C'\fR to summarize the information -in the profile data files it read in, and write out a profile data -file called \fIgmon.sum\fR, which contains all the information from -the profile data files that \f(CW\*(C`gprof\*(C'\fR read in. The file \fIgmon.sum\fR -may be one of the specified input files; the effect of this is to -merge the data in the other input files into \fIgmon.sum\fR. -.Sp -Eventually you can run \f(CW\*(C`gprof\*(C'\fR again without \fB\-s\fR to analyze the -cumulative data in the file \fIgmon.sum\fR. -.ie n .IP """\-v""" 4 -.el .IP "\f(CW\-v\fR" 4 -.IX Item "-v" -.PD 0 -.ie n .IP """\-\-version""" 4 -.el .IP "\f(CW\-\-version\fR" 4 -.IX Item "--version" -.PD -The \fB\-v\fR flag causes \f(CW\*(C`gprof\*(C'\fR to print the current version -number, and then exit. -.Sh "Deprecated Options" -.IX Subsection "Deprecated Options" -.RS 4 -These options have been replaced with newer versions that use symspecs. -.RE -.ie n .IP """\-e \f(CIfunction_name\f(CW""" 4 -.el .IP "\f(CW\-e \f(CIfunction_name\f(CW\fR" 4 -.IX Item "-e function_name" -The \fB\-e\fR \fIfunction\fR option tells \f(CW\*(C`gprof\*(C'\fR to not print -information about the function \fIfunction_name\fR (and its -children...) in the call graph. The function will still be listed -as a child of any functions that call it, but its index number will be -shown as \fB[not printed]\fR. More than one \fB\-e\fR option may be -given; only one \fIfunction_name\fR may be indicated with each \fB\-e\fR -option. -.ie n .IP """\-E \f(CIfunction_name\f(CW""" 4 -.el .IP "\f(CW\-E \f(CIfunction_name\f(CW\fR" 4 -.IX Item "-E function_name" -The \f(CW\*(C`\-E \f(CIfunction\f(CW\*(C'\fR option works like the \f(CW\*(C`\-e\*(C'\fR option, but -time spent in the function (and children who were not called from -anywhere else), will not be used to compute the percentages-of-time for -the call graph. More than one \fB\-E\fR option may be given; only one -\&\fIfunction_name\fR may be indicated with each \fB\-E\fR option. -.ie n .IP """\-f \f(CIfunction_name\f(CW""" 4 -.el .IP "\f(CW\-f \f(CIfunction_name\f(CW\fR" 4 -.IX Item "-f function_name" -The \fB\-f\fR \fIfunction\fR option causes \f(CW\*(C`gprof\*(C'\fR to limit the -call graph to the function \fIfunction_name\fR and its children (and -their children...). More than one \fB\-f\fR option may be given; -only one \fIfunction_name\fR may be indicated with each \fB\-f\fR -option. -.ie n .IP """\-F \f(CIfunction_name\f(CW""" 4 -.el .IP "\f(CW\-F \f(CIfunction_name\f(CW\fR" 4 -.IX Item "-F function_name" -The \fB\-F\fR \fIfunction\fR option works like the \f(CW\*(C`\-f\*(C'\fR option, but -only time spent in the function and its children (and their -children...) will be used to determine total-time and -percentages-of-time for the call graph. More than one \fB\-F\fR option -may be given; only one \fIfunction_name\fR may be indicated with each -\&\fB\-F\fR option. The \fB\-F\fR option overrides the \fB\-E\fR option. -.SH "FILES" -.IX Header "FILES" -.ie n .IP """\f(CIa.out\f(CW""" 4 -.el .IP "\f(CW\f(CIa.out\f(CW\fR" 4 -.IX Item "a.out" -the namelist and text space. -.ie n .IP """\f(CIgmon.out\f(CW""" 4 -.el .IP "\f(CW\f(CIgmon.out\f(CW\fR" 4 -.IX Item "gmon.out" -dynamic call graph and profile. -.ie n .IP """\f(CIgmon.sum\f(CW""" 4 -.el .IP "\f(CW\f(CIgmon.sum\f(CW\fR" 4 -.IX Item "gmon.sum" -summarized dynamic call graph and profile. -.SH "BUGS" -.IX Header "BUGS" -The granularity of the sampling is shown, but remains -statistical at best. -We assume that the time for each execution of a function -can be expressed by the total time for the function divided -by the number of times the function is called. -Thus the time propagated along the call graph arcs to the function's -parents is directly proportional to the number of times that -arc is traversed. -.PP -Parents that are not themselves profiled will have the time of -their profiled children propagated to them, but they will appear -to be spontaneously invoked in the call graph listing, and will -not have their time propagated further. -Similarly, signal catchers, even though profiled, will appear -to be spontaneous (although for more obscure reasons). -Any profiled children of signal catchers should have their times -propagated properly, unless the signal catcher was invoked during -the execution of the profiling routine, in which case all is lost. -.PP -The profiled program must call \f(CW\*(C`exit\*(C'\fR(2) -or return normally for the profiling information to be saved -in the \fIgmon.out\fR file. -.SH "SEE ALSO" -.IX Header "SEE ALSO" -\&\fImonitor\fR\|(3), \fIprofil\fR\|(2), \fIcc\fR\|(1), \fIprof\fR\|(1), and the Info entry for \fIgprof\fR. -.PP -``An Execution Profiler for Modular Programs'', -by S. Graham, P. Kessler, M. McKusick; -Software \- Practice and Experience, -Vol. 13, pp. 671\-685, 1983. -.PP -``gprof: A Call Graph Execution Profiler'', -by S. Graham, P. Kessler, M. McKusick; -Proceedings of the \s-1SIGPLAN\s0 '82 Symposium on Compiler Construction, -\&\s-1SIGPLAN\s0 Notices, Vol. 17, No 6, pp. 120\-126, June 1982. -.SH "COPYRIGHT" -.IX Header "COPYRIGHT" -Copyright (C) 1988, 92, 97, 98, 99, 2000, 2001, 2003 Free Software Foundation, Inc. -.PP -Permission is granted to copy, distribute and/or modify this document -under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1 -or any later version published by the Free Software Foundation; -with no Invariant Sections, with no Front-Cover Texts, and with no -Back-Cover Texts. A copy of the license is included in the -section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R". diff --git a/gprof/gprof.info b/gprof/gprof.info deleted file mode 100644 index ef55770f904..00000000000 --- a/gprof/gprof.info +++ /dev/null @@ -1,2313 +0,0 @@ -This is .././gprof/gprof.info, produced by makeinfo version 4.7 from -.././gprof/gprof.texi. - -START-INFO-DIR-ENTRY -* gprof: (gprof). Profiling your program's execution -END-INFO-DIR-ENTRY - - This file documents the gprof profiler of the GNU system. - - Copyright (C) 1988, 92, 97, 98, 99, 2000, 2001, 2003 Free Software -Foundation, Inc. - - Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.1 or -any later version published by the Free Software Foundation; with no -Invariant Sections, with no Front-Cover Texts, and with no Back-Cover -Texts. A copy of the license is included in the section entitled "GNU -Free Documentation License". - - -File: gprof.info, Node: Top, Next: Introduction, Up: (dir) - -Profiling a Program: Where Does It Spend Its Time? -************************************************** - -This manual describes the GNU profiler, `gprof', and how you can use it -to determine which parts of a program are taking most of the execution -time. We assume that you know how to write, compile, and execute -programs. GNU `gprof' was written by Jay Fenlason. - - This document is distributed under the terms of the GNU Free -Documentation License. A copy of the license is included in the -section entitled "GNU Free Documentation License". - -* Menu: - -* Introduction:: What profiling means, and why it is useful. - -* Compiling:: How to compile your program for profiling. -* Executing:: Executing your program to generate profile data -* Invoking:: How to run `gprof', and its options - -* Output:: Interpreting `gprof''s output - -* Inaccuracy:: Potential problems you should be aware of -* How do I?:: Answers to common questions -* Incompatibilities:: (between GNU `gprof' and Unix `gprof'.) -* Details:: Details of how profiling is done -* GNU Free Documentation License:: GNU Free Documentation License - - -File: gprof.info, Node: Introduction, Next: Compiling, Prev: Top, Up: Top - -1 Introduction to Profiling -*************************** - -Profiling allows you to learn where your program spent its time and -which functions called which other functions while it was executing. -This information can show you which pieces of your program are slower -than you expected, and might be candidates for rewriting to make your -program execute faster. It can also tell you which functions are being -called more or less often than you expected. This may help you spot -bugs that had otherwise been unnoticed. - - Since the profiler uses information collected during the actual -execution of your program, it can be used on programs that are too -large or too complex to analyze by reading the source. However, how -your program is run will affect the information that shows up in the -profile data. If you don't use some feature of your program while it -is being profiled, no profile information will be generated for that -feature. - - Profiling has several steps: - - * You must compile and link your program with profiling enabled. - *Note Compiling::. - - * You must execute your program to generate a profile data file. - *Note Executing::. - - * You must run `gprof' to analyze the profile data. *Note - Invoking::. - - The next three chapters explain these steps in greater detail. - - Several forms of output are available from the analysis. - - The "flat profile" shows how much time your program spent in each -function, and how many times that function was called. If you simply -want to know which functions burn most of the cycles, it is stated -concisely here. *Note Flat Profile::. - - The "call graph" shows, for each function, which functions called -it, which other functions it called, and how many times. There is also -an estimate of how much time was spent in the subroutines of each -function. This can suggest places where you might try to eliminate -function calls that use a lot of time. *Note Call Graph::. - - The "annotated source" listing is a copy of the program's source -code, labeled with the number of times each line of the program was -executed. *Note Annotated Source::. - - To better understand how profiling works, you may wish to read a -description of its implementation. *Note Implementation::. - - -File: gprof.info, Node: Compiling, Next: Executing, Prev: Introduction, Up: Top - -2 Compiling a Program for Profiling -*********************************** - -The first step in generating profile information for your program is to -compile and link it with profiling enabled. - - To compile a source file for profiling, specify the `-pg' option when -you run the compiler. (This is in addition to the options you normally -use.) - - To link the program for profiling, if you use a compiler such as `cc' -to do the linking, simply specify `-pg' in addition to your usual -options. The same option, `-pg', alters either compilation or linking -to do what is necessary for profiling. Here are examples: - - cc -g -c myprog.c utils.c -pg - cc -o myprog myprog.o utils.o -pg - - The `-pg' option also works with a command that both compiles and -links: - - cc -o myprog myprog.c utils.c -g -pg - - Note: The `-pg' option must be part of your compilation options as -well as your link options. If it is not then no call-graph data will -be gathered and when you run `gprof' you will get an error message like -this: - - gprof: gmon.out file is missing call-graph data - - If you add the `-Q' switch to suppress the printing of the call -graph data you will still be able to see the time samples: - - Flat profile: - - Each sample counts as 0.01 seconds. - % cumulative self self total - time seconds seconds calls Ts/call Ts/call name - 44.12 0.07 0.07 zazLoop - 35.29 0.14 0.06 main - 20.59 0.17 0.04 bazMillion - - % the percentage of the total running time of the - - If you run the linker `ld' directly instead of through a compiler -such as `cc', you may have to specify a profiling startup file -`gcrt0.o' as the first input file instead of the usual startup file -`crt0.o'. In addition, you would probably want to specify the -profiling C library, `libc_p.a', by writing `-lc_p' instead of the -usual `-lc'. This is not absolutely necessary, but doing this gives -you number-of-calls information for standard library functions such as -`read' and `open'. For example: - - ld -o myprog /lib/gcrt0.o myprog.o utils.o -lc_p - - If you compile only some of the modules of the program with `-pg', -you can still profile the program, but you won't get complete -information about the modules that were compiled without `-pg'. The -only information you get for the functions in those modules is the -total time spent in them; there is no record of how many times they -were called, or from where. This will not affect the flat profile -(except that the `calls' field for the functions will be blank), but -will greatly reduce the usefulness of the call graph. - - If you wish to perform line-by-line profiling, you will also need to -specify the `-g' option, instructing the compiler to insert debugging -symbols into the program that match program addresses to source code -lines. *Note Line-by-line::. - - In addition to the `-pg' and `-g' options, older versions of GCC -required you to specify the `-a' option when compiling in order to -instrument it to perform basic-block counting. Newer versions do not -require this option and will not accept it; basic-block counting is -always enabled when `-pg' is on. - - When basic-block counting is enabled, as the program runs it will -count how many times it executed each branch of each `if' statement, -each iteration of each `do' loop, etc. This will enable `gprof' to -construct an annotated source code listing showing how many times each -line of code was executed. - - It also worth noting that GCC supports a different profiling method -which is enabled by the `-fprofile-arcs', `-ftest-coverage' and -`-fprofile-values' switches. These switches do not produce data which -is useful to `gprof' however, so they are not discussed further here. -There is also the `-finstrument-functions' switch which will cause GCC -to insert calls to special user supplied instrumentation routines at -the entry and exit of every function in their program. This can be -used to implement an alternative profiling scheme. - - -File: gprof.info, Node: Executing, Next: Invoking, Prev: Compiling, Up: Top - -3 Executing the Program -*********************** - -Once the program is compiled for profiling, you must run it in order to -generate the information that `gprof' needs. Simply run the program as -usual, using the normal arguments, file names, etc. The program should -run normally, producing the same output as usual. It will, however, run -somewhat slower than normal because of the time spent collecting and the -writing the profile data. - - The way you run the program--the arguments and input that you give -it--may have a dramatic effect on what the profile information shows. -The profile data will describe the parts of the program that were -activated for the particular input you use. For example, if the first -command you give to your program is to quit, the profile data will show -the time used in initialization and in cleanup, but not much else. - - Your program will write the profile data into a file called -`gmon.out' just before exiting. If there is already a file called -`gmon.out', its contents are overwritten. There is currently no way to -tell the program to write the profile data under a different name, but -you can rename the file afterwards if you are concerned that it may be -overwritten. - - In order to write the `gmon.out' file properly, your program must -exit normally: by returning from `main' or by calling `exit'. Calling -the low-level function `_exit' does not write the profile data, and -neither does abnormal termination due to an unhandled signal. - - The `gmon.out' file is written in the program's _current working -directory_ at the time it exits. This means that if your program calls -`chdir', the `gmon.out' file will be left in the last directory your -program `chdir''d to. If you don't have permission to write in this -directory, the file is not written, and you will get an error message. - - Older versions of the GNU profiling library may also write a file -called `bb.out'. This file, if present, contains an human-readable -listing of the basic-block execution counts. Unfortunately, the -appearance of a human-readable `bb.out' means the basic-block counts -didn't get written into `gmon.out'. The Perl script `bbconv.pl', -included with the `gprof' source distribution, will convert a `bb.out' -file into a format readable by `gprof'. Invoke it like this: - - bbconv.pl < bb.out > BH-DATA - - This translates the information in `bb.out' into a form that `gprof' -can understand. But you still need to tell `gprof' about the existence -of this translated information. To do that, include BB-DATA on the -`gprof' command line, _along with `gmon.out'_, like this: - - gprof OPTIONS EXECUTABLE-FILE gmon.out BB-DATA [YET-MORE-PROFILE-DATA-FILES...] [> OUTFILE] - - -File: gprof.info, Node: Invoking, Next: Output, Prev: Executing, Up: Top - -4 `gprof' Command Summary -************************* - -After you have a profile data file `gmon.out', you can run `gprof' to -interpret the information in it. The `gprof' program prints a flat -profile and a call graph on standard output. Typically you would -redirect the output of `gprof' into a file with `>'. - - You run `gprof' like this: - - gprof OPTIONS [EXECUTABLE-FILE [PROFILE-DATA-FILES...]] [> OUTFILE] - -Here square-brackets indicate optional arguments. - - If you omit the executable file name, the file `a.out' is used. If -you give no profile data file name, the file `gmon.out' is used. If -any file is not in the proper format, or if the profile data file does -not appear to belong to the executable file, an error message is -printed. - - You can give more than one profile data file by entering all their -names after the executable file name; then the statistics in all the -data files are summed together. - - The order of these options does not matter. - -* Menu: - -* Output Options:: Controlling `gprof''s output style -* Analysis Options:: Controlling how `gprof' analyses its data -* Miscellaneous Options:: -* Deprecated Options:: Options you no longer need to use, but which - have been retained for compatibility -* Symspecs:: Specifying functions to include or exclude - - -File: gprof.info, Node: Output Options, Next: Analysis Options, Up: Invoking - -4.1 Output Options -================== - -These options specify which of several output formats `gprof' should -produce. - - Many of these options take an optional "symspec" to specify -functions to be included or excluded. These options can be specified -multiple times, with different symspecs, to include or exclude sets of -symbols. *Note Symspecs::. - - Specifying any of these options overrides the default (`-p -q'), -which prints a flat profile and call graph analysis for all functions. - -`-A[SYMSPEC]' -`--annotated-source[=SYMSPEC]' - The `-A' option causes `gprof' to print annotated source code. If - SYMSPEC is specified, print output only for matching symbols. - *Note Annotated Source::. - -`-b' -`--brief' - If the `-b' option is given, `gprof' doesn't print the verbose - blurbs that try to explain the meaning of all of the fields in the - tables. This is useful if you intend to print out the output, or - are tired of seeing the blurbs. - -`-C[SYMSPEC]' -`--exec-counts[=SYMSPEC]' - The `-C' option causes `gprof' to print a tally of functions and - the number of times each was called. If SYMSPEC is specified, - print tally only for matching symbols. - - If the profile data file contains basic-block count records, - specifying the `-l' option, along with `-C', will cause basic-block - execution counts to be tallied and displayed. - -`-i' -`--file-info' - The `-i' option causes `gprof' to display summary information - about the profile data file(s) and then exit. The number of - histogram, call graph, and basic-block count records is displayed. - -`-I DIRS' -`--directory-path=DIRS' - The `-I' option specifies a list of search directories in which to - find source files. Environment variable GPROF_PATH can also be - used to convey this information. Used mostly for annotated source - output. - -`-J[SYMSPEC]' -`--no-annotated-source[=SYMSPEC]' - The `-J' option causes `gprof' not to print annotated source code. - If SYMSPEC is specified, `gprof' prints annotated source, but - excludes matching symbols. - -`-L' -`--print-path' - Normally, source filenames are printed with the path component - suppressed. The `-L' option causes `gprof' to print the full - pathname of source filenames, which is determined from symbolic - debugging information in the image file and is relative to the - directory in which the compiler was invoked. - -`-p[SYMSPEC]' -`--flat-profile[=SYMSPEC]' - The `-p' option causes `gprof' to print a flat profile. If - SYMSPEC is specified, print flat profile only for matching symbols. - *Note Flat Profile::. - -`-P[SYMSPEC]' -`--no-flat-profile[=SYMSPEC]' - The `-P' option causes `gprof' to suppress printing a flat profile. - If SYMSPEC is specified, `gprof' prints a flat profile, but - excludes matching symbols. - -`-q[SYMSPEC]' -`--graph[=SYMSPEC]' - The `-q' option causes `gprof' to print the call graph analysis. - If SYMSPEC is specified, print call graph only for matching symbols - and their children. *Note Call Graph::. - -`-Q[SYMSPEC]' -`--no-graph[=SYMSPEC]' - The `-Q' option causes `gprof' to suppress printing the call graph. - If SYMSPEC is specified, `gprof' prints a call graph, but excludes - matching symbols. - -`-t' -`--table-length=NUM' - The `-t' option causes the NUM most active source lines in each - source file to be listed when source annotation is enabled. The - default is 10. - -`-y' -`--separate-files' - This option affects annotated source output only. Normally, - `gprof' prints annotated source files to standard-output. If this - option is specified, annotated source for a file named - `path/FILENAME' is generated in the file `FILENAME-ann'. If the - underlying filesystem would truncate `FILENAME-ann' so that it - overwrites the original `FILENAME', `gprof' generates annotated - source in the file `FILENAME.ann' instead (if the original file - name has an extension, that extension is _replaced_ with `.ann'). - -`-Z[SYMSPEC]' -`--no-exec-counts[=SYMSPEC]' - The `-Z' option causes `gprof' not to print a tally of functions - and the number of times each was called. If SYMSPEC is specified, - print tally, but exclude matching symbols. - -`-r' -`--function-ordering' - The `--function-ordering' option causes `gprof' to print a - suggested function ordering for the program based on profiling - data. This option suggests an ordering which may improve paging, - tlb and cache behavior for the program on systems which support - arbitrary ordering of functions in an executable. - - The exact details of how to force the linker to place functions in - a particular order is system dependent and out of the scope of this - manual. - -`-R MAP_FILE' -`--file-ordering MAP_FILE' - The `--file-ordering' option causes `gprof' to print a suggested - .o link line ordering for the program based on profiling data. - This option suggests an ordering which may improve paging, tlb and - cache behavior for the program on systems which do not support - arbitrary ordering of functions in an executable. - - Use of the `-a' argument is highly recommended with this option. - - The MAP_FILE argument is a pathname to a file which provides - function name to object file mappings. The format of the file is - similar to the output of the program `nm'. - - c-parse.o:00000000 T yyparse - c-parse.o:00000004 C yyerrflag - c-lang.o:00000000 T maybe_objc_method_name - c-lang.o:00000000 T print_lang_statistics - c-lang.o:00000000 T recognize_objc_keyword - c-decl.o:00000000 T print_lang_identifier - c-decl.o:00000000 T print_lang_type - ... - - To create a MAP_FILE with GNU `nm', type a command like `nm - --extern-only --defined-only -v --print-file-name program-name'. - -`-T' -`--traditional' - The `-T' option causes `gprof' to print its output in - "traditional" BSD style. - -`-w WIDTH' -`--width=WIDTH' - Sets width of output lines to WIDTH. Currently only used when - printing the function index at the bottom of the call graph. - -`-x' -`--all-lines' - This option affects annotated source output only. By default, - only the lines at the beginning of a basic-block are annotated. - If this option is specified, every line in a basic-block is - annotated by repeating the annotation for the first line. This - behavior is similar to `tcov''s `-a'. - -`--demangle[=STYLE]' -`--no-demangle' - These options control whether C++ symbol names should be demangled - when printing output. The default is to demangle symbols. The - `--no-demangle' option may be used to turn off demangling. - Different compilers have different mangling styles. The optional - demangling style argument can be used to choose an appropriate - demangling style for your compiler. - - -File: gprof.info, Node: Analysis Options, Next: Miscellaneous Options, Prev: Output Options, Up: Invoking - -4.2 Analysis Options -==================== - -`-a' -`--no-static' - The `-a' option causes `gprof' to suppress the printing of - statically declared (private) functions. (These are functions - whose names are not listed as global, and which are not visible - outside the file/function/block where they were defined.) Time - spent in these functions, calls to/from them, etc, will all be - attributed to the function that was loaded directly before it in - the executable file. This option affects both the flat profile - and the call graph. - -`-c' -`--static-call-graph' - The `-c' option causes the call graph of the program to be - augmented by a heuristic which examines the text space of the - object file and identifies function calls in the binary machine - code. Since normal call graph records are only generated when - functions are entered, this option identifies children that could - have been called, but never were. Calls to functions that were - not compiled with profiling enabled are also identified, but only - if symbol table entries are present for them. Calls to dynamic - library routines are typically _not_ found by this option. - Parents or children identified via this heuristic are indicated in - the call graph with call counts of `0'. - -`-D' -`--ignore-non-functions' - The `-D' option causes `gprof' to ignore symbols which are not - known to be functions. This option will give more accurate - profile data on systems where it is supported (Solaris and HPUX for - example). - -`-k FROM/TO' - The `-k' option allows you to delete from the call graph any arcs - from symbols matching symspec FROM to those matching symspec TO. - -`-l' -`--line' - The `-l' option enables line-by-line profiling, which causes - histogram hits to be charged to individual source code lines, - instead of functions. If the program was compiled with - basic-block counting enabled, this option will also identify how - many times each line of code was executed. While line-by-line - profiling can help isolate where in a large function a program is - spending its time, it also significantly increases the running - time of `gprof', and magnifies statistical inaccuracies. *Note - Sampling Error::. - -`-m NUM' -`--min-count=NUM' - This option affects execution count output only. Symbols that are - executed less than NUM times are suppressed. - -`-n[SYMSPEC]' -`--time[=SYMSPEC]' - The `-n' option causes `gprof', in its call graph analysis, to - only propagate times for symbols matching SYMSPEC. - -`-N[SYMSPEC]' -`--no-time[=SYMSPEC]' - The `-n' option causes `gprof', in its call graph analysis, not to - propagate times for symbols matching SYMSPEC. - -`-z' -`--display-unused-functions' - If you give the `-z' option, `gprof' will mention all functions in - the flat profile, even those that were never called, and that had - no time spent in them. This is useful in conjunction with the - `-c' option for discovering which routines were never called. - - - -File: gprof.info, Node: Miscellaneous Options, Next: Deprecated Options, Prev: Analysis Options, Up: Invoking - -4.3 Miscellaneous Options -========================= - -`-d[NUM]' -`--debug[=NUM]' - The `-d NUM' option specifies debugging options. If NUM is not - specified, enable all debugging. *Note Debugging::. - -`-h' -`--help' - The `-h' option prints command line usage. - -`-ONAME' -`--file-format=NAME' - Selects the format of the profile data files. Recognized formats - are `auto' (the default), `bsd', `4.4bsd', `magic', and `prof' - (not yet supported). - -`-s' -`--sum' - The `-s' option causes `gprof' to summarize the information in the - profile data files it read in, and write out a profile data file - called `gmon.sum', which contains all the information from the - profile data files that `gprof' read in. The file `gmon.sum' may - be one of the specified input files; the effect of this is to - merge the data in the other input files into `gmon.sum'. - - Eventually you can run `gprof' again without `-s' to analyze the - cumulative data in the file `gmon.sum'. - -`-v' -`--version' - The `-v' flag causes `gprof' to print the current version number, - and then exit. - - - -File: gprof.info, Node: Deprecated Options, Next: Symspecs, Prev: Miscellaneous Options, Up: Invoking - -4.4 Deprecated Options -====================== - - These options have been replaced with newer versions that use - symspecs. - -`-e FUNCTION_NAME' - The `-e FUNCTION' option tells `gprof' to not print information - about the function FUNCTION_NAME (and its children...) in the call - graph. The function will still be listed as a child of any - functions that call it, but its index number will be shown as - `[not printed]'. More than one `-e' option may be given; only one - FUNCTION_NAME may be indicated with each `-e' option. - -`-E FUNCTION_NAME' - The `-E FUNCTION' option works like the `-e' option, but time - spent in the function (and children who were not called from - anywhere else), will not be used to compute the - percentages-of-time for the call graph. More than one `-E' option - may be given; only one FUNCTION_NAME may be indicated with each - `-E' option. - -`-f FUNCTION_NAME' - The `-f FUNCTION' option causes `gprof' to limit the call graph to - the function FUNCTION_NAME and its children (and their - children...). More than one `-f' option may be given; only one - FUNCTION_NAME may be indicated with each `-f' option. - -`-F FUNCTION_NAME' - The `-F FUNCTION' option works like the `-f' option, but only time - spent in the function and its children (and their children...) - will be used to determine total-time and percentages-of-time for - the call graph. More than one `-F' option may be given; only one - FUNCTION_NAME may be indicated with each `-F' option. The `-F' - option overrides the `-E' option. - - - Note that only one function can be specified with each `-e', `-E', -`-f' or `-F' option. To specify more than one function, use multiple -options. For example, this command: - - gprof -e boring -f foo -f bar myprogram > gprof.output - -lists in the call graph all functions that were reached from either -`foo' or `bar' and were not reachable from `boring'. - - -File: gprof.info, Node: Symspecs, Prev: Deprecated Options, Up: Invoking - -4.5 Symspecs -============ - -Many of the output options allow functions to be included or excluded -using "symspecs" (symbol specifications), which observe the following -syntax: - - filename_containing_a_dot - | funcname_not_containing_a_dot - | linenumber - | ( [ any_filename ] `:' ( any_funcname | linenumber ) ) - - Here are some sample symspecs: - -`main.c' - Selects everything in file `main.c'--the dot in the string tells - `gprof' to interpret the string as a filename, rather than as a - function name. To select a file whose name does not contain a - dot, a trailing colon should be specified. For example, `odd:' is - interpreted as the file named `odd'. - -`main' - Selects all functions named `main'. - - Note that there may be multiple instances of the same function name - because some of the definitions may be local (i.e., static). - Unless a function name is unique in a program, you must use the - colon notation explained below to specify a function from a - specific source file. - - Sometimes, function names contain dots. In such cases, it is - necessary to add a leading colon to the name. For example, - `:.mul' selects function `.mul'. - - In some object file formats, symbols have a leading underscore. - `gprof' will normally not print these underscores. When you name a - symbol in a symspec, you should type it exactly as `gprof' prints - it in its output. For example, if the compiler produces a symbol - `_main' from your `main' function, `gprof' still prints it as - `main' in its output, so you should use `main' in symspecs. - -`main.c:main' - Selects function `main' in file `main.c'. - -`main.c:134' - Selects line 134 in file `main.c'. - - -File: gprof.info, Node: Output, Next: Inaccuracy, Prev: Invoking, Up: Top - -5 Interpreting `gprof''s Output -******************************* - -`gprof' can produce several different output styles, the most important -of which are described below. The simplest output styles (file -information, execution count, and function and file ordering) are not -described here, but are documented with the respective options that -trigger them. *Note Output Options::. - -* Menu: - -* Flat Profile:: The flat profile shows how much time was spent - executing directly in each function. -* Call Graph:: The call graph shows which functions called which - others, and how much time each function used - when its subroutine calls are included. -* Line-by-line:: `gprof' can analyze individual source code lines -* Annotated Source:: The annotated source listing displays source code - labeled with execution counts - - -File: gprof.info, Node: Flat Profile, Next: Call Graph, Up: Output - -5.1 The Flat Profile -==================== - -The "flat profile" shows the total amount of time your program spent -executing each function. Unless the `-z' option is given, functions -with no apparent time spent in them, and no apparent calls to them, are -not mentioned. Note that if a function was not compiled for profiling, -and didn't run long enough to show up on the program counter histogram, -it will be indistinguishable from a function that was never called. - - This is part of a flat profile for a small program: - - Flat profile: - - Each sample counts as 0.01 seconds. - % cumulative self self total - time seconds seconds calls ms/call ms/call name - 33.34 0.02 0.02 7208 0.00 0.00 open - 16.67 0.03 0.01 244 0.04 0.12 offtime - 16.67 0.04 0.01 8 1.25 1.25 memccpy - 16.67 0.05 0.01 7 1.43 1.43 write - 16.67 0.06 0.01 mcount - 0.00 0.06 0.00 236 0.00 0.00 tzset - 0.00 0.06 0.00 192 0.00 0.00 tolower - 0.00 0.06 0.00 47 0.00 0.00 strlen - 0.00 0.06 0.00 45 0.00 0.00 strchr - 0.00 0.06 0.00 1 0.00 50.00 main - 0.00 0.06 0.00 1 0.00 0.00 memcpy - 0.00 0.06 0.00 1 0.00 10.11 print - 0.00 0.06 0.00 1 0.00 0.00 profil - 0.00 0.06 0.00 1 0.00 50.00 report - ... - -The functions are sorted by first by decreasing run-time spent in them, -then by decreasing number of calls, then alphabetically by name. The -functions `mcount' and `profil' are part of the profiling apparatus and -appear in every flat profile; their time gives a measure of the amount -of overhead due to profiling. - - Just before the column headers, a statement appears indicating how -much time each sample counted as. This "sampling period" estimates the -margin of error in each of the time figures. A time figure that is not -much larger than this is not reliable. In this example, each sample -counted as 0.01 seconds, suggesting a 100 Hz sampling rate. The -program's total execution time was 0.06 seconds, as indicated by the -`cumulative seconds' field. Since each sample counted for 0.01 -seconds, this means only six samples were taken during the run. Two of -the samples occurred while the program was in the `open' function, as -indicated by the `self seconds' field. Each of the other four samples -occurred one each in `offtime', `memccpy', `write', and `mcount'. -Since only six samples were taken, none of these values can be regarded -as particularly reliable. In another run, the `self seconds' field for -`mcount' might well be `0.00' or `0.02'. *Note Sampling Error::, for a -complete discussion. - - The remaining functions in the listing (those whose `self seconds' -field is `0.00') didn't appear in the histogram samples at all. -However, the call graph indicated that they were called, so therefore -they are listed, sorted in decreasing order by the `calls' field. -Clearly some time was spent executing these functions, but the paucity -of histogram samples prevents any determination of how much time each -took. - - Here is what the fields in each line mean: - -`% time' - This is the percentage of the total execution time your program - spent in this function. These should all add up to 100%. - -`cumulative seconds' - This is the cumulative total number of seconds the computer spent - executing this functions, plus the time spent in all the functions - above this one in this table. - -`self seconds' - This is the number of seconds accounted for by this function alone. - The flat profile listing is sorted first by this number. - -`calls' - This is the total number of times the function was called. If the - function was never called, or the number of times it was called - cannot be determined (probably because the function was not - compiled with profiling enabled), the "calls" field is blank. - -`self ms/call' - This represents the average number of milliseconds spent in this - function per call, if this function is profiled. Otherwise, this - field is blank for this function. - -`total ms/call' - This represents the average number of milliseconds spent in this - function and its descendants per call, if this function is - profiled. Otherwise, this field is blank for this function. This - is the only field in the flat profile that uses call graph - analysis. - -`name' - This is the name of the function. The flat profile is sorted by - this field alphabetically after the "self seconds" and "calls" - fields are sorted. - - -File: gprof.info, Node: Call Graph, Next: Line-by-line, Prev: Flat Profile, Up: Output - -5.2 The Call Graph -================== - -The "call graph" shows how much time was spent in each function and its -children. From this information, you can find functions that, while -they themselves may not have used much time, called other functions -that did use unusual amounts of time. - - Here is a sample call from a small program. This call came from the -same `gprof' run as the flat profile example in the previous chapter. - - granularity: each sample hit covers 2 byte(s) for 20.00% of 0.05 seconds - - index % time self children called name - - [1] 100.0 0.00 0.05 start [1] - 0.00 0.05 1/1 main [2] - 0.00 0.00 1/2 on_exit [28] - 0.00 0.00 1/1 exit [59] - ----------------------------------------------- - 0.00 0.05 1/1 start [1] - [2] 100.0 0.00 0.05 1 main [2] - 0.00 0.05 1/1 report [3] - ----------------------------------------------- - 0.00 0.05 1/1 main [2] - [3] 100.0 0.00 0.05 1 report [3] - 0.00 0.03 8/8 timelocal [6] - 0.00 0.01 1/1 print [9] - 0.00 0.01 9/9 fgets [12] - 0.00 0.00 12/34 strncmp [40] - 0.00 0.00 8/8 lookup [20] - 0.00 0.00 1/1 fopen [21] - 0.00 0.00 8/8 chewtime [24] - 0.00 0.00 8/16 skipspace [44] - ----------------------------------------------- - [4] 59.8 0.01 0.02 8+472 [4] - 0.01 0.02 244+260 offtime [7] - 0.00 0.00 236+1 tzset [26] - ----------------------------------------------- - - The lines full of dashes divide this table into "entries", one for -each function. Each entry has one or more lines. - - In each entry, the primary line is the one that starts with an index -number in square brackets. The end of this line says which function -the entry is for. The preceding lines in the entry describe the -callers of this function and the following lines describe its -subroutines (also called "children" when we speak of the call graph). - - The entries are sorted by time spent in the function and its -subroutines. - - The internal profiling function `mcount' (*note Flat Profile::) is -never mentioned in the call graph. - -* Menu: - -* Primary:: Details of the primary line's contents. -* Callers:: Details of caller-lines' contents. -* Subroutines:: Details of subroutine-lines' contents. -* Cycles:: When there are cycles of recursion, - such as `a' calls `b' calls `a'... - - -File: gprof.info, Node: Primary, Next: Callers, Up: Call Graph - -5.2.1 The Primary Line ----------------------- - -The "primary line" in a call graph entry is the line that describes the -function which the entry is about and gives the overall statistics for -this function. - - For reference, we repeat the primary line from the entry for function -`report' in our main example, together with the heading line that shows -the names of the fields: - - index % time self children called name - ... - [3] 100.0 0.00 0.05 1 report [3] - - Here is what the fields in the primary line mean: - -`index' - Entries are numbered with consecutive integers. Each function - therefore has an index number, which appears at the beginning of - its primary line. - - Each cross-reference to a function, as a caller or subroutine of - another, gives its index number as well as its name. The index - number guides you if you wish to look for the entry for that - function. - -`% time' - This is the percentage of the total time that was spent in this - function, including time spent in subroutines called from this - function. - - The time spent in this function is counted again for the callers of - this function. Therefore, adding up these percentages is - meaningless. - -`self' - This is the total amount of time spent in this function. This - should be identical to the number printed in the `seconds' field - for this function in the flat profile. - -`children' - This is the total amount of time spent in the subroutine calls - made by this function. This should be equal to the sum of all the - `self' and `children' entries of the children listed directly - below this function. - -`called' - This is the number of times the function was called. - - If the function called itself recursively, there are two numbers, - separated by a `+'. The first number counts non-recursive calls, - and the second counts recursive calls. - - In the example above, the function `report' was called once from - `main'. - -`name' - This is the name of the current function. The index number is - repeated after it. - - If the function is part of a cycle of recursion, the cycle number - is printed between the function's name and the index number (*note - Cycles::). For example, if function `gnurr' is part of cycle - number one, and has index number twelve, its primary line would be - end like this: - - gnurr [12] - - -File: gprof.info, Node: Callers, Next: Subroutines, Prev: Primary, Up: Call Graph - -5.2.2 Lines for a Function's Callers ------------------------------------- - -A function's entry has a line for each function it was called by. -These lines' fields correspond to the fields of the primary line, but -their meanings are different because of the difference in context. - - For reference, we repeat two lines from the entry for the function -`report', the primary line and one caller-line preceding it, together -with the heading line that shows the names of the fields: - - index % time self children called name - ... - 0.00 0.05 1/1 main [2] - [3] 100.0 0.00 0.05 1 report [3] - - Here are the meanings of the fields in the caller-line for `report' -called from `main': - -`self' - An estimate of the amount of time spent in `report' itself when it - was called from `main'. - -`children' - An estimate of the amount of time spent in subroutines of `report' - when `report' was called from `main'. - - The sum of the `self' and `children' fields is an estimate of the - amount of time spent within calls to `report' from `main'. - -`called' - Two numbers: the number of times `report' was called from `main', - followed by the total number of non-recursive calls to `report' - from all its callers. - -`name and index number' - The name of the caller of `report' to which this line applies, - followed by the caller's index number. - - Not all functions have entries in the call graph; some options to - `gprof' request the omission of certain functions. When a caller - has no entry of its own, it still has caller-lines in the entries - of the functions it calls. - - If the caller is part of a recursion cycle, the cycle number is - printed between the name and the index number. - - If the identity of the callers of a function cannot be determined, a -dummy caller-line is printed which has `' as the "caller's -name" and all other fields blank. This can happen for signal handlers. - - -File: gprof.info, Node: Subroutines, Next: Cycles, Prev: Callers, Up: Call Graph - -5.2.3 Lines for a Function's Subroutines ----------------------------------------- - -A function's entry has a line for each of its subroutines--in other -words, a line for each other function that it called. These lines' -fields correspond to the fields of the primary line, but their meanings -are different because of the difference in context. - - For reference, we repeat two lines from the entry for the function -`main', the primary line and a line for a subroutine, together with the -heading line that shows the names of the fields: - - index % time self children called name - ... - [2] 100.0 0.00 0.05 1 main [2] - 0.00 0.05 1/1 report [3] - - Here are the meanings of the fields in the subroutine-line for `main' -calling `report': - -`self' - An estimate of the amount of time spent directly within `report' - when `report' was called from `main'. - -`children' - An estimate of the amount of time spent in subroutines of `report' - when `report' was called from `main'. - - The sum of the `self' and `children' fields is an estimate of the - total time spent in calls to `report' from `main'. - -`called' - Two numbers, the number of calls to `report' from `main' followed - by the total number of non-recursive calls to `report'. This - ratio is used to determine how much of `report''s `self' and - `children' time gets credited to `main'. *Note Assumptions::. - -`name' - The name of the subroutine of `main' to which this line applies, - followed by the subroutine's index number. - - If the caller is part of a recursion cycle, the cycle number is - printed between the name and the index number. - - -File: gprof.info, Node: Cycles, Prev: Subroutines, Up: Call Graph - -5.2.4 How Mutually Recursive Functions Are Described ----------------------------------------------------- - -The graph may be complicated by the presence of "cycles of recursion" -in the call graph. A cycle exists if a function calls another function -that (directly or indirectly) calls (or appears to call) the original -function. For example: if `a' calls `b', and `b' calls `a', then `a' -and `b' form a cycle. - - Whenever there are call paths both ways between a pair of functions, -they belong to the same cycle. If `a' and `b' call each other and `b' -and `c' call each other, all three make one cycle. Note that even if -`b' only calls `a' if it was not called from `a', `gprof' cannot -determine this, so `a' and `b' are still considered a cycle. - - The cycles are numbered with consecutive integers. When a function -belongs to a cycle, each time the function name appears in the call -graph it is followed by `'. - - The reason cycles matter is that they make the time values in the -call graph paradoxical. The "time spent in children" of `a' should -include the time spent in its subroutine `b' and in `b''s -subroutines--but one of `b''s subroutines is `a'! How much of `a''s -time should be included in the children of `a', when `a' is indirectly -recursive? - - The way `gprof' resolves this paradox is by creating a single entry -for the cycle as a whole. The primary line of this entry describes the -total time spent directly in the functions of the cycle. The -"subroutines" of the cycle are the individual functions of the cycle, -and all other functions that were called directly by them. The -"callers" of the cycle are the functions, outside the cycle, that -called functions in the cycle. - - Here is an example portion of a call graph which shows a cycle -containing functions `a' and `b'. The cycle was entered by a call to -`a' from `main'; both `a' and `b' called `c'. - - index % time self children called name - ---------------------------------------- - 1.77 0 1/1 main [2] - [3] 91.71 1.77 0 1+5 [3] - 1.02 0 3 b [4] - 0.75 0 2 a [5] - ---------------------------------------- - 3 a [5] - [4] 52.85 1.02 0 0 b [4] - 2 a [5] - 0 0 3/6 c [6] - ---------------------------------------- - 1.77 0 1/1 main [2] - 2 b [4] - [5] 38.86 0.75 0 1 a [5] - 3 b [4] - 0 0 3/6 c [6] - ---------------------------------------- - -(The entire call graph for this program contains in addition an entry -for `main', which calls `a', and an entry for `c', with callers `a' and -`b'.) - - index % time self children called name - - [1] 100.00 0 1.93 0 start [1] - 0.16 1.77 1/1 main [2] - ---------------------------------------- - 0.16 1.77 1/1 start [1] - [2] 100.00 0.16 1.77 1 main [2] - 1.77 0 1/1 a [5] - ---------------------------------------- - 1.77 0 1/1 main [2] - [3] 91.71 1.77 0 1+5 [3] - 1.02 0 3 b [4] - 0.75 0 2 a [5] - 0 0 6/6 c [6] - ---------------------------------------- - 3 a [5] - [4] 52.85 1.02 0 0 b [4] - 2 a [5] - 0 0 3/6 c [6] - ---------------------------------------- - 1.77 0 1/1 main [2] - 2 b [4] - [5] 38.86 0.75 0 1 a [5] - 3 b [4] - 0 0 3/6 c [6] - ---------------------------------------- - 0 0 3/6 b [4] - 0 0 3/6 a [5] - [6] 0.00 0 0 6 c [6] - ---------------------------------------- - - The `self' field of the cycle's primary line is the total time spent -in all the functions of the cycle. It equals the sum of the `self' -fields for the individual functions in the cycle, found in the entry in -the subroutine lines for these functions. - - The `children' fields of the cycle's primary line and subroutine -lines count only subroutines outside the cycle. Even though `a' calls -`b', the time spent in those calls to `b' is not counted in `a''s -`children' time. Thus, we do not encounter the problem of what to do -when the time in those calls to `b' includes indirect recursive calls -back to `a'. - - The `children' field of a caller-line in the cycle's entry estimates -the amount of time spent _in the whole cycle_, and its other -subroutines, on the times when that caller called a function in the -cycle. - - The `calls' field in the primary line for the cycle has two numbers: -first, the number of times functions in the cycle were called by -functions outside the cycle; second, the number of times they were -called by functions in the cycle (including times when a function in -the cycle calls itself). This is a generalization of the usual split -into non-recursive and recursive calls. - - The `calls' field of a subroutine-line for a cycle member in the -cycle's entry says how many time that function was called from -functions in the cycle. The total of all these is the second number in -the primary line's `calls' field. - - In the individual entry for a function in a cycle, the other -functions in the same cycle can appear as subroutines and as callers. -These lines show how many times each function in the cycle called or -was called from each other function in the cycle. The `self' and -`children' fields in these lines are blank because of the difficulty of -defining meanings for them when recursion is going on. - - -File: gprof.info, Node: Line-by-line, Next: Annotated Source, Prev: Call Graph, Up: Output - -5.3 Line-by-line Profiling -========================== - -`gprof''s `-l' option causes the program to perform "line-by-line" -profiling. In this mode, histogram samples are assigned not to -functions, but to individual lines of source code. The program usually -must be compiled with a `-g' option, in addition to `-pg', in order to -generate debugging symbols for tracking source code lines. - - The flat profile is the most useful output table in line-by-line -mode. The call graph isn't as useful as normal, since the current -version of `gprof' does not propagate call graph arcs from source code -lines to the enclosing function. The call graph does, however, show -each line of code that called each function, along with a count. - - Here is a section of `gprof''s output, without line-by-line -profiling. Note that `ct_init' accounted for four histogram hits, and -13327 calls to `init_block'. - - Flat profile: - - Each sample counts as 0.01 seconds. - % cumulative self self total - time seconds seconds calls us/call us/call name - 30.77 0.13 0.04 6335 6.31 6.31 ct_init - - - Call graph (explanation follows) - - - granularity: each sample hit covers 4 byte(s) for 7.69% of 0.13 seconds - - index % time self children called name - - 0.00 0.00 1/13496 name_too_long - 0.00 0.00 40/13496 deflate - 0.00 0.00 128/13496 deflate_fast - 0.00 0.00 13327/13496 ct_init - [7] 0.0 0.00 0.00 13496 init_block - - Now let's look at some of `gprof''s output from the same program run, -this time with line-by-line profiling enabled. Note that `ct_init''s -four histogram hits are broken down into four lines of source code - -one hit occurred on each of lines 349, 351, 382 and 385. In the call -graph, note how `ct_init''s 13327 calls to `init_block' are broken down -into one call from line 396, 3071 calls from line 384, 3730 calls from -line 385, and 6525 calls from 387. - - Flat profile: - - Each sample counts as 0.01 seconds. - % cumulative self - time seconds seconds calls name - 7.69 0.10 0.01 ct_init (trees.c:349) - 7.69 0.11 0.01 ct_init (trees.c:351) - 7.69 0.12 0.01 ct_init (trees.c:382) - 7.69 0.13 0.01 ct_init (trees.c:385) - - - Call graph (explanation follows) - - - granularity: each sample hit covers 4 byte(s) for 7.69% of 0.13 seconds - - % time self children called name - - 0.00 0.00 1/13496 name_too_long (gzip.c:1440) - 0.00 0.00 1/13496 deflate (deflate.c:763) - 0.00 0.00 1/13496 ct_init (trees.c:396) - 0.00 0.00 2/13496 deflate (deflate.c:727) - 0.00 0.00 4/13496 deflate (deflate.c:686) - 0.00 0.00 5/13496 deflate (deflate.c:675) - 0.00 0.00 12/13496 deflate (deflate.c:679) - 0.00 0.00 16/13496 deflate (deflate.c:730) - 0.00 0.00 128/13496 deflate_fast (deflate.c:654) - 0.00 0.00 3071/13496 ct_init (trees.c:384) - 0.00 0.00 3730/13496 ct_init (trees.c:385) - 0.00 0.00 6525/13496 ct_init (trees.c:387) - [6] 0.0 0.00 0.00 13496 init_block (trees.c:408) - - -File: gprof.info, Node: Annotated Source, Prev: Line-by-line, Up: Output - -5.4 The Annotated Source Listing -================================ - -`gprof''s `-A' option triggers an annotated source listing, which lists -the program's source code, each function labeled with the number of -times it was called. You may also need to specify the `-I' option, if -`gprof' can't find the source code files. - - Compiling with `gcc ... -g -pg -a' augments your program with -basic-block counting code, in addition to function counting code. This -enables `gprof' to determine how many times each line of code was -executed. For example, consider the following function, taken from -gzip, with line numbers added: - - 1 ulg updcrc(s, n) - 2 uch *s; - 3 unsigned n; - 4 { - 5 register ulg c; - 6 - 7 static ulg crc = (ulg)0xffffffffL; - 8 - 9 if (s == NULL) { - 10 c = 0xffffffffL; - 11 } else { - 12 c = crc; - 13 if (n) do { - 14 c = crc_32_tab[...]; - 15 } while (--n); - 16 } - 17 crc = c; - 18 return c ^ 0xffffffffL; - 19 } - - `updcrc' has at least five basic-blocks. One is the function -itself. The `if' statement on line 9 generates two more basic-blocks, -one for each branch of the `if'. A fourth basic-block results from the -`if' on line 13, and the contents of the `do' loop form the fifth -basic-block. The compiler may also generate additional basic-blocks to -handle various special cases. - - A program augmented for basic-block counting can be analyzed with -`gprof -l -A'. I also suggest use of the `-x' option, which ensures -that each line of code is labeled at least once. Here is `updcrc''s -annotated source listing for a sample `gzip' run: - - ulg updcrc(s, n) - uch *s; - unsigned n; - 2 ->{ - register ulg c; - - static ulg crc = (ulg)0xffffffffL; - - 2 -> if (s == NULL) { - 1 -> c = 0xffffffffL; - 1 -> } else { - 1 -> c = crc; - 1 -> if (n) do { - 26312 -> c = crc_32_tab[...]; - 26312,1,26311 -> } while (--n); - } - 2 -> crc = c; - 2 -> return c ^ 0xffffffffL; - 2 ->} - - In this example, the function was called twice, passing once through -each branch of the `if' statement. The body of the `do' loop was -executed a total of 26312 times. Note how the `while' statement is -annotated. It began execution 26312 times, once for each iteration -through the loop. One of those times (the last time) it exited, while -it branched back to the beginning of the loop 26311 times. - - -File: gprof.info, Node: Inaccuracy, Next: How do I?, Prev: Output, Up: Top - -6 Inaccuracy of `gprof' Output -****************************** - -* Menu: - -* Sampling Error:: Statistical margins of error -* Assumptions:: Estimating children times - - -File: gprof.info, Node: Sampling Error, Next: Assumptions, Up: Inaccuracy - -6.1 Statistical Sampling Error -============================== - -The run-time figures that `gprof' gives you are based on a sampling -process, so they are subject to statistical inaccuracy. If a function -runs only a small amount of time, so that on the average the sampling -process ought to catch that function in the act only once, there is a -pretty good chance it will actually find that function zero times, or -twice. - - By contrast, the number-of-calls and basic-block figures are derived -by counting, not sampling. They are completely accurate and will not -vary from run to run if your program is deterministic. - - The "sampling period" that is printed at the beginning of the flat -profile says how often samples are taken. The rule of thumb is that a -run-time figure is accurate if it is considerably bigger than the -sampling period. - - The actual amount of error can be predicted. For N samples, the -_expected_ error is the square-root of N. For example, if the sampling -period is 0.01 seconds and `foo''s run-time is 1 second, N is 100 -samples (1 second/0.01 seconds), sqrt(N) is 10 samples, so the expected -error in `foo''s run-time is 0.1 seconds (10*0.01 seconds), or ten -percent of the observed value. Again, if the sampling period is 0.01 -seconds and `bar''s run-time is 100 seconds, N is 10000 samples, -sqrt(N) is 100 samples, so the expected error in `bar''s run-time is 1 -second, or one percent of the observed value. It is likely to vary -this much _on the average_ from one profiling run to the next. -(_Sometimes_ it will vary more.) - - This does not mean that a small run-time figure is devoid of -information. If the program's _total_ run-time is large, a small -run-time for one function does tell you that that function used an -insignificant fraction of the whole program's time. Usually this means -it is not worth optimizing. - - One way to get more accuracy is to give your program more (but -similar) input data so it will take longer. Another way is to combine -the data from several runs, using the `-s' option of `gprof'. Here is -how: - - 1. Run your program once. - - 2. Issue the command `mv gmon.out gmon.sum'. - - 3. Run your program again, the same as before. - - 4. Merge the new data in `gmon.out' into `gmon.sum' with this command: - - gprof -s EXECUTABLE-FILE gmon.out gmon.sum - - 5. Repeat the last two steps as often as you wish. - - 6. Analyze the cumulative data using this command: - - gprof EXECUTABLE-FILE gmon.sum > OUTPUT-FILE - - -File: gprof.info, Node: Assumptions, Prev: Sampling Error, Up: Inaccuracy - -6.2 Estimating `children' Times -=============================== - -Some of the figures in the call graph are estimates--for example, the -`children' time values and all the time figures in caller and -subroutine lines. - - There is no direct information about these measurements in the -profile data itself. Instead, `gprof' estimates them by making an -assumption about your program that might or might not be true. - - The assumption made is that the average time spent in each call to -any function `foo' is not correlated with who called `foo'. If `foo' -used 5 seconds in all, and 2/5 of the calls to `foo' came from `a', -then `foo' contributes 2 seconds to `a''s `children' time, by -assumption. - - This assumption is usually true enough, but for some programs it is -far from true. Suppose that `foo' returns very quickly when its -argument is zero; suppose that `a' always passes zero as an argument, -while other callers of `foo' pass other arguments. In this program, -all the time spent in `foo' is in the calls from callers other than `a'. -But `gprof' has no way of knowing this; it will blindly and incorrectly -charge 2 seconds of time in `foo' to the children of `a'. - - We hope some day to put more complete data into `gmon.out', so that -this assumption is no longer needed, if we can figure out how. For the -nonce, the estimated figures are usually more useful than misleading. - - -File: gprof.info, Node: How do I?, Next: Incompatibilities, Prev: Inaccuracy, Up: Top - -7 Answers to Common Questions -***************************** - -How can I get more exact information about hot spots in my program? - Looking at the per-line call counts only tells part of the story. - Because `gprof' can only report call times and counts by function, - the best way to get finer-grained information on where the program - is spending its time is to re-factor large functions into sequences - of calls to smaller ones. Beware however that this can introduce - artifical hot spots since compiling with `-pg' adds a significant - overhead to function calls. An alternative solution is to use a - non-intrusive profiler, e.g. oprofile. - -How do I find which lines in my program were executed the most times? - Compile your program with basic-block counting enabled, run it, - then use the following pipeline: - - gprof -l -C OBJFILE | sort -k 3 -n -r - - This listing will show you the lines in your code executed most - often, but not necessarily those that consumed the most time. - -How do I find which lines in my program called a particular function? - Use `gprof -l' and lookup the function in the call graph. The - callers will be broken down by function and line number. - -How do I analyze a program that runs for less than a second? - Try using a shell script like this one: - - for i in `seq 1 100`; do - fastprog - mv gmon.out gmon.out.$i - done - - gprof -s fastprog gmon.out.* - - gprof fastprog gmon.sum - - If your program is completely deterministic, all the call counts - will be simple multiples of 100 (i.e. a function called once in - each run will appear with a call count of 100). - - - -File: gprof.info, Node: Incompatibilities, Next: Details, Prev: How do I?, Up: Top - -8 Incompatibilities with Unix `gprof' -************************************* - -GNU `gprof' and Berkeley Unix `gprof' use the same data file -`gmon.out', and provide essentially the same information. But there -are a few differences. - - * GNU `gprof' uses a new, generalized file format with support for - basic-block execution counts and non-realtime histograms. A magic - cookie and version number allows `gprof' to easily identify new - style files. Old BSD-style files can still be read. *Note File - Format::. - - * For a recursive function, Unix `gprof' lists the function as a - parent and as a child, with a `calls' field that lists the number - of recursive calls. GNU `gprof' omits these lines and puts the - number of recursive calls in the primary line. - - * When a function is suppressed from the call graph with `-e', GNU - `gprof' still lists it as a subroutine of functions that call it. - - * GNU `gprof' accepts the `-k' with its argument in the form - `from/to', instead of `from to'. - - * In the annotated source listing, if there are multiple basic - blocks on the same line, GNU `gprof' prints all of their counts, - separated by commas. - - * The blurbs, field widths, and output formats are different. GNU - `gprof' prints blurbs after the tables, so that you can see the - tables without skipping the blurbs. - - -File: gprof.info, Node: Details, Next: GNU Free Documentation License, Prev: Incompatibilities, Up: Top - -9 Details of Profiling -********************** - -* Menu: - -* Implementation:: How a program collects profiling information -* File Format:: Format of `gmon.out' files -* Internals:: `gprof''s internal operation -* Debugging:: Using `gprof''s `-d' option - - -File: gprof.info, Node: Implementation, Next: File Format, Up: Details - -9.1 Implementation of Profiling -=============================== - -Profiling works by changing how every function in your program is -compiled so that when it is called, it will stash away some information -about where it was called from. From this, the profiler can figure out -what function called it, and can count how many times it was called. -This change is made by the compiler when your program is compiled with -the `-pg' option, which causes every function to call `mcount' (or -`_mcount', or `__mcount', depending on the OS and compiler) as one of -its first operations. - - The `mcount' routine, included in the profiling library, is -responsible for recording in an in-memory call graph table both its -parent routine (the child) and its parent's parent. This is typically -done by examining the stack frame to find both the address of the -child, and the return address in the original parent. Since this is a -very machine-dependent operation, `mcount' itself is typically a short -assembly-language stub routine that extracts the required information, -and then calls `__mcount_internal' (a normal C function) with two -arguments - `frompc' and `selfpc'. `__mcount_internal' is responsible -for maintaining the in-memory call graph, which records `frompc', -`selfpc', and the number of times each of these call arcs was traversed. - - GCC Version 2 provides a magical function -(`__builtin_return_address'), which allows a generic `mcount' function -to extract the required information from the stack frame. However, on -some architectures, most notably the SPARC, using this builtin can be -very computationally expensive, and an assembly language version of -`mcount' is used for performance reasons. - - Number-of-calls information for library routines is collected by -using a special version of the C library. The programs in it are the -same as in the usual C library, but they were compiled with `-pg'. If -you link your program with `gcc ... -pg', it automatically uses the -profiling version of the library. - - Profiling also involves watching your program as it runs, and -keeping a histogram of where the program counter happens to be every -now and then. Typically the program counter is looked at around 100 -times per second of run time, but the exact frequency may vary from -system to system. - - This is done is one of two ways. Most UNIX-like operating systems -provide a `profil()' system call, which registers a memory array with -the kernel, along with a scale factor that determines how the program's -address space maps into the array. Typical scaling values cause every -2 to 8 bytes of address space to map into a single array slot. On -every tick of the system clock (assuming the profiled program is -running), the value of the program counter is examined and the -corresponding slot in the memory array is incremented. Since this is -done in the kernel, which had to interrupt the process anyway to handle -the clock interrupt, very little additional system overhead is required. - - However, some operating systems, most notably Linux 2.0 (and -earlier), do not provide a `profil()' system call. On such a system, -arrangements are made for the kernel to periodically deliver a signal -to the process (typically via `setitimer()'), which then performs the -same operation of examining the program counter and incrementing a slot -in the memory array. Since this method requires a signal to be -delivered to user space every time a sample is taken, it uses -considerably more overhead than kernel-based profiling. Also, due to -the added delay required to deliver the signal, this method is less -accurate as well. - - A special startup routine allocates memory for the histogram and -either calls `profil()' or sets up a clock signal handler. This -routine (`monstartup') can be invoked in several ways. On Linux -systems, a special profiling startup file `gcrt0.o', which invokes -`monstartup' before `main', is used instead of the default `crt0.o'. -Use of this special startup file is one of the effects of using `gcc -... -pg' to link. On SPARC systems, no special startup files are used. -Rather, the `mcount' routine, when it is invoked for the first time -(typically when `main' is called), calls `monstartup'. - - If the compiler's `-a' option was used, basic-block counting is also -enabled. Each object file is then compiled with a static array of -counts, initially zero. In the executable code, every time a new -basic-block begins (i.e. when an `if' statement appears), an extra -instruction is inserted to increment the corresponding count in the -array. At compile time, a paired array was constructed that recorded -the starting address of each basic-block. Taken together, the two -arrays record the starting address of every basic-block, along with the -number of times it was executed. - - The profiling library also includes a function (`mcleanup') which is -typically registered using `atexit()' to be called as the program -exits, and is responsible for writing the file `gmon.out'. Profiling -is turned off, various headers are output, and the histogram is -written, followed by the call-graph arcs and the basic-block counts. - - The output from `gprof' gives no indication of parts of your program -that are limited by I/O or swapping bandwidth. This is because samples -of the program counter are taken at fixed intervals of the program's -run time. Therefore, the time measurements in `gprof' output say -nothing about time that your program was not running. For example, a -part of the program that creates so much data that it cannot all fit in -physical memory at once may run very slowly due to thrashing, but -`gprof' will say it uses little time. On the other hand, sampling by -run time has the advantage that the amount of load due to other users -won't directly affect the output you get. - - -File: gprof.info, Node: File Format, Next: Internals, Prev: Implementation, Up: Details - -9.2 Profiling Data File Format -============================== - -The old BSD-derived file format used for profile data does not contain a -magic cookie that allows to check whether a data file really is a -`gprof' file. Furthermore, it does not provide a version number, thus -rendering changes to the file format almost impossible. GNU `gprof' -uses a new file format that provides these features. For backward -compatibility, GNU `gprof' continues to support the old BSD-derived -format, but not all features are supported with it. For example, -basic-block execution counts cannot be accommodated by the old file -format. - - The new file format is defined in header file `gmon_out.h'. It -consists of a header containing the magic cookie and a version number, -as well as some spare bytes available for future extensions. All data -in a profile data file is in the native format of the target for which -the profile was collected. GNU `gprof' adapts automatically to the -byte-order in use. - - In the new file format, the header is followed by a sequence of -records. Currently, there are three different record types: histogram -records, call-graph arc records, and basic-block execution count -records. Each file can contain any number of each record type. When -reading a file, GNU `gprof' will ensure records of the same type are -compatible with each other and compute the union of all records. For -example, for basic-block execution counts, the union is simply the sum -of all execution counts for each basic-block. - -9.2.1 Histogram Records ------------------------ - -Histogram records consist of a header that is followed by an array of -bins. The header contains the text-segment range that the histogram -spans, the size of the histogram in bytes (unlike in the old BSD -format, this does not include the size of the header), the rate of the -profiling clock, and the physical dimension that the bin counts -represent after being scaled by the profiling clock rate. The physical -dimension is specified in two parts: a long name of up to 15 characters -and a single character abbreviation. For example, a histogram -representing real-time would specify the long name as "seconds" and the -abbreviation as "s". This feature is useful for architectures that -support performance monitor hardware (which, fortunately, is becoming -increasingly common). For example, under DEC OSF/1, the "uprofile" -command can be used to produce a histogram of, say, instruction cache -misses. In this case, the dimension in the histogram header could be -set to "i-cache misses" and the abbreviation could be set to "1" -(because it is simply a count, not a physical dimension). Also, the -profiling rate would have to be set to 1 in this case. - - Histogram bins are 16-bit numbers and each bin represent an equal -amount of text-space. For example, if the text-segment is one thousand -bytes long and if there are ten bins in the histogram, each bin -represents one hundred bytes. - -9.2.2 Call-Graph Records ------------------------- - -Call-graph records have a format that is identical to the one used in -the BSD-derived file format. It consists of an arc in the call graph -and a count indicating the number of times the arc was traversed during -program execution. Arcs are specified by a pair of addresses: the -first must be within caller's function and the second must be within -the callee's function. When performing profiling at the function -level, these addresses can point anywhere within the respective -function. However, when profiling at the line-level, it is better if -the addresses are as close to the call-site/entry-point as possible. -This will ensure that the line-level call-graph is able to identify -exactly which line of source code performed calls to a function. - -9.2.3 Basic-Block Execution Count Records ------------------------------------------ - -Basic-block execution count records consist of a header followed by a -sequence of address/count pairs. The header simply specifies the -length of the sequence. In an address/count pair, the address -identifies a basic-block and the count specifies the number of times -that basic-block was executed. Any address within the basic-address can -be used. - - -File: gprof.info, Node: Internals, Next: Debugging, Prev: File Format, Up: Details - -9.3 `gprof''s Internal Operation -================================ - -Like most programs, `gprof' begins by processing its options. During -this stage, it may building its symspec list (`sym_ids.c:sym_id_add'), -if options are specified which use symspecs. `gprof' maintains a -single linked list of symspecs, which will eventually get turned into -12 symbol tables, organized into six include/exclude pairs - one pair -each for the flat profile (INCL_FLAT/EXCL_FLAT), the call graph arcs -(INCL_ARCS/EXCL_ARCS), printing in the call graph -(INCL_GRAPH/EXCL_GRAPH), timing propagation in the call graph -(INCL_TIME/EXCL_TIME), the annotated source listing -(INCL_ANNO/EXCL_ANNO), and the execution count listing -(INCL_EXEC/EXCL_EXEC). - - After option processing, `gprof' finishes building the symspec list -by adding all the symspecs in `default_excluded_list' to the exclude -lists EXCL_TIME and EXCL_GRAPH, and if line-by-line profiling is -specified, EXCL_FLAT as well. These default excludes are not added to -EXCL_ANNO, EXCL_ARCS, and EXCL_EXEC. - - Next, the BFD library is called to open the object file, verify that -it is an object file, and read its symbol table (`core.c:core_init'), -using `bfd_canonicalize_symtab' after mallocing an appropriately sized -array of symbols. At this point, function mappings are read (if the -`--file-ordering' option has been specified), and the core text space -is read into memory (if the `-c' option was given). - - `gprof''s own symbol table, an array of Sym structures, is now built. -This is done in one of two ways, by one of two routines, depending on -whether line-by-line profiling (`-l' option) has been enabled. For -normal profiling, the BFD canonical symbol table is scanned. For -line-by-line profiling, every text space address is examined, and a new -symbol table entry gets created every time the line number changes. In -either case, two passes are made through the symbol table - one to -count the size of the symbol table required, and the other to actually -read the symbols. In between the two passes, a single array of type -`Sym' is created of the appropriate length. Finally, -`symtab.c:symtab_finalize' is called to sort the symbol table and -remove duplicate entries (entries with the same memory address). - - The symbol table must be a contiguous array for two reasons. First, -the `qsort' library function (which sorts an array) will be used to -sort the symbol table. Also, the symbol lookup routine -(`symtab.c:sym_lookup'), which finds symbols based on memory address, -uses a binary search algorithm which requires the symbol table to be a -sorted array. Function symbols are indicated with an `is_func' flag. -Line number symbols have no special flags set. Additionally, a symbol -can have an `is_static' flag to indicate that it is a local symbol. - - With the symbol table read, the symspecs can now be translated into -Syms (`sym_ids.c:sym_id_parse'). Remember that a single symspec can -match multiple symbols. An array of symbol tables (`syms') is created, -each entry of which is a symbol table of Syms to be included or -excluded from a particular listing. The master symbol table and the -symspecs are examined by nested loops, and every symbol that matches a -symspec is inserted into the appropriate syms table. This is done -twice, once to count the size of each required symbol table, and again -to build the tables, which have been malloced between passes. From now -on, to determine whether a symbol is on an include or exclude symspec -list, `gprof' simply uses its standard symbol lookup routine on the -appropriate table in the `syms' array. - - Now the profile data file(s) themselves are read -(`gmon_io.c:gmon_out_read'), first by checking for a new-style -`gmon.out' header, then assuming this is an old-style BSD `gmon.out' if -the magic number test failed. - - New-style histogram records are read by `hist.c:hist_read_rec'. For -the first histogram record, allocate a memory array to hold all the -bins, and read them in. When multiple profile data files (or files -with multiple histogram records) are read, the starting address, ending -address, number of bins and sampling rate must match between the -various histograms, or a fatal error will result. If everything -matches, just sum the additional histograms into the existing in-memory -array. - - As each call graph record is read (`call_graph.c:cg_read_rec'), the -parent and child addresses are matched to symbol table entries, and a -call graph arc is created by `cg_arcs.c:arc_add', unless the arc fails -a symspec check against INCL_ARCS/EXCL_ARCS. As each arc is added, a -linked list is maintained of the parent's child arcs, and of the child's -parent arcs. Both the child's call count and the arc's call count are -incremented by the record's call count. - - Basic-block records are read (`basic_blocks.c:bb_read_rec'), but -only if line-by-line profiling has been selected. Each basic-block -address is matched to a corresponding line symbol in the symbol table, -and an entry made in the symbol's bb_addr and bb_calls arrays. Again, -if multiple basic-block records are present for the same address, the -call counts are cumulative. - - A gmon.sum file is dumped, if requested (`gmon_io.c:gmon_out_write'). - - If histograms were present in the data files, assign them to symbols -(`hist.c:hist_assign_samples') by iterating over all the sample bins -and assigning them to symbols. Since the symbol table is sorted in -order of ascending memory addresses, we can simple follow along in the -symbol table as we make our pass over the sample bins. This step -includes a symspec check against INCL_FLAT/EXCL_FLAT. Depending on the -histogram scale factor, a sample bin may span multiple symbols, in -which case a fraction of the sample count is allocated to each symbol, -proportional to the degree of overlap. This effect is rare for normal -profiling, but overlaps are more common during line-by-line profiling, -and can cause each of two adjacent lines to be credited with half a -hit, for example. - - If call graph data is present, `cg_arcs.c:cg_assemble' is called. -First, if `-c' was specified, a machine-dependent routine (`find_call') -scans through each symbol's machine code, looking for subroutine call -instructions, and adding them to the call graph with a zero call count. -A topological sort is performed by depth-first numbering all the -symbols (`cg_dfn.c:cg_dfn'), so that children are always numbered less -than their parents, then making a array of pointers into the symbol -table and sorting it into numerical order, which is reverse topological -order (children appear before parents). Cycles are also detected at -this point, all members of which are assigned the same topological -number. Two passes are now made through this sorted array of symbol -pointers. The first pass, from end to beginning (parents to children), -computes the fraction of child time to propagate to each parent and a -print flag. The print flag reflects symspec handling of -INCL_GRAPH/EXCL_GRAPH, with a parent's include or exclude (print or no -print) property being propagated to its children, unless they -themselves explicitly appear in INCL_GRAPH or EXCL_GRAPH. A second -pass, from beginning to end (children to parents) actually propagates -the timings along the call graph, subject to a check against -INCL_TIME/EXCL_TIME. With the print flag, fractions, and timings now -stored in the symbol structures, the topological sort array is now -discarded, and a new array of pointers is assembled, this time sorted -by propagated time. - - Finally, print the various outputs the user requested, which is now -fairly straightforward. The call graph (`cg_print.c:cg_print') and -flat profile (`hist.c:hist_print') are regurgitations of values already -computed. The annotated source listing -(`basic_blocks.c:print_annotated_source') uses basic-block information, -if present, to label each line of code with call counts, otherwise only -the function call counts are presented. - - The function ordering code is marginally well documented in the -source code itself (`cg_print.c'). Basically, the functions with the -most use and the most parents are placed first, followed by other -functions with the most use, followed by lower use functions, followed -by unused functions at the end. - - -File: gprof.info, Node: Debugging, Prev: Internals, Up: Details - -9.3.1 Debugging `gprof' ------------------------ - -If `gprof' was compiled with debugging enabled, the `-d' option -triggers debugging output (to stdout) which can be helpful in -understanding its operation. The debugging number specified is -interpreted as a sum of the following options: - -2 - Topological sort - Monitor depth-first numbering of symbols during call graph analysis - -4 - Cycles - Shows symbols as they are identified as cycle heads - -16 - Tallying - As the call graph arcs are read, show each arc and how the total - calls to each function are tallied - -32 - Call graph arc sorting - Details sorting individual parents/children within each call graph - entry - -64 - Reading histogram and call graph records - Shows address ranges of histograms as they are read, and each call - graph arc - -128 - Symbol table - Reading, classifying, and sorting the symbol table from the object - file. For line-by-line profiling (`-l' option), also shows line - numbers being assigned to memory addresses. - -256 - Static call graph - Trace operation of `-c' option - -512 - Symbol table and arc table lookups - Detail operation of lookup routines - -1024 - Call graph propagation - Shows how function times are propagated along the call graph - -2048 - Basic-blocks - Shows basic-block records as they are read from profile data (only - meaningful with `-l' option) - -4096 - Symspecs - Shows symspec-to-symbol pattern matching operation - -8192 - Annotate source - Tracks operation of `-A' option - - -File: gprof.info, Node: GNU Free Documentation License, Prev: Details, Up: Top - -10 GNU Free Documentation License -********************************* - -GNU Free Documentation License - - Version 1.1, March 2000 - - Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple -Place, Suite 330, Boston, MA 02111-1307 USA - - Everyone is permitted to copy and distribute verbatim copies of -this license document, but changing it is not allowed. - - 0. PREAMBLE - - The purpose of this License is to make a manual, textbook, or other -written document "free" in the sense of freedom: to assure everyone the -effective freedom to copy and redistribute it, with or without -modifying it, either commercially or noncommercially. Secondarily, -this License preserves for the author and publisher a way to get credit -for their work, while not being considered responsible for -modifications made by others. - - This License is a kind of "copyleft", which means that derivative -works of the document must themselves be free in the same sense. It -complements the GNU General Public License, which is a copyleft license -designed for free software. - - We have designed this License in order to use it for manuals for free -software, because free software needs free documentation: a free -program should come with manuals providing the same freedoms that the -software does. But this License is not limited to software manuals; it -can be used for any textual work, regardless of subject matter or -whether it is published as a printed book. We recommend this License -principally for works whose purpose is instruction or reference. - - 1. APPLICABILITY AND DEFINITIONS - - This License applies to any manual or other work that contains a -notice placed by the copyright holder saying it can be distributed -under the terms of this License. The "Document", below, refers to any -such manual or work. Any member of the public is a licensee, and is -addressed as "you". - - A "Modified Version" of the Document means any work containing the -Document or a portion of it, either copied verbatim, or with -modifications and/or translated into another language. - - A "Secondary Section" is a named appendix or a front-matter section -of the Document that deals exclusively with the relationship of the -publishers or authors of the Document to the Document's overall subject -(or to related matters) and contains nothing that could fall directly -within that overall subject. (For example, if the Document is in part a -textbook of mathematics, a Secondary Section may not explain any -mathematics.) The relationship could be a matter of historical -connection with the subject or with related matters, or of legal, -commercial, philosophical, ethical or political position regarding them. - - The "Invariant Sections" are certain Secondary Sections whose titles -are designated, as being those of Invariant Sections, in the notice -that says that the Document is released under this License. - - The "Cover Texts" are certain short passages of text that are listed, -as Front-Cover Texts or Back-Cover Texts, in the notice that says that -the Document is released under this License. - - A "Transparent" copy of the Document means a machine-readable copy, -represented in a format whose specification is available to the general -public, whose contents can be viewed and edited directly and -straightforwardly with generic text editors or (for images composed of -pixels) generic paint programs or (for drawings) some widely available -drawing editor, and that is suitable for input to text formatters or -for automatic translation to a variety of formats suitable for input to -text formatters. A copy made in an otherwise Transparent file format -whose markup has been designed to thwart or discourage subsequent -modification by readers is not Transparent. A copy that is not -"Transparent" is called "Opaque". - - Examples of suitable formats for Transparent copies include plain -ASCII without markup, Texinfo input format, LaTeX input format, SGML or -XML using a publicly available DTD, and standard-conforming simple HTML -designed for human modification. Opaque formats include PostScript, -PDF, proprietary formats that can be read and edited only by -proprietary word processors, SGML or XML for which the DTD and/or -processing tools are not generally available, and the machine-generated -HTML produced by some word processors for output purposes only. - - The "Title Page" means, for a printed book, the title page itself, -plus such following pages as are needed to hold, legibly, the material -this License requires to appear in the title page. For works in -formats which do not have any title page as such, "Title Page" means -the text near the most prominent appearance of the work's title, -preceding the beginning of the body of the text. - - 2. VERBATIM COPYING - - You may copy and distribute the Document in any medium, either -commercially or noncommercially, provided that this License, the -copyright notices, and the license notice saying this License applies -to the Document are reproduced in all copies, and that you add no other -conditions whatsoever to those of this License. You may not use -technical measures to obstruct or control the reading or further -copying of the copies you make or distribute. However, you may accept -compensation in exchange for copies. If you distribute a large enough -number of copies you must also follow the conditions in section 3. - - You may also lend copies, under the same conditions stated above, and -you may publicly display copies. - - 3. COPYING IN QUANTITY - - If you publish printed copies of the Document numbering more than -100, and the Document's license notice requires Cover Texts, you must -enclose the copies in covers that carry, clearly and legibly, all these -Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts -on the back cover. Both covers must also clearly and legibly identify -you as the publisher of these copies. The front cover must present the -full title with all words of the title equally prominent and visible. -You may add other material on the covers in addition. Copying with -changes limited to the covers, as long as they preserve the title of -the Document and satisfy these conditions, can be treated as verbatim -copying in other respects. - - If the required texts for either cover are too voluminous to fit -legibly, you should put the first ones listed (as many as fit -reasonably) on the actual cover, and continue the rest onto adjacent -pages. - - If you publish or distribute Opaque copies of the Document numbering -more than 100, you must either include a machine-readable Transparent -copy along with each Opaque copy, or state in or with each Opaque copy -a publicly-accessible computer-network location containing a complete -Transparent copy of the Document, free of added material, which the -general network-using public has access to download anonymously at no -charge using public-standard network protocols. If you use the latter -option, you must take reasonably prudent steps, when you begin -distribution of Opaque copies in quantity, to ensure that this -Transparent copy will remain thus accessible at the stated location -until at least one year after the last time you distribute an Opaque -copy (directly or through your agents or retailers) of that edition to -the public. - - It is requested, but not required, that you contact the authors of -the Document well before redistributing any large number of copies, to -give them a chance to provide you with an updated version of the -Document. - - 4. MODIFICATIONS - - You may copy and distribute a Modified Version of the Document under -the conditions of sections 2 and 3 above, provided that you release the -Modified Version under precisely this License, with the Modified -Version filling the role of the Document, thus licensing distribution -and modification of the Modified Version to whoever possesses a copy of -it. In addition, you must do these things in the Modified Version: - - A. Use in the Title Page (and on the covers, if any) a title distinct - from that of the Document, and from those of previous versions -(which should, if there were any, be listed in the History section -of the Document). You may use the same title as a previous version -if the original publisher of that version gives permission. B. List on -the Title Page, as authors, one or more persons or entities -responsible for authorship of the modifications in the Modified -Version, together with at least five of the principal authors of the -Document (all of its principal authors, if it has less than five). C. -State on the Title page the name of the publisher of the Modified -Version, as the publisher. D. Preserve all the copyright notices of -the Document. E. Add an appropriate copyright notice for your -modifications adjacent to the other copyright notices. F. Include, -immediately after the copyright notices, a license notice giving the -public permission to use the Modified Version under the terms of -this License, in the form shown in the Addendum below. G. Preserve in -that license notice the full lists of Invariant Sections and -required Cover Texts given in the Document's license notice. H. -Include an unaltered copy of this License. I. Preserve the section -entitled "History", and its title, and add to it an item stating at -least the title, year, new authors, and publisher of the Modified -Version as given on the Title Page. If there is no section entitled -"History" in the Document, create one stating the title, year, -authors, and publisher of the Document as given on its Title Page, -then add an item describing the Modified Version as stated in the -previous sentence. J. Preserve the network location, if any, given in -the Document for public access to a Transparent copy of the -Document, and likewise the network locations given in the Document -for previous versions it was based on. These may be placed in the -"History" section. You may omit a network location for a work that -was published at least four years before the Document itself, or if -the original publisher of the version it refers to gives permission. -K. In any section entitled "Acknowledgements" or "Dedications", -preserve the section's title, and preserve in the section all the -substance and tone of each of the contributor acknowledgements -and/or dedications given therein. L. Preserve all the Invariant -Sections of the Document, unaltered in their text and in their -titles. Section numbers or the equivalent are not considered part -of the section titles. M. Delete any section entitled "Endorsements". -Such a section may not be included in the Modified Version. N. Do -not retitle any existing section as "Endorsements" or to conflict in -title with any Invariant Section. - - If the Modified Version includes new front-matter sections or -appendices that qualify as Secondary Sections and contain no material -copied from the Document, you may at your option designate some or all -of these sections as invariant. To do this, add their titles to the -list of Invariant Sections in the Modified Version's license notice. -These titles must be distinct from any other section titles. - - You may add a section entitled "Endorsements", provided it contains -nothing but endorsements of your Modified Version by various -parties-for example, statements of peer review or that the text has -been approved by an organization as the authoritative definition of a -standard. - - You may add a passage of up to five words as a Front-Cover Text, and -a passage of up to 25 words as a Back-Cover Text, to the end of the list -of Cover Texts in the Modified Version. Only one passage of -Front-Cover Text and one of Back-Cover Text may be added by (or through -arrangements made by) any one entity. If the Document already includes -a cover text for the same cover, previously added by you or by -arrangement made by the same entity you are acting on behalf of, you -may not add another; but you may replace the old one, on explicit -permission from the previous publisher that added the old one. - - The author(s) and publisher(s) of the Document do not by this License -give permission to use their names for publicity for or to assert or -imply endorsement of any Modified Version. - - 5. COMBINING DOCUMENTS - - You may combine the Document with other documents released under this -License, under the terms defined in section 4 above for modified -versions, provided that you include in the combination all of the -Invariant Sections of all of the original documents, unmodified, and -list them all as Invariant Sections of your combined work in its -license notice. - - The combined work need only contain one copy of this License, and -multiple identical Invariant Sections may be replaced with a single -copy. If there are multiple Invariant Sections with the same name but -different contents, make the title of each such section unique by -adding at the end of it, in parentheses, the name of the original -author or publisher of that section if known, or else a unique number. -Make the same adjustment to the section titles in the list of Invariant -Sections in the license notice of the combined work. - - In the combination, you must combine any sections entitled "History" -in the various original documents, forming one section entitled -"History"; likewise combine any sections entitled "Acknowledgements", -and any sections entitled "Dedications". You must delete all sections -entitled "Endorsements." - - 6. COLLECTIONS OF DOCUMENTS - - You may make a collection consisting of the Document and other -documents released under this License, and replace the individual -copies of this License in the various documents with a single copy that -is included in the collection, provided that you follow the rules of -this License for verbatim copying of each of the documents in all other -respects. - - You may extract a single document from such a collection, and -distribute it individually under this License, provided you insert a -copy of this License into the extracted document, and follow this -License in all other respects regarding verbatim copying of that -document. - - 7. AGGREGATION WITH INDEPENDENT WORKS - - A compilation of the Document or its derivatives with other separate -and independent documents or works, in or on a volume of a storage or -distribution medium, does not as a whole count as a Modified Version of -the Document, provided no compilation copyright is claimed for the -compilation. Such a compilation is called an "aggregate", and this -License does not apply to the other self-contained works thus compiled -with the Document, on account of their being thus compiled, if they are -not themselves derivative works of the Document. - - If the Cover Text requirement of section 3 is applicable to these -copies of the Document, then if the Document is less than one quarter -of the entire aggregate, the Document's Cover Texts may be placed on -covers that surround only the Document within the aggregate. Otherwise -they must appear on covers around the whole aggregate. - - 8. TRANSLATION - - Translation is considered a kind of modification, so you may -distribute translations of the Document under the terms of section 4. -Replacing Invariant Sections with translations requires special -permission from their copyright holders, but you may include -translations of some or all Invariant Sections in addition to the -original versions of these Invariant Sections. You may include a -translation of this License provided that you also include the original -English version of this License. In case of a disagreement between the -translation and the original English version of this License, the -original English version will prevail. - - 9. TERMINATION - - You may not copy, modify, sublicense, or distribute the Document -except as expressly provided for under this License. Any other attempt -to copy, modify, sublicense or distribute the Document is void, and will -automatically terminate your rights under this License. However, -parties who have received copies, or rights, from you under this -License will not have their licenses terminated so long as such parties -remain in full compliance. - - 10. FUTURE REVISIONS OF THIS LICENSE - - The Free Software Foundation may publish new, revised versions of -the GNU Free Documentation License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. See -http://www.gnu.org/copyleft/. - - Each version of the License is given a distinguishing version number. -If the Document specifies that a particular numbered version of this -License "or any later version" applies to it, you have the option of -following the terms and conditions either of that specified version or -of any later version that has been published (not as a draft) by the -Free Software Foundation. If the Document does not specify a version -number of this License, you may choose any version ever published (not -as a draft) by the Free Software Foundation. - - ADDENDUM: How to use this License for your documents - - To use this License in a document you have written, include a copy of -the License in the document and put the following copyright and license -notices just after the title page: - - Copyright (c) YEAR YOUR NAME. - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.1 - or any later version published by the Free Software Foundation; - with the Invariant Sections being LIST THEIR TITLES, with the - Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. - A copy of the license is included in the section entitled "GNU - Free Documentation License". - - If you have no Invariant Sections, write "with no Invariant Sections" -instead of saying which ones are invariant. If you have no Front-Cover -Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being -LIST"; likewise for Back-Cover Texts. - - If your document contains nontrivial examples of program code, we -recommend releasing these examples in parallel under your choice of -free software license, such as the GNU General Public License, to -permit their use in free software. - - - -Tag Table: -Node: Top735 -Node: Introduction1974 -Node: Compiling4304 -Node: Executing8522 -Node: Invoking11314 -Node: Output Options12729 -Node: Analysis Options19751 -Node: Miscellaneous Options22953 -Node: Deprecated Options24186 -Node: Symspecs26265 -Node: Output28091 -Node: Flat Profile29117 -Node: Call Graph34047 -Node: Primary37262 -Node: Callers39803 -Node: Subroutines41920 -Node: Cycles43729 -Node: Line-by-line50503 -Node: Annotated Source54237 -Node: Inaccuracy57093 -Node: Sampling Error57351 -Node: Assumptions59921 -Node: How do I?61390 -Node: Incompatibilities63206 -Node: Details64674 -Node: Implementation65067 -Node: File Format70964 -Node: Internals75254 -Node: Debugging83631 -Node: GNU Free Documentation License85236 - -End Tag Table diff --git a/gprof/po/da.gmo b/gprof/po/da.gmo deleted file mode 100644 index d2bfe782d2aaef4c1b5e4cb9b2d2dae69d5326c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 9586 zc-qZaYm6IL6`sC;b&@tM-EMaCx=Gh$H_bTfP4n2zqfN3&yUjb<6xwA;$DV6@GUFLD zckGS%Qwf0({ew!W=noL6AOXKhfr>x8gpfc$gitGJ1uZ{N0tNaH#Dc=(JNI1M2ROWp z-*<8u>sNv6fnQw4cK!hP5bzCP4!CPM+gS##1U>`28~7FA5b)x1_QUU&v%a+gdjyOE zcLE<-!SYY8;QhR?g8lm93bykfKpS}Xt?aK;!1n-~!0o`#-^%m90Nx9{8Nt~GoVbnk ztH3S5r+^!Q-vh1&{ua0&_%GlF;C>iSAug`eCR!d4F0$rV^1eR2lKu1)@F?)JD_QRk zz+1`hx3k{r+c`d?z&n5kfYZRU!0+COJOJkLeC|&6>yvkK9G*A$qdQsuH^9x5Z@_oZ z{`=X!%|N7#HP+AeP4shKOquzU{k;E&fj0x603ubbPnhRV_w#z6G0$J<=e+x}(f^^D zzX;rPgJr$c&-=S_7yEtL0Q+xzfa7(1fcF^yVXF1GdH$4n{?Y*Z?^^>Lhl>N82Y(;n zc-*~;_j`C1@An*Vkn9F7r@S-s&#z)Te{7y#U&VQK;~?k3&>-*opA}4UeA91{(8=%pRMP3{c1hu z*`I*NslFJ!DPhis!Fj>{`Y7;0;IqJEz&`?if_$IY!27#pnC+Py<~*M@7!R|3A0Os@ zJv+>KcyXBRd(q&_!yLC)&HV3%IZxjh=D7da$c<##Zad4*I}Gjy-bDV&^0}MJvc7B3 z2j0LXUgt068u@`@`+mv~i~U13AF;SLQd}t)4qBbhDTBuh(w-i&x<3?W%1O#|vh`sz zPX3{sro5n-%#fcfwwruEZRAD`p0qgDr!CISAu~>Kpj;ro?lNPP%T%YS)^1p255@65 z^ZNmd{V|uCf3L+ggzm(>sqwzlZ^})or&JqnG-HP?j@4Q7e8%Ej*khileo!p7o9E*O zZ!<{u(G>pPZJy~I(wQ4E&+oJNF5OLWwYc7#u=rlNHD%i&i)-bi#b<@`foj+z7U#|y zy_vqggH8~La_rP9nGBufZ zFcGmVMzQB8}W*#k_h9~F6qUi5YA*WrNBuLCaMWY zAN4}1CNmkmM|u#vTQUw?%48>kI-X~u#0f-LuNGu1qLK(mQeKe7Iyr$}amXoFgmS92 zK=Rgl)T>n|ZcftbFf*(NPV6PkNg-1!RJ;VMG-Qk=0{E?&$PqPa zi9N+;5z{ani#uYz5(RRfn9aI#nbhPy3t@>xHaA|%X31Ro1w-)4r6v^o6uNpgj6~v9 zrErSHdKH!>(oGM;fiPIa`Gq|u6)7m}Mgg`%3QiS*gW?o0N7_nw zA*4N}#oJOkMbgT}Y;h~)q?J{Zg8oW~Hzl_#5~obT8PV@U_QmxYbnY9?v}MC6q1QOM zsGd+Ts!r0GtcN&SvIrG%=)_^+loD(#mX7O%dR>Z`YjQ*_sU|}$Wj260yQp8O>a|)F zlLS)GiHk@uDAZ#~X`uyAgh3ONlGJUxR1b^fTN@`x#`JmzD`OlBcgCttQxv37c)3^d zq?_ZV9?Pmt!XtMUqiPLxf;>F$B^B5et3;HmR5;ou7QBQ*=(uhyl@b*scWO@!C#Y+) zvUOG{I^m{7xDhs&9w>P*F_*{-38l0?Z18kze>ju~C;0;92Pv$rTs#%kWXLC$#$8#c zm&>%#E*I_=wky1H7{xjrNHC)J`(ZRMD)>txsG?q&Eo1W>XatYt_1Grzk{cnnXmzJn zlTJ*ka45_sANAyj*3;f47g54how8TN1|r{+OUdBms%Eti1!}3;df3SeDmLV@E*p~w z`V|Nm!<@yj>zGO6hLD6o?R6emzJ=BE=ey%yOl89`rMqAU1v{UjL6=Ex0vR1ncS%oW*s=t`EXPrWE3NAXTW*YMsnje~*qrv?L<)PBy zhr;70Y9~K<>e0DbGD}ZQ3;0#dW%_1qcNRU39`s>MRNb0H^iV~%hqewbJ>v9JZraHB za#GQX_G}p0b54k4rgp$qQ5_fV?B4cESb)OK>!{XTN1J*w+qktyQpEjW&bcUV+9)NJz1mfJO;4fgZQAt^$?mq- zQ)YQuh|f>QJU!@zCGAtYB7>U#K^E&DZ71&yc@^wX!Jl4HPuE~nqOH)6N}@2p*?L*? zT9&pu#g-)zQ^IuA;Ea$5V-yRr+zEIMlk|FW-g6}1`SILDK6CQKjC~N-i9RV) zNVZ8aJ~lRPkL|R_w~74r$?d!Bv3tkHAZVYK4NonS%jfN}36Z~dax8z(SRQgm9hKNK zs9Fj>iQ-9dM55I?!vUly;K4IrO!emxS z#`YmJ4z9lGcA*y~%G-Cu30#E}Rq8O{_7K|pDE5iA(e=C#lx5tazvUQA0QaM>Vp*ok z6BI@zZ#E}mp7mR+cNDsYT5|19sUz1lL~_h`U2|n=y8AL6s6;bIl%Ml5PI2DzOnUd@ zz6%y}UNojO%u3Q%(r@TmsbBLTexsxC{93%wkb<^_CQ8v!Zu8!biqd@6D<_)zMzvr; zaeGneUdFxb`!a6xUhrB}POzz_AJi#l&>N%}FAerkUgv6*w|1#Td3^)}o4_>fh7J!n zweQp6m9b2^Cz$t|@wd)o1slWt4QkY7s74*3N!L_;sn2TnQhzzHwMzRt4|EXy_&r1Ej; zlx31;!XCnm_i83=_b}lGb|E!UP-uXJ)QxU%S*MJSuWP>BiE~wDQfZT69d?y0B-HO~ z6Oa>5?2~Va4|fRTkvhB=(p#3I!%?}14f`M#s9&i3t!{l|R&5mI-OxA8LRwvV zr;(V6%`RsiY-ljCV2K7WCIec#XpDc4;b!$3IN36wM~B55yX$3~M}*G|bqvt;E9s&7k4@7i!-)K$K((*_ps>$h}&Bw=8ce9>NN5fMGD6zCQ)}54{dhtY=!M@cJ3lIZQYw` z%|#Slyct7py=_T~PLtwl482>kP0_n_3`1{(S7qpiLu!gn$>Y>n{q0ipE}y+6o^Fi% z|KjPF!?G*?8&rMz=#osm;1S_0>D=O2<6jR;FH>uTB-H#|A2m_dZE3JjK*gXURK}9> zsze<+|68Vx^M6j)w~R$MYNEfb!a^Kcev6}9P6>COrscje!1UZT?7SfasR;AYD+$BS mQHCt~wvbSliNF&xZ}1mYVEl1A;Aw8Yg>R-d_h4F{wBX;OTv~Mi diff --git a/gprof/po/de.gmo b/gprof/po/de.gmo deleted file mode 100644 index 0d571f5fb008cefb253714a7045265626818dba1..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 9721 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 T^bvOk_39U43zkf987KY^I`o45 diff --git a/gprof/po/es.gmo b/gprof/po/es.gmo deleted file mode 100644 index e2e98a88131da5c9e392c024195464b2f5f4d678..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 10045 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 diff --git a/gprof/po/fr.gmo b/gprof/po/fr.gmo deleted file mode 100644 index 7b4cbb1b681c11f9c60541fac98c2b78d3bf8106..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 10044 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 U+hQ@4)>2}^_glZj8tk?F51)twAOHXW diff --git a/gprof/po/id.gmo b/gprof/po/id.gmo deleted file mode 100644 index bbf145e41b69ac50eff209b825b068bca5deb4ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 9735 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 DEYDi1 diff --git a/gprof/po/tr.gmo b/gprof/po/tr.gmo deleted file mode 100644 index 37c1c4617faea76a366ef0d3e1d9b85f11901753..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 11327 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