1 This is bfd.info, produced by makeinfo version 4.8 from bfd.texinfo. 2 3 INFO-DIR-SECTION Software development 4 START-INFO-DIR-ENTRY 5 * Bfd: (bfd). The Binary File Descriptor library. 6 END-INFO-DIR-ENTRY 7 8 This file documents the BFD library. 9 10 Copyright (C) 1991, 2000, 2001, 2003, 2006, 2007, 2008 Free Software 11 Foundation, Inc. 12 13 Permission is granted to copy, distribute and/or modify this document 14 under the terms of the GNU Free Documentation License, Version 1.3 or 15 any later version published by the Free Software Foundation; with the 16 Invariant Sections being "GNU General Public License" and "Funding Free 17 Software", the Front-Cover texts being (a) (see below), and with the 18 Back-Cover Texts being (b) (see below). A copy of the license is 19 included in the section entitled "GNU Free Documentation License". 20 21 (a) The FSF's Front-Cover Text is: 22 23 A GNU Manual 24 25 (b) The FSF's Back-Cover Text is: 26 27 You have freedom to copy and modify this GNU Manual, like GNU 28 software. Copies published by the Free Software Foundation raise 29 funds for GNU development. 30 31 32 File: bfd.info, Node: Top, Next: Overview, Prev: (dir), Up: (dir) 33 34 This file documents the binary file descriptor library libbfd. 35 36 * Menu: 37 38 * Overview:: Overview of BFD 39 * BFD front end:: BFD front end 40 * BFD back ends:: BFD back ends 41 * GNU Free Documentation License:: GNU Free Documentation License 42 * BFD Index:: BFD Index 43 44 45 File: bfd.info, Node: Overview, Next: BFD front end, Prev: Top, Up: Top 46 47 1 Introduction 48 ************** 49 50 BFD is a package which allows applications to use the same routines to 51 operate on object files whatever the object file format. A new object 52 file format can be supported simply by creating a new BFD back end and 53 adding it to the library. 54 55 BFD is split into two parts: the front end, and the back ends (one 56 for each object file format). 57 * The front end of BFD provides the interface to the user. It manages 58 memory and various canonical data structures. The front end also 59 decides which back end to use and when to call back end routines. 60 61 * The back ends provide BFD its view of the real world. Each back 62 end provides a set of calls which the BFD front end can use to 63 maintain its canonical form. The back ends also may keep around 64 information for their own use, for greater efficiency. 65 66 * Menu: 67 68 * History:: History 69 * How It Works:: How It Works 70 * What BFD Version 2 Can Do:: What BFD Version 2 Can Do 71 72 73 File: bfd.info, Node: History, Next: How It Works, Prev: Overview, Up: Overview 74 75 1.1 History 76 =========== 77 78 One spur behind BFD was the desire, on the part of the GNU 960 team at 79 Intel Oregon, for interoperability of applications on their COFF and 80 b.out file formats. Cygnus was providing GNU support for the team, and 81 was contracted to provide the required functionality. 82 83 The name came from a conversation David Wallace was having with 84 Richard Stallman about the library: RMS said that it would be quite 85 hard--David said "BFD". Stallman was right, but the name stuck. 86 87 At the same time, Ready Systems wanted much the same thing, but for 88 different object file formats: IEEE-695, Oasys, Srecords, a.out and 68k 89 coff. 90 91 BFD was first implemented by members of Cygnus Support; Steve 92 Chamberlain (`sac (a] cygnus.com'), John Gilmore (`gnu (a] cygnus.com'), K. 93 Richard Pixley (`rich (a] cygnus.com') and David Henkel-Wallace 94 (`gumby (a] cygnus.com'). 95 96 97 File: bfd.info, Node: How It Works, Next: What BFD Version 2 Can Do, Prev: History, Up: Overview 98 99 1.2 How To Use BFD 100 ================== 101 102 To use the library, include `bfd.h' and link with `libbfd.a'. 103 104 BFD provides a common interface to the parts of an object file for a 105 calling application. 106 107 When an application successfully opens a target file (object, 108 archive, or whatever), a pointer to an internal structure is returned. 109 This pointer points to a structure called `bfd', described in `bfd.h'. 110 Our convention is to call this pointer a BFD, and instances of it 111 within code `abfd'. All operations on the target object file are 112 applied as methods to the BFD. The mapping is defined within `bfd.h' 113 in a set of macros, all beginning with `bfd_' to reduce namespace 114 pollution. 115 116 For example, this sequence does what you would probably expect: 117 return the number of sections in an object file attached to a BFD 118 `abfd'. 119 120 #include "bfd.h" 121 122 unsigned int number_of_sections (abfd) 123 bfd *abfd; 124 { 125 return bfd_count_sections (abfd); 126 } 127 128 The abstraction used within BFD is that an object file has: 129 130 * a header, 131 132 * a number of sections containing raw data (*note Sections::), 133 134 * a set of relocations (*note Relocations::), and 135 136 * some symbol information (*note Symbols::). 137 Also, BFDs opened for archives have the additional attribute of an 138 index and contain subordinate BFDs. This approach is fine for a.out and 139 coff, but loses efficiency when applied to formats such as S-records and 140 IEEE-695. 141 142 143 File: bfd.info, Node: What BFD Version 2 Can Do, Prev: How It Works, Up: Overview 144 145 1.3 What BFD Version 2 Can Do 146 ============================= 147 148 When an object file is opened, BFD subroutines automatically determine 149 the format of the input object file. They then build a descriptor in 150 memory with pointers to routines that will be used to access elements of 151 the object file's data structures. 152 153 As different information from the object files is required, BFD 154 reads from different sections of the file and processes them. For 155 example, a very common operation for the linker is processing symbol 156 tables. Each BFD back end provides a routine for converting between 157 the object file's representation of symbols and an internal canonical 158 format. When the linker asks for the symbol table of an object file, it 159 calls through a memory pointer to the routine from the relevant BFD 160 back end which reads and converts the table into a canonical form. The 161 linker then operates upon the canonical form. When the link is finished 162 and the linker writes the output file's symbol table, another BFD back 163 end routine is called to take the newly created symbol table and 164 convert it into the chosen output format. 165 166 * Menu: 167 168 * BFD information loss:: Information Loss 169 * Canonical format:: The BFD canonical object-file format 170 171 172 File: bfd.info, Node: BFD information loss, Next: Canonical format, Up: What BFD Version 2 Can Do 173 174 1.3.1 Information Loss 175 ---------------------- 176 177 _Information can be lost during output._ The output formats supported 178 by BFD do not provide identical facilities, and information which can 179 be described in one form has nowhere to go in another format. One 180 example of this is alignment information in `b.out'. There is nowhere 181 in an `a.out' format file to store alignment information on the 182 contained data, so when a file is linked from `b.out' and an `a.out' 183 image is produced, alignment information will not propagate to the 184 output file. (The linker will still use the alignment information 185 internally, so the link is performed correctly). 186 187 Another example is COFF section names. COFF files may contain an 188 unlimited number of sections, each one with a textual section name. If 189 the target of the link is a format which does not have many sections 190 (e.g., `a.out') or has sections without names (e.g., the Oasys format), 191 the link cannot be done simply. You can circumvent this problem by 192 describing the desired input-to-output section mapping with the linker 193 command language. 194 195 _Information can be lost during canonicalization._ The BFD internal 196 canonical form of the external formats is not exhaustive; there are 197 structures in input formats for which there is no direct representation 198 internally. This means that the BFD back ends cannot maintain all 199 possible data richness through the transformation between external to 200 internal and back to external formats. 201 202 This limitation is only a problem when an application reads one 203 format and writes another. Each BFD back end is responsible for 204 maintaining as much data as possible, and the internal BFD canonical 205 form has structures which are opaque to the BFD core, and exported only 206 to the back ends. When a file is read in one format, the canonical form 207 is generated for BFD and the application. At the same time, the back 208 end saves away any information which may otherwise be lost. If the data 209 is then written back in the same format, the back end routine will be 210 able to use the canonical form provided by the BFD core as well as the 211 information it prepared earlier. Since there is a great deal of 212 commonality between back ends, there is no information lost when 213 linking or copying big endian COFF to little endian COFF, or `a.out' to 214 `b.out'. When a mixture of formats is linked, the information is only 215 lost from the files whose format differs from the destination. 216 217 218 File: bfd.info, Node: Canonical format, Prev: BFD information loss, Up: What BFD Version 2 Can Do 219 220 1.3.2 The BFD canonical object-file format 221 ------------------------------------------ 222 223 The greatest potential for loss of information occurs when there is the 224 least overlap between the information provided by the source format, 225 that stored by the canonical format, and that needed by the destination 226 format. A brief description of the canonical form may help you 227 understand which kinds of data you can count on preserving across 228 conversions. 229 230 _files_ 231 Information stored on a per-file basis includes target machine 232 architecture, particular implementation format type, a demand 233 pageable bit, and a write protected bit. Information like Unix 234 magic numbers is not stored here--only the magic numbers' meaning, 235 so a `ZMAGIC' file would have both the demand pageable bit and the 236 write protected text bit set. The byte order of the target is 237 stored on a per-file basis, so that big- and little-endian object 238 files may be used with one another. 239 240 _sections_ 241 Each section in the input file contains the name of the section, 242 the section's original address in the object file, size and 243 alignment information, various flags, and pointers into other BFD 244 data structures. 245 246 _symbols_ 247 Each symbol contains a pointer to the information for the object 248 file which originally defined it, its name, its value, and various 249 flag bits. When a BFD back end reads in a symbol table, it 250 relocates all symbols to make them relative to the base of the 251 section where they were defined. Doing this ensures that each 252 symbol points to its containing section. Each symbol also has a 253 varying amount of hidden private data for the BFD back end. Since 254 the symbol points to the original file, the private data format 255 for that symbol is accessible. `ld' can operate on a collection 256 of symbols of wildly different formats without problems. 257 258 Normal global and simple local symbols are maintained on output, 259 so an output file (no matter its format) will retain symbols 260 pointing to functions and to global, static, and common variables. 261 Some symbol information is not worth retaining; in `a.out', type 262 information is stored in the symbol table as long symbol names. 263 This information would be useless to most COFF debuggers; the 264 linker has command line switches to allow users to throw it away. 265 266 There is one word of type information within the symbol, so if the 267 format supports symbol type information within symbols (for 268 example, COFF, IEEE, Oasys) and the type is simple enough to fit 269 within one word (nearly everything but aggregates), the 270 information will be preserved. 271 272 _relocation level_ 273 Each canonical BFD relocation record contains a pointer to the 274 symbol to relocate to, the offset of the data to relocate, the 275 section the data is in, and a pointer to a relocation type 276 descriptor. Relocation is performed by passing messages through 277 the relocation type descriptor and the symbol pointer. Therefore, 278 relocations can be performed on output data using a relocation 279 method that is only available in one of the input formats. For 280 instance, Oasys provides a byte relocation format. A relocation 281 record requesting this relocation type would point indirectly to a 282 routine to perform this, so the relocation may be performed on a 283 byte being written to a 68k COFF file, even though 68k COFF has no 284 such relocation type. 285 286 _line numbers_ 287 Object formats can contain, for debugging purposes, some form of 288 mapping between symbols, source line numbers, and addresses in the 289 output file. These addresses have to be relocated along with the 290 symbol information. Each symbol with an associated list of line 291 number records points to the first record of the list. The head 292 of a line number list consists of a pointer to the symbol, which 293 allows finding out the address of the function whose line number 294 is being described. The rest of the list is made up of pairs: 295 offsets into the section and line numbers. Any format which can 296 simply derive this information can pass it successfully between 297 formats (COFF, IEEE and Oasys). 298 299 300 File: bfd.info, Node: BFD front end, Next: BFD back ends, Prev: Overview, Up: Top 301 302 2 BFD Front End 303 *************** 304 305 2.1 `typedef bfd' 306 ================= 307 308 A BFD has type `bfd'; objects of this type are the cornerstone of any 309 application using BFD. Using BFD consists of making references though 310 the BFD and to data in the BFD. 311 312 Here is the structure that defines the type `bfd'. It contains the 313 major data about the file and pointers to the rest of the data. 314 315 316 enum bfd_direction 317 { 318 no_direction = 0, 319 read_direction = 1, 320 write_direction = 2, 321 both_direction = 3 322 }; 323 324 struct bfd 325 { 326 /* A unique identifier of the BFD */ 327 unsigned int id; 328 329 /* The filename the application opened the BFD with. */ 330 const char *filename; 331 332 /* A pointer to the target jump table. */ 333 const struct bfd_target *xvec; 334 335 /* The IOSTREAM, and corresponding IO vector that provide access 336 to the file backing the BFD. */ 337 void *iostream; 338 const struct bfd_iovec *iovec; 339 340 /* The caching routines use these to maintain a 341 least-recently-used list of BFDs. */ 342 struct bfd *lru_prev, *lru_next; 343 344 /* When a file is closed by the caching routines, BFD retains 345 state information on the file here... */ 346 ufile_ptr where; 347 348 /* File modified time, if mtime_set is TRUE. */ 349 long mtime; 350 351 /* Reserved for an unimplemented file locking extension. */ 352 int ifd; 353 354 /* The format which belongs to the BFD. (object, core, etc.) */ 355 bfd_format format; 356 357 /* The direction with which the BFD was opened. */ 358 enum bfd_direction direction; 359 360 /* Format_specific flags. */ 361 flagword flags; 362 363 /* Values that may appear in the flags field of a BFD. These also 364 appear in the object_flags field of the bfd_target structure, where 365 they indicate the set of flags used by that backend (not all flags 366 are meaningful for all object file formats) (FIXME: at the moment, 367 the object_flags values have mostly just been copied from backend 368 to another, and are not necessarily correct). */ 369 370 #define BFD_NO_FLAGS 0x00 371 372 /* BFD contains relocation entries. */ 373 #define HAS_RELOC 0x01 374 375 /* BFD is directly executable. */ 376 #define EXEC_P 0x02 377 378 /* BFD has line number information (basically used for F_LNNO in a 379 COFF header). */ 380 #define HAS_LINENO 0x04 381 382 /* BFD has debugging information. */ 383 #define HAS_DEBUG 0x08 384 385 /* BFD has symbols. */ 386 #define HAS_SYMS 0x10 387 388 /* BFD has local symbols (basically used for F_LSYMS in a COFF 389 header). */ 390 #define HAS_LOCALS 0x20 391 392 /* BFD is a dynamic object. */ 393 #define DYNAMIC 0x40 394 395 /* Text section is write protected (if D_PAGED is not set, this is 396 like an a.out NMAGIC file) (the linker sets this by default, but 397 clears it for -r or -N). */ 398 #define WP_TEXT 0x80 399 400 /* BFD is dynamically paged (this is like an a.out ZMAGIC file) (the 401 linker sets this by default, but clears it for -r or -n or -N). */ 402 #define D_PAGED 0x100 403 404 /* BFD is relaxable (this means that bfd_relax_section may be able to 405 do something) (sometimes bfd_relax_section can do something even if 406 this is not set). */ 407 #define BFD_IS_RELAXABLE 0x200 408 409 /* This may be set before writing out a BFD to request using a 410 traditional format. For example, this is used to request that when 411 writing out an a.out object the symbols not be hashed to eliminate 412 duplicates. */ 413 #define BFD_TRADITIONAL_FORMAT 0x400 414 415 /* This flag indicates that the BFD contents are actually cached 416 in memory. If this is set, iostream points to a bfd_in_memory 417 struct. */ 418 #define BFD_IN_MEMORY 0x800 419 420 /* The sections in this BFD specify a memory page. */ 421 #define HAS_LOAD_PAGE 0x1000 422 423 /* This BFD has been created by the linker and doesn't correspond 424 to any input file. */ 425 #define BFD_LINKER_CREATED 0x2000 426 427 /* This may be set before writing out a BFD to request that it 428 be written using values for UIDs, GIDs, timestamps, etc. that 429 will be consistent from run to run. */ 430 #define BFD_DETERMINISTIC_OUTPUT 0x4000 431 432 /* Compress sections in this BFD. */ 433 #define BFD_COMPRESS 0x8000 434 435 /* Decompress sections in this BFD. */ 436 #define BFD_DECOMPRESS 0x10000 437 438 /* BFD is a dummy, for plugins. */ 439 #define BFD_PLUGIN 0x20000 440 441 /* Flags bits to be saved in bfd_preserve_save. */ 442 #define BFD_FLAGS_SAVED \ 443 (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_PLUGIN) 444 445 /* Flags bits which are for BFD use only. */ 446 #define BFD_FLAGS_FOR_BFD_USE_MASK \ 447 (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_LINKER_CREATED \ 448 | BFD_PLUGIN | BFD_TRADITIONAL_FORMAT | BFD_DETERMINISTIC_OUTPUT) 449 450 /* Currently my_archive is tested before adding origin to 451 anything. I believe that this can become always an add of 452 origin, with origin set to 0 for non archive files. */ 453 ufile_ptr origin; 454 455 /* The origin in the archive of the proxy entry. This will 456 normally be the same as origin, except for thin archives, 457 when it will contain the current offset of the proxy in the 458 thin archive rather than the offset of the bfd in its actual 459 container. */ 460 ufile_ptr proxy_origin; 461 462 /* A hash table for section names. */ 463 struct bfd_hash_table section_htab; 464 465 /* Pointer to linked list of sections. */ 466 struct bfd_section *sections; 467 468 /* The last section on the section list. */ 469 struct bfd_section *section_last; 470 471 /* The number of sections. */ 472 unsigned int section_count; 473 474 /* Stuff only useful for object files: 475 The start address. */ 476 bfd_vma start_address; 477 478 /* Used for input and output. */ 479 unsigned int symcount; 480 481 /* Symbol table for output BFD (with symcount entries). 482 Also used by the linker to cache input BFD symbols. */ 483 struct bfd_symbol **outsymbols; 484 485 /* Used for slurped dynamic symbol tables. */ 486 unsigned int dynsymcount; 487 488 /* Pointer to structure which contains architecture information. */ 489 const struct bfd_arch_info *arch_info; 490 491 /* Stuff only useful for archives. */ 492 void *arelt_data; 493 struct bfd *my_archive; /* The containing archive BFD. */ 494 struct bfd *archive_next; /* The next BFD in the archive. */ 495 struct bfd *archive_head; /* The first BFD in the archive. */ 496 struct bfd *nested_archives; /* List of nested archive in a flattened 497 thin archive. */ 498 499 /* A chain of BFD structures involved in a link. */ 500 struct bfd *link_next; 501 502 /* A field used by _bfd_generic_link_add_archive_symbols. This will 503 be used only for archive elements. */ 504 int archive_pass; 505 506 /* Used by the back end to hold private data. */ 507 union 508 { 509 struct aout_data_struct *aout_data; 510 struct artdata *aout_ar_data; 511 struct _oasys_data *oasys_obj_data; 512 struct _oasys_ar_data *oasys_ar_data; 513 struct coff_tdata *coff_obj_data; 514 struct pe_tdata *pe_obj_data; 515 struct xcoff_tdata *xcoff_obj_data; 516 struct ecoff_tdata *ecoff_obj_data; 517 struct ieee_data_struct *ieee_data; 518 struct ieee_ar_data_struct *ieee_ar_data; 519 struct srec_data_struct *srec_data; 520 struct verilog_data_struct *verilog_data; 521 struct ihex_data_struct *ihex_data; 522 struct tekhex_data_struct *tekhex_data; 523 struct elf_obj_tdata *elf_obj_data; 524 struct nlm_obj_tdata *nlm_obj_data; 525 struct bout_data_struct *bout_data; 526 struct mmo_data_struct *mmo_data; 527 struct sun_core_struct *sun_core_data; 528 struct sco5_core_struct *sco5_core_data; 529 struct trad_core_struct *trad_core_data; 530 struct som_data_struct *som_data; 531 struct hpux_core_struct *hpux_core_data; 532 struct hppabsd_core_struct *hppabsd_core_data; 533 struct sgi_core_struct *sgi_core_data; 534 struct lynx_core_struct *lynx_core_data; 535 struct osf_core_struct *osf_core_data; 536 struct cisco_core_struct *cisco_core_data; 537 struct versados_data_struct *versados_data; 538 struct netbsd_core_struct *netbsd_core_data; 539 struct mach_o_data_struct *mach_o_data; 540 struct mach_o_fat_data_struct *mach_o_fat_data; 541 struct plugin_data_struct *plugin_data; 542 struct bfd_pef_data_struct *pef_data; 543 struct bfd_pef_xlib_data_struct *pef_xlib_data; 544 struct bfd_sym_data_struct *sym_data; 545 void *any; 546 } 547 tdata; 548 549 /* Used by the application to hold private data. */ 550 void *usrdata; 551 552 /* Where all the allocated stuff under this BFD goes. This is a 553 struct objalloc *, but we use void * to avoid requiring the inclusion 554 of objalloc.h. */ 555 void *memory; 556 557 /* Is the file descriptor being cached? That is, can it be closed as 558 needed, and re-opened when accessed later? */ 559 unsigned int cacheable : 1; 560 561 /* Marks whether there was a default target specified when the 562 BFD was opened. This is used to select which matching algorithm 563 to use to choose the back end. */ 564 unsigned int target_defaulted : 1; 565 566 /* ... and here: (``once'' means at least once). */ 567 unsigned int opened_once : 1; 568 569 /* Set if we have a locally maintained mtime value, rather than 570 getting it from the file each time. */ 571 unsigned int mtime_set : 1; 572 573 /* Flag set if symbols from this BFD should not be exported. */ 574 unsigned int no_export : 1; 575 576 /* Remember when output has begun, to stop strange things 577 from happening. */ 578 unsigned int output_has_begun : 1; 579 580 /* Have archive map. */ 581 unsigned int has_armap : 1; 582 583 /* Set if this is a thin archive. */ 584 unsigned int is_thin_archive : 1; 585 586 /* Set if only required symbols should be added in the link hash table for 587 this object. Used by VMS linkers. */ 588 unsigned int selective_search : 1; 589 }; 590 591 2.2 Error reporting 592 =================== 593 594 Most BFD functions return nonzero on success (check their individual 595 documentation for precise semantics). On an error, they call 596 `bfd_set_error' to set an error condition that callers can check by 597 calling `bfd_get_error'. If that returns `bfd_error_system_call', then 598 check `errno'. 599 600 The easiest way to report a BFD error to the user is to use 601 `bfd_perror'. 602 603 2.2.1 Type `bfd_error_type' 604 --------------------------- 605 606 The values returned by `bfd_get_error' are defined by the enumerated 607 type `bfd_error_type'. 608 609 610 typedef enum bfd_error 611 { 612 bfd_error_no_error = 0, 613 bfd_error_system_call, 614 bfd_error_invalid_target, 615 bfd_error_wrong_format, 616 bfd_error_wrong_object_format, 617 bfd_error_invalid_operation, 618 bfd_error_no_memory, 619 bfd_error_no_symbols, 620 bfd_error_no_armap, 621 bfd_error_no_more_archived_files, 622 bfd_error_malformed_archive, 623 bfd_error_file_not_recognized, 624 bfd_error_file_ambiguously_recognized, 625 bfd_error_no_contents, 626 bfd_error_nonrepresentable_section, 627 bfd_error_no_debug_section, 628 bfd_error_bad_value, 629 bfd_error_file_truncated, 630 bfd_error_file_too_big, 631 bfd_error_on_input, 632 bfd_error_invalid_error_code 633 } 634 bfd_error_type; 635 636 2.2.1.1 `bfd_get_error' 637 ....................... 638 639 *Synopsis* 640 bfd_error_type bfd_get_error (void); 641 *Description* 642 Return the current BFD error condition. 643 644 2.2.1.2 `bfd_set_error' 645 ....................... 646 647 *Synopsis* 648 void bfd_set_error (bfd_error_type error_tag, ...); 649 *Description* 650 Set the BFD error condition to be ERROR_TAG. If ERROR_TAG is 651 bfd_error_on_input, then this function takes two more parameters, the 652 input bfd where the error occurred, and the bfd_error_type error. 653 654 2.2.1.3 `bfd_errmsg' 655 .................... 656 657 *Synopsis* 658 const char *bfd_errmsg (bfd_error_type error_tag); 659 *Description* 660 Return a string describing the error ERROR_TAG, or the system error if 661 ERROR_TAG is `bfd_error_system_call'. 662 663 2.2.1.4 `bfd_perror' 664 .................... 665 666 *Synopsis* 667 void bfd_perror (const char *message); 668 *Description* 669 Print to the standard error stream a string describing the last BFD 670 error that occurred, or the last system error if the last BFD error was 671 a system call failure. If MESSAGE is non-NULL and non-empty, the error 672 string printed is preceded by MESSAGE, a colon, and a space. It is 673 followed by a newline. 674 675 2.2.2 BFD error handler 676 ----------------------- 677 678 Some BFD functions want to print messages describing the problem. They 679 call a BFD error handler function. This function may be overridden by 680 the program. 681 682 The BFD error handler acts like printf. 683 684 685 typedef void (*bfd_error_handler_type) (const char *, ...); 686 687 2.2.2.1 `bfd_set_error_handler' 688 ............................... 689 690 *Synopsis* 691 bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type); 692 *Description* 693 Set the BFD error handler function. Returns the previous function. 694 695 2.2.2.2 `bfd_set_error_program_name' 696 .................................... 697 698 *Synopsis* 699 void bfd_set_error_program_name (const char *); 700 *Description* 701 Set the program name to use when printing a BFD error. This is printed 702 before the error message followed by a colon and space. The string 703 must not be changed after it is passed to this function. 704 705 2.2.2.3 `bfd_get_error_handler' 706 ............................... 707 708 *Synopsis* 709 bfd_error_handler_type bfd_get_error_handler (void); 710 *Description* 711 Return the BFD error handler function. 712 713 2.3 Miscellaneous 714 ================= 715 716 2.3.1 Miscellaneous functions 717 ----------------------------- 718 719 2.3.1.1 `bfd_get_reloc_upper_bound' 720 ................................... 721 722 *Synopsis* 723 long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect); 724 *Description* 725 Return the number of bytes required to store the relocation information 726 associated with section SECT attached to bfd ABFD. If an error occurs, 727 return -1. 728 729 2.3.1.2 `bfd_canonicalize_reloc' 730 ................................ 731 732 *Synopsis* 733 long bfd_canonicalize_reloc 734 (bfd *abfd, asection *sec, arelent **loc, asymbol **syms); 735 *Description* 736 Call the back end associated with the open BFD ABFD and translate the 737 external form of the relocation information attached to SEC into the 738 internal canonical form. Place the table into memory at LOC, which has 739 been preallocated, usually by a call to `bfd_get_reloc_upper_bound'. 740 Returns the number of relocs, or -1 on error. 741 742 The SYMS table is also needed for horrible internal magic reasons. 743 744 2.3.1.3 `bfd_set_reloc' 745 ....................... 746 747 *Synopsis* 748 void bfd_set_reloc 749 (bfd *abfd, asection *sec, arelent **rel, unsigned int count); 750 *Description* 751 Set the relocation pointer and count within section SEC to the values 752 REL and COUNT. The argument ABFD is ignored. 753 754 2.3.1.4 `bfd_set_file_flags' 755 ............................ 756 757 *Synopsis* 758 bfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags); 759 *Description* 760 Set the flag word in the BFD ABFD to the value FLAGS. 761 762 Possible errors are: 763 * `bfd_error_wrong_format' - The target bfd was not of object format. 764 765 * `bfd_error_invalid_operation' - The target bfd was open for 766 reading. 767 768 * `bfd_error_invalid_operation' - The flag word contained a bit 769 which was not applicable to the type of file. E.g., an attempt 770 was made to set the `D_PAGED' bit on a BFD format which does not 771 support demand paging. 772 773 2.3.1.5 `bfd_get_arch_size' 774 ........................... 775 776 *Synopsis* 777 int bfd_get_arch_size (bfd *abfd); 778 *Description* 779 Returns the architecture address size, in bits, as determined by the 780 object file's format. For ELF, this information is included in the 781 header. 782 783 *Returns* 784 Returns the arch size in bits if known, `-1' otherwise. 785 786 2.3.1.6 `bfd_get_sign_extend_vma' 787 ................................. 788 789 *Synopsis* 790 int bfd_get_sign_extend_vma (bfd *abfd); 791 *Description* 792 Indicates if the target architecture "naturally" sign extends an 793 address. Some architectures implicitly sign extend address values when 794 they are converted to types larger than the size of an address. For 795 instance, bfd_get_start_address() will return an address sign extended 796 to fill a bfd_vma when this is the case. 797 798 *Returns* 799 Returns `1' if the target architecture is known to sign extend 800 addresses, `0' if the target architecture is known to not sign extend 801 addresses, and `-1' otherwise. 802 803 2.3.1.7 `bfd_set_start_address' 804 ............................... 805 806 *Synopsis* 807 bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma); 808 *Description* 809 Make VMA the entry point of output BFD ABFD. 810 811 *Returns* 812 Returns `TRUE' on success, `FALSE' otherwise. 813 814 2.3.1.8 `bfd_get_gp_size' 815 ......................... 816 817 *Synopsis* 818 unsigned int bfd_get_gp_size (bfd *abfd); 819 *Description* 820 Return the maximum size of objects to be optimized using the GP 821 register under MIPS ECOFF. This is typically set by the `-G' argument 822 to the compiler, assembler or linker. 823 824 2.3.1.9 `bfd_set_gp_size' 825 ......................... 826 827 *Synopsis* 828 void bfd_set_gp_size (bfd *abfd, unsigned int i); 829 *Description* 830 Set the maximum size of objects to be optimized using the GP register 831 under ECOFF or MIPS ELF. This is typically set by the `-G' argument to 832 the compiler, assembler or linker. 833 834 2.3.1.10 `bfd_scan_vma' 835 ....................... 836 837 *Synopsis* 838 bfd_vma bfd_scan_vma (const char *string, const char **end, int base); 839 *Description* 840 Convert, like `strtoul', a numerical expression STRING into a `bfd_vma' 841 integer, and return that integer. (Though without as many bells and 842 whistles as `strtoul'.) The expression is assumed to be unsigned 843 (i.e., positive). If given a BASE, it is used as the base for 844 conversion. A base of 0 causes the function to interpret the string in 845 hex if a leading "0x" or "0X" is found, otherwise in octal if a leading 846 zero is found, otherwise in decimal. 847 848 If the value would overflow, the maximum `bfd_vma' value is returned. 849 850 2.3.1.11 `bfd_copy_private_header_data' 851 ....................................... 852 853 *Synopsis* 854 bfd_boolean bfd_copy_private_header_data (bfd *ibfd, bfd *obfd); 855 *Description* 856 Copy private BFD header information from the BFD IBFD to the the BFD 857 OBFD. This copies information that may require sections to exist, but 858 does not require symbol tables. Return `true' on success, `false' on 859 error. Possible error returns are: 860 861 * `bfd_error_no_memory' - Not enough memory exists to create private 862 data for OBFD. 863 864 #define bfd_copy_private_header_data(ibfd, obfd) \ 865 BFD_SEND (obfd, _bfd_copy_private_header_data, \ 866 (ibfd, obfd)) 867 868 2.3.1.12 `bfd_copy_private_bfd_data' 869 .................................... 870 871 *Synopsis* 872 bfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd); 873 *Description* 874 Copy private BFD information from the BFD IBFD to the the BFD OBFD. 875 Return `TRUE' on success, `FALSE' on error. Possible error returns are: 876 877 * `bfd_error_no_memory' - Not enough memory exists to create private 878 data for OBFD. 879 880 #define bfd_copy_private_bfd_data(ibfd, obfd) \ 881 BFD_SEND (obfd, _bfd_copy_private_bfd_data, \ 882 (ibfd, obfd)) 883 884 2.3.1.13 `bfd_merge_private_bfd_data' 885 ..................................... 886 887 *Synopsis* 888 bfd_boolean bfd_merge_private_bfd_data (bfd *ibfd, bfd *obfd); 889 *Description* 890 Merge private BFD information from the BFD IBFD to the the output file 891 BFD OBFD when linking. Return `TRUE' on success, `FALSE' on error. 892 Possible error returns are: 893 894 * `bfd_error_no_memory' - Not enough memory exists to create private 895 data for OBFD. 896 897 #define bfd_merge_private_bfd_data(ibfd, obfd) \ 898 BFD_SEND (obfd, _bfd_merge_private_bfd_data, \ 899 (ibfd, obfd)) 900 901 2.3.1.14 `bfd_set_private_flags' 902 ................................ 903 904 *Synopsis* 905 bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags); 906 *Description* 907 Set private BFD flag information in the BFD ABFD. Return `TRUE' on 908 success, `FALSE' on error. Possible error returns are: 909 910 * `bfd_error_no_memory' - Not enough memory exists to create private 911 data for OBFD. 912 913 #define bfd_set_private_flags(abfd, flags) \ 914 BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags)) 915 916 2.3.1.15 `Other functions' 917 .......................... 918 919 *Description* 920 The following functions exist but have not yet been documented. 921 #define bfd_sizeof_headers(abfd, info) \ 922 BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, info)) 923 924 #define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \ 925 BFD_SEND (abfd, _bfd_find_nearest_line, \ 926 (abfd, sec, syms, off, file, func, line)) 927 928 #define bfd_find_line(abfd, syms, sym, file, line) \ 929 BFD_SEND (abfd, _bfd_find_line, \ 930 (abfd, syms, sym, file, line)) 931 932 #define bfd_find_inliner_info(abfd, file, func, line) \ 933 BFD_SEND (abfd, _bfd_find_inliner_info, \ 934 (abfd, file, func, line)) 935 936 #define bfd_debug_info_start(abfd) \ 937 BFD_SEND (abfd, _bfd_debug_info_start, (abfd)) 938 939 #define bfd_debug_info_end(abfd) \ 940 BFD_SEND (abfd, _bfd_debug_info_end, (abfd)) 941 942 #define bfd_debug_info_accumulate(abfd, section) \ 943 BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section)) 944 945 #define bfd_stat_arch_elt(abfd, stat) \ 946 BFD_SEND (abfd, _bfd_stat_arch_elt,(abfd, stat)) 947 948 #define bfd_update_armap_timestamp(abfd) \ 949 BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd)) 950 951 #define bfd_set_arch_mach(abfd, arch, mach)\ 952 BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach)) 953 954 #define bfd_relax_section(abfd, section, link_info, again) \ 955 BFD_SEND (abfd, _bfd_relax_section, (abfd, section, link_info, again)) 956 957 #define bfd_gc_sections(abfd, link_info) \ 958 BFD_SEND (abfd, _bfd_gc_sections, (abfd, link_info)) 959 960 #define bfd_lookup_section_flags(link_info, flag_info) \ 961 BFD_SEND (abfd, _bfd_lookup_section_flags, (link_info, flag_info)) 962 963 #define bfd_merge_sections(abfd, link_info) \ 964 BFD_SEND (abfd, _bfd_merge_sections, (abfd, link_info)) 965 966 #define bfd_is_group_section(abfd, sec) \ 967 BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec)) 968 969 #define bfd_discard_group(abfd, sec) \ 970 BFD_SEND (abfd, _bfd_discard_group, (abfd, sec)) 971 972 #define bfd_link_hash_table_create(abfd) \ 973 BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd)) 974 975 #define bfd_link_hash_table_free(abfd, hash) \ 976 BFD_SEND (abfd, _bfd_link_hash_table_free, (hash)) 977 978 #define bfd_link_add_symbols(abfd, info) \ 979 BFD_SEND (abfd, _bfd_link_add_symbols, (abfd, info)) 980 981 #define bfd_link_just_syms(abfd, sec, info) \ 982 BFD_SEND (abfd, _bfd_link_just_syms, (sec, info)) 983 984 #define bfd_final_link(abfd, info) \ 985 BFD_SEND (abfd, _bfd_final_link, (abfd, info)) 986 987 #define bfd_free_cached_info(abfd) \ 988 BFD_SEND (abfd, _bfd_free_cached_info, (abfd)) 989 990 #define bfd_get_dynamic_symtab_upper_bound(abfd) \ 991 BFD_SEND (abfd, _bfd_get_dynamic_symtab_upper_bound, (abfd)) 992 993 #define bfd_print_private_bfd_data(abfd, file)\ 994 BFD_SEND (abfd, _bfd_print_private_bfd_data, (abfd, file)) 995 996 #define bfd_canonicalize_dynamic_symtab(abfd, asymbols) \ 997 BFD_SEND (abfd, _bfd_canonicalize_dynamic_symtab, (abfd, asymbols)) 998 999 #define bfd_get_synthetic_symtab(abfd, count, syms, dyncount, dynsyms, ret) \ 1000 BFD_SEND (abfd, _bfd_get_synthetic_symtab, (abfd, count, syms, \ 1001 dyncount, dynsyms, ret)) 1002 1003 #define bfd_get_dynamic_reloc_upper_bound(abfd) \ 1004 BFD_SEND (abfd, _bfd_get_dynamic_reloc_upper_bound, (abfd)) 1005 1006 #define bfd_canonicalize_dynamic_reloc(abfd, arels, asyms) \ 1007 BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms)) 1008 1009 extern bfd_byte *bfd_get_relocated_section_contents 1010 (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *, 1011 bfd_boolean, asymbol **); 1012 1013 2.3.1.16 `bfd_alt_mach_code' 1014 ............................ 1015 1016 *Synopsis* 1017 bfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative); 1018 *Description* 1019 When more than one machine code number is available for the same 1020 machine type, this function can be used to switch between the preferred 1021 one (alternative == 0) and any others. Currently, only ELF supports 1022 this feature, with up to two alternate machine codes. 1023 1024 struct bfd_preserve 1025 { 1026 void *marker; 1027 void *tdata; 1028 flagword flags; 1029 const struct bfd_arch_info *arch_info; 1030 struct bfd_section *sections; 1031 struct bfd_section *section_last; 1032 unsigned int section_count; 1033 struct bfd_hash_table section_htab; 1034 }; 1035 1036 2.3.1.17 `bfd_preserve_save' 1037 ............................ 1038 1039 *Synopsis* 1040 bfd_boolean bfd_preserve_save (bfd *, struct bfd_preserve *); 1041 *Description* 1042 When testing an object for compatibility with a particular target 1043 back-end, the back-end object_p function needs to set up certain fields 1044 in the bfd on successfully recognizing the object. This typically 1045 happens in a piecemeal fashion, with failures possible at many points. 1046 On failure, the bfd is supposed to be restored to its initial state, 1047 which is virtually impossible. However, restoring a subset of the bfd 1048 state works in practice. This function stores the subset and 1049 reinitializes the bfd. 1050 1051 2.3.1.18 `bfd_preserve_restore' 1052 ............................... 1053 1054 *Synopsis* 1055 void bfd_preserve_restore (bfd *, struct bfd_preserve *); 1056 *Description* 1057 This function restores bfd state saved by bfd_preserve_save. If MARKER 1058 is non-NULL in struct bfd_preserve then that block and all subsequently 1059 bfd_alloc'd memory is freed. 1060 1061 2.3.1.19 `bfd_preserve_finish' 1062 .............................. 1063 1064 *Synopsis* 1065 void bfd_preserve_finish (bfd *, struct bfd_preserve *); 1066 *Description* 1067 This function should be called when the bfd state saved by 1068 bfd_preserve_save is no longer needed. ie. when the back-end object_p 1069 function returns with success. 1070 1071 2.3.1.20 `bfd_emul_get_maxpagesize' 1072 ................................... 1073 1074 *Synopsis* 1075 bfd_vma bfd_emul_get_maxpagesize (const char *); 1076 *Description* 1077 Returns the maximum page size, in bytes, as determined by emulation. 1078 1079 *Returns* 1080 Returns the maximum page size in bytes for ELF, 0 otherwise. 1081 1082 2.3.1.21 `bfd_emul_set_maxpagesize' 1083 ................................... 1084 1085 *Synopsis* 1086 void bfd_emul_set_maxpagesize (const char *, bfd_vma); 1087 *Description* 1088 For ELF, set the maximum page size for the emulation. It is a no-op 1089 for other formats. 1090 1091 2.3.1.22 `bfd_emul_get_commonpagesize' 1092 ...................................... 1093 1094 *Synopsis* 1095 bfd_vma bfd_emul_get_commonpagesize (const char *); 1096 *Description* 1097 Returns the common page size, in bytes, as determined by emulation. 1098 1099 *Returns* 1100 Returns the common page size in bytes for ELF, 0 otherwise. 1101 1102 2.3.1.23 `bfd_emul_set_commonpagesize' 1103 ...................................... 1104 1105 *Synopsis* 1106 void bfd_emul_set_commonpagesize (const char *, bfd_vma); 1107 *Description* 1108 For ELF, set the common page size for the emulation. It is a no-op for 1109 other formats. 1110 1111 2.3.1.24 `bfd_demangle' 1112 ....................... 1113 1114 *Synopsis* 1115 char *bfd_demangle (bfd *, const char *, int); 1116 *Description* 1117 Wrapper around cplus_demangle. Strips leading underscores and other 1118 such chars that would otherwise confuse the demangler. If passed a g++ 1119 v3 ABI mangled name, returns a buffer allocated with malloc holding the 1120 demangled name. Returns NULL otherwise and on memory alloc failure. 1121 1122 2.3.1.25 `struct bfd_iovec' 1123 ........................... 1124 1125 *Description* 1126 The `struct bfd_iovec' contains the internal file I/O class. Each 1127 `BFD' has an instance of this class and all file I/O is routed through 1128 it (it is assumed that the instance implements all methods listed 1129 below). 1130 struct bfd_iovec 1131 { 1132 /* To avoid problems with macros, a "b" rather than "f" 1133 prefix is prepended to each method name. */ 1134 /* Attempt to read/write NBYTES on ABFD's IOSTREAM storing/fetching 1135 bytes starting at PTR. Return the number of bytes actually 1136 transfered (a read past end-of-file returns less than NBYTES), 1137 or -1 (setting `bfd_error') if an error occurs. */ 1138 file_ptr (*bread) (struct bfd *abfd, void *ptr, file_ptr nbytes); 1139 file_ptr (*bwrite) (struct bfd *abfd, const void *ptr, 1140 file_ptr nbytes); 1141 /* Return the current IOSTREAM file offset, or -1 (setting `bfd_error' 1142 if an error occurs. */ 1143 file_ptr (*btell) (struct bfd *abfd); 1144 /* For the following, on successful completion a value of 0 is returned. 1145 Otherwise, a value of -1 is returned (and `bfd_error' is set). */ 1146 int (*bseek) (struct bfd *abfd, file_ptr offset, int whence); 1147 int (*bclose) (struct bfd *abfd); 1148 int (*bflush) (struct bfd *abfd); 1149 int (*bstat) (struct bfd *abfd, struct stat *sb); 1150 /* Mmap a part of the files. ADDR, LEN, PROT, FLAGS and OFFSET are the usual 1151 mmap parameter, except that LEN and OFFSET do not need to be page 1152 aligned. Returns (void *)-1 on failure, mmapped address on success. 1153 Also write in MAP_ADDR the address of the page aligned buffer and in 1154 MAP_LEN the size mapped (a page multiple). Use unmap with MAP_ADDR and 1155 MAP_LEN to unmap. */ 1156 void *(*bmmap) (struct bfd *abfd, void *addr, bfd_size_type len, 1157 int prot, int flags, file_ptr offset, 1158 void **map_addr, bfd_size_type *map_len); 1159 }; 1160 extern const struct bfd_iovec _bfd_memory_iovec; 1161 1162 2.3.1.26 `bfd_get_mtime' 1163 ........................ 1164 1165 *Synopsis* 1166 long bfd_get_mtime (bfd *abfd); 1167 *Description* 1168 Return the file modification time (as read from the file system, or 1169 from the archive header for archive members). 1170 1171 2.3.1.27 `bfd_get_size' 1172 ....................... 1173 1174 *Synopsis* 1175 file_ptr bfd_get_size (bfd *abfd); 1176 *Description* 1177 Return the file size (as read from file system) for the file associated 1178 with BFD ABFD. 1179 1180 The initial motivation for, and use of, this routine is not so we 1181 can get the exact size of the object the BFD applies to, since that 1182 might not be generally possible (archive members for example). It 1183 would be ideal if someone could eventually modify it so that such 1184 results were guaranteed. 1185 1186 Instead, we want to ask questions like "is this NNN byte sized 1187 object I'm about to try read from file offset YYY reasonable?" As as 1188 example of where we might do this, some object formats use string 1189 tables for which the first `sizeof (long)' bytes of the table contain 1190 the size of the table itself, including the size bytes. If an 1191 application tries to read what it thinks is one of these string tables, 1192 without some way to validate the size, and for some reason the size is 1193 wrong (byte swapping error, wrong location for the string table, etc.), 1194 the only clue is likely to be a read error when it tries to read the 1195 table, or a "virtual memory exhausted" error when it tries to allocate 1196 15 bazillon bytes of space for the 15 bazillon byte table it is about 1197 to read. This function at least allows us to answer the question, "is 1198 the size reasonable?". 1199 1200 2.3.1.28 `bfd_mmap' 1201 ................... 1202 1203 *Synopsis* 1204 void *bfd_mmap (bfd *abfd, void *addr, bfd_size_type len, 1205 int prot, int flags, file_ptr offset, 1206 void **map_addr, bfd_size_type *map_len); 1207 *Description* 1208 Return mmap()ed region of the file, if possible and implemented. LEN 1209 and OFFSET do not need to be page aligned. The page aligned address 1210 and length are written to MAP_ADDR and MAP_LEN. 1211 1212 * Menu: 1213 1214 * Memory Usage:: 1215 * Initialization:: 1216 * Sections:: 1217 * Symbols:: 1218 * Archives:: 1219 * Formats:: 1220 * Relocations:: 1221 * Core Files:: 1222 * Targets:: 1223 * Architectures:: 1224 * Opening and Closing:: 1225 * Internal:: 1226 * File Caching:: 1227 * Linker Functions:: 1228 * Hash Tables:: 1229 1230 1231 File: bfd.info, Node: Memory Usage, Next: Initialization, Prev: BFD front end, Up: BFD front end 1232 1233 2.4 Memory Usage 1234 ================ 1235 1236 BFD keeps all of its internal structures in obstacks. There is one 1237 obstack per open BFD file, into which the current state is stored. When 1238 a BFD is closed, the obstack is deleted, and so everything which has 1239 been allocated by BFD for the closing file is thrown away. 1240 1241 BFD does not free anything created by an application, but pointers 1242 into `bfd' structures become invalid on a `bfd_close'; for example, 1243 after a `bfd_close' the vector passed to `bfd_canonicalize_symtab' is 1244 still around, since it has been allocated by the application, but the 1245 data that it pointed to are lost. 1246 1247 The general rule is to not close a BFD until all operations dependent 1248 upon data from the BFD have been completed, or all the data from within 1249 the file has been copied. To help with the management of memory, there 1250 is a function (`bfd_alloc_size') which returns the number of bytes in 1251 obstacks associated with the supplied BFD. This could be used to select 1252 the greediest open BFD, close it to reclaim the memory, perform some 1253 operation and reopen the BFD again, to get a fresh copy of the data 1254 structures. 1255 1256 1257 File: bfd.info, Node: Initialization, Next: Sections, Prev: Memory Usage, Up: BFD front end 1258 1259 2.5 Initialization 1260 ================== 1261 1262 2.5.1 Initialization functions 1263 ------------------------------ 1264 1265 These are the functions that handle initializing a BFD. 1266 1267 2.5.1.1 `bfd_init' 1268 .................. 1269 1270 *Synopsis* 1271 void bfd_init (void); 1272 *Description* 1273 This routine must be called before any other BFD function to initialize 1274 magical internal data structures. 1275 1276 1277 File: bfd.info, Node: Sections, Next: Symbols, Prev: Initialization, Up: BFD front end 1278 1279 2.6 Sections 1280 ============ 1281 1282 The raw data contained within a BFD is maintained through the section 1283 abstraction. A single BFD may have any number of sections. It keeps 1284 hold of them by pointing to the first; each one points to the next in 1285 the list. 1286 1287 Sections are supported in BFD in `section.c'. 1288 1289 * Menu: 1290 1291 * Section Input:: 1292 * Section Output:: 1293 * typedef asection:: 1294 * section prototypes:: 1295 1296 1297 File: bfd.info, Node: Section Input, Next: Section Output, Prev: Sections, Up: Sections 1298 1299 2.6.1 Section input 1300 ------------------- 1301 1302 When a BFD is opened for reading, the section structures are created 1303 and attached to the BFD. 1304 1305 Each section has a name which describes the section in the outside 1306 world--for example, `a.out' would contain at least three sections, 1307 called `.text', `.data' and `.bss'. 1308 1309 Names need not be unique; for example a COFF file may have several 1310 sections named `.data'. 1311 1312 Sometimes a BFD will contain more than the "natural" number of 1313 sections. A back end may attach other sections containing constructor 1314 data, or an application may add a section (using `bfd_make_section') to 1315 the sections attached to an already open BFD. For example, the linker 1316 creates an extra section `COMMON' for each input file's BFD to hold 1317 information about common storage. 1318 1319 The raw data is not necessarily read in when the section descriptor 1320 is created. Some targets may leave the data in place until a 1321 `bfd_get_section_contents' call is made. Other back ends may read in 1322 all the data at once. For example, an S-record file has to be read 1323 once to determine the size of the data. An IEEE-695 file doesn't 1324 contain raw data in sections, but data and relocation expressions 1325 intermixed, so the data area has to be parsed to get out the data and 1326 relocations. 1327 1328 1329 File: bfd.info, Node: Section Output, Next: typedef asection, Prev: Section Input, Up: Sections 1330 1331 2.6.2 Section output 1332 -------------------- 1333 1334 To write a new object style BFD, the various sections to be written 1335 have to be created. They are attached to the BFD in the same way as 1336 input sections; data is written to the sections using 1337 `bfd_set_section_contents'. 1338 1339 Any program that creates or combines sections (e.g., the assembler 1340 and linker) must use the `asection' fields `output_section' and 1341 `output_offset' to indicate the file sections to which each section 1342 must be written. (If the section is being created from scratch, 1343 `output_section' should probably point to the section itself and 1344 `output_offset' should probably be zero.) 1345 1346 The data to be written comes from input sections attached (via 1347 `output_section' pointers) to the output sections. The output section 1348 structure can be considered a filter for the input section: the output 1349 section determines the vma of the output data and the name, but the 1350 input section determines the offset into the output section of the data 1351 to be written. 1352 1353 E.g., to create a section "O", starting at 0x100, 0x123 long, 1354 containing two subsections, "A" at offset 0x0 (i.e., at vma 0x100) and 1355 "B" at offset 0x20 (i.e., at vma 0x120) the `asection' structures would 1356 look like: 1357 1358 section name "A" 1359 output_offset 0x00 1360 size 0x20 1361 output_section -----------> section name "O" 1362 | vma 0x100 1363 section name "B" | size 0x123 1364 output_offset 0x20 | 1365 size 0x103 | 1366 output_section --------| 1367 1368 2.6.3 Link orders 1369 ----------------- 1370 1371 The data within a section is stored in a "link_order". These are much 1372 like the fixups in `gas'. The link_order abstraction allows a section 1373 to grow and shrink within itself. 1374 1375 A link_order knows how big it is, and which is the next link_order 1376 and where the raw data for it is; it also points to a list of 1377 relocations which apply to it. 1378 1379 The link_order is used by the linker to perform relaxing on final 1380 code. The compiler creates code which is as big as necessary to make 1381 it work without relaxing, and the user can select whether to relax. 1382 Sometimes relaxing takes a lot of time. The linker runs around the 1383 relocations to see if any are attached to data which can be shrunk, if 1384 so it does it on a link_order by link_order basis. 1385 1386 1387 File: bfd.info, Node: typedef asection, Next: section prototypes, Prev: Section Output, Up: Sections 1388 1389 2.6.4 typedef asection 1390 ---------------------- 1391 1392 Here is the section structure: 1393 1394 1395 typedef struct bfd_section 1396 { 1397 /* The name of the section; the name isn't a copy, the pointer is 1398 the same as that passed to bfd_make_section. */ 1399 const char *name; 1400 1401 /* A unique sequence number. */ 1402 int id; 1403 1404 /* Which section in the bfd; 0..n-1 as sections are created in a bfd. */ 1405 int index; 1406 1407 /* The next section in the list belonging to the BFD, or NULL. */ 1408 struct bfd_section *next; 1409 1410 /* The previous section in the list belonging to the BFD, or NULL. */ 1411 struct bfd_section *prev; 1412 1413 /* The field flags contains attributes of the section. Some 1414 flags are read in from the object file, and some are 1415 synthesized from other information. */ 1416 flagword flags; 1417 1418 #define SEC_NO_FLAGS 0x000 1419 1420 /* Tells the OS to allocate space for this section when loading. 1421 This is clear for a section containing debug information only. */ 1422 #define SEC_ALLOC 0x001 1423 1424 /* Tells the OS to load the section from the file when loading. 1425 This is clear for a .bss section. */ 1426 #define SEC_LOAD 0x002 1427 1428 /* The section contains data still to be relocated, so there is 1429 some relocation information too. */ 1430 #define SEC_RELOC 0x004 1431 1432 /* A signal to the OS that the section contains read only data. */ 1433 #define SEC_READONLY 0x008 1434 1435 /* The section contains code only. */ 1436 #define SEC_CODE 0x010 1437 1438 /* The section contains data only. */ 1439 #define SEC_DATA 0x020 1440 1441 /* The section will reside in ROM. */ 1442 #define SEC_ROM 0x040 1443 1444 /* The section contains constructor information. This section 1445 type is used by the linker to create lists of constructors and 1446 destructors used by `g++'. When a back end sees a symbol 1447 which should be used in a constructor list, it creates a new 1448 section for the type of name (e.g., `__CTOR_LIST__'), attaches 1449 the symbol to it, and builds a relocation. To build the lists 1450 of constructors, all the linker has to do is catenate all the 1451 sections called `__CTOR_LIST__' and relocate the data 1452 contained within - exactly the operations it would peform on 1453 standard data. */ 1454 #define SEC_CONSTRUCTOR 0x080 1455 1456 /* The section has contents - a data section could be 1457 `SEC_ALLOC' | `SEC_HAS_CONTENTS'; a debug section could be 1458 `SEC_HAS_CONTENTS' */ 1459 #define SEC_HAS_CONTENTS 0x100 1460 1461 /* An instruction to the linker to not output the section 1462 even if it has information which would normally be written. */ 1463 #define SEC_NEVER_LOAD 0x200 1464 1465 /* The section contains thread local data. */ 1466 #define SEC_THREAD_LOCAL 0x400 1467 1468 /* The section has GOT references. This flag is only for the 1469 linker, and is currently only used by the elf32-hppa back end. 1470 It will be set if global offset table references were detected 1471 in this section, which indicate to the linker that the section 1472 contains PIC code, and must be handled specially when doing a 1473 static link. */ 1474 #define SEC_HAS_GOT_REF 0x800 1475 1476 /* The section contains common symbols (symbols may be defined 1477 multiple times, the value of a symbol is the amount of 1478 space it requires, and the largest symbol value is the one 1479 used). Most targets have exactly one of these (which we 1480 translate to bfd_com_section_ptr), but ECOFF has two. */ 1481 #define SEC_IS_COMMON 0x1000 1482 1483 /* The section contains only debugging information. For 1484 example, this is set for ELF .debug and .stab sections. 1485 strip tests this flag to see if a section can be 1486 discarded. */ 1487 #define SEC_DEBUGGING 0x2000 1488 1489 /* The contents of this section are held in memory pointed to 1490 by the contents field. This is checked by bfd_get_section_contents, 1491 and the data is retrieved from memory if appropriate. */ 1492 #define SEC_IN_MEMORY 0x4000 1493 1494 /* The contents of this section are to be excluded by the 1495 linker for executable and shared objects unless those 1496 objects are to be further relocated. */ 1497 #define SEC_EXCLUDE 0x8000 1498 1499 /* The contents of this section are to be sorted based on the sum of 1500 the symbol and addend values specified by the associated relocation 1501 entries. Entries without associated relocation entries will be 1502 appended to the end of the section in an unspecified order. */ 1503 #define SEC_SORT_ENTRIES 0x10000 1504 1505 /* When linking, duplicate sections of the same name should be 1506 discarded, rather than being combined into a single section as 1507 is usually done. This is similar to how common symbols are 1508 handled. See SEC_LINK_DUPLICATES below. */ 1509 #define SEC_LINK_ONCE 0x20000 1510 1511 /* If SEC_LINK_ONCE is set, this bitfield describes how the linker 1512 should handle duplicate sections. */ 1513 #define SEC_LINK_DUPLICATES 0xc0000 1514 1515 /* This value for SEC_LINK_DUPLICATES means that duplicate 1516 sections with the same name should simply be discarded. */ 1517 #define SEC_LINK_DUPLICATES_DISCARD 0x0 1518 1519 /* This value for SEC_LINK_DUPLICATES means that the linker 1520 should warn if there are any duplicate sections, although 1521 it should still only link one copy. */ 1522 #define SEC_LINK_DUPLICATES_ONE_ONLY 0x40000 1523 1524 /* This value for SEC_LINK_DUPLICATES means that the linker 1525 should warn if any duplicate sections are a different size. */ 1526 #define SEC_LINK_DUPLICATES_SAME_SIZE 0x80000 1527 1528 /* This value for SEC_LINK_DUPLICATES means that the linker 1529 should warn if any duplicate sections contain different 1530 contents. */ 1531 #define SEC_LINK_DUPLICATES_SAME_CONTENTS \ 1532 (SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE) 1533 1534 /* This section was created by the linker as part of dynamic 1535 relocation or other arcane processing. It is skipped when 1536 going through the first-pass output, trusting that someone 1537 else up the line will take care of it later. */ 1538 #define SEC_LINKER_CREATED 0x100000 1539 1540 /* This section should not be subject to garbage collection. 1541 Also set to inform the linker that this section should not be 1542 listed in the link map as discarded. */ 1543 #define SEC_KEEP 0x200000 1544 1545 /* This section contains "short" data, and should be placed 1546 "near" the GP. */ 1547 #define SEC_SMALL_DATA 0x400000 1548 1549 /* Attempt to merge identical entities in the section. 1550 Entity size is given in the entsize field. */ 1551 #define SEC_MERGE 0x800000 1552 1553 /* If given with SEC_MERGE, entities to merge are zero terminated 1554 strings where entsize specifies character size instead of fixed 1555 size entries. */ 1556 #define SEC_STRINGS 0x1000000 1557 1558 /* This section contains data about section groups. */ 1559 #define SEC_GROUP 0x2000000 1560 1561 /* The section is a COFF shared library section. This flag is 1562 only for the linker. If this type of section appears in 1563 the input file, the linker must copy it to the output file 1564 without changing the vma or size. FIXME: Although this 1565 was originally intended to be general, it really is COFF 1566 specific (and the flag was renamed to indicate this). It 1567 might be cleaner to have some more general mechanism to 1568 allow the back end to control what the linker does with 1569 sections. */ 1570 #define SEC_COFF_SHARED_LIBRARY 0x4000000 1571 1572 /* This input section should be copied to output in reverse order 1573 as an array of pointers. This is for ELF linker internal use 1574 only. */ 1575 #define SEC_ELF_REVERSE_COPY 0x4000000 1576 1577 /* This section contains data which may be shared with other 1578 executables or shared objects. This is for COFF only. */ 1579 #define SEC_COFF_SHARED 0x8000000 1580 1581 /* When a section with this flag is being linked, then if the size of 1582 the input section is less than a page, it should not cross a page 1583 boundary. If the size of the input section is one page or more, 1584 it should be aligned on a page boundary. This is for TI 1585 TMS320C54X only. */ 1586 #define SEC_TIC54X_BLOCK 0x10000000 1587 1588 /* Conditionally link this section; do not link if there are no 1589 references found to any symbol in the section. This is for TI 1590 TMS320C54X only. */ 1591 #define SEC_TIC54X_CLINK 0x20000000 1592 1593 /* Indicate that section has the no read flag set. This happens 1594 when memory read flag isn't set. */ 1595 #define SEC_COFF_NOREAD 0x40000000 1596 1597 /* End of section flags. */ 1598 1599 /* Some internal packed boolean fields. */ 1600 1601 /* See the vma field. */ 1602 unsigned int user_set_vma : 1; 1603 1604 /* A mark flag used by some of the linker backends. */ 1605 unsigned int linker_mark : 1; 1606 1607 /* Another mark flag used by some of the linker backends. Set for 1608 output sections that have an input section. */ 1609 unsigned int linker_has_input : 1; 1610 1611 /* Mark flag used by some linker backends for garbage collection. */ 1612 unsigned int gc_mark : 1; 1613 1614 /* Section compression status. */ 1615 unsigned int compress_status : 2; 1616 #define COMPRESS_SECTION_NONE 0 1617 #define COMPRESS_SECTION_DONE 1 1618 #define DECOMPRESS_SECTION_SIZED 2 1619 1620 /* The following flags are used by the ELF linker. */ 1621 1622 /* Mark sections which have been allocated to segments. */ 1623 unsigned int segment_mark : 1; 1624 1625 /* Type of sec_info information. */ 1626 unsigned int sec_info_type:3; 1627 #define ELF_INFO_TYPE_NONE 0 1628 #define ELF_INFO_TYPE_STABS 1 1629 #define ELF_INFO_TYPE_MERGE 2 1630 #define ELF_INFO_TYPE_EH_FRAME 3 1631 #define ELF_INFO_TYPE_JUST_SYMS 4 1632 1633 /* Nonzero if this section uses RELA relocations, rather than REL. */ 1634 unsigned int use_rela_p:1; 1635 1636 /* Bits used by various backends. The generic code doesn't touch 1637 these fields. */ 1638 1639 unsigned int sec_flg0:1; 1640 unsigned int sec_flg1:1; 1641 unsigned int sec_flg2:1; 1642 unsigned int sec_flg3:1; 1643 unsigned int sec_flg4:1; 1644 unsigned int sec_flg5:1; 1645 1646 /* End of internal packed boolean fields. */ 1647 1648 /* The virtual memory address of the section - where it will be 1649 at run time. The symbols are relocated against this. The 1650 user_set_vma flag is maintained by bfd; if it's not set, the 1651 backend can assign addresses (for example, in `a.out', where 1652 the default address for `.data' is dependent on the specific 1653 target and various flags). */ 1654 bfd_vma vma; 1655 1656 /* The load address of the section - where it would be in a 1657 rom image; really only used for writing section header 1658 information. */ 1659 bfd_vma lma; 1660 1661 /* The size of the section in octets, as it will be output. 1662 Contains a value even if the section has no contents (e.g., the 1663 size of `.bss'). */ 1664 bfd_size_type size; 1665 1666 /* For input sections, the original size on disk of the section, in 1667 octets. This field should be set for any section whose size is 1668 changed by linker relaxation. It is required for sections where 1669 the linker relaxation scheme doesn't cache altered section and 1670 reloc contents (stabs, eh_frame, SEC_MERGE, some coff relaxing 1671 targets), and thus the original size needs to be kept to read the 1672 section multiple times. For output sections, rawsize holds the 1673 section size calculated on a previous linker relaxation pass. */ 1674 bfd_size_type rawsize; 1675 1676 /* The compressed size of the section in octets. */ 1677 bfd_size_type compressed_size; 1678 1679 /* Relaxation table. */ 1680 struct relax_table *relax; 1681 1682 /* Count of used relaxation table entries. */ 1683 int relax_count; 1684 1685 1686 /* If this section is going to be output, then this value is the 1687 offset in *bytes* into the output section of the first byte in the 1688 input section (byte ==> smallest addressable unit on the 1689 target). In most cases, if this was going to start at the 1690 100th octet (8-bit quantity) in the output section, this value 1691 would be 100. However, if the target byte size is 16 bits 1692 (bfd_octets_per_byte is "2"), this value would be 50. */ 1693 bfd_vma output_offset; 1694 1695 /* The output section through which to map on output. */ 1696 struct bfd_section *output_section; 1697 1698 /* The alignment requirement of the section, as an exponent of 2 - 1699 e.g., 3 aligns to 2^3 (or 8). */ 1700 unsigned int alignment_power; 1701 1702 /* If an input section, a pointer to a vector of relocation 1703 records for the data in this section. */ 1704 struct reloc_cache_entry *relocation; 1705 1706 /* If an output section, a pointer to a vector of pointers to 1707 relocation records for the data in this section. */ 1708 struct reloc_cache_entry **orelocation; 1709 1710 /* The number of relocation records in one of the above. */ 1711 unsigned reloc_count; 1712 1713 /* Information below is back end specific - and not always used 1714 or updated. */ 1715 1716 /* File position of section data. */ 1717 file_ptr filepos; 1718 1719 /* File position of relocation info. */ 1720 file_ptr rel_filepos; 1721 1722 /* File position of line data. */ 1723 file_ptr line_filepos; 1724 1725 /* Pointer to data for applications. */ 1726 void *userdata; 1727 1728 /* If the SEC_IN_MEMORY flag is set, this points to the actual 1729 contents. */ 1730 unsigned char *contents; 1731 1732 /* Attached line number information. */ 1733 alent *lineno; 1734 1735 /* Number of line number records. */ 1736 unsigned int lineno_count; 1737 1738 /* Entity size for merging purposes. */ 1739 unsigned int entsize; 1740 1741 /* Points to the kept section if this section is a link-once section, 1742 and is discarded. */ 1743 struct bfd_section *kept_section; 1744 1745 /* When a section is being output, this value changes as more 1746 linenumbers are written out. */ 1747 file_ptr moving_line_filepos; 1748 1749 /* What the section number is in the target world. */ 1750 int target_index; 1751 1752 void *used_by_bfd; 1753 1754 /* If this is a constructor section then here is a list of the 1755 relocations created to relocate items within it. */ 1756 struct relent_chain *constructor_chain; 1757 1758 /* The BFD which owns the section. */ 1759 bfd *owner; 1760 1761 /* INPUT_SECTION_FLAGS if specified in the linker script. */ 1762 struct flag_info *section_flag_info; 1763 1764 /* A symbol which points at this section only. */ 1765 struct bfd_symbol *symbol; 1766 struct bfd_symbol **symbol_ptr_ptr; 1767 1768 /* Early in the link process, map_head and map_tail are used to build 1769 a list of input sections attached to an output section. Later, 1770 output sections use these fields for a list of bfd_link_order 1771 structs. */ 1772 union { 1773 struct bfd_link_order *link_order; 1774 struct bfd_section *s; 1775 } map_head, map_tail; 1776 } asection; 1777 1778 /* Relax table contains information about instructions which can 1779 be removed by relaxation -- replacing a long address with a 1780 short address. */ 1781 struct relax_table { 1782 /* Address where bytes may be deleted. */ 1783 bfd_vma addr; 1784 1785 /* Number of bytes to be deleted. */ 1786 int size; 1787 }; 1788 1789 /* These sections are global, and are managed by BFD. The application 1790 and target back end are not permitted to change the values in 1791 these sections. New code should use the section_ptr macros rather 1792 than referring directly to the const sections. The const sections 1793 may eventually vanish. */ 1794 #define BFD_ABS_SECTION_NAME "*ABS*" 1795 #define BFD_UND_SECTION_NAME "*UND*" 1796 #define BFD_COM_SECTION_NAME "*COM*" 1797 #define BFD_IND_SECTION_NAME "*IND*" 1798 1799 /* The absolute section. */ 1800 extern asection bfd_abs_section; 1801 #define bfd_abs_section_ptr ((asection *) &bfd_abs_section) 1802 #define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr) 1803 /* Pointer to the undefined section. */ 1804 extern asection bfd_und_section; 1805 #define bfd_und_section_ptr ((asection *) &bfd_und_section) 1806 #define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr) 1807 /* Pointer to the common section. */ 1808 extern asection bfd_com_section; 1809 #define bfd_com_section_ptr ((asection *) &bfd_com_section) 1810 /* Pointer to the indirect section. */ 1811 extern asection bfd_ind_section; 1812 #define bfd_ind_section_ptr ((asection *) &bfd_ind_section) 1813 #define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr) 1814 1815 #define bfd_is_const_section(SEC) \ 1816 ( ((SEC) == bfd_abs_section_ptr) \ 1817 || ((SEC) == bfd_und_section_ptr) \ 1818 || ((SEC) == bfd_com_section_ptr) \ 1819 || ((SEC) == bfd_ind_section_ptr)) 1820 1821 /* Macros to handle insertion and deletion of a bfd's sections. These 1822 only handle the list pointers, ie. do not adjust section_count, 1823 target_index etc. */ 1824 #define bfd_section_list_remove(ABFD, S) \ 1825 do \ 1826 { \ 1827 asection *_s = S; \ 1828 asection *_next = _s->next; \ 1829 asection *_prev = _s->prev; \ 1830 if (_prev) \ 1831 _prev->next = _next; \ 1832 else \ 1833 (ABFD)->sections = _next; \ 1834 if (_next) \ 1835 _next->prev = _prev; \ 1836 else \ 1837 (ABFD)->section_last = _prev; \ 1838 } \ 1839 while (0) 1840 #define bfd_section_list_append(ABFD, S) \ 1841 do \ 1842 { \ 1843 asection *_s = S; \ 1844 bfd *_abfd = ABFD; \ 1845 _s->next = NULL; \ 1846 if (_abfd->section_last) \ 1847 { \ 1848 _s->prev = _abfd->section_last; \ 1849 _abfd->section_last->next = _s; \ 1850 } \ 1851 else \ 1852 { \ 1853 _s->prev = NULL; \ 1854 _abfd->sections = _s; \ 1855 } \ 1856 _abfd->section_last = _s; \ 1857 } \ 1858 while (0) 1859 #define bfd_section_list_prepend(ABFD, S) \ 1860 do \ 1861 { \ 1862 asection *_s = S; \ 1863 bfd *_abfd = ABFD; \ 1864 _s->prev = NULL; \ 1865 if (_abfd->sections) \ 1866 { \ 1867 _s->next = _abfd->sections; \ 1868 _abfd->sections->prev = _s; \ 1869 } \ 1870 else \ 1871 { \ 1872 _s->next = NULL; \ 1873 _abfd->section_last = _s; \ 1874 } \ 1875 _abfd->sections = _s; \ 1876 } \ 1877 while (0) 1878 #define bfd_section_list_insert_after(ABFD, A, S) \ 1879 do \ 1880 { \ 1881 asection *_a = A; \ 1882 asection *_s = S; \ 1883 asection *_next = _a->next; \ 1884 _s->next = _next; \ 1885 _s->prev = _a; \ 1886 _a->next = _s; \ 1887 if (_next) \ 1888 _next->prev = _s; \ 1889 else \ 1890 (ABFD)->section_last = _s; \ 1891 } \ 1892 while (0) 1893 #define bfd_section_list_insert_before(ABFD, B, S) \ 1894 do \ 1895 { \ 1896 asection *_b = B; \ 1897 asection *_s = S; \ 1898 asection *_prev = _b->prev; \ 1899 _s->prev = _prev; \ 1900 _s->next = _b; \ 1901 _b->prev = _s; \ 1902 if (_prev) \ 1903 _prev->next = _s; \ 1904 else \ 1905 (ABFD)->sections = _s; \ 1906 } \ 1907 while (0) 1908 #define bfd_section_removed_from_list(ABFD, S) \ 1909 ((S)->next == NULL ? (ABFD)->section_last != (S) : (S)->next->prev != (S)) 1910 1911 #define BFD_FAKE_SECTION(SEC, FLAGS, SYM, NAME, IDX) \ 1912 /* name, id, index, next, prev, flags, user_set_vma, */ \ 1913 { NAME, IDX, 0, NULL, NULL, FLAGS, 0, \ 1914 \ 1915 /* linker_mark, linker_has_input, gc_mark, decompress_status, */ \ 1916 0, 0, 1, 0, \ 1917 \ 1918 /* segment_mark, sec_info_type, use_rela_p, */ \ 1919 0, 0, 0, \ 1920 \ 1921 /* sec_flg0, sec_flg1, sec_flg2, sec_flg3, sec_flg4, sec_flg5, */ \ 1922 0, 0, 0, 0, 0, 0, \ 1923 \ 1924 /* vma, lma, size, rawsize, compressed_size, relax, relax_count, */ \ 1925 0, 0, 0, 0, 0, 0, 0, \ 1926 \ 1927 /* output_offset, output_section, alignment_power, */ \ 1928 0, (struct bfd_section *) &SEC, 0, \ 1929 \ 1930 /* relocation, orelocation, reloc_count, filepos, rel_filepos, */ \ 1931 NULL, NULL, 0, 0, 0, \ 1932 \ 1933 /* line_filepos, userdata, contents, lineno, lineno_count, */ \ 1934 0, NULL, NULL, NULL, 0, \ 1935 \ 1936 /* entsize, kept_section, moving_line_filepos, */ \ 1937 0, NULL, 0, \ 1938 \ 1939 /* target_index, used_by_bfd, constructor_chain, owner, */ \ 1940 0, NULL, NULL, NULL, \ 1941 \ 1942 /* flag_info, */ \ 1943 NULL, \ 1944 \ 1945 /* symbol, symbol_ptr_ptr, */ \ 1946 (struct bfd_symbol *) SYM, &SEC.symbol, \ 1947 \ 1948 /* map_head, map_tail */ \ 1949 { NULL }, { NULL } \ 1950 } 1951 1952 1953 File: bfd.info, Node: section prototypes, Prev: typedef asection, Up: Sections 1954 1955 2.6.5 Section prototypes 1956 ------------------------ 1957 1958 These are the functions exported by the section handling part of BFD. 1959 1960 2.6.5.1 `bfd_section_list_clear' 1961 ................................ 1962 1963 *Synopsis* 1964 void bfd_section_list_clear (bfd *); 1965 *Description* 1966 Clears the section list, and also resets the section count and hash 1967 table entries. 1968 1969 2.6.5.2 `bfd_get_section_by_name' 1970 ................................. 1971 1972 *Synopsis* 1973 asection *bfd_get_section_by_name (bfd *abfd, const char *name); 1974 *Description* 1975 Run through ABFD and return the one of the `asection's whose name 1976 matches NAME, otherwise `NULL'. *Note Sections::, for more information. 1977 1978 This should only be used in special cases; the normal way to process 1979 all sections of a given name is to use `bfd_map_over_sections' and 1980 `strcmp' on the name (or better yet, base it on the section flags or 1981 something else) for each section. 1982 1983 2.6.5.3 `bfd_get_section_by_name_if' 1984 .................................... 1985 1986 *Synopsis* 1987 asection *bfd_get_section_by_name_if 1988 (bfd *abfd, 1989 const char *name, 1990 bfd_boolean (*func) (bfd *abfd, asection *sect, void *obj), 1991 void *obj); 1992 *Description* 1993 Call the provided function FUNC for each section attached to the BFD 1994 ABFD whose name matches NAME, passing OBJ as an argument. The function 1995 will be called as if by 1996 1997 func (abfd, the_section, obj); 1998 1999 It returns the first section for which FUNC returns true, otherwise 2000 `NULL'. 2001 2002 2.6.5.4 `bfd_get_unique_section_name' 2003 ..................................... 2004 2005 *Synopsis* 2006 char *bfd_get_unique_section_name 2007 (bfd *abfd, const char *templat, int *count); 2008 *Description* 2009 Invent a section name that is unique in ABFD by tacking a dot and a 2010 digit suffix onto the original TEMPLAT. If COUNT is non-NULL, then it 2011 specifies the first number tried as a suffix to generate a unique name. 2012 The value pointed to by COUNT will be incremented in this case. 2013 2014 2.6.5.5 `bfd_make_section_old_way' 2015 .................................. 2016 2017 *Synopsis* 2018 asection *bfd_make_section_old_way (bfd *abfd, const char *name); 2019 *Description* 2020 Create a new empty section called NAME and attach it to the end of the 2021 chain of sections for the BFD ABFD. An attempt to create a section with 2022 a name which is already in use returns its pointer without changing the 2023 section chain. 2024 2025 It has the funny name since this is the way it used to be before it 2026 was rewritten.... 2027 2028 Possible errors are: 2029 * `bfd_error_invalid_operation' - If output has already started for 2030 this BFD. 2031 2032 * `bfd_error_no_memory' - If memory allocation fails. 2033 2034 2.6.5.6 `bfd_make_section_anyway_with_flags' 2035 ............................................ 2036 2037 *Synopsis* 2038 asection *bfd_make_section_anyway_with_flags 2039 (bfd *abfd, const char *name, flagword flags); 2040 *Description* 2041 Create a new empty section called NAME and attach it to the end of the 2042 chain of sections for ABFD. Create a new section even if there is 2043 already a section with that name. Also set the attributes of the new 2044 section to the value FLAGS. 2045 2046 Return `NULL' and set `bfd_error' on error; possible errors are: 2047 * `bfd_error_invalid_operation' - If output has already started for 2048 ABFD. 2049 2050 * `bfd_error_no_memory' - If memory allocation fails. 2051 2052 2.6.5.7 `bfd_make_section_anyway' 2053 ................................. 2054 2055 *Synopsis* 2056 asection *bfd_make_section_anyway (bfd *abfd, const char *name); 2057 *Description* 2058 Create a new empty section called NAME and attach it to the end of the 2059 chain of sections for ABFD. Create a new section even if there is 2060 already a section with that name. 2061 2062 Return `NULL' and set `bfd_error' on error; possible errors are: 2063 * `bfd_error_invalid_operation' - If output has already started for 2064 ABFD. 2065 2066 * `bfd_error_no_memory' - If memory allocation fails. 2067 2068 2.6.5.8 `bfd_make_section_with_flags' 2069 ..................................... 2070 2071 *Synopsis* 2072 asection *bfd_make_section_with_flags 2073 (bfd *, const char *name, flagword flags); 2074 *Description* 2075 Like `bfd_make_section_anyway', but return `NULL' (without calling 2076 bfd_set_error ()) without changing the section chain if there is 2077 already a section named NAME. Also set the attributes of the new 2078 section to the value FLAGS. If there is an error, return `NULL' and set 2079 `bfd_error'. 2080 2081 2.6.5.9 `bfd_make_section' 2082 .......................... 2083 2084 *Synopsis* 2085 asection *bfd_make_section (bfd *, const char *name); 2086 *Description* 2087 Like `bfd_make_section_anyway', but return `NULL' (without calling 2088 bfd_set_error ()) without changing the section chain if there is 2089 already a section named NAME. If there is an error, return `NULL' and 2090 set `bfd_error'. 2091 2092 2.6.5.10 `bfd_set_section_flags' 2093 ................................ 2094 2095 *Synopsis* 2096 bfd_boolean bfd_set_section_flags 2097 (bfd *abfd, asection *sec, flagword flags); 2098 *Description* 2099 Set the attributes of the section SEC in the BFD ABFD to the value 2100 FLAGS. Return `TRUE' on success, `FALSE' on error. Possible error 2101 returns are: 2102 2103 * `bfd_error_invalid_operation' - The section cannot have one or 2104 more of the attributes requested. For example, a .bss section in 2105 `a.out' may not have the `SEC_HAS_CONTENTS' field set. 2106 2107 2.6.5.11 `bfd_rename_section' 2108 ............................. 2109 2110 *Synopsis* 2111 void bfd_rename_section 2112 (bfd *abfd, asection *sec, const char *newname); 2113 *Description* 2114 Rename section SEC in ABFD to NEWNAME. 2115 2116 2.6.5.12 `bfd_map_over_sections' 2117 ................................ 2118 2119 *Synopsis* 2120 void bfd_map_over_sections 2121 (bfd *abfd, 2122 void (*func) (bfd *abfd, asection *sect, void *obj), 2123 void *obj); 2124 *Description* 2125 Call the provided function FUNC for each section attached to the BFD 2126 ABFD, passing OBJ as an argument. The function will be called as if by 2127 2128 func (abfd, the_section, obj); 2129 2130 This is the preferred method for iterating over sections; an 2131 alternative would be to use a loop: 2132 2133 section *p; 2134 for (p = abfd->sections; p != NULL; p = p->next) 2135 func (abfd, p, ...) 2136 2137 2.6.5.13 `bfd_sections_find_if' 2138 ............................... 2139 2140 *Synopsis* 2141 asection *bfd_sections_find_if 2142 (bfd *abfd, 2143 bfd_boolean (*operation) (bfd *abfd, asection *sect, void *obj), 2144 void *obj); 2145 *Description* 2146 Call the provided function OPERATION for each section attached to the 2147 BFD ABFD, passing OBJ as an argument. The function will be called as if 2148 by 2149 2150 operation (abfd, the_section, obj); 2151 2152 It returns the first section for which OPERATION returns true. 2153 2154 2.6.5.14 `bfd_set_section_size' 2155 ............................... 2156 2157 *Synopsis* 2158 bfd_boolean bfd_set_section_size 2159 (bfd *abfd, asection *sec, bfd_size_type val); 2160 *Description* 2161 Set SEC to the size VAL. If the operation is ok, then `TRUE' is 2162 returned, else `FALSE'. 2163 2164 Possible error returns: 2165 * `bfd_error_invalid_operation' - Writing has started to the BFD, so 2166 setting the size is invalid. 2167 2168 2.6.5.15 `bfd_set_section_contents' 2169 ................................... 2170 2171 *Synopsis* 2172 bfd_boolean bfd_set_section_contents 2173 (bfd *abfd, asection *section, const void *data, 2174 file_ptr offset, bfd_size_type count); 2175 *Description* 2176 Sets the contents of the section SECTION in BFD ABFD to the data 2177 starting in memory at DATA. The data is written to the output section 2178 starting at offset OFFSET for COUNT octets. 2179 2180 Normally `TRUE' is returned, else `FALSE'. Possible error returns 2181 are: 2182 * `bfd_error_no_contents' - The output section does not have the 2183 `SEC_HAS_CONTENTS' attribute, so nothing can be written to it. 2184 2185 * and some more too 2186 This routine is front end to the back end function 2187 `_bfd_set_section_contents'. 2188 2189 2.6.5.16 `bfd_get_section_contents' 2190 ................................... 2191 2192 *Synopsis* 2193 bfd_boolean bfd_get_section_contents 2194 (bfd *abfd, asection *section, void *location, file_ptr offset, 2195 bfd_size_type count); 2196 *Description* 2197 Read data from SECTION in BFD ABFD into memory starting at LOCATION. 2198 The data is read at an offset of OFFSET from the start of the input 2199 section, and is read for COUNT bytes. 2200 2201 If the contents of a constructor with the `SEC_CONSTRUCTOR' flag set 2202 are requested or if the section does not have the `SEC_HAS_CONTENTS' 2203 flag set, then the LOCATION is filled with zeroes. If no errors occur, 2204 `TRUE' is returned, else `FALSE'. 2205 2206 2.6.5.17 `bfd_malloc_and_get_section' 2207 ..................................... 2208 2209 *Synopsis* 2210 bfd_boolean bfd_malloc_and_get_section 2211 (bfd *abfd, asection *section, bfd_byte **buf); 2212 *Description* 2213 Read all data from SECTION in BFD ABFD into a buffer, *BUF, malloc'd by 2214 this function. 2215 2216 2.6.5.18 `bfd_copy_private_section_data' 2217 ........................................ 2218 2219 *Synopsis* 2220 bfd_boolean bfd_copy_private_section_data 2221 (bfd *ibfd, asection *isec, bfd *obfd, asection *osec); 2222 *Description* 2223 Copy private section information from ISEC in the BFD IBFD to the 2224 section OSEC in the BFD OBFD. Return `TRUE' on success, `FALSE' on 2225 error. Possible error returns are: 2226 2227 * `bfd_error_no_memory' - Not enough memory exists to create private 2228 data for OSEC. 2229 2230 #define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \ 2231 BFD_SEND (obfd, _bfd_copy_private_section_data, \ 2232 (ibfd, isection, obfd, osection)) 2233 2234 2.6.5.19 `bfd_generic_is_group_section' 2235 ....................................... 2236 2237 *Synopsis* 2238 bfd_boolean bfd_generic_is_group_section (bfd *, const asection *sec); 2239 *Description* 2240 Returns TRUE if SEC is a member of a group. 2241 2242 2.6.5.20 `bfd_generic_discard_group' 2243 .................................... 2244 2245 *Synopsis* 2246 bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group); 2247 *Description* 2248 Remove all members of GROUP from the output. 2249 2250 2251 File: bfd.info, Node: Symbols, Next: Archives, Prev: Sections, Up: BFD front end 2252 2253 2.7 Symbols 2254 =========== 2255 2256 BFD tries to maintain as much symbol information as it can when it 2257 moves information from file to file. BFD passes information to 2258 applications though the `asymbol' structure. When the application 2259 requests the symbol table, BFD reads the table in the native form and 2260 translates parts of it into the internal format. To maintain more than 2261 the information passed to applications, some targets keep some 2262 information "behind the scenes" in a structure only the particular back 2263 end knows about. For example, the coff back end keeps the original 2264 symbol table structure as well as the canonical structure when a BFD is 2265 read in. On output, the coff back end can reconstruct the output symbol 2266 table so that no information is lost, even information unique to coff 2267 which BFD doesn't know or understand. If a coff symbol table were read, 2268 but were written through an a.out back end, all the coff specific 2269 information would be lost. The symbol table of a BFD is not necessarily 2270 read in until a canonicalize request is made. Then the BFD back end 2271 fills in a table provided by the application with pointers to the 2272 canonical information. To output symbols, the application provides BFD 2273 with a table of pointers to pointers to `asymbol's. This allows 2274 applications like the linker to output a symbol as it was read, since 2275 the "behind the scenes" information will be still available. 2276 2277 * Menu: 2278 2279 * Reading Symbols:: 2280 * Writing Symbols:: 2281 * Mini Symbols:: 2282 * typedef asymbol:: 2283 * symbol handling functions:: 2284 2285 2286 File: bfd.info, Node: Reading Symbols, Next: Writing Symbols, Prev: Symbols, Up: Symbols 2287 2288 2.7.1 Reading symbols 2289 --------------------- 2290 2291 There are two stages to reading a symbol table from a BFD: allocating 2292 storage, and the actual reading process. This is an excerpt from an 2293 application which reads the symbol table: 2294 2295 long storage_needed; 2296 asymbol **symbol_table; 2297 long number_of_symbols; 2298 long i; 2299 2300 storage_needed = bfd_get_symtab_upper_bound (abfd); 2301 2302 if (storage_needed < 0) 2303 FAIL 2304 2305 if (storage_needed == 0) 2306 return; 2307 2308 symbol_table = xmalloc (storage_needed); 2309 ... 2310 number_of_symbols = 2311 bfd_canonicalize_symtab (abfd, symbol_table); 2312 2313 if (number_of_symbols < 0) 2314 FAIL 2315 2316 for (i = 0; i < number_of_symbols; i++) 2317 process_symbol (symbol_table[i]); 2318 2319 All storage for the symbols themselves is in an objalloc connected 2320 to the BFD; it is freed when the BFD is closed. 2321 2322 2323 File: bfd.info, Node: Writing Symbols, Next: Mini Symbols, Prev: Reading Symbols, Up: Symbols 2324 2325 2.7.2 Writing symbols 2326 --------------------- 2327 2328 Writing of a symbol table is automatic when a BFD open for writing is 2329 closed. The application attaches a vector of pointers to pointers to 2330 symbols to the BFD being written, and fills in the symbol count. The 2331 close and cleanup code reads through the table provided and performs 2332 all the necessary operations. The BFD output code must always be 2333 provided with an "owned" symbol: one which has come from another BFD, 2334 or one which has been created using `bfd_make_empty_symbol'. Here is an 2335 example showing the creation of a symbol table with only one element: 2336 2337 #include "bfd.h" 2338 int main (void) 2339 { 2340 bfd *abfd; 2341 asymbol *ptrs[2]; 2342 asymbol *new; 2343 2344 abfd = bfd_openw ("foo","a.out-sunos-big"); 2345 bfd_set_format (abfd, bfd_object); 2346 new = bfd_make_empty_symbol (abfd); 2347 new->name = "dummy_symbol"; 2348 new->section = bfd_make_section_old_way (abfd, ".text"); 2349 new->flags = BSF_GLOBAL; 2350 new->value = 0x12345; 2351 2352 ptrs[0] = new; 2353 ptrs[1] = 0; 2354 2355 bfd_set_symtab (abfd, ptrs, 1); 2356 bfd_close (abfd); 2357 return 0; 2358 } 2359 2360 ./makesym 2361 nm foo 2362 00012345 A dummy_symbol 2363 2364 Many formats cannot represent arbitrary symbol information; for 2365 instance, the `a.out' object format does not allow an arbitrary number 2366 of sections. A symbol pointing to a section which is not one of 2367 `.text', `.data' or `.bss' cannot be described. 2368 2369 2370 File: bfd.info, Node: Mini Symbols, Next: typedef asymbol, Prev: Writing Symbols, Up: Symbols 2371 2372 2.7.3 Mini Symbols 2373 ------------------ 2374 2375 Mini symbols provide read-only access to the symbol table. They use 2376 less memory space, but require more time to access. They can be useful 2377 for tools like nm or objdump, which may have to handle symbol tables of 2378 extremely large executables. 2379 2380 The `bfd_read_minisymbols' function will read the symbols into 2381 memory in an internal form. It will return a `void *' pointer to a 2382 block of memory, a symbol count, and the size of each symbol. The 2383 pointer is allocated using `malloc', and should be freed by the caller 2384 when it is no longer needed. 2385 2386 The function `bfd_minisymbol_to_symbol' will take a pointer to a 2387 minisymbol, and a pointer to a structure returned by 2388 `bfd_make_empty_symbol', and return a `asymbol' structure. The return 2389 value may or may not be the same as the value from 2390 `bfd_make_empty_symbol' which was passed in. 2391 2392 2393 File: bfd.info, Node: typedef asymbol, Next: symbol handling functions, Prev: Mini Symbols, Up: Symbols 2394 2395 2.7.4 typedef asymbol 2396 --------------------- 2397 2398 An `asymbol' has the form: 2399 2400 2401 typedef struct bfd_symbol 2402 { 2403 /* A pointer to the BFD which owns the symbol. This information 2404 is necessary so that a back end can work out what additional 2405 information (invisible to the application writer) is carried 2406 with the symbol. 2407 2408 This field is *almost* redundant, since you can use section->owner 2409 instead, except that some symbols point to the global sections 2410 bfd_{abs,com,und}_section. This could be fixed by making 2411 these globals be per-bfd (or per-target-flavor). FIXME. */ 2412 struct bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field. */ 2413 2414 /* The text of the symbol. The name is left alone, and not copied; the 2415 application may not alter it. */ 2416 const char *name; 2417 2418 /* The value of the symbol. This really should be a union of a 2419 numeric value with a pointer, since some flags indicate that 2420 a pointer to another symbol is stored here. */ 2421 symvalue value; 2422 2423 /* Attributes of a symbol. */ 2424 #define BSF_NO_FLAGS 0x00 2425 2426 /* The symbol has local scope; `static' in `C'. The value 2427 is the offset into the section of the data. */ 2428 #define BSF_LOCAL (1 << 0) 2429 2430 /* The symbol has global scope; initialized data in `C'. The 2431 value is the offset into the section of the data. */ 2432 #define BSF_GLOBAL (1 << 1) 2433 2434 /* The symbol has global scope and is exported. The value is 2435 the offset into the section of the data. */ 2436 #define BSF_EXPORT BSF_GLOBAL /* No real difference. */ 2437 2438 /* A normal C symbol would be one of: 2439 `BSF_LOCAL', `BSF_COMMON', `BSF_UNDEFINED' or 2440 `BSF_GLOBAL'. */ 2441 2442 /* The symbol is a debugging record. The value has an arbitrary 2443 meaning, unless BSF_DEBUGGING_RELOC is also set. */ 2444 #define BSF_DEBUGGING (1 << 2) 2445 2446 /* The symbol denotes a function entry point. Used in ELF, 2447 perhaps others someday. */ 2448 #define BSF_FUNCTION (1 << 3) 2449 2450 /* Used by the linker. */ 2451 #define BSF_KEEP (1 << 5) 2452 #define BSF_KEEP_G (1 << 6) 2453 2454 /* A weak global symbol, overridable without warnings by 2455 a regular global symbol of the same name. */ 2456 #define BSF_WEAK (1 << 7) 2457 2458 /* This symbol was created to point to a section, e.g. ELF's 2459 STT_SECTION symbols. */ 2460 #define BSF_SECTION_SYM (1 << 8) 2461 2462 /* The symbol used to be a common symbol, but now it is 2463 allocated. */ 2464 #define BSF_OLD_COMMON (1 << 9) 2465 2466 /* In some files the type of a symbol sometimes alters its 2467 location in an output file - ie in coff a `ISFCN' symbol 2468 which is also `C_EXT' symbol appears where it was 2469 declared and not at the end of a section. This bit is set 2470 by the target BFD part to convey this information. */ 2471 #define BSF_NOT_AT_END (1 << 10) 2472 2473 /* Signal that the symbol is the label of constructor section. */ 2474 #define BSF_CONSTRUCTOR (1 << 11) 2475 2476 /* Signal that the symbol is a warning symbol. The name is a 2477 warning. The name of the next symbol is the one to warn about; 2478 if a reference is made to a symbol with the same name as the next 2479 symbol, a warning is issued by the linker. */ 2480 #define BSF_WARNING (1 << 12) 2481 2482 /* Signal that the symbol is indirect. This symbol is an indirect 2483 pointer to the symbol with the same name as the next symbol. */ 2484 #define BSF_INDIRECT (1 << 13) 2485 2486 /* BSF_FILE marks symbols that contain a file name. This is used 2487 for ELF STT_FILE symbols. */ 2488 #define BSF_FILE (1 << 14) 2489 2490 /* Symbol is from dynamic linking information. */ 2491 #define BSF_DYNAMIC (1 << 15) 2492 2493 /* The symbol denotes a data object. Used in ELF, and perhaps 2494 others someday. */ 2495 #define BSF_OBJECT (1 << 16) 2496 2497 /* This symbol is a debugging symbol. The value is the offset 2498 into the section of the data. BSF_DEBUGGING should be set 2499 as well. */ 2500 #define BSF_DEBUGGING_RELOC (1 << 17) 2501 2502 /* This symbol is thread local. Used in ELF. */ 2503 #define BSF_THREAD_LOCAL (1 << 18) 2504 2505 /* This symbol represents a complex relocation expression, 2506 with the expression tree serialized in the symbol name. */ 2507 #define BSF_RELC (1 << 19) 2508 2509 /* This symbol represents a signed complex relocation expression, 2510 with the expression tree serialized in the symbol name. */ 2511 #define BSF_SRELC (1 << 20) 2512 2513 /* This symbol was created by bfd_get_synthetic_symtab. */ 2514 #define BSF_SYNTHETIC (1 << 21) 2515 2516 /* This symbol is an indirect code object. Unrelated to BSF_INDIRECT. 2517 The dynamic linker will compute the value of this symbol by 2518 calling the function that it points to. BSF_FUNCTION must 2519 also be also set. */ 2520 #define BSF_GNU_INDIRECT_FUNCTION (1 << 22) 2521 /* This symbol is a globally unique data object. The dynamic linker 2522 will make sure that in the entire process there is just one symbol 2523 with this name and type in use. BSF_OBJECT must also be set. */ 2524 #define BSF_GNU_UNIQUE (1 << 23) 2525 2526 flagword flags; 2527 2528 /* A pointer to the section to which this symbol is 2529 relative. This will always be non NULL, there are special 2530 sections for undefined and absolute symbols. */ 2531 struct bfd_section *section; 2532 2533 /* Back end special data. */ 2534 union 2535 { 2536 void *p; 2537 bfd_vma i; 2538 } 2539 udata; 2540 } 2541 asymbol; 2542 2543 2544 File: bfd.info, Node: symbol handling functions, Prev: typedef asymbol, Up: Symbols 2545 2546 2.7.5 Symbol handling functions 2547 ------------------------------- 2548 2549 2.7.5.1 `bfd_get_symtab_upper_bound' 2550 .................................... 2551 2552 *Description* 2553 Return the number of bytes required to store a vector of pointers to 2554 `asymbols' for all the symbols in the BFD ABFD, including a terminal 2555 NULL pointer. If there are no symbols in the BFD, then return 0. If an 2556 error occurs, return -1. 2557 #define bfd_get_symtab_upper_bound(abfd) \ 2558 BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd)) 2559 2560 2.7.5.2 `bfd_is_local_label' 2561 ............................ 2562 2563 *Synopsis* 2564 bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym); 2565 *Description* 2566 Return TRUE if the given symbol SYM in the BFD ABFD is a compiler 2567 generated local label, else return FALSE. 2568 2569 2.7.5.3 `bfd_is_local_label_name' 2570 ................................. 2571 2572 *Synopsis* 2573 bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name); 2574 *Description* 2575 Return TRUE if a symbol with the name NAME in the BFD ABFD is a 2576 compiler generated local label, else return FALSE. This just checks 2577 whether the name has the form of a local label. 2578 #define bfd_is_local_label_name(abfd, name) \ 2579 BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name)) 2580 2581 2.7.5.4 `bfd_is_target_special_symbol' 2582 ...................................... 2583 2584 *Synopsis* 2585 bfd_boolean bfd_is_target_special_symbol (bfd *abfd, asymbol *sym); 2586 *Description* 2587 Return TRUE iff a symbol SYM in the BFD ABFD is something special to 2588 the particular target represented by the BFD. Such symbols should 2589 normally not be mentioned to the user. 2590 #define bfd_is_target_special_symbol(abfd, sym) \ 2591 BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym)) 2592 2593 2.7.5.5 `bfd_canonicalize_symtab' 2594 ................................. 2595 2596 *Description* 2597 Read the symbols from the BFD ABFD, and fills in the vector LOCATION 2598 with pointers to the symbols and a trailing NULL. Return the actual 2599 number of symbol pointers, not including the NULL. 2600 #define bfd_canonicalize_symtab(abfd, location) \ 2601 BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location)) 2602 2603 2.7.5.6 `bfd_set_symtab' 2604 ........................ 2605 2606 *Synopsis* 2607 bfd_boolean bfd_set_symtab 2608 (bfd *abfd, asymbol **location, unsigned int count); 2609 *Description* 2610 Arrange that when the output BFD ABFD is closed, the table LOCATION of 2611 COUNT pointers to symbols will be written. 2612 2613 2.7.5.7 `bfd_print_symbol_vandf' 2614 ................................ 2615 2616 *Synopsis* 2617 void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol); 2618 *Description* 2619 Print the value and flags of the SYMBOL supplied to the stream FILE. 2620 2621 2.7.5.8 `bfd_make_empty_symbol' 2622 ............................... 2623 2624 *Description* 2625 Create a new `asymbol' structure for the BFD ABFD and return a pointer 2626 to it. 2627 2628 This routine is necessary because each back end has private 2629 information surrounding the `asymbol'. Building your own `asymbol' and 2630 pointing to it will not create the private information, and will cause 2631 problems later on. 2632 #define bfd_make_empty_symbol(abfd) \ 2633 BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd)) 2634 2635 2.7.5.9 `_bfd_generic_make_empty_symbol' 2636 ........................................ 2637 2638 *Synopsis* 2639 asymbol *_bfd_generic_make_empty_symbol (bfd *); 2640 *Description* 2641 Create a new `asymbol' structure for the BFD ABFD and return a pointer 2642 to it. Used by core file routines, binary back-end and anywhere else 2643 where no private info is needed. 2644 2645 2.7.5.10 `bfd_make_debug_symbol' 2646 ................................ 2647 2648 *Description* 2649 Create a new `asymbol' structure for the BFD ABFD, to be used as a 2650 debugging symbol. Further details of its use have yet to be worked out. 2651 #define bfd_make_debug_symbol(abfd,ptr,size) \ 2652 BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size)) 2653 2654 2.7.5.11 `bfd_decode_symclass' 2655 .............................. 2656 2657 *Description* 2658 Return a character corresponding to the symbol class of SYMBOL, or '?' 2659 for an unknown class. 2660 2661 *Synopsis* 2662 int bfd_decode_symclass (asymbol *symbol); 2663 2664 2.7.5.12 `bfd_is_undefined_symclass' 2665 .................................... 2666 2667 *Description* 2668 Returns non-zero if the class symbol returned by bfd_decode_symclass 2669 represents an undefined symbol. Returns zero otherwise. 2670 2671 *Synopsis* 2672 bfd_boolean bfd_is_undefined_symclass (int symclass); 2673 2674 2.7.5.13 `bfd_symbol_info' 2675 .......................... 2676 2677 *Description* 2678 Fill in the basic info about symbol that nm needs. Additional info may 2679 be added by the back-ends after calling this function. 2680 2681 *Synopsis* 2682 void bfd_symbol_info (asymbol *symbol, symbol_info *ret); 2683 2684 2.7.5.14 `bfd_copy_private_symbol_data' 2685 ....................................... 2686 2687 *Synopsis* 2688 bfd_boolean bfd_copy_private_symbol_data 2689 (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym); 2690 *Description* 2691 Copy private symbol information from ISYM in the BFD IBFD to the symbol 2692 OSYM in the BFD OBFD. Return `TRUE' on success, `FALSE' on error. 2693 Possible error returns are: 2694 2695 * `bfd_error_no_memory' - Not enough memory exists to create private 2696 data for OSEC. 2697 2698 #define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \ 2699 BFD_SEND (obfd, _bfd_copy_private_symbol_data, \ 2700 (ibfd, isymbol, obfd, osymbol)) 2701 2702 2703 File: bfd.info, Node: Archives, Next: Formats, Prev: Symbols, Up: BFD front end 2704 2705 2.8 Archives 2706 ============ 2707 2708 *Description* 2709 An archive (or library) is just another BFD. It has a symbol table, 2710 although there's not much a user program will do with it. 2711 2712 The big difference between an archive BFD and an ordinary BFD is 2713 that the archive doesn't have sections. Instead it has a chain of BFDs 2714 that are considered its contents. These BFDs can be manipulated like 2715 any other. The BFDs contained in an archive opened for reading will 2716 all be opened for reading. You may put either input or output BFDs 2717 into an archive opened for output; they will be handled correctly when 2718 the archive is closed. 2719 2720 Use `bfd_openr_next_archived_file' to step through the contents of 2721 an archive opened for input. You don't have to read the entire archive 2722 if you don't want to! Read it until you find what you want. 2723 2724 Archive contents of output BFDs are chained through the `next' 2725 pointer in a BFD. The first one is findable through the `archive_head' 2726 slot of the archive. Set it with `bfd_set_archive_head' (q.v.). A 2727 given BFD may be in only one open output archive at a time. 2728 2729 As expected, the BFD archive code is more general than the archive 2730 code of any given environment. BFD archives may contain files of 2731 different formats (e.g., a.out and coff) and even different 2732 architectures. You may even place archives recursively into archives! 2733 2734 This can cause unexpected confusion, since some archive formats are 2735 more expressive than others. For instance, Intel COFF archives can 2736 preserve long filenames; SunOS a.out archives cannot. If you move a 2737 file from the first to the second format and back again, the filename 2738 may be truncated. Likewise, different a.out environments have different 2739 conventions as to how they truncate filenames, whether they preserve 2740 directory names in filenames, etc. When interoperating with native 2741 tools, be sure your files are homogeneous. 2742 2743 Beware: most of these formats do not react well to the presence of 2744 spaces in filenames. We do the best we can, but can't always handle 2745 this case due to restrictions in the format of archives. Many Unix 2746 utilities are braindead in regards to spaces and such in filenames 2747 anyway, so this shouldn't be much of a restriction. 2748 2749 Archives are supported in BFD in `archive.c'. 2750 2751 2.8.1 Archive functions 2752 ----------------------- 2753 2754 2.8.1.1 `bfd_get_next_mapent' 2755 ............................. 2756 2757 *Synopsis* 2758 symindex bfd_get_next_mapent 2759 (bfd *abfd, symindex previous, carsym **sym); 2760 *Description* 2761 Step through archive ABFD's symbol table (if it has one). Successively 2762 update SYM with the next symbol's information, returning that symbol's 2763 (internal) index into the symbol table. 2764 2765 Supply `BFD_NO_MORE_SYMBOLS' as the PREVIOUS entry to get the first 2766 one; returns `BFD_NO_MORE_SYMBOLS' when you've already got the last one. 2767 2768 A `carsym' is a canonical archive symbol. The only user-visible 2769 element is its name, a null-terminated string. 2770 2771 2.8.1.2 `bfd_set_archive_head' 2772 .............................. 2773 2774 *Synopsis* 2775 bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head); 2776 *Description* 2777 Set the head of the chain of BFDs contained in the archive OUTPUT to 2778 NEW_HEAD. 2779 2780 2.8.1.3 `bfd_openr_next_archived_file' 2781 ...................................... 2782 2783 *Synopsis* 2784 bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous); 2785 *Description* 2786 Provided a BFD, ARCHIVE, containing an archive and NULL, open an input 2787 BFD on the first contained element and returns that. Subsequent calls 2788 should pass the archive and the previous return value to return a 2789 created BFD to the next contained element. NULL is returned when there 2790 are no more. 2791 2792 2793 File: bfd.info, Node: Formats, Next: Relocations, Prev: Archives, Up: BFD front end 2794 2795 2.9 File formats 2796 ================ 2797 2798 A format is a BFD concept of high level file contents type. The formats 2799 supported by BFD are: 2800 2801 * `bfd_object' 2802 The BFD may contain data, symbols, relocations and debug info. 2803 2804 * `bfd_archive' 2805 The BFD contains other BFDs and an optional index. 2806 2807 * `bfd_core' 2808 The BFD contains the result of an executable core dump. 2809 2810 2.9.1 File format functions 2811 --------------------------- 2812 2813 2.9.1.1 `bfd_check_format' 2814 .......................... 2815 2816 *Synopsis* 2817 bfd_boolean bfd_check_format (bfd *abfd, bfd_format format); 2818 *Description* 2819 Verify if the file attached to the BFD ABFD is compatible with the 2820 format FORMAT (i.e., one of `bfd_object', `bfd_archive' or `bfd_core'). 2821 2822 If the BFD has been set to a specific target before the call, only 2823 the named target and format combination is checked. If the target has 2824 not been set, or has been set to `default', then all the known target 2825 backends is interrogated to determine a match. If the default target 2826 matches, it is used. If not, exactly one target must recognize the 2827 file, or an error results. 2828 2829 The function returns `TRUE' on success, otherwise `FALSE' with one 2830 of the following error codes: 2831 2832 * `bfd_error_invalid_operation' - if `format' is not one of 2833 `bfd_object', `bfd_archive' or `bfd_core'. 2834 2835 * `bfd_error_system_call' - if an error occured during a read - even 2836 some file mismatches can cause bfd_error_system_calls. 2837 2838 * `file_not_recognised' - none of the backends recognised the file 2839 format. 2840 2841 * `bfd_error_file_ambiguously_recognized' - more than one backend 2842 recognised the file format. 2843 2844 2.9.1.2 `bfd_check_format_matches' 2845 .................................. 2846 2847 *Synopsis* 2848 bfd_boolean bfd_check_format_matches 2849 (bfd *abfd, bfd_format format, char ***matching); 2850 *Description* 2851 Like `bfd_check_format', except when it returns FALSE with `bfd_errno' 2852 set to `bfd_error_file_ambiguously_recognized'. In that case, if 2853 MATCHING is not NULL, it will be filled in with a NULL-terminated list 2854 of the names of the formats that matched, allocated with `malloc'. 2855 Then the user may choose a format and try again. 2856 2857 When done with the list that MATCHING points to, the caller should 2858 free it. 2859 2860 2.9.1.3 `bfd_set_format' 2861 ........................ 2862 2863 *Synopsis* 2864 bfd_boolean bfd_set_format (bfd *abfd, bfd_format format); 2865 *Description* 2866 This function sets the file format of the BFD ABFD to the format 2867 FORMAT. If the target set in the BFD does not support the format 2868 requested, the format is invalid, or the BFD is not open for writing, 2869 then an error occurs. 2870 2871 2.9.1.4 `bfd_format_string' 2872 ........................... 2873 2874 *Synopsis* 2875 const char *bfd_format_string (bfd_format format); 2876 *Description* 2877 Return a pointer to a const string `invalid', `object', `archive', 2878 `core', or `unknown', depending upon the value of FORMAT. 2879 2880 2881 File: bfd.info, Node: Relocations, Next: Core Files, Prev: Formats, Up: BFD front end 2882 2883 2.10 Relocations 2884 ================ 2885 2886 BFD maintains relocations in much the same way it maintains symbols: 2887 they are left alone until required, then read in en-masse and 2888 translated into an internal form. A common routine 2889 `bfd_perform_relocation' acts upon the canonical form to do the fixup. 2890 2891 Relocations are maintained on a per section basis, while symbols are 2892 maintained on a per BFD basis. 2893 2894 All that a back end has to do to fit the BFD interface is to create 2895 a `struct reloc_cache_entry' for each relocation in a particular 2896 section, and fill in the right bits of the structures. 2897 2898 * Menu: 2899 2900 * typedef arelent:: 2901 * howto manager:: 2902 2903 2904 File: bfd.info, Node: typedef arelent, Next: howto manager, Prev: Relocations, Up: Relocations 2905 2906 2.10.1 typedef arelent 2907 ---------------------- 2908 2909 This is the structure of a relocation entry: 2910 2911 2912 typedef enum bfd_reloc_status 2913 { 2914 /* No errors detected. */ 2915 bfd_reloc_ok, 2916 2917 /* The relocation was performed, but there was an overflow. */ 2918 bfd_reloc_overflow, 2919 2920 /* The address to relocate was not within the section supplied. */ 2921 bfd_reloc_outofrange, 2922 2923 /* Used by special functions. */ 2924 bfd_reloc_continue, 2925 2926 /* Unsupported relocation size requested. */ 2927 bfd_reloc_notsupported, 2928 2929 /* Unused. */ 2930 bfd_reloc_other, 2931 2932 /* The symbol to relocate against was undefined. */ 2933 bfd_reloc_undefined, 2934 2935 /* The relocation was performed, but may not be ok - presently 2936 generated only when linking i960 coff files with i960 b.out 2937 symbols. If this type is returned, the error_message argument 2938 to bfd_perform_relocation will be set. */ 2939 bfd_reloc_dangerous 2940 } 2941 bfd_reloc_status_type; 2942 2943 2944 typedef struct reloc_cache_entry 2945 { 2946 /* A pointer into the canonical table of pointers. */ 2947 struct bfd_symbol **sym_ptr_ptr; 2948 2949 /* offset in section. */ 2950 bfd_size_type address; 2951 2952 /* addend for relocation value. */ 2953 bfd_vma addend; 2954 2955 /* Pointer to how to perform the required relocation. */ 2956 reloc_howto_type *howto; 2957 2958 } 2959 arelent; 2960 *Description* 2961 Here is a description of each of the fields within an `arelent': 2962 2963 * `sym_ptr_ptr' 2964 The symbol table pointer points to a pointer to the symbol 2965 associated with the relocation request. It is the pointer into the 2966 table returned by the back end's `canonicalize_symtab' action. *Note 2967 Symbols::. The symbol is referenced through a pointer to a pointer so 2968 that tools like the linker can fix up all the symbols of the same name 2969 by modifying only one pointer. The relocation routine looks in the 2970 symbol and uses the base of the section the symbol is attached to and 2971 the value of the symbol as the initial relocation offset. If the symbol 2972 pointer is zero, then the section provided is looked up. 2973 2974 * `address' 2975 The `address' field gives the offset in bytes from the base of the 2976 section data which owns the relocation record to the first byte of 2977 relocatable information. The actual data relocated will be relative to 2978 this point; for example, a relocation type which modifies the bottom 2979 two bytes of a four byte word would not touch the first byte pointed to 2980 in a big endian world. 2981 2982 * `addend' 2983 The `addend' is a value provided by the back end to be added (!) to 2984 the relocation offset. Its interpretation is dependent upon the howto. 2985 For example, on the 68k the code: 2986 2987 char foo[]; 2988 main() 2989 { 2990 return foo[0x12345678]; 2991 } 2992 2993 Could be compiled into: 2994 2995 linkw fp,#-4 2996 moveb @#12345678,d0 2997 extbl d0 2998 unlk fp 2999 rts 3000 3001 This could create a reloc pointing to `foo', but leave the offset in 3002 the data, something like: 3003 3004 RELOCATION RECORDS FOR [.text]: 3005 offset type value 3006 00000006 32 _foo 3007 3008 00000000 4e56 fffc ; linkw fp,#-4 3009 00000004 1039 1234 5678 ; moveb @#12345678,d0 3010 0000000a 49c0 ; extbl d0 3011 0000000c 4e5e ; unlk fp 3012 0000000e 4e75 ; rts 3013 3014 Using coff and an 88k, some instructions don't have enough space in 3015 them to represent the full address range, and pointers have to be 3016 loaded in two parts. So you'd get something like: 3017 3018 or.u r13,r0,hi16(_foo+0x12345678) 3019 ld.b r2,r13,lo16(_foo+0x12345678) 3020 jmp r1 3021 3022 This should create two relocs, both pointing to `_foo', and with 3023 0x12340000 in their addend field. The data would consist of: 3024 3025 RELOCATION RECORDS FOR [.text]: 3026 offset type value 3027 00000002 HVRT16 _foo+0x12340000 3028 00000006 LVRT16 _foo+0x12340000 3029 3030 00000000 5da05678 ; or.u r13,r0,0x5678 3031 00000004 1c4d5678 ; ld.b r2,r13,0x5678 3032 00000008 f400c001 ; jmp r1 3033 3034 The relocation routine digs out the value from the data, adds it to 3035 the addend to get the original offset, and then adds the value of 3036 `_foo'. Note that all 32 bits have to be kept around somewhere, to cope 3037 with carry from bit 15 to bit 16. 3038 3039 One further example is the sparc and the a.out format. The sparc has 3040 a similar problem to the 88k, in that some instructions don't have room 3041 for an entire offset, but on the sparc the parts are created in odd 3042 sized lumps. The designers of the a.out format chose to not use the 3043 data within the section for storing part of the offset; all the offset 3044 is kept within the reloc. Anything in the data should be ignored. 3045 3046 save %sp,-112,%sp 3047 sethi %hi(_foo+0x12345678),%g2 3048 ldsb [%g2+%lo(_foo+0x12345678)],%i0 3049 ret 3050 restore 3051 3052 Both relocs contain a pointer to `foo', and the offsets contain junk. 3053 3054 RELOCATION RECORDS FOR [.text]: 3055 offset type value 3056 00000004 HI22 _foo+0x12345678 3057 00000008 LO10 _foo+0x12345678 3058 3059 00000000 9de3bf90 ; save %sp,-112,%sp 3060 00000004 05000000 ; sethi %hi(_foo+0),%g2 3061 00000008 f048a000 ; ldsb [%g2+%lo(_foo+0)],%i0 3062 0000000c 81c7e008 ; ret 3063 00000010 81e80000 ; restore 3064 3065 * `howto' 3066 The `howto' field can be imagined as a relocation instruction. It is 3067 a pointer to a structure which contains information on what to do with 3068 all of the other information in the reloc record and data section. A 3069 back end would normally have a relocation instruction set and turn 3070 relocations into pointers to the correct structure on input - but it 3071 would be possible to create each howto field on demand. 3072 3073 2.10.1.1 `enum complain_overflow' 3074 ................................. 3075 3076 Indicates what sort of overflow checking should be done when performing 3077 a relocation. 3078 3079 3080 enum complain_overflow 3081 { 3082 /* Do not complain on overflow. */ 3083 complain_overflow_dont, 3084 3085 /* Complain if the value overflows when considered as a signed 3086 number one bit larger than the field. ie. A bitfield of N bits 3087 is allowed to represent -2**n to 2**n-1. */ 3088 complain_overflow_bitfield, 3089 3090 /* Complain if the value overflows when considered as a signed 3091 number. */ 3092 complain_overflow_signed, 3093 3094 /* Complain if the value overflows when considered as an 3095 unsigned number. */ 3096 complain_overflow_unsigned 3097 }; 3098 3099 2.10.1.2 `reloc_howto_type' 3100 ........................... 3101 3102 The `reloc_howto_type' is a structure which contains all the 3103 information that libbfd needs to know to tie up a back end's data. 3104 3105 struct bfd_symbol; /* Forward declaration. */ 3106 3107 struct reloc_howto_struct 3108 { 3109 /* The type field has mainly a documentary use - the back end can 3110 do what it wants with it, though normally the back end's 3111 external idea of what a reloc number is stored 3112 in this field. For example, a PC relative word relocation 3113 in a coff environment has the type 023 - because that's 3114 what the outside world calls a R_PCRWORD reloc. */ 3115 unsigned int type; 3116 3117 /* The value the final relocation is shifted right by. This drops 3118 unwanted data from the relocation. */ 3119 unsigned int rightshift; 3120 3121 /* The size of the item to be relocated. This is *not* a 3122 power-of-two measure. To get the number of bytes operated 3123 on by a type of relocation, use bfd_get_reloc_size. */ 3124 int size; 3125 3126 /* The number of bits in the item to be relocated. This is used 3127 when doing overflow checking. */ 3128 unsigned int bitsize; 3129 3130 /* The relocation is relative to the field being relocated. */ 3131 bfd_boolean pc_relative; 3132 3133 /* The bit position of the reloc value in the destination. 3134 The relocated value is left shifted by this amount. */ 3135 unsigned int bitpos; 3136 3137 /* What type of overflow error should be checked for when 3138 relocating. */ 3139 enum complain_overflow complain_on_overflow; 3140 3141 /* If this field is non null, then the supplied function is 3142 called rather than the normal function. This allows really 3143 strange relocation methods to be accommodated (e.g., i960 callj 3144 instructions). */ 3145 bfd_reloc_status_type (*special_function) 3146 (bfd *, arelent *, struct bfd_symbol *, void *, asection *, 3147 bfd *, char **); 3148 3149 /* The textual name of the relocation type. */ 3150 char *name; 3151 3152 /* Some formats record a relocation addend in the section contents 3153 rather than with the relocation. For ELF formats this is the 3154 distinction between USE_REL and USE_RELA (though the code checks 3155 for USE_REL == 1/0). The value of this field is TRUE if the 3156 addend is recorded with the section contents; when performing a 3157 partial link (ld -r) the section contents (the data) will be 3158 modified. The value of this field is FALSE if addends are 3159 recorded with the relocation (in arelent.addend); when performing 3160 a partial link the relocation will be modified. 3161 All relocations for all ELF USE_RELA targets should set this field 3162 to FALSE (values of TRUE should be looked on with suspicion). 3163 However, the converse is not true: not all relocations of all ELF 3164 USE_REL targets set this field to TRUE. Why this is so is peculiar 3165 to each particular target. For relocs that aren't used in partial 3166 links (e.g. GOT stuff) it doesn't matter what this is set to. */ 3167 bfd_boolean partial_inplace; 3168 3169 /* src_mask selects the part of the instruction (or data) to be used 3170 in the relocation sum. If the target relocations don't have an 3171 addend in the reloc, eg. ELF USE_REL, src_mask will normally equal 3172 dst_mask to extract the addend from the section contents. If 3173 relocations do have an addend in the reloc, eg. ELF USE_RELA, this 3174 field should be zero. Non-zero values for ELF USE_RELA targets are 3175 bogus as in those cases the value in the dst_mask part of the 3176 section contents should be treated as garbage. */ 3177 bfd_vma src_mask; 3178 3179 /* dst_mask selects which parts of the instruction (or data) are 3180 replaced with a relocated value. */ 3181 bfd_vma dst_mask; 3182 3183 /* When some formats create PC relative instructions, they leave 3184 the value of the pc of the place being relocated in the offset 3185 slot of the instruction, so that a PC relative relocation can 3186 be made just by adding in an ordinary offset (e.g., sun3 a.out). 3187 Some formats leave the displacement part of an instruction 3188 empty (e.g., m88k bcs); this flag signals the fact. */ 3189 bfd_boolean pcrel_offset; 3190 }; 3191 3192 2.10.1.3 `The HOWTO Macro' 3193 .......................... 3194 3195 *Description* 3196 The HOWTO define is horrible and will go away. 3197 #define HOWTO(C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \ 3198 { (unsigned) C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC } 3199 3200 *Description* 3201 And will be replaced with the totally magic way. But for the moment, we 3202 are compatible, so do it this way. 3203 #define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \ 3204 HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \ 3205 NAME, FALSE, 0, 0, IN) 3206 3207 *Description* 3208 This is used to fill in an empty howto entry in an array. 3209 #define EMPTY_HOWTO(C) \ 3210 HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \ 3211 NULL, FALSE, 0, 0, FALSE) 3212 3213 *Description* 3214 Helper routine to turn a symbol into a relocation value. 3215 #define HOWTO_PREPARE(relocation, symbol) \ 3216 { \ 3217 if (symbol != NULL) \ 3218 { \ 3219 if (bfd_is_com_section (symbol->section)) \ 3220 { \ 3221 relocation = 0; \ 3222 } \ 3223 else \ 3224 { \ 3225 relocation = symbol->value; \ 3226 } \ 3227 } \ 3228 } 3229 3230 2.10.1.4 `bfd_get_reloc_size' 3231 ............................. 3232 3233 *Synopsis* 3234 unsigned int bfd_get_reloc_size (reloc_howto_type *); 3235 *Description* 3236 For a reloc_howto_type that operates on a fixed number of bytes, this 3237 returns the number of bytes operated on. 3238 3239 2.10.1.5 `arelent_chain' 3240 ........................ 3241 3242 *Description* 3243 How relocs are tied together in an `asection': 3244 typedef struct relent_chain 3245 { 3246 arelent relent; 3247 struct relent_chain *next; 3248 } 3249 arelent_chain; 3250 3251 2.10.1.6 `bfd_check_overflow' 3252 ............................. 3253 3254 *Synopsis* 3255 bfd_reloc_status_type bfd_check_overflow 3256 (enum complain_overflow how, 3257 unsigned int bitsize, 3258 unsigned int rightshift, 3259 unsigned int addrsize, 3260 bfd_vma relocation); 3261 *Description* 3262 Perform overflow checking on RELOCATION which has BITSIZE significant 3263 bits and will be shifted right by RIGHTSHIFT bits, on a machine with 3264 addresses containing ADDRSIZE significant bits. The result is either of 3265 `bfd_reloc_ok' or `bfd_reloc_overflow'. 3266 3267 2.10.1.7 `bfd_perform_relocation' 3268 ................................. 3269 3270 *Synopsis* 3271 bfd_reloc_status_type bfd_perform_relocation 3272 (bfd *abfd, 3273 arelent *reloc_entry, 3274 void *data, 3275 asection *input_section, 3276 bfd *output_bfd, 3277 char **error_message); 3278 *Description* 3279 If OUTPUT_BFD is supplied to this function, the generated image will be 3280 relocatable; the relocations are copied to the output file after they 3281 have been changed to reflect the new state of the world. There are two 3282 ways of reflecting the results of partial linkage in an output file: by 3283 modifying the output data in place, and by modifying the relocation 3284 record. Some native formats (e.g., basic a.out and basic coff) have no 3285 way of specifying an addend in the relocation type, so the addend has 3286 to go in the output data. This is no big deal since in these formats 3287 the output data slot will always be big enough for the addend. Complex 3288 reloc types with addends were invented to solve just this problem. The 3289 ERROR_MESSAGE argument is set to an error message if this return 3290 `bfd_reloc_dangerous'. 3291 3292 2.10.1.8 `bfd_install_relocation' 3293 ................................. 3294 3295 *Synopsis* 3296 bfd_reloc_status_type bfd_install_relocation 3297 (bfd *abfd, 3298 arelent *reloc_entry, 3299 void *data, bfd_vma data_start, 3300 asection *input_section, 3301 char **error_message); 3302 *Description* 3303 This looks remarkably like `bfd_perform_relocation', except it does not 3304 expect that the section contents have been filled in. I.e., it's 3305 suitable for use when creating, rather than applying a relocation. 3306 3307 For now, this function should be considered reserved for the 3308 assembler. 3309 3310 3311 File: bfd.info, Node: howto manager, Prev: typedef arelent, Up: Relocations 3312 3313 2.10.2 The howto manager 3314 ------------------------ 3315 3316 When an application wants to create a relocation, but doesn't know what 3317 the target machine might call it, it can find out by using this bit of 3318 code. 3319 3320 2.10.2.1 `bfd_reloc_code_type' 3321 .............................. 3322 3323 *Description* 3324 The insides of a reloc code. The idea is that, eventually, there will 3325 be one enumerator for every type of relocation we ever do. Pass one of 3326 these values to `bfd_reloc_type_lookup', and it'll return a howto 3327 pointer. 3328 3329 This does mean that the application must determine the correct 3330 enumerator value; you can't get a howto pointer from a random set of 3331 attributes. 3332 3333 Here are the possible values for `enum bfd_reloc_code_real': 3334 3335 -- : BFD_RELOC_64 3336 -- : BFD_RELOC_32 3337 -- : BFD_RELOC_26 3338 -- : BFD_RELOC_24 3339 -- : BFD_RELOC_16 3340 -- : BFD_RELOC_14 3341 -- : BFD_RELOC_8 3342 Basic absolute relocations of N bits. 3343 3344 -- : BFD_RELOC_64_PCREL 3345 -- : BFD_RELOC_32_PCREL 3346 -- : BFD_RELOC_24_PCREL 3347 -- : BFD_RELOC_16_PCREL 3348 -- : BFD_RELOC_12_PCREL 3349 -- : BFD_RELOC_8_PCREL 3350 PC-relative relocations. Sometimes these are relative to the 3351 address of the relocation itself; sometimes they are relative to 3352 the start of the section containing the relocation. It depends on 3353 the specific target. 3354 3355 The 24-bit relocation is used in some Intel 960 configurations. 3356 3357 -- : BFD_RELOC_32_SECREL 3358 Section relative relocations. Some targets need this for DWARF2. 3359 3360 -- : BFD_RELOC_32_GOT_PCREL 3361 -- : BFD_RELOC_16_GOT_PCREL 3362 -- : BFD_RELOC_8_GOT_PCREL 3363 -- : BFD_RELOC_32_GOTOFF 3364 -- : BFD_RELOC_16_GOTOFF 3365 -- : BFD_RELOC_LO16_GOTOFF 3366 -- : BFD_RELOC_HI16_GOTOFF 3367 -- : BFD_RELOC_HI16_S_GOTOFF 3368 -- : BFD_RELOC_8_GOTOFF 3369 -- : BFD_RELOC_64_PLT_PCREL 3370 -- : BFD_RELOC_32_PLT_PCREL 3371 -- : BFD_RELOC_24_PLT_PCREL 3372 -- : BFD_RELOC_16_PLT_PCREL 3373 -- : BFD_RELOC_8_PLT_PCREL 3374 -- : BFD_RELOC_64_PLTOFF 3375 -- : BFD_RELOC_32_PLTOFF 3376 -- : BFD_RELOC_16_PLTOFF 3377 -- : BFD_RELOC_LO16_PLTOFF 3378 -- : BFD_RELOC_HI16_PLTOFF 3379 -- : BFD_RELOC_HI16_S_PLTOFF 3380 -- : BFD_RELOC_8_PLTOFF 3381 For ELF. 3382 3383 -- : BFD_RELOC_68K_GLOB_DAT 3384 -- : BFD_RELOC_68K_JMP_SLOT 3385 -- : BFD_RELOC_68K_RELATIVE 3386 -- : BFD_RELOC_68K_TLS_GD32 3387 -- : BFD_RELOC_68K_TLS_GD16 3388 -- : BFD_RELOC_68K_TLS_GD8 3389 -- : BFD_RELOC_68K_TLS_LDM32 3390 -- : BFD_RELOC_68K_TLS_LDM16 3391 -- : BFD_RELOC_68K_TLS_LDM8 3392 -- : BFD_RELOC_68K_TLS_LDO32 3393 -- : BFD_RELOC_68K_TLS_LDO16 3394 -- : BFD_RELOC_68K_TLS_LDO8 3395 -- : BFD_RELOC_68K_TLS_IE32 3396 -- : BFD_RELOC_68K_TLS_IE16 3397 -- : BFD_RELOC_68K_TLS_IE8 3398 -- : BFD_RELOC_68K_TLS_LE32 3399 -- : BFD_RELOC_68K_TLS_LE16 3400 -- : BFD_RELOC_68K_TLS_LE8 3401 Relocations used by 68K ELF. 3402 3403 -- : BFD_RELOC_32_BASEREL 3404 -- : BFD_RELOC_16_BASEREL 3405 -- : BFD_RELOC_LO16_BASEREL 3406 -- : BFD_RELOC_HI16_BASEREL 3407 -- : BFD_RELOC_HI16_S_BASEREL 3408 -- : BFD_RELOC_8_BASEREL 3409 -- : BFD_RELOC_RVA 3410 Linkage-table relative. 3411 3412 -- : BFD_RELOC_8_FFnn 3413 Absolute 8-bit relocation, but used to form an address like 0xFFnn. 3414 3415 -- : BFD_RELOC_32_PCREL_S2 3416 -- : BFD_RELOC_16_PCREL_S2 3417 -- : BFD_RELOC_23_PCREL_S2 3418 These PC-relative relocations are stored as word displacements - 3419 i.e., byte displacements shifted right two bits. The 30-bit word 3420 displacement (<<32_PCREL_S2>> - 32 bits, shifted 2) is used on the 3421 SPARC. (SPARC tools generally refer to this as <<WDISP30>>.) The 3422 signed 16-bit displacement is used on the MIPS, and the 23-bit 3423 displacement is used on the Alpha. 3424 3425 -- : BFD_RELOC_HI22 3426 -- : BFD_RELOC_LO10 3427 High 22 bits and low 10 bits of 32-bit value, placed into lower 3428 bits of the target word. These are used on the SPARC. 3429 3430 -- : BFD_RELOC_GPREL16 3431 -- : BFD_RELOC_GPREL32 3432 For systems that allocate a Global Pointer register, these are 3433 displacements off that register. These relocation types are 3434 handled specially, because the value the register will have is 3435 decided relatively late. 3436 3437 -- : BFD_RELOC_I960_CALLJ 3438 Reloc types used for i960/b.out. 3439 3440 -- : BFD_RELOC_NONE 3441 -- : BFD_RELOC_SPARC_WDISP22 3442 -- : BFD_RELOC_SPARC22 3443 -- : BFD_RELOC_SPARC13 3444 -- : BFD_RELOC_SPARC_GOT10 3445 -- : BFD_RELOC_SPARC_GOT13 3446 -- : BFD_RELOC_SPARC_GOT22 3447 -- : BFD_RELOC_SPARC_PC10 3448 -- : BFD_RELOC_SPARC_PC22 3449 -- : BFD_RELOC_SPARC_WPLT30 3450 -- : BFD_RELOC_SPARC_COPY 3451 -- : BFD_RELOC_SPARC_GLOB_DAT 3452 -- : BFD_RELOC_SPARC_JMP_SLOT 3453 -- : BFD_RELOC_SPARC_RELATIVE 3454 -- : BFD_RELOC_SPARC_UA16 3455 -- : BFD_RELOC_SPARC_UA32 3456 -- : BFD_RELOC_SPARC_UA64 3457 -- : BFD_RELOC_SPARC_GOTDATA_HIX22 3458 -- : BFD_RELOC_SPARC_GOTDATA_LOX10 3459 -- : BFD_RELOC_SPARC_GOTDATA_OP_HIX22 3460 -- : BFD_RELOC_SPARC_GOTDATA_OP_LOX10 3461 -- : BFD_RELOC_SPARC_GOTDATA_OP 3462 -- : BFD_RELOC_SPARC_JMP_IREL 3463 -- : BFD_RELOC_SPARC_IRELATIVE 3464 SPARC ELF relocations. There is probably some overlap with other 3465 relocation types already defined. 3466 3467 -- : BFD_RELOC_SPARC_BASE13 3468 -- : BFD_RELOC_SPARC_BASE22 3469 I think these are specific to SPARC a.out (e.g., Sun 4). 3470 3471 -- : BFD_RELOC_SPARC_64 3472 -- : BFD_RELOC_SPARC_10 3473 -- : BFD_RELOC_SPARC_11 3474 -- : BFD_RELOC_SPARC_OLO10 3475 -- : BFD_RELOC_SPARC_HH22 3476 -- : BFD_RELOC_SPARC_HM10 3477 -- : BFD_RELOC_SPARC_LM22 3478 -- : BFD_RELOC_SPARC_PC_HH22 3479 -- : BFD_RELOC_SPARC_PC_HM10 3480 -- : BFD_RELOC_SPARC_PC_LM22 3481 -- : BFD_RELOC_SPARC_WDISP16 3482 -- : BFD_RELOC_SPARC_WDISP19 3483 -- : BFD_RELOC_SPARC_7 3484 -- : BFD_RELOC_SPARC_6 3485 -- : BFD_RELOC_SPARC_5 3486 -- : BFD_RELOC_SPARC_DISP64 3487 -- : BFD_RELOC_SPARC_PLT32 3488 -- : BFD_RELOC_SPARC_PLT64 3489 -- : BFD_RELOC_SPARC_HIX22 3490 -- : BFD_RELOC_SPARC_LOX10 3491 -- : BFD_RELOC_SPARC_H44 3492 -- : BFD_RELOC_SPARC_M44 3493 -- : BFD_RELOC_SPARC_L44 3494 -- : BFD_RELOC_SPARC_REGISTER 3495 SPARC64 relocations 3496 3497 -- : BFD_RELOC_SPARC_REV32 3498 SPARC little endian relocation 3499 3500 -- : BFD_RELOC_SPARC_TLS_GD_HI22 3501 -- : BFD_RELOC_SPARC_TLS_GD_LO10 3502 -- : BFD_RELOC_SPARC_TLS_GD_ADD 3503 -- : BFD_RELOC_SPARC_TLS_GD_CALL 3504 -- : BFD_RELOC_SPARC_TLS_LDM_HI22 3505 -- : BFD_RELOC_SPARC_TLS_LDM_LO10 3506 -- : BFD_RELOC_SPARC_TLS_LDM_ADD 3507 -- : BFD_RELOC_SPARC_TLS_LDM_CALL 3508 -- : BFD_RELOC_SPARC_TLS_LDO_HIX22 3509 -- : BFD_RELOC_SPARC_TLS_LDO_LOX10 3510 -- : BFD_RELOC_SPARC_TLS_LDO_ADD 3511 -- : BFD_RELOC_SPARC_TLS_IE_HI22 3512 -- : BFD_RELOC_SPARC_TLS_IE_LO10 3513 -- : BFD_RELOC_SPARC_TLS_IE_LD 3514 -- : BFD_RELOC_SPARC_TLS_IE_LDX 3515 -- : BFD_RELOC_SPARC_TLS_IE_ADD 3516 -- : BFD_RELOC_SPARC_TLS_LE_HIX22 3517 -- : BFD_RELOC_SPARC_TLS_LE_LOX10 3518 -- : BFD_RELOC_SPARC_TLS_DTPMOD32 3519 -- : BFD_RELOC_SPARC_TLS_DTPMOD64 3520 -- : BFD_RELOC_SPARC_TLS_DTPOFF32 3521 -- : BFD_RELOC_SPARC_TLS_DTPOFF64 3522 -- : BFD_RELOC_SPARC_TLS_TPOFF32 3523 -- : BFD_RELOC_SPARC_TLS_TPOFF64 3524 SPARC TLS relocations 3525 3526 -- : BFD_RELOC_SPU_IMM7 3527 -- : BFD_RELOC_SPU_IMM8 3528 -- : BFD_RELOC_SPU_IMM10 3529 -- : BFD_RELOC_SPU_IMM10W 3530 -- : BFD_RELOC_SPU_IMM16 3531 -- : BFD_RELOC_SPU_IMM16W 3532 -- : BFD_RELOC_SPU_IMM18 3533 -- : BFD_RELOC_SPU_PCREL9a 3534 -- : BFD_RELOC_SPU_PCREL9b 3535 -- : BFD_RELOC_SPU_PCREL16 3536 -- : BFD_RELOC_SPU_LO16 3537 -- : BFD_RELOC_SPU_HI16 3538 -- : BFD_RELOC_SPU_PPU32 3539 -- : BFD_RELOC_SPU_PPU64 3540 -- : BFD_RELOC_SPU_ADD_PIC 3541 SPU Relocations. 3542 3543 -- : BFD_RELOC_ALPHA_GPDISP_HI16 3544 Alpha ECOFF and ELF relocations. Some of these treat the symbol or 3545 "addend" in some special way. For GPDISP_HI16 ("gpdisp") 3546 relocations, the symbol is ignored when writing; when reading, it 3547 will be the absolute section symbol. The addend is the 3548 displacement in bytes of the "lda" instruction from the "ldah" 3549 instruction (which is at the address of this reloc). 3550 3551 -- : BFD_RELOC_ALPHA_GPDISP_LO16 3552 For GPDISP_LO16 ("ignore") relocations, the symbol is handled as 3553 with GPDISP_HI16 relocs. The addend is ignored when writing the 3554 relocations out, and is filled in with the file's GP value on 3555 reading, for convenience. 3556 3557 -- : BFD_RELOC_ALPHA_GPDISP 3558 The ELF GPDISP relocation is exactly the same as the GPDISP_HI16 3559 relocation except that there is no accompanying GPDISP_LO16 3560 relocation. 3561 3562 -- : BFD_RELOC_ALPHA_LITERAL 3563 -- : BFD_RELOC_ALPHA_ELF_LITERAL 3564 -- : BFD_RELOC_ALPHA_LITUSE 3565 The Alpha LITERAL/LITUSE relocs are produced by a symbol reference; 3566 the assembler turns it into a LDQ instruction to load the address 3567 of the symbol, and then fills in a register in the real 3568 instruction. 3569 3570 The LITERAL reloc, at the LDQ instruction, refers to the .lita 3571 section symbol. The addend is ignored when writing, but is filled 3572 in with the file's GP value on reading, for convenience, as with 3573 the GPDISP_LO16 reloc. 3574 3575 The ELF_LITERAL reloc is somewhere between 16_GOTOFF and 3576 GPDISP_LO16. It should refer to the symbol to be referenced, as 3577 with 16_GOTOFF, but it generates output not based on the position 3578 within the .got section, but relative to the GP value chosen for 3579 the file during the final link stage. 3580 3581 The LITUSE reloc, on the instruction using the loaded address, 3582 gives information to the linker that it might be able to use to 3583 optimize away some literal section references. The symbol is 3584 ignored (read as the absolute section symbol), and the "addend" 3585 indicates the type of instruction using the register: 1 - "memory" 3586 fmt insn 2 - byte-manipulation (byte offset reg) 3 - jsr (target 3587 of branch) 3588 3589 -- : BFD_RELOC_ALPHA_HINT 3590 The HINT relocation indicates a value that should be filled into 3591 the "hint" field of a jmp/jsr/ret instruction, for possible branch- 3592 prediction logic which may be provided on some processors. 3593 3594 -- : BFD_RELOC_ALPHA_LINKAGE 3595 The LINKAGE relocation outputs a linkage pair in the object file, 3596 which is filled by the linker. 3597 3598 -- : BFD_RELOC_ALPHA_CODEADDR 3599 The CODEADDR relocation outputs a STO_CA in the object file, which 3600 is filled by the linker. 3601 3602 -- : BFD_RELOC_ALPHA_GPREL_HI16 3603 -- : BFD_RELOC_ALPHA_GPREL_LO16 3604 The GPREL_HI/LO relocations together form a 32-bit offset from the 3605 GP register. 3606 3607 -- : BFD_RELOC_ALPHA_BRSGP 3608 Like BFD_RELOC_23_PCREL_S2, except that the source and target must 3609 share a common GP, and the target address is adjusted for 3610 STO_ALPHA_STD_GPLOAD. 3611 3612 -- : BFD_RELOC_ALPHA_NOP 3613 The NOP relocation outputs a NOP if the longword displacement 3614 between two procedure entry points is < 2^21. 3615 3616 -- : BFD_RELOC_ALPHA_BSR 3617 The BSR relocation outputs a BSR if the longword displacement 3618 between two procedure entry points is < 2^21. 3619 3620 -- : BFD_RELOC_ALPHA_LDA 3621 The LDA relocation outputs a LDA if the longword displacement 3622 between two procedure entry points is < 2^16. 3623 3624 -- : BFD_RELOC_ALPHA_BOH 3625 The BOH relocation outputs a BSR if the longword displacement 3626 between two procedure entry points is < 2^21, or else a hint. 3627 3628 -- : BFD_RELOC_ALPHA_TLSGD 3629 -- : BFD_RELOC_ALPHA_TLSLDM 3630 -- : BFD_RELOC_ALPHA_DTPMOD64 3631 -- : BFD_RELOC_ALPHA_GOTDTPREL16 3632 -- : BFD_RELOC_ALPHA_DTPREL64 3633 -- : BFD_RELOC_ALPHA_DTPREL_HI16 3634 -- : BFD_RELOC_ALPHA_DTPREL_LO16 3635 -- : BFD_RELOC_ALPHA_DTPREL16 3636 -- : BFD_RELOC_ALPHA_GOTTPREL16 3637 -- : BFD_RELOC_ALPHA_TPREL64 3638 -- : BFD_RELOC_ALPHA_TPREL_HI16 3639 -- : BFD_RELOC_ALPHA_TPREL_LO16 3640 -- : BFD_RELOC_ALPHA_TPREL16 3641 Alpha thread-local storage relocations. 3642 3643 -- : BFD_RELOC_MIPS_JMP 3644 -- : BFD_RELOC_MICROMIPS_JMP 3645 The MIPS jump instruction. 3646 3647 -- : BFD_RELOC_MIPS16_JMP 3648 The MIPS16 jump instruction. 3649 3650 -- : BFD_RELOC_MIPS16_GPREL 3651 MIPS16 GP relative reloc. 3652 3653 -- : BFD_RELOC_HI16 3654 High 16 bits of 32-bit value; simple reloc. 3655 3656 -- : BFD_RELOC_HI16_S 3657 High 16 bits of 32-bit value but the low 16 bits will be sign 3658 extended and added to form the final result. If the low 16 bits 3659 form a negative number, we need to add one to the high value to 3660 compensate for the borrow when the low bits are added. 3661 3662 -- : BFD_RELOC_LO16 3663 Low 16 bits. 3664 3665 -- : BFD_RELOC_HI16_PCREL 3666 High 16 bits of 32-bit pc-relative value 3667 3668 -- : BFD_RELOC_HI16_S_PCREL 3669 High 16 bits of 32-bit pc-relative value, adjusted 3670 3671 -- : BFD_RELOC_LO16_PCREL 3672 Low 16 bits of pc-relative value 3673 3674 -- : BFD_RELOC_MIPS16_GOT16 3675 -- : BFD_RELOC_MIPS16_CALL16 3676 Equivalent of BFD_RELOC_MIPS_*, but with the MIPS16 layout of 3677 16-bit immediate fields 3678 3679 -- : BFD_RELOC_MIPS16_HI16 3680 MIPS16 high 16 bits of 32-bit value. 3681 3682 -- : BFD_RELOC_MIPS16_HI16_S 3683 MIPS16 high 16 bits of 32-bit value but the low 16 bits will be 3684 sign extended and added to form the final result. If the low 16 3685 bits form a negative number, we need to add one to the high value 3686 to compensate for the borrow when the low bits are added. 3687 3688 -- : BFD_RELOC_MIPS16_LO16 3689 MIPS16 low 16 bits. 3690 3691 -- : BFD_RELOC_MIPS_LITERAL 3692 -- : BFD_RELOC_MICROMIPS_LITERAL 3693 Relocation against a MIPS literal section. 3694 3695 -- : BFD_RELOC_MICROMIPS_7_PCREL_S1 3696 -- : BFD_RELOC_MICROMIPS_10_PCREL_S1 3697 -- : BFD_RELOC_MICROMIPS_16_PCREL_S1 3698 microMIPS PC-relative relocations. 3699 3700 -- : BFD_RELOC_MICROMIPS_GPREL16 3701 -- : BFD_RELOC_MICROMIPS_HI16 3702 -- : BFD_RELOC_MICROMIPS_HI16_S 3703 -- : BFD_RELOC_MICROMIPS_LO16 3704 microMIPS versions of generic BFD relocs. 3705 3706 -- : BFD_RELOC_MIPS_GOT16 3707 -- : BFD_RELOC_MICROMIPS_GOT16 3708 -- : BFD_RELOC_MIPS_CALL16 3709 -- : BFD_RELOC_MICROMIPS_CALL16 3710 -- : BFD_RELOC_MIPS_GOT_HI16 3711 -- : BFD_RELOC_MICROMIPS_GOT_HI16 3712 -- : BFD_RELOC_MIPS_GOT_LO16 3713 -- : BFD_RELOC_MICROMIPS_GOT_LO16 3714 -- : BFD_RELOC_MIPS_CALL_HI16 3715 -- : BFD_RELOC_MICROMIPS_CALL_HI16 3716 -- : BFD_RELOC_MIPS_CALL_LO16 3717 -- : BFD_RELOC_MICROMIPS_CALL_LO16 3718 -- : BFD_RELOC_MIPS_SUB 3719 -- : BFD_RELOC_MICROMIPS_SUB 3720 -- : BFD_RELOC_MIPS_GOT_PAGE 3721 -- : BFD_RELOC_MICROMIPS_GOT_PAGE 3722 -- : BFD_RELOC_MIPS_GOT_OFST 3723 -- : BFD_RELOC_MICROMIPS_GOT_OFST 3724 -- : BFD_RELOC_MIPS_GOT_DISP 3725 -- : BFD_RELOC_MICROMIPS_GOT_DISP 3726 -- : BFD_RELOC_MIPS_SHIFT5 3727 -- : BFD_RELOC_MIPS_SHIFT6 3728 -- : BFD_RELOC_MIPS_INSERT_A 3729 -- : BFD_RELOC_MIPS_INSERT_B 3730 -- : BFD_RELOC_MIPS_DELETE 3731 -- : BFD_RELOC_MIPS_HIGHEST 3732 -- : BFD_RELOC_MICROMIPS_HIGHEST 3733 -- : BFD_RELOC_MIPS_HIGHER 3734 -- : BFD_RELOC_MICROMIPS_HIGHER 3735 -- : BFD_RELOC_MIPS_SCN_DISP 3736 -- : BFD_RELOC_MICROMIPS_SCN_DISP 3737 -- : BFD_RELOC_MIPS_REL16 3738 -- : BFD_RELOC_MIPS_RELGOT 3739 -- : BFD_RELOC_MIPS_JALR 3740 -- : BFD_RELOC_MICROMIPS_JALR 3741 -- : BFD_RELOC_MIPS_TLS_DTPMOD32 3742 -- : BFD_RELOC_MIPS_TLS_DTPREL32 3743 -- : BFD_RELOC_MIPS_TLS_DTPMOD64 3744 -- : BFD_RELOC_MIPS_TLS_DTPREL64 3745 -- : BFD_RELOC_MIPS_TLS_GD 3746 -- : BFD_RELOC_MICROMIPS_TLS_GD 3747 -- : BFD_RELOC_MIPS_TLS_LDM 3748 -- : BFD_RELOC_MICROMIPS_TLS_LDM 3749 -- : BFD_RELOC_MIPS_TLS_DTPREL_HI16 3750 -- : BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16 3751 -- : BFD_RELOC_MIPS_TLS_DTPREL_LO16 3752 -- : BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16 3753 -- : BFD_RELOC_MIPS_TLS_GOTTPREL 3754 -- : BFD_RELOC_MICROMIPS_TLS_GOTTPREL 3755 -- : BFD_RELOC_MIPS_TLS_TPREL32 3756 -- : BFD_RELOC_MIPS_TLS_TPREL64 3757 -- : BFD_RELOC_MIPS_TLS_TPREL_HI16 3758 -- : BFD_RELOC_MICROMIPS_TLS_TPREL_HI16 3759 -- : BFD_RELOC_MIPS_TLS_TPREL_LO16 3760 -- : BFD_RELOC_MICROMIPS_TLS_TPREL_LO16 3761 MIPS ELF relocations. 3762 3763 -- : BFD_RELOC_MIPS_COPY 3764 -- : BFD_RELOC_MIPS_JUMP_SLOT 3765 MIPS ELF relocations (VxWorks and PLT extensions). 3766 3767 -- : BFD_RELOC_MOXIE_10_PCREL 3768 Moxie ELF relocations. 3769 3770 -- : BFD_RELOC_FRV_LABEL16 3771 -- : BFD_RELOC_FRV_LABEL24 3772 -- : BFD_RELOC_FRV_LO16 3773 -- : BFD_RELOC_FRV_HI16 3774 -- : BFD_RELOC_FRV_GPREL12 3775 -- : BFD_RELOC_FRV_GPRELU12 3776 -- : BFD_RELOC_FRV_GPREL32 3777 -- : BFD_RELOC_FRV_GPRELHI 3778 -- : BFD_RELOC_FRV_GPRELLO 3779 -- : BFD_RELOC_FRV_GOT12 3780 -- : BFD_RELOC_FRV_GOTHI 3781 -- : BFD_RELOC_FRV_GOTLO 3782 -- : BFD_RELOC_FRV_FUNCDESC 3783 -- : BFD_RELOC_FRV_FUNCDESC_GOT12 3784 -- : BFD_RELOC_FRV_FUNCDESC_GOTHI 3785 -- : BFD_RELOC_FRV_FUNCDESC_GOTLO 3786 -- : BFD_RELOC_FRV_FUNCDESC_VALUE 3787 -- : BFD_RELOC_FRV_FUNCDESC_GOTOFF12 3788 -- : BFD_RELOC_FRV_FUNCDESC_GOTOFFHI 3789 -- : BFD_RELOC_FRV_FUNCDESC_GOTOFFLO 3790 -- : BFD_RELOC_FRV_GOTOFF12 3791 -- : BFD_RELOC_FRV_GOTOFFHI 3792 -- : BFD_RELOC_FRV_GOTOFFLO 3793 -- : BFD_RELOC_FRV_GETTLSOFF 3794 -- : BFD_RELOC_FRV_TLSDESC_VALUE 3795 -- : BFD_RELOC_FRV_GOTTLSDESC12 3796 -- : BFD_RELOC_FRV_GOTTLSDESCHI 3797 -- : BFD_RELOC_FRV_GOTTLSDESCLO 3798 -- : BFD_RELOC_FRV_TLSMOFF12 3799 -- : BFD_RELOC_FRV_TLSMOFFHI 3800 -- : BFD_RELOC_FRV_TLSMOFFLO 3801 -- : BFD_RELOC_FRV_GOTTLSOFF12 3802 -- : BFD_RELOC_FRV_GOTTLSOFFHI 3803 -- : BFD_RELOC_FRV_GOTTLSOFFLO 3804 -- : BFD_RELOC_FRV_TLSOFF 3805 -- : BFD_RELOC_FRV_TLSDESC_RELAX 3806 -- : BFD_RELOC_FRV_GETTLSOFF_RELAX 3807 -- : BFD_RELOC_FRV_TLSOFF_RELAX 3808 -- : BFD_RELOC_FRV_TLSMOFF 3809 Fujitsu Frv Relocations. 3810 3811 -- : BFD_RELOC_MN10300_GOTOFF24 3812 This is a 24bit GOT-relative reloc for the mn10300. 3813 3814 -- : BFD_RELOC_MN10300_GOT32 3815 This is a 32bit GOT-relative reloc for the mn10300, offset by two 3816 bytes in the instruction. 3817 3818 -- : BFD_RELOC_MN10300_GOT24 3819 This is a 24bit GOT-relative reloc for the mn10300, offset by two 3820 bytes in the instruction. 3821 3822 -- : BFD_RELOC_MN10300_GOT16 3823 This is a 16bit GOT-relative reloc for the mn10300, offset by two 3824 bytes in the instruction. 3825 3826 -- : BFD_RELOC_MN10300_COPY 3827 Copy symbol at runtime. 3828 3829 -- : BFD_RELOC_MN10300_GLOB_DAT 3830 Create GOT entry. 3831 3832 -- : BFD_RELOC_MN10300_JMP_SLOT 3833 Create PLT entry. 3834 3835 -- : BFD_RELOC_MN10300_RELATIVE 3836 Adjust by program base. 3837 3838 -- : BFD_RELOC_MN10300_SYM_DIFF 3839 Together with another reloc targeted at the same location, allows 3840 for a value that is the difference of two symbols in the same 3841 section. 3842 3843 -- : BFD_RELOC_MN10300_ALIGN 3844 The addend of this reloc is an alignment power that must be 3845 honoured at the offset's location, regardless of linker relaxation. 3846 3847 -- : BFD_RELOC_386_GOT32 3848 -- : BFD_RELOC_386_PLT32 3849 -- : BFD_RELOC_386_COPY 3850 -- : BFD_RELOC_386_GLOB_DAT 3851 -- : BFD_RELOC_386_JUMP_SLOT 3852 -- : BFD_RELOC_386_RELATIVE 3853 -- : BFD_RELOC_386_GOTOFF 3854 -- : BFD_RELOC_386_GOTPC 3855 -- : BFD_RELOC_386_TLS_TPOFF 3856 -- : BFD_RELOC_386_TLS_IE 3857 -- : BFD_RELOC_386_TLS_GOTIE 3858 -- : BFD_RELOC_386_TLS_LE 3859 -- : BFD_RELOC_386_TLS_GD 3860 -- : BFD_RELOC_386_TLS_LDM 3861 -- : BFD_RELOC_386_TLS_LDO_32 3862 -- : BFD_RELOC_386_TLS_IE_32 3863 -- : BFD_RELOC_386_TLS_LE_32 3864 -- : BFD_RELOC_386_TLS_DTPMOD32 3865 -- : BFD_RELOC_386_TLS_DTPOFF32 3866 -- : BFD_RELOC_386_TLS_TPOFF32 3867 -- : BFD_RELOC_386_TLS_GOTDESC 3868 -- : BFD_RELOC_386_TLS_DESC_CALL 3869 -- : BFD_RELOC_386_TLS_DESC 3870 -- : BFD_RELOC_386_IRELATIVE 3871 i386/elf relocations 3872 3873 -- : BFD_RELOC_X86_64_GOT32 3874 -- : BFD_RELOC_X86_64_PLT32 3875 -- : BFD_RELOC_X86_64_COPY 3876 -- : BFD_RELOC_X86_64_GLOB_DAT 3877 -- : BFD_RELOC_X86_64_JUMP_SLOT 3878 -- : BFD_RELOC_X86_64_RELATIVE 3879 -- : BFD_RELOC_X86_64_GOTPCREL 3880 -- : BFD_RELOC_X86_64_32S 3881 -- : BFD_RELOC_X86_64_DTPMOD64 3882 -- : BFD_RELOC_X86_64_DTPOFF64 3883 -- : BFD_RELOC_X86_64_TPOFF64 3884 -- : BFD_RELOC_X86_64_TLSGD 3885 -- : BFD_RELOC_X86_64_TLSLD 3886 -- : BFD_RELOC_X86_64_DTPOFF32 3887 -- : BFD_RELOC_X86_64_GOTTPOFF 3888 -- : BFD_RELOC_X86_64_TPOFF32 3889 -- : BFD_RELOC_X86_64_GOTOFF64 3890 -- : BFD_RELOC_X86_64_GOTPC32 3891 -- : BFD_RELOC_X86_64_GOT64 3892 -- : BFD_RELOC_X86_64_GOTPCREL64 3893 -- : BFD_RELOC_X86_64_GOTPC64 3894 -- : BFD_RELOC_X86_64_GOTPLT64 3895 -- : BFD_RELOC_X86_64_PLTOFF64 3896 -- : BFD_RELOC_X86_64_GOTPC32_TLSDESC 3897 -- : BFD_RELOC_X86_64_TLSDESC_CALL 3898 -- : BFD_RELOC_X86_64_TLSDESC 3899 -- : BFD_RELOC_X86_64_IRELATIVE 3900 x86-64/elf relocations 3901 3902 -- : BFD_RELOC_NS32K_IMM_8 3903 -- : BFD_RELOC_NS32K_IMM_16 3904 -- : BFD_RELOC_NS32K_IMM_32 3905 -- : BFD_RELOC_NS32K_IMM_8_PCREL 3906 -- : BFD_RELOC_NS32K_IMM_16_PCREL 3907 -- : BFD_RELOC_NS32K_IMM_32_PCREL 3908 -- : BFD_RELOC_NS32K_DISP_8 3909 -- : BFD_RELOC_NS32K_DISP_16 3910 -- : BFD_RELOC_NS32K_DISP_32 3911 -- : BFD_RELOC_NS32K_DISP_8_PCREL 3912 -- : BFD_RELOC_NS32K_DISP_16_PCREL 3913 -- : BFD_RELOC_NS32K_DISP_32_PCREL 3914 ns32k relocations 3915 3916 -- : BFD_RELOC_PDP11_DISP_8_PCREL 3917 -- : BFD_RELOC_PDP11_DISP_6_PCREL 3918 PDP11 relocations 3919 3920 -- : BFD_RELOC_PJ_CODE_HI16 3921 -- : BFD_RELOC_PJ_CODE_LO16 3922 -- : BFD_RELOC_PJ_CODE_DIR16 3923 -- : BFD_RELOC_PJ_CODE_DIR32 3924 -- : BFD_RELOC_PJ_CODE_REL16 3925 -- : BFD_RELOC_PJ_CODE_REL32 3926 Picojava relocs. Not all of these appear in object files. 3927 3928 -- : BFD_RELOC_PPC_B26 3929 -- : BFD_RELOC_PPC_BA26 3930 -- : BFD_RELOC_PPC_TOC16 3931 -- : BFD_RELOC_PPC_B16 3932 -- : BFD_RELOC_PPC_B16_BRTAKEN 3933 -- : BFD_RELOC_PPC_B16_BRNTAKEN 3934 -- : BFD_RELOC_PPC_BA16 3935 -- : BFD_RELOC_PPC_BA16_BRTAKEN 3936 -- : BFD_RELOC_PPC_BA16_BRNTAKEN 3937 -- : BFD_RELOC_PPC_COPY 3938 -- : BFD_RELOC_PPC_GLOB_DAT 3939 -- : BFD_RELOC_PPC_JMP_SLOT 3940 -- : BFD_RELOC_PPC_RELATIVE 3941 -- : BFD_RELOC_PPC_LOCAL24PC 3942 -- : BFD_RELOC_PPC_EMB_NADDR32 3943 -- : BFD_RELOC_PPC_EMB_NADDR16 3944 -- : BFD_RELOC_PPC_EMB_NADDR16_LO 3945 -- : BFD_RELOC_PPC_EMB_NADDR16_HI 3946 -- : BFD_RELOC_PPC_EMB_NADDR16_HA 3947 -- : BFD_RELOC_PPC_EMB_SDAI16 3948 -- : BFD_RELOC_PPC_EMB_SDA2I16 3949 -- : BFD_RELOC_PPC_EMB_SDA2REL 3950 -- : BFD_RELOC_PPC_EMB_SDA21 3951 -- : BFD_RELOC_PPC_EMB_MRKREF 3952 -- : BFD_RELOC_PPC_EMB_RELSEC16 3953 -- : BFD_RELOC_PPC_EMB_RELST_LO 3954 -- : BFD_RELOC_PPC_EMB_RELST_HI 3955 -- : BFD_RELOC_PPC_EMB_RELST_HA 3956 -- : BFD_RELOC_PPC_EMB_BIT_FLD 3957 -- : BFD_RELOC_PPC_EMB_RELSDA 3958 -- : BFD_RELOC_PPC64_HIGHER 3959 -- : BFD_RELOC_PPC64_HIGHER_S 3960 -- : BFD_RELOC_PPC64_HIGHEST 3961 -- : BFD_RELOC_PPC64_HIGHEST_S 3962 -- : BFD_RELOC_PPC64_TOC16_LO 3963 -- : BFD_RELOC_PPC64_TOC16_HI 3964 -- : BFD_RELOC_PPC64_TOC16_HA 3965 -- : BFD_RELOC_PPC64_TOC 3966 -- : BFD_RELOC_PPC64_PLTGOT16 3967 -- : BFD_RELOC_PPC64_PLTGOT16_LO 3968 -- : BFD_RELOC_PPC64_PLTGOT16_HI 3969 -- : BFD_RELOC_PPC64_PLTGOT16_HA 3970 -- : BFD_RELOC_PPC64_ADDR16_DS 3971 -- : BFD_RELOC_PPC64_ADDR16_LO_DS 3972 -- : BFD_RELOC_PPC64_GOT16_DS 3973 -- : BFD_RELOC_PPC64_GOT16_LO_DS 3974 -- : BFD_RELOC_PPC64_PLT16_LO_DS 3975 -- : BFD_RELOC_PPC64_SECTOFF_DS 3976 -- : BFD_RELOC_PPC64_SECTOFF_LO_DS 3977 -- : BFD_RELOC_PPC64_TOC16_DS 3978 -- : BFD_RELOC_PPC64_TOC16_LO_DS 3979 -- : BFD_RELOC_PPC64_PLTGOT16_DS 3980 -- : BFD_RELOC_PPC64_PLTGOT16_LO_DS 3981 Power(rs6000) and PowerPC relocations. 3982 3983 -- : BFD_RELOC_PPC_TLS 3984 -- : BFD_RELOC_PPC_TLSGD 3985 -- : BFD_RELOC_PPC_TLSLD 3986 -- : BFD_RELOC_PPC_DTPMOD 3987 -- : BFD_RELOC_PPC_TPREL16 3988 -- : BFD_RELOC_PPC_TPREL16_LO 3989 -- : BFD_RELOC_PPC_TPREL16_HI 3990 -- : BFD_RELOC_PPC_TPREL16_HA 3991 -- : BFD_RELOC_PPC_TPREL 3992 -- : BFD_RELOC_PPC_DTPREL16 3993 -- : BFD_RELOC_PPC_DTPREL16_LO 3994 -- : BFD_RELOC_PPC_DTPREL16_HI 3995 -- : BFD_RELOC_PPC_DTPREL16_HA 3996 -- : BFD_RELOC_PPC_DTPREL 3997 -- : BFD_RELOC_PPC_GOT_TLSGD16 3998 -- : BFD_RELOC_PPC_GOT_TLSGD16_LO 3999 -- : BFD_RELOC_PPC_GOT_TLSGD16_HI 4000 -- : BFD_RELOC_PPC_GOT_TLSGD16_HA 4001 -- : BFD_RELOC_PPC_GOT_TLSLD16 4002 -- : BFD_RELOC_PPC_GOT_TLSLD16_LO 4003 -- : BFD_RELOC_PPC_GOT_TLSLD16_HI 4004 -- : BFD_RELOC_PPC_GOT_TLSLD16_HA 4005 -- : BFD_RELOC_PPC_GOT_TPREL16 4006 -- : BFD_RELOC_PPC_GOT_TPREL16_LO 4007 -- : BFD_RELOC_PPC_GOT_TPREL16_HI 4008 -- : BFD_RELOC_PPC_GOT_TPREL16_HA 4009 -- : BFD_RELOC_PPC_GOT_DTPREL16 4010 -- : BFD_RELOC_PPC_GOT_DTPREL16_LO 4011 -- : BFD_RELOC_PPC_GOT_DTPREL16_HI 4012 -- : BFD_RELOC_PPC_GOT_DTPREL16_HA 4013 -- : BFD_RELOC_PPC64_TPREL16_DS 4014 -- : BFD_RELOC_PPC64_TPREL16_LO_DS 4015 -- : BFD_RELOC_PPC64_TPREL16_HIGHER 4016 -- : BFD_RELOC_PPC64_TPREL16_HIGHERA 4017 -- : BFD_RELOC_PPC64_TPREL16_HIGHEST 4018 -- : BFD_RELOC_PPC64_TPREL16_HIGHESTA 4019 -- : BFD_RELOC_PPC64_DTPREL16_DS 4020 -- : BFD_RELOC_PPC64_DTPREL16_LO_DS 4021 -- : BFD_RELOC_PPC64_DTPREL16_HIGHER 4022 -- : BFD_RELOC_PPC64_DTPREL16_HIGHERA 4023 -- : BFD_RELOC_PPC64_DTPREL16_HIGHEST 4024 -- : BFD_RELOC_PPC64_DTPREL16_HIGHESTA 4025 PowerPC and PowerPC64 thread-local storage relocations. 4026 4027 -- : BFD_RELOC_I370_D12 4028 IBM 370/390 relocations 4029 4030 -- : BFD_RELOC_CTOR 4031 The type of reloc used to build a constructor table - at the moment 4032 probably a 32 bit wide absolute relocation, but the target can 4033 choose. It generally does map to one of the other relocation 4034 types. 4035 4036 -- : BFD_RELOC_ARM_PCREL_BRANCH 4037 ARM 26 bit pc-relative branch. The lowest two bits must be zero 4038 and are not stored in the instruction. 4039 4040 -- : BFD_RELOC_ARM_PCREL_BLX 4041 ARM 26 bit pc-relative branch. The lowest bit must be zero and is 4042 not stored in the instruction. The 2nd lowest bit comes from a 1 4043 bit field in the instruction. 4044 4045 -- : BFD_RELOC_THUMB_PCREL_BLX 4046 Thumb 22 bit pc-relative branch. The lowest bit must be zero and 4047 is not stored in the instruction. The 2nd lowest bit comes from a 4048 1 bit field in the instruction. 4049 4050 -- : BFD_RELOC_ARM_PCREL_CALL 4051 ARM 26-bit pc-relative branch for an unconditional BL or BLX 4052 instruction. 4053 4054 -- : BFD_RELOC_ARM_PCREL_JUMP 4055 ARM 26-bit pc-relative branch for B or conditional BL instruction. 4056 4057 -- : BFD_RELOC_THUMB_PCREL_BRANCH7 4058 -- : BFD_RELOC_THUMB_PCREL_BRANCH9 4059 -- : BFD_RELOC_THUMB_PCREL_BRANCH12 4060 -- : BFD_RELOC_THUMB_PCREL_BRANCH20 4061 -- : BFD_RELOC_THUMB_PCREL_BRANCH23 4062 -- : BFD_RELOC_THUMB_PCREL_BRANCH25 4063 Thumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches. The 4064 lowest bit must be zero and is not stored in the instruction. 4065 Note that the corresponding ELF R_ARM_THM_JUMPnn constant has an 4066 "nn" one smaller in all cases. Note further that BRANCH23 4067 corresponds to R_ARM_THM_CALL. 4068 4069 -- : BFD_RELOC_ARM_OFFSET_IMM 4070 12-bit immediate offset, used in ARM-format ldr and str 4071 instructions. 4072 4073 -- : BFD_RELOC_ARM_THUMB_OFFSET 4074 5-bit immediate offset, used in Thumb-format ldr and str 4075 instructions. 4076 4077 -- : BFD_RELOC_ARM_TARGET1 4078 Pc-relative or absolute relocation depending on target. Used for 4079 entries in .init_array sections. 4080 4081 -- : BFD_RELOC_ARM_ROSEGREL32 4082 Read-only segment base relative address. 4083 4084 -- : BFD_RELOC_ARM_SBREL32 4085 Data segment base relative address. 4086 4087 -- : BFD_RELOC_ARM_TARGET2 4088 This reloc is used for references to RTTI data from exception 4089 handling tables. The actual definition depends on the target. It 4090 may be a pc-relative or some form of GOT-indirect relocation. 4091 4092 -- : BFD_RELOC_ARM_PREL31 4093 31-bit PC relative address. 4094 4095 -- : BFD_RELOC_ARM_MOVW 4096 -- : BFD_RELOC_ARM_MOVT 4097 -- : BFD_RELOC_ARM_MOVW_PCREL 4098 -- : BFD_RELOC_ARM_MOVT_PCREL 4099 -- : BFD_RELOC_ARM_THUMB_MOVW 4100 -- : BFD_RELOC_ARM_THUMB_MOVT 4101 -- : BFD_RELOC_ARM_THUMB_MOVW_PCREL 4102 -- : BFD_RELOC_ARM_THUMB_MOVT_PCREL 4103 Low and High halfword relocations for MOVW and MOVT instructions. 4104 4105 -- : BFD_RELOC_ARM_JUMP_SLOT 4106 -- : BFD_RELOC_ARM_GLOB_DAT 4107 -- : BFD_RELOC_ARM_GOT32 4108 -- : BFD_RELOC_ARM_PLT32 4109 -- : BFD_RELOC_ARM_RELATIVE 4110 -- : BFD_RELOC_ARM_GOTOFF 4111 -- : BFD_RELOC_ARM_GOTPC 4112 -- : BFD_RELOC_ARM_GOT_PREL 4113 Relocations for setting up GOTs and PLTs for shared libraries. 4114 4115 -- : BFD_RELOC_ARM_TLS_GD32 4116 -- : BFD_RELOC_ARM_TLS_LDO32 4117 -- : BFD_RELOC_ARM_TLS_LDM32 4118 -- : BFD_RELOC_ARM_TLS_DTPOFF32 4119 -- : BFD_RELOC_ARM_TLS_DTPMOD32 4120 -- : BFD_RELOC_ARM_TLS_TPOFF32 4121 -- : BFD_RELOC_ARM_TLS_IE32 4122 -- : BFD_RELOC_ARM_TLS_LE32 4123 -- : BFD_RELOC_ARM_TLS_GOTDESC 4124 -- : BFD_RELOC_ARM_TLS_CALL 4125 -- : BFD_RELOC_ARM_THM_TLS_CALL 4126 -- : BFD_RELOC_ARM_TLS_DESCSEQ 4127 -- : BFD_RELOC_ARM_THM_TLS_DESCSEQ 4128 -- : BFD_RELOC_ARM_TLS_DESC 4129 ARM thread-local storage relocations. 4130 4131 -- : BFD_RELOC_ARM_ALU_PC_G0_NC 4132 -- : BFD_RELOC_ARM_ALU_PC_G0 4133 -- : BFD_RELOC_ARM_ALU_PC_G1_NC 4134 -- : BFD_RELOC_ARM_ALU_PC_G1 4135 -- : BFD_RELOC_ARM_ALU_PC_G2 4136 -- : BFD_RELOC_ARM_LDR_PC_G0 4137 -- : BFD_RELOC_ARM_LDR_PC_G1 4138 -- : BFD_RELOC_ARM_LDR_PC_G2 4139 -- : BFD_RELOC_ARM_LDRS_PC_G0 4140 -- : BFD_RELOC_ARM_LDRS_PC_G1 4141 -- : BFD_RELOC_ARM_LDRS_PC_G2 4142 -- : BFD_RELOC_ARM_LDC_PC_G0 4143 -- : BFD_RELOC_ARM_LDC_PC_G1 4144 -- : BFD_RELOC_ARM_LDC_PC_G2 4145 -- : BFD_RELOC_ARM_ALU_SB_G0_NC 4146 -- : BFD_RELOC_ARM_ALU_SB_G0 4147 -- : BFD_RELOC_ARM_ALU_SB_G1_NC 4148 -- : BFD_RELOC_ARM_ALU_SB_G1 4149 -- : BFD_RELOC_ARM_ALU_SB_G2 4150 -- : BFD_RELOC_ARM_LDR_SB_G0 4151 -- : BFD_RELOC_ARM_LDR_SB_G1 4152 -- : BFD_RELOC_ARM_LDR_SB_G2 4153 -- : BFD_RELOC_ARM_LDRS_SB_G0 4154 -- : BFD_RELOC_ARM_LDRS_SB_G1 4155 -- : BFD_RELOC_ARM_LDRS_SB_G2 4156 -- : BFD_RELOC_ARM_LDC_SB_G0 4157 -- : BFD_RELOC_ARM_LDC_SB_G1 4158 -- : BFD_RELOC_ARM_LDC_SB_G2 4159 ARM group relocations. 4160 4161 -- : BFD_RELOC_ARM_V4BX 4162 Annotation of BX instructions. 4163 4164 -- : BFD_RELOC_ARM_IRELATIVE 4165 ARM support for STT_GNU_IFUNC. 4166 4167 -- : BFD_RELOC_ARM_IMMEDIATE 4168 -- : BFD_RELOC_ARM_ADRL_IMMEDIATE 4169 -- : BFD_RELOC_ARM_T32_IMMEDIATE 4170 -- : BFD_RELOC_ARM_T32_ADD_IMM 4171 -- : BFD_RELOC_ARM_T32_IMM12 4172 -- : BFD_RELOC_ARM_T32_ADD_PC12 4173 -- : BFD_RELOC_ARM_SHIFT_IMM 4174 -- : BFD_RELOC_ARM_SMC 4175 -- : BFD_RELOC_ARM_HVC 4176 -- : BFD_RELOC_ARM_SWI 4177 -- : BFD_RELOC_ARM_MULTI 4178 -- : BFD_RELOC_ARM_CP_OFF_IMM 4179 -- : BFD_RELOC_ARM_CP_OFF_IMM_S2 4180 -- : BFD_RELOC_ARM_T32_CP_OFF_IMM 4181 -- : BFD_RELOC_ARM_T32_CP_OFF_IMM_S2 4182 -- : BFD_RELOC_ARM_ADR_IMM 4183 -- : BFD_RELOC_ARM_LDR_IMM 4184 -- : BFD_RELOC_ARM_LITERAL 4185 -- : BFD_RELOC_ARM_IN_POOL 4186 -- : BFD_RELOC_ARM_OFFSET_IMM8 4187 -- : BFD_RELOC_ARM_T32_OFFSET_U8 4188 -- : BFD_RELOC_ARM_T32_OFFSET_IMM 4189 -- : BFD_RELOC_ARM_HWLITERAL 4190 -- : BFD_RELOC_ARM_THUMB_ADD 4191 -- : BFD_RELOC_ARM_THUMB_IMM 4192 -- : BFD_RELOC_ARM_THUMB_SHIFT 4193 These relocs are only used within the ARM assembler. They are not 4194 (at present) written to any object files. 4195 4196 -- : BFD_RELOC_SH_PCDISP8BY2 4197 -- : BFD_RELOC_SH_PCDISP12BY2 4198 -- : BFD_RELOC_SH_IMM3 4199 -- : BFD_RELOC_SH_IMM3U 4200 -- : BFD_RELOC_SH_DISP12 4201 -- : BFD_RELOC_SH_DISP12BY2 4202 -- : BFD_RELOC_SH_DISP12BY4 4203 -- : BFD_RELOC_SH_DISP12BY8 4204 -- : BFD_RELOC_SH_DISP20 4205 -- : BFD_RELOC_SH_DISP20BY8 4206 -- : BFD_RELOC_SH_IMM4 4207 -- : BFD_RELOC_SH_IMM4BY2 4208 -- : BFD_RELOC_SH_IMM4BY4 4209 -- : BFD_RELOC_SH_IMM8 4210 -- : BFD_RELOC_SH_IMM8BY2 4211 -- : BFD_RELOC_SH_IMM8BY4 4212 -- : BFD_RELOC_SH_PCRELIMM8BY2 4213 -- : BFD_RELOC_SH_PCRELIMM8BY4 4214 -- : BFD_RELOC_SH_SWITCH16 4215 -- : BFD_RELOC_SH_SWITCH32 4216 -- : BFD_RELOC_SH_USES 4217 -- : BFD_RELOC_SH_COUNT 4218 -- : BFD_RELOC_SH_ALIGN 4219 -- : BFD_RELOC_SH_CODE 4220 -- : BFD_RELOC_SH_DATA 4221 -- : BFD_RELOC_SH_LABEL 4222 -- : BFD_RELOC_SH_LOOP_START 4223 -- : BFD_RELOC_SH_LOOP_END 4224 -- : BFD_RELOC_SH_COPY 4225 -- : BFD_RELOC_SH_GLOB_DAT 4226 -- : BFD_RELOC_SH_JMP_SLOT 4227 -- : BFD_RELOC_SH_RELATIVE 4228 -- : BFD_RELOC_SH_GOTPC 4229 -- : BFD_RELOC_SH_GOT_LOW16 4230 -- : BFD_RELOC_SH_GOT_MEDLOW16 4231 -- : BFD_RELOC_SH_GOT_MEDHI16 4232 -- : BFD_RELOC_SH_GOT_HI16 4233 -- : BFD_RELOC_SH_GOTPLT_LOW16 4234 -- : BFD_RELOC_SH_GOTPLT_MEDLOW16 4235 -- : BFD_RELOC_SH_GOTPLT_MEDHI16 4236 -- : BFD_RELOC_SH_GOTPLT_HI16 4237 -- : BFD_RELOC_SH_PLT_LOW16 4238 -- : BFD_RELOC_SH_PLT_MEDLOW16 4239 -- : BFD_RELOC_SH_PLT_MEDHI16 4240 -- : BFD_RELOC_SH_PLT_HI16 4241 -- : BFD_RELOC_SH_GOTOFF_LOW16 4242 -- : BFD_RELOC_SH_GOTOFF_MEDLOW16 4243 -- : BFD_RELOC_SH_GOTOFF_MEDHI16 4244 -- : BFD_RELOC_SH_GOTOFF_HI16 4245 -- : BFD_RELOC_SH_GOTPC_LOW16 4246 -- : BFD_RELOC_SH_GOTPC_MEDLOW16 4247 -- : BFD_RELOC_SH_GOTPC_MEDHI16 4248 -- : BFD_RELOC_SH_GOTPC_HI16 4249 -- : BFD_RELOC_SH_COPY64 4250 -- : BFD_RELOC_SH_GLOB_DAT64 4251 -- : BFD_RELOC_SH_JMP_SLOT64 4252 -- : BFD_RELOC_SH_RELATIVE64 4253 -- : BFD_RELOC_SH_GOT10BY4 4254 -- : BFD_RELOC_SH_GOT10BY8 4255 -- : BFD_RELOC_SH_GOTPLT10BY4 4256 -- : BFD_RELOC_SH_GOTPLT10BY8 4257 -- : BFD_RELOC_SH_GOTPLT32 4258 -- : BFD_RELOC_SH_SHMEDIA_CODE 4259 -- : BFD_RELOC_SH_IMMU5 4260 -- : BFD_RELOC_SH_IMMS6 4261 -- : BFD_RELOC_SH_IMMS6BY32 4262 -- : BFD_RELOC_SH_IMMU6 4263 -- : BFD_RELOC_SH_IMMS10 4264 -- : BFD_RELOC_SH_IMMS10BY2 4265 -- : BFD_RELOC_SH_IMMS10BY4 4266 -- : BFD_RELOC_SH_IMMS10BY8 4267 -- : BFD_RELOC_SH_IMMS16 4268 -- : BFD_RELOC_SH_IMMU16 4269 -- : BFD_RELOC_SH_IMM_LOW16 4270 -- : BFD_RELOC_SH_IMM_LOW16_PCREL 4271 -- : BFD_RELOC_SH_IMM_MEDLOW16 4272 -- : BFD_RELOC_SH_IMM_MEDLOW16_PCREL 4273 -- : BFD_RELOC_SH_IMM_MEDHI16 4274 -- : BFD_RELOC_SH_IMM_MEDHI16_PCREL 4275 -- : BFD_RELOC_SH_IMM_HI16 4276 -- : BFD_RELOC_SH_IMM_HI16_PCREL 4277 -- : BFD_RELOC_SH_PT_16 4278 -- : BFD_RELOC_SH_TLS_GD_32 4279 -- : BFD_RELOC_SH_TLS_LD_32 4280 -- : BFD_RELOC_SH_TLS_LDO_32 4281 -- : BFD_RELOC_SH_TLS_IE_32 4282 -- : BFD_RELOC_SH_TLS_LE_32 4283 -- : BFD_RELOC_SH_TLS_DTPMOD32 4284 -- : BFD_RELOC_SH_TLS_DTPOFF32 4285 -- : BFD_RELOC_SH_TLS_TPOFF32 4286 -- : BFD_RELOC_SH_GOT20 4287 -- : BFD_RELOC_SH_GOTOFF20 4288 -- : BFD_RELOC_SH_GOTFUNCDESC 4289 -- : BFD_RELOC_SH_GOTFUNCDESC20 4290 -- : BFD_RELOC_SH_GOTOFFFUNCDESC 4291 -- : BFD_RELOC_SH_GOTOFFFUNCDESC20 4292 -- : BFD_RELOC_SH_FUNCDESC 4293 Renesas / SuperH SH relocs. Not all of these appear in object 4294 files. 4295 4296 -- : BFD_RELOC_ARC_B22_PCREL 4297 ARC Cores relocs. ARC 22 bit pc-relative branch. The lowest two 4298 bits must be zero and are not stored in the instruction. The high 4299 20 bits are installed in bits 26 through 7 of the instruction. 4300 4301 -- : BFD_RELOC_ARC_B26 4302 ARC 26 bit absolute branch. The lowest two bits must be zero and 4303 are not stored in the instruction. The high 24 bits are installed 4304 in bits 23 through 0. 4305 4306 -- : BFD_RELOC_BFIN_16_IMM 4307 ADI Blackfin 16 bit immediate absolute reloc. 4308 4309 -- : BFD_RELOC_BFIN_16_HIGH 4310 ADI Blackfin 16 bit immediate absolute reloc higher 16 bits. 4311 4312 -- : BFD_RELOC_BFIN_4_PCREL 4313 ADI Blackfin 'a' part of LSETUP. 4314 4315 -- : BFD_RELOC_BFIN_5_PCREL 4316 ADI Blackfin. 4317 4318 -- : BFD_RELOC_BFIN_16_LOW 4319 ADI Blackfin 16 bit immediate absolute reloc lower 16 bits. 4320 4321 -- : BFD_RELOC_BFIN_10_PCREL 4322 ADI Blackfin. 4323 4324 -- : BFD_RELOC_BFIN_11_PCREL 4325 ADI Blackfin 'b' part of LSETUP. 4326 4327 -- : BFD_RELOC_BFIN_12_PCREL_JUMP 4328 ADI Blackfin. 4329 4330 -- : BFD_RELOC_BFIN_12_PCREL_JUMP_S 4331 ADI Blackfin Short jump, pcrel. 4332 4333 -- : BFD_RELOC_BFIN_24_PCREL_CALL_X 4334 ADI Blackfin Call.x not implemented. 4335 4336 -- : BFD_RELOC_BFIN_24_PCREL_JUMP_L 4337 ADI Blackfin Long Jump pcrel. 4338 4339 -- : BFD_RELOC_BFIN_GOT17M4 4340 -- : BFD_RELOC_BFIN_GOTHI 4341 -- : BFD_RELOC_BFIN_GOTLO 4342 -- : BFD_RELOC_BFIN_FUNCDESC 4343 -- : BFD_RELOC_BFIN_FUNCDESC_GOT17M4 4344 -- : BFD_RELOC_BFIN_FUNCDESC_GOTHI 4345 -- : BFD_RELOC_BFIN_FUNCDESC_GOTLO 4346 -- : BFD_RELOC_BFIN_FUNCDESC_VALUE 4347 -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4 4348 -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI 4349 -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO 4350 -- : BFD_RELOC_BFIN_GOTOFF17M4 4351 -- : BFD_RELOC_BFIN_GOTOFFHI 4352 -- : BFD_RELOC_BFIN_GOTOFFLO 4353 ADI Blackfin FD-PIC relocations. 4354 4355 -- : BFD_RELOC_BFIN_GOT 4356 ADI Blackfin GOT relocation. 4357 4358 -- : BFD_RELOC_BFIN_PLTPC 4359 ADI Blackfin PLTPC relocation. 4360 4361 -- : BFD_ARELOC_BFIN_PUSH 4362 ADI Blackfin arithmetic relocation. 4363 4364 -- : BFD_ARELOC_BFIN_CONST 4365 ADI Blackfin arithmetic relocation. 4366 4367 -- : BFD_ARELOC_BFIN_ADD 4368 ADI Blackfin arithmetic relocation. 4369 4370 -- : BFD_ARELOC_BFIN_SUB 4371 ADI Blackfin arithmetic relocation. 4372 4373 -- : BFD_ARELOC_BFIN_MULT 4374 ADI Blackfin arithmetic relocation. 4375 4376 -- : BFD_ARELOC_BFIN_DIV 4377 ADI Blackfin arithmetic relocation. 4378 4379 -- : BFD_ARELOC_BFIN_MOD 4380 ADI Blackfin arithmetic relocation. 4381 4382 -- : BFD_ARELOC_BFIN_LSHIFT 4383 ADI Blackfin arithmetic relocation. 4384 4385 -- : BFD_ARELOC_BFIN_RSHIFT 4386 ADI Blackfin arithmetic relocation. 4387 4388 -- : BFD_ARELOC_BFIN_AND 4389 ADI Blackfin arithmetic relocation. 4390 4391 -- : BFD_ARELOC_BFIN_OR 4392 ADI Blackfin arithmetic relocation. 4393 4394 -- : BFD_ARELOC_BFIN_XOR 4395 ADI Blackfin arithmetic relocation. 4396 4397 -- : BFD_ARELOC_BFIN_LAND 4398 ADI Blackfin arithmetic relocation. 4399 4400 -- : BFD_ARELOC_BFIN_LOR 4401 ADI Blackfin arithmetic relocation. 4402 4403 -- : BFD_ARELOC_BFIN_LEN 4404 ADI Blackfin arithmetic relocation. 4405 4406 -- : BFD_ARELOC_BFIN_NEG 4407 ADI Blackfin arithmetic relocation. 4408 4409 -- : BFD_ARELOC_BFIN_COMP 4410 ADI Blackfin arithmetic relocation. 4411 4412 -- : BFD_ARELOC_BFIN_PAGE 4413 ADI Blackfin arithmetic relocation. 4414 4415 -- : BFD_ARELOC_BFIN_HWPAGE 4416 ADI Blackfin arithmetic relocation. 4417 4418 -- : BFD_ARELOC_BFIN_ADDR 4419 ADI Blackfin arithmetic relocation. 4420 4421 -- : BFD_RELOC_D10V_10_PCREL_R 4422 Mitsubishi D10V relocs. This is a 10-bit reloc with the right 2 4423 bits assumed to be 0. 4424 4425 -- : BFD_RELOC_D10V_10_PCREL_L 4426 Mitsubishi D10V relocs. This is a 10-bit reloc with the right 2 4427 bits assumed to be 0. This is the same as the previous reloc 4428 except it is in the left container, i.e., shifted left 15 bits. 4429 4430 -- : BFD_RELOC_D10V_18 4431 This is an 18-bit reloc with the right 2 bits assumed to be 0. 4432 4433 -- : BFD_RELOC_D10V_18_PCREL 4434 This is an 18-bit reloc with the right 2 bits assumed to be 0. 4435 4436 -- : BFD_RELOC_D30V_6 4437 Mitsubishi D30V relocs. This is a 6-bit absolute reloc. 4438 4439 -- : BFD_RELOC_D30V_9_PCREL 4440 This is a 6-bit pc-relative reloc with the right 3 bits assumed to 4441 be 0. 4442 4443 -- : BFD_RELOC_D30V_9_PCREL_R 4444 This is a 6-bit pc-relative reloc with the right 3 bits assumed to 4445 be 0. Same as the previous reloc but on the right side of the 4446 container. 4447 4448 -- : BFD_RELOC_D30V_15 4449 This is a 12-bit absolute reloc with the right 3 bitsassumed to be 4450 0. 4451 4452 -- : BFD_RELOC_D30V_15_PCREL 4453 This is a 12-bit pc-relative reloc with the right 3 bits assumed 4454 to be 0. 4455 4456 -- : BFD_RELOC_D30V_15_PCREL_R 4457 This is a 12-bit pc-relative reloc with the right 3 bits assumed 4458 to be 0. Same as the previous reloc but on the right side of the 4459 container. 4460 4461 -- : BFD_RELOC_D30V_21 4462 This is an 18-bit absolute reloc with the right 3 bits assumed to 4463 be 0. 4464 4465 -- : BFD_RELOC_D30V_21_PCREL 4466 This is an 18-bit pc-relative reloc with the right 3 bits assumed 4467 to be 0. 4468 4469 -- : BFD_RELOC_D30V_21_PCREL_R 4470 This is an 18-bit pc-relative reloc with the right 3 bits assumed 4471 to be 0. Same as the previous reloc but on the right side of the 4472 container. 4473 4474 -- : BFD_RELOC_D30V_32 4475 This is a 32-bit absolute reloc. 4476 4477 -- : BFD_RELOC_D30V_32_PCREL 4478 This is a 32-bit pc-relative reloc. 4479 4480 -- : BFD_RELOC_DLX_HI16_S 4481 DLX relocs 4482 4483 -- : BFD_RELOC_DLX_LO16 4484 DLX relocs 4485 4486 -- : BFD_RELOC_DLX_JMP26 4487 DLX relocs 4488 4489 -- : BFD_RELOC_M32C_HI8 4490 -- : BFD_RELOC_M32C_RL_JUMP 4491 -- : BFD_RELOC_M32C_RL_1ADDR 4492 -- : BFD_RELOC_M32C_RL_2ADDR 4493 Renesas M16C/M32C Relocations. 4494 4495 -- : BFD_RELOC_M32R_24 4496 Renesas M32R (formerly Mitsubishi M32R) relocs. This is a 24 bit 4497 absolute address. 4498 4499 -- : BFD_RELOC_M32R_10_PCREL 4500 This is a 10-bit pc-relative reloc with the right 2 bits assumed 4501 to be 0. 4502 4503 -- : BFD_RELOC_M32R_18_PCREL 4504 This is an 18-bit reloc with the right 2 bits assumed to be 0. 4505 4506 -- : BFD_RELOC_M32R_26_PCREL 4507 This is a 26-bit reloc with the right 2 bits assumed to be 0. 4508 4509 -- : BFD_RELOC_M32R_HI16_ULO 4510 This is a 16-bit reloc containing the high 16 bits of an address 4511 used when the lower 16 bits are treated as unsigned. 4512 4513 -- : BFD_RELOC_M32R_HI16_SLO 4514 This is a 16-bit reloc containing the high 16 bits of an address 4515 used when the lower 16 bits are treated as signed. 4516 4517 -- : BFD_RELOC_M32R_LO16 4518 This is a 16-bit reloc containing the lower 16 bits of an address. 4519 4520 -- : BFD_RELOC_M32R_SDA16 4521 This is a 16-bit reloc containing the small data area offset for 4522 use in add3, load, and store instructions. 4523 4524 -- : BFD_RELOC_M32R_GOT24 4525 -- : BFD_RELOC_M32R_26_PLTREL 4526 -- : BFD_RELOC_M32R_COPY 4527 -- : BFD_RELOC_M32R_GLOB_DAT 4528 -- : BFD_RELOC_M32R_JMP_SLOT 4529 -- : BFD_RELOC_M32R_RELATIVE 4530 -- : BFD_RELOC_M32R_GOTOFF 4531 -- : BFD_RELOC_M32R_GOTOFF_HI_ULO 4532 -- : BFD_RELOC_M32R_GOTOFF_HI_SLO 4533 -- : BFD_RELOC_M32R_GOTOFF_LO 4534 -- : BFD_RELOC_M32R_GOTPC24 4535 -- : BFD_RELOC_M32R_GOT16_HI_ULO 4536 -- : BFD_RELOC_M32R_GOT16_HI_SLO 4537 -- : BFD_RELOC_M32R_GOT16_LO 4538 -- : BFD_RELOC_M32R_GOTPC_HI_ULO 4539 -- : BFD_RELOC_M32R_GOTPC_HI_SLO 4540 -- : BFD_RELOC_M32R_GOTPC_LO 4541 For PIC. 4542 4543 -- : BFD_RELOC_V850_9_PCREL 4544 This is a 9-bit reloc 4545 4546 -- : BFD_RELOC_V850_22_PCREL 4547 This is a 22-bit reloc 4548 4549 -- : BFD_RELOC_V850_SDA_16_16_OFFSET 4550 This is a 16 bit offset from the short data area pointer. 4551 4552 -- : BFD_RELOC_V850_SDA_15_16_OFFSET 4553 This is a 16 bit offset (of which only 15 bits are used) from the 4554 short data area pointer. 4555 4556 -- : BFD_RELOC_V850_ZDA_16_16_OFFSET 4557 This is a 16 bit offset from the zero data area pointer. 4558 4559 -- : BFD_RELOC_V850_ZDA_15_16_OFFSET 4560 This is a 16 bit offset (of which only 15 bits are used) from the 4561 zero data area pointer. 4562 4563 -- : BFD_RELOC_V850_TDA_6_8_OFFSET 4564 This is an 8 bit offset (of which only 6 bits are used) from the 4565 tiny data area pointer. 4566 4567 -- : BFD_RELOC_V850_TDA_7_8_OFFSET 4568 This is an 8bit offset (of which only 7 bits are used) from the 4569 tiny data area pointer. 4570 4571 -- : BFD_RELOC_V850_TDA_7_7_OFFSET 4572 This is a 7 bit offset from the tiny data area pointer. 4573 4574 -- : BFD_RELOC_V850_TDA_16_16_OFFSET 4575 This is a 16 bit offset from the tiny data area pointer. 4576 4577 -- : BFD_RELOC_V850_TDA_4_5_OFFSET 4578 This is a 5 bit offset (of which only 4 bits are used) from the 4579 tiny data area pointer. 4580 4581 -- : BFD_RELOC_V850_TDA_4_4_OFFSET 4582 This is a 4 bit offset from the tiny data area pointer. 4583 4584 -- : BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET 4585 This is a 16 bit offset from the short data area pointer, with the 4586 bits placed non-contiguously in the instruction. 4587 4588 -- : BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET 4589 This is a 16 bit offset from the zero data area pointer, with the 4590 bits placed non-contiguously in the instruction. 4591 4592 -- : BFD_RELOC_V850_CALLT_6_7_OFFSET 4593 This is a 6 bit offset from the call table base pointer. 4594 4595 -- : BFD_RELOC_V850_CALLT_16_16_OFFSET 4596 This is a 16 bit offset from the call table base pointer. 4597 4598 -- : BFD_RELOC_V850_LONGCALL 4599 Used for relaxing indirect function calls. 4600 4601 -- : BFD_RELOC_V850_LONGJUMP 4602 Used for relaxing indirect jumps. 4603 4604 -- : BFD_RELOC_V850_ALIGN 4605 Used to maintain alignment whilst relaxing. 4606 4607 -- : BFD_RELOC_V850_LO16_SPLIT_OFFSET 4608 This is a variation of BFD_RELOC_LO16 that can be used in v850e 4609 ld.bu instructions. 4610 4611 -- : BFD_RELOC_V850_16_PCREL 4612 This is a 16-bit reloc. 4613 4614 -- : BFD_RELOC_V850_17_PCREL 4615 This is a 17-bit reloc. 4616 4617 -- : BFD_RELOC_V850_23 4618 This is a 23-bit reloc. 4619 4620 -- : BFD_RELOC_V850_32_PCREL 4621 This is a 32-bit reloc. 4622 4623 -- : BFD_RELOC_V850_32_ABS 4624 This is a 32-bit reloc. 4625 4626 -- : BFD_RELOC_V850_16_SPLIT_OFFSET 4627 This is a 16-bit reloc. 4628 4629 -- : BFD_RELOC_V850_16_S1 4630 This is a 16-bit reloc. 4631 4632 -- : BFD_RELOC_V850_LO16_S1 4633 Low 16 bits. 16 bit shifted by 1. 4634 4635 -- : BFD_RELOC_V850_CALLT_15_16_OFFSET 4636 This is a 16 bit offset from the call table base pointer. 4637 4638 -- : BFD_RELOC_V850_32_GOTPCREL 4639 DSO relocations. 4640 4641 -- : BFD_RELOC_V850_16_GOT 4642 DSO relocations. 4643 4644 -- : BFD_RELOC_V850_32_GOT 4645 DSO relocations. 4646 4647 -- : BFD_RELOC_V850_22_PLT_PCREL 4648 DSO relocations. 4649 4650 -- : BFD_RELOC_V850_32_PLT_PCREL 4651 DSO relocations. 4652 4653 -- : BFD_RELOC_V850_COPY 4654 DSO relocations. 4655 4656 -- : BFD_RELOC_V850_GLOB_DAT 4657 DSO relocations. 4658 4659 -- : BFD_RELOC_V850_JMP_SLOT 4660 DSO relocations. 4661 4662 -- : BFD_RELOC_V850_RELATIVE 4663 DSO relocations. 4664 4665 -- : BFD_RELOC_V850_16_GOTOFF 4666 DSO relocations. 4667 4668 -- : BFD_RELOC_V850_32_GOTOFF 4669 DSO relocations. 4670 4671 -- : BFD_RELOC_V850_CODE 4672 start code. 4673 4674 -- : BFD_RELOC_V850_DATA 4675 start data in text. 4676 4677 -- : BFD_RELOC_MN10300_32_PCREL 4678 This is a 32bit pcrel reloc for the mn10300, offset by two bytes 4679 in the instruction. 4680 4681 -- : BFD_RELOC_MN10300_16_PCREL 4682 This is a 16bit pcrel reloc for the mn10300, offset by two bytes 4683 in the instruction. 4684 4685 -- : BFD_RELOC_TIC30_LDP 4686 This is a 8bit DP reloc for the tms320c30, where the most 4687 significant 8 bits of a 24 bit word are placed into the least 4688 significant 8 bits of the opcode. 4689 4690 -- : BFD_RELOC_TIC54X_PARTLS7 4691 This is a 7bit reloc for the tms320c54x, where the least 4692 significant 7 bits of a 16 bit word are placed into the least 4693 significant 7 bits of the opcode. 4694 4695 -- : BFD_RELOC_TIC54X_PARTMS9 4696 This is a 9bit DP reloc for the tms320c54x, where the most 4697 significant 9 bits of a 16 bit word are placed into the least 4698 significant 9 bits of the opcode. 4699 4700 -- : BFD_RELOC_TIC54X_23 4701 This is an extended address 23-bit reloc for the tms320c54x. 4702 4703 -- : BFD_RELOC_TIC54X_16_OF_23 4704 This is a 16-bit reloc for the tms320c54x, where the least 4705 significant 16 bits of a 23-bit extended address are placed into 4706 the opcode. 4707 4708 -- : BFD_RELOC_TIC54X_MS7_OF_23 4709 This is a reloc for the tms320c54x, where the most significant 7 4710 bits of a 23-bit extended address are placed into the opcode. 4711 4712 -- : BFD_RELOC_C6000_PCR_S21 4713 -- : BFD_RELOC_C6000_PCR_S12 4714 -- : BFD_RELOC_C6000_PCR_S10 4715 -- : BFD_RELOC_C6000_PCR_S7 4716 -- : BFD_RELOC_C6000_ABS_S16 4717 -- : BFD_RELOC_C6000_ABS_L16 4718 -- : BFD_RELOC_C6000_ABS_H16 4719 -- : BFD_RELOC_C6000_SBR_U15_B 4720 -- : BFD_RELOC_C6000_SBR_U15_H 4721 -- : BFD_RELOC_C6000_SBR_U15_W 4722 -- : BFD_RELOC_C6000_SBR_S16 4723 -- : BFD_RELOC_C6000_SBR_L16_B 4724 -- : BFD_RELOC_C6000_SBR_L16_H 4725 -- : BFD_RELOC_C6000_SBR_L16_W 4726 -- : BFD_RELOC_C6000_SBR_H16_B 4727 -- : BFD_RELOC_C6000_SBR_H16_H 4728 -- : BFD_RELOC_C6000_SBR_H16_W 4729 -- : BFD_RELOC_C6000_SBR_GOT_U15_W 4730 -- : BFD_RELOC_C6000_SBR_GOT_L16_W 4731 -- : BFD_RELOC_C6000_SBR_GOT_H16_W 4732 -- : BFD_RELOC_C6000_DSBT_INDEX 4733 -- : BFD_RELOC_C6000_PREL31 4734 -- : BFD_RELOC_C6000_COPY 4735 -- : BFD_RELOC_C6000_JUMP_SLOT 4736 -- : BFD_RELOC_C6000_EHTYPE 4737 -- : BFD_RELOC_C6000_PCR_H16 4738 -- : BFD_RELOC_C6000_PCR_L16 4739 -- : BFD_RELOC_C6000_ALIGN 4740 -- : BFD_RELOC_C6000_FPHEAD 4741 -- : BFD_RELOC_C6000_NOCMP 4742 TMS320C6000 relocations. 4743 4744 -- : BFD_RELOC_FR30_48 4745 This is a 48 bit reloc for the FR30 that stores 32 bits. 4746 4747 -- : BFD_RELOC_FR30_20 4748 This is a 32 bit reloc for the FR30 that stores 20 bits split up 4749 into two sections. 4750 4751 -- : BFD_RELOC_FR30_6_IN_4 4752 This is a 16 bit reloc for the FR30 that stores a 6 bit word 4753 offset in 4 bits. 4754 4755 -- : BFD_RELOC_FR30_8_IN_8 4756 This is a 16 bit reloc for the FR30 that stores an 8 bit byte 4757 offset into 8 bits. 4758 4759 -- : BFD_RELOC_FR30_9_IN_8 4760 This is a 16 bit reloc for the FR30 that stores a 9 bit short 4761 offset into 8 bits. 4762 4763 -- : BFD_RELOC_FR30_10_IN_8 4764 This is a 16 bit reloc for the FR30 that stores a 10 bit word 4765 offset into 8 bits. 4766 4767 -- : BFD_RELOC_FR30_9_PCREL 4768 This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative 4769 short offset into 8 bits. 4770 4771 -- : BFD_RELOC_FR30_12_PCREL 4772 This is a 16 bit reloc for the FR30 that stores a 12 bit pc 4773 relative short offset into 11 bits. 4774 4775 -- : BFD_RELOC_MCORE_PCREL_IMM8BY4 4776 -- : BFD_RELOC_MCORE_PCREL_IMM11BY2 4777 -- : BFD_RELOC_MCORE_PCREL_IMM4BY2 4778 -- : BFD_RELOC_MCORE_PCREL_32 4779 -- : BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2 4780 -- : BFD_RELOC_MCORE_RVA 4781 Motorola Mcore relocations. 4782 4783 -- : BFD_RELOC_MEP_8 4784 -- : BFD_RELOC_MEP_16 4785 -- : BFD_RELOC_MEP_32 4786 -- : BFD_RELOC_MEP_PCREL8A2 4787 -- : BFD_RELOC_MEP_PCREL12A2 4788 -- : BFD_RELOC_MEP_PCREL17A2 4789 -- : BFD_RELOC_MEP_PCREL24A2 4790 -- : BFD_RELOC_MEP_PCABS24A2 4791 -- : BFD_RELOC_MEP_LOW16 4792 -- : BFD_RELOC_MEP_HI16U 4793 -- : BFD_RELOC_MEP_HI16S 4794 -- : BFD_RELOC_MEP_GPREL 4795 -- : BFD_RELOC_MEP_TPREL 4796 -- : BFD_RELOC_MEP_TPREL7 4797 -- : BFD_RELOC_MEP_TPREL7A2 4798 -- : BFD_RELOC_MEP_TPREL7A4 4799 -- : BFD_RELOC_MEP_UIMM24 4800 -- : BFD_RELOC_MEP_ADDR24A4 4801 -- : BFD_RELOC_MEP_GNU_VTINHERIT 4802 -- : BFD_RELOC_MEP_GNU_VTENTRY 4803 Toshiba Media Processor Relocations. 4804 4805 -- : BFD_RELOC_MMIX_GETA 4806 -- : BFD_RELOC_MMIX_GETA_1 4807 -- : BFD_RELOC_MMIX_GETA_2 4808 -- : BFD_RELOC_MMIX_GETA_3 4809 These are relocations for the GETA instruction. 4810 4811 -- : BFD_RELOC_MMIX_CBRANCH 4812 -- : BFD_RELOC_MMIX_CBRANCH_J 4813 -- : BFD_RELOC_MMIX_CBRANCH_1 4814 -- : BFD_RELOC_MMIX_CBRANCH_2 4815 -- : BFD_RELOC_MMIX_CBRANCH_3 4816 These are relocations for a conditional branch instruction. 4817 4818 -- : BFD_RELOC_MMIX_PUSHJ 4819 -- : BFD_RELOC_MMIX_PUSHJ_1 4820 -- : BFD_RELOC_MMIX_PUSHJ_2 4821 -- : BFD_RELOC_MMIX_PUSHJ_3 4822 -- : BFD_RELOC_MMIX_PUSHJ_STUBBABLE 4823 These are relocations for the PUSHJ instruction. 4824 4825 -- : BFD_RELOC_MMIX_JMP 4826 -- : BFD_RELOC_MMIX_JMP_1 4827 -- : BFD_RELOC_MMIX_JMP_2 4828 -- : BFD_RELOC_MMIX_JMP_3 4829 These are relocations for the JMP instruction. 4830 4831 -- : BFD_RELOC_MMIX_ADDR19 4832 This is a relocation for a relative address as in a GETA 4833 instruction or a branch. 4834 4835 -- : BFD_RELOC_MMIX_ADDR27 4836 This is a relocation for a relative address as in a JMP 4837 instruction. 4838 4839 -- : BFD_RELOC_MMIX_REG_OR_BYTE 4840 This is a relocation for an instruction field that may be a general 4841 register or a value 0..255. 4842 4843 -- : BFD_RELOC_MMIX_REG 4844 This is a relocation for an instruction field that may be a general 4845 register. 4846 4847 -- : BFD_RELOC_MMIX_BASE_PLUS_OFFSET 4848 This is a relocation for two instruction fields holding a register 4849 and an offset, the equivalent of the relocation. 4850 4851 -- : BFD_RELOC_MMIX_LOCAL 4852 This relocation is an assertion that the expression is not 4853 allocated as a global register. It does not modify contents. 4854 4855 -- : BFD_RELOC_AVR_7_PCREL 4856 This is a 16 bit reloc for the AVR that stores 8 bit pc relative 4857 short offset into 7 bits. 4858 4859 -- : BFD_RELOC_AVR_13_PCREL 4860 This is a 16 bit reloc for the AVR that stores 13 bit pc relative 4861 short offset into 12 bits. 4862 4863 -- : BFD_RELOC_AVR_16_PM 4864 This is a 16 bit reloc for the AVR that stores 17 bit value 4865 (usually program memory address) into 16 bits. 4866 4867 -- : BFD_RELOC_AVR_LO8_LDI 4868 This is a 16 bit reloc for the AVR that stores 8 bit value (usually 4869 data memory address) into 8 bit immediate value of LDI insn. 4870 4871 -- : BFD_RELOC_AVR_HI8_LDI 4872 This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 4873 bit of data memory address) into 8 bit immediate value of LDI insn. 4874 4875 -- : BFD_RELOC_AVR_HH8_LDI 4876 This is a 16 bit reloc for the AVR that stores 8 bit value (most 4877 high 8 bit of program memory address) into 8 bit immediate value 4878 of LDI insn. 4879 4880 -- : BFD_RELOC_AVR_MS8_LDI 4881 This is a 16 bit reloc for the AVR that stores 8 bit value (most 4882 high 8 bit of 32 bit value) into 8 bit immediate value of LDI insn. 4883 4884 -- : BFD_RELOC_AVR_LO8_LDI_NEG 4885 This is a 16 bit reloc for the AVR that stores negated 8 bit value 4886 (usually data memory address) into 8 bit immediate value of SUBI 4887 insn. 4888 4889 -- : BFD_RELOC_AVR_HI8_LDI_NEG 4890 This is a 16 bit reloc for the AVR that stores negated 8 bit value 4891 (high 8 bit of data memory address) into 8 bit immediate value of 4892 SUBI insn. 4893 4894 -- : BFD_RELOC_AVR_HH8_LDI_NEG 4895 This is a 16 bit reloc for the AVR that stores negated 8 bit value 4896 (most high 8 bit of program memory address) into 8 bit immediate 4897 value of LDI or SUBI insn. 4898 4899 -- : BFD_RELOC_AVR_MS8_LDI_NEG 4900 This is a 16 bit reloc for the AVR that stores negated 8 bit value 4901 (msb of 32 bit value) into 8 bit immediate value of LDI insn. 4902 4903 -- : BFD_RELOC_AVR_LO8_LDI_PM 4904 This is a 16 bit reloc for the AVR that stores 8 bit value (usually 4905 command address) into 8 bit immediate value of LDI insn. 4906 4907 -- : BFD_RELOC_AVR_LO8_LDI_GS 4908 This is a 16 bit reloc for the AVR that stores 8 bit value 4909 (command address) into 8 bit immediate value of LDI insn. If the 4910 address is beyond the 128k boundary, the linker inserts a jump 4911 stub for this reloc in the lower 128k. 4912 4913 -- : BFD_RELOC_AVR_HI8_LDI_PM 4914 This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 4915 bit of command address) into 8 bit immediate value of LDI insn. 4916 4917 -- : BFD_RELOC_AVR_HI8_LDI_GS 4918 This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 4919 bit of command address) into 8 bit immediate value of LDI insn. 4920 If the address is beyond the 128k boundary, the linker inserts a 4921 jump stub for this reloc below 128k. 4922 4923 -- : BFD_RELOC_AVR_HH8_LDI_PM 4924 This is a 16 bit reloc for the AVR that stores 8 bit value (most 4925 high 8 bit of command address) into 8 bit immediate value of LDI 4926 insn. 4927 4928 -- : BFD_RELOC_AVR_LO8_LDI_PM_NEG 4929 This is a 16 bit reloc for the AVR that stores negated 8 bit value 4930 (usually command address) into 8 bit immediate value of SUBI insn. 4931 4932 -- : BFD_RELOC_AVR_HI8_LDI_PM_NEG 4933 This is a 16 bit reloc for the AVR that stores negated 8 bit value 4934 (high 8 bit of 16 bit command address) into 8 bit immediate value 4935 of SUBI insn. 4936 4937 -- : BFD_RELOC_AVR_HH8_LDI_PM_NEG 4938 This is a 16 bit reloc for the AVR that stores negated 8 bit value 4939 (high 6 bit of 22 bit command address) into 8 bit immediate value 4940 of SUBI insn. 4941 4942 -- : BFD_RELOC_AVR_CALL 4943 This is a 32 bit reloc for the AVR that stores 23 bit value into 4944 22 bits. 4945 4946 -- : BFD_RELOC_AVR_LDI 4947 This is a 16 bit reloc for the AVR that stores all needed bits for 4948 absolute addressing with ldi with overflow check to linktime 4949 4950 -- : BFD_RELOC_AVR_6 4951 This is a 6 bit reloc for the AVR that stores offset for ldd/std 4952 instructions 4953 4954 -- : BFD_RELOC_AVR_6_ADIW 4955 This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw 4956 instructions 4957 4958 -- : BFD_RELOC_RX_NEG8 4959 -- : BFD_RELOC_RX_NEG16 4960 -- : BFD_RELOC_RX_NEG24 4961 -- : BFD_RELOC_RX_NEG32 4962 -- : BFD_RELOC_RX_16_OP 4963 -- : BFD_RELOC_RX_24_OP 4964 -- : BFD_RELOC_RX_32_OP 4965 -- : BFD_RELOC_RX_8U 4966 -- : BFD_RELOC_RX_16U 4967 -- : BFD_RELOC_RX_24U 4968 -- : BFD_RELOC_RX_DIR3U_PCREL 4969 -- : BFD_RELOC_RX_DIFF 4970 -- : BFD_RELOC_RX_GPRELB 4971 -- : BFD_RELOC_RX_GPRELW 4972 -- : BFD_RELOC_RX_GPRELL 4973 -- : BFD_RELOC_RX_SYM 4974 -- : BFD_RELOC_RX_OP_SUBTRACT 4975 -- : BFD_RELOC_RX_OP_NEG 4976 -- : BFD_RELOC_RX_ABS8 4977 -- : BFD_RELOC_RX_ABS16 4978 -- : BFD_RELOC_RX_ABS16_REV 4979 -- : BFD_RELOC_RX_ABS32 4980 -- : BFD_RELOC_RX_ABS32_REV 4981 -- : BFD_RELOC_RX_ABS16U 4982 -- : BFD_RELOC_RX_ABS16UW 4983 -- : BFD_RELOC_RX_ABS16UL 4984 -- : BFD_RELOC_RX_RELAX 4985 Renesas RX Relocations. 4986 4987 -- : BFD_RELOC_390_12 4988 Direct 12 bit. 4989 4990 -- : BFD_RELOC_390_GOT12 4991 12 bit GOT offset. 4992 4993 -- : BFD_RELOC_390_PLT32 4994 32 bit PC relative PLT address. 4995 4996 -- : BFD_RELOC_390_COPY 4997 Copy symbol at runtime. 4998 4999 -- : BFD_RELOC_390_GLOB_DAT 5000 Create GOT entry. 5001 5002 -- : BFD_RELOC_390_JMP_SLOT 5003 Create PLT entry. 5004 5005 -- : BFD_RELOC_390_RELATIVE 5006 Adjust by program base. 5007 5008 -- : BFD_RELOC_390_GOTPC 5009 32 bit PC relative offset to GOT. 5010 5011 -- : BFD_RELOC_390_GOT16 5012 16 bit GOT offset. 5013 5014 -- : BFD_RELOC_390_PC16DBL 5015 PC relative 16 bit shifted by 1. 5016 5017 -- : BFD_RELOC_390_PLT16DBL 5018 16 bit PC rel. PLT shifted by 1. 5019 5020 -- : BFD_RELOC_390_PC32DBL 5021 PC relative 32 bit shifted by 1. 5022 5023 -- : BFD_RELOC_390_PLT32DBL 5024 32 bit PC rel. PLT shifted by 1. 5025 5026 -- : BFD_RELOC_390_GOTPCDBL 5027 32 bit PC rel. GOT shifted by 1. 5028 5029 -- : BFD_RELOC_390_GOT64 5030 64 bit GOT offset. 5031 5032 -- : BFD_RELOC_390_PLT64 5033 64 bit PC relative PLT address. 5034 5035 -- : BFD_RELOC_390_GOTENT 5036 32 bit rel. offset to GOT entry. 5037 5038 -- : BFD_RELOC_390_GOTOFF64 5039 64 bit offset to GOT. 5040 5041 -- : BFD_RELOC_390_GOTPLT12 5042 12-bit offset to symbol-entry within GOT, with PLT handling. 5043 5044 -- : BFD_RELOC_390_GOTPLT16 5045 16-bit offset to symbol-entry within GOT, with PLT handling. 5046 5047 -- : BFD_RELOC_390_GOTPLT32 5048 32-bit offset to symbol-entry within GOT, with PLT handling. 5049 5050 -- : BFD_RELOC_390_GOTPLT64 5051 64-bit offset to symbol-entry within GOT, with PLT handling. 5052 5053 -- : BFD_RELOC_390_GOTPLTENT 5054 32-bit rel. offset to symbol-entry within GOT, with PLT handling. 5055 5056 -- : BFD_RELOC_390_PLTOFF16 5057 16-bit rel. offset from the GOT to a PLT entry. 5058 5059 -- : BFD_RELOC_390_PLTOFF32 5060 32-bit rel. offset from the GOT to a PLT entry. 5061 5062 -- : BFD_RELOC_390_PLTOFF64 5063 64-bit rel. offset from the GOT to a PLT entry. 5064 5065 -- : BFD_RELOC_390_TLS_LOAD 5066 -- : BFD_RELOC_390_TLS_GDCALL 5067 -- : BFD_RELOC_390_TLS_LDCALL 5068 -- : BFD_RELOC_390_TLS_GD32 5069 -- : BFD_RELOC_390_TLS_GD64 5070 -- : BFD_RELOC_390_TLS_GOTIE12 5071 -- : BFD_RELOC_390_TLS_GOTIE32 5072 -- : BFD_RELOC_390_TLS_GOTIE64 5073 -- : BFD_RELOC_390_TLS_LDM32 5074 -- : BFD_RELOC_390_TLS_LDM64 5075 -- : BFD_RELOC_390_TLS_IE32 5076 -- : BFD_RELOC_390_TLS_IE64 5077 -- : BFD_RELOC_390_TLS_IEENT 5078 -- : BFD_RELOC_390_TLS_LE32 5079 -- : BFD_RELOC_390_TLS_LE64 5080 -- : BFD_RELOC_390_TLS_LDO32 5081 -- : BFD_RELOC_390_TLS_LDO64 5082 -- : BFD_RELOC_390_TLS_DTPMOD 5083 -- : BFD_RELOC_390_TLS_DTPOFF 5084 -- : BFD_RELOC_390_TLS_TPOFF 5085 s390 tls relocations. 5086 5087 -- : BFD_RELOC_390_20 5088 -- : BFD_RELOC_390_GOT20 5089 -- : BFD_RELOC_390_GOTPLT20 5090 -- : BFD_RELOC_390_TLS_GOTIE20 5091 Long displacement extension. 5092 5093 -- : BFD_RELOC_SCORE_GPREL15 5094 Score relocations Low 16 bit for load/store 5095 5096 -- : BFD_RELOC_SCORE_DUMMY2 5097 -- : BFD_RELOC_SCORE_JMP 5098 This is a 24-bit reloc with the right 1 bit assumed to be 0 5099 5100 -- : BFD_RELOC_SCORE_BRANCH 5101 This is a 19-bit reloc with the right 1 bit assumed to be 0 5102 5103 -- : BFD_RELOC_SCORE_IMM30 5104 This is a 32-bit reloc for 48-bit instructions. 5105 5106 -- : BFD_RELOC_SCORE_IMM32 5107 This is a 32-bit reloc for 48-bit instructions. 5108 5109 -- : BFD_RELOC_SCORE16_JMP 5110 This is a 11-bit reloc with the right 1 bit assumed to be 0 5111 5112 -- : BFD_RELOC_SCORE16_BRANCH 5113 This is a 8-bit reloc with the right 1 bit assumed to be 0 5114 5115 -- : BFD_RELOC_SCORE_BCMP 5116 This is a 9-bit reloc with the right 1 bit assumed to be 0 5117 5118 -- : BFD_RELOC_SCORE_GOT15 5119 -- : BFD_RELOC_SCORE_GOT_LO16 5120 -- : BFD_RELOC_SCORE_CALL15 5121 -- : BFD_RELOC_SCORE_DUMMY_HI16 5122 Undocumented Score relocs 5123 5124 -- : BFD_RELOC_IP2K_FR9 5125 Scenix IP2K - 9-bit register number / data address 5126 5127 -- : BFD_RELOC_IP2K_BANK 5128 Scenix IP2K - 4-bit register/data bank number 5129 5130 -- : BFD_RELOC_IP2K_ADDR16CJP 5131 Scenix IP2K - low 13 bits of instruction word address 5132 5133 -- : BFD_RELOC_IP2K_PAGE3 5134 Scenix IP2K - high 3 bits of instruction word address 5135 5136 -- : BFD_RELOC_IP2K_LO8DATA 5137 -- : BFD_RELOC_IP2K_HI8DATA 5138 -- : BFD_RELOC_IP2K_EX8DATA 5139 Scenix IP2K - ext/low/high 8 bits of data address 5140 5141 -- : BFD_RELOC_IP2K_LO8INSN 5142 -- : BFD_RELOC_IP2K_HI8INSN 5143 Scenix IP2K - low/high 8 bits of instruction word address 5144 5145 -- : BFD_RELOC_IP2K_PC_SKIP 5146 Scenix IP2K - even/odd PC modifier to modify snb pcl.0 5147 5148 -- : BFD_RELOC_IP2K_TEXT 5149 Scenix IP2K - 16 bit word address in text section. 5150 5151 -- : BFD_RELOC_IP2K_FR_OFFSET 5152 Scenix IP2K - 7-bit sp or dp offset 5153 5154 -- : BFD_RELOC_VPE4KMATH_DATA 5155 -- : BFD_RELOC_VPE4KMATH_INSN 5156 Scenix VPE4K coprocessor - data/insn-space addressing 5157 5158 -- : BFD_RELOC_VTABLE_INHERIT 5159 -- : BFD_RELOC_VTABLE_ENTRY 5160 These two relocations are used by the linker to determine which of 5161 the entries in a C++ virtual function table are actually used. 5162 When the -gc-sections option is given, the linker will zero out 5163 the entries that are not used, so that the code for those 5164 functions need not be included in the output. 5165 5166 VTABLE_INHERIT is a zero-space relocation used to describe to the 5167 linker the inheritance tree of a C++ virtual function table. The 5168 relocation's symbol should be the parent class' vtable, and the 5169 relocation should be located at the child vtable. 5170 5171 VTABLE_ENTRY is a zero-space relocation that describes the use of a 5172 virtual function table entry. The reloc's symbol should refer to 5173 the table of the class mentioned in the code. Off of that base, 5174 an offset describes the entry that is being used. For Rela hosts, 5175 this offset is stored in the reloc's addend. For Rel hosts, we 5176 are forced to put this offset in the reloc's section offset. 5177 5178 -- : BFD_RELOC_IA64_IMM14 5179 -- : BFD_RELOC_IA64_IMM22 5180 -- : BFD_RELOC_IA64_IMM64 5181 -- : BFD_RELOC_IA64_DIR32MSB 5182 -- : BFD_RELOC_IA64_DIR32LSB 5183 -- : BFD_RELOC_IA64_DIR64MSB 5184 -- : BFD_RELOC_IA64_DIR64LSB 5185 -- : BFD_RELOC_IA64_GPREL22 5186 -- : BFD_RELOC_IA64_GPREL64I 5187 -- : BFD_RELOC_IA64_GPREL32MSB 5188 -- : BFD_RELOC_IA64_GPREL32LSB 5189 -- : BFD_RELOC_IA64_GPREL64MSB 5190 -- : BFD_RELOC_IA64_GPREL64LSB 5191 -- : BFD_RELOC_IA64_LTOFF22 5192 -- : BFD_RELOC_IA64_LTOFF64I 5193 -- : BFD_RELOC_IA64_PLTOFF22 5194 -- : BFD_RELOC_IA64_PLTOFF64I 5195 -- : BFD_RELOC_IA64_PLTOFF64MSB 5196 -- : BFD_RELOC_IA64_PLTOFF64LSB 5197 -- : BFD_RELOC_IA64_FPTR64I 5198 -- : BFD_RELOC_IA64_FPTR32MSB 5199 -- : BFD_RELOC_IA64_FPTR32LSB 5200 -- : BFD_RELOC_IA64_FPTR64MSB 5201 -- : BFD_RELOC_IA64_FPTR64LSB 5202 -- : BFD_RELOC_IA64_PCREL21B 5203 -- : BFD_RELOC_IA64_PCREL21BI 5204 -- : BFD_RELOC_IA64_PCREL21M 5205 -- : BFD_RELOC_IA64_PCREL21F 5206 -- : BFD_RELOC_IA64_PCREL22 5207 -- : BFD_RELOC_IA64_PCREL60B 5208 -- : BFD_RELOC_IA64_PCREL64I 5209 -- : BFD_RELOC_IA64_PCREL32MSB 5210 -- : BFD_RELOC_IA64_PCREL32LSB 5211 -- : BFD_RELOC_IA64_PCREL64MSB 5212 -- : BFD_RELOC_IA64_PCREL64LSB 5213 -- : BFD_RELOC_IA64_LTOFF_FPTR22 5214 -- : BFD_RELOC_IA64_LTOFF_FPTR64I 5215 -- : BFD_RELOC_IA64_LTOFF_FPTR32MSB 5216 -- : BFD_RELOC_IA64_LTOFF_FPTR32LSB 5217 -- : BFD_RELOC_IA64_LTOFF_FPTR64MSB 5218 -- : BFD_RELOC_IA64_LTOFF_FPTR64LSB 5219 -- : BFD_RELOC_IA64_SEGREL32MSB 5220 -- : BFD_RELOC_IA64_SEGREL32LSB 5221 -- : BFD_RELOC_IA64_SEGREL64MSB 5222 -- : BFD_RELOC_IA64_SEGREL64LSB 5223 -- : BFD_RELOC_IA64_SECREL32MSB 5224 -- : BFD_RELOC_IA64_SECREL32LSB 5225 -- : BFD_RELOC_IA64_SECREL64MSB 5226 -- : BFD_RELOC_IA64_SECREL64LSB 5227 -- : BFD_RELOC_IA64_REL32MSB 5228 -- : BFD_RELOC_IA64_REL32LSB 5229 -- : BFD_RELOC_IA64_REL64MSB 5230 -- : BFD_RELOC_IA64_REL64LSB 5231 -- : BFD_RELOC_IA64_LTV32MSB 5232 -- : BFD_RELOC_IA64_LTV32LSB 5233 -- : BFD_RELOC_IA64_LTV64MSB 5234 -- : BFD_RELOC_IA64_LTV64LSB 5235 -- : BFD_RELOC_IA64_IPLTMSB 5236 -- : BFD_RELOC_IA64_IPLTLSB 5237 -- : BFD_RELOC_IA64_COPY 5238 -- : BFD_RELOC_IA64_LTOFF22X 5239 -- : BFD_RELOC_IA64_LDXMOV 5240 -- : BFD_RELOC_IA64_TPREL14 5241 -- : BFD_RELOC_IA64_TPREL22 5242 -- : BFD_RELOC_IA64_TPREL64I 5243 -- : BFD_RELOC_IA64_TPREL64MSB 5244 -- : BFD_RELOC_IA64_TPREL64LSB 5245 -- : BFD_RELOC_IA64_LTOFF_TPREL22 5246 -- : BFD_RELOC_IA64_DTPMOD64MSB 5247 -- : BFD_RELOC_IA64_DTPMOD64LSB 5248 -- : BFD_RELOC_IA64_LTOFF_DTPMOD22 5249 -- : BFD_RELOC_IA64_DTPREL14 5250 -- : BFD_RELOC_IA64_DTPREL22 5251 -- : BFD_RELOC_IA64_DTPREL64I 5252 -- : BFD_RELOC_IA64_DTPREL32MSB 5253 -- : BFD_RELOC_IA64_DTPREL32LSB 5254 -- : BFD_RELOC_IA64_DTPREL64MSB 5255 -- : BFD_RELOC_IA64_DTPREL64LSB 5256 -- : BFD_RELOC_IA64_LTOFF_DTPREL22 5257 Intel IA64 Relocations. 5258 5259 -- : BFD_RELOC_M68HC11_HI8 5260 Motorola 68HC11 reloc. This is the 8 bit high part of an absolute 5261 address. 5262 5263 -- : BFD_RELOC_M68HC11_LO8 5264 Motorola 68HC11 reloc. This is the 8 bit low part of an absolute 5265 address. 5266 5267 -- : BFD_RELOC_M68HC11_3B 5268 Motorola 68HC11 reloc. This is the 3 bit of a value. 5269 5270 -- : BFD_RELOC_M68HC11_RL_JUMP 5271 Motorola 68HC11 reloc. This reloc marks the beginning of a 5272 jump/call instruction. It is used for linker relaxation to 5273 correctly identify beginning of instruction and change some 5274 branches to use PC-relative addressing mode. 5275 5276 -- : BFD_RELOC_M68HC11_RL_GROUP 5277 Motorola 68HC11 reloc. This reloc marks a group of several 5278 instructions that gcc generates and for which the linker 5279 relaxation pass can modify and/or remove some of them. 5280 5281 -- : BFD_RELOC_M68HC11_LO16 5282 Motorola 68HC11 reloc. This is the 16-bit lower part of an 5283 address. It is used for 'call' instruction to specify the symbol 5284 address without any special transformation (due to memory bank 5285 window). 5286 5287 -- : BFD_RELOC_M68HC11_PAGE 5288 Motorola 68HC11 reloc. This is a 8-bit reloc that specifies the 5289 page number of an address. It is used by 'call' instruction to 5290 specify the page number of the symbol. 5291 5292 -- : BFD_RELOC_M68HC11_24 5293 Motorola 68HC11 reloc. This is a 24-bit reloc that represents the 5294 address with a 16-bit value and a 8-bit page number. The symbol 5295 address is transformed to follow the 16K memory bank of 68HC12 5296 (seen as mapped in the window). 5297 5298 -- : BFD_RELOC_M68HC12_5B 5299 Motorola 68HC12 reloc. This is the 5 bits of a value. 5300 5301 -- : BFD_RELOC_16C_NUM08 5302 -- : BFD_RELOC_16C_NUM08_C 5303 -- : BFD_RELOC_16C_NUM16 5304 -- : BFD_RELOC_16C_NUM16_C 5305 -- : BFD_RELOC_16C_NUM32 5306 -- : BFD_RELOC_16C_NUM32_C 5307 -- : BFD_RELOC_16C_DISP04 5308 -- : BFD_RELOC_16C_DISP04_C 5309 -- : BFD_RELOC_16C_DISP08 5310 -- : BFD_RELOC_16C_DISP08_C 5311 -- : BFD_RELOC_16C_DISP16 5312 -- : BFD_RELOC_16C_DISP16_C 5313 -- : BFD_RELOC_16C_DISP24 5314 -- : BFD_RELOC_16C_DISP24_C 5315 -- : BFD_RELOC_16C_DISP24a 5316 -- : BFD_RELOC_16C_DISP24a_C 5317 -- : BFD_RELOC_16C_REG04 5318 -- : BFD_RELOC_16C_REG04_C 5319 -- : BFD_RELOC_16C_REG04a 5320 -- : BFD_RELOC_16C_REG04a_C 5321 -- : BFD_RELOC_16C_REG14 5322 -- : BFD_RELOC_16C_REG14_C 5323 -- : BFD_RELOC_16C_REG16 5324 -- : BFD_RELOC_16C_REG16_C 5325 -- : BFD_RELOC_16C_REG20 5326 -- : BFD_RELOC_16C_REG20_C 5327 -- : BFD_RELOC_16C_ABS20 5328 -- : BFD_RELOC_16C_ABS20_C 5329 -- : BFD_RELOC_16C_ABS24 5330 -- : BFD_RELOC_16C_ABS24_C 5331 -- : BFD_RELOC_16C_IMM04 5332 -- : BFD_RELOC_16C_IMM04_C 5333 -- : BFD_RELOC_16C_IMM16 5334 -- : BFD_RELOC_16C_IMM16_C 5335 -- : BFD_RELOC_16C_IMM20 5336 -- : BFD_RELOC_16C_IMM20_C 5337 -- : BFD_RELOC_16C_IMM24 5338 -- : BFD_RELOC_16C_IMM24_C 5339 -- : BFD_RELOC_16C_IMM32 5340 -- : BFD_RELOC_16C_IMM32_C 5341 NS CR16C Relocations. 5342 5343 -- : BFD_RELOC_CR16_NUM8 5344 -- : BFD_RELOC_CR16_NUM16 5345 -- : BFD_RELOC_CR16_NUM32 5346 -- : BFD_RELOC_CR16_NUM32a 5347 -- : BFD_RELOC_CR16_REGREL0 5348 -- : BFD_RELOC_CR16_REGREL4 5349 -- : BFD_RELOC_CR16_REGREL4a 5350 -- : BFD_RELOC_CR16_REGREL14 5351 -- : BFD_RELOC_CR16_REGREL14a 5352 -- : BFD_RELOC_CR16_REGREL16 5353 -- : BFD_RELOC_CR16_REGREL20 5354 -- : BFD_RELOC_CR16_REGREL20a 5355 -- : BFD_RELOC_CR16_ABS20 5356 -- : BFD_RELOC_CR16_ABS24 5357 -- : BFD_RELOC_CR16_IMM4 5358 -- : BFD_RELOC_CR16_IMM8 5359 -- : BFD_RELOC_CR16_IMM16 5360 -- : BFD_RELOC_CR16_IMM20 5361 -- : BFD_RELOC_CR16_IMM24 5362 -- : BFD_RELOC_CR16_IMM32 5363 -- : BFD_RELOC_CR16_IMM32a 5364 -- : BFD_RELOC_CR16_DISP4 5365 -- : BFD_RELOC_CR16_DISP8 5366 -- : BFD_RELOC_CR16_DISP16 5367 -- : BFD_RELOC_CR16_DISP20 5368 -- : BFD_RELOC_CR16_DISP24 5369 -- : BFD_RELOC_CR16_DISP24a 5370 -- : BFD_RELOC_CR16_SWITCH8 5371 -- : BFD_RELOC_CR16_SWITCH16 5372 -- : BFD_RELOC_CR16_SWITCH32 5373 -- : BFD_RELOC_CR16_GOT_REGREL20 5374 -- : BFD_RELOC_CR16_GOTC_REGREL20 5375 -- : BFD_RELOC_CR16_GLOB_DAT 5376 NS CR16 Relocations. 5377 5378 -- : BFD_RELOC_CRX_REL4 5379 -- : BFD_RELOC_CRX_REL8 5380 -- : BFD_RELOC_CRX_REL8_CMP 5381 -- : BFD_RELOC_CRX_REL16 5382 -- : BFD_RELOC_CRX_REL24 5383 -- : BFD_RELOC_CRX_REL32 5384 -- : BFD_RELOC_CRX_REGREL12 5385 -- : BFD_RELOC_CRX_REGREL22 5386 -- : BFD_RELOC_CRX_REGREL28 5387 -- : BFD_RELOC_CRX_REGREL32 5388 -- : BFD_RELOC_CRX_ABS16 5389 -- : BFD_RELOC_CRX_ABS32 5390 -- : BFD_RELOC_CRX_NUM8 5391 -- : BFD_RELOC_CRX_NUM16 5392 -- : BFD_RELOC_CRX_NUM32 5393 -- : BFD_RELOC_CRX_IMM16 5394 -- : BFD_RELOC_CRX_IMM32 5395 -- : BFD_RELOC_CRX_SWITCH8 5396 -- : BFD_RELOC_CRX_SWITCH16 5397 -- : BFD_RELOC_CRX_SWITCH32 5398 NS CRX Relocations. 5399 5400 -- : BFD_RELOC_CRIS_BDISP8 5401 -- : BFD_RELOC_CRIS_UNSIGNED_5 5402 -- : BFD_RELOC_CRIS_SIGNED_6 5403 -- : BFD_RELOC_CRIS_UNSIGNED_6 5404 -- : BFD_RELOC_CRIS_SIGNED_8 5405 -- : BFD_RELOC_CRIS_UNSIGNED_8 5406 -- : BFD_RELOC_CRIS_SIGNED_16 5407 -- : BFD_RELOC_CRIS_UNSIGNED_16 5408 -- : BFD_RELOC_CRIS_LAPCQ_OFFSET 5409 -- : BFD_RELOC_CRIS_UNSIGNED_4 5410 These relocs are only used within the CRIS assembler. They are not 5411 (at present) written to any object files. 5412 5413 -- : BFD_RELOC_CRIS_COPY 5414 -- : BFD_RELOC_CRIS_GLOB_DAT 5415 -- : BFD_RELOC_CRIS_JUMP_SLOT 5416 -- : BFD_RELOC_CRIS_RELATIVE 5417 Relocs used in ELF shared libraries for CRIS. 5418 5419 -- : BFD_RELOC_CRIS_32_GOT 5420 32-bit offset to symbol-entry within GOT. 5421 5422 -- : BFD_RELOC_CRIS_16_GOT 5423 16-bit offset to symbol-entry within GOT. 5424 5425 -- : BFD_RELOC_CRIS_32_GOTPLT 5426 32-bit offset to symbol-entry within GOT, with PLT handling. 5427 5428 -- : BFD_RELOC_CRIS_16_GOTPLT 5429 16-bit offset to symbol-entry within GOT, with PLT handling. 5430 5431 -- : BFD_RELOC_CRIS_32_GOTREL 5432 32-bit offset to symbol, relative to GOT. 5433 5434 -- : BFD_RELOC_CRIS_32_PLT_GOTREL 5435 32-bit offset to symbol with PLT entry, relative to GOT. 5436 5437 -- : BFD_RELOC_CRIS_32_PLT_PCREL 5438 32-bit offset to symbol with PLT entry, relative to this 5439 relocation. 5440 5441 -- : BFD_RELOC_CRIS_32_GOT_GD 5442 -- : BFD_RELOC_CRIS_16_GOT_GD 5443 -- : BFD_RELOC_CRIS_32_GD 5444 -- : BFD_RELOC_CRIS_DTP 5445 -- : BFD_RELOC_CRIS_32_DTPREL 5446 -- : BFD_RELOC_CRIS_16_DTPREL 5447 -- : BFD_RELOC_CRIS_32_GOT_TPREL 5448 -- : BFD_RELOC_CRIS_16_GOT_TPREL 5449 -- : BFD_RELOC_CRIS_32_TPREL 5450 -- : BFD_RELOC_CRIS_16_TPREL 5451 -- : BFD_RELOC_CRIS_DTPMOD 5452 -- : BFD_RELOC_CRIS_32_IE 5453 Relocs used in TLS code for CRIS. 5454 5455 -- : BFD_RELOC_860_COPY 5456 -- : BFD_RELOC_860_GLOB_DAT 5457 -- : BFD_RELOC_860_JUMP_SLOT 5458 -- : BFD_RELOC_860_RELATIVE 5459 -- : BFD_RELOC_860_PC26 5460 -- : BFD_RELOC_860_PLT26 5461 -- : BFD_RELOC_860_PC16 5462 -- : BFD_RELOC_860_LOW0 5463 -- : BFD_RELOC_860_SPLIT0 5464 -- : BFD_RELOC_860_LOW1 5465 -- : BFD_RELOC_860_SPLIT1 5466 -- : BFD_RELOC_860_LOW2 5467 -- : BFD_RELOC_860_SPLIT2 5468 -- : BFD_RELOC_860_LOW3 5469 -- : BFD_RELOC_860_LOGOT0 5470 -- : BFD_RELOC_860_SPGOT0 5471 -- : BFD_RELOC_860_LOGOT1 5472 -- : BFD_RELOC_860_SPGOT1 5473 -- : BFD_RELOC_860_LOGOTOFF0 5474 -- : BFD_RELOC_860_SPGOTOFF0 5475 -- : BFD_RELOC_860_LOGOTOFF1 5476 -- : BFD_RELOC_860_SPGOTOFF1 5477 -- : BFD_RELOC_860_LOGOTOFF2 5478 -- : BFD_RELOC_860_LOGOTOFF3 5479 -- : BFD_RELOC_860_LOPC 5480 -- : BFD_RELOC_860_HIGHADJ 5481 -- : BFD_RELOC_860_HAGOT 5482 -- : BFD_RELOC_860_HAGOTOFF 5483 -- : BFD_RELOC_860_HAPC 5484 -- : BFD_RELOC_860_HIGH 5485 -- : BFD_RELOC_860_HIGOT 5486 -- : BFD_RELOC_860_HIGOTOFF 5487 Intel i860 Relocations. 5488 5489 -- : BFD_RELOC_OPENRISC_ABS_26 5490 -- : BFD_RELOC_OPENRISC_REL_26 5491 OpenRISC Relocations. 5492 5493 -- : BFD_RELOC_H8_DIR16A8 5494 -- : BFD_RELOC_H8_DIR16R8 5495 -- : BFD_RELOC_H8_DIR24A8 5496 -- : BFD_RELOC_H8_DIR24R8 5497 -- : BFD_RELOC_H8_DIR32A16 5498 H8 elf Relocations. 5499 5500 -- : BFD_RELOC_XSTORMY16_REL_12 5501 -- : BFD_RELOC_XSTORMY16_12 5502 -- : BFD_RELOC_XSTORMY16_24 5503 -- : BFD_RELOC_XSTORMY16_FPTR16 5504 Sony Xstormy16 Relocations. 5505 5506 -- : BFD_RELOC_RELC 5507 Self-describing complex relocations. 5508 5509 -- : BFD_RELOC_XC16X_PAG 5510 -- : BFD_RELOC_XC16X_POF 5511 -- : BFD_RELOC_XC16X_SEG 5512 -- : BFD_RELOC_XC16X_SOF 5513 Infineon Relocations. 5514 5515 -- : BFD_RELOC_VAX_GLOB_DAT 5516 -- : BFD_RELOC_VAX_JMP_SLOT 5517 -- : BFD_RELOC_VAX_RELATIVE 5518 Relocations used by VAX ELF. 5519 5520 -- : BFD_RELOC_MT_PC16 5521 Morpho MT - 16 bit immediate relocation. 5522 5523 -- : BFD_RELOC_MT_HI16 5524 Morpho MT - Hi 16 bits of an address. 5525 5526 -- : BFD_RELOC_MT_LO16 5527 Morpho MT - Low 16 bits of an address. 5528 5529 -- : BFD_RELOC_MT_GNU_VTINHERIT 5530 Morpho MT - Used to tell the linker which vtable entries are used. 5531 5532 -- : BFD_RELOC_MT_GNU_VTENTRY 5533 Morpho MT - Used to tell the linker which vtable entries are used. 5534 5535 -- : BFD_RELOC_MT_PCINSN8 5536 Morpho MT - 8 bit immediate relocation. 5537 5538 -- : BFD_RELOC_MSP430_10_PCREL 5539 -- : BFD_RELOC_MSP430_16_PCREL 5540 -- : BFD_RELOC_MSP430_16 5541 -- : BFD_RELOC_MSP430_16_PCREL_BYTE 5542 -- : BFD_RELOC_MSP430_16_BYTE 5543 -- : BFD_RELOC_MSP430_2X_PCREL 5544 -- : BFD_RELOC_MSP430_RL_PCREL 5545 msp430 specific relocation codes 5546 5547 -- : BFD_RELOC_IQ2000_OFFSET_16 5548 -- : BFD_RELOC_IQ2000_OFFSET_21 5549 -- : BFD_RELOC_IQ2000_UHI16 5550 IQ2000 Relocations. 5551 5552 -- : BFD_RELOC_XTENSA_RTLD 5553 Special Xtensa relocation used only by PLT entries in ELF shared 5554 objects to indicate that the runtime linker should set the value 5555 to one of its own internal functions or data structures. 5556 5557 -- : BFD_RELOC_XTENSA_GLOB_DAT 5558 -- : BFD_RELOC_XTENSA_JMP_SLOT 5559 -- : BFD_RELOC_XTENSA_RELATIVE 5560 Xtensa relocations for ELF shared objects. 5561 5562 -- : BFD_RELOC_XTENSA_PLT 5563 Xtensa relocation used in ELF object files for symbols that may 5564 require PLT entries. Otherwise, this is just a generic 32-bit 5565 relocation. 5566 5567 -- : BFD_RELOC_XTENSA_DIFF8 5568 -- : BFD_RELOC_XTENSA_DIFF16 5569 -- : BFD_RELOC_XTENSA_DIFF32 5570 Xtensa relocations to mark the difference of two local symbols. 5571 These are only needed to support linker relaxation and can be 5572 ignored when not relaxing. The field is set to the value of the 5573 difference assuming no relaxation. The relocation encodes the 5574 position of the first symbol so the linker can determine whether 5575 to adjust the field value. 5576 5577 -- : BFD_RELOC_XTENSA_SLOT0_OP 5578 -- : BFD_RELOC_XTENSA_SLOT1_OP 5579 -- : BFD_RELOC_XTENSA_SLOT2_OP 5580 -- : BFD_RELOC_XTENSA_SLOT3_OP 5581 -- : BFD_RELOC_XTENSA_SLOT4_OP 5582 -- : BFD_RELOC_XTENSA_SLOT5_OP 5583 -- : BFD_RELOC_XTENSA_SLOT6_OP 5584 -- : BFD_RELOC_XTENSA_SLOT7_OP 5585 -- : BFD_RELOC_XTENSA_SLOT8_OP 5586 -- : BFD_RELOC_XTENSA_SLOT9_OP 5587 -- : BFD_RELOC_XTENSA_SLOT10_OP 5588 -- : BFD_RELOC_XTENSA_SLOT11_OP 5589 -- : BFD_RELOC_XTENSA_SLOT12_OP 5590 -- : BFD_RELOC_XTENSA_SLOT13_OP 5591 -- : BFD_RELOC_XTENSA_SLOT14_OP 5592 Generic Xtensa relocations for instruction operands. Only the slot 5593 number is encoded in the relocation. The relocation applies to the 5594 last PC-relative immediate operand, or if there are no PC-relative 5595 immediates, to the last immediate operand. 5596 5597 -- : BFD_RELOC_XTENSA_SLOT0_ALT 5598 -- : BFD_RELOC_XTENSA_SLOT1_ALT 5599 -- : BFD_RELOC_XTENSA_SLOT2_ALT 5600 -- : BFD_RELOC_XTENSA_SLOT3_ALT 5601 -- : BFD_RELOC_XTENSA_SLOT4_ALT 5602 -- : BFD_RELOC_XTENSA_SLOT5_ALT 5603 -- : BFD_RELOC_XTENSA_SLOT6_ALT 5604 -- : BFD_RELOC_XTENSA_SLOT7_ALT 5605 -- : BFD_RELOC_XTENSA_SLOT8_ALT 5606 -- : BFD_RELOC_XTENSA_SLOT9_ALT 5607 -- : BFD_RELOC_XTENSA_SLOT10_ALT 5608 -- : BFD_RELOC_XTENSA_SLOT11_ALT 5609 -- : BFD_RELOC_XTENSA_SLOT12_ALT 5610 -- : BFD_RELOC_XTENSA_SLOT13_ALT 5611 -- : BFD_RELOC_XTENSA_SLOT14_ALT 5612 Alternate Xtensa relocations. Only the slot is encoded in the 5613 relocation. The meaning of these relocations is opcode-specific. 5614 5615 -- : BFD_RELOC_XTENSA_OP0 5616 -- : BFD_RELOC_XTENSA_OP1 5617 -- : BFD_RELOC_XTENSA_OP2 5618 Xtensa relocations for backward compatibility. These have all been 5619 replaced by BFD_RELOC_XTENSA_SLOT0_OP. 5620 5621 -- : BFD_RELOC_XTENSA_ASM_EXPAND 5622 Xtensa relocation to mark that the assembler expanded the 5623 instructions from an original target. The expansion size is 5624 encoded in the reloc size. 5625 5626 -- : BFD_RELOC_XTENSA_ASM_SIMPLIFY 5627 Xtensa relocation to mark that the linker should simplify 5628 assembler-expanded instructions. This is commonly used internally 5629 by the linker after analysis of a BFD_RELOC_XTENSA_ASM_EXPAND. 5630 5631 -- : BFD_RELOC_XTENSA_TLSDESC_FN 5632 -- : BFD_RELOC_XTENSA_TLSDESC_ARG 5633 -- : BFD_RELOC_XTENSA_TLS_DTPOFF 5634 -- : BFD_RELOC_XTENSA_TLS_TPOFF 5635 -- : BFD_RELOC_XTENSA_TLS_FUNC 5636 -- : BFD_RELOC_XTENSA_TLS_ARG 5637 -- : BFD_RELOC_XTENSA_TLS_CALL 5638 Xtensa TLS relocations. 5639 5640 -- : BFD_RELOC_Z80_DISP8 5641 8 bit signed offset in (ix+d) or (iy+d). 5642 5643 -- : BFD_RELOC_Z8K_DISP7 5644 DJNZ offset. 5645 5646 -- : BFD_RELOC_Z8K_CALLR 5647 CALR offset. 5648 5649 -- : BFD_RELOC_Z8K_IMM4L 5650 4 bit value. 5651 5652 -- : BFD_RELOC_LM32_CALL 5653 -- : BFD_RELOC_LM32_BRANCH 5654 -- : BFD_RELOC_LM32_16_GOT 5655 -- : BFD_RELOC_LM32_GOTOFF_HI16 5656 -- : BFD_RELOC_LM32_GOTOFF_LO16 5657 -- : BFD_RELOC_LM32_COPY 5658 -- : BFD_RELOC_LM32_GLOB_DAT 5659 -- : BFD_RELOC_LM32_JMP_SLOT 5660 -- : BFD_RELOC_LM32_RELATIVE 5661 Lattice Mico32 relocations. 5662 5663 -- : BFD_RELOC_MACH_O_SECTDIFF 5664 Difference between two section addreses. Must be followed by a 5665 BFD_RELOC_MACH_O_PAIR. 5666 5667 -- : BFD_RELOC_MACH_O_PAIR 5668 Pair of relocation. Contains the first symbol. 5669 5670 -- : BFD_RELOC_MACH_O_X86_64_BRANCH32 5671 -- : BFD_RELOC_MACH_O_X86_64_BRANCH8 5672 PCREL relocations. They are marked as branch to create PLT entry 5673 if required. 5674 5675 -- : BFD_RELOC_MACH_O_X86_64_GOT 5676 Used when referencing a GOT entry. 5677 5678 -- : BFD_RELOC_MACH_O_X86_64_GOT_LOAD 5679 Used when loading a GOT entry with movq. It is specially marked 5680 so that the linker could optimize the movq to a leaq if possible. 5681 5682 -- : BFD_RELOC_MACH_O_X86_64_SUBTRACTOR32 5683 Symbol will be substracted. Must be followed by a BFD_RELOC_64. 5684 5685 -- : BFD_RELOC_MACH_O_X86_64_SUBTRACTOR64 5686 Symbol will be substracted. Must be followed by a BFD_RELOC_64. 5687 5688 -- : BFD_RELOC_MACH_O_X86_64_PCREL32_1 5689 Same as BFD_RELOC_32_PCREL but with an implicit -1 addend. 5690 5691 -- : BFD_RELOC_MACH_O_X86_64_PCREL32_2 5692 Same as BFD_RELOC_32_PCREL but with an implicit -2 addend. 5693 5694 -- : BFD_RELOC_MACH_O_X86_64_PCREL32_4 5695 Same as BFD_RELOC_32_PCREL but with an implicit -4 addend. 5696 5697 -- : BFD_RELOC_MICROBLAZE_32_LO 5698 This is a 32 bit reloc for the microblaze that stores the low 16 5699 bits of a value 5700 5701 -- : BFD_RELOC_MICROBLAZE_32_LO_PCREL 5702 This is a 32 bit pc-relative reloc for the microblaze that stores 5703 the low 16 bits of a value 5704 5705 -- : BFD_RELOC_MICROBLAZE_32_ROSDA 5706 This is a 32 bit reloc for the microblaze that stores a value 5707 relative to the read-only small data area anchor 5708 5709 -- : BFD_RELOC_MICROBLAZE_32_RWSDA 5710 This is a 32 bit reloc for the microblaze that stores a value 5711 relative to the read-write small data area anchor 5712 5713 -- : BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM 5714 This is a 32 bit reloc for the microblaze to handle expressions of 5715 the form "Symbol Op Symbol" 5716 5717 -- : BFD_RELOC_MICROBLAZE_64_NONE 5718 This is a 64 bit reloc that stores the 32 bit pc relative value in 5719 two words (with an imm instruction). No relocation is done here - 5720 only used for relaxing 5721 5722 -- : BFD_RELOC_MICROBLAZE_64_GOTPC 5723 This is a 64 bit reloc that stores the 32 bit pc relative value in 5724 two words (with an imm instruction). The relocation is 5725 PC-relative GOT offset 5726 5727 -- : BFD_RELOC_MICROBLAZE_64_GOT 5728 This is a 64 bit reloc that stores the 32 bit pc relative value in 5729 two words (with an imm instruction). The relocation is GOT offset 5730 5731 -- : BFD_RELOC_MICROBLAZE_64_PLT 5732 This is a 64 bit reloc that stores the 32 bit pc relative value in 5733 two words (with an imm instruction). The relocation is 5734 PC-relative offset into PLT 5735 5736 -- : BFD_RELOC_MICROBLAZE_64_GOTOFF 5737 This is a 64 bit reloc that stores the 32 bit GOT relative value 5738 in two words (with an imm instruction). The relocation is 5739 relative offset from _GLOBAL_OFFSET_TABLE_ 5740 5741 -- : BFD_RELOC_MICROBLAZE_32_GOTOFF 5742 This is a 32 bit reloc that stores the 32 bit GOT relative value 5743 in a word. The relocation is relative offset from 5744 5745 -- : BFD_RELOC_MICROBLAZE_COPY 5746 This is used to tell the dynamic linker to copy the value out of 5747 the dynamic object into the runtime process image. 5748 5749 -- : BFD_RELOC_TILEPRO_COPY 5750 -- : BFD_RELOC_TILEPRO_GLOB_DAT 5751 -- : BFD_RELOC_TILEPRO_JMP_SLOT 5752 -- : BFD_RELOC_TILEPRO_RELATIVE 5753 -- : BFD_RELOC_TILEPRO_BROFF_X1 5754 -- : BFD_RELOC_TILEPRO_JOFFLONG_X1 5755 -- : BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT 5756 -- : BFD_RELOC_TILEPRO_IMM8_X0 5757 -- : BFD_RELOC_TILEPRO_IMM8_Y0 5758 -- : BFD_RELOC_TILEPRO_IMM8_X1 5759 -- : BFD_RELOC_TILEPRO_IMM8_Y1 5760 -- : BFD_RELOC_TILEPRO_DEST_IMM8_X1 5761 -- : BFD_RELOC_TILEPRO_MT_IMM15_X1 5762 -- : BFD_RELOC_TILEPRO_MF_IMM15_X1 5763 -- : BFD_RELOC_TILEPRO_IMM16_X0 5764 -- : BFD_RELOC_TILEPRO_IMM16_X1 5765 -- : BFD_RELOC_TILEPRO_IMM16_X0_LO 5766 -- : BFD_RELOC_TILEPRO_IMM16_X1_LO 5767 -- : BFD_RELOC_TILEPRO_IMM16_X0_HI 5768 -- : BFD_RELOC_TILEPRO_IMM16_X1_HI 5769 -- : BFD_RELOC_TILEPRO_IMM16_X0_HA 5770 -- : BFD_RELOC_TILEPRO_IMM16_X1_HA 5771 -- : BFD_RELOC_TILEPRO_IMM16_X0_PCREL 5772 -- : BFD_RELOC_TILEPRO_IMM16_X1_PCREL 5773 -- : BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL 5774 -- : BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL 5775 -- : BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL 5776 -- : BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL 5777 -- : BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL 5778 -- : BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL 5779 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT 5780 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT 5781 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO 5782 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO 5783 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI 5784 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI 5785 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA 5786 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA 5787 -- : BFD_RELOC_TILEPRO_MMSTART_X0 5788 -- : BFD_RELOC_TILEPRO_MMEND_X0 5789 -- : BFD_RELOC_TILEPRO_MMSTART_X1 5790 -- : BFD_RELOC_TILEPRO_MMEND_X1 5791 -- : BFD_RELOC_TILEPRO_SHAMT_X0 5792 -- : BFD_RELOC_TILEPRO_SHAMT_X1 5793 -- : BFD_RELOC_TILEPRO_SHAMT_Y0 5794 -- : BFD_RELOC_TILEPRO_SHAMT_Y1 5795 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD 5796 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD 5797 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO 5798 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO 5799 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI 5800 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI 5801 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA 5802 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA 5803 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE 5804 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE 5805 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO 5806 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO 5807 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI 5808 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI 5809 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA 5810 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA 5811 -- : BFD_RELOC_TILEPRO_TLS_DTPMOD32 5812 -- : BFD_RELOC_TILEPRO_TLS_DTPOFF32 5813 -- : BFD_RELOC_TILEPRO_TLS_TPOFF32 5814 Tilera TILEPro Relocations. 5815 5816 -- : BFD_RELOC_TILEGX_HW0 5817 -- : BFD_RELOC_TILEGX_HW1 5818 -- : BFD_RELOC_TILEGX_HW2 5819 -- : BFD_RELOC_TILEGX_HW3 5820 -- : BFD_RELOC_TILEGX_HW0_LAST 5821 -- : BFD_RELOC_TILEGX_HW1_LAST 5822 -- : BFD_RELOC_TILEGX_HW2_LAST 5823 -- : BFD_RELOC_TILEGX_COPY 5824 -- : BFD_RELOC_TILEGX_GLOB_DAT 5825 -- : BFD_RELOC_TILEGX_JMP_SLOT 5826 -- : BFD_RELOC_TILEGX_RELATIVE 5827 -- : BFD_RELOC_TILEGX_BROFF_X1 5828 -- : BFD_RELOC_TILEGX_JUMPOFF_X1 5829 -- : BFD_RELOC_TILEGX_JUMPOFF_X1_PLT 5830 -- : BFD_RELOC_TILEGX_IMM8_X0 5831 -- : BFD_RELOC_TILEGX_IMM8_Y0 5832 -- : BFD_RELOC_TILEGX_IMM8_X1 5833 -- : BFD_RELOC_TILEGX_IMM8_Y1 5834 -- : BFD_RELOC_TILEGX_DEST_IMM8_X1 5835 -- : BFD_RELOC_TILEGX_MT_IMM14_X1 5836 -- : BFD_RELOC_TILEGX_MF_IMM14_X1 5837 -- : BFD_RELOC_TILEGX_MMSTART_X0 5838 -- : BFD_RELOC_TILEGX_MMEND_X0 5839 -- : BFD_RELOC_TILEGX_SHAMT_X0 5840 -- : BFD_RELOC_TILEGX_SHAMT_X1 5841 -- : BFD_RELOC_TILEGX_SHAMT_Y0 5842 -- : BFD_RELOC_TILEGX_SHAMT_Y1 5843 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0 5844 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0 5845 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1 5846 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1 5847 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2 5848 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2 5849 -- : BFD_RELOC_TILEGX_IMM16_X0_HW3 5850 -- : BFD_RELOC_TILEGX_IMM16_X1_HW3 5851 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST 5852 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST 5853 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST 5854 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST 5855 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST 5856 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST 5857 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL 5858 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL 5859 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL 5860 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL 5861 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL 5862 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL 5863 -- : BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL 5864 -- : BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL 5865 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL 5866 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL 5867 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL 5868 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL 5869 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL 5870 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL 5871 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT 5872 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT 5873 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_GOT 5874 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_GOT 5875 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_GOT 5876 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_GOT 5877 -- : BFD_RELOC_TILEGX_IMM16_X0_HW3_GOT 5878 -- : BFD_RELOC_TILEGX_IMM16_X1_HW3_GOT 5879 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT 5880 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT 5881 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT 5882 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT 5883 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_GOT 5884 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_GOT 5885 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD 5886 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD 5887 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_GD 5888 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_GD 5889 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_GD 5890 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_GD 5891 -- : BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_GD 5892 -- : BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_GD 5893 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD 5894 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD 5895 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD 5896 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD 5897 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_GD 5898 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_GD 5899 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE 5900 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE 5901 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_IE 5902 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_IE 5903 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_IE 5904 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_IE 5905 -- : BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_IE 5906 -- : BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_IE 5907 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE 5908 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE 5909 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE 5910 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE 5911 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_IE 5912 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_IE 5913 -- : BFD_RELOC_TILEGX_TLS_DTPMOD64 5914 -- : BFD_RELOC_TILEGX_TLS_DTPOFF64 5915 -- : BFD_RELOC_TILEGX_TLS_TPOFF64 5916 -- : BFD_RELOC_TILEGX_TLS_DTPMOD32 5917 -- : BFD_RELOC_TILEGX_TLS_DTPOFF32 5918 -- : BFD_RELOC_TILEGX_TLS_TPOFF32 5919 Tilera TILE-Gx Relocations. 5920 5921 5922 typedef enum bfd_reloc_code_real bfd_reloc_code_real_type; 5923 5924 2.10.2.2 `bfd_reloc_type_lookup' 5925 ................................ 5926 5927 *Synopsis* 5928 reloc_howto_type *bfd_reloc_type_lookup 5929 (bfd *abfd, bfd_reloc_code_real_type code); 5930 reloc_howto_type *bfd_reloc_name_lookup 5931 (bfd *abfd, const char *reloc_name); 5932 *Description* 5933 Return a pointer to a howto structure which, when invoked, will perform 5934 the relocation CODE on data from the architecture noted. 5935 5936 2.10.2.3 `bfd_default_reloc_type_lookup' 5937 ........................................ 5938 5939 *Synopsis* 5940 reloc_howto_type *bfd_default_reloc_type_lookup 5941 (bfd *abfd, bfd_reloc_code_real_type code); 5942 *Description* 5943 Provides a default relocation lookup routine for any architecture. 5944 5945 2.10.2.4 `bfd_get_reloc_code_name' 5946 .................................. 5947 5948 *Synopsis* 5949 const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code); 5950 *Description* 5951 Provides a printable name for the supplied relocation code. Useful 5952 mainly for printing error messages. 5953 5954 2.10.2.5 `bfd_generic_relax_section' 5955 .................................... 5956 5957 *Synopsis* 5958 bfd_boolean bfd_generic_relax_section 5959 (bfd *abfd, 5960 asection *section, 5961 struct bfd_link_info *, 5962 bfd_boolean *); 5963 *Description* 5964 Provides default handling for relaxing for back ends which don't do 5965 relaxing. 5966 5967 2.10.2.6 `bfd_generic_gc_sections' 5968 .................................. 5969 5970 *Synopsis* 5971 bfd_boolean bfd_generic_gc_sections 5972 (bfd *, struct bfd_link_info *); 5973 *Description* 5974 Provides default handling for relaxing for back ends which don't do 5975 section gc - i.e., does nothing. 5976 5977 2.10.2.7 `bfd_generic_lookup_section_flags' 5978 ........................................... 5979 5980 *Synopsis* 5981 void bfd_generic_lookup_section_flags 5982 (struct bfd_link_info *, struct flag_info *); 5983 *Description* 5984 Provides default handling for section flags lookup - i.e., does nothing. 5985 5986 2.10.2.8 `bfd_generic_merge_sections' 5987 ..................................... 5988 5989 *Synopsis* 5990 bfd_boolean bfd_generic_merge_sections 5991 (bfd *, struct bfd_link_info *); 5992 *Description* 5993 Provides default handling for SEC_MERGE section merging for back ends 5994 which don't have SEC_MERGE support - i.e., does nothing. 5995 5996 2.10.2.9 `bfd_generic_get_relocated_section_contents' 5997 ..................................................... 5998 5999 *Synopsis* 6000 bfd_byte *bfd_generic_get_relocated_section_contents 6001 (bfd *abfd, 6002 struct bfd_link_info *link_info, 6003 struct bfd_link_order *link_order, 6004 bfd_byte *data, 6005 bfd_boolean relocatable, 6006 asymbol **symbols); 6007 *Description* 6008 Provides default handling of relocation effort for back ends which 6009 can't be bothered to do it efficiently. 6010 6011 6012 File: bfd.info, Node: Core Files, Next: Targets, Prev: Relocations, Up: BFD front end 6013 6014 2.11 Core files 6015 =============== 6016 6017 2.11.1 Core file functions 6018 -------------------------- 6019 6020 *Description* 6021 These are functions pertaining to core files. 6022 6023 2.11.1.1 `bfd_core_file_failing_command' 6024 ........................................ 6025 6026 *Synopsis* 6027 const char *bfd_core_file_failing_command (bfd *abfd); 6028 *Description* 6029 Return a read-only string explaining which program was running when it 6030 failed and produced the core file ABFD. 6031 6032 2.11.1.2 `bfd_core_file_failing_signal' 6033 ....................................... 6034 6035 *Synopsis* 6036 int bfd_core_file_failing_signal (bfd *abfd); 6037 *Description* 6038 Returns the signal number which caused the core dump which generated 6039 the file the BFD ABFD is attached to. 6040 6041 2.11.1.3 `bfd_core_file_pid' 6042 ............................ 6043 6044 *Synopsis* 6045 int bfd_core_file_pid (bfd *abfd); 6046 *Description* 6047 Returns the PID of the process the core dump the BFD ABFD is attached 6048 to was generated from. 6049 6050 2.11.1.4 `core_file_matches_executable_p' 6051 ......................................... 6052 6053 *Synopsis* 6054 bfd_boolean core_file_matches_executable_p 6055 (bfd *core_bfd, bfd *exec_bfd); 6056 *Description* 6057 Return `TRUE' if the core file attached to CORE_BFD was generated by a 6058 run of the executable file attached to EXEC_BFD, `FALSE' otherwise. 6059 6060 2.11.1.5 `generic_core_file_matches_executable_p' 6061 ................................................. 6062 6063 *Synopsis* 6064 bfd_boolean generic_core_file_matches_executable_p 6065 (bfd *core_bfd, bfd *exec_bfd); 6066 *Description* 6067 Return TRUE if the core file attached to CORE_BFD was generated by a 6068 run of the executable file attached to EXEC_BFD. The match is based on 6069 executable basenames only. 6070 6071 Note: When not able to determine the core file failing command or 6072 the executable name, we still return TRUE even though we're not sure 6073 that core file and executable match. This is to avoid generating a 6074 false warning in situations where we really don't know whether they 6075 match or not. 6076 6077 6078 File: bfd.info, Node: Targets, Next: Architectures, Prev: Core Files, Up: BFD front end 6079 6080 2.12 Targets 6081 ============ 6082 6083 *Description* 6084 Each port of BFD to a different machine requires the creation of a 6085 target back end. All the back end provides to the root part of BFD is a 6086 structure containing pointers to functions which perform certain low 6087 level operations on files. BFD translates the applications's requests 6088 through a pointer into calls to the back end routines. 6089 6090 When a file is opened with `bfd_openr', its format and target are 6091 unknown. BFD uses various mechanisms to determine how to interpret the 6092 file. The operations performed are: 6093 6094 * Create a BFD by calling the internal routine `_bfd_new_bfd', then 6095 call `bfd_find_target' with the target string supplied to 6096 `bfd_openr' and the new BFD pointer. 6097 6098 * If a null target string was provided to `bfd_find_target', look up 6099 the environment variable `GNUTARGET' and use that as the target 6100 string. 6101 6102 * If the target string is still `NULL', or the target string is 6103 `default', then use the first item in the target vector as the 6104 target type, and set `target_defaulted' in the BFD to cause 6105 `bfd_check_format' to loop through all the targets. *Note 6106 bfd_target::. *Note Formats::. 6107 6108 * Otherwise, inspect the elements in the target vector one by one, 6109 until a match on target name is found. When found, use it. 6110 6111 * Otherwise return the error `bfd_error_invalid_target' to 6112 `bfd_openr'. 6113 6114 * `bfd_openr' attempts to open the file using `bfd_open_file', and 6115 returns the BFD. 6116 Once the BFD has been opened and the target selected, the file 6117 format may be determined. This is done by calling `bfd_check_format' on 6118 the BFD with a suggested format. If `target_defaulted' has been set, 6119 each possible target type is tried to see if it recognizes the 6120 specified format. `bfd_check_format' returns `TRUE' when the caller 6121 guesses right. 6122 6123 * Menu: 6124 6125 * bfd_target:: 6126 6127 6128 File: bfd.info, Node: bfd_target, Prev: Targets, Up: Targets 6129 6130 2.12.1 bfd_target 6131 ----------------- 6132 6133 *Description* 6134 This structure contains everything that BFD knows about a target. It 6135 includes things like its byte order, name, and which routines to call 6136 to do various operations. 6137 6138 Every BFD points to a target structure with its `xvec' member. 6139 6140 The macros below are used to dispatch to functions through the 6141 `bfd_target' vector. They are used in a number of macros further down 6142 in `bfd.h', and are also used when calling various routines by hand 6143 inside the BFD implementation. The ARGLIST argument must be 6144 parenthesized; it contains all the arguments to the called function. 6145 6146 They make the documentation (more) unpleasant to read, so if someone 6147 wants to fix this and not break the above, please do. 6148 #define BFD_SEND(bfd, message, arglist) \ 6149 ((*((bfd)->xvec->message)) arglist) 6150 6151 #ifdef DEBUG_BFD_SEND 6152 #undef BFD_SEND 6153 #define BFD_SEND(bfd, message, arglist) \ 6154 (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \ 6155 ((*((bfd)->xvec->message)) arglist) : \ 6156 (bfd_assert (__FILE__,__LINE__), NULL)) 6157 #endif 6158 For operations which index on the BFD format: 6159 #define BFD_SEND_FMT(bfd, message, arglist) \ 6160 (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) 6161 6162 #ifdef DEBUG_BFD_SEND 6163 #undef BFD_SEND_FMT 6164 #define BFD_SEND_FMT(bfd, message, arglist) \ 6165 (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \ 6166 (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) : \ 6167 (bfd_assert (__FILE__,__LINE__), NULL)) 6168 #endif 6169 This is the structure which defines the type of BFD this is. The 6170 `xvec' member of the struct `bfd' itself points here. Each module that 6171 implements access to a different target under BFD, defines one of these. 6172 6173 FIXME, these names should be rationalised with the names of the 6174 entry points which call them. Too bad we can't have one macro to define 6175 them both! 6176 enum bfd_flavour 6177 { 6178 bfd_target_unknown_flavour, 6179 bfd_target_aout_flavour, 6180 bfd_target_coff_flavour, 6181 bfd_target_ecoff_flavour, 6182 bfd_target_xcoff_flavour, 6183 bfd_target_elf_flavour, 6184 bfd_target_ieee_flavour, 6185 bfd_target_nlm_flavour, 6186 bfd_target_oasys_flavour, 6187 bfd_target_tekhex_flavour, 6188 bfd_target_srec_flavour, 6189 bfd_target_verilog_flavour, 6190 bfd_target_ihex_flavour, 6191 bfd_target_som_flavour, 6192 bfd_target_os9k_flavour, 6193 bfd_target_versados_flavour, 6194 bfd_target_msdos_flavour, 6195 bfd_target_ovax_flavour, 6196 bfd_target_evax_flavour, 6197 bfd_target_mmo_flavour, 6198 bfd_target_mach_o_flavour, 6199 bfd_target_pef_flavour, 6200 bfd_target_pef_xlib_flavour, 6201 bfd_target_sym_flavour 6202 }; 6203 6204 enum bfd_endian { BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN }; 6205 6206 /* Forward declaration. */ 6207 typedef struct bfd_link_info _bfd_link_info; 6208 6209 /* Forward declaration. */ 6210 typedef struct flag_info flag_info; 6211 6212 typedef struct bfd_target 6213 { 6214 /* Identifies the kind of target, e.g., SunOS4, Ultrix, etc. */ 6215 char *name; 6216 6217 /* The "flavour" of a back end is a general indication about 6218 the contents of a file. */ 6219 enum bfd_flavour flavour; 6220 6221 /* The order of bytes within the data area of a file. */ 6222 enum bfd_endian byteorder; 6223 6224 /* The order of bytes within the header parts of a file. */ 6225 enum bfd_endian header_byteorder; 6226 6227 /* A mask of all the flags which an executable may have set - 6228 from the set `BFD_NO_FLAGS', `HAS_RELOC', ...`D_PAGED'. */ 6229 flagword object_flags; 6230 6231 /* A mask of all the flags which a section may have set - from 6232 the set `SEC_NO_FLAGS', `SEC_ALLOC', ...`SET_NEVER_LOAD'. */ 6233 flagword section_flags; 6234 6235 /* The character normally found at the front of a symbol. 6236 (if any), perhaps `_'. */ 6237 char symbol_leading_char; 6238 6239 /* The pad character for file names within an archive header. */ 6240 char ar_pad_char; 6241 6242 /* The maximum number of characters in an archive header. */ 6243 unsigned char ar_max_namelen; 6244 6245 /* How well this target matches, used to select between various 6246 possible targets when more than one target matches. */ 6247 unsigned char match_priority; 6248 6249 /* Entries for byte swapping for data. These are different from the 6250 other entry points, since they don't take a BFD as the first argument. 6251 Certain other handlers could do the same. */ 6252 bfd_uint64_t (*bfd_getx64) (const void *); 6253 bfd_int64_t (*bfd_getx_signed_64) (const void *); 6254 void (*bfd_putx64) (bfd_uint64_t, void *); 6255 bfd_vma (*bfd_getx32) (const void *); 6256 bfd_signed_vma (*bfd_getx_signed_32) (const void *); 6257 void (*bfd_putx32) (bfd_vma, void *); 6258 bfd_vma (*bfd_getx16) (const void *); 6259 bfd_signed_vma (*bfd_getx_signed_16) (const void *); 6260 void (*bfd_putx16) (bfd_vma, void *); 6261 6262 /* Byte swapping for the headers. */ 6263 bfd_uint64_t (*bfd_h_getx64) (const void *); 6264 bfd_int64_t (*bfd_h_getx_signed_64) (const void *); 6265 void (*bfd_h_putx64) (bfd_uint64_t, void *); 6266 bfd_vma (*bfd_h_getx32) (const void *); 6267 bfd_signed_vma (*bfd_h_getx_signed_32) (const void *); 6268 void (*bfd_h_putx32) (bfd_vma, void *); 6269 bfd_vma (*bfd_h_getx16) (const void *); 6270 bfd_signed_vma (*bfd_h_getx_signed_16) (const void *); 6271 void (*bfd_h_putx16) (bfd_vma, void *); 6272 6273 /* Format dependent routines: these are vectors of entry points 6274 within the target vector structure, one for each format to check. */ 6275 6276 /* Check the format of a file being read. Return a `bfd_target *' or zero. */ 6277 const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *); 6278 6279 /* Set the format of a file being written. */ 6280 bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *); 6281 6282 /* Write cached information into a file being written, at `bfd_close'. */ 6283 bfd_boolean (*_bfd_write_contents[bfd_type_end]) (bfd *); 6284 The general target vector. These vectors are initialized using the 6285 BFD_JUMP_TABLE macros. 6286 6287 /* Generic entry points. */ 6288 #define BFD_JUMP_TABLE_GENERIC(NAME) \ 6289 NAME##_close_and_cleanup, \ 6290 NAME##_bfd_free_cached_info, \ 6291 NAME##_new_section_hook, \ 6292 NAME##_get_section_contents, \ 6293 NAME##_get_section_contents_in_window 6294 6295 /* Called when the BFD is being closed to do any necessary cleanup. */ 6296 bfd_boolean (*_close_and_cleanup) (bfd *); 6297 /* Ask the BFD to free all cached information. */ 6298 bfd_boolean (*_bfd_free_cached_info) (bfd *); 6299 /* Called when a new section is created. */ 6300 bfd_boolean (*_new_section_hook) (bfd *, sec_ptr); 6301 /* Read the contents of a section. */ 6302 bfd_boolean (*_bfd_get_section_contents) 6303 (bfd *, sec_ptr, void *, file_ptr, bfd_size_type); 6304 bfd_boolean (*_bfd_get_section_contents_in_window) 6305 (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type); 6306 6307 /* Entry points to copy private data. */ 6308 #define BFD_JUMP_TABLE_COPY(NAME) \ 6309 NAME##_bfd_copy_private_bfd_data, \ 6310 NAME##_bfd_merge_private_bfd_data, \ 6311 _bfd_generic_init_private_section_data, \ 6312 NAME##_bfd_copy_private_section_data, \ 6313 NAME##_bfd_copy_private_symbol_data, \ 6314 NAME##_bfd_copy_private_header_data, \ 6315 NAME##_bfd_set_private_flags, \ 6316 NAME##_bfd_print_private_bfd_data 6317 6318 /* Called to copy BFD general private data from one object file 6319 to another. */ 6320 bfd_boolean (*_bfd_copy_private_bfd_data) (bfd *, bfd *); 6321 /* Called to merge BFD general private data from one object file 6322 to a common output file when linking. */ 6323 bfd_boolean (*_bfd_merge_private_bfd_data) (bfd *, bfd *); 6324 /* Called to initialize BFD private section data from one object file 6325 to another. */ 6326 #define bfd_init_private_section_data(ibfd, isec, obfd, osec, link_info) \ 6327 BFD_SEND (obfd, _bfd_init_private_section_data, (ibfd, isec, obfd, osec, link_info)) 6328 bfd_boolean (*_bfd_init_private_section_data) 6329 (bfd *, sec_ptr, bfd *, sec_ptr, struct bfd_link_info *); 6330 /* Called to copy BFD private section data from one object file 6331 to another. */ 6332 bfd_boolean (*_bfd_copy_private_section_data) 6333 (bfd *, sec_ptr, bfd *, sec_ptr); 6334 /* Called to copy BFD private symbol data from one symbol 6335 to another. */ 6336 bfd_boolean (*_bfd_copy_private_symbol_data) 6337 (bfd *, asymbol *, bfd *, asymbol *); 6338 /* Called to copy BFD private header data from one object file 6339 to another. */ 6340 bfd_boolean (*_bfd_copy_private_header_data) 6341 (bfd *, bfd *); 6342 /* Called to set private backend flags. */ 6343 bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword); 6344 6345 /* Called to print private BFD data. */ 6346 bfd_boolean (*_bfd_print_private_bfd_data) (bfd *, void *); 6347 6348 /* Core file entry points. */ 6349 #define BFD_JUMP_TABLE_CORE(NAME) \ 6350 NAME##_core_file_failing_command, \ 6351 NAME##_core_file_failing_signal, \ 6352 NAME##_core_file_matches_executable_p, \ 6353 NAME##_core_file_pid 6354 6355 char * (*_core_file_failing_command) (bfd *); 6356 int (*_core_file_failing_signal) (bfd *); 6357 bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *); 6358 int (*_core_file_pid) (bfd *); 6359 6360 /* Archive entry points. */ 6361 #define BFD_JUMP_TABLE_ARCHIVE(NAME) \ 6362 NAME##_slurp_armap, \ 6363 NAME##_slurp_extended_name_table, \ 6364 NAME##_construct_extended_name_table, \ 6365 NAME##_truncate_arname, \ 6366 NAME##_write_armap, \ 6367 NAME##_read_ar_hdr, \ 6368 NAME##_write_ar_hdr, \ 6369 NAME##_openr_next_archived_file, \ 6370 NAME##_get_elt_at_index, \ 6371 NAME##_generic_stat_arch_elt, \ 6372 NAME##_update_armap_timestamp 6373 6374 bfd_boolean (*_bfd_slurp_armap) (bfd *); 6375 bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *); 6376 bfd_boolean (*_bfd_construct_extended_name_table) 6377 (bfd *, char **, bfd_size_type *, const char **); 6378 void (*_bfd_truncate_arname) (bfd *, const char *, char *); 6379 bfd_boolean (*write_armap) 6380 (bfd *, unsigned int, struct orl *, unsigned int, int); 6381 void * (*_bfd_read_ar_hdr_fn) (bfd *); 6382 bfd_boolean (*_bfd_write_ar_hdr_fn) (bfd *, bfd *); 6383 bfd * (*openr_next_archived_file) (bfd *, bfd *); 6384 #define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i)) 6385 bfd * (*_bfd_get_elt_at_index) (bfd *, symindex); 6386 int (*_bfd_stat_arch_elt) (bfd *, struct stat *); 6387 bfd_boolean (*_bfd_update_armap_timestamp) (bfd *); 6388 6389 /* Entry points used for symbols. */ 6390 #define BFD_JUMP_TABLE_SYMBOLS(NAME) \ 6391 NAME##_get_symtab_upper_bound, \ 6392 NAME##_canonicalize_symtab, \ 6393 NAME##_make_empty_symbol, \ 6394 NAME##_print_symbol, \ 6395 NAME##_get_symbol_info, \ 6396 NAME##_bfd_is_local_label_name, \ 6397 NAME##_bfd_is_target_special_symbol, \ 6398 NAME##_get_lineno, \ 6399 NAME##_find_nearest_line, \ 6400 _bfd_generic_find_line, \ 6401 NAME##_find_inliner_info, \ 6402 NAME##_bfd_make_debug_symbol, \ 6403 NAME##_read_minisymbols, \ 6404 NAME##_minisymbol_to_symbol 6405 6406 long (*_bfd_get_symtab_upper_bound) (bfd *); 6407 long (*_bfd_canonicalize_symtab) 6408 (bfd *, struct bfd_symbol **); 6409 struct bfd_symbol * 6410 (*_bfd_make_empty_symbol) (bfd *); 6411 void (*_bfd_print_symbol) 6412 (bfd *, void *, struct bfd_symbol *, bfd_print_symbol_type); 6413 #define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e)) 6414 void (*_bfd_get_symbol_info) 6415 (bfd *, struct bfd_symbol *, symbol_info *); 6416 #define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e)) 6417 bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *); 6418 bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *); 6419 alent * (*_get_lineno) (bfd *, struct bfd_symbol *); 6420 bfd_boolean (*_bfd_find_nearest_line) 6421 (bfd *, struct bfd_section *, struct bfd_symbol **, bfd_vma, 6422 const char **, const char **, unsigned int *); 6423 bfd_boolean (*_bfd_find_line) 6424 (bfd *, struct bfd_symbol **, struct bfd_symbol *, 6425 const char **, unsigned int *); 6426 bfd_boolean (*_bfd_find_inliner_info) 6427 (bfd *, const char **, const char **, unsigned int *); 6428 /* Back-door to allow format-aware applications to create debug symbols 6429 while using BFD for everything else. Currently used by the assembler 6430 when creating COFF files. */ 6431 asymbol * (*_bfd_make_debug_symbol) 6432 (bfd *, void *, unsigned long size); 6433 #define bfd_read_minisymbols(b, d, m, s) \ 6434 BFD_SEND (b, _read_minisymbols, (b, d, m, s)) 6435 long (*_read_minisymbols) 6436 (bfd *, bfd_boolean, void **, unsigned int *); 6437 #define bfd_minisymbol_to_symbol(b, d, m, f) \ 6438 BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f)) 6439 asymbol * (*_minisymbol_to_symbol) 6440 (bfd *, bfd_boolean, const void *, asymbol *); 6441 6442 /* Routines for relocs. */ 6443 #define BFD_JUMP_TABLE_RELOCS(NAME) \ 6444 NAME##_get_reloc_upper_bound, \ 6445 NAME##_canonicalize_reloc, \ 6446 NAME##_bfd_reloc_type_lookup, \ 6447 NAME##_bfd_reloc_name_lookup 6448 6449 long (*_get_reloc_upper_bound) (bfd *, sec_ptr); 6450 long (*_bfd_canonicalize_reloc) 6451 (bfd *, sec_ptr, arelent **, struct bfd_symbol **); 6452 /* See documentation on reloc types. */ 6453 reloc_howto_type * 6454 (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type); 6455 reloc_howto_type * 6456 (*reloc_name_lookup) (bfd *, const char *); 6457 6458 6459 /* Routines used when writing an object file. */ 6460 #define BFD_JUMP_TABLE_WRITE(NAME) \ 6461 NAME##_set_arch_mach, \ 6462 NAME##_set_section_contents 6463 6464 bfd_boolean (*_bfd_set_arch_mach) 6465 (bfd *, enum bfd_architecture, unsigned long); 6466 bfd_boolean (*_bfd_set_section_contents) 6467 (bfd *, sec_ptr, const void *, file_ptr, bfd_size_type); 6468 6469 /* Routines used by the linker. */ 6470 #define BFD_JUMP_TABLE_LINK(NAME) \ 6471 NAME##_sizeof_headers, \ 6472 NAME##_bfd_get_relocated_section_contents, \ 6473 NAME##_bfd_relax_section, \ 6474 NAME##_bfd_link_hash_table_create, \ 6475 NAME##_bfd_link_hash_table_free, \ 6476 NAME##_bfd_link_add_symbols, \ 6477 NAME##_bfd_link_just_syms, \ 6478 NAME##_bfd_copy_link_hash_symbol_type, \ 6479 NAME##_bfd_final_link, \ 6480 NAME##_bfd_link_split_section, \ 6481 NAME##_bfd_gc_sections, \ 6482 NAME##_bfd_lookup_section_flags, \ 6483 NAME##_bfd_merge_sections, \ 6484 NAME##_bfd_is_group_section, \ 6485 NAME##_bfd_discard_group, \ 6486 NAME##_section_already_linked, \ 6487 NAME##_bfd_define_common_symbol 6488 6489 int (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *); 6490 bfd_byte * (*_bfd_get_relocated_section_contents) 6491 (bfd *, struct bfd_link_info *, struct bfd_link_order *, 6492 bfd_byte *, bfd_boolean, struct bfd_symbol **); 6493 6494 bfd_boolean (*_bfd_relax_section) 6495 (bfd *, struct bfd_section *, struct bfd_link_info *, bfd_boolean *); 6496 6497 /* Create a hash table for the linker. Different backends store 6498 different information in this table. */ 6499 struct bfd_link_hash_table * 6500 (*_bfd_link_hash_table_create) (bfd *); 6501 6502 /* Release the memory associated with the linker hash table. */ 6503 void (*_bfd_link_hash_table_free) (struct bfd_link_hash_table *); 6504 6505 /* Add symbols from this object file into the hash table. */ 6506 bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *); 6507 6508 /* Indicate that we are only retrieving symbol values from this section. */ 6509 void (*_bfd_link_just_syms) (asection *, struct bfd_link_info *); 6510 6511 /* Copy the symbol type of a linker hash table entry. */ 6512 #define bfd_copy_link_hash_symbol_type(b, t, f) \ 6513 BFD_SEND (b, _bfd_copy_link_hash_symbol_type, (b, t, f)) 6514 void (*_bfd_copy_link_hash_symbol_type) 6515 (bfd *, struct bfd_link_hash_entry *, struct bfd_link_hash_entry *); 6516 6517 /* Do a link based on the link_order structures attached to each 6518 section of the BFD. */ 6519 bfd_boolean (*_bfd_final_link) (bfd *, struct bfd_link_info *); 6520 6521 /* Should this section be split up into smaller pieces during linking. */ 6522 bfd_boolean (*_bfd_link_split_section) (bfd *, struct bfd_section *); 6523 6524 /* Remove sections that are not referenced from the output. */ 6525 bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *); 6526 6527 /* Sets the bitmask of allowed and disallowed section flags. */ 6528 void (*_bfd_lookup_section_flags) (struct bfd_link_info *, 6529 struct flag_info *); 6530 6531 /* Attempt to merge SEC_MERGE sections. */ 6532 bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *); 6533 6534 /* Is this section a member of a group? */ 6535 bfd_boolean (*_bfd_is_group_section) (bfd *, const struct bfd_section *); 6536 6537 /* Discard members of a group. */ 6538 bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *); 6539 6540 /* Check if SEC has been already linked during a reloceatable or 6541 final link. */ 6542 bfd_boolean (*_section_already_linked) (bfd *, asection *, 6543 struct bfd_link_info *); 6544 6545 /* Define a common symbol. */ 6546 bfd_boolean (*_bfd_define_common_symbol) (bfd *, struct bfd_link_info *, 6547 struct bfd_link_hash_entry *); 6548 6549 /* Routines to handle dynamic symbols and relocs. */ 6550 #define BFD_JUMP_TABLE_DYNAMIC(NAME) \ 6551 NAME##_get_dynamic_symtab_upper_bound, \ 6552 NAME##_canonicalize_dynamic_symtab, \ 6553 NAME##_get_synthetic_symtab, \ 6554 NAME##_get_dynamic_reloc_upper_bound, \ 6555 NAME##_canonicalize_dynamic_reloc 6556 6557 /* Get the amount of memory required to hold the dynamic symbols. */ 6558 long (*_bfd_get_dynamic_symtab_upper_bound) (bfd *); 6559 /* Read in the dynamic symbols. */ 6560 long (*_bfd_canonicalize_dynamic_symtab) 6561 (bfd *, struct bfd_symbol **); 6562 /* Create synthetized symbols. */ 6563 long (*_bfd_get_synthetic_symtab) 6564 (bfd *, long, struct bfd_symbol **, long, struct bfd_symbol **, 6565 struct bfd_symbol **); 6566 /* Get the amount of memory required to hold the dynamic relocs. */ 6567 long (*_bfd_get_dynamic_reloc_upper_bound) (bfd *); 6568 /* Read in the dynamic relocs. */ 6569 long (*_bfd_canonicalize_dynamic_reloc) 6570 (bfd *, arelent **, struct bfd_symbol **); 6571 A pointer to an alternative bfd_target in case the current one is not 6572 satisfactory. This can happen when the target cpu supports both big 6573 and little endian code, and target chosen by the linker has the wrong 6574 endianness. The function open_output() in ld/ldlang.c uses this field 6575 to find an alternative output format that is suitable. 6576 /* Opposite endian version of this target. */ 6577 const struct bfd_target * alternative_target; 6578 6579 /* Data for use by back-end routines, which isn't 6580 generic enough to belong in this structure. */ 6581 const void *backend_data; 6582 6583 } bfd_target; 6584 6585 2.12.1.1 `bfd_set_default_target' 6586 ................................. 6587 6588 *Synopsis* 6589 bfd_boolean bfd_set_default_target (const char *name); 6590 *Description* 6591 Set the default target vector to use when recognizing a BFD. This 6592 takes the name of the target, which may be a BFD target name or a 6593 configuration triplet. 6594 6595 2.12.1.2 `bfd_find_target' 6596 .......................... 6597 6598 *Synopsis* 6599 const bfd_target *bfd_find_target (const char *target_name, bfd *abfd); 6600 *Description* 6601 Return a pointer to the transfer vector for the object target named 6602 TARGET_NAME. If TARGET_NAME is `NULL', choose the one in the 6603 environment variable `GNUTARGET'; if that is null or not defined, then 6604 choose the first entry in the target list. Passing in the string 6605 "default" or setting the environment variable to "default" will cause 6606 the first entry in the target list to be returned, and 6607 "target_defaulted" will be set in the BFD if ABFD isn't `NULL'. This 6608 causes `bfd_check_format' to loop over all the targets to find the one 6609 that matches the file being read. 6610 6611 2.12.1.3 `bfd_get_target_info' 6612 .............................. 6613 6614 *Synopsis* 6615 const bfd_target *bfd_get_target_info (const char *target_name, 6616 bfd *abfd, 6617 bfd_boolean *is_bigendian, 6618 int *underscoring, 6619 const char **def_target_arch); 6620 *Description* 6621 Return a pointer to the transfer vector for the object target named 6622 TARGET_NAME. If TARGET_NAME is `NULL', choose the one in the 6623 environment variable `GNUTARGET'; if that is null or not defined, then 6624 choose the first entry in the target list. Passing in the string 6625 "default" or setting the environment variable to "default" will cause 6626 the first entry in the target list to be returned, and 6627 "target_defaulted" will be set in the BFD if ABFD isn't `NULL'. This 6628 causes `bfd_check_format' to loop over all the targets to find the one 6629 that matches the file being read. If IS_BIGENDIAN is not `NULL', then 6630 set this value to target's endian mode. True for big-endian, FALSE for 6631 little-endian or for invalid target. If UNDERSCORING is not `NULL', 6632 then set this value to target's underscoring mode. Zero for 6633 none-underscoring, -1 for invalid target, else the value of target 6634 vector's symbol underscoring. If DEF_TARGET_ARCH is not `NULL', then 6635 set it to the architecture string specified by the target_name. 6636 6637 2.12.1.4 `bfd_target_list' 6638 .......................... 6639 6640 *Synopsis* 6641 const char ** bfd_target_list (void); 6642 *Description* 6643 Return a freshly malloced NULL-terminated vector of the names of all 6644 the valid BFD targets. Do not modify the names. 6645 6646 2.12.1.5 `bfd_seach_for_target' 6647 ............................... 6648 6649 *Synopsis* 6650 const bfd_target *bfd_search_for_target 6651 (int (*search_func) (const bfd_target *, void *), 6652 void *); 6653 *Description* 6654 Return a pointer to the first transfer vector in the list of transfer 6655 vectors maintained by BFD that produces a non-zero result when passed 6656 to the function SEARCH_FUNC. The parameter DATA is passed, unexamined, 6657 to the search function. 6658 6659 6660 File: bfd.info, Node: Architectures, Next: Opening and Closing, Prev: Targets, Up: BFD front end 6661 6662 2.13 Architectures 6663 ================== 6664 6665 BFD keeps one atom in a BFD describing the architecture of the data 6666 attached to the BFD: a pointer to a `bfd_arch_info_type'. 6667 6668 Pointers to structures can be requested independently of a BFD so 6669 that an architecture's information can be interrogated without access 6670 to an open BFD. 6671 6672 The architecture information is provided by each architecture 6673 package. The set of default architectures is selected by the macro 6674 `SELECT_ARCHITECTURES'. This is normally set up in the 6675 `config/TARGET.mt' file of your choice. If the name is not defined, 6676 then all the architectures supported are included. 6677 6678 When BFD starts up, all the architectures are called with an 6679 initialize method. It is up to the architecture back end to insert as 6680 many items into the list of architectures as it wants to; generally 6681 this would be one for each machine and one for the default case (an 6682 item with a machine field of 0). 6683 6684 BFD's idea of an architecture is implemented in `archures.c'. 6685 6686 2.13.1 bfd_architecture 6687 ----------------------- 6688 6689 *Description* 6690 This enum gives the object file's CPU architecture, in a global 6691 sense--i.e., what processor family does it belong to? Another field 6692 indicates which processor within the family is in use. The machine 6693 gives a number which distinguishes different versions of the 6694 architecture, containing, for example, 2 and 3 for Intel i960 KA and 6695 i960 KB, and 68020 and 68030 for Motorola 68020 and 68030. 6696 enum bfd_architecture 6697 { 6698 bfd_arch_unknown, /* File arch not known. */ 6699 bfd_arch_obscure, /* Arch known, not one of these. */ 6700 bfd_arch_m68k, /* Motorola 68xxx */ 6701 #define bfd_mach_m68000 1 6702 #define bfd_mach_m68008 2 6703 #define bfd_mach_m68010 3 6704 #define bfd_mach_m68020 4 6705 #define bfd_mach_m68030 5 6706 #define bfd_mach_m68040 6 6707 #define bfd_mach_m68060 7 6708 #define bfd_mach_cpu32 8 6709 #define bfd_mach_fido 9 6710 #define bfd_mach_mcf_isa_a_nodiv 10 6711 #define bfd_mach_mcf_isa_a 11 6712 #define bfd_mach_mcf_isa_a_mac 12 6713 #define bfd_mach_mcf_isa_a_emac 13 6714 #define bfd_mach_mcf_isa_aplus 14 6715 #define bfd_mach_mcf_isa_aplus_mac 15 6716 #define bfd_mach_mcf_isa_aplus_emac 16 6717 #define bfd_mach_mcf_isa_b_nousp 17 6718 #define bfd_mach_mcf_isa_b_nousp_mac 18 6719 #define bfd_mach_mcf_isa_b_nousp_emac 19 6720 #define bfd_mach_mcf_isa_b 20 6721 #define bfd_mach_mcf_isa_b_mac 21 6722 #define bfd_mach_mcf_isa_b_emac 22 6723 #define bfd_mach_mcf_isa_b_float 23 6724 #define bfd_mach_mcf_isa_b_float_mac 24 6725 #define bfd_mach_mcf_isa_b_float_emac 25 6726 #define bfd_mach_mcf_isa_c 26 6727 #define bfd_mach_mcf_isa_c_mac 27 6728 #define bfd_mach_mcf_isa_c_emac 28 6729 #define bfd_mach_mcf_isa_c_nodiv 29 6730 #define bfd_mach_mcf_isa_c_nodiv_mac 30 6731 #define bfd_mach_mcf_isa_c_nodiv_emac 31 6732 bfd_arch_vax, /* DEC Vax */ 6733 bfd_arch_i960, /* Intel 960 */ 6734 /* The order of the following is important. 6735 lower number indicates a machine type that 6736 only accepts a subset of the instructions 6737 available to machines with higher numbers. 6738 The exception is the "ca", which is 6739 incompatible with all other machines except 6740 "core". */ 6741 6742 #define bfd_mach_i960_core 1 6743 #define bfd_mach_i960_ka_sa 2 6744 #define bfd_mach_i960_kb_sb 3 6745 #define bfd_mach_i960_mc 4 6746 #define bfd_mach_i960_xa 5 6747 #define bfd_mach_i960_ca 6 6748 #define bfd_mach_i960_jx 7 6749 #define bfd_mach_i960_hx 8 6750 6751 bfd_arch_or32, /* OpenRISC 32 */ 6752 6753 bfd_arch_sparc, /* SPARC */ 6754 #define bfd_mach_sparc 1 6755 /* The difference between v8plus and v9 is that v9 is a true 64 bit env. */ 6756 #define bfd_mach_sparc_sparclet 2 6757 #define bfd_mach_sparc_sparclite 3 6758 #define bfd_mach_sparc_v8plus 4 6759 #define bfd_mach_sparc_v8plusa 5 /* with ultrasparc add'ns. */ 6760 #define bfd_mach_sparc_sparclite_le 6 6761 #define bfd_mach_sparc_v9 7 6762 #define bfd_mach_sparc_v9a 8 /* with ultrasparc add'ns. */ 6763 #define bfd_mach_sparc_v8plusb 9 /* with cheetah add'ns. */ 6764 #define bfd_mach_sparc_v9b 10 /* with cheetah add'ns. */ 6765 /* Nonzero if MACH has the v9 instruction set. */ 6766 #define bfd_mach_sparc_v9_p(mach) \ 6767 ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9b \ 6768 && (mach) != bfd_mach_sparc_sparclite_le) 6769 /* Nonzero if MACH is a 64 bit sparc architecture. */ 6770 #define bfd_mach_sparc_64bit_p(mach) \ 6771 ((mach) >= bfd_mach_sparc_v9 && (mach) != bfd_mach_sparc_v8plusb) 6772 bfd_arch_spu, /* PowerPC SPU */ 6773 #define bfd_mach_spu 256 6774 bfd_arch_mips, /* MIPS Rxxxx */ 6775 #define bfd_mach_mips3000 3000 6776 #define bfd_mach_mips3900 3900 6777 #define bfd_mach_mips4000 4000 6778 #define bfd_mach_mips4010 4010 6779 #define bfd_mach_mips4100 4100 6780 #define bfd_mach_mips4111 4111 6781 #define bfd_mach_mips4120 4120 6782 #define bfd_mach_mips4300 4300 6783 #define bfd_mach_mips4400 4400 6784 #define bfd_mach_mips4600 4600 6785 #define bfd_mach_mips4650 4650 6786 #define bfd_mach_mips5000 5000 6787 #define bfd_mach_mips5400 5400 6788 #define bfd_mach_mips5500 5500 6789 #define bfd_mach_mips6000 6000 6790 #define bfd_mach_mips7000 7000 6791 #define bfd_mach_mips8000 8000 6792 #define bfd_mach_mips9000 9000 6793 #define bfd_mach_mips10000 10000 6794 #define bfd_mach_mips12000 12000 6795 #define bfd_mach_mips14000 14000 6796 #define bfd_mach_mips16000 16000 6797 #define bfd_mach_mips16 16 6798 #define bfd_mach_mips5 5 6799 #define bfd_mach_mips_loongson_2e 3001 6800 #define bfd_mach_mips_loongson_2f 3002 6801 #define bfd_mach_mips_loongson_3a 3003 6802 #define bfd_mach_mips_sb1 12310201 /* octal 'SB', 01 */ 6803 #define bfd_mach_mips_octeon 6501 6804 #define bfd_mach_mips_xlr 887682 /* decimal 'XLR' */ 6805 #define bfd_mach_mipsisa32 32 6806 #define bfd_mach_mipsisa32r2 33 6807 #define bfd_mach_mipsisa64 64 6808 #define bfd_mach_mipsisa64r2 65 6809 #define bfd_mach_mips_micromips 96 6810 bfd_arch_i386, /* Intel 386 */ 6811 #define bfd_mach_i386_intel_syntax (1 << 0) 6812 #define bfd_mach_i386_i8086 (1 << 1) 6813 #define bfd_mach_i386_i386 (1 << 2) 6814 #define bfd_mach_x86_64 (1 << 3) 6815 #define bfd_mach_x64_32 (1 << 4) 6816 #define bfd_mach_i386_i386_intel_syntax (bfd_mach_i386_i386 | bfd_mach_i386_intel_syntax) 6817 #define bfd_mach_x86_64_intel_syntax (bfd_mach_x86_64 | bfd_mach_i386_intel_syntax) 6818 #define bfd_mach_x64_32_intel_syntax (bfd_mach_x64_32 | bfd_mach_i386_intel_syntax) 6819 bfd_arch_l1om, /* Intel L1OM */ 6820 #define bfd_mach_l1om (1 << 5) 6821 #define bfd_mach_l1om_intel_syntax (bfd_mach_l1om | bfd_mach_i386_intel_syntax) 6822 bfd_arch_k1om, /* Intel K1OM */ 6823 #define bfd_mach_k1om (1 << 6) 6824 #define bfd_mach_k1om_intel_syntax (bfd_mach_k1om | bfd_mach_i386_intel_syntax) 6825 bfd_arch_we32k, /* AT&T WE32xxx */ 6826 bfd_arch_tahoe, /* CCI/Harris Tahoe */ 6827 bfd_arch_i860, /* Intel 860 */ 6828 bfd_arch_i370, /* IBM 360/370 Mainframes */ 6829 bfd_arch_romp, /* IBM ROMP PC/RT */ 6830 bfd_arch_convex, /* Convex */ 6831 bfd_arch_m88k, /* Motorola 88xxx */ 6832 bfd_arch_m98k, /* Motorola 98xxx */ 6833 bfd_arch_pyramid, /* Pyramid Technology */ 6834 bfd_arch_h8300, /* Renesas H8/300 (formerly Hitachi H8/300) */ 6835 #define bfd_mach_h8300 1 6836 #define bfd_mach_h8300h 2 6837 #define bfd_mach_h8300s 3 6838 #define bfd_mach_h8300hn 4 6839 #define bfd_mach_h8300sn 5 6840 #define bfd_mach_h8300sx 6 6841 #define bfd_mach_h8300sxn 7 6842 bfd_arch_pdp11, /* DEC PDP-11 */ 6843 bfd_arch_plugin, 6844 bfd_arch_powerpc, /* PowerPC */ 6845 #define bfd_mach_ppc 32 6846 #define bfd_mach_ppc64 64 6847 #define bfd_mach_ppc_403 403 6848 #define bfd_mach_ppc_403gc 4030 6849 #define bfd_mach_ppc_405 405 6850 #define bfd_mach_ppc_505 505 6851 #define bfd_mach_ppc_601 601 6852 #define bfd_mach_ppc_602 602 6853 #define bfd_mach_ppc_603 603 6854 #define bfd_mach_ppc_ec603e 6031 6855 #define bfd_mach_ppc_604 604 6856 #define bfd_mach_ppc_620 620 6857 #define bfd_mach_ppc_630 630 6858 #define bfd_mach_ppc_750 750 6859 #define bfd_mach_ppc_860 860 6860 #define bfd_mach_ppc_a35 35 6861 #define bfd_mach_ppc_rs64ii 642 6862 #define bfd_mach_ppc_rs64iii 643 6863 #define bfd_mach_ppc_7400 7400 6864 #define bfd_mach_ppc_e500 500 6865 #define bfd_mach_ppc_e500mc 5001 6866 #define bfd_mach_ppc_e500mc64 5005 6867 #define bfd_mach_ppc_titan 83 6868 bfd_arch_rs6000, /* IBM RS/6000 */ 6869 #define bfd_mach_rs6k 6000 6870 #define bfd_mach_rs6k_rs1 6001 6871 #define bfd_mach_rs6k_rsc 6003 6872 #define bfd_mach_rs6k_rs2 6002 6873 bfd_arch_hppa, /* HP PA RISC */ 6874 #define bfd_mach_hppa10 10 6875 #define bfd_mach_hppa11 11 6876 #define bfd_mach_hppa20 20 6877 #define bfd_mach_hppa20w 25 6878 bfd_arch_d10v, /* Mitsubishi D10V */ 6879 #define bfd_mach_d10v 1 6880 #define bfd_mach_d10v_ts2 2 6881 #define bfd_mach_d10v_ts3 3 6882 bfd_arch_d30v, /* Mitsubishi D30V */ 6883 bfd_arch_dlx, /* DLX */ 6884 bfd_arch_m68hc11, /* Motorola 68HC11 */ 6885 bfd_arch_m68hc12, /* Motorola 68HC12 */ 6886 #define bfd_mach_m6812_default 0 6887 #define bfd_mach_m6812 1 6888 #define bfd_mach_m6812s 2 6889 bfd_arch_z8k, /* Zilog Z8000 */ 6890 #define bfd_mach_z8001 1 6891 #define bfd_mach_z8002 2 6892 bfd_arch_h8500, /* Renesas H8/500 (formerly Hitachi H8/500) */ 6893 bfd_arch_sh, /* Renesas / SuperH SH (formerly Hitachi SH) */ 6894 #define bfd_mach_sh 1 6895 #define bfd_mach_sh2 0x20 6896 #define bfd_mach_sh_dsp 0x2d 6897 #define bfd_mach_sh2a 0x2a 6898 #define bfd_mach_sh2a_nofpu 0x2b 6899 #define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1 6900 #define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2 6901 #define bfd_mach_sh2a_or_sh4 0x2a3 6902 #define bfd_mach_sh2a_or_sh3e 0x2a4 6903 #define bfd_mach_sh2e 0x2e 6904 #define bfd_mach_sh3 0x30 6905 #define bfd_mach_sh3_nommu 0x31 6906 #define bfd_mach_sh3_dsp 0x3d 6907 #define bfd_mach_sh3e 0x3e 6908 #define bfd_mach_sh4 0x40 6909 #define bfd_mach_sh4_nofpu 0x41 6910 #define bfd_mach_sh4_nommu_nofpu 0x42 6911 #define bfd_mach_sh4a 0x4a 6912 #define bfd_mach_sh4a_nofpu 0x4b 6913 #define bfd_mach_sh4al_dsp 0x4d 6914 #define bfd_mach_sh5 0x50 6915 bfd_arch_alpha, /* Dec Alpha */ 6916 #define bfd_mach_alpha_ev4 0x10 6917 #define bfd_mach_alpha_ev5 0x20 6918 #define bfd_mach_alpha_ev6 0x30 6919 bfd_arch_arm, /* Advanced Risc Machines ARM. */ 6920 #define bfd_mach_arm_unknown 0 6921 #define bfd_mach_arm_2 1 6922 #define bfd_mach_arm_2a 2 6923 #define bfd_mach_arm_3 3 6924 #define bfd_mach_arm_3M 4 6925 #define bfd_mach_arm_4 5 6926 #define bfd_mach_arm_4T 6 6927 #define bfd_mach_arm_5 7 6928 #define bfd_mach_arm_5T 8 6929 #define bfd_mach_arm_5TE 9 6930 #define bfd_mach_arm_XScale 10 6931 #define bfd_mach_arm_ep9312 11 6932 #define bfd_mach_arm_iWMMXt 12 6933 #define bfd_mach_arm_iWMMXt2 13 6934 bfd_arch_ns32k, /* National Semiconductors ns32000 */ 6935 bfd_arch_w65, /* WDC 65816 */ 6936 bfd_arch_tic30, /* Texas Instruments TMS320C30 */ 6937 bfd_arch_tic4x, /* Texas Instruments TMS320C3X/4X */ 6938 #define bfd_mach_tic3x 30 6939 #define bfd_mach_tic4x 40 6940 bfd_arch_tic54x, /* Texas Instruments TMS320C54X */ 6941 bfd_arch_tic6x, /* Texas Instruments TMS320C6X */ 6942 bfd_arch_tic80, /* TI TMS320c80 (MVP) */ 6943 bfd_arch_v850, /* NEC V850 */ 6944 #define bfd_mach_v850 1 6945 #define bfd_mach_v850e 'E' 6946 #define bfd_mach_v850e1 '1' 6947 #define bfd_mach_v850e2 0x4532 6948 #define bfd_mach_v850e2v3 0x45325633 6949 bfd_arch_arc, /* ARC Cores */ 6950 #define bfd_mach_arc_5 5 6951 #define bfd_mach_arc_6 6 6952 #define bfd_mach_arc_7 7 6953 #define bfd_mach_arc_8 8 6954 bfd_arch_m32c, /* Renesas M16C/M32C. */ 6955 #define bfd_mach_m16c 0x75 6956 #define bfd_mach_m32c 0x78 6957 bfd_arch_m32r, /* Renesas M32R (formerly Mitsubishi M32R/D) */ 6958 #define bfd_mach_m32r 1 /* For backwards compatibility. */ 6959 #define bfd_mach_m32rx 'x' 6960 #define bfd_mach_m32r2 '2' 6961 bfd_arch_mn10200, /* Matsushita MN10200 */ 6962 bfd_arch_mn10300, /* Matsushita MN10300 */ 6963 #define bfd_mach_mn10300 300 6964 #define bfd_mach_am33 330 6965 #define bfd_mach_am33_2 332 6966 bfd_arch_fr30, 6967 #define bfd_mach_fr30 0x46523330 6968 bfd_arch_frv, 6969 #define bfd_mach_frv 1 6970 #define bfd_mach_frvsimple 2 6971 #define bfd_mach_fr300 300 6972 #define bfd_mach_fr400 400 6973 #define bfd_mach_fr450 450 6974 #define bfd_mach_frvtomcat 499 /* fr500 prototype */ 6975 #define bfd_mach_fr500 500 6976 #define bfd_mach_fr550 550 6977 bfd_arch_moxie, /* The moxie processor */ 6978 #define bfd_mach_moxie 1 6979 bfd_arch_mcore, 6980 bfd_arch_mep, 6981 #define bfd_mach_mep 1 6982 #define bfd_mach_mep_h1 0x6831 6983 #define bfd_mach_mep_c5 0x6335 6984 bfd_arch_ia64, /* HP/Intel ia64 */ 6985 #define bfd_mach_ia64_elf64 64 6986 #define bfd_mach_ia64_elf32 32 6987 bfd_arch_ip2k, /* Ubicom IP2K microcontrollers. */ 6988 #define bfd_mach_ip2022 1 6989 #define bfd_mach_ip2022ext 2 6990 bfd_arch_iq2000, /* Vitesse IQ2000. */ 6991 #define bfd_mach_iq2000 1 6992 #define bfd_mach_iq10 2 6993 bfd_arch_mt, 6994 #define bfd_mach_ms1 1 6995 #define bfd_mach_mrisc2 2 6996 #define bfd_mach_ms2 3 6997 bfd_arch_pj, 6998 bfd_arch_avr, /* Atmel AVR microcontrollers. */ 6999 #define bfd_mach_avr1 1 7000 #define bfd_mach_avr2 2 7001 #define bfd_mach_avr25 25 7002 #define bfd_mach_avr3 3 7003 #define bfd_mach_avr31 31 7004 #define bfd_mach_avr35 35 7005 #define bfd_mach_avr4 4 7006 #define bfd_mach_avr5 5 7007 #define bfd_mach_avr51 51 7008 #define bfd_mach_avr6 6 7009 #define bfd_mach_avrxmega1 101 7010 #define bfd_mach_avrxmega2 102 7011 #define bfd_mach_avrxmega3 103 7012 #define bfd_mach_avrxmega4 104 7013 #define bfd_mach_avrxmega5 105 7014 #define bfd_mach_avrxmega6 106 7015 #define bfd_mach_avrxmega7 107 7016 bfd_arch_bfin, /* ADI Blackfin */ 7017 #define bfd_mach_bfin 1 7018 bfd_arch_cr16, /* National Semiconductor CompactRISC (ie CR16). */ 7019 #define bfd_mach_cr16 1 7020 bfd_arch_cr16c, /* National Semiconductor CompactRISC. */ 7021 #define bfd_mach_cr16c 1 7022 bfd_arch_crx, /* National Semiconductor CRX. */ 7023 #define bfd_mach_crx 1 7024 bfd_arch_cris, /* Axis CRIS */ 7025 #define bfd_mach_cris_v0_v10 255 7026 #define bfd_mach_cris_v32 32 7027 #define bfd_mach_cris_v10_v32 1032 7028 bfd_arch_rx, /* Renesas RX. */ 7029 #define bfd_mach_rx 0x75 7030 bfd_arch_s390, /* IBM s390 */ 7031 #define bfd_mach_s390_31 31 7032 #define bfd_mach_s390_64 64 7033 bfd_arch_score, /* Sunplus score */ 7034 #define bfd_mach_score3 3 7035 #define bfd_mach_score7 7 7036 bfd_arch_openrisc, /* OpenRISC */ 7037 bfd_arch_mmix, /* Donald Knuth's educational processor. */ 7038 bfd_arch_xstormy16, 7039 #define bfd_mach_xstormy16 1 7040 bfd_arch_msp430, /* Texas Instruments MSP430 architecture. */ 7041 #define bfd_mach_msp11 11 7042 #define bfd_mach_msp110 110 7043 #define bfd_mach_msp12 12 7044 #define bfd_mach_msp13 13 7045 #define bfd_mach_msp14 14 7046 #define bfd_mach_msp15 15 7047 #define bfd_mach_msp16 16 7048 #define bfd_mach_msp21 21 7049 #define bfd_mach_msp31 31 7050 #define bfd_mach_msp32 32 7051 #define bfd_mach_msp33 33 7052 #define bfd_mach_msp41 41 7053 #define bfd_mach_msp42 42 7054 #define bfd_mach_msp43 43 7055 #define bfd_mach_msp44 44 7056 bfd_arch_xc16x, /* Infineon's XC16X Series. */ 7057 #define bfd_mach_xc16x 1 7058 #define bfd_mach_xc16xl 2 7059 #define bfd_mach_xc16xs 3 7060 bfd_arch_xtensa, /* Tensilica's Xtensa cores. */ 7061 #define bfd_mach_xtensa 1 7062 bfd_arch_z80, 7063 #define bfd_mach_z80strict 1 /* No undocumented opcodes. */ 7064 #define bfd_mach_z80 3 /* With ixl, ixh, iyl, and iyh. */ 7065 #define bfd_mach_z80full 7 /* All undocumented instructions. */ 7066 #define bfd_mach_r800 11 /* R800: successor with multiplication. */ 7067 bfd_arch_lm32, /* Lattice Mico32 */ 7068 #define bfd_mach_lm32 1 7069 bfd_arch_microblaze,/* Xilinx MicroBlaze. */ 7070 bfd_arch_tilepro, /* Tilera TILEPro */ 7071 bfd_arch_tilegx, /* Tilera TILE-Gx */ 7072 #define bfd_mach_tilepro 1 7073 #define bfd_mach_tilegx 1 7074 bfd_arch_last 7075 }; 7076 7077 2.13.2 bfd_arch_info 7078 -------------------- 7079 7080 *Description* 7081 This structure contains information on architectures for use within BFD. 7082 7083 typedef struct bfd_arch_info 7084 { 7085 int bits_per_word; 7086 int bits_per_address; 7087 int bits_per_byte; 7088 enum bfd_architecture arch; 7089 unsigned long mach; 7090 const char *arch_name; 7091 const char *printable_name; 7092 unsigned int section_align_power; 7093 /* TRUE if this is the default machine for the architecture. 7094 The default arch should be the first entry for an arch so that 7095 all the entries for that arch can be accessed via `next'. */ 7096 bfd_boolean the_default; 7097 const struct bfd_arch_info * (*compatible) 7098 (const struct bfd_arch_info *a, const struct bfd_arch_info *b); 7099 7100 bfd_boolean (*scan) (const struct bfd_arch_info *, const char *); 7101 7102 const struct bfd_arch_info *next; 7103 } 7104 bfd_arch_info_type; 7105 7106 2.13.2.1 `bfd_printable_name' 7107 ............................. 7108 7109 *Synopsis* 7110 const char *bfd_printable_name (bfd *abfd); 7111 *Description* 7112 Return a printable string representing the architecture and machine 7113 from the pointer to the architecture info structure. 7114 7115 2.13.2.2 `bfd_scan_arch' 7116 ........................ 7117 7118 *Synopsis* 7119 const bfd_arch_info_type *bfd_scan_arch (const char *string); 7120 *Description* 7121 Figure out if BFD supports any cpu which could be described with the 7122 name STRING. Return a pointer to an `arch_info' structure if a machine 7123 is found, otherwise NULL. 7124 7125 2.13.2.3 `bfd_arch_list' 7126 ........................ 7127 7128 *Synopsis* 7129 const char **bfd_arch_list (void); 7130 *Description* 7131 Return a freshly malloced NULL-terminated vector of the names of all 7132 the valid BFD architectures. Do not modify the names. 7133 7134 2.13.2.4 `bfd_arch_get_compatible' 7135 .................................. 7136 7137 *Synopsis* 7138 const bfd_arch_info_type *bfd_arch_get_compatible 7139 (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns); 7140 *Description* 7141 Determine whether two BFDs' architectures and machine types are 7142 compatible. Calculates the lowest common denominator between the two 7143 architectures and machine types implied by the BFDs and returns a 7144 pointer to an `arch_info' structure describing the compatible machine. 7145 7146 2.13.2.5 `bfd_default_arch_struct' 7147 .................................. 7148 7149 *Description* 7150 The `bfd_default_arch_struct' is an item of `bfd_arch_info_type' which 7151 has been initialized to a fairly generic state. A BFD starts life by 7152 pointing to this structure, until the correct back end has determined 7153 the real architecture of the file. 7154 extern const bfd_arch_info_type bfd_default_arch_struct; 7155 7156 2.13.2.6 `bfd_set_arch_info' 7157 ............................ 7158 7159 *Synopsis* 7160 void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg); 7161 *Description* 7162 Set the architecture info of ABFD to ARG. 7163 7164 2.13.2.7 `bfd_default_set_arch_mach' 7165 .................................... 7166 7167 *Synopsis* 7168 bfd_boolean bfd_default_set_arch_mach 7169 (bfd *abfd, enum bfd_architecture arch, unsigned long mach); 7170 *Description* 7171 Set the architecture and machine type in BFD ABFD to ARCH and MACH. 7172 Find the correct pointer to a structure and insert it into the 7173 `arch_info' pointer. 7174 7175 2.13.2.8 `bfd_get_arch' 7176 ....................... 7177 7178 *Synopsis* 7179 enum bfd_architecture bfd_get_arch (bfd *abfd); 7180 *Description* 7181 Return the enumerated type which describes the BFD ABFD's architecture. 7182 7183 2.13.2.9 `bfd_get_mach' 7184 ....................... 7185 7186 *Synopsis* 7187 unsigned long bfd_get_mach (bfd *abfd); 7188 *Description* 7189 Return the long type which describes the BFD ABFD's machine. 7190 7191 2.13.2.10 `bfd_arch_bits_per_byte' 7192 .................................. 7193 7194 *Synopsis* 7195 unsigned int bfd_arch_bits_per_byte (bfd *abfd); 7196 *Description* 7197 Return the number of bits in one of the BFD ABFD's architecture's bytes. 7198 7199 2.13.2.11 `bfd_arch_bits_per_address' 7200 ..................................... 7201 7202 *Synopsis* 7203 unsigned int bfd_arch_bits_per_address (bfd *abfd); 7204 *Description* 7205 Return the number of bits in one of the BFD ABFD's architecture's 7206 addresses. 7207 7208 2.13.2.12 `bfd_default_compatible' 7209 .................................. 7210 7211 *Synopsis* 7212 const bfd_arch_info_type *bfd_default_compatible 7213 (const bfd_arch_info_type *a, const bfd_arch_info_type *b); 7214 *Description* 7215 The default function for testing for compatibility. 7216 7217 2.13.2.13 `bfd_default_scan' 7218 ............................ 7219 7220 *Synopsis* 7221 bfd_boolean bfd_default_scan 7222 (const struct bfd_arch_info *info, const char *string); 7223 *Description* 7224 The default function for working out whether this is an architecture 7225 hit and a machine hit. 7226 7227 2.13.2.14 `bfd_get_arch_info' 7228 ............................. 7229 7230 *Synopsis* 7231 const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd); 7232 *Description* 7233 Return the architecture info struct in ABFD. 7234 7235 2.13.2.15 `bfd_lookup_arch' 7236 ........................... 7237 7238 *Synopsis* 7239 const bfd_arch_info_type *bfd_lookup_arch 7240 (enum bfd_architecture arch, unsigned long machine); 7241 *Description* 7242 Look for the architecture info structure which matches the arguments 7243 ARCH and MACHINE. A machine of 0 matches the machine/architecture 7244 structure which marks itself as the default. 7245 7246 2.13.2.16 `bfd_printable_arch_mach' 7247 ................................... 7248 7249 *Synopsis* 7250 const char *bfd_printable_arch_mach 7251 (enum bfd_architecture arch, unsigned long machine); 7252 *Description* 7253 Return a printable string representing the architecture and machine 7254 type. 7255 7256 This routine is depreciated. 7257 7258 2.13.2.17 `bfd_octets_per_byte' 7259 ............................... 7260 7261 *Synopsis* 7262 unsigned int bfd_octets_per_byte (bfd *abfd); 7263 *Description* 7264 Return the number of octets (8-bit quantities) per target byte (minimum 7265 addressable unit). In most cases, this will be one, but some DSP 7266 targets have 16, 32, or even 48 bits per byte. 7267 7268 2.13.2.18 `bfd_arch_mach_octets_per_byte' 7269 ......................................... 7270 7271 *Synopsis* 7272 unsigned int bfd_arch_mach_octets_per_byte 7273 (enum bfd_architecture arch, unsigned long machine); 7274 *Description* 7275 See bfd_octets_per_byte. 7276 7277 This routine is provided for those cases where a bfd * is not 7278 available 7279 7280 7281 File: bfd.info, Node: Opening and Closing, Next: Internal, Prev: Architectures, Up: BFD front end 7282 7283 /* Set to N to open the next N BFDs using an alternate id space. */ 7284 extern unsigned int bfd_use_reserved_id; 7285 7286 2.14 Opening and closing BFDs 7287 ============================= 7288 7289 2.14.1 Functions for opening and closing 7290 ---------------------------------------- 7291 7292 2.14.1.1 `bfd_fopen' 7293 .................... 7294 7295 *Synopsis* 7296 bfd *bfd_fopen (const char *filename, const char *target, 7297 const char *mode, int fd); 7298 *Description* 7299 Open the file FILENAME with the target TARGET. Return a pointer to the 7300 created BFD. If FD is not -1, then `fdopen' is used to open the file; 7301 otherwise, `fopen' is used. MODE is passed directly to `fopen' or 7302 `fdopen'. 7303 7304 Calls `bfd_find_target', so TARGET is interpreted as by that 7305 function. 7306 7307 The new BFD is marked as cacheable iff FD is -1. 7308 7309 If `NULL' is returned then an error has occured. Possible errors 7310 are `bfd_error_no_memory', `bfd_error_invalid_target' or `system_call' 7311 error. 7312 7313 2.14.1.2 `bfd_openr' 7314 .................... 7315 7316 *Synopsis* 7317 bfd *bfd_openr (const char *filename, const char *target); 7318 *Description* 7319 Open the file FILENAME (using `fopen') with the target TARGET. Return 7320 a pointer to the created BFD. 7321 7322 Calls `bfd_find_target', so TARGET is interpreted as by that 7323 function. 7324 7325 If `NULL' is returned then an error has occured. Possible errors 7326 are `bfd_error_no_memory', `bfd_error_invalid_target' or `system_call' 7327 error. 7328 7329 2.14.1.3 `bfd_fdopenr' 7330 ...................... 7331 7332 *Synopsis* 7333 bfd *bfd_fdopenr (const char *filename, const char *target, int fd); 7334 *Description* 7335 `bfd_fdopenr' is to `bfd_fopenr' much like `fdopen' is to `fopen'. It 7336 opens a BFD on a file already described by the FD supplied. 7337 7338 When the file is later `bfd_close'd, the file descriptor will be 7339 closed. If the caller desires that this file descriptor be cached by 7340 BFD (opened as needed, closed as needed to free descriptors for other 7341 opens), with the supplied FD used as an initial file descriptor (but 7342 subject to closure at any time), call bfd_set_cacheable(bfd, 1) on the 7343 returned BFD. The default is to assume no caching; the file descriptor 7344 will remain open until `bfd_close', and will not be affected by BFD 7345 operations on other files. 7346 7347 Possible errors are `bfd_error_no_memory', 7348 `bfd_error_invalid_target' and `bfd_error_system_call'. 7349 7350 2.14.1.4 `bfd_openstreamr' 7351 .......................... 7352 7353 *Synopsis* 7354 bfd *bfd_openstreamr (const char *, const char *, void *); 7355 *Description* 7356 Open a BFD for read access on an existing stdio stream. When the BFD 7357 is passed to `bfd_close', the stream will be closed. 7358 7359 2.14.1.5 `bfd_openr_iovec' 7360 .......................... 7361 7362 *Synopsis* 7363 bfd *bfd_openr_iovec (const char *filename, const char *target, 7364 void *(*open_func) (struct bfd *nbfd, 7365 void *open_closure), 7366 void *open_closure, 7367 file_ptr (*pread_func) (struct bfd *nbfd, 7368 void *stream, 7369 void *buf, 7370 file_ptr nbytes, 7371 file_ptr offset), 7372 int (*close_func) (struct bfd *nbfd, 7373 void *stream), 7374 int (*stat_func) (struct bfd *abfd, 7375 void *stream, 7376 struct stat *sb)); 7377 *Description* 7378 Create and return a BFD backed by a read-only STREAM. The STREAM is 7379 created using OPEN_FUNC, accessed using PREAD_FUNC and destroyed using 7380 CLOSE_FUNC. 7381 7382 Calls `bfd_find_target', so TARGET is interpreted as by that 7383 function. 7384 7385 Calls OPEN_FUNC (which can call `bfd_zalloc' and `bfd_get_filename') 7386 to obtain the read-only stream backing the BFD. OPEN_FUNC either 7387 succeeds returning the non-`NULL' STREAM, or fails returning `NULL' 7388 (setting `bfd_error'). 7389 7390 Calls PREAD_FUNC to request NBYTES of data from STREAM starting at 7391 OFFSET (e.g., via a call to `bfd_read'). PREAD_FUNC either succeeds 7392 returning the number of bytes read (which can be less than NBYTES when 7393 end-of-file), or fails returning -1 (setting `bfd_error'). 7394 7395 Calls CLOSE_FUNC when the BFD is later closed using `bfd_close'. 7396 CLOSE_FUNC either succeeds returning 0, or fails returning -1 (setting 7397 `bfd_error'). 7398 7399 Calls STAT_FUNC to fill in a stat structure for bfd_stat, 7400 bfd_get_size, and bfd_get_mtime calls. STAT_FUNC returns 0 on success, 7401 or returns -1 on failure (setting `bfd_error'). 7402 7403 If `bfd_openr_iovec' returns `NULL' then an error has occurred. 7404 Possible errors are `bfd_error_no_memory', `bfd_error_invalid_target' 7405 and `bfd_error_system_call'. 7406 7407 2.14.1.6 `bfd_openw' 7408 .................... 7409 7410 *Synopsis* 7411 bfd *bfd_openw (const char *filename, const char *target); 7412 *Description* 7413 Create a BFD, associated with file FILENAME, using the file format 7414 TARGET, and return a pointer to it. 7415 7416 Possible errors are `bfd_error_system_call', `bfd_error_no_memory', 7417 `bfd_error_invalid_target'. 7418 7419 2.14.1.7 `bfd_close' 7420 .................... 7421 7422 *Synopsis* 7423 bfd_boolean bfd_close (bfd *abfd); 7424 *Description* 7425 Close a BFD. If the BFD was open for writing, then pending operations 7426 are completed and the file written out and closed. If the created file 7427 is executable, then `chmod' is called to mark it as such. 7428 7429 All memory attached to the BFD is released. 7430 7431 The file descriptor associated with the BFD is closed (even if it 7432 was passed in to BFD by `bfd_fdopenr'). 7433 7434 *Returns* 7435 `TRUE' is returned if all is ok, otherwise `FALSE'. 7436 7437 2.14.1.8 `bfd_close_all_done' 7438 ............................. 7439 7440 *Synopsis* 7441 bfd_boolean bfd_close_all_done (bfd *); 7442 *Description* 7443 Close a BFD. Differs from `bfd_close' since it does not complete any 7444 pending operations. This routine would be used if the application had 7445 just used BFD for swapping and didn't want to use any of the writing 7446 code. 7447 7448 If the created file is executable, then `chmod' is called to mark it 7449 as such. 7450 7451 All memory attached to the BFD is released. 7452 7453 *Returns* 7454 `TRUE' is returned if all is ok, otherwise `FALSE'. 7455 7456 2.14.1.9 `bfd_create' 7457 ..................... 7458 7459 *Synopsis* 7460 bfd *bfd_create (const char *filename, bfd *templ); 7461 *Description* 7462 Create a new BFD in the manner of `bfd_openw', but without opening a 7463 file. The new BFD takes the target from the target used by TEMPL. The 7464 format is always set to `bfd_object'. 7465 7466 2.14.1.10 `bfd_make_writable' 7467 ............................. 7468 7469 *Synopsis* 7470 bfd_boolean bfd_make_writable (bfd *abfd); 7471 *Description* 7472 Takes a BFD as created by `bfd_create' and converts it into one like as 7473 returned by `bfd_openw'. It does this by converting the BFD to 7474 BFD_IN_MEMORY. It's assumed that you will call `bfd_make_readable' on 7475 this bfd later. 7476 7477 *Returns* 7478 `TRUE' is returned if all is ok, otherwise `FALSE'. 7479 7480 2.14.1.11 `bfd_make_readable' 7481 ............................. 7482 7483 *Synopsis* 7484 bfd_boolean bfd_make_readable (bfd *abfd); 7485 *Description* 7486 Takes a BFD as created by `bfd_create' and `bfd_make_writable' and 7487 converts it into one like as returned by `bfd_openr'. It does this by 7488 writing the contents out to the memory buffer, then reversing the 7489 direction. 7490 7491 *Returns* 7492 `TRUE' is returned if all is ok, otherwise `FALSE'. 7493 7494 2.14.1.12 `bfd_alloc' 7495 ..................... 7496 7497 *Synopsis* 7498 void *bfd_alloc (bfd *abfd, bfd_size_type wanted); 7499 *Description* 7500 Allocate a block of WANTED bytes of memory attached to `abfd' and 7501 return a pointer to it. 7502 7503 2.14.1.13 `bfd_alloc2' 7504 ...................... 7505 7506 *Synopsis* 7507 void *bfd_alloc2 (bfd *abfd, bfd_size_type nmemb, bfd_size_type size); 7508 *Description* 7509 Allocate a block of NMEMB elements of SIZE bytes each of memory 7510 attached to `abfd' and return a pointer to it. 7511 7512 2.14.1.14 `bfd_zalloc' 7513 ...................... 7514 7515 *Synopsis* 7516 void *bfd_zalloc (bfd *abfd, bfd_size_type wanted); 7517 *Description* 7518 Allocate a block of WANTED bytes of zeroed memory attached to `abfd' 7519 and return a pointer to it. 7520 7521 2.14.1.15 `bfd_zalloc2' 7522 ....................... 7523 7524 *Synopsis* 7525 void *bfd_zalloc2 (bfd *abfd, bfd_size_type nmemb, bfd_size_type size); 7526 *Description* 7527 Allocate a block of NMEMB elements of SIZE bytes each of zeroed memory 7528 attached to `abfd' and return a pointer to it. 7529 7530 2.14.1.16 `bfd_calc_gnu_debuglink_crc32' 7531 ........................................ 7532 7533 *Synopsis* 7534 unsigned long bfd_calc_gnu_debuglink_crc32 7535 (unsigned long crc, const unsigned char *buf, bfd_size_type len); 7536 *Description* 7537 Computes a CRC value as used in the .gnu_debuglink section. Advances 7538 the previously computed CRC value by computing and adding in the crc32 7539 for LEN bytes of BUF. 7540 7541 *Returns* 7542 Return the updated CRC32 value. 7543 7544 2.14.1.17 `get_debug_link_info' 7545 ............................... 7546 7547 *Synopsis* 7548 char *get_debug_link_info (bfd *abfd, unsigned long *crc32_out); 7549 *Description* 7550 fetch the filename and CRC32 value for any separate debuginfo 7551 associated with ABFD. Return NULL if no such info found, otherwise 7552 return filename and update CRC32_OUT. 7553 7554 2.14.1.18 `separate_debug_file_exists' 7555 ...................................... 7556 7557 *Synopsis* 7558 bfd_boolean separate_debug_file_exists 7559 (char *name, unsigned long crc32); 7560 *Description* 7561 Checks to see if NAME is a file and if its contents match CRC32. 7562 7563 2.14.1.19 `find_separate_debug_file' 7564 .................................... 7565 7566 *Synopsis* 7567 char *find_separate_debug_file (bfd *abfd); 7568 *Description* 7569 Searches ABFD for a reference to separate debugging information, scans 7570 various locations in the filesystem, including the file tree rooted at 7571 DEBUG_FILE_DIRECTORY, and returns a filename of such debugging 7572 information if the file is found and has matching CRC32. Returns NULL 7573 if no reference to debugging file exists, or file cannot be found. 7574 7575 2.14.1.20 `bfd_follow_gnu_debuglink' 7576 .................................... 7577 7578 *Synopsis* 7579 char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir); 7580 *Description* 7581 Takes a BFD and searches it for a .gnu_debuglink section. If this 7582 section is found, it examines the section for the name and checksum of 7583 a '.debug' file containing auxiliary debugging information. It then 7584 searches the filesystem for this .debug file in some standard 7585 locations, including the directory tree rooted at DIR, and if found 7586 returns the full filename. 7587 7588 If DIR is NULL, it will search a default path configured into libbfd 7589 at build time. [XXX this feature is not currently implemented]. 7590 7591 *Returns* 7592 `NULL' on any errors or failure to locate the .debug file, otherwise a 7593 pointer to a heap-allocated string containing the filename. The caller 7594 is responsible for freeing this string. 7595 7596 2.14.1.21 `bfd_create_gnu_debuglink_section' 7597 ............................................ 7598 7599 *Synopsis* 7600 struct bfd_section *bfd_create_gnu_debuglink_section 7601 (bfd *abfd, const char *filename); 7602 *Description* 7603 Takes a BFD and adds a .gnu_debuglink section to it. The section is 7604 sized to be big enough to contain a link to the specified FILENAME. 7605 7606 *Returns* 7607 A pointer to the new section is returned if all is ok. Otherwise 7608 `NULL' is returned and bfd_error is set. 7609 7610 2.14.1.22 `bfd_fill_in_gnu_debuglink_section' 7611 ............................................. 7612 7613 *Synopsis* 7614 bfd_boolean bfd_fill_in_gnu_debuglink_section 7615 (bfd *abfd, struct bfd_section *sect, const char *filename); 7616 *Description* 7617 Takes a BFD and containing a .gnu_debuglink section SECT and fills in 7618 the contents of the section to contain a link to the specified 7619 FILENAME. The filename should be relative to the current directory. 7620 7621 *Returns* 7622 `TRUE' is returned if all is ok. Otherwise `FALSE' is returned and 7623 bfd_error is set. 7624 7625 7626 File: bfd.info, Node: Internal, Next: File Caching, Prev: Opening and Closing, Up: BFD front end 7627 7628 2.15 Implementation details 7629 =========================== 7630 7631 2.15.1 Internal functions 7632 ------------------------- 7633 7634 *Description* 7635 These routines are used within BFD. They are not intended for export, 7636 but are documented here for completeness. 7637 7638 2.15.1.1 `bfd_write_bigendian_4byte_int' 7639 ........................................ 7640 7641 *Synopsis* 7642 bfd_boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int); 7643 *Description* 7644 Write a 4 byte integer I to the output BFD ABFD, in big endian order 7645 regardless of what else is going on. This is useful in archives. 7646 7647 2.15.1.2 `bfd_put_size' 7648 ....................... 7649 7650 2.15.1.3 `bfd_get_size' 7651 ....................... 7652 7653 *Description* 7654 These macros as used for reading and writing raw data in sections; each 7655 access (except for bytes) is vectored through the target format of the 7656 BFD and mangled accordingly. The mangling performs any necessary endian 7657 translations and removes alignment restrictions. Note that types 7658 accepted and returned by these macros are identical so they can be 7659 swapped around in macros--for example, `libaout.h' defines `GET_WORD' 7660 to either `bfd_get_32' or `bfd_get_64'. 7661 7662 In the put routines, VAL must be a `bfd_vma'. If we are on a system 7663 without prototypes, the caller is responsible for making sure that is 7664 true, with a cast if necessary. We don't cast them in the macro 7665 definitions because that would prevent `lint' or `gcc -Wall' from 7666 detecting sins such as passing a pointer. To detect calling these with 7667 less than a `bfd_vma', use `gcc -Wconversion' on a host with 64 bit 7668 `bfd_vma''s. 7669 7670 /* Byte swapping macros for user section data. */ 7671 7672 #define bfd_put_8(abfd, val, ptr) \ 7673 ((void) (*((unsigned char *) (ptr)) = (val) & 0xff)) 7674 #define bfd_put_signed_8 \ 7675 bfd_put_8 7676 #define bfd_get_8(abfd, ptr) \ 7677 (*(const unsigned char *) (ptr) & 0xff) 7678 #define bfd_get_signed_8(abfd, ptr) \ 7679 (((*(const unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80) 7680 7681 #define bfd_put_16(abfd, val, ptr) \ 7682 BFD_SEND (abfd, bfd_putx16, ((val),(ptr))) 7683 #define bfd_put_signed_16 \ 7684 bfd_put_16 7685 #define bfd_get_16(abfd, ptr) \ 7686 BFD_SEND (abfd, bfd_getx16, (ptr)) 7687 #define bfd_get_signed_16(abfd, ptr) \ 7688 BFD_SEND (abfd, bfd_getx_signed_16, (ptr)) 7689 7690 #define bfd_put_32(abfd, val, ptr) \ 7691 BFD_SEND (abfd, bfd_putx32, ((val),(ptr))) 7692 #define bfd_put_signed_32 \ 7693 bfd_put_32 7694 #define bfd_get_32(abfd, ptr) \ 7695 BFD_SEND (abfd, bfd_getx32, (ptr)) 7696 #define bfd_get_signed_32(abfd, ptr) \ 7697 BFD_SEND (abfd, bfd_getx_signed_32, (ptr)) 7698 7699 #define bfd_put_64(abfd, val, ptr) \ 7700 BFD_SEND (abfd, bfd_putx64, ((val), (ptr))) 7701 #define bfd_put_signed_64 \ 7702 bfd_put_64 7703 #define bfd_get_64(abfd, ptr) \ 7704 BFD_SEND (abfd, bfd_getx64, (ptr)) 7705 #define bfd_get_signed_64(abfd, ptr) \ 7706 BFD_SEND (abfd, bfd_getx_signed_64, (ptr)) 7707 7708 #define bfd_get(bits, abfd, ptr) \ 7709 ((bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr) \ 7710 : (bits) == 16 ? bfd_get_16 (abfd, ptr) \ 7711 : (bits) == 32 ? bfd_get_32 (abfd, ptr) \ 7712 : (bits) == 64 ? bfd_get_64 (abfd, ptr) \ 7713 : (abort (), (bfd_vma) - 1)) 7714 7715 #define bfd_put(bits, abfd, val, ptr) \ 7716 ((bits) == 8 ? bfd_put_8 (abfd, val, ptr) \ 7717 : (bits) == 16 ? bfd_put_16 (abfd, val, ptr) \ 7718 : (bits) == 32 ? bfd_put_32 (abfd, val, ptr) \ 7719 : (bits) == 64 ? bfd_put_64 (abfd, val, ptr) \ 7720 : (abort (), (void) 0)) 7721 7722 2.15.1.4 `bfd_h_put_size' 7723 ......................... 7724 7725 *Description* 7726 These macros have the same function as their `bfd_get_x' brethren, 7727 except that they are used for removing information for the header 7728 records of object files. Believe it or not, some object files keep 7729 their header records in big endian order and their data in little 7730 endian order. 7731 7732 /* Byte swapping macros for file header data. */ 7733 7734 #define bfd_h_put_8(abfd, val, ptr) \ 7735 bfd_put_8 (abfd, val, ptr) 7736 #define bfd_h_put_signed_8(abfd, val, ptr) \ 7737 bfd_put_8 (abfd, val, ptr) 7738 #define bfd_h_get_8(abfd, ptr) \ 7739 bfd_get_8 (abfd, ptr) 7740 #define bfd_h_get_signed_8(abfd, ptr) \ 7741 bfd_get_signed_8 (abfd, ptr) 7742 7743 #define bfd_h_put_16(abfd, val, ptr) \ 7744 BFD_SEND (abfd, bfd_h_putx16, (val, ptr)) 7745 #define bfd_h_put_signed_16 \ 7746 bfd_h_put_16 7747 #define bfd_h_get_16(abfd, ptr) \ 7748 BFD_SEND (abfd, bfd_h_getx16, (ptr)) 7749 #define bfd_h_get_signed_16(abfd, ptr) \ 7750 BFD_SEND (abfd, bfd_h_getx_signed_16, (ptr)) 7751 7752 #define bfd_h_put_32(abfd, val, ptr) \ 7753 BFD_SEND (abfd, bfd_h_putx32, (val, ptr)) 7754 #define bfd_h_put_signed_32 \ 7755 bfd_h_put_32 7756 #define bfd_h_get_32(abfd, ptr) \ 7757 BFD_SEND (abfd, bfd_h_getx32, (ptr)) 7758 #define bfd_h_get_signed_32(abfd, ptr) \ 7759 BFD_SEND (abfd, bfd_h_getx_signed_32, (ptr)) 7760 7761 #define bfd_h_put_64(abfd, val, ptr) \ 7762 BFD_SEND (abfd, bfd_h_putx64, (val, ptr)) 7763 #define bfd_h_put_signed_64 \ 7764 bfd_h_put_64 7765 #define bfd_h_get_64(abfd, ptr) \ 7766 BFD_SEND (abfd, bfd_h_getx64, (ptr)) 7767 #define bfd_h_get_signed_64(abfd, ptr) \ 7768 BFD_SEND (abfd, bfd_h_getx_signed_64, (ptr)) 7769 7770 /* Aliases for the above, which should eventually go away. */ 7771 7772 #define H_PUT_64 bfd_h_put_64 7773 #define H_PUT_32 bfd_h_put_32 7774 #define H_PUT_16 bfd_h_put_16 7775 #define H_PUT_8 bfd_h_put_8 7776 #define H_PUT_S64 bfd_h_put_signed_64 7777 #define H_PUT_S32 bfd_h_put_signed_32 7778 #define H_PUT_S16 bfd_h_put_signed_16 7779 #define H_PUT_S8 bfd_h_put_signed_8 7780 #define H_GET_64 bfd_h_get_64 7781 #define H_GET_32 bfd_h_get_32 7782 #define H_GET_16 bfd_h_get_16 7783 #define H_GET_8 bfd_h_get_8 7784 #define H_GET_S64 bfd_h_get_signed_64 7785 #define H_GET_S32 bfd_h_get_signed_32 7786 #define H_GET_S16 bfd_h_get_signed_16 7787 #define H_GET_S8 bfd_h_get_signed_8 7788 7789 2.15.1.5 `bfd_log2' 7790 ................... 7791 7792 *Synopsis* 7793 unsigned int bfd_log2 (bfd_vma x); 7794 *Description* 7795 Return the log base 2 of the value supplied, rounded up. E.g., an X of 7796 1025 returns 11. A X of 0 returns 0. 7797 7798 7799 File: bfd.info, Node: File Caching, Next: Linker Functions, Prev: Internal, Up: BFD front end 7800 7801 2.16 File caching 7802 ================= 7803 7804 The file caching mechanism is embedded within BFD and allows the 7805 application to open as many BFDs as it wants without regard to the 7806 underlying operating system's file descriptor limit (often as low as 20 7807 open files). The module in `cache.c' maintains a least recently used 7808 list of `BFD_CACHE_MAX_OPEN' files, and exports the name 7809 `bfd_cache_lookup', which runs around and makes sure that the required 7810 BFD is open. If not, then it chooses a file to close, closes it and 7811 opens the one wanted, returning its file handle. 7812 7813 2.16.1 Caching functions 7814 ------------------------ 7815 7816 2.16.1.1 `bfd_cache_init' 7817 ......................... 7818 7819 *Synopsis* 7820 bfd_boolean bfd_cache_init (bfd *abfd); 7821 *Description* 7822 Add a newly opened BFD to the cache. 7823 7824 2.16.1.2 `bfd_cache_close' 7825 .......................... 7826 7827 *Synopsis* 7828 bfd_boolean bfd_cache_close (bfd *abfd); 7829 *Description* 7830 Remove the BFD ABFD from the cache. If the attached file is open, then 7831 close it too. 7832 7833 *Returns* 7834 `FALSE' is returned if closing the file fails, `TRUE' is returned if 7835 all is well. 7836 7837 2.16.1.3 `bfd_cache_close_all' 7838 .............................. 7839 7840 *Synopsis* 7841 bfd_boolean bfd_cache_close_all (void); 7842 *Description* 7843 Remove all BFDs from the cache. If the attached file is open, then 7844 close it too. 7845 7846 *Returns* 7847 `FALSE' is returned if closing one of the file fails, `TRUE' is 7848 returned if all is well. 7849 7850 2.16.1.4 `bfd_open_file' 7851 ........................ 7852 7853 *Synopsis* 7854 FILE* bfd_open_file (bfd *abfd); 7855 *Description* 7856 Call the OS to open a file for ABFD. Return the `FILE *' (possibly 7857 `NULL') that results from this operation. Set up the BFD so that 7858 future accesses know the file is open. If the `FILE *' returned is 7859 `NULL', then it won't have been put in the cache, so it won't have to 7860 be removed from it. 7861 7862 7863 File: bfd.info, Node: Linker Functions, Next: Hash Tables, Prev: File Caching, Up: BFD front end 7864 7865 2.17 Linker Functions 7866 ===================== 7867 7868 The linker uses three special entry points in the BFD target vector. 7869 It is not necessary to write special routines for these entry points 7870 when creating a new BFD back end, since generic versions are provided. 7871 However, writing them can speed up linking and make it use 7872 significantly less runtime memory. 7873 7874 The first routine creates a hash table used by the other routines. 7875 The second routine adds the symbols from an object file to the hash 7876 table. The third routine takes all the object files and links them 7877 together to create the output file. These routines are designed so 7878 that the linker proper does not need to know anything about the symbols 7879 in the object files that it is linking. The linker merely arranges the 7880 sections as directed by the linker script and lets BFD handle the 7881 details of symbols and relocs. 7882 7883 The second routine and third routines are passed a pointer to a 7884 `struct bfd_link_info' structure (defined in `bfdlink.h') which holds 7885 information relevant to the link, including the linker hash table 7886 (which was created by the first routine) and a set of callback 7887 functions to the linker proper. 7888 7889 The generic linker routines are in `linker.c', and use the header 7890 file `genlink.h'. As of this writing, the only back ends which have 7891 implemented versions of these routines are a.out (in `aoutx.h') and 7892 ECOFF (in `ecoff.c'). The a.out routines are used as examples 7893 throughout this section. 7894 7895 * Menu: 7896 7897 * Creating a Linker Hash Table:: 7898 * Adding Symbols to the Hash Table:: 7899 * Performing the Final Link:: 7900 7901 7902 File: bfd.info, Node: Creating a Linker Hash Table, Next: Adding Symbols to the Hash Table, Prev: Linker Functions, Up: Linker Functions 7903 7904 2.17.1 Creating a linker hash table 7905 ----------------------------------- 7906 7907 The linker routines must create a hash table, which must be derived 7908 from `struct bfd_link_hash_table' described in `bfdlink.c'. *Note Hash 7909 Tables::, for information on how to create a derived hash table. This 7910 entry point is called using the target vector of the linker output file. 7911 7912 The `_bfd_link_hash_table_create' entry point must allocate and 7913 initialize an instance of the desired hash table. If the back end does 7914 not require any additional information to be stored with the entries in 7915 the hash table, the entry point may simply create a `struct 7916 bfd_link_hash_table'. Most likely, however, some additional 7917 information will be needed. 7918 7919 For example, with each entry in the hash table the a.out linker 7920 keeps the index the symbol has in the final output file (this index 7921 number is used so that when doing a relocatable link the symbol index 7922 used in the output file can be quickly filled in when copying over a 7923 reloc). The a.out linker code defines the required structures and 7924 functions for a hash table derived from `struct bfd_link_hash_table'. 7925 The a.out linker hash table is created by the function 7926 `NAME(aout,link_hash_table_create)'; it simply allocates space for the 7927 hash table, initializes it, and returns a pointer to it. 7928 7929 When writing the linker routines for a new back end, you will 7930 generally not know exactly which fields will be required until you have 7931 finished. You should simply create a new hash table which defines no 7932 additional fields, and then simply add fields as they become necessary. 7933 7934 7935 File: bfd.info, Node: Adding Symbols to the Hash Table, Next: Performing the Final Link, Prev: Creating a Linker Hash Table, Up: Linker Functions 7936 7937 2.17.2 Adding symbols to the hash table 7938 --------------------------------------- 7939 7940 The linker proper will call the `_bfd_link_add_symbols' entry point for 7941 each object file or archive which is to be linked (typically these are 7942 the files named on the command line, but some may also come from the 7943 linker script). The entry point is responsible for examining the file. 7944 For an object file, BFD must add any relevant symbol information to 7945 the hash table. For an archive, BFD must determine which elements of 7946 the archive should be used and adding them to the link. 7947 7948 The a.out version of this entry point is 7949 `NAME(aout,link_add_symbols)'. 7950 7951 * Menu: 7952 7953 * Differing file formats:: 7954 * Adding symbols from an object file:: 7955 * Adding symbols from an archive:: 7956 7957 7958 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 7959 7960 2.17.2.1 Differing file formats 7961 ............................... 7962 7963 Normally all the files involved in a link will be of the same format, 7964 but it is also possible to link together different format object files, 7965 and the back end must support that. The `_bfd_link_add_symbols' entry 7966 point is called via the target vector of the file to be added. This 7967 has an important consequence: the function may not assume that the hash 7968 table is the type created by the corresponding 7969 `_bfd_link_hash_table_create' vector. All the `_bfd_link_add_symbols' 7970 function can assume about the hash table is that it is derived from 7971 `struct bfd_link_hash_table'. 7972 7973 Sometimes the `_bfd_link_add_symbols' function must store some 7974 information in the hash table entry to be used by the `_bfd_final_link' 7975 function. In such a case the output bfd xvec must be checked to make 7976 sure that the hash table was created by an object file of the same 7977 format. 7978 7979 The `_bfd_final_link' routine must be prepared to handle a hash 7980 entry without any extra information added by the 7981 `_bfd_link_add_symbols' function. A hash entry without extra 7982 information will also occur when the linker script directs the linker 7983 to create a symbol. Note that, regardless of how a hash table entry is 7984 added, all the fields will be initialized to some sort of null value by 7985 the hash table entry initialization function. 7986 7987 See `ecoff_link_add_externals' for an example of how to check the 7988 output bfd before saving information (in this case, the ECOFF external 7989 symbol debugging information) in a hash table entry. 7990 7991 7992 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 7993 7994 2.17.2.2 Adding symbols from an object file 7995 ........................................... 7996 7997 When the `_bfd_link_add_symbols' routine is passed an object file, it 7998 must add all externally visible symbols in that object file to the hash 7999 table. The actual work of adding the symbol to the hash table is 8000 normally handled by the function `_bfd_generic_link_add_one_symbol'. 8001 The `_bfd_link_add_symbols' routine is responsible for reading all the 8002 symbols from the object file and passing the correct information to 8003 `_bfd_generic_link_add_one_symbol'. 8004 8005 The `_bfd_link_add_symbols' routine should not use 8006 `bfd_canonicalize_symtab' to read the symbols. The point of providing 8007 this routine is to avoid the overhead of converting the symbols into 8008 generic `asymbol' structures. 8009 8010 `_bfd_generic_link_add_one_symbol' handles the details of combining 8011 common symbols, warning about multiple definitions, and so forth. It 8012 takes arguments which describe the symbol to add, notably symbol flags, 8013 a section, and an offset. The symbol flags include such things as 8014 `BSF_WEAK' or `BSF_INDIRECT'. The section is a section in the object 8015 file, or something like `bfd_und_section_ptr' for an undefined symbol 8016 or `bfd_com_section_ptr' for a common symbol. 8017 8018 If the `_bfd_final_link' routine is also going to need to read the 8019 symbol information, the `_bfd_link_add_symbols' routine should save it 8020 somewhere attached to the object file BFD. However, the information 8021 should only be saved if the `keep_memory' field of the `info' argument 8022 is TRUE, so that the `-no-keep-memory' linker switch is effective. 8023 8024 The a.out function which adds symbols from an object file is 8025 `aout_link_add_object_symbols', and most of the interesting work is in 8026 `aout_link_add_symbols'. The latter saves pointers to the hash tables 8027 entries created by `_bfd_generic_link_add_one_symbol' indexed by symbol 8028 number, so that the `_bfd_final_link' routine does not have to call the 8029 hash table lookup routine to locate the entry. 8030 8031 8032 File: bfd.info, Node: Adding symbols from an archive, Prev: Adding symbols from an object file, Up: Adding Symbols to the Hash Table 8033 8034 2.17.2.3 Adding symbols from an archive 8035 ....................................... 8036 8037 When the `_bfd_link_add_symbols' routine is passed an archive, it must 8038 look through the symbols defined by the archive and decide which 8039 elements of the archive should be included in the link. For each such 8040 element it must call the `add_archive_element' linker callback, and it 8041 must add the symbols from the object file to the linker hash table. 8042 (The callback may in fact indicate that a replacement BFD should be 8043 used, in which case the symbols from that BFD should be added to the 8044 linker hash table instead.) 8045 8046 In most cases the work of looking through the symbols in the archive 8047 should be done by the `_bfd_generic_link_add_archive_symbols' function. 8048 This function builds a hash table from the archive symbol table and 8049 looks through the list of undefined symbols to see which elements 8050 should be included. `_bfd_generic_link_add_archive_symbols' is passed 8051 a function to call to make the final decision about adding an archive 8052 element to the link and to do the actual work of adding the symbols to 8053 the linker hash table. 8054 8055 The function passed to `_bfd_generic_link_add_archive_symbols' must 8056 read the symbols of the archive element and decide whether the archive 8057 element should be included in the link. If the element is to be 8058 included, the `add_archive_element' linker callback routine must be 8059 called with the element as an argument, and the element's symbols must 8060 be added to the linker hash table just as though the element had itself 8061 been passed to the `_bfd_link_add_symbols' function. The 8062 `add_archive_element' callback has the option to indicate that it would 8063 like to replace the element archive with a substitute BFD, in which 8064 case it is the symbols of that substitute BFD that must be added to the 8065 linker hash table instead. 8066 8067 When the a.out `_bfd_link_add_symbols' function receives an archive, 8068 it calls `_bfd_generic_link_add_archive_symbols' passing 8069 `aout_link_check_archive_element' as the function argument. 8070 `aout_link_check_archive_element' calls `aout_link_check_ar_symbols'. 8071 If the latter decides to add the element (an element is only added if 8072 it provides a real, non-common, definition for a previously undefined 8073 or common symbol) it calls the `add_archive_element' callback and then 8074 `aout_link_check_archive_element' calls `aout_link_add_symbols' to 8075 actually add the symbols to the linker hash table - possibly those of a 8076 substitute BFD, if the `add_archive_element' callback avails itself of 8077 that option. 8078 8079 The ECOFF back end is unusual in that it does not normally call 8080 `_bfd_generic_link_add_archive_symbols', because ECOFF archives already 8081 contain a hash table of symbols. The ECOFF back end searches the 8082 archive itself to avoid the overhead of creating a new hash table. 8083 8084 8085 File: bfd.info, Node: Performing the Final Link, Prev: Adding Symbols to the Hash Table, Up: Linker Functions 8086 8087 2.17.3 Performing the final link 8088 -------------------------------- 8089 8090 When all the input files have been processed, the linker calls the 8091 `_bfd_final_link' entry point of the output BFD. This routine is 8092 responsible for producing the final output file, which has several 8093 aspects. It must relocate the contents of the input sections and copy 8094 the data into the output sections. It must build an output symbol 8095 table including any local symbols from the input files and the global 8096 symbols from the hash table. When producing relocatable output, it must 8097 modify the input relocs and write them into the output file. There may 8098 also be object format dependent work to be done. 8099 8100 The linker will also call the `write_object_contents' entry point 8101 when the BFD is closed. The two entry points must work together in 8102 order to produce the correct output file. 8103 8104 The details of how this works are inevitably dependent upon the 8105 specific object file format. The a.out `_bfd_final_link' routine is 8106 `NAME(aout,final_link)'. 8107 8108 * Menu: 8109 8110 * Information provided by the linker:: 8111 * Relocating the section contents:: 8112 * Writing the symbol table:: 8113 8114 8115 File: bfd.info, Node: Information provided by the linker, Next: Relocating the section contents, Prev: Performing the Final Link, Up: Performing the Final Link 8116 8117 2.17.3.1 Information provided by the linker 8118 ........................................... 8119 8120 Before the linker calls the `_bfd_final_link' entry point, it sets up 8121 some data structures for the function to use. 8122 8123 The `input_bfds' field of the `bfd_link_info' structure will point 8124 to a list of all the input files included in the link. These files are 8125 linked through the `link_next' field of the `bfd' structure. 8126 8127 Each section in the output file will have a list of `link_order' 8128 structures attached to the `map_head.link_order' field (the 8129 `link_order' structure is defined in `bfdlink.h'). These structures 8130 describe how to create the contents of the output section in terms of 8131 the contents of various input sections, fill constants, and, 8132 eventually, other types of information. They also describe relocs that 8133 must be created by the BFD backend, but do not correspond to any input 8134 file; this is used to support -Ur, which builds constructors while 8135 generating a relocatable object file. 8136 8137 8138 File: bfd.info, Node: Relocating the section contents, Next: Writing the symbol table, Prev: Information provided by the linker, Up: Performing the Final Link 8139 8140 2.17.3.2 Relocating the section contents 8141 ........................................ 8142 8143 The `_bfd_final_link' function should look through the `link_order' 8144 structures attached to each section of the output file. Each 8145 `link_order' structure should either be handled specially, or it should 8146 be passed to the function `_bfd_default_link_order' which will do the 8147 right thing (`_bfd_default_link_order' is defined in `linker.c'). 8148 8149 For efficiency, a `link_order' of type `bfd_indirect_link_order' 8150 whose associated section belongs to a BFD of the same format as the 8151 output BFD must be handled specially. This type of `link_order' 8152 describes part of an output section in terms of a section belonging to 8153 one of the input files. The `_bfd_final_link' function should read the 8154 contents of the section and any associated relocs, apply the relocs to 8155 the section contents, and write out the modified section contents. If 8156 performing a relocatable link, the relocs themselves must also be 8157 modified and written out. 8158 8159 The functions `_bfd_relocate_contents' and 8160 `_bfd_final_link_relocate' provide some general support for performing 8161 the actual relocations, notably overflow checking. Their arguments 8162 include information about the symbol the relocation is against and a 8163 `reloc_howto_type' argument which describes the relocation to perform. 8164 These functions are defined in `reloc.c'. 8165 8166 The a.out function which handles reading, relocating, and writing 8167 section contents is `aout_link_input_section'. The actual relocation 8168 is done in `aout_link_input_section_std' and 8169 `aout_link_input_section_ext'. 8170 8171 8172 File: bfd.info, Node: Writing the symbol table, Prev: Relocating the section contents, Up: Performing the Final Link 8173 8174 2.17.3.3 Writing the symbol table 8175 ................................. 8176 8177 The `_bfd_final_link' function must gather all the symbols in the input 8178 files and write them out. It must also write out all the symbols in 8179 the global hash table. This must be controlled by the `strip' and 8180 `discard' fields of the `bfd_link_info' structure. 8181 8182 The local symbols of the input files will not have been entered into 8183 the linker hash table. The `_bfd_final_link' routine must consider 8184 each input file and include the symbols in the output file. It may be 8185 convenient to do this when looking through the `link_order' structures, 8186 or it may be done by stepping through the `input_bfds' list. 8187 8188 The `_bfd_final_link' routine must also traverse the global hash 8189 table to gather all the externally visible symbols. It is possible 8190 that most of the externally visible symbols may be written out when 8191 considering the symbols of each input file, but it is still necessary 8192 to traverse the hash table since the linker script may have defined 8193 some symbols that are not in any of the input files. 8194 8195 The `strip' field of the `bfd_link_info' structure controls which 8196 symbols are written out. The possible values are listed in 8197 `bfdlink.h'. If the value is `strip_some', then the `keep_hash' field 8198 of the `bfd_link_info' structure is a hash table of symbols to keep; 8199 each symbol should be looked up in this hash table, and only symbols 8200 which are present should be included in the output file. 8201 8202 If the `strip' field of the `bfd_link_info' structure permits local 8203 symbols to be written out, the `discard' field is used to further 8204 controls which local symbols are included in the output file. If the 8205 value is `discard_l', then all local symbols which begin with a certain 8206 prefix are discarded; this is controlled by the 8207 `bfd_is_local_label_name' entry point. 8208 8209 The a.out backend handles symbols by calling 8210 `aout_link_write_symbols' on each input BFD and then traversing the 8211 global hash table with the function `aout_link_write_other_symbol'. It 8212 builds a string table while writing out the symbols, which is written 8213 to the output file at the end of `NAME(aout,final_link)'. 8214 8215 2.17.3.4 `bfd_link_split_section' 8216 ................................. 8217 8218 *Synopsis* 8219 bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec); 8220 *Description* 8221 Return nonzero if SEC should be split during a reloceatable or final 8222 link. 8223 #define bfd_link_split_section(abfd, sec) \ 8224 BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec)) 8225 8226 2.17.3.5 `bfd_section_already_linked' 8227 ..................................... 8228 8229 *Synopsis* 8230 bfd_boolean bfd_section_already_linked (bfd *abfd, 8231 asection *sec, 8232 struct bfd_link_info *info); 8233 *Description* 8234 Check if DATA has been already linked during a reloceatable or final 8235 link. Return TRUE if it has. 8236 #define bfd_section_already_linked(abfd, sec, info) \ 8237 BFD_SEND (abfd, _section_already_linked, (abfd, sec, info)) 8238 8239 2.17.3.6 `bfd_generic_define_common_symbol' 8240 ........................................... 8241 8242 *Synopsis* 8243 bfd_boolean bfd_generic_define_common_symbol 8244 (bfd *output_bfd, struct bfd_link_info *info, 8245 struct bfd_link_hash_entry *h); 8246 *Description* 8247 Convert common symbol H into a defined symbol. Return TRUE on success 8248 and FALSE on failure. 8249 #define bfd_define_common_symbol(output_bfd, info, h) \ 8250 BFD_SEND (output_bfd, _bfd_define_common_symbol, (output_bfd, info, h)) 8251 8252 2.17.3.7 `bfd_find_version_for_sym ' 8253 .................................... 8254 8255 *Synopsis* 8256 struct bfd_elf_version_tree * bfd_find_version_for_sym 8257 (struct bfd_elf_version_tree *verdefs, 8258 const char *sym_name, bfd_boolean *hide); 8259 *Description* 8260 Search an elf version script tree for symbol versioning info and export 8261 / don't-export status for a given symbol. Return non-NULL on success 8262 and NULL on failure; also sets the output `hide' boolean parameter. 8263 8264 2.17.3.8 `bfd_hide_sym_by_version' 8265 .................................. 8266 8267 *Synopsis* 8268 bfd_boolean bfd_hide_sym_by_version 8269 (struct bfd_elf_version_tree *verdefs, const char *sym_name); 8270 *Description* 8271 Search an elf version script tree for symbol versioning info for a 8272 given symbol. Return TRUE if the symbol is hidden. 8273 8274 8275 File: bfd.info, Node: Hash Tables, Prev: Linker Functions, Up: BFD front end 8276 8277 2.18 Hash Tables 8278 ================ 8279 8280 BFD provides a simple set of hash table functions. Routines are 8281 provided to initialize a hash table, to free a hash table, to look up a 8282 string in a hash table and optionally create an entry for it, and to 8283 traverse a hash table. There is currently no routine to delete an 8284 string from a hash table. 8285 8286 The basic hash table does not permit any data to be stored with a 8287 string. However, a hash table is designed to present a base class from 8288 which other types of hash tables may be derived. These derived types 8289 may store additional information with the string. Hash tables were 8290 implemented in this way, rather than simply providing a data pointer in 8291 a hash table entry, because they were designed for use by the linker 8292 back ends. The linker may create thousands of hash table entries, and 8293 the overhead of allocating private data and storing and following 8294 pointers becomes noticeable. 8295 8296 The basic hash table code is in `hash.c'. 8297 8298 * Menu: 8299 8300 * Creating and Freeing a Hash Table:: 8301 * Looking Up or Entering a String:: 8302 * Traversing a Hash Table:: 8303 * Deriving a New Hash Table Type:: 8304 8305 8306 File: bfd.info, Node: Creating and Freeing a Hash Table, Next: Looking Up or Entering a String, Prev: Hash Tables, Up: Hash Tables 8307 8308 2.18.1 Creating and freeing a hash table 8309 ---------------------------------------- 8310 8311 To create a hash table, create an instance of a `struct bfd_hash_table' 8312 (defined in `bfd.h') and call `bfd_hash_table_init' (if you know 8313 approximately how many entries you will need, the function 8314 `bfd_hash_table_init_n', which takes a SIZE argument, may be used). 8315 `bfd_hash_table_init' returns `FALSE' if some sort of error occurs. 8316 8317 The function `bfd_hash_table_init' take as an argument a function to 8318 use to create new entries. For a basic hash table, use the function 8319 `bfd_hash_newfunc'. *Note Deriving a New Hash Table Type::, for why 8320 you would want to use a different value for this argument. 8321 8322 `bfd_hash_table_init' will create an objalloc which will be used to 8323 allocate new entries. You may allocate memory on this objalloc using 8324 `bfd_hash_allocate'. 8325 8326 Use `bfd_hash_table_free' to free up all the memory that has been 8327 allocated for a hash table. This will not free up the `struct 8328 bfd_hash_table' itself, which you must provide. 8329 8330 Use `bfd_hash_set_default_size' to set the default size of hash 8331 table to use. 8332 8333 8334 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 8335 8336 2.18.2 Looking up or entering a string 8337 -------------------------------------- 8338 8339 The function `bfd_hash_lookup' is used both to look up a string in the 8340 hash table and to create a new entry. 8341 8342 If the CREATE argument is `FALSE', `bfd_hash_lookup' will look up a 8343 string. If the string is found, it will returns a pointer to a `struct 8344 bfd_hash_entry'. If the string is not found in the table 8345 `bfd_hash_lookup' will return `NULL'. You should not modify any of the 8346 fields in the returns `struct bfd_hash_entry'. 8347 8348 If the CREATE argument is `TRUE', the string will be entered into 8349 the hash table if it is not already there. Either way a pointer to a 8350 `struct bfd_hash_entry' will be returned, either to the existing 8351 structure or to a newly created one. In this case, a `NULL' return 8352 means that an error occurred. 8353 8354 If the CREATE argument is `TRUE', and a new entry is created, the 8355 COPY argument is used to decide whether to copy the string onto the 8356 hash table objalloc or not. If COPY is passed as `FALSE', you must be 8357 careful not to deallocate or modify the string as long as the hash table 8358 exists. 8359 8360 8361 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 8362 8363 2.18.3 Traversing a hash table 8364 ------------------------------ 8365 8366 The function `bfd_hash_traverse' may be used to traverse a hash table, 8367 calling a function on each element. The traversal is done in a random 8368 order. 8369 8370 `bfd_hash_traverse' takes as arguments a function and a generic 8371 `void *' pointer. The function is called with a hash table entry (a 8372 `struct bfd_hash_entry *') and the generic pointer passed to 8373 `bfd_hash_traverse'. The function must return a `boolean' value, which 8374 indicates whether to continue traversing the hash table. If the 8375 function returns `FALSE', `bfd_hash_traverse' will stop the traversal 8376 and return immediately. 8377 8378 8379 File: bfd.info, Node: Deriving a New Hash Table Type, Prev: Traversing a Hash Table, Up: Hash Tables 8380 8381 2.18.4 Deriving a new hash table type 8382 ------------------------------------- 8383 8384 Many uses of hash tables want to store additional information which 8385 each entry in the hash table. Some also find it convenient to store 8386 additional information with the hash table itself. This may be done 8387 using a derived hash table. 8388 8389 Since C is not an object oriented language, creating a derived hash 8390 table requires sticking together some boilerplate routines with a few 8391 differences specific to the type of hash table you want to create. 8392 8393 An example of a derived hash table is the linker hash table. The 8394 structures for this are defined in `bfdlink.h'. The functions are in 8395 `linker.c'. 8396 8397 You may also derive a hash table from an already derived hash table. 8398 For example, the a.out linker backend code uses a hash table derived 8399 from the linker hash table. 8400 8401 * Menu: 8402 8403 * Define the Derived Structures:: 8404 * Write the Derived Creation Routine:: 8405 * Write Other Derived Routines:: 8406 8407 8408 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 8409 8410 2.18.4.1 Define the derived structures 8411 ...................................... 8412 8413 You must define a structure for an entry in the hash table, and a 8414 structure for the hash table itself. 8415 8416 The first field in the structure for an entry in the hash table must 8417 be of the type used for an entry in the hash table you are deriving 8418 from. If you are deriving from a basic hash table this is `struct 8419 bfd_hash_entry', which is defined in `bfd.h'. The first field in the 8420 structure for the hash table itself must be of the type of the hash 8421 table you are deriving from itself. If you are deriving from a basic 8422 hash table, this is `struct bfd_hash_table'. 8423 8424 For example, the linker hash table defines `struct 8425 bfd_link_hash_entry' (in `bfdlink.h'). The first field, `root', is of 8426 type `struct bfd_hash_entry'. Similarly, the first field in `struct 8427 bfd_link_hash_table', `table', is of type `struct bfd_hash_table'. 8428 8429 8430 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 8431 8432 2.18.4.2 Write the derived creation routine 8433 ........................................... 8434 8435 You must write a routine which will create and initialize an entry in 8436 the hash table. This routine is passed as the function argument to 8437 `bfd_hash_table_init'. 8438 8439 In order to permit other hash tables to be derived from the hash 8440 table you are creating, this routine must be written in a standard way. 8441 8442 The first argument to the creation routine is a pointer to a hash 8443 table entry. This may be `NULL', in which case the routine should 8444 allocate the right amount of space. Otherwise the space has already 8445 been allocated by a hash table type derived from this one. 8446 8447 After allocating space, the creation routine must call the creation 8448 routine of the hash table type it is derived from, passing in a pointer 8449 to the space it just allocated. This will initialize any fields used 8450 by the base hash table. 8451 8452 Finally the creation routine must initialize any local fields for 8453 the new hash table type. 8454 8455 Here is a boilerplate example of a creation routine. FUNCTION_NAME 8456 is the name of the routine. ENTRY_TYPE is the type of an entry in the 8457 hash table you are creating. BASE_NEWFUNC is the name of the creation 8458 routine of the hash table type your hash table is derived from. 8459 8460 struct bfd_hash_entry * 8461 FUNCTION_NAME (struct bfd_hash_entry *entry, 8462 struct bfd_hash_table *table, 8463 const char *string) 8464 { 8465 struct ENTRY_TYPE *ret = (ENTRY_TYPE *) entry; 8466 8467 /* Allocate the structure if it has not already been allocated by a 8468 derived class. */ 8469 if (ret == NULL) 8470 { 8471 ret = bfd_hash_allocate (table, sizeof (* ret)); 8472 if (ret == NULL) 8473 return NULL; 8474 } 8475 8476 /* Call the allocation method of the base class. */ 8477 ret = ((ENTRY_TYPE *) 8478 BASE_NEWFUNC ((struct bfd_hash_entry *) ret, table, string)); 8479 8480 /* Initialize the local fields here. */ 8481 8482 return (struct bfd_hash_entry *) ret; 8483 } 8484 *Description* 8485 The creation routine for the linker hash table, which is in `linker.c', 8486 looks just like this example. FUNCTION_NAME is 8487 `_bfd_link_hash_newfunc'. ENTRY_TYPE is `struct bfd_link_hash_entry'. 8488 BASE_NEWFUNC is `bfd_hash_newfunc', the creation routine for a basic 8489 hash table. 8490 8491 `_bfd_link_hash_newfunc' also initializes the local fields in a 8492 linker hash table entry: `type', `written' and `next'. 8493 8494 8495 File: bfd.info, Node: Write Other Derived Routines, Prev: Write the Derived Creation Routine, Up: Deriving a New Hash Table Type 8496 8497 2.18.4.3 Write other derived routines 8498 ..................................... 8499 8500 You will want to write other routines for your new hash table, as well. 8501 8502 You will want an initialization routine which calls the 8503 initialization routine of the hash table you are deriving from and 8504 initializes any other local fields. For the linker hash table, this is 8505 `_bfd_link_hash_table_init' in `linker.c'. 8506 8507 You will want a lookup routine which calls the lookup routine of the 8508 hash table you are deriving from and casts the result. The linker hash 8509 table uses `bfd_link_hash_lookup' in `linker.c' (this actually takes an 8510 additional argument which it uses to decide how to return the looked up 8511 value). 8512 8513 You may want a traversal routine. This should just call the 8514 traversal routine of the hash table you are deriving from with 8515 appropriate casts. The linker hash table uses `bfd_link_hash_traverse' 8516 in `linker.c'. 8517 8518 These routines may simply be defined as macros. For example, the 8519 a.out backend linker hash table, which is derived from the linker hash 8520 table, uses macros for the lookup and traversal routines. These are 8521 `aout_link_hash_lookup' and `aout_link_hash_traverse' in aoutx.h. 8522 8523 8524 File: bfd.info, Node: BFD back ends, Next: GNU Free Documentation License, Prev: BFD front end, Up: Top 8525 8526 3 BFD back ends 8527 *************** 8528 8529 * Menu: 8530 8531 * What to Put Where:: 8532 * aout :: a.out backends 8533 * coff :: coff backends 8534 * elf :: elf backends 8535 * mmo :: mmo backend 8536 8537 8538 File: bfd.info, Node: What to Put Where, Next: aout, Prev: BFD back ends, Up: BFD back ends 8539 8540 3.1 What to Put Where 8541 ===================== 8542 8543 All of BFD lives in one directory. 8544 8545 8546 File: bfd.info, Node: aout, Next: coff, Prev: What to Put Where, Up: BFD back ends 8547 8548 3.2 a.out backends 8549 ================== 8550 8551 *Description* 8552 BFD supports a number of different flavours of a.out format, though the 8553 major differences are only the sizes of the structures on disk, and the 8554 shape of the relocation information. 8555 8556 The support is split into a basic support file `aoutx.h' and other 8557 files which derive functions from the base. One derivation file is 8558 `aoutf1.h' (for a.out flavour 1), and adds to the basic a.out functions 8559 support for sun3, sun4, 386 and 29k a.out files, to create a target 8560 jump vector for a specific target. 8561 8562 This information is further split out into more specific files for 8563 each machine, including `sunos.c' for sun3 and sun4, `newsos3.c' for 8564 the Sony NEWS, and `demo64.c' for a demonstration of a 64 bit a.out 8565 format. 8566 8567 The base file `aoutx.h' defines general mechanisms for reading and 8568 writing records to and from disk and various other methods which BFD 8569 requires. It is included by `aout32.c' and `aout64.c' to form the names 8570 `aout_32_swap_exec_header_in', `aout_64_swap_exec_header_in', etc. 8571 8572 As an example, this is what goes on to make the back end for a sun4, 8573 from `aout32.c': 8574 8575 #define ARCH_SIZE 32 8576 #include "aoutx.h" 8577 8578 Which exports names: 8579 8580 ... 8581 aout_32_canonicalize_reloc 8582 aout_32_find_nearest_line 8583 aout_32_get_lineno 8584 aout_32_get_reloc_upper_bound 8585 ... 8586 8587 from `sunos.c': 8588 8589 #define TARGET_NAME "a.out-sunos-big" 8590 #define VECNAME sunos_big_vec 8591 #include "aoutf1.h" 8592 8593 requires all the names from `aout32.c', and produces the jump vector 8594 8595 sunos_big_vec 8596 8597 The file `host-aout.c' is a special case. It is for a large set of 8598 hosts that use "more or less standard" a.out files, and for which 8599 cross-debugging is not interesting. It uses the standard 32-bit a.out 8600 support routines, but determines the file offsets and addresses of the 8601 text, data, and BSS sections, the machine architecture and machine 8602 type, and the entry point address, in a host-dependent manner. Once 8603 these values have been determined, generic code is used to handle the 8604 object file. 8605 8606 When porting it to run on a new system, you must supply: 8607 8608 HOST_PAGE_SIZE 8609 HOST_SEGMENT_SIZE 8610 HOST_MACHINE_ARCH (optional) 8611 HOST_MACHINE_MACHINE (optional) 8612 HOST_TEXT_START_ADDR 8613 HOST_STACK_END_ADDR 8614 8615 in the file `../include/sys/h-XXX.h' (for your host). These values, 8616 plus the structures and macros defined in `a.out.h' on your host 8617 system, will produce a BFD target that will access ordinary a.out files 8618 on your host. To configure a new machine to use `host-aout.c', specify: 8619 8620 TDEFAULTS = -DDEFAULT_VECTOR=host_aout_big_vec 8621 TDEPFILES= host-aout.o trad-core.o 8622 8623 in the `config/XXX.mt' file, and modify `configure.in' to use the 8624 `XXX.mt' file (by setting "`bfd_target=XXX'") when your configuration 8625 is selected. 8626 8627 3.2.1 Relocations 8628 ----------------- 8629 8630 *Description* 8631 The file `aoutx.h' provides for both the _standard_ and _extended_ 8632 forms of a.out relocation records. 8633 8634 The standard records contain only an address, a symbol index, and a 8635 type field. The extended records (used on 29ks and sparcs) also have a 8636 full integer for an addend. 8637 8638 3.2.2 Internal entry points 8639 --------------------------- 8640 8641 *Description* 8642 `aoutx.h' exports several routines for accessing the contents of an 8643 a.out file, which are gathered and exported in turn by various format 8644 specific files (eg sunos.c). 8645 8646 3.2.2.1 `aout_SIZE_swap_exec_header_in' 8647 ....................................... 8648 8649 *Synopsis* 8650 void aout_SIZE_swap_exec_header_in, 8651 (bfd *abfd, 8652 struct external_exec *bytes, 8653 struct internal_exec *execp); 8654 *Description* 8655 Swap the information in an executable header RAW_BYTES taken from a raw 8656 byte stream memory image into the internal exec header structure EXECP. 8657 8658 3.2.2.2 `aout_SIZE_swap_exec_header_out' 8659 ........................................ 8660 8661 *Synopsis* 8662 void aout_SIZE_swap_exec_header_out 8663 (bfd *abfd, 8664 struct internal_exec *execp, 8665 struct external_exec *raw_bytes); 8666 *Description* 8667 Swap the information in an internal exec header structure EXECP into 8668 the buffer RAW_BYTES ready for writing to disk. 8669 8670 3.2.2.3 `aout_SIZE_some_aout_object_p' 8671 ...................................... 8672 8673 *Synopsis* 8674 const bfd_target *aout_SIZE_some_aout_object_p 8675 (bfd *abfd, 8676 struct internal_exec *execp, 8677 const bfd_target *(*callback_to_real_object_p) (bfd *)); 8678 *Description* 8679 Some a.out variant thinks that the file open in ABFD checking is an 8680 a.out file. Do some more checking, and set up for access if it really 8681 is. Call back to the calling environment's "finish up" function just 8682 before returning, to handle any last-minute setup. 8683 8684 3.2.2.4 `aout_SIZE_mkobject' 8685 ............................ 8686 8687 *Synopsis* 8688 bfd_boolean aout_SIZE_mkobject, (bfd *abfd); 8689 *Description* 8690 Initialize BFD ABFD for use with a.out files. 8691 8692 3.2.2.5 `aout_SIZE_machine_type' 8693 ................................ 8694 8695 *Synopsis* 8696 enum machine_type aout_SIZE_machine_type 8697 (enum bfd_architecture arch, 8698 unsigned long machine, 8699 bfd_boolean *unknown); 8700 *Description* 8701 Keep track of machine architecture and machine type for a.out's. Return 8702 the `machine_type' for a particular architecture and machine, or 8703 `M_UNKNOWN' if that exact architecture and machine can't be represented 8704 in a.out format. 8705 8706 If the architecture is understood, machine type 0 (default) is 8707 always understood. 8708 8709 3.2.2.6 `aout_SIZE_set_arch_mach' 8710 ................................. 8711 8712 *Synopsis* 8713 bfd_boolean aout_SIZE_set_arch_mach, 8714 (bfd *, 8715 enum bfd_architecture arch, 8716 unsigned long machine); 8717 *Description* 8718 Set the architecture and the machine of the BFD ABFD to the values ARCH 8719 and MACHINE. Verify that ABFD's format can support the architecture 8720 required. 8721 8722 3.2.2.7 `aout_SIZE_new_section_hook' 8723 .................................... 8724 8725 *Synopsis* 8726 bfd_boolean aout_SIZE_new_section_hook, 8727 (bfd *abfd, 8728 asection *newsect); 8729 *Description* 8730 Called by the BFD in response to a `bfd_make_section' request. 8731 8732 8733 File: bfd.info, Node: coff, Next: elf, Prev: aout, Up: BFD back ends 8734 8735 3.3 coff backends 8736 ================= 8737 8738 BFD supports a number of different flavours of coff format. The major 8739 differences between formats are the sizes and alignments of fields in 8740 structures on disk, and the occasional extra field. 8741 8742 Coff in all its varieties is implemented with a few common files and 8743 a number of implementation specific files. For example, The 88k bcs 8744 coff format is implemented in the file `coff-m88k.c'. This file 8745 `#include's `coff/m88k.h' which defines the external structure of the 8746 coff format for the 88k, and `coff/internal.h' which defines the 8747 internal structure. `coff-m88k.c' also defines the relocations used by 8748 the 88k format *Note Relocations::. 8749 8750 The Intel i960 processor version of coff is implemented in 8751 `coff-i960.c'. This file has the same structure as `coff-m88k.c', 8752 except that it includes `coff/i960.h' rather than `coff-m88k.h'. 8753 8754 3.3.1 Porting to a new version of coff 8755 -------------------------------------- 8756 8757 The recommended method is to select from the existing implementations 8758 the version of coff which is most like the one you want to use. For 8759 example, we'll say that i386 coff is the one you select, and that your 8760 coff flavour is called foo. Copy `i386coff.c' to `foocoff.c', copy 8761 `../include/coff/i386.h' to `../include/coff/foo.h', and add the lines 8762 to `targets.c' and `Makefile.in' so that your new back end is used. 8763 Alter the shapes of the structures in `../include/coff/foo.h' so that 8764 they match what you need. You will probably also have to add `#ifdef's 8765 to the code in `coff/internal.h' and `coffcode.h' if your version of 8766 coff is too wild. 8767 8768 You can verify that your new BFD backend works quite simply by 8769 building `objdump' from the `binutils' directory, and making sure that 8770 its version of what's going on and your host system's idea (assuming it 8771 has the pretty standard coff dump utility, usually called `att-dump' or 8772 just `dump') are the same. Then clean up your code, and send what 8773 you've done to Cygnus. Then your stuff will be in the next release, and 8774 you won't have to keep integrating it. 8775 8776 3.3.2 How the coff backend works 8777 -------------------------------- 8778 8779 3.3.2.1 File layout 8780 ................... 8781 8782 The Coff backend is split into generic routines that are applicable to 8783 any Coff target and routines that are specific to a particular target. 8784 The target-specific routines are further split into ones which are 8785 basically the same for all Coff targets except that they use the 8786 external symbol format or use different values for certain constants. 8787 8788 The generic routines are in `coffgen.c'. These routines work for 8789 any Coff target. They use some hooks into the target specific code; 8790 the hooks are in a `bfd_coff_backend_data' structure, one of which 8791 exists for each target. 8792 8793 The essentially similar target-specific routines are in 8794 `coffcode.h'. This header file includes executable C code. The 8795 various Coff targets first include the appropriate Coff header file, 8796 make any special defines that are needed, and then include `coffcode.h'. 8797 8798 Some of the Coff targets then also have additional routines in the 8799 target source file itself. 8800 8801 For example, `coff-i960.c' includes `coff/internal.h' and 8802 `coff/i960.h'. It then defines a few constants, such as `I960', and 8803 includes `coffcode.h'. Since the i960 has complex relocation types, 8804 `coff-i960.c' also includes some code to manipulate the i960 relocs. 8805 This code is not in `coffcode.h' because it would not be used by any 8806 other target. 8807 8808 3.3.2.2 Coff long section names 8809 ............................... 8810 8811 In the standard Coff object format, section names are limited to the 8812 eight bytes available in the `s_name' field of the `SCNHDR' section 8813 header structure. The format requires the field to be NUL-padded, but 8814 not necessarily NUL-terminated, so the longest section names permitted 8815 are a full eight characters. 8816 8817 The Microsoft PE variants of the Coff object file format add an 8818 extension to support the use of long section names. This extension is 8819 defined in section 4 of the Microsoft PE/COFF specification (rev 8.1). 8820 If a section name is too long to fit into the section header's `s_name' 8821 field, it is instead placed into the string table, and the `s_name' 8822 field is filled with a slash ("/") followed by the ASCII decimal 8823 representation of the offset of the full name relative to the string 8824 table base. 8825 8826 Note that this implies that the extension can only be used in object 8827 files, as executables do not contain a string table. The standard 8828 specifies that long section names from objects emitted into executable 8829 images are to be truncated. 8830 8831 However, as a GNU extension, BFD can generate executable images that 8832 contain a string table and long section names. This would appear to be 8833 technically valid, as the standard only says that Coff debugging 8834 information is deprecated, not forbidden, and in practice it works, 8835 although some tools that parse PE files expecting the MS standard 8836 format may become confused; `PEview' is one known example. 8837 8838 The functionality is supported in BFD by code implemented under the 8839 control of the macro `COFF_LONG_SECTION_NAMES'. If not defined, the 8840 format does not support long section names in any way. If defined, it 8841 is used to initialise a flag, `_bfd_coff_long_section_names', and a 8842 hook function pointer, `_bfd_coff_set_long_section_names', in the Coff 8843 backend data structure. The flag controls the generation of long 8844 section names in output BFDs at runtime; if it is false, as it will be 8845 by default when generating an executable image, long section names are 8846 truncated; if true, the long section names extension is employed. The 8847 hook points to a function that allows the value of the flag to be 8848 altered at runtime, on formats that support long section names at all; 8849 on other formats it points to a stub that returns an error indication. 8850 With input BFDs, the flag is set according to whether any long section 8851 names are detected while reading the section headers. For a completely 8852 new BFD, the flag is set to the default for the target format. This 8853 information can be used by a client of the BFD library when deciding 8854 what output format to generate, and means that a BFD that is opened for 8855 read and subsequently converted to a writeable BFD and modified 8856 in-place will retain whatever format it had on input. 8857 8858 If `COFF_LONG_SECTION_NAMES' is simply defined (blank), or is 8859 defined to the value "1", then long section names are enabled by 8860 default; if it is defined to the value zero, they are disabled by 8861 default (but still accepted in input BFDs). The header `coffcode.h' 8862 defines a macro, `COFF_DEFAULT_LONG_SECTION_NAMES', which is used in 8863 the backends to initialise the backend data structure fields 8864 appropriately; see the comments for further detail. 8865 8866 3.3.2.3 Bit twiddling 8867 ..................... 8868 8869 Each flavour of coff supported in BFD has its own header file 8870 describing the external layout of the structures. There is also an 8871 internal description of the coff layout, in `coff/internal.h'. A major 8872 function of the coff backend is swapping the bytes and twiddling the 8873 bits to translate the external form of the structures into the normal 8874 internal form. This is all performed in the `bfd_swap'_thing_direction 8875 routines. Some elements are different sizes between different versions 8876 of coff; it is the duty of the coff version specific include file to 8877 override the definitions of various packing routines in `coffcode.h'. 8878 E.g., the size of line number entry in coff is sometimes 16 bits, and 8879 sometimes 32 bits. `#define'ing `PUT_LNSZ_LNNO' and `GET_LNSZ_LNNO' 8880 will select the correct one. No doubt, some day someone will find a 8881 version of coff which has a varying field size not catered to at the 8882 moment. To port BFD, that person will have to add more `#defines'. 8883 Three of the bit twiddling routines are exported to `gdb'; 8884 `coff_swap_aux_in', `coff_swap_sym_in' and `coff_swap_lineno_in'. `GDB' 8885 reads the symbol table on its own, but uses BFD to fix things up. More 8886 of the bit twiddlers are exported for `gas'; `coff_swap_aux_out', 8887 `coff_swap_sym_out', `coff_swap_lineno_out', `coff_swap_reloc_out', 8888 `coff_swap_filehdr_out', `coff_swap_aouthdr_out', 8889 `coff_swap_scnhdr_out'. `Gas' currently keeps track of all the symbol 8890 table and reloc drudgery itself, thereby saving the internal BFD 8891 overhead, but uses BFD to swap things on the way out, making cross 8892 ports much safer. Doing so also allows BFD (and thus the linker) to 8893 use the same header files as `gas', which makes one avenue to disaster 8894 disappear. 8895 8896 3.3.2.4 Symbol reading 8897 ...................... 8898 8899 The simple canonical form for symbols used by BFD is not rich enough to 8900 keep all the information available in a coff symbol table. The back end 8901 gets around this problem by keeping the original symbol table around, 8902 "behind the scenes". 8903 8904 When a symbol table is requested (through a call to 8905 `bfd_canonicalize_symtab'), a request gets through to 8906 `coff_get_normalized_symtab'. This reads the symbol table from the coff 8907 file and swaps all the structures inside into the internal form. It 8908 also fixes up all the pointers in the table (represented in the file by 8909 offsets from the first symbol in the table) into physical pointers to 8910 elements in the new internal table. This involves some work since the 8911 meanings of fields change depending upon context: a field that is a 8912 pointer to another structure in the symbol table at one moment may be 8913 the size in bytes of a structure at the next. Another pass is made 8914 over the table. All symbols which mark file names (`C_FILE' symbols) 8915 are modified so that the internal string points to the value in the 8916 auxent (the real filename) rather than the normal text associated with 8917 the symbol (`".file"'). 8918 8919 At this time the symbol names are moved around. Coff stores all 8920 symbols less than nine characters long physically within the symbol 8921 table; longer strings are kept at the end of the file in the string 8922 table. This pass moves all strings into memory and replaces them with 8923 pointers to the strings. 8924 8925 The symbol table is massaged once again, this time to create the 8926 canonical table used by the BFD application. Each symbol is inspected 8927 in turn, and a decision made (using the `sclass' field) about the 8928 various flags to set in the `asymbol'. *Note Symbols::. The generated 8929 canonical table shares strings with the hidden internal symbol table. 8930 8931 Any linenumbers are read from the coff file too, and attached to the 8932 symbols which own the functions the linenumbers belong to. 8933 8934 3.3.2.5 Symbol writing 8935 ...................... 8936 8937 Writing a symbol to a coff file which didn't come from a coff file will 8938 lose any debugging information. The `asymbol' structure remembers the 8939 BFD from which the symbol was taken, and on output the back end makes 8940 sure that the same destination target as source target is present. 8941 8942 When the symbols have come from a coff file then all the debugging 8943 information is preserved. 8944 8945 Symbol tables are provided for writing to the back end in a vector 8946 of pointers to pointers. This allows applications like the linker to 8947 accumulate and output large symbol tables without having to do too much 8948 byte copying. 8949 8950 This function runs through the provided symbol table and patches 8951 each symbol marked as a file place holder (`C_FILE') to point to the 8952 next file place holder in the list. It also marks each `offset' field 8953 in the list with the offset from the first symbol of the current symbol. 8954 8955 Another function of this procedure is to turn the canonical value 8956 form of BFD into the form used by coff. Internally, BFD expects symbol 8957 values to be offsets from a section base; so a symbol physically at 8958 0x120, but in a section starting at 0x100, would have the value 0x20. 8959 Coff expects symbols to contain their final value, so symbols have 8960 their values changed at this point to reflect their sum with their 8961 owning section. This transformation uses the `output_section' field of 8962 the `asymbol''s `asection' *Note Sections::. 8963 8964 * `coff_mangle_symbols' 8965 This routine runs though the provided symbol table and uses the 8966 offsets generated by the previous pass and the pointers generated when 8967 the symbol table was read in to create the structured hierarchy 8968 required by coff. It changes each pointer to a symbol into the index 8969 into the symbol table of the asymbol. 8970 8971 * `coff_write_symbols' 8972 This routine runs through the symbol table and patches up the 8973 symbols from their internal form into the coff way, calls the bit 8974 twiddlers, and writes out the table to the file. 8975 8976 3.3.2.6 `coff_symbol_type' 8977 .......................... 8978 8979 *Description* 8980 The hidden information for an `asymbol' is described in a 8981 `combined_entry_type': 8982 8983 8984 typedef struct coff_ptr_struct 8985 { 8986 /* Remembers the offset from the first symbol in the file for 8987 this symbol. Generated by coff_renumber_symbols. */ 8988 unsigned int offset; 8989 8990 /* Should the value of this symbol be renumbered. Used for 8991 XCOFF C_BSTAT symbols. Set by coff_slurp_symbol_table. */ 8992 unsigned int fix_value : 1; 8993 8994 /* Should the tag field of this symbol be renumbered. 8995 Created by coff_pointerize_aux. */ 8996 unsigned int fix_tag : 1; 8997 8998 /* Should the endidx field of this symbol be renumbered. 8999 Created by coff_pointerize_aux. */ 9000 unsigned int fix_end : 1; 9001 9002 /* Should the x_csect.x_scnlen field be renumbered. 9003 Created by coff_pointerize_aux. */ 9004 unsigned int fix_scnlen : 1; 9005 9006 /* Fix up an XCOFF C_BINCL/C_EINCL symbol. The value is the 9007 index into the line number entries. Set by coff_slurp_symbol_table. */ 9008 unsigned int fix_line : 1; 9009 9010 /* The container for the symbol structure as read and translated 9011 from the file. */ 9012 union 9013 { 9014 union internal_auxent auxent; 9015 struct internal_syment syment; 9016 } u; 9017 } combined_entry_type; 9018 9019 9020 /* Each canonical asymbol really looks like this: */ 9021 9022 typedef struct coff_symbol_struct 9023 { 9024 /* The actual symbol which the rest of BFD works with */ 9025 asymbol symbol; 9026 9027 /* A pointer to the hidden information for this symbol */ 9028 combined_entry_type *native; 9029 9030 /* A pointer to the linenumber information for this symbol */ 9031 struct lineno_cache_entry *lineno; 9032 9033 /* Have the line numbers been relocated yet ? */ 9034 bfd_boolean done_lineno; 9035 } coff_symbol_type; 9036 9037 3.3.2.7 `bfd_coff_backend_data' 9038 ............................... 9039 9040 /* COFF symbol classifications. */ 9041 9042 enum coff_symbol_classification 9043 { 9044 /* Global symbol. */ 9045 COFF_SYMBOL_GLOBAL, 9046 /* Common symbol. */ 9047 COFF_SYMBOL_COMMON, 9048 /* Undefined symbol. */ 9049 COFF_SYMBOL_UNDEFINED, 9050 /* Local symbol. */ 9051 COFF_SYMBOL_LOCAL, 9052 /* PE section symbol. */ 9053 COFF_SYMBOL_PE_SECTION 9054 }; 9055 Special entry points for gdb to swap in coff symbol table parts: 9056 typedef struct 9057 { 9058 void (*_bfd_coff_swap_aux_in) 9059 (bfd *, void *, int, int, int, int, void *); 9060 9061 void (*_bfd_coff_swap_sym_in) 9062 (bfd *, void *, void *); 9063 9064 void (*_bfd_coff_swap_lineno_in) 9065 (bfd *, void *, void *); 9066 9067 unsigned int (*_bfd_coff_swap_aux_out) 9068 (bfd *, void *, int, int, int, int, void *); 9069 9070 unsigned int (*_bfd_coff_swap_sym_out) 9071 (bfd *, void *, void *); 9072 9073 unsigned int (*_bfd_coff_swap_lineno_out) 9074 (bfd *, void *, void *); 9075 9076 unsigned int (*_bfd_coff_swap_reloc_out) 9077 (bfd *, void *, void *); 9078 9079 unsigned int (*_bfd_coff_swap_filehdr_out) 9080 (bfd *, void *, void *); 9081 9082 unsigned int (*_bfd_coff_swap_aouthdr_out) 9083 (bfd *, void *, void *); 9084 9085 unsigned int (*_bfd_coff_swap_scnhdr_out) 9086 (bfd *, void *, void *); 9087 9088 unsigned int _bfd_filhsz; 9089 unsigned int _bfd_aoutsz; 9090 unsigned int _bfd_scnhsz; 9091 unsigned int _bfd_symesz; 9092 unsigned int _bfd_auxesz; 9093 unsigned int _bfd_relsz; 9094 unsigned int _bfd_linesz; 9095 unsigned int _bfd_filnmlen; 9096 bfd_boolean _bfd_coff_long_filenames; 9097 9098 bfd_boolean _bfd_coff_long_section_names; 9099 bfd_boolean (*_bfd_coff_set_long_section_names) 9100 (bfd *, int); 9101 9102 unsigned int _bfd_coff_default_section_alignment_power; 9103 bfd_boolean _bfd_coff_force_symnames_in_strings; 9104 unsigned int _bfd_coff_debug_string_prefix_length; 9105 9106 void (*_bfd_coff_swap_filehdr_in) 9107 (bfd *, void *, void *); 9108 9109 void (*_bfd_coff_swap_aouthdr_in) 9110 (bfd *, void *, void *); 9111 9112 void (*_bfd_coff_swap_scnhdr_in) 9113 (bfd *, void *, void *); 9114 9115 void (*_bfd_coff_swap_reloc_in) 9116 (bfd *abfd, void *, void *); 9117 9118 bfd_boolean (*_bfd_coff_bad_format_hook) 9119 (bfd *, void *); 9120 9121 bfd_boolean (*_bfd_coff_set_arch_mach_hook) 9122 (bfd *, void *); 9123 9124 void * (*_bfd_coff_mkobject_hook) 9125 (bfd *, void *, void *); 9126 9127 bfd_boolean (*_bfd_styp_to_sec_flags_hook) 9128 (bfd *, void *, const char *, asection *, flagword *); 9129 9130 void (*_bfd_set_alignment_hook) 9131 (bfd *, asection *, void *); 9132 9133 bfd_boolean (*_bfd_coff_slurp_symbol_table) 9134 (bfd *); 9135 9136 bfd_boolean (*_bfd_coff_symname_in_debug) 9137 (bfd *, struct internal_syment *); 9138 9139 bfd_boolean (*_bfd_coff_pointerize_aux_hook) 9140 (bfd *, combined_entry_type *, combined_entry_type *, 9141 unsigned int, combined_entry_type *); 9142 9143 bfd_boolean (*_bfd_coff_print_aux) 9144 (bfd *, FILE *, combined_entry_type *, combined_entry_type *, 9145 combined_entry_type *, unsigned int); 9146 9147 void (*_bfd_coff_reloc16_extra_cases) 9148 (bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *, 9149 bfd_byte *, unsigned int *, unsigned int *); 9150 9151 int (*_bfd_coff_reloc16_estimate) 9152 (bfd *, asection *, arelent *, unsigned int, 9153 struct bfd_link_info *); 9154 9155 enum coff_symbol_classification (*_bfd_coff_classify_symbol) 9156 (bfd *, struct internal_syment *); 9157 9158 bfd_boolean (*_bfd_coff_compute_section_file_positions) 9159 (bfd *); 9160 9161 bfd_boolean (*_bfd_coff_start_final_link) 9162 (bfd *, struct bfd_link_info *); 9163 9164 bfd_boolean (*_bfd_coff_relocate_section) 9165 (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, 9166 struct internal_reloc *, struct internal_syment *, asection **); 9167 9168 reloc_howto_type *(*_bfd_coff_rtype_to_howto) 9169 (bfd *, asection *, struct internal_reloc *, 9170 struct coff_link_hash_entry *, struct internal_syment *, 9171 bfd_vma *); 9172 9173 bfd_boolean (*_bfd_coff_adjust_symndx) 9174 (bfd *, struct bfd_link_info *, bfd *, asection *, 9175 struct internal_reloc *, bfd_boolean *); 9176 9177 bfd_boolean (*_bfd_coff_link_add_one_symbol) 9178 (struct bfd_link_info *, bfd *, const char *, flagword, 9179 asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean, 9180 struct bfd_link_hash_entry **); 9181 9182 bfd_boolean (*_bfd_coff_link_output_has_begun) 9183 (bfd *, struct coff_final_link_info *); 9184 9185 bfd_boolean (*_bfd_coff_final_link_postscript) 9186 (bfd *, struct coff_final_link_info *); 9187 9188 bfd_boolean (*_bfd_coff_print_pdata) 9189 (bfd *, void *); 9190 9191 } bfd_coff_backend_data; 9192 9193 #define coff_backend_info(abfd) \ 9194 ((bfd_coff_backend_data *) (abfd)->xvec->backend_data) 9195 9196 #define bfd_coff_swap_aux_in(a,e,t,c,ind,num,i) \ 9197 ((coff_backend_info (a)->_bfd_coff_swap_aux_in) (a,e,t,c,ind,num,i)) 9198 9199 #define bfd_coff_swap_sym_in(a,e,i) \ 9200 ((coff_backend_info (a)->_bfd_coff_swap_sym_in) (a,e,i)) 9201 9202 #define bfd_coff_swap_lineno_in(a,e,i) \ 9203 ((coff_backend_info ( a)->_bfd_coff_swap_lineno_in) (a,e,i)) 9204 9205 #define bfd_coff_swap_reloc_out(abfd, i, o) \ 9206 ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_out) (abfd, i, o)) 9207 9208 #define bfd_coff_swap_lineno_out(abfd, i, o) \ 9209 ((coff_backend_info (abfd)->_bfd_coff_swap_lineno_out) (abfd, i, o)) 9210 9211 #define bfd_coff_swap_aux_out(a,i,t,c,ind,num,o) \ 9212 ((coff_backend_info (a)->_bfd_coff_swap_aux_out) (a,i,t,c,ind,num,o)) 9213 9214 #define bfd_coff_swap_sym_out(abfd, i,o) \ 9215 ((coff_backend_info (abfd)->_bfd_coff_swap_sym_out) (abfd, i, o)) 9216 9217 #define bfd_coff_swap_scnhdr_out(abfd, i,o) \ 9218 ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_out) (abfd, i, o)) 9219 9220 #define bfd_coff_swap_filehdr_out(abfd, i,o) \ 9221 ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_out) (abfd, i, o)) 9222 9223 #define bfd_coff_swap_aouthdr_out(abfd, i,o) \ 9224 ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_out) (abfd, i, o)) 9225 9226 #define bfd_coff_filhsz(abfd) (coff_backend_info (abfd)->_bfd_filhsz) 9227 #define bfd_coff_aoutsz(abfd) (coff_backend_info (abfd)->_bfd_aoutsz) 9228 #define bfd_coff_scnhsz(abfd) (coff_backend_info (abfd)->_bfd_scnhsz) 9229 #define bfd_coff_symesz(abfd) (coff_backend_info (abfd)->_bfd_symesz) 9230 #define bfd_coff_auxesz(abfd) (coff_backend_info (abfd)->_bfd_auxesz) 9231 #define bfd_coff_relsz(abfd) (coff_backend_info (abfd)->_bfd_relsz) 9232 #define bfd_coff_linesz(abfd) (coff_backend_info (abfd)->_bfd_linesz) 9233 #define bfd_coff_filnmlen(abfd) (coff_backend_info (abfd)->_bfd_filnmlen) 9234 #define bfd_coff_long_filenames(abfd) \ 9235 (coff_backend_info (abfd)->_bfd_coff_long_filenames) 9236 #define bfd_coff_long_section_names(abfd) \ 9237 (coff_backend_info (abfd)->_bfd_coff_long_section_names) 9238 #define bfd_coff_set_long_section_names(abfd, enable) \ 9239 ((coff_backend_info (abfd)->_bfd_coff_set_long_section_names) (abfd, enable)) 9240 #define bfd_coff_default_section_alignment_power(abfd) \ 9241 (coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power) 9242 #define bfd_coff_swap_filehdr_in(abfd, i,o) \ 9243 ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o)) 9244 9245 #define bfd_coff_swap_aouthdr_in(abfd, i,o) \ 9246 ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_in) (abfd, i, o)) 9247 9248 #define bfd_coff_swap_scnhdr_in(abfd, i,o) \ 9249 ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_in) (abfd, i, o)) 9250 9251 #define bfd_coff_swap_reloc_in(abfd, i, o) \ 9252 ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_in) (abfd, i, o)) 9253 9254 #define bfd_coff_bad_format_hook(abfd, filehdr) \ 9255 ((coff_backend_info (abfd)->_bfd_coff_bad_format_hook) (abfd, filehdr)) 9256 9257 #define bfd_coff_set_arch_mach_hook(abfd, filehdr)\ 9258 ((coff_backend_info (abfd)->_bfd_coff_set_arch_mach_hook) (abfd, filehdr)) 9259 #define bfd_coff_mkobject_hook(abfd, filehdr, aouthdr)\ 9260 ((coff_backend_info (abfd)->_bfd_coff_mkobject_hook)\ 9261 (abfd, filehdr, aouthdr)) 9262 9263 #define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name, section, flags_ptr)\ 9264 ((coff_backend_info (abfd)->_bfd_styp_to_sec_flags_hook)\ 9265 (abfd, scnhdr, name, section, flags_ptr)) 9266 9267 #define bfd_coff_set_alignment_hook(abfd, sec, scnhdr)\ 9268 ((coff_backend_info (abfd)->_bfd_set_alignment_hook) (abfd, sec, scnhdr)) 9269 9270 #define bfd_coff_slurp_symbol_table(abfd)\ 9271 ((coff_backend_info (abfd)->_bfd_coff_slurp_symbol_table) (abfd)) 9272 9273 #define bfd_coff_symname_in_debug(abfd, sym)\ 9274 ((coff_backend_info (abfd)->_bfd_coff_symname_in_debug) (abfd, sym)) 9275 9276 #define bfd_coff_force_symnames_in_strings(abfd)\ 9277 (coff_backend_info (abfd)->_bfd_coff_force_symnames_in_strings) 9278 9279 #define bfd_coff_debug_string_prefix_length(abfd)\ 9280 (coff_backend_info (abfd)->_bfd_coff_debug_string_prefix_length) 9281 9282 #define bfd_coff_print_aux(abfd, file, base, symbol, aux, indaux)\ 9283 ((coff_backend_info (abfd)->_bfd_coff_print_aux)\ 9284 (abfd, file, base, symbol, aux, indaux)) 9285 9286 #define bfd_coff_reloc16_extra_cases(abfd, link_info, link_order,\ 9287 reloc, data, src_ptr, dst_ptr)\ 9288 ((coff_backend_info (abfd)->_bfd_coff_reloc16_extra_cases)\ 9289 (abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr)) 9290 9291 #define bfd_coff_reloc16_estimate(abfd, section, reloc, shrink, link_info)\ 9292 ((coff_backend_info (abfd)->_bfd_coff_reloc16_estimate)\ 9293 (abfd, section, reloc, shrink, link_info)) 9294 9295 #define bfd_coff_classify_symbol(abfd, sym)\ 9296 ((coff_backend_info (abfd)->_bfd_coff_classify_symbol)\ 9297 (abfd, sym)) 9298 9299 #define bfd_coff_compute_section_file_positions(abfd)\ 9300 ((coff_backend_info (abfd)->_bfd_coff_compute_section_file_positions)\ 9301 (abfd)) 9302 9303 #define bfd_coff_start_final_link(obfd, info)\ 9304 ((coff_backend_info (obfd)->_bfd_coff_start_final_link)\ 9305 (obfd, info)) 9306 #define bfd_coff_relocate_section(obfd,info,ibfd,o,con,rel,isyms,secs)\ 9307 ((coff_backend_info (ibfd)->_bfd_coff_relocate_section)\ 9308 (obfd, info, ibfd, o, con, rel, isyms, secs)) 9309 #define bfd_coff_rtype_to_howto(abfd, sec, rel, h, sym, addendp)\ 9310 ((coff_backend_info (abfd)->_bfd_coff_rtype_to_howto)\ 9311 (abfd, sec, rel, h, sym, addendp)) 9312 #define bfd_coff_adjust_symndx(obfd, info, ibfd, sec, rel, adjustedp)\ 9313 ((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\ 9314 (obfd, info, ibfd, sec, rel, adjustedp)) 9315 #define bfd_coff_link_add_one_symbol(info, abfd, name, flags, section,\ 9316 value, string, cp, coll, hashp)\ 9317 ((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\ 9318 (info, abfd, name, flags, section, value, string, cp, coll, hashp)) 9319 9320 #define bfd_coff_link_output_has_begun(a,p) \ 9321 ((coff_backend_info (a)->_bfd_coff_link_output_has_begun) (a, p)) 9322 #define bfd_coff_final_link_postscript(a,p) \ 9323 ((coff_backend_info (a)->_bfd_coff_final_link_postscript) (a, p)) 9324 9325 #define bfd_coff_have_print_pdata(a) \ 9326 (coff_backend_info (a)->_bfd_coff_print_pdata) 9327 #define bfd_coff_print_pdata(a,p) \ 9328 ((coff_backend_info (a)->_bfd_coff_print_pdata) (a, p)) 9329 9330 /* Macro: Returns true if the bfd is a PE executable as opposed to a 9331 PE object file. */ 9332 #define bfd_pei_p(abfd) \ 9333 (CONST_STRNEQ ((abfd)->xvec->name, "pei-")) 9334 9335 3.3.2.8 Writing relocations 9336 ........................... 9337 9338 To write relocations, the back end steps though the canonical 9339 relocation table and create an `internal_reloc'. The symbol index to 9340 use is removed from the `offset' field in the symbol table supplied. 9341 The address comes directly from the sum of the section base address and 9342 the relocation offset; the type is dug directly from the howto field. 9343 Then the `internal_reloc' is swapped into the shape of an 9344 `external_reloc' and written out to disk. 9345 9346 3.3.2.9 Reading linenumbers 9347 ........................... 9348 9349 Creating the linenumber table is done by reading in the entire coff 9350 linenumber table, and creating another table for internal use. 9351 9352 A coff linenumber table is structured so that each function is 9353 marked as having a line number of 0. Each line within the function is 9354 an offset from the first line in the function. The base of the line 9355 number information for the table is stored in the symbol associated 9356 with the function. 9357 9358 Note: The PE format uses line number 0 for a flag indicating a new 9359 source file. 9360 9361 The information is copied from the external to the internal table, 9362 and each symbol which marks a function is marked by pointing its... 9363 9364 How does this work ? 9365 9366 3.3.2.10 Reading relocations 9367 ............................ 9368 9369 Coff relocations are easily transformed into the internal BFD form 9370 (`arelent'). 9371 9372 Reading a coff relocation table is done in the following stages: 9373 9374 * Read the entire coff relocation table into memory. 9375 9376 * Process each relocation in turn; first swap it from the external 9377 to the internal form. 9378 9379 * Turn the symbol referenced in the relocation's symbol index into a 9380 pointer into the canonical symbol table. This table is the same 9381 as the one returned by a call to `bfd_canonicalize_symtab'. The 9382 back end will call that routine and save the result if a 9383 canonicalization hasn't been done. 9384 9385 * The reloc index is turned into a pointer to a howto structure, in 9386 a back end specific way. For instance, the 386 and 960 use the 9387 `r_type' to directly produce an index into a howto table vector; 9388 the 88k subtracts a number from the `r_type' field and creates an 9389 addend field. 9390 9391 9392 File: bfd.info, Node: elf, Next: mmo, Prev: coff, Up: BFD back ends 9393 9394 3.4 ELF backends 9395 ================ 9396 9397 BFD support for ELF formats is being worked on. Currently, the best 9398 supported back ends are for sparc and i386 (running svr4 or Solaris 2). 9399 9400 Documentation of the internals of the support code still needs to be 9401 written. The code is changing quickly enough that we haven't bothered 9402 yet. 9403 9404 9405 File: bfd.info, Node: mmo, Prev: elf, Up: BFD back ends 9406 9407 3.5 mmo backend 9408 =============== 9409 9410 The mmo object format is used exclusively together with Professor 9411 Donald E. Knuth's educational 64-bit processor MMIX. The simulator 9412 `mmix' which is available at 9413 `http://www-cs-faculty.stanford.edu/~knuth/programs/mmix.tar.gz' 9414 understands this format. That package also includes a combined 9415 assembler and linker called `mmixal'. The mmo format has no advantages 9416 feature-wise compared to e.g. ELF. It is a simple non-relocatable 9417 object format with no support for archives or debugging information, 9418 except for symbol value information and line numbers (which is not yet 9419 implemented in BFD). See 9420 `http://www-cs-faculty.stanford.edu/~knuth/mmix.html' for more 9421 information about MMIX. The ELF format is used for intermediate object 9422 files in the BFD implementation. 9423 9424 * Menu: 9425 9426 * File layout:: 9427 * Symbol-table:: 9428 * mmo section mapping:: 9429 9430 9431 File: bfd.info, Node: File layout, Next: Symbol-table, Prev: mmo, Up: mmo 9432 9433 3.5.1 File layout 9434 ----------------- 9435 9436 The mmo file contents is not partitioned into named sections as with 9437 e.g. ELF. Memory areas is formed by specifying the location of the 9438 data that follows. Only the memory area `0x0000...00' to `0x01ff...ff' 9439 is executable, so it is used for code (and constants) and the area 9440 `0x2000...00' to `0x20ff...ff' is used for writable data. *Note mmo 9441 section mapping::. 9442 9443 There is provision for specifying "special data" of 65536 different 9444 types. We use type 80 (decimal), arbitrarily chosen the same as the 9445 ELF `e_machine' number for MMIX, filling it with section information 9446 normally found in ELF objects. *Note mmo section mapping::. 9447 9448 Contents is entered as 32-bit words, xor:ed over previous contents, 9449 always zero-initialized. A word that starts with the byte `0x98' forms 9450 a command called a `lopcode', where the next byte distinguished between 9451 the thirteen lopcodes. The two remaining bytes, called the `Y' and `Z' 9452 fields, or the `YZ' field (a 16-bit big-endian number), are used for 9453 various purposes different for each lopcode. As documented in 9454 `http://www-cs-faculty.stanford.edu/~knuth/mmixal-intro.ps.gz', the 9455 lopcodes are: 9456 9457 `lop_quote' 9458 0x98000001. The next word is contents, regardless of whether it 9459 starts with 0x98 or not. 9460 9461 `lop_loc' 9462 0x9801YYZZ, where `Z' is 1 or 2. This is a location directive, 9463 setting the location for the next data to the next 32-bit word 9464 (for Z = 1) or 64-bit word (for Z = 2), plus Y * 2^56. Normally 9465 `Y' is 0 for the text segment and 2 for the data segment. 9466 9467 `lop_skip' 9468 0x9802YYZZ. Increase the current location by `YZ' bytes. 9469 9470 `lop_fixo' 9471 0x9803YYZZ, where `Z' is 1 or 2. Store the current location as 64 9472 bits into the location pointed to by the next 32-bit (Z = 1) or 9473 64-bit (Z = 2) word, plus Y * 2^56. 9474 9475 `lop_fixr' 9476 0x9804YYZZ. `YZ' is stored into the current location plus 2 - 4 * 9477 YZ. 9478 9479 `lop_fixrx' 9480 0x980500ZZ. `Z' is 16 or 24. A value `L' derived from the 9481 following 32-bit word are used in a manner similar to `YZ' in 9482 lop_fixr: it is xor:ed into the current location minus 4 * L. The 9483 first byte of the word is 0 or 1. If it is 1, then L = (LOWEST 24 9484 BITS OF WORD) - 2^Z, if 0, then L = (LOWEST 24 BITS OF WORD). 9485 9486 `lop_file' 9487 0x9806YYZZ. `Y' is the file number, `Z' is count of 32-bit words. 9488 Set the file number to `Y' and the line counter to 0. The next Z 9489 * 4 bytes contain the file name, padded with zeros if the count is 9490 not a multiple of four. The same `Y' may occur multiple times, 9491 but `Z' must be 0 for all but the first occurrence. 9492 9493 `lop_line' 9494 0x9807YYZZ. `YZ' is the line number. Together with lop_file, it 9495 forms the source location for the next 32-bit word. Note that for 9496 each non-lopcode 32-bit word, line numbers are assumed incremented 9497 by one. 9498 9499 `lop_spec' 9500 0x9808YYZZ. `YZ' is the type number. Data until the next lopcode 9501 other than lop_quote forms special data of type `YZ'. *Note mmo 9502 section mapping::. 9503 9504 Other types than 80, (or type 80 with a content that does not 9505 parse) is stored in sections named `.MMIX.spec_data.N' where N is 9506 the `YZ'-type. The flags for such a sections say not to allocate 9507 or load the data. The vma is 0. Contents of multiple occurrences 9508 of special data N is concatenated to the data of the previous 9509 lop_spec Ns. The location in data or code at which the lop_spec 9510 occurred is lost. 9511 9512 `lop_pre' 9513 0x980901ZZ. The first lopcode in a file. The `Z' field forms the 9514 length of header information in 32-bit words, where the first word 9515 tells the time in seconds since `00:00:00 GMT Jan 1 1970'. 9516 9517 `lop_post' 9518 0x980a00ZZ. Z > 32. This lopcode follows after all 9519 content-generating lopcodes in a program. The `Z' field denotes 9520 the value of `rG' at the beginning of the program. The following 9521 256 - Z big-endian 64-bit words are loaded into global registers 9522 `$G' ... `$255'. 9523 9524 `lop_stab' 9525 0x980b0000. The next-to-last lopcode in a program. Must follow 9526 immediately after the lop_post lopcode and its data. After this 9527 lopcode follows all symbols in a compressed format (*note 9528 Symbol-table::). 9529 9530 `lop_end' 9531 0x980cYYZZ. The last lopcode in a program. It must follow the 9532 lop_stab lopcode and its data. The `YZ' field contains the number 9533 of 32-bit words of symbol table information after the preceding 9534 lop_stab lopcode. 9535 9536 Note that the lopcode "fixups"; `lop_fixr', `lop_fixrx' and 9537 `lop_fixo' are not generated by BFD, but are handled. They are 9538 generated by `mmixal'. 9539 9540 This trivial one-label, one-instruction file: 9541 9542 :Main TRAP 1,2,3 9543 9544 can be represented this way in mmo: 9545 9546 0x98090101 - lop_pre, one 32-bit word with timestamp. 9547 <timestamp> 9548 0x98010002 - lop_loc, text segment, using a 64-bit address. 9549 Note that mmixal does not emit this for the file above. 9550 0x00000000 - Address, high 32 bits. 9551 0x00000000 - Address, low 32 bits. 9552 0x98060002 - lop_file, 2 32-bit words for file-name. 9553 0x74657374 - "test" 9554 0x2e730000 - ".s\0\0" 9555 0x98070001 - lop_line, line 1. 9556 0x00010203 - TRAP 1,2,3 9557 0x980a00ff - lop_post, setting $255 to 0. 9558 0x00000000 9559 0x00000000 9560 0x980b0000 - lop_stab for ":Main" = 0, serial 1. 9561 0x203a4040 *Note Symbol-table::. 9562 0x10404020 9563 0x4d206120 9564 0x69016e00 9565 0x81000000 9566 0x980c0005 - lop_end; symbol table contained five 32-bit words. 9567 9568 9569 File: bfd.info, Node: Symbol-table, Next: mmo section mapping, Prev: File layout, Up: mmo 9570 9571 3.5.2 Symbol table format 9572 ------------------------- 9573 9574 From mmixal.w (or really, the generated mmixal.tex) in 9575 `http://www-cs-faculty.stanford.edu/~knuth/programs/mmix.tar.gz'): 9576 "Symbols are stored and retrieved by means of a `ternary search trie', 9577 following ideas of Bentley and Sedgewick. (See ACM-SIAM Symp. on 9578 Discrete Algorithms `8' (1997), 360-369; R.Sedgewick, `Algorithms in C' 9579 (Reading, Mass. Addison-Wesley, 1998), `15.4'.) Each trie node stores 9580 a character, and there are branches to subtries for the cases where a 9581 given character is less than, equal to, or greater than the character 9582 in the trie. There also is a pointer to a symbol table entry if a 9583 symbol ends at the current node." 9584 9585 So it's a tree encoded as a stream of bytes. The stream of bytes 9586 acts on a single virtual global symbol, adding and removing characters 9587 and signalling complete symbol points. Here, we read the stream and 9588 create symbols at the completion points. 9589 9590 First, there's a control byte `m'. If any of the listed bits in `m' 9591 is nonzero, we execute what stands at the right, in the listed order: 9592 9593 (MMO3_LEFT) 9594 0x40 - Traverse left trie. 9595 (Read a new command byte and recurse.) 9596 9597 (MMO3_SYMBITS) 9598 0x2f - Read the next byte as a character and store it in the 9599 current character position; increment character position. 9600 Test the bits of `m': 9601 9602 (MMO3_WCHAR) 9603 0x80 - The character is 16-bit (so read another byte, 9604 merge into current character. 9605 9606 (MMO3_TYPEBITS) 9607 0xf - We have a complete symbol; parse the type, value 9608 and serial number and do what should be done 9609 with a symbol. The type and length information 9610 is in j = (m & 0xf). 9611 9612 (MMO3_REGQUAL_BITS) 9613 j == 0xf: A register variable. The following 9614 byte tells which register. 9615 j <= 8: An absolute symbol. Read j bytes as the 9616 big-endian number the symbol equals. 9617 A j = 2 with two zero bytes denotes an 9618 unknown symbol. 9619 j > 8: As with j <= 8, but add (0x20 << 56) 9620 to the value in the following j - 8 9621 bytes. 9622 9623 Then comes the serial number, as a variant of 9624 uleb128, but better named ubeb128: 9625 Read bytes and shift the previous value left 7 9626 (multiply by 128). Add in the new byte, repeat 9627 until a byte has bit 7 set. The serial number 9628 is the computed value minus 128. 9629 9630 (MMO3_MIDDLE) 9631 0x20 - Traverse middle trie. (Read a new command byte 9632 and recurse.) Decrement character position. 9633 9634 (MMO3_RIGHT) 9635 0x10 - Traverse right trie. (Read a new command byte and 9636 recurse.) 9637 9638 Let's look again at the `lop_stab' for the trivial file (*note File 9639 layout::). 9640 9641 0x980b0000 - lop_stab for ":Main" = 0, serial 1. 9642 0x203a4040 9643 0x10404020 9644 0x4d206120 9645 0x69016e00 9646 0x81000000 9647 9648 This forms the trivial trie (note that the path between ":" and "M" 9649 is redundant): 9650 9651 203a ":" 9652 40 / 9653 40 / 9654 10 \ 9655 40 / 9656 40 / 9657 204d "M" 9658 2061 "a" 9659 2069 "i" 9660 016e "n" is the last character in a full symbol, and 9661 with a value represented in one byte. 9662 00 The value is 0. 9663 81 The serial number is 1. 9664 9665 9666 File: bfd.info, Node: mmo section mapping, Prev: Symbol-table, Up: mmo 9667 9668 3.5.3 mmo section mapping 9669 ------------------------- 9670 9671 The implementation in BFD uses special data type 80 (decimal) to 9672 encapsulate and describe named sections, containing e.g. debug 9673 information. If needed, any datum in the encapsulation will be quoted 9674 using lop_quote. First comes a 32-bit word holding the number of 9675 32-bit words containing the zero-terminated zero-padded segment name. 9676 After the name there's a 32-bit word holding flags describing the 9677 section type. Then comes a 64-bit big-endian word with the section 9678 length (in bytes), then another with the section start address. 9679 Depending on the type of section, the contents might follow, 9680 zero-padded to 32-bit boundary. For a loadable section (such as data 9681 or code), the contents might follow at some later point, not 9682 necessarily immediately, as a lop_loc with the same start address as in 9683 the section description, followed by the contents. This in effect 9684 forms a descriptor that must be emitted before the actual contents. 9685 Sections described this way must not overlap. 9686 9687 For areas that don't have such descriptors, synthetic sections are 9688 formed by BFD. Consecutive contents in the two memory areas 9689 `0x0000...00' to `0x01ff...ff' and `0x2000...00' to `0x20ff...ff' are 9690 entered in sections named `.text' and `.data' respectively. If an area 9691 is not otherwise described, but would together with a neighboring lower 9692 area be less than `0x40000000' bytes long, it is joined with the lower 9693 area and the gap is zero-filled. For other cases, a new section is 9694 formed, named `.MMIX.sec.N'. Here, N is a number, a running count 9695 through the mmo file, starting at 0. 9696 9697 A loadable section specified as: 9698 9699 .section secname,"ax" 9700 TETRA 1,2,3,4,-1,-2009 9701 BYTE 80 9702 9703 and linked to address `0x4', is represented by the sequence: 9704 9705 0x98080050 - lop_spec 80 9706 0x00000002 - two 32-bit words for the section name 9707 0x7365636e - "secn" 9708 0x616d6500 - "ame\0" 9709 0x00000033 - flags CODE, READONLY, LOAD, ALLOC 9710 0x00000000 - high 32 bits of section length 9711 0x0000001c - section length is 28 bytes; 6 * 4 + 1 + alignment to 32 bits 9712 0x00000000 - high 32 bits of section address 9713 0x00000004 - section address is 4 9714 0x98010002 - 64 bits with address of following data 9715 0x00000000 - high 32 bits of address 9716 0x00000004 - low 32 bits: data starts at address 4 9717 0x00000001 - 1 9718 0x00000002 - 2 9719 0x00000003 - 3 9720 0x00000004 - 4 9721 0xffffffff - -1 9722 0xfffff827 - -2009 9723 0x50000000 - 80 as a byte, padded with zeros. 9724 9725 Note that the lop_spec wrapping does not include the section 9726 contents. Compare this to a non-loaded section specified as: 9727 9728 .section thirdsec 9729 TETRA 200001,100002 9730 BYTE 38,40 9731 9732 This, when linked to address `0x200000000000001c', is represented by: 9733 9734 0x98080050 - lop_spec 80 9735 0x00000002 - two 32-bit words for the section name 9736 0x7365636e - "thir" 9737 0x616d6500 - "dsec" 9738 0x00000010 - flag READONLY 9739 0x00000000 - high 32 bits of section length 9740 0x0000000c - section length is 12 bytes; 2 * 4 + 2 + alignment to 32 bits 9741 0x20000000 - high 32 bits of address 9742 0x0000001c - low 32 bits of address 0x200000000000001c 9743 0x00030d41 - 200001 9744 0x000186a2 - 100002 9745 0x26280000 - 38, 40 as bytes, padded with zeros 9746 9747 For the latter example, the section contents must not be loaded in 9748 memory, and is therefore specified as part of the special data. The 9749 address is usually unimportant but might provide information for e.g. 9750 the DWARF 2 debugging format. 9751 9752 9753 File: bfd.info, Node: GNU Free Documentation License, Next: BFD Index, Prev: BFD back ends, Up: Top 9754 9755 Version 1.3, 3 November 2008 9756 9757 Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. 9758 `http://fsf.org/' 9759 9760 Everyone is permitted to copy and distribute verbatim copies 9761 of this license document, but changing it is not allowed. 9762 9763 0. PREAMBLE 9764 9765 The purpose of this License is to make a manual, textbook, or other 9766 functional and useful document "free" in the sense of freedom: to 9767 assure everyone the effective freedom to copy and redistribute it, 9768 with or without modifying it, either commercially or 9769 noncommercially. Secondarily, this License preserves for the 9770 author and publisher a way to get credit for their work, while not 9771 being considered responsible for modifications made by others. 9772 9773 This License is a kind of "copyleft", which means that derivative 9774 works of the document must themselves be free in the same sense. 9775 It complements the GNU General Public License, which is a copyleft 9776 license designed for free software. 9777 9778 We have designed this License in order to use it for manuals for 9779 free software, because free software needs free documentation: a 9780 free program should come with manuals providing the same freedoms 9781 that the software does. But this License is not limited to 9782 software manuals; it can be used for any textual work, regardless 9783 of subject matter or whether it is published as a printed book. 9784 We recommend this License principally for works whose purpose is 9785 instruction or reference. 9786 9787 1. APPLICABILITY AND DEFINITIONS 9788 9789 This License applies to any manual or other work, in any medium, 9790 that contains a notice placed by the copyright holder saying it 9791 can be distributed under the terms of this License. Such a notice 9792 grants a world-wide, royalty-free license, unlimited in duration, 9793 to use that work under the conditions stated herein. The 9794 "Document", below, refers to any such manual or work. Any member 9795 of the public is a licensee, and is addressed as "you". You 9796 accept the license if you copy, modify or distribute the work in a 9797 way requiring permission under copyright law. 9798 9799 A "Modified Version" of the Document means any work containing the 9800 Document or a portion of it, either copied verbatim, or with 9801 modifications and/or translated into another language. 9802 9803 A "Secondary Section" is a named appendix or a front-matter section 9804 of the Document that deals exclusively with the relationship of the 9805 publishers or authors of the Document to the Document's overall 9806 subject (or to related matters) and contains nothing that could 9807 fall directly within that overall subject. (Thus, if the Document 9808 is in part a textbook of mathematics, a Secondary Section may not 9809 explain any mathematics.) The relationship could be a matter of 9810 historical connection with the subject or with related matters, or 9811 of legal, commercial, philosophical, ethical or political position 9812 regarding them. 9813 9814 The "Invariant Sections" are certain Secondary Sections whose 9815 titles are designated, as being those of Invariant Sections, in 9816 the notice that says that the Document is released under this 9817 License. If a section does not fit the above definition of 9818 Secondary then it is not allowed to be designated as Invariant. 9819 The Document may contain zero Invariant Sections. If the Document 9820 does not identify any Invariant Sections then there are none. 9821 9822 The "Cover Texts" are certain short passages of text that are 9823 listed, as Front-Cover Texts or Back-Cover Texts, in the notice 9824 that says that the Document is released under this License. A 9825 Front-Cover Text may be at most 5 words, and a Back-Cover Text may 9826 be at most 25 words. 9827 9828 A "Transparent" copy of the Document means a machine-readable copy, 9829 represented in a format whose specification is available to the 9830 general public, that is suitable for revising the document 9831 straightforwardly with generic text editors or (for images 9832 composed of pixels) generic paint programs or (for drawings) some 9833 widely available drawing editor, and that is suitable for input to 9834 text formatters or for automatic translation to a variety of 9835 formats suitable for input to text formatters. A copy made in an 9836 otherwise Transparent file format whose markup, or absence of 9837 markup, has been arranged to thwart or discourage subsequent 9838 modification by readers is not Transparent. An image format is 9839 not Transparent if used for any substantial amount of text. A 9840 copy that is not "Transparent" is called "Opaque". 9841 9842 Examples of suitable formats for Transparent copies include plain 9843 ASCII without markup, Texinfo input format, LaTeX input format, 9844 SGML or XML using a publicly available DTD, and 9845 standard-conforming simple HTML, PostScript or PDF designed for 9846 human modification. Examples of transparent image formats include 9847 PNG, XCF and JPG. Opaque formats include proprietary formats that 9848 can be read and edited only by proprietary word processors, SGML or 9849 XML for which the DTD and/or processing tools are not generally 9850 available, and the machine-generated HTML, PostScript or PDF 9851 produced by some word processors for output purposes only. 9852 9853 The "Title Page" means, for a printed book, the title page itself, 9854 plus such following pages as are needed to hold, legibly, the 9855 material this License requires to appear in the title page. For 9856 works in formats which do not have any title page as such, "Title 9857 Page" means the text near the most prominent appearance of the 9858 work's title, preceding the beginning of the body of the text. 9859 9860 The "publisher" means any person or entity that distributes copies 9861 of the Document to the public. 9862 9863 A section "Entitled XYZ" means a named subunit of the Document 9864 whose title either is precisely XYZ or contains XYZ in parentheses 9865 following text that translates XYZ in another language. (Here XYZ 9866 stands for a specific section name mentioned below, such as 9867 "Acknowledgements", "Dedications", "Endorsements", or "History".) 9868 To "Preserve the Title" of such a section when you modify the 9869 Document means that it remains a section "Entitled XYZ" according 9870 to this definition. 9871 9872 The Document may include Warranty Disclaimers next to the notice 9873 which states that this License applies to the Document. These 9874 Warranty Disclaimers are considered to be included by reference in 9875 this License, but only as regards disclaiming warranties: any other 9876 implication that these Warranty Disclaimers may have is void and 9877 has no effect on the meaning of this License. 9878 9879 2. VERBATIM COPYING 9880 9881 You may copy and distribute the Document in any medium, either 9882 commercially or noncommercially, provided that this License, the 9883 copyright notices, and the license notice saying this License 9884 applies to the Document are reproduced in all copies, and that you 9885 add no other conditions whatsoever to those of this License. You 9886 may not use technical measures to obstruct or control the reading 9887 or further copying of the copies you make or distribute. However, 9888 you may accept compensation in exchange for copies. If you 9889 distribute a large enough number of copies you must also follow 9890 the conditions in section 3. 9891 9892 You may also lend copies, under the same conditions stated above, 9893 and you may publicly display copies. 9894 9895 3. COPYING IN QUANTITY 9896 9897 If you publish printed copies (or copies in media that commonly 9898 have printed covers) of the Document, numbering more than 100, and 9899 the Document's license notice requires Cover Texts, you must 9900 enclose the copies in covers that carry, clearly and legibly, all 9901 these Cover Texts: Front-Cover Texts on the front cover, and 9902 Back-Cover Texts on the back cover. Both covers must also clearly 9903 and legibly identify you as the publisher of these copies. The 9904 front cover must present the full title with all words of the 9905 title equally prominent and visible. You may add other material 9906 on the covers in addition. Copying with changes limited to the 9907 covers, as long as they preserve the title of the Document and 9908 satisfy these conditions, can be treated as verbatim copying in 9909 other respects. 9910 9911 If the required texts for either cover are too voluminous to fit 9912 legibly, you should put the first ones listed (as many as fit 9913 reasonably) on the actual cover, and continue the rest onto 9914 adjacent pages. 9915 9916 If you publish or distribute Opaque copies of the Document 9917 numbering more than 100, you must either include a 9918 machine-readable Transparent copy along with each Opaque copy, or 9919 state in or with each Opaque copy a computer-network location from 9920 which the general network-using public has access to download 9921 using public-standard network protocols a complete Transparent 9922 copy of the Document, free of added material. If you use the 9923 latter option, you must take reasonably prudent steps, when you 9924 begin distribution of Opaque copies in quantity, to ensure that 9925 this Transparent copy will remain thus accessible at the stated 9926 location until at least one year after the last time you 9927 distribute an Opaque copy (directly or through your agents or 9928 retailers) of that edition to the public. 9929 9930 It is requested, but not required, that you contact the authors of 9931 the Document well before redistributing any large number of 9932 copies, to give them a chance to provide you with an updated 9933 version of the Document. 9934 9935 4. MODIFICATIONS 9936 9937 You may copy and distribute a Modified Version of the Document 9938 under the conditions of sections 2 and 3 above, provided that you 9939 release the Modified Version under precisely this License, with 9940 the Modified Version filling the role of the Document, thus 9941 licensing distribution and modification of the Modified Version to 9942 whoever possesses a copy of it. In addition, you must do these 9943 things in the Modified Version: 9944 9945 A. Use in the Title Page (and on the covers, if any) a title 9946 distinct from that of the Document, and from those of 9947 previous versions (which should, if there were any, be listed 9948 in the History section of the Document). You may use the 9949 same title as a previous version if the original publisher of 9950 that version gives permission. 9951 9952 B. List on the Title Page, as authors, one or more persons or 9953 entities responsible for authorship of the modifications in 9954 the Modified Version, together with at least five of the 9955 principal authors of the Document (all of its principal 9956 authors, if it has fewer than five), unless they release you 9957 from this requirement. 9958 9959 C. State on the Title page the name of the publisher of the 9960 Modified Version, as the publisher. 9961 9962 D. Preserve all the copyright notices of the Document. 9963 9964 E. Add an appropriate copyright notice for your modifications 9965 adjacent to the other copyright notices. 9966 9967 F. Include, immediately after the copyright notices, a license 9968 notice giving the public permission to use the Modified 9969 Version under the terms of this License, in the form shown in 9970 the Addendum below. 9971 9972 G. Preserve in that license notice the full lists of Invariant 9973 Sections and required Cover Texts given in the Document's 9974 license notice. 9975 9976 H. Include an unaltered copy of this License. 9977 9978 I. Preserve the section Entitled "History", Preserve its Title, 9979 and add to it an item stating at least the title, year, new 9980 authors, and publisher of the Modified Version as given on 9981 the Title Page. If there is no section Entitled "History" in 9982 the Document, create one stating the title, year, authors, 9983 and publisher of the Document as given on its Title Page, 9984 then add an item describing the Modified Version as stated in 9985 the previous sentence. 9986 9987 J. Preserve the network location, if any, given in the Document 9988 for public access to a Transparent copy of the Document, and 9989 likewise the network locations given in the Document for 9990 previous versions it was based on. These may be placed in 9991 the "History" section. You may omit a network location for a 9992 work that was published at least four years before the 9993 Document itself, or if the original publisher of the version 9994 it refers to gives permission. 9995 9996 K. For any section Entitled "Acknowledgements" or "Dedications", 9997 Preserve the Title of the section, and preserve in the 9998 section all the substance and tone of each of the contributor 9999 acknowledgements and/or dedications given therein. 10000 10001 L. Preserve all the Invariant Sections of the Document, 10002 unaltered in their text and in their titles. Section numbers 10003 or the equivalent are not considered part of the section 10004 titles. 10005 10006 M. Delete any section Entitled "Endorsements". Such a section 10007 may not be included in the Modified Version. 10008 10009 N. Do not retitle any existing section to be Entitled 10010 "Endorsements" or to conflict in title with any Invariant 10011 Section. 10012 10013 O. Preserve any Warranty Disclaimers. 10014 10015 If the Modified Version includes new front-matter sections or 10016 appendices that qualify as Secondary Sections and contain no 10017 material copied from the Document, you may at your option 10018 designate some or all of these sections as invariant. To do this, 10019 add their titles to the list of Invariant Sections in the Modified 10020 Version's license notice. These titles must be distinct from any 10021 other section titles. 10022 10023 You may add a section Entitled "Endorsements", provided it contains 10024 nothing but endorsements of your Modified Version by various 10025 parties--for example, statements of peer review or that the text 10026 has been approved by an organization as the authoritative 10027 definition of a standard. 10028 10029 You may add a passage of up to five words as a Front-Cover Text, 10030 and a passage of up to 25 words as a Back-Cover Text, to the end 10031 of the list of Cover Texts in the Modified Version. Only one 10032 passage of Front-Cover Text and one of Back-Cover Text may be 10033 added by (or through arrangements made by) any one entity. If the 10034 Document already includes a cover text for the same cover, 10035 previously added by you or by arrangement made by the same entity 10036 you are acting on behalf of, you may not add another; but you may 10037 replace the old one, on explicit permission from the previous 10038 publisher that added the old one. 10039 10040 The author(s) and publisher(s) of the Document do not by this 10041 License give permission to use their names for publicity for or to 10042 assert or imply endorsement of any Modified Version. 10043 10044 5. COMBINING DOCUMENTS 10045 10046 You may combine the Document with other documents released under 10047 this License, under the terms defined in section 4 above for 10048 modified versions, provided that you include in the combination 10049 all of the Invariant Sections of all of the original documents, 10050 unmodified, and list them all as Invariant Sections of your 10051 combined work in its license notice, and that you preserve all 10052 their Warranty Disclaimers. 10053 10054 The combined work need only contain one copy of this License, and 10055 multiple identical Invariant Sections may be replaced with a single 10056 copy. If there are multiple Invariant Sections with the same name 10057 but different contents, make the title of each such section unique 10058 by adding at the end of it, in parentheses, the name of the 10059 original author or publisher of that section if known, or else a 10060 unique number. Make the same adjustment to the section titles in 10061 the list of Invariant Sections in the license notice of the 10062 combined work. 10063 10064 In the combination, you must combine any sections Entitled 10065 "History" in the various original documents, forming one section 10066 Entitled "History"; likewise combine any sections Entitled 10067 "Acknowledgements", and any sections Entitled "Dedications". You 10068 must delete all sections Entitled "Endorsements." 10069 10070 6. COLLECTIONS OF DOCUMENTS 10071 10072 You may make a collection consisting of the Document and other 10073 documents released under this License, and replace the individual 10074 copies of this License in the various documents with a single copy 10075 that is included in the collection, provided that you follow the 10076 rules of this License for verbatim copying of each of the 10077 documents in all other respects. 10078 10079 You may extract a single document from such a collection, and 10080 distribute it individually under this License, provided you insert 10081 a copy of this License into the extracted document, and follow 10082 this License in all other respects regarding verbatim copying of 10083 that document. 10084 10085 7. AGGREGATION WITH INDEPENDENT WORKS 10086 10087 A compilation of the Document or its derivatives with other 10088 separate and independent documents or works, in or on a volume of 10089 a storage or distribution medium, is called an "aggregate" if the 10090 copyright resulting from the compilation is not used to limit the 10091 legal rights of the compilation's users beyond what the individual 10092 works permit. When the Document is included in an aggregate, this 10093 License does not apply to the other works in the aggregate which 10094 are not themselves derivative works of the Document. 10095 10096 If the Cover Text requirement of section 3 is applicable to these 10097 copies of the Document, then if the Document is less than one half 10098 of the entire aggregate, the Document's Cover Texts may be placed 10099 on covers that bracket the Document within the aggregate, or the 10100 electronic equivalent of covers if the Document is in electronic 10101 form. Otherwise they must appear on printed covers that bracket 10102 the whole aggregate. 10103 10104 8. TRANSLATION 10105 10106 Translation is considered a kind of modification, so you may 10107 distribute translations of the Document under the terms of section 10108 4. Replacing Invariant Sections with translations requires special 10109 permission from their copyright holders, but you may include 10110 translations of some or all Invariant Sections in addition to the 10111 original versions of these Invariant Sections. You may include a 10112 translation of this License, and all the license notices in the 10113 Document, and any Warranty Disclaimers, provided that you also 10114 include the original English version of this License and the 10115 original versions of those notices and disclaimers. In case of a 10116 disagreement between the translation and the original version of 10117 this License or a notice or disclaimer, the original version will 10118 prevail. 10119 10120 If a section in the Document is Entitled "Acknowledgements", 10121 "Dedications", or "History", the requirement (section 4) to 10122 Preserve its Title (section 1) will typically require changing the 10123 actual title. 10124 10125 9. TERMINATION 10126 10127 You may not copy, modify, sublicense, or distribute the Document 10128 except as expressly provided under this License. Any attempt 10129 otherwise to copy, modify, sublicense, or distribute it is void, 10130 and will automatically terminate your rights under this License. 10131 10132 However, if you cease all violation of this License, then your 10133 license from a particular copyright holder is reinstated (a) 10134 provisionally, unless and until the copyright holder explicitly 10135 and finally terminates your license, and (b) permanently, if the 10136 copyright holder fails to notify you of the violation by some 10137 reasonable means prior to 60 days after the cessation. 10138 10139 Moreover, your license from a particular copyright holder is 10140 reinstated permanently if the copyright holder notifies you of the 10141 violation by some reasonable means, this is the first time you have 10142 received notice of violation of this License (for any work) from 10143 that copyright holder, and you cure the violation prior to 30 days 10144 after your receipt of the notice. 10145 10146 Termination of your rights under this section does not terminate 10147 the licenses of parties who have received copies or rights from 10148 you under this License. If your rights have been terminated and 10149 not permanently reinstated, receipt of a copy of some or all of 10150 the same material does not give you any rights to use it. 10151 10152 10. FUTURE REVISIONS OF THIS LICENSE 10153 10154 The Free Software Foundation may publish new, revised versions of 10155 the GNU Free Documentation License from time to time. Such new 10156 versions will be similar in spirit to the present version, but may 10157 differ in detail to address new problems or concerns. See 10158 `http://www.gnu.org/copyleft/'. 10159 10160 Each version of the License is given a distinguishing version 10161 number. If the Document specifies that a particular numbered 10162 version of this License "or any later version" applies to it, you 10163 have the option of following the terms and conditions either of 10164 that specified version or of any later version that has been 10165 published (not as a draft) by the Free Software Foundation. If 10166 the Document does not specify a version number of this License, 10167 you may choose any version ever published (not as a draft) by the 10168 Free Software Foundation. If the Document specifies that a proxy 10169 can decide which future versions of this License can be used, that 10170 proxy's public statement of acceptance of a version permanently 10171 authorizes you to choose that version for the Document. 10172 10173 11. RELICENSING 10174 10175 "Massive Multiauthor Collaboration Site" (or "MMC Site") means any 10176 World Wide Web server that publishes copyrightable works and also 10177 provides prominent facilities for anybody to edit those works. A 10178 public wiki that anybody can edit is an example of such a server. 10179 A "Massive Multiauthor Collaboration" (or "MMC") contained in the 10180 site means any set of copyrightable works thus published on the MMC 10181 site. 10182 10183 "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 10184 license published by Creative Commons Corporation, a not-for-profit 10185 corporation with a principal place of business in San Francisco, 10186 California, as well as future copyleft versions of that license 10187 published by that same organization. 10188 10189 "Incorporate" means to publish or republish a Document, in whole or 10190 in part, as part of another Document. 10191 10192 An MMC is "eligible for relicensing" if it is licensed under this 10193 License, and if all works that were first published under this 10194 License somewhere other than this MMC, and subsequently 10195 incorporated in whole or in part into the MMC, (1) had no cover 10196 texts or invariant sections, and (2) were thus incorporated prior 10197 to November 1, 2008. 10198 10199 The operator of an MMC Site may republish an MMC contained in the 10200 site under CC-BY-SA on the same site at any time before August 1, 10201 2009, provided the MMC is eligible for relicensing. 10202 10203 10204 ADDENDUM: How to use this License for your documents 10205 ==================================================== 10206 10207 To use this License in a document you have written, include a copy of 10208 the License in the document and put the following copyright and license 10209 notices just after the title page: 10210 10211 Copyright (C) YEAR YOUR NAME. 10212 Permission is granted to copy, distribute and/or modify this document 10213 under the terms of the GNU Free Documentation License, Version 1.3 10214 or any later version published by the Free Software Foundation; 10215 with no Invariant Sections, no Front-Cover Texts, and no Back-Cover 10216 Texts. A copy of the license is included in the section entitled ``GNU 10217 Free Documentation License''. 10218 10219 If you have Invariant Sections, Front-Cover Texts and Back-Cover 10220 Texts, replace the "with...Texts." line with this: 10221 10222 with the Invariant Sections being LIST THEIR TITLES, with 10223 the Front-Cover Texts being LIST, and with the Back-Cover Texts 10224 being LIST. 10225 10226 If you have Invariant Sections without Cover Texts, or some other 10227 combination of the three, merge those two alternatives to suit the 10228 situation. 10229 10230 If your document contains nontrivial examples of program code, we 10231 recommend releasing these examples in parallel under your choice of 10232 free software license, such as the GNU General Public License, to 10233 permit their use in free software. 10234 10235 10236 File: bfd.info, Node: BFD Index, Prev: GNU Free Documentation License, Up: Top 10237 10238 BFD Index 10239 ********* 10240 10241 [index] 10242 * Menu: 10243 10244 * _bfd_final_link_relocate: Relocating the section contents. 10245 (line 22) 10246 * _bfd_generic_link_add_archive_symbols: Adding symbols from an archive. 10247 (line 15) 10248 * _bfd_generic_link_add_one_symbol: Adding symbols from an object file. 10249 (line 19) 10250 * _bfd_generic_make_empty_symbol: symbol handling functions. 10251 (line 92) 10252 * _bfd_link_add_symbols in target vector: Adding Symbols to the Hash Table. 10253 (line 6) 10254 * _bfd_link_final_link in target vector: Performing the Final Link. 10255 (line 6) 10256 * _bfd_link_hash_table_create in target vector: Creating a Linker Hash Table. 10257 (line 6) 10258 * _bfd_relocate_contents: Relocating the section contents. 10259 (line 22) 10260 * aout_SIZE_machine_type: aout. (line 147) 10261 * aout_SIZE_mkobject: aout. (line 139) 10262 * aout_SIZE_new_section_hook: aout. (line 177) 10263 * aout_SIZE_set_arch_mach: aout. (line 164) 10264 * aout_SIZE_some_aout_object_p: aout. (line 125) 10265 * aout_SIZE_swap_exec_header_in: aout. (line 101) 10266 * aout_SIZE_swap_exec_header_out: aout. (line 113) 10267 * arelent_chain: typedef arelent. (line 336) 10268 * BFD: Overview. (line 6) 10269 * BFD canonical format: Canonical format. (line 11) 10270 * bfd_alloc: Opening and Closing. 10271 (line 214) 10272 * bfd_alloc2: Opening and Closing. 10273 (line 223) 10274 * bfd_alt_mach_code: BFD front end. (line 714) 10275 * bfd_arch_bits_per_address: Architectures. (line 540) 10276 * bfd_arch_bits_per_byte: Architectures. (line 532) 10277 * bfd_arch_get_compatible: Architectures. (line 475) 10278 * bfd_arch_list: Architectures. (line 466) 10279 * bfd_arch_mach_octets_per_byte: Architectures. (line 609) 10280 * BFD_ARELOC_BFIN_ADD: howto manager. (line 1058) 10281 * BFD_ARELOC_BFIN_ADDR: howto manager. (line 1109) 10282 * BFD_ARELOC_BFIN_AND: howto manager. (line 1079) 10283 * BFD_ARELOC_BFIN_COMP: howto manager. (line 1100) 10284 * BFD_ARELOC_BFIN_CONST: howto manager. (line 1055) 10285 * BFD_ARELOC_BFIN_DIV: howto manager. (line 1067) 10286 * BFD_ARELOC_BFIN_HWPAGE: howto manager. (line 1106) 10287 * BFD_ARELOC_BFIN_LAND: howto manager. (line 1088) 10288 * BFD_ARELOC_BFIN_LEN: howto manager. (line 1094) 10289 * BFD_ARELOC_BFIN_LOR: howto manager. (line 1091) 10290 * BFD_ARELOC_BFIN_LSHIFT: howto manager. (line 1073) 10291 * BFD_ARELOC_BFIN_MOD: howto manager. (line 1070) 10292 * BFD_ARELOC_BFIN_MULT: howto manager. (line 1064) 10293 * BFD_ARELOC_BFIN_NEG: howto manager. (line 1097) 10294 * BFD_ARELOC_BFIN_OR: howto manager. (line 1082) 10295 * BFD_ARELOC_BFIN_PAGE: howto manager. (line 1103) 10296 * BFD_ARELOC_BFIN_PUSH: howto manager. (line 1052) 10297 * BFD_ARELOC_BFIN_RSHIFT: howto manager. (line 1076) 10298 * BFD_ARELOC_BFIN_SUB: howto manager. (line 1061) 10299 * BFD_ARELOC_BFIN_XOR: howto manager. (line 1085) 10300 * bfd_cache_close: File Caching. (line 26) 10301 * bfd_cache_close_all: File Caching. (line 39) 10302 * bfd_cache_init: File Caching. (line 18) 10303 * bfd_calc_gnu_debuglink_crc32: Opening and Closing. 10304 (line 250) 10305 * bfd_canonicalize_reloc: BFD front end. (line 430) 10306 * bfd_canonicalize_symtab: symbol handling functions. 10307 (line 50) 10308 * bfd_check_format: Formats. (line 21) 10309 * bfd_check_format_matches: Formats. (line 52) 10310 * bfd_check_overflow: typedef arelent. (line 348) 10311 * bfd_close: Opening and Closing. 10312 (line 139) 10313 * bfd_close_all_done: Opening and Closing. 10314 (line 157) 10315 * bfd_coff_backend_data: coff. (line 304) 10316 * bfd_copy_private_bfd_data: BFD front end. (line 569) 10317 * bfd_copy_private_header_data: BFD front end. (line 551) 10318 * bfd_copy_private_section_data: section prototypes. (line 264) 10319 * bfd_copy_private_symbol_data: symbol handling functions. 10320 (line 140) 10321 * bfd_core_file_failing_command: Core Files. (line 12) 10322 * bfd_core_file_failing_signal: Core Files. (line 21) 10323 * bfd_core_file_pid: Core Files. (line 30) 10324 * bfd_create: Opening and Closing. 10325 (line 176) 10326 * bfd_create_gnu_debuglink_section: Opening and Closing. 10327 (line 316) 10328 * bfd_decode_symclass: symbol handling functions. 10329 (line 111) 10330 * bfd_default_arch_struct: Architectures. (line 487) 10331 * bfd_default_compatible: Architectures. (line 549) 10332 * bfd_default_reloc_type_lookup: howto manager. (line 2626) 10333 * bfd_default_scan: Architectures. (line 558) 10334 * bfd_default_set_arch_mach: Architectures. (line 505) 10335 * bfd_demangle: BFD front end. (line 812) 10336 * bfd_emul_get_commonpagesize: BFD front end. (line 792) 10337 * bfd_emul_get_maxpagesize: BFD front end. (line 772) 10338 * bfd_emul_set_commonpagesize: BFD front end. (line 803) 10339 * bfd_emul_set_maxpagesize: BFD front end. (line 783) 10340 * bfd_errmsg: BFD front end. (line 355) 10341 * bfd_fdopenr: Opening and Closing. 10342 (line 49) 10343 * bfd_fill_in_gnu_debuglink_section: Opening and Closing. 10344 (line 330) 10345 * bfd_find_target: bfd_target. (line 468) 10346 * bfd_find_version_for_sym: Writing the symbol table. 10347 (line 81) 10348 * bfd_follow_gnu_debuglink: Opening and Closing. 10349 (line 295) 10350 * bfd_fopen: Opening and Closing. 10351 (line 12) 10352 * bfd_format_string: Formats. (line 79) 10353 * bfd_generic_define_common_symbol: Writing the symbol table. 10354 (line 68) 10355 * bfd_generic_discard_group: section prototypes. (line 290) 10356 * bfd_generic_gc_sections: howto manager. (line 2657) 10357 * bfd_generic_get_relocated_section_contents: howto manager. (line 2686) 10358 * bfd_generic_is_group_section: section prototypes. (line 282) 10359 * bfd_generic_lookup_section_flags: howto manager. (line 2667) 10360 * bfd_generic_merge_sections: howto manager. (line 2676) 10361 * bfd_generic_relax_section: howto manager. (line 2644) 10362 * bfd_get_arch: Architectures. (line 516) 10363 * bfd_get_arch_info: Architectures. (line 568) 10364 * bfd_get_arch_size: BFD front end. (line 474) 10365 * bfd_get_error: BFD front end. (line 336) 10366 * bfd_get_error_handler: BFD front end. (line 406) 10367 * bfd_get_gp_size: BFD front end. (line 515) 10368 * bfd_get_mach: Architectures. (line 524) 10369 * bfd_get_mtime: BFD front end. (line 863) 10370 * bfd_get_next_mapent: Archives. (line 52) 10371 * bfd_get_reloc_code_name: howto manager. (line 2635) 10372 * bfd_get_reloc_size: typedef arelent. (line 327) 10373 * bfd_get_reloc_upper_bound: BFD front end. (line 420) 10374 * bfd_get_section_by_name: section prototypes. (line 17) 10375 * bfd_get_section_by_name_if: section prototypes. (line 31) 10376 * bfd_get_section_contents: section prototypes. (line 237) 10377 * bfd_get_sign_extend_vma: BFD front end. (line 487) 10378 * bfd_get_size <1>: BFD front end. (line 872) 10379 * bfd_get_size: Internal. (line 25) 10380 * bfd_get_symtab_upper_bound: symbol handling functions. 10381 (line 6) 10382 * bfd_get_target_info: bfd_target. (line 484) 10383 * bfd_get_unique_section_name: section prototypes. (line 50) 10384 * bfd_h_put_size: Internal. (line 97) 10385 * bfd_hash_allocate: Creating and Freeing a Hash Table. 10386 (line 17) 10387 * bfd_hash_lookup: Looking Up or Entering a String. 10388 (line 6) 10389 * bfd_hash_newfunc: Creating and Freeing a Hash Table. 10390 (line 12) 10391 * bfd_hash_set_default_size: Creating and Freeing a Hash Table. 10392 (line 25) 10393 * bfd_hash_table_free: Creating and Freeing a Hash Table. 10394 (line 21) 10395 * bfd_hash_table_init: Creating and Freeing a Hash Table. 10396 (line 6) 10397 * bfd_hash_table_init_n: Creating and Freeing a Hash Table. 10398 (line 6) 10399 * bfd_hash_traverse: Traversing a Hash Table. 10400 (line 6) 10401 * bfd_hide_sym_by_version: Writing the symbol table. 10402 (line 93) 10403 * bfd_init: Initialization. (line 11) 10404 * bfd_install_relocation: typedef arelent. (line 389) 10405 * bfd_is_local_label: symbol handling functions. 10406 (line 17) 10407 * bfd_is_local_label_name: symbol handling functions. 10408 (line 26) 10409 * bfd_is_target_special_symbol: symbol handling functions. 10410 (line 38) 10411 * bfd_is_undefined_symclass: symbol handling functions. 10412 (line 120) 10413 * bfd_link_split_section: Writing the symbol table. 10414 (line 44) 10415 * bfd_log2: Internal. (line 164) 10416 * bfd_lookup_arch: Architectures. (line 576) 10417 * bfd_make_debug_symbol: symbol handling functions. 10418 (line 102) 10419 * bfd_make_empty_symbol: symbol handling functions. 10420 (line 78) 10421 * bfd_make_readable: Opening and Closing. 10422 (line 200) 10423 * bfd_make_section: section prototypes. (line 129) 10424 * bfd_make_section_anyway: section prototypes. (line 100) 10425 * bfd_make_section_anyway_with_flags: section prototypes. (line 82) 10426 * bfd_make_section_old_way: section prototypes. (line 62) 10427 * bfd_make_section_with_flags: section prototypes. (line 116) 10428 * bfd_make_writable: Opening and Closing. 10429 (line 186) 10430 * bfd_malloc_and_get_section: section prototypes. (line 254) 10431 * bfd_map_over_sections: section prototypes. (line 164) 10432 * bfd_merge_private_bfd_data: BFD front end. (line 585) 10433 * bfd_mmap: BFD front end. (line 901) 10434 * bfd_octets_per_byte: Architectures. (line 599) 10435 * bfd_open_file: File Caching. (line 52) 10436 * bfd_openr: Opening and Closing. 10437 (line 33) 10438 * bfd_openr_iovec: Opening and Closing. 10439 (line 79) 10440 * bfd_openr_next_archived_file: Archives. (line 78) 10441 * bfd_openstreamr: Opening and Closing. 10442 (line 70) 10443 * bfd_openw: Opening and Closing. 10444 (line 127) 10445 * bfd_perform_relocation: typedef arelent. (line 364) 10446 * bfd_perror: BFD front end. (line 364) 10447 * bfd_preserve_finish: BFD front end. (line 762) 10448 * bfd_preserve_restore: BFD front end. (line 752) 10449 * bfd_preserve_save: BFD front end. (line 736) 10450 * bfd_print_symbol_vandf: symbol handling functions. 10451 (line 70) 10452 * bfd_printable_arch_mach: Architectures. (line 587) 10453 * bfd_printable_name: Architectures. (line 447) 10454 * bfd_put_size: Internal. (line 22) 10455 * BFD_RELOC_12_PCREL: howto manager. (line 39) 10456 * BFD_RELOC_14: howto manager. (line 31) 10457 * BFD_RELOC_16: howto manager. (line 30) 10458 * BFD_RELOC_16_BASEREL: howto manager. (line 95) 10459 * BFD_RELOC_16_GOT_PCREL: howto manager. (line 52) 10460 * BFD_RELOC_16_GOTOFF: howto manager. (line 55) 10461 * BFD_RELOC_16_PCREL: howto manager. (line 38) 10462 * BFD_RELOC_16_PCREL_S2: howto manager. (line 107) 10463 * BFD_RELOC_16_PLT_PCREL: howto manager. (line 63) 10464 * BFD_RELOC_16_PLTOFF: howto manager. (line 67) 10465 * BFD_RELOC_16C_ABS20: howto manager. (line 2018) 10466 * BFD_RELOC_16C_ABS20_C: howto manager. (line 2019) 10467 * BFD_RELOC_16C_ABS24: howto manager. (line 2020) 10468 * BFD_RELOC_16C_ABS24_C: howto manager. (line 2021) 10469 * BFD_RELOC_16C_DISP04: howto manager. (line 1998) 10470 * BFD_RELOC_16C_DISP04_C: howto manager. (line 1999) 10471 * BFD_RELOC_16C_DISP08: howto manager. (line 2000) 10472 * BFD_RELOC_16C_DISP08_C: howto manager. (line 2001) 10473 * BFD_RELOC_16C_DISP16: howto manager. (line 2002) 10474 * BFD_RELOC_16C_DISP16_C: howto manager. (line 2003) 10475 * BFD_RELOC_16C_DISP24: howto manager. (line 2004) 10476 * BFD_RELOC_16C_DISP24_C: howto manager. (line 2005) 10477 * BFD_RELOC_16C_DISP24a: howto manager. (line 2006) 10478 * BFD_RELOC_16C_DISP24a_C: howto manager. (line 2007) 10479 * BFD_RELOC_16C_IMM04: howto manager. (line 2022) 10480 * BFD_RELOC_16C_IMM04_C: howto manager. (line 2023) 10481 * BFD_RELOC_16C_IMM16: howto manager. (line 2024) 10482 * BFD_RELOC_16C_IMM16_C: howto manager. (line 2025) 10483 * BFD_RELOC_16C_IMM20: howto manager. (line 2026) 10484 * BFD_RELOC_16C_IMM20_C: howto manager. (line 2027) 10485 * BFD_RELOC_16C_IMM24: howto manager. (line 2028) 10486 * BFD_RELOC_16C_IMM24_C: howto manager. (line 2029) 10487 * BFD_RELOC_16C_IMM32: howto manager. (line 2030) 10488 * BFD_RELOC_16C_IMM32_C: howto manager. (line 2031) 10489 * BFD_RELOC_16C_NUM08: howto manager. (line 1992) 10490 * BFD_RELOC_16C_NUM08_C: howto manager. (line 1993) 10491 * BFD_RELOC_16C_NUM16: howto manager. (line 1994) 10492 * BFD_RELOC_16C_NUM16_C: howto manager. (line 1995) 10493 * BFD_RELOC_16C_NUM32: howto manager. (line 1996) 10494 * BFD_RELOC_16C_NUM32_C: howto manager. (line 1997) 10495 * BFD_RELOC_16C_REG04: howto manager. (line 2008) 10496 * BFD_RELOC_16C_REG04_C: howto manager. (line 2009) 10497 * BFD_RELOC_16C_REG04a: howto manager. (line 2010) 10498 * BFD_RELOC_16C_REG04a_C: howto manager. (line 2011) 10499 * BFD_RELOC_16C_REG14: howto manager. (line 2012) 10500 * BFD_RELOC_16C_REG14_C: howto manager. (line 2013) 10501 * BFD_RELOC_16C_REG16: howto manager. (line 2014) 10502 * BFD_RELOC_16C_REG16_C: howto manager. (line 2015) 10503 * BFD_RELOC_16C_REG20: howto manager. (line 2016) 10504 * BFD_RELOC_16C_REG20_C: howto manager. (line 2017) 10505 * BFD_RELOC_23_PCREL_S2: howto manager. (line 108) 10506 * BFD_RELOC_24: howto manager. (line 29) 10507 * BFD_RELOC_24_PCREL: howto manager. (line 37) 10508 * BFD_RELOC_24_PLT_PCREL: howto manager. (line 62) 10509 * BFD_RELOC_26: howto manager. (line 28) 10510 * BFD_RELOC_32: howto manager. (line 27) 10511 * BFD_RELOC_32_BASEREL: howto manager. (line 94) 10512 * BFD_RELOC_32_GOT_PCREL: howto manager. (line 51) 10513 * BFD_RELOC_32_GOTOFF: howto manager. (line 54) 10514 * BFD_RELOC_32_PCREL: howto manager. (line 36) 10515 * BFD_RELOC_32_PCREL_S2: howto manager. (line 106) 10516 * BFD_RELOC_32_PLT_PCREL: howto manager. (line 61) 10517 * BFD_RELOC_32_PLTOFF: howto manager. (line 66) 10518 * BFD_RELOC_32_SECREL: howto manager. (line 48) 10519 * BFD_RELOC_386_COPY: howto manager. (line 540) 10520 * BFD_RELOC_386_GLOB_DAT: howto manager. (line 541) 10521 * BFD_RELOC_386_GOT32: howto manager. (line 538) 10522 * BFD_RELOC_386_GOTOFF: howto manager. (line 544) 10523 * BFD_RELOC_386_GOTPC: howto manager. (line 545) 10524 * BFD_RELOC_386_IRELATIVE: howto manager. (line 561) 10525 * BFD_RELOC_386_JUMP_SLOT: howto manager. (line 542) 10526 * BFD_RELOC_386_PLT32: howto manager. (line 539) 10527 * BFD_RELOC_386_RELATIVE: howto manager. (line 543) 10528 * BFD_RELOC_386_TLS_DESC: howto manager. (line 560) 10529 * BFD_RELOC_386_TLS_DESC_CALL: howto manager. (line 559) 10530 * BFD_RELOC_386_TLS_DTPMOD32: howto manager. (line 555) 10531 * BFD_RELOC_386_TLS_DTPOFF32: howto manager. (line 556) 10532 * BFD_RELOC_386_TLS_GD: howto manager. (line 550) 10533 * BFD_RELOC_386_TLS_GOTDESC: howto manager. (line 558) 10534 * BFD_RELOC_386_TLS_GOTIE: howto manager. (line 548) 10535 * BFD_RELOC_386_TLS_IE: howto manager. (line 547) 10536 * BFD_RELOC_386_TLS_IE_32: howto manager. (line 553) 10537 * BFD_RELOC_386_TLS_LDM: howto manager. (line 551) 10538 * BFD_RELOC_386_TLS_LDO_32: howto manager. (line 552) 10539 * BFD_RELOC_386_TLS_LE: howto manager. (line 549) 10540 * BFD_RELOC_386_TLS_LE_32: howto manager. (line 554) 10541 * BFD_RELOC_386_TLS_TPOFF: howto manager. (line 546) 10542 * BFD_RELOC_386_TLS_TPOFF32: howto manager. (line 557) 10543 * BFD_RELOC_390_12: howto manager. (line 1678) 10544 * BFD_RELOC_390_20: howto manager. (line 1778) 10545 * BFD_RELOC_390_COPY: howto manager. (line 1687) 10546 * BFD_RELOC_390_GLOB_DAT: howto manager. (line 1690) 10547 * BFD_RELOC_390_GOT12: howto manager. (line 1681) 10548 * BFD_RELOC_390_GOT16: howto manager. (line 1702) 10549 * BFD_RELOC_390_GOT20: howto manager. (line 1779) 10550 * BFD_RELOC_390_GOT64: howto manager. (line 1720) 10551 * BFD_RELOC_390_GOTENT: howto manager. (line 1726) 10552 * BFD_RELOC_390_GOTOFF64: howto manager. (line 1729) 10553 * BFD_RELOC_390_GOTPC: howto manager. (line 1699) 10554 * BFD_RELOC_390_GOTPCDBL: howto manager. (line 1717) 10555 * BFD_RELOC_390_GOTPLT12: howto manager. (line 1732) 10556 * BFD_RELOC_390_GOTPLT16: howto manager. (line 1735) 10557 * BFD_RELOC_390_GOTPLT20: howto manager. (line 1780) 10558 * BFD_RELOC_390_GOTPLT32: howto manager. (line 1738) 10559 * BFD_RELOC_390_GOTPLT64: howto manager. (line 1741) 10560 * BFD_RELOC_390_GOTPLTENT: howto manager. (line 1744) 10561 * BFD_RELOC_390_JMP_SLOT: howto manager. (line 1693) 10562 * BFD_RELOC_390_PC16DBL: howto manager. (line 1705) 10563 * BFD_RELOC_390_PC32DBL: howto manager. (line 1711) 10564 * BFD_RELOC_390_PLT16DBL: howto manager. (line 1708) 10565 * BFD_RELOC_390_PLT32: howto manager. (line 1684) 10566 * BFD_RELOC_390_PLT32DBL: howto manager. (line 1714) 10567 * BFD_RELOC_390_PLT64: howto manager. (line 1723) 10568 * BFD_RELOC_390_PLTOFF16: howto manager. (line 1747) 10569 * BFD_RELOC_390_PLTOFF32: howto manager. (line 1750) 10570 * BFD_RELOC_390_PLTOFF64: howto manager. (line 1753) 10571 * BFD_RELOC_390_RELATIVE: howto manager. (line 1696) 10572 * BFD_RELOC_390_TLS_DTPMOD: howto manager. (line 1773) 10573 * BFD_RELOC_390_TLS_DTPOFF: howto manager. (line 1774) 10574 * BFD_RELOC_390_TLS_GD32: howto manager. (line 1759) 10575 * BFD_RELOC_390_TLS_GD64: howto manager. (line 1760) 10576 * BFD_RELOC_390_TLS_GDCALL: howto manager. (line 1757) 10577 * BFD_RELOC_390_TLS_GOTIE12: howto manager. (line 1761) 10578 * BFD_RELOC_390_TLS_GOTIE20: howto manager. (line 1781) 10579 * BFD_RELOC_390_TLS_GOTIE32: howto manager. (line 1762) 10580 * BFD_RELOC_390_TLS_GOTIE64: howto manager. (line 1763) 10581 * BFD_RELOC_390_TLS_IE32: howto manager. (line 1766) 10582 * BFD_RELOC_390_TLS_IE64: howto manager. (line 1767) 10583 * BFD_RELOC_390_TLS_IEENT: howto manager. (line 1768) 10584 * BFD_RELOC_390_TLS_LDCALL: howto manager. (line 1758) 10585 * BFD_RELOC_390_TLS_LDM32: howto manager. (line 1764) 10586 * BFD_RELOC_390_TLS_LDM64: howto manager. (line 1765) 10587 * BFD_RELOC_390_TLS_LDO32: howto manager. (line 1771) 10588 * BFD_RELOC_390_TLS_LDO64: howto manager. (line 1772) 10589 * BFD_RELOC_390_TLS_LE32: howto manager. (line 1769) 10590 * BFD_RELOC_390_TLS_LE64: howto manager. (line 1770) 10591 * BFD_RELOC_390_TLS_LOAD: howto manager. (line 1756) 10592 * BFD_RELOC_390_TLS_TPOFF: howto manager. (line 1775) 10593 * BFD_RELOC_64: howto manager. (line 26) 10594 * BFD_RELOC_64_PCREL: howto manager. (line 35) 10595 * BFD_RELOC_64_PLT_PCREL: howto manager. (line 60) 10596 * BFD_RELOC_64_PLTOFF: howto manager. (line 65) 10597 * BFD_RELOC_68K_GLOB_DAT: howto manager. (line 74) 10598 * BFD_RELOC_68K_JMP_SLOT: howto manager. (line 75) 10599 * BFD_RELOC_68K_RELATIVE: howto manager. (line 76) 10600 * BFD_RELOC_68K_TLS_GD16: howto manager. (line 78) 10601 * BFD_RELOC_68K_TLS_GD32: howto manager. (line 77) 10602 * BFD_RELOC_68K_TLS_GD8: howto manager. (line 79) 10603 * BFD_RELOC_68K_TLS_IE16: howto manager. (line 87) 10604 * BFD_RELOC_68K_TLS_IE32: howto manager. (line 86) 10605 * BFD_RELOC_68K_TLS_IE8: howto manager. (line 88) 10606 * BFD_RELOC_68K_TLS_LDM16: howto manager. (line 81) 10607 * BFD_RELOC_68K_TLS_LDM32: howto manager. (line 80) 10608 * BFD_RELOC_68K_TLS_LDM8: howto manager. (line 82) 10609 * BFD_RELOC_68K_TLS_LDO16: howto manager. (line 84) 10610 * BFD_RELOC_68K_TLS_LDO32: howto manager. (line 83) 10611 * BFD_RELOC_68K_TLS_LDO8: howto manager. (line 85) 10612 * BFD_RELOC_68K_TLS_LE16: howto manager. (line 90) 10613 * BFD_RELOC_68K_TLS_LE32: howto manager. (line 89) 10614 * BFD_RELOC_68K_TLS_LE8: howto manager. (line 91) 10615 * BFD_RELOC_8: howto manager. (line 32) 10616 * BFD_RELOC_860_COPY: howto manager. (line 2146) 10617 * BFD_RELOC_860_GLOB_DAT: howto manager. (line 2147) 10618 * BFD_RELOC_860_HAGOT: howto manager. (line 2172) 10619 * BFD_RELOC_860_HAGOTOFF: howto manager. (line 2173) 10620 * BFD_RELOC_860_HAPC: howto manager. (line 2174) 10621 * BFD_RELOC_860_HIGH: howto manager. (line 2175) 10622 * BFD_RELOC_860_HIGHADJ: howto manager. (line 2171) 10623 * BFD_RELOC_860_HIGOT: howto manager. (line 2176) 10624 * BFD_RELOC_860_HIGOTOFF: howto manager. (line 2177) 10625 * BFD_RELOC_860_JUMP_SLOT: howto manager. (line 2148) 10626 * BFD_RELOC_860_LOGOT0: howto manager. (line 2160) 10627 * BFD_RELOC_860_LOGOT1: howto manager. (line 2162) 10628 * BFD_RELOC_860_LOGOTOFF0: howto manager. (line 2164) 10629 * BFD_RELOC_860_LOGOTOFF1: howto manager. (line 2166) 10630 * BFD_RELOC_860_LOGOTOFF2: howto manager. (line 2168) 10631 * BFD_RELOC_860_LOGOTOFF3: howto manager. (line 2169) 10632 * BFD_RELOC_860_LOPC: howto manager. (line 2170) 10633 * BFD_RELOC_860_LOW0: howto manager. (line 2153) 10634 * BFD_RELOC_860_LOW1: howto manager. (line 2155) 10635 * BFD_RELOC_860_LOW2: howto manager. (line 2157) 10636 * BFD_RELOC_860_LOW3: howto manager. (line 2159) 10637 * BFD_RELOC_860_PC16: howto manager. (line 2152) 10638 * BFD_RELOC_860_PC26: howto manager. (line 2150) 10639 * BFD_RELOC_860_PLT26: howto manager. (line 2151) 10640 * BFD_RELOC_860_RELATIVE: howto manager. (line 2149) 10641 * BFD_RELOC_860_SPGOT0: howto manager. (line 2161) 10642 * BFD_RELOC_860_SPGOT1: howto manager. (line 2163) 10643 * BFD_RELOC_860_SPGOTOFF0: howto manager. (line 2165) 10644 * BFD_RELOC_860_SPGOTOFF1: howto manager. (line 2167) 10645 * BFD_RELOC_860_SPLIT0: howto manager. (line 2154) 10646 * BFD_RELOC_860_SPLIT1: howto manager. (line 2156) 10647 * BFD_RELOC_860_SPLIT2: howto manager. (line 2158) 10648 * BFD_RELOC_8_BASEREL: howto manager. (line 99) 10649 * BFD_RELOC_8_FFnn: howto manager. (line 103) 10650 * BFD_RELOC_8_GOT_PCREL: howto manager. (line 53) 10651 * BFD_RELOC_8_GOTOFF: howto manager. (line 59) 10652 * BFD_RELOC_8_PCREL: howto manager. (line 40) 10653 * BFD_RELOC_8_PLT_PCREL: howto manager. (line 64) 10654 * BFD_RELOC_8_PLTOFF: howto manager. (line 71) 10655 * BFD_RELOC_ALPHA_BOH: howto manager. (line 315) 10656 * BFD_RELOC_ALPHA_BRSGP: howto manager. (line 298) 10657 * BFD_RELOC_ALPHA_BSR: howto manager. (line 307) 10658 * BFD_RELOC_ALPHA_CODEADDR: howto manager. (line 289) 10659 * BFD_RELOC_ALPHA_DTPMOD64: howto manager. (line 321) 10660 * BFD_RELOC_ALPHA_DTPREL16: howto manager. (line 326) 10661 * BFD_RELOC_ALPHA_DTPREL64: howto manager. (line 323) 10662 * BFD_RELOC_ALPHA_DTPREL_HI16: howto manager. (line 324) 10663 * BFD_RELOC_ALPHA_DTPREL_LO16: howto manager. (line 325) 10664 * BFD_RELOC_ALPHA_ELF_LITERAL: howto manager. (line 254) 10665 * BFD_RELOC_ALPHA_GOTDTPREL16: howto manager. (line 322) 10666 * BFD_RELOC_ALPHA_GOTTPREL16: howto manager. (line 327) 10667 * BFD_RELOC_ALPHA_GPDISP: howto manager. (line 248) 10668 * BFD_RELOC_ALPHA_GPDISP_HI16: howto manager. (line 234) 10669 * BFD_RELOC_ALPHA_GPDISP_LO16: howto manager. (line 242) 10670 * BFD_RELOC_ALPHA_GPREL_HI16: howto manager. (line 293) 10671 * BFD_RELOC_ALPHA_GPREL_LO16: howto manager. (line 294) 10672 * BFD_RELOC_ALPHA_HINT: howto manager. (line 280) 10673 * BFD_RELOC_ALPHA_LDA: howto manager. (line 311) 10674 * BFD_RELOC_ALPHA_LINKAGE: howto manager. (line 285) 10675 * BFD_RELOC_ALPHA_LITERAL: howto manager. (line 253) 10676 * BFD_RELOC_ALPHA_LITUSE: howto manager. (line 255) 10677 * BFD_RELOC_ALPHA_NOP: howto manager. (line 303) 10678 * BFD_RELOC_ALPHA_TLSGD: howto manager. (line 319) 10679 * BFD_RELOC_ALPHA_TLSLDM: howto manager. (line 320) 10680 * BFD_RELOC_ALPHA_TPREL16: howto manager. (line 331) 10681 * BFD_RELOC_ALPHA_TPREL64: howto manager. (line 328) 10682 * BFD_RELOC_ALPHA_TPREL_HI16: howto manager. (line 329) 10683 * BFD_RELOC_ALPHA_TPREL_LO16: howto manager. (line 330) 10684 * BFD_RELOC_ARC_B22_PCREL: howto manager. (line 987) 10685 * BFD_RELOC_ARC_B26: howto manager. (line 992) 10686 * BFD_RELOC_ARM_ADR_IMM: howto manager. (line 873) 10687 * BFD_RELOC_ARM_ADRL_IMMEDIATE: howto manager. (line 859) 10688 * BFD_RELOC_ARM_ALU_PC_G0: howto manager. (line 823) 10689 * BFD_RELOC_ARM_ALU_PC_G0_NC: howto manager. (line 822) 10690 * BFD_RELOC_ARM_ALU_PC_G1: howto manager. (line 825) 10691 * BFD_RELOC_ARM_ALU_PC_G1_NC: howto manager. (line 824) 10692 * BFD_RELOC_ARM_ALU_PC_G2: howto manager. (line 826) 10693 * BFD_RELOC_ARM_ALU_SB_G0: howto manager. (line 837) 10694 * BFD_RELOC_ARM_ALU_SB_G0_NC: howto manager. (line 836) 10695 * BFD_RELOC_ARM_ALU_SB_G1: howto manager. (line 839) 10696 * BFD_RELOC_ARM_ALU_SB_G1_NC: howto manager. (line 838) 10697 * BFD_RELOC_ARM_ALU_SB_G2: howto manager. (line 840) 10698 * BFD_RELOC_ARM_CP_OFF_IMM: howto manager. (line 869) 10699 * BFD_RELOC_ARM_CP_OFF_IMM_S2: howto manager. (line 870) 10700 * BFD_RELOC_ARM_GLOB_DAT: howto manager. (line 797) 10701 * BFD_RELOC_ARM_GOT32: howto manager. (line 798) 10702 * BFD_RELOC_ARM_GOT_PREL: howto manager. (line 803) 10703 * BFD_RELOC_ARM_GOTOFF: howto manager. (line 801) 10704 * BFD_RELOC_ARM_GOTPC: howto manager. (line 802) 10705 * BFD_RELOC_ARM_HVC: howto manager. (line 866) 10706 * BFD_RELOC_ARM_HWLITERAL: howto manager. (line 880) 10707 * BFD_RELOC_ARM_IMMEDIATE: howto manager. (line 858) 10708 * BFD_RELOC_ARM_IN_POOL: howto manager. (line 876) 10709 * BFD_RELOC_ARM_IRELATIVE: howto manager. (line 855) 10710 * BFD_RELOC_ARM_JUMP_SLOT: howto manager. (line 796) 10711 * BFD_RELOC_ARM_LDC_PC_G0: howto manager. (line 833) 10712 * BFD_RELOC_ARM_LDC_PC_G1: howto manager. (line 834) 10713 * BFD_RELOC_ARM_LDC_PC_G2: howto manager. (line 835) 10714 * BFD_RELOC_ARM_LDC_SB_G0: howto manager. (line 847) 10715 * BFD_RELOC_ARM_LDC_SB_G1: howto manager. (line 848) 10716 * BFD_RELOC_ARM_LDC_SB_G2: howto manager. (line 849) 10717 * BFD_RELOC_ARM_LDR_IMM: howto manager. (line 874) 10718 * BFD_RELOC_ARM_LDR_PC_G0: howto manager. (line 827) 10719 * BFD_RELOC_ARM_LDR_PC_G1: howto manager. (line 828) 10720 * BFD_RELOC_ARM_LDR_PC_G2: howto manager. (line 829) 10721 * BFD_RELOC_ARM_LDR_SB_G0: howto manager. (line 841) 10722 * BFD_RELOC_ARM_LDR_SB_G1: howto manager. (line 842) 10723 * BFD_RELOC_ARM_LDR_SB_G2: howto manager. (line 843) 10724 * BFD_RELOC_ARM_LDRS_PC_G0: howto manager. (line 830) 10725 * BFD_RELOC_ARM_LDRS_PC_G1: howto manager. (line 831) 10726 * BFD_RELOC_ARM_LDRS_PC_G2: howto manager. (line 832) 10727 * BFD_RELOC_ARM_LDRS_SB_G0: howto manager. (line 844) 10728 * BFD_RELOC_ARM_LDRS_SB_G1: howto manager. (line 845) 10729 * BFD_RELOC_ARM_LDRS_SB_G2: howto manager. (line 846) 10730 * BFD_RELOC_ARM_LITERAL: howto manager. (line 875) 10731 * BFD_RELOC_ARM_MOVT: howto manager. (line 787) 10732 * BFD_RELOC_ARM_MOVT_PCREL: howto manager. (line 789) 10733 * BFD_RELOC_ARM_MOVW: howto manager. (line 786) 10734 * BFD_RELOC_ARM_MOVW_PCREL: howto manager. (line 788) 10735 * BFD_RELOC_ARM_MULTI: howto manager. (line 868) 10736 * BFD_RELOC_ARM_OFFSET_IMM: howto manager. (line 760) 10737 * BFD_RELOC_ARM_OFFSET_IMM8: howto manager. (line 877) 10738 * BFD_RELOC_ARM_PCREL_BLX: howto manager. (line 731) 10739 * BFD_RELOC_ARM_PCREL_BRANCH: howto manager. (line 727) 10740 * BFD_RELOC_ARM_PCREL_CALL: howto manager. (line 741) 10741 * BFD_RELOC_ARM_PCREL_JUMP: howto manager. (line 745) 10742 * BFD_RELOC_ARM_PLT32: howto manager. (line 799) 10743 * BFD_RELOC_ARM_PREL31: howto manager. (line 783) 10744 * BFD_RELOC_ARM_RELATIVE: howto manager. (line 800) 10745 * BFD_RELOC_ARM_ROSEGREL32: howto manager. (line 772) 10746 * BFD_RELOC_ARM_SBREL32: howto manager. (line 775) 10747 * BFD_RELOC_ARM_SHIFT_IMM: howto manager. (line 864) 10748 * BFD_RELOC_ARM_SMC: howto manager. (line 865) 10749 * BFD_RELOC_ARM_SWI: howto manager. (line 867) 10750 * BFD_RELOC_ARM_T32_ADD_IMM: howto manager. (line 861) 10751 * BFD_RELOC_ARM_T32_ADD_PC12: howto manager. (line 863) 10752 * BFD_RELOC_ARM_T32_CP_OFF_IMM: howto manager. (line 871) 10753 * BFD_RELOC_ARM_T32_CP_OFF_IMM_S2: howto manager. (line 872) 10754 * BFD_RELOC_ARM_T32_IMM12: howto manager. (line 862) 10755 * BFD_RELOC_ARM_T32_IMMEDIATE: howto manager. (line 860) 10756 * BFD_RELOC_ARM_T32_OFFSET_IMM: howto manager. (line 879) 10757 * BFD_RELOC_ARM_T32_OFFSET_U8: howto manager. (line 878) 10758 * BFD_RELOC_ARM_TARGET1: howto manager. (line 768) 10759 * BFD_RELOC_ARM_TARGET2: howto manager. (line 778) 10760 * BFD_RELOC_ARM_THM_TLS_CALL: howto manager. (line 816) 10761 * BFD_RELOC_ARM_THM_TLS_DESCSEQ: howto manager. (line 818) 10762 * BFD_RELOC_ARM_THUMB_ADD: howto manager. (line 881) 10763 * BFD_RELOC_ARM_THUMB_IMM: howto manager. (line 882) 10764 * BFD_RELOC_ARM_THUMB_MOVT: howto manager. (line 791) 10765 * BFD_RELOC_ARM_THUMB_MOVT_PCREL: howto manager. (line 793) 10766 * BFD_RELOC_ARM_THUMB_MOVW: howto manager. (line 790) 10767 * BFD_RELOC_ARM_THUMB_MOVW_PCREL: howto manager. (line 792) 10768 * BFD_RELOC_ARM_THUMB_OFFSET: howto manager. (line 764) 10769 * BFD_RELOC_ARM_THUMB_SHIFT: howto manager. (line 883) 10770 * BFD_RELOC_ARM_TLS_CALL: howto manager. (line 815) 10771 * BFD_RELOC_ARM_TLS_DESC: howto manager. (line 819) 10772 * BFD_RELOC_ARM_TLS_DESCSEQ: howto manager. (line 817) 10773 * BFD_RELOC_ARM_TLS_DTPMOD32: howto manager. (line 810) 10774 * BFD_RELOC_ARM_TLS_DTPOFF32: howto manager. (line 809) 10775 * BFD_RELOC_ARM_TLS_GD32: howto manager. (line 806) 10776 * BFD_RELOC_ARM_TLS_GOTDESC: howto manager. (line 814) 10777 * BFD_RELOC_ARM_TLS_IE32: howto manager. (line 812) 10778 * BFD_RELOC_ARM_TLS_LDM32: howto manager. (line 808) 10779 * BFD_RELOC_ARM_TLS_LDO32: howto manager. (line 807) 10780 * BFD_RELOC_ARM_TLS_LE32: howto manager. (line 813) 10781 * BFD_RELOC_ARM_TLS_TPOFF32: howto manager. (line 811) 10782 * BFD_RELOC_ARM_V4BX: howto manager. (line 852) 10783 * BFD_RELOC_AVR_13_PCREL: howto manager. (line 1550) 10784 * BFD_RELOC_AVR_16_PM: howto manager. (line 1554) 10785 * BFD_RELOC_AVR_6: howto manager. (line 1641) 10786 * BFD_RELOC_AVR_6_ADIW: howto manager. (line 1645) 10787 * BFD_RELOC_AVR_7_PCREL: howto manager. (line 1546) 10788 * BFD_RELOC_AVR_CALL: howto manager. (line 1633) 10789 * BFD_RELOC_AVR_HH8_LDI: howto manager. (line 1566) 10790 * BFD_RELOC_AVR_HH8_LDI_NEG: howto manager. (line 1585) 10791 * BFD_RELOC_AVR_HH8_LDI_PM: howto manager. (line 1614) 10792 * BFD_RELOC_AVR_HH8_LDI_PM_NEG: howto manager. (line 1628) 10793 * BFD_RELOC_AVR_HI8_LDI: howto manager. (line 1562) 10794 * BFD_RELOC_AVR_HI8_LDI_GS: howto manager. (line 1608) 10795 * BFD_RELOC_AVR_HI8_LDI_NEG: howto manager. (line 1580) 10796 * BFD_RELOC_AVR_HI8_LDI_PM: howto manager. (line 1604) 10797 * BFD_RELOC_AVR_HI8_LDI_PM_NEG: howto manager. (line 1623) 10798 * BFD_RELOC_AVR_LDI: howto manager. (line 1637) 10799 * BFD_RELOC_AVR_LO8_LDI: howto manager. (line 1558) 10800 * BFD_RELOC_AVR_LO8_LDI_GS: howto manager. (line 1598) 10801 * BFD_RELOC_AVR_LO8_LDI_NEG: howto manager. (line 1575) 10802 * BFD_RELOC_AVR_LO8_LDI_PM: howto manager. (line 1594) 10803 * BFD_RELOC_AVR_LO8_LDI_PM_NEG: howto manager. (line 1619) 10804 * BFD_RELOC_AVR_MS8_LDI: howto manager. (line 1571) 10805 * BFD_RELOC_AVR_MS8_LDI_NEG: howto manager. (line 1590) 10806 * BFD_RELOC_BFIN_10_PCREL: howto manager. (line 1012) 10807 * BFD_RELOC_BFIN_11_PCREL: howto manager. (line 1015) 10808 * BFD_RELOC_BFIN_12_PCREL_JUMP: howto manager. (line 1018) 10809 * BFD_RELOC_BFIN_12_PCREL_JUMP_S: howto manager. (line 1021) 10810 * BFD_RELOC_BFIN_16_HIGH: howto manager. (line 1000) 10811 * BFD_RELOC_BFIN_16_IMM: howto manager. (line 997) 10812 * BFD_RELOC_BFIN_16_LOW: howto manager. (line 1009) 10813 * BFD_RELOC_BFIN_24_PCREL_CALL_X: howto manager. (line 1024) 10814 * BFD_RELOC_BFIN_24_PCREL_JUMP_L: howto manager. (line 1027) 10815 * BFD_RELOC_BFIN_4_PCREL: howto manager. (line 1003) 10816 * BFD_RELOC_BFIN_5_PCREL: howto manager. (line 1006) 10817 * BFD_RELOC_BFIN_FUNCDESC: howto manager. (line 1033) 10818 * BFD_RELOC_BFIN_FUNCDESC_GOT17M4: howto manager. (line 1034) 10819 * BFD_RELOC_BFIN_FUNCDESC_GOTHI: howto manager. (line 1035) 10820 * BFD_RELOC_BFIN_FUNCDESC_GOTLO: howto manager. (line 1036) 10821 * BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4: howto manager. (line 1038) 10822 * BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI: howto manager. (line 1039) 10823 * BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO: howto manager. (line 1040) 10824 * BFD_RELOC_BFIN_FUNCDESC_VALUE: howto manager. (line 1037) 10825 * BFD_RELOC_BFIN_GOT: howto manager. (line 1046) 10826 * BFD_RELOC_BFIN_GOT17M4: howto manager. (line 1030) 10827 * BFD_RELOC_BFIN_GOTHI: howto manager. (line 1031) 10828 * BFD_RELOC_BFIN_GOTLO: howto manager. (line 1032) 10829 * BFD_RELOC_BFIN_GOTOFF17M4: howto manager. (line 1041) 10830 * BFD_RELOC_BFIN_GOTOFFHI: howto manager. (line 1042) 10831 * BFD_RELOC_BFIN_GOTOFFLO: howto manager. (line 1043) 10832 * BFD_RELOC_BFIN_PLTPC: howto manager. (line 1049) 10833 * BFD_RELOC_C6000_ABS_H16: howto manager. (line 1409) 10834 * BFD_RELOC_C6000_ABS_L16: howto manager. (line 1408) 10835 * BFD_RELOC_C6000_ABS_S16: howto manager. (line 1407) 10836 * BFD_RELOC_C6000_ALIGN: howto manager. (line 1430) 10837 * BFD_RELOC_C6000_COPY: howto manager. (line 1425) 10838 * BFD_RELOC_C6000_DSBT_INDEX: howto manager. (line 1423) 10839 * BFD_RELOC_C6000_EHTYPE: howto manager. (line 1427) 10840 * BFD_RELOC_C6000_FPHEAD: howto manager. (line 1431) 10841 * BFD_RELOC_C6000_JUMP_SLOT: howto manager. (line 1426) 10842 * BFD_RELOC_C6000_NOCMP: howto manager. (line 1432) 10843 * BFD_RELOC_C6000_PCR_H16: howto manager. (line 1428) 10844 * BFD_RELOC_C6000_PCR_L16: howto manager. (line 1429) 10845 * BFD_RELOC_C6000_PCR_S10: howto manager. (line 1405) 10846 * BFD_RELOC_C6000_PCR_S12: howto manager. (line 1404) 10847 * BFD_RELOC_C6000_PCR_S21: howto manager. (line 1403) 10848 * BFD_RELOC_C6000_PCR_S7: howto manager. (line 1406) 10849 * BFD_RELOC_C6000_PREL31: howto manager. (line 1424) 10850 * BFD_RELOC_C6000_SBR_GOT_H16_W: howto manager. (line 1422) 10851 * BFD_RELOC_C6000_SBR_GOT_L16_W: howto manager. (line 1421) 10852 * BFD_RELOC_C6000_SBR_GOT_U15_W: howto manager. (line 1420) 10853 * BFD_RELOC_C6000_SBR_H16_B: howto manager. (line 1417) 10854 * BFD_RELOC_C6000_SBR_H16_H: howto manager. (line 1418) 10855 * BFD_RELOC_C6000_SBR_H16_W: howto manager. (line 1419) 10856 * BFD_RELOC_C6000_SBR_L16_B: howto manager. (line 1414) 10857 * BFD_RELOC_C6000_SBR_L16_H: howto manager. (line 1415) 10858 * BFD_RELOC_C6000_SBR_L16_W: howto manager. (line 1416) 10859 * BFD_RELOC_C6000_SBR_S16: howto manager. (line 1413) 10860 * BFD_RELOC_C6000_SBR_U15_B: howto manager. (line 1410) 10861 * BFD_RELOC_C6000_SBR_U15_H: howto manager. (line 1411) 10862 * BFD_RELOC_C6000_SBR_U15_W: howto manager. (line 1412) 10863 * bfd_reloc_code_type: howto manager. (line 10) 10864 * BFD_RELOC_CR16_ABS20: howto manager. (line 2046) 10865 * BFD_RELOC_CR16_ABS24: howto manager. (line 2047) 10866 * BFD_RELOC_CR16_DISP16: howto manager. (line 2057) 10867 * BFD_RELOC_CR16_DISP20: howto manager. (line 2058) 10868 * BFD_RELOC_CR16_DISP24: howto manager. (line 2059) 10869 * BFD_RELOC_CR16_DISP24a: howto manager. (line 2060) 10870 * BFD_RELOC_CR16_DISP4: howto manager. (line 2055) 10871 * BFD_RELOC_CR16_DISP8: howto manager. (line 2056) 10872 * BFD_RELOC_CR16_GLOB_DAT: howto manager. (line 2066) 10873 * BFD_RELOC_CR16_GOT_REGREL20: howto manager. (line 2064) 10874 * BFD_RELOC_CR16_GOTC_REGREL20: howto manager. (line 2065) 10875 * BFD_RELOC_CR16_IMM16: howto manager. (line 2050) 10876 * BFD_RELOC_CR16_IMM20: howto manager. (line 2051) 10877 * BFD_RELOC_CR16_IMM24: howto manager. (line 2052) 10878 * BFD_RELOC_CR16_IMM32: howto manager. (line 2053) 10879 * BFD_RELOC_CR16_IMM32a: howto manager. (line 2054) 10880 * BFD_RELOC_CR16_IMM4: howto manager. (line 2048) 10881 * BFD_RELOC_CR16_IMM8: howto manager. (line 2049) 10882 * BFD_RELOC_CR16_NUM16: howto manager. (line 2035) 10883 * BFD_RELOC_CR16_NUM32: howto manager. (line 2036) 10884 * BFD_RELOC_CR16_NUM32a: howto manager. (line 2037) 10885 * BFD_RELOC_CR16_NUM8: howto manager. (line 2034) 10886 * BFD_RELOC_CR16_REGREL0: howto manager. (line 2038) 10887 * BFD_RELOC_CR16_REGREL14: howto manager. (line 2041) 10888 * BFD_RELOC_CR16_REGREL14a: howto manager. (line 2042) 10889 * BFD_RELOC_CR16_REGREL16: howto manager. (line 2043) 10890 * BFD_RELOC_CR16_REGREL20: howto manager. (line 2044) 10891 * BFD_RELOC_CR16_REGREL20a: howto manager. (line 2045) 10892 * BFD_RELOC_CR16_REGREL4: howto manager. (line 2039) 10893 * BFD_RELOC_CR16_REGREL4a: howto manager. (line 2040) 10894 * BFD_RELOC_CR16_SWITCH16: howto manager. (line 2062) 10895 * BFD_RELOC_CR16_SWITCH32: howto manager. (line 2063) 10896 * BFD_RELOC_CR16_SWITCH8: howto manager. (line 2061) 10897 * BFD_RELOC_CRIS_16_DTPREL: howto manager. (line 2137) 10898 * BFD_RELOC_CRIS_16_GOT: howto manager. (line 2113) 10899 * BFD_RELOC_CRIS_16_GOT_GD: howto manager. (line 2133) 10900 * BFD_RELOC_CRIS_16_GOT_TPREL: howto manager. (line 2139) 10901 * BFD_RELOC_CRIS_16_GOTPLT: howto manager. (line 2119) 10902 * BFD_RELOC_CRIS_16_TPREL: howto manager. (line 2141) 10903 * BFD_RELOC_CRIS_32_DTPREL: howto manager. (line 2136) 10904 * BFD_RELOC_CRIS_32_GD: howto manager. (line 2134) 10905 * BFD_RELOC_CRIS_32_GOT: howto manager. (line 2110) 10906 * BFD_RELOC_CRIS_32_GOT_GD: howto manager. (line 2132) 10907 * BFD_RELOC_CRIS_32_GOT_TPREL: howto manager. (line 2138) 10908 * BFD_RELOC_CRIS_32_GOTPLT: howto manager. (line 2116) 10909 * BFD_RELOC_CRIS_32_GOTREL: howto manager. (line 2122) 10910 * BFD_RELOC_CRIS_32_IE: howto manager. (line 2143) 10911 * BFD_RELOC_CRIS_32_PLT_GOTREL: howto manager. (line 2125) 10912 * BFD_RELOC_CRIS_32_PLT_PCREL: howto manager. (line 2128) 10913 * BFD_RELOC_CRIS_32_TPREL: howto manager. (line 2140) 10914 * BFD_RELOC_CRIS_BDISP8: howto manager. (line 2091) 10915 * BFD_RELOC_CRIS_COPY: howto manager. (line 2104) 10916 * BFD_RELOC_CRIS_DTP: howto manager. (line 2135) 10917 * BFD_RELOC_CRIS_DTPMOD: howto manager. (line 2142) 10918 * BFD_RELOC_CRIS_GLOB_DAT: howto manager. (line 2105) 10919 * BFD_RELOC_CRIS_JUMP_SLOT: howto manager. (line 2106) 10920 * BFD_RELOC_CRIS_LAPCQ_OFFSET: howto manager. (line 2099) 10921 * BFD_RELOC_CRIS_RELATIVE: howto manager. (line 2107) 10922 * BFD_RELOC_CRIS_SIGNED_16: howto manager. (line 2097) 10923 * BFD_RELOC_CRIS_SIGNED_6: howto manager. (line 2093) 10924 * BFD_RELOC_CRIS_SIGNED_8: howto manager. (line 2095) 10925 * BFD_RELOC_CRIS_UNSIGNED_16: howto manager. (line 2098) 10926 * BFD_RELOC_CRIS_UNSIGNED_4: howto manager. (line 2100) 10927 * BFD_RELOC_CRIS_UNSIGNED_5: howto manager. (line 2092) 10928 * BFD_RELOC_CRIS_UNSIGNED_6: howto manager. (line 2094) 10929 * BFD_RELOC_CRIS_UNSIGNED_8: howto manager. (line 2096) 10930 * BFD_RELOC_CRX_ABS16: howto manager. (line 2079) 10931 * BFD_RELOC_CRX_ABS32: howto manager. (line 2080) 10932 * BFD_RELOC_CRX_IMM16: howto manager. (line 2084) 10933 * BFD_RELOC_CRX_IMM32: howto manager. (line 2085) 10934 * BFD_RELOC_CRX_NUM16: howto manager. (line 2082) 10935 * BFD_RELOC_CRX_NUM32: howto manager. (line 2083) 10936 * BFD_RELOC_CRX_NUM8: howto manager. (line 2081) 10937 * BFD_RELOC_CRX_REGREL12: howto manager. (line 2075) 10938 * BFD_RELOC_CRX_REGREL22: howto manager. (line 2076) 10939 * BFD_RELOC_CRX_REGREL28: howto manager. (line 2077) 10940 * BFD_RELOC_CRX_REGREL32: howto manager. (line 2078) 10941 * BFD_RELOC_CRX_REL16: howto manager. (line 2072) 10942 * BFD_RELOC_CRX_REL24: howto manager. (line 2073) 10943 * BFD_RELOC_CRX_REL32: howto manager. (line 2074) 10944 * BFD_RELOC_CRX_REL4: howto manager. (line 2069) 10945 * BFD_RELOC_CRX_REL8: howto manager. (line 2070) 10946 * BFD_RELOC_CRX_REL8_CMP: howto manager. (line 2071) 10947 * BFD_RELOC_CRX_SWITCH16: howto manager. (line 2087) 10948 * BFD_RELOC_CRX_SWITCH32: howto manager. (line 2088) 10949 * BFD_RELOC_CRX_SWITCH8: howto manager. (line 2086) 10950 * BFD_RELOC_CTOR: howto manager. (line 721) 10951 * BFD_RELOC_D10V_10_PCREL_L: howto manager. (line 1116) 10952 * BFD_RELOC_D10V_10_PCREL_R: howto manager. (line 1112) 10953 * BFD_RELOC_D10V_18: howto manager. (line 1121) 10954 * BFD_RELOC_D10V_18_PCREL: howto manager. (line 1124) 10955 * BFD_RELOC_D30V_15: howto manager. (line 1139) 10956 * BFD_RELOC_D30V_15_PCREL: howto manager. (line 1143) 10957 * BFD_RELOC_D30V_15_PCREL_R: howto manager. (line 1147) 10958 * BFD_RELOC_D30V_21: howto manager. (line 1152) 10959 * BFD_RELOC_D30V_21_PCREL: howto manager. (line 1156) 10960 * BFD_RELOC_D30V_21_PCREL_R: howto manager. (line 1160) 10961 * BFD_RELOC_D30V_32: howto manager. (line 1165) 10962 * BFD_RELOC_D30V_32_PCREL: howto manager. (line 1168) 10963 * BFD_RELOC_D30V_6: howto manager. (line 1127) 10964 * BFD_RELOC_D30V_9_PCREL: howto manager. (line 1130) 10965 * BFD_RELOC_D30V_9_PCREL_R: howto manager. (line 1134) 10966 * BFD_RELOC_DLX_HI16_S: howto manager. (line 1171) 10967 * BFD_RELOC_DLX_JMP26: howto manager. (line 1177) 10968 * BFD_RELOC_DLX_LO16: howto manager. (line 1174) 10969 * BFD_RELOC_FR30_10_IN_8: howto manager. (line 1454) 10970 * BFD_RELOC_FR30_12_PCREL: howto manager. (line 1462) 10971 * BFD_RELOC_FR30_20: howto manager. (line 1438) 10972 * BFD_RELOC_FR30_48: howto manager. (line 1435) 10973 * BFD_RELOC_FR30_6_IN_4: howto manager. (line 1442) 10974 * BFD_RELOC_FR30_8_IN_8: howto manager. (line 1446) 10975 * BFD_RELOC_FR30_9_IN_8: howto manager. (line 1450) 10976 * BFD_RELOC_FR30_9_PCREL: howto manager. (line 1458) 10977 * BFD_RELOC_FRV_FUNCDESC: howto manager. (line 473) 10978 * BFD_RELOC_FRV_FUNCDESC_GOT12: howto manager. (line 474) 10979 * BFD_RELOC_FRV_FUNCDESC_GOTHI: howto manager. (line 475) 10980 * BFD_RELOC_FRV_FUNCDESC_GOTLO: howto manager. (line 476) 10981 * BFD_RELOC_FRV_FUNCDESC_GOTOFF12: howto manager. (line 478) 10982 * BFD_RELOC_FRV_FUNCDESC_GOTOFFHI: howto manager. (line 479) 10983 * BFD_RELOC_FRV_FUNCDESC_GOTOFFLO: howto manager. (line 480) 10984 * BFD_RELOC_FRV_FUNCDESC_VALUE: howto manager. (line 477) 10985 * BFD_RELOC_FRV_GETTLSOFF: howto manager. (line 484) 10986 * BFD_RELOC_FRV_GETTLSOFF_RELAX: howto manager. (line 497) 10987 * BFD_RELOC_FRV_GOT12: howto manager. (line 470) 10988 * BFD_RELOC_FRV_GOTHI: howto manager. (line 471) 10989 * BFD_RELOC_FRV_GOTLO: howto manager. (line 472) 10990 * BFD_RELOC_FRV_GOTOFF12: howto manager. (line 481) 10991 * BFD_RELOC_FRV_GOTOFFHI: howto manager. (line 482) 10992 * BFD_RELOC_FRV_GOTOFFLO: howto manager. (line 483) 10993 * BFD_RELOC_FRV_GOTTLSDESC12: howto manager. (line 486) 10994 * BFD_RELOC_FRV_GOTTLSDESCHI: howto manager. (line 487) 10995 * BFD_RELOC_FRV_GOTTLSDESCLO: howto manager. (line 488) 10996 * BFD_RELOC_FRV_GOTTLSOFF12: howto manager. (line 492) 10997 * BFD_RELOC_FRV_GOTTLSOFFHI: howto manager. (line 493) 10998 * BFD_RELOC_FRV_GOTTLSOFFLO: howto manager. (line 494) 10999 * BFD_RELOC_FRV_GPREL12: howto manager. (line 465) 11000 * BFD_RELOC_FRV_GPREL32: howto manager. (line 467) 11001 * BFD_RELOC_FRV_GPRELHI: howto manager. (line 468) 11002 * BFD_RELOC_FRV_GPRELLO: howto manager. (line 469) 11003 * BFD_RELOC_FRV_GPRELU12: howto manager. (line 466) 11004 * BFD_RELOC_FRV_HI16: howto manager. (line 464) 11005 * BFD_RELOC_FRV_LABEL16: howto manager. (line 461) 11006 * BFD_RELOC_FRV_LABEL24: howto manager. (line 462) 11007 * BFD_RELOC_FRV_LO16: howto manager. (line 463) 11008 * BFD_RELOC_FRV_TLSDESC_RELAX: howto manager. (line 496) 11009 * BFD_RELOC_FRV_TLSDESC_VALUE: howto manager. (line 485) 11010 * BFD_RELOC_FRV_TLSMOFF: howto manager. (line 499) 11011 * BFD_RELOC_FRV_TLSMOFF12: howto manager. (line 489) 11012 * BFD_RELOC_FRV_TLSMOFFHI: howto manager. (line 490) 11013 * BFD_RELOC_FRV_TLSMOFFLO: howto manager. (line 491) 11014 * BFD_RELOC_FRV_TLSOFF: howto manager. (line 495) 11015 * BFD_RELOC_FRV_TLSOFF_RELAX: howto manager. (line 498) 11016 * BFD_RELOC_GPREL16: howto manager. (line 121) 11017 * BFD_RELOC_GPREL32: howto manager. (line 122) 11018 * BFD_RELOC_H8_DIR16A8: howto manager. (line 2184) 11019 * BFD_RELOC_H8_DIR16R8: howto manager. (line 2185) 11020 * BFD_RELOC_H8_DIR24A8: howto manager. (line 2186) 11021 * BFD_RELOC_H8_DIR24R8: howto manager. (line 2187) 11022 * BFD_RELOC_H8_DIR32A16: howto manager. (line 2188) 11023 * BFD_RELOC_HI16: howto manager. (line 344) 11024 * BFD_RELOC_HI16_BASEREL: howto manager. (line 97) 11025 * BFD_RELOC_HI16_GOTOFF: howto manager. (line 57) 11026 * BFD_RELOC_HI16_PCREL: howto manager. (line 356) 11027 * BFD_RELOC_HI16_PLTOFF: howto manager. (line 69) 11028 * BFD_RELOC_HI16_S: howto manager. (line 347) 11029 * BFD_RELOC_HI16_S_BASEREL: howto manager. (line 98) 11030 * BFD_RELOC_HI16_S_GOTOFF: howto manager. (line 58) 11031 * BFD_RELOC_HI16_S_PCREL: howto manager. (line 359) 11032 * BFD_RELOC_HI16_S_PLTOFF: howto manager. (line 70) 11033 * BFD_RELOC_HI22: howto manager. (line 116) 11034 * BFD_RELOC_I370_D12: howto manager. (line 718) 11035 * BFD_RELOC_I960_CALLJ: howto manager. (line 128) 11036 * BFD_RELOC_IA64_COPY: howto manager. (line 1928) 11037 * BFD_RELOC_IA64_DIR32LSB: howto manager. (line 1873) 11038 * BFD_RELOC_IA64_DIR32MSB: howto manager. (line 1872) 11039 * BFD_RELOC_IA64_DIR64LSB: howto manager. (line 1875) 11040 * BFD_RELOC_IA64_DIR64MSB: howto manager. (line 1874) 11041 * BFD_RELOC_IA64_DTPMOD64LSB: howto manager. (line 1938) 11042 * BFD_RELOC_IA64_DTPMOD64MSB: howto manager. (line 1937) 11043 * BFD_RELOC_IA64_DTPREL14: howto manager. (line 1940) 11044 * BFD_RELOC_IA64_DTPREL22: howto manager. (line 1941) 11045 * BFD_RELOC_IA64_DTPREL32LSB: howto manager. (line 1944) 11046 * BFD_RELOC_IA64_DTPREL32MSB: howto manager. (line 1943) 11047 * BFD_RELOC_IA64_DTPREL64I: howto manager. (line 1942) 11048 * BFD_RELOC_IA64_DTPREL64LSB: howto manager. (line 1946) 11049 * BFD_RELOC_IA64_DTPREL64MSB: howto manager. (line 1945) 11050 * BFD_RELOC_IA64_FPTR32LSB: howto manager. (line 1890) 11051 * BFD_RELOC_IA64_FPTR32MSB: howto manager. (line 1889) 11052 * BFD_RELOC_IA64_FPTR64I: howto manager. (line 1888) 11053 * BFD_RELOC_IA64_FPTR64LSB: howto manager. (line 1892) 11054 * BFD_RELOC_IA64_FPTR64MSB: howto manager. (line 1891) 11055 * BFD_RELOC_IA64_GPREL22: howto manager. (line 1876) 11056 * BFD_RELOC_IA64_GPREL32LSB: howto manager. (line 1879) 11057 * BFD_RELOC_IA64_GPREL32MSB: howto manager. (line 1878) 11058 * BFD_RELOC_IA64_GPREL64I: howto manager. (line 1877) 11059 * BFD_RELOC_IA64_GPREL64LSB: howto manager. (line 1881) 11060 * BFD_RELOC_IA64_GPREL64MSB: howto manager. (line 1880) 11061 * BFD_RELOC_IA64_IMM14: howto manager. (line 1869) 11062 * BFD_RELOC_IA64_IMM22: howto manager. (line 1870) 11063 * BFD_RELOC_IA64_IMM64: howto manager. (line 1871) 11064 * BFD_RELOC_IA64_IPLTLSB: howto manager. (line 1927) 11065 * BFD_RELOC_IA64_IPLTMSB: howto manager. (line 1926) 11066 * BFD_RELOC_IA64_LDXMOV: howto manager. (line 1930) 11067 * BFD_RELOC_IA64_LTOFF22: howto manager. (line 1882) 11068 * BFD_RELOC_IA64_LTOFF22X: howto manager. (line 1929) 11069 * BFD_RELOC_IA64_LTOFF64I: howto manager. (line 1883) 11070 * BFD_RELOC_IA64_LTOFF_DTPMOD22: howto manager. (line 1939) 11071 * BFD_RELOC_IA64_LTOFF_DTPREL22: howto manager. (line 1947) 11072 * BFD_RELOC_IA64_LTOFF_FPTR22: howto manager. (line 1904) 11073 * BFD_RELOC_IA64_LTOFF_FPTR32LSB: howto manager. (line 1907) 11074 * BFD_RELOC_IA64_LTOFF_FPTR32MSB: howto manager. (line 1906) 11075 * BFD_RELOC_IA64_LTOFF_FPTR64I: howto manager. (line 1905) 11076 * BFD_RELOC_IA64_LTOFF_FPTR64LSB: howto manager. (line 1909) 11077 * BFD_RELOC_IA64_LTOFF_FPTR64MSB: howto manager. (line 1908) 11078 * BFD_RELOC_IA64_LTOFF_TPREL22: howto manager. (line 1936) 11079 * BFD_RELOC_IA64_LTV32LSB: howto manager. (line 1923) 11080 * BFD_RELOC_IA64_LTV32MSB: howto manager. (line 1922) 11081 * BFD_RELOC_IA64_LTV64LSB: howto manager. (line 1925) 11082 * BFD_RELOC_IA64_LTV64MSB: howto manager. (line 1924) 11083 * BFD_RELOC_IA64_PCREL21B: howto manager. (line 1893) 11084 * BFD_RELOC_IA64_PCREL21BI: howto manager. (line 1894) 11085 * BFD_RELOC_IA64_PCREL21F: howto manager. (line 1896) 11086 * BFD_RELOC_IA64_PCREL21M: howto manager. (line 1895) 11087 * BFD_RELOC_IA64_PCREL22: howto manager. (line 1897) 11088 * BFD_RELOC_IA64_PCREL32LSB: howto manager. (line 1901) 11089 * BFD_RELOC_IA64_PCREL32MSB: howto manager. (line 1900) 11090 * BFD_RELOC_IA64_PCREL60B: howto manager. (line 1898) 11091 * BFD_RELOC_IA64_PCREL64I: howto manager. (line 1899) 11092 * BFD_RELOC_IA64_PCREL64LSB: howto manager. (line 1903) 11093 * BFD_RELOC_IA64_PCREL64MSB: howto manager. (line 1902) 11094 * BFD_RELOC_IA64_PLTOFF22: howto manager. (line 1884) 11095 * BFD_RELOC_IA64_PLTOFF64I: howto manager. (line 1885) 11096 * BFD_RELOC_IA64_PLTOFF64LSB: howto manager. (line 1887) 11097 * BFD_RELOC_IA64_PLTOFF64MSB: howto manager. (line 1886) 11098 * BFD_RELOC_IA64_REL32LSB: howto manager. (line 1919) 11099 * BFD_RELOC_IA64_REL32MSB: howto manager. (line 1918) 11100 * BFD_RELOC_IA64_REL64LSB: howto manager. (line 1921) 11101 * BFD_RELOC_IA64_REL64MSB: howto manager. (line 1920) 11102 * BFD_RELOC_IA64_SECREL32LSB: howto manager. (line 1915) 11103 * BFD_RELOC_IA64_SECREL32MSB: howto manager. (line 1914) 11104 * BFD_RELOC_IA64_SECREL64LSB: howto manager. (line 1917) 11105 * BFD_RELOC_IA64_SECREL64MSB: howto manager. (line 1916) 11106 * BFD_RELOC_IA64_SEGREL32LSB: howto manager. (line 1911) 11107 * BFD_RELOC_IA64_SEGREL32MSB: howto manager. (line 1910) 11108 * BFD_RELOC_IA64_SEGREL64LSB: howto manager. (line 1913) 11109 * BFD_RELOC_IA64_SEGREL64MSB: howto manager. (line 1912) 11110 * BFD_RELOC_IA64_TPREL14: howto manager. (line 1931) 11111 * BFD_RELOC_IA64_TPREL22: howto manager. (line 1932) 11112 * BFD_RELOC_IA64_TPREL64I: howto manager. (line 1933) 11113 * BFD_RELOC_IA64_TPREL64LSB: howto manager. (line 1935) 11114 * BFD_RELOC_IA64_TPREL64MSB: howto manager. (line 1934) 11115 * BFD_RELOC_IP2K_ADDR16CJP: howto manager. (line 1821) 11116 * BFD_RELOC_IP2K_BANK: howto manager. (line 1818) 11117 * BFD_RELOC_IP2K_EX8DATA: howto manager. (line 1829) 11118 * BFD_RELOC_IP2K_FR9: howto manager. (line 1815) 11119 * BFD_RELOC_IP2K_FR_OFFSET: howto manager. (line 1842) 11120 * BFD_RELOC_IP2K_HI8DATA: howto manager. (line 1828) 11121 * BFD_RELOC_IP2K_HI8INSN: howto manager. (line 1833) 11122 * BFD_RELOC_IP2K_LO8DATA: howto manager. (line 1827) 11123 * BFD_RELOC_IP2K_LO8INSN: howto manager. (line 1832) 11124 * BFD_RELOC_IP2K_PAGE3: howto manager. (line 1824) 11125 * BFD_RELOC_IP2K_PC_SKIP: howto manager. (line 1836) 11126 * BFD_RELOC_IP2K_TEXT: howto manager. (line 1839) 11127 * BFD_RELOC_IQ2000_OFFSET_16: howto manager. (line 2238) 11128 * BFD_RELOC_IQ2000_OFFSET_21: howto manager. (line 2239) 11129 * BFD_RELOC_IQ2000_UHI16: howto manager. (line 2240) 11130 * BFD_RELOC_LM32_16_GOT: howto manager. (line 2345) 11131 * BFD_RELOC_LM32_BRANCH: howto manager. (line 2344) 11132 * BFD_RELOC_LM32_CALL: howto manager. (line 2343) 11133 * BFD_RELOC_LM32_COPY: howto manager. (line 2348) 11134 * BFD_RELOC_LM32_GLOB_DAT: howto manager. (line 2349) 11135 * BFD_RELOC_LM32_GOTOFF_HI16: howto manager. (line 2346) 11136 * BFD_RELOC_LM32_GOTOFF_LO16: howto manager. (line 2347) 11137 * BFD_RELOC_LM32_JMP_SLOT: howto manager. (line 2350) 11138 * BFD_RELOC_LM32_RELATIVE: howto manager. (line 2351) 11139 * BFD_RELOC_LO10: howto manager. (line 117) 11140 * BFD_RELOC_LO16: howto manager. (line 353) 11141 * BFD_RELOC_LO16_BASEREL: howto manager. (line 96) 11142 * BFD_RELOC_LO16_GOTOFF: howto manager. (line 56) 11143 * BFD_RELOC_LO16_PCREL: howto manager. (line 362) 11144 * BFD_RELOC_LO16_PLTOFF: howto manager. (line 68) 11145 * BFD_RELOC_M32C_HI8: howto manager. (line 1180) 11146 * BFD_RELOC_M32C_RL_1ADDR: howto manager. (line 1182) 11147 * BFD_RELOC_M32C_RL_2ADDR: howto manager. (line 1183) 11148 * BFD_RELOC_M32C_RL_JUMP: howto manager. (line 1181) 11149 * BFD_RELOC_M32R_10_PCREL: howto manager. (line 1190) 11150 * BFD_RELOC_M32R_18_PCREL: howto manager. (line 1194) 11151 * BFD_RELOC_M32R_24: howto manager. (line 1186) 11152 * BFD_RELOC_M32R_26_PCREL: howto manager. (line 1197) 11153 * BFD_RELOC_M32R_26_PLTREL: howto manager. (line 1216) 11154 * BFD_RELOC_M32R_COPY: howto manager. (line 1217) 11155 * BFD_RELOC_M32R_GLOB_DAT: howto manager. (line 1218) 11156 * BFD_RELOC_M32R_GOT16_HI_SLO: howto manager. (line 1227) 11157 * BFD_RELOC_M32R_GOT16_HI_ULO: howto manager. (line 1226) 11158 * BFD_RELOC_M32R_GOT16_LO: howto manager. (line 1228) 11159 * BFD_RELOC_M32R_GOT24: howto manager. (line 1215) 11160 * BFD_RELOC_M32R_GOTOFF: howto manager. (line 1221) 11161 * BFD_RELOC_M32R_GOTOFF_HI_SLO: howto manager. (line 1223) 11162 * BFD_RELOC_M32R_GOTOFF_HI_ULO: howto manager. (line 1222) 11163 * BFD_RELOC_M32R_GOTOFF_LO: howto manager. (line 1224) 11164 * BFD_RELOC_M32R_GOTPC24: howto manager. (line 1225) 11165 * BFD_RELOC_M32R_GOTPC_HI_SLO: howto manager. (line 1230) 11166 * BFD_RELOC_M32R_GOTPC_HI_ULO: howto manager. (line 1229) 11167 * BFD_RELOC_M32R_GOTPC_LO: howto manager. (line 1231) 11168 * BFD_RELOC_M32R_HI16_SLO: howto manager. (line 1204) 11169 * BFD_RELOC_M32R_HI16_ULO: howto manager. (line 1200) 11170 * BFD_RELOC_M32R_JMP_SLOT: howto manager. (line 1219) 11171 * BFD_RELOC_M32R_LO16: howto manager. (line 1208) 11172 * BFD_RELOC_M32R_RELATIVE: howto manager. (line 1220) 11173 * BFD_RELOC_M32R_SDA16: howto manager. (line 1211) 11174 * BFD_RELOC_M68HC11_24: howto manager. (line 1983) 11175 * BFD_RELOC_M68HC11_3B: howto manager. (line 1958) 11176 * BFD_RELOC_M68HC11_HI8: howto manager. (line 1950) 11177 * BFD_RELOC_M68HC11_LO16: howto manager. (line 1972) 11178 * BFD_RELOC_M68HC11_LO8: howto manager. (line 1954) 11179 * BFD_RELOC_M68HC11_PAGE: howto manager. (line 1978) 11180 * BFD_RELOC_M68HC11_RL_GROUP: howto manager. (line 1967) 11181 * BFD_RELOC_M68HC11_RL_JUMP: howto manager. (line 1961) 11182 * BFD_RELOC_M68HC12_5B: howto manager. (line 1989) 11183 * BFD_RELOC_MACH_O_PAIR: howto manager. (line 2358) 11184 * BFD_RELOC_MACH_O_SECTDIFF: howto manager. (line 2354) 11185 * BFD_RELOC_MACH_O_X86_64_BRANCH32: howto manager. (line 2361) 11186 * BFD_RELOC_MACH_O_X86_64_BRANCH8: howto manager. (line 2362) 11187 * BFD_RELOC_MACH_O_X86_64_GOT: howto manager. (line 2366) 11188 * BFD_RELOC_MACH_O_X86_64_GOT_LOAD: howto manager. (line 2369) 11189 * BFD_RELOC_MACH_O_X86_64_PCREL32_1: howto manager. (line 2379) 11190 * BFD_RELOC_MACH_O_X86_64_PCREL32_2: howto manager. (line 2382) 11191 * BFD_RELOC_MACH_O_X86_64_PCREL32_4: howto manager. (line 2385) 11192 * BFD_RELOC_MACH_O_X86_64_SUBTRACTOR32: howto manager. (line 2373) 11193 * BFD_RELOC_MACH_O_X86_64_SUBTRACTOR64: howto manager. (line 2376) 11194 * BFD_RELOC_MCORE_PCREL_32: howto manager. (line 1469) 11195 * BFD_RELOC_MCORE_PCREL_IMM11BY2: howto manager. (line 1467) 11196 * BFD_RELOC_MCORE_PCREL_IMM4BY2: howto manager. (line 1468) 11197 * BFD_RELOC_MCORE_PCREL_IMM8BY4: howto manager. (line 1466) 11198 * BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2: howto manager. (line 1470) 11199 * BFD_RELOC_MCORE_RVA: howto manager. (line 1471) 11200 * BFD_RELOC_MEP_16: howto manager. (line 1475) 11201 * BFD_RELOC_MEP_32: howto manager. (line 1476) 11202 * BFD_RELOC_MEP_8: howto manager. (line 1474) 11203 * BFD_RELOC_MEP_ADDR24A4: howto manager. (line 1491) 11204 * BFD_RELOC_MEP_GNU_VTENTRY: howto manager. (line 1493) 11205 * BFD_RELOC_MEP_GNU_VTINHERIT: howto manager. (line 1492) 11206 * BFD_RELOC_MEP_GPREL: howto manager. (line 1485) 11207 * BFD_RELOC_MEP_HI16S: howto manager. (line 1484) 11208 * BFD_RELOC_MEP_HI16U: howto manager. (line 1483) 11209 * BFD_RELOC_MEP_LOW16: howto manager. (line 1482) 11210 * BFD_RELOC_MEP_PCABS24A2: howto manager. (line 1481) 11211 * BFD_RELOC_MEP_PCREL12A2: howto manager. (line 1478) 11212 * BFD_RELOC_MEP_PCREL17A2: howto manager. (line 1479) 11213 * BFD_RELOC_MEP_PCREL24A2: howto manager. (line 1480) 11214 * BFD_RELOC_MEP_PCREL8A2: howto manager. (line 1477) 11215 * BFD_RELOC_MEP_TPREL: howto manager. (line 1486) 11216 * BFD_RELOC_MEP_TPREL7: howto manager. (line 1487) 11217 * BFD_RELOC_MEP_TPREL7A2: howto manager. (line 1488) 11218 * BFD_RELOC_MEP_TPREL7A4: howto manager. (line 1489) 11219 * BFD_RELOC_MEP_UIMM24: howto manager. (line 1490) 11220 * BFD_RELOC_MICROBLAZE_32_GOTOFF: howto manager. (line 2432) 11221 * BFD_RELOC_MICROBLAZE_32_LO: howto manager. (line 2388) 11222 * BFD_RELOC_MICROBLAZE_32_LO_PCREL: howto manager. (line 2392) 11223 * BFD_RELOC_MICROBLAZE_32_ROSDA: howto manager. (line 2396) 11224 * BFD_RELOC_MICROBLAZE_32_RWSDA: howto manager. (line 2400) 11225 * BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM: howto manager. (line 2404) 11226 * BFD_RELOC_MICROBLAZE_64_GOT: howto manager. (line 2418) 11227 * BFD_RELOC_MICROBLAZE_64_GOTOFF: howto manager. (line 2427) 11228 * BFD_RELOC_MICROBLAZE_64_GOTPC: howto manager. (line 2413) 11229 * BFD_RELOC_MICROBLAZE_64_NONE: howto manager. (line 2408) 11230 * BFD_RELOC_MICROBLAZE_64_PLT: howto manager. (line 2422) 11231 * BFD_RELOC_MICROBLAZE_COPY: howto manager. (line 2436) 11232 * BFD_RELOC_MICROMIPS_10_PCREL_S1: howto manager. (line 387) 11233 * BFD_RELOC_MICROMIPS_16_PCREL_S1: howto manager. (line 388) 11234 * BFD_RELOC_MICROMIPS_7_PCREL_S1: howto manager. (line 386) 11235 * BFD_RELOC_MICROMIPS_CALL16: howto manager. (line 400) 11236 * BFD_RELOC_MICROMIPS_CALL_HI16: howto manager. (line 406) 11237 * BFD_RELOC_MICROMIPS_CALL_LO16: howto manager. (line 408) 11238 * BFD_RELOC_MICROMIPS_GOT16: howto manager. (line 398) 11239 * BFD_RELOC_MICROMIPS_GOT_DISP: howto manager. (line 416) 11240 * BFD_RELOC_MICROMIPS_GOT_HI16: howto manager. (line 402) 11241 * BFD_RELOC_MICROMIPS_GOT_LO16: howto manager. (line 404) 11242 * BFD_RELOC_MICROMIPS_GOT_OFST: howto manager. (line 414) 11243 * BFD_RELOC_MICROMIPS_GOT_PAGE: howto manager. (line 412) 11244 * BFD_RELOC_MICROMIPS_GPREL16: howto manager. (line 391) 11245 * BFD_RELOC_MICROMIPS_HI16: howto manager. (line 392) 11246 * BFD_RELOC_MICROMIPS_HI16_S: howto manager. (line 393) 11247 * BFD_RELOC_MICROMIPS_HIGHER: howto manager. (line 425) 11248 * BFD_RELOC_MICROMIPS_HIGHEST: howto manager. (line 423) 11249 * BFD_RELOC_MICROMIPS_JALR: howto manager. (line 431) 11250 * BFD_RELOC_MICROMIPS_JMP: howto manager. (line 335) 11251 * BFD_RELOC_MICROMIPS_LITERAL: howto manager. (line 383) 11252 * BFD_RELOC_MICROMIPS_LO16: howto manager. (line 394) 11253 * BFD_RELOC_MICROMIPS_SCN_DISP: howto manager. (line 427) 11254 * BFD_RELOC_MICROMIPS_SUB: howto manager. (line 410) 11255 * BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16: howto manager. (line 441) 11256 * BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16: howto manager. (line 443) 11257 * BFD_RELOC_MICROMIPS_TLS_GD: howto manager. (line 437) 11258 * BFD_RELOC_MICROMIPS_TLS_GOTTPREL: howto manager. (line 445) 11259 * BFD_RELOC_MICROMIPS_TLS_LDM: howto manager. (line 439) 11260 * BFD_RELOC_MICROMIPS_TLS_TPREL_HI16: howto manager. (line 449) 11261 * BFD_RELOC_MICROMIPS_TLS_TPREL_LO16: howto manager. (line 451) 11262 * BFD_RELOC_MIPS16_CALL16: howto manager. (line 366) 11263 * BFD_RELOC_MIPS16_GOT16: howto manager. (line 365) 11264 * BFD_RELOC_MIPS16_GPREL: howto manager. (line 341) 11265 * BFD_RELOC_MIPS16_HI16: howto manager. (line 370) 11266 * BFD_RELOC_MIPS16_HI16_S: howto manager. (line 373) 11267 * BFD_RELOC_MIPS16_JMP: howto manager. (line 338) 11268 * BFD_RELOC_MIPS16_LO16: howto manager. (line 379) 11269 * BFD_RELOC_MIPS_CALL16: howto manager. (line 399) 11270 * BFD_RELOC_MIPS_CALL_HI16: howto manager. (line 405) 11271 * BFD_RELOC_MIPS_CALL_LO16: howto manager. (line 407) 11272 * BFD_RELOC_MIPS_COPY: howto manager. (line 454) 11273 * BFD_RELOC_MIPS_DELETE: howto manager. (line 421) 11274 * BFD_RELOC_MIPS_GOT16: howto manager. (line 397) 11275 * BFD_RELOC_MIPS_GOT_DISP: howto manager. (line 415) 11276 * BFD_RELOC_MIPS_GOT_HI16: howto manager. (line 401) 11277 * BFD_RELOC_MIPS_GOT_LO16: howto manager. (line 403) 11278 * BFD_RELOC_MIPS_GOT_OFST: howto manager. (line 413) 11279 * BFD_RELOC_MIPS_GOT_PAGE: howto manager. (line 411) 11280 * BFD_RELOC_MIPS_HIGHER: howto manager. (line 424) 11281 * BFD_RELOC_MIPS_HIGHEST: howto manager. (line 422) 11282 * BFD_RELOC_MIPS_INSERT_A: howto manager. (line 419) 11283 * BFD_RELOC_MIPS_INSERT_B: howto manager. (line 420) 11284 * BFD_RELOC_MIPS_JALR: howto manager. (line 430) 11285 * BFD_RELOC_MIPS_JMP: howto manager. (line 334) 11286 * BFD_RELOC_MIPS_JUMP_SLOT: howto manager. (line 455) 11287 * BFD_RELOC_MIPS_LITERAL: howto manager. (line 382) 11288 * BFD_RELOC_MIPS_REL16: howto manager. (line 428) 11289 * BFD_RELOC_MIPS_RELGOT: howto manager. (line 429) 11290 * BFD_RELOC_MIPS_SCN_DISP: howto manager. (line 426) 11291 * BFD_RELOC_MIPS_SHIFT5: howto manager. (line 417) 11292 * BFD_RELOC_MIPS_SHIFT6: howto manager. (line 418) 11293 * BFD_RELOC_MIPS_SUB: howto manager. (line 409) 11294 * BFD_RELOC_MIPS_TLS_DTPMOD32: howto manager. (line 432) 11295 * BFD_RELOC_MIPS_TLS_DTPMOD64: howto manager. (line 434) 11296 * BFD_RELOC_MIPS_TLS_DTPREL32: howto manager. (line 433) 11297 * BFD_RELOC_MIPS_TLS_DTPREL64: howto manager. (line 435) 11298 * BFD_RELOC_MIPS_TLS_DTPREL_HI16: howto manager. (line 440) 11299 * BFD_RELOC_MIPS_TLS_DTPREL_LO16: howto manager. (line 442) 11300 * BFD_RELOC_MIPS_TLS_GD: howto manager. (line 436) 11301 * BFD_RELOC_MIPS_TLS_GOTTPREL: howto manager. (line 444) 11302 * BFD_RELOC_MIPS_TLS_LDM: howto manager. (line 438) 11303 * BFD_RELOC_MIPS_TLS_TPREL32: howto manager. (line 446) 11304 * BFD_RELOC_MIPS_TLS_TPREL64: howto manager. (line 447) 11305 * BFD_RELOC_MIPS_TLS_TPREL_HI16: howto manager. (line 448) 11306 * BFD_RELOC_MIPS_TLS_TPREL_LO16: howto manager. (line 450) 11307 * BFD_RELOC_MMIX_ADDR19: howto manager. (line 1522) 11308 * BFD_RELOC_MMIX_ADDR27: howto manager. (line 1526) 11309 * BFD_RELOC_MMIX_BASE_PLUS_OFFSET: howto manager. (line 1538) 11310 * BFD_RELOC_MMIX_CBRANCH: howto manager. (line 1502) 11311 * BFD_RELOC_MMIX_CBRANCH_1: howto manager. (line 1504) 11312 * BFD_RELOC_MMIX_CBRANCH_2: howto manager. (line 1505) 11313 * BFD_RELOC_MMIX_CBRANCH_3: howto manager. (line 1506) 11314 * BFD_RELOC_MMIX_CBRANCH_J: howto manager. (line 1503) 11315 * BFD_RELOC_MMIX_GETA: howto manager. (line 1496) 11316 * BFD_RELOC_MMIX_GETA_1: howto manager. (line 1497) 11317 * BFD_RELOC_MMIX_GETA_2: howto manager. (line 1498) 11318 * BFD_RELOC_MMIX_GETA_3: howto manager. (line 1499) 11319 * BFD_RELOC_MMIX_JMP: howto manager. (line 1516) 11320 * BFD_RELOC_MMIX_JMP_1: howto manager. (line 1517) 11321 * BFD_RELOC_MMIX_JMP_2: howto manager. (line 1518) 11322 * BFD_RELOC_MMIX_JMP_3: howto manager. (line 1519) 11323 * BFD_RELOC_MMIX_LOCAL: howto manager. (line 1542) 11324 * BFD_RELOC_MMIX_PUSHJ: howto manager. (line 1509) 11325 * BFD_RELOC_MMIX_PUSHJ_1: howto manager. (line 1510) 11326 * BFD_RELOC_MMIX_PUSHJ_2: howto manager. (line 1511) 11327 * BFD_RELOC_MMIX_PUSHJ_3: howto manager. (line 1512) 11328 * BFD_RELOC_MMIX_PUSHJ_STUBBABLE: howto manager. (line 1513) 11329 * BFD_RELOC_MMIX_REG: howto manager. (line 1534) 11330 * BFD_RELOC_MMIX_REG_OR_BYTE: howto manager. (line 1530) 11331 * BFD_RELOC_MN10300_16_PCREL: howto manager. (line 1372) 11332 * BFD_RELOC_MN10300_32_PCREL: howto manager. (line 1368) 11333 * BFD_RELOC_MN10300_ALIGN: howto manager. (line 534) 11334 * BFD_RELOC_MN10300_COPY: howto manager. (line 517) 11335 * BFD_RELOC_MN10300_GLOB_DAT: howto manager. (line 520) 11336 * BFD_RELOC_MN10300_GOT16: howto manager. (line 513) 11337 * BFD_RELOC_MN10300_GOT24: howto manager. (line 509) 11338 * BFD_RELOC_MN10300_GOT32: howto manager. (line 505) 11339 * BFD_RELOC_MN10300_GOTOFF24: howto manager. (line 502) 11340 * BFD_RELOC_MN10300_JMP_SLOT: howto manager. (line 523) 11341 * BFD_RELOC_MN10300_RELATIVE: howto manager. (line 526) 11342 * BFD_RELOC_MN10300_SYM_DIFF: howto manager. (line 529) 11343 * BFD_RELOC_MOXIE_10_PCREL: howto manager. (line 458) 11344 * BFD_RELOC_MSP430_10_PCREL: howto manager. (line 2229) 11345 * BFD_RELOC_MSP430_16: howto manager. (line 2231) 11346 * BFD_RELOC_MSP430_16_BYTE: howto manager. (line 2233) 11347 * BFD_RELOC_MSP430_16_PCREL: howto manager. (line 2230) 11348 * BFD_RELOC_MSP430_16_PCREL_BYTE: howto manager. (line 2232) 11349 * BFD_RELOC_MSP430_2X_PCREL: howto manager. (line 2234) 11350 * BFD_RELOC_MSP430_RL_PCREL: howto manager. (line 2235) 11351 * BFD_RELOC_MT_GNU_VTENTRY: howto manager. (line 2223) 11352 * BFD_RELOC_MT_GNU_VTINHERIT: howto manager. (line 2220) 11353 * BFD_RELOC_MT_HI16: howto manager. (line 2214) 11354 * BFD_RELOC_MT_LO16: howto manager. (line 2217) 11355 * BFD_RELOC_MT_PC16: howto manager. (line 2211) 11356 * BFD_RELOC_MT_PCINSN8: howto manager. (line 2226) 11357 * BFD_RELOC_NONE: howto manager. (line 131) 11358 * BFD_RELOC_NS32K_DISP_16: howto manager. (line 600) 11359 * BFD_RELOC_NS32K_DISP_16_PCREL: howto manager. (line 603) 11360 * BFD_RELOC_NS32K_DISP_32: howto manager. (line 601) 11361 * BFD_RELOC_NS32K_DISP_32_PCREL: howto manager. (line 604) 11362 * BFD_RELOC_NS32K_DISP_8: howto manager. (line 599) 11363 * BFD_RELOC_NS32K_DISP_8_PCREL: howto manager. (line 602) 11364 * BFD_RELOC_NS32K_IMM_16: howto manager. (line 594) 11365 * BFD_RELOC_NS32K_IMM_16_PCREL: howto manager. (line 597) 11366 * BFD_RELOC_NS32K_IMM_32: howto manager. (line 595) 11367 * BFD_RELOC_NS32K_IMM_32_PCREL: howto manager. (line 598) 11368 * BFD_RELOC_NS32K_IMM_8: howto manager. (line 593) 11369 * BFD_RELOC_NS32K_IMM_8_PCREL: howto manager. (line 596) 11370 * BFD_RELOC_OPENRISC_ABS_26: howto manager. (line 2180) 11371 * BFD_RELOC_OPENRISC_REL_26: howto manager. (line 2181) 11372 * BFD_RELOC_PDP11_DISP_6_PCREL: howto manager. (line 608) 11373 * BFD_RELOC_PDP11_DISP_8_PCREL: howto manager. (line 607) 11374 * BFD_RELOC_PJ_CODE_DIR16: howto manager. (line 613) 11375 * BFD_RELOC_PJ_CODE_DIR32: howto manager. (line 614) 11376 * BFD_RELOC_PJ_CODE_HI16: howto manager. (line 611) 11377 * BFD_RELOC_PJ_CODE_LO16: howto manager. (line 612) 11378 * BFD_RELOC_PJ_CODE_REL16: howto manager. (line 615) 11379 * BFD_RELOC_PJ_CODE_REL32: howto manager. (line 616) 11380 * BFD_RELOC_PPC64_ADDR16_DS: howto manager. (line 661) 11381 * BFD_RELOC_PPC64_ADDR16_LO_DS: howto manager. (line 662) 11382 * BFD_RELOC_PPC64_DTPREL16_DS: howto manager. (line 710) 11383 * BFD_RELOC_PPC64_DTPREL16_HIGHER: howto manager. (line 712) 11384 * BFD_RELOC_PPC64_DTPREL16_HIGHERA: howto manager. (line 713) 11385 * BFD_RELOC_PPC64_DTPREL16_HIGHEST: howto manager. (line 714) 11386 * BFD_RELOC_PPC64_DTPREL16_HIGHESTA: howto manager. (line 715) 11387 * BFD_RELOC_PPC64_DTPREL16_LO_DS: howto manager. (line 711) 11388 * BFD_RELOC_PPC64_GOT16_DS: howto manager. (line 663) 11389 * BFD_RELOC_PPC64_GOT16_LO_DS: howto manager. (line 664) 11390 * BFD_RELOC_PPC64_HIGHER: howto manager. (line 649) 11391 * BFD_RELOC_PPC64_HIGHER_S: howto manager. (line 650) 11392 * BFD_RELOC_PPC64_HIGHEST: howto manager. (line 651) 11393 * BFD_RELOC_PPC64_HIGHEST_S: howto manager. (line 652) 11394 * BFD_RELOC_PPC64_PLT16_LO_DS: howto manager. (line 665) 11395 * BFD_RELOC_PPC64_PLTGOT16: howto manager. (line 657) 11396 * BFD_RELOC_PPC64_PLTGOT16_DS: howto manager. (line 670) 11397 * BFD_RELOC_PPC64_PLTGOT16_HA: howto manager. (line 660) 11398 * BFD_RELOC_PPC64_PLTGOT16_HI: howto manager. (line 659) 11399 * BFD_RELOC_PPC64_PLTGOT16_LO: howto manager. (line 658) 11400 * BFD_RELOC_PPC64_PLTGOT16_LO_DS: howto manager. (line 671) 11401 * BFD_RELOC_PPC64_SECTOFF_DS: howto manager. (line 666) 11402 * BFD_RELOC_PPC64_SECTOFF_LO_DS: howto manager. (line 667) 11403 * BFD_RELOC_PPC64_TOC: howto manager. (line 656) 11404 * BFD_RELOC_PPC64_TOC16_DS: howto manager. (line 668) 11405 * BFD_RELOC_PPC64_TOC16_HA: howto manager. (line 655) 11406 * BFD_RELOC_PPC64_TOC16_HI: howto manager. (line 654) 11407 * BFD_RELOC_PPC64_TOC16_LO: howto manager. (line 653) 11408 * BFD_RELOC_PPC64_TOC16_LO_DS: howto manager. (line 669) 11409 * BFD_RELOC_PPC64_TPREL16_DS: howto manager. (line 704) 11410 * BFD_RELOC_PPC64_TPREL16_HIGHER: howto manager. (line 706) 11411 * BFD_RELOC_PPC64_TPREL16_HIGHERA: howto manager. (line 707) 11412 * BFD_RELOC_PPC64_TPREL16_HIGHEST: howto manager. (line 708) 11413 * BFD_RELOC_PPC64_TPREL16_HIGHESTA: howto manager. (line 709) 11414 * BFD_RELOC_PPC64_TPREL16_LO_DS: howto manager. (line 705) 11415 * BFD_RELOC_PPC_B16: howto manager. (line 622) 11416 * BFD_RELOC_PPC_B16_BRNTAKEN: howto manager. (line 624) 11417 * BFD_RELOC_PPC_B16_BRTAKEN: howto manager. (line 623) 11418 * BFD_RELOC_PPC_B26: howto manager. (line 619) 11419 * BFD_RELOC_PPC_BA16: howto manager. (line 625) 11420 * BFD_RELOC_PPC_BA16_BRNTAKEN: howto manager. (line 627) 11421 * BFD_RELOC_PPC_BA16_BRTAKEN: howto manager. (line 626) 11422 * BFD_RELOC_PPC_BA26: howto manager. (line 620) 11423 * BFD_RELOC_PPC_COPY: howto manager. (line 628) 11424 * BFD_RELOC_PPC_DTPMOD: howto manager. (line 677) 11425 * BFD_RELOC_PPC_DTPREL: howto manager. (line 687) 11426 * BFD_RELOC_PPC_DTPREL16: howto manager. (line 683) 11427 * BFD_RELOC_PPC_DTPREL16_HA: howto manager. (line 686) 11428 * BFD_RELOC_PPC_DTPREL16_HI: howto manager. (line 685) 11429 * BFD_RELOC_PPC_DTPREL16_LO: howto manager. (line 684) 11430 * BFD_RELOC_PPC_EMB_BIT_FLD: howto manager. (line 647) 11431 * BFD_RELOC_PPC_EMB_MRKREF: howto manager. (line 642) 11432 * BFD_RELOC_PPC_EMB_NADDR16: howto manager. (line 634) 11433 * BFD_RELOC_PPC_EMB_NADDR16_HA: howto manager. (line 637) 11434 * BFD_RELOC_PPC_EMB_NADDR16_HI: howto manager. (line 636) 11435 * BFD_RELOC_PPC_EMB_NADDR16_LO: howto manager. (line 635) 11436 * BFD_RELOC_PPC_EMB_NADDR32: howto manager. (line 633) 11437 * BFD_RELOC_PPC_EMB_RELSDA: howto manager. (line 648) 11438 * BFD_RELOC_PPC_EMB_RELSEC16: howto manager. (line 643) 11439 * BFD_RELOC_PPC_EMB_RELST_HA: howto manager. (line 646) 11440 * BFD_RELOC_PPC_EMB_RELST_HI: howto manager. (line 645) 11441 * BFD_RELOC_PPC_EMB_RELST_LO: howto manager. (line 644) 11442 * BFD_RELOC_PPC_EMB_SDA21: howto manager. (line 641) 11443 * BFD_RELOC_PPC_EMB_SDA2I16: howto manager. (line 639) 11444 * BFD_RELOC_PPC_EMB_SDA2REL: howto manager. (line 640) 11445 * BFD_RELOC_PPC_EMB_SDAI16: howto manager. (line 638) 11446 * BFD_RELOC_PPC_GLOB_DAT: howto manager. (line 629) 11447 * BFD_RELOC_PPC_GOT_DTPREL16: howto manager. (line 700) 11448 * BFD_RELOC_PPC_GOT_DTPREL16_HA: howto manager. (line 703) 11449 * BFD_RELOC_PPC_GOT_DTPREL16_HI: howto manager. (line 702) 11450 * BFD_RELOC_PPC_GOT_DTPREL16_LO: howto manager. (line 701) 11451 * BFD_RELOC_PPC_GOT_TLSGD16: howto manager. (line 688) 11452 * BFD_RELOC_PPC_GOT_TLSGD16_HA: howto manager. (line 691) 11453 * BFD_RELOC_PPC_GOT_TLSGD16_HI: howto manager. (line 690) 11454 * BFD_RELOC_PPC_GOT_TLSGD16_LO: howto manager. (line 689) 11455 * BFD_RELOC_PPC_GOT_TLSLD16: howto manager. (line 692) 11456 * BFD_RELOC_PPC_GOT_TLSLD16_HA: howto manager. (line 695) 11457 * BFD_RELOC_PPC_GOT_TLSLD16_HI: howto manager. (line 694) 11458 * BFD_RELOC_PPC_GOT_TLSLD16_LO: howto manager. (line 693) 11459 * BFD_RELOC_PPC_GOT_TPREL16: howto manager. (line 696) 11460 * BFD_RELOC_PPC_GOT_TPREL16_HA: howto manager. (line 699) 11461 * BFD_RELOC_PPC_GOT_TPREL16_HI: howto manager. (line 698) 11462 * BFD_RELOC_PPC_GOT_TPREL16_LO: howto manager. (line 697) 11463 * BFD_RELOC_PPC_JMP_SLOT: howto manager. (line 630) 11464 * BFD_RELOC_PPC_LOCAL24PC: howto manager. (line 632) 11465 * BFD_RELOC_PPC_RELATIVE: howto manager. (line 631) 11466 * BFD_RELOC_PPC_TLS: howto manager. (line 674) 11467 * BFD_RELOC_PPC_TLSGD: howto manager. (line 675) 11468 * BFD_RELOC_PPC_TLSLD: howto manager. (line 676) 11469 * BFD_RELOC_PPC_TOC16: howto manager. (line 621) 11470 * BFD_RELOC_PPC_TPREL: howto manager. (line 682) 11471 * BFD_RELOC_PPC_TPREL16: howto manager. (line 678) 11472 * BFD_RELOC_PPC_TPREL16_HA: howto manager. (line 681) 11473 * BFD_RELOC_PPC_TPREL16_HI: howto manager. (line 680) 11474 * BFD_RELOC_PPC_TPREL16_LO: howto manager. (line 679) 11475 * BFD_RELOC_RELC: howto manager. (line 2197) 11476 * BFD_RELOC_RVA: howto manager. (line 100) 11477 * BFD_RELOC_RX_16_OP: howto manager. (line 1653) 11478 * BFD_RELOC_RX_16U: howto manager. (line 1657) 11479 * BFD_RELOC_RX_24_OP: howto manager. (line 1654) 11480 * BFD_RELOC_RX_24U: howto manager. (line 1658) 11481 * BFD_RELOC_RX_32_OP: howto manager. (line 1655) 11482 * BFD_RELOC_RX_8U: howto manager. (line 1656) 11483 * BFD_RELOC_RX_ABS16: howto manager. (line 1668) 11484 * BFD_RELOC_RX_ABS16_REV: howto manager. (line 1669) 11485 * BFD_RELOC_RX_ABS16U: howto manager. (line 1672) 11486 * BFD_RELOC_RX_ABS16UL: howto manager. (line 1674) 11487 * BFD_RELOC_RX_ABS16UW: howto manager. (line 1673) 11488 * BFD_RELOC_RX_ABS32: howto manager. (line 1670) 11489 * BFD_RELOC_RX_ABS32_REV: howto manager. (line 1671) 11490 * BFD_RELOC_RX_ABS8: howto manager. (line 1667) 11491 * BFD_RELOC_RX_DIFF: howto manager. (line 1660) 11492 * BFD_RELOC_RX_DIR3U_PCREL: howto manager. (line 1659) 11493 * BFD_RELOC_RX_GPRELB: howto manager. (line 1661) 11494 * BFD_RELOC_RX_GPRELL: howto manager. (line 1663) 11495 * BFD_RELOC_RX_GPRELW: howto manager. (line 1662) 11496 * BFD_RELOC_RX_NEG16: howto manager. (line 1650) 11497 * BFD_RELOC_RX_NEG24: howto manager. (line 1651) 11498 * BFD_RELOC_RX_NEG32: howto manager. (line 1652) 11499 * BFD_RELOC_RX_NEG8: howto manager. (line 1649) 11500 * BFD_RELOC_RX_OP_NEG: howto manager. (line 1666) 11501 * BFD_RELOC_RX_OP_SUBTRACT: howto manager. (line 1665) 11502 * BFD_RELOC_RX_RELAX: howto manager. (line 1675) 11503 * BFD_RELOC_RX_SYM: howto manager. (line 1664) 11504 * BFD_RELOC_SCORE16_BRANCH: howto manager. (line 1803) 11505 * BFD_RELOC_SCORE16_JMP: howto manager. (line 1800) 11506 * BFD_RELOC_SCORE_BCMP: howto manager. (line 1806) 11507 * BFD_RELOC_SCORE_BRANCH: howto manager. (line 1791) 11508 * BFD_RELOC_SCORE_CALL15: howto manager. (line 1811) 11509 * BFD_RELOC_SCORE_DUMMY2: howto manager. (line 1787) 11510 * BFD_RELOC_SCORE_DUMMY_HI16: howto manager. (line 1812) 11511 * BFD_RELOC_SCORE_GOT15: howto manager. (line 1809) 11512 * BFD_RELOC_SCORE_GOT_LO16: howto manager. (line 1810) 11513 * BFD_RELOC_SCORE_GPREL15: howto manager. (line 1784) 11514 * BFD_RELOC_SCORE_IMM30: howto manager. (line 1794) 11515 * BFD_RELOC_SCORE_IMM32: howto manager. (line 1797) 11516 * BFD_RELOC_SCORE_JMP: howto manager. (line 1788) 11517 * BFD_RELOC_SH_ALIGN: howto manager. (line 909) 11518 * BFD_RELOC_SH_CODE: howto manager. (line 910) 11519 * BFD_RELOC_SH_COPY: howto manager. (line 915) 11520 * BFD_RELOC_SH_COPY64: howto manager. (line 940) 11521 * BFD_RELOC_SH_COUNT: howto manager. (line 908) 11522 * BFD_RELOC_SH_DATA: howto manager. (line 911) 11523 * BFD_RELOC_SH_DISP12: howto manager. (line 891) 11524 * BFD_RELOC_SH_DISP12BY2: howto manager. (line 892) 11525 * BFD_RELOC_SH_DISP12BY4: howto manager. (line 893) 11526 * BFD_RELOC_SH_DISP12BY8: howto manager. (line 894) 11527 * BFD_RELOC_SH_DISP20: howto manager. (line 895) 11528 * BFD_RELOC_SH_DISP20BY8: howto manager. (line 896) 11529 * BFD_RELOC_SH_FUNCDESC: howto manager. (line 983) 11530 * BFD_RELOC_SH_GLOB_DAT: howto manager. (line 916) 11531 * BFD_RELOC_SH_GLOB_DAT64: howto manager. (line 941) 11532 * BFD_RELOC_SH_GOT10BY4: howto manager. (line 944) 11533 * BFD_RELOC_SH_GOT10BY8: howto manager. (line 945) 11534 * BFD_RELOC_SH_GOT20: howto manager. (line 977) 11535 * BFD_RELOC_SH_GOT_HI16: howto manager. (line 923) 11536 * BFD_RELOC_SH_GOT_LOW16: howto manager. (line 920) 11537 * BFD_RELOC_SH_GOT_MEDHI16: howto manager. (line 922) 11538 * BFD_RELOC_SH_GOT_MEDLOW16: howto manager. (line 921) 11539 * BFD_RELOC_SH_GOTFUNCDESC: howto manager. (line 979) 11540 * BFD_RELOC_SH_GOTFUNCDESC20: howto manager. (line 980) 11541 * BFD_RELOC_SH_GOTOFF20: howto manager. (line 978) 11542 * BFD_RELOC_SH_GOTOFF_HI16: howto manager. (line 935) 11543 * BFD_RELOC_SH_GOTOFF_LOW16: howto manager. (line 932) 11544 * BFD_RELOC_SH_GOTOFF_MEDHI16: howto manager. (line 934) 11545 * BFD_RELOC_SH_GOTOFF_MEDLOW16: howto manager. (line 933) 11546 * BFD_RELOC_SH_GOTOFFFUNCDESC: howto manager. (line 981) 11547 * BFD_RELOC_SH_GOTOFFFUNCDESC20: howto manager. (line 982) 11548 * BFD_RELOC_SH_GOTPC: howto manager. (line 919) 11549 * BFD_RELOC_SH_GOTPC_HI16: howto manager. (line 939) 11550 * BFD_RELOC_SH_GOTPC_LOW16: howto manager. (line 936) 11551 * BFD_RELOC_SH_GOTPC_MEDHI16: howto manager. (line 938) 11552 * BFD_RELOC_SH_GOTPC_MEDLOW16: howto manager. (line 937) 11553 * BFD_RELOC_SH_GOTPLT10BY4: howto manager. (line 946) 11554 * BFD_RELOC_SH_GOTPLT10BY8: howto manager. (line 947) 11555 * BFD_RELOC_SH_GOTPLT32: howto manager. (line 948) 11556 * BFD_RELOC_SH_GOTPLT_HI16: howto manager. (line 927) 11557 * BFD_RELOC_SH_GOTPLT_LOW16: howto manager. (line 924) 11558 * BFD_RELOC_SH_GOTPLT_MEDHI16: howto manager. (line 926) 11559 * BFD_RELOC_SH_GOTPLT_MEDLOW16: howto manager. (line 925) 11560 * BFD_RELOC_SH_IMM3: howto manager. (line 889) 11561 * BFD_RELOC_SH_IMM3U: howto manager. (line 890) 11562 * BFD_RELOC_SH_IMM4: howto manager. (line 897) 11563 * BFD_RELOC_SH_IMM4BY2: howto manager. (line 898) 11564 * BFD_RELOC_SH_IMM4BY4: howto manager. (line 899) 11565 * BFD_RELOC_SH_IMM8: howto manager. (line 900) 11566 * BFD_RELOC_SH_IMM8BY2: howto manager. (line 901) 11567 * BFD_RELOC_SH_IMM8BY4: howto manager. (line 902) 11568 * BFD_RELOC_SH_IMM_HI16: howto manager. (line 966) 11569 * BFD_RELOC_SH_IMM_HI16_PCREL: howto manager. (line 967) 11570 * BFD_RELOC_SH_IMM_LOW16: howto manager. (line 960) 11571 * BFD_RELOC_SH_IMM_LOW16_PCREL: howto manager. (line 961) 11572 * BFD_RELOC_SH_IMM_MEDHI16: howto manager. (line 964) 11573 * BFD_RELOC_SH_IMM_MEDHI16_PCREL: howto manager. (line 965) 11574 * BFD_RELOC_SH_IMM_MEDLOW16: howto manager. (line 962) 11575 * BFD_RELOC_SH_IMM_MEDLOW16_PCREL: howto manager. (line 963) 11576 * BFD_RELOC_SH_IMMS10: howto manager. (line 954) 11577 * BFD_RELOC_SH_IMMS10BY2: howto manager. (line 955) 11578 * BFD_RELOC_SH_IMMS10BY4: howto manager. (line 956) 11579 * BFD_RELOC_SH_IMMS10BY8: howto manager. (line 957) 11580 * BFD_RELOC_SH_IMMS16: howto manager. (line 958) 11581 * BFD_RELOC_SH_IMMS6: howto manager. (line 951) 11582 * BFD_RELOC_SH_IMMS6BY32: howto manager. (line 952) 11583 * BFD_RELOC_SH_IMMU16: howto manager. (line 959) 11584 * BFD_RELOC_SH_IMMU5: howto manager. (line 950) 11585 * BFD_RELOC_SH_IMMU6: howto manager. (line 953) 11586 * BFD_RELOC_SH_JMP_SLOT: howto manager. (line 917) 11587 * BFD_RELOC_SH_JMP_SLOT64: howto manager. (line 942) 11588 * BFD_RELOC_SH_LABEL: howto manager. (line 912) 11589 * BFD_RELOC_SH_LOOP_END: howto manager. (line 914) 11590 * BFD_RELOC_SH_LOOP_START: howto manager. (line 913) 11591 * BFD_RELOC_SH_PCDISP12BY2: howto manager. (line 888) 11592 * BFD_RELOC_SH_PCDISP8BY2: howto manager. (line 887) 11593 * BFD_RELOC_SH_PCRELIMM8BY2: howto manager. (line 903) 11594 * BFD_RELOC_SH_PCRELIMM8BY4: howto manager. (line 904) 11595 * BFD_RELOC_SH_PLT_HI16: howto manager. (line 931) 11596 * BFD_RELOC_SH_PLT_LOW16: howto manager. (line 928) 11597 * BFD_RELOC_SH_PLT_MEDHI16: howto manager. (line 930) 11598 * BFD_RELOC_SH_PLT_MEDLOW16: howto manager. (line 929) 11599 * BFD_RELOC_SH_PT_16: howto manager. (line 968) 11600 * BFD_RELOC_SH_RELATIVE: howto manager. (line 918) 11601 * BFD_RELOC_SH_RELATIVE64: howto manager. (line 943) 11602 * BFD_RELOC_SH_SHMEDIA_CODE: howto manager. (line 949) 11603 * BFD_RELOC_SH_SWITCH16: howto manager. (line 905) 11604 * BFD_RELOC_SH_SWITCH32: howto manager. (line 906) 11605 * BFD_RELOC_SH_TLS_DTPMOD32: howto manager. (line 974) 11606 * BFD_RELOC_SH_TLS_DTPOFF32: howto manager. (line 975) 11607 * BFD_RELOC_SH_TLS_GD_32: howto manager. (line 969) 11608 * BFD_RELOC_SH_TLS_IE_32: howto manager. (line 972) 11609 * BFD_RELOC_SH_TLS_LD_32: howto manager. (line 970) 11610 * BFD_RELOC_SH_TLS_LDO_32: howto manager. (line 971) 11611 * BFD_RELOC_SH_TLS_LE_32: howto manager. (line 973) 11612 * BFD_RELOC_SH_TLS_TPOFF32: howto manager. (line 976) 11613 * BFD_RELOC_SH_USES: howto manager. (line 907) 11614 * BFD_RELOC_SPARC13: howto manager. (line 134) 11615 * BFD_RELOC_SPARC22: howto manager. (line 133) 11616 * BFD_RELOC_SPARC_10: howto manager. (line 163) 11617 * BFD_RELOC_SPARC_11: howto manager. (line 164) 11618 * BFD_RELOC_SPARC_5: howto manager. (line 176) 11619 * BFD_RELOC_SPARC_6: howto manager. (line 175) 11620 * BFD_RELOC_SPARC_64: howto manager. (line 162) 11621 * BFD_RELOC_SPARC_7: howto manager. (line 174) 11622 * BFD_RELOC_SPARC_BASE13: howto manager. (line 158) 11623 * BFD_RELOC_SPARC_BASE22: howto manager. (line 159) 11624 * BFD_RELOC_SPARC_COPY: howto manager. (line 141) 11625 * BFD_RELOC_SPARC_DISP64: howto manager. (line 177) 11626 * BFD_RELOC_SPARC_GLOB_DAT: howto manager. (line 142) 11627 * BFD_RELOC_SPARC_GOT10: howto manager. (line 135) 11628 * BFD_RELOC_SPARC_GOT13: howto manager. (line 136) 11629 * BFD_RELOC_SPARC_GOT22: howto manager. (line 137) 11630 * BFD_RELOC_SPARC_GOTDATA_HIX22: howto manager. (line 148) 11631 * BFD_RELOC_SPARC_GOTDATA_LOX10: howto manager. (line 149) 11632 * BFD_RELOC_SPARC_GOTDATA_OP: howto manager. (line 152) 11633 * BFD_RELOC_SPARC_GOTDATA_OP_HIX22: howto manager. (line 150) 11634 * BFD_RELOC_SPARC_GOTDATA_OP_LOX10: howto manager. (line 151) 11635 * BFD_RELOC_SPARC_H44: howto manager. (line 182) 11636 * BFD_RELOC_SPARC_HH22: howto manager. (line 166) 11637 * BFD_RELOC_SPARC_HIX22: howto manager. (line 180) 11638 * BFD_RELOC_SPARC_HM10: howto manager. (line 167) 11639 * BFD_RELOC_SPARC_IRELATIVE: howto manager. (line 154) 11640 * BFD_RELOC_SPARC_JMP_IREL: howto manager. (line 153) 11641 * BFD_RELOC_SPARC_JMP_SLOT: howto manager. (line 143) 11642 * BFD_RELOC_SPARC_L44: howto manager. (line 184) 11643 * BFD_RELOC_SPARC_LM22: howto manager. (line 168) 11644 * BFD_RELOC_SPARC_LOX10: howto manager. (line 181) 11645 * BFD_RELOC_SPARC_M44: howto manager. (line 183) 11646 * BFD_RELOC_SPARC_OLO10: howto manager. (line 165) 11647 * BFD_RELOC_SPARC_PC10: howto manager. (line 138) 11648 * BFD_RELOC_SPARC_PC22: howto manager. (line 139) 11649 * BFD_RELOC_SPARC_PC_HH22: howto manager. (line 169) 11650 * BFD_RELOC_SPARC_PC_HM10: howto manager. (line 170) 11651 * BFD_RELOC_SPARC_PC_LM22: howto manager. (line 171) 11652 * BFD_RELOC_SPARC_PLT32: howto manager. (line 178) 11653 * BFD_RELOC_SPARC_PLT64: howto manager. (line 179) 11654 * BFD_RELOC_SPARC_REGISTER: howto manager. (line 185) 11655 * BFD_RELOC_SPARC_RELATIVE: howto manager. (line 144) 11656 * BFD_RELOC_SPARC_REV32: howto manager. (line 188) 11657 * BFD_RELOC_SPARC_TLS_DTPMOD32: howto manager. (line 209) 11658 * BFD_RELOC_SPARC_TLS_DTPMOD64: howto manager. (line 210) 11659 * BFD_RELOC_SPARC_TLS_DTPOFF32: howto manager. (line 211) 11660 * BFD_RELOC_SPARC_TLS_DTPOFF64: howto manager. (line 212) 11661 * BFD_RELOC_SPARC_TLS_GD_ADD: howto manager. (line 193) 11662 * BFD_RELOC_SPARC_TLS_GD_CALL: howto manager. (line 194) 11663 * BFD_RELOC_SPARC_TLS_GD_HI22: howto manager. (line 191) 11664 * BFD_RELOC_SPARC_TLS_GD_LO10: howto manager. (line 192) 11665 * BFD_RELOC_SPARC_TLS_IE_ADD: howto manager. (line 206) 11666 * BFD_RELOC_SPARC_TLS_IE_HI22: howto manager. (line 202) 11667 * BFD_RELOC_SPARC_TLS_IE_LD: howto manager. (line 204) 11668 * BFD_RELOC_SPARC_TLS_IE_LDX: howto manager. (line 205) 11669 * BFD_RELOC_SPARC_TLS_IE_LO10: howto manager. (line 203) 11670 * BFD_RELOC_SPARC_TLS_LDM_ADD: howto manager. (line 197) 11671 * BFD_RELOC_SPARC_TLS_LDM_CALL: howto manager. (line 198) 11672 * BFD_RELOC_SPARC_TLS_LDM_HI22: howto manager. (line 195) 11673 * BFD_RELOC_SPARC_TLS_LDM_LO10: howto manager. (line 196) 11674 * BFD_RELOC_SPARC_TLS_LDO_ADD: howto manager. (line 201) 11675 * BFD_RELOC_SPARC_TLS_LDO_HIX22: howto manager. (line 199) 11676 * BFD_RELOC_SPARC_TLS_LDO_LOX10: howto manager. (line 200) 11677 * BFD_RELOC_SPARC_TLS_LE_HIX22: howto manager. (line 207) 11678 * BFD_RELOC_SPARC_TLS_LE_LOX10: howto manager. (line 208) 11679 * BFD_RELOC_SPARC_TLS_TPOFF32: howto manager. (line 213) 11680 * BFD_RELOC_SPARC_TLS_TPOFF64: howto manager. (line 214) 11681 * BFD_RELOC_SPARC_UA16: howto manager. (line 145) 11682 * BFD_RELOC_SPARC_UA32: howto manager. (line 146) 11683 * BFD_RELOC_SPARC_UA64: howto manager. (line 147) 11684 * BFD_RELOC_SPARC_WDISP16: howto manager. (line 172) 11685 * BFD_RELOC_SPARC_WDISP19: howto manager. (line 173) 11686 * BFD_RELOC_SPARC_WDISP22: howto manager. (line 132) 11687 * BFD_RELOC_SPARC_WPLT30: howto manager. (line 140) 11688 * BFD_RELOC_SPU_ADD_PIC: howto manager. (line 231) 11689 * BFD_RELOC_SPU_HI16: howto manager. (line 228) 11690 * BFD_RELOC_SPU_IMM10: howto manager. (line 219) 11691 * BFD_RELOC_SPU_IMM10W: howto manager. (line 220) 11692 * BFD_RELOC_SPU_IMM16: howto manager. (line 221) 11693 * BFD_RELOC_SPU_IMM16W: howto manager. (line 222) 11694 * BFD_RELOC_SPU_IMM18: howto manager. (line 223) 11695 * BFD_RELOC_SPU_IMM7: howto manager. (line 217) 11696 * BFD_RELOC_SPU_IMM8: howto manager. (line 218) 11697 * BFD_RELOC_SPU_LO16: howto manager. (line 227) 11698 * BFD_RELOC_SPU_PCREL16: howto manager. (line 226) 11699 * BFD_RELOC_SPU_PCREL9a: howto manager. (line 224) 11700 * BFD_RELOC_SPU_PCREL9b: howto manager. (line 225) 11701 * BFD_RELOC_SPU_PPU32: howto manager. (line 229) 11702 * BFD_RELOC_SPU_PPU64: howto manager. (line 230) 11703 * BFD_RELOC_THUMB_PCREL_BLX: howto manager. (line 736) 11704 * BFD_RELOC_THUMB_PCREL_BRANCH12: howto manager. (line 750) 11705 * BFD_RELOC_THUMB_PCREL_BRANCH20: howto manager. (line 751) 11706 * BFD_RELOC_THUMB_PCREL_BRANCH23: howto manager. (line 752) 11707 * BFD_RELOC_THUMB_PCREL_BRANCH25: howto manager. (line 753) 11708 * BFD_RELOC_THUMB_PCREL_BRANCH7: howto manager. (line 748) 11709 * BFD_RELOC_THUMB_PCREL_BRANCH9: howto manager. (line 749) 11710 * BFD_RELOC_TIC30_LDP: howto manager. (line 1376) 11711 * BFD_RELOC_TIC54X_16_OF_23: howto manager. (line 1394) 11712 * BFD_RELOC_TIC54X_23: howto manager. (line 1391) 11713 * BFD_RELOC_TIC54X_MS7_OF_23: howto manager. (line 1399) 11714 * BFD_RELOC_TIC54X_PARTLS7: howto manager. (line 1381) 11715 * BFD_RELOC_TIC54X_PARTMS9: howto manager. (line 1386) 11716 * BFD_RELOC_TILEGX_BROFF_X1: howto manager. (line 2518) 11717 * BFD_RELOC_TILEGX_COPY: howto manager. (line 2514) 11718 * BFD_RELOC_TILEGX_DEST_IMM8_X1: howto manager. (line 2525) 11719 * BFD_RELOC_TILEGX_GLOB_DAT: howto manager. (line 2515) 11720 * BFD_RELOC_TILEGX_HW0: howto manager. (line 2507) 11721 * BFD_RELOC_TILEGX_HW0_LAST: howto manager. (line 2511) 11722 * BFD_RELOC_TILEGX_HW1: howto manager. (line 2508) 11723 * BFD_RELOC_TILEGX_HW1_LAST: howto manager. (line 2512) 11724 * BFD_RELOC_TILEGX_HW2: howto manager. (line 2509) 11725 * BFD_RELOC_TILEGX_HW2_LAST: howto manager. (line 2513) 11726 * BFD_RELOC_TILEGX_HW3: howto manager. (line 2510) 11727 * BFD_RELOC_TILEGX_IMM16_X0_HW0: howto manager. (line 2534) 11728 * BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT: howto manager. (line 2562) 11729 * BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST: howto manager. (line 2542) 11730 * BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT: howto manager. (line 2570) 11731 * BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL: howto manager. (line 2556) 11732 * BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD: howto manager. (line 2584) 11733 * BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE: howto manager. (line 2598) 11734 * BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL: howto manager. (line 2548) 11735 * BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD: howto manager. (line 2576) 11736 * BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE: howto manager. (line 2590) 11737 * BFD_RELOC_TILEGX_IMM16_X0_HW1: howto manager. (line 2536) 11738 * BFD_RELOC_TILEGX_IMM16_X0_HW1_GOT: howto manager. (line 2564) 11739 * BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST: howto manager. (line 2544) 11740 * BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT: howto manager. (line 2572) 11741 * BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL: howto manager. (line 2558) 11742 * BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD: howto manager. (line 2586) 11743 * BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE: howto manager. (line 2600) 11744 * BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL: howto manager. (line 2550) 11745 * BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_GD: howto manager. (line 2578) 11746 * BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_IE: howto manager. (line 2592) 11747 * BFD_RELOC_TILEGX_IMM16_X0_HW2: howto manager. (line 2538) 11748 * BFD_RELOC_TILEGX_IMM16_X0_HW2_GOT: howto manager. (line 2566) 11749 * BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST: howto manager. (line 2546) 11750 * BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_GOT: howto manager. (line 2574) 11751 * BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL: howto manager. (line 2560) 11752 * BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_GD: howto manager. (line 2588) 11753 * BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_IE: howto manager. (line 2602) 11754 * BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL: howto manager. (line 2552) 11755 * BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_GD: howto manager. (line 2580) 11756 * BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_IE: howto manager. (line 2594) 11757 * BFD_RELOC_TILEGX_IMM16_X0_HW3: howto manager. (line 2540) 11758 * BFD_RELOC_TILEGX_IMM16_X0_HW3_GOT: howto manager. (line 2568) 11759 * BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL: howto manager. (line 2554) 11760 * BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_GD: howto manager. (line 2582) 11761 * BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_IE: howto manager. (line 2596) 11762 * BFD_RELOC_TILEGX_IMM16_X1_HW0: howto manager. (line 2535) 11763 * BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT: howto manager. (line 2563) 11764 * BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST: howto manager. (line 2543) 11765 * BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT: howto manager. (line 2571) 11766 * BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL: howto manager. (line 2557) 11767 * BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD: howto manager. (line 2585) 11768 * BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE: howto manager. (line 2599) 11769 * BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL: howto manager. (line 2549) 11770 * BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD: howto manager. (line 2577) 11771 * BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE: howto manager. (line 2591) 11772 * BFD_RELOC_TILEGX_IMM16_X1_HW1: howto manager. (line 2537) 11773 * BFD_RELOC_TILEGX_IMM16_X1_HW1_GOT: howto manager. (line 2565) 11774 * BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST: howto manager. (line 2545) 11775 * BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT: howto manager. (line 2573) 11776 * BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL: howto manager. (line 2559) 11777 * BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD: howto manager. (line 2587) 11778 * BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE: howto manager. (line 2601) 11779 * BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL: howto manager. (line 2551) 11780 * BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_GD: howto manager. (line 2579) 11781 * BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_IE: howto manager. (line 2593) 11782 * BFD_RELOC_TILEGX_IMM16_X1_HW2: howto manager. (line 2539) 11783 * BFD_RELOC_TILEGX_IMM16_X1_HW2_GOT: howto manager. (line 2567) 11784 * BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST: howto manager. (line 2547) 11785 * BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_GOT: howto manager. (line 2575) 11786 * BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL: howto manager. (line 2561) 11787 * BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_GD: howto manager. (line 2589) 11788 * BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_IE: howto manager. (line 2603) 11789 * BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL: howto manager. (line 2553) 11790 * BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_GD: howto manager. (line 2581) 11791 * BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_IE: howto manager. (line 2595) 11792 * BFD_RELOC_TILEGX_IMM16_X1_HW3: howto manager. (line 2541) 11793 * BFD_RELOC_TILEGX_IMM16_X1_HW3_GOT: howto manager. (line 2569) 11794 * BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL: howto manager. (line 2555) 11795 * BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_GD: howto manager. (line 2583) 11796 * BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_IE: howto manager. (line 2597) 11797 * BFD_RELOC_TILEGX_IMM8_X0: howto manager. (line 2521) 11798 * BFD_RELOC_TILEGX_IMM8_X1: howto manager. (line 2523) 11799 * BFD_RELOC_TILEGX_IMM8_Y0: howto manager. (line 2522) 11800 * BFD_RELOC_TILEGX_IMM8_Y1: howto manager. (line 2524) 11801 * BFD_RELOC_TILEGX_JMP_SLOT: howto manager. (line 2516) 11802 * BFD_RELOC_TILEGX_JUMPOFF_X1: howto manager. (line 2519) 11803 * BFD_RELOC_TILEGX_JUMPOFF_X1_PLT: howto manager. (line 2520) 11804 * BFD_RELOC_TILEGX_MF_IMM14_X1: howto manager. (line 2527) 11805 * BFD_RELOC_TILEGX_MMEND_X0: howto manager. (line 2529) 11806 * BFD_RELOC_TILEGX_MMSTART_X0: howto manager. (line 2528) 11807 * BFD_RELOC_TILEGX_MT_IMM14_X1: howto manager. (line 2526) 11808 * BFD_RELOC_TILEGX_RELATIVE: howto manager. (line 2517) 11809 * BFD_RELOC_TILEGX_SHAMT_X0: howto manager. (line 2530) 11810 * BFD_RELOC_TILEGX_SHAMT_X1: howto manager. (line 2531) 11811 * BFD_RELOC_TILEGX_SHAMT_Y0: howto manager. (line 2532) 11812 * BFD_RELOC_TILEGX_SHAMT_Y1: howto manager. (line 2533) 11813 * BFD_RELOC_TILEGX_TLS_DTPMOD32: howto manager. (line 2607) 11814 * BFD_RELOC_TILEGX_TLS_DTPMOD64: howto manager. (line 2604) 11815 * BFD_RELOC_TILEGX_TLS_DTPOFF32: howto manager. (line 2608) 11816 * BFD_RELOC_TILEGX_TLS_DTPOFF64: howto manager. (line 2605) 11817 * BFD_RELOC_TILEGX_TLS_TPOFF32: howto manager. (line 2609) 11818 * BFD_RELOC_TILEGX_TLS_TPOFF64: howto manager. (line 2606) 11819 * BFD_RELOC_TILEPRO_BROFF_X1: howto manager. (line 2444) 11820 * BFD_RELOC_TILEPRO_COPY: howto manager. (line 2440) 11821 * BFD_RELOC_TILEPRO_DEST_IMM8_X1: howto manager. (line 2451) 11822 * BFD_RELOC_TILEPRO_GLOB_DAT: howto manager. (line 2441) 11823 * BFD_RELOC_TILEPRO_IMM16_X0: howto manager. (line 2454) 11824 * BFD_RELOC_TILEPRO_IMM16_X0_GOT: howto manager. (line 2470) 11825 * BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA: howto manager. (line 2476) 11826 * BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI: howto manager. (line 2474) 11827 * BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO: howto manager. (line 2472) 11828 * BFD_RELOC_TILEPRO_IMM16_X0_HA: howto manager. (line 2460) 11829 * BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL: howto manager. (line 2468) 11830 * BFD_RELOC_TILEPRO_IMM16_X0_HI: howto manager. (line 2458) 11831 * BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL: howto manager. (line 2466) 11832 * BFD_RELOC_TILEPRO_IMM16_X0_LO: howto manager. (line 2456) 11833 * BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL: howto manager. (line 2464) 11834 * BFD_RELOC_TILEPRO_IMM16_X0_PCREL: howto manager. (line 2462) 11835 * BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD: howto manager. (line 2486) 11836 * BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA: howto manager. (line 2492) 11837 * BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI: howto manager. (line 2490) 11838 * BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO: howto manager. (line 2488) 11839 * BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE: howto manager. (line 2494) 11840 * BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA: howto manager. (line 2500) 11841 * BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI: howto manager. (line 2498) 11842 * BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO: howto manager. (line 2496) 11843 * BFD_RELOC_TILEPRO_IMM16_X1: howto manager. (line 2455) 11844 * BFD_RELOC_TILEPRO_IMM16_X1_GOT: howto manager. (line 2471) 11845 * BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA: howto manager. (line 2477) 11846 * BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI: howto manager. (line 2475) 11847 * BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO: howto manager. (line 2473) 11848 * BFD_RELOC_TILEPRO_IMM16_X1_HA: howto manager. (line 2461) 11849 * BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL: howto manager. (line 2469) 11850 * BFD_RELOC_TILEPRO_IMM16_X1_HI: howto manager. (line 2459) 11851 * BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL: howto manager. (line 2467) 11852 * BFD_RELOC_TILEPRO_IMM16_X1_LO: howto manager. (line 2457) 11853 * BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL: howto manager. (line 2465) 11854 * BFD_RELOC_TILEPRO_IMM16_X1_PCREL: howto manager. (line 2463) 11855 * BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD: howto manager. (line 2487) 11856 * BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA: howto manager. (line 2493) 11857 * BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI: howto manager. (line 2491) 11858 * BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO: howto manager. (line 2489) 11859 * BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE: howto manager. (line 2495) 11860 * BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA: howto manager. (line 2501) 11861 * BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI: howto manager. (line 2499) 11862 * BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO: howto manager. (line 2497) 11863 * BFD_RELOC_TILEPRO_IMM8_X0: howto manager. (line 2447) 11864 * BFD_RELOC_TILEPRO_IMM8_X1: howto manager. (line 2449) 11865 * BFD_RELOC_TILEPRO_IMM8_Y0: howto manager. (line 2448) 11866 * BFD_RELOC_TILEPRO_IMM8_Y1: howto manager. (line 2450) 11867 * BFD_RELOC_TILEPRO_JMP_SLOT: howto manager. (line 2442) 11868 * BFD_RELOC_TILEPRO_JOFFLONG_X1: howto manager. (line 2445) 11869 * BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT: howto manager. (line 2446) 11870 * BFD_RELOC_TILEPRO_MF_IMM15_X1: howto manager. (line 2453) 11871 * BFD_RELOC_TILEPRO_MMEND_X0: howto manager. (line 2479) 11872 * BFD_RELOC_TILEPRO_MMEND_X1: howto manager. (line 2481) 11873 * BFD_RELOC_TILEPRO_MMSTART_X0: howto manager. (line 2478) 11874 * BFD_RELOC_TILEPRO_MMSTART_X1: howto manager. (line 2480) 11875 * BFD_RELOC_TILEPRO_MT_IMM15_X1: howto manager. (line 2452) 11876 * BFD_RELOC_TILEPRO_RELATIVE: howto manager. (line 2443) 11877 * BFD_RELOC_TILEPRO_SHAMT_X0: howto manager. (line 2482) 11878 * BFD_RELOC_TILEPRO_SHAMT_X1: howto manager. (line 2483) 11879 * BFD_RELOC_TILEPRO_SHAMT_Y0: howto manager. (line 2484) 11880 * BFD_RELOC_TILEPRO_SHAMT_Y1: howto manager. (line 2485) 11881 * BFD_RELOC_TILEPRO_TLS_DTPMOD32: howto manager. (line 2502) 11882 * BFD_RELOC_TILEPRO_TLS_DTPOFF32: howto manager. (line 2503) 11883 * BFD_RELOC_TILEPRO_TLS_TPOFF32: howto manager. (line 2504) 11884 * bfd_reloc_type_lookup: howto manager. (line 2613) 11885 * BFD_RELOC_V850_16_GOT: howto manager. (line 1332) 11886 * BFD_RELOC_V850_16_GOTOFF: howto manager. (line 1356) 11887 * BFD_RELOC_V850_16_PCREL: howto manager. (line 1302) 11888 * BFD_RELOC_V850_16_S1: howto manager. (line 1320) 11889 * BFD_RELOC_V850_16_SPLIT_OFFSET: howto manager. (line 1317) 11890 * BFD_RELOC_V850_17_PCREL: howto manager. (line 1305) 11891 * BFD_RELOC_V850_22_PCREL: howto manager. (line 1237) 11892 * BFD_RELOC_V850_22_PLT_PCREL: howto manager. (line 1338) 11893 * BFD_RELOC_V850_23: howto manager. (line 1308) 11894 * BFD_RELOC_V850_32_ABS: howto manager. (line 1314) 11895 * BFD_RELOC_V850_32_GOT: howto manager. (line 1335) 11896 * BFD_RELOC_V850_32_GOTOFF: howto manager. (line 1359) 11897 * BFD_RELOC_V850_32_GOTPCREL: howto manager. (line 1329) 11898 * BFD_RELOC_V850_32_PCREL: howto manager. (line 1311) 11899 * BFD_RELOC_V850_32_PLT_PCREL: howto manager. (line 1341) 11900 * BFD_RELOC_V850_9_PCREL: howto manager. (line 1234) 11901 * BFD_RELOC_V850_ALIGN: howto manager. (line 1295) 11902 * BFD_RELOC_V850_CALLT_15_16_OFFSET: howto manager. (line 1326) 11903 * BFD_RELOC_V850_CALLT_16_16_OFFSET: howto manager. (line 1286) 11904 * BFD_RELOC_V850_CALLT_6_7_OFFSET: howto manager. (line 1283) 11905 * BFD_RELOC_V850_CODE: howto manager. (line 1362) 11906 * BFD_RELOC_V850_COPY: howto manager. (line 1344) 11907 * BFD_RELOC_V850_DATA: howto manager. (line 1365) 11908 * BFD_RELOC_V850_GLOB_DAT: howto manager. (line 1347) 11909 * BFD_RELOC_V850_JMP_SLOT: howto manager. (line 1350) 11910 * BFD_RELOC_V850_LO16_S1: howto manager. (line 1323) 11911 * BFD_RELOC_V850_LO16_SPLIT_OFFSET: howto manager. (line 1298) 11912 * BFD_RELOC_V850_LONGCALL: howto manager. (line 1289) 11913 * BFD_RELOC_V850_LONGJUMP: howto manager. (line 1292) 11914 * BFD_RELOC_V850_RELATIVE: howto manager. (line 1353) 11915 * BFD_RELOC_V850_SDA_15_16_OFFSET: howto manager. (line 1243) 11916 * BFD_RELOC_V850_SDA_16_16_OFFSET: howto manager. (line 1240) 11917 * BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET: howto manager. (line 1275) 11918 * BFD_RELOC_V850_TDA_16_16_OFFSET: howto manager. (line 1265) 11919 * BFD_RELOC_V850_TDA_4_4_OFFSET: howto manager. (line 1272) 11920 * BFD_RELOC_V850_TDA_4_5_OFFSET: howto manager. (line 1268) 11921 * BFD_RELOC_V850_TDA_6_8_OFFSET: howto manager. (line 1254) 11922 * BFD_RELOC_V850_TDA_7_7_OFFSET: howto manager. (line 1262) 11923 * BFD_RELOC_V850_TDA_7_8_OFFSET: howto manager. (line 1258) 11924 * BFD_RELOC_V850_ZDA_15_16_OFFSET: howto manager. (line 1250) 11925 * BFD_RELOC_V850_ZDA_16_16_OFFSET: howto manager. (line 1247) 11926 * BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET: howto manager. (line 1279) 11927 * BFD_RELOC_VAX_GLOB_DAT: howto manager. (line 2206) 11928 * BFD_RELOC_VAX_JMP_SLOT: howto manager. (line 2207) 11929 * BFD_RELOC_VAX_RELATIVE: howto manager. (line 2208) 11930 * BFD_RELOC_VPE4KMATH_DATA: howto manager. (line 1845) 11931 * BFD_RELOC_VPE4KMATH_INSN: howto manager. (line 1846) 11932 * BFD_RELOC_VTABLE_ENTRY: howto manager. (line 1850) 11933 * BFD_RELOC_VTABLE_INHERIT: howto manager. (line 1849) 11934 * BFD_RELOC_X86_64_32S: howto manager. (line 571) 11935 * BFD_RELOC_X86_64_COPY: howto manager. (line 566) 11936 * BFD_RELOC_X86_64_DTPMOD64: howto manager. (line 572) 11937 * BFD_RELOC_X86_64_DTPOFF32: howto manager. (line 577) 11938 * BFD_RELOC_X86_64_DTPOFF64: howto manager. (line 573) 11939 * BFD_RELOC_X86_64_GLOB_DAT: howto manager. (line 567) 11940 * BFD_RELOC_X86_64_GOT32: howto manager. (line 564) 11941 * BFD_RELOC_X86_64_GOT64: howto manager. (line 582) 11942 * BFD_RELOC_X86_64_GOTOFF64: howto manager. (line 580) 11943 * BFD_RELOC_X86_64_GOTPC32: howto manager. (line 581) 11944 * BFD_RELOC_X86_64_GOTPC32_TLSDESC: howto manager. (line 587) 11945 * BFD_RELOC_X86_64_GOTPC64: howto manager. (line 584) 11946 * BFD_RELOC_X86_64_GOTPCREL: howto manager. (line 570) 11947 * BFD_RELOC_X86_64_GOTPCREL64: howto manager. (line 583) 11948 * BFD_RELOC_X86_64_GOTPLT64: howto manager. (line 585) 11949 * BFD_RELOC_X86_64_GOTTPOFF: howto manager. (line 578) 11950 * BFD_RELOC_X86_64_IRELATIVE: howto manager. (line 590) 11951 * BFD_RELOC_X86_64_JUMP_SLOT: howto manager. (line 568) 11952 * BFD_RELOC_X86_64_PLT32: howto manager. (line 565) 11953 * BFD_RELOC_X86_64_PLTOFF64: howto manager. (line 586) 11954 * BFD_RELOC_X86_64_RELATIVE: howto manager. (line 569) 11955 * BFD_RELOC_X86_64_TLSDESC: howto manager. (line 589) 11956 * BFD_RELOC_X86_64_TLSDESC_CALL: howto manager. (line 588) 11957 * BFD_RELOC_X86_64_TLSGD: howto manager. (line 575) 11958 * BFD_RELOC_X86_64_TLSLD: howto manager. (line 576) 11959 * BFD_RELOC_X86_64_TPOFF32: howto manager. (line 579) 11960 * BFD_RELOC_X86_64_TPOFF64: howto manager. (line 574) 11961 * BFD_RELOC_XC16X_PAG: howto manager. (line 2200) 11962 * BFD_RELOC_XC16X_POF: howto manager. (line 2201) 11963 * BFD_RELOC_XC16X_SEG: howto manager. (line 2202) 11964 * BFD_RELOC_XC16X_SOF: howto manager. (line 2203) 11965 * BFD_RELOC_XSTORMY16_12: howto manager. (line 2192) 11966 * BFD_RELOC_XSTORMY16_24: howto manager. (line 2193) 11967 * BFD_RELOC_XSTORMY16_FPTR16: howto manager. (line 2194) 11968 * BFD_RELOC_XSTORMY16_REL_12: howto manager. (line 2191) 11969 * BFD_RELOC_XTENSA_ASM_EXPAND: howto manager. (line 2312) 11970 * BFD_RELOC_XTENSA_ASM_SIMPLIFY: howto manager. (line 2317) 11971 * BFD_RELOC_XTENSA_DIFF16: howto manager. (line 2259) 11972 * BFD_RELOC_XTENSA_DIFF32: howto manager. (line 2260) 11973 * BFD_RELOC_XTENSA_DIFF8: howto manager. (line 2258) 11974 * BFD_RELOC_XTENSA_GLOB_DAT: howto manager. (line 2248) 11975 * BFD_RELOC_XTENSA_JMP_SLOT: howto manager. (line 2249) 11976 * BFD_RELOC_XTENSA_OP0: howto manager. (line 2306) 11977 * BFD_RELOC_XTENSA_OP1: howto manager. (line 2307) 11978 * BFD_RELOC_XTENSA_OP2: howto manager. (line 2308) 11979 * BFD_RELOC_XTENSA_PLT: howto manager. (line 2253) 11980 * BFD_RELOC_XTENSA_RELATIVE: howto manager. (line 2250) 11981 * BFD_RELOC_XTENSA_RTLD: howto manager. (line 2243) 11982 * BFD_RELOC_XTENSA_SLOT0_ALT: howto manager. (line 2288) 11983 * BFD_RELOC_XTENSA_SLOT0_OP: howto manager. (line 2268) 11984 * BFD_RELOC_XTENSA_SLOT10_ALT: howto manager. (line 2298) 11985 * BFD_RELOC_XTENSA_SLOT10_OP: howto manager. (line 2278) 11986 * BFD_RELOC_XTENSA_SLOT11_ALT: howto manager. (line 2299) 11987 * BFD_RELOC_XTENSA_SLOT11_OP: howto manager. (line 2279) 11988 * BFD_RELOC_XTENSA_SLOT12_ALT: howto manager. (line 2300) 11989 * BFD_RELOC_XTENSA_SLOT12_OP: howto manager. (line 2280) 11990 * BFD_RELOC_XTENSA_SLOT13_ALT: howto manager. (line 2301) 11991 * BFD_RELOC_XTENSA_SLOT13_OP: howto manager. (line 2281) 11992 * BFD_RELOC_XTENSA_SLOT14_ALT: howto manager. (line 2302) 11993 * BFD_RELOC_XTENSA_SLOT14_OP: howto manager. (line 2282) 11994 * BFD_RELOC_XTENSA_SLOT1_ALT: howto manager. (line 2289) 11995 * BFD_RELOC_XTENSA_SLOT1_OP: howto manager. (line 2269) 11996 * BFD_RELOC_XTENSA_SLOT2_ALT: howto manager. (line 2290) 11997 * BFD_RELOC_XTENSA_SLOT2_OP: howto manager. (line 2270) 11998 * BFD_RELOC_XTENSA_SLOT3_ALT: howto manager. (line 2291) 11999 * BFD_RELOC_XTENSA_SLOT3_OP: howto manager. (line 2271) 12000 * BFD_RELOC_XTENSA_SLOT4_ALT: howto manager. (line 2292) 12001 * BFD_RELOC_XTENSA_SLOT4_OP: howto manager. (line 2272) 12002 * BFD_RELOC_XTENSA_SLOT5_ALT: howto manager. (line 2293) 12003 * BFD_RELOC_XTENSA_SLOT5_OP: howto manager. (line 2273) 12004 * BFD_RELOC_XTENSA_SLOT6_ALT: howto manager. (line 2294) 12005 * BFD_RELOC_XTENSA_SLOT6_OP: howto manager. (line 2274) 12006 * BFD_RELOC_XTENSA_SLOT7_ALT: howto manager. (line 2295) 12007 * BFD_RELOC_XTENSA_SLOT7_OP: howto manager. (line 2275) 12008 * BFD_RELOC_XTENSA_SLOT8_ALT: howto manager. (line 2296) 12009 * BFD_RELOC_XTENSA_SLOT8_OP: howto manager. (line 2276) 12010 * BFD_RELOC_XTENSA_SLOT9_ALT: howto manager. (line 2297) 12011 * BFD_RELOC_XTENSA_SLOT9_OP: howto manager. (line 2277) 12012 * BFD_RELOC_XTENSA_TLS_ARG: howto manager. (line 2327) 12013 * BFD_RELOC_XTENSA_TLS_CALL: howto manager. (line 2328) 12014 * BFD_RELOC_XTENSA_TLS_DTPOFF: howto manager. (line 2324) 12015 * BFD_RELOC_XTENSA_TLS_FUNC: howto manager. (line 2326) 12016 * BFD_RELOC_XTENSA_TLS_TPOFF: howto manager. (line 2325) 12017 * BFD_RELOC_XTENSA_TLSDESC_ARG: howto manager. (line 2323) 12018 * BFD_RELOC_XTENSA_TLSDESC_FN: howto manager. (line 2322) 12019 * BFD_RELOC_Z80_DISP8: howto manager. (line 2331) 12020 * BFD_RELOC_Z8K_CALLR: howto manager. (line 2337) 12021 * BFD_RELOC_Z8K_DISP7: howto manager. (line 2334) 12022 * BFD_RELOC_Z8K_IMM4L: howto manager. (line 2340) 12023 * bfd_rename_section: section prototypes. (line 155) 12024 * bfd_scan_arch: Architectures. (line 456) 12025 * bfd_scan_vma: BFD front end. (line 535) 12026 * bfd_seach_for_target: bfd_target. (line 519) 12027 * bfd_section_already_linked: Writing the symbol table. 12028 (line 55) 12029 * bfd_section_list_clear: section prototypes. (line 8) 12030 * bfd_sections_find_if: section prototypes. (line 185) 12031 * bfd_set_arch_info: Architectures. (line 497) 12032 * bfd_set_archive_head: Archives. (line 69) 12033 * bfd_set_default_target: bfd_target. (line 458) 12034 * bfd_set_error: BFD front end. (line 345) 12035 * bfd_set_error_handler: BFD front end. (line 387) 12036 * bfd_set_error_program_name: BFD front end. (line 396) 12037 * bfd_set_file_flags: BFD front end. (line 455) 12038 * bfd_set_format: Formats. (line 68) 12039 * bfd_set_gp_size: BFD front end. (line 525) 12040 * bfd_set_private_flags: BFD front end. (line 602) 12041 * bfd_set_reloc: BFD front end. (line 445) 12042 * bfd_set_section_contents: section prototypes. (line 216) 12043 * bfd_set_section_flags: section prototypes. (line 140) 12044 * bfd_set_section_size: section prototypes. (line 202) 12045 * bfd_set_start_address: BFD front end. (line 504) 12046 * bfd_set_symtab: symbol handling functions. 12047 (line 60) 12048 * bfd_symbol_info: symbol handling functions. 12049 (line 130) 12050 * bfd_target_list: bfd_target. (line 510) 12051 * bfd_write_bigendian_4byte_int: Internal. (line 13) 12052 * bfd_zalloc: Opening and Closing. 12053 (line 232) 12054 * bfd_zalloc2: Opening and Closing. 12055 (line 241) 12056 * coff_symbol_type: coff. (line 244) 12057 * core_file_matches_executable_p: Core Files. (line 39) 12058 * find_separate_debug_file: Opening and Closing. 12059 (line 283) 12060 * generic_core_file_matches_executable_p: Core Files. (line 49) 12061 * get_debug_link_info: Opening and Closing. 12062 (line 264) 12063 * Hash tables: Hash Tables. (line 6) 12064 * internal object-file format: Canonical format. (line 11) 12065 * Linker: Linker Functions. (line 6) 12066 * Other functions: BFD front end. (line 617) 12067 * separate_debug_file_exists: Opening and Closing. 12068 (line 274) 12069 * struct bfd_iovec: BFD front end. (line 823) 12070 * target vector (_bfd_final_link): Performing the Final Link. 12071 (line 6) 12072 * target vector (_bfd_link_add_symbols): Adding Symbols to the Hash Table. 12073 (line 6) 12074 * target vector (_bfd_link_hash_table_create): Creating a Linker Hash Table. 12075 (line 6) 12076 * The HOWTO Macro: typedef arelent. (line 288) 12077 * what is it?: Overview. (line 6) 12078 12079 12080 12081 Tag Table: 12082 Node: Top1089 12083 Node: Overview1428 12084 Node: History2479 12085 Node: How It Works3425 12086 Node: What BFD Version 2 Can Do4968 12087 Node: BFD information loss6283 12088 Node: Canonical format8815 12089 Node: BFD front end13187 12090 Node: Memory Usage46098 12091 Node: Initialization47326 12092 Node: Sections47785 12093 Node: Section Input48268 12094 Node: Section Output49633 12095 Node: typedef asection52119 12096 Node: section prototypes77989 12097 Node: Symbols87884 12098 Node: Reading Symbols89479 12099 Node: Writing Symbols90586 12100 Node: Mini Symbols92295 12101 Node: typedef asymbol93269 12102 Node: symbol handling functions99328 12103 Node: Archives104670 12104 Node: Formats108396 12105 Node: Relocations111344 12106 Node: typedef arelent112071 12107 Node: howto manager127707 12108 Node: Core Files212506 12109 Node: Targets214544 12110 Node: bfd_target216514 12111 Node: Architectures239404 12112 Node: Opening and Closing263894 12113 Node: Internal275350 12114 Node: File Caching281695 12115 Node: Linker Functions283609 12116 Node: Creating a Linker Hash Table285282 12117 Node: Adding Symbols to the Hash Table287020 12118 Node: Differing file formats287920 12119 Node: Adding symbols from an object file289645 12120 Node: Adding symbols from an archive291796 12121 Node: Performing the Final Link294725 12122 Node: Information provided by the linker295967 12123 Node: Relocating the section contents297121 12124 Node: Writing the symbol table298872 12125 Node: Hash Tables303258 12126 Node: Creating and Freeing a Hash Table304456 12127 Node: Looking Up or Entering a String305706 12128 Node: Traversing a Hash Table306959 12129 Node: Deriving a New Hash Table Type307748 12130 Node: Define the Derived Structures308814 12131 Node: Write the Derived Creation Routine309895 12132 Node: Write Other Derived Routines312519 12133 Node: BFD back ends313834 12134 Node: What to Put Where314104 12135 Node: aout314284 12136 Node: coff320602 12137 Node: elf349035 12138 Node: mmo349436 12139 Node: File layout350364 12140 Node: Symbol-table356011 12141 Node: mmo section mapping359780 12142 Node: GNU Free Documentation License363432 12143 Node: BFD Index388515 12144 12145 End Tag Table 12146