diff options
-rw-r--r-- | bfd/doc/archures.texi | 5 | ||||
-rw-r--r-- | bfd/doc/bfd.info | 72 | ||||
-rw-r--r-- | bfd/doc/bfd.info-3 | 61 | ||||
-rw-r--r-- | bfd/doc/bfd.info-4 | 94 | ||||
-rw-r--r-- | bfd/doc/bfd.info-5 | 39 | ||||
-rw-r--r-- | bfd/doc/bfd.info-7 | 11 | ||||
-rw-r--r-- | bfd/doc/reloc.texi | 11 |
7 files changed, 168 insertions, 125 deletions
diff --git a/bfd/doc/archures.texi b/bfd/doc/archures.texi index b3637801cea..5924e7b996c 100644 --- a/bfd/doc/archures.texi +++ b/bfd/doc/archures.texi @@ -46,6 +46,10 @@ enum bfd_architecture #define bfd_mach_m68040 6 #define bfd_mach_m68060 7 #define bfd_mach_cpu32 8 +#define bfd_mach_mcf5200 9 +#define bfd_mach_mcf5206e 10 +#define bfd_mach_mcf5307 11 +#define bfd_mach_mcf5407 12 bfd_arch_vax, /* DEC Vax */ bfd_arch_i960, /* Intel 960 */ /* The order of the following is important. @@ -97,6 +101,7 @@ enum bfd_architecture #define bfd_mach_mips6000 6000 #define bfd_mach_mips8000 8000 #define bfd_mach_mips10000 10000 +#define bfd_mach_mips12000 12000 #define bfd_mach_mips16 16 #define bfd_mach_mips32 32 #define bfd_mach_mips32_4k 3204113 /* 32, 04, octal 'K' */ diff --git a/bfd/doc/bfd.info b/bfd/doc/bfd.info index d40a224047a..5b31f36e6f7 100644 --- a/bfd/doc/bfd.info +++ b/bfd/doc/bfd.info @@ -20,10 +20,10 @@ Indirect: bfd.info-1: 680 bfd.info-2: 38513 bfd.info-3: 83193 -bfd.info-4: 132987 -bfd.info-5: 181965 -bfd.info-6: 214544 -bfd.info-7: 260955 +bfd.info-4: 131325 +bfd.info-5: 180785 +bfd.info-6: 215030 +bfd.info-7: 261441 Tag Table: (Indirect) @@ -53,37 +53,37 @@ Node: Formats79663 Node: Relocations82473 Node: typedef arelent83193 Node: howto manager99352 -Node: Core Files130003 -Node: Targets131024 -Node: bfd_target132987 -Node: Architectures151901 -Node: Opening and Closing167123 -Node: Internal171520 -Node: File Caching177520 -Node: Linker Functions180299 -Node: Creating a Linker Hash Table181965 -Node: Adding Symbols to the Hash Table183693 -Node: Differing file formats184583 -Node: Adding symbols from an object file186316 -Node: Adding symbols from an archive188452 -Node: Performing the Final Link190851 -Node: Information provided by the linker192082 -Node: Relocating the section contents193218 -Node: Writing the symbol table194955 -Node: Hash Tables197549 -Node: Creating and Freeing a Hash Table198740 -Node: Looking Up or Entering a String199897 -Node: Traversing a Hash Table201139 -Node: Deriving a New Hash Table Type201917 -Node: Define the Derived Structures202972 -Node: Write the Derived Creation Routine204038 -Node: Write Other Derived Routines206737 -Node: BFD back ends208037 -Node: What to Put Where208281 -Node: aout208419 -Node: coff214544 -Node: elf241700 -Node: GNU Free Documentation License242533 -Node: Index260955 +Node: Core Files130304 +Node: Targets131325 +Node: bfd_target133288 +Node: Architectures152202 +Node: Opening and Closing167609 +Node: Internal172006 +Node: File Caching178006 +Node: Linker Functions180785 +Node: Creating a Linker Hash Table182451 +Node: Adding Symbols to the Hash Table184179 +Node: Differing file formats185069 +Node: Adding symbols from an object file186802 +Node: Adding symbols from an archive188938 +Node: Performing the Final Link191337 +Node: Information provided by the linker192568 +Node: Relocating the section contents193704 +Node: Writing the symbol table195441 +Node: Hash Tables198035 +Node: Creating and Freeing a Hash Table199226 +Node: Looking Up or Entering a String200383 +Node: Traversing a Hash Table201625 +Node: Deriving a New Hash Table Type202403 +Node: Define the Derived Structures203458 +Node: Write the Derived Creation Routine204524 +Node: Write Other Derived Routines207223 +Node: BFD back ends208523 +Node: What to Put Where208767 +Node: aout208905 +Node: coff215030 +Node: elf242186 +Node: GNU Free Documentation License243019 +Node: Index261441 End Tag Table diff --git a/bfd/doc/bfd.info-3 b/bfd/doc/bfd.info-3 index 25601782f40..719405c44ee 100644 --- a/bfd/doc/bfd.info-3 +++ b/bfd/doc/bfd.info-3 @@ -704,6 +704,17 @@ attributes. - : 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 MIPS ELF relocations. - : BFD_RELOC_386_GOT32 @@ -1407,53 +1418,3 @@ the file the BFD ABFD is attached to. Return `true' if the core file attached to CORE_BFD was generated by a run of the executable file attached to EXEC_BFD, `false' otherwise. - -File: bfd.info, Node: Targets, Next: Architectures, Prev: Core Files, Up: BFD front end - -Targets -======= - - *Description* -Each port of BFD to a different machine requries 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:: - diff --git a/bfd/doc/bfd.info-4 b/bfd/doc/bfd.info-4 index 8278812c9f8..d5cae4bc561 100644 --- a/bfd/doc/bfd.info-4 +++ b/bfd/doc/bfd.info-4 @@ -16,6 +16,56 @@ END-INFO-DIR-ENTRY section entitled "GNU Free Documentation License". +File: bfd.info, Node: Targets, Next: Architectures, Prev: Core Files, Up: BFD front end + +Targets +======= + + *Description* +Each port of BFD to a different machine requries 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 bfd_target @@ -468,6 +518,10 @@ i960 KB, and 68020 and 68030 for Motorola 68020 and 68030. #define bfd_mach_m68040 6 #define bfd_mach_m68060 7 #define bfd_mach_cpu32 8 + #define bfd_mach_mcf5200 9 + #define bfd_mach_mcf5206e 10 + #define bfd_mach_mcf5307 11 + #define bfd_mach_mcf5407 12 bfd_arch_vax, /* DEC Vax */ bfd_arch_i960, /* Intel 960 */ /* The order of the following is important. @@ -519,6 +573,7 @@ i960 KB, and 68020 and 68030 for Motorola 68020 and 68030. #define bfd_mach_mips6000 6000 #define bfd_mach_mips8000 8000 #define bfd_mach_mips10000 10000 + #define bfd_mach_mips12000 12000 #define bfd_mach_mips16 16 #define bfd_mach_mips32 32 #define bfd_mach_mips32_4k 3204113 /* 32, 04, octal 'K' */ @@ -1235,42 +1290,3 @@ Find a file descriptor for ABFD. If necessary, it open it. If there are already more than `BFD_CACHE_MAX_OPEN' files open, it tries to close one first, to avoid running out of file descriptors. - -File: bfd.info, Node: Linker Functions, Next: Hash Tables, Prev: File Caching, Up: BFD front end - -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:: - diff --git a/bfd/doc/bfd.info-5 b/bfd/doc/bfd.info-5 index 0e65d28c5d3..ab7666b8f95 100644 --- a/bfd/doc/bfd.info-5 +++ b/bfd/doc/bfd.info-5 @@ -16,6 +16,45 @@ END-INFO-DIR-ENTRY section entitled "GNU Free Documentation License". +File: bfd.info, Node: Linker Functions, Next: Hash Tables, Prev: File Caching, Up: BFD front end + +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 Creating a linker hash table diff --git a/bfd/doc/bfd.info-7 b/bfd/doc/bfd.info-7 index 925a48cfae5..23fcc5eac8e 100644 --- a/bfd/doc/bfd.info-7 +++ b/bfd/doc/bfd.info-7 @@ -409,6 +409,7 @@ Index * BFD_RELOC_MIPS_CALL16: howto manager. * BFD_RELOC_MIPS_CALL_HI16: howto manager. * BFD_RELOC_MIPS_CALL_LO16: howto manager. +* BFD_RELOC_MIPS_DELETE: howto manager. * BFD_RELOC_MIPS_GOT16: howto manager. * BFD_RELOC_MIPS_GOT_DISP: howto manager. * BFD_RELOC_MIPS_GOT_HI16: howto manager. @@ -417,8 +418,18 @@ Index * BFD_RELOC_MIPS_GOT_PAGE: howto manager. * BFD_RELOC_MIPS_GPREL: howto manager. * BFD_RELOC_MIPS_GPREL32: howto manager. +* BFD_RELOC_MIPS_HIGHER: howto manager. +* BFD_RELOC_MIPS_HIGHEST: howto manager. +* BFD_RELOC_MIPS_INSERT_A: howto manager. +* BFD_RELOC_MIPS_INSERT_B: howto manager. +* BFD_RELOC_MIPS_JALR: howto manager. * BFD_RELOC_MIPS_JMP: howto manager. * BFD_RELOC_MIPS_LITERAL: howto manager. +* BFD_RELOC_MIPS_REL16: howto manager. +* BFD_RELOC_MIPS_RELGOT: howto manager. +* BFD_RELOC_MIPS_SCN_DISP: howto manager. +* BFD_RELOC_MIPS_SHIFT5: howto manager. +* BFD_RELOC_MIPS_SHIFT6: howto manager. * BFD_RELOC_MIPS_SUB: howto manager. * BFD_RELOC_MN10300_16_PCREL: howto manager. * BFD_RELOC_MN10300_32_PCREL: howto manager. diff --git a/bfd/doc/reloc.texi b/bfd/doc/reloc.texi index dcb8ab0f6f2..52fa2bd663a 100644 --- a/bfd/doc/reloc.texi +++ b/bfd/doc/reloc.texi @@ -754,6 +754,17 @@ Relocation against a MIPS literal section. @deffnx {} BFD_RELOC_MIPS_GOT_PAGE @deffnx {} BFD_RELOC_MIPS_GOT_OFST @deffnx {} BFD_RELOC_MIPS_GOT_DISP +@deffnx {} BFD_RELOC_MIPS_SHIFT5 +@deffnx {} BFD_RELOC_MIPS_SHIFT6 +@deffnx {} BFD_RELOC_MIPS_INSERT_A +@deffnx {} BFD_RELOC_MIPS_INSERT_B +@deffnx {} BFD_RELOC_MIPS_DELETE +@deffnx {} BFD_RELOC_MIPS_HIGHEST +@deffnx {} BFD_RELOC_MIPS_HIGHER +@deffnx {} BFD_RELOC_MIPS_SCN_DISP +@deffnx {} BFD_RELOC_MIPS_REL16 +@deffnx {} BFD_RELOC_MIPS_RELGOT +@deffnx {} BFD_RELOC_MIPS_JALR MIPS ELF relocations. @end deffn @deffn {} BFD_RELOC_386_GOT32 |