From 2535b36b22dedcdea35e497d38a1c9c735961d28 Mon Sep 17 00:00:00 2001 From: "R. Steve McKown" Date: Tue, 8 Dec 2009 18:09:41 -0700 Subject: [PATCH] Clean the tree of build products. The upstream binutils tree was not clean when imported, containing many build result files. This tree revision is a result of running: fakeroot debian/rules clean --- bfd/doc/bfd.info | 10669 ------------------- bfd/po/da.gmo | Bin 60556 -> 0 bytes bfd/po/es.gmo | Bin 87772 -> 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/rw.gmo | Bin 429 -> 0 bytes bfd/po/sv.gmo | Bin 67266 -> 0 bytes bfd/po/tr.gmo | Bin 69529 -> 0 bytes bfd/po/vi.gmo | Bin 39617 -> 0 bytes bfd/po/zh_CN.gmo | Bin 28132 -> 0 bytes binutils/doc/binutils.info | 4057 -------- binutils/po/da.gmo | Bin 80846 -> 0 bytes binutils/po/es.gmo | Bin 137588 -> 0 bytes binutils/po/fi.gmo | Bin 140922 -> 0 bytes binutils/po/fr.gmo | Bin 134234 -> 0 bytes binutils/po/ja.gmo | Bin 97376 -> 0 bytes binutils/po/ro.gmo | Bin 20265 -> 0 bytes binutils/po/ru.gmo | Bin 130197 -> 0 bytes binutils/po/rw.gmo | Bin 615 -> 0 bytes binutils/po/sv.gmo | Bin 103077 -> 0 bytes binutils/po/tr.gmo | Bin 129842 -> 0 bytes binutils/po/uk.gmo | Bin 172392 -> 0 bytes binutils/po/vi.gmo | Bin 156541 -> 0 bytes binutils/po/zh_CN.gmo | Bin 75903 -> 0 bytes binutils/po/zh_TW.gmo | Bin 121475 -> 0 bytes binutils/sysroff.info | 504 - etc/configure.info | 2773 ----- etc/standards.info | 4930 --------- gas/doc/as.info | 19168 ----------------------------------- gas/po/es.gmo | Bin 305962 -> 0 bytes gas/po/fr.gmo | Bin 288175 -> 0 bytes gas/po/rw.gmo | Bin 438 -> 0 bytes gas/po/tr.gmo | Bin 254790 -> 0 bytes gprof/gprof.info | 2340 ----- gprof/po/da.gmo | Bin 9586 -> 0 bytes gprof/po/de.gmo | Bin 10462 -> 0 bytes gprof/po/es.gmo | Bin 10062 -> 0 bytes gprof/po/fi.gmo | Bin 10771 -> 0 bytes gprof/po/fr.gmo | Bin 10062 -> 0 bytes gprof/po/ga.gmo | Bin 10440 -> 0 bytes gprof/po/id.gmo | Bin 9735 -> 0 bytes gprof/po/ms.gmo | Bin 9757 -> 0 bytes gprof/po/pt_BR.gmo | Bin 9984 -> 0 bytes gprof/po/rw.gmo | Bin 486 -> 0 bytes gprof/po/sv.gmo | Bin 10210 -> 0 bytes gprof/po/tr.gmo | Bin 11331 -> 0 bytes gprof/po/vi.gmo | Bin 12329 -> 0 bytes ld/ld.info | 7041 ------------- ld/po/da.gmo | Bin 40607 -> 0 bytes ld/po/es.gmo | Bin 48316 -> 0 bytes ld/po/fi.gmo | Bin 49107 -> 0 bytes ld/po/fr.gmo | Bin 49474 -> 0 bytes ld/po/ga.gmo | Bin 48922 -> 0 bytes ld/po/sv.gmo | Bin 43131 -> 0 bytes ld/po/tr.gmo | Bin 41339 -> 0 bytes ld/po/vi.gmo | Bin 55090 -> 0 bytes ld/po/zh_CN.gmo | Bin 24796 -> 0 bytes ld/po/zh_TW.gmo | Bin 44839 -> 0 bytes opcodes/po/da.gmo | Bin 8332 -> 0 bytes opcodes/po/de.gmo | Bin 16919 -> 0 bytes opcodes/po/es.gmo | Bin 21084 -> 0 bytes opcodes/po/fi.gmo | Bin 23236 -> 0 bytes opcodes/po/fr.gmo | Bin 16408 -> 0 bytes opcodes/po/ga.gmo | Bin 22384 -> 0 bytes opcodes/po/id.gmo | Bin 8307 -> 0 bytes opcodes/po/nl.gmo | Bin 22221 -> 0 bytes opcodes/po/pt_BR.gmo | Bin 8467 -> 0 bytes opcodes/po/ro.gmo | Bin 15986 -> 0 bytes opcodes/po/sv.gmo | Bin 16004 -> 0 bytes opcodes/po/tr.gmo | Bin 16094 -> 0 bytes opcodes/po/vi.gmo | Bin 24051 -> 0 bytes opcodes/po/zh_CN.gmo | Bin 9050 -> 0 bytes 73 files changed, 51482 deletions(-) delete mode 100644 bfd/doc/bfd.info 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/rw.gmo delete mode 100644 bfd/po/sv.gmo delete mode 100644 bfd/po/tr.gmo delete mode 100644 bfd/po/vi.gmo delete mode 100644 bfd/po/zh_CN.gmo delete mode 100644 binutils/doc/binutils.info delete mode 100644 binutils/po/da.gmo delete mode 100644 binutils/po/es.gmo delete mode 100644 binutils/po/fi.gmo delete mode 100644 binutils/po/fr.gmo delete mode 100644 binutils/po/ja.gmo delete mode 100644 binutils/po/ro.gmo delete mode 100644 binutils/po/ru.gmo delete mode 100644 binutils/po/rw.gmo delete mode 100644 binutils/po/sv.gmo delete mode 100644 binutils/po/tr.gmo delete mode 100644 binutils/po/uk.gmo delete mode 100644 binutils/po/vi.gmo delete mode 100644 binutils/po/zh_CN.gmo delete mode 100644 binutils/po/zh_TW.gmo delete mode 100644 binutils/sysroff.info delete mode 100644 etc/configure.info delete mode 100644 etc/standards.info delete mode 100644 gas/doc/as.info delete mode 100644 gas/po/es.gmo delete mode 100644 gas/po/fr.gmo delete mode 100644 gas/po/rw.gmo delete mode 100644 gas/po/tr.gmo 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/fi.gmo delete mode 100644 gprof/po/fr.gmo delete mode 100644 gprof/po/ga.gmo delete mode 100644 gprof/po/id.gmo delete mode 100644 gprof/po/ms.gmo delete mode 100644 gprof/po/pt_BR.gmo delete mode 100644 gprof/po/rw.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.info delete mode 100644 ld/po/da.gmo delete mode 100644 ld/po/es.gmo delete mode 100644 ld/po/fi.gmo delete mode 100644 ld/po/fr.gmo delete mode 100644 ld/po/ga.gmo delete mode 100644 ld/po/sv.gmo delete mode 100644 ld/po/tr.gmo delete mode 100644 ld/po/vi.gmo delete mode 100644 ld/po/zh_CN.gmo delete mode 100644 ld/po/zh_TW.gmo 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/fi.gmo delete mode 100644 opcodes/po/fr.gmo delete mode 100644 opcodes/po/ga.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 delete mode 100644 opcodes/po/vi.gmo delete mode 100644 opcodes/po/zh_CN.gmo diff --git a/bfd/doc/bfd.info b/bfd/doc/bfd.info deleted file mode 100644 index a192a74..0000000 --- a/bfd/doc/bfd.info +++ /dev/null @@ -1,10669 +0,0 @@ -This is bfd.info, produced by makeinfo version 4.8 from 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, 2006, 2007 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 the -Invariant Sections being "GNU General Public License" and "Funding Free -Software", the Front-Cover texts being (a) (see below), and with the -Back-Cover Texts being (b) (see below). A copy of the license is -included in the section entitled "GNU Free Documentation License". - - (a) The FSF's Front-Cover Text is: - - A GNU Manual - - (b) The FSF's Back-Cover Text is: - - You have freedom to copy and modify this GNU Manual, like GNU -software. Copies published by the Free Software Foundation raise -funds for GNU development. - - -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 -* BFD Index:: BFD 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 successfully 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 last section on the section list. */ - struct bfd_section *section_last; - - /* 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 *archive_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_on_input, - 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. If ERROR_TAG is -bfd_error_on_input, then this function takes two more parameters, the -input bfd where the error occurred, and the bfd_error_type error. - -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 Miscellaneous -================= - -2.3.1 Miscellaneous functions ------------------------------ - -2.3.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.15 `Other functions' -.......................... - -*Description* -The following functions exist but have not yet been documented. - #define bfd_sizeof_headers(abfd, info) \ - BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, info)) - - #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_find_line(abfd, syms, sym, file, line) \ - BFD_SEND (abfd, _bfd_find_line, \ - (abfd, syms, sym, file, line)) - - #define bfd_find_inliner_info(abfd, file, func, line) \ - BFD_SEND (abfd, _bfd_find_inliner_info, \ - (abfd, 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.1.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_last; - unsigned int section_count; - struct bfd_hash_table section_htab; - }; - -2.3.1.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.1.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.1.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.1.20 `bfd_emul_get_maxpagesize' -................................... - -*Synopsis* - bfd_vma bfd_emul_get_maxpagesize (const char *); - *Description* -Returns the maximum page size, in bytes, as determined by emulation. - - *Returns* -Returns the maximum page size in bytes for ELF, abort otherwise. - -2.3.1.21 `bfd_emul_set_maxpagesize' -................................... - -*Synopsis* - void bfd_emul_set_maxpagesize (const char *, bfd_vma); - *Description* -For ELF, set the maximum page size for the emulation. It is a no-op -for other formats. - -2.3.1.22 `bfd_emul_get_commonpagesize' -...................................... - -*Synopsis* - bfd_vma bfd_emul_get_commonpagesize (const char *); - *Description* -Returns the common page size, in bytes, as determined by emulation. - - *Returns* -Returns the common page size in bytes for ELF, abort otherwise. - -2.3.1.23 `bfd_emul_set_commonpagesize' -...................................... - -*Synopsis* - void bfd_emul_set_commonpagesize (const char *, bfd_vma); - *Description* -For ELF, set the common page size for the emulation. It is a no-op for -other formats. - -2.3.1.24 `bfd_demangle' -....................... - -*Synopsis* - char *bfd_demangle (bfd *, const char *, int); - *Description* -Wrapper around cplus_demangle. Strips leading underscores and other -such chars that would otherwise confuse the demangler. If passed a g++ -v3 ABI mangled name, returns a buffer allocated with malloc holding the -demangled name. Returns NULL otherwise and on memory alloc failure. - -2.3.1.25 `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.1.26 `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.1.27 `bfd_get_size' -....................... - -*Synopsis* - file_ptr 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 -================== - -2.5.1 Initialization functions ------------------------------- - -These are the functions that handle initializing a BFD. - -2.5.1.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 previous section in the list belonging to the BFD, or NULL. */ - struct bfd_section *prev; - - /* 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. - Also set to inform the linker that this section should not be - listed in the link map as discarded. */ - #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; - - /* Mark flags used by some linker backends for garbage collection. */ - unsigned int gc_mark : 1; - unsigned int gc_mark_from_eh : 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; - - /* Early in the link process, map_head and map_tail are used to build - a list of input sections attached to an output section. Later, - output sections use these fields for a list of bfd_link_order - structs. */ - union { - struct bfd_link_order *link_order; - struct bfd_section *s; - } map_head, map_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)) - - /* 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, S) \ - do \ - { \ - asection *_s = S; \ - asection *_next = _s->next; \ - asection *_prev = _s->prev; \ - if (_prev) \ - _prev->next = _next; \ - else \ - (ABFD)->sections = _next; \ - if (_next) \ - _next->prev = _prev; \ - else \ - (ABFD)->section_last = _prev; \ - } \ - while (0) - #define bfd_section_list_append(ABFD, S) \ - do \ - { \ - asection *_s = S; \ - bfd *_abfd = ABFD; \ - _s->next = NULL; \ - if (_abfd->section_last) \ - { \ - _s->prev = _abfd->section_last; \ - _abfd->section_last->next = _s; \ - } \ - else \ - { \ - _s->prev = NULL; \ - _abfd->sections = _s; \ - } \ - _abfd->section_last = _s; \ - } \ - while (0) - #define bfd_section_list_prepend(ABFD, S) \ - do \ - { \ - asection *_s = S; \ - bfd *_abfd = ABFD; \ - _s->prev = NULL; \ - if (_abfd->sections) \ - { \ - _s->next = _abfd->sections; \ - _abfd->sections->prev = _s; \ - } \ - else \ - { \ - _s->next = NULL; \ - _abfd->section_last = _s; \ - } \ - _abfd->sections = _s; \ - } \ - while (0) - #define bfd_section_list_insert_after(ABFD, A, S) \ - do \ - { \ - asection *_a = A; \ - asection *_s = S; \ - asection *_next = _a->next; \ - _s->next = _next; \ - _s->prev = _a; \ - _a->next = _s; \ - if (_next) \ - _next->prev = _s; \ - else \ - (ABFD)->section_last = _s; \ - } \ - while (0) - #define bfd_section_list_insert_before(ABFD, B, S) \ - do \ - { \ - asection *_b = B; \ - asection *_s = S; \ - asection *_prev = _b->prev; \ - _s->prev = _prev; \ - _s->next = _b; \ - _b->prev = _s; \ - if (_prev) \ - _prev->next = _s; \ - else \ - (ABFD)->sections = _s; \ - } \ - while (0) - #define bfd_section_removed_from_list(ABFD, S) \ - ((S)->next == NULL ? (ABFD)->section_last != (S) : (S)->next->prev != (S)) - - #define BFD_FAKE_SECTION(SEC, FLAGS, SYM, NAME, IDX) \ - /* name, id, index, next, prev, flags, user_set_vma, */ \ - { NAME, IDX, 0, NULL, NULL, FLAGS, 0, \ - \ - /* linker_mark, linker_has_input, gc_mark, gc_mark_from_eh, */ \ - 0, 0, 1, 0, \ - \ - /* segment_mark, sec_info_type, use_rela_p, has_tls_reloc, */ \ - 0, 0, 0, 0, \ - \ - /* has_gp_reloc, need_finalize_relax, reloc_done, */ \ - 0, 0, 0, \ - \ - /* vma, lma, size, rawsize */ \ - 0, 0, 0, 0, \ - \ - /* output_offset, output_section, alignment_power, */ \ - 0, (struct bfd_section *) &SEC, 0, \ - \ - /* relocation, orelocation, reloc_count, filepos, rel_filepos, */ \ - NULL, NULL, 0, 0, 0, \ - \ - /* line_filepos, userdata, contents, lineno, lineno_count, */ \ - 0, NULL, NULL, NULL, 0, \ - \ - /* entsize, kept_section, moving_line_filepos, */ \ - 0, NULL, 0, \ - \ - /* target_index, used_by_bfd, constructor_chain, owner, */ \ - 0, NULL, NULL, NULL, \ - \ - /* symbol, symbol_ptr_ptr, */ \ - (struct bfd_symbol *) SYM, &SEC.symbol, \ - \ - /* map_head, map_tail */ \ - { NULL }, { NULL } \ - } - - -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_with_flags' -............................................ - -*Synopsis* - asection *bfd_make_section_anyway_with_flags - (bfd *abfd, const char *name, flagword flags); - *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. Also set the attributes of the new -section to the value FLAGS. - - 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_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.8 `bfd_make_section_with_flags' -..................................... - -*Synopsis* - asection *bfd_make_section_with_flags - (bfd *, const char *name, flagword flags); - *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. Also set the attributes of the new -section to the value FLAGS. If there is an error, return `NULL' and set -`bfd_error'. - -2.6.5.9 `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.10 `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.11 `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.12 `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.13 `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.14 `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.15 `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.16 `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.17 `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.18 `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.19 `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 - - /* This symbol represents a complex relocation expression, - with the expression tree serialized in the symbol name. */ - #define BSF_RELC 0x80000 - - /* This symbol represents a signed complex relocation expression, - with the expression tree serialized in the symbol name. */ - #define BSF_SRELC 0x100000 - - 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.1 Archive functions ------------------------ - -2.8.1.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.1.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.1.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.1 File format functions ---------------------------- - -2.9.1.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.1.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.1.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.1.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 value overflows when considered as a signed - number one bit larger than the field. ie. A bitfield of N bits - is allowed to represent -2**n to 2**n-1. */ - complain_overflow_bitfield, - - /* Complain if the value overflows when considered as a 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.10.2 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.10.2.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_SPU_IMM7 - -- : BFD_RELOC_SPU_IMM8 - -- : BFD_RELOC_SPU_IMM10 - -- : BFD_RELOC_SPU_IMM10W - -- : BFD_RELOC_SPU_IMM16 - -- : BFD_RELOC_SPU_IMM16W - -- : BFD_RELOC_SPU_IMM18 - -- : BFD_RELOC_SPU_PCREL9a - -- : BFD_RELOC_SPU_PCREL9b - -- : BFD_RELOC_SPU_PCREL16 - -- : BFD_RELOC_SPU_LO16 - -- : BFD_RELOC_SPU_HI16 - -- : BFD_RELOC_SPU_PPU32 - -- : BFD_RELOC_SPU_PPU64 - SPU 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_HI16_PCREL - High 16 bits of 32-bit pc-relative value - - -- : BFD_RELOC_HI16_S_PCREL - High 16 bits of 32-bit pc-relative value, adjusted - - -- : BFD_RELOC_LO16_PCREL - Low 16 bits of pc-relative value - - -- : 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_MIPS_COPY - -- : BFD_RELOC_MIPS_JUMP_SLOT - MIPS ELF relocations (VxWorks extensions). - - -- : 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 - -- : BFD_RELOC_386_TLS_GOTDESC - -- : BFD_RELOC_386_TLS_DESC_CALL - -- : BFD_RELOC_386_TLS_DESC - 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 - -- : BFD_RELOC_X86_64_GOTOFF64 - -- : BFD_RELOC_X86_64_GOTPC32 - -- : BFD_RELOC_X86_64_GOT64 - -- : BFD_RELOC_X86_64_GOTPCREL64 - -- : BFD_RELOC_X86_64_GOTPC64 - -- : BFD_RELOC_X86_64_GOTPLT64 - -- : BFD_RELOC_X86_64_PLTOFF64 - -- : BFD_RELOC_X86_64_GOTPC32_TLSDESC - -- : BFD_RELOC_X86_64_TLSDESC_CALL - -- : BFD_RELOC_X86_64_TLSDESC - 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_PCREL_CALL - ARM 26-bit pc-relative branch for an unconditional BL or BLX - instruction. - - -- : BFD_RELOC_ARM_PCREL_JUMP - ARM 26-bit pc-relative branch for B or conditional BL instruction. - - -- : BFD_RELOC_THUMB_PCREL_BRANCH7 - -- : BFD_RELOC_THUMB_PCREL_BRANCH9 - -- : BFD_RELOC_THUMB_PCREL_BRANCH12 - -- : BFD_RELOC_THUMB_PCREL_BRANCH20 - -- : BFD_RELOC_THUMB_PCREL_BRANCH23 - -- : BFD_RELOC_THUMB_PCREL_BRANCH25 - Thumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches. The - lowest bit must be zero and is not stored in the instruction. - Note that the corresponding ELF R_ARM_THM_JUMPnn constant has an - "nn" one smaller in all cases. Note further that BRANCH23 - corresponds to R_ARM_THM_CALL. - - -- : BFD_RELOC_ARM_OFFSET_IMM - 12-bit immediate offset, used in ARM-format ldr and str - instructions. - - -- : BFD_RELOC_ARM_THUMB_OFFSET - 5-bit immediate offset, used in Thumb-format ldr and str - instructions. - - -- : 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 data 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_ARM_MOVW - -- : BFD_RELOC_ARM_MOVT - -- : BFD_RELOC_ARM_MOVW_PCREL - -- : BFD_RELOC_ARM_MOVT_PCREL - -- : BFD_RELOC_ARM_THUMB_MOVW - -- : BFD_RELOC_ARM_THUMB_MOVT - -- : BFD_RELOC_ARM_THUMB_MOVW_PCREL - -- : BFD_RELOC_ARM_THUMB_MOVT_PCREL - Low and High halfword relocations for MOVW and MOVT instructions. - - -- : BFD_RELOC_ARM_JUMP_SLOT - -- : BFD_RELOC_ARM_GLOB_DAT - -- : BFD_RELOC_ARM_GOT32 - -- : BFD_RELOC_ARM_PLT32 - -- : BFD_RELOC_ARM_RELATIVE - -- : BFD_RELOC_ARM_GOTOFF - -- : BFD_RELOC_ARM_GOTPC - Relocations for setting up GOTs and PLTs for shared libraries. - - -- : BFD_RELOC_ARM_TLS_GD32 - -- : BFD_RELOC_ARM_TLS_LDO32 - -- : BFD_RELOC_ARM_TLS_LDM32 - -- : BFD_RELOC_ARM_TLS_DTPOFF32 - -- : BFD_RELOC_ARM_TLS_DTPMOD32 - -- : BFD_RELOC_ARM_TLS_TPOFF32 - -- : BFD_RELOC_ARM_TLS_IE32 - -- : BFD_RELOC_ARM_TLS_LE32 - ARM thread-local storage relocations. - - -- : BFD_RELOC_ARM_ALU_PC_G0_NC - -- : BFD_RELOC_ARM_ALU_PC_G0 - -- : BFD_RELOC_ARM_ALU_PC_G1_NC - -- : BFD_RELOC_ARM_ALU_PC_G1 - -- : BFD_RELOC_ARM_ALU_PC_G2 - -- : BFD_RELOC_ARM_LDR_PC_G0 - -- : BFD_RELOC_ARM_LDR_PC_G1 - -- : BFD_RELOC_ARM_LDR_PC_G2 - -- : BFD_RELOC_ARM_LDRS_PC_G0 - -- : BFD_RELOC_ARM_LDRS_PC_G1 - -- : BFD_RELOC_ARM_LDRS_PC_G2 - -- : BFD_RELOC_ARM_LDC_PC_G0 - -- : BFD_RELOC_ARM_LDC_PC_G1 - -- : BFD_RELOC_ARM_LDC_PC_G2 - -- : BFD_RELOC_ARM_ALU_SB_G0_NC - -- : BFD_RELOC_ARM_ALU_SB_G0 - -- : BFD_RELOC_ARM_ALU_SB_G1_NC - -- : BFD_RELOC_ARM_ALU_SB_G1 - -- : BFD_RELOC_ARM_ALU_SB_G2 - -- : BFD_RELOC_ARM_LDR_SB_G0 - -- : BFD_RELOC_ARM_LDR_SB_G1 - -- : BFD_RELOC_ARM_LDR_SB_G2 - -- : BFD_RELOC_ARM_LDRS_SB_G0 - -- : BFD_RELOC_ARM_LDRS_SB_G1 - -- : BFD_RELOC_ARM_LDRS_SB_G2 - -- : BFD_RELOC_ARM_LDC_SB_G0 - -- : BFD_RELOC_ARM_LDC_SB_G1 - -- : BFD_RELOC_ARM_LDC_SB_G2 - ARM group relocations. - - -- : BFD_RELOC_ARM_IMMEDIATE - -- : BFD_RELOC_ARM_ADRL_IMMEDIATE - -- : BFD_RELOC_ARM_T32_IMMEDIATE - -- : BFD_RELOC_ARM_T32_ADD_IMM - -- : BFD_RELOC_ARM_T32_IMM12 - -- : BFD_RELOC_ARM_T32_ADD_PC12 - -- : BFD_RELOC_ARM_SHIFT_IMM - -- : BFD_RELOC_ARM_SMC - -- : BFD_RELOC_ARM_SWI - -- : BFD_RELOC_ARM_MULTI - -- : BFD_RELOC_ARM_CP_OFF_IMM - -- : BFD_RELOC_ARM_CP_OFF_IMM_S2 - -- : BFD_RELOC_ARM_T32_CP_OFF_IMM - -- : BFD_RELOC_ARM_T32_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_T32_OFFSET_U8 - -- : BFD_RELOC_ARM_T32_OFFSET_IMM - -- : BFD_RELOC_ARM_HWLITERAL - -- : BFD_RELOC_ARM_THUMB_ADD - -- : BFD_RELOC_ARM_THUMB_IMM - -- : BFD_RELOC_ARM_THUMB_SHIFT - These relocs are only used within the ARM assembler. They are not - (at present) written to any object files. - - -- : 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_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_BFIN_16_IMM - ADI Blackfin 16 bit immediate absolute reloc. - - -- : BFD_RELOC_BFIN_16_HIGH - ADI Blackfin 16 bit immediate absolute reloc higher 16 bits. - - -- : BFD_RELOC_BFIN_4_PCREL - ADI Blackfin 'a' part of LSETUP. - - -- : BFD_RELOC_BFIN_5_PCREL - ADI Blackfin. - - -- : BFD_RELOC_BFIN_16_LOW - ADI Blackfin 16 bit immediate absolute reloc lower 16 bits. - - -- : BFD_RELOC_BFIN_10_PCREL - ADI Blackfin. - - -- : BFD_RELOC_BFIN_11_PCREL - ADI Blackfin 'b' part of LSETUP. - - -- : BFD_RELOC_BFIN_12_PCREL_JUMP - ADI Blackfin. - - -- : BFD_RELOC_BFIN_12_PCREL_JUMP_S - ADI Blackfin Short jump, pcrel. - - -- : BFD_RELOC_BFIN_24_PCREL_CALL_X - ADI Blackfin Call.x not implemented. - - -- : BFD_RELOC_BFIN_24_PCREL_JUMP_L - ADI Blackfin Long Jump pcrel. - - -- : BFD_RELOC_BFIN_GOT17M4 - -- : BFD_RELOC_BFIN_GOTHI - -- : BFD_RELOC_BFIN_GOTLO - -- : BFD_RELOC_BFIN_FUNCDESC - -- : BFD_RELOC_BFIN_FUNCDESC_GOT17M4 - -- : BFD_RELOC_BFIN_FUNCDESC_GOTHI - -- : BFD_RELOC_BFIN_FUNCDESC_GOTLO - -- : BFD_RELOC_BFIN_FUNCDESC_VALUE - -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4 - -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI - -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO - -- : BFD_RELOC_BFIN_GOTOFF17M4 - -- : BFD_RELOC_BFIN_GOTOFFHI - -- : BFD_RELOC_BFIN_GOTOFFLO - ADI Blackfin FD-PIC relocations. - - -- : BFD_RELOC_BFIN_GOT - ADI Blackfin GOT relocation. - - -- : BFD_RELOC_BFIN_PLTPC - ADI Blackfin PLTPC relocation. - - -- : BFD_ARELOC_BFIN_PUSH - ADI Blackfin arithmetic relocation. - - -- : BFD_ARELOC_BFIN_CONST - ADI Blackfin arithmetic relocation. - - -- : BFD_ARELOC_BFIN_ADD - ADI Blackfin arithmetic relocation. - - -- : BFD_ARELOC_BFIN_SUB - ADI Blackfin arithmetic relocation. - - -- : BFD_ARELOC_BFIN_MULT - ADI Blackfin arithmetic relocation. - - -- : BFD_ARELOC_BFIN_DIV - ADI Blackfin arithmetic relocation. - - -- : BFD_ARELOC_BFIN_MOD - ADI Blackfin arithmetic relocation. - - -- : BFD_ARELOC_BFIN_LSHIFT - ADI Blackfin arithmetic relocation. - - -- : BFD_ARELOC_BFIN_RSHIFT - ADI Blackfin arithmetic relocation. - - -- : BFD_ARELOC_BFIN_AND - ADI Blackfin arithmetic relocation. - - -- : BFD_ARELOC_BFIN_OR - ADI Blackfin arithmetic relocation. - - -- : BFD_ARELOC_BFIN_XOR - ADI Blackfin arithmetic relocation. - - -- : BFD_ARELOC_BFIN_LAND - ADI Blackfin arithmetic relocation. - - -- : BFD_ARELOC_BFIN_LOR - ADI Blackfin arithmetic relocation. - - -- : BFD_ARELOC_BFIN_LEN - ADI Blackfin arithmetic relocation. - - -- : BFD_ARELOC_BFIN_NEG - ADI Blackfin arithmetic relocation. - - -- : BFD_ARELOC_BFIN_COMP - ADI Blackfin arithmetic relocation. - - -- : BFD_ARELOC_BFIN_PAGE - ADI Blackfin arithmetic relocation. - - -- : BFD_ARELOC_BFIN_HWPAGE - ADI Blackfin arithmetic relocation. - - -- : BFD_ARELOC_BFIN_ADDR - ADI Blackfin arithmetic relocation. - - -- : 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_M32C_HI8 - -- : BFD_RELOC_M32C_RL_JUMP - -- : BFD_RELOC_M32C_RL_1ADDR - -- : BFD_RELOC_M32C_RL_2ADDR - Renesas M16C/M32C Relocations. - - -- : 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_MEP_8 - -- : BFD_RELOC_MEP_16 - -- : BFD_RELOC_MEP_32 - -- : BFD_RELOC_MEP_PCREL8A2 - -- : BFD_RELOC_MEP_PCREL12A2 - -- : BFD_RELOC_MEP_PCREL17A2 - -- : BFD_RELOC_MEP_PCREL24A2 - -- : BFD_RELOC_MEP_PCABS24A2 - -- : BFD_RELOC_MEP_LOW16 - -- : BFD_RELOC_MEP_HI16U - -- : BFD_RELOC_MEP_HI16S - -- : BFD_RELOC_MEP_GPREL - -- : BFD_RELOC_MEP_TPREL - -- : BFD_RELOC_MEP_TPREL7 - -- : BFD_RELOC_MEP_TPREL7A2 - -- : BFD_RELOC_MEP_TPREL7A4 - -- : BFD_RELOC_MEP_UIMM24 - -- : BFD_RELOC_MEP_ADDR24A4 - -- : BFD_RELOC_MEP_GNU_VTINHERIT - -- : BFD_RELOC_MEP_GNU_VTENTRY - Toshiba Media Processor 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_MS8_LDI - This is a 16 bit reloc for the AVR that stores 8 bit value (most - high 8 bit of 32 bit value) 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_MS8_LDI_NEG - This is a 16 bit reloc for the AVR that stores negated 8 bit value - (msb of 32 bit value) into 8 bit immediate value of LDI 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_LO8_LDI_GS - This is a 16 bit reloc for the AVR that stores 8 bit value - (command address) into 8 bit immediate value of LDI insn. If the - address is beyond the 128k boundary, the linker inserts a jump - stub for this reloc in the lower 128k. - - -- : 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_HI8_LDI_GS - 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. - If the address is beyond the 128k boundary, the linker inserts a - jump stub for this reloc below 128k. - - -- : 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_SCORE_DUMMY1 - Score relocations - - -- : BFD_RELOC_SCORE_GPREL15 - Low 16 bit for load/store - - -- : BFD_RELOC_SCORE_DUMMY2 - -- : BFD_RELOC_SCORE_JMP - This is a 24-bit reloc with the right 1 bit assumed to be 0 - - -- : BFD_RELOC_SCORE_BRANCH - This is a 19-bit reloc with the right 1 bit assumed to be 0 - - -- : BFD_RELOC_SCORE16_JMP - This is a 11-bit reloc with the right 1 bit assumed to be 0 - - -- : BFD_RELOC_SCORE16_BRANCH - This is a 8-bit reloc with the right 1 bit assumed to be 0 - - -- : BFD_RELOC_SCORE_GOT15 - -- : BFD_RELOC_SCORE_GOT_LO16 - -- : BFD_RELOC_SCORE_CALL15 - -- : BFD_RELOC_SCORE_DUMMY_HI16 - Undocumented Score relocs - - -- : 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_CR16_NUM8 - -- : BFD_RELOC_CR16_NUM16 - -- : BFD_RELOC_CR16_NUM32 - -- : BFD_RELOC_CR16_NUM32a - -- : BFD_RELOC_CR16_REGREL0 - -- : BFD_RELOC_CR16_REGREL4 - -- : BFD_RELOC_CR16_REGREL4a - -- : BFD_RELOC_CR16_REGREL14 - -- : BFD_RELOC_CR16_REGREL14a - -- : BFD_RELOC_CR16_REGREL16 - -- : BFD_RELOC_CR16_REGREL20 - -- : BFD_RELOC_CR16_REGREL20a - -- : BFD_RELOC_CR16_ABS20 - -- : BFD_RELOC_CR16_ABS24 - -- : BFD_RELOC_CR16_IMM4 - -- : BFD_RELOC_CR16_IMM8 - -- : BFD_RELOC_CR16_IMM16 - -- : BFD_RELOC_CR16_IMM20 - -- : BFD_RELOC_CR16_IMM24 - -- : BFD_RELOC_CR16_IMM32 - -- : BFD_RELOC_CR16_IMM32a - -- : BFD_RELOC_CR16_DISP4 - -- : BFD_RELOC_CR16_DISP8 - -- : BFD_RELOC_CR16_DISP16 - -- : BFD_RELOC_CR16_DISP20 - -- : BFD_RELOC_CR16_DISP24 - -- : BFD_RELOC_CR16_DISP24a - NS CR16 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_RELC - Self-describing complex relocations. - - -- : BFD_RELOC_XC16X_PAG - -- : BFD_RELOC_XC16X_POF - -- : BFD_RELOC_XC16X_SEG - -- : BFD_RELOC_XC16X_SOF - Infineon Relocations. - - -- : BFD_RELOC_VAX_GLOB_DAT - -- : BFD_RELOC_VAX_JMP_SLOT - -- : BFD_RELOC_VAX_RELATIVE - Relocations used by VAX ELF. - - -- : BFD_RELOC_MT_PC16 - Morpho MT - 16 bit immediate relocation. - - -- : BFD_RELOC_MT_HI16 - Morpho MT - Hi 16 bits of an address. - - -- : BFD_RELOC_MT_LO16 - Morpho MT - Low 16 bits of an address. - - -- : BFD_RELOC_MT_GNU_VTINHERIT - Morpho MT - Used to tell the linker which vtable entries are used. - - -- : BFD_RELOC_MT_GNU_VTENTRY - Morpho MT - Used to tell the linker which vtable entries are used. - - -- : BFD_RELOC_MT_PCINSN8 - Morpho MT - 8 bit immediate relocation. - - -- : 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. - - -- : BFD_RELOC_Z80_DISP8 - 8 bit signed offset in (ix+d) or (iy+d). - - -- : BFD_RELOC_Z8K_DISP7 - DJNZ offset. - - -- : BFD_RELOC_Z8K_CALLR - CALR offset. - - -- : BFD_RELOC_Z8K_IMM4L - 4 bit value. - - - typedef enum bfd_reloc_code_real bfd_reloc_code_real_type; - -2.10.2.2 `bfd_reloc_type_lookup' -................................ - -*Synopsis* - reloc_howto_type *bfd_reloc_type_lookup - (bfd *abfd, bfd_reloc_code_real_type code); - reloc_howto_type *bfd_reloc_name_lookup - (bfd *abfd, const char *reloc_name); - *Description* -Return a pointer to a howto structure which, when invoked, will perform -the relocation CODE on data from the architecture noted. - -2.10.2.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.10.2.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.10.2.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.10.2.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.10.2.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.10.2.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.11 Core files -=============== - -2.11.1 Core file functions --------------------------- - -*Description* -These are functions pertaining to core files. - -2.11.1.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.11.1.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.11.1.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. - -2.11.1.4 `generic_core_file_matches_executable_p' -................................................. - -*Synopsis* - bfd_boolean generic_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. The match is based on -executable basenames only. - - Note: When not able to determine the core file failing command or -the executable name, we still return TRUE even though we're not sure -that core file and executable match. This is to avoid generating a -false warning in situations where we really don't know whether they -match or not. - - -File: bfd.info, Node: Targets, Next: Architectures, Prev: Core Files, Up: BFD front end - -2.12 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.12.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, \ - _bfd_generic_init_private_section_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 initialize BFD private section data from one object file - to another. */ - #define bfd_init_private_section_data(ibfd, isec, obfd, osec, link_info) \ - BFD_SEND (obfd, _bfd_init_private_section_data, (ibfd, isec, obfd, osec, link_info)) - bfd_boolean (*_bfd_init_private_section_data) - (bfd *, sec_ptr, bfd *, sec_ptr, struct bfd_link_info *); - /* 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, \ - _bfd_generic_find_line, \ - NAME##_find_inliner_info, \ - 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 *); - bfd_boolean (*_bfd_find_line) - (bfd *, struct bfd_symbol **, struct bfd_symbol *, - const char **, unsigned int *); - bfd_boolean (*_bfd_find_inliner_info) - (bfd *, 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, \ - NAME##_bfd_reloc_name_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); - reloc_howto_type * - (*reloc_name_lookup) (bfd *, const char *); - - - /* 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 *, struct bfd_link_info *); - 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 *, - struct bfd_link_info *); - - /* 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.12.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.12.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 if ABFD isn't `NULL'. This -causes `bfd_check_format' to loop over all the targets to find the one -that matches the file being read. - -2.12.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.12.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.13 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.13.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_fido 9 - #define bfd_mach_mcf_isa_a_nodiv 10 - #define bfd_mach_mcf_isa_a 11 - #define bfd_mach_mcf_isa_a_mac 12 - #define bfd_mach_mcf_isa_a_emac 13 - #define bfd_mach_mcf_isa_aplus 14 - #define bfd_mach_mcf_isa_aplus_mac 15 - #define bfd_mach_mcf_isa_aplus_emac 16 - #define bfd_mach_mcf_isa_b_nousp 17 - #define bfd_mach_mcf_isa_b_nousp_mac 18 - #define bfd_mach_mcf_isa_b_nousp_emac 19 - #define bfd_mach_mcf_isa_b 20 - #define bfd_mach_mcf_isa_b_mac 21 - #define bfd_mach_mcf_isa_b_emac 22 - #define bfd_mach_mcf_isa_b_float 23 - #define bfd_mach_mcf_isa_b_float_mac 24 - #define bfd_mach_mcf_isa_b_float_emac 25 - #define bfd_mach_mcf_isa_c 26 - #define bfd_mach_mcf_isa_c_mac 27 - #define bfd_mach_mcf_isa_c_emac 28 - 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_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_spu, /* PowerPC SPU */ - #define bfd_mach_spu 256 - 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_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 - #define bfd_mach_arm_iWMMXt2 13 - 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_m32c, /* Renesas M16C/M32C. */ - #define bfd_mach_m16c 0x75 - #define bfd_mach_m32c 0x78 - 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_mep, - #define bfd_mach_mep 1 - #define bfd_mach_mep_h1 0x6831 - 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_mt, - #define bfd_mach_ms1 1 - #define bfd_mach_mrisc2 2 - #define bfd_mach_ms2 3 - 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 - #define bfd_mach_avr6 6 - bfd_arch_bfin, /* ADI Blackfin */ - #define bfd_mach_bfin 1 - bfd_arch_cr16, /* National Semiconductor CompactRISC (ie CR16). */ - #define bfd_mach_cr16 1 - 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_score, /* Sunplus score */ - 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_msp21 21 - #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_xc16x, /* Infineon's XC16X Series. */ - #define bfd_mach_xc16x 1 - #define bfd_mach_xc16xl 2 - #define bfd_mach_xc16xs 3 - 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_z80, - #define bfd_mach_z80strict 1 /* No undocumented opcodes. */ - #define bfd_mach_z80 3 /* With ixl, ixh, iyl, and iyh. */ - #define bfd_mach_z80full 7 /* All undocumented instructions. */ - #define bfd_mach_r800 11 /* R800: successor with multiplication. */ - bfd_arch_last - }; - -2.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.13.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.14 Opening and closing BFDs -============================= - -2.14.1 Functions for opening and closing ----------------------------------------- - -2.14.1.1 `bfd_fopen' -.................... - -*Synopsis* - bfd *bfd_fopen (const char *filename, const char *target, - const char *mode, int fd); - *Description* -Open the file FILENAME with the target TARGET. Return a pointer to the -created BFD. If FD is not -1, then `fdopen' is used to open the file; -otherwise, `fopen' is used. MODE is passed directly to `fopen' or -`fdopen'. - - Calls `bfd_find_target', so TARGET is interpreted as by that -function. - - The new BFD is marked as cacheable iff FD is -1. - - 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.14.1.2 `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.14.1.3 `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.14.1.4 `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.14.1.5 `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), - int (*stat) (struct bfd *abfd, - void *stream, - struct stat *sb)); - *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'). - - Calls STAT to fill in a stat structure for bfd_stat, bfd_get_size, -and bfd_get_mtime calls. STAT returns 0 on success, or returns -1 on -failure (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.14.1.6 `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.14.1.7 `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.14.1.8 `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.14.1.9 `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.14.1.10 `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.14.1.11 `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.14.1.12 `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.14.1.13 `bfd_alloc2' -...................... - -*Synopsis* - void *bfd_alloc2 (bfd *abfd, bfd_size_type nmemb, bfd_size_type size); - *Description* -Allocate a block of NMEMB elements of SIZE bytes each of memory -attached to `abfd' and return a pointer to it. - -2.14.1.14 `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.14.1.15 `bfd_zalloc2' -....................... - -*Synopsis* - void *bfd_zalloc2 (bfd *abfd, bfd_size_type nmemb, bfd_size_type size); - *Description* -Allocate a block of NMEMB elements of SIZE bytes each of zeroed memory -attached to `abfd' and return a pointer to it. - -2.14.1.16 `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.14.1.17 `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.14.1.18 `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.14.1.19 `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.14.1.20 `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.14.1.21 `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.14.1.22 `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.15 Implementation details -=========================== - -2.15.1 Internal functions -------------------------- - -*Description* -These routines are used within BFD. They are not intended for export, -but are documented here for completeness. - -2.15.1.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.15.1.2 `bfd_put_size' -....................... - -2.15.1.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.15.1.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.15.1.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.16 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.16.1 Caching functions ------------------------- - -2.16.1.1 `bfd_cache_init' -......................... - -*Synopsis* - bfd_boolean bfd_cache_init (bfd *abfd); - *Description* -Add a newly opened BFD to the cache. - -2.16.1.2 `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.16.1.3 `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.16.1.4 `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. - - -File: bfd.info, Node: Linker Functions, Next: Hash Tables, Prev: File Caching, Up: BFD front end - -2.17 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.17.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.17.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.17.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.17.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.17.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.17.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.17.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 `map_head.link_order' 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.17.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.17.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.17.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.17.3.5 `bfd_section_already_linked' -..................................... - -*Synopsis* - void bfd_section_already_linked (bfd *abfd, asection *sec, - struct bfd_link_info *info); - *Description* -Check if SEC has been already linked during a reloceatable or final -link. - #define bfd_section_already_linked(abfd, sec, info) \ - BFD_SEND (abfd, _section_already_linked, (abfd, sec, info)) - - -File: bfd.info, Node: Hash Tables, Prev: Linker Functions, Up: BFD front end - -2.18 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.18.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.18.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.18.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.18.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.18.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.18.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 (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 == NULL) - { - ret = bfd_hash_allocate (table, sizeof (* ret)); - if (ret == 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.18.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 - -3.1 What to Put Where -===================== - -All of BFD lives in one directory. - - -File: bfd.info, Node: aout, Next: coff, Prev: What to Put Where, Up: BFD back ends - -3.2 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.2.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.2.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.2.2.1 `aout_SIZE_swap_exec_header_in' -....................................... - -*Synopsis* - void aout_SIZE_swap_exec_header_in, - (bfd *abfd, - struct external_exec *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.2.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.2.2.3 `aout_SIZE_some_aout_object_p' -...................................... - -*Synopsis* - const bfd_target *aout_SIZE_some_aout_object_p - (bfd *abfd, - struct internal_exec *execp, - const bfd_target *(*callback_to_real_object_p) (bfd *)); - *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.2.2.4 `aout_SIZE_mkobject' -............................ - -*Synopsis* - bfd_boolean aout_SIZE_mkobject, (bfd *abfd); - *Description* -Initialize BFD ABFD for use with a.out files. - -3.2.2.5 `aout_SIZE_machine_type' -................................ - -*Synopsis* - enum machine_type aout_SIZE_machine_type - (enum bfd_architecture arch, - unsigned long machine, - bfd_boolean *unknown); - *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.2.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.2.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.3 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.3.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.3.2 How the coff backend works --------------------------------- - -3.3.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.3.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.3.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.3.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.3.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.3.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) - (bfd *, void *, int, int, int, int, void *); - - void (*_bfd_coff_swap_sym_in) - (bfd *, void *, void *); - - void (*_bfd_coff_swap_lineno_in) - (bfd *, void *, void *); - - unsigned int (*_bfd_coff_swap_aux_out) - (bfd *, void *, int, int, int, int, void *); - - unsigned int (*_bfd_coff_swap_sym_out) - (bfd *, void *, void *); - - unsigned int (*_bfd_coff_swap_lineno_out) - (bfd *, void *, void *); - - unsigned int (*_bfd_coff_swap_reloc_out) - (bfd *, void *, void *); - - unsigned int (*_bfd_coff_swap_filehdr_out) - (bfd *, void *, void *); - - unsigned int (*_bfd_coff_swap_aouthdr_out) - (bfd *, void *, void *); - - unsigned int (*_bfd_coff_swap_scnhdr_out) - (bfd *, void *, void *); - - 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) - (bfd *, void *, void *); - - void (*_bfd_coff_swap_aouthdr_in) - (bfd *, void *, void *); - - void (*_bfd_coff_swap_scnhdr_in) - (bfd *, void *, void *); - - void (*_bfd_coff_swap_reloc_in) - (bfd *abfd, void *, void *); - - bfd_boolean (*_bfd_coff_bad_format_hook) - (bfd *, void *); - - bfd_boolean (*_bfd_coff_set_arch_mach_hook) - (bfd *, void *); - - void * (*_bfd_coff_mkobject_hook) - (bfd *, void *, void *); - - bfd_boolean (*_bfd_styp_to_sec_flags_hook) - (bfd *, void *, const char *, asection *, flagword *); - - void (*_bfd_set_alignment_hook) - (bfd *, asection *, void *); - - bfd_boolean (*_bfd_coff_slurp_symbol_table) - (bfd *); - - bfd_boolean (*_bfd_coff_symname_in_debug) - (bfd *, struct internal_syment *); - - bfd_boolean (*_bfd_coff_pointerize_aux_hook) - (bfd *, combined_entry_type *, combined_entry_type *, - unsigned int, combined_entry_type *); - - bfd_boolean (*_bfd_coff_print_aux) - (bfd *, FILE *, combined_entry_type *, combined_entry_type *, - combined_entry_type *, unsigned int); - - void (*_bfd_coff_reloc16_extra_cases) - (bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *, - bfd_byte *, unsigned int *, unsigned int *); - - int (*_bfd_coff_reloc16_estimate) - (bfd *, asection *, arelent *, unsigned int, - struct bfd_link_info *); - - enum coff_symbol_classification (*_bfd_coff_classify_symbol) - (bfd *, struct internal_syment *); - - bfd_boolean (*_bfd_coff_compute_section_file_positions) - (bfd *); - - bfd_boolean (*_bfd_coff_start_final_link) - (bfd *, struct bfd_link_info *); - - bfd_boolean (*_bfd_coff_relocate_section) - (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, - struct internal_reloc *, struct internal_syment *, asection **); - - reloc_howto_type *(*_bfd_coff_rtype_to_howto) - (bfd *, asection *, struct internal_reloc *, - struct coff_link_hash_entry *, struct internal_syment *, - bfd_vma *); - - bfd_boolean (*_bfd_coff_adjust_symndx) - (bfd *, struct bfd_link_info *, bfd *, asection *, - struct internal_reloc *, bfd_boolean *); - - bfd_boolean (*_bfd_coff_link_add_one_symbol) - (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) - (bfd *, struct coff_final_link_info *); - - bfd_boolean (*_bfd_coff_final_link_postscript) - (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.3.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.3.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.3.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.4 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.4.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.5 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.5.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.5.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. - - -File: bfd.info, Node: mmo section mapping, Prev: Symbol-table, Up: mmo - -3.5.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: BFD 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. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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: BFD Index, Prev: GNU Free Documentation License, Up: Top - -BFD 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) -* aout_SIZE_machine_type: aout. (line 147) -* aout_SIZE_mkobject: aout. (line 139) -* aout_SIZE_new_section_hook: aout. (line 177) -* aout_SIZE_set_arch_mach: aout. (line 164) -* 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 339) -* BFD: Overview. (line 6) -* BFD canonical format: Canonical format. (line 11) -* bfd_alloc: Opening and Closing. - (line 210) -* bfd_alloc2: Opening and Closing. - (line 219) -* bfd_alt_mach_code: BFD front end. (line 602) -* bfd_arch_bits_per_address: Architectures. (line 490) -* bfd_arch_bits_per_byte: Architectures. (line 482) -* bfd_arch_get_compatible: Architectures. (line 425) -* bfd_arch_list: Architectures. (line 416) -* bfd_arch_mach_octets_per_byte: Architectures. (line 559) -* BFD_ARELOC_BFIN_ADD: howto manager. (line 944) -* BFD_ARELOC_BFIN_ADDR: howto manager. (line 995) -* BFD_ARELOC_BFIN_AND: howto manager. (line 965) -* BFD_ARELOC_BFIN_COMP: howto manager. (line 986) -* BFD_ARELOC_BFIN_CONST: howto manager. (line 941) -* BFD_ARELOC_BFIN_DIV: howto manager. (line 953) -* BFD_ARELOC_BFIN_HWPAGE: howto manager. (line 992) -* BFD_ARELOC_BFIN_LAND: howto manager. (line 974) -* BFD_ARELOC_BFIN_LEN: howto manager. (line 980) -* BFD_ARELOC_BFIN_LOR: howto manager. (line 977) -* BFD_ARELOC_BFIN_LSHIFT: howto manager. (line 959) -* BFD_ARELOC_BFIN_MOD: howto manager. (line 956) -* BFD_ARELOC_BFIN_MULT: howto manager. (line 950) -* BFD_ARELOC_BFIN_NEG: howto manager. (line 983) -* BFD_ARELOC_BFIN_OR: howto manager. (line 968) -* BFD_ARELOC_BFIN_PAGE: howto manager. (line 989) -* BFD_ARELOC_BFIN_PUSH: howto manager. (line 938) -* BFD_ARELOC_BFIN_RSHIFT: howto manager. (line 962) -* BFD_ARELOC_BFIN_SUB: howto manager. (line 947) -* BFD_ARELOC_BFIN_XOR: howto manager. (line 971) -* bfd_cache_close: File Caching. (line 26) -* bfd_cache_close_all: File Caching. (line 39) -* bfd_cache_init: File Caching. (line 18) -* bfd_calc_gnu_debuglink_crc32: Opening and Closing. - (line 246) -* bfd_canonicalize_reloc: BFD front end. (line 321) -* bfd_canonicalize_symtab: symbol handling functions. - (line 50) -* bfd_check_format: Formats. (line 21) -* bfd_check_format_matches: Formats. (line 52) -* bfd_check_overflow: typedef arelent. (line 351) -* bfd_close: Opening and Closing. - (line 135) -* bfd_close_all_done: Opening and Closing. - (line 153) -* bfd_coff_backend_data: coff. (line 246) -* bfd_copy_private_bfd_data: BFD front end. (line 460) -* bfd_copy_private_header_data: BFD front end. (line 442) -* bfd_copy_private_section_data: section prototypes. (line 255) -* bfd_copy_private_symbol_data: symbol handling functions. - (line 140) -* bfd_core_file_failing_command: Core Files. (line 12) -* bfd_core_file_failing_signal: Core Files. (line 21) -* bfd_create: Opening and Closing. - (line 172) -* bfd_create_gnu_debuglink_section: Opening and Closing. - (line 312) -* bfd_decode_symclass: symbol handling functions. - (line 111) -* bfd_default_arch_struct: Architectures. (line 437) -* bfd_default_compatible: Architectures. (line 499) -* bfd_default_reloc_type_lookup: howto manager. (line 2081) -* bfd_default_scan: Architectures. (line 508) -* bfd_default_set_arch_mach: Architectures. (line 455) -* bfd_demangle: BFD front end. (line 700) -* bfd_elf_find_section: elf. (line 13) -* bfd_emul_get_commonpagesize: BFD front end. (line 680) -* bfd_emul_get_maxpagesize: BFD front end. (line 660) -* bfd_emul_set_commonpagesize: BFD front end. (line 691) -* bfd_emul_set_maxpagesize: BFD front end. (line 671) -* bfd_errmsg: BFD front end. (line 246) -* bfd_fdopenr: Opening and Closing. - (line 46) -* bfd_fill_in_gnu_debuglink_section: Opening and Closing. - (line 326) -* bfd_find_target: bfd_target. (line 439) -* bfd_follow_gnu_debuglink: Opening and Closing. - (line 291) -* bfd_fopen: Opening and Closing. - (line 9) -* bfd_format_string: Formats. (line 79) -* bfd_generic_discard_group: section prototypes. (line 281) -* bfd_generic_gc_sections: howto manager. (line 2112) -* bfd_generic_get_relocated_section_contents: howto manager. (line 2132) -* bfd_generic_is_group_section: section prototypes. (line 273) -* bfd_generic_merge_sections: howto manager. (line 2122) -* bfd_generic_relax_section: howto manager. (line 2099) -* bfd_get_arch: Architectures. (line 466) -* bfd_get_arch_info: Architectures. (line 518) -* bfd_get_arch_size: BFD front end. (line 365) -* bfd_get_error: BFD front end. (line 227) -* bfd_get_error_handler: BFD front end. (line 297) -* bfd_get_gp_size: BFD front end. (line 406) -* bfd_get_mach: Architectures. (line 474) -* bfd_get_mtime: BFD front end. (line 741) -* bfd_get_next_mapent: Archives. (line 52) -* bfd_get_reloc_code_name: howto manager. (line 2090) -* bfd_get_reloc_size: typedef arelent. (line 330) -* bfd_get_reloc_upper_bound: BFD front end. (line 311) -* 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 228) -* bfd_get_sign_extend_vma: BFD front end. (line 378) -* bfd_get_size <1>: Internal. (line 25) -* bfd_get_size: BFD front end. (line 750) -* 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 97) -* 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 11) -* bfd_install_relocation: typedef arelent. (line 392) -* 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_link_split_section: Writing the symbol table. - (line 44) -* bfd_log2: Internal. (line 164) -* bfd_lookup_arch: Architectures. (line 526) -* 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 196) -* bfd_make_section: section prototypes. (line 129) -* bfd_make_section_anyway: section prototypes. (line 100) -* bfd_make_section_anyway_with_flags: section prototypes. (line 82) -* bfd_make_section_old_way: section prototypes. (line 62) -* bfd_make_section_with_flags: section prototypes. (line 116) -* bfd_make_writable: Opening and Closing. - (line 182) -* bfd_malloc_and_get_section: section prototypes. (line 245) -* bfd_map_over_sections: section prototypes. (line 155) -* bfd_merge_private_bfd_data: BFD front end. (line 476) -* bfd_octets_per_byte: Architectures. (line 549) -* bfd_open_file: File Caching. (line 52) -* bfd_openr: Opening and Closing. - (line 30) -* bfd_openr_iovec: Opening and Closing. - (line 76) -* bfd_openr_next_archived_file: Archives. (line 78) -* bfd_openstreamr: Opening and Closing. - (line 67) -* bfd_openw: Opening and Closing. - (line 123) -* bfd_perform_relocation: typedef arelent. (line 367) -* bfd_perror: BFD front end. (line 255) -* bfd_preserve_finish: BFD front end. (line 650) -* bfd_preserve_restore: BFD front end. (line 640) -* bfd_preserve_save: BFD front end. (line 624) -* bfd_print_symbol_vandf: symbol handling functions. - (line 70) -* bfd_printable_arch_mach: Architectures. (line 537) -* bfd_printable_name: Architectures. (line 397) -* bfd_put_size: Internal. (line 22) -* 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 1771) -* BFD_RELOC_16C_ABS20_C: howto manager. (line 1772) -* BFD_RELOC_16C_ABS24: howto manager. (line 1773) -* BFD_RELOC_16C_ABS24_C: howto manager. (line 1774) -* BFD_RELOC_16C_DISP04: howto manager. (line 1751) -* BFD_RELOC_16C_DISP04_C: howto manager. (line 1752) -* BFD_RELOC_16C_DISP08: howto manager. (line 1753) -* BFD_RELOC_16C_DISP08_C: howto manager. (line 1754) -* BFD_RELOC_16C_DISP16: howto manager. (line 1755) -* BFD_RELOC_16C_DISP16_C: howto manager. (line 1756) -* BFD_RELOC_16C_DISP24: howto manager. (line 1757) -* BFD_RELOC_16C_DISP24_C: howto manager. (line 1758) -* BFD_RELOC_16C_DISP24a: howto manager. (line 1759) -* BFD_RELOC_16C_DISP24a_C: howto manager. (line 1760) -* BFD_RELOC_16C_IMM04: howto manager. (line 1775) -* BFD_RELOC_16C_IMM04_C: howto manager. (line 1776) -* BFD_RELOC_16C_IMM16: howto manager. (line 1777) -* BFD_RELOC_16C_IMM16_C: howto manager. (line 1778) -* BFD_RELOC_16C_IMM20: howto manager. (line 1779) -* BFD_RELOC_16C_IMM20_C: howto manager. (line 1780) -* BFD_RELOC_16C_IMM24: howto manager. (line 1781) -* BFD_RELOC_16C_IMM24_C: howto manager. (line 1782) -* BFD_RELOC_16C_IMM32: howto manager. (line 1783) -* BFD_RELOC_16C_IMM32_C: howto manager. (line 1784) -* BFD_RELOC_16C_NUM08: howto manager. (line 1745) -* BFD_RELOC_16C_NUM08_C: howto manager. (line 1746) -* BFD_RELOC_16C_NUM16: howto manager. (line 1747) -* BFD_RELOC_16C_NUM16_C: howto manager. (line 1748) -* BFD_RELOC_16C_NUM32: howto manager. (line 1749) -* BFD_RELOC_16C_NUM32_C: howto manager. (line 1750) -* BFD_RELOC_16C_REG04: howto manager. (line 1761) -* BFD_RELOC_16C_REG04_C: howto manager. (line 1762) -* BFD_RELOC_16C_REG04a: howto manager. (line 1763) -* BFD_RELOC_16C_REG04a_C: howto manager. (line 1764) -* BFD_RELOC_16C_REG14: howto manager. (line 1765) -* BFD_RELOC_16C_REG14_C: howto manager. (line 1766) -* BFD_RELOC_16C_REG16: howto manager. (line 1767) -* BFD_RELOC_16C_REG16_C: howto manager. (line 1768) -* BFD_RELOC_16C_REG20: howto manager. (line 1769) -* BFD_RELOC_16C_REG20_C: howto manager. (line 1770) -* 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 451) -* BFD_RELOC_386_GLOB_DAT: howto manager. (line 452) -* BFD_RELOC_386_GOT32: howto manager. (line 449) -* BFD_RELOC_386_GOTOFF: howto manager. (line 455) -* BFD_RELOC_386_GOTPC: howto manager. (line 456) -* BFD_RELOC_386_JUMP_SLOT: howto manager. (line 453) -* BFD_RELOC_386_PLT32: howto manager. (line 450) -* BFD_RELOC_386_RELATIVE: howto manager. (line 454) -* BFD_RELOC_386_TLS_DESC: howto manager. (line 471) -* BFD_RELOC_386_TLS_DESC_CALL: howto manager. (line 470) -* BFD_RELOC_386_TLS_DTPMOD32: howto manager. (line 466) -* BFD_RELOC_386_TLS_DTPOFF32: howto manager. (line 467) -* BFD_RELOC_386_TLS_GD: howto manager. (line 461) -* BFD_RELOC_386_TLS_GOTDESC: howto manager. (line 469) -* BFD_RELOC_386_TLS_GOTIE: howto manager. (line 459) -* BFD_RELOC_386_TLS_IE: howto manager. (line 458) -* BFD_RELOC_386_TLS_IE_32: howto manager. (line 464) -* BFD_RELOC_386_TLS_LDM: howto manager. (line 462) -* BFD_RELOC_386_TLS_LDO_32: howto manager. (line 463) -* BFD_RELOC_386_TLS_LE: howto manager. (line 460) -* BFD_RELOC_386_TLS_LE_32: howto manager. (line 465) -* BFD_RELOC_386_TLS_TPOFF: howto manager. (line 457) -* BFD_RELOC_386_TLS_TPOFF32: howto manager. (line 468) -* BFD_RELOC_390_12: howto manager. (line 1437) -* BFD_RELOC_390_20: howto manager. (line 1537) -* BFD_RELOC_390_COPY: howto manager. (line 1446) -* BFD_RELOC_390_GLOB_DAT: howto manager. (line 1449) -* BFD_RELOC_390_GOT12: howto manager. (line 1440) -* BFD_RELOC_390_GOT16: howto manager. (line 1461) -* BFD_RELOC_390_GOT20: howto manager. (line 1538) -* BFD_RELOC_390_GOT64: howto manager. (line 1479) -* BFD_RELOC_390_GOTENT: howto manager. (line 1485) -* BFD_RELOC_390_GOTOFF64: howto manager. (line 1488) -* BFD_RELOC_390_GOTPC: howto manager. (line 1458) -* BFD_RELOC_390_GOTPCDBL: howto manager. (line 1476) -* BFD_RELOC_390_GOTPLT12: howto manager. (line 1491) -* BFD_RELOC_390_GOTPLT16: howto manager. (line 1494) -* BFD_RELOC_390_GOTPLT20: howto manager. (line 1539) -* BFD_RELOC_390_GOTPLT32: howto manager. (line 1497) -* BFD_RELOC_390_GOTPLT64: howto manager. (line 1500) -* BFD_RELOC_390_GOTPLTENT: howto manager. (line 1503) -* BFD_RELOC_390_JMP_SLOT: howto manager. (line 1452) -* BFD_RELOC_390_PC16DBL: howto manager. (line 1464) -* BFD_RELOC_390_PC32DBL: howto manager. (line 1470) -* BFD_RELOC_390_PLT16DBL: howto manager. (line 1467) -* BFD_RELOC_390_PLT32: howto manager. (line 1443) -* BFD_RELOC_390_PLT32DBL: howto manager. (line 1473) -* BFD_RELOC_390_PLT64: howto manager. (line 1482) -* BFD_RELOC_390_PLTOFF16: howto manager. (line 1506) -* BFD_RELOC_390_PLTOFF32: howto manager. (line 1509) -* BFD_RELOC_390_PLTOFF64: howto manager. (line 1512) -* BFD_RELOC_390_RELATIVE: howto manager. (line 1455) -* BFD_RELOC_390_TLS_DTPMOD: howto manager. (line 1532) -* BFD_RELOC_390_TLS_DTPOFF: howto manager. (line 1533) -* BFD_RELOC_390_TLS_GD32: howto manager. (line 1518) -* BFD_RELOC_390_TLS_GD64: howto manager. (line 1519) -* BFD_RELOC_390_TLS_GDCALL: howto manager. (line 1516) -* BFD_RELOC_390_TLS_GOTIE12: howto manager. (line 1520) -* BFD_RELOC_390_TLS_GOTIE20: howto manager. (line 1540) -* BFD_RELOC_390_TLS_GOTIE32: howto manager. (line 1521) -* BFD_RELOC_390_TLS_GOTIE64: howto manager. (line 1522) -* BFD_RELOC_390_TLS_IE32: howto manager. (line 1525) -* BFD_RELOC_390_TLS_IE64: howto manager. (line 1526) -* BFD_RELOC_390_TLS_IEENT: howto manager. (line 1527) -* BFD_RELOC_390_TLS_LDCALL: howto manager. (line 1517) -* BFD_RELOC_390_TLS_LDM32: howto manager. (line 1523) -* BFD_RELOC_390_TLS_LDM64: howto manager. (line 1524) -* BFD_RELOC_390_TLS_LDO32: howto manager. (line 1530) -* BFD_RELOC_390_TLS_LDO64: howto manager. (line 1531) -* BFD_RELOC_390_TLS_LE32: howto manager. (line 1528) -* BFD_RELOC_390_TLS_LE64: howto manager. (line 1529) -* BFD_RELOC_390_TLS_LOAD: howto manager. (line 1515) -* BFD_RELOC_390_TLS_TPOFF: howto manager. (line 1534) -* 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 1879) -* BFD_RELOC_860_GLOB_DAT: howto manager. (line 1880) -* BFD_RELOC_860_HAGOT: howto manager. (line 1905) -* BFD_RELOC_860_HAGOTOFF: howto manager. (line 1906) -* BFD_RELOC_860_HAPC: howto manager. (line 1907) -* BFD_RELOC_860_HIGH: howto manager. (line 1908) -* BFD_RELOC_860_HIGHADJ: howto manager. (line 1904) -* BFD_RELOC_860_HIGOT: howto manager. (line 1909) -* BFD_RELOC_860_HIGOTOFF: howto manager. (line 1910) -* BFD_RELOC_860_JUMP_SLOT: howto manager. (line 1881) -* BFD_RELOC_860_LOGOT0: howto manager. (line 1893) -* BFD_RELOC_860_LOGOT1: howto manager. (line 1895) -* BFD_RELOC_860_LOGOTOFF0: howto manager. (line 1897) -* BFD_RELOC_860_LOGOTOFF1: howto manager. (line 1899) -* BFD_RELOC_860_LOGOTOFF2: howto manager. (line 1901) -* BFD_RELOC_860_LOGOTOFF3: howto manager. (line 1902) -* BFD_RELOC_860_LOPC: howto manager. (line 1903) -* BFD_RELOC_860_LOW0: howto manager. (line 1886) -* BFD_RELOC_860_LOW1: howto manager. (line 1888) -* BFD_RELOC_860_LOW2: howto manager. (line 1890) -* BFD_RELOC_860_LOW3: howto manager. (line 1892) -* BFD_RELOC_860_PC16: howto manager. (line 1885) -* BFD_RELOC_860_PC26: howto manager. (line 1883) -* BFD_RELOC_860_PLT26: howto manager. (line 1884) -* BFD_RELOC_860_RELATIVE: howto manager. (line 1882) -* BFD_RELOC_860_SPGOT0: howto manager. (line 1894) -* BFD_RELOC_860_SPGOT1: howto manager. (line 1896) -* BFD_RELOC_860_SPGOTOFF0: howto manager. (line 1898) -* BFD_RELOC_860_SPGOTOFF1: howto manager. (line 1900) -* BFD_RELOC_860_SPLIT0: howto manager. (line 1887) -* BFD_RELOC_860_SPLIT1: howto manager. (line 1889) -* BFD_RELOC_860_SPLIT2: howto manager. (line 1891) -* 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 275) -* BFD_RELOC_ALPHA_CODEADDR: howto manager. (line 266) -* BFD_RELOC_ALPHA_DTPMOD64: howto manager. (line 282) -* BFD_RELOC_ALPHA_DTPREL16: howto manager. (line 287) -* BFD_RELOC_ALPHA_DTPREL64: howto manager. (line 284) -* BFD_RELOC_ALPHA_DTPREL_HI16: howto manager. (line 285) -* BFD_RELOC_ALPHA_DTPREL_LO16: howto manager. (line 286) -* BFD_RELOC_ALPHA_ELF_LITERAL: howto manager. (line 231) -* BFD_RELOC_ALPHA_GOTDTPREL16: howto manager. (line 283) -* BFD_RELOC_ALPHA_GOTTPREL16: howto manager. (line 288) -* BFD_RELOC_ALPHA_GPDISP: howto manager. (line 225) -* BFD_RELOC_ALPHA_GPDISP_HI16: howto manager. (line 211) -* BFD_RELOC_ALPHA_GPDISP_LO16: howto manager. (line 219) -* BFD_RELOC_ALPHA_GPREL_HI16: howto manager. (line 270) -* BFD_RELOC_ALPHA_GPREL_LO16: howto manager. (line 271) -* BFD_RELOC_ALPHA_HINT: howto manager. (line 257) -* BFD_RELOC_ALPHA_LINKAGE: howto manager. (line 262) -* BFD_RELOC_ALPHA_LITERAL: howto manager. (line 230) -* BFD_RELOC_ALPHA_LITUSE: howto manager. (line 232) -* BFD_RELOC_ALPHA_TLSGD: howto manager. (line 280) -* BFD_RELOC_ALPHA_TLSLDM: howto manager. (line 281) -* BFD_RELOC_ALPHA_TPREL16: howto manager. (line 292) -* BFD_RELOC_ALPHA_TPREL64: howto manager. (line 289) -* BFD_RELOC_ALPHA_TPREL_HI16: howto manager. (line 290) -* BFD_RELOC_ALPHA_TPREL_LO16: howto manager. (line 291) -* BFD_RELOC_ARC_B22_PCREL: howto manager. (line 873) -* BFD_RELOC_ARC_B26: howto manager. (line 878) -* BFD_RELOC_ARM_ADR_IMM: howto manager. (line 766) -* BFD_RELOC_ARM_ADRL_IMMEDIATE: howto manager. (line 753) -* BFD_RELOC_ARM_ALU_PC_G0: howto manager. (line 723) -* BFD_RELOC_ARM_ALU_PC_G0_NC: howto manager. (line 722) -* BFD_RELOC_ARM_ALU_PC_G1: howto manager. (line 725) -* BFD_RELOC_ARM_ALU_PC_G1_NC: howto manager. (line 724) -* BFD_RELOC_ARM_ALU_PC_G2: howto manager. (line 726) -* BFD_RELOC_ARM_ALU_SB_G0: howto manager. (line 737) -* BFD_RELOC_ARM_ALU_SB_G0_NC: howto manager. (line 736) -* BFD_RELOC_ARM_ALU_SB_G1: howto manager. (line 739) -* BFD_RELOC_ARM_ALU_SB_G1_NC: howto manager. (line 738) -* BFD_RELOC_ARM_ALU_SB_G2: howto manager. (line 740) -* BFD_RELOC_ARM_CP_OFF_IMM: howto manager. (line 762) -* BFD_RELOC_ARM_CP_OFF_IMM_S2: howto manager. (line 763) -* BFD_RELOC_ARM_GLOB_DAT: howto manager. (line 704) -* BFD_RELOC_ARM_GOT32: howto manager. (line 705) -* BFD_RELOC_ARM_GOTOFF: howto manager. (line 708) -* BFD_RELOC_ARM_GOTPC: howto manager. (line 709) -* BFD_RELOC_ARM_HWLITERAL: howto manager. (line 773) -* BFD_RELOC_ARM_IMMEDIATE: howto manager. (line 752) -* BFD_RELOC_ARM_IN_POOL: howto manager. (line 769) -* BFD_RELOC_ARM_JUMP_SLOT: howto manager. (line 703) -* BFD_RELOC_ARM_LDC_PC_G0: howto manager. (line 733) -* BFD_RELOC_ARM_LDC_PC_G1: howto manager. (line 734) -* BFD_RELOC_ARM_LDC_PC_G2: howto manager. (line 735) -* BFD_RELOC_ARM_LDC_SB_G0: howto manager. (line 747) -* BFD_RELOC_ARM_LDC_SB_G1: howto manager. (line 748) -* BFD_RELOC_ARM_LDC_SB_G2: howto manager. (line 749) -* BFD_RELOC_ARM_LDR_IMM: howto manager. (line 767) -* BFD_RELOC_ARM_LDR_PC_G0: howto manager. (line 727) -* BFD_RELOC_ARM_LDR_PC_G1: howto manager. (line 728) -* BFD_RELOC_ARM_LDR_PC_G2: howto manager. (line 729) -* BFD_RELOC_ARM_LDR_SB_G0: howto manager. (line 741) -* BFD_RELOC_ARM_LDR_SB_G1: howto manager. (line 742) -* BFD_RELOC_ARM_LDR_SB_G2: howto manager. (line 743) -* BFD_RELOC_ARM_LDRS_PC_G0: howto manager. (line 730) -* BFD_RELOC_ARM_LDRS_PC_G1: howto manager. (line 731) -* BFD_RELOC_ARM_LDRS_PC_G2: howto manager. (line 732) -* BFD_RELOC_ARM_LDRS_SB_G0: howto manager. (line 744) -* BFD_RELOC_ARM_LDRS_SB_G1: howto manager. (line 745) -* BFD_RELOC_ARM_LDRS_SB_G2: howto manager. (line 746) -* BFD_RELOC_ARM_LITERAL: howto manager. (line 768) -* BFD_RELOC_ARM_MOVT: howto manager. (line 694) -* BFD_RELOC_ARM_MOVT_PCREL: howto manager. (line 696) -* BFD_RELOC_ARM_MOVW: howto manager. (line 693) -* BFD_RELOC_ARM_MOVW_PCREL: howto manager. (line 695) -* BFD_RELOC_ARM_MULTI: howto manager. (line 761) -* BFD_RELOC_ARM_OFFSET_IMM: howto manager. (line 667) -* BFD_RELOC_ARM_OFFSET_IMM8: howto manager. (line 770) -* BFD_RELOC_ARM_PCREL_BLX: howto manager. (line 638) -* BFD_RELOC_ARM_PCREL_BRANCH: howto manager. (line 634) -* BFD_RELOC_ARM_PCREL_CALL: howto manager. (line 648) -* BFD_RELOC_ARM_PCREL_JUMP: howto manager. (line 652) -* BFD_RELOC_ARM_PLT32: howto manager. (line 706) -* BFD_RELOC_ARM_PREL31: howto manager. (line 690) -* BFD_RELOC_ARM_RELATIVE: howto manager. (line 707) -* BFD_RELOC_ARM_ROSEGREL32: howto manager. (line 679) -* BFD_RELOC_ARM_SBREL32: howto manager. (line 682) -* BFD_RELOC_ARM_SHIFT_IMM: howto manager. (line 758) -* BFD_RELOC_ARM_SMC: howto manager. (line 759) -* BFD_RELOC_ARM_SWI: howto manager. (line 760) -* BFD_RELOC_ARM_T32_ADD_IMM: howto manager. (line 755) -* BFD_RELOC_ARM_T32_ADD_PC12: howto manager. (line 757) -* BFD_RELOC_ARM_T32_CP_OFF_IMM: howto manager. (line 764) -* BFD_RELOC_ARM_T32_CP_OFF_IMM_S2: howto manager. (line 765) -* BFD_RELOC_ARM_T32_IMM12: howto manager. (line 756) -* BFD_RELOC_ARM_T32_IMMEDIATE: howto manager. (line 754) -* BFD_RELOC_ARM_T32_OFFSET_IMM: howto manager. (line 772) -* BFD_RELOC_ARM_T32_OFFSET_U8: howto manager. (line 771) -* BFD_RELOC_ARM_TARGET1: howto manager. (line 675) -* BFD_RELOC_ARM_TARGET2: howto manager. (line 685) -* BFD_RELOC_ARM_THUMB_ADD: howto manager. (line 774) -* BFD_RELOC_ARM_THUMB_IMM: howto manager. (line 775) -* BFD_RELOC_ARM_THUMB_MOVT: howto manager. (line 698) -* BFD_RELOC_ARM_THUMB_MOVT_PCREL: howto manager. (line 700) -* BFD_RELOC_ARM_THUMB_MOVW: howto manager. (line 697) -* BFD_RELOC_ARM_THUMB_MOVW_PCREL: howto manager. (line 699) -* BFD_RELOC_ARM_THUMB_OFFSET: howto manager. (line 671) -* BFD_RELOC_ARM_THUMB_SHIFT: howto manager. (line 776) -* BFD_RELOC_ARM_TLS_DTPMOD32: howto manager. (line 716) -* BFD_RELOC_ARM_TLS_DTPOFF32: howto manager. (line 715) -* BFD_RELOC_ARM_TLS_GD32: howto manager. (line 712) -* BFD_RELOC_ARM_TLS_IE32: howto manager. (line 718) -* BFD_RELOC_ARM_TLS_LDM32: howto manager. (line 714) -* BFD_RELOC_ARM_TLS_LDO32: howto manager. (line 713) -* BFD_RELOC_ARM_TLS_LE32: howto manager. (line 719) -* BFD_RELOC_ARM_TLS_TPOFF32: howto manager. (line 717) -* BFD_RELOC_AVR_13_PCREL: howto manager. (line 1338) -* BFD_RELOC_AVR_16_PM: howto manager. (line 1342) -* BFD_RELOC_AVR_6: howto manager. (line 1429) -* BFD_RELOC_AVR_6_ADIW: howto manager. (line 1433) -* BFD_RELOC_AVR_7_PCREL: howto manager. (line 1334) -* BFD_RELOC_AVR_CALL: howto manager. (line 1421) -* BFD_RELOC_AVR_HH8_LDI: howto manager. (line 1354) -* BFD_RELOC_AVR_HH8_LDI_NEG: howto manager. (line 1373) -* BFD_RELOC_AVR_HH8_LDI_PM: howto manager. (line 1402) -* BFD_RELOC_AVR_HH8_LDI_PM_NEG: howto manager. (line 1416) -* BFD_RELOC_AVR_HI8_LDI: howto manager. (line 1350) -* BFD_RELOC_AVR_HI8_LDI_GS: howto manager. (line 1396) -* BFD_RELOC_AVR_HI8_LDI_NEG: howto manager. (line 1368) -* BFD_RELOC_AVR_HI8_LDI_PM: howto manager. (line 1392) -* BFD_RELOC_AVR_HI8_LDI_PM_NEG: howto manager. (line 1411) -* BFD_RELOC_AVR_LDI: howto manager. (line 1425) -* BFD_RELOC_AVR_LO8_LDI: howto manager. (line 1346) -* BFD_RELOC_AVR_LO8_LDI_GS: howto manager. (line 1386) -* BFD_RELOC_AVR_LO8_LDI_NEG: howto manager. (line 1363) -* BFD_RELOC_AVR_LO8_LDI_PM: howto manager. (line 1382) -* BFD_RELOC_AVR_LO8_LDI_PM_NEG: howto manager. (line 1407) -* BFD_RELOC_AVR_MS8_LDI: howto manager. (line 1359) -* BFD_RELOC_AVR_MS8_LDI_NEG: howto manager. (line 1378) -* BFD_RELOC_BFIN_10_PCREL: howto manager. (line 898) -* BFD_RELOC_BFIN_11_PCREL: howto manager. (line 901) -* BFD_RELOC_BFIN_12_PCREL_JUMP: howto manager. (line 904) -* BFD_RELOC_BFIN_12_PCREL_JUMP_S: howto manager. (line 907) -* BFD_RELOC_BFIN_16_HIGH: howto manager. (line 886) -* BFD_RELOC_BFIN_16_IMM: howto manager. (line 883) -* BFD_RELOC_BFIN_16_LOW: howto manager. (line 895) -* BFD_RELOC_BFIN_24_PCREL_CALL_X: howto manager. (line 910) -* BFD_RELOC_BFIN_24_PCREL_JUMP_L: howto manager. (line 913) -* BFD_RELOC_BFIN_4_PCREL: howto manager. (line 889) -* BFD_RELOC_BFIN_5_PCREL: howto manager. (line 892) -* BFD_RELOC_BFIN_FUNCDESC: howto manager. (line 919) -* BFD_RELOC_BFIN_FUNCDESC_GOT17M4: howto manager. (line 920) -* BFD_RELOC_BFIN_FUNCDESC_GOTHI: howto manager. (line 921) -* BFD_RELOC_BFIN_FUNCDESC_GOTLO: howto manager. (line 922) -* BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4: howto manager. (line 924) -* BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI: howto manager. (line 925) -* BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO: howto manager. (line 926) -* BFD_RELOC_BFIN_FUNCDESC_VALUE: howto manager. (line 923) -* BFD_RELOC_BFIN_GOT: howto manager. (line 932) -* BFD_RELOC_BFIN_GOT17M4: howto manager. (line 916) -* BFD_RELOC_BFIN_GOTHI: howto manager. (line 917) -* BFD_RELOC_BFIN_GOTLO: howto manager. (line 918) -* BFD_RELOC_BFIN_GOTOFF17M4: howto manager. (line 927) -* BFD_RELOC_BFIN_GOTOFFHI: howto manager. (line 928) -* BFD_RELOC_BFIN_GOTOFFLO: howto manager. (line 929) -* BFD_RELOC_BFIN_PLTPC: howto manager. (line 935) -* bfd_reloc_code_type: howto manager. (line 10) -* BFD_RELOC_CR16_ABS20: howto manager. (line 1799) -* BFD_RELOC_CR16_ABS24: howto manager. (line 1800) -* BFD_RELOC_CR16_DISP16: howto manager. (line 1810) -* BFD_RELOC_CR16_DISP20: howto manager. (line 1811) -* BFD_RELOC_CR16_DISP24: howto manager. (line 1812) -* BFD_RELOC_CR16_DISP24a: howto manager. (line 1813) -* BFD_RELOC_CR16_DISP4: howto manager. (line 1808) -* BFD_RELOC_CR16_DISP8: howto manager. (line 1809) -* BFD_RELOC_CR16_IMM16: howto manager. (line 1803) -* BFD_RELOC_CR16_IMM20: howto manager. (line 1804) -* BFD_RELOC_CR16_IMM24: howto manager. (line 1805) -* BFD_RELOC_CR16_IMM32: howto manager. (line 1806) -* BFD_RELOC_CR16_IMM32a: howto manager. (line 1807) -* BFD_RELOC_CR16_IMM4: howto manager. (line 1801) -* BFD_RELOC_CR16_IMM8: howto manager. (line 1802) -* BFD_RELOC_CR16_NUM16: howto manager. (line 1788) -* BFD_RELOC_CR16_NUM32: howto manager. (line 1789) -* BFD_RELOC_CR16_NUM32a: howto manager. (line 1790) -* BFD_RELOC_CR16_NUM8: howto manager. (line 1787) -* BFD_RELOC_CR16_REGREL0: howto manager. (line 1791) -* BFD_RELOC_CR16_REGREL14: howto manager. (line 1794) -* BFD_RELOC_CR16_REGREL14a: howto manager. (line 1795) -* BFD_RELOC_CR16_REGREL16: howto manager. (line 1796) -* BFD_RELOC_CR16_REGREL20: howto manager. (line 1797) -* BFD_RELOC_CR16_REGREL20a: howto manager. (line 1798) -* BFD_RELOC_CR16_REGREL4: howto manager. (line 1792) -* BFD_RELOC_CR16_REGREL4a: howto manager. (line 1793) -* BFD_RELOC_CRIS_16_GOT: howto manager. (line 1860) -* BFD_RELOC_CRIS_16_GOTPLT: howto manager. (line 1866) -* BFD_RELOC_CRIS_32_GOT: howto manager. (line 1857) -* BFD_RELOC_CRIS_32_GOTPLT: howto manager. (line 1863) -* BFD_RELOC_CRIS_32_GOTREL: howto manager. (line 1869) -* BFD_RELOC_CRIS_32_PLT_GOTREL: howto manager. (line 1872) -* BFD_RELOC_CRIS_32_PLT_PCREL: howto manager. (line 1875) -* BFD_RELOC_CRIS_BDISP8: howto manager. (line 1838) -* BFD_RELOC_CRIS_COPY: howto manager. (line 1851) -* BFD_RELOC_CRIS_GLOB_DAT: howto manager. (line 1852) -* BFD_RELOC_CRIS_JUMP_SLOT: howto manager. (line 1853) -* BFD_RELOC_CRIS_LAPCQ_OFFSET: howto manager. (line 1846) -* BFD_RELOC_CRIS_RELATIVE: howto manager. (line 1854) -* BFD_RELOC_CRIS_SIGNED_16: howto manager. (line 1844) -* BFD_RELOC_CRIS_SIGNED_6: howto manager. (line 1840) -* BFD_RELOC_CRIS_SIGNED_8: howto manager. (line 1842) -* BFD_RELOC_CRIS_UNSIGNED_16: howto manager. (line 1845) -* BFD_RELOC_CRIS_UNSIGNED_4: howto manager. (line 1847) -* BFD_RELOC_CRIS_UNSIGNED_5: howto manager. (line 1839) -* BFD_RELOC_CRIS_UNSIGNED_6: howto manager. (line 1841) -* BFD_RELOC_CRIS_UNSIGNED_8: howto manager. (line 1843) -* BFD_RELOC_CRX_ABS16: howto manager. (line 1826) -* BFD_RELOC_CRX_ABS32: howto manager. (line 1827) -* BFD_RELOC_CRX_IMM16: howto manager. (line 1831) -* BFD_RELOC_CRX_IMM32: howto manager. (line 1832) -* BFD_RELOC_CRX_NUM16: howto manager. (line 1829) -* BFD_RELOC_CRX_NUM32: howto manager. (line 1830) -* BFD_RELOC_CRX_NUM8: howto manager. (line 1828) -* BFD_RELOC_CRX_REGREL12: howto manager. (line 1822) -* BFD_RELOC_CRX_REGREL22: howto manager. (line 1823) -* BFD_RELOC_CRX_REGREL28: howto manager. (line 1824) -* BFD_RELOC_CRX_REGREL32: howto manager. (line 1825) -* BFD_RELOC_CRX_REL16: howto manager. (line 1819) -* BFD_RELOC_CRX_REL24: howto manager. (line 1820) -* BFD_RELOC_CRX_REL32: howto manager. (line 1821) -* BFD_RELOC_CRX_REL4: howto manager. (line 1816) -* BFD_RELOC_CRX_REL8: howto manager. (line 1817) -* BFD_RELOC_CRX_REL8_CMP: howto manager. (line 1818) -* BFD_RELOC_CRX_SWITCH16: howto manager. (line 1834) -* BFD_RELOC_CRX_SWITCH32: howto manager. (line 1835) -* BFD_RELOC_CRX_SWITCH8: howto manager. (line 1833) -* BFD_RELOC_CTOR: howto manager. (line 628) -* BFD_RELOC_D10V_10_PCREL_L: howto manager. (line 1002) -* BFD_RELOC_D10V_10_PCREL_R: howto manager. (line 998) -* BFD_RELOC_D10V_18: howto manager. (line 1007) -* BFD_RELOC_D10V_18_PCREL: howto manager. (line 1010) -* BFD_RELOC_D30V_15: howto manager. (line 1025) -* BFD_RELOC_D30V_15_PCREL: howto manager. (line 1029) -* BFD_RELOC_D30V_15_PCREL_R: howto manager. (line 1033) -* BFD_RELOC_D30V_21: howto manager. (line 1038) -* BFD_RELOC_D30V_21_PCREL: howto manager. (line 1042) -* BFD_RELOC_D30V_21_PCREL_R: howto manager. (line 1046) -* BFD_RELOC_D30V_32: howto manager. (line 1051) -* BFD_RELOC_D30V_32_PCREL: howto manager. (line 1054) -* BFD_RELOC_D30V_6: howto manager. (line 1013) -* BFD_RELOC_D30V_9_PCREL: howto manager. (line 1016) -* BFD_RELOC_D30V_9_PCREL_R: howto manager. (line 1020) -* BFD_RELOC_DLX_HI16_S: howto manager. (line 1057) -* BFD_RELOC_DLX_JMP26: howto manager. (line 1063) -* BFD_RELOC_DLX_LO16: howto manager. (line 1060) -* BFD_RELOC_FR30_10_IN_8: howto manager. (line 1242) -* BFD_RELOC_FR30_12_PCREL: howto manager. (line 1250) -* BFD_RELOC_FR30_20: howto manager. (line 1226) -* BFD_RELOC_FR30_48: howto manager. (line 1223) -* BFD_RELOC_FR30_6_IN_4: howto manager. (line 1230) -* BFD_RELOC_FR30_8_IN_8: howto manager. (line 1234) -* BFD_RELOC_FR30_9_IN_8: howto manager. (line 1238) -* BFD_RELOC_FR30_9_PCREL: howto manager. (line 1246) -* BFD_RELOC_FRV_FUNCDESC: howto manager. (line 393) -* BFD_RELOC_FRV_FUNCDESC_GOT12: howto manager. (line 394) -* BFD_RELOC_FRV_FUNCDESC_GOTHI: howto manager. (line 395) -* BFD_RELOC_FRV_FUNCDESC_GOTLO: howto manager. (line 396) -* BFD_RELOC_FRV_FUNCDESC_GOTOFF12: howto manager. (line 398) -* BFD_RELOC_FRV_FUNCDESC_GOTOFFHI: howto manager. (line 399) -* BFD_RELOC_FRV_FUNCDESC_GOTOFFLO: howto manager. (line 400) -* BFD_RELOC_FRV_FUNCDESC_VALUE: howto manager. (line 397) -* BFD_RELOC_FRV_GETTLSOFF: howto manager. (line 404) -* BFD_RELOC_FRV_GETTLSOFF_RELAX: howto manager. (line 417) -* BFD_RELOC_FRV_GOT12: howto manager. (line 390) -* BFD_RELOC_FRV_GOTHI: howto manager. (line 391) -* BFD_RELOC_FRV_GOTLO: howto manager. (line 392) -* BFD_RELOC_FRV_GOTOFF12: howto manager. (line 401) -* BFD_RELOC_FRV_GOTOFFHI: howto manager. (line 402) -* BFD_RELOC_FRV_GOTOFFLO: howto manager. (line 403) -* BFD_RELOC_FRV_GOTTLSDESC12: howto manager. (line 406) -* BFD_RELOC_FRV_GOTTLSDESCHI: howto manager. (line 407) -* BFD_RELOC_FRV_GOTTLSDESCLO: howto manager. (line 408) -* BFD_RELOC_FRV_GOTTLSOFF12: howto manager. (line 412) -* BFD_RELOC_FRV_GOTTLSOFFHI: howto manager. (line 413) -* BFD_RELOC_FRV_GOTTLSOFFLO: howto manager. (line 414) -* BFD_RELOC_FRV_GPREL12: howto manager. (line 385) -* BFD_RELOC_FRV_GPREL32: howto manager. (line 387) -* BFD_RELOC_FRV_GPRELHI: howto manager. (line 388) -* BFD_RELOC_FRV_GPRELLO: howto manager. (line 389) -* BFD_RELOC_FRV_GPRELU12: howto manager. (line 386) -* BFD_RELOC_FRV_HI16: howto manager. (line 384) -* BFD_RELOC_FRV_LABEL16: howto manager. (line 381) -* BFD_RELOC_FRV_LABEL24: howto manager. (line 382) -* BFD_RELOC_FRV_LO16: howto manager. (line 383) -* BFD_RELOC_FRV_TLSDESC_RELAX: howto manager. (line 416) -* BFD_RELOC_FRV_TLSDESC_VALUE: howto manager. (line 405) -* BFD_RELOC_FRV_TLSMOFF: howto manager. (line 419) -* BFD_RELOC_FRV_TLSMOFF12: howto manager. (line 409) -* BFD_RELOC_FRV_TLSMOFFHI: howto manager. (line 410) -* BFD_RELOC_FRV_TLSMOFFLO: howto manager. (line 411) -* BFD_RELOC_FRV_TLSOFF: howto manager. (line 415) -* BFD_RELOC_FRV_TLSOFF_RELAX: howto manager. (line 418) -* BFD_RELOC_GPREL16: howto manager. (line 106) -* BFD_RELOC_GPREL32: howto manager. (line 107) -* BFD_RELOC_H8_DIR16A8: howto manager. (line 1917) -* BFD_RELOC_H8_DIR16R8: howto manager. (line 1918) -* BFD_RELOC_H8_DIR24A8: howto manager. (line 1919) -* BFD_RELOC_H8_DIR24R8: howto manager. (line 1920) -* BFD_RELOC_H8_DIR32A16: howto manager. (line 1921) -* BFD_RELOC_HI16: howto manager. (line 305) -* BFD_RELOC_HI16_BASEREL: howto manager. (line 82) -* BFD_RELOC_HI16_GOTOFF: howto manager. (line 57) -* BFD_RELOC_HI16_PCREL: howto manager. (line 317) -* BFD_RELOC_HI16_PLTOFF: howto manager. (line 69) -* BFD_RELOC_HI16_S: howto manager. (line 308) -* BFD_RELOC_HI16_S_BASEREL: howto manager. (line 83) -* BFD_RELOC_HI16_S_GOTOFF: howto manager. (line 58) -* BFD_RELOC_HI16_S_PCREL: howto manager. (line 320) -* BFD_RELOC_HI16_S_PLTOFF: howto manager. (line 70) -* BFD_RELOC_HI22: howto manager. (line 101) -* BFD_RELOC_I370_D12: howto manager. (line 625) -* BFD_RELOC_I960_CALLJ: howto manager. (line 113) -* BFD_RELOC_IA64_COPY: howto manager. (line 1681) -* BFD_RELOC_IA64_DIR32LSB: howto manager. (line 1626) -* BFD_RELOC_IA64_DIR32MSB: howto manager. (line 1625) -* BFD_RELOC_IA64_DIR64LSB: howto manager. (line 1628) -* BFD_RELOC_IA64_DIR64MSB: howto manager. (line 1627) -* BFD_RELOC_IA64_DTPMOD64LSB: howto manager. (line 1691) -* BFD_RELOC_IA64_DTPMOD64MSB: howto manager. (line 1690) -* BFD_RELOC_IA64_DTPREL14: howto manager. (line 1693) -* BFD_RELOC_IA64_DTPREL22: howto manager. (line 1694) -* BFD_RELOC_IA64_DTPREL32LSB: howto manager. (line 1697) -* BFD_RELOC_IA64_DTPREL32MSB: howto manager. (line 1696) -* BFD_RELOC_IA64_DTPREL64I: howto manager. (line 1695) -* BFD_RELOC_IA64_DTPREL64LSB: howto manager. (line 1699) -* BFD_RELOC_IA64_DTPREL64MSB: howto manager. (line 1698) -* BFD_RELOC_IA64_FPTR32LSB: howto manager. (line 1643) -* BFD_RELOC_IA64_FPTR32MSB: howto manager. (line 1642) -* BFD_RELOC_IA64_FPTR64I: howto manager. (line 1641) -* BFD_RELOC_IA64_FPTR64LSB: howto manager. (line 1645) -* BFD_RELOC_IA64_FPTR64MSB: howto manager. (line 1644) -* BFD_RELOC_IA64_GPREL22: howto manager. (line 1629) -* BFD_RELOC_IA64_GPREL32LSB: howto manager. (line 1632) -* BFD_RELOC_IA64_GPREL32MSB: howto manager. (line 1631) -* BFD_RELOC_IA64_GPREL64I: howto manager. (line 1630) -* BFD_RELOC_IA64_GPREL64LSB: howto manager. (line 1634) -* BFD_RELOC_IA64_GPREL64MSB: howto manager. (line 1633) -* BFD_RELOC_IA64_IMM14: howto manager. (line 1622) -* BFD_RELOC_IA64_IMM22: howto manager. (line 1623) -* BFD_RELOC_IA64_IMM64: howto manager. (line 1624) -* BFD_RELOC_IA64_IPLTLSB: howto manager. (line 1680) -* BFD_RELOC_IA64_IPLTMSB: howto manager. (line 1679) -* BFD_RELOC_IA64_LDXMOV: howto manager. (line 1683) -* BFD_RELOC_IA64_LTOFF22: howto manager. (line 1635) -* BFD_RELOC_IA64_LTOFF22X: howto manager. (line 1682) -* BFD_RELOC_IA64_LTOFF64I: howto manager. (line 1636) -* BFD_RELOC_IA64_LTOFF_DTPMOD22: howto manager. (line 1692) -* BFD_RELOC_IA64_LTOFF_DTPREL22: howto manager. (line 1700) -* BFD_RELOC_IA64_LTOFF_FPTR22: howto manager. (line 1657) -* BFD_RELOC_IA64_LTOFF_FPTR32LSB: howto manager. (line 1660) -* BFD_RELOC_IA64_LTOFF_FPTR32MSB: howto manager. (line 1659) -* BFD_RELOC_IA64_LTOFF_FPTR64I: howto manager. (line 1658) -* BFD_RELOC_IA64_LTOFF_FPTR64LSB: howto manager. (line 1662) -* BFD_RELOC_IA64_LTOFF_FPTR64MSB: howto manager. (line 1661) -* BFD_RELOC_IA64_LTOFF_TPREL22: howto manager. (line 1689) -* BFD_RELOC_IA64_LTV32LSB: howto manager. (line 1676) -* BFD_RELOC_IA64_LTV32MSB: howto manager. (line 1675) -* BFD_RELOC_IA64_LTV64LSB: howto manager. (line 1678) -* BFD_RELOC_IA64_LTV64MSB: howto manager. (line 1677) -* BFD_RELOC_IA64_PCREL21B: howto manager. (line 1646) -* BFD_RELOC_IA64_PCREL21BI: howto manager. (line 1647) -* BFD_RELOC_IA64_PCREL21F: howto manager. (line 1649) -* BFD_RELOC_IA64_PCREL21M: howto manager. (line 1648) -* BFD_RELOC_IA64_PCREL22: howto manager. (line 1650) -* BFD_RELOC_IA64_PCREL32LSB: howto manager. (line 1654) -* BFD_RELOC_IA64_PCREL32MSB: howto manager. (line 1653) -* BFD_RELOC_IA64_PCREL60B: howto manager. (line 1651) -* BFD_RELOC_IA64_PCREL64I: howto manager. (line 1652) -* BFD_RELOC_IA64_PCREL64LSB: howto manager. (line 1656) -* BFD_RELOC_IA64_PCREL64MSB: howto manager. (line 1655) -* BFD_RELOC_IA64_PLTOFF22: howto manager. (line 1637) -* BFD_RELOC_IA64_PLTOFF64I: howto manager. (line 1638) -* BFD_RELOC_IA64_PLTOFF64LSB: howto manager. (line 1640) -* BFD_RELOC_IA64_PLTOFF64MSB: howto manager. (line 1639) -* BFD_RELOC_IA64_REL32LSB: howto manager. (line 1672) -* BFD_RELOC_IA64_REL32MSB: howto manager. (line 1671) -* BFD_RELOC_IA64_REL64LSB: howto manager. (line 1674) -* BFD_RELOC_IA64_REL64MSB: howto manager. (line 1673) -* BFD_RELOC_IA64_SECREL32LSB: howto manager. (line 1668) -* BFD_RELOC_IA64_SECREL32MSB: howto manager. (line 1667) -* BFD_RELOC_IA64_SECREL64LSB: howto manager. (line 1670) -* BFD_RELOC_IA64_SECREL64MSB: howto manager. (line 1669) -* BFD_RELOC_IA64_SEGREL32LSB: howto manager. (line 1664) -* BFD_RELOC_IA64_SEGREL32MSB: howto manager. (line 1663) -* BFD_RELOC_IA64_SEGREL64LSB: howto manager. (line 1666) -* BFD_RELOC_IA64_SEGREL64MSB: howto manager. (line 1665) -* BFD_RELOC_IA64_TPREL14: howto manager. (line 1684) -* BFD_RELOC_IA64_TPREL22: howto manager. (line 1685) -* BFD_RELOC_IA64_TPREL64I: howto manager. (line 1686) -* BFD_RELOC_IA64_TPREL64LSB: howto manager. (line 1688) -* BFD_RELOC_IA64_TPREL64MSB: howto manager. (line 1687) -* BFD_RELOC_IP2K_ADDR16CJP: howto manager. (line 1574) -* BFD_RELOC_IP2K_BANK: howto manager. (line 1571) -* BFD_RELOC_IP2K_EX8DATA: howto manager. (line 1582) -* BFD_RELOC_IP2K_FR9: howto manager. (line 1568) -* BFD_RELOC_IP2K_FR_OFFSET: howto manager. (line 1595) -* BFD_RELOC_IP2K_HI8DATA: howto manager. (line 1581) -* BFD_RELOC_IP2K_HI8INSN: howto manager. (line 1586) -* BFD_RELOC_IP2K_LO8DATA: howto manager. (line 1580) -* BFD_RELOC_IP2K_LO8INSN: howto manager. (line 1585) -* BFD_RELOC_IP2K_PAGE3: howto manager. (line 1577) -* BFD_RELOC_IP2K_PC_SKIP: howto manager. (line 1589) -* BFD_RELOC_IP2K_TEXT: howto manager. (line 1592) -* BFD_RELOC_IQ2000_OFFSET_16: howto manager. (line 1971) -* BFD_RELOC_IQ2000_OFFSET_21: howto manager. (line 1972) -* BFD_RELOC_IQ2000_UHI16: howto manager. (line 1973) -* BFD_RELOC_LO10: howto manager. (line 102) -* BFD_RELOC_LO16: howto manager. (line 314) -* BFD_RELOC_LO16_BASEREL: howto manager. (line 81) -* BFD_RELOC_LO16_GOTOFF: howto manager. (line 56) -* BFD_RELOC_LO16_PCREL: howto manager. (line 323) -* BFD_RELOC_LO16_PLTOFF: howto manager. (line 68) -* BFD_RELOC_M32C_HI8: howto manager. (line 1066) -* BFD_RELOC_M32C_RL_1ADDR: howto manager. (line 1068) -* BFD_RELOC_M32C_RL_2ADDR: howto manager. (line 1069) -* BFD_RELOC_M32C_RL_JUMP: howto manager. (line 1067) -* BFD_RELOC_M32R_10_PCREL: howto manager. (line 1076) -* BFD_RELOC_M32R_18_PCREL: howto manager. (line 1080) -* BFD_RELOC_M32R_24: howto manager. (line 1072) -* BFD_RELOC_M32R_26_PCREL: howto manager. (line 1083) -* BFD_RELOC_M32R_26_PLTREL: howto manager. (line 1102) -* BFD_RELOC_M32R_COPY: howto manager. (line 1103) -* BFD_RELOC_M32R_GLOB_DAT: howto manager. (line 1104) -* BFD_RELOC_M32R_GOT16_HI_SLO: howto manager. (line 1113) -* BFD_RELOC_M32R_GOT16_HI_ULO: howto manager. (line 1112) -* BFD_RELOC_M32R_GOT16_LO: howto manager. (line 1114) -* BFD_RELOC_M32R_GOT24: howto manager. (line 1101) -* BFD_RELOC_M32R_GOTOFF: howto manager. (line 1107) -* BFD_RELOC_M32R_GOTOFF_HI_SLO: howto manager. (line 1109) -* BFD_RELOC_M32R_GOTOFF_HI_ULO: howto manager. (line 1108) -* BFD_RELOC_M32R_GOTOFF_LO: howto manager. (line 1110) -* BFD_RELOC_M32R_GOTPC24: howto manager. (line 1111) -* BFD_RELOC_M32R_GOTPC_HI_SLO: howto manager. (line 1116) -* BFD_RELOC_M32R_GOTPC_HI_ULO: howto manager. (line 1115) -* BFD_RELOC_M32R_GOTPC_LO: howto manager. (line 1117) -* BFD_RELOC_M32R_HI16_SLO: howto manager. (line 1090) -* BFD_RELOC_M32R_HI16_ULO: howto manager. (line 1086) -* BFD_RELOC_M32R_JMP_SLOT: howto manager. (line 1105) -* BFD_RELOC_M32R_LO16: howto manager. (line 1094) -* BFD_RELOC_M32R_RELATIVE: howto manager. (line 1106) -* BFD_RELOC_M32R_SDA16: howto manager. (line 1097) -* BFD_RELOC_M68HC11_24: howto manager. (line 1736) -* BFD_RELOC_M68HC11_3B: howto manager. (line 1711) -* BFD_RELOC_M68HC11_HI8: howto manager. (line 1703) -* BFD_RELOC_M68HC11_LO16: howto manager. (line 1725) -* BFD_RELOC_M68HC11_LO8: howto manager. (line 1707) -* BFD_RELOC_M68HC11_PAGE: howto manager. (line 1731) -* BFD_RELOC_M68HC11_RL_GROUP: howto manager. (line 1720) -* BFD_RELOC_M68HC11_RL_JUMP: howto manager. (line 1714) -* BFD_RELOC_M68HC12_5B: howto manager. (line 1742) -* BFD_RELOC_MCORE_PCREL_32: howto manager. (line 1257) -* BFD_RELOC_MCORE_PCREL_IMM11BY2: howto manager. (line 1255) -* BFD_RELOC_MCORE_PCREL_IMM4BY2: howto manager. (line 1256) -* BFD_RELOC_MCORE_PCREL_IMM8BY4: howto manager. (line 1254) -* BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2: howto manager. (line 1258) -* BFD_RELOC_MCORE_RVA: howto manager. (line 1259) -* BFD_RELOC_MEP_16: howto manager. (line 1263) -* BFD_RELOC_MEP_32: howto manager. (line 1264) -* BFD_RELOC_MEP_8: howto manager. (line 1262) -* BFD_RELOC_MEP_ADDR24A4: howto manager. (line 1279) -* BFD_RELOC_MEP_GNU_VTENTRY: howto manager. (line 1281) -* BFD_RELOC_MEP_GNU_VTINHERIT: howto manager. (line 1280) -* BFD_RELOC_MEP_GPREL: howto manager. (line 1273) -* BFD_RELOC_MEP_HI16S: howto manager. (line 1272) -* BFD_RELOC_MEP_HI16U: howto manager. (line 1271) -* BFD_RELOC_MEP_LOW16: howto manager. (line 1270) -* BFD_RELOC_MEP_PCABS24A2: howto manager. (line 1269) -* BFD_RELOC_MEP_PCREL12A2: howto manager. (line 1266) -* BFD_RELOC_MEP_PCREL17A2: howto manager. (line 1267) -* BFD_RELOC_MEP_PCREL24A2: howto manager. (line 1268) -* BFD_RELOC_MEP_PCREL8A2: howto manager. (line 1265) -* BFD_RELOC_MEP_TPREL: howto manager. (line 1274) -* BFD_RELOC_MEP_TPREL7: howto manager. (line 1275) -* BFD_RELOC_MEP_TPREL7A2: howto manager. (line 1276) -* BFD_RELOC_MEP_TPREL7A4: howto manager. (line 1277) -* BFD_RELOC_MEP_UIMM24: howto manager. (line 1278) -* BFD_RELOC_MIPS16_GPREL: howto manager. (line 302) -* BFD_RELOC_MIPS16_HI16: howto manager. (line 326) -* BFD_RELOC_MIPS16_HI16_S: howto manager. (line 329) -* BFD_RELOC_MIPS16_JMP: howto manager. (line 299) -* BFD_RELOC_MIPS16_LO16: howto manager. (line 335) -* BFD_RELOC_MIPS_CALL16: howto manager. (line 342) -* BFD_RELOC_MIPS_CALL_HI16: howto manager. (line 345) -* BFD_RELOC_MIPS_CALL_LO16: howto manager. (line 346) -* BFD_RELOC_MIPS_COPY: howto manager. (line 377) -* BFD_RELOC_MIPS_DELETE: howto manager. (line 355) -* BFD_RELOC_MIPS_GOT16: howto manager. (line 341) -* BFD_RELOC_MIPS_GOT_DISP: howto manager. (line 350) -* BFD_RELOC_MIPS_GOT_HI16: howto manager. (line 343) -* BFD_RELOC_MIPS_GOT_LO16: howto manager. (line 344) -* BFD_RELOC_MIPS_GOT_OFST: howto manager. (line 349) -* BFD_RELOC_MIPS_GOT_PAGE: howto manager. (line 348) -* BFD_RELOC_MIPS_HIGHER: howto manager. (line 357) -* BFD_RELOC_MIPS_HIGHEST: howto manager. (line 356) -* BFD_RELOC_MIPS_INSERT_A: howto manager. (line 353) -* BFD_RELOC_MIPS_INSERT_B: howto manager. (line 354) -* BFD_RELOC_MIPS_JALR: howto manager. (line 361) -* BFD_RELOC_MIPS_JMP: howto manager. (line 295) -* BFD_RELOC_MIPS_JUMP_SLOT: howto manager. (line 378) -* BFD_RELOC_MIPS_LITERAL: howto manager. (line 338) -* BFD_RELOC_MIPS_REL16: howto manager. (line 359) -* BFD_RELOC_MIPS_RELGOT: howto manager. (line 360) -* BFD_RELOC_MIPS_SCN_DISP: howto manager. (line 358) -* BFD_RELOC_MIPS_SHIFT5: howto manager. (line 351) -* BFD_RELOC_MIPS_SHIFT6: howto manager. (line 352) -* BFD_RELOC_MIPS_SUB: howto manager. (line 347) -* BFD_RELOC_MIPS_TLS_DTPMOD32: howto manager. (line 362) -* BFD_RELOC_MIPS_TLS_DTPMOD64: howto manager. (line 364) -* BFD_RELOC_MIPS_TLS_DTPREL32: howto manager. (line 363) -* BFD_RELOC_MIPS_TLS_DTPREL64: howto manager. (line 365) -* BFD_RELOC_MIPS_TLS_DTPREL_HI16: howto manager. (line 368) -* BFD_RELOC_MIPS_TLS_DTPREL_LO16: howto manager. (line 369) -* BFD_RELOC_MIPS_TLS_GD: howto manager. (line 366) -* BFD_RELOC_MIPS_TLS_GOTTPREL: howto manager. (line 370) -* BFD_RELOC_MIPS_TLS_LDM: howto manager. (line 367) -* BFD_RELOC_MIPS_TLS_TPREL32: howto manager. (line 371) -* BFD_RELOC_MIPS_TLS_TPREL64: howto manager. (line 372) -* BFD_RELOC_MIPS_TLS_TPREL_HI16: howto manager. (line 373) -* BFD_RELOC_MIPS_TLS_TPREL_LO16: howto manager. (line 374) -* BFD_RELOC_MMIX_ADDR19: howto manager. (line 1310) -* BFD_RELOC_MMIX_ADDR27: howto manager. (line 1314) -* BFD_RELOC_MMIX_BASE_PLUS_OFFSET: howto manager. (line 1326) -* BFD_RELOC_MMIX_CBRANCH: howto manager. (line 1290) -* BFD_RELOC_MMIX_CBRANCH_1: howto manager. (line 1292) -* BFD_RELOC_MMIX_CBRANCH_2: howto manager. (line 1293) -* BFD_RELOC_MMIX_CBRANCH_3: howto manager. (line 1294) -* BFD_RELOC_MMIX_CBRANCH_J: howto manager. (line 1291) -* BFD_RELOC_MMIX_GETA: howto manager. (line 1284) -* BFD_RELOC_MMIX_GETA_1: howto manager. (line 1285) -* BFD_RELOC_MMIX_GETA_2: howto manager. (line 1286) -* BFD_RELOC_MMIX_GETA_3: howto manager. (line 1287) -* BFD_RELOC_MMIX_JMP: howto manager. (line 1304) -* BFD_RELOC_MMIX_JMP_1: howto manager. (line 1305) -* BFD_RELOC_MMIX_JMP_2: howto manager. (line 1306) -* BFD_RELOC_MMIX_JMP_3: howto manager. (line 1307) -* BFD_RELOC_MMIX_LOCAL: howto manager. (line 1330) -* BFD_RELOC_MMIX_PUSHJ: howto manager. (line 1297) -* BFD_RELOC_MMIX_PUSHJ_1: howto manager. (line 1298) -* BFD_RELOC_MMIX_PUSHJ_2: howto manager. (line 1299) -* BFD_RELOC_MMIX_PUSHJ_3: howto manager. (line 1300) -* BFD_RELOC_MMIX_PUSHJ_STUBBABLE: howto manager. (line 1301) -* BFD_RELOC_MMIX_REG: howto manager. (line 1322) -* BFD_RELOC_MMIX_REG_OR_BYTE: howto manager. (line 1318) -* BFD_RELOC_MN10300_16_PCREL: howto manager. (line 1192) -* BFD_RELOC_MN10300_32_PCREL: howto manager. (line 1188) -* BFD_RELOC_MN10300_COPY: howto manager. (line 437) -* BFD_RELOC_MN10300_GLOB_DAT: howto manager. (line 440) -* BFD_RELOC_MN10300_GOT16: howto manager. (line 433) -* BFD_RELOC_MN10300_GOT24: howto manager. (line 429) -* BFD_RELOC_MN10300_GOT32: howto manager. (line 425) -* BFD_RELOC_MN10300_GOTOFF24: howto manager. (line 422) -* BFD_RELOC_MN10300_JMP_SLOT: howto manager. (line 443) -* BFD_RELOC_MN10300_RELATIVE: howto manager. (line 446) -* BFD_RELOC_MSP430_10_PCREL: howto manager. (line 1962) -* BFD_RELOC_MSP430_16: howto manager. (line 1964) -* BFD_RELOC_MSP430_16_BYTE: howto manager. (line 1966) -* BFD_RELOC_MSP430_16_PCREL: howto manager. (line 1963) -* BFD_RELOC_MSP430_16_PCREL_BYTE: howto manager. (line 1965) -* BFD_RELOC_MSP430_2X_PCREL: howto manager. (line 1967) -* BFD_RELOC_MSP430_RL_PCREL: howto manager. (line 1968) -* BFD_RELOC_MT_GNU_VTENTRY: howto manager. (line 1956) -* BFD_RELOC_MT_GNU_VTINHERIT: howto manager. (line 1953) -* BFD_RELOC_MT_HI16: howto manager. (line 1947) -* BFD_RELOC_MT_LO16: howto manager. (line 1950) -* BFD_RELOC_MT_PC16: howto manager. (line 1944) -* BFD_RELOC_MT_PCINSN8: howto manager. (line 1959) -* BFD_RELOC_NONE: howto manager. (line 116) -* BFD_RELOC_NS32K_DISP_16: howto manager. (line 509) -* BFD_RELOC_NS32K_DISP_16_PCREL: howto manager. (line 512) -* BFD_RELOC_NS32K_DISP_32: howto manager. (line 510) -* BFD_RELOC_NS32K_DISP_32_PCREL: howto manager. (line 513) -* BFD_RELOC_NS32K_DISP_8: howto manager. (line 508) -* BFD_RELOC_NS32K_DISP_8_PCREL: howto manager. (line 511) -* BFD_RELOC_NS32K_IMM_16: howto manager. (line 503) -* BFD_RELOC_NS32K_IMM_16_PCREL: howto manager. (line 506) -* BFD_RELOC_NS32K_IMM_32: howto manager. (line 504) -* BFD_RELOC_NS32K_IMM_32_PCREL: howto manager. (line 507) -* BFD_RELOC_NS32K_IMM_8: howto manager. (line 502) -* BFD_RELOC_NS32K_IMM_8_PCREL: howto manager. (line 505) -* BFD_RELOC_OPENRISC_ABS_26: howto manager. (line 1913) -* BFD_RELOC_OPENRISC_REL_26: howto manager. (line 1914) -* BFD_RELOC_PDP11_DISP_6_PCREL: howto manager. (line 517) -* BFD_RELOC_PDP11_DISP_8_PCREL: howto manager. (line 516) -* BFD_RELOC_PJ_CODE_DIR16: howto manager. (line 522) -* BFD_RELOC_PJ_CODE_DIR32: howto manager. (line 523) -* BFD_RELOC_PJ_CODE_HI16: howto manager. (line 520) -* BFD_RELOC_PJ_CODE_LO16: howto manager. (line 521) -* BFD_RELOC_PJ_CODE_REL16: howto manager. (line 524) -* BFD_RELOC_PJ_CODE_REL32: howto manager. (line 525) -* BFD_RELOC_PPC64_ADDR16_DS: howto manager. (line 570) -* BFD_RELOC_PPC64_ADDR16_LO_DS: howto manager. (line 571) -* BFD_RELOC_PPC64_DTPREL16_DS: howto manager. (line 617) -* BFD_RELOC_PPC64_DTPREL16_HIGHER: howto manager. (line 619) -* BFD_RELOC_PPC64_DTPREL16_HIGHERA: howto manager. (line 620) -* BFD_RELOC_PPC64_DTPREL16_HIGHEST: howto manager. (line 621) -* BFD_RELOC_PPC64_DTPREL16_HIGHESTA: howto manager. (line 622) -* BFD_RELOC_PPC64_DTPREL16_LO_DS: howto manager. (line 618) -* BFD_RELOC_PPC64_GOT16_DS: howto manager. (line 572) -* BFD_RELOC_PPC64_GOT16_LO_DS: howto manager. (line 573) -* BFD_RELOC_PPC64_HIGHER: howto manager. (line 558) -* BFD_RELOC_PPC64_HIGHER_S: howto manager. (line 559) -* BFD_RELOC_PPC64_HIGHEST: howto manager. (line 560) -* BFD_RELOC_PPC64_HIGHEST_S: howto manager. (line 561) -* BFD_RELOC_PPC64_PLT16_LO_DS: howto manager. (line 574) -* BFD_RELOC_PPC64_PLTGOT16: howto manager. (line 566) -* BFD_RELOC_PPC64_PLTGOT16_DS: howto manager. (line 579) -* BFD_RELOC_PPC64_PLTGOT16_HA: howto manager. (line 569) -* BFD_RELOC_PPC64_PLTGOT16_HI: howto manager. (line 568) -* BFD_RELOC_PPC64_PLTGOT16_LO: howto manager. (line 567) -* BFD_RELOC_PPC64_PLTGOT16_LO_DS: howto manager. (line 580) -* BFD_RELOC_PPC64_SECTOFF_DS: howto manager. (line 575) -* BFD_RELOC_PPC64_SECTOFF_LO_DS: howto manager. (line 576) -* BFD_RELOC_PPC64_TOC: howto manager. (line 565) -* BFD_RELOC_PPC64_TOC16_DS: howto manager. (line 577) -* BFD_RELOC_PPC64_TOC16_HA: howto manager. (line 564) -* BFD_RELOC_PPC64_TOC16_HI: howto manager. (line 563) -* BFD_RELOC_PPC64_TOC16_LO: howto manager. (line 562) -* BFD_RELOC_PPC64_TOC16_LO_DS: howto manager. (line 578) -* BFD_RELOC_PPC64_TPREL16_DS: howto manager. (line 611) -* BFD_RELOC_PPC64_TPREL16_HIGHER: howto manager. (line 613) -* BFD_RELOC_PPC64_TPREL16_HIGHERA: howto manager. (line 614) -* BFD_RELOC_PPC64_TPREL16_HIGHEST: howto manager. (line 615) -* BFD_RELOC_PPC64_TPREL16_HIGHESTA: howto manager. (line 616) -* BFD_RELOC_PPC64_TPREL16_LO_DS: howto manager. (line 612) -* BFD_RELOC_PPC_B16: howto manager. (line 531) -* BFD_RELOC_PPC_B16_BRNTAKEN: howto manager. (line 533) -* BFD_RELOC_PPC_B16_BRTAKEN: howto manager. (line 532) -* BFD_RELOC_PPC_B26: howto manager. (line 528) -* BFD_RELOC_PPC_BA16: howto manager. (line 534) -* BFD_RELOC_PPC_BA16_BRNTAKEN: howto manager. (line 536) -* BFD_RELOC_PPC_BA16_BRTAKEN: howto manager. (line 535) -* BFD_RELOC_PPC_BA26: howto manager. (line 529) -* BFD_RELOC_PPC_COPY: howto manager. (line 537) -* BFD_RELOC_PPC_DTPMOD: howto manager. (line 584) -* BFD_RELOC_PPC_DTPREL: howto manager. (line 594) -* BFD_RELOC_PPC_DTPREL16: howto manager. (line 590) -* BFD_RELOC_PPC_DTPREL16_HA: howto manager. (line 593) -* BFD_RELOC_PPC_DTPREL16_HI: howto manager. (line 592) -* BFD_RELOC_PPC_DTPREL16_LO: howto manager. (line 591) -* BFD_RELOC_PPC_EMB_BIT_FLD: howto manager. (line 556) -* BFD_RELOC_PPC_EMB_MRKREF: howto manager. (line 551) -* BFD_RELOC_PPC_EMB_NADDR16: howto manager. (line 543) -* BFD_RELOC_PPC_EMB_NADDR16_HA: howto manager. (line 546) -* BFD_RELOC_PPC_EMB_NADDR16_HI: howto manager. (line 545) -* BFD_RELOC_PPC_EMB_NADDR16_LO: howto manager. (line 544) -* BFD_RELOC_PPC_EMB_NADDR32: howto manager. (line 542) -* BFD_RELOC_PPC_EMB_RELSDA: howto manager. (line 557) -* BFD_RELOC_PPC_EMB_RELSEC16: howto manager. (line 552) -* BFD_RELOC_PPC_EMB_RELST_HA: howto manager. (line 555) -* BFD_RELOC_PPC_EMB_RELST_HI: howto manager. (line 554) -* BFD_RELOC_PPC_EMB_RELST_LO: howto manager. (line 553) -* BFD_RELOC_PPC_EMB_SDA21: howto manager. (line 550) -* BFD_RELOC_PPC_EMB_SDA2I16: howto manager. (line 548) -* BFD_RELOC_PPC_EMB_SDA2REL: howto manager. (line 549) -* BFD_RELOC_PPC_EMB_SDAI16: howto manager. (line 547) -* BFD_RELOC_PPC_GLOB_DAT: howto manager. (line 538) -* BFD_RELOC_PPC_GOT_DTPREL16: howto manager. (line 607) -* BFD_RELOC_PPC_GOT_DTPREL16_HA: howto manager. (line 610) -* BFD_RELOC_PPC_GOT_DTPREL16_HI: howto manager. (line 609) -* BFD_RELOC_PPC_GOT_DTPREL16_LO: howto manager. (line 608) -* BFD_RELOC_PPC_GOT_TLSGD16: howto manager. (line 595) -* BFD_RELOC_PPC_GOT_TLSGD16_HA: howto manager. (line 598) -* BFD_RELOC_PPC_GOT_TLSGD16_HI: howto manager. (line 597) -* BFD_RELOC_PPC_GOT_TLSGD16_LO: howto manager. (line 596) -* BFD_RELOC_PPC_GOT_TLSLD16: howto manager. (line 599) -* BFD_RELOC_PPC_GOT_TLSLD16_HA: howto manager. (line 602) -* BFD_RELOC_PPC_GOT_TLSLD16_HI: howto manager. (line 601) -* BFD_RELOC_PPC_GOT_TLSLD16_LO: howto manager. (line 600) -* BFD_RELOC_PPC_GOT_TPREL16: howto manager. (line 603) -* BFD_RELOC_PPC_GOT_TPREL16_HA: howto manager. (line 606) -* BFD_RELOC_PPC_GOT_TPREL16_HI: howto manager. (line 605) -* BFD_RELOC_PPC_GOT_TPREL16_LO: howto manager. (line 604) -* BFD_RELOC_PPC_JMP_SLOT: howto manager. (line 539) -* BFD_RELOC_PPC_LOCAL24PC: howto manager. (line 541) -* BFD_RELOC_PPC_RELATIVE: howto manager. (line 540) -* BFD_RELOC_PPC_TLS: howto manager. (line 583) -* BFD_RELOC_PPC_TOC16: howto manager. (line 530) -* BFD_RELOC_PPC_TPREL: howto manager. (line 589) -* BFD_RELOC_PPC_TPREL16: howto manager. (line 585) -* BFD_RELOC_PPC_TPREL16_HA: howto manager. (line 588) -* BFD_RELOC_PPC_TPREL16_HI: howto manager. (line 587) -* BFD_RELOC_PPC_TPREL16_LO: howto manager. (line 586) -* BFD_RELOC_RELC: howto manager. (line 1930) -* BFD_RELOC_RVA: howto manager. (line 85) -* BFD_RELOC_SCORE16_BRANCH: howto manager. (line 1559) -* BFD_RELOC_SCORE16_JMP: howto manager. (line 1556) -* BFD_RELOC_SCORE_BRANCH: howto manager. (line 1553) -* BFD_RELOC_SCORE_CALL15: howto manager. (line 1564) -* BFD_RELOC_SCORE_DUMMY1: howto manager. (line 1543) -* BFD_RELOC_SCORE_DUMMY2: howto manager. (line 1549) -* BFD_RELOC_SCORE_DUMMY_HI16: howto manager. (line 1565) -* BFD_RELOC_SCORE_GOT15: howto manager. (line 1562) -* BFD_RELOC_SCORE_GOT_LO16: howto manager. (line 1563) -* BFD_RELOC_SCORE_GPREL15: howto manager. (line 1546) -* BFD_RELOC_SCORE_JMP: howto manager. (line 1550) -* BFD_RELOC_SH_ALIGN: howto manager. (line 802) -* BFD_RELOC_SH_CODE: howto manager. (line 803) -* BFD_RELOC_SH_COPY: howto manager. (line 808) -* BFD_RELOC_SH_COPY64: howto manager. (line 833) -* BFD_RELOC_SH_COUNT: howto manager. (line 801) -* BFD_RELOC_SH_DATA: howto manager. (line 804) -* BFD_RELOC_SH_DISP12: howto manager. (line 784) -* BFD_RELOC_SH_DISP12BY2: howto manager. (line 785) -* BFD_RELOC_SH_DISP12BY4: howto manager. (line 786) -* BFD_RELOC_SH_DISP12BY8: howto manager. (line 787) -* BFD_RELOC_SH_DISP20: howto manager. (line 788) -* BFD_RELOC_SH_DISP20BY8: howto manager. (line 789) -* BFD_RELOC_SH_GLOB_DAT: howto manager. (line 809) -* BFD_RELOC_SH_GLOB_DAT64: howto manager. (line 834) -* BFD_RELOC_SH_GOT10BY4: howto manager. (line 837) -* BFD_RELOC_SH_GOT10BY8: howto manager. (line 838) -* BFD_RELOC_SH_GOT_HI16: howto manager. (line 816) -* BFD_RELOC_SH_GOT_LOW16: howto manager. (line 813) -* BFD_RELOC_SH_GOT_MEDHI16: howto manager. (line 815) -* BFD_RELOC_SH_GOT_MEDLOW16: howto manager. (line 814) -* BFD_RELOC_SH_GOTOFF_HI16: howto manager. (line 828) -* BFD_RELOC_SH_GOTOFF_LOW16: howto manager. (line 825) -* BFD_RELOC_SH_GOTOFF_MEDHI16: howto manager. (line 827) -* BFD_RELOC_SH_GOTOFF_MEDLOW16: howto manager. (line 826) -* BFD_RELOC_SH_GOTPC: howto manager. (line 812) -* BFD_RELOC_SH_GOTPC_HI16: howto manager. (line 832) -* BFD_RELOC_SH_GOTPC_LOW16: howto manager. (line 829) -* BFD_RELOC_SH_GOTPC_MEDHI16: howto manager. (line 831) -* BFD_RELOC_SH_GOTPC_MEDLOW16: howto manager. (line 830) -* BFD_RELOC_SH_GOTPLT10BY4: howto manager. (line 839) -* BFD_RELOC_SH_GOTPLT10BY8: howto manager. (line 840) -* BFD_RELOC_SH_GOTPLT32: howto manager. (line 841) -* BFD_RELOC_SH_GOTPLT_HI16: howto manager. (line 820) -* BFD_RELOC_SH_GOTPLT_LOW16: howto manager. (line 817) -* BFD_RELOC_SH_GOTPLT_MEDHI16: howto manager. (line 819) -* BFD_RELOC_SH_GOTPLT_MEDLOW16: howto manager. (line 818) -* BFD_RELOC_SH_IMM3: howto manager. (line 782) -* BFD_RELOC_SH_IMM3U: howto manager. (line 783) -* BFD_RELOC_SH_IMM4: howto manager. (line 790) -* BFD_RELOC_SH_IMM4BY2: howto manager. (line 791) -* BFD_RELOC_SH_IMM4BY4: howto manager. (line 792) -* BFD_RELOC_SH_IMM8: howto manager. (line 793) -* BFD_RELOC_SH_IMM8BY2: howto manager. (line 794) -* BFD_RELOC_SH_IMM8BY4: howto manager. (line 795) -* BFD_RELOC_SH_IMM_HI16: howto manager. (line 859) -* BFD_RELOC_SH_IMM_HI16_PCREL: howto manager. (line 860) -* BFD_RELOC_SH_IMM_LOW16: howto manager. (line 853) -* BFD_RELOC_SH_IMM_LOW16_PCREL: howto manager. (line 854) -* BFD_RELOC_SH_IMM_MEDHI16: howto manager. (line 857) -* BFD_RELOC_SH_IMM_MEDHI16_PCREL: howto manager. (line 858) -* BFD_RELOC_SH_IMM_MEDLOW16: howto manager. (line 855) -* BFD_RELOC_SH_IMM_MEDLOW16_PCREL: howto manager. (line 856) -* BFD_RELOC_SH_IMMS10: howto manager. (line 847) -* BFD_RELOC_SH_IMMS10BY2: howto manager. (line 848) -* BFD_RELOC_SH_IMMS10BY4: howto manager. (line 849) -* BFD_RELOC_SH_IMMS10BY8: howto manager. (line 850) -* BFD_RELOC_SH_IMMS16: howto manager. (line 851) -* BFD_RELOC_SH_IMMS6: howto manager. (line 844) -* BFD_RELOC_SH_IMMS6BY32: howto manager. (line 845) -* BFD_RELOC_SH_IMMU16: howto manager. (line 852) -* BFD_RELOC_SH_IMMU5: howto manager. (line 843) -* BFD_RELOC_SH_IMMU6: howto manager. (line 846) -* BFD_RELOC_SH_JMP_SLOT: howto manager. (line 810) -* BFD_RELOC_SH_JMP_SLOT64: howto manager. (line 835) -* BFD_RELOC_SH_LABEL: howto manager. (line 805) -* BFD_RELOC_SH_LOOP_END: howto manager. (line 807) -* BFD_RELOC_SH_LOOP_START: howto manager. (line 806) -* BFD_RELOC_SH_PCDISP12BY2: howto manager. (line 781) -* BFD_RELOC_SH_PCDISP8BY2: howto manager. (line 780) -* BFD_RELOC_SH_PCRELIMM8BY2: howto manager. (line 796) -* BFD_RELOC_SH_PCRELIMM8BY4: howto manager. (line 797) -* BFD_RELOC_SH_PLT_HI16: howto manager. (line 824) -* BFD_RELOC_SH_PLT_LOW16: howto manager. (line 821) -* BFD_RELOC_SH_PLT_MEDHI16: howto manager. (line 823) -* BFD_RELOC_SH_PLT_MEDLOW16: howto manager. (line 822) -* BFD_RELOC_SH_PT_16: howto manager. (line 861) -* BFD_RELOC_SH_RELATIVE: howto manager. (line 811) -* BFD_RELOC_SH_RELATIVE64: howto manager. (line 836) -* BFD_RELOC_SH_SHMEDIA_CODE: howto manager. (line 842) -* BFD_RELOC_SH_SWITCH16: howto manager. (line 798) -* BFD_RELOC_SH_SWITCH32: howto manager. (line 799) -* BFD_RELOC_SH_TLS_DTPMOD32: howto manager. (line 867) -* BFD_RELOC_SH_TLS_DTPOFF32: howto manager. (line 868) -* BFD_RELOC_SH_TLS_GD_32: howto manager. (line 862) -* BFD_RELOC_SH_TLS_IE_32: howto manager. (line 865) -* BFD_RELOC_SH_TLS_LD_32: howto manager. (line 863) -* BFD_RELOC_SH_TLS_LDO_32: howto manager. (line 864) -* BFD_RELOC_SH_TLS_LE_32: howto manager. (line 866) -* BFD_RELOC_SH_TLS_TPOFF32: howto manager. (line 869) -* BFD_RELOC_SH_USES: howto manager. (line 800) -* 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_SPU_HI16: howto manager. (line 206) -* BFD_RELOC_SPU_IMM10: howto manager. (line 197) -* BFD_RELOC_SPU_IMM10W: howto manager. (line 198) -* BFD_RELOC_SPU_IMM16: howto manager. (line 199) -* BFD_RELOC_SPU_IMM16W: howto manager. (line 200) -* BFD_RELOC_SPU_IMM18: howto manager. (line 201) -* BFD_RELOC_SPU_IMM7: howto manager. (line 195) -* BFD_RELOC_SPU_IMM8: howto manager. (line 196) -* BFD_RELOC_SPU_LO16: howto manager. (line 205) -* BFD_RELOC_SPU_PCREL16: howto manager. (line 204) -* BFD_RELOC_SPU_PCREL9a: howto manager. (line 202) -* BFD_RELOC_SPU_PCREL9b: howto manager. (line 203) -* BFD_RELOC_SPU_PPU32: howto manager. (line 207) -* BFD_RELOC_SPU_PPU64: howto manager. (line 208) -* BFD_RELOC_THUMB_PCREL_BLX: howto manager. (line 643) -* BFD_RELOC_THUMB_PCREL_BRANCH12: howto manager. (line 657) -* BFD_RELOC_THUMB_PCREL_BRANCH20: howto manager. (line 658) -* BFD_RELOC_THUMB_PCREL_BRANCH23: howto manager. (line 659) -* BFD_RELOC_THUMB_PCREL_BRANCH25: howto manager. (line 660) -* BFD_RELOC_THUMB_PCREL_BRANCH7: howto manager. (line 655) -* BFD_RELOC_THUMB_PCREL_BRANCH9: howto manager. (line 656) -* BFD_RELOC_TIC30_LDP: howto manager. (line 1196) -* BFD_RELOC_TIC54X_16_OF_23: howto manager. (line 1214) -* BFD_RELOC_TIC54X_23: howto manager. (line 1211) -* BFD_RELOC_TIC54X_MS7_OF_23: howto manager. (line 1219) -* BFD_RELOC_TIC54X_PARTLS7: howto manager. (line 1201) -* BFD_RELOC_TIC54X_PARTMS9: howto manager. (line 1206) -* bfd_reloc_type_lookup: howto manager. (line 2068) -* BFD_RELOC_V850_22_PCREL: howto manager. (line 1123) -* BFD_RELOC_V850_9_PCREL: howto manager. (line 1120) -* BFD_RELOC_V850_ALIGN: howto manager. (line 1181) -* BFD_RELOC_V850_CALLT_16_16_OFFSET: howto manager. (line 1172) -* BFD_RELOC_V850_CALLT_6_7_OFFSET: howto manager. (line 1169) -* BFD_RELOC_V850_LO16_SPLIT_OFFSET: howto manager. (line 1184) -* BFD_RELOC_V850_LONGCALL: howto manager. (line 1175) -* BFD_RELOC_V850_LONGJUMP: howto manager. (line 1178) -* BFD_RELOC_V850_SDA_15_16_OFFSET: howto manager. (line 1129) -* BFD_RELOC_V850_SDA_16_16_OFFSET: howto manager. (line 1126) -* BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET: howto manager. (line 1161) -* BFD_RELOC_V850_TDA_16_16_OFFSET: howto manager. (line 1151) -* BFD_RELOC_V850_TDA_4_4_OFFSET: howto manager. (line 1158) -* BFD_RELOC_V850_TDA_4_5_OFFSET: howto manager. (line 1154) -* BFD_RELOC_V850_TDA_6_8_OFFSET: howto manager. (line 1140) -* BFD_RELOC_V850_TDA_7_7_OFFSET: howto manager. (line 1148) -* BFD_RELOC_V850_TDA_7_8_OFFSET: howto manager. (line 1144) -* BFD_RELOC_V850_ZDA_15_16_OFFSET: howto manager. (line 1136) -* BFD_RELOC_V850_ZDA_16_16_OFFSET: howto manager. (line 1133) -* BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET: howto manager. (line 1165) -* BFD_RELOC_VAX_GLOB_DAT: howto manager. (line 1939) -* BFD_RELOC_VAX_JMP_SLOT: howto manager. (line 1940) -* BFD_RELOC_VAX_RELATIVE: howto manager. (line 1941) -* BFD_RELOC_VPE4KMATH_DATA: howto manager. (line 1598) -* BFD_RELOC_VPE4KMATH_INSN: howto manager. (line 1599) -* BFD_RELOC_VTABLE_ENTRY: howto manager. (line 1603) -* BFD_RELOC_VTABLE_INHERIT: howto manager. (line 1602) -* BFD_RELOC_X86_64_32S: howto manager. (line 481) -* BFD_RELOC_X86_64_COPY: howto manager. (line 476) -* BFD_RELOC_X86_64_DTPMOD64: howto manager. (line 482) -* BFD_RELOC_X86_64_DTPOFF32: howto manager. (line 487) -* BFD_RELOC_X86_64_DTPOFF64: howto manager. (line 483) -* BFD_RELOC_X86_64_GLOB_DAT: howto manager. (line 477) -* BFD_RELOC_X86_64_GOT32: howto manager. (line 474) -* BFD_RELOC_X86_64_GOT64: howto manager. (line 492) -* BFD_RELOC_X86_64_GOTOFF64: howto manager. (line 490) -* BFD_RELOC_X86_64_GOTPC32: howto manager. (line 491) -* BFD_RELOC_X86_64_GOTPC32_TLSDESC: howto manager. (line 497) -* BFD_RELOC_X86_64_GOTPC64: howto manager. (line 494) -* BFD_RELOC_X86_64_GOTPCREL: howto manager. (line 480) -* BFD_RELOC_X86_64_GOTPCREL64: howto manager. (line 493) -* BFD_RELOC_X86_64_GOTPLT64: howto manager. (line 495) -* BFD_RELOC_X86_64_GOTTPOFF: howto manager. (line 488) -* BFD_RELOC_X86_64_JUMP_SLOT: howto manager. (line 478) -* BFD_RELOC_X86_64_PLT32: howto manager. (line 475) -* BFD_RELOC_X86_64_PLTOFF64: howto manager. (line 496) -* BFD_RELOC_X86_64_RELATIVE: howto manager. (line 479) -* BFD_RELOC_X86_64_TLSDESC: howto manager. (line 499) -* BFD_RELOC_X86_64_TLSDESC_CALL: howto manager. (line 498) -* BFD_RELOC_X86_64_TLSGD: howto manager. (line 485) -* BFD_RELOC_X86_64_TLSLD: howto manager. (line 486) -* BFD_RELOC_X86_64_TPOFF32: howto manager. (line 489) -* BFD_RELOC_X86_64_TPOFF64: howto manager. (line 484) -* BFD_RELOC_XC16X_PAG: howto manager. (line 1933) -* BFD_RELOC_XC16X_POF: howto manager. (line 1934) -* BFD_RELOC_XC16X_SEG: howto manager. (line 1935) -* BFD_RELOC_XC16X_SOF: howto manager. (line 1936) -* BFD_RELOC_XSTORMY16_12: howto manager. (line 1925) -* BFD_RELOC_XSTORMY16_24: howto manager. (line 1926) -* BFD_RELOC_XSTORMY16_FPTR16: howto manager. (line 1927) -* BFD_RELOC_XSTORMY16_REL_12: howto manager. (line 1924) -* BFD_RELOC_XTENSA_ASM_EXPAND: howto manager. (line 2045) -* BFD_RELOC_XTENSA_ASM_SIMPLIFY: howto manager. (line 2050) -* BFD_RELOC_XTENSA_DIFF16: howto manager. (line 1992) -* BFD_RELOC_XTENSA_DIFF32: howto manager. (line 1993) -* BFD_RELOC_XTENSA_DIFF8: howto manager. (line 1991) -* BFD_RELOC_XTENSA_GLOB_DAT: howto manager. (line 1981) -* BFD_RELOC_XTENSA_JMP_SLOT: howto manager. (line 1982) -* BFD_RELOC_XTENSA_OP0: howto manager. (line 2039) -* BFD_RELOC_XTENSA_OP1: howto manager. (line 2040) -* BFD_RELOC_XTENSA_OP2: howto manager. (line 2041) -* BFD_RELOC_XTENSA_PLT: howto manager. (line 1986) -* BFD_RELOC_XTENSA_RELATIVE: howto manager. (line 1983) -* BFD_RELOC_XTENSA_RTLD: howto manager. (line 1976) -* BFD_RELOC_XTENSA_SLOT0_ALT: howto manager. (line 2021) -* BFD_RELOC_XTENSA_SLOT0_OP: howto manager. (line 2001) -* BFD_RELOC_XTENSA_SLOT10_ALT: howto manager. (line 2031) -* BFD_RELOC_XTENSA_SLOT10_OP: howto manager. (line 2011) -* BFD_RELOC_XTENSA_SLOT11_ALT: howto manager. (line 2032) -* BFD_RELOC_XTENSA_SLOT11_OP: howto manager. (line 2012) -* BFD_RELOC_XTENSA_SLOT12_ALT: howto manager. (line 2033) -* BFD_RELOC_XTENSA_SLOT12_OP: howto manager. (line 2013) -* BFD_RELOC_XTENSA_SLOT13_ALT: howto manager. (line 2034) -* BFD_RELOC_XTENSA_SLOT13_OP: howto manager. (line 2014) -* BFD_RELOC_XTENSA_SLOT14_ALT: howto manager. (line 2035) -* BFD_RELOC_XTENSA_SLOT14_OP: howto manager. (line 2015) -* BFD_RELOC_XTENSA_SLOT1_ALT: howto manager. (line 2022) -* BFD_RELOC_XTENSA_SLOT1_OP: howto manager. (line 2002) -* BFD_RELOC_XTENSA_SLOT2_ALT: howto manager. (line 2023) -* BFD_RELOC_XTENSA_SLOT2_OP: howto manager. (line 2003) -* BFD_RELOC_XTENSA_SLOT3_ALT: howto manager. (line 2024) -* BFD_RELOC_XTENSA_SLOT3_OP: howto manager. (line 2004) -* BFD_RELOC_XTENSA_SLOT4_ALT: howto manager. (line 2025) -* BFD_RELOC_XTENSA_SLOT4_OP: howto manager. (line 2005) -* BFD_RELOC_XTENSA_SLOT5_ALT: howto manager. (line 2026) -* BFD_RELOC_XTENSA_SLOT5_OP: howto manager. (line 2006) -* BFD_RELOC_XTENSA_SLOT6_ALT: howto manager. (line 2027) -* BFD_RELOC_XTENSA_SLOT6_OP: howto manager. (line 2007) -* BFD_RELOC_XTENSA_SLOT7_ALT: howto manager. (line 2028) -* BFD_RELOC_XTENSA_SLOT7_OP: howto manager. (line 2008) -* BFD_RELOC_XTENSA_SLOT8_ALT: howto manager. (line 2029) -* BFD_RELOC_XTENSA_SLOT8_OP: howto manager. (line 2009) -* BFD_RELOC_XTENSA_SLOT9_ALT: howto manager. (line 2030) -* BFD_RELOC_XTENSA_SLOT9_OP: howto manager. (line 2010) -* BFD_RELOC_Z80_DISP8: howto manager. (line 2055) -* BFD_RELOC_Z8K_CALLR: howto manager. (line 2061) -* BFD_RELOC_Z8K_DISP7: howto manager. (line 2058) -* BFD_RELOC_Z8K_IMM4L: howto manager. (line 2064) -* bfd_scan_arch: Architectures. (line 406) -* bfd_scan_vma: BFD front end. (line 426) -* bfd_seach_for_target: bfd_target. (line 464) -* 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 176) -* bfd_set_arch_info: Architectures. (line 447) -* bfd_set_archive_head: Archives. (line 69) -* bfd_set_default_target: bfd_target. (line 429) -* bfd_set_error: BFD front end. (line 236) -* bfd_set_error_handler: BFD front end. (line 278) -* bfd_set_error_program_name: BFD front end. (line 287) -* bfd_set_file_flags: BFD front end. (line 346) -* bfd_set_format: Formats. (line 68) -* bfd_set_gp_size: BFD front end. (line 416) -* bfd_set_private_flags: BFD front end. (line 493) -* bfd_set_reloc: BFD front end. (line 336) -* bfd_set_section_contents: section prototypes. (line 207) -* bfd_set_section_flags: section prototypes. (line 140) -* bfd_set_section_size: section prototypes. (line 193) -* bfd_set_start_address: BFD front end. (line 395) -* bfd_set_symtab: symbol handling functions. - (line 60) -* bfd_symbol_info: symbol handling functions. - (line 130) -* bfd_target_list: bfd_target. (line 455) -* bfd_write_bigendian_4byte_int: Internal. (line 13) -* bfd_zalloc: Opening and Closing. - (line 228) -* bfd_zalloc2: Opening and Closing. - (line 237) -* coff_symbol_type: coff. (line 186) -* core_file_matches_executable_p: Core Files. (line 30) -* find_separate_debug_file: Opening and Closing. - (line 279) -* generic_core_file_matches_executable_p: Core Files. (line 40) -* get_debug_link_info: Opening and Closing. - (line 260) -* 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 508) -* separate_debug_file_exists: Opening and Closing. - (line 270) -* struct bfd_iovec: BFD front end. (line 711) -* 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 291) -* what is it?: Overview. (line 6) - - - -Tag Table: -Node: Top1045 -Node: Overview1384 -Node: History2435 -Node: How It Works3381 -Node: What BFD Version 2 Can Do4924 -Node: BFD information loss6239 -Node: Canonical format8771 -Node: BFD front end13143 -Node: Memory Usage40479 -Node: Initialization41707 -Node: Sections42166 -Node: Section Input42649 -Node: Section Output44014 -Node: typedef asection46500 -Node: section prototypes71101 -Node: Symbols80781 -Node: Reading Symbols82376 -Node: Writing Symbols83483 -Node: Mini Symbols85192 -Node: typedef asymbol86166 -Node: symbol handling functions91427 -Node: Archives96769 -Node: Formats100495 -Node: Relocations103443 -Node: typedef arelent104170 -Node: howto manager119981 -Node: Core Files186663 -Node: Targets188480 -Node: bfd_target190450 -Node: Architectures210755 -Node: Opening and Closing232762 -Node: Internal244026 -Node: File Caching250359 -Node: Linker Functions252273 -Node: Creating a Linker Hash Table253946 -Node: Adding Symbols to the Hash Table255684 -Node: Differing file formats256584 -Node: Adding symbols from an object file258332 -Node: Adding symbols from an archive260483 -Node: Performing the Final Link262897 -Node: Information provided by the linker264139 -Node: Relocating the section contents265293 -Node: Writing the symbol table267044 -Node: Hash Tables270086 -Node: Creating and Freeing a Hash Table271284 -Node: Looking Up or Entering a String272534 -Node: Traversing a Hash Table273787 -Node: Deriving a New Hash Table Type274576 -Node: Define the Derived Structures275642 -Node: Write the Derived Creation Routine276723 -Node: Write Other Derived Routines279347 -Node: BFD back ends280662 -Node: What to Put Where280932 -Node: aout281112 -Node: coff287430 -Node: elf311907 -Node: mmo312770 -Node: File layout313698 -Node: Symbol-table319345 -Node: mmo section mapping323114 -Node: GNU Free Documentation License326766 -Node: BFD Index346495 - -End Tag Table diff --git a/bfd/po/da.gmo b/bfd/po/da.gmo deleted file mode 100644 index 944a11c1610b78a696d9df49faf3ede29a908b5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60556 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 Oxd+vdwz+*~==fhf)zk$5 diff --git a/bfd/po/fr.gmo b/bfd/po/fr.gmo deleted file mode 100644 index 1a6948d5b93c8ceff3453eee203a10df302646c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71749 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 C+XJcq diff --git a/bfd/po/ja.gmo b/bfd/po/ja.gmo deleted file mode 100644 index f8142480577e285021ebd309468e387bd7989e77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38616 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 diff --git a/bfd/po/ro.gmo b/bfd/po/ro.gmo deleted file mode 100644 index 8621928313f63e511869ba9208f233c78692a777..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69038 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 diff --git a/bfd/po/rw.gmo b/bfd/po/rw.gmo deleted file mode 100644 index 49d9e2fd45e3653895273f350eef4aab94821463..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 429 zcmYL^-%i3X6vn5~#O%^*FM6+?9k4(q5)#CO=n!>!;a%CzMs>8LJp*|V-@xbcSv)gD zzVw%zw%_^pb9(gUkq(J7;(|CP`b47{aY8&2lLOCt+ugq@rt_yJ_g_=Pz*=LynKkc_ zA)n;@6|7T6$828YtQCZjKYK{|$bv+A<~I@{W-TGwTy%NZWnm|dTIV7Zf{gqL)~ZS0 z`ywtnT(nsz;)vod`R=7do?5A0CDGWJJtM3^vqWVJ2^C9fyIO2ne_7jN2po;6T#%XN zfHHMi%My4Bav8HbrMJ>pNP znGzsC00T*YKaA<~r>G1#l&bjx^do!~thW+U2H}AgN@44rm zdu}=3I`#oCDDd})`xOeOfUi2XP&oDeg~Eb9xfTj9UtB1h2>uIr8u%XYc<^f=UJLht zXM^`&QYb71=Ygk#H-d`dvEWhQE5H@t+re|dUxJGFWC95<2)F^1|1nVM?F19>1)$=+ z6IA+N29E`Q0-gsJE+`Z(0nP_61S{aB;7h<`z^?}P{{;tlKVw;;z`w$c{C73@Ja9hv zO>jMUIFaam7}WdYz~jJAg2#j30at^+0hQ0?7kN52f+SI>feQc1fS(2*#`~{9)$>Cx zE)*UL&IeBhmxHQ@M}iLl8=$^FKDa+WyuS%N8ut$c{2X{B@81RIfIkP10Dm8F4wW*O z_Y(r18L$W{KNo`!0yhNrYeBVV2|NpYDyVjRL-_t#Q1$+G@C5Lup!`3ON<9@kAAC4C z2r56L;2Gc)csTeRQ0cx1RKDK?%HMlI<>NmBekQno1$;2>-wEzN33zY7KZ6SYAR1fc zJQh^>PX*-6PG((_k-v1z7>ST3%7xy&$og_@ay3D;GD~y{+5A|aA5+R0bd5HzK^@Y z`^%-E@_QQy=@ec7Dj%N)74HMCEEHY`E(FO+;j17`QaFyzb_2Kxl>aw^O8>iH0v^56 z<68_W{VI3{_)<{q{y|Xv^n2iZaPF!?p&z^eTm+7S3&A_UwctlVvR-&FokHnc4bB61 zgQtT30xJI>1YsG4UxSKg{u+saD6PyR$3sU8U z)35gYYyt6(apgC$V)@kFo>dlT%oX>j$l>e82{ouy~{u+c87tR@??BI<7UkWPTZ-I2B!aN#X?_&Yq z3ZBjT??Cl~)30Je?e(E4ys_?Ji$>7gH#dE|X3x!E=C3q$H z7EtNl146omMUV1+wi|@h3LgYj?{gvEYrr8;{$2(u{vUuuT{!PXkNcrkeTwnBj_ zC|nPc)xujri-3xzJC-{{rn6R9h|ts`|l{I^1T>TxX*&>SHA<#0ne#={cHgBJ`U>p zvq9DWd%#n{9|ZTmx!K3H#h~(i6?hsr1Iqs$;JM(3!Ij|Mpy+kMM4@mdI0-79=YWu6 z;ZE=>@YqSmM}eDoe?@rz1$YVX15@5lTA=9a9iZyz``~Kulv<$xt0|N~wcp!8`MU?a z2t2Fq{%-(9C(i}dJ|718SNK2vTMLd(d%t-DxQ_RGLB(^$E#AHjQ1QP8ycFCEs+>u~ z`Q9iv!27GgrQo;0IpD*ZUXQ1N3wgf`JPMoy70+YC`@6x1^8Rt~Vc<8wQ^22tis#6d z*W-!c`Mh5Wo&}DBO81%I$>4v2{or@O3&3M$Jp5Wv?XVeCe{O>Fz-NHU&pU$qzk|o| z{@>ty@SgB~(oU!QMWE7sGN^Q32QC1=0xDk**yZ%G2)vf}M}v#OcY&M0AAqp1!bQ9N z`*T6n!w*5FclI9V4;ur%9$bU_18((tz8X|}{~aj$`6hTB*!LL6+d!53OW-Bo+{gO+ zYVac7_XK*p3eKlpz7s%Q0+AZs$4GuRgRB=qKof?qKo66g{ImZ16Tv_411F{!UQk z_!@Wy_*?Md;K@&MezGj!t)R;FK~Uj;23`Rk_EfLm6`KR;ML&MLDAV4LFMlu zPxE|T1gc+c0{g%UsC+&XR6G82!1scR=c@tF`dfdmfuf6l167arf4cXZ%R#;03W_e? z1y;cygR8-7p8+j_F9z3wg=Zpb0#|{m*JpxPf^Pstk3RyH|Fi$j%XcHF@;^4Rr@_s6qfb+n`;2?Mo_!v<2`-<@XE>PwDMsWWTmaqyt^_{}sy-j^TyNJwa6RuWFwu8#H~3vp?R>-Y9B%=Y?$f~Yz}J8Y_&HGN z`~sB!qo42m{~S>DI{+HJ1osLkI@<$o1pgjXef`z}!Fy%9Vc{4}@-`~|4?JnMy?zbn9Fc)vEh z?*P@#j|bJy?+V{P3m(h+cR|JbD^Trz!izlKHQ;jIcY+JScY+s!d-Z-8Y5s$!cg;UK zosEDG<@@8o6Ts(#=Ynqp748e*d~ohRc{witkK+9%a0NI8ica4GJ{nW5EaU{Txv7ECj_5E(2AsJ3zJ9bHev`fhxyGK;`?3 zp#0qfs$Ncbg_mm~sQj!1Mepmu!@(I)<+=@2yF4G1zgL3F$D0G*8QebzJ{b2;1otlm z{8qppfC_&PD1W~L75@WY>F=k2dY=a#30@xFH-HK6qoB(3WKi_?LhuyuEuiY-Q=sVd zYv6M5|G>wAi(dtg0N)BK{CTf-dbtej=Y0%Re|Q0?e)TDE5%`CI#n(8UJQ`e#`yJqu z!T$tRU)Q|W`C$t@p7*=JOTo{8mxFU(=lysPd_C{Gz)Qe0cu~4HfFt1Zz>C3Ofyzh! z8@#_h8eGZyQ$g{aPk;&dNAN80v^Tmuw-Qvp*##>9Zvf^0>)>kes5g247zVH4{Z*jy zu@_W&r@h(Z+X$}Wy#cBo?*tcszXTQE8UO0#*$V3Yc5nc^3siso1*mc@d`qZb@Os`~ z04lzpg4cly-s<6>3@Y5a!N-8V0#y&Uyv@^jL%^?s+i`#3+dbSk_(7=y&czs=kfkTP;~Sr zQ2u@hs-DjOHy>|yfNH;Ifkp6RU_baP@NDqx_xN}^2&#PJpy=SW;FaKy!9`&4y*|%- zG^qIA0GH5u<^>!EMb}RN70>HImHW$}`p4W)`1@s`;+qB^1-=fv9lZbl z^Ll$4sBoVKm9N7-8Tcl6Deq&T>iHF*;{6(UCivh_d4Bpq(c`1QgPX_M{ z?w<#b$J&o6j?7yuQ|<3N?~o!}zy$KVq1)GxaK&7kV%G2ndgMc`TBhe7$@2RmM(`ZoUkoar9|3Owe*&%t2fyO^ zej#`@@Ba4|p-}=YP%lUl|l#y%AJr6YH%s|Y48!?Vc+!cL*Pc65_2d4DIU_Ie+veD4EQ&!_#5)7eT;@3(^w178as2fhzf{eK=*JU<4NpI?Fl;3?mB z{&F3-miL{Y;(0%KKKLC_~R+s(m(sr+~MBqOWIz$Aa$%PX|8>D*byv<@%Z^#9B?!5p9il5&-#J)t8&1*K+*l&A3A?s3F`gv;9BsmfPVtd z=6%iGu7|oARDFLKTnv64R6QK=zr+Qe1*-k}!4tu8@MQ1_p!~fAJO+F_cog_i@Ko@N z;6uS*fR};~{85mjz{`2x1uES;L92gI^nVX{G`Rf7&bKy#%I{5}=@^h5HGp^3M60)A2fRKJU|@=<%Pz`(0p*_wRsLfY;vR z_4q3RS#bR7l3nq?(tj*9?km@xDYIZM}l{N=Yg*T`@qkDO8=Lj%75A~ zJb#x2+zl?q{Vwn*@NV!b@VDW8#s7J@M}VS-NpJ)B6mTi{1+WMn{!1_aGVmDQ9|0=8 zQSf2l<3Q2L^Fh_$+rahUm%u^r%wIX(PJ-9){ti(6<`}4pPz`Fwe7kDD?KL9TQ3%~Pn z4uERM9pDb|Dd3slPeIYiF~9e6E)RGEcs1^Oz~jM>f(iI_a0&Paa1prh502YG(eHBu zz8Dleyc$fvw}Q(5=Rk!!>W|((t_0N{+d<{$4)7H4E>Pw8VsQTnnDBn|pFBT{!Fjx| z16P2zfUCiGfTFkGfNJl)KYRT&!P|L%CU`1%RN*kgA}Bh$1{5Ef0Tb}epyK}wcpCU? z@Hp`J!w$3hSOBWtSAlZB0aSi(0UrTA15~`<0M7s)c)!DpuI2??74Xpk_kc?84p8m! ze()Ud?%;m({SPyGy#%}*_i<3=cnx?l_)$>(;g6u`bm0RIvw9c;PvZRv0bdNB%=?|- z>EP!<)!#2b<^O`eIn4Ug22lO((wC7;178In-7l+AKw6K|CP!g|NfO9 zbS3*!c`7`|;^!isYY6{Rp2hq=1-zDTZw0rSZ|^@Z;P>IU&Ee7CJn$I&zaRVp55>&= ziKZVMT>dum?M=8nJGk!%?!O7|f*Oz7MSnv)N0Em92J!p%JbmH)zxn+Y+&>iJI1cyC z{1y$qjYqU5KB2$k`SwizY5(8G|5Sfrn&-JZui3(f7<`A;Q#-??RuUy{1%Jp8{5jDNTC`+Od{RpH&iUH#|@{GN;7`1c`x9FN->xTzn!GYlRBkpMT{!g6B`c|8DRf@cT5L9Xtzpo)o_Ev#_3U_hjD1e@A&<#B)W6`=9u& zzo+4E6VC@T{+HtCm%RUu??(jxZx7#(!tGvuzk%m_ih#f8^X#=>{@=}fD+m7?OW(@# z?C>rhigFGAJy9?GeUfK6@4vOT_J3Cs=6O8-#Pjz!-^6n&{#Jpv;r2wH_;(|}Ka+Wv z`)RzNhyVZL_cQo?BF{7UeHqV6+@B8Kh1u(c&_4hH}zXh)2{mcCRXP$TR zJ_gfG_14;de2lbqT*Gar-og9d@tn=?!@y7RT*bGe!AJANzr*?dQC?mW+&;nYKZf70 z3ZAOGe}Uhh3-8|!IEnjBJU`|Ab>INcLwVxg|MBDE%=-gL>mPZ)Kkf^`OTb5j@5}hz z{w@#i`aKhV-^}mZc|Onc zeV(N}9}nMt7;qDA_Q(4;&%1ef9nW$6Uf^Hs|8MdBFn-MoZs&scBke1Bo)z3ail4bW z`n!hbe4Z0{`gqRaDe=6LXAaLg{4M9Xl;0bP<0<_9AD-iR|1!^O`F%Ri2|O3`uD^}^ z*57-0UdHoep5OC)kSG3KhM%wV^4{S0<@~;bX94e@2yPpAe-ppYB;5x1Z#+$&KjGf_ z_blA?_lkhq0=g@_gZHoUathB{;ya7yo47rk_Y1&3M33O5eAC|xaeoB(X`X(5$G=_S z$L07NCk0$db>!q^tv#>PU znkh}r_iqbhm_}t1Uws#plls_Lv(n<{?&OBP3nq8pl=L+Vb9PRZ29jhQSyZaYhRW1P zrBSrptgO$}%EjUO+``;BtJkkj$2`iPGElQ)*s@7}GWS$jvx>0FW z%1OVc-mHx3V=`K&B5JMXd}2uKZ%wUy{^F#$XKJKANz}!QCd;@F@0lhcWv{ol$#VR# zw%Ta6+Tq(D){~*hULQQ}cGQ*H%+#exM?Tu|G+T|C(bj%E%+x4Z&+n^tlp3^2rBQ9R zs-w+h(e6HIV(#iawbE2|G#TLEq!X*;zR5CP*Ur?uF3XkXXrnsasy7m= zd}_PYN?JQANwZagR!dH+RO%wynvfgo39V5swMt27k28{9vDNCWq+AiHmHP>{naHYY zy&L+-ZHcj zf~9%&-j}Dd>1??&VLipcDeJxmouY+mRFY~lDJ5e@VyzuBwTT7E$V{l?3`Li!wQ6lV zskTUW2KrS6j#QE{^&ZcAh^m%UoR74Oe^hHwxEhU`v=*Xrdiwl}ldXFB4Wt5nxXvwAChj{2Nu^)o-& zI3v~s8>2~f&rCPO; z6pPK7X;DhCK3OiR2PBo6nyOq#0vXgtM`s#VE-}J^q|}&7U^J7kV)`B#oYkj&P5lxM zpN+~bGt~w?cdSvLQhaj@$z^L+tQ<^shH9LtHRy`twQ93czPylJH91ou`(&(1P*rb% znjVM2SZSJYgGw@0ot&)7Q|4Q+%aPh`$tS>5}YQ``gC$ zhfSHE(L=L7In$~n)Agp2mEstko^g-mq7_PR<-l}(q-iEIj9Sgg_!Og2QmvIMyXDDz zHhP!dAeQyTyHQr8nN2v)FwHkZKBYqW!jgY(Q4Wqn3VO{QH zlcjNECDvg|lcInwPhvHJW_x_ieVMxO;zf%VDTb-i^t5O`)&*nrXa$n0Gk7#C`%~p9 ztB|S6RK2lh`ADfYQ53CAT5xwHe^!{O>U4AQh4w+e;ty+0ee&ybJ8FbStI`dKHBk z>H0#%v-_5u7iHR6Vm2W>jecm&s%;zAY`JPpl&U&H(Fh}vJLO8;YM4YL#@Jbg(oCz) z5P<+YH8a_&PScTwH?3+Kt4bLT{8bU`sn5`A2%}?66`Ge)_|f{*w5AO{-cC)y+@?yC zMNMRA;F)Q}ML5y;=x9eyM@u!;>kgyVgnDG40($#uR7#^e_`0Ag!LhL*J{JSgbjCnm zR>r$xjsw<_LRX~4nCups7OCi8U@K}SKlJE>+A8MMqm?}+F zJjKdx`a`XwOcG@nt#=v&h&>@suc48i0KA>zNfXU*mUu=Hz|!GUn~D3jNJ(=3zkNA zO6Vm>qjZC^%?&d=L*bmk3?w(tz=0u>W@~07X^?5+PIm36(s#&~y4%gA$&eZGIOm47 z3bH~u6;O?9xhx!gMA@}(CYd)?+6_CMpT^>ZUB?T;)~*4c`XrZwWBi%7{&5p(MxuCD zVGyg7o5_V2T$9Z6NkNFPzdlXV1=^+_$7d!>4Mg%rX^&*;JdQ^MYF~%gvfo1 zyUJ)*kIZ*#t)5@oGhrx}X4pMVpCYTPHf`NF>;*oga8~&}Lxes>cbciC$%MAG09TIF z?vt5HPP=S=Qji$)9!RdV(Ol}e*lzV?7N66jhZM6Wc2HZjrcsdgmJn(KVQU9dFDTZu zH-9V*GZJFomy;?g_G>cm(X0$v(g4dKMc+jo+wQ$!w^JI5TyE zP|Fw#axKak%T<@9-Fas(V(-K+rM9!}9yw&_7=vL1$WTTLMQu=OW$0oyk6i?`eiMz3 zFb{#Xsyi7fQ(eZ{Qv5{D90svi+WrL9v(&yFwIKfrCy8}{xyvMVH$`Pxei=K}0o2gc zZAZyajc#5)tkE;MYSVD!&_Sgwx``B+9l(RmCdOrn5)oacBD#-_1*L^heH!3fl_tfh zje9%v@*netmbgON(W536^_lS4g{Fgv?n>&~&0LX5b|?m->f>hqrB6 zbJgI`@R}_aeoLytGX3dH&BgdK5+i&Gp~J{1&dX}apsOp_S7E?pX|3s`7}xQ0Y!SqkR0tFcPR1)W>9>+K>(?gp)@%?{^Qw|a?=vka2wdA1 zrXQ3wa0|u=1gEUP=$w+UuI%ajH#8e6^6&E(P4LY6l)zfnBUY*fsPsuk-@ zGwmaX@y}fi2q@B>&2lZ0t!ceREiS$D(jr|G=9 z3$>Z)zE*8h+U1#1P3znnO)x#9w5}#3gBz z965*9+KOf!!I8#tzl;RM#<}(>?bAN6vIx0haPv@@vISP@lOp)ip1LGYO}fXDsS2_; zgrR|kIruycFXu~{<9$9XmTCBGCYrtx1fd-g66I*LoMaJew{-x^l!WT*hab6Z&6aFK z4CI<&29-WZ=GsHyrc2evLS}uF3=(6mxF6e5^**KVUK^P#u_QuW#k{M!(>!GOL;P-C zFy|?LfiA|GClXh6M`iam%@4PQZ)t?kzZ%OFo^c6grv249nW@53F>r(>;NtY;OtTnP zm@}D*17{pPLTwS&m~fCR?o$l&g2ENnFIH)J)PN)sYE+PGoAB3Mt;wUYvp_J`oN8gD z>VphkFE#fZC@GOlhSMBOs>*X5y**dfii$}*H*_k%FfcI>K`!)}yp1Yp zg)r1Y#T0ye8i9Sw&{dn;pDLph5CLNy?7uxIJNbpN!K)>*(QK*I;pyL{ncX&y#YuKh z@Ua-(L^)q%kttTTloD!n&E)0oQM*3Syt{L^caJ9TT{Tl8qC^SMB(2JnYdw69O(IK| z=v%K)Bh_)Sg(|etGvs8o)uPVbORorW9(u>oP9q;$ib714{QpU15Wz<-_E5O_I8xv}K4+}ZH{fmLRXs1q0 zN9#S}rIVb*Cq1rAt4p%BmMl@jVI5bbJrdS6Z4zkJRBlZdAqHmTtULv(&`=gRY;P4s zd1jimVDW~q^}v*Up;BWI*LZq9=+gah0QSMsQm0VT^`NLMo8&NA8evEb{D4AR)d!#I zSv75wx=)G@Tj~kgHdjADrp6!J(|k?lT?G+*w{>lqnh7jSx&&s#yS>uvr}NJ7`%^myK2j(t($Ea*%M0P-9ro#A#KKbx7A6ecWb8^>r?3zH%2%$ zRkuNNAbI4YB*#tGr?*K8l*~8ZD2c5Tv>-W>zRl%Td2Cf$4MwftjsU@`xMU$kz@DlR zk0Dlo=dhhvs(U2W<;mhiT5S7Cu{ByLmRn}(t)OJ;&TSgO9>OnLU=iqNCOoTCjWGGz zPxxCceUj9VB_5G}<|ATJS(CWGEFNTsgNx=uEf86LE|@JtvzKhFTA5@4zz5A+W1Cu& z#PziW$sTo=1<9>~+4AJFl=LcUkWd33 zqSB-UYczR*T@trG&K6JH-VqktjsESk8hUqD{h6<;Fsq3>U}uuc=?;OfL`J7Z%ICqEvN1Kb z9Hb*@Mhf;+!a^EsN6SyUN_*TnGaXL$yW%A_r}l%@9*j0WdJp2YRj|nrL4dZcU+UY@ zV{liaHGPy1LCwX=9KCLxga;07Ua@6W>Z zkc&YI&jfPOI`<(LN~-c!sn#l@*2n}?T3w%V0o`*dU90~uzR;#88q3(gh5ocSWvY?+ zCcye`C?ma4ThZfz;tk%*^%*Vj%qxyrtVMtCiaa!qe?3st>sAddUg8ZB@|P>ox>bvp z!3qFlzz>O8v701OE={5BYct3 zFHF@&)jA=6h%zacP8RpvnGjO94J=}qakH5Tw?0Y9H$W!4@b;*jVlcK%C#LOX(~MaE z!S6olic@7dh$!2|OlMW}h)AAf&xQ~PQ!8MuPjXtzC&+X|2})U|-4f~xxn)_Ff9X$Y z&4l=SCEihC-mQGd?Q6P@y=T&USYJ)6`M{xi?DqL?YpF0_ zwgW{MB08A5weFrSK-0#wZM&JOKXO_%2D-Ho}pi-s^k5jOmFXhlkA%3{UL!R}YKYicl4SWd+GjG+BdH zGKp)jsn8b5l@g14feUK*aH@(b?s}a`8GVoC!-P3&gI#Reu5{tDWlNWZ>^nKCa;#Ev zM=;o&q@}XRTG^c$X`wAp`(SmS6i;YmB>m8Crqx@qWdnSI z{R~<_vrfC6AC|2SpTq06Zdf_H->?NvBd2p3if;SBvYdv4H@;IYZd22E5)$k9LKTE& zGtEruEuD?87~U8gS=H=Y8&MxjGeHSarhctag6|pm?vb<9v#FfI5__hZ zBWFpom=Ovnp0^dJ(b{4`vSN6U2DZ&RY{oOWB`{cD(g`alSz^lS{b&E2i!0V_Sm(6` z*bI4V-?blp3uVk~1I-iZpj@%dS%mlfV{tVic3Nd3Xw01woYXtY{%D81DPWi18B;^*@?L9*rmeW?ISBqKH_XqREHrsclyUz^OAaIR{8HxW7=wJv#hHRSI(-pIf*4XX=#C zS0GQf zHrX8^A*gF{)sFl6VIy`6q_Urrbs?v^BQ7=~FJ01rD41dR8KGuy(*~Z5<7HdpZZ#d= zu!CvrRnRo8b$Q{kQ1Z(QS5jP5)-Il<(ouG1S+JemEC`1wo2`g(bY+Gm#8M4~n|M1k z!nvbL>NhhX5&`?9!Fgw41^j|RM#0MIUf{OE!$cHDOJ8XZJ34&6QCPWlb;2hdp5?{> zG2v2m5*PF>@mp0(A{vvzvSDe2ooJ^1V2L*DAJghhi0a_Hs|*r{m1Syj@BB&(*5SiLhI(7TPe zp;`~5Zp4&HrPRHaytw=%-Q3L6-Ok1Fb^<{}gVLB?^yv;c4PL@E&sZiDtEt-gNdP7$5iY=VX(;#b88z;Z{2OqY-ux87aO|;F+{cTGNn{yRBh=@pgIMU(6ku$i!>)t1C9L zGC(e>IPvNXl-|K{$RTw}#~}woYF0Pb6$rWPSphQlBXnjn^Qk*rCep$hy9Xn1Jv-^2 zurGz#a=)&9u?;$N3v2vLSGd_JNOrVxob8$#)Fe;3v|XOFJ0%~HRP>kkQb_MYXb+@_ z19orFO?WYyI*Dil z=$Siir+tP~oK}$rpsqsUJE#N=DQM#j)|*z#%W zWE*cJ`xe&wrj)d{^`nc@kpXP+&#zDk3l-vMPz+4IO%a{T_g`<^u z*>FSY=6Yk{hN{l8i6qMlB~Z5y!^Kln-18=ZxUzdki48)Pa$!TYX~#4M*R9&LacDU6 zKFHpWwS|q^Hbsnc3LEPQp_4Q8!vuN#AT};U@grJ3b~okhGbR0G#zP0to_w25M0py) zHq0M3Qpj*b&F`I2$I;eX(PN+&BJv$q)f#stZ5q)@{kUglBYG{%PI0VJsU&CcJzTSA z^8xFhRK+GcO5@T+Sb1UM1(z~e#7~@UHzn*r`s{Dk`_2F66+=TC)~s6R1l_f6zj=5? zdM=cUqmrR@5>8N4q?7o0+RVNvSq`DhFX+5!T*Y(mHm~jBc`=^jC2f8H%gAndqKyP| z+u!U0H>v%M77ykEw=`M{8dL*aWSsYI-?zKQX-ZChl6RxtTz{IDf z@e-~`5J`x~Yok?Gx8w&8OJOeCrWd-iPA)dNsf2FDKXgDaQV7lN{!vfe61QD*tg%l= z7@>pA#$|0QG$BLRi9`;LY9Ttd!$*qNR6H)7s&q_;chbN3!EGp`mE7>tXg0XYXlV6{ z42^5Nfpy}zZRLugHQRC=R5!Y8S;H3cs8sZTmcy8VzGh)444a)Rxwy};a=o}-8 zV+-Y)EuKqNR#Z=!b*i3`Gu<%K^xCFXsXzjwq^d!a=n+nG0!wTixjMq$ur%|_tldha9yw%)TD+jkKIwJ&O9Q!`-LkVpeD&q zU16E#>!zkst%6uNx#tj~vi%w+28V1MYE*vn(S6R8w6D|JuFyXD;pNQcsc@aIBrV{6 z7jutv617|Hv*D$7JX-le7zkmFS){!*v?%GKLkqWh<>oc=nF|_1nCLcp5Yc%%*eb?D zKWfQ%mQBj_!O9?qXi*+AA`!Ay%=w91Gw~z7HBw>7KtZI7EKEns$+xs@2bEHpy%`Ly z$YQ!06Dnr)8eWw~BIykEv}tQ|IWg_E=N9>q@hxm1ire5VYweBoWVW*~?L@8%tJ<*% zt>2KV9WyM4&8t!moW0QjsQJzk!c3B$ILSR_X4k7;$w(9nZb^vM0OCJuULDt>zu^8(Z3M1axIW+TtWkEzMY5 z`H$j~&Mq|VE~Q2#eoG}MavZ93Mx6ud;NsB|+o@8~%5LIp?}TO*!(7^1p5?M@M_ojy z82~lMd2ViEOhc( z{1$gqNJP}tg25LI9}W4)OqFSOxJt-Q--!+j{?Vqry}q@FMDA|dux7)y!Hug2x2#ze z?oM(U(WPEkfHy%w!tD%;H@LLxjkojzqqbIeOnU9~5sy9ER13KvNPNar(!qY)w$awe zH1Qpz@5&+g9mntV%yRaybBSp9#eJdvi*4^W6>N5=Rof^jhK{{$n^uuvd0z4AH;jgM zRSxA~N4KWZ@D6Si-MrPdaEHS8XF^Dt(oM1l@P;r1)1XeR2K>9_4cX(RP`l_nB>+VSQzo7jpQ1a+`@($R~dEH zhE;F6T)SPpJ@z7Q+Vjcej2|dyqGt---{$NZDR9ztn5FW~I=RIy_~v9gRioF8Q}7ym zX?@)06^adCh1eKDs}n@pwyWuOf~&@5m)LxF5d8DXv1u0Gti20jNkKoO4MFXW<>I{D z=p1(2p1g)zhDE=vk|vYpQYkN&+?DfCsqJK$j1KA|#@qr6)KorFNMBG6O66LZZZH|4 zH6(B}p&g>^Q-R;u^iGc$9(fme6<0ShVE5Z=t=h@Q{$*abW9dq?Q(NRMw zJ!CslU_-%&%Fkg64)1B}g5Mp;C)Xb&tA^Jnqf=a=P;R?z+PtO9Z3s0}r$1(3(XCmZ z+9u(pKDI618hTe*Wb;n)lHI_PY${F(h6$h1EVI~S?Ozo z9kYqa)`Fy*t`dvj$`*!6eqAHGpQNF?*o*C~o|<|O?sBn- zY_~_}a3hu0E=?=ce;2~XIR_RbE~9S}Fnw`)3oyEV+kVk3?7Vo{BG(0nI|t1rsE4D| zuDAg(BdusEV;sn8GUJ2Ik__kRg#+TLam!2WL#gjldkYJDv7|rl5*Umprva=UHFb_c zecXJVoi~&q9nnTy_DDmw+glg^#V9g`qLCTsd-!*eTrF=#Q8Yex1>4-HOUGRtEEli! zJNDUu#=^sr{>2y2sEd{^x@hr|xtli)7gs@UBA?=FnB+jRWYMCf#YGnt7cWj0FCAF6 z^!!DaEM0`h;uf~}%0ffV-^Inn7bHuT3|z42{6&PEyPm_o#bKm{CVQfE!{VwPX2k>* z#uiNlF4OFaNx_u?`xz@QCsb{G23}Acu9T*@c$))4)#i@mvgXb!C#(JS#`xuPHwEgi6ZJCsr(n>+?DSM?lY5&M=SZoskk!NqSbV3op8C{eeFEMO(-&8e z*`CtQW@{hR*~@OvFc;@rHdvA28uzItbF^BrQUuSE6}vz&fFaX8MY&7M!8@jViYU~` zT|O~J;CZe3Dz&!ho*~!&HL<^NKIi3v?H-yjXSt`- z7d#XJM}KSYN(l4z+y{%E?iAv1<2|9Dra5WH!=@dx-ZQ(8V7{l9 zhilkGI>GQI^F0%`r<>YaZH6Qm7DJ85j7blgGvhs>v7v%!y2mO}3Klp$>#!6(mJ_oH(#I{#I+3B^fhBfMKGA|@vMeWT)<|OmJKu3*vEMp zQ{ly+PHn#Sdr0Z6hWeRWV~vW68*@72B0d@Lfnmj_(=XK4G1rv_%)OROsPo{6q-iaq zE|ZJT2Nll`9R!xW6aBG?j{Eca*GL-qit#L)G_Be*<*d*9m~t3znn4?e(AI}(c3iD*at1@LdMC;ggQcM&SwQH!IN6(f$?|;ktLs$=@w;UbcMb%%~1oF)v`v$B6={Ow^~EE%M8f z5z4V*sfGw{yc6vai_Noowy#<5gvRqkWA9GZ?nTW+84darN!aWnP3#p}8hKUe*4Xs9 z25t|Rq1VDvkO7-*vpxH8Z?^VQt7g*&FYRv#VGR`8@c62^W6?*~8E}koa_@Mw>Vp}Y zJJ zG#6|jaQ;0lUZ>Ak382v@5G*UnUh)*Fuj8Ahv*RWCaH7yz42aZh{iIP4^}Q@E%117^ zyUQtW-p7YCDnQv1k+&Lq$%cMuk*L9j7=p}Z&pbzazMB7-Fp_cjCw zL-N2BQP(M>iI^#7Yyi;|K@f2!B(J&ZWlk&sV17u^fvrI%H z{)P~zvhT^J=5&2h+o8M*BZQ^afGlt^1QKEm$e{g;`2)s)BpEe}$yU>;p*<7+8cCv#5VG?UWnw?Y{mnIC% zvK2%$NNF~v=k`D#Y{1|!*k?9_@YQWK2yVb z>54fJigC2Yj1it?fm_Bqo4PBkaXzdq*$y%I7zfUf_YkdTp^=V4&EjhoO5!Ti3C@d3 z`e~YxAD@A066qaDZAXP00rza(gKV+=ni29w9jA>%^x?!+XSpWtZ8CM9r6K}vu2}@L zgzQl>oxv8wSpvz(git;R^8`p~glu|$HhF{Tel^i(fT29yt}}8ojHXwmbXpSX)t;W8 zguy_wqHbG4L0?KntfFil;*z@EVW?K4OGQgInvNNxivFXx;bOex4XSFu<1!jx)Ehx^ zw;7VNlc3}d8LP9h;_fXZe0Q`c+V+KZ)TgIQE=fz(I?|AZp)loQc10Gl_Jv|ck^J1# zyioKIC27{|yUYvaTZudV8#X^^!bh;+V>6|0V?)^CNsSF@Hqo4Dm~~KY7oJ#&$)PxR z$yyzX^+$c~)Iqy(&b&iH;^OcB%9@i{0 zPiQbf*Eo^ z+;mR-RRv5VkSg42QAaQBnXmoCk+0*Pp+ncIvKP?P4Wf*Bb~8pDnPBfT>?WwB(g~0$ zoYkGL6nD~r%c5G_+h;$%&79Gpr699JM#dVf(LawcO|m{9Rf_0H$g%(%`eo0^#*{#v z3aZmNjGD?ODt_kgHiQ=K`U#7sRfYT|jl#kFQVQ==D=?ngqQ|kKQ_IG}b+^pkB`l;N zv%%H|itC{GCQAU(yb-JrWq=cW>fKwWt@D6W%E-}~UUr+SC`Fhq!vfQJ<}Ok}QGTS- zwoZ?)c8)yQI_j+IRF9N$1~qT)dMzUbvc({7l2JQLusRsN27^mAFx||!VZuT#i;Pbq zgHWed;kH@db9L2_C2i*v43Qgp*t&n1OWo5(&9#P@`!|Li_RUI=Y;1yBoY%W^*=4 z?(DRO6vqq67&i8{YoI@>)16x4ZQ@M))&6HQGtpFIAc1s@<#v?ONi{8}r0Uk*(Fwoc z=-N_af?BEV8)tD+mwmX9rUiddc)lLg0gNkomm!?VC#DZ;&&)zq4qA0j?3ET-QK4$E zojYn}QEH#tI!Gq>q1E#UW8NLmQNf@!Gl646EGS7hs8p`M+rv ziQKFyDI*9$y2@dsvO~fFzx_6?LyeHjAkaD9%Pusvo(S6dMRB9G%NnNU%&sCqXKXBK zYErID$iR{$J9WV>154Lv$dzWh9ws_6t%Q!NCZddXmE!62yji6pja%JmdDzr3)75;L z&9gpdQ}fjJHW-0Tp+(e{U{|RlSXC`JwYS!7SjojjO?)_gfu>U{T+BJjNjm$oYLS`? zNk~F8Rqs-?<&O#EEF6=YB*c63Bxj=SSH?R*qUWY#sKQctr9ckKJ} z?v<3*a8R-DnNCd|Z8Fg(-ydvf(UuqWKKBsm(*~WaeI-qNVI1LxZ};q}ND-o#I+B_# z3-_h*E$`?ey;ZoXj%6#x25P8t@?b@QDY$-Pg_};wjT5Q}{J z`B56paI~V7jffy=RIYB{Z)9#ODMvV>SraeZkWz7`Woj+@I`);+p{y{$rc(DDiEiih zkhkJvR+Ypc;Roso=nGh3Q_R`>imbGM*<{M1kje!%#8G&x7+E*>VM+^E((GA>3`Awc zu~1T?B1)Iop<^8{E-8ymSf0aYI*kWnX{OjXGpnKzuL&lWirx>MjQ6!{%>=8n4YU*N zK4!BVvId$iHv2N-iZ{1A4)LC^1s?A|u1>@QBXv__lkzVrQ=VWiso=!@F!cXXnTJjW z`8KKEVL3%Y@G;B{FvXoiD)m5;ZLwYkm||dUEo=lUOqEV6Owm)v*wzfXP!lp>5TT3| zMrr5smap|FL-?4~?K`pr7~nXQr<~CS>pc0$k;w4qiqmv@%5FdLn3(sRYBCi^SoJTO zsirVn>evHdBX=BxoShO>dW|q*-=;SP@6#ip8t?P9iElI26bO&Dcm21O z@gO5;8*AEc0Aq6bvE!f;kMgJ%5KL1oGUm4o3#g}NtTlPRNppcZ6wQb!MQnZm1%>)$ zAh(Sl)dSgUYLE0Cl%`Q7OkZMO=-_MOCvcEb!qN*ftBj^1)wn`DbnJAY#XEl@osV}~ zzxjx@MsJR&sP$m!$F5*$gq^`ubCPP)pusScQe>=fDR!37K1j7MG^ez7zAhIwcM*C% zbq{Ycb=L4x&uH4IbjIP@F|>Zti%GhZK*nR%d6@=Mo$cCnF)n8`sWUzWrmhbmx$3h}Bk%0NrP142 zA{~EU4RZI zp`z~6{7>&=6dD_okgoc#ut|!XH=U7c46|l2uN1Ov6G{Z?nj-5V2UZj@qIGINjbWx* z65f0lDg{Fa61blS3;IrOK+B0iK`b{FiEKmVzxFf|)#+#ds<(Qo)XhhoNjNJ_STzL= zH(bhS z#4dgk`$gd7!ed62eC0$rEFp&-=A&Y0Zrt>F7{;5bs9CbcqhcRt%Z<<8O`A+dHq%i) z2@UjI8Q%xhV=uUe@u;q($f#@FDsD1rF=7O#>r?Ylltb}k%t!4nieNv=qKF2hLJaJ- ziq?Mi7lT`nay3sdB4x2fD^l&)f)%O1LS$_4b}~6&To(qW7|lt|lC{Qc(e0hoTFV|A zx^4|^j2Jdz{6w2gnAA*_dRdg}&YDYpP=IJHmHU{rjw4{(oJPX|DxCIG_iWk93XaxU z7ucy7&O%x6arUnH>Y2LlERonvuC7?IvBI)thNL3ty54%$;GAx>>7<#Gg0;9MDS97b z7*dsTRN{&fCk?DgS>5-!2qhBTAA!Zb6tg0QFKhd@OiB%+aH+CiS#y}KdM2n8MQ8Sv zvlG<3=Z>D9k%MD&8C`r39Kv2Jop%n#7c~IeER4!#(%P*z4w1oxZ4wsdQMx@S+LVG4 z+N?00>!q2nby#P7vMR;lG)7I|OWkf+t({sPrTXL$DKl*^ZCep=;KfaoLz#z!r4t)& zQ{{hjt@wgU@SDoms&3UqDv{%0Z4*4E?lfA(mp#+4=9Kl^wklN&C&4EyaxNBXJ9H!v zO-K1|5c6(AYTiAYN?SP3gvkm1?w$>!bq5p>vL}@ZWC?YB%7*h&w`FZtA^SOMrbQe# z)ONv)Nht~Pw)4(fHLa@P@xW2HL%0N|dqwRWM>Fne>@qZ!Pcm&V(HtURR|E&ngIk{x zRd`7{i{CasW$QJZ2+bJM%~Wq^LuFG=Cn6$1TdqRfwtdF!?R=Syd;1CMyD&zoBa>CE zE>2{9j?t+~MV8w->`wW-Oj$4=8o%4L+*_T77D$te=ER<|cHL)seh{l?3ua1@POXP! zvaP|f8*j8&FHIK)sZwU*3czuWvSJ!5-56-3)n+|u2AJxHfk8QptWE|$Y|6xjVQHO$ zX)2Gpxlf~xvn9(^aBlOd;L4aFTF)H)(*|oXafy35XXhX7Enw!$*?$oGG{CV7P|6bv ztpyi0L|f;VT*Zl_pbiLSYa6WU5cCc(3u>{UM%%C3b8>Ee(pH-uCadz}ibZTh8tc(3 zDX%7r-wrlxmx?SOP-BtVt%^fuHEEl!%6rZ4d6~tKRX&LAg%w+mdnH|vMMUmwtK1aI zGSyzYaRG-Fs`9?BO;Gd^6keE^NjV11Wvy!U?S$|bM&2V5Dh(Er?GWC`c6?bma*E8? zh8HVVbUKTZe3x5^51XZWFKqUTvR#?pPvd^9Xzc0$VOUX99-P`NlfHt|D_Hl&w7*KD zs6NI0jr{Zb68og;3aip_!g(-NbKoe`0*m=Mg=Sl{N3+M%CR9>SZX!K&c6(osD5N3H z5RQ`eQ#8hfTz@K&HJp>P7&_O0I3drXBn;P({pR>`qqhpDLs$i0*6&UY4>r zzsqg_YNMB_Ec{zD*)CyQQ8YeP%n0N8_H29XWgja>=VxlPa^(vIa6fBen`Y7Py9VrEso@Zh>Qe6)S0*TwqPG7 zEnI3e%bVWwD*B_BXhFrcx%u2vwC$ZTUD60e^Y77iR5%MMksTou;ob(c)T_yW%#2{D z)|_c%KH&+ru8LyT={ZIQ=5$gWmwU2yvpV7ka{pfzRj&*mplIr{u@#MGZi*5 zQywJ$LQuh&R^0lwKqDVJ5K&Pv@YwVxSkg+PL5?hPCkA?6?KEJYL&~-D6`7sJq@>ar zIA5`Bv&%%Cjk&9f2eVpIpF2-U^A{JWX~wX%&xZh;n8gC;(+$f*X{~a_M}BQg}S zFH5L8s_oV}_#k;U2bK8hL|Ukzf5MbjMx$U7Y3h_u%t^St(%|xpW}L>6&B7K;hkJop zg>dVi?UipWJZMFwKUw1obz$Ex6B*4?wU^J&k~YI`xHO+}4{d#_y+>E8Q|YoyyZ;5% zZpYlZ9aC@i-RB~AUG0=ysD(1DcC<;3@9xQ)e{7!#8 zH}!ZJjAKQ`2h&8ZA3{jQ#MTrd85)Kjdx4U94A3qgRBVT)U!e z<BA!2ENO_64lW+n(Qbxe{FS52YOD`Ai=l*v5Qj@QTKaPlPBK}~y2n13 z`Aw~JN!Mt0w&Gj?{%V{G(zCG>GhX#p6gwrz-#d9T9mqtmIwMVm3rXO@KGG|u=obrJ z;avM{ic4;&Z2Liv%e^?PFJlrZC%354b=Kb+p9}=i)VohGbv*vQ3if*wn1U-F7OU-Ej;hSogAeOKp2~?6>HeL}Rpz?YYQ1Vbc!3U?7#dAd zsFgUDs@D6k(@~jZSGUO#A)P`ldc2hz_uedv7E`*tgA}OweUn=6COoQiPF$8KcrVv{ z<%9ySteDC*7Ao4OK_)%cYWw|3E=twAk^^l=naZm{sTfceZawIW!0F zC`Q(5Sn)p8DdSEkFq!eD$Yp6$I8x$`61VoX5?K%{8dZ1I?3PmbK4c{1LUq_98*u>j zLCh6XHpb7O{X)#8m)MSC_B*HT%GAI%Z@Oa z?T*R`p}JWm>K>Nl;%~8^o0FJr;Wc*Ec~K5v=x4>=wr570Vos>D1??}aU9(==5V6lx zdyPPC`}ur{G;GdFuPV_*OsglZnDU_Ai&*=KxZ5*HV*sopS`7)EX{WJf@(O)N^IkEI zuJUC3q*3HcobeH3Neh@xaibNn-j${(x~zzKp?YR0wlW*KVuT&Visr-i6G<>179((J z9ns&fZqbk!uE>dNHnDVMDS9r;c$lqoWv+lp^AvrxqwKgWX4V)xlTM>dD-^R~dC@{~ z=|B)$2B}Tstr~;^k*49&TYfUf_bQEp46J*A?n}5G`x<5By_ry~OtI5^g+o>uU)_1{ z_R}k-j>HN>cF;21l^3oT=`upYV9gmgzx$~@7)jM{_XOEE$u-|Wu@uf@a&xWq=eDPe z;>px>TVYci6y`KjDrw{li?yAJ2!+BtXY^%y*iPumE`VbfWuYYj678!Zc78BQh4kUipmv0(G`J6LFwuM8i zCOUG-i5-@7y%eKbe<8>Y>=7C(7vad!fe7(iF08l3{dObhS69EllV6=iF8!jXupZ>I z38Z}|5RLBP9x4R&cv7EYv~7{aK2Z4b&PHV+Jp;XpsMrmWai=IlG^af6)Zqp#pcygh z3{fFoQr#>~)JjcW{dVf`x)H^%8z39Bd!nWk_zbe4OQWa?{nCt!DTT$ZwXL{+!#)K~ zNuw}`>LPRWM0Y?%NukOLvAU>DL#*(*^P-k!I^POg!#gILrAA?xtv^-ne%mynD?nT+ zjHU36!)uh$u}0O6lbMLli5jaPEh=rbv=LG0Tw3#@C?Xz;k#1w5tgh=mXuocsOoqUs zeKPuv3+3G#H)NzNb98$^$0JiiWyPS~=(1DR9Rj{oEp_|Pnkw_%%|@8fRM}8CN!D>u zr3m(5uBvoWmy!ong6$cyi!QsUeTYU0+P?$%+)u}wOV8p?M5i@tGA+npg^D$|sxFS@ zE-WoSbEQ>bi(e>?iCG;})f#eXC%5!b104%6V&^+<-a9!hc7ZpjrRQ;N$=`0)Ov1NK z>)l`bWG#t?Esbv2%$cb6q)LVgS2dVq>+9j^*n!+*C$(bu*fm@O;TOZEcFpKxB-EVY z(v)=QOO2X!vR3ipwpp_-HjZVi)Vi51#N;R5^wM-qUK4M%qFqUw(~Wrk3PXG8;yWs> zm@UKuyMdBA%@C`$|HtC>ws;mqMAH!`wVjPL+~B}gln^B-zZ+#lrCw9w8Fx&5rbJnE86(O zb`SLIZQuEBqJ}l?BRBj&eqrZ@Tw2lWnZyKY@Jz|BX9mytNP0S2c1+&wN2ff}*}K!W zHW?w98RIO85tkSi<7~+{koz@RusBAx=F~oDOFQmO&YI>>Vg)xlQ&hLxV_5;Z)-0)I zBQvT(pcD7=i>e4CEp)F4bTrxeKCd)X!c*G1ILAQtfK>5DL+mb{koTq zicx7KM6jEw&EC*8b=;yXRS%3R4*M{j{BbGd@%C!0iFmLstKiJ#g_$`R^A@bf`V16F zv{&f;2eh~~f6av+Y9XqUGIWs%9&c&XnB>a?Mrd&3V#b#gB-9dK#06RHfpPn0wF4%> z25Q~F>f7sxfKF;XNBJ13AVc$so6EGC(Jm=@wd)71B)Zis-tyQPn=NQ4#~SthEQjfB zxHfTTl`OVLC%0$`zV0ick0#lPqmoPi9mI(L2N&v`Hs@0HaqyvZ(B?9`jUmT_IhZyQMJfDkim4%gIiRKgpKg2 z%fH=K^OZ0b*OIP?X0fc6T{Sw8eYKq5R24n4N2_1D=**9`+Blqkbp^?+UxOMuZ)>e{ zgp=6eVsz}1?Pai_K*k{o3Py#&+4Vh)2vB+6LuM~vdQAsBU)I+M(owh<(VUUBkCml)Yd0uyZ0QJ@s0EVJE4_|8M7v~jfJW{L^6A(R?+ z<&l(V*#VUiuWNL5 zi>*8|a_q-kTRVofy|#|Hf(CVek!ZCZb8V#tHvqcDHs7k#w5`tAJ~oAs8*DQrUoX$T zuip-$m{lgW9B_41Zv8*Ilc~R;!iRKd2wQeHe&Lm348-P}jC^*=hFL{oyd|SZb1Q7v zb}6PKYQi=!8E~`R(st*f`Oi2;@BP82b~+fh_K5Kr)nJ|6C$ANo4l>mo#}G|o z&CDCakOViz>CT}?(xEx!dxL;}>T zqoQsoYhe-!v4C;U$GcE->_lLsFq5Q(JP{h9#Q~x%`bnwU>C+@jWS*P%qV^o;zMp0x z*n-m*W~{*#nE`X(Qn{`R4>F%H3OCy)tb@(|X;bbKnd`I@7h5m4nYsWM&D)EM-g+Dh zbH5p*anWzDD5L4P=x5gWa`xj6$#)SuJeax57?In5@KzPWKPV*3l$({e>qS_Qp9o?@7;wDtda%FYik z`EOw__^e?O5s)2&rMY5eED9HHg>ID_!qOE*pBS_4%l1js%+#D+YUtO)y6L%`L!9e| zeyCZHPa7pE$4Z80Nyw8DO~&UiN7bpTb$w{&uCqcK1`>!jJ*HQJW(6j+9@&{pJD|^W zq{hfip5hUQ&MZV~ZHr=+c3df$Kv@#aHA_vk1g6DG=aZD*q}8+lY1niEL~vKFLhr(j=6*Yb_7uEf2%j%C_H zD7*B|kEMhFo6t!Jgce}I4lFF41;SF6rT5U54*UN;=ghqCdy8Z{>|YPWL#$yYGQy*9;%%3gaLg96b3WbxvTfo!64}d3vUjqqR z_$4?CeBk0jVF@@FJRQ6aR1!}Fj{#o~_JZ#M&jx=BD&5BrNqAnsjiAEs0`QWo2z(g0G5B8zsy&O~S>Q84wc}gD`_F@__pgJG0)GK2{6nbJQ^9k= zM}zA@uN8P^ z7u*Y;3f=-L{~rNi8HL}2N@w0`Pv;s?-+6X$zZ;~g3*Q4(u7r>1d)I@?*Ym)Q;JZQP z{{d_1tKbEo>iszZKMXz*_piY7!0I~B*Bb(U8dN>~52$u|?D|51pM@uZ`rgOEx!~_W zs=RRe<({7%pxmzp9}9j1R6e?|@b(`7mG5VRs{c=b6uIy>Q1!7ArgA!11XUkT1!seI zf(iIFkfIm<1S;RlDXi+F0qVPVfU3`5fnDIdO->J2fpq=C(?He32f=f}Uw|sl$(uc& zmxHSRCxc4oouKmbLr~!#y2bnT5>W1|LFN1Dp!&n>K}f0aK~VMeS5WQ0hRRU*XMj{$ z;SNyw{xhibFWl<=>nd;_?i#4@uLirpe+&3~5LR3`yN|Mi*9CkHsC2&t(v=ExX>_@F z1-u=ch5JvS`oZbjJl*Z!0^I)y&H>*CE(gC2o)4aJrSs*hz;kd!sCN7vsB})b+P}9JRQ-&Bbg9BSz{h~U0+r6gw-*W(a0R#= zd?%>y{t|?A3k$FDezq5c)CwN~Rqrz)-YdX9P~mO{mHrPwk}jNcou_{jsC>Q;JPrI2 z2uTzkdcD8D5?qM;IpB%l-Jt0HOQ722FTs88gV z^M<_t>;hH){|qhyzYD7TCzJ{WNTqNEsQP_9NEa>q3KacZw#(~l6jb=vfvU%^fTEX& z5BvLzK+)d_sQP~ysP_jz)z5vP=-{N?-hT%{mG4!c;(Z=ezxoq+Hh6Z~>t`b<_b{mU z&j(fi9{^7Ue;E89e1nf`i$LXjEqEH(02ThF;2iLy;0o}^py+k}NTF~hSON8&7l4pr z;Vy73cx=V-8gMi2*9Z5n!HaSCjCwzr07X}Kf~uz!Q0)88u0UlrXdOQtWfcp~g7_b5=ohJtO`@rLH{~LHb_zmzB@K>PHIeNnD z@g(qE+)Kf;z+q6|eGd2-@Z(@N_#N;(@R1FVzXnu0Yys7u>)>4Q*`V@sXYk(-o`Cy5 z!Fk{>gZtz?PWKBzefR00zVjw1nPUUCY?WQ3ixJlHU1CU=kLQBdW)7Zja*7n}_~1+j6e>L!O@Si}@*?)k_-%-!< zd|e2tUu_0wgC$V;d=98~d~LuFf=cJ!fM@-qyQ`q+;{BlN@qz#3{pM0o?tP%>;yqv) z{290kyz<%568I``4On;%vL>(=RJ}e2Tn@ek6g~bFRQ_i@*UNVusPaEC;PXMX|LefT z;Cn!|_m4o;|D&Gg-&+8xTrUMx-aCT(tKegB{}$AD9`Sr{|8=0+qX>3^H-YDZcLe+< zI0N^L7dRdV&cuBxn1FM^Mc{hyZ14%7>i6}*{T@)|{YLQrGpP1E`h`v>-Js~N4^+S1 z1I`Cu3a$V@3aUOI^dfK9_235F6JVnE;9l@MpxXJ`7dt*4)OVi+o&(+rCg2x9edpJp z!aw3A&i~H_Rlhx;(M#|zfugfXa1;1KQ1$g+p!&lRFZKAR1Y8(!Rluvkgm4v5_4B;o zem8g)?k|IL!9RlHn`gev)4dK{g8N2L-+L=K3;YbY5d1Z$_B`w5p1;e$N8-LRxOanU z=cj<`=kE>gKMx*@`#Yf0{U1>6{-{@Yx~suuxc7hyz;}ZefZqeJIf8HgKkv7DUg_=l zLQwg*9ef1%X;5_cP0;$wKRcaX3ab30;4$D!!FAvpL6!gK;K|^LuX1``1S;R_L4_Xx z6R-v<-!B36o%et$&({O~0u=oo@oJY7yTIkRZvcD2w}MLd=U@-`kk>f&f*0X_BDfTM z4=6hP6)665+H1W&9tU2E`}v^K`3!g>_ybV=`>&w#*L$=34}yxn4?GY2K*0OJ<8jY= zo%h#^!AIl1GPuVZh9I{4Y({spLdpK*)h$)M=qTu}XX8TfE;ZNP1y z`tM-CYQRZQ_4st~Vc;u*|LefTxZetj9=;XaN59_F=><=~e*>s?8~`r_p96|s_k*JI zAA!oxQE%{iI1zj(?khmW?*oqp%b>#T1(lDd1$<8Me<^q*{;v)GZwYv3z`H@kzXw#f z&w)lC!T%TFarplsyg%xV{{54{1pjVO^tKsPJ?{Wd1)l<{US9*A0lpJl27Up2B6!Td zxIXH+py=UYw|ae?4lcsI4!jiH2c8eUAG`#-4-}ovzs>7qJE;15KFGhq$N5k7UVW3( z*K5JkaDNB97(C+5K29wK)sLSE-VVMSyaFt}#lL$8SjYWKP~RPTtB-59fM?Suoi)h{l7XDBDwjr+CWJn%EY{d;ge?z1V}3a}6C0$&cQ-yQ&Wfqw;i!J#{R9)Byi z9QSeW@^t&bXXCyJR687fr`O{uQ0Y7w901=7itnBLZghy?W5Jc+ZJ_e;Q*Z-#(tCVf zSpt=>JHf|+zXMfY+wSuE`$urK-h;~DAHj9t()W7(KOLNd`%R$u(&s_(w=r`zk%yx=$=Gk6K^CxV0E`$2_2^-InlhQL1D9{@!^ zNB@V@|7x&^`zCNF_pkb{TjP{#Swe{tH3n|Gl8<>yO~o;OwtEy*?S7hx=2Y%JW-r6rA%7?{6;yufqKU z@OtplZ@T}hL8be1Q1!gvTV9`gz#iQ11~-8Bf!BbS{Fm4ND?pX=r{JaF+;2M$2fQ`l z_rW~{Xz0KFd#?hO@1KEc$JO8QdUz$c9QPMMwcD}Zb-rB#Ro@>3w}D4~&)r2(`Mm=? z3j70jCivj*dppbpkHI|vs-M+@`vc%3aeoRt7W@V{8@vxxIw$5~;LIO7Ut9$~0{8Pl<>O}X1n^_v0`T78e%Oz^eNO}D;(r0S2HXKEU$=te z;QPQu;JhC@9bF5`{Q^+^>Z73A`PbkCIQu7F|Njh@aeoa|JFony&sT2&x8Q!r&piHB zpz8G>1Kta+!aeur-d{$+$Kt*dTme4#7rtJ%F5rhj(eHWpc|BD?x!(+`{r)>(?=QW6 zZvofg{|WFU@DaZX23!2mTLuG&tkeE~lLY z%Kt)eC3pq62z&vke0>zucm4>@0Z;gix7#xCc-+qd9|67^oCUreRR8;8cz@(?{rd^1 zd|m_|1Fi;-1h)k&f-`ZCf)5Axf)4|q37!VNAiRGEC^~sRcpmr-Q0YDLf875J@Oa#- zz-8ceQ000BsQUXlxB&bu*agn|ou|JQ6kR?ZR6V{m;1|JDasLriy*%poKAx=)cq@1Y z{tx_vmuEJ30`5iN5^!z6Cj|d@f~v23z<3Y9i^Fig~F7Qh5Yv4w3;a|OfJQ>`8`*UC~c*@^=ym%bgkNaf-e*)HVU-rMw zU+x4SkNeNyRp4mh2%ngDv*3L2uK~|_ z@DVnzyDDH26g`iCYR^5O;=LxgKMkIQ`!}HY;!zLr@-77Ry(_^-gL{Mf#bAQ_-NFCM zpwhb!+ytKX&?AiRjDi>8{s_1Y`~!G8xana>6rKTA!36wmz!PS8Iu`^ify&QIL6z@) zpz`^BP;~t_@I>(VnU3dz@?QZe+|}TE@bRGN=!2lj|9w#9IqFEqvjZ*Cy50>g2X6xP{s4Fy_%l%TaOA_iK39RK;NAs32D}MW z`Zt4@fgcaZ}FZ^Qlk5OR0$|3h#Ksyw1A{fQ49!#DJ|p0F?EnH}8!$?vb?|F0p96Y$@{Z?)+i zJfb!66aAgYyXW{%`~OM&Pj@Jc^Sp@XR@~=<`uhd=Xu_Wxz9Sx@zZLlZf#<3aPJXZ8 zcOTC`@cS0=wEthv|M%c`HP32(i_YG|?}yl1@iO=gkN#$m zkEelm1oy|mc|6a>?{(m8o`(_U9tGy_W4Q0)IU2v6=0p91-Qo8r?>@>ijQhPjH}d;3 zp1Fj-8H|7X_Eynx@&A>0_x1kX9)-30i3+^3WG@ALaX;4i@+;HSU;;t|jK0Pf4dxAQ!V zXEpBYz(0a_^Bfh*j#r@_s_$- z_k%~`|3Lh|6Z}r*_Y?6u9$XCS?*%;f@hrygavuFH=iPnb{rUL46~F(nH`KMNa(_sg7Ha?BvlD|jvoY5z07_4h2oZRYt% zF8mV0{1*40c>nMa{$1hyG5GzC-*4ght`gwyB|P7=U;f_>yc-JPSK)O#&+~&@A(Z55 z{(Gt%{QW!6GTeVOSN7lK#Cb8#Kl8j0@9TL^CEQBzN%%dLC;nZ>@6YDk@;?ptIfVZl zzn{(TlX#xZ?@M@A;QvqHd+~b@sJ{>Ld>i+pc=sFd3Q&KKGd2J`SA2y9E3d&whSy#Q$ub|HZu(_sKjX{5}uA@ACVv{MO$W`27Z+0e9N} zpTn)cAMw1K-xm|-&%y5};Lmu*d3T!vg}*Nc>;-?#`{RhCzccv#MV|P#f!`PL?j)Wg zc>V+Thr|29fd5Z^MCg~BFidd@r+{m~XYlB63-130e{U}2gn*w3Y5X?06Wqt~`|RNV zJ#aDZCxd%;r;piuJe2&xK|NYe-Gt( z5YJBh&*3?W-^+O($@A~HKM&^reudw$czhmQOB!ALelyQXem@YuE}pORY{73KxCwj= z?;gYN&+=P;f8qC5@K|sNtnu8-Z~a|DSp8iZ-1^-Jzi;68O*~)Z`2o)oo_`DPeiU#s ze)flZnCE>s-o$ePzvufK`~O?GkLTCi;5P?+0N-BD^St19fG{(8^mhf%xjc{Jnay)H zPm$*hJTrLK5pEgJQhskDjc4%tzj#i>{S}_u_O(@;=7TN>0j~EDGh%XsV?(8`fnvRsm`^e>Hkiz@lZ~a(fl{r@a<@caXzH%bq-b;iZ9lbYxRjNe)eJm z8LD)8;b~_{m#U4?rAbRZvUKVbwZ`DYGyxh_O4jlH%H72pZBnY0>l5X{da`iuY-nQU zs>y0`v^<#fd8PE=)seiqx{^pIR>`v~Lj+yZsCr!vmFk1F^7zD9EwRd{wu=+V#O_j3 zpD04BMWCpWA+fSr@7mcz*N3!| zWyup%obJVY=TCvjlN7f$He4%?ChJPYp;ApH?I(YswAP7Q=w)_2<}F7nAzGSO?|sd5 zHl8n6F0OxZ{it={L;j-0s+E#*Jt-!;jKn5(H>xA^lYvI4;~Yg7%hhsqI4Mu?-3Iil z3LGdUyVQF;?;)vbQgS{rVf>?9g~HWn)TFf#mD4fg-~HLLm;Vqxn-6)vK6_=UR##Ww zTG~Zns)MDvnmzgsm3C2C#wg6YTocQRd{wjx-%M7ju9JFsAAFAboNM(nFWJ-(Yl4l@ zBzqgy5exPTrUk>T1eJb8YQw%#_B{>^%kh;6ig_7S;V7fli)RP9IR=qSl%4n37t3#!|3S^<{$#}6& zZQ~t^Sql|h?-)kI-LTcZH-m*5&c3|6Sci%xYLn!Vuu8*5$Q#FMMtOn4+WdD_io?cA ztiu#5qJXwQVl{zgJG^arGkU>A3l}a_3ZupGanXFN3&!ff5+pUo;8C;ej}DDmg^ZR) z$7++y28z{@F40QGqPr*gv%-v)$LotOuowCje^_hkoi~O5s%5@0oY8>Zo*#X@Wvitd zlR!(=u|(8^?4lsmvFdnv(0@%NO=L{3jd3D9SmTbDXko8oR* zc1_$^r2DMd;?9}`7_Xxw3uTf@J=v}PR7`dxR36+&F#>fb>-&1$S%;IfCn0%j#*7&& zAgXF)e26@fK=RHc*;c&~%1qW*cOif!9?fHg(2A9;UT2W|!Ju0i8&-0Rw1cH_aa$Lo zX3U5JZ1$yf#p+N6@=aDrFwkEbCP_9H>m%XY;VT9b7WJdQjC5;%YsPBS9bc4~7`!xW z2JtO;3Hq(-lcaB=I67|rh)L80f5yMft6u}aO!jxKukL~JhmumQhMXgwc4=XDe@`-0 zt`G7(@1;??+&Q~GCvwu61%}qSv+MJEqMSu%rbEeBa@f42JY0oY4iV0S19#1DHk(4LOM8#bL^f;JTA6_k_~T z4hc^kT5?{LX{Sipgzz-^zSS#tY+Su{?dm91wZx(k1|oNAD)B_kBpNZs)-n_u6Jrb! z2(Y7#%0zjbj?}+-W!+d+%5dPXN?>xVL8~E*?qaG?UrONz$419BZSe7SbQI<`TC8+w zB0~c=#t|3cM8kuFEjb-5R#mUNjan1xk%0>69I93-4({gd{I(D7+7-m-u0S-cDbSad z@wSvBEvVHrArP4;3;i4Vyh**{+v35ky7rZ7aIhg*5OXk-`Pzw~r6BDArlgX3c>p11 z*d>cGdi!X3pJxVO8@K`CzP&njZCSsPT=gVp)R_klk9(?VUkf=9VUICM=pHvV+^`9= zMWe{MTuQvahZzO~h)c>t$-rc?s&8}0(DmvZP0J9Ujc19M%t?xa$k)pM0AqIo%YvoR zof3Kp(kR_v$mWJQo}qZoV0w}p8gO8Uq(0FYNNQx7w38cmm+3oXOWo~;VkKloJkGgc zwS=rNlnSWEwOkgCA)@R$yOGQtE$)S#&P!8q!X6_C!q$yFKJ`g11$Xgh!McY{s2Paj zS&2ccG*nM6IPZ#Nu1^X=g56`|G+m%=>T$SHDb^6lYsE>;67*J*SGlBK-lHZdNtoK< zA>yzR6Hw=HQiyF}Y`Z7f#mImt#5UoOOSQ7SvoJ+XIZXSRg-%=MjwC*vLvJ}3Ywrp z2<t) zrrj&KN>00M^Q0g#=G~Jlx6xecx!7)F$rK^S2M;S{P3)kya#f=s?JXhH2EvKmOue93 z)83RSUR5Q=*Ni9>ceGq*WI=;a5N-R^!f|HEbi?xo)5|L~oa<(u3|V6_B%ueNVD;Bf`xb$?Kw2vQjH* zWf8yB zTpCnXIGx=pTM$bzDHUs#GTBmHLYWd#JR@s+`&=aJ$&=KU{uRWdqgjhthuYG=W6=ec z_w_lkKp%)LHBB9_m&_g_dz-zzh@C&al-ka>d*qOzW2_G&K#npdP}BycR*o*F3fM+K8#dGE z2=frwM0pQGWva`VCB;wV%wZ6VrR`2oJxlG|QVR;Nc#>Fqn7dS{yHP63^2^w%4xomn zZd*!*YIMtnevO{V+RgouLkE?%=q6HNegF?To0yh;l!WLiCDDCsEGR9+nymqTqEx3i z)nRXkPT^zT&=QyUb_}RV#aLr_HzPH=A{7D&!?dfe*&~GHOXAfVyc*zA9UXRRKP0)0rEoR{5YcBQo_4n`C zx_a&UzW&u)E&kS2g=PBFM%BgmAtXll5<-WOQJj}mll88y+)#!AlchDLlVV&a@Sajg zF)z@~MZ$>0;_A5xGMr9E&|-@qwx&X$Sa332s!G3=tlqFDnY((Un3`9WM0%fTNkQP+ zwlMvmtbtoFMj$xl1xDwbOoalyxn6g#30S5yaM9T6m2RehrWUfiq4|yCfo7v(UR14E zXPRjrIgEeaSc8Bf-PtVH64{p4Yt-V>JC`OwEZFACw|t6L?X%ILs(Rx4NPhNGjItZa zu)8=kCY3fkl8RzA!DDD(aNT4W91aD^{*?>!Wf5tlMXe83E2I*J=p8$l zsH79XK?&ZP|1c#F3nr!lwaVCee`gdHQR)NwMk!%A4K01$dOCE@pjJUQo6&3bEr?6f zC^>Qtt+f@+I)W#SXwm5i2< zy&((@G|a*0YIr$U${g?WVX;iZXFbvMjVK81kdP=xqh*Cfti9F&EK?GyukPQzWA)a2 zL-aH?Lj#pQpKNLm#Tze{YYUk5RTw08x#E7;?y~nOz4zM4Wr-yb>MG`4)t%-c#~w-;z;v48;m3No+?$G>jM|hVe2>q+EOyL=qU>ez5=VYb|OU1wemVmp)D~)ccAp?p<&j-$8d%34t=iRXq+1v$+ZNtqPk^b!Up<{`+1K9jdm zC9M#KTBw+U504|TZ|z&VC3{sG9DxWJ>tO%cpzP!q#s;sJ$VT&}QirF17aMzR9E+3e zpx|RMx{h+bi$$hb*-}cV)islszbEbbKnw2P?ZG{n=HRNCA_*n>08KJc8g;FQ&$0Q) zlEr%0Db_%FSZtvTt#pi8DNjsL=N_a}0!;xrr;&Z5IRRJDAf2c-f-GSoL709aZkU2} z$QfMMXy{8)nl-0nv8c~OODOh_rqrj2Z8K6Wl1YKddP`1h2;|?CQd2$;o~2j|p+s@f z+*AcV)TRA4&G__zj8B)V43bmFys^d{*toltu^6We8jE)Yct*eRLs{^!kkdK57^sVO z>cn)k&Ldtr$w_?D`}JO!%IP!>6C zXBEXzW1O{M@rGb}V9LHwsWFOcJUt(D>FziH`(SBbr%=-Mpr{-&$)QplU`P!7fI?f< zhmh)7RhdcMFGYtf^#pC3s~;d!IjWSDO8F-Z^}K zDwMVL(lE33&fjSow5>W~_&5ePkIw1a+_)+lveeT7mf_Z>$g#e6N>XF~VF;@$A~KDQ z`{$xo!B@=GG98C{<}a>&uyFJFW^kue7&A=m??xzzrdwWhY48v|5Q0k$gErZLktojtzo^}>Lk~@WogFxR650t z3674A*`V2zY`;cwTxD#0honHseDjQwFrA7VV7TTlQuxKL7lv)o_*SR7q6$o(NTPp=xJryu`@n zy$z;`ri{7!Lbbpmul#08n7ZO)*Ae?g24r}XoCQ%G!igtrJb{fS}LHO ze>RaLjhoppT6LuLMC(K*#axa4?XwzscV7M3TvuUM6D?pH$)$9Mz*i!pQzJF!!I`o# zHB1iDku)a-`&Yt38f-_)Pd64P-8(lOPNrS)5}Q-|!D6pol}{9_6J4k^a?$jywpUFNJ#Z>rtN$;$z@{e}%P`CjcDcJP@z6N__Fze`TiLg0u{TJ_UsH+J ztz5LYDT(HpO0L4P`H5F!Q>-ZS8)ebki>Y}XeSfGF%&BtrQwND1^rRKn=Qag~+Qz$R zyiMCSZ0JH26xYI|Fk058k?DL>ywn`2FPU>-X4`x48~@3V%lDe zX2kjr-TI_0O_k*klFW*k&Z_7Ukvz$s4IvPwR=`}JqSNK6tDS);|9i6(4G=*}4nLie%|4NTEk} zS}JTV+rg3x2^~t^T6a$uplM^;Hf!drB}@SuUnpU>_eY-=RC{sCXHnW04bt8M8MukQ zq^gB`&%?}k;X>D|`xH>(yChjNgd;-4~yE0P!)k?1<6h{ zS%p70h5n;lr5)3EWzE#;z_n#Pmxv6eSf zL1;G9%%s86*?4dNrr5};W;bm_eK5`hB_x@KwMGe{8w%YaXK7$lPx%56-v~*?mGMaI zxn_=>CCy?^D4=-WR_sR0#Db)^e?1Ls#yc3}ncNZ>tS{+=6_h+N<@Nqkzivt^)@)ek zwFTH5dCTtFH@}54=FC8I#e=3}3G@A^6YEsJN-arqNgR6oZ2ZVY_oBzrOdW(p!i9_7 z)-FHSy^$?N#z$<=AHB&p=x9xG;o_?!c!TFj&ZfGO0c;G|Nw)}1SufR-9bGU3SYS$~ zFe$MKDW?@jTrG~=DC%3ndW9>Uq4F-XGQ|pHhc`&vRTY#gW}HQQw;zkE5g|~gbRu#5 zed*a$qb1i z`bC?bXX?l4EMn6StsWhpz(gl(_$6iEz!XiJP~)P$+->85_Sv#L0HeCh$tg`l@|_ky zP!OR#L2V)?y;E$trPfkvXp7NY7MV`v63o(Tse#;!@v41;D9uDLDs7GdNu=;~p*Hqbh~DkI${M{+W6; z=PQt>YtJVnmS|RHg+RYN-<`pJ(xj8PvTEvdDLgTWGb62FdU+#xPM8yvMp??VZM;$k zr6tN4%CerLk<#|gi5$|UhR~~0zSE&Pr((miGb#9BoIIDMzl){MM)$WZGyjz|=UiAs zpyuskhH2xV7^ZayMafk}dzAIewlk{_kJIQ$WT7#*o2BzQ_8p|$94wiej_ie9B{{QHw=R<#~hCJrxZlQ^tpsl24rT;!RB zbHey?PN92PJ<4=)-QyM66bD7CNnpNPAShXkX^dj?S!M!&M#2YMixtJgCgt4xq+lBe z>sUuf2x?ngwe7yX*$8WaRQ7YSE;Om`NDD*cC5vki1v3oaBUBH5GT_O1Ua~D(t7-Fw zZA`;fLDRH}OAD8Tl3!X_PH|CLyLgsLNBNm$!7RI35Drr|TM=XHN`ocDVikp(csn%0 zzN1naHa8&>0sExEd1s*)e!(E4XhW$jaHjAu5rxsxSK5O`htD?(E7q(^c%{v=oERV` zTr5}cLEjSJm9-?IF)1t?76-6IGxY~cw84H%t2ZI3Lkq4lNc>$v$Mog$70qW-B&%%o zl%1@}wcWi03Sya7g+m@xow-zDo4cazd+)#iQX9P64)La~<{f(6?!xM=TQ_gjgkREd zx;%pFB{ix^H-~G1gGE~%yTSXQX7Pw=nB0oT)Jb;=&9|pay)7$KBrR^!yJclxmzK6; zK3htb3v)QBWTizJjg_;1WttS4&ZRg=ej=T~`a3s=GA)hO>Ma*9S%i(kG-bQG558H- zrDNwaFeoz*V$6j5+b>4RutA|IwGfzZnY5-MrRlVW>C$ZrJYC8ynaHJU^{XQ`@-jeE zQgPzd8Yw-4^k8f_*eXgax3vof@c7(&cTW34d-7iT)yDLx^otylII*7UC5 zuzHnbDH|r!`SiN=ai81F!Wt=XoJWdZ6-QZ_ZLo!}>4oIlOuOcvP&<&Zo`4WIsby)VX`XpJAl~zr(`Jg%Ms`Y)A ze%xC%#NiGKVHL#TRP17=cKOjny@eoH^){WqmbO-Woq8nKYHncGA>C!Q|5C2Mk#4+>qi@$Xi}{koN#H}&=B-0QLZ zSX0;}vnf)XQP?z=5IZ?TKTMF<4^rbm6yKudV|QKNK2y?9W;}EN+2q@FBFfVUwqgFT zi9&`gYJTpFI*v?lMUR1ANXRX&%2m!v+B~40`q5@)6M8MnPS>tlsg#_-`*6&j%?GT1 zQWcwRD~(GRVdaI17hK9@5#MpP)0D7>7_z%Q)@|Xp^!D{_T)lFg6Lj0U{g(dTbYCb3 zMxIT*dR?Hm~gvcoBi)A#J_^%gAn7B13|i**iPH zO=>@*#X~v3Elt*<2Gu|t88?Sg!$N!Qp*nY`nT4&vdMyx-w+ssCgrh76i}hp?~p%(@+LWO~X&EUgIdEzE!%?=%ir&7}JDNDCPITG28WZxURP>0J!M6HQ)iIIg@J&g@^kX90Z%Z~zF%X-=Pt%Cv9aP6QZ^GMl6=?$k|I}vCSe1Fp zlSNudUuyeuyPD3*F%t2)4J9u08%qtNV~NV?_rpK>!am5f*^p}{Dje~plbaT-(zXEW zVDNR5UA8qZ+M+fnGuFYf1CLJ0Lrqloy7L8Ht#!mg%cqdj#`g7Z<^+rLcW^Kkn{r_I zc@36?9u03{;gfiA33PMcngxsKNsKEt6^zM;70Q{ppt%lDqizd3UD;K}#+A6BnX25h zKFPYMZNChYAcT-PTC-8MGdat}0mb;&_0>0nj3vREry%NUVr@@=zZ z6!TCY8aXN4O=2B|6fj-poS^w8|DY3_^bMMt)L`=1o|Nj$6SA{kIMM-XlI+wLmubFE zYARMsh?SMe!$`{PHB1Z+**M&!{N$tiohfNw$7QaN?fmd^=JQmz%2$%+bH0oDM>>hx zt!!_2F-u1)UkC#st}%1a%- znAK}|Rho#TGt|?jt!>JQX|FxE$d8O~!GI{5!CTfc!+J8?TA1u3SA|vW*o4+^$kpx! z%VBfN)B}5Ov;k_KvxG2{q$gH5r!38@ox5X4J0jDQwZN$?HRJnYIz~yQpd%%m4+v=* zZg%7=#&LAa(TfpROVV-Qi!Xa(UGCo^|1vdiN#EGgvj+(`h?N~jeD8@28xRijA5^P~3)S-@}R7t{Q@LC$b#|}BZ zUMd6~?dL-ZHE!Hh*;X8FNe#zCn0vZ33X)@Vpjq4?P12mppd}4tIlZJa#COr6LL#D$ z77U?a_-M!n8fB*4;V2>7eJ46B_)DAic6yf$iJaZEarMR>>o=`hzjgJ>aCVZ*h%WWQ z0=x+d5^ftT-r$qf8?N*PqqbIeOnPk%5w|_sR13KvNPNar(!qYmj=_n6and`)(51r& zJ51Q|#xiW!IYc!4;=EA*h1vV{1)JSz)iz3sp=0mZp;aVUo>#p34WpqQl|wnO=+;yk z-oc5YTeg`AcPM;!E{3Ejog{mZUCJW^9`GInkpv5hz5Q(9bmJoK9-c)A1{LOQ-BRF-zl% zM|}9vVN5}hFs>6gayrPMtg{oI=W=@agwGM>M!#RqC&65tMrNA_R(6M-2)X0XBQjEF zB(!7KWQge2r4lFAMZ)(w2h{+o`VvJ{I5h|sMmlLDxyGewVMC3pjJj&WsyAJ(-KpLl zdl4t?`DC);8w%>^nL_usIlD#*ymTC9ap(r^+~O2`^D;}-7&PYPJuH*aL0!a{Szv*h%0~*B9h8GoxfaH2Oh#x82^@83ha@}s z^>p-1+I{!7hcrQ=r+_`0pU7yOWV*2;3^Bf+Jspv}YHZsvNAHsyHI&jrz9R)T6hf%{ zY^GrIo=g|~>_A?*{vcV|zabeMea zN-TmKvN%lg$27A0P8zzK*{UN=s9p=1IWvojL3&Gv<6sd-ph1izP&`|26>C9bw1>P% znQMa;ebEmHvRO6}?CA7lxIVO?#DA!R2ja{&Pf=;>*NKu%O}z)V`Pf9ZJ)m>Afzrf{ znpUX)E`X1-4=hMrM&EqE^u_5Z!07tT{GwjibJ6(=T^AhA95kPx9*$l&Mgzc{w4$ku zaUiS7TnLOM8P3xK2gFmO$xG}*Y3O2R!h$W9^v7)igYo1vg4Ls@&QYk3#@G3ILlM#u zZNz1dG|=q(!o%Y3 zMd#6|3zsasaM9wKTQ>K1t%Te}K3%I|l0C`dg$tK-ExfR6(V}G0lAiOIoV)PiB?}4I zwG|Uz-O$h)Zb`CuanHgF&n3x)GdHl=x2qp%p^i6{Dw_8`p1Kot1D=_rjShaHv|k`qAd~u&rb7!~zt6Wv*JWy&9#7W!w7K zbX}B%Q*PngU8_;@YCCjKauNFUnOAqM)k$w&j4M{yxfM#kFyp}OyKBY$w{hS(Og51Y zZLHp~TYaW_6YtbHa63AcWbOXDP~^!{GanZ_%*KfOXt{)&eOf{Mh#aMc^&xjP> zZ1JmV?t5!|}*XVqAJ zvY7NMo5}VP=dXv4mXo<|Sd|RyzpJwUZkF1~XsyiaWdCjZ@7jkK#TY7Q7ytB)Rdw+X zw+)REfp5gCfA-%Exv9q>2kEaZAY3@SI&gc1YeFmu63G0?8X4^HqTdqF()PQ5ruo8T zas0p?OQ*}jK)F^asp6*ywg2V&N?gZ5E7r^`oSIz4{-n|JNV3A~N*AGYCOF*yWYpBB z(?MxSyYFO0@t&J2^t1zaK)XfJt|rF`tzW?o46a?Kt|!Zb^l~Pj6__7(r|}Y?t*imV z&tp67zne4KN6ttN+}txci@i7fjc;H zPw@}jao}c%ELREEn=pYUO(xwjt5cJdMfLp0jyN~y0uO;458Tey2fvDI>@Yq`O_VY9 zgaBD;-hW$B5-j$<#S!hRt)lKx2VnG!Ik1)}juz=qde&pVL>IJa9)H3h_R1t@V=yEu1#+*m{GH$7_I$ zW>cC=I^FqGFVS{Y@iyAGluRCjxI8Q0z!?l8q#Vg#Ow2h2I%8QXVhs zeiIoq5ru+P$410aMDe5cDm7c0;=PQMrg#--B)do`cr;%mloeAs`9Hc#h+$NELUE%} zxRO%tc#}}z-afpDt;a5|-ZerWqpn%}7m?ErO2*4t7v(_pq3DyU=KZ(ffw9XlBu6t< zhOGWt!m|W!ag%AH2ZVuS#Z*e;Yk8>b(Zk(E0}Q*R5xcu6nXnGx88F`=7>RxB|DVf?#4_SdM7p}D zrK(W0ge#0}_kntp3vhP7QmHwzk1PRljEQQ)I0Q*m|d1ErJNL<M!gl-RRsf1&OwcL9Vs#!n@j{0E%wLg2=v3I(V4a(lv;@v>L(1xpPud5w zsZ47mWFu_k#Zz5;%4&wul(}E17>cEfq|%&?`7KE!Fx;^bmj7hpLAy%hgGORV6DgB` z7$xYdVZ>lEJwi1_u36f*G-UW9Mo4_U$RTKJK%7qld@g)`drUo;UXXkU!OFZB@y;sRZr$kkt0qjlfn9xQhF55WiWNA4Zow6{Z(R>=z$xacMRnCDscEP}sF$5sVFB+mob-HT4 z{j8j%5E-pg;#73F(}IuaO0s)yP9?phJc$5l5*U_jWiHsWo3rvXft{;p0^8!z_SUu* zo#xi1Ch;`Z^?WCU_RE+$^tzqa?E?FTo0Q0UI$Nhs#PXZ#z{sPes#N&HNrUJzEX%l< zu4wXZn5%8(Rg+F;lEzqEtIJ@f(x5sUH8e|PEs9y9!+lFh#10(lSSx(fE&$SKfu)0* zeni75>W+|gEJnkP?YFt5F0wUFkI6enZ7vxKK;IUz1n3 z2Llt@2n0z>CNd;0dt#0i34UY@DUg=sFis8NNOe@j{@b{zw-{pe#Q%GeD1Aj8bZ$;)e4Z5106yH2ei`^8Z3 zx7a7kNX5>dLMD3qPT{&TO1|~RzDnc3&C&we0h7=!{K6(q%rsIzR2{D3@QJIHd;iOs zT@eU#Y+})?2!s}X0?qwsQ`#0flU~WW=Ohe%rd$vmnp#QRP}5B^1TQh(x-L**kT#ts ziZ|@^%cL?@W2*FYiI^{GvSOmQ@#Me40WBRX1j{}Dn)|qLTeNBTK-8cK&j7RV+obYJjV33(vq^p#U{~%CChTC zak#P6e6 zOqH@urvq!5u(~3KaNzdVlvJHfEHV=xq{2QJ{kaAp>Q|cyknc@HxiMx3$|d6V)mY;v zbL~v`dAZi;v74w|W25SX(4eb)t(7a`M(s#>A%sWQoWeS7I$sI(oQ=D=j>c>< zsQdHsN*dL)B|%Qf@i6N%O{v7j)Uhrmfy%NYRxuMrCY3Cy?rX3z0aHQFG1B!UP3TUf z=t5{23Ax=V8}2zu!n+|28FIz)g{?PvjN%|sS_5xSRT)8ZJ7UwOkThoj!jqWVz;8&O z>2HIyM6D!@kcpX%OD`^nP`kX+(nF`jqM#EJV_LJxWJ&KA&5B<&%=ThMv$x!RSfTYi zhxu!;JRON;DEVArV{IE2AFe1*6vwTeo0$W0L? zqEpojPC?5R=J}CyY-2`C`?9};=~pfl$p(SxY%+0Ew_<6kM8tGv4EJxpD2o8lbyO;% ziJ;w0ZP7`5Cxvv3VKCljd8F&_ML%v6B&Hu}E~vQg zZad%x!a!c9gK{W_6qb52N7&X-3*ZwdC}WY0Ji~@V!o?ltg|a z4OC7wMr8fy!$W?S!iLDZ{p)ChCp1ZArg7in0^8jZ1sVem4@wmC4i3R!EW-dgUr<}~Wlhrz1))jB&vT3_! zV}S$0tVgin%NUqgkM|g~C+eCiL@I4$)y7WHss^vYWLFV;rsIGfnKYo0vP% z#c{0Bs2Fi@%hCNzD@%!ewvh=tWMFetzEp#zg{4mU_ z>m+o8j1hVSD-f1^vC<<+p#U10_WrP}N5`=-MvWtvP4-}=d7f#V%j%62tLU&g9crSy zD^ud6?1`O&SaXpJwCH9G6UwbADeH?2>70T^f&5A^D~A6(coa|i(4*M!lH_6y?7v%V zQ5~Kc_%!+Rn9SKxv&QiD-Da_WYCVK zL?vcnJ*6futL!v-rZt!*epBWS7JsU2dsYrBsW{~4`Zh($nc@USY;tElP|9}@ZJEZ3 zMP#MpLQ^ z0`6_DmD8ld{b^HCL6kvBC6qcRea1D}QKo8^t`Q^!W08!NGEVkER-2wKV)|%moapB# zI~n;nAc36?Rr`(HYO9@eJYPzfK1IJu&6+;b#=}-ret1P(WH^*AK<*JZ$%b(Uq*j># zOC?HX7kXPRGW`{~Uz$-!z8NKwyIuD5xmFYExE`zBA#{8aFkLi0q~6*hl9QZlKzF8B zv1RR>%1&$(jkRoV{KnUqnGF|hamVMe9R{5fm-#Fz?>E3cP zFPmSbgNn~LZOmiDv%L%r3RQ=kGiTSXk&#-lrUg_}`lTaJJYpXT_GRy| zjMLax3_9v2Wr_%W`sHc{BbSKbtdRq!ewm1zseH1ziM6h3Fq`2-FBX=<`q2MD#O!7_ zbWIp}ptcn`aJH8Q;nXeBzwM*xHEuCyR7mQVN^HTVsZ*|-<||InDss!TC#K#h1$Id> zlKI7NF&w$bdml9s;P&i8K z*QM6mgG~{ezrrimy|))5&MoNLb+i>-V+tN83KrjN6gldN1 zX#^Ue!whMBaGDts@-z#K1I1t@CK^mFz!)AFQKN2z8|z$-cMJWLT)h@(r{Lezya!WO zMw&lZBGYIo^WRIDA0S7#Uch>Ivl5^wY&v!&i#i%xQQK0i1N1s#25WS)-C#U`jvyNK zDJm)2rskW1C@zrLWVF-DA9WZPTsoQV9n5f#=FS(WeE6RTP1;G}Zt9#|5yH$p87=J@ zY_J8~*FCfdo)seOdkCpYii!Qm`X6e zyOE#P+MDT5A0WYdZnmcCxUvWb@SZ;9b$rt=2?v`9jm5T7P3|>igg1uzid52p^>SPg zvH=&|O)^CZ#@(`cwkW!VFSnXPYD(Y5dlkuwZmLHq=h6|xY1)IinU%&U6d6Mrx{ItM zvf~oYpg*E2BRKQVtbV3ak@BD1w%pOrm@ZL$}}@cM0?5SXHUCAIFYRto8J$NeXVWYfCWKWpd1^ zSvwHZZyTF(ks%KbHn2J~88@dJ?JN>|RuMPYa~N#BWFizw6Rnmzj3Z%ek41&ew{K>M zY&|mDOm}VrcAn^@Xfo2CHo>O4@d9Ns($p)VPMEDB?XZV-;|rNi+J%FmUzyIt=jq7B zW+oIW&CKZ}%E3o5J!nqfMox|+(^_fdpJKwABA7`*xTTOajm1~HW@<;5%uCJq-#U&N zazqUuh8s~hvY8UHqlMP)HP4R)M_LZ^Fw1__j-(5SQnqVrnr#Gwxz$EAo6FxSC}RhV z;TRau8SpMC2T_>Cs4F!5`@}b# zauPUiRFUd3NZa#HPb-bEU!Ca}XL5Mk>uSTM%5WaQ-Y<#kWE(RB}E)UH4(a>n^_ z^zNj6ie(R}#|1nsj(JVEBp8%Y^Zh1gw0EXJGkrbG#@L_*L_px;#AwC4(>EG0QfWs| ziER(viF3jD*=z;VhO^O}K#^;W{8%3MXh!)(`>UGh_5KfIt~twQkgW-~PE+phaHeY# z`?`=04%`v8tp@QuUrsB298-LqRPkhqSLtYpXY&i|C~ivIDFODYOrJnpY^a;I50lf0 zG4`gQ%L#KtxN0MaZ(6IA!rcQB~384TiF}wS}POoWQ z%M<^5a@n3-Ia>ufv{L7WUEM>=0vSx3WqIp7v<7!PWaZ;pM&rf@{&o;JyJbB!kL`+VK{$QR6-Y-+0t8!vn^ z5ZRf{f^y@}ls7<{b+W{t?Ec5h>yj0z`C$-qEi=-)VSwUmRa^s^RnDaa4SrEaQcB{z zkoXRj#M-d{=?!}YqV1)|9WH`IX5tdaynVi{n>t^&p-RWtc;uEjIs`*~;FgTb!ta(10$ANeA8>|3&JLjJno-@^8yb-2u^wrS$Lj^LI%3as4qt_`(^(a4+27^W~p5&E@S>c+_ zcuZ<4euYaqZ8TyZJbOJOt5@1w(HUc`$f=XW8z*kELAwwYLv}Z3UXU#( zE4FRewyAex@2d4&-ECYpoOQ_L601h^oh{xr-Ip9Mg7X;dvb6g*X)Izg4OF;N7I~)Q zBAm-c;bJ}A+o}9-C*SC=w69nPzUns4sBDOa7~0;5cWk{@Sro-sBtPHcU(l_co(SW} zz63-2gCxLL?OxC3YU7~U-I~sUL15Q}h;a{LE36dtHl4iOEZ#P`khJX{&pAlh)j&PQ zi`2r1{OK_lY*Nx0Z!Exv+dSh@G!3*lNwQ)8-4nYs5;e@ET}l=b?P$*umm}q zJ3TSm)}@|+4wVkKdake$-FJx>R@ixmnqJdh9RCwX!mf z%H83d4_0T>2Xu?f)7DL<>y9&{R>CMxZI>!LF$C99j2vDyY}6m9xELhD`pmUN{OF4@=lt^xY#K5rtvupOFEJQ zqfnk2i~yupq&m~fM&}xh?Z0i_;e1LKOOfi@Q);Hc{8vS;To|iOSyIlq?W zsEjN%b>W;<^|o*-ebf@!h)O>#=#-AMvGN9o;X2diBQ3pxsWVmrWO(QYYxnB}^u*)? z)h2=$M_)I!Z_+!l+}@gXg-nz|$=Eh{qZv2USQ zRPEO2&z&0*FF5r{?1=QS(h`PSPV*si48fN2^69s}i@B7{-kMFn{WPE1GSo{q3B3oY z1W7Y&edZ9eVCaW{*kHPeposdL(<%@RT*)gl<#fNQbq~}9#){jMg&op^5t{uJjrbKU z2TYN=PZJnM_8neoS+-lUdl(7EH11#SSQe2k#U~DFNz>{han*$#F@ge%@@=zISJLZI zBf*(+% zRVD#Z=RVi(S=}|y8$F#nhCNtx|BCEFqPC&A74p(gs|l4xO6r=~mmO^B!?_NjO-C+P z#B*xdNZ)C$(;*yQA*#!Z#2L+Y8la8dTSc>qf2%bIc%w^AhyC>Hwp{N*k1ro}`cUNL z7=M_FAKz@+Mr=YvnxxONT&N7wWSO|^LD=bOm2;yxL9X6e-Jwp|5+3JiTp+>yt}Oy` zE`ne0daw&$ZQg)}3YkDE=&5ge4f+cm38#TP$^u$=$|SUw8)75>qnC7uC7CP8LlQzz z3B`dpE^QXgRc6xe)jmS2<=hZ#w8B}@E z(U%Ft5M#aXzq?=-V6j;|gz4M{WWLoB*7p)Ro283trj$zHet&E_R*Fid4_;y$Q_i$_ z`oQR|@_`R>o2;mdEuyB6&5X|D^fA3tR-KNe0>3vlgGd;>zVPB>_)W2mBO2qq`ZdkPXlptMPC(YR?g zESBd_HTI(xvNsc@-OTB1FOs%y7p8_0oiN zGi<)75WUSR?5ZH^|0W(%Fb-k$>3bQ|hB`Gg*X3VRJmfE$J%r>;4P>^gP3caRqBK-o zG>HzD8&73)0t3>aNf4OdE2mb5nVBGAJt*8kn~!KpBD!!eL*!T1dojJHB5gyTMtNEJ zTGCvRlnzui=_$lK&|Y{EWfc`N5bINiV(JduC<=u>>Ws*wZ=0f4GPRLkH)}V|A{3eh zfO|;;#H7oE=DcE1_mVwN92mr~61)rEKBMGdofdn-2HjwyJ2idvA?LF6c5`sJAuLTGMS-k@^s|yXZ_& zTh+W9HYCRJH%wwVxTrOm?K!nVs`KjbxinMMXR3z?Gc>!1OFe9gtg?ZgW0P1Xm3+$de0^Yui#TsNM<-Uv7AX6|ULOoL{^3SYNfm6`*QjY1YE9A=&;Cgu~Gre(3U z(i3B}iAx%7Qu&UE@rZ3H@@xZOjA;Sm{-r1o+LywF2~CjA(ZVMnV{3v+`t2qmv{~r% d98)^8pbWGWzkING5I*%R_1JJamvTA${{xUUzaszu diff --git a/bfd/po/vi.gmo b/bfd/po/vi.gmo deleted file mode 100644 index f5683c6169d664882e9ee3553ecd6f256310e40a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39617 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 Quoc_YSf{CU)HLh;55PUt(f|Me diff --git a/binutils/doc/binutils.info b/binutils/doc/binutils.info deleted file mode 100644 index d23604a..0000000 --- a/binutils/doc/binutils.info +++ /dev/null @@ -1,4057 +0,0 @@ -This is binutils.info, produced by makeinfo version 4.8 from -binutils.texi. - -START-INFO-DIR-ENTRY -* Binutils: (binutils). The GNU binary utilities. -* ar: (binutils)ar. Create, modify, and extract from archives -* nm: (binutils)nm. List symbols from object files -* objcopy: (binutils)objcopy. Copy and translate object files -* objdump: (binutils)objdump. Display information from object files -* ranlib: (binutils)ranlib. Generate index to archive contents -* readelf: (binutils)readelf. Display the contents of ELF format files. -* size: (binutils)size. List section sizes and total size -* strings: (binutils)strings. List printable strings from files -* strip: (binutils)strip. Discard symbols -* c++filt: (binutils)c++filt. Filter to demangle encoded C++ symbols -* cxxfilt: (binutils)c++filt. MS-DOS name for c++filt -* addr2line: (binutils)addr2line. Convert addresses to file and line -* nlmconv: (binutils)nlmconv. Converts object code into an NLM -* windres: (binutils)windres. Manipulate Windows resources -* windmc: (binutils)windmc. Generator for Windows message resources -* dlltool: (binutils)dlltool. Create files needed to build and use DLLs -END-INFO-DIR-ENTRY - - Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 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: binutils.info, Node: Top, Next: ar, Up: (dir) - -Introduction -************ - -This brief manual contains documentation for the GNU binary utilities -(GNU Binutils) version 2.17.90: - - 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: - -* ar:: Create, modify, and extract from archives -* nm:: List symbols from object files -* objcopy:: Copy and translate object files -* objdump:: Display information from object files -* ranlib:: Generate index to archive contents -* readelf:: Display the contents of ELF format files. -* size:: List section sizes and total size -* strings:: List printable strings from files -* strip:: Discard symbols -* c++filt:: Filter to demangle encoded C++ symbols -* cxxfilt: c++filt. MS-DOS name for c++filt -* addr2line:: Convert addresses to file and line -* nlmconv:: Converts object code into an NLM -* windres:: Manipulate Windows resources -* windmc:: Generator for Windows message resources -* dlltool:: Create files needed to build and use DLLs -* Common Options:: Command-line options for all utilities -* Selecting The Target System:: How these utilities determine the target. -* Reporting Bugs:: Reporting Bugs -* GNU Free Documentation License:: GNU Free Documentation License -* Binutils Index:: Binutils Index - - -File: binutils.info, Node: ar, Next: nm, Prev: Top, Up: Top - -1 ar -**** - - ar [-]P[MOD [RELPOS] [COUNT]] ARCHIVE [MEMBER...] - ar -M [ '), and continues executing even after errors. If you -redirect standard input to a script file, no prompts are issued, and -`ar' abandons execution (with a nonzero exit code) on any error. - - The `ar' command language is _not_ designed to be equivalent to the -command-line options; in fact, it provides somewhat less control over -archives. The only purpose of the command language is to ease the -transition to GNU `ar' for developers who already have scripts written -for the MRI "librarian" program. - - The syntax for the `ar' command language is straightforward: - * commands are recognized in upper or lower case; for example, `LIST' - is the same as `list'. In the following descriptions, commands are - shown in upper case for clarity. - - * a single command may appear on each line; it is the first word on - the line. - - * empty lines are allowed, and have no effect. - - * comments are allowed; text after either of the characters `*' or - `;' is ignored. - - * Whenever you use a list of names as part of the argument to an `ar' - command, you can separate the individual names with either commas - or blanks. Commas are shown in the explanations below, for - clarity. - - * `+' is used as a line continuation character; if `+' appears at - the end of a line, the text on the following line is considered - part of the current command. - - Here are the commands you can use in `ar' scripts, or when using -`ar' interactively. Three of them have special significance: - - `OPEN' or `CREATE' specify a "current archive", which is a temporary -file required for most of the other commands. - - `SAVE' commits the changes so far specified by the script. Prior to -`SAVE', commands affect only the temporary copy of the current archive. - -`ADDLIB ARCHIVE' -`ADDLIB ARCHIVE (MODULE, MODULE, ... MODULE)' - Add all the contents of ARCHIVE (or, if specified, each named - MODULE from ARCHIVE) to the current archive. - - Requires prior use of `OPEN' or `CREATE'. - -`ADDMOD MEMBER, MEMBER, ... MEMBER' - Add each named MEMBER as a module in the current archive. - - Requires prior use of `OPEN' or `CREATE'. - -`CLEAR' - Discard the contents of the current archive, canceling the effect - of any operations since the last `SAVE'. May be executed (with no - effect) even if no current archive is specified. - -`CREATE ARCHIVE' - Creates an archive, and makes it the current archive (required for - many other commands). The new archive is created with a temporary - name; it is not actually saved as ARCHIVE until you use `SAVE'. - You can overwrite existing archives; similarly, the contents of any - existing file named ARCHIVE will not be destroyed until `SAVE'. - -`DELETE MODULE, MODULE, ... MODULE' - Delete each listed MODULE from the current archive; equivalent to - `ar -d ARCHIVE MODULE ... MODULE'. - - Requires prior use of `OPEN' or `CREATE'. - -`DIRECTORY ARCHIVE (MODULE, ... MODULE)' -`DIRECTORY ARCHIVE (MODULE, ... MODULE) OUTPUTFILE' - List each named MODULE present in ARCHIVE. The separate command - `VERBOSE' specifies the form of the output: when verbose output is - off, output is like that of `ar -t ARCHIVE MODULE...'. When - verbose output is on, the listing is like `ar -tv ARCHIVE - MODULE...'. - - Output normally goes to the standard output stream; however, if you - specify OUTPUTFILE as a final argument, `ar' directs the output to - that file. - -`END' - Exit from `ar', with a `0' exit code to indicate successful - completion. This command does not save the output file; if you - have changed the current archive since the last `SAVE' command, - those changes are lost. - -`EXTRACT MODULE, MODULE, ... MODULE' - Extract each named MODULE from the current archive, writing them - into the current directory as separate files. Equivalent to `ar -x - ARCHIVE MODULE...'. - - Requires prior use of `OPEN' or `CREATE'. - -`LIST' - Display full contents of the current archive, in "verbose" style - regardless of the state of `VERBOSE'. The effect is like `ar tv - ARCHIVE'. (This single command is a GNU `ar' enhancement, rather - than present for MRI compatibility.) - - Requires prior use of `OPEN' or `CREATE'. - -`OPEN ARCHIVE' - Opens an existing archive for use as the current archive (required - for many other commands). Any changes as the result of subsequent - commands will not actually affect ARCHIVE until you next use - `SAVE'. - -`REPLACE MODULE, MODULE, ... MODULE' - In the current archive, replace each existing MODULE (named in the - `REPLACE' arguments) from files in the current working directory. - To execute this command without errors, both the file, and the - module in the current archive, must exist. - - Requires prior use of `OPEN' or `CREATE'. - -`VERBOSE' - Toggle an internal flag governing the output from `DIRECTORY'. - When the flag is on, `DIRECTORY' output matches output from `ar - -tv '.... - -`SAVE' - Commit your changes to the current archive, and actually save it - as a file with the name specified in the last `CREATE' or `OPEN' - command. - - Requires prior use of `OPEN' or `CREATE'. - - - -File: binutils.info, Node: nm, Next: objcopy, Prev: ar, Up: Top - -2 nm -**** - - nm [`-a'|`--debug-syms'] [`-g'|`--extern-only'] - [`-B'] [`-C'|`--demangle'[=STYLE]] [`-D'|`--dynamic'] - [`-S'|`--print-size'] [`-s'|`--print-armap'] - [`-A'|`-o'|`--print-file-name'][`--special-syms'] - [`-n'|`-v'|`--numeric-sort'] [`-p'|`--no-sort'] - [`-r'|`--reverse-sort'] [`--size-sort'] [`-u'|`--undefined-only'] - [`-t' RADIX|`--radix='RADIX] [`-P'|`--portability'] - [`--target='BFDNAME] [`-f'FORMAT|`--format='FORMAT] - [`--defined-only'] [`-l'|`--line-numbers'] [`--no-demangle'] - [`-V'|`--version'] [`-X 32_64'] [`--help'] [OBJFILE...] - - GNU `nm' lists the symbols from object files OBJFILE.... If no -object files are listed as arguments, `nm' assumes the file `a.out'. - - For each symbol, `nm' shows: - - * The symbol value, in the radix selected by options (see below), or - hexadecimal by default. - - * 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). - - `A' - The symbol's value is absolute, and will not be changed by - further linking. - - `B' - The symbol is in the uninitialized data section (known as - BSS). - - `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. For more - details on common symbols, see the discussion of -warn-common - in *Note Linker options: (ld.info)Options. - - `D' - The symbol is in the initialized data section. - - `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. - - `I' - The symbol is an indirect reference to another symbol. This - is a GNU extension to the a.out object file format which is - rarely used. - - `N' - The symbol is a debugging symbol. - - `R' - The symbol is in a read only data section. - - `S' - The symbol is in an uninitialized data section for small - objects. - - `T' - The symbol is in the text (code) section. - - `U' - The symbol is undefined. - - `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. - - `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. - - `-' - 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. For more information, - see *Note Stabs: (stabs.info)Top. - - `?' - The symbol type is unknown, or object file format specific. - - * The symbol name. - - The long and short forms of options, shown here as alternatives, are -equivalent. - -`-A' -`-o' -`--print-file-name' - 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. - -`-a' -`--debug-syms' - Display all symbols, even debugger-only symbols; normally these - are not listed. - -`-B' - The same as `--format=bsd' (for compatibility with the MIPS `nm'). - -`-C' -`--demangle[=STYLE]' - Decode ("demangle") 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. *Note c++filt::, for more information on demangling. - -`--no-demangle' - Do not demangle low-level symbol names. This is the default. - -`-D' -`--dynamic' - Display the dynamic symbols rather than the normal symbols. This - is only meaningful for dynamic objects, such as certain types of - shared libraries. - -`-f FORMAT' -`--format=FORMAT' - Use the output format FORMAT, which can be `bsd', `sysv', or - `posix'. The default is `bsd'. Only the first character of - FORMAT is significant; it can be either upper or lower case. - -`-g' -`--extern-only' - Display only external symbols. - -`-l' -`--line-numbers' - 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. - -`-n' -`-v' -`--numeric-sort' - Sort symbols numerically by their addresses, rather than - alphabetically by their names. - -`-p' -`--no-sort' - Do not bother to sort the symbols in any order; print them in the - order encountered. - -`-P' -`--portability' - Use the POSIX.2 standard output format instead of the default - format. Equivalent to `-f posix'. - -`-S' -`--print-size' - Print size, not the value, of defined symbols for the `bsd' output - format. - -`-s' -`--print-armap' - When listing symbols from archive members, include the index: a - mapping (stored in the archive by `ar' or `ranlib') of which - modules contain definitions for which names. - -`-r' -`--reverse-sort' - Reverse the order of the sort (whether numeric or alphabetic); let - the last come first. - -`--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 `bsd' output format is used the - size of the symbol is printed, rather than the value, and `-S' - must be used in order both size and value to be printed. - -`--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 ARM targets this option - would skip the mapping symbols used to mark transitions between - ARM code, THUMB code and data. - -`-t RADIX' -`--radix=RADIX' - Use RADIX as the radix for printing the symbol values. It must be - `d' for decimal, `o' for octal, or `x' for hexadecimal. - -`--target=BFDNAME' - Specify an object code format other than your system's default - format. *Note Target Selection::, for more information. - -`-u' -`--undefined-only' - Display only undefined symbols (those external to each object - file). - -`--defined-only' - Display only defined symbols for each object file. - -`-V' -`--version' - Show the version number of `nm' and exit. - -`-X' - This option is ignored for compatibility with the AIX version of - `nm'. It takes one parameter which must be the string `32_64'. - The default mode of AIX `nm' corresponds to `-X 32', which is not - supported by GNU `nm'. - -`--help' - Show a summary of the options to `nm' and exit. - - -File: binutils.info, Node: objcopy, Next: objdump, Prev: nm, Up: Top - -3 objcopy -********* - - objcopy [`-F' BFDNAME|`--target='BFDNAME] - [`-I' BFDNAME|`--input-target='BFDNAME] - [`-O' BFDNAME|`--output-target='BFDNAME] - [`-B' BFDARCH|`--binary-architecture='BFDARCH] - [`-S'|`--strip-all'] - [`-g'|`--strip-debug'] - [`-K' SYMBOLNAME|`--keep-symbol='SYMBOLNAME] - [`-N' SYMBOLNAME|`--strip-symbol='SYMBOLNAME] - [`--strip-unneeded-symbol='SYMBOLNAME] - [`-G' SYMBOLNAME|`--keep-global-symbol='SYMBOLNAME] - [`--localize-hidden'] - [`-L' SYMBOLNAME|`--localize-symbol='SYMBOLNAME] - [`--globalize-symbol='SYMBOLNAME] - [`-W' SYMBOLNAME|`--weaken-symbol='SYMBOLNAME] - [`-w'|`--wildcard'] - [`-x'|`--discard-all'] - [`-X'|`--discard-locals'] - [`-b' BYTE|`--byte='BYTE] - [`-i' INTERLEAVE|`--interleave='INTERLEAVE] - [`-j' SECTIONNAME|`--only-section='SECTIONNAME] - [`-R' SECTIONNAME|`--remove-section='SECTIONNAME] - [`-p'|`--preserve-dates'] - [`--debugging'] - [`--gap-fill='VAL] - [`--pad-to='ADDRESS] - [`--set-start='VAL] - [`--adjust-start='INCR] - [`--change-addresses='INCR] - [`--change-section-address' SECTION{=,+,-}VAL] - [`--change-section-lma' SECTION{=,+,-}VAL] - [`--change-section-vma' SECTION{=,+,-}VAL] - [`--change-warnings'] [`--no-change-warnings'] - [`--set-section-flags' SECTION=FLAGS] - [`--add-section' SECTIONNAME=FILENAME] - [`--rename-section' OLDNAME=NEWNAME[,FLAGS]] - [`--change-leading-char'] [`--remove-leading-char'] - [`--reverse-bytes='NUM] - [`--srec-len='IVAL] [`--srec-forceS3'] - [`--redefine-sym' OLD=NEW] - [`--redefine-syms='FILENAME] - [`--weaken'] - [`--keep-symbols='FILENAME] - [`--strip-symbols='FILENAME] - [`--strip-unneeded-symbols='FILENAME] - [`--keep-global-symbols='FILENAME] - [`--localize-symbols='FILENAME] - [`--globalize-symbols='FILENAME] - [`--weaken-symbols='FILENAME] - [`--alt-machine-code='INDEX] - [`--prefix-symbols='STRING] - [`--prefix-sections='STRING] - [`--prefix-alloc-sections='STRING] - [`--add-gnu-debuglink='PATH-TO-FILE] - [`--keep-file-symbols'] - [`--only-keep-debug'] - [`--extract-symbol'] - [`--writable-text'] - [`--readonly-text'] - [`--pure'] - [`--impure'] - [`-v'|`--verbose'] - [`-V'|`--version'] - [`--help'] [`--info'] - INFILE [OUTFILE] - - The GNU `objcopy' utility copies the contents of an object file to -another. `objcopy' uses the GNU BFD 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 -`objcopy' is controlled by command-line options. Note that `objcopy' -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. - - `objcopy' creates temporary files to do its translations and deletes -them afterward. `objcopy' uses BFD to do all its translation work; it -has access to all the formats described in BFD and thus is able to -recognize most formats without being told explicitly. *Note BFD: -(ld.info)BFD. - - `objcopy' can be used to generate S-records by using an output -target of `srec' (e.g., use `-O srec'). - - `objcopy' can be used to generate a raw binary file by using an -output target of `binary' (e.g., use `-O binary'). When `objcopy' -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. - - When generating an S-record or a raw binary file, it may be helpful -to use `-S' to remove sections containing debugging information. In -some cases `-R' will be useful to remove sections which contain -information that is not needed by the binary file. - - Note--`objcopy' is not able to change the endianness of its input -files. If the input format has an endianness (some formats do not), -`objcopy' can only copy the inputs into file formats that have the same -endianness or which have no endianness (e.g., `srec'). (However, see -the `--reverse-bytes' option.) - -`INFILE' -`OUTFILE' - The input and output files, respectively. If you do not specify - OUTFILE, `objcopy' creates a temporary file and destructively - renames the result with the name of INFILE. - -`-I BFDNAME' -`--input-target=BFDNAME' - Consider the source file's object format to be BFDNAME, rather than - attempting to deduce it. *Note Target Selection::, for more - information. - -`-O BFDNAME' -`--output-target=BFDNAME' - Write the output file using the object format BFDNAME. *Note - Target Selection::, for more information. - -`-F BFDNAME' -`--target=BFDNAME' - Use BFDNAME as the object format for both the input and the output - file; i.e., simply transfer data from source to destination with no - translation. *Note Target Selection::, for more information. - -`-B BFDARCH' -`--binary-architecture=BFDARCH' - Useful when transforming a raw binary input file into an object - file. In this case the output architecture can be set to BFDARCH. - This option will be ignored if the input file has a known BFDARCH. - 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_OBJFILE_start, - _binary_OBJFILE_end and _binary_OBJFILE_size. e.g. you can - transform a picture file into an object file and then access it in - your code using these symbols. - -`-j SECTIONNAME' -`--only-section=SECTIONNAME' - 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. - -`-R SECTIONNAME' -`--remove-section=SECTIONNAME' - Remove any section named SECTIONNAME from the output file. This - option may be given more than once. Note that using this option - inappropriately may make the output file unusable. - -`-S' -`--strip-all' - Do not copy relocation and symbol information from the source file. - -`-g' -`--strip-debug' - Do not copy debugging symbols or sections from the source file. - -`--strip-unneeded' - Strip all symbols that are not needed for relocation processing. - -`-K SYMBOLNAME' -`--keep-symbol=SYMBOLNAME' - When stripping symbols, keep symbol SYMBOLNAME even if it would - normally be stripped. This option may be given more than once. - -`-N SYMBOLNAME' -`--strip-symbol=SYMBOLNAME' - Do not copy symbol SYMBOLNAME from the source file. This option - may be given more than once. - -`--strip-unneeded-symbol=SYMBOLNAME' - Do not copy symbol SYMBOLNAME from the source file unless it is - needed by a relocation. This option may be given more than once. - -`-G SYMBOLNAME' -`--keep-global-symbol=SYMBOLNAME' - Keep only symbol SYMBOLNAME global. Make all other symbols local - to the file, so that they are not visible externally. This option - may be given more than once. - -`--localize-hidden' - In an ELF object, mark all symbols that have hidden or internal - visibility as local. This option applies on top of - symbol-specific localization options such as `-L'. - -`-L SYMBOLNAME' -`--localize-symbol=SYMBOLNAME' - Make symbol SYMBOLNAME local to the file, so that it is not - visible externally. This option may be given more than once. - -`-W SYMBOLNAME' -`--weaken-symbol=SYMBOLNAME' - Make symbol SYMBOLNAME weak. This option may be given more than - once. - -`--globalize-symbol=SYMBOLNAME' - Give symbol SYMBOLNAME global scoping so that it is visible - outside of the file in which it is defined. This option may be - given more than once. - -`-w' -`--wildcard' - Permit regular expressions in SYMBOLNAMEs used in other command - line options. The question mark (?), asterisk (*), backslash (\) - 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: - - -w -W !foo -W fo* - - would cause objcopy to weaken all symbols that start with "fo" - except for the symbol "foo". - -`-x' -`--discard-all' - Do not copy non-global symbols from the source file. - -`-X' -`--discard-locals' - Do not copy compiler-generated local symbols. (These usually - start with `L' or `.'.) - -`-b BYTE' -`--byte=BYTE' - Keep only every BYTEth byte of the input file (header data is not - affected). BYTE can be in the range from 0 to INTERLEAVE-1, where - INTERLEAVE is given by the `-i' or `--interleave' option, or the - default of 4. This option is useful for creating files to program - ROM. It is typically used with an `srec' output target. - -`-i INTERLEAVE' -`--interleave=INTERLEAVE' - Only copy one out of every INTERLEAVE bytes. Select which byte to - copy with the `-b' or `--byte' option. The default is 4. - `objcopy' ignores this option if you do not specify either `-b' or - `--byte'. - -`-p' -`--preserve-dates' - Set the access and modification dates of the output file to be the - same as those of the input file. - -`--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. - -`--gap-fill VAL' - Fill gaps between sections with VAL. This operation applies to - the _load address_ (LMA) 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 VAL. - -`--pad-to ADDRESS' - Pad the output file up to the load address ADDRESS. This is done - by increasing the size of the last section. The extra space is - filled in with the value specified by `--gap-fill' (default zero). - -`--set-start VAL' - Set the start address of the new file to VAL. Not all object file - formats support setting the start address. - -`--change-start INCR' -`--adjust-start INCR' - Change the start address by adding INCR. Not all object file - formats support setting the start address. - -`--change-addresses INCR' -`--adjust-vma INCR' - Change the VMA and LMA addresses of all sections, as well as the - start address, by adding INCR. 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. - -`--change-section-address SECTION{=,+,-}VAL' -`--adjust-section-vma SECTION{=,+,-}VAL' - Set or change both the VMA address and the LMA address of the named - SECTION. If `=' is used, the section address is set to VAL. - Otherwise, VAL is added to or subtracted from the section address. - See the comments under `--change-addresses', above. If SECTION - does not exist in the input file, a warning will be issued, unless - `--no-change-warnings' is used. - -`--change-section-lma SECTION{=,+,-}VAL' - Set or change the LMA address of the named SECTION. The LMA - address is the address where the section will be loaded into - memory at program load time. Normally this is the same as the VMA - address, which is the address of the section at program run time, - but on some systems, especially those where a program is held in - ROM, the two can be different. If `=' is used, the section - address is set to VAL. Otherwise, VAL is added to or subtracted - from the section address. See the comments under - `--change-addresses', above. If SECTION does not exist in the - input file, a warning will be issued, unless - `--no-change-warnings' is used. - -`--change-section-vma SECTION{=,+,-}VAL' - Set or change the VMA address of the named SECTION. The VMA - address is the address where the section will be located once the - program has started executing. Normally this is the same as the - LMA 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 ROM, the two can be different. If `=' is used, the - section address is set to VAL. Otherwise, VAL is added to or - subtracted from the section address. See the comments under - `--change-addresses', above. If SECTION does not exist in the - input file, a warning will be issued, unless - `--no-change-warnings' is used. - -`--change-warnings' -`--adjust-warnings' - If `--change-section-address' or `--change-section-lma' or - `--change-section-vma' is used, and the named section does not - exist, issue a warning. This is the default. - -`--no-change-warnings' -`--no-adjust-warnings' - Do not issue a warning if `--change-section-address' or - `--adjust-section-lma' or `--adjust-section-vma' is used, even if - the named section does not exist. - -`--set-section-flags SECTION=FLAGS' - Set the flags for the named section. The FLAGS argument is a - comma separated string of flag names. The recognized names are - `alloc', `contents', `load', `noload', `readonly', `code', `data', - `rom', `share', and `debug'. You can set the `contents' flag for - a section which does not have contents, but it is not meaningful - to clear the `contents' flag of a section which does have - contents-just remove the section instead. Not all flags are - meaningful for all object file formats. - -`--add-section SECTIONNAME=FILENAME' - Add a new section named SECTIONNAME while copying the file. The - contents of the new section are taken from the file FILENAME. 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. - -`--rename-section OLDNAME=NEWNAME[,FLAGS]' - Rename a section from OLDNAME to NEWNAME, optionally changing the - section's flags to FLAGS 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. - - 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: - - objcopy -I binary -O -B \ - --rename-section .data=.rodata,alloc,load,readonly,data,contents \ - - -`--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 - `objcopy' 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. - -`--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 `--change-leading-char' - because it always changes the symbol name when appropriate, - regardless of the object file format of the output file. - -`--reverse-bytes=NUM' - Reverse the bytes in a section with output contents. A section - length must be evenly divisible by the value given in order for - the swap to be able to take place. Reversing takes place before - the interleaving is performed. - - This option is used typically in generating ROM images for - problematic target systems. For example, on some target boards, - the 32-bit words fetched from 8-bit ROMs are re-assembled in - little-endian byte order regardless of the CPU byte order. - Depending on the programming model, the endianness of the ROM may - need to be modified. - - Consider a simple file with a section containing the following - eight bytes: `12345678'. - - Using `--reverse-bytes=2' for the above example, the bytes in the - output file would be ordered `21436587'. - - Using `--reverse-bytes=4' for the above example, the bytes in the - output file would be ordered `43218765'. - - By using `--reverse-bytes=2' for the above example, followed by - `--reverse-bytes=4' on the output file, the bytes in the second - output file would be ordered `34127856'. - -`--srec-len=IVAL' - Meaningful only for srec output. Set the maximum length of the - Srecords being produced to IVAL. This length covers both address, - data and crc fields. - -`--srec-forceS3' - Meaningful only for srec output. Avoid generation of S1/S2 - records, creating S3-only record format. - -`--redefine-sym OLD=NEW' - Change the name of a symbol OLD, to NEW. This can be useful when - one is trying link two things together for which you have no - source, and there are name collisions. - -`--redefine-syms=FILENAME' - Apply `--redefine-sym' to each symbol pair "OLD NEW" listed in the - file FILENAME. FILENAME 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. - -`--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 `-R' option to the linker. This option is only - effective when using an object file format which supports weak - symbols. - -`--keep-symbols=FILENAME' - Apply `--keep-symbol' option to each symbol listed in the file - FILENAME. FILENAME 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. - -`--strip-symbols=FILENAME' - Apply `--strip-symbol' option to each symbol listed in the file - FILENAME. FILENAME 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. - -`--strip-unneeded-symbols=FILENAME' - Apply `--strip-unneeded-symbol' option to each symbol listed in - the file FILENAME. FILENAME 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. - -`--keep-global-symbols=FILENAME' - Apply `--keep-global-symbol' option to each symbol listed in the - file FILENAME. FILENAME 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. - -`--localize-symbols=FILENAME' - Apply `--localize-symbol' option to each symbol listed in the file - FILENAME. FILENAME 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. - -`--globalize-symbols=FILENAME' - Apply `--globalize-symbol' option to each symbol listed in the file - FILENAME. FILENAME 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. - -`--weaken-symbols=FILENAME' - Apply `--weaken-symbol' option to each symbol listed in the file - FILENAME. FILENAME 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. - -`--alt-machine-code=INDEX' - If the output architecture has alternate machine codes, use the - INDEXth 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. For ELF based architectures if the INDEX alternative - does not exist then the value is treated as an absolute number to - be stored in the e_machine field of the ELF header. - -`--writable-text' - Mark the output text as writable. This option isn't meaningful - for all object file formats. - -`--readonly-text' - Make the output text write protected. This option isn't - meaningful for all object file formats. - -`--pure' - Mark the output file as demand paged. This option isn't - meaningful for all object file formats. - -`--impure' - Mark the output file as impure. This option isn't meaningful for - all object file formats. - -`--prefix-symbols=STRING' - Prefix all symbols in the output file with STRING. - -`--prefix-sections=STRING' - Prefix all section names in the output file with STRING. - -`--prefix-alloc-sections=STRING' - Prefix all the names of all allocated sections in the output file - with STRING. - -`--add-gnu-debuglink=PATH-TO-FILE' - Creates a .gnu_debuglink section which contains a reference to - PATH-TO-FILE and adds it to the output file. - -`--keep-file-symbols' - When stripping a file, perhaps with `--strip-debug' or - `--strip-unneeded', retain any symbols specifying source file - names, which would otherwise get stripped. - -`--only-keep-debug' - Strip a file, removing contents of any sections that would not be - stripped by `--strip-debug' and leaving the debugging sections - intact. In ELF files, this preserves all note sections in the - output. - - The intention is that this option will be used in conjunction with - `--add-gnu-debuglink' to create a two part executable. One a - stripped binary which will occupy less space in RAM 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: - - 1. Link the executable as normal. Assuming that is is called - `foo' then... - - 2. Run `objcopy --only-keep-debug foo foo.dbg' to create a file - containing the debugging info. - - 3. Run `objcopy --strip-debug foo' to create a stripped - executable. - - 4. Run `objcopy --add-gnu-debuglink=foo.dbg foo' to add a link - to the debugging info into the stripped executable. - - Note - the choice of `.dbg' as an extension for the debug info - file is arbitrary. Also the `--only-keep-debug' step is optional. - You could instead do this: - - 1. Link the executable as normal. - - 2. Copy `foo' to `foo.full' - - 3. Run `objcopy --strip-debug foo' - - 4. Run `objcopy --add-gnu-debuglink=foo.full foo' - - i.e., the file pointed to by the `--add-gnu-debuglink' can be the - full executable. It does not have to be a file created by the - `--only-keep-debug' switch. - - Note - this switch is only intended for use on fully linked files. - It does not make sense to use it on object files where the - debugging information may be incomplete. Besides the - gnu_debuglink feature currently only supports the presence of one - filename containing debugging information, not multiple filenames - on a one-per-object-file basis. - -`--extract-symbol' - Keep the file's section flags and symbols but remove all section - data. Specifically, the option: - - * sets the virtual and load addresses of every section to zero; - - * removes the contents of all sections; - - * sets the size of every section to zero; and - - * sets the file's start address to zero. - - This option is used to build a `.sym' file for a VxWorks kernel. - It can also be a useful way of reducing the size of a - `--just-symbols' linker input file. - -`-V' -`--version' - Show the version number of `objcopy'. - -`-v' -`--verbose' - Verbose output: list all object files modified. In the case of - archives, `objcopy -V' lists all members of the archive. - -`--help' - Show a summary of the options to `objcopy'. - -`--info' - Display a list showing all architectures and object formats - available. - - -File: binutils.info, Node: objdump, Next: ranlib, Prev: objcopy, Up: Top - -4 objdump -********* - - objdump [`-a'|`--archive-headers'] - [`-b' BFDNAME|`--target=BFDNAME'] - [`-C'|`--demangle'[=STYLE] ] - [`-d'|`--disassemble'] - [`-D'|`--disassemble-all'] - [`-z'|`--disassemble-zeroes'] - [`-EB'|`-EL'|`--endian='{big | little }] - [`-f'|`--file-headers'] - [`--file-start-context'] - [`-g'|`--debugging'] - [`-e'|`--debugging-tags'] - [`-h'|`--section-headers'|`--headers'] - [`-i'|`--info'] - [`-j' SECTION|`--section='SECTION] - [`-l'|`--line-numbers'] - [`-S'|`--source'] - [`-m' MACHINE|`--architecture='MACHINE] - [`-M' OPTIONS|`--disassembler-options='OPTIONS] - [`-p'|`--private-headers'] - [`-r'|`--reloc'] - [`-R'|`--dynamic-reloc'] - [`-s'|`--full-contents'] - [`-W'|`--dwarf'] - [`-G'|`--stabs'] - [`-t'|`--syms'] - [`-T'|`--dynamic-syms'] - [`-x'|`--all-headers'] - [`-w'|`--wide'] - [`--start-address='ADDRESS] - [`--stop-address='ADDRESS] - [`--prefix-addresses'] - [`--[no-]show-raw-insn'] - [`--adjust-vma='OFFSET] - [`--special-syms'] - [`-V'|`--version'] - [`-H'|`--help'] - OBJFILE... - - `objdump' 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. - - OBJFILE... are the object files to be examined. When you specify -archives, `objdump' shows information on each of the member object -files. - - The long and short forms of options, shown here as alternatives, are -equivalent. At least one option from the list -`-a,-d,-D,-e,-f,-g,-G,-h,-H,-p,-r,-R,-s,-S,-t,-T,-V,-x' must be given. - -`-a' -`--archive-header' - If any of the OBJFILE files are archives, display the archive - header information (in a format similar to `ls -l'). Besides the - information you could list with `ar tv', `objdump -a' shows the - object file format of each archive member. - -`--adjust-vma=OFFSET' - When dumping information, first add OFFSET 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. - -`-b BFDNAME' -`--target=BFDNAME' - Specify that the object-code format for the object files is - BFDNAME. This option may not be necessary; OBJDUMP can - automatically recognize many formats. - - For example, - objdump -b oasys -m vax -h fu.o - displays summary information from the section headers (`-h') of - `fu.o', which is explicitly identified (`-m') as a VAX object file - in the format produced by Oasys compilers. You can list the - formats available with the `-i' option. *Note Target Selection::, - for more information. - -`-C' -`--demangle[=STYLE]' - Decode ("demangle") 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. *Note c++filt::, for more information on demangling. - -`-g' -`--debugging' - 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 `readelf -w'. - *Note readelf::. - -`-e' -`--debugging-tags' - Like `-g', but the information is generated in a format compatible - with ctags tool. - -`-d' -`--disassemble' - Display the assembler mnemonics for the machine instructions from - OBJFILE. This option only disassembles those sections which are - expected to contain instructions. - -`-D' -`--disassemble-all' - Like `-d', but disassemble the contents of all sections, not just - those expected to contain instructions. - -`--prefix-addresses' - When disassembling, print the complete address on each line. This - is the older disassembly format. - -`-EB' -`-EL' -`--endian={big|little}' - 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. - -`-f' -`--file-headers' - Display summary information from the overall header of each of the - OBJFILE files. - -`--file-start-context' - Specify that when displaying interlisted source code/disassembly - (assumes `-S') from a file that has not yet been displayed, extend - the context to the start of the file. - -`-h' -`--section-headers' -`--headers' - Display summary information from the section headers of the object - file. - - File segments may be relocated to nonstandard addresses, for - example by using the `-Ttext', `-Tdata', or `-Tbss' options to - `ld'. However, some object file formats, such as a.out, do not - store the starting address of the file segments. In those - situations, although `ld' relocates the sections correctly, using - `objdump -h' to list the file section headers cannot show the - correct addresses. Instead, it shows the usual addresses, which - are implicit for the target. - -`-H' -`--help' - Print a summary of the options to `objdump' and exit. - -`-i' -`--info' - Display a list showing all architectures and object formats - available for specification with `-b' or `-m'. - -`-j NAME' -`--section=NAME' - Display information only for section NAME. - -`-l' -`--line-numbers' - Label the display (using debugging information) with the filename - and source line numbers corresponding to the object code or relocs - shown. Only useful with `-d', `-D', or `-r'. - -`-m MACHINE' -`--architecture=MACHINE' - 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 `-i' option. - -`-M OPTIONS' -`--disassembler-options=OPTIONS' - 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 `-M' options can be - used or can be placed together into a comma separated list. - - If the target is an ARM architecture then this switch can be used - to select which register name set is used during disassembler. - Specifying `-M reg-names-std' (the default) will select the - register names as used in ARM's instruction set documentation, but - with register 13 called 'sp', register 14 called 'lr' and register - 15 called 'pc'. Specifying `-M reg-names-apcs' will select the - name set used by the ARM Procedure Call Standard, whilst - specifying `-M reg-names-raw' will just use `r' followed by the - register number. - - There are also two variants on the APCS register naming scheme - enabled by `-M reg-names-atpcs' and `-M reg-names-special-atpcs' - which use the ARM/Thumb Procedure Call Standard naming - conventions. (Either with the normal register names or the - special register names). - - This option can also be used for ARM architectures to force the - disassembler to interpret all instructions as Thumb instructions by - using the switch `--disassembler-options=force-thumb'. This can be - useful when attempting to disassemble thumb code produced by other - compilers. - - For the x86, some of the options duplicate functions of the `-m' - switch, but allow finer grained control. Multiple selections from - the following may be specified as a comma separated string. - `x86-64', `i386' and `i8086' select disassembly for the given - architecture. `intel' and `att' select between intel syntax mode - and AT&T syntax mode. `addr64', `addr32', `addr16', `data32' and - `data16' specify the default address size and operand size. These - four options will be overridden if `x86-64', `i386' or `i8086' - appear later in the option string. Lastly, `suffix', when in AT&T - mode, instructs the disassembler to print a mnemonic suffix even - when the suffix could be inferred by the operands. - - For PPC, `booke', `booke32' and `booke64' select disassembly of - BookE instructions. `32' and `64' select PowerPC and PowerPC64 - disassembly, respectively. `e300' selects disassembly for the - e300 family. `440' selects disassembly for the PowerPC 440. - - For MIPS, this option controls the printing of instruction mnemonic - 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: - - `no-aliases' - Print the 'raw' instruction mnemonic instead of some pseudo - instruction mnemonic. I.e., print 'daddu' or 'or' instead of - 'move', 'sll' instead of 'nop', etc. - - `gpr-names=ABI' - Print GPR (general-purpose register) names as appropriate for - the specified ABI. By default, GPR names are selected - according to the ABI of the binary being disassembled. - - `fpr-names=ABI' - Print FPR (floating-point register) names as appropriate for - the specified ABI. By default, FPR numbers are printed - rather than names. - - `cp0-names=ARCH' - Print CP0 (system control coprocessor; coprocessor 0) - register names as appropriate for the CPU or architecture - specified by ARCH. By default, CP0 register names are - selected according to the architecture and CPU of the binary - being disassembled. - - `hwr-names=ARCH' - Print HWR (hardware register, used by the `rdhwr' - instruction) names as appropriate for the CPU or architecture - specified by ARCH. By default, HWR names are selected - according to the architecture and CPU of the binary being - disassembled. - - `reg-names=ABI' - Print GPR and FPR names as appropriate for the selected ABI. - - `reg-names=ARCH' - Print CPU-specific register names (CP0 register and HWR names) - as appropriate for the selected CPU or architecture. - - For any of the options listed above, ABI or ARCH may be specified - as `numeric' to have numbers printed rather than names, for the - selected types of registers. You can list the available values of - ABI and ARCH using the `--help' option. - - For VAX, you can specify function entry addresses with `-M - entry:0xf00ba'. You can use this multiple times to properly - disassemble VAX binary files that don't contain symbol tables (like - ROM dumps). In these cases, the function entry mask would - otherwise be decoded as VAX instructions, which would probably - lead the rest of the function being wrongly disassembled. - -`-p' -`--private-headers' - 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. - -`-r' -`--reloc' - Print the relocation entries of the file. If used with `-d' or - `-D', the relocations are printed interspersed with the - disassembly. - -`-R' -`--dynamic-reloc' - Print the dynamic relocation entries of the file. This is only - meaningful for dynamic objects, such as certain types of shared - libraries. - -`-s' -`--full-contents' - Display the full contents of any sections requested. By default - all non-empty sections are displayed. - -`-S' -`--source' - Display source code intermixed with disassembly, if possible. - Implies `-d'. - -`--show-raw-insn' - When disassembling instructions, print the instruction in hex as - well as in symbolic form. This is the default except when - `--prefix-addresses' is used. - -`--no-show-raw-insn' - When disassembling instructions, do not print the instruction - bytes. This is the default when `--prefix-addresses' is used. - -`-W' -`--dwarf' - Displays the contents of the DWARF debug sections in the file, if - any are present. - -`-G' -`--stabs' - Display the full contents of any sections requested. Display the - contents of the .stab and .stab.index and .stab.excl sections from - an ELF file. This is only useful on systems (such as Solaris 2.0) - in which `.stab' debugging symbol-table entries are carried in an - ELF section. In most other file formats, debugging symbol-table - entries are interleaved with linkage symbols, and are visible in - the `--syms' output. For more information on stabs symbols, see - *Note Stabs: (stabs.info)Top. - -`--start-address=ADDRESS' - Start displaying data at the specified address. This affects the - output of the `-d', `-r' and `-s' options. - -`--stop-address=ADDRESS' - Stop displaying data at the specified address. This affects the - output of the `-d', `-r' and `-s' options. - -`-t' -`--syms' - Print the symbol table entries of the file. This is similar to - the information provided by the `nm' program. - -`-T' -`--dynamic-syms' - 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 `nm' - program when given the `-D' (`--dynamic') option. - -`--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. - -`-V' -`--version' - Print the version number of `objdump' and exit. - -`-x' -`--all-headers' - Display all available header information, including the symbol - table and relocation entries. Using `-x' is equivalent to - specifying all of `-a -f -h -p -r -t'. - -`-w' -`--wide' - Format some lines for output devices that have more than 80 - columns. Also do not truncate symbol names when they are - displayed. - -`-z' -`--disassemble-zeroes' - Normally the disassembly output will skip blocks of zeroes. This - option directs the disassembler to disassemble those blocks, just - like any other data. - - -File: binutils.info, Node: ranlib, Next: readelf, Prev: objdump, Up: Top - -5 ranlib -******** - - ranlib [`-vV'] ARCHIVE - - `ranlib' 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. - - You may use `nm -s' or `nm --print-armap' to list this index. - - 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. - - The GNU `ranlib' program is another form of GNU `ar'; running -`ranlib' is completely equivalent to executing `ar -s'. *Note ar::. - -`-v' -`-V' -`--version' - Show the version number of `ranlib'. - - -File: binutils.info, Node: size, Next: strings, Prev: readelf, Up: Top - -6 size -****** - - size [`-A'|`-B'|`--format='COMPATIBILITY] - [`--help'] - [`-d'|`-o'|`-x'|`--radix='NUMBER] - [`--common'] - [`-t'|`--totals'] - [`--target='BFDNAME] [`-V'|`--version'] - [OBJFILE...] - - The GNU `size' utility lists the section sizes--and the total -size--for each of the object or archive files OBJFILE in its argument -list. By default, one line of output is generated for each object file -or each module in an archive. - - OBJFILE... are the object files to be examined. If none are -specified, the file `a.out' will be used. - - The command line options have the following meanings: - -`-A' -`-B' -`--format=COMPATIBILITY' - Using one of these options, you can choose whether the output from - GNU `size' resembles output from System V `size' (using `-A', or - `--format=sysv'), or Berkeley `size' (using `-B', or - `--format=berkeley'). The default is the one-line format similar - to Berkeley's. - - Here is an example of the Berkeley (default) format of output from - `size': - $ size --format=Berkeley ranlib size - text data bss dec hex filename - 294880 81920 11592 388392 5ed28 ranlib - 294880 81920 11888 388688 5ee50 size - - This is the same data, but displayed closer to System V - conventions: - - $ size --format=SysV ranlib size - ranlib : - section size addr - .text 294880 8192 - .data 81920 303104 - .bss 11592 385024 - Total 388392 - - - size : - section size addr - .text 294880 8192 - .data 81920 303104 - .bss 11888 385024 - Total 388688 - -`--help' - Show a summary of acceptable arguments and options. - -`-d' -`-o' -`-x' -`--radix=NUMBER' - Using one of these options, you can control whether the size of - each section is given in decimal (`-d', or `--radix=10'); octal - (`-o', or `--radix=8'); or hexadecimal (`-x', or `--radix=16'). - In `--radix=NUMBER', only the three values (8, 10, 16) are - supported. The total size is always given in two radices; decimal - and hexadecimal for `-d' or `-x' output, or octal and hexadecimal - if you're using `-o'. - -`--common' - Print total size of common symbols in each file. When using - Berkeley format these are included in the bss size. - -`-t' -`--totals' - Show totals of all objects listed (Berkeley format listing mode - only). - -`--target=BFDNAME' - Specify that the object-code format for OBJFILE is BFDNAME. This - option may not be necessary; `size' can automatically recognize - many formats. *Note Target Selection::, for more information. - -`-V' -`--version' - Display the version number of `size'. - - -File: binutils.info, Node: strings, Next: strip, Prev: size, Up: Top - -7 strings -********* - - strings [`-afov'] [`-'MIN-LEN] - [`-n' MIN-LEN] [`--bytes='MIN-LEN] - [`-t' RADIX] [`--radix='RADIX] - [`-e' ENCODING] [`--encoding='ENCODING] - [`-'] [`--all'] [`--print-file-name'] - [`-T' BFDNAME] [`--target='BFDNAME] - [`--help'] [`--version'] FILE... - - For each FILE given, GNU `strings' 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. - - `strings' is mainly useful for determining the contents of non-text -files. - -`-a' -`--all' -`-' - Do not scan only the initialized and loaded sections of object - files; scan the whole files. - -`-f' -`--print-file-name' - Print the name of the file before each string. - -`--help' - Print a summary of the program usage on the standard output and - exit. - -`-MIN-LEN' -`-n MIN-LEN' -`--bytes=MIN-LEN' - Print sequences of characters that are at least MIN-LEN characters - long, instead of the default 4. - -`-o' - Like `-t o'. Some other versions of `strings' have `-o' act like - `-t d' instead. Since we can not be compatible with both ways, we - simply chose one. - -`-t RADIX' -`--radix=RADIX' - Print the offset within the file before each string. The single - character argument specifies the radix of the offset--`o' for - octal, `x' for hexadecimal, or `d' for decimal. - -`-e ENCODING' -`--encoding=ENCODING' - Select the character encoding of the strings that are to be found. - Possible values for ENCODING are: `s' = single-7-bit-byte - characters (ASCII, ISO 8859, etc., default), `S' = - single-8-bit-byte characters, `b' = 16-bit bigendian, `l' = 16-bit - littleendian, `B' = 32-bit bigendian, `L' = 32-bit littleendian. - Useful for finding wide character strings. - -`-T BFDNAME' -`--target=BFDNAME' - Specify an object code format other than your system's default - format. *Note Target Selection::, for more information. - -`-v' -`--version' - Print the program version number on the standard output and exit. - - -File: binutils.info, Node: strip, Next: c++filt, Prev: strings, Up: Top - -8 strip -******* - - strip [`-F' BFDNAME |`--target='BFDNAME] - [`-I' BFDNAME |`--input-target='BFDNAME] - [`-O' BFDNAME |`--output-target='BFDNAME] - [`-s'|`--strip-all'] - [`-S'|`-g'|`-d'|`--strip-debug'] - [`-K' SYMBOLNAME |`--keep-symbol='SYMBOLNAME] - [`-N' SYMBOLNAME |`--strip-symbol='SYMBOLNAME] - [`-w'|`--wildcard'] - [`-x'|`--discard-all'] [`-X' |`--discard-locals'] - [`-R' SECTIONNAME |`--remove-section='SECTIONNAME] - [`-o' FILE] [`-p'|`--preserve-dates'] - [`--keep-file-symbols'] - [`--only-keep-debug'] - [`-v' |`--verbose'] [`-V'|`--version'] - [`--help'] [`--info'] - OBJFILE... - - GNU `strip' discards all symbols from object files OBJFILE. The -list of object files may include archives. At least one object file -must be given. - - `strip' modifies the files named in its argument, rather than -writing modified copies under different names. - -`-F BFDNAME' -`--target=BFDNAME' - Treat the original OBJFILE as a file with the object code format - BFDNAME, and rewrite it in the same format. *Note Target - Selection::, for more information. - -`--help' - Show a summary of the options to `strip' and exit. - -`--info' - Display a list showing all architectures and object formats - available. - -`-I BFDNAME' -`--input-target=BFDNAME' - Treat the original OBJFILE as a file with the object code format - BFDNAME. *Note Target Selection::, for more information. - -`-O BFDNAME' -`--output-target=BFDNAME' - Replace OBJFILE with a file in the output format BFDNAME. *Note - Target Selection::, for more information. - -`-R SECTIONNAME' -`--remove-section=SECTIONNAME' - Remove any section named SECTIONNAME from the output file. This - option may be given more than once. Note that using this option - inappropriately may make the output file unusable. - -`-s' -`--strip-all' - Remove all symbols. - -`-g' -`-S' -`-d' -`--strip-debug' - Remove debugging symbols only. - -`--strip-unneeded' - Remove all symbols that are not needed for relocation processing. - -`-K SYMBOLNAME' -`--keep-symbol=SYMBOLNAME' - When stripping symbols, keep symbol SYMBOLNAME even if it would - normally be stripped. This option may be given more than once. - -`-N SYMBOLNAME' -`--strip-symbol=SYMBOLNAME' - Remove symbol SYMBOLNAME from the source file. This option may be - given more than once, and may be combined with strip options other - than `-K'. - -`-o FILE' - Put the stripped output in FILE, rather than replacing the - existing file. When this argument is used, only one OBJFILE - argument may be specified. - -`-p' -`--preserve-dates' - Preserve the access and modification dates of the file. - -`-w' -`--wildcard' - Permit regular expressions in SYMBOLNAMEs used in other command - line options. The question mark (?), asterisk (*), backslash (\) - 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: - - -w -K !foo -K fo* - - would cause strip to only keep symbols that start with the letters - "fo", but to discard the symbol "foo". - -`-x' -`--discard-all' - Remove non-global symbols. - -`-X' -`--discard-locals' - Remove compiler-generated local symbols. (These usually start - with `L' or `.'.) - -`--keep-file-symbols' - When stripping a file, perhaps with `--strip-debug' or - `--strip-unneeded', retain any symbols specifying source file - names, which would otherwise get stripped. - -`--only-keep-debug' - Strip a file, removing contents of any sections that would not be - stripped by `--strip-debug' and leaving the debugging sections - intact. In ELF files, this preserves all note sections in the - output. - - The intention is that this option will be used in conjunction with - `--add-gnu-debuglink' to create a two part executable. One a - stripped binary which will occupy less space in RAM 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: - - 1. Link the executable as normal. Assuming that is is called - `foo' then... - - 2. Run `objcopy --only-keep-debug foo foo.dbg' to create a file - containing the debugging info. - - 3. Run `objcopy --strip-debug foo' to create a stripped - executable. - - 4. Run `objcopy --add-gnu-debuglink=foo.dbg foo' to add a link - to the debugging info into the stripped executable. - - Note - the choice of `.dbg' as an extension for the debug info - file is arbitrary. Also the `--only-keep-debug' step is optional. - You could instead do this: - - 1. Link the executable as normal. - - 2. Copy `foo' to `foo.full' - - 3. Run `strip --strip-debug foo' - - 4. Run `objcopy --add-gnu-debuglink=foo.full foo' - - ie the file pointed to by the `--add-gnu-debuglink' can be the - full executable. It does not have to be a file created by the - `--only-keep-debug' switch. - - Note - this switch is only intended for use on fully linked files. - It does not make sense to use it on object files where the - debugging information may be incomplete. Besides the - gnu_debuglink feature currently only supports the presence of one - filename containing debugging information, not multiple filenames - on a one-per-object-file basis. - -`-V' -`--version' - Show the version number for `strip'. - -`-v' -`--verbose' - Verbose output: list all object files modified. In the case of - archives, `strip -v' lists all members of the archive. - - -File: binutils.info, Node: c++filt, Next: addr2line, Prev: strip, Up: Top - -9 c++filt -********* - - c++filt [`-_'|`--strip-underscores'] - [`-n'|`--no-strip-underscores'] - [`-p'|`--no-params'] - [`-t'|`--types'] - [`-i'|`--no-verbose'] - [`-s' FORMAT|`--format='FORMAT] - [`--help'] [`--version'] [SYMBOL...] - - The C++ and Java languages provide function overloading, which means -that you can write many functions with the same name, providing that -each function takes parameters of different types. In order to be able -to distinguish these similarly named functions C++ and Java encode them -into a low-level assembler name which uniquely identifies each -different version. This process is known as "mangling". The `c++filt' -(1) program does the inverse mapping: it decodes ("demangles") low-level -names into user-level names so that they can be read. - - Every alphanumeric word (consisting of letters, digits, underscores, -dollars, or periods) seen in the input is a potential mangled name. If -the name decodes into a C++ name, the C++ name replaces the low-level -name in the output, otherwise the original word is output. In this way -you can pass an entire assembler source file, containing mangled names, -through `c++filt' and see the same source file containing demangled -names. - - You can also use `c++filt' to decipher individual symbols by passing -them on the command line: - - c++filt SYMBOL - - If no SYMBOL arguments are given, `c++filt' reads symbol names from -the standard input instead. All the results are printed on the -standard output. The difference between reading names from the command -line versus reading names from the standard input is that command line -arguments are expected to be just mangled names and no checking is -performed to separate them from surrounding text. Thus for example: - - c++filt -n _Z1fv - - will work and demangle the name to "f()" whereas: - - c++filt -n _Z1fv, - - will not work. (Note the extra comma at the end of the mangled name -which makes it invalid). This command however will work: - - echo _Z1fv, | c++filt -n - - and will display "f()," ie the demangled name followed by a trailing -comma. This behaviour is because when the names are read from the -standard input it is expected that they might be part of an assembler -source file where there might be extra, extraneous characters trailing -after a mangled name. eg: - - .type _Z1fv, @function - -`-_' -`--strip-underscores' - On some systems, both the C and C++ compilers put an underscore in - front of every name. For example, the C name `foo' gets the - low-level name `_foo'. This option removes the initial - underscore. Whether `c++filt' removes the underscore by default - is target dependent. - -`-j' -`--java' - Prints demangled names using Java syntax. The default is to use - C++ syntax. - -`-n' -`--no-strip-underscores' - Do not remove the initial underscore. - -`-p' -`--no-params' - When demangling the name of a function, do not display the types of - the function's parameters. - -`-t' -`--types' - Attempt to demangle types as well as function names. This is - disabled by default since mangled types are normally only used - internally in the compiler, and they can be confused with - non-mangled names. eg a function called "a" treated as a mangled - type name would be demangled to "signed char". - -`-i' -`--no-verbose' - Do not include implementation details (if any) in the demangled - output. - -`-s FORMAT' -`--format=FORMAT' - `c++filt' can decode various methods of mangling, used by - different compilers. The argument to this option selects which - method it uses: - - `auto' - Automatic selection based on executable (the default method) - - `gnu' - the one used by the GNU C++ compiler (g++) - - `lucid' - the one used by the Lucid compiler (lcc) - - `arm' - the one specified by the C++ Annotated Reference Manual - - `hp' - the one used by the HP compiler (aCC) - - `edg' - the one used by the EDG compiler - - `gnu-v3' - the one used by the GNU C++ compiler (g++) with the V3 ABI. - - `java' - the one used by the GNU Java compiler (gcj) - - `gnat' - the one used by the GNU Ada compiler (GNAT). - -`--help' - Print a summary of the options to `c++filt' and exit. - -`--version' - Print the version number of `c++filt' and exit. - - _Warning:_ `c++filt' is a new utility, and the details of its user - interface are subject to change in future releases. In particular, - a command-line option may be required in the future to decode a - name passed as an argument on the command line; in other words, - - c++filt SYMBOL - - may in a future release become - - c++filt OPTION SYMBOL - - ---------- Footnotes ---------- - - (1) MS-DOS does not allow `+' characters in file names, so on MS-DOS -this program is named `CXXFILT'. - - -File: binutils.info, Node: addr2line, Next: nlmconv, Prev: c++filt, Up: Top - -10 addr2line -************ - - addr2line [`-b' BFDNAME|`--target='BFDNAME] - [`-C'|`--demangle'[=STYLE]] - [`-e' FILENAME|`--exe='FILENAME] - [`-f'|`--functions'] [`-s'|`--basename'] - [`-i'|`--inlines'] - [`-j'|`--section='NAME] - [`-H'|`--help'] [`-V'|`--version'] - [addr addr ...] - - `addr2line' translates addresses into file names and line numbers. -Given an address in an executable or an offset in a section of a -relocatable object, it uses the debugging information to figure out -which file name and line number are associated with it. - - The executable or relocatable object to use is specified with the -`-e' option. The default is the file `a.out'. The section in the -relocatable object to use is specified with the `-j' option. - - `addr2line' has two modes of operation. - - In the first, hexadecimal addresses are specified on the command -line, and `addr2line' displays the file name and line number for each -address. - - In the second, `addr2line' reads hexadecimal addresses from standard -input, and prints the file name and line number for each address on -standard output. In this mode, `addr2line' may be used in a pipe to -convert dynamically chosen addresses. - - The format of the output is `FILENAME:LINENO'. The file name and -line number for each address is printed on a separate line. If the -`-f' option is used, then each `FILENAME:LINENO' line is preceded by a -`FUNCTIONNAME' line which is the name of the function containing the -address. - - If the file name or function name can not be determined, `addr2line' -will print two question marks in their place. If the line number can -not be determined, `addr2line' will print 0. - - The long and short forms of options, shown here as alternatives, are -equivalent. - -`-b BFDNAME' -`--target=BFDNAME' - Specify that the object-code format for the object files is - BFDNAME. - -`-C' -`--demangle[=STYLE]' - Decode ("demangle") 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. *Note c++filt::, for more information on demangling. - -`-e FILENAME' -`--exe=FILENAME' - Specify the name of the executable for which addresses should be - translated. The default file is `a.out'. - -`-f' -`--functions' - Display function names as well as file and line number information. - -`-s' -`--basenames' - Display only the base of each file name. - -`-i' -`--inlines' - If the address belongs to a function that was inlined, the source - information for all enclosing scopes back to the first non-inlined - function will also be printed. For example, if `main' inlines - `callee1' which inlines `callee2', and address is from `callee2', - the source information for `callee1' and `main' will also be - printed. - -`-j' -`--section' - Read offsets relative to the specified section instead of absolute - addresses. - - -File: binutils.info, Node: nlmconv, Next: windres, Prev: addr2line, Up: Top - -11 nlmconv -********** - -`nlmconv' converts a relocatable object file into a NetWare Loadable -Module. - - _Warning:_ `nlmconv' is not always built as part of the binary - utilities, since it is only useful for NLM targets. - - nlmconv [`-I' BFDNAME|`--input-target='BFDNAME] - [`-O' BFDNAME|`--output-target='BFDNAME] - [`-T' HEADERFILE|`--header-file='HEADERFILE] - [`-d'|`--debug'] [`-l' LINKER|`--linker='LINKER] - [`-h'|`--help'] [`-V'|`--version'] - INFILE OUTFILE - - `nlmconv' converts the relocatable `i386' object file INFILE into -the NetWare Loadable Module OUTFILE, optionally reading HEADERFILE for -NLM header information. For instructions on writing the NLM command -file language used in header files, see the `linkers' section, -`NLMLINK' in particular, of the `NLM Development and Tools Overview', -which is part of the NLM Software Developer's Kit ("NLM SDK"), -available from Novell, Inc. `nlmconv' uses the GNU Binary File -Descriptor library to read INFILE; see *Note BFD: (ld.info)BFD, for -more information. - - `nlmconv' 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, `nlmconv' calls the linker for you. - -`-I BFDNAME' -`--input-target=BFDNAME' - Object format of the input file. `nlmconv' can usually determine - the format of a given file (so no default is necessary). *Note - Target Selection::, for more information. - -`-O BFDNAME' -`--output-target=BFDNAME' - Object format of the output file. `nlmconv' infers the output - format based on the input format, e.g. for a `i386' input file the - output format is `nlm32-i386'. *Note Target Selection::, for more - information. - -`-T HEADERFILE' -`--header-file=HEADERFILE' - Reads HEADERFILE for NLM header information. For instructions on - writing the NLM command file language used in header files, see - see the `linkers' section, of the `NLM Development and Tools - Overview', which is part of the NLM Software Developer's Kit, - available from Novell, Inc. - -`-d' -`--debug' - Displays (on standard error) the linker command line used by - `nlmconv'. - -`-l LINKER' -`--linker=LINKER' - Use LINKER for any linking. LINKER can be an absolute or a - relative pathname. - -`-h' -`--help' - Prints a usage summary. - -`-V' -`--version' - Prints the version number for `nlmconv'. - - -File: binutils.info, Node: windmc, Next: dlltool, Prev: windres, Up: Top - -12 windmc -********* - -`windmc' may be used to generator Windows message resources. - - _Warning:_ `windmc' is not always built as part of the binary - utilities, since it is only useful for Windows targets. - - windmc [options] input-file - - `windmc' reads message definitions from an input file (.mc) and -translate them into a set of output files. The output files may be of -four kinds: - -`h' - A C header file containing the message definitions. - -`rc' - A resource file compilable by the `windres' tool. - -`bin' - One or more binary files containing the resource data for a - specific message language. - -`dbg' - A C include file that maps message id's to their symbolic name. - - The exact description of these different formats is available in -documentation from Microsoft. - - When `windmc' converts from the `mc' format to the `bin' format, -`rc', `h', and optional `dbg' it is acting like the Windows Message -Compiler. - -`-a' -`--ascii_in' - Specifies that the input file specified is ANSI. This is the - default behaviour. - -`-A' -`--ascii_out' - Specifies that messages in the output `bin' files should be in ANSI - format. - -`-b' -`--binprefix' - Specifies that `bin' filenames should have to be prefixed by the - basename of the source file. - -`-c' -`--customflag' - Sets the customer bit in all message id's. - -`-C CODEPAGE' -`--codepage_in CODEPAGE' - Sets the default codepage to be used to convert input file to - UTF16. The default is ocdepage 1252. - -`-d' -`--decimal_values' - Outputs the constants in the header file in decimal. Default is - using hexadecimal output. - -`-e EXT' -`--extension EXT' - The extension for the header file. The default is .h extension. - -`-F TARGET' -`--target TARGET' - Specify the BFD format to use for a bin file as output. This is a - BFD target name; you can use the `--help' option to see a list of - supported targets. Normally `windmc' will use the default format, - which is the first one listed by the `--help' option. *Note - Target Selection::. - -`-h PATH' -`--headerdir PATH' - The target directory of the generated header file. The default is - the current directory. - -`-H' -`--help' - Displays a list of command line options and then exits. - -`-m CHARACTERS' -`--maxlength CHARACTERS' - Instructs `windmc' to generate a warning if the length of any - message exceeds the number specified. - -`-n' -`--nullterminate' - Terminate message text in `bin' files by zero. By default they are - terminated by CR/LF. - -`-o' -`--hresult_use' - Not yet implemented. Instructs `windmc' to generate an OLE2 header - file, using HRESULT definitions. Status codes are used if the flag - is not specified. - -`-O CODEPAGE' -`--codepage_out CODEPAGE' - Sets the default codepage to be used to output text files. The - default is ocdepage 1252. - -`-r PATH' -`--rcdir PATH' - The target directory for the generated `rc' script and the - generated `bin' files that the resource compiler script includes. - The default is the current directory. - -`-u' -`--unicode_in' - Specifies that the input file is UTF16. - -`-U' -`--unicode_out' - Specifies that messages in the output `bin' file should be in UTF16 - format. This is the default behaviour. - -`-v' - -`--verbose' - Enable verbose mode. This tells you what the preprocessor is if - you didn't specify one. - -`-V' - -`--version' - Prints the version number for `windres'. - -`-x PATH' -`--xdgb PATH' - The path of the `dbg' C include file that maps message id's to the - symbolic name. No such file is generated without specifying the - switch. - - -File: binutils.info, Node: windres, Next: windmc, Prev: nlmconv, Up: Top - -13 windres -********** - -`windres' may be used to manipulate Windows resources. - - _Warning:_ `windres' is not always built as part of the binary - utilities, since it is only useful for Windows targets. - - windres [options] [input-file] [output-file] - - `windres' reads resources from an input file and copies them into an -output file. Either file may be in one of three formats: - -`rc' - A text format read by the Resource Compiler. - -`res' - A binary format generated by the Resource Compiler. - -`coff' - A COFF object or executable. - - The exact description of these different formats is available in -documentation from Microsoft. - - When `windres' converts from the `rc' format to the `res' format, it -is acting like the Windows Resource Compiler. When `windres' converts -from the `res' format to the `coff' format, it is acting like the -Windows `CVTRES' program. - - When `windres' generates an `rc' file, the output is similar but not -identical to the format expected for the input. When an input `rc' -file refers to an external filename, an output `rc' file will instead -include the file contents. - - If the input or output format is not specified, `windres' will guess -based on the file name, or, for the input file, the file contents. A -file with an extension of `.rc' will be treated as an `rc' file, a file -with an extension of `.res' will be treated as a `res' file, and a file -with an extension of `.o' or `.exe' will be treated as a `coff' file. - - If no output file is specified, `windres' will print the resources -in `rc' format to standard output. - - The normal use is for you to write an `rc' file, use `windres' to -convert it to a COFF object file, and then link the COFF file into your -application. This will make the resources described in the `rc' file -available to Windows. - -`-i FILENAME' -`--input FILENAME' - The name of the input file. If this option is not used, then - `windres' will use the first non-option argument as the input file - name. If there are no non-option arguments, then `windres' will - read from standard input. `windres' can not read a COFF file from - standard input. - -`-o FILENAME' -`--output FILENAME' - The name of the output file. If this option is not used, then - `windres' 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 `windres' will write to standard output. - `windres' can not write a COFF file to standard output. Note, for - compatibility with `rc' the option `-fo' is also accepted, but its - use is not recommended. - -`-J FORMAT' -`--input-format FORMAT' - The input format to read. FORMAT may be `res', `rc', or `coff'. - If no input format is specified, `windres' will guess, as - described above. - -`-O FORMAT' -`--output-format FORMAT' - The output format to generate. FORMAT may be `res', `rc', or - `coff'. If no output format is specified, `windres' will guess, - as described above. - -`-F TARGET' -`--target TARGET' - Specify the BFD format to use for a COFF file as input or output. - This is a BFD target name; you can use the `--help' option to see - a list of supported targets. Normally `windres' will use the - default format, which is the first one listed by the `--help' - option. *Note Target Selection::. - -`--preprocessor PROGRAM' - When `windres' reads an `rc' 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 `gcc -E -xc-header -DRC_INVOKED'. - -`-I DIRECTORY' -`--include-dir DIRECTORY' - Specify an include directory to use when reading an `rc' file. - `windres' will pass this to the preprocessor as an `-I' option. - `windres' will also search this directory when looking for files - named in the `rc' file. If the argument passed to this command - matches any of the supported FORMATS (as described in the `-J' - option), it will issue a deprecation warning, and behave just like - the `-J' option. New programs should not use this behaviour. If a - directory happens to match a FORMAT, simple prefix it with `./' to - disable the backward compatibility. - -`-D TARGET' -`--define SYM[=VAL]' - Specify a `-D' option to pass to the preprocessor when reading an - `rc' file. - -`-U TARGET' -`--undefine SYM' - Specify a `-U' option to pass to the preprocessor when reading an - `rc' file. - -`-r' - Ignored for compatibility with rc. - -`-v' - Enable verbose mode. This tells you what the preprocessor is if - you didn't specify one. - -`-c VAL' - -`--codepage VAL' - Specify the default codepage to use when reading an `rc' file. - VAL should be a hexadecimal prefixed by `0x' or decimal codepage - code. The valid range is from zero up to 0xffff, but the validity - of the codepage is host and configuration dependent. - -`-l VAL' - -`--language VAL' - Specify the default language to use when reading an `rc' file. - VAL should be a hexadecimal language code. The low eight bits are - the language, and the high eight bits are the sublanguage. - -`--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). - -`--no-use-temp-file' - Use popen, not a temporary file, to read the output of the - preprocessor. This is the default behaviour. - -`-h' - -`--help' - Prints a usage summary. - -`-V' - -`--version' - Prints the version number for `windres'. - -`--yydebug' - If `windres' is compiled with `YYDEBUG' defined as `1', this will - turn on parser debugging. - - -File: binutils.info, Node: dlltool, Next: Common Options, Prev: windmc, Up: Top - -14 dlltool -********** - -`dlltool' is used to create the files needed to create dynamic link -libraries (DLLs) on systems which understand PE format image files such -as Windows. A DLL contains an export table which contains information -that the runtime loader needs to resolve references from a referencing -program. - - The export table is generated by this program by reading in a `.def' -file or scanning the `.a' and `.o' files which will be in the DLL. A -`.o' file can contain information in special `.drectve' sections with -export information. - - _Note:_ `dlltool' is not always built as part of the binary - utilities, since it is only useful for those targets which support - DLLs. - - dlltool [`-d'|`--input-def' DEF-FILE-NAME] - [`-b'|`--base-file' BASE-FILE-NAME] - [`-e'|`--output-exp' EXPORTS-FILE-NAME] - [`-z'|`--output-def' DEF-FILE-NAME] - [`-l'|`--output-lib' LIBRARY-FILE-NAME] - [`--export-all-symbols'] [`--no-export-all-symbols'] - [`--exclude-symbols' LIST] - [`--no-default-excludes'] - [`-S'|`--as' PATH-TO-ASSEMBLER] [`-f'|`--as-flags' OPTIONS] - [`-D'|`--dllname' NAME] [`-m'|`--machine' MACHINE] - [`-a'|`--add-indirect'] - [`-U'|`--add-underscore'] [`--add-stdcall-underscore'] - [`-k'|`--kill-at'] [`-A'|`--add-stdcall-alias'] - [`-p'|`--ext-prefix-alias' PREFIX] - [`-x'|`--no-idata4'] [`-c'|`--no-idata5'] [`-i'|`--interwork'] - [`-n'|`--nodelete'] [`-t'|`--temp-prefix' PREFIX] - [`-v'|`--verbose'] - [`-h'|`--help'] [`-V'|`--version'] - [object-file ...] - - `dlltool' reads its inputs, which can come from the `-d' and `-b' -options as well as object files specified on the command line. It then -processes these inputs and if the `-e' option has been specified it -creates a exports file. If the `-l' option has been specified it -creates a library file and if the `-z' option has been specified it -creates a def file. Any or all of the `-e', `-l' and `-z' options can -be present in one invocation of dlltool. - - When creating a DLL, along with the source for the DLL, it is -necessary to have three other files. `dlltool' can help with the -creation of these files. - - The first file is a `.def' file which specifies which functions are -exported from the DLL, which functions the DLL imports, and so on. This -is a text file and can be created by hand, or `dlltool' can be used to -create it using the `-z' option. In this case `dlltool' 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 `.def' file it creates. - - In order to mark a function as being exported from a DLL, it needs to -have an `-export:' entry in the `.drectve' section of -the object file. This can be done in C by using the asm() operator: - - asm (".section .drectve"); - asm (".ascii \"-export:my_func\""); - - int my_func (void) { ... } - - The second file needed for DLL creation is an exports file. This -file is linked with the object files that make up the body of the DLL -and it handles the interface between the DLL and the outside world. -This is a binary file and it can be created by giving the `-e' option to -`dlltool' when it is creating or reading in a `.def' file. - - The third file needed for DLL creation is the library file that -programs will link with in order to access the functions in the DLL. -This file can be created by giving the `-l' option to dlltool when it -is creating or reading in a `.def' file. - - `dlltool' builds the library file by hand, but it builds the exports -file by creating temporary files containing assembler statements and -then assembling these. The `-S' command line option can be used to -specify the path to the assembler that dlltool will use, and the `-f' -option can be used to pass specific flags to that assembler. The `-n' -can be used to prevent dlltool from deleting these temporary assembler -files when it is done, and if `-n' is specified twice then this will -prevent dlltool from deleting the temporary object files it used to -build the library. - - Here is an example of creating a DLL from a source file `dll.c' and -also creating a program (from an object file called `program.o') that -uses that DLL: - - 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 - - The command line options have the following meanings: - -`-d FILENAME' -`--input-def FILENAME' - Specifies the name of a `.def' file to be read in and processed. - -`-b FILENAME' -`--base-file FILENAME' - 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. - -`-e FILENAME' -`--output-exp FILENAME' - Specifies the name of the export file to be created by dlltool. - -`-z FILENAME' -`--output-def FILENAME' - Specifies the name of the `.def' file to be created by dlltool. - -`-l FILENAME' -`--output-lib FILENAME' - Specifies the name of the library file to be created by dlltool. - -`--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 `--no-default-excludes' - option. You may add to the list of symbols to not export by using - the `--exclude-symbols' option. - -`--no-export-all-symbols' - Only export symbols explicitly listed in an input `.def' file or in - `.drectve' sections in the input object files. This is the default - behaviour. The `.drectve' sections are created by `dllexport' - attributes in the source code. - -`--exclude-symbols LIST' - Do not export the symbols in LIST. 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 - `--export-all-symbols' is used. - -`--no-default-excludes' - When `--export-all-symbols' is used, it will by default avoid - exporting certain special symbols. The current list of symbols to - avoid exporting is `DllMain@12', `DllEntryPoint@0', `impure_ptr'. - You may use the `--no-default-excludes' option to go ahead and - export these special symbols. This is only meaningful when - `--export-all-symbols' is used. - -`-S PATH' -`--as PATH' - Specifies the path, including the filename, of the assembler to be - used to create the exports file. - -`-f OPTIONS' -`--as-flags OPTIONS' - Specifies any specific command line options to be passed to the - assembler when building the exports file. This option will work - even if the `-S' 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. - -`-D NAME' -`--dll-name NAME' - Specifies the name to be stored in the `.def' file as the name of - the DLL when the `-e' option is used. If this option is not - present, then the filename given to the `-e' option will be used - as the name of the DLL. - -`-m MACHINE' -`-machine MACHINE' - Specifies the type of machine for which the library file should be - built. `dlltool' 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 ARM - processor, when the contents of the DLL are actually encode using - Thumb instructions. - -`-a' -`--add-indirect' - Specifies that when `dlltool' 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! - -`-U' -`--add-underscore' - Specifies that when `dlltool' is creating the exports file it - should prepend an underscore to the names of _all_ exported - symbols. - -`--add-stdcall-underscore' - Specifies that when `dlltool' is creating the exports file it - should prepend an underscore to the names of exported _stdcall_ - functions. Variable names and non-stdcall function names are not - modified. This option is useful when creating GNU-compatible - import libs for third party DLLs that were built with MS-Windows - tools. - -`-k' -`--kill-at' - Specifies that when `dlltool' is creating the exports file it - should not append the string `@ '. These numbers are - called ordinal numbers and they represent another way of accessing - the function in a DLL, other than by name. - -`-A' -`--add-stdcall-alias' - Specifies that when `dlltool' is creating the exports file it - should add aliases for stdcall symbols without `@ ' in - addition to the symbols with `@ '. - -`-p' -`--ext-prefix-alias PREFIX' - Causes `dlltool' to create external aliases for all DLL imports - with the specified prefix. The aliases are created for both - external and import symbols with no leading underscore. - -`-x' -`--no-idata4' - Specifies that when `dlltool' is creating the exports and library - files it should omit the `.idata4' section. This is for - compatibility with certain operating systems. - -`-c' -`--no-idata5' - Specifies that when `dlltool' is creating the exports and library - files it should omit the `.idata5' section. This is for - compatibility with certain operating systems. - -`-i' -`--interwork' - Specifies that `dlltool' should mark the objects in the library - file and exports file that it produces as supporting interworking - between ARM and Thumb code. - -`-n' -`--nodelete' - Makes `dlltool' 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. - -`-t PREFIX' -`--temp-prefix PREFIX' - Makes `dlltool' use PREFIX when constructing the names of - temporary assembler and object files. By default, the temp file - prefix is generated from the pid. - -`-v' -`--verbose' - Make dlltool describe what it is doing. - -`-h' -`--help' - Displays a list of command line options and then exits. - -`-V' -`--version' - Displays dlltool's version number and then exits. - - -* Menu: - -* def file format:: The format of the dlltool `.def' file - - -File: binutils.info, Node: def file format, Up: dlltool - -14.1 The format of the `dlltool' `.def' file -============================================ - -A `.def' file contains any number of the following commands: - -`NAME' NAME `[ ,' BASE `]' - The result is going to be named NAME`.exe'. - -`LIBRARY' NAME `[ ,' BASE `]' - The result is going to be named NAME`.dll'. - -`EXPORTS ( ( (' NAME1 `[ = ' NAME2 `] ) | ( ' NAME1 `=' MODULE-NAME `.' EXTERNAL-NAME `) )' - -`[' INTEGER `] [ NONAME ] [ CONSTANT ] [ DATA ] [ PRIVATE ] ) *' - Declares NAME1 as an exported symbol from the DLL, with optional - ordinal number INTEGER, or declares NAME1 as an alias (forward) of - the function EXTERNAL-NAME in the DLL MODULE-NAME. - -`IMPORTS ( (' INTERNAL-NAME `=' MODULE-NAME `.' INTEGER `) | [' INTERNAL-NAME `= ]' MODULE-NAME `.' EXTERNAL-NAME `) ) *' - Declares that EXTERNAL-NAME or the exported function whose ordinal - number is INTEGER is to be imported from the file MODULE-NAME. If - INTERNAL-NAME is specified then this is the name that the imported - function will be referred to in the body of the DLL. - -`DESCRIPTION' STRING - Puts STRING into the output `.exp' file in the `.rdata' section. - -`STACKSIZE' NUMBER-RESERVE `[, ' NUMBER-COMMIT `]' - -`HEAPSIZE' NUMBER-RESERVE `[, ' NUMBER-COMMIT `]' - Generates `--stack' or `--heap' NUMBER-RESERVE,NUMBER-COMMIT in - the output `.drectve' section. The linker will see this and act - upon it. - -`CODE' ATTR `+' - -`DATA' ATTR `+' - -`SECTIONS (' SECTION-NAME ATTR` + ) *' - Generates `--attr' SECTION-NAME ATTR in the output `.drectve' - section, where ATTR is one of `READ', `WRITE', `EXECUTE' or - `SHARED'. The linker will see this and act upon it. - - - -File: binutils.info, Node: readelf, Next: size, Prev: ranlib, Up: Top - -15 readelf -********** - - readelf [`-a'|`--all'] - [`-h'|`--file-header'] - [`-l'|`--program-headers'|`--segments'] - [`-S'|`--section-headers'|`--sections'] - [`-g'|`--section-groups'] - [`-t'|`--section-details'] - [`-e'|`--headers'] - [`-s'|`--syms'|`--symbols'] - [`-n'|`--notes'] - [`-r'|`--relocs'] - [`-u'|`--unwind'] - [`-d'|`--dynamic'] - [`-V'|`--version-info'] - [`-A'|`--arch-specific'] - [`-D'|`--use-dynamic'] - [`-x' |`--hex-dump='] - [`-w[liaprmfFsoR]'| - `--debug-dump'[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges]] - [`-I'|`-histogram'] - [`-v'|`--version'] - [`-W'|`--wide'] - [`-H'|`--help'] - ELFFILE... - - `readelf' displays information about one or more ELF format object -files. The options control what particular information to display. - - ELFFILE... are the object files to be examined. 32-bit and 64-bit -ELF files are supported, as are archives containing ELF files. - - This program performs a similar function to `objdump' but it goes -into more detail and it exists independently of the BFD library, so if -there is a bug in BFD then readelf will not be affected. - - The long and short forms of options, shown here as alternatives, are -equivalent. At least one option besides `-v' or `-H' must be given. - -`-a' -`--all' - Equivalent to specifying `--file-header', `--program-headers', - `--sections', `--symbols', `--relocs', `--dynamic', `--notes' and - `--version-info'. - -`-h' -`--file-header' - Displays the information contained in the ELF header at the start - of the file. - -`-l' -`--program-headers' -`--segments' - Displays the information contained in the file's segment headers, - if it has any. - -`-S' -`--sections' -`--section-headers' - Displays the information contained in the file's section headers, - if it has any. - -`-g' -`--section-groups' - Displays the information contained in the file's section groups, - if it has any. - -`-t' -`--section-details' - Displays the detailed section information. Implies `-S'. - -`-s' -`--symbols' -`--syms' - Displays the entries in symbol table section of the file, if it - has one. - -`-e' -`--headers' - Display all the headers in the file. Equivalent to `-h -l -S'. - -`-n' -`--notes' - Displays the contents of the NOTE segments and/or sections, if any. - -`-r' -`--relocs' - Displays the contents of the file's relocation section, if it has - one. - -`-u' -`--unwind' - Displays the contents of the file's unwind section, if it has one. - Only the unwind sections for IA64 ELF files are currently - supported. - -`-d' -`--dynamic' - Displays the contents of the file's dynamic section, if it has one. - -`-V' -`--version-info' - Displays the contents of the version sections in the file, it they - exist. - -`-A' -`--arch-specific' - Displays architecture-specific information in the file, if there - is any. - -`-D' -`--use-dynamic' - When displaying symbols, this option makes `readelf' use the - symbol table in the file's dynamic section, rather than the one in - the symbols section. - -`-x ' -`--hex-dump=' - Displays the contents of the indicated section as a hexadecimal - dump. A number identifies a particular section by index in the - section table; any other string identifies all sections with that - name in the object file. - -`-w[liaprmfFsoR]' -`--debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges]' - 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. - -`-I' -`--histogram' - Display a histogram of bucket list lengths when displaying the - contents of the symbol tables. - -`-v' -`--version' - Display the version number of readelf. - -`-W' -`--wide' - Don't break output lines to fit into 80 columns. By default - `readelf' breaks section header and segment listing lines for - 64-bit ELF files, so that they fit into 80 columns. This option - causes `readelf' to print each section header resp. each segment - one a single line, which is far more readable on terminals wider - than 80 columns. - -`-H' -`--help' - Display the command line options understood by `readelf'. - - - -File: binutils.info, Node: Common Options, Next: Selecting The Target System, Prev: dlltool, Up: Top - -16 Common Options -***************** - -The following command-line options are supported by all of the programs -described in this manual. - -`@FILE' - Read command-line options from FILE. The options read are - inserted in place of the original @FILE option. If FILE does not - exist, or cannot be read, then the option will be treated - literally, and not removed. - - Options in FILE are separated by whitespace. A whitespace - character may be included in an option by surrounding the entire - option in either single or double quotes. Any character - (including a backslash) may be included by prefixing the character - to be included with a backslash. The FILE may itself contain - additional @FILE options; any such options will be processed - recursively. - -`--help' - Display the command-line options supported by the program. - -`--version' - Display the version number of the program. - - - -File: binutils.info, Node: Selecting The Target System, Next: Reporting Bugs, Prev: Common Options, Up: Top - -17 Selecting the Target System -****************************** - -You can specify two aspects of the target system to the GNU binary file -utilities, each in several ways: - - * the target - - * the architecture - - In the following summaries, the lists of ways to specify values are -in order of decreasing precedence. The ways listed first override those -listed later. - - The commands to list valid values only list the values for which the -programs you are running were configured. If they were configured with -`--enable-targets=all', the commands list most of the available values, -but a few are left out; not all targets can be configured in at once -because some of them can only be configured "native" (on hosts with the -same type as the target system). - -* Menu: - -* Target Selection:: -* Architecture Selection:: - - -File: binutils.info, Node: Target Selection, Next: Architecture Selection, Up: Selecting The Target System - -17.1 Target Selection -===================== - -A "target" is an object file format. A given target may be supported -for multiple architectures (*note Architecture Selection::). A target -selection may also have variations for different operating systems or -architectures. - - The command to list valid target values is `objdump -i' (the first -column of output contains the relevant information). - - Some sample values are: `a.out-hp300bsd', `ecoff-littlemips', -`a.out-sunos-big'. - - You can also specify a target using a configuration triplet. This is -the same sort of name that is passed to `configure' to specify a -target. When you use a configuration triplet as an argument, it must be -fully canonicalized. You can see the canonical version of a triplet by -running the shell script `config.sub' which is included with the -sources. - - Some sample configuration triplets are: `m68k-hp-bsd', -`mips-dec-ultrix', `sparc-sun-sunos'. - -`objdump' Target ----------------- - -Ways to specify: - - 1. command line option: `-b' or `--target' - - 2. environment variable `GNUTARGET' - - 3. deduced from the input file - -`objcopy' and `strip' Input Target ----------------------------------- - -Ways to specify: - - 1. command line options: `-I' or `--input-target', or `-F' or - `--target' - - 2. environment variable `GNUTARGET' - - 3. deduced from the input file - -`objcopy' and `strip' Output Target ------------------------------------ - -Ways to specify: - - 1. command line options: `-O' or `--output-target', or `-F' or - `--target' - - 2. the input target (see "`objcopy' and `strip' Input Target" above) - - 3. environment variable `GNUTARGET' - - 4. deduced from the input file - -`nm', `size', and `strings' Target ----------------------------------- - -Ways to specify: - - 1. command line option: `--target' - - 2. environment variable `GNUTARGET' - - 3. deduced from the input file - - -File: binutils.info, Node: Architecture Selection, Prev: Target Selection, Up: Selecting The Target System - -17.2 Architecture Selection -=========================== - -An "architecture" is a type of CPU on which an object file is to run. -Its name may contain a colon, separating the name of the processor -family from the name of the particular CPU. - - The command to list valid architecture values is `objdump -i' (the -second column contains the relevant information). - - Sample values: `m68k:68020', `mips:3000', `sparc'. - -`objdump' Architecture ----------------------- - -Ways to specify: - - 1. command line option: `-m' or `--architecture' - - 2. deduced from the input file - -`objcopy', `nm', `size', `strings' Architecture ------------------------------------------------ - -Ways to specify: - - 1. deduced from the input file - - -File: binutils.info, Node: Reporting Bugs, Next: GNU Free Documentation License, Prev: Selecting The Target System, Up: Top - -18 Reporting Bugs -***************** - -Your bug reports play an essential role in making the binary utilities -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 the binary -utilities work better. Bug reports are your contribution to their -maintenance. - - 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: binutils.info, Node: Bug Criteria, Next: Bug Reporting, Up: Reporting Bugs - -18.1 Have You Found a Bug? -========================== - -If you are not sure whether you have found a bug, here are some -guidelines: - - * If a binary utility gets a fatal signal, for any input whatever, - that is a bug. Reliable utilities never crash. - - * If a binary utility produces an error message for valid input, - that is a bug. - - * If you are an experienced user of binary utilities, your - suggestions for improvement are welcome in any case. - - -File: binutils.info, Node: Bug Reporting, Prev: Bug Criteria, Up: Reporting Bugs - -18.2 How to Report Bugs -======================= - -A number of companies and individuals offer support for GNU products. -If you obtained the binary utilities 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. - - In any event, we also recommend that you send bug reports for the -binary utilities to `http://www.sourceware.org/bugzilla/'. - - 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 file 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 pathname is stored in memory; perhaps, if the pathname were -different, the contents of that location would fool the utility 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 the utility. Each utility 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 the binary utilities. - - * Any patches you may have applied to the 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 the - utilities--e.g. "`gcc-2.7'". - - * The command arguments you gave the utility to 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. If the utility is reading an object file or files, then - it is generally most helpful to send the actual object files. - - If the source files were produced exclusively using GNU programs - (e.g., `gcc', `gas', and/or the GNU `ld'), 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 `gcc', or whatever, was - used to produce the object files. Also say how `gcc', or - whatever, was 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 the utility 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 the utility is out of sync, 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 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 wish - to 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 programs as complicated as the binary utilities 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: binutils.info, Node: GNU Free Documentation License, Next: Binutils Index, Prev: Reporting Bugs, Up: Top - -Appendix A GNU Free Documentation License -***************************************** - - Version 1.1, March 2000 - - Copyright (C) 2000, 2003 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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: binutils.info, Node: Binutils Index, Prev: GNU Free Documentation License, Up: Top - -Binutils Index -************** - -[index] -* Menu: - -* .stab: objdump. (line 324) -* addr2line: addr2line. (line 6) -* address to file name and line number: addr2line. (line 6) -* all header information, object file: objdump. (line 364) -* ar: ar. (line 6) -* ar compatibility: ar. (line 40) -* architecture: objdump. (line 176) -* architectures available: objdump. (line 161) -* archive contents: ranlib. (line 6) -* archive headers: objdump. (line 60) -* archives: ar. (line 6) -* base files: dlltool. (line 108) -* bug criteria: Bug Criteria. (line 6) -* bug reports: Bug Reporting. (line 6) -* bugs: Reporting Bugs. (line 6) -* bugs, reporting: Bug Reporting. (line 6) -* c++filt: c++filt. (line 6) -* changing object addresses: objcopy. (line 275) -* changing section address: objcopy. (line 285) -* changing section LMA: objcopy. (line 293) -* changing section VMA: objcopy. (line 306) -* changing start address: objcopy. (line 270) -* collections of files: ar. (line 6) -* compatibility, ar: ar. (line 40) -* contents of archive: ar cmdline. (line 88) -* crash: Bug Criteria. (line 9) -* creating archives: ar cmdline. (line 127) -* cxxfilt: c++filt. (line 14) -* dates in archive: ar cmdline. (line 154) -* debug symbols: objdump. (line 319) -* debugging symbols: nm. (line 116) -* deleting from archive: ar cmdline. (line 26) -* demangling C++ symbols: c++filt. (line 6) -* demangling in nm: nm. (line 124) -* demangling in objdump <1>: addr2line. (line 55) -* demangling in objdump: objdump. (line 88) -* disassembling object code: objdump. (line 110) -* disassembly architecture: objdump. (line 176) -* disassembly endianness: objdump. (line 126) -* disassembly, with source: objdump. (line 305) -* discarding symbols: strip. (line 6) -* DLL: dlltool. (line 6) -* dlltool: dlltool. (line 6) -* DWARF: objdump. (line 319) -* dynamic relocation entries, in object file: objdump. (line 294) -* dynamic symbol table entries, printing: objdump. (line 348) -* dynamic symbols: nm. (line 136) -* ELF dynamic section information: readelf. (line 102) -* ELF file header information: readelf. (line 51) -* ELF file information: readelf. (line 6) -* ELF notes: readelf. (line 87) -* ELF object file format: objdump. (line 324) -* ELF program header information: readelf. (line 57) -* ELF reloc information: readelf. (line 91) -* ELF section group information: readelf. (line 68) -* ELF section information: readelf. (line 63) -* ELF segment information: readelf. (line 57) -* ELF symbol table information: readelf. (line 78) -* ELF version sections informations: readelf. (line 106) -* endianness: objdump. (line 126) -* error on valid input: Bug Criteria. (line 12) -* external symbols: nm. (line 148) -* extract from archive: ar cmdline. (line 103) -* fatal signal: Bug Criteria. (line 9) -* file name: nm. (line 110) -* header information, all: objdump. (line 364) -* input .def file: dlltool. (line 104) -* input file name: nm. (line 110) -* libraries: ar. (line 25) -* listings strings: strings. (line 6) -* machine instructions: objdump. (line 110) -* moving in archive: ar cmdline. (line 34) -* MRI compatibility, ar: ar scripts. (line 8) -* name duplication in archive: ar cmdline. (line 97) -* name length: ar. (line 18) -* nm: nm. (line 6) -* nm compatibility: nm. (line 120) -* nm format: nm. (line 120) -* not writing archive index: ar cmdline. (line 173) -* objdump: objdump. (line 6) -* object code format <1>: addr2line. (line 50) -* object code format <2>: strings. (line 66) -* object code format <3>: size. (line 84) -* object code format <4>: objdump. (line 74) -* object code format: nm. (line 212) -* object file header: objdump. (line 132) -* object file information: objdump. (line 6) -* object file sections: objdump. (line 300) -* object formats available: objdump. (line 161) -* operations on archive: ar cmdline. (line 22) -* printing from archive: ar cmdline. (line 46) -* printing strings: strings. (line 6) -* quick append to archive: ar cmdline. (line 54) -* radix for section sizes: size. (line 66) -* ranlib: ranlib. (line 6) -* readelf: readelf. (line 6) -* relative placement in archive: ar cmdline. (line 115) -* relocation entries, in object file: objdump. (line 288) -* removing symbols: strip. (line 6) -* repeated names in archive: ar cmdline. (line 97) -* replacement in archive: ar cmdline. (line 70) -* reporting bugs: Reporting Bugs. (line 6) -* scripts, ar: ar scripts. (line 8) -* section addresses in objdump: objdump. (line 66) -* section headers: objdump. (line 143) -* section information: objdump. (line 166) -* section sizes: size. (line 6) -* sections, full contents: objdump. (line 300) -* size: size. (line 6) -* size display format: size. (line 27) -* size number format: size. (line 66) -* sorting symbols: nm. (line 167) -* source code context: objdump. (line 136) -* source disassembly: objdump. (line 305) -* source file name: nm. (line 110) -* source filenames for object files: objdump. (line 170) -* stab: objdump. (line 324) -* start-address: objdump. (line 334) -* stop-address: objdump. (line 338) -* strings: strings. (line 6) -* strings, printing: strings. (line 6) -* strip: strip. (line 6) -* symbol index <1>: ranlib. (line 6) -* symbol index: ar. (line 28) -* symbol index, listing: nm. (line 182) -* symbol line numbers: nm. (line 152) -* symbol table entries, printing: objdump. (line 343) -* symbols: nm. (line 6) -* symbols, discarding: strip. (line 6) -* undefined symbols: nm. (line 217) -* Unix compatibility, ar: ar cmdline. (line 8) -* unwind information: readelf. (line 96) -* updating an archive: ar cmdline. (line 180) -* version: Top. (line 6) -* VMA in objdump: objdump. (line 66) -* wide output, printing: objdump. (line 370) -* writing archive index: ar cmdline. (line 167) - - - -Tag Table: -Node: Top1785 -Node: ar3412 -Node: ar cmdline5590 -Node: ar scripts13733 -Node: nm19421 -Node: objcopy27616 -Node: objdump53142 -Node: ranlib68108 -Node: size68863 -Node: strings71868 -Node: strip74246 -Node: c++filt80196 -Ref: c++filt-Footnote-185120 -Node: addr2line85226 -Node: nlmconv88497 -Node: windmc91103 -Node: windres94824 -Node: dlltool100851 -Node: def file format111688 -Node: readelf113426 -Node: Common Options118133 -Node: Selecting The Target System119173 -Node: Target Selection120105 -Node: Architecture Selection122087 -Node: Reporting Bugs122915 -Node: Bug Criteria123694 -Node: Bug Reporting124247 -Node: GNU Free Documentation License131117 -Node: Binutils Index150858 - -End Tag Table diff --git a/binutils/po/da.gmo b/binutils/po/da.gmo deleted file mode 100644 index 8f9b965b6edf3be9e4c3fea6be8d4dc76563f2d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80846 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 diff --git a/binutils/po/es.gmo b/binutils/po/es.gmo deleted file mode 100644 index f5f43fabe671ab0db94778c895de83726d1b429c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137588 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 diff --git a/binutils/po/fi.gmo b/binutils/po/fi.gmo deleted file mode 100644 index a684f4ba1b5a70546a72e042a5fc4d4f727b91bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 140922 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

%9>r^dk50jr4Ns9lp1daAMD>m$PBqRR)@N0F&w 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≪iIqNj5r8PSfupYdE(<@%dL^|~)_f1TF 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 G@&63~10YTS diff --git a/binutils/po/uk.gmo b/binutils/po/uk.gmo deleted file mode 100644 index 6cd6aa15ee07b7a87db63759829e6d4950797df4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 172392 zcmdp<33yy({qHA%0xkPmc1~N`rjY4E=|V|L)1;+^ZZv5Nl+sR;NisCagqfsGY>`!D z6J!xk7G+ZeludSJS5O26Sq0euf80)G!@!nffR zIR5ZhY#eNd~9B-{t}bT}4vL52H6sC4}S%D>N{{4ZN(=JTNR*FfdVkKiPDJCuL#!trp}krt07 z(B%WHL;rfX3*2xyae)D>hNIzhn1NOB7FY>ChH^h)MJz_v#@0aj|0J9YH%VB&SHUT$ zkAc#^9m@arpwjatRQk*6V==NkHXZU8yO@7F%N*_ncW#KqHi9$YU^oX>z(%NWFY|l~ zD!hS>vDg?`18ZO>R6g7R_l0jmQrB?Md0H&?6S%{-@qeRO?7{EEViaxct&6zfAs1V{-TxA+ z=S^@B`e#9f|2?=HycLdsPr@{Y1z{s`^?x4jZs2ggIHCqvmk6iPmXF}soLW1;+C>iJEm_}&c5;2)ss%jaHQ{$s0mi{NPV*TT)< zwXhoA4wc`ZL&@cN*I2r*hN?F&K;`?OYc2kh;55`JI2B$4oVz7F0bxA3AvohogQC zZV3loAB$}PcY+G945~dG2nWLXP~~_SlssyO3jc>*{Q^7y^>#N{`s?8KsE>zZ;RSGS z_%KvG`4CE8mfdLflW>33=Rl?JF*pWpaFgZBc&PBc0r!G;L7D#<9tn52+0xks6~DD` zI{XTAql-a2mVq50oSBGf(0M^_5Rsy{~=7+D{se zME_){_VH7=Df}%|{yht~gMatj;908&JHkQe&xES)hd|luf*ZoqAkm4P<<;jxwbu)w z%JX`-GrR-t2%m(KckjS0;l|HddWl)8{7px3>EI{a3{F+pRE1t4R=Ld36;NxL)lNmJ>lt4 z<#z*A{GNqsNAE)A>z7dJ*zrZHU*nkue^4}i+Qg;3?#1Qp-4Fn||$ z-VRl7o`b3%uR+D<11S3?ub98PLiszztLH-H!%Da{JPE3N&WFmcJD|dU9I9Tu0cHO^ zD1QgNYVjHl72f`yv!U{NiB~s4#j6vJg(pF!`xdwxd;-e-yHN4?!kcgPnw4i94n=>q zXDgKbv!LQ}36#9N9je~F2vzc&Ku}8!DgQg9>NEKYRC3_9wxKa1k60&w%6LU2sqM4ph9h zdDGkvgQ|CxQ1PsTst+BWCwpG(c@vz9`NMDs-1sjR{wS#aXgZt@&wzWt-$B*Ke|T>3 zmbr^VmG^w8a9g0nEV5pD&?d}Q)$8dP~41l8^uq4H@hRK5HjRQzs+ zsz-l>+rt6>H0}abAI3q|!)0(o_zkG`dK#PvAA<7l3%Dg5{ITWFNH_uYeo*<6hWo

<<-Q3d(*DR5%xU_03TBpMc}x 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 z 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

  • Gq;S#7Eo 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ͥ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" - (cond "ptr->mt != MTYPE_ABS_LM" - (("unit appearance number") (2 bytes) ("uan")) - (("section appearance number") (2 bytes) ("sa"))) - (cond "segmented_p" - (("segment address") (segsize bytes) ("sad"))) - (("address") (addrsize bytes) ("address"))) - (("os name") (chars variable bytes) ("os")) - (("sys name") (chars variable bytes) ("sys")) - (("module name") (chars variable bytes) ("mn")) - (("cpu") (chars variable bytes) ("cpu"))) - - -("hs" 0x05 - (("neg number") (2 bytes) ("neg"))) - - -("un" 0x06 - (("format") (2 bits) ("format") - (("FORMAT_LM" "0") - ("FORMAT_OM" "1") - ("FORMAT_OMS_OR_LMS" "2"))) - (("spare") (6 bits) ("spare1")) - (("number of sections") (2 bytes) ("nsections")) - (("number of external refs") (2 bytes) ("nextrefs")) - (("number of external defs") (2 bytes) ("nextdefs")) - (("unit name") (chars variable byte) ("name")) - (("tool name") (chars variable byte) ("tool")) - (("creation date") (chars 12 bytes) ("tcd")) - (("linker name") (chars variable byte) ("linker")) - (("creation date") (chars 12 bytes) ("lcd"))) - - -("us" 0x07 - (("negotiation number") (2 bytes) ("neg"))) - - -("sc" 0x08 - (("format") (2 bits) ("format")) - (("spare") (6 bits) ("spare")) - (("segment address") (segsize bytes) ("segadd")) - (("address") (addrsize bytes) ("addr")) - (("length") (addrsize bytes) ("length")) - (("alignment") (addrsize bytes) ("align")) - (("contents") (4 bits) ("contents") - (("CONTENTS_CODE" "0") - ("CONTENTS_DATA" "1") - ("CONTENTS_STACK" "2") - ("CONTENTS_DUMMY" "3") - ("CONTENTS_SPECIAL" "4") - ("CONTENTS_NONSPEC" "0xf"))) - (("concat") (4 bits) ("concat") - (("CONCAT_SIMPLE" "0") - ("CONCAT_SHAREDC" "1") - ("CONCAT_DUMMY" "2") - ("CONCAT_GROUP" "3") - ("CONCAT_SHARED" "4") - ("CONCAT_PRIVATE" "5") - ("CONCAT_UNSPEC" "0xf"))) - (("read") (2 bits) ("read")) - (("write") (2 bits) ("write")) - (("exec") (2 bits) ("exec")) - (("initialized") (2 bits) ("init")) - (("mode") (2 bits) ("mode")) - (("spare") (6 bits) ("spare1")) - (("name") (chars variable byte) ("name"))) - - -("ss" 0x09 - (("neg number") (2 bytes) ("neg"))) - - -("er" 0x0c - (("symbol type") (2 bits) ("type") - (("ER_ENTRY" "0") - ("ER_DATA" "1") - ("ER_NOTDEF" "2") - ("ER_NOTSPEC" "3"))) - (("spare") (6 bits) ("spare")) - (("symbol name") (chars variable byte) ("name"))) - - -("ed" 0x14 - (("section appearance number") (2 bytes) ("section")) - (("symbol type") (3 bits) ("type") - (("ED_TYPE_ENTRY" "0") - ("ED_TYPE_DATA" "1") - ("ED_TYPE_CONST" "2") - ("ED_TYPE_NOTSPEC" "7"))) - (("spare") (5 bits) ("spare")) - (cond "ptr->type==ED_TYPE_ENTRY || ptr->type==ED_TYPE_DATA" - (("symbol address") (addrsize bytes) ("address"))) - (cond "ptr->type==ED_TYPE_CONST" - (("constant value") (addrsize bytes) ("constant"))) - (("symbol name") (chars variable byte) ("name"))) - - -("sh" 0x1a - (("unit appearance number") (2 bytes) ("unit")) - (("section appearance number") (2 bytes) ("section"))) - - -("ob" 0x1c - (("starting address flag") (1 bit) ("saf")) - (("compression flag") (1 bit) ("cpf")) - (("spare") (6 bits) ("spare")) - (cond "ptr->saf" - ( ("starting address") (addrsize bytes) ("address"))) - (cond "ptr->cpf" - (("comp reps") (addrsize bytes) ("compreps"))) - (("data") (barray counted byte) ("data"))) - - -("rl" 0x20 - (("boundary of relocatable area") (4 bits) ("boundary")) - (("address polarity") (1 bit) ("apol")) - (("segment number") (1 bit) ("segment")) - (("sign of relocation") (1 bit) ("sign")) - (("check range") (1 bit) ("check")) - (("reloc address") (addrsize bytes) ("addr")) - - (("bit loc") (1 byte) ("bitloc")) - (("field length") (1 byte) ("flen")) - (("bcount") (1 byte) ("bcount")) - (("operator") (1 byte) ("op") - (("OP_RELOC_ADDR" "1") - ("OP_SEC_REF" "0") - ("OP_EXT_REF" "2"))) - (cond "ptr->op == OP_EXT_REF" - (("symbol number") (2 bytes) ("symn")) ) - - (cond "ptr->op == OP_SEC_REF" - (("section number") (2 bytes) ("secn")) - (("const opcode") (1 byte) ("copcode_is_3")) - (("addend length") (1 byte) ("alength_is_4")) - (("addend") (4 byte) ("addend")) - (("plus opcode") (1 byte) ("aopcode_is_0x20"))) - - (cond "ptr->op == OP_RELOC_ADDR" - (("dunno") (2 bytes) ("dunno"))) - - (("end") (1 byte) ("end"))) - - -("du" 0x30 - (("format") (2 bits) ("format")) - (("optimized") (1 bit) ("optimized")) - (("stackfrmt") (2 bits) ("stackfrmt")) - (("spare") (3 bits) ("spare")) - (("unit number") (2 bytes) ("unit")) - (("sections") (2 bytes) ("sections")) - (repeat "ptr->sections" - (("section appearance number") (2 bytes) ("san")) - (("address") (addrsize bytes) ("address")) - (("section length") (addrsize bytes) ("length"))) - (("tool name") (chars variable byte) ("tool")) - (("creation date") (chars 12 bytes) ("date"))) - - -("dsy" 0x34 - (("symbol type") (7 bits) ("type") - (("STYPE_VAR" "0") - ("STYPE_LAB" "1") - ("STYPE_PROC" "2") - ("STYPE_FUNC" "3") - ("STYPE_TYPE" "4") - ("STYPE_CONST" "5") - ("STYPE_ENTRY" "6") - ("STYPE_MEMBER" "7") - ("STYPE_ENUM" "8") - ("STYPE_TAG" "9") - ("STYPE_PACKAGE" "10") - ("STYPE_GENERIC" "11") - ("STYPE_TASK" "12") - ("STYPE_EXCEPTION" "13") - ("STYPE_PARAMETER" "14") - ("STYPE_EQUATE" "15") - ("STYPE_UNSPEC" "0x7f"))) - (("assignment info") (1 bit) ("assign")) - (("symbol id") (2 bytes) ("snumber")) - (("symbol name") (chars variable bytes) ("sname")) - (("nesting level") (2 bytes) ("nesting")) - (cond "ptr->assign" - (("assignment type") (1 byte) ("ainfo") - (("AINFO_REG" "1") - ("AINFO_STATIC_EXT_DEF" "2") - ("AINFO_STATIC_EXT_REF" "3") - ("AINFO_STATIC_INT" "4") - ("AINFO_STATIC_COM" "5") - ("AINFO_AUTO" "6") - ("AINFO_CONST" "7") - ("AINFO_UNSPEC" "0xff"))) - (("data length") (addrsize bytes) ("dlength")) - (cond "ptr->ainfo == AINFO_STATIC_EXT_DEF - || ptr->ainfo == AINFO_STATIC_INT - || ptr->ainfo == AINFO_STATIC_COM" - (("section number") (2 bytes) ("section"))) - (cond "ptr->ainfo == AINFO_STATIC_EXT_DEF - || ptr->ainfo == AINFO_STATIC_INT - || ptr->ainfo == AINFO_STATIC_COM - || ptr->ainfo == AINFO_AUTO" - (("address") (addrsize bytes) ("address"))) - (cond "ptr->ainfo == AINFO_REG" - (("register name") (chars variable bytes) ("reg"))) - (cond "ptr->ainfo == AINFO_STATIC_EXT_DEF - || ptr->ainfo == AINFO_STATIC_EXT_REF" - (("external name") (chars variable bytes) ("ename"))) - (cond "ptr->ainfo == AINFO_CONST" - (("constant") (chars variable bytes) ("constant")))) - (cond "ptr->type == STYPE_MEMBER" - (("assignment unit") (1 bit) ("bitunit")) - (("spare") (7 bits) ("spare2")) - (("field length") (addrsize bytes) ("field_len")) - (("field offset") (addrsize bytes) ("field_off")) - (cond "ptr->bitunit" - (("bit offset") (addrsize bytes) ("field_bitoff")))) - (cond "ptr->type== STYPE_ENUM" - (("value length") (1 byte) ("evallen")) - (("value") (4 bytes) ("evalue"))) - (cond "ptr->type == STYPE_CONST" - (("value") (chars variable bytes) ("cvalue"))) - (cond "ptr->type == STYPE_EQUATE" - (("value length") (1 byte) ("qvallen")) - (("value") (4 bytes) ("qvalue")) - (("basic type") (1 byte) ("btype")) - (("size information") (addrsize bytes) ("sizeinfo")) - (("sign") (2 bits) ("sign")) - (("floating point type") (6 bits) ("flt_type"))) - (("source file number") (2 bytes) ("sfn")) - (("source line number") (2 bytes) ("sln")) - (("negotiation number") (2 bytes) ("neg")) - (cond "ptr->type == STYPE_TAG" - (("magic") (1 byte) ("magic")))) - - - -("dul" 0x52 - (("max declaration type flag") (1 bit) ("max_variable")) - (("max spare") (7 bits) ("maxspare")) - (cond "ptr->max_variable == 0" - (("maximum") (addrsize bytes) ("max")) - (("max mode") (chars variable bytes) ("maxmode"))) - - (("min declaration type flag") (1 bit) ("min_variable")) - (("min spare") (7 bits) ("minspare")) - (cond "ptr->min_variable == 0" - (("minimum") (addrsize bytes) ("min")) - (("min mode") (chars variable bytes) ("minmode")))) - - -("dty" 0x36 - (("end flag") (1 bit) ("end")) - (("spare") (7 bits) ("spare")) - (cond "!ptr->end" - (("negotiation") (2 bytes) ("neg")))) - - -("dbt" 0x44 - (("basic type") (1 byte) ("btype") - (("BTYPE_VOID" "0") - ("BTYPE_UNDEF" "1") - ("BTYPE_CHAR" "2") - ("BTYPE_INT" "3") - ("BTYPE_FLOAT" "4") - ("BTYPE_BIT" "5") - ("BTYPE_STRING" "6") - ("BTYPE_DECIMAL" "7") - ("BTYPE_ENUM" "8") - ("BTYPE_STRUCT" "9") - ("BTYPE_TYPE" "10") - ("BTYPE_TAG" "11") - ("BTYPE_UNSPEC" "0xff"))) - (("size info") (addrsize bytes) ("bitsize")) - (("sign") (2 bits) ("sign") - (("SIGN_SIGNED" "0") - ("SIGN_UNSIGNED" "1") - ("SIGN_UNSPEC" "3"))) - (("floating point type") (6 bits) ("fptype") - (("FPTYPE_SINGLE" "0") - ("FPTYPE_DOUBLE" "1") - ("FPTYPE_EXTENDED" "2") - ("FPTYPE_NOTSPEC" "0x3f"))) - (cond "ptr->btype==BTYPE_TAG || ptr->btype == BTYPE_TYPE" - (("symbol id") (2 bytes) ("sid"))) - (("negotiation") (2 bytes) ("neg"))) - -("dar" 0x4e - (("element length" ) (addrsize bytes) ("length")) - (("dims") (1 byte) ("dims")) - (repeat "ptr->dims" - (("variable flag") (1 bit) ("variable") - (("VARIABLE_FIXED" "0") - ("VARIABLE_VARIABLE" "1"))) - - (("subscript type") (1 bit) ("subtype") - (("SUB_INTEGER" "0") - ("SUB_TYPE" "1"))) - - (("spare") (6 bits) ("spare")) - - (cond "ptr->subtype[n] == SUB_TYPE" - (("sub symbol id") (2 bytes) ("sid"))) - - (cond "ptr->subtype[n] == SUB_INTEGER" - (("max declaration type flag") (1 bit) ("max_variable")) - (("max spare") (7 bits) ("maxspare")) - ;; FIXME: next field should be conditional on max_variable, - (("maximum") (addrsize bytes) ("max")) - - (("min declaration type flag") (1 bit) ("min_variable")) - (("min spare") (7 bits) ("minspare")) - ;; FIXME: next field should be conditional on min_variable - (("minimum") (addrsize bytes) ("min")))) - (("negotiation") (2 bytes) ("neg"))) - - -("dso" 0x3a - (("function name") (2 bytes) ("sid")) - (("sp update count") (4 bytes) ("spupdates")) - (repeat "ptr->spupdates" - (("update address") (addrsize bytes) ("address")) - (("offset") (addrsize bytes) ("offset")))) - -("dln" 0x38 - (("number of lines") (2 bytes) ("nln")) - (repeat "ptr->nln" - (("source file number") (2 bytes) ("sfn")) - (("source line number") (2 bytes) ("sln")) - (("section number") (2 bytes) ("section")) - (("from address") (addrsize bytes) ("from_address")) - (("to address") (addrsize bytes) ("to_address")) - (("call count") (2 bytes) ("cc")) - ) - (("neg") (2 bytes) ("neg"))) - -("dpp" 0x46 - (("start/end") (1 bit) ("end")) - (("spare") (7 bits) ("spare")) - (cond "!ptr->end" - (("params") (1 byte) ("params")) - (("neg number") (2 bytes) ("neg")))) - -("den" 0x4a - (("start/end") (1 bit) ("end")) - (("spare") (7 bits) ("spare")) - (cond "!ptr->end" - (("neg number") (2 bytes) ("neg")))) - -("dfp" 0x48 - (("start/end flag") (1 bit) ("end")) - (("spare") (7 bits) ("spare")) - (cond "!ptr->end" - (("number of parameters") (1 byte) ("nparams")) - (("neg number") (2 bytes) ("neg")))) - -("dds" 0x4c - (("start/end") (1 bit) ("end")) - (("spare") (7 bits) ("spare")) - (cond "!ptr->end" - (("neg number") (2 bytes) ("neg")))) - -("dpt" 0x50 - (("neg number") (2 bytes) ("neg")) - (("dunno") (1 byte) ("dunno"))) - -("dse" 0x54 - (("neg number") (2 bytes) ("neg")) - (("dunno") (1 byte) ("dunno"))) - -("dot" 0x56 - (("unknown") (1 byte) ("unknown"))) -; FIXME: unknown field should be repeated symbol number? - - -("dss" 0x42 - (("type") (1 byte) ("type")) - (("external/internal") (1 bit) ("internal")) - (("spare") (7 bits) ("spare")) - (cond "!ptr->internal" - ( ("package name") (chars variable byte) ("package"))) - (cond "ptr->internal" - (("symbol id") (2 bytes) ("id"))) - (("record type") (2 bytes) ("record")) - (("rules") (chars variable byte) ("rules")) - (("number of symbols") (2 bytes) ("nsymbols")) - (("unknown" ) (2 bytes) ("fixme"))) - -("pss" 0x40 - (("negotiation number") (2 bytes) ("efn")) - (("number of source files") (2 bytes) ("ns")) - (repeat "ptr->ns" - (("directory reference bit") (1 bit) ("drb")) - (("spare") (7 bits) ("spare")) - (("completed file name") (chars variable byte) ("fname")) - (cond "ptr->drb[n]" - (("directory apperance number") (2 bytes) ("dan")))) - - (("number of directories") (2 bytes) ("ndir")) - (repeat "ptr->ndir" - (("directory name") (chars variable bytes) ("dname")))) - - -; FIXME: the tr block has no contents. sysinfo, etc. aren't prepared -; to deal with that. -; ("tr" 0x7f) - - -("dus" 0x40 - (("negotiation number") (2 bytes) ("efn")) - (("number of source files") (2 bytes) ("ns")) - (repeat "ptr->ns" - (("directory reference bit") (1 bit) ("drb")) - (("spare") (7 bits) ("spare")) - (("completed file name") (chars variable byte) ("fname")) - (cond "ptr->drb[n]" - (("directory apperance number") (2 bytes) ("dan")))) - (("number of directories") (2 bytes) ("ndir")) - (repeat "ptr->ndir" - (("directory name") (chars variable bytes) ("dname")))) - - -("dps" 0x32 - (("start/end flag") (1 bit) ("end")) - (("block type") (7 bits) ("type") - (("BLOCK_TYPE_COMPUNIT" "0") - ("BLOCK_TYPE_PROCEDURE" "2") - ("BLOCK_TYPE_FUNCTION" "3") - ("BLOCK_TYPE_BLOCK" "4") - ("BLOCK_TYPE_BASIC" "9"))) - (cond "!ptr->end" - (("optimization") (1 byte) ("opt")) - (("section number") (2 bytes) ("san")) - (("address") (addrsize bytes) ("address")) - (("block size") (addrsize bytes) ("block_size")) - (("nesting") (1 byte) ("nesting")) - (cond "ptr->type == BLOCK_TYPE_PROCEDURE - || ptr->type == BLOCK_TYPE_FUNCTION" - (("return address") (1 bit) ("retaddr")) - (("interrupt function flag") (1 bit) ("intrflag")) - (("stack update flag") (1 bit) ("stackflag")) - (("intra page JMP") (1 bit) ("intrpagejmp")) - (("spare") (4 bits) ("spare"))) - (("neg number") (2 bytes) ("neg")))) - diff --git a/etc/configure.info b/etc/configure.info deleted file mode 100644 index 78cc7eb..0000000 --- a/etc/configure.info +++ /dev/null @@ -1,2773 +0,0 @@ -This is configure.info, produced by makeinfo version 4.8 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'. The equivalent html files are -also built and installed in a separate step. To build the html files, -run `make html'. To install the html files run `make install-html'. - - 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 Started10567 -Node: Write configure.in11080 -Node: Write Makefile.am18331 -Node: Write acconfig.h21508 -Node: Generate files23045 -Node: Getting Started Example25011 -Node: Getting Started Example 125766 -Node: Getting Started Example 227687 -Node: Getting Started Example 330682 -Node: Generate Files in Example33046 -Node: Files34136 -Node: Developer Files34747 -Node: Developer Files Picture35127 -Node: Written Developer Files36415 -Node: Generated Developer Files38967 -Node: Build Files42111 -Node: Build Files Picture42772 -Node: Build Files Description43536 -Node: Support Files45542 -Node: Configuration Names48424 -Node: Configuration Name Definition48924 -Node: Using Configuration Names51247 -Node: Cross Compilation Tools53217 -Node: Cross Compilation Concepts53908 -Node: Host and Target54876 -Node: Using the Host Type56377 -Node: Specifying the Target57726 -Node: Using the Target Type58515 -Node: Cross Tools in the Cygnus Tree61946 -Node: Host and Target Libraries63003 -Node: Target Library Configure Scripts66752 -Node: Make Targets in Cygnus Tree69844 -Node: Target libiberty71192 -Node: Canadian Cross72579 -Node: Canadian Cross Example73420 -Node: Canadian Cross Concepts74539 -Node: Build Cross Host Tools76051 -Node: Build and Host Options77003 -Node: CCross not in Cygnus Tree78789 -Node: CCross in Cygnus Tree79767 -Node: Standard Cygnus CCross80188 -Node: Cross Cygnus CCross81552 -Node: Supporting Canadian Cross84352 -Node: CCross in Configure84967 -Node: CCross in Make88135 -Node: Cygnus Configure89738 -Node: Cygnus Configure Basics90573 -Node: Cygnus Configure in C++ Libraries95251 -Node: Multilibs96258 -Node: Multilibs in gcc97303 -Node: Multilibs in Target Libraries98381 -Node: FAQ102572 -Node: Index106672 - -End Tag Table diff --git a/etc/standards.info b/etc/standards.info deleted file mode 100644 index 4fc9776..0000000 --- a/etc/standards.info +++ /dev/null @@ -1,4930 +0,0 @@ -This is standards.info, produced by makeinfo version 4.8 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.info b/gas/doc/as.info deleted file mode 100644 index 1508db6..0000000 --- a/gas/doc/as.info +++ /dev/null @@ -1,19168 +0,0 @@ -This is as.info, produced by makeinfo version 4.8 from 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, -2006, 2007 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' (GNU Binutils) -version 2.17.90. - - 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 -* AS Index:: AS 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, see *Note -Command-Line Options: Invoking. - - as [-a[cdhlns][=FILE]] [-alternate] [-D] - [-debug-prefix-map OLD=NEW] - [-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] [-reduce-memory-overheads] [-statistics] - [-v] [-version] [-version] [-W] [-warn] - [-fatal-warnings] [-w] [-x] [-Z] [@FILE] - [-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] - [-march=CPU] [-mtune=CPU] - - _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] - [-mtune=itanium1|-mtune=itanium2] - [-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 M32C options:_ - [-m32c|-m16c] - - _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-branches] [-short-branches] - [-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 [-mvxworks-pic] - [-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] - [-msmartmips] [-mno-smartmips] - [-mips3d] [-no-mips3d] - [-mdmx] [-no-mdmx] - [-mdsp] [-mno-dsp] - [-mdspr2] [-mno-dspr2] - [-mmt] [-mno-mt] - [-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 Z80 options:_ - [-z80] [-r800] - [ -ignore-undocumented-instructions] [-Wnud] - [ -ignore-unportable-instructions] [-Wnup] - [ -warn-undocumented-instructions] [-Wud] - [ -warn-unportable-instructions] [-Wup] - [ -forbid-undocumented-instructions] [-Fud] - [ -forbid-unportable-instructions] [-Fup] - - - _Target Xtensa options:_ - [-[no-]text-section-literals] [-[no-]absolute-literals] - [-[no-]target-align] [-[no-]longcalls] - [-[no-]transform] - [-rename-section OLDNAME=NEWNAME] - -`@FILE' - Read command-line options from FILE. The options read are - inserted in place of the original @FILE option. If FILE does not - exist, or cannot be read, then the option will be treated - literally, and not removed. - - Options in FILE are separated by whitespace. A whitespace - character may be included in an option by surrounding the entire - option in either single or double quotes. Any character - (including a backslash) may be included by prefixing the character - to be included with a backslash. The FILE may itself contain - additional @FILE options; any such options will be processed - recursively. - -`-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. *Note `.altmacro': Altmacro. - -`-D' - Ignored. This option is accepted for script compatibility with - calls to other assemblers. - -`--debug-prefix-map OLD=NEW' - When assembling files in directory `OLD', record debugging - information describing them as in `NEW' instead. - -`--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. The value of the symbol can be overridden inside a source - file via the use of a `.set' pseudo-op. - -`-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. These symbols start with - system-specific local label prefixes, typically `.L' for ELF - systems or `L' for traditional a.out systems. *Note Symbol - Names::. - -`--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. - - Set the default size of GAS's hash tables to a prime number close - to NUMBER. Increasing this value can reduce the length of time it - takes the assembler to perform its tasks, at the expense of - increasing the assembler's memory requirements. Similarly - reducing this value can reduce the memory requirements at the - expense of speed. - -`--reduce-memory-overheads' - This option reduces GAS's memory requirements, at the expense of - making the assembly processes slower. Currently this switch is a - synonym for `--hash-size=4051', but in the future it may have - other effects as well. - -`--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 M32C and M16C processors. - -`-m32c' - Assemble M32C instructions. - -`-m16c' - Assemble M16C instructions (the default). - - - 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-branches' - Relative branches are turned into absolute ones. This concerns - conditional branches, unconditional branches and branches to a sub - routine. - -`-S | --short-branches' - Do not turn relative branches 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. - -`-msmartmips' -`-mno-smartmips' - Enables the SmartMIPS extension to the MIPS32 instruction set. - This is equivalent to putting `.set smartmips' at the start of the - assembly file. `-mno-smartmips' 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. - -`-mdsp' -`-mno-dsp' - Generate code for the DSP Release 1 Application Specific Extension. - This tells the assembler to accept DSP Release 1 instructions. - `-mno-dsp' turns off this option. - -`-mdspr2' -`-mno-dspr2' - Generate code for the DSP Release 2 Application Specific Extension. - This option implies -mdsp. This tells the assembler to accept DSP - Release 2 instructions. `-mno-dspr2' turns off this option. - -`-mmt' -`-mno-mt' - Generate code for the MT Application Specific Extension. This - tells the assembler to accept MT instructions. `-mno-mt' 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. - - The following options are available when as is configured for a Z80 -family processor. -`-z80' - Assemble for Z80 processor. - -`-r800' - Assemble for R800 processor. - -`-ignore-undocumented-instructions' -`-Wnud' - Assemble undocumented Z80 instructions that also work on R800 - without warning. - -`-ignore-unportable-instructions' -`-Wnup' - Assemble all undocumented Z80 instructions without warning. - -`-warn-undocumented-instructions' -`-Wud' - Issue a warning for undocumented Z80 instructions that also work - on R800. - -`-warn-unportable-instructions' -`-Wup' - Issue a warning for undocumented Z80 instructions that do not work - on R800. - -`-forbid-undocumented-instructions' -`-Fud' - Treat all undocumented instructions as errors. - -`-forbid-unportable-instructions' -`-Fup' - Treat undocumented Z80 instructions that do not work on R800 as - errors. - -* 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'. 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; see *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 symbols -* 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 (e.g., -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 Symbols: `-L' -=============================== - -Symbols beginning with system-specific local label prefixes, typically -`.L' for ELF systems or `L' for traditional a.out systems, are called -"local symbols". *Note Symbol Names::. Normally you do not see such -symbols 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 symbols, so you do -not normally debug with them. - - This option tells `as' to retain those local symbols in the object -file. Usually if you do this you also tell the linker `ld' to preserve -those symbols. - - -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 directives inside the assembler source -(i.e., `.list' (*note List::), `.title' (*note Title::), `.sbttl' -(*note Sbttl::), `.psize' (*note Psize::), and `.eject' (*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 `;' -on the ARC; `@' on the ARM; `;' for the H8/300 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 m32c; `#' on the m32r; -`|' on the 680x0; `#' on the 68HC11 and 68HC12; `#' on the Vax; `;' for -the Z80; `!' 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; see *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, 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 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. -In the same way, using a double equals sign `='`=' here represents an -equivalent of the `.eqv' directive. *Note `.eqv': Eqv. - - -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 for a -particular target machine), and underscores. - -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 ------------------- - -A local symbol is any symbol beginning with certain local label -prefixes. By default, the local label prefix is `.L' for ELF systems or -`L' for traditional a.out systems, but each target may have its own set -of local label prefixes. On the HPPA local symbols begin with `L$'. - - Local symbols are defined and used within the assembler, but they are -normally not saved in object files. Thus, they are not visible when -debugging. You may use the `-L' option (*note Include Local Symbols: -`-L': L.) to retain the local symbols in the object files. - -Local Labels ------------- - -Local labels 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 label, write a label of the form `N:' -(where N represents any positive integer). To refer to the most recent -previous definition of that label 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 label names are only a notational device. They are immediately -transformed into more conventional symbol names before the assembler -uses them. The symbol names are stored in the symbol table, appear in -error messages, and are optionally emitted to the object file. The -names are constructed using these parts: - -`_local label prefix_' - All local symbols begin with the system-specific local label - prefix. Normally both `as' and `ld' forget symbols that start - with the local label prefix. 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 definition - gets `15' as well. - - So for example, the first `1:' may be named `.L1C-B1', and the 44th -`3:' may be 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 (i.e., 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, e.g., `55$'. - - They can also be distinguished from ordinary local labels by their -transformed names which use ASCII character `\001' (control-A) as the -magic character to distinguish them from ordinary labels. For example, -the fifth definition of `6$' may be 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 (COFF):: `.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 [simple]', `.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' -* Eqv:: `.eqv 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' - -* Linkonce:: `.linkonce [TYPE]' -* List:: `.list' -* Ln:: `.ln LINE-NUMBER' - -* LNS directives:: `.file', `.loc', etc. - -* 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, 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' -* Reloc:: `.reloc OFFSET, RELOC_NAME[, EXPRESSION]' -* 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' -* Weakref:: `.weakref ALIAS, SYMBOL' -* Word:: `.word EXPRESSIONS' -* Deprecated:: Deprecated Directives - - -File: as.info, Node: Abort, Next: ABORT (COFF), 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 (COFF), Next: Align, Prev: Abort, Up: Pseudo Ops - -7.2 `.ABORT' (COFF) -=================== - -When producing COFF output, `as' accepts this directive as a synonym -for `.abort'. - - -File: as.info, Node: Align, Next: Altmacro, Prev: ABORT (COFF), 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 arc, hppa, i386 using ELF, i860, iq2000, m68k, 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 [simple]' -============================= - -`.cfi_startproc' is used at the beginning of each function that should -have an entry in `.eh_frame'. It initializes some internal data -structures. Don't forget to close the function by `.cfi_endproc'. - - Unless `.cfi_startproc' is used along with parameter `simple' it -also emits some architecture dependent initial CFI instructions. - -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_personality ENCODING [, EXP]' -======================================== - -`.cfi_personality' defines personality routine and its encoding. -ENCODING must be a constant determining how the personality should be -encoded. If it is 255 (`DW_EH_PE_omit'), second argument is not -present, otherwise second argument should be a constant or a symbol -name. When using indirect encodings, the symbol provided should be the -location where personality can be loaded from, not the personality -routine itself. The default after `.cfi_startproc' is -`.cfi_personality 0xff', no personality routine. - -7.12 `.cfi_lsda ENCODING [, EXP]' -================================= - -`.cfi_lsda' defines LSDA and its encoding. ENCODING must be a constant -determining how the LSDA should be encoded. If it is 255 -(`DW_EH_PE_omit'), second argument is not present, otherwise second -argument should be a constant or a symbol name. The default after -`.cfi_startproc' is `.cfi_lsda 0xff', no LSDA. - -7.13 `.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.14 `.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.15 `.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.16 `.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.17 `.cfi_offset REGISTER, OFFSET' -=================================== - -Previous value of REGISTER is saved at offset OFFSET from CFA. - -7.18 `.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.19 `.cfi_register REGISTER1, REGISTER2' -========================================= - -Previous value of REGISTER1 is saved in register REGISTER2. - -7.20 `.cfi_restore REGISTER' -============================ - -`.cfi_restore' says that the rule for REGISTER is now the same as it -was at the beginning of the function, after all initial instruction -added by `.cfi_startproc' were executed. - -7.21 `.cfi_undefined REGISTER' -============================== - -From now on the previous value of REGISTER can't be restored anymore. - -7.22 `.cfi_same_value REGISTER' -=============================== - -Current value of REGISTER is the same like in the previous frame, i.e. -no restoration needed. - -7.23 `.cfi_remember_state', -=========================== - -First save all current rules for all registers by `.cfi_remember_state', -then totally screw them up by subsequent `.cfi_*' directives and when -everything is hopelessly bad, use `.cfi_restore_state' to restore the -previous saved state. - -7.24 `.cfi_return_column REGISTER' -================================== - -Change return column REGISTER, i.e. the return address is either -directly in REGISTER or can be accessed by rules for REGISTER. - -7.25 `.cfi_signal_frame' -======================== - -Mark current function as signal trampoline. - -7.26 `.cfi_window_save' -======================= - -SPARC register window has been saved. - -7.27 `.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: LNS directives, Next: Long, Prev: Ln, Up: Pseudo Ops - -7.28 `.file FILENO FILENAME' -============================ - -When emitting dwarf2 line number information `.file' assigns filenames -to the `.debug_line' file name table. The FILENO operand should be a -unique positive integer to use as the index of the entry in the table. -The FILENAME operand is a C string literal. - - The detail of filename indices is exposed to the user because the -filename table is shared with the `.debug_info' section of the dwarf2 -debugging information, and thus the user must know the exact indices -that table entries will have. - -7.29 `.loc FILENO LINENO [COLUMN] [OPTIONS]' -============================================ - -The `.loc' directive will add row to the `.debug_line' line number -matrix corresponding to the immediately following assembly instruction. -The FILENO, LINENO, and optional COLUMN arguments will be applied to -the `.debug_line' state machine before the row is added. - - The OPTIONS are a sequence of the following tokens in any order: - -`basic_block' - This option will set the `basic_block' register in the - `.debug_line' state machine to `true'. - -`prologue_end' - This option will set the `prologue_end' register in the - `.debug_line' state machine to `true'. - -`epilogue_begin' - This option will set the `epilogue_begin' register in the - `.debug_line' state machine to `true'. - -`is_stmt VALUE' - This option will set the `is_stmt' register in the `.debug_line' - state machine to `value', which must be either 0 or 1. - -`isa VALUE' - This directive will set the `isa' register in the `.debug_line' - state machine to VALUE, which must be an unsigned integer. - - -7.30 `.loc_mark_blocks ENABLE' -============================== - -The `.loc_mark_blocks' directive makes the assembler emit an entry to -the `.debug_line' line number matrix with the `basic_block' register in -the state machine set whenever a code label is seen. The ENABLE -argument should be either 1 or 0, to enable or disable this function -respectively. - - -File: as.info, Node: Data, Next: Def, Prev: CFI directives, Up: Pseudo Ops - -7.31 `.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.32 `.def NAME' -================ - -Begin defining debugging information for a symbol NAME; the definition -extends until the `.endef' directive is encountered. - - -File: as.info, Node: Desc, Next: Dim, Prev: Def, Up: Pseudo Ops - -7.33 `.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.34 `.dim' -=========== - -This directive is generated by compilers to include auxiliary debugging -information in the symbol table. It is only permitted inside -`.def'/`.endef' pairs. - - -File: as.info, Node: Double, Next: Eject, Prev: Dim, Up: Pseudo Ops - -7.35 `.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.36 `.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.37 `.else' -============ - -`.else' is part of the `as' support for conditional assembly; see *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.38 `.elseif' -============== - -`.elseif' is part of the `as' support for conditional assembly; see -*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.39 `.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.40 `.endef' -============= - -This directive flags the end of a symbol definition begun with `.def'. - - -File: as.info, Node: Endfunc, Next: Endif, Prev: Endef, Up: Pseudo Ops - -7.41 `.endfunc' -=============== - -`.endfunc' marks the end of a function specified with `.func'. - - -File: as.info, Node: Endif, Next: Equ, Prev: Endfunc, Up: Pseudo Ops - -7.42 `.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.43 `.equ SYMBOL, EXPRESSION' -============================== - -This directive sets the value of SYMBOL to EXPRESSION. It is -synonymous with `.set'; see *Note `.set': Set. - - The syntax for `equ' on the HPPA is `SYMBOL .equ EXPRESSION'. - - The syntax for `equ' on the Z80 is `SYMBOL equ EXPRESSION'. On the -Z80 it is an eror if SYMBOL is already defined, but the symbol is not -protected from later redefinition. Compare *Note Equiv::. - - -File: as.info, Node: Equiv, Next: Eqv, Prev: Equ, Up: Pseudo Ops - -7.44 `.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 - plus it protects the symbol from later redefinition. - - -File: as.info, Node: Eqv, Next: Err, Prev: Equiv, Up: Pseudo Ops - -7.45 `.eqv SYMBOL, EXPRESSION' -============================== - -The `.eqv' directive is like `.equiv', but no attempt is made to -evaluate the expression or any part of it immediately. Instead each -time the resulting symbol is used in an expression, a snapshot of its -current value is taken. - - -File: as.info, Node: Err, Next: Error, Prev: Eqv, Up: Pseudo Ops - -7.46 `.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 an error in conditionally compiled -code. - - -File: as.info, Node: Error, Next: Exitm, Prev: Err, Up: Pseudo Ops - -7.47 `.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.48 `.exitm' -============= - -Exit early from the current macro definition. *Note Macro::. - - -File: as.info, Node: Extern, Next: Fail, Prev: Exitm, Up: Pseudo Ops - -7.49 `.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.50 `.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.51 `.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. - - -File: as.info, Node: Fill, Next: Float, Prev: File, Up: Pseudo Ops - -7.52 `.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.53 `.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.54 `.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.55 `.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.56 `.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.57 `.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.58 `.ident' -============= - -This directive is used by some assemblers to place tags in object -files. The behavior of this directive varies depending on the target. -When using the a.out object file format, `as' simply accepts the -directive for source-file compatibility with existing assemblers, but -does not emit anything for it. When using COFF, comments are emitted -to the `.comment' or `.rdata' section, depending on the target. When -using ELF, comments are emitted to the `.comment' section. - - -File: as.info, Node: If, Next: Incbin, Prev: Ident, Up: Pseudo Ops - -7.59 `.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. - -`.ifb TEXT' - Assembles the following section of code if the operand is blank - (empty). - -`.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. - -`.ifnb TEXT' - Like `.ifb', but the sense of the test is reversed: this assembles - the following section of code if the operand is non-blank - (non-empty). - -`.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.60 `.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.61 `.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.62 `.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.63 `.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.64 `.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@- - - For some caveats with the spelling of SYMBOL, see also *Note Macro::. - - -File: as.info, Node: Irpc, Next: Lcomm, Prev: Irp, Up: Pseudo Ops - -7.65 `.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@- - - For some caveats with the spelling of SYMBOL, see also the discussion -at *Note Macro::. - - -File: as.info, Node: Lcomm, Next: Lflags, Prev: Irpc, Up: Pseudo Ops - -7.66 `.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.67 `.lflags' -============== - -`as' accepts this directive, for compatibility with other assemblers, -but ignores it. - - -File: as.info, Node: Line, Next: Linkonce, Prev: Lflags, Up: Pseudo Ops - -7.68 `.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. - - 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: Line, Up: Pseudo Ops - -7.69 `.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: LNS directives, Prev: List, Up: Pseudo Ops - -7.70 `.ln LINE-NUMBER' -====================== - -`.ln' is a synonym for `.line'. - - -File: as.info, Node: MRI, Next: Noaltmacro, Prev: Macro, Up: Pseudo Ops - -7.71 `.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: Ln, Prev: Linkonce, Up: Pseudo Ops - -7.72 `.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: LNS directives, Up: Pseudo Ops - -7.73 `.long EXPRESSIONS' -======================== - -`.long' is the same as `.int'. *Note `.int': Int. - - -File: as.info, Node: Macro, Next: MRI, Prev: Long, Up: Pseudo Ops - -7.74 `.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 qualify the macro - argument to indicate whether all invocations must specify a - non-blank value (through `:`req''), or whether it takes all of the - remaining arguments (through `:`vararg''). 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). - - `.macro m p1:req, p2=0, p3:vararg' - Begin the definition of a macro called `m', with at least - three arguments. The first argument must always have a value - specified, but not the second, which instead has a default - value. The third formal will get assigned all remaining - arguments specified at invocation time. - - 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'. - - - Note that since each of the MACARGS can be an identifier exactly - as any other one permitted by the target architecture, there may be - occasional problems if the target hand-crafts special meanings to - certain characters when they occur in a special position. For - example, if the colon (`:') is generally permitted to be part of a - symbol name, but the architecture specific code special-cases it - when occurring as the final character of a symbol (to denote a - label), then the macro parameter replacement code will have no way - of knowing that and consider the whole construct (including the - colon) an identifier, and check only this identifier for being the - subject to parameter substitution. So for example this macro - definition: - - .macro label l - \l: - .endm - - might not work as expected. Invoking `label foo' might not create - a label called `foo' but instead just insert the text `\l:' into - the assembler source, probably generating an error about an - unrecognised identifier. - - Similarly problems might occur with the period character (`.') - which is often allowed inside opcode names (and hence identifier - names). So for example constructing a macro to build an opcode - from a base name and a length specifier like this: - - .macro opcode base length - \base.\length - .endm - - and invoking it as `opcode store l' will not create a `store.l' - instruction but instead generate some kind of error as the - assembler tries to interpret the text `\base.\length'. - - There are several possible ways around this problem: - - `Insert white space' - If it is possible to use white space characters then this is - the simplest solution. eg: - - .macro label l - \l : - .endm - - `Use `\()'' - The string `\()' can be used to separate the end of a macro - argument from the following text. eg: - - .macro opcode base length - \base\().\length - .endm - - `Use the alternate macro syntax mode' - In the alternative macro syntax mode the ampersand character - (`&') can be used as a separator. eg: - - .altmacro - .macro label l - l&: - .endm - - Note: this problem of correctly identifying string parameters to - pseudo ops also applies to the identifiers used in `.irp' (*note - Irp::) and `.irpc' (*note Irpc::) as well. - -`.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.75 `.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 characters. - - `' - 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.76 `.noaltmacro' -================== - -Disable alternate macro mode. *Note Altmacro::. - - -File: as.info, Node: Nolist, Next: Octa, Prev: Noaltmacro, Up: Pseudo Ops - -7.77 `.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.78 `.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.79 `.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.80 `.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.81 `.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.82 `.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.83 `.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.84 `.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.85 `.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.86 `.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.87 `.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: Reloc, Prev: PushSection, Up: Pseudo Ops - -7.88 `.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: Reloc, Next: Rept, Prev: Quad, Up: Pseudo Ops - -7.89 `.reloc OFFSET, RELOC_NAME[, EXPRESSION]' -============================================== - -Generate a relocation at OFFSET of type RELOC_NAME with value -EXPRESSION. If OFFSET is a number, the relocation is generated in the -current section. If OFFSET is an expression that resolves to a symbol -plus offset, the relocation is generated in the given symbol's section. -EXPRESSION, if present, must resolve to a symbol plus addend or to an -absolute value, but note that not all targets support an addend. e.g. -ELF REL targets such as i386 store an addend in the section contents -rather than in the relocation. This low level interface does not -support addends stored in the section. - - -File: as.info, Node: Rept, Next: Sbttl, Prev: Reloc, Up: Pseudo Ops - -7.90 `.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.91 `.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.92 `.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. - - -File: as.info, Node: Section, Next: Set, Prev: Scl, Up: Pseudo Ops - -7.93 `.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.94 `.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'. - - On Z80 `set' is a real instruction, use `SYMBOL defl EXPRESSION' -instead. - - -File: as.info, Node: Short, Next: Single, Prev: Set, Up: Pseudo Ops - -7.95 `.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.96 `.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.97 `.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 - -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.98 `.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.99 `.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.100 `.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. - - -File: as.info, Node: Stab, Next: String, Prev: Space, Up: Pseudo Ops - -7.101 `.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.102 `.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.103 `.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.104 `.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.105 `.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.106 `.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. - - -File: as.info, Node: Text, Next: Title, Prev: Tag, Up: Pseudo Ops - -7.107 `.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.108 `.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.109 `.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. - -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. - - Because some of the characters used in these syntaxes (such as `@' -and `#') are comment characters for some architectures, some of the -syntaxes below do not work on all architectures. The first variant -will be accepted by the GNU assembler on all architectures so that -variant should be used for maximum portability, if you do not need to -assemble your code with other assemblers. - - The syntaxes supported are: - - .type STT_FUNCTION - .type STT_OBJECT - - .type ,#function - .type ,#object - - .type ,@function - .type ,@object - - .type ,%function - .type ,%object - - .type ,"function" - .type ,"object" - - -File: as.info, Node: Uleb128, Next: Val, Prev: Type, Up: Pseudo Ops - -7.110 `.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.111 `.val ADDR' -================= - -This directive, permitted only within `.def'/`.endef' pairs, records -the address ADDR as the value attribute of a symbol table entry. - - -File: as.info, Node: Version, Next: VTableEntry, Prev: Val, Up: Pseudo Ops - -7.112 `.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.113 `.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.114 `.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 referring to the `*ABS*' section. - - -File: as.info, Node: Warning, Next: Weak, Prev: VTableInherit, Up: Pseudo Ops - -7.115 `.warning "STRING"' -========================= - -Similar to the directive `.error' (*note `.error "STRING"': Error.), -but just emits a warning. - - -File: as.info, Node: Weak, Next: Weakref, Prev: Warning, Up: Pseudo Ops - -7.116 `.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: Weakref, Next: Word, Prev: Weak, Up: Pseudo Ops - -7.117 `.weakref ALIAS, TARGET' -============================== - -This directive creates an alias to the target symbol that enables the -symbol to be referenced with weak-symbol semantics, but without -actually making it weak. If direct references or definitions of the -symbol are present, then the symbol will not be weak, but if all -references to it are through weak references, the symbol will be marked -as weak in the symbol table. - - The effect is equivalent to moving all references to the alias to a -separate assembly source file, renaming the alias to the symbol in it, -declaring the symbol as weak there, and running a reloadable link to -merge the object files resulting from the assembly of the new source -file and the old source file that had the references to the alias -removed. - - The alias itself never makes to the symbol table, and is entirely -handled within the assembler. - - -File: as.info, Node: Word, Next: Deprecated, Prev: Weakref, Up: Pseudo Ops - -7.118 `.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.119 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: - - -* Alpha-Dependent:: Alpha Dependent Features - -* ARC-Dependent:: ARC Dependent Features - -* ARM-Dependent:: ARM Dependent Features - -* AVR-Dependent:: AVR Dependent Features - -* BFIN-Dependent:: BFIN Dependent Features - -* CR16-Dependent:: CR16 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 - -* 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 - -* M32C-Dependent:: M32C Dependent Features - -* M32R-Dependent:: M32R Dependent Features - -* M68K-Dependent:: M680x0 Dependent Features - -* M68HC11-Dependent:: M68HC11 and 68HC12 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 - -* Z80-Dependent:: Z80 Dependent Features - -* Z8000-Dependent:: Z8000 Dependent Features - -* Vax-Dependent:: VAX Dependent Features - - -File: as.info, Node: Alpha-Dependent, Next: ARC-Dependent, Up: Machine Dependencies - -8.1 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.1.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.1.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.1.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.1.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.1.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.1.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_jsrdirect!N' - Similar to `lituse_jsr', but also that this call cannot be vectored - through a PLT entry. This is useful for functions with special - calling conventions which do not allow the normal call-clobbered - registers to be clobbered. - -`!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.1.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.1.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.1.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.2 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.2.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.2.2 Syntax ------------- - -* Menu: - -* ARC-Chars:: Special Characters -* ARC-Regs:: Register Names - - -File: as.info, Node: ARC-Chars, Next: ARC-Regs, Up: ARC Syntax - -8.2.2.1 Special Characters -.......................... - -*TODO* - - -File: as.info, Node: ARC-Regs, Prev: ARC-Chars, Up: ARC Syntax - -8.2.2.2 Register Names -...................... - -*TODO* - - -File: as.info, Node: ARC Floating Point, Next: ARC Directives, Prev: ARC Syntax, Up: ARC-Dependent - -8.2.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.2.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 - condtional 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.2.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: AVR-Dependent, Prev: ARC-Dependent, Up: Machine Dependencies - -8.3 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.3.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', `arm946e-s', `arm966e-r0', - `arm966e', `arm966e-s', `arm968e-s', `arm10t', `arm10tdmi', - `arm10e', `arm1020', `arm1020t', `arm1020e', `arm1022e', - `arm1026ej-s', `arm1136j-s', `arm1136jf-s', `arm1156t2-s', - `arm1156t2f-s', `arm1176jz-s', `arm1176jzf-s', `mpcore', - `mpcorenovfp', `cortex-a8', `cortex-r4', `cortex-m3', `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', - `armv7', `armv7-a', `armv7-r', `armv7-m', `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 recognized: `gnu', `4' - and `5'. - -`-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.3.2 Syntax ------------- - -* Menu: - -* ARM-Chars:: Special Characters -* ARM-Regs:: Register Names -* ARM-Relocations:: Relocations - - -File: as.info, Node: ARM-Chars, Next: ARM-Regs, Up: ARM Syntax - -8.3.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, Next: ARM-Relocations, Prev: ARM-Chars, Up: ARM Syntax - -8.3.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.3.3 Floating Point --------------------- - -The ARM family uses IEEE floating-point numbers. - - -File: as.info, Node: ARM-Relocations, Prev: ARM-Regs, Up: ARM Syntax - -8.3.3.1 ARM relocation generation -................................. - -Specific data relocations can be generated by putting the relocation -name in parentheses after the symbol name. For example: - - .word foo(TARGET1) - - This will generate an `R_ARM_TARGET1' relocation against the symbol -FOO. The following relocations are supported: `GOT', `GOTOFF', -`TARGET1', `TARGET2', `SBREL', `TLSGD', `TLSLDM', `TLSLDO', `GOTTPOFF' -and `TPOFF'. - - For compatibility with older toolchains the assembler also accepts -`(PLT)' after branch targets. This will generate the deprecated -`R_ARM_PLT32' relocation. - - Relocations for `MOVW' and `MOVT' instructions can be generated by -prefixing the value with `#:lower16:' and `#:upper16' respectively. -For example to load the 32-bit address of foo into r0: - - MOVW r0, #:lower16:foo - MOVT r0, #:upper16:foo - - -File: as.info, Node: ARM Directives, Next: ARM Opcodes, Prev: ARM Floating Point, Up: ARM-Dependent - -8.3.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', `dn' or `qn' directives. 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. - -`NAME .dn REGISTER NAME [.TYPE] [[INDEX]]' - -`NAME .qn REGISTER NAME [.TYPE] [[INDEX]]' - The `dn' and `qn' directives are used to create typed and/or - indexed register aliases for use in Advanced SIMD Extension (Neon) - instructions. The former should be used to create aliases of - double-precision registers, and the latter to create aliases of - quad-precision registers. - - If these directives are used to create typed aliases, those - aliases can be used in Neon instructions instead of writing types - after the mnemonic or after each operand. For example: - - x .dn d2.f32 - y .dn d3.f32 - z .dn d4.f32[1] - vmul x,y,z - - This is equivalent to writing the following: - - vmul.f32 d2,d3,d4[1] - - Aliases created using `dn' or `qn' can be destroyed using `unreq'. - -`.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' - - This directive is not neccessary when generating EABI objects. On - these targets the encoding is implicit when generating Thumb code. - -`.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} - fstmdx 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]! - -`.vsave VFP-REGLIST' - Generate unwinder annotations to restore the VFP registers in - VFP-REGLIST using FLDMD. Also works for VFPv3 registers that are - to be restored using VLDM. The format of VFP-REGLIST is the same - as the corresponding store-multiple instruction. - - _VFP registers_ - .vsave {d8, d9, d10} - fstmdd sp!, {d8, d9, d10} - _VFPv3 registers_ - .vsave {d15, d16, d17} - vstm sp!, {d15, d16, d17} - - Since FLDMX and FSTMX are now deprecated, this directive should be - used in favour of `.save' for saving VFP registers for ARMv6 and - above. - -`.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 [, #OFFSET]' - Tell the unwinder that REG contains an offset from the current - stack pointer. If OFFSET is not specified then it is assumed to be - zero. - -`.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}' - -`.cpu NAME' - Select the target processor. Valid values for NAME are the same as - for the `-mcpu' commandline option. - -`.arch NAME' - Select the target architecture. Valid values for NAME are the - same as for the `-march' commandline option. - -`.object_arch NAME' - Override the architecture recorded in the EABI object attribute - section. Valid values for NAME are the same as for the `.arch' - directive. Typically this is useful when code uses runtime - detection of CPU features. - -`.fpu NAME' - Select the floating point unit to assemble for. Valid values for - NAME are the same as for the `-mfpu' commandline option. - -`.eabi_attribute TAG, VALUE' - Set the EABI object attribute number TAG to VALUE. The value is - either a `number', `"string"', or `number, "string"' depending on - the tag. - - - -File: as.info, Node: ARM Opcodes, Next: ARM Mapping Symbols, Prev: ARM Directives, Up: ARM-Dependent - -8.3.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

    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 H{CD$T>zz>C diff --git a/gas/po/fr.gmo b/gas/po/fr.gmo deleted file mode 100644 index 63ada106f5a9659bd853dcbc6d946cab8ecc7890..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 288175 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%0A^B)Y|GW;%JHcV!ABh|12X0klt3J}ZQV_9>M{ja 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 z zH!ANTH{5SVVMNHREifdpdQY-LytxftqU#tQZc!MRf9`Pqs!BKCy}QCaVt4NnKe0dA z#dJ!f`Z!P~K za_f#-fTP_Pj5c8rqbjy)2s&2O{=!3aD)0!bBJkG z4$``C7Q!6n17?d<0jdD}U6<(15w)H;i6Mad2|fPYPHa>%Ki_`x)mBT%wDNEeI+>K+ zJ|me|f7#_8RFA^-V7`H*7?({D4gC6@VB6__H{O4@D&L@#x_kZd@2GxE@FXP$YTkL# zH)9SQ{sdxbEXy5rpYh#0%dLngdo*9gT&Qxnq2EX9@hRHx(TF>-i&{iHOYb||NUoe| z#KWQ$wgnjf8PEbNi&MA~g6#K1!Imw*VV=kv-mvN=%4x3#m&tmW7 z;27AfmP+-`OX}`!Z_Dc?sG`Sw%iN#cg?blUwY?vd8lwLIQFHr6p17kO^nI zr`c;*gJF8xXPnO$N&bzsRUpgAc*#831f+y(I;t(!8b9ZGIfV(D&mHFPHDVH+SEo

    g|0JV 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 diff --git a/gas/po/rw.gmo b/gas/po/rw.gmo deleted file mode 100644 index 35ffd398da005310b73699b0c3f4e4a9b76a8418..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 438 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%0DSI;am+iT1;hgr%pval~~{8P9`k~dGZ+ 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 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' analyzes 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: 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 The Annotated Source Listing: 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 The Flat Profile: 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 The Call Graph: 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 file system 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. This feature only works with programs - compiled by older versions of the `gcc' compiler. Newer versions - of `gcc' are designed to work with the `gcov' tool instead. - - 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 Statistical Sampling Error: - Sampling Error. - -`-m NUM' -`--min-count=NUM' - This option affects execution count output only. Symbols that are - executed less than NUM times are suppressed. - -`-nSYMSPEC' -`--time=SYMSPEC' - The `-n' option causes `gprof', in its call graph analysis, to - only propagate times for symbols matching SYMSPEC. - -`-NSYMSPEC' -`--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 `gprof': - 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: 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 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 Statistical Sampling -Error: 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 section. - - 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 The Flat Profile: -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 - How Mutually Recursive Functions Are Described: 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 Estimating - `children' Times: 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 `called' 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 `called' 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 `called' 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. This only works -with programs compiled with older versions of the `gcc' compiler. -Newer versions of `gcc' use a different program - `gcov' - to display -line-by-line profiling information. - - With the older versions of `gcc' the program usually has to be -compiled with a `-g' option, in addition to `-pg', in order to generate -debugging symbols for tracking source code lines. Note, in much older -versions of `gcc' the program had to be compiled with the `-a' command -line option as well. - - 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. - - With older versions of `gcc' 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. With newer versions of `gcc' -support for displaying basic-block counts is provided by the `gcov' -program. - - 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'. The `-x' option is also helpful, to ensure 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 -novice, 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 - artificial 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? - Use the `gcov' program. - -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 - Profiling Data File Format: 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 memory ranges of each -pair of histogram records must be either equal, or non-overlapping. -For each pair of histogram records, the resolution (memory region size -divided by the number of bins) must be the same. The time unit must be -the same for all histogram records. If the above containts are met, all -histograms for the same memory range are merged. - - 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.4 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 - -Appendix A GNU Free Documentation License -***************************************** - - Version 1.1, March 2000 - - Copyright (C) 2000, 2003 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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: Top719 -Node: Introduction2033 -Node: Compiling4525 -Node: Executing7996 -Node: Invoking10784 -Node: Output Options12199 -Node: Analysis Options19288 -Node: Miscellaneous Options22689 -Node: Deprecated Options23944 -Node: Symspecs26023 -Node: Output27849 -Node: Flat Profile28889 -Node: Call Graph33842 -Node: Primary37074 -Node: Callers39662 -Node: Subroutines41779 -Node: Cycles43620 -Node: Line-by-line50397 -Node: Annotated Source54470 -Node: Inaccuracy57469 -Node: Sampling Error57727 -Node: Assumptions60297 -Node: How do I?61767 -Node: Incompatibilities63321 -Node: Details64815 -Node: Implementation65208 -Node: File Format71105 -Node: Internals75395 -Node: Debugging83890 -Node: GNU Free Documentation License85491 - -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 HcmV?d00001 literal 9586 zcmd6sU5p&rRmY3O8*s-7Nk|B6__(n%ctg}W2Pr>5+4IIA_z?KoLwxYu`_3TvZt&m0 z1K{rO3W6U59|eC1d=~s(un)c){4n?~@KbgD%i!C2|8sCZ_*HNoeA8|}{xGQiSHJ}@ z1|`SGz&C@x0e&C&d!W|+D^Tlw1Jt-ZjUYG&g1pvJwCNf{bE z3_b$B57c_sK#lK#KMZ~bl$?JAJ_UXqY=X!4csV=Z+j##3xDWg_@L}*3P1K>Nrv*0E0Ciwerzz@Jh-fz9r>-8g`?C`l7{{+i1u$-+u)}MZxcYvcoH&{NUd~ z*<&A@)qXGXq5a+hzaM-F#ASldfcyoY<3n=(Y5o2+kST&U(D^9%FsOZB12xZ2gYx^& zf;wkk0OgObfwJSfc{vWg7nHxh0G

    i6FQCGTH?XTkpj1X%{v6u|2ILc`(@C8dpNw3Cj_4bFM`s`CqVhf?}F0vAA<6uzW`;gzXs)J z{|sIMzX598c~hT{8n-}14}J#x0QhO}8StOLKf~XbI3(KNLky-WSO(?qt2Gv&ET6;` zovhE*O$L-t%P(Y;70N0_a5I z#ikXNNjq$%dAn=c`5>!IVcU5T|Ie+ZZ*H@0=+>PXwXM4DzLAtwPWRqS@B3@%+-Nk` z)2K52B41BZyR4d(yl;^Aa+29{xzTWY)QkIK&PjB()Rj+rZ)Y9949HwL|4R18@&XdrwxNTVXDhReoI z&9ISF%(7_zfxw(-58Et&;7lHwt&Kdjr_AbHyw;d%JQZM;!pt>~tk2C! zTzx|jmfWeK#6nr@TC?0#Nza<7-5&Iitg^8NjjB;#KkC%AbH|#;5btR7D4&lvALny% zvAMW7esguw=ZUhPXH}Hhd{CZh1Un4$!>2xX8n&ce7;^@-M4f5%n?6>NNtnCtbj=oR zi}$hlYQq|ty|x!Sq8Cav#v3JS(WcR*NiupTrRzTKC9f!_2e;?ihvk#OT)B)^m(l4U zlk3N(iZFO==G}VueKF{x!uKCwvbt}US6U`&=7UPc=tb3}agcGeY?~qG!qtl=TCdnx zVWT+7+`KYnTzeT#H=1*5m_-nJX?@=wwy|Di%0a)M7n+ze8x?IFjCBSDzEn?iHA{yy zS`81w^+DE_Yloa&TWI-+nW<;uNnI}*nwB*sGAHYajq!BJ^x|B(-=M}MYv;W_aY7p2 zN~#UyD$2@qdI}t45nD-BIuk~5T-dTS8#wpWo;IU&;KZ66`1#vWw!boQZo>9-#d?B> z&C1?kyKGL;2~CgoM>N9d(gnc@7j{zC!^cf|-)cm?kJz>bosKp?qrxXl7@MS%<%RPl zHXP>?sGH?mW`k1YCbqLLs2MVOGn#$#Eo;> zm5StWy{MD42^D!asSQ5chm%_ld#yaJtvuU0$R>WFU?Y{y$XMl!-@tKd!J_+ZHxW}O z44e0ovXsWAf_5BLk>B?Ndyj**@Ao<#$H#N6R>+{Qa}+Vx=*zHqE<7t*-1`gl9d%FRAUL%UjCAkKRo1Id}R6;C9FFY zvi8tU9Z5fCkhwsF1N5V!v{<&^*VdfH#x6N^EOv?zhY_fSM58I?k{Qm}i?R+Ou4Bq- zh@Ip@vt8UOBQLFoZ$(AMm}T$l8a;ix>-HPnbn^oQ4pYOW6NU<ajn7K3Obkzh04<0lZ^X-L4}ZwaPplRF=@pNv0RhTMZHVX2}((+sCYit5K_c9u-|KS2nlq z41aQMO_gWP*$e9zpUSRW?O*$eXJ1%bl~}Inl0mQKT4VQW7_XAkxXLcVy^_l-wg5iPPO3%hO1c~u0dEmUzJr{^&r^=tw5)GbP8Rwz zynUog1GkTn%lJi*D^$MdZf;2#wu;2AyKgRVubxcprcKwpyd&$3FE7_oZa=AUqIsXo zi($ykwQ0_RS>HRH1Y6$|n@Z$qtD%g{R~Dobx*Vg_FIqdj zYurj=_Ut?Q8!pU90!GTKSFPg-M!T`{{N)SIf9MyE>NRh|&E!R8;@Zeg@@BJ1vbx&t z+#;n;hil44obSn*-8nH;5lJYHxI%_Z&e>Vj^?pk`U8Co+aY01`+?UyQSG8b0m9om{?m|@ zyDXa&w6rNX?P##FUO%h8`9KorNClW);Ve*p_hC%n!l#?ap*s-xp<_xwAi?IbtODU!s$}K^ElhGIkK>DBwTnrJo2bn zJi2`Jc)0M`!U7$`>vl6y#t=^RTU-nmmdxT~%L|K-EG*LRa#U8~3Q?=%u;<0HdD@bN z-AKr8N>Z&8U0zSe-NB&KjJv1ko^=LtoE01Omd*JnOUey%0u`3s)7>@J#%5Q zgT>}T;~c>n{e&ySJ|ZgxJj`KDvL{fjZqw>yQs&|D<42dm#Ytz0wQh^>0(q)Z>}7MD zTvU{I_tQ}tm&BlT0(s4V$5o{FdC?VZ)Af8W?bu>Oe>(+C0QTE03)|7<3G*p6Blq&o zZ5E$XYj?EZWWY?-sNXnKn)I8gQa{gk&kugp2-pP>C@!6zPIqIAD(|e^) zFE(bUiSKs1%sb+}@LD1#q_5l;_rSsOGT#Upc4jZDdzJEiCjveZ6D3mU#^ggrF7LUxwq1`?tQcOb z8(VhVWV3FOjZJ<@Kwx(3Z7mDp7OB~I6$j#M)g!#iIL(z(oxEhgFDprE_z4ds$Z1AI za>j3_MoM*Km#iF1F1uv0wWjau=_7#W$qH=Ft=;KyVrVjjPtT5BeDhK%g4C`wJxG2J z6Y4tJJS8@^oHh7l7j7{}(il9B``d}L%b+s$1D&JiIP&}DU!R-R$(W*e3CG~fZeS#- z`gM7!JC1lE_iGG;(eI2kf9BrpmX)jb@?^OptGgEPM7k2!tNYk9_XpnMehO2__XBYs z3|&}9p}o7%Wv?XPyWR6RByo2CnW*v<$Eitl=?y-1R^dmd zF_kXSTxuq#rtZL$Uf}Ubi{eeCAZg8`@pO*$)U{Y=3Qm>d9Kp=DiUA=eHI^jvo73va zd`@6)vk|dI4$rH{H)Wm4b}I{^FESBpw>i(Nx%?DlzFo{Zb1E`3)LMawU#>Ylo?K65 zD%-hrm)~Ap@P~xBAXaA4X2$(|ogYXzVqfzo-35rb@=$}oTn@9oI-@ss;?j=0#QRj) zgN!zlPBwz`mc}tHXV5x7$dBH8Hf@^O9*PHb$RO1rInhs=P_wK`VCHAB+qX*0H#5&t zFLCw>QXHE?bSz%wWz5c_!^o~`$IfG1GjzF`V{!LUbg{n&GW5}EJ5qEtjz{0m&}T=E zDf-M95fUgcb(&@;hVE&$ep`j#b6Z9OzvPHzP6)YX(9xaL>_pLLboMRr^jb)_#Qz(f zemCpH{`UcR@VAqyU%I>_Q*R}rvFHGU`MZJd+gN%>snL275l-r(W(e-2rRlvE5kq%C zhg*qM^Z`VjbN7GC)H(mRTzqQ;x=}0l8MN*dS>V!qNbY73t&^Dr3P|0u22aoR{~@vS zO=C1fZ+hHJ{;LZ^u=C9el+;s5+dyBC(38T}cH%o;=Vg0iyII@2juWr#W;f4`8{e5ZGjp?d z?p^M~>sh2C8dWNPAV{T_f6AkhL7+$#QmY^!MUX{`5Q>DVqDUZtlzO!m5B@Cp4e(>&pMxIUZ)Or<2x{CS$kf4e z;9Xz|-U0p&sPV6Wp92326rG>^@gR5@JP95Ee-->N_$T1cfqxDDH24;%{WpHXkNY&Z zpYKP&C%_840KNtu1aH432o8e_pyv4!sQvu`sBy1?qWeEU?eF6VAp|di;^P;<&w#%N zej0oYybt_7sD7V;$a}#h@E-72K+X3Z@BsKGsBs@gI6nj41I~gMK=I=R@crPoKu8Y$ z7=)$4s~|&z?}Fmvo8UR{-$9L=xfNM~&wv`Y0!n^EkiXz7{G0`U7ku>w_y!*0`;QQ& z`2Me;IsdFMx7|6J`9B4!eF}W?eee#{{=WoKlEc?P1O6E(e*PmUeYoM1UXO1F zsS0L5)h~iS38vs(;1@yZ**8H0z7C2H{|O!kKfxgB#p56<7L=go`DK0#_;rx3!FNE} z&Fi4#{sZuCa6iHoJ_AZ$eht*RFM)Ik-T=j~x4{$O9wt%0hrrWd28y0O?j`$15Ay8xp4!E*gQ059-81Q{Cq6)1iAH&FKQHVCVO4>GCr zVlOB@KM4Nq4d@kkl<#FWWx%h3sATX`jjw?k_fMeY_% zlt(E~QO;0C4`$}h@jJmIb>-(lLs_c71=IDrbXRGQU1>&A(lQO#1e zYM}RAoZ4ch(QtdzhkG%nL^@k)OdU-ss+O`cN=#Y}S~fRX*Cgs`uiADcCTNMdsNFY3 zG+0fn-*{o7!c6tdRMAxPsIOV927@RcvS!eL__Ru*JT8Yb#!k%8k4t8`VsoZQ;Oeln z`-=U6Io2MwSpdSBJThzjEU_od@>J(iW1{gyfLL-f)x5hqH6?QO1|clDTSI|_(vE9Q zGgHO`Yod0$8bDcTI~p{qhJmY5udbcCzj;68-PgR2-^0zr{2n^gJalOMUT^TA@Gjb=hj2- z^J*0qes({T)qT^f)G}Uo+|r0@5S5!fsucUOZN{0o3-c!Gmh3LKQ72BBymIoaYE?t? zMiWmAvrxmvMTBn;+la6Q-vTcvI3cZdPo zT+2tyOg$5C)(xVeX<1W1bKH$>2Xz-sQKysJqA*3gZcQI`ognZ^lvHkwsmgb5N9o?u zbTSjRCo8%!>orSz722Ux{s!KSh{eAkMr{mtgHoEyQw7%wExy^5ty+z!iR#!^)$3^| zTln#S2|Fh4rCIK@g9$ouw`+50P=TnuYV7bVZmACTk`^K@YPE8ECH8)?-H*~9oNn22 z%|gPC!41*b&9i~oJJsInzRJwMZ=1JDJww|t z&b6>|Cdp3eI1y~_PwoT1Fo=sn$}@2yb)quz47+acvFLrjIBjQxRkTEYr)Ga%l-sG6 z_fO!s)*H`IpL8{&{CTDhxzztXPRyBOB(yw3_uM(b5vLQTaNg1x+iKLVMO9=2+sZma z?cE*dwliarGHNvwn;ys4#c5IEoSa)qYTYUDe8U4<)atT`-76+alZJM}8+o==sq=;? z*J_j(7OnAnciJ#E;0Y(Pi*xK8grF7_ji!{krzrXWW5mVxOi>Quy3})P7q`mD0_x#w zQJykp#(M^ho{Vnf!R2StvM~E92o4j&p&N!eO1#6Lf>rx4#ObS3$<_Uw=0d)GB<#0J_wNJyMbH&n?wX4JROP5qRd&s#R_}q3KrS_XOjx?`xSw0N$QT^kNRhqpM z7exKTuu4((&Nw#keDooKx1UY&-0X4MbvzCGHd%FxiemRNX7cgW6A4cX_!+ld^C}?+ z41x;xSy&tc%yw(l%lh8ora$&Qk*P?Ylp4%PePvE0rBEVD{GzqeyT-M+!=8Od9}k2n z@z02P^{TZ$L1>FhPo0}{`a{2PRL@io&Yz_LhQ^$Jo@8okVY?kPn@xiD<#z8`t`^Dg zk^(Xx51`b}UQC%sA`VlR>yYTNp=AX{&uYh)Q2!a@oQnpym#yutYR0sRe9N%9`nf2% zPBlr`$z?|UiyYF%Zs}R?mKuR*u^k6R;3^56g8Bl1+X*_hAQHOsK5I$CU9=lO@vEP2p_jsiUU5vtFJaesSBL{ zHNnL^dk()Ep6!H>`-ozuc4&7u4;^kEoo;yF6)qILxD%elgM~}kjA>lFuoRvm6n8=K zX>@VM+&w*gIGnyOJanHqbpOn~NAH?Gde1Z+!$%1P6|97l{f>mwht2fSnR}=2nr39< zTvU|d5>Bna7i9U2c{Jl@-7$-0+~bOKtZ?`soFisvcI*j8q`gWiwPd5gj5%Y8yi#)v zRdI7@L5|}Ay7*wi{kUj)&xC3AY%{gxiN?a&g}KdrA8JlFPT}g|YPd99Wk(9P4`S+Z z`hcQN^shYr*wTD>WV4?ZBRmf02xW9FnK4INF;^IJ2eVZ-ue#2AaR$`MgNaJBZ!TX+ zHm>Cr=PAj9Ub$Q9U^ZQk`U$ZWp>g{Eq*l}r4`(lQ)Evyd>Q2x&R9|grS@u~ zs_5D7#>;&!Xu0t-(D7l5^_YczN127$s&J#=XR%%}9oLa=R1|!> z9K#ue<#PJTKgS4x*{IO($u9KPffo*u3w70Z!vVAV5G zx^9cjjKjE9DTj@h$2o^93eqQ%4!boi+7+(NHdTUQ#d0QS(`=4wliNk21k7a18qF3p z&Mm~NahF8GyJR4KgzSTc)JcWYobmml-RC}5CeUEfw=wg%R-6!$wN?kZo2(v!h~a8r$G z9`Oz(cbj#s%zDIDXCF_IGuKsoU3Foc3W*5w%vZ^mV!R^)>E`eYU!F zSX?*{O76gJTw|XsE-erXU-{Fi_A4*CPp3Zh_v8XU+N{O4S@rG3;k?dCOKPQ)h-kT5 zr^G&z2186aH2D>aw6hSL8^H( zFS2cb_lk=yH&S26xAoX*8rIYy%{WQohpbm-rOMY$H85`1%2v1|GBz|7)Onux)y7`p zfa!1z8`yr1+ubJ1)XS17b>5VYrK2QBJ+%zR?_$UC>zBJu|B01+zc^i~lO{Ida#kAo z0!(>x8@}IGZ5vUz@iKXP*_w@Ief*1}@4NfMn+T>(puD$5E)uM*E2RJ}{?sEp*Qr@J z4O$|A%A?9f>r(FLlz!+q=b@DiF}**?wQnMKQ z42<{h@0f!bowh9FXm|GqrD43KATshW6Om1Q<5`h>AHg}hOiaBCmy2;MBtYU&dbflO zl#0T4NXJZA_?CPO#~R0UQu=(1a~)oLsn{(e<9z5mDI;B03SFKQX)V}979eiT!$?Ts z_8{J$R;=NoS!`i2AW>JEc}_iR7RULSxx!!|1CC#xmN6L?MNCM9S;m$F(;N8@mzFud znU=wGtt+-mNwZpaIqxhJGB@i44R&#`6&Jdw`vi?^o35)7KpIyl(N~+R4dm2p9<2C(`Nmg*^Mvo+h%-O+>D@ZXOTNZk z(TrKNNvr9cAs)m%o6{O8SA#i7*UTjx(y0J@PJ7M51 Lfo0$?$ie>r@41QE diff --git a/gprof/po/es.gmo b/gprof/po/es.gmo deleted file mode 100644 index 9bb39047bbf4e1032d72113225b077cc2ac66036..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10062 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 X(~7xV+)wSrm0sj%#+lk|_2oYSeBl3< diff --git a/gprof/po/fi.gmo b/gprof/po/fi.gmo deleted file mode 100644 index 50e918b7642ba6d752e865f363c25e7520bd0cf4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10771 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 diff --git a/gprof/po/fr.gmo b/gprof/po/fr.gmo deleted file mode 100644 index 1909dd46ca83d9b485e2b7152bcfe3b929f033b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10062 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 diff --git a/gprof/po/ga.gmo b/gprof/po/ga.gmo deleted file mode 100644 index 5942da356dcdb031837de4940a4e7be4617187bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10440 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 diff --git a/gprof/po/id.gmo b/gprof/po/id.gmo deleted file mode 100644 index bbf145e41b69ac50eff209b825b068bca5deb4ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9735 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 diff --git a/gprof/po/ms.gmo b/gprof/po/ms.gmo deleted file mode 100644 index 6ca5052097cea43207283a9740dba997b94c94d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9757 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 diff --git a/gprof/po/pt_BR.gmo b/gprof/po/pt_BR.gmo deleted file mode 100644 index 32876f76004002194ed8d294e106d9793e73660b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9984 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 diff --git a/gprof/po/sv.gmo b/gprof/po/sv.gmo deleted file mode 100644 index 15b54b527b95a93cdb5aeb121815a49b7c8dd69c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10210 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 m^*9eV5<fs`DhBx2p1E>hfaTwiaIK8 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 b<54WB-d;k6RHW(`^*P&m4i#rp=<@y#fIlxq diff --git a/gprof/po/vi.gmo b/gprof/po/vi.gmo deleted file mode 100644 index 00a2d508b448911bfdcd0d16232124dd9aef3c1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12329 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 diff --git a/ld/ld.info b/ld/ld.info deleted file mode 100644 index 28646e9..0000000 --- a/ld/ld.info +++ /dev/null @@ -1,7041 +0,0 @@ -This is ld.info, produced by makeinfo version 4.8 from ld.texinfo. - -START-INFO-DIR-ENTRY -* Ld: (ld). The GNU linker. -END-INFO-DIR-ENTRY - - This file documents the GNU linker LD (GNU Binutils) version 2.17.90. - - Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007 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: ld.info, Node: Top, Next: Overview, Up: (dir) - -LD -** - -This file documents the GNU linker ld (GNU Binutils) version 2.17.90. - - 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 -* LD Index:: LD 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 preceded 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: - -`@FILE' - Read command-line options from FILE. The options read are - inserted in place of the original @FILE option. If FILE does not - exist, or cannot be read, then the option will be treated - literally, and not removed. - - Options in FILE are separated by whitespace. A whitespace - character may be included in an option by surrounding the entire - option in either single or double quotes. Any character - (including a backslash) may be included by prefixing the character - to be included with a backslash. The FILE may itself contain - additional @FILE options; any such options will be processed - recursively. - -`-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 dynamic list to control what symbols should - be added to the dynamic symbol table if the output format supports - it. See the description of `--dynamic-list'. - -`-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. - -`-lNAMESPEC' -`--library=NAMESPEC' - Add the archive or object file specified by NAMESPEC to the list - of files to link. This option may be used any number of times. - If NAMESPEC is of the form `:FILENAME', `ld' will search the - library path for a file called FILENAME, otherise it will search - the library path for a file called `libNAMESPEC.a'. - - On systems which support shared libraries, `ld' may also search for - files other than `libNAMESPEC.a'. Specifically, on ELF and SunOS - systems, `ld' will search a directory for a library called - `libNAMESPEC.so' before searching for one called `libNAMESPEC.a'. - (By convention, a `.so' extension indicates a shared library.) - Note that this behavior does not apply to `:FILENAME', which - always specifies a file called FILENAME. - - 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 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. - - * The values assigned to symbols. - - Note - symbols whose values are computed by an expression - which involves a reference to a previous value of the same - symbol may not have correct result displayed in the link map. - This is because the linker discards intermediate results and - only retains the final value of an expression. Under such - circumstances the linker will display the final value - enclosed by square brackets. Thus for example a linker - script containing: - - foo = 1 - foo = foo * 4 - foo = foo + 8 - - will produce the following output in the link map if the `-M' - option is used: - - 0x00000001 foo = 0x1 - [0x0000000c] foo = (foo * 0x4) - [0x0000000c] foo = (foo + 0x8) - - See *Note Expressions:: for more information about - expressions in linker scripts. - -`-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. At the - moment this option only affects ELF shared library generation. - Future releases of the linker may make more use of this option. - Also currently there is no difference in the linker's behaviour - for different non-zero values of this option. Again this may - change with future releases. - -`-q' -`--emit-relocs' - Leave relocation sections and contents in fully linked executables. - 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. - -`--force-dynamic' - Force the output file to have dynamic sections. This option is - specific to VxWorks targets. - -`-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. - -`-dT SCRIPTFILE' -`--default-script=SCRIPTFILE' - Use SCRIPTFILE as the default linker script. *Note Scripts::. - - This option is similar to the `--script' option except that - processing of the script is delayed until after the rest of the - command line has been processed. This allows options placed after - the `--default-script' option on the command line to affect the - behaviour of the linker script, which can be important when the - linker command line cannot be directly controlled by the user. - (eg because the command line is being constructed by another tool, - such as `gcc'). - -`-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. (These symbols start with - system-specific local label prefixes, typically `.L' for ELF - systems or `L' for traditional a.out systems.) - -`-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. - - `execstack' - Marks the object as requiring executable stack. - - `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. - - `lazy' - When generating an executable or shared library, mark it to - tell the dynamic linker to defer function call resolution to - the point when the function is called (lazy binding), rather - than at load time. Lazy binding is the default. - - `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'. - - `noexecstack' - Marks the object as not requiring executable stack. - - `norelro' - Don't create an ELF `PT_GNU_RELRO' segment header in the - object. - - `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. - - `relro' - Create an ELF `PT_GNU_RELRO' segment header in the object. - - `max-page-size=VALUE' - Set the emulation maximum page size to VALUE. - - `common-page-size=VALUE' - Set the emulation common page size to VALUE. - - - 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'. - This option can be used with `-shared'. Doing so means that a - shared library is being created but that all of the library's - external references must be resolved by pulling in entries from - static libraries. - -`-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. - -`-Bsymbolic-functions' - When creating a shared library, bind references to global function - symbols to the definition within the shared library, if any. This - option is only meaningful on ELF platforms which support shared - libraries. - -`--dynamic-list=DYNAMIC-LIST-FILE' - Specify the name of a dynamic list file to the linker. This is - typically used when creating shared libraries to specify a list of - global symbols whose references shouldn't be bound to the - definition within the shared library, or creating dynamically - linked executables to specify a list of symbols which should be - added to the symbol table in the executable. This option is only - meaningful on ELF platforms which support shared libraries. - - The format of the dynamic list is the same as the version node - without scope and node name. See *Note VERSION:: for more - information. - -`--dynamic-list-data' - Include all global data symbols to the dynamic list. - -`--dynamic-list-cpp-new' - Provide the builtin dynamic list for C++ operator new and delete. - It is mainly useful for building shared libstdc++. - -`--dynamic-list-cpp-typeinfo' - Provide the builtin dynamic list for C++ runtime type - identification. - -`--check-sections' -`--no-check-sections' - Asks the linker _not_ to check section addresses after they have - been assigned to see if there are any overlaps. Normally the - linker will perform this check, and if it finds any overlaps it - will produce suitable error messages. The linker does know about, - and does make allowances for sections in overlays. The default - behaviour can be restored by using the command line switch - `--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. - -`--gc-sections' -`--no-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' or `--emit-relocs'. The default behaviour (of - not performing this garbage collection) can be restored by - specifying `--no-gc-sections' on the command line. - -`--print-gc-sections' -`--no-print-gc-sections' - List all sections removed by garbage collection. The listing is - printed on stderr. This option is only effective if garbage - collection has been enabled via the `--gc-sections') option. The - default behaviour (of not listing the sections that are removed) - can be restored by specifying `--no-print-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-warn-search-mismatch' - Normally `ld' will give a warning if it finds an incompatible - library during a library search. This option silences the warning. - -`--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. *Note `ld' and the 68HC11 and 68HC12: - M68HC11/68HC12. *Note `ld' and PowerPC 32-bit ELF Support: - PowerPC ELF32. - - 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 file - systems. - - 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. Searching `-rpath' in this way is - only supported by native linkers and cross linkers which have - been configured with the `--with-sysroot' option. - - 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'. - -`--eh-frame-hdr' - Request creation of `.eh_frame_hdr' section and ELF - `PT_GNU_EH_FRAME' segment header. - -`--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. - -`--hash-size=NUMBER' - 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. - -`--hash-style=STYLE' - Set the type of linker's hash table(s). STYLE can be either - `sysv' for classic ELF `.hash' section, `gnu' for new style GNU - `.gnu.hash' section or `both' for both the classic ELF `.hash' and - new style GNU `.gnu.hash' hash tables. The default is `sysv'. - -`--reduce-memory-overheads' - This option reduces memory requirements at ld runtime, at the - expense of linking speed. This was introduced to select the old - O(n^2) algorithm for link map file generation, rather than the new - O(n) algorithm which uses about 40% more memory for symbol storage. - - Another effect of the switch is to set the default hash table size - to 1021, which again saves memory at the cost of lengthening the - linker's 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. - -`--build-id' -`--build-id=STYLE' - Request creation of `.note.gnu.build-id' ELF note section. The - contents of the note are unique bits identifying this linked file. - STYLE can be `uuid' to use 128 random bits, `sha1' to use a - 160-bit SHA1 hash on the normative parts of the output contents, - `md5' to use a 128-bit MD5 hash on the normative parts of the - output contents, or `0xHEXSTRING' to use a chosen bit string - specified as an even number of hexadecimal digits (`-' and `:' - characters between digit pairs are ignored). If STYLE is omitted, - `sha1' is used. - - The `md5' and `sha1' styles produces an identifier that is always - the same in an identical output file, but will be unique among all - nonidentical output files. It is not intended to be compared as a - checksum for the file's contents. A linked file may be changed - later by other tools, but the build ID bit string identifying the - original linked file does not change. - - Passing `none' for STYLE disables the setting from any - `--build-id' options earlier on the command line. - -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 number of bytes 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 "Characteristics" field of - the COFF header is set to indicate that this executable supports - virtual addresses greater than 2 gigabytes. This should be used - in conjunction 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 number of bytes 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] - - -2.1.2 Options specific to Motorola 68HC11 and 68HC12 targets ------------------------------------------------------------- - -The 68HC11 and 68HC12 linkers support specific options to control the -memory bank switching mapping and trampoline code generation. - -`--no-trampoline' - This option disables the generation of trampoline. By default a - trampoline is generated for each far function which is called - using a `jsr' instruction (this happens when a pointer to a far - function is taken). - -`--bank-window NAME' - This option indicates to the linker the name of the memory region - in the `MEMORY' 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. - - - -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 -* PROVIDE_HIDDEN:: PROVIDE_HIDDEN -* 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: PROVIDE_HIDDEN, 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: PROVIDE_HIDDEN, Next: Source Code Reference, Prev: PROVIDE, Up: Assignments - -3.5.3 PROVIDE_HIDDEN --------------------- - -Similar to `PROVIDE'. For ELF targeted ports, the symbol will be -hidden and won't be exported. - - -File: ld.info, Node: Source Code Reference, Prev: PROVIDE_HIDDEN, Up: Assignments - -3.5.4 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)] [ALIGN(SECTION_ALIGN)] [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 sections with no 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, and if the input sections -are not all empty. Other link script directives that allocate space in -an output section will also create the output section. - - The linker will ignore address assignments (*note Output Section -Address::) on discarded output sections, except when the linker script -defines symbols in the output section. In that case the linker will -obey the address assignments, possibly advancing dot even though the -section is discarded. - - 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)] [ALIGN(SECTION_ALIGN)] [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 Output Alignment:: Forced Output Alignment -* 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 Output 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 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. - - If neither `AT' nor `AT>' is specified for an allocatable section, -the linker will set the LMA such that the difference between VMA and -LMA for the section is the same as the preceding output section in the -same region. If there is no preceding output section or the section is -not allocatable, the linker will set the LMA equal to the VMA. *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 Output Alignment, Next: Forced Input Alignment, Prev: Output Section LMA, Up: Output Section Attributes - -3.6.8.3 Forced Output Alignment -............................... - -You can increase an output section's alignment by using ALIGN. - - -File: ld.info, Node: Forced Input Alignment, Next: Output Section Region, Prev: Forced Output Alignment, Up: Output Section Attributes - -3.6.8.4 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.5 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.6 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.7 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 -provides 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 if referenced: `__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) } - PROVIDE (__load_start_text0 = LOADADDR (.text0)); - PROVIDE (__load_stop_text0 = LOADADDR (.text0) + SIZEOF (.text0)); - .text1 0x1000 : AT (0x4000 + SIZEOF (.text0)) { o2/*.o(.text) } - PROVIDE (__load_start_text1 = LOADADDR (.text1)); - PROVIDE (__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; - extern "C++" { - ns::*; - "int f(int, double)"; - } - } 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"). However, if you -specify the symbol name inside double quotes, then the name is treated -as literal, rather than as a glob pattern. - - 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 omitted, 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'. - - Demangled names may contains spaces and other special characters. As -described above, you can use a glob pattern to match demangled names, -or you can use a double-quoted string to match the string exactly. In -the latter case, be aware that minor differences (such as differing -whitespace) between the version script and the demangler output will -cause a mismatch. As the exact string generated by the demangler might -change in the future, even if the mangled name does not, you should -check that all of your version directives are behaving as you expect -when you upgrade. - - -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 -* Orphan Sections:: Orphan Sections -* 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: Orphan Sections, 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: Orphan Sections, Next: Location Counter, Prev: Symbols, Up: Expressions - -3.10.3 Orphan Sections ----------------------- - -Orphan sections are sections present in the input files which are not -explicitly placed into the output file by the linker script. The -linker will still copy these sections into the output file, but it has -to guess as to where they should be placed. The linker uses a simple -heuristic to do this. It attempts to place orphan sections after -non-orphan sections of the same attribute, such as code vs data, -loadable vs non-loadable, etc. If there is not enough room to do this -then it places at the end of the file. - - For ELF targets, the attribute of the section includes section type -as well as section flag. - - -File: ld.info, Node: Location Counter, Next: Operators, Prev: Orphan Sections, Up: Expressions - -3.10.4 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 not be moved backwards inside an output section, -and may not be moved backwards outside of an output section if so doing -creates areas with overlapping LMAs. - - 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.5 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.6 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.7 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.8 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'. - -`ALIGNOF(SECTION)' - Return the alignment 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, the alignment of the `.output' section is - stored as the first value in that section. - SECTIONS{ ... - .output { - LONG (ALIGNOF (.output)) - ... - } - ... } - -`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 - -* M68HC11/68HC12:: `ld' and the Motorola 68HC11 and 68HC12 families - -* PowerPC ELF32:: `ld' and PowerPC 32-bit ELF Support - -* PowerPC64 ELF64:: `ld' and PowerPC64 64-bit ELF Support - -* SPU ELF:: `ld' and SPU ELF Support - -* 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' instructions 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: M68HC11/68HC12, Next: PowerPC ELF32, Prev: MSP430, Up: Machine Dependent - -4.3 `ld' and the Motorola 68HC11 and 68HC12 families -==================================================== - -4.3.1 Linker Relaxation ------------------------ - -For the Motorola 68HC11, `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. - - `ld' also looks at all 16-bit extended addressing modes and - transforms them in a direct addressing mode when the address is in - page 0 (between 0 and 0x0ff). - -_relaxing gcc instruction group_ - When `gcc' is called with `-mrelax', it can emit group of - instructions that the linker can optimize to use a 68HC11 direct - addressing mode. These instructions consists of `bclr' or `bset' - instructions. - - -4.3.2 Trampoline Generation ---------------------------- - -For 68HC11 and 68HC12, `ld' can generate trampoline code to call a far -function using a normal `jsr' instruction. The linker will also change -the relocation to some far function to use the trampoline address -instead of the function address. This is typically the case when a -pointer to a function is taken. The pointer will in fact point to the -function trampoline. - - The `--pic-veneer' switch makes the linker use PIC sequences for -ARM/Thumb interworking veneers, even if the rest of the binary is not -PIC. This avoids problems on uClinux targets where `--emit-relocs' is -used to generate relocatable binaries. - - -File: ld.info, Node: ARM, Next: HPPA ELF32, Prev: i960, Up: Machine Dependent - -4.4 `ld' and the ARM family -=========================== - -For the ARM, `ld' will generate code stubs to allow functions calls -between 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. - - The `--use-blx' switch enables the linker to use ARM/Thumb BLX -instructions (available on ARMv5t and above) in various situations. -Currently it is used to perform calls via the PLT from Thumb code using -BLX rather than using BX and a mode-switching stub before each PLT -entry. This should lead to such calls executing slightly faster. - - This option is enabled implicitly for SymbianOS, so there is no need -to specify it if you are using that target. - - The `--vfp11-denorm-fix' switch enables a link-time workaround for a -bug in certain VFP11 coprocessor hardware, which sometimes allows -instructions with denorm operands (which must be handled by support -code) to have those operands overwritten by subsequent instructions -before the support code can read the intended values. - - The bug may be avoided in scalar mode if you allow at least one -intervening instruction between a VFP11 instruction which uses a -register and another instruction which writes to the same register, or -at least two intervening instructions if vector mode is in use. The bug -only affects full-compliance floating-point mode: you do not need this -workaround if you are using "runfast" mode. Please contact ARM for -further details. - - If you know you are using buggy VFP11 hardware, you can enable this -workaround by specifying the linker option `--vfp-denorm-fix=scalar' if -you are using the VFP11 scalar mode only, or `--vfp-denorm-fix=vector' -if you are using vector mode (the latter also works for scalar code). -The default is `--vfp-denorm-fix=none'. - - If the workaround is enabled, instructions are scanned for -potentially-troublesome sequences, and a veneer is created for each -such sequence which may trigger the erratum. The veneer consists of the -first instruction of the sequence and a branch back to the subsequent -instruction. The original instruction is then replaced with a branch to -the veneer. The extra cycles required to call and return from the veneer -are sufficient to avoid the erratum in both the scalar and vector cases. - - The `--no-enum-size-warning' switch prevents the linker from warning -when linking object files that specify incompatible EABI enumeration -size attributes. For example, with this switch enabled, linking of an -object file using 32-bit enumeration values with another using -enumeration values fitted into the smallest possible space will not be -diagnosed. - - -File: ld.info, Node: HPPA ELF32, Next: MMIX, Prev: ARM, Up: Machine Dependent - -4.5 `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.6 `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: M68HC11/68HC12, Prev: MMIX, Up: Machine Dependent - -4.7 `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: PowerPC ELF32, Next: PowerPC64 ELF64, Prev: M68HC11/68HC12, Up: Machine Dependent - -4.8 `ld' and PowerPC 32-bit ELF Support -======================================= - -Branches on PowerPC processors are limited to a signed 26-bit -displacement, which may result in `ld' giving `relocation truncated to -fit' errors with very large programs. `--relax' enables the generation -of trampolines that can access the entire 32-bit address space. These -trampolines are inserted at section boundaries, so may not themselves -be reachable if an input section exceeds 33M in size. - -`--bss-plt' - Current PowerPC GCC accepts a `-msecure-plt' option that generates - code capable of using a newer PLT and GOT layout that has the - security advantage of no executable section ever needing to be - writable and no writable section ever being executable. PowerPC - `ld' will generate this layout, including stubs to access the PLT, - if all input files (including startup and static libraries) were - compiled with `-msecure-plt'. `--bss-plt' forces the old BSS PLT - (and GOT layout) which can give slightly better performance. - -`--secure-plt' - `ld' will use the new PLT and GOT layout if it is linking new - `-fpic' or `-fPIC' code, but does not do so automatically when - linking non-PIC code. This option requests the new PLT and GOT - layout. A warning will be given if some object file requires the - old style BSS PLT. - -`--sdata-got' - The new secure PLT and GOT are placed differently relative to other - sections compared to older BSS PLT and GOT placement. The - location of `.plt' must change because the new secure PLT is an - initialized section while the old PLT is uninitialized. The - reason for the `.got' change is more subtle: The new placement - allows `.got' to be read-only in applications linked with `-z - relro -z now'. However, this placement means that `.sdata' cannot - always be used in shared libraries, because the PowerPC ABI - accesses `.sdata' in shared libraries from the GOT pointer. - `--sdata-got' forces the old GOT placement. PowerPC GCC doesn't - use `.sdata' in shared libraries, so this option is really only - useful for other compilers that may do so. - -`--emit-stub-syms' - This option causes `ld' to label linker stubs with a local symbol - that encodes the stub type and destination. - -`--no-tls-optimize' - PowerPC `ld' normally performs some optimization of code sequences - used to access Thread-Local Storage. Use this option to disable - the optimization. - - -File: ld.info, Node: PowerPC64 ELF64, Next: SPU ELF, Prev: PowerPC ELF32, Up: Machine Dependent - -4.9 `ld' and PowerPC64 64-bit ELF Support -========================================= - -`--stub-group-size' - Long branch stubs, PLT call stubs and TOC adjusting 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. - -`--emit-stub-syms' - This option causes `ld' to label linker stubs with a local symbol - that encodes the stub type and destination. - -`--dotsyms, --no-dotsyms' - These two options control how `ld' interprets version patterns in - a version script. Older PowerPC64 compilers emitted both a - function descriptor symbol with the same name as the function, and - a code entry symbol with the name prefixed by a dot (`.'). To - properly version a function `foo', the version script thus needs - to control both `foo' and `.foo'. The option `--dotsyms', on by - default, automatically adds the required dot-prefixed patterns. - Use `--no-dotsyms' to disable this feature. - -`--no-tls-optimize' - PowerPC64 `ld' normally performs some optimization of code - sequences used to access Thread-Local Storage. Use this option to - disable the optimization. - -`--no-opd-optimize' - PowerPC64 `ld' normally removes `.opd' section entries - corresponding to deleted link-once functions, or functions removed - by the action of `--gc-sections' or linker scrip `/DISCARD/'. Use - this option to disable `.opd' optimization. - -`--non-overlapping-opd' - Some PowerPC64 compilers have an option to generate compressed - `.opd' entries spaced 16 bytes apart, overlapping the third word, - the static chain pointer (unused in C) with the first word of the - next entry. This option expands such entries to the full 24 bytes. - -`--no-toc-optimize' - PowerPC64 `ld' normally removes unused `.toc' section entries. - Such entries are detected by examining relocations that reference - the TOC in code sections. A reloc in a deleted code section marks - a TOC word as unneeded, while a reloc in a kept code section marks - a TOC word as needed. Since the TOC may reference itself, TOC - relocs are also examined. TOC words marked as both needed and - unneeded will of course be kept. TOC words without any referencing - reloc are assumed to be part of a multi-word entry, and are kept or - discarded as per the nearest marked preceding word. This works - reliably for compiler generated code, but may be incorrect if - assembly code is used to insert TOC entries. Use this option to - disable the optimization. - -`--no-multi-toc' - By default, PowerPC64 GCC generates code for a TOC model where TOC - entries are accessed with a 16-bit offset from r2. This limits the - total TOC size to 64K. PowerPC64 `ld' extends this limit by - grouping code sections such that each group uses less than 64K for - its TOC entries, then inserts r2 adjusting stubs between - inter-group calls. `ld' does not split apart input sections, so - cannot help if a single input file has a `.toc' section that - exceeds 64K, most likely from linking multiple files with `ld -r'. - Use this option to turn off this feature. - - -File: ld.info, Node: SPU ELF, Next: TI COFF, Prev: PowerPC64 ELF64, Up: Machine Dependent - -4.10 `ld' and SPU ELF Support -============================= - -`--plugin' - This option marks an executable as a PIC plugin module. - -`--no-overlays' - Normally, `ld' recognizes calls to functions within overlay - regions, and redirects such calls to an overlay manager via a stub. - `ld' also provides a built-in overlay manager. This option turns - off all this special overlay handling. - -`--emit-stub-syms' - This option causes `ld' to label overlay stubs with a local symbol - that encodes the stub type and destination. - -`--extra-overlay-stubs' - This option causes `ld' to add overlay call stubs on all function - calls out of overlay regions. Normally stubs are not added on - calls to non-overlay regions. - -`--local-store=lo:hi' - `ld' usually checks that a final executable for SPU fits in the - address range 0 to 256k. This option may be used to change the - range. Disable the check entirely with `--local-store=0:0'. - -`--stack-analysis' - SPU local store space is limited. Over-allocation of stack space - unnecessarily limits space available for code and data, while - under-allocation results in runtime failures. If given this - option, `ld' will provide an estimate of maximum stack usage. - `ld' does this by examining symbols in code sections to determine - the extents of functions, and looking at function prologues for - stack adjusting instructions. A call-graph is created by looking - for relocations on branch instructions. The graph is then searched - for the maximum stack usage path. Note that this analysis does not - find calls made via function pointers, and does not handle - recursion and other cycles in the call graph. Stack usage may be - under-estimated if your code makes such calls. Also, stack usage - for dynamic allocation, e.g. alloca, will not be detected. If a - link map is requested, detailed information about each function's - stack usage and calls will be given. - -`--emit-stack-syms' - This option, if given along with `--stack-analysis' will result in - `ld' emitting stack sizing symbols for each function. These take - the form `__stack_' for global functions, and - `__stack__' for static functions. - `' is the section id in hex. The value of such symbols is - the stack requirement for the corresponding function. The symbol - size will be zero, type `STT_NOTYPE', binding `STB_LOCAL', and - section `SHN_ABS'. - - -File: ld.info, Node: TI COFF, Next: WIN32, Prev: SPU ELF, Up: Machine Dependent - -4.11 `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.12 `ld' and WIN32 (cygwin/mingw) -================================== - -This section describes some of the win32 specific `ld' issues. See -*Note Command Line Options: Options. for detailed description 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=0x20000000 - - EXPORTS - foo - bar - _bar = bar - another_foo = abc.dll.afoo - var1 DATA - - This example defines a DLL with a non-default base address - and five symbols in the export table. The third exported - symbol `_bar' is an alias for the second. The fourth symbol, - `another_foo' is resolved by "forwarding" to another module - and treating it as an alias for `afoo' exported from the DLL - `abc.dll'. The final symbol `var1' is declared to be a data - object. - - The optional `LIBRARY ' command indicates the _internal_ - name of the output DLL. If `' does not include a suffix, - the default library suffix, `.DLL' is appended. - - When the .DEF file is used to build an application, rather - than a library, the `NAME ' command should be used - instead of `LIBRARY'. If `' does not include a suffix, - the default executable suffix, `.EXE' is appended. - - With either `LIBRARY ' or `NAME ' the optional - specification `BASE = ' may be used to specify a - non-default base address for the image. - - If neither `LIBRARY ' nor `NAME ' is specified, - or they specify an empty string, the internal name is the - same as the filename specified on the command line. - - The complete specification of an export symbol is: - - EXPORTS - ( ( ( [ = ] ) - | ( = . )) - [ @ ] [NONAME] [DATA] [CONSTANT] [PRIVATE] ) * - - Declares `' as an exported symbol from the DLL, or - declares `' as an exported alias for `'; or - declares `' as a "forward" alias for the symbol - `' in the DLL `'. Optionally, - the symbol may be exported by the specified ordinal - `' alias. - - The optional keywords that follow the declaration indicate: - - `NONAME': Do not put the symbol name in the DLL's export - table. It will still be exported by its ordinal alias - (either the value specified by the .def specification or, - otherwise, the value assigned by the linker). The symbol - name, however, does remain visible in the import library (if - any), unless `PRIVATE' is also specified. - - `DATA': The symbol is a variable or object, rather than a - function. The import lib will export only an indirect - reference to `foo' as the symbol `_imp__foo' (ie, `foo' must - be resolved as `*_imp__foo'). - - `CONSTANT': Like `DATA', but put the undecorated `foo' as - well as `_imp__foo' into the import library. Both refer to the - read-only import address table's pointer to the variable, not - to the variable itself. This can be dangerous. If the user - code fails to add the `dllimport' attribute and also fails to - explicitly add the extra indirection that the use of the - attribute enforces, the application will behave unexpectedly. - - `PRIVATE': Put the symbol in the DLL's export table, but do - not put it into the static import library used to resolve - imports at link time. The symbol can still be imported using - the `LoadLibrary/GetProcAddress' API at runtime or by by - using the GNU ld extension of linking directly to the DLL - without an import library. - - See ld/deffilep.y in the binutils sources for the full - specification of other DEF file statements - - 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 information. - -_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 achieve 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, especially 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 - xxx.lib - 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 three 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. - - 3. Symbol aliases can only be resolved using an import lib. This - is critical when linking against OS-supplied dll's (eg, the win32 - API) in which symbols are usually exported as undecorated aliases - of their stdcall-decorated assembly names. - - 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 many 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.13 `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 -`http://www.sourceware.org/bugzilla/'. - - 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 sync, 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: LD Index, Prev: MRI, Up: Top - -Appendix B GNU Free Documentation License -***************************************** - - Version 1.1, March 2000 - - Copyright (C) 2000, 2003 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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: LD Index, Prev: GNU Free Documentation License, Up: Top - -LD Index -******** - -[index] -* Menu: - -* ": Symbols. (line 6) -* -(: Options. (line 643) -* --accept-unknown-input-arch: Options. (line 661) -* --add-needed: Options. (line 683) -* --add-stdcall-alias: Options. (line 1450) -* --allow-multiple-definition: Options. (line 892) -* --allow-shlib-undefined: Options. (line 898) -* --architecture=ARCH: Options. (line 104) -* --as-needed: Options. (line 671) -* --auxiliary: Options. (line 205) -* --bank-window: Options. (line 1789) -* --base-file: Options. (line 1455) -* --be8: ARM. (line 23) -* --bss-plt: PowerPC ELF32. (line 13) -* --build-id: Options. (line 1412) -* --build-id=STYLE: Options. (line 1412) -* --check-sections: Options. (line 765) -* --cref: Options. (line 775) -* --default-imported-symver: Options. (line 926) -* --default-script=SCRIPT: Options. (line 488) -* --default-symver: Options. (line 922) -* --defsym SYMBOL=EXP: Options. (line 803) -* --demangle[=STYLE]: Options. (line 816) -* --disable-auto-image-base: Options. (line 1602) -* --disable-auto-import: Options. (line 1731) -* --disable-new-dtags: Options. (line 1375) -* --disable-runtime-pseudo-reloc: Options. (line 1744) -* --disable-stdcall-fixup: Options. (line 1465) -* --discard-all: Options. (line 534) -* --discard-locals: Options. (line 538) -* --dll: Options. (line 1460) -* --dll-search-prefix: Options. (line 1608) -* --dotsyms: PowerPC64 ELF64. (line 33) -* --dynamic-linker FILE: Options. (line 829) -* --dynamic-list-cpp-new: Options. (line 757) -* --dynamic-list-cpp-typeinfo: Options. (line 761) -* --dynamic-list-data: Options. (line 754) -* --dynamic-list=DYNAMIC-LIST-FILE: Options. (line 741) -* --eh-frame-hdr: Options. (line 1371) -* --emit-relocs: Options. (line 423) -* --emit-stack-syms: SPU ELF. (line 46) -* --emit-stub-syms <1>: SPU ELF. (line 15) -* --emit-stub-syms <2>: PowerPC64 ELF64. (line 29) -* --emit-stub-syms: PowerPC ELF32. (line 44) -* --enable-auto-image-base: Options. (line 1594) -* --enable-auto-import: Options. (line 1617) -* --enable-extra-pe-debug: Options. (line 1749) -* --enable-new-dtags: Options. (line 1375) -* --enable-runtime-pseudo-reloc: Options. (line 1736) -* --enable-stdcall-fixup: Options. (line 1465) -* --entry=ENTRY: Options. (line 158) -* --error-unresolved-symbols: Options. (line 1324) -* --exclude-libs: Options. (line 168) -* --exclude-symbols: Options. (line 1507) -* --export-all-symbols: Options. (line 1483) -* --export-dynamic: Options. (line 179) -* --extra-overlay-stubs: SPU ELF. (line 19) -* --fatal-warnings: Options. (line 835) -* --file-alignment: Options. (line 1513) -* --filter: Options. (line 226) -* --fix-v4bx: ARM. (line 44) -* --force-dynamic: Options. (line 432) -* --force-exe-suffix: Options. (line 838) -* --format=FORMAT: Options. (line 115) -* --format=VERSION: TI COFF. (line 6) -* --gc-sections: Options. (line 848) -* --gpsize: Options. (line 259) -* --hash-size=NUMBER: Options. (line 1384) -* --hash-style=STYLE: Options. (line 1392) -* --heap: Options. (line 1519) -* --help: Options. (line 865) -* --image-base: Options. (line 1526) -* --just-symbols=FILE: Options. (line 455) -* --kill-at: Options. (line 1535) -* --large-address-aware: Options. (line 1540) -* --library-path=DIR: Options. (line 318) -* --library=NAMESPEC: Options. (line 285) -* --local-store=lo:hi: SPU ELF. (line 24) -* --major-image-version: Options. (line 1549) -* --major-os-version: Options. (line 1554) -* --major-subsystem-version: Options. (line 1558) -* --minor-image-version: Options. (line 1563) -* --minor-os-version: Options. (line 1568) -* --minor-subsystem-version: Options. (line 1572) -* --mri-script=MRI-CMDFILE: Options. (line 139) -* --multi-subspace: HPPA ELF32. (line 6) -* --nmagic: Options. (line 387) -* --no-accept-unknown-input-arch: Options. (line 661) -* --no-add-needed: Options. (line 683) -* --no-allow-shlib-undefined: Options. (line 898) -* --no-as-needed: Options. (line 671) -* --no-check-sections: Options. (line 765) -* --no-define-common: Options. (line 787) -* --no-demangle: Options. (line 816) -* --no-dotsyms: PowerPC64 ELF64. (line 33) -* --no-enum-size-warning: ARM. (line 94) -* --no-gc-sections: Options. (line 848) -* --no-keep-memory: Options. (line 877) -* --no-multi-toc: PowerPC64 ELF64. (line 74) -* --no-omagic: Options. (line 401) -* --no-opd-optimize: PowerPC64 ELF64. (line 48) -* --no-overlays: SPU ELF. (line 9) -* --no-print-gc-sections: Options. (line 856) -* --no-relax: Xtensa. (line 56) -* --no-tls-optimize <1>: PowerPC64 ELF64. (line 43) -* --no-tls-optimize: PowerPC ELF32. (line 48) -* --no-toc-optimize: PowerPC64 ELF64. (line 60) -* --no-trampoline: Options. (line 1783) -* --no-undefined: Options. (line 884) -* --no-undefined-version: Options. (line 917) -* --no-warn-mismatch: Options. (line 930) -* --no-warn-search-mismatch: Options. (line 939) -* --no-whole-archive: Options. (line 943) -* --noinhibit-exec: Options. (line 947) -* --non-overlapping-opd: PowerPC64 ELF64. (line 54) -* --oformat: Options. (line 959) -* --omagic: Options. (line 392) -* --out-implib: Options. (line 1585) -* --output-def: Options. (line 1577) -* --output=OUTPUT: Options. (line 407) -* --pic-executable: Options. (line 972) -* --pic-veneer: M68HC11/68HC12. (line 38) -* --plugin: SPU ELF. (line 6) -* --print-gc-sections: Options. (line 856) -* --print-map: Options. (line 350) -* --reduce-memory-overheads: Options. (line 1398) -* --relax: Options. (line 988) -* --relax on i960: i960. (line 31) -* --relax on PowerPC: PowerPC ELF32. (line 6) -* --relax on Xtensa: Xtensa. (line 27) -* --relocatable: Options. (line 436) -* --script=SCRIPT: Options. (line 479) -* --sdata-got: PowerPC ELF32. (line 30) -* --section-alignment: Options. (line 1754) -* --section-start SECTIONNAME=ORG: Options. (line 1161) -* --secure-plt: PowerPC ELF32. (line 23) -* --sort-common: Options. (line 1108) -* --sort-section alignment: Options. (line 1118) -* --sort-section name: Options. (line 1114) -* --split-by-file: Options. (line 1122) -* --split-by-reloc: Options. (line 1127) -* --stack: Options. (line 1760) -* --stack-analysis: SPU ELF. (line 29) -* --stats: Options. (line 1140) -* --strip-all: Options. (line 466) -* --strip-debug: Options. (line 470) -* --stub-group-size: PowerPC64 ELF64. (line 6) -* --stub-group-size=N: HPPA ELF32. (line 12) -* --subsystem: Options. (line 1767) -* --support-old-code: ARM. (line 6) -* --sysroot: Options. (line 1144) -* --target-help: Options. (line 869) -* --target1-abs: ARM. (line 27) -* --target1-rel: ARM. (line 27) -* --target2=TYPE: ARM. (line 32) -* --thumb-entry=ENTRY: ARM. (line 17) -* --trace: Options. (line 475) -* --trace-symbol=SYMBOL: Options. (line 544) -* --traditional-format: Options. (line 1149) -* --undefined=SYMBOL: Options. (line 501) -* --unique[=SECTION]: Options. (line 519) -* --unresolved-symbols: Options. (line 1176) -* --use-blx: ARM. (line 57) -* --verbose: Options. (line 1205) -* --version: Options. (line 528) -* --version-script=VERSION-SCRIPTFILE: Options. (line 1211) -* --vfp11-denorm-fix: ARM. (line 66) -* --warn-common: Options. (line 1218) -* --warn-constructors: Options. (line 1286) -* --warn-multiple-gp: Options. (line 1291) -* --warn-once: Options. (line 1305) -* --warn-section-align: Options. (line 1309) -* --warn-shared-textrel: Options. (line 1316) -* --warn-unresolved-symbols: Options. (line 1319) -* --whole-archive: Options. (line 1328) -* --wrap: Options. (line 1342) -* -AARCH: Options. (line 103) -* -aKEYWORD: Options. (line 96) -* -assert KEYWORD: Options. (line 693) -* -b FORMAT: Options. (line 115) -* -Bdynamic: Options. (line 696) -* -Bgroup: Options. (line 706) -* -Bshareable: Options. (line 1100) -* -Bstatic: Options. (line 713) -* -Bsymbolic: Options. (line 728) -* -Bsymbolic-functions: Options. (line 735) -* -c MRI-CMDFILE: Options. (line 139) -* -call_shared: Options. (line 696) -* -d: Options. (line 149) -* -dc: Options. (line 149) -* -dn: Options. (line 713) -* -dp: Options. (line 149) -* -dT SCRIPT: Options. (line 488) -* -dy: Options. (line 696) -* -E: Options. (line 179) -* -e ENTRY: Options. (line 158) -* -EB: Options. (line 198) -* -EL: Options. (line 201) -* -F: Options. (line 226) -* -f: Options. (line 205) -* -fini: Options. (line 250) -* -G: Options. (line 259) -* -g: Options. (line 256) -* -hNAME: Options. (line 267) -* -i: Options. (line 276) -* -IFILE: Options. (line 829) -* -init: Options. (line 279) -* -LDIR: Options. (line 318) -* -lNAMESPEC: Options. (line 285) -* -M: Options. (line 350) -* -m EMULATION: Options. (line 340) -* -Map: Options. (line 873) -* -N: Options. (line 392) -* -n: Options. (line 387) -* -non_shared: Options. (line 713) -* -nostdlib: Options. (line 953) -* -O LEVEL: Options. (line 413) -* -o OUTPUT: Options. (line 407) -* -pie: Options. (line 972) -* -q: Options. (line 423) -* -qmagic: Options. (line 982) -* -Qy: Options. (line 985) -* -r: Options. (line 436) -* -R FILE: Options. (line 455) -* -rpath: Options. (line 1023) -* -rpath-link: Options. (line 1045) -* -S: Options. (line 470) -* -s: Options. (line 466) -* -shared: Options. (line 1100) -* -soname=NAME: Options. (line 267) -* -static: Options. (line 713) -* -t: Options. (line 475) -* -T SCRIPT: Options. (line 479) -* -Tbss ORG: Options. (line 1170) -* -Tdata ORG: Options. (line 1170) -* -Ttext ORG: Options. (line 1170) -* -u SYMBOL: Options. (line 501) -* -Ur: Options. (line 509) -* -V: Options. (line 528) -* -v: Options. (line 528) -* -X: Options. (line 538) -* -x: Options. (line 534) -* -Y PATH: Options. (line 553) -* -y SYMBOL: Options. (line 544) -* -z defs: Options. (line 884) -* -z KEYWORD: Options. (line 557) -* -z muldefs: Options. (line 892) -* .: Location Counter. (line 6) -* /DISCARD/: Output Section Discarding. - (line 21) -* :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) -* ALIGN(SECTION_ALIGN): Forced Output Alignment. - (line 6) -* ALIGNOF(SECTION): Builtin Functions. (line 62) -* allocating memory: MEMORY. (line 6) -* architecture: Miscellaneous Commands. - (line 46) -* architectures: Options. (line 103) -* archive files, from cmd line: Options. (line 285) -* 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 170) -* 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 198) -* binary input format: Options. (line 115) -* BLOCK(EXP): Builtin Functions. (line 75) -* 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 1218) -* command files: Scripts. (line 6) -* command line: Options. (line 6) -* common allocation: Options. (line 149) -* common allocation in linker script: Miscellaneous Commands. - (line 20) -* common symbol placement: Input Section Common. - (line 6) -* compatibility, MRI: Options. (line 139) -* constants in linker scripts: Constants. (line 6) -* CONSTRUCTORS: Output Section Keywords. - (line 19) -* constructors: Options. (line 509) -* 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 137) -* cross reference table: Options. (line 775) -* 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 80) -* DATA_SEGMENT_END(EXP): Builtin Functions. (line 101) -* DATA_SEGMENT_RELRO_END(OFFSET, EXP): Builtin Functions. (line 107) -* dbx: Options. (line 1154) -* DEF files, creating: Options. (line 1577) -* default emulation: Environment. (line 21) -* default input format: Environment. (line 9) -* DEFINED(SYMBOL): Builtin Functions. (line 118) -* deleting local symbols: Options. (line 534) -* demangling, default: Environment. (line 29) -* demangling, from command line: Options. (line 816) -* direct linking to a dll: WIN32. (line 218) -* discarding sections: Output Section Discarding. - (line 6) -* discontinuous memory: MEMORY. (line 6) -* DLLs, creating: Options. (line 1483) -* DLLs, linking to: Options. (line 1608) -* dot: Location Counter. (line 6) -* dot inside sections: Location Counter. (line 36) -* dot outside sections: Location Counter. (line 66) -* dynamic linker, from command line: Options. (line 829) -* dynamic symbol table: Options. (line 179) -* ELF program headers: PHDRS. (line 6) -* emulation: Options. (line 340) -* emulation, default: Environment. (line 21) -* END (MRI): MRI. (line 62) -* endianness: Options. (line 198) -* entry point: Entry Point. (line 6) -* entry point, from command line: Options. (line 158) -* 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 250) -* 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) -* forcing output section alignment: Forced Output Alignment. - (line 6) -* forcing the creation of dynamic sections: Options. (line 432) -* FORMAT (MRI): MRI. (line 66) -* functions in expressions: Builtin Functions. (line 6) -* garbage collection <1>: Input Section Keep. (line 6) -* garbage collection: Options. (line 848) -* generating optimized output: Options. (line 413) -* 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 643) -* H8/300 support: H8/300. (line 6) -* header size: Builtin Functions. (line 183) -* heap size: Options. (line 1519) -* help: Options. (line 865) -* 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 1526) -* 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 1328) -* incremental link: Options. (line 276) -* INHIBIT_COMMON_ALLOCATION: Miscellaneous Commands. - (line 25) -* initialization function: Options. (line 279) -* initialized data in ROM: Output Section LMA. (line 26) -* 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 475) -* input format: Options. (line 115) -* 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) -* 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 135) -* library search path in linker script: File Commands. (line 71) -* link map: Options. (line 350) -* link-time runtime library search path: Options. (line 1045) -* 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 201) -* LOAD (MRI): MRI. (line 84) -* load address: Output Section LMA. (line 6) -* LOADADDR(SECTION): Builtin Functions. (line 138) -* loading, preventing: Output Section Type. - (line 22) -* local symbols, deleting: Options. (line 538) -* location counter: Location Counter. (line 6) -* LONG(EXPRESSION): Output Section Data. - (line 6) -* M and K integer suffixes: Constants. (line 12) -* M68HC11 and 68HC12 support: M68HC11/68HC12. (line 6) -* 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 143) -* 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 877) -* MIN: Builtin Functions. (line 146) -* 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 407) -* NEXT(EXP): Builtin Functions. (line 150) -* NMAGIC: Options. (line 387) -* NO_ENUM_SIZE_WARNING: ARM. (line 94) -* NOCROSSREFS(SECTIONS): Miscellaneous Commands. - (line 30) -* NOLOAD: Output Section Type. - (line 22) -* not enough room for program headers: Builtin Functions. (line 188) -* 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 259) -* OMAGIC: Options. (line 392) -* 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 156) -* orphan: Orphan Sections. (line 6) -* output file after errors: Options. (line 947) -* output file format in linker script: Format Commands. (line 10) -* output file name in linker script: File Commands. (line 61) -* output section alignment: Forced Output Alignment. - (line 6) -* 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 436) -* PHDRS: PHDRS. (line 6) -* PIC_VENEER: M68HC11/68HC12. (line 38) -* position independent executables: Options. (line 974) -* PowerPC ELF32 options: PowerPC ELF32. (line 13) -* PowerPC GOT: PowerPC ELF32. (line 30) -* PowerPC long branches: PowerPC ELF32. (line 6) -* PowerPC PLT: PowerPC ELF32. (line 13) -* PowerPC stub symbols: PowerPC ELF32. (line 44) -* PowerPC TLS optimization: PowerPC ELF32. (line 48) -* PowerPC64 dot symbols: PowerPC64 ELF64. (line 33) -* PowerPC64 ELF64 options: PowerPC64 ELF64. (line 6) -* PowerPC64 multi-TOC: PowerPC64 ELF64. (line 74) -* PowerPC64 OPD optimization: PowerPC64 ELF64. (line 48) -* PowerPC64 OPD spacing: PowerPC64 ELF64. (line 54) -* PowerPC64 stub grouping: PowerPC64 ELF64. (line 6) -* PowerPC64 stub symbols: PowerPC64 ELF64. (line 29) -* PowerPC64 TLS optimization: PowerPC64 ELF64. (line 43) -* PowerPC64 TOC optimization: PowerPC64 ELF64. (line 60) -* 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 188) -* program segments: PHDRS. (line 6) -* PROVIDE: PROVIDE. (line 6) -* PROVIDE_HIDDEN: PROVIDE_HIDDEN. (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 387) -* read/write from cmd line: Options. (line 392) -* regions of memory: MEMORY. (line 6) -* relative expressions: Expression Section. (line 6) -* relaxing addressing modes: Options. (line 988) -* relaxing on H8/300: H8/300. (line 9) -* relaxing on i960: i960. (line 31) -* relaxing on M68HC11: M68HC11/68HC12. (line 12) -* relaxing on Xtensa: Xtensa. (line 27) -* relocatable and absolute symbols: Expression Section. (line 6) -* relocatable output: Options. (line 436) -* 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 423) -* retaining specified symbols: Options. (line 1009) -* ROM initialized data: Output Section LMA. (line 26) -* round up expression: Builtin Functions. (line 36) -* round up location counter: Builtin Functions. (line 36) -* runtime library name: Options. (line 267) -* runtime library search path: Options. (line 1023) -* runtime pseudo-relocation: WIN32. (line 196) -* scaled integers: Constants. (line 12) -* scommon section: Input Section Common. - (line 20) -* script files: Options. (line 479) -* scripts: Scripts. (line 6) -* search directory, from cmd line: Options. (line 318) -* 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: Builtin Functions. (line 62) -* section alignment, warnings on: Options. (line 1309) -* 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 138) -* section name: Output Section Name. - (line 6) -* section name wildcard patterns: Input Section Wildcards. - (line 6) -* section size: Builtin Functions. (line 167) -* 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 1170) -* SEGMENT_START(SEGMENT, DEFAULT): Builtin Functions. (line 159) -* segments, ELF: PHDRS. (line 6) -* shared libraries: Options. (line 1102) -* SHORT(EXPRESSION): Output Section Data. - (line 6) -* SIZEOF(SECTION): Builtin Functions. (line 167) -* SIZEOF_HEADERS: Builtin Functions. (line 183) -* 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) -* SPU: SPU ELF. (line 29) -* SPU ELF options: SPU ELF. (line 6) -* SPU extra overlay stubs: SPU ELF. (line 19) -* SPU local store size: SPU ELF. (line 24) -* SPU overlay stub symbols: SPU ELF. (line 15) -* SPU overlays: SPU ELF. (line 9) -* SPU plugins: SPU ELF. (line 6) -* SQUAD(EXPRESSION): Output Section Data. - (line 6) -* stack size: Options. (line 1760) -* standard Unix system: Options. (line 7) -* start of execution: Entry Point. (line 6) -* STARTUP(FILENAME): File Commands. (line 79) -* strip all symbols: Options. (line 466) -* strip debugger symbols: Options. (line 470) -* stripping all but some symbols: Options. (line 1009) -* SUBALIGN(SUBSECTION_ALIGN): Forced Input Alignment. - (line 6) -* suffixes for integers: Constants. (line 12) -* symbol defaults: Builtin Functions. (line 118) -* symbol definition, scripts: Assignments. (line 6) -* symbol names: Symbols. (line 6) -* symbol tracing: Options. (line 544) -* symbol versions: VERSION. (line 6) -* symbol-only input: Options. (line 455) -* symbols, from command line: Options. (line 803) -* symbols, relocatable and absolute: Expression Section. (line 6) -* symbols, retaining selectively: Options. (line 1009) -* synthesizing linker: Options. (line 988) -* 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 1149) -* trampoline generation on M68HC11: M68HC11/68HC12. (line 31) -* trampoline generation on M68HC12: M68HC11/68HC12. (line 31) -* unallocated address, next: Builtin Functions. (line 150) -* undefined symbol: Options. (line 501) -* undefined symbol in linker script: Miscellaneous Commands. - (line 13) -* undefined symbols, warnings on: Options. (line 1305) -* uninitialized data placement: Input Section Common. - (line 6) -* unspecified memory: Output Section Data. - (line 39) -* usage: Options. (line 865) -* USE_BLX: ARM. (line 57) -* using a DEF file: WIN32. (line 42) -* using auto-export functionality: WIN32. (line 22) -* Using decorations: WIN32. (line 141) -* variables, defining: Assignments. (line 6) -* verbose: Options. (line 1205) -* version: Options. (line 528) -* version script: VERSION. (line 6) -* version script, symbol versions: Options. (line 1211) -* VERSION {script text}: VERSION. (line 6) -* versions of symbols: VERSION. (line 6) -* VFP11_DENORM_FIX: ARM. (line 66) -* warnings, on combining symbols: Options. (line 1218) -* warnings, on section alignment: Options. (line 1309) -* warnings, on undefined symbols: Options. (line 1305) -* weak externals: WIN32. (line 386) -* 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: Top750 -Node: Overview1524 -Node: Invocation2638 -Node: Options3046 -Node: Environment83631 -Node: Scripts85391 -Node: Basic Script Concepts87125 -Node: Script Format89832 -Node: Simple Example90695 -Node: Simple Commands93791 -Node: Entry Point94242 -Node: File Commands95001 -Node: Format Commands98867 -Node: Miscellaneous Commands100833 -Node: Assignments103063 -Node: Simple Assignments103554 -Node: PROVIDE105290 -Node: PROVIDE_HIDDEN106495 -Node: Source Code Reference106739 -Node: SECTIONS110319 -Node: Output Section Description112210 -Node: Output Section Name113263 -Node: Output Section Address114139 -Node: Input Section115788 -Node: Input Section Basics116589 -Node: Input Section Wildcards118939 -Node: Input Section Common123672 -Node: Input Section Keep125154 -Node: Input Section Example125644 -Node: Output Section Data126612 -Node: Output Section Keywords129389 -Node: Output Section Discarding132958 -Node: Output Section Attributes134139 -Node: Output Section Type135143 -Node: Output Section LMA136297 -Node: Forced Output Alignment138810 -Node: Forced Input Alignment139078 -Node: Output Section Region139463 -Node: Output Section Phdr139893 -Node: Output Section Fill140557 -Node: Overlay Description141699 -Node: MEMORY146002 -Node: PHDRS150202 -Node: VERSION155241 -Node: Expressions163033 -Node: Constants163911 -Node: Symbols164472 -Node: Orphan Sections165210 -Node: Location Counter165973 -Node: Operators170409 -Node: Evaluation171331 -Node: Expression Section172695 -Node: Builtin Functions174184 -Node: Implicit Linker Scripts182151 -Node: Machine Dependent182926 -Node: H8/300183897 -Node: i960185522 -Node: M68HC11/68HC12187207 -Node: ARM188910 -Node: HPPA ELF32193760 -Node: MMIX195383 -Node: MSP430196600 -Node: PowerPC ELF32197649 -Node: PowerPC64 ELF64200263 -Node: SPU ELF204677 -Node: TI COFF207309 -Node: WIN32207835 -Node: Xtensa226192 -Node: BFD229314 -Node: BFD outline230769 -Node: BFD information loss232055 -Node: Canonical format234572 -Node: Reporting Bugs238929 -Node: Bug Criteria239623 -Node: Bug Reporting240322 -Node: MRI247361 -Node: GNU Free Documentation License252004 -Node: LD Index271721 - -End Tag Table diff --git a/ld/po/da.gmo b/ld/po/da.gmo deleted file mode 100644 index 495c6034cd0f5c42d89bb597d7f7be3fbedd6257..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40607 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%0AdLi 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 diff --git a/ld/po/fr.gmo b/ld/po/fr.gmo deleted file mode 100644 index e67b1c1b14e50ec68a92cdb7c248ac6adce9e955..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49474 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%0DPrMbIBjQey>(4V*E-7Gw>PW0qb+S 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 OjNQ?2hGkgj^Zx-*wr3y! diff --git a/ld/po/zh_CN.gmo b/ld/po/zh_CN.gmo deleted file mode 100644 index 3f41d5787c2d4f469d0f159e155f76eb0fb84ba3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24796 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ξUKo%K{GV)pb9mf!gs><;*Crz8` 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 Qup>RaKDnYCF?WOiA63RpF#rGn diff --git a/opcodes/po/da.gmo b/opcodes/po/da.gmo deleted file mode 100644 index 42d668d182727870889a26fd8ddc5a18514831c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8332 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 T;!Xo%mPLb~$`H4Sr>Oq{(4AQC diff --git a/opcodes/po/de.gmo b/opcodes/po/de.gmo deleted file mode 100644 index acd983f25e6427c1252ef5c52275a7edee3f35a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16919 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%0DDC#+L(%3uL6RXc4Cg|dhH>+Vm=iHQ?bCdsPQ z)*kb#?DZlCTr%7N&tH2iz{haCF(Kq;{d59Q&Ls&zykM&=gRGe&>-=rK)=DC$vsO)} z;Sv@SryIg@jlhp7_f0s+1UNf?@+a^kqGaDZg)D?~_}&Zof6X-*S0^Ap6=BypEQ4z8 zo$p9?44F0Qj@~N{H{;WuY_)0PLk7*trWw3Hxd$G6y^yNhLDX1BSCRk7bLP29Lf|w2E-P}3$xjh&eG8?ZNG{=sMXy} z?qtTCYqHS8=7aVcUF4c%)7)Tz5K@S7+?<6hm>h)7psZ^z`IbfIhgo=x&<$tgP_QIy z8V@e^#HLYtG&Iq^Xu;mC;!Mh>?RrcxO{qx7nWRd|HLKd84zjQl)_d=ySaA5rGr=7v zO=^WRKaaz8NwCC(nl$%v&;(T{AO*M7wf;GYt#6zb~Q1%ehbqSkfQK3#uIqQ+6jpS0?BxyrT zxg~LPN*us;xi)6@ugaka4hkCqF^q*S>eV*kBB>aWLVJ48O6e8o9~zk4QeLy=T%&qC3TXJ7qIVE`claJT1C!L85+icA8uosB&k& zIY(+Va8pg3xhiKyG7_0)Sku>2K1wo#f@!9Sj~gYcu#s6iBLw>7ES`Bjrq1RGCwfn~ zee(|1=bZ*_n53N&OwvyzpM-~C);IwrW@TD(!Xu}U$a%>Pi57{{^wY_fn2v@MEV%s{ z=;HY~*i#KuSIm2&V@!@J78R66oq$XRi+OmVZbT>+b&P7{s>Dq6G7jpfso$|BOPmHE zVn|`!#i~=Q7i_XhmMB(Oh9-VM*6W^&)gaaik(yD~lGXF^UYVe|^SX;a*mcp|Nm?q= zrdUGF%17-ms^{nos`0b={) zErH?dYZuTibrM^mk-Zch^v5Ij6GAMltoUm4&TM|JLwEjHBK?NSWz*p@}q;) zUd0R}ieHjruyLO+q{mWuP4?5QIW`JdRzy)01@X;DdNw~=kXf&yE2|==PJ3QRVay&@ zAPU z_(@33xL-+rFZN1=Nsk&!Dl8&%TxxULgxry46bF3_Z3u(KGe;uZ*hf|+KKfM2{75C< z0uhgmtirEfdR5%gXEYqJvAcnK!{6E9-p3YY5a)}mVNdVNqz)zOOGVw)l0M8ICw+(~ zIFnX@Y?Z*P;;4y(OX{$pvm(%prQ&p=F-$E8F?sEhv^10!nUW(cb_mZnK&}sA zo?`3Ov=Nd7O-7rfro}p(9Xq+T#2LbN_iIdQmj`<(9cDH#?n8C=z9k2UXGOMw1C;nj z$58Q@gNG7FYXKY{*oKpE!`BJPu#hwbRgtSQr8p=sR70m!ga>A+L;^f$A1lgl9tM zG@;4)he>GKeC9z6MC_@`FUlpIX@yr}6l}Pro_H2PY!bw!;a6F49fbEd2N?4XRWpu! zmxfyG9A=3I6Q9W15fO8-Ly1S8CmOI#D<%YE#H!2BL3~%##2`&gvJ=I#p}n$!GKaeJ zR<~4xwGT@yZ`MOD)Uf(i^~jA5RBz8jSGClqyq(_>8FGb27{~VvRBf=%x>wL|$nN=@ zTF8Svy)cuCldL6JQIf30Hk_{e31NCRFgaIgAUW5h!Nv2jdXnTTTOzw1J1VJw3BMKa zyWigV8V^yl>7-_Cu_0*r z;^Sk)&itHO28dsbu4~y{o!>>q9gSI~iYJKnC;H>y*!4%v1hY%&J3r$##$FN{T8JTz zhRls0*C%RuiL4uujL+fQ#+0*oc&eR5o}If+;@JkJ=0%)(?s~I~-Av+EjdLOl#X++< zdy0vXt&naX28Nm*zj&2MNfOeXZbE*Q-AeO^ab~*nHKCdLDM;rvDLxY!t1|;d80voj D-S(Y< diff --git a/opcodes/po/es.gmo b/opcodes/po/es.gmo deleted file mode 100644 index 8e4253f5dc9b824cb2f356a37dcc4e42bf84dbc3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21084 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 VKn}@4T~*F9=6homF>n6V{{o`3LZbix diff --git a/opcodes/po/fi.gmo b/opcodes/po/fi.gmo deleted file mode 100644 index 97678b7b12135b7e7d9c6d5f4896cdbdedbae8cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23236 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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 HcmV?d00001 literal 16408 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 K_4Nf+SN{u0h^$-y diff --git a/opcodes/po/ga.gmo b/opcodes/po/ga.gmo deleted file mode 100644 index 4343237cbe1552ae9e2046284df52f6603a48f2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22384 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 diff --git a/opcodes/po/pt_BR.gmo b/opcodes/po/pt_BR.gmo deleted file mode 100644 index 083e8f42199b2cefcaafcaed1d421bb0b5fd0a78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8467 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 diff --git a/opcodes/po/sv.gmo b/opcodes/po/sv.gmo deleted file mode 100644 index 2347bdcdad1204497037e0598e95888db63f3591..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16004 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 diff --git a/opcodes/po/tr.gmo b/opcodes/po/tr.gmo deleted file mode 100644 index 98b9df15351bb968b81b4e2d65c0bf9170d80498..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16094 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 diff --git a/opcodes/po/vi.gmo b/opcodes/po/vi.gmo deleted file mode 100644 index 25ecb9ac93b2b6dae072c31a46b99cd4740f1549..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24051 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 diff --git a/opcodes/po/zh_CN.gmo b/opcodes/po/zh_CN.gmo deleted file mode 100644 index 333eed53c4e8211cf5951e3e74019324424e7a1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9050 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 -- 2.39.2

    3F};&!OL@=<|KiIL=1n|127(ccS~y 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ξ3^&3xV->gl;q_y4$mc_i?1f9LlJ@ZVr> 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

  • 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�R*Kb{${|@Zx=;SzkPJRXjAY-Mxr~su>IypN! z^U457r4GBUS|cxwk;5naml)CU&E(3EJ4BPYm_{OMUjnl65w9mm3Yt1B_gn|bnl`mC>$-P(pphaxR=ONFB= zZB;oVcrg`v%{!=8iK3jO%`2Va3}^D7=!kp(za4?=0~&8OtTV4s@VXbUH&YnbxO~I}8-j&dKMUaH9J*y-Qhp22MCW~Fw2mHhSPy$X|fNKXow4-`s)nx)@0a{TKt%ga2)HJMdz0rz4 z(TfO?8AN!q^kvMfI30yeNL2m>lt$Ra=^OsXcn#C?J5w5S)i=|`GcxE4hL*EI!o>vF zW1H0=vCh;2J#FsgY>*z^Jly@?!knJg>6LWY8HbN(EhMOcS8L|zrnHBVl2qpJ31Xnz#jtQkI(O*&@otdFXf_65&BE%P6fhcQ7IyJ7OKiPQxa%<4i z-Iy?HyX$&pe%tS)0%)$DmKKXpVw@9)8h5*3jmFA%UP)!9ut4t5mTzI=IKY^JMx65p zOwLa={_WJ{HfYUZFryX{=Kr z!eD}e1f7MPBa^Dxcs+Q*gS&XhqD&?&`6MSq1u2@%g=QAZ-spHVc~26R$3z)}cK#QZ zdYe3|Qzic7&U5A~rULy#515VJ7%7H!7sT*dcrFtPJ7{RO^~C$4Xj>6#*(xu8=5JEK znuuJEjL?U|^6zVSMZt_g+t@biCMyD@>}jaiKnsH&eVpghJFvu-~RJAhdR|-EX4aEu(?vl7# zwL#EJX2(qU7+Lvxe_K^GOn$>0ui68N`03=u(TbEg&wsWI?}~kH&QE&!{f6({qH}>&?Uv2p` ztq-IDzu)n}_M4H)M4g;`bAD>FcnG?_)TuY&v7z_($i$19_8kzudcI@Ix-P_4E)HtD zrvCp@(VsDKQZc{mLt-X)IMvXiL)~0(#0DdjAqQzG5+zB7J1;0vbAARExITz~S-|&4 zOv+RC2j$?Bcx6_O-717#1{Z{DlU_hkH@gah=7q}30r3{Y#*yhWiM=coP*(;-@gCn) z{BcLPMQ}5d|1Sqtkr_9ki$@Upq(4Gnv#cbtTG{EtUBDtI47O;7BoUFyU}cbJx)7at z8!l7;dSVT=yk1s<-Kd(1Y)NZ{1kQg#hSur}9*my?=8%=mCHvO#PP^_Bu%u{z6K2b% zerIcmLQ=Hxxwl(?804IyaI`cz>JG_i55-&MB6Enm1hER2jF~C`@PL`NtZoTx-8X{x z(knCBs2XQEJeUy*l#WTK9)`|<&V<{nvekz@#0pe>QqU89PX?E4peYSC(QY%hlC;}o zO*_^jIw2XhLId&ul9-$y!0@yP^2w*IE0Z@S9D2S}A(_XuB4re|C%H=v*Lnw)!u*oE zGPOdx($bfXW%0|ikO$_w5nMryCH}8ms4GXoK}g@D%RMdf;yxuH3bK&sYmirsr$EX( zl^*4RU;c%@={PLT2rF#Du|Ih5Apb3u%+y|NjvsuGAHP+N3EiM}Q9m9JOpn<5LvCk( zrwEuTNG3jaJIbTxIWdR`ytL2)I9?i9z6HCAHWvpkig;=oTr|V<6V-j2C~m-K=%_Bc zX9|>waI@Sa5yN(w!>WV!rz}W73{94psaAEwYj)$5Dx}6I@vm=p(qR072$?)Ks56-6 zaJwB+KOtCqij!C~Vi>JZkxN{8d&}(LYbC>t?wyF<4o(xbomd(v z`B6Aqe>iPl^cA$TNVN^2KicIL#AEZ@N<4f{O1?Jig1ddt3V{x1HMiXMH`e&WNfmLRoF z)UyO2aV%!pPcm27CbKy{F56%0Ge%UY7WeS+>Nb>0W6j?ojw|qaX+W{z$suBb+uiGC z1EbRC#}p)hlbCE7e^iQS(5peQUR8vx|7kpa3*s)04jAKhB?=HtFMmPzP|d$CA!G`W~tvXELYQY{`Z z+2Ur%3?dJx;(-J7dQNX+TsvgAPH3m3Zh|i%eh+`Q_VD*0Xhi@**y=`WmOg7=KiRrg zm&aVE{dDzt1v??yZ?J5r>Kghn_p(3je#`B7A%AG*Q5n~*pWW7FWEA9halN5|DwaXk z4Trs~f@Sx+X34ND2n540ZJGlni^LXOv9^*oya4V4?|=uu zm*5U?%Og^$ZQw}wl}%EqgW-OdZ=ah=O@V)cM3LH~E|uCGPJxm)3r4UR?gUTw=JUPz zb~p3sCvE4;}o3J-;QH#&2p=Xas}JqA_o|M1-Zvo1Z2Q0?oRP;zd7YTti@^1tm8myT+9B<7Q$ z%KKiZ_&)PF=UxlvU_Q;8ABW2CCQDN(nr!M&SP8!h4~O@_>2Skksnj$$6UzJrI2qmv zr@{}R%3)H*rEdk4eZS{RQ0-vPCKu0gsCIWFl-!q~Uf}0EPlP*SKHc*?I0N%F zQ04F*+yRblahwTv#(XSP`#TZt3%>+aAD6-1;9YQg_yXJ*zT^3KsB-={?1B|pm#^&jVM}rtr5Cwi0pfROkPh zFS_=%`5-S9;@SEP=l@VBf3x7Ga4Fmewn6#(8kD?iq2xRPRZky4>CG*^;^gcM z6@DaCehz@Uz~kU{umIIxz5*5gR;YM>3DqAyfFt4FUv>Jo2FktF^GrAz^A%9>{@UBW z1XV5@o$1>15pZwJUxd;V{csGt#`6VuH0Djd=H%7G8JJIos`uNV(zE4%yL221r5BEe zlKT~?cK1`L^!);U2L2hUJ%0fAfSY}tHV*gmoDD5MQ2ORfsC3-{RUWTG`Tq}8Iqmfg zC$9mj{92*f@k#Iicov)hZ}oi3bFXi@@W(*utuMnF@&}KCA48Sn5ofvap&Lrxd7ckI zrQa07<1lx?YWauiA1^|scfz+_y=UQA%xA+1@Gdw5z6;gwCw<4s$wTG; zLO2;d0*`?kobAT{1yJEngnPn^VH*Ads{G!D%3sBIoxW*=avy*b;jiE}aFcUf`Rxp+ zU>*zA&a!Y*cqSYUzYX_?=fO?j{qPX@7~BqS{5@AsyTDPH$3xZgv2b&^5^fK_=y@(2 zf%yuk_-^#}&%=!{zYRBpA9(XW;EtF-flAK~=emBm7gT$zgp%I?)vuO&^B1AgaW0JD z^-%5f87Te!k>{lEyL5Iz)$d7g2lzv%_OJ#j{^y|T_icCxJm?3mA9cWOF`oqYgWvGH z4yt~hhdaT4Le>AaKXm59p~`PDoB~%sh3|*E!$+XPzY4d8o1W*|+s<$o%m+c$V;z+L zWl-rp748PlhWo;+q3Y#nsC0Y`w}RWB@5*l^+!gawsCKs)?ha3bTfiSf`TrSI`P~AQ z?iZlSI8?hk6{_CXK&A6msCb`(5q#5g%OAUX9tS073Y5Ru za1WS)hr-W8mHW-!{!zFy=GURhWy1@cc?YQS8V4osNY6!3`D*dz0#v&@4ek!V3>Du+ z-u*5pxsQAIKfv8E|J%Fo@)MWNQBdQ-OsM)?4pk3lL8b3HDEW^;)yL~l>D%B!SI@gc z$xTCrul43`&#yztxeO}&-B9)M98`MWf-3LLFLH9GL%AOhRbE|C@tp=G=RBxz*TJdq zmr(8PGZ#C55mY@_LZ#~%sQT;l{F3JnJgkPlD7~lpC`hZ z@cXb5J`X8oBSz3>w#f7iob!bjo0@PbR6 z{<#;XF~91$-vCu^$HUEFCzQOEQ0?*?-u*HteRnHVx*vcl=VxIA-+}wV zZ7*~29|~pu9IS(1hSTBGP~o@xsS7_6j>bF6~edMO8$pY!2C@J6U|eG@8QpFow{h@ZK19|-rsya>v^4@U6E zo_BitKR~tjjjwR&-N&;Ej=_Ezl>679%HdL|_V*zi4mZ8hwexMD+SM4S^w0D>79N1P z3vL8|2-S`+fb#zWRC#^?C3oYiT)uXM%I|164pw{S;USnWgonfDpz3j#t6lmh!R`%H zsd~62_V--l%KIs({QLoqg(I$Y={y9gp5{W;TZgy*JXHTZ2dX_?>CN{-OSiZG0FK0c zi|brDkB5@85N-#TL&-S>j)32V+rtasq3}Am75po#fd7UHKk|B)uE|jOTnLrVbD+xQ zYB&Wx4Am|-yaCy8CRF%m;pXslDES{kwX=Ie_Jg}&UkjCwER5hcq4IMzRD7>M$=~Q+H$U19%3KX4_jtGu?1S6G^P%Ma z9I8AXgOdN2ci-_oSFQ)ZU9fM2YOlSXXTk{ck38>yiswZrxt~Cl)2{bBIs3s)FfW2> zxCE+x{u`=a{Sd0(3_#WAwQvG_8SV{tc);cB5YMGh{=Nd$Z*GK#z}KPbX`csO`s$$M z6@q369&{{8|-!R;P$6sy=Rm%IB}3+RIB&;ogPA;TDg$`q>f6{s7M!xGUzRa6fpG=Y=rB{2)|0 zy#^KE=8wAh#hy^<*%xjKCqbp_FsODp&%0;f7MQ!C+)srg;J2atoe#HwS3#xgR&V|_ z9E16fQ0;1q$6Wk-L*@4%I2s-e)sK3h+Q&~}8r}yb?>!j7EgyI8izXB@Vm2fL~3{<;b z1{MG3z5O{*<=hYVg*QUQ`vR1{d=;v`Qct>ew;NP?rbD^U@oa&L?-ZzfoDC0vKY<&; zN1@_>3T_SGhSHzIo^s{4Cscc#0~Nj-Dm|w{rRO53c&~y=?`=@|c*48?87ka6Q2G4? z?hLp5rAya-Q2wWRHh8wfZLt45RJy+H%@;w*xehA*_du1ygWmpS_!-RaLZy3yU%7U> zA5=d&5^f7yq3XBKo6m+Shf6%~gWF;L6IA>A2rB$OPrG`Y;kgh>&IwTYIvq;RkD&Vf zZBXI=1joUxe(n0#G^l>w0wwo!sQg|8RbSV6`$wR{zXsJWw|mCLR|zF=0aW|{k~d!g zRUXen>7x&!%5RrvUAgQJmCj1IBW&>YC&2A7p9Gbjv!MK4>D}*#%Fi=!fA|ShddB?5 z$)68ZUKyx-^+L%%2TI-*o)1H{uUBCO-1s?XJ^(7*kx+VOIaE1*4JzKBLY2=`o-af7 z^ADif<2Ju_=E+d`sD}r^HmLlc50$En`^7A1)81C`B(-#d;?mbZQ z&W97>Q&8=CqZg=$VZ;xW-xrwTY8b1hVPoCKv$u7*3o=b`%7d$0y>@~WFx&w*1g zp8*x_PB;U;4;Aj<*PMAS+ynDBq1ycwQ0?s*sCb9H?l=+3z8Q{#--JiP+dVgV!|l(` zgDUUy;1Tc&I2*nX4}pih>C#t#RhX}Y^7l7*3_Rp5SH5S$YRo@{hrzd?{Ezvoi+2T- z-0R?$@LzBfIQ(xee_KQO9}QK$C%{AD0F>Mp;UqZnZ6|**R5_gur@;r|c(}4V(dYf6s+q;`u$O_Wy+E#_v1xVQ@0` zCqmWBWl;I}B~<&{@&o5D4G+iM3}?ZMVJ&ltH+A>@L zmA|W? zYae^TjWHkMISuZCxf-4TGf?IFC{+Dz@rldFd^iE~_u+P1u-I}9hwtJ19}G9g{5iNYJOK`e zUxLza-+-gx8n_314oc47q3U6eJ%`ymU=mck)o@c-57Y2?sPg|RR6P$swZEI7!oLO; z&wrrOwa;EIKXov|oQHBh+w%sf^gIXE|2K%7`_@q9H3?3Ey>M@M6;%G7geu<`JU7{U znDwjiQ1Vtl)z^37eE2J<^z6IOFiXdLsQNzY)*;9#%p5KNl+eEuMdZyJFsIU*~TOJOpzsR5_gn)t=9VyTG48rSCpC5x(QOZ-p~2 zh6iE)HE+HX&cOUGJPJu28nT`2i`jdkT$4@Y2L4yB(9Q2DtSs(t(dsy#gpm7W*i zCUC>FYfmHKPME8q+H)gRzg!JfKQ}{Z=n3Y0@WWrf&0Qun8c|54uGhIR1Mq^ z9_7t-Q1LfF^}~~(`rGMH?fG)gN1^)TU!mgJ;y@>VUnu)p&o)?#`O9z?d;+4rQrnMr z?Qd_W^dAjX9vP_oeF18G{t;9;{u!$LcAnt+@kprpo$Q%`YCm6xivK34e*O%UyiF%M z?hDoKtDx#(1(g5upz?V$RDXHVoBsu+m-e1C%;uYwP~|ues(toAmCJXb!ruU`{-D~= zh6lOu`$3rxhstLYl$_I`(sKz^|9#T)MJT=cSEzos?ZM8xA5?rtL6v(4RJoiEr^B$j9OlY(EY$qqP|x|EZEz~~{{`j$R;c#z3{?C02UI!kJk{0n zL7sD<C*yp4)m(^=ySIk8eTsvrC}HooAui?G_7MIUNAi?&d?ypH@MY#|2RN zx*e*$JPVbd_dK^-=-T}xsPbL_)j#^6{Cxu|eOG$>JE7|NS5Wo*3RFATaFHvYG*mqw z1J$ltq1y3Rq4dKoQ0aUNN{?*6cv$L2SP8F$@4_bdlVgXa?tmK}H!Sr}_zS3dyZv~V z@3)}pb&Ez9|468IG1r?juk)eW`Q_gJWq1hY z&n$6z>9}`PV^}%L!2az7AE715o+97pi>T z_uOr%v!4lNpNHe%51`ulgRly|0abtLWv;&Kq4aYHR6OTG#j^$~{wJX7?;RMytuoI4 zfl%%1c&Pq(7F0jF6w3ee-u@$~e!q3oFbjVGRR5R*)lR#i(svg-=6`H`_G3 z`q~w$JsktpuUeq$EeEB)z5ow}w?fs^2T=LiyTx%1RK2f)s+X%gU-8^C>%uL9({cYI zRR6derr~Q)<+)RgNuqeE%7$eQvhg zmD^rWU8>;{HLg|fbq1wyupz^m>htmrap!CpUsPb3=)jwB5rSA+Vy?8E^p1Tq% ze~&=RFO)w1BUCy36)Hc&I$ijkq0D2T`t1y;_Pr2FULH#SeapMAfr{@wsC+#Sm5%ql zdE+kEe)fcle?C-ySnPQ+RJ*$XD*OX5f`9NFmUH&|K&9s}sQx@3ZUlRw>h~n5be<2@ z{%(fSuYZE7j~%;Reh-HVUk_CdtDyANm!RZ-$MaHee;c&&gVOiUL#6XAsPSWy6CER{ zdZ~ocCv{Ne*y(vXRC%8V72j1*<#9VydE5&l_^Rjdyz967L$!}4sBz)jP;zdBO7Fu^ z@w^DtUOt2>&rt=J&UsM%bU9S{oC8&l*Fcreliq%V9;b)*f~w!cpvtk)^9-nR{y9|n z{R+z8M^N&1?se&!3{^h0Q0Z;*{3=vCz6z=zJOw5HP0yWHx^&Kjl9z)v&O(*@l~C>K zPN?zXNvL-BCR90Wu*z{KD7j;y>SwXHKM|^4&VUgdfJ)E(Q0aXQO5O&mUAlLMihnv( zdOru1|30X2=fR2a4yb&-1C_3w`kensa6im-Q2n_VO5O#YcS7my7oq%ZevYovfG!chHCd;fpT91RW2{VnQ)6!TzSre z!!R%6(r=>;NedQ-!}JEk&;2~OAJ>l9y@dI%+<%d)fomjo$6&V?{Gk(J|F6OAkJ$en z)BRkPn47uI=hAOO+`h#9?cDFq{eQT&@@{fJ6!Smf#$4aS{t3+bjUk?MF}FBl{C^L2 z-@wn0;Xfq{fBHSjbpltG>sGFVxzwNaI}E>j;dcWsdr!>C-+yCYg`5p^dAIlBxAAl< zyZ~MVRezJYe&YSy2S4lY-}6N6r~ZJS+qm?r^>OO{as2ec54gIx?#HbayYFzXHZl!! zEoP=psZG7SvwisaxU1bxCyk$lr{m7hm3j;A&-FTXZ*kRfeV(fZx3Sodv5l(ZYGoad}ephq951h%x zR44UA%+GN#{MfGos=fafyDxD4n(Gzs_PFP7;WpUs4R3~f!X4oogxi?=Rov@$5%>C? z&b0u$Q@vSsV=&iq9l`z0*l*1J94`GHaYzkduRgmI{4#D|<^FoEhcO=ww}(%`I;h`I zxGv>>4*Zbo1}^=s=Guw!c)(2L-^b&Psf#5K_cySA0?W^FeZ-Z;z8kxTxenGn*H^Gt z|JCm+m@kLJ2s;`-cXPiNJcjE;uIuE<|C-?T_`8BIpTkYR%eXWK?TlHvhACNUXZ+~5 zA$E6RmX7%ZZo%~!N0(bCsKf}+N-hMak$7A2&D-+@H>+A5&TTO~7q3*PFPX#dV6a zPOX5`xbDQ?Yh34XZG*pCU}fj94pzk|HL+wu21 z?vKJQ`5VAqzs(3!31@rr`w5vj?B2pWn(I>T-{Bf*q0lqP`xW<(U>AAWOj}a5+`oYR zj$Hj**W!Kx*D~()dy)H@T;Id*eO%9SZAh43;C43l`kjm24P2Xf^Oo3s5%X?bUEa<- z^56ZK{{|az)9-KaNq1ZFe+K*C`>>4(8Fk!$6}LO_{ZpZtTB=-R9o%8Mrrg|DBMv1O6_@{59M@guj=6@BS`! zmvMiT4}T4A-{XE4!u-J79qj$SkNGg%zrfYz-ICY?d;M|_sefSpsSo>i?svuhuinpd z+<${>cif-%{;RnEEB9&d=MA{EcN2bw`9-du}Yz?%($QHE#>QTd;rE+sp1O@9=qV_f;?B&z>RN6wF7EpN+ZB#quhy ziQI?Zw+VkHetwydeHG^6`1t~!wuMbz<{={fG@o7t{|mmurQcM{fATW6g|FlH$IdCW z9pvJB~}gXL0)n*SEM7)qL## z3{S%Rs={*r06Yluz1;tZE6;VN56^9?2Dbwf=5J&Eh-)&}sq(<@7u<*6m+||3%+tB{ z=QA+WVYx&?0)U-y;Z8-o3A14kzA+Y@RXPHBRCWH zVe*5_N8xDrHSA}@|HgU+_rtvZm7Yg3v_ zy!xHW{a@e>@N0y5k^4uv55EJs{~OnvxIM4oegtOs%#JmRkO?~*4n0LVK6|T*2*Y9)QZCmbN!d}1ca(#*G zUziWznu4FNd$+r=*Y6?BKg9lJu1_#8!h96>zmuK$U@k@+{g^Acj`!i`ao@^y8JB(w zxn|+-8QlB5AK4#@T_u-(f8-j${d0u5g!{+2#&CZR{wH#6ig^<5`*Wpz7_3rr@be5; zyA1sP3%`50Tl;?k|8Ii-9=I=V-^cGs-2amMSGjh_?H=qN;;P2Hl-WhKXKiO-7)aT-u|cXPuLyKb&!`;h22e< zBe=}_TZTFO&hmD9V{x6oPvL$f_eaCeb7i@%#eI9OGkm~_xbNrV_`bIjZp3dDJPG$* zxnIrw46g9o9y|R$c1ZmJfB*LP9q>@xFUPKd`}5(wT;bQn{jOZQ`FOAAelzd*A@}ES zUya)rLjbrM`zMh3H1{L8pTzyop?+I=u7I~;Uyt4O@MErN$k_=l#O;r8Bkxz?&gXhQ zVcr72hhUe--|^UQ4fPx45dVK3cSqv4)!Y0Qj>P|0@V}V*J!C&(L_=R^Q?8>BwdQl3 zQAMG0#E8L`jTMC@&S7C!OSZMWE87wkh6=Y<=U75yzsCCPiM`oEPkUEe)Sb_@oT2Lvq@*hM(K1* zwyC!*O~UYQzgg{t?v6}fWDafFd^*?F(HByVpmddjb?1pX-P+!fO?M$Miss8Avin?X z)U!NG+PZstB6*3LvaPv%Hp;Hd=7T6nn(3n~MT6vJ3PeJn&P>m=rb3H+SG(kPX1dxs zvW?Rk792OHW=S+F+nj63Mjg3T=?>&~_>@{o3M!vm)LS4I&Qa+rSZS2T8B7aEw+S8_ zwYNrv?rd{=YkRh3Y}B0TA{WuJOm9zaR5V)oqf#@y9X(^lu0!6kwyxe$W1~?Wz0K_{ zy2<1_h2`D)KikqaD$3=fQTR%CWmly$P3@z+v~;>FN9DNOy5!BuMP0cb;`Nq8=UGKH z%ZjRx+_pD|tVK~=v)&=J#`dm4Pd3vMQEy!;@lb}LpwvjL{koFFFBZ6$p7xD&YJoy5EM%?m$AwzZS>n>_9M9U;Z32IYbeCi} z6j0A{qG<1O`E1X1DWVRA=s+Q)yLvmDvU%6@lyleT)WH)$BAPJ8-x6i4Gg%kQbg4_M z^(Wzx6CM$Dl+83R_Z>qC=u!f3&gR>j(}i5V#{@O#CbS9fn(3hLH}ypsr%@C*H)O1F zr>&BoZi^sSlx<;r`?UzwfqYyFFkb<>NdP^dqrIok#Sse)?ZoO({`2ymmp&*Kh3 zGWoV_&$OAdXVq2Btx;U2n))oO&N0e0osext;kqt^0`Y#eGJ{XMFwFsLm@ z84+b=F&G0_RZrBB%@puR)ArTcn(IIZTB)sS?`dA1EkvEYctKIOQDa?|l0Qd%q0Ty5 zL{vT5&TLl?LpDzHx;1vV`v%HRnWVEdWZUE?qJeZH+`LL@%xcf$DaR1DAk)OCM$gW6 zcK7s+ldK^;!~th(46M_zww8cp9^!yQWH7@xn(J0lGad5B?8C~*##vwY6$Kooy7tPf zV7jI!RlXHlBUiwxLV*TN_ipL!>{f{udDn#Qq-Jdovoh1(VRfXw z)#7F}#okp=jn#Cty2(jTU$@nzZKq&8UjPC>7q3?S&pU15*S|z0E7g zYX_DzQcby-A>?`(Cn#33?A!}u6tXTC_miZKZ_UyF$O;{rJg732#=2Y&ZMvj1$4{X= zY3<8HOq8(fBzwM}6&`6FNb}Ovi27_tt~p~(J5=zHmL-vtR2hZe)JHlbE%XwV!`f=K z#Lsf{P**N$$@FB@wN#$U*pPlS6Kzv1$#;pbaWufzj`rrBPmMI0^#<2I7*pteWhw6H zO*X_5pQ_RJ&P-cY8Kzs);neA<$1(*qHY!MUDaFOoO9oNKefP-6)u8D>X)PDyAV66h z>-N0fQhn90EpF>Jaau!nEKlbmKMvS@uf3#6m6vWwe+}Wfve}kGtY+3LNEnEH`pavv zBpR!XFjGPCq>AIm;5&w}j8lMazB!bJo9YI#=_5W(lC76|7$K5UW-YF&pFPn{=|ZMa zD}$3#v?-3O+46R<{sBW(kBZzl`Y9o$=gX5GN_!mzAU)a8eo`^*Q8YK(S!Tn0y(81c z^tP&lnSU`MOydge>XcJEnV2#@Pp_nlbv7=wPnQu=Qn)B`5JxgLYl2x`Ksp;w|we$&P zvalkGYBiRXCR!^4n^VTX!$o|f@Gol1IfJHiF6NKcr; z0PUJ+Mayut)CzRJ{U}|2+K@2M=`;(1G*bzi5jijX&%Q&{LbifKK^gN=`XLQpE^wiz zrCH^Y>1bz&@PW<1h^O(56<{=DYM1MMgegQ*we*=Tzu~7fled-D4m~>W6WNqub)bl& zsk+tO^r&7-T^2|yviYbj+m+2TC1ixd-G*Hslv0kS@}CRi@wWSfAbBRb z`E;xGv#EyZ(LAj3?W|}>q_!v`s?nTE1GxmZn1r%e+M1h-G4!SLy@}bs3Zr3pZdJ5u zIm4b)>g0<_H{N^U zZ&S(nOkOKNOVo+I?OCn*Ps9}e7Bj9z=F-vU{rQ!9JPev&4Sc>mOq!_eL9^&oLzpzt z2c&~H zaw@(|GtOs-h=Q6#X=&!;Jo?OOzG1S!7d-RFV_>_dnLmXZyp~ZgMtfGnV(&GQq0pCa8OmLLzAcgfQ z8q0@nA+%`%ZIve!QQUT8Eu<-chDyys+Pi%4EWy{Umw5azcp}wGuuP$>iL2a(YUc6e z$j7;yz=O7}6}VVcEDIBR6h7Pv`5E*(x}6%*bj>{zb7^H>rGD(Dl<5^jxB_o!W(_63 zb%yn^b`(p9wwvf+vF4_P*48RJ2|Q@%sqmP_i}?Z8?t7%Nc-G`_CH&cEzpJ>znQ24u!v@8zq*#y z)}KsnnSk{VIA1eO=Kcyn5-MCW7rCJ@q|@0}j2u6Cb*1aWq$SHeyO}8h6&=(#iZ=7v zDPrfif+vPHj>VxY79TA3q_E12x99N%He}frqoso5^i{MdfGy8l;L!`aR&?c7sr56G zu~*f@{%TV%vnP9ofS8WeV+gaB-X7`arUkb3Xexm|TVMlBTlhn(^F%1xsm(JInnHO> zr~CTc=CS!L`ENmQzKebQs5`^s8?9*l#-D|&(v%0i#(s6$KY(@5FoRyQ=P^CZRD0Q# zi+v=bk4E$CHq+JTdRcmw6WGhp5O(8SYBZ#4AP=@-+e4yQ++@3k*g3W&9_b_w)}A4W zgP!`SKx)aA8zaKBuc@^qG0&+g6nG>@HO7z4P5*`mI#Yvh)yh0%`3^m#u%Or|X8#~n zt6&ChbR3V=Sr7ZDB}}uWA*J|AYhZ7?DaVepOB&A}W2sIWLt0WG!Th-b+s*Y-5~$8~ z(Q5Q0JM8!-YR{g$haDm%uN!Gzc~XNcio7}q0;_Y~eNktw#h%n3m}$1@R!=)^xF^%u zZSx(~vMUG)JVAxWZb&**c*&xjgA&>)X_nM74=4^dWh~07M^--DnOn)DK>z%tL|VPM zl?$@9YiXi1=PS^2yR};svX-D1RNOV9g|{$`hdA}u%G1wc()1WJT^Favc`ut@GmhDl8&~XZ>bamO8oy)UyC{2@_qIG8SE66pIgAB(@kf4+-CMBz~nHAZt zq0_Q{;v@lS{DL%>nDYOfG}XBqY{SajkJ7~ydVy(86I$8}&8)YEY)6S&W2+)vDpmPA zHX*<=UDnxxfG+ir&Th0yJ{`6J;`2=s)Q%t?{`c|CnaeS=MRTi6%avr9<%E)($f(o1TE;2~#RT~B zPP>HINPF_MQw}&KeX3RY`V>O7m1RU~EFnq|%`{Y`*Yqg6gur42_;hu2X1v1sU&gMo zR|@{eF_ZEC`!TOao~esQRz*vE%VW2vi`^>KgjxF*7_3iSpMqbE3?0GC*gP7|;s@83 z9K*i`n(S(xVK_+)RO&UpxcyeRRrfT%)w4b^s&|E0T*Y#vg{QII%v3n9piWRC&F!0% zh9EwB#^4@>l)5qX@{jnvCj`dx2pV+UZcvyl6rcKWKJJ)qBnXo^n|6^r?=_OwOtV%s zg`U0+&D%|2-c3w~6zCQCUd8{5;V`%7O3Et5%ecDuxEt=A+XNn-VFqGQz z$NX5y$y-QPfo*1<<#m~==KNbyY1T7q<5Zecbp9*_?Y=m~G!QtKZ}CT?sCo%&)gaz5 z$+DgJuSA#~^B7W;64)?_)Ulbmmi4$7I!7lwG#r=g;f1-UB&>A<%u6U)A^2zgLmr)4 z>-Nl0f_ytlk%0f-tTO)3uM7T<&E<7=`Ty`-zPLOXVmcotWi-tHPtWE5pEJAtf4QPS zPiQprW0lt^rI_ELM=I8eyIBSKk;hiRE}-p%)cTze^rAZs7lZ^o$7we2g6bW7PR_Q! z(hW{Z7{UGd&k{@Lagnq0TTZMmbWTIR5S^w zu^P}8UQezvN~46?c&6{squG>VmmmGkgR)vDW-R^OpAKd#-43lL6XTuyIUIIR7^c{K z(Gxc+z@2}m3X(y~vXVScq^z;ckXNczbK!UoqU^XeCy3cxE|C^WC5%>XwpSSi>CUM41PDqAIR?a0^N~VHc6?+FLYj4EZ8w*8^A15h@b3;X< z-Dw9fGzOZGl5~XSi4rSY=m#0236jsOvW>$r+EtAj7F5k_u+}VbmSiu>4!ScpEE84I zJL8O_4;0q#yjYcuF4&tP3#{hd!AVUugSe2Sq1s=(hwFBDOq{akUld^BAD7Oc5-;vl zg)^b$8LLmG$hjC2H_ScB0Bk9|D@P$W1M&;AtWQ5ol!OUZRL_QX-6&bYC@-kB~v(U zZdLV>wRJTnZwO&Yzmny>tF}*&EZ<|N`8Op(vi!boi+{Z>*(=b?p`S+zB~f!F3eT}- zNV`+_g=zEVFK`c7dw8%H$>d%eP=1pEB&B91QnH+r%XCd^YHus1#qO%yj=vn7pRhe2 z9zOWUSq+-7IYnW-B-6tfkob9F-eEoDDJ*YbX#}zj7N?WQlKX|XVywerYwJR{6GPXv zv17F9xO9W{+M(ZS^1?V$=}s%!BPw^U*0oIu(pu4uCdcdHwY=;Xr1_Wr+2eOXR zra#jZuT4xKMfPdG1ytFmzwXDIdiEOMdI(&{i+*D@=_r5GFTG05Y?aRH4fSKyuctM| zWk1h3c<9x`u2eK-JflQMZ)cZnub))bT+=6I^V%wLzwqYOiuP`|32JY0crQaXHigq7 zhCRfvu{N!0)~tFj&~|TqvAe_ltClM|zXzvRW2R4w6u=jnWaW6a;r8f~qTJ^Fx@Ao* zlf`VVwS9Gv7H2a&$kfiXJ)jTC$#mq{kFpbyagWx3te@YcDsZAP%|M4 z6HQT=?Zr(Ui&pQJ=6mhcs#j<0)Os>t7-v^1)XqNsh1UK<#+M-Ob@t3G< zB`KL69dFX!AYKNQLf#3m!8!B_%TiK6ap)dG0$oN)u=z;1vxDGC310uW>4(Z=r3)3- zBo^hMc!R4e8twDycn}B4tS(kHazwg2-@3$!vPqqlW#cqy)3MVul#QL1vGW&Wr*-!> znfe<$EwASQg|X9Gc~d;=PHyvnC{%!xM$;Z#FI6*Zb(m0(^}~UPV#3{>J0MX-cdm4= zT2!^H%ycm?o})cLcEl@q@R8$xWg)oDuTHphtRC#dScA&30~88vFOLoOMb}rS(V_lK zC!4A|Z&BjCx`TmpZ7KKZw{}(C)uR&^ilW+{X1N!o7Iw9B_FM-icm+sK-F9Hp-so6c z!8j?iI48UAi2ad|8Xb@x&Krfp7x1KdxDKQEH}mP3c6i!OL zQyeokniGwtX|AA&aqJND5z*+je6F{f+ttzNUUy){*5bAPSPf5?eP!4Iqgra9o%iSL z2#Y$zsP@9rLQiMUDAMjyFvniBTX$B%DWrA!^+%G{?k9Lq%bv*z!=d8zX_A+Eb-N+_ zI4^VE8!tn+$Ccp9er~3%y;7_enBlqR-Ha0J{5H+AF_aOw)&$5RY#~xc@q`ub$?j-7t6($ zdeLVXCH+V?$mhIhv^!}xuR&5ZBV^)iD`s9(X&DpcqR}{o?GM^wcQo32M4`v_O5ePO z15tv-D14TZaJA$#t5_^1_nz$kPC$sorWa^~gh1P= zAg_2Hm|jtB6e?Lucddn20qVTdS;55*Nd6N=FM8X*{iNat8T5EY)If( z=Yo0j=C}Z>c-d$8aH(h;JciH8x);U#5%{u$fyJ`*J#2nH*U`pd#UT}iOQRk*DS@19 zvlR4pg=a%5G|ibhP!7Eut&7}iH_AwZpZ)oHmbP4Jwl;-eAHttHw5o0JuUGpJg>mET zfM#s%PBacmxSnikSa1g!NeKI!yq!bw`~91u;{v@a>k`FricA3w?+#5^I(z(zLz!_I zmT0e;6P6m8>Dm-TMo|pe3VjPS1+y+Spr%L@v!fu^%0h^>s)MzL@aG$~Pg~xz%j3}3 z74-UcXs^7V=;t?@@}OCY6B!#WDV_zHczIv01QIpk-ex$^w1LXG%xh7d#9k^O%7Q7=tHBA9V;a$zy9c{(;9F>;xf=R@xTc`Bmxj>m~iP1HX_3%nN zTyL@QjBxF8UA&8<(W~<9Jz2DTRWzFAR<4=bV>Lu*gIM-+qtSc;rA@aD(P-E0oFZ#X zA8X&OSfUK2nbm~P)}%NTUT3y0t7&~(h$gN{D|6q*X3a*Kr}H5luihK$@=IL5b0Pfy zWz}x_+nQC;mum{D;`NjfHxfchj32ve8kqdGMRQhYgrc%d;`~9Gux)4F&spw{?7Q=? zY(D7y+%^l-P!guao!4vXZKr#pP?P(vO7o&p-+tFkDsZJgFx+J`0u!An@f^;-vK<^{ zT6L2OMPgwu(5rKX_3a}5&=FpI-;UeC#I?0D_x9K zHj?nphCdWJJB8)w)(zj{^HoP_FO1y{Dtjv$wIUE%G7;@#zur_baU%Cw&gkT-Q=>SU8ibJ~elNc3@^wHI*(pR}+8kTzgzE$9YK(nn$xP%UM!9g0G`e2RbVLux9TTG29n zYQ<{a)b}rXxQV&ucfDbLCk>>C9rXnUH&=@1`^tMog`#qwM`3AAtJ0eWsi=-~pn_fu z(d5|5Y3ToE>Lk?y_vqJ_sDxWUZ5P;&wyyyBIij9@46z@f9o3<~PE+z#5GFgF>@c&_ z;64M_91fZDX(A%@u6A$7lb9>{*`D(dRyLG>_(or9B+FttBST(_DMw{AuBkPC*&VIW zoYl!M9szdQT;2KU?c!}J=7?yOar#C81wK5b5tB>*F?v=sGca;4PDfrfB(*qeDyN`3 zJG{@yYQAJ=&x72#F!Mx1mSEe+XB6w{RpJ!Jf4GG^-zsFuwyw_JWwb7D_s^A9W|Jyc4ozbTgIAEuDSETfPzayCPRpP;Kfe-TG-z3OH)oiXN zpKZEkpNSfdYp5@C^1?&Vl1HK;SY5V@!jpHoBE{cOH8 zL;=#p?3F(Cv+!iz+~@is)IZuOR61MU%5P_nnn0!*-Pcsq1>HEhPeoxL^T_9d!v3#w zaz*D}*vUkE0)w$ZFaPNvY3q@$U%QlI}O zhDSG&`_@)zU*}UZ;frOV_Ot$5nZEu^4xdz{`uzx3e2VRxTT&X{>;rgoFY3T_Srpoc zlVXj?%D&W|gQ3YIQGTTrbZ#;ZC0M@o;>aL-I!0{QVjuj_D_4;|f-#B|R>1($q=Z`PR&A0`T2PoK>r)4koAvjj&g|KP=? zg&<~I+H;F;?!BZS)$3S#QeT$uK&WRSKxaMMx>!!~2Jlet3KjkNlNUu@W#N-u#wo7Q zncNd;AD+|1UAf-2RpEMrbKvrugf8M`k~^JxXI3ZtC)94jxlk!B3BV_d(? zxES4HV;FOn>C0k~Ya`5fQ~<}J! z88Qk>xD;E|8iVCk`HD>w*`ssM4fXB6u{4G7P(D@eRPu;D#pey1cwC@16ZL3|)us%& z2s;W-aah~%-oi68eZQiT&!O?b1Y0=J6?++7XaQlYr;jn|&M;A=7wD^lL%MQ)n<>H6 z#J(moG)C~LgEuz4!{Gg;sA3XFxl>bp^$~t`(d0vUH<@??Hh7hBb*id&|B zwzKj5{gy!oi2wSyw4oBs|>aqjTC&@bfKu6y#G-bd2M-K$^TU16|2( zQ7;S1&MaS0B4_jJYogKBdN8Wu8I!8EL6O=XlGv8I5!q1+Pvh`kc6QRn}!ar z+gd@I2*lYdQhtSABEpo#oZ6Z7RrSYNchI34AGM7M`u>C^NL7<`phkwY_v0S5Xpw8z zMQxx%GurTGzmud=q3yTyQhdd4Zs_|Fwk!?fjRc0s6-32{G6-7_B#RD8WWh~-oqxVW z*xuI5SEDpUOH8Ud@pViF>@b00a-MVviXJ(o4qB&{2kY)*XJC0xG~v)g4;dRBI)&@d zvC+iwArqh;|vFz_OE77PMP3c1sI}7zc-=Pu(EU$7Y^zuOY6$nxh}Pna8nPmA&RYM|*Z9P7i5lXezV8KnnunECUU=YN zGSAbO;C;ep*UqV-BD^);1CRM|zO2!*>-V{|t zV@^JnPT3M@Y+?YbId=ZM`UP$w$+i{>KhxoQjQehvH8We>ST}Ou3^#Ofwr*7L>O!U>Y}=L15xHgQ42)M|4|JJ7cBsEii+kBJ1OqA3?0wgr!VwP=rBqfzOK=1~gnY;C3J#sYl_ zN7cU;eLdJYsjdgRCbjj^Sw484^Pfi*=~>`iNCeSDmo$DCTjgugyv zyEX*#8~b@Z?WnYmS{ChkyN0kW@Ud+z+4TKOyy{hM>pp%{L;9WrW0`T%&>Vg8T0);6 z@uxl9cWX@*g@s#cuD(>xOl75xB{KP7CXafa}^z{y3v}g zxuu#YX%WY#S4@(;ET~$rkQn91HV_ASnqME}bmyI%GAZ-xgOKjLlQGD{v6eB;4zV;` zy1JFU(l%-3WLn}#EUAMWeKLI_%bXWfH5}crpnhRBWzv%=tSEC{Tw6D3Vw_Vx)X3w( zgdiR$x&m1`hdFPxbujIyqU*zqe?)5NJ?%yQsE!?33o4=H>7dsmwvQdo3NRX*xa9Ew zS-2j^z(kJ-Qx<<1R6*h=|905g&+KTWIM`8YwHHnKwI%3m?N1)q49+d%&6ak|^xK_9 z&@0k>*NW#aWLCql9m3R5U~;>%2xk|tt9V#6t(CDBJ@UOO&%s&D5*nd*QO|D!gGzUGHlsah1SycS(mkyrLuusb&j9iKpaf9EtujKgzpFpxR%Y5L% z{Ye51>TzE*CwIJWA`2cnHwnp&n+o$ZE%r=gCEmk%%eDD0@gA0^6B%mRTUDRZ^kW^- z6hpZ5xoKo_>bdst%x#$=6&10nMNK3%kC)or%)g-zwa^(q;=q;Vy+2x0$q8u=^h&+y zbh(=#$>iIqZ-QaXB;P1!@7qm{%;>zEZ*QxF$a}5-gD$an|A#)jwLhU9xb!(h7vcX(Y)ES?cQ&Wj>W`?g*OUBixwGIAnl-gP_Y}gpDJA-DQE?+?e*L^7 z>Z|6uY|QuH>Zbu~H4BP01+huQ2smvnqcinNx>(0QZS)m~iC=2}@k(-df0t=>({lM)tE)NIqmOG!0E+E4uV zkGgHmOJzvxr<92FSFx;7o36oFrSUb4wIo6*aIvse>HdHe8iI)fi!C;m*yk%Xl{xCo z0oxFzYAgI7W-y(t$$5#Gq)+=Z7XH;icd~3;@Lb$5vbgzjBwsp8ERISiEwozyrVWWV zU#Su++aKl-cd%8>1fQmPyl-z`?wvv`Ds5>Z@4dv{lzDv(XN>FJYSV0cS zjDOmcFFr*<`K^ba5qPpM)N*>#b~9DFgRB?{8k*T6Qf3l+7E-Vc?n#s8-hNZVFRlC} zvLVLsCC z-8~Gp>H=Y&!7#+f%cDXkEp&v14=yCf@1m+aBzZ^|bD|(JTr}0tWMHUQM~@ESE@$HpjES526sgBdz;wckLI*D>(5cKX;2cCQpZAt zx46)UeYAjxJw0Y0_9ulFP?*fh`l7m}^_o@E0vE8H3G*;_ACKrZWi)N(cNZu@^pUiR zO=k$KXA|!9(AvB#tmBVUrK76aV^jWCn~gIYW(DJs^V17sx7zxmKW3-BtAj6|ohQOD z*XT+Z8*)6qX)gr7e*Up2n3;pKC$+Hd=(>4}>nd3k*P6A{0Z}pv7rj_w8fTvt^D6^)!@o zaX<`P|9W=kCyPZ<>Q(MR7h`sX`%`JsjAcHgbHdPM+IJ`)p`!FeCFveNupUZ$aMYPC zBrAzSg-tl`ok&~=ZEFjKM=@DOhLRC`3JFb2xsi#w)Kf${XU(zIbFgrg?~BK^Ni_nA zcAsbE?;G0VAZ!`ff~^|MQ1-khF_g6}z1*J6Xq4ahDXeQ2cKOHTI`i(92X4E-b{&*} zLGE6+swtGYv;5=yl{MbP!}nwDbdBP5S<=U0ReDqXzQlCyn)KJ_Y{tbO97`>f7s-#N zhErM7Y0Pd$)`(`ZJI->h%cH&rknq5(*0uBMIP`9-3OoE>4Bg0gIZk0(s|@frL-ltb zWuBR|iqVN0T~v-sP`OH9)YYH%&ft?p`*bvG|*Sl}N` zyS9$x4$Z0f!!yZjxCaeoRjyRfNmyE!r!SFmH#0Kf(^RyUa~FZ$3{^amV=5sTssx^w}=u4*Rz*U!cn6(5Oi1K!Rs0FQ+zIi!55Kb zKK38xekc1tr$)>Kt(3ez(R_IsXHpbG_X;jm<&7n4z#&(7-eYmplmrv08M2L%LoEzb zZnIB2Y|H9K#eb?&f7G;xzv444wb&iX;S0!m;Xp|%9uV=**HEZ@Tpa!E{VLtMMiedP zCBFEqZtrseJNhg(b7*+vayu~&cEU7q8QsG46pgh~m( z)hT6>X|)|i@62YjO5z;@_kd9Iwq>hFu`kGUwuQgX>)z!Wms-~QDS`6A^SG40^vvgH zGn|b{W%LKebZ{q?%%BQpY?RUw#i|8$lMkjGSi7{Cg-&3&<4HQbLmgYy{bZOP!;k_woi+ zH%~C^jS`lJEqkZXP#gklZC%Q_%B7j!)!KAT9O)}@Cf!3g+dR<)acA>NpZnXvaeY*> zRnH;V0_QKcXoAFaDrG0j{d76}ja6PN&@Qe$J7q@B0}Rdr59Lvx8t%%rF?+=WP13D( zi?evmEBtiM%JDF_B}OA*htRbR1uLEw4Qs|EVQ=<32cw6oSZRL%)4WzS$< z_0sx9Rn$&+jBd@{2e;y(gOy1&YuQ=dJC&1=Zq7rff`k{RQOd-cng~xn!(zavL@Q0& zs-CvA5MgC`l5|kj4vzZg(SA3Qu9u9&b`;#J8BR$^x-2_aXfu(Vs#SV@%o5!lOdai? z1oBd6@NZdk+rOsiT!BlHT$Is}S=rHU?6j=2^MAOLCe70=J7%u`$ducMO0hFg=s9pD ztHK^BQ5L8=5J$S`M$*pm(8HUTZr!0hEJ}vI*HK$FXWkJt$KuR)+WoGFUPP4!t|+)y zQtfQ9)RYoTdD}S>c1}3mr}(w=sCB&(&9;W^MB0`lEASLs^8D3k4;vz^Y}t+>c7^a; z8rr+ZqdPO&%riZXBlzZ-veRO=mUFkJRXO*cvLSgX)2*dFxut&df2mE(x_M*Aj;?xJ zi`o09A1?JTcko9Z*ux|bxv05Ae?5ectI%}|UskbSJw{{bJFN<#wc~w}nuyBbMj|-Kl!@|Wo;?ZW3nq!K? z6ev$S8b$dtx}#+69nZlo;Y7_~7u)vKVVjhnN}z`AS|gBz9cp)bRPN2V&6RIC0nru$#>Qg%$(FIKrxRDn@Tb|pKsu8h1J zQ>$_tUmf-(6R-ADNrPYQdAoLMD{&hfwdc!QejU6N)s?aj@7W=!@?p(f!Z;#PR-9`Y zg3MimO)4~NH))~;M-|PnrL}e20gkOgpVzpXU7d1cyk_ODKrK?8HDl~%gyc`G*vaG` z?@<+Eg~o25{yq$;RM%H{o5AYFhWy&P`3n~iD9jRLiDB*I+~RXcO1QnP@AFZvE=`hr z(~6m&+KV+r&M+TdUE#wL937)q(KtgtwpJEAgkxN>$3$Q^&y8h;?ee1ZlEY^y4J^FL z$7DEEn6v5X==2t4E(vd%;gHVW&^&ZcPxnpDo7~%q=8w1aI^&z7H~Vu<#pvDCDY8m+ zGh9ELV&-ctjRjFdU23qUR!J%UnpK?2_>*&b=oGJv-1(0YDJd5A9fRU=>c-oK>8&@G zobN+N$7QdUX=hTxlFAh@!kM*%&ceM@WlUVzVvhF_hPJ0M?5*Jb6rzp#?kziOwe08X z;8lyf6lb=jrf@34`Lgj`8Y$5=U;mtKuIK|fy;wgz%{pzs%$vgL_)>5G?qS{%- zdmr4txMfpi8~b9<7Oj8pB$e-Oj+?huKi1v&%3jJ0#n5Ifc03z0X*C7sujs(q#|DNn z|8!Js0m!z>zqg74A=~;Kj%J*&{goG+g1=r5rA z8H%*w>N%tX!Ddr2Ufo0 zC4p_wxaSyUmMblj3CqN|sja28xGXph2NV!fGExIu31?PL>cut&fTUYL%8~(HIYiU`f#IE z!rHYlH38c;V^1xaHRq}pu2OPO%EFW2(&SK6>*dXVl*BjfL_)%B(kCb`x@hldG~DO_ zwchpdK6RZQT`#f+glox%Pv8(`8d5koba?Vu7mC+e%$!+jRtakjq^(C=CwQ%EMZdDW z(B8x=c|Cn((}iDfoDB!D*$!7wQ%YNG>7PSstg#1CHg}C(-B4&DN*#hq3~`0?NyR^L zBbA_s-S!?|EU=i zbtA9}U@U?jRJ&Auy}LXOl%c@LQftZ1I}Aw0kB4G&fIZgTj< zb4hl57;~>dJ!u=GG?9~^&kKF54_T|R>Pm%Ju1I3p>t<_g>?K9o1U&R2>&`_1C-OFBJFA{la4#x=cq`DB z(B#9`J{`IU&uz z2@|3T6D!A0Opl*3emox2{8e5wV5z?e6VnqWM-wJjP8ff{_(Sohw@%UvIB8X&QR~|v zvoh_4UY3Q&WjdKpwexQH)IM%oW^^`;c%&nbUQ_ReSapOl+yB7)53v8OMPthO9=bqZT4m0(~q;y)% z!s_%<^NSvpIvR4iMw*_&s*I*EQyh^RF@gf_|5^WQ{f`gaIPl)U3j=Rdj&Rm`;bkpO z-ulu0dtbl)?sbG4!h<`I+xXbC*T2+%egB*NZwx#;@YcYZf!7B9Fwjo|?!^51z@3`p zElJt4>4A#|9vXOa;O2X8CS3|XaQVQm2W}m>XW+r%kKS?j8naDj+_7fPY$pF|#J~ds zPvUXSU2i`2R7hw4yAR!d+hzSX_rHO(G=FJu&?$l_y7vCq_v3f3>3`(@Pac1QNG~Lb zZ#;TOsf3xyGsf|K*ms!LRA`C%AH4tP{WmGPYL`s6)NPz*-=AL+-TU&IM?-`XKk&+h zw+-Atrk}Iu9(m~Fo38f>jw2|$F-cMXBWoVM=C=OF`~S%G?ybMM_x1h<`mgMNLwhRA zGQB;yQSrg!u~wF4QoM1Qeeyn9=LhY}zhpp-cqdf$NOI_t+$~+ zGBx_q>u-I-wM_fV2JSEQxN}AR1y!Wq{^a9N+<5nGYx>{yuNzRss-O!m_I~;w>3!VLTI0*4c#@(|UhB@Y8`e1|AH;RAy~zLV8-9?u6!o z%}+o0%+0U#zkAcq`tR-kx$BF(WJ?QjI~@F}9llGZU+Dk$JVv3u+J8^~{R6ktJ*>P{ z9{#UDB{Rl7C&G%o&i+Oc$MR#D<~dHZ#J=H$zI*f2{eKJ1bG|7D5|VL~U>8T+wXM<; z(fGeNqd}8Ds}ZN)QhWPf`rp0&*W|$K9s6rQ_K6w({)txX_PhO^n;sc>2{rg+sZM_E zss6`r`TLrG_P=}G@B3e}(vp9^NY5rgF)FMEu181RGIUAtc5*oGR$n!X$b|za;Kt{-hF*pY<}LqPvr-xJJ4dt^CZuO#_z>Ts`oh?;61y zedEUd`%N49-1jOa@!C5y>*4OZ4;hyL3+YQ@Dtg!?B+(oF+@87OPl;pH!v>+pX` zf489|DeKyw-TK79Z^+(VCErG69CCVg;ATquo`JhnTX$S7Jw;ysxaLjT^b?j}4RH_C zzTfPB629L5`~F+|-{T>~2;Tt^aK9R}Rr-VGKtcX?;94vna>iR39n~Zr9QZv^Jl{pMcBMY zwq75&3qDJ*qL=&s_}Kk;@uR)-KroxikS;%6aC>>k(qJOxg#cf+DA~ISL(fN}@4hZB8}Da~0$9KE@tC%HqS*5+H&>W$|5<4DmhRHZ(09eh zM)%&_f4zG=*P-In6klKY9#QOwt_xO-8?SdrM%;4$1JB>{OtJDKyp~joi7EG`@}XYH zWlbJoj|W?M z&7_CP!~Y_=r6n7Nf}jVA#lYJL>(ins+n31eO>`r_nh2s)aiND5XZ)sGFTCj1C+@o| zQH5n~i>Z`)imTB6EBY@gX;CH35U=H}hUw$F19-W%7_oWtr^XQ1*{3GPdU#REluIsl z7+XliauemgewyT=D;|5cC@j%6M(OC9Z~E(1f$`uOSKtt-TE9fu;OQ4{^zW371#9^) zk>shG7*3a7l~QNY6l?xBZ1S{DIrg6PM2&T}?kkE7;^MX6I>iiXMDdD)kH4iM_W=lzx|TpJXAG%DJ~ZM7=RLLiF!0=dj=zu-J6YbFYwbs5{qD?q6ykUN}G#%Aq- z>^#{I?CddD1S6Vz6LG~8$aMsFN@2q}QSH*`-_G@^1nJHYBzn%osd)bipt9cR7zDt$ z2QUF1GK|UhXGP21KhWG<7~hKBcW{`ba`M4i;6pWz3}5f8hg*Ppmui{R&6C?r*?j-& z6K|)?nU>Y2=gv;C&m>hSZ@1nb-A&InOyNGbv*7cut%q=2tC(prPZx=qO+4lX;fU8Y`#T7n>CvZSV; zC_F+y>;XwykB0RZhW>5)`t3BUggxUriCcW3qZ2D9_OcvW)CuKMGBENutBrj;`X68k z-Bv(%wYIn_v_fUZqy8&4xp&vD2F;ylLGF5)3jg0s--SPB^Q0$O(Q{ap+QJ01gQrb$ zO=M=&6{A)D`1QQ_@x?b&q=-u$2i^M)kqwwFRYZlJ)}3Ga2j6F>5Nvnast>Z79HqEo z$>EKTuRkvJM+GS?kZGh#qM%aQN78Y5nA+wsT2VzPqa&LE3cmA` zgV${#T>>SCSKVW%Aa_d`~SYZlH! z422XRO9dEZNajwspzS&e1B{1G%>%-spQ(C+5`RLyiv-=aLhJ8+0bkOCr3U>E(^XJrRVT!`? z>U??eD$}81S&D7tHia5F6|F4x)gZEVzbud4T2R89450@Ofu=3{9@Ai+DCn>i5 zbMHOr{Fh+s_C9^@J+|P$AiSvo%|yvK{$q0DWX%tLT>X0Rz5XF*(23{IodyTwfkrr4 z_!V*4jH=%VJwFIYa8g8&TphCYXcshFNzDAKmsN#=F1Kv(H65w4ff$kSwN&Lb3&B0w zIFF!q$V(dG6aO`PGfG?vk;tpm{Qj+te!BQ|IG?zmz6E4BN28=mfwWS2=n5!dbu+rn zI-ma|30kxHvm+DV6sh<&wuXHm?ngb6?n�C76Nf!6Ov|Vk+JQWm_Hv2x>@~qA~Z0 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 lYz%>Jw7=k)c@=IzR&aC=ehH_XZxLf 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 Yn#^1}$Y$E3opZ#J&RZwAg|<%o2mJn@*8l(j diff --git a/binutils/po/sv.gmo b/binutils/po/sv.gmo deleted file mode 100644 index 16e64439949396f570964c4423d1a8c2e56064c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103077 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