bfd.info revision 1.8
1This is 2/net/quasar/src-5/NetBSD/src/tools/binutils/../../external/gpl3/binutils/dist/bfd/doc/bfd.info, 3produced by makeinfo version 4.8 from 4/net/quasar/src-5/NetBSD/src/tools/binutils/../../external/gpl3/binutils/dist/bfd/doc/bfd.texi. 5 6INFO-DIR-SECTION Software development 7START-INFO-DIR-ENTRY 8* Bfd: (bfd). The Binary File Descriptor library. 9END-INFO-DIR-ENTRY 10 11 This file documents the BFD library. 12 13 Copyright (C) 1991-2022 Free Software Foundation, Inc. 14 15 Permission is granted to copy, distribute and/or modify this document 16under the terms of the GNU Free Documentation License, Version 1.3 or 17any later version published by the Free Software Foundation; with the 18Invariant Sections being "GNU General Public License" and "Funding Free 19Software", the Front-Cover texts being (a) (see below), and with the 20Back-Cover Texts being (b) (see below). A copy of the license is 21included in the section entitled "GNU Free Documentation License". 22 23 (a) The FSF's Front-Cover Text is: 24 25 A GNU Manual 26 27 (b) The FSF's Back-Cover Text is: 28 29 You have freedom to copy and modify this GNU Manual, like GNU 30software. Copies published by the Free Software Foundation raise 31funds for GNU development. 32 33 34File: bfd.info, Node: Top, Next: Overview, Prev: (dir), Up: (dir) 35 36 This file documents the binary file descriptor library libbfd. 37 38* Menu: 39 40* Overview:: Overview of BFD 41* BFD front end:: BFD front end 42* BFD back ends:: BFD back ends 43* GNU Free Documentation License:: GNU Free Documentation License 44* BFD Index:: BFD Index 45 46 47File: bfd.info, Node: Overview, Next: BFD front end, Prev: Top, Up: Top 48 491 Introduction 50************** 51 52BFD is a package which allows applications to use the same routines to 53operate on object files whatever the object file format. A new object 54file format can be supported simply by creating a new BFD back end and 55adding it to the library. 56 57 BFD is split into two parts: the front end, and the back ends (one 58for each object file format). 59 * The front end of BFD provides the interface to the user. It manages 60 memory and various canonical data structures. The front end also 61 decides which back end to use and when to call back end routines. 62 63 * The back ends provide BFD its view of the real world. Each back 64 end provides a set of calls which the BFD front end can use to 65 maintain its canonical form. The back ends also may keep around 66 information for their own use, for greater efficiency. 67 68* Menu: 69 70* History:: History 71* How It Works:: How It Works 72* What BFD Version 2 Can Do:: What BFD Version 2 Can Do 73 74 75File: bfd.info, Node: History, Next: How It Works, Prev: Overview, Up: Overview 76 771.1 History 78=========== 79 80One spur behind BFD was the desire, on the part of the GNU 960 team at 81Intel Oregon, for interoperability of applications on their COFF and 82b.out file formats. Cygnus was providing GNU support for the team, and 83was contracted to provide the required functionality. 84 85 The name came from a conversation David Wallace was having with 86Richard Stallman about the library: RMS said that it would be quite 87hard--David said "BFD". Stallman was right, but the name stuck. 88 89 At the same time, Ready Systems wanted much the same thing, but for 90different object file formats: IEEE-695, Oasys, Srecords, a.out and 68k 91coff. 92 93 BFD was first implemented by members of Cygnus Support; Steve 94Chamberlain (`sac@cygnus.com'), John Gilmore (`gnu@cygnus.com'), K. 95Richard Pixley (`rich@cygnus.com') and David Henkel-Wallace 96(`gumby@cygnus.com'). 97 98 99File: bfd.info, Node: How It Works, Next: What BFD Version 2 Can Do, Prev: History, Up: Overview 100 1011.2 How To Use BFD 102================== 103 104To use the library, include `bfd.h' and link with `libbfd.a'. 105 106 BFD provides a common interface to the parts of an object file for a 107calling application. 108 109 When an application successfully opens a target file (object, 110archive, or whatever), a pointer to an internal structure is returned. 111This pointer points to a structure called `bfd', described in `bfd.h'. 112Our convention is to call this pointer a BFD, and instances of it 113within code `abfd'. All operations on the target object file are 114applied as methods to the BFD. The mapping is defined within `bfd.h' 115in a set of macros, all beginning with `bfd_' to reduce namespace 116pollution. 117 118 For example, this sequence does what you would probably expect: 119return the number of sections in an object file attached to a BFD 120`abfd'. 121 122 #include "bfd.h" 123 124 unsigned int number_of_sections (abfd) 125 bfd *abfd; 126 { 127 return bfd_count_sections (abfd); 128 } 129 130 The abstraction used within BFD is that an object file has: 131 132 * a header, 133 134 * a number of sections containing raw data (*note Sections::), 135 136 * a set of relocations (*note Relocations::), and 137 138 * some symbol information (*note Symbols::). 139 Also, BFDs opened for archives have the additional attribute of an 140index and contain subordinate BFDs. This approach is fine for a.out and 141coff, but loses efficiency when applied to formats such as S-records and 142IEEE-695. 143 144 145File: bfd.info, Node: What BFD Version 2 Can Do, Prev: How It Works, Up: Overview 146 1471.3 What BFD Version 2 Can Do 148============================= 149 150When an object file is opened, BFD subroutines automatically determine 151the format of the input object file. They then build a descriptor in 152memory with pointers to routines that will be used to access elements of 153the object file's data structures. 154 155 As different information from the object files is required, BFD 156reads from different sections of the file and processes them. For 157example, a very common operation for the linker is processing symbol 158tables. Each BFD back end provides a routine for converting between 159the object file's representation of symbols and an internal canonical 160format. When the linker asks for the symbol table of an object file, it 161calls through a memory pointer to the routine from the relevant BFD 162back end which reads and converts the table into a canonical form. The 163linker then operates upon the canonical form. When the link is finished 164and the linker writes the output file's symbol table, another BFD back 165end routine is called to take the newly created symbol table and 166convert it into the chosen output format. 167 168* Menu: 169 170* BFD information loss:: Information Loss 171* Canonical format:: The BFD canonical object-file format 172 173 174File: bfd.info, Node: BFD information loss, Next: Canonical format, Up: What BFD Version 2 Can Do 175 1761.3.1 Information Loss 177---------------------- 178 179_Information can be lost during output._ The output formats supported 180by BFD do not provide identical facilities, and information which can 181be described in one form has nowhere to go in another format. One 182example of this is alignment information in `b.out'. There is nowhere 183in an `a.out' format file to store alignment information on the 184contained data, so when a file is linked from `b.out' and an `a.out' 185image is produced, alignment information will not propagate to the 186output file. (The linker will still use the alignment information 187internally, so the link is performed correctly). 188 189 Another example is COFF section names. COFF files may contain an 190unlimited number of sections, each one with a textual section name. If 191the target of the link is a format which does not have many sections 192(e.g., `a.out') or has sections without names (e.g., the Oasys format), 193the link cannot be done simply. You can circumvent this problem by 194describing the desired input-to-output section mapping with the linker 195command language. 196 197 _Information can be lost during canonicalization._ The BFD internal 198canonical form of the external formats is not exhaustive; there are 199structures in input formats for which there is no direct representation 200internally. This means that the BFD back ends cannot maintain all 201possible data richness through the transformation between external to 202internal and back to external formats. 203 204 This limitation is only a problem when an application reads one 205format and writes another. Each BFD back end is responsible for 206maintaining as much data as possible, and the internal BFD canonical 207form has structures which are opaque to the BFD core, and exported only 208to the back ends. When a file is read in one format, the canonical form 209is generated for BFD and the application. At the same time, the back 210end saves away any information which may otherwise be lost. If the data 211is then written back in the same format, the back end routine will be 212able to use the canonical form provided by the BFD core as well as the 213information it prepared earlier. Since there is a great deal of 214commonality between back ends, there is no information lost when 215linking or copying big endian COFF to little endian COFF, or `a.out' to 216`b.out'. When a mixture of formats is linked, the information is only 217lost from the files whose format differs from the destination. 218 219 220File: bfd.info, Node: Canonical format, Prev: BFD information loss, Up: What BFD Version 2 Can Do 221 2221.3.2 The BFD canonical object-file format 223------------------------------------------ 224 225The greatest potential for loss of information occurs when there is the 226least overlap between the information provided by the source format, 227that stored by the canonical format, and that needed by the destination 228format. A brief description of the canonical form may help you 229understand which kinds of data you can count on preserving across 230conversions. 231 232_files_ 233 Information stored on a per-file basis includes target machine 234 architecture, particular implementation format type, a demand 235 pageable bit, and a write protected bit. Information like Unix 236 magic numbers is not stored here--only the magic numbers' meaning, 237 so a `ZMAGIC' file would have both the demand pageable bit and the 238 write protected text bit set. The byte order of the target is 239 stored on a per-file basis, so that big- and little-endian object 240 files may be used with one another. 241 242_sections_ 243 Each section in the input file contains the name of the section, 244 the section's original address in the object file, size and 245 alignment information, various flags, and pointers into other BFD 246 data structures. 247 248_symbols_ 249 Each symbol contains a pointer to the information for the object 250 file which originally defined it, its name, its value, and various 251 flag bits. When a BFD back end reads in a symbol table, it 252 relocates all symbols to make them relative to the base of the 253 section where they were defined. Doing this ensures that each 254 symbol points to its containing section. Each symbol also has a 255 varying amount of hidden private data for the BFD back end. Since 256 the symbol points to the original file, the private data format 257 for that symbol is accessible. `ld' can operate on a collection 258 of symbols of wildly different formats without problems. 259 260 Normal global and simple local symbols are maintained on output, 261 so an output file (no matter its format) will retain symbols 262 pointing to functions and to global, static, and common variables. 263 Some symbol information is not worth retaining; in `a.out', type 264 information is stored in the symbol table as long symbol names. 265 This information would be useless to most COFF debuggers; the 266 linker has command-line switches to allow users to throw it away. 267 268 There is one word of type information within the symbol, so if the 269 format supports symbol type information within symbols (for 270 example, COFF, Oasys) and the type is simple enough to fit within 271 one word (nearly everything but aggregates), the information will 272 be preserved. 273 274_relocation level_ 275 Each canonical BFD relocation record contains a pointer to the 276 symbol to relocate to, the offset of the data to relocate, the 277 section the data is in, and a pointer to a relocation type 278 descriptor. Relocation is performed by passing messages through 279 the relocation type descriptor and the symbol pointer. Therefore, 280 relocations can be performed on output data using a relocation 281 method that is only available in one of the input formats. For 282 instance, Oasys provides a byte relocation format. A relocation 283 record requesting this relocation type would point indirectly to a 284 routine to perform this, so the relocation may be performed on a 285 byte being written to a 68k COFF file, even though 68k COFF has no 286 such relocation type. 287 288_line numbers_ 289 Object formats can contain, for debugging purposes, some form of 290 mapping between symbols, source line numbers, and addresses in the 291 output file. These addresses have to be relocated along with the 292 symbol information. Each symbol with an associated list of line 293 number records points to the first record of the list. The head 294 of a line number list consists of a pointer to the symbol, which 295 allows finding out the address of the function whose line number 296 is being described. The rest of the list is made up of pairs: 297 offsets into the section and line numbers. Any format which can 298 simply derive this information can pass it successfully between 299 formats. 300 301 302File: bfd.info, Node: BFD front end, Next: BFD back ends, Prev: Overview, Up: Top 303 3042 BFD Front End 305*************** 306 307* Menu: 308 309* typedef bfd:: 310* Error reporting:: 311* Miscellaneous:: 312* Memory Usage:: 313* Initialization:: 314* Sections:: 315* Symbols:: 316* Archives:: 317* Formats:: 318* Relocations:: 319* Core Files:: 320* Targets:: 321* Architectures:: 322* Opening and Closing:: 323* Internal:: 324* File Caching:: 325* Linker Functions:: 326* Hash Tables:: 327 328 329File: bfd.info, Node: typedef bfd, Next: Error reporting, Prev: BFD front end, Up: BFD front end 330 3312.1 `typedef bfd' 332================= 333 334A BFD has type `bfd'; objects of this type are the cornerstone of any 335application using BFD. Using BFD consists of making references though 336the BFD and to data in the BFD. 337 338 Here is the structure that defines the type `bfd'. It contains the 339major data about the file and pointers to the rest of the data. 340 341 342 enum bfd_direction 343 { 344 no_direction = 0, 345 read_direction = 1, 346 write_direction = 2, 347 both_direction = 3 348 }; 349 350 enum bfd_plugin_format 351 { 352 bfd_plugin_unknown = 0, 353 bfd_plugin_yes = 1, 354 bfd_plugin_no = 2 355 }; 356 357 struct bfd_build_id 358 { 359 bfd_size_type size; 360 bfd_byte data[1]; 361 }; 362 363 struct bfd 364 { 365 /* The filename the application opened the BFD with. */ 366 const char *filename; 367 368 /* A pointer to the target jump table. */ 369 const struct bfd_target *xvec; 370 371 /* The IOSTREAM, and corresponding IO vector that provide access 372 to the file backing the BFD. */ 373 void *iostream; 374 const struct bfd_iovec *iovec; 375 376 /* The caching routines use these to maintain a 377 least-recently-used list of BFDs. */ 378 struct bfd *lru_prev, *lru_next; 379 380 /* Track current file position (or current buffer offset for 381 in-memory BFDs). When a file is closed by the caching routines, 382 BFD retains state information on the file here. */ 383 ufile_ptr where; 384 385 /* File modified time, if mtime_set is TRUE. */ 386 long mtime; 387 388 /* A unique identifier of the BFD */ 389 unsigned int id; 390 391 /* Format_specific flags. */ 392 flagword flags; 393 394 /* Values that may appear in the flags field of a BFD. These also 395 appear in the object_flags field of the bfd_target structure, where 396 they indicate the set of flags used by that backend (not all flags 397 are meaningful for all object file formats) (FIXME: at the moment, 398 the object_flags values have mostly just been copied from backend 399 to another, and are not necessarily correct). */ 400 401 #define BFD_NO_FLAGS 0x0 402 403 /* BFD contains relocation entries. */ 404 #define HAS_RELOC 0x1 405 406 /* BFD is directly executable. */ 407 #define EXEC_P 0x2 408 409 /* BFD has line number information (basically used for F_LNNO in a 410 COFF header). */ 411 #define HAS_LINENO 0x4 412 413 /* BFD has debugging information. */ 414 #define HAS_DEBUG 0x08 415 416 /* BFD has symbols. */ 417 #define HAS_SYMS 0x10 418 419 /* BFD has local symbols (basically used for F_LSYMS in a COFF 420 header). */ 421 #define HAS_LOCALS 0x20 422 423 /* BFD is a dynamic object. */ 424 #define DYNAMIC 0x40 425 426 /* Text section is write protected (if D_PAGED is not set, this is 427 like an a.out NMAGIC file) (the linker sets this by default, but 428 clears it for -r or -N). */ 429 #define WP_TEXT 0x80 430 431 /* BFD is dynamically paged (this is like an a.out ZMAGIC file) (the 432 linker sets this by default, but clears it for -r or -n or -N). */ 433 #define D_PAGED 0x100 434 435 /* BFD is relaxable (this means that bfd_relax_section may be able to 436 do something) (sometimes bfd_relax_section can do something even if 437 this is not set). */ 438 #define BFD_IS_RELAXABLE 0x200 439 440 /* This may be set before writing out a BFD to request using a 441 traditional format. For example, this is used to request that when 442 writing out an a.out object the symbols not be hashed to eliminate 443 duplicates. */ 444 #define BFD_TRADITIONAL_FORMAT 0x400 445 446 /* This flag indicates that the BFD contents are actually cached 447 in memory. If this is set, iostream points to a bfd_in_memory 448 struct. */ 449 #define BFD_IN_MEMORY 0x800 450 451 /* This BFD has been created by the linker and doesn't correspond 452 to any input file. */ 453 #define BFD_LINKER_CREATED 0x1000 454 455 /* This may be set before writing out a BFD to request that it 456 be written using values for UIDs, GIDs, timestamps, etc. that 457 will be consistent from run to run. */ 458 #define BFD_DETERMINISTIC_OUTPUT 0x2000 459 460 /* Compress sections in this BFD. */ 461 #define BFD_COMPRESS 0x4000 462 463 /* Decompress sections in this BFD. */ 464 #define BFD_DECOMPRESS 0x8000 465 466 /* BFD is a dummy, for plugins. */ 467 #define BFD_PLUGIN 0x10000 468 469 /* Compress sections in this BFD with SHF_COMPRESSED from gABI. */ 470 #define BFD_COMPRESS_GABI 0x20000 471 472 /* Convert ELF common symbol type to STT_COMMON or STT_OBJECT in this 473 BFD. */ 474 #define BFD_CONVERT_ELF_COMMON 0x40000 475 476 /* Use the ELF STT_COMMON type in this BFD. */ 477 #define BFD_USE_ELF_STT_COMMON 0x80000 478 479 /* Put pathnames into archives (non-POSIX). */ 480 #define BFD_ARCHIVE_FULL_PATH 0x100000 481 482 /* Flags bits to be saved in bfd_preserve_save. */ 483 #define BFD_FLAGS_SAVED \ 484 (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_LINKER_CREATED \ 485 | BFD_PLUGIN | BFD_COMPRESS_GABI | BFD_CONVERT_ELF_COMMON \ 486 | BFD_USE_ELF_STT_COMMON) 487 488 /* Flags bits which are for BFD use only. */ 489 #define BFD_FLAGS_FOR_BFD_USE_MASK \ 490 (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_LINKER_CREATED \ 491 | BFD_PLUGIN | BFD_TRADITIONAL_FORMAT | BFD_DETERMINISTIC_OUTPUT \ 492 | BFD_COMPRESS_GABI | BFD_CONVERT_ELF_COMMON | BFD_USE_ELF_STT_COMMON) 493 494 /* The format which belongs to the BFD. (object, core, etc.) */ 495 ENUM_BITFIELD (bfd_format) format : 3; 496 497 /* The direction with which the BFD was opened. */ 498 ENUM_BITFIELD (bfd_direction) direction : 2; 499 500 /* Is the file descriptor being cached? That is, can it be closed as 501 needed, and re-opened when accessed later? */ 502 unsigned int cacheable : 1; 503 504 /* Marks whether there was a default target specified when the 505 BFD was opened. This is used to select which matching algorithm 506 to use to choose the back end. */ 507 unsigned int target_defaulted : 1; 508 509 /* ... and here: (``once'' means at least once). */ 510 unsigned int opened_once : 1; 511 512 /* Set if we have a locally maintained mtime value, rather than 513 getting it from the file each time. */ 514 unsigned int mtime_set : 1; 515 516 /* Flag set if symbols from this BFD should not be exported. */ 517 unsigned int no_export : 1; 518 519 /* Remember when output has begun, to stop strange things 520 from happening. */ 521 unsigned int output_has_begun : 1; 522 523 /* Have archive map. */ 524 unsigned int has_armap : 1; 525 526 /* Set if this is a thin archive. */ 527 unsigned int is_thin_archive : 1; 528 529 /* Set if this archive should not cache element positions. */ 530 unsigned int no_element_cache : 1; 531 532 /* Set if only required symbols should be added in the link hash table for 533 this object. Used by VMS linkers. */ 534 unsigned int selective_search : 1; 535 536 /* Set if this is the linker output BFD. */ 537 unsigned int is_linker_output : 1; 538 539 /* Set if this is the linker input BFD. */ 540 unsigned int is_linker_input : 1; 541 542 /* If this is an input for a compiler plug-in library. */ 543 ENUM_BITFIELD (bfd_plugin_format) plugin_format : 2; 544 545 /* Set if this is a plugin output file. */ 546 unsigned int lto_output : 1; 547 548 /* Set if this is a slim LTO object not loaded with a compiler plugin. */ 549 unsigned int lto_slim_object : 1; 550 551 /* Do not attempt to modify this file. Set when detecting errors 552 that BFD is not prepared to handle for objcopy/strip. */ 553 unsigned int read_only : 1; 554 555 /* Set to dummy BFD created when claimed by a compiler plug-in 556 library. */ 557 bfd *plugin_dummy_bfd; 558 559 /* The offset of this bfd in the file, typically 0 if it is not 560 contained in an archive. */ 561 ufile_ptr origin; 562 563 /* The origin in the archive of the proxy entry. This will 564 normally be the same as origin, except for thin archives, 565 when it will contain the current offset of the proxy in the 566 thin archive rather than the offset of the bfd in its actual 567 container. */ 568 ufile_ptr proxy_origin; 569 570 /* A hash table for section names. */ 571 struct bfd_hash_table section_htab; 572 573 /* Pointer to linked list of sections. */ 574 struct bfd_section *sections; 575 576 /* The last section on the section list. */ 577 struct bfd_section *section_last; 578 579 /* The number of sections. */ 580 unsigned int section_count; 581 582 /* The archive plugin file descriptor. */ 583 int archive_plugin_fd; 584 585 /* The number of opens on the archive plugin file descriptor. */ 586 unsigned int archive_plugin_fd_open_count; 587 588 /* A field used by _bfd_generic_link_add_archive_symbols. This will 589 be used only for archive elements. */ 590 int archive_pass; 591 592 /* The total size of memory from bfd_alloc. */ 593 bfd_size_type alloc_size; 594 595 /* Stuff only useful for object files: 596 The start address. */ 597 bfd_vma start_address; 598 599 /* Symbol table for output BFD (with symcount entries). 600 Also used by the linker to cache input BFD symbols. */ 601 struct bfd_symbol **outsymbols; 602 603 /* Used for input and output. */ 604 unsigned int symcount; 605 606 /* Used for slurped dynamic symbol tables. */ 607 unsigned int dynsymcount; 608 609 /* Pointer to structure which contains architecture information. */ 610 const struct bfd_arch_info *arch_info; 611 612 /* Cached length of file for bfd_get_size. 0 until bfd_get_size is 613 called, 1 if stat returns an error or the file size is too large to 614 return in ufile_ptr. Both 0 and 1 should be treated as "unknown". */ 615 ufile_ptr size; 616 617 /* Stuff only useful for archives. */ 618 void *arelt_data; 619 struct bfd *my_archive; /* The containing archive BFD. */ 620 struct bfd *archive_next; /* The next BFD in the archive. */ 621 struct bfd *archive_head; /* The first BFD in the archive. */ 622 struct bfd *nested_archives; /* List of nested archive in a flattened 623 thin archive. */ 624 625 union { 626 /* For input BFDs, a chain of BFDs involved in a link. */ 627 struct bfd *next; 628 /* For output BFD, the linker hash table. */ 629 struct bfd_link_hash_table *hash; 630 } link; 631 632 /* Used by the back end to hold private data. */ 633 union 634 { 635 struct aout_data_struct *aout_data; 636 struct artdata *aout_ar_data; 637 struct coff_tdata *coff_obj_data; 638 struct pe_tdata *pe_obj_data; 639 struct xcoff_tdata *xcoff_obj_data; 640 struct ecoff_tdata *ecoff_obj_data; 641 struct srec_data_struct *srec_data; 642 struct verilog_data_struct *verilog_data; 643 struct ihex_data_struct *ihex_data; 644 struct tekhex_data_struct *tekhex_data; 645 struct elf_obj_tdata *elf_obj_data; 646 struct mmo_data_struct *mmo_data; 647 struct sun_core_struct *sun_core_data; 648 struct sco5_core_struct *sco5_core_data; 649 struct trad_core_struct *trad_core_data; 650 struct som_data_struct *som_data; 651 struct hpux_core_struct *hpux_core_data; 652 struct hppabsd_core_struct *hppabsd_core_data; 653 struct sgi_core_struct *sgi_core_data; 654 struct lynx_core_struct *lynx_core_data; 655 struct osf_core_struct *osf_core_data; 656 struct cisco_core_struct *cisco_core_data; 657 struct versados_data_struct *versados_data; 658 struct netbsd_core_struct *netbsd_core_data; 659 struct mach_o_data_struct *mach_o_data; 660 struct mach_o_fat_data_struct *mach_o_fat_data; 661 struct plugin_data_struct *plugin_data; 662 struct bfd_pef_data_struct *pef_data; 663 struct bfd_pef_xlib_data_struct *pef_xlib_data; 664 struct bfd_sym_data_struct *sym_data; 665 void *any; 666 } 667 tdata; 668 669 /* Used by the application to hold private data. */ 670 void *usrdata; 671 672 /* Where all the allocated stuff under this BFD goes. This is a 673 struct objalloc *, but we use void * to avoid requiring the inclusion 674 of objalloc.h. */ 675 void *memory; 676 677 /* For input BFDs, the build ID, if the object has one. */ 678 const struct bfd_build_id *build_id; 679 }; 680 681 static inline const char * 682 bfd_get_filename (const bfd *abfd) 683 { 684 return abfd->filename; 685 } 686 687 static inline bool 688 bfd_get_cacheable (const bfd *abfd) 689 { 690 return abfd->cacheable; 691 } 692 693 static inline enum bfd_format 694 bfd_get_format (const bfd *abfd) 695 { 696 return abfd->format; 697 } 698 699 static inline flagword 700 bfd_get_file_flags (const bfd *abfd) 701 { 702 return abfd->flags; 703 } 704 705 static inline bfd_vma 706 bfd_get_start_address (const bfd *abfd) 707 { 708 return abfd->start_address; 709 } 710 711 static inline unsigned int 712 bfd_get_symcount (const bfd *abfd) 713 { 714 return abfd->symcount; 715 } 716 717 static inline unsigned int 718 bfd_get_dynamic_symcount (const bfd *abfd) 719 { 720 return abfd->dynsymcount; 721 } 722 723 static inline struct bfd_symbol ** 724 bfd_get_outsymbols (const bfd *abfd) 725 { 726 return abfd->outsymbols; 727 } 728 729 static inline unsigned int 730 bfd_count_sections (const bfd *abfd) 731 { 732 return abfd->section_count; 733 } 734 735 static inline bool 736 bfd_has_map (const bfd *abfd) 737 { 738 return abfd->has_armap; 739 } 740 741 static inline bool 742 bfd_is_thin_archive (const bfd *abfd) 743 { 744 return abfd->is_thin_archive; 745 } 746 747 static inline void * 748 bfd_usrdata (const bfd *abfd) 749 { 750 return abfd->usrdata; 751 } 752 753 /* See note beside bfd_set_section_userdata. */ 754 static inline bool 755 bfd_set_cacheable (bfd * abfd, bool val) 756 { 757 abfd->cacheable = val; 758 return true; 759 } 760 761 static inline void 762 bfd_set_thin_archive (bfd *abfd, bool val) 763 { 764 abfd->is_thin_archive = val; 765 } 766 767 static inline void 768 bfd_set_usrdata (bfd *abfd, void *val) 769 { 770 abfd->usrdata = val; 771 } 772 773 static inline asection * 774 bfd_asymbol_section (const asymbol *sy) 775 { 776 return sy->section; 777 } 778 779 static inline bfd_vma 780 bfd_asymbol_value (const asymbol *sy) 781 { 782 return sy->section->vma + sy->value; 783 } 784 785 static inline const char * 786 bfd_asymbol_name (const asymbol *sy) 787 { 788 return sy->name; 789 } 790 791 static inline struct bfd * 792 bfd_asymbol_bfd (const asymbol *sy) 793 { 794 return sy->the_bfd; 795 } 796 797 static inline void 798 bfd_set_asymbol_name (asymbol *sy, const char *name) 799 { 800 sy->name = name; 801 } 802 803 static inline bfd_size_type 804 bfd_get_section_limit_octets (const bfd *abfd, const asection *sec) 805 { 806 if (abfd->direction != write_direction && sec->rawsize != 0) 807 return sec->rawsize; 808 return sec->size; 809 } 810 811 /* Find the address one past the end of SEC. */ 812 static inline bfd_size_type 813 bfd_get_section_limit (const bfd *abfd, const asection *sec) 814 { 815 return (bfd_get_section_limit_octets (abfd, sec) 816 / bfd_octets_per_byte (abfd, sec)); 817 } 818 819 /* Functions to handle insertion and deletion of a bfd's sections. These 820 only handle the list pointers, ie. do not adjust section_count, 821 target_index etc. */ 822 static inline void 823 bfd_section_list_remove (bfd *abfd, asection *s) 824 { 825 asection *next = s->next; 826 asection *prev = s->prev; 827 if (prev) 828 prev->next = next; 829 else 830 abfd->sections = next; 831 if (next) 832 next->prev = prev; 833 else 834 abfd->section_last = prev; 835 } 836 837 static inline void 838 bfd_section_list_append (bfd *abfd, asection *s) 839 { 840 s->next = 0; 841 if (abfd->section_last) 842 { 843 s->prev = abfd->section_last; 844 abfd->section_last->next = s; 845 } 846 else 847 { 848 s->prev = 0; 849 abfd->sections = s; 850 } 851 abfd->section_last = s; 852 } 853 854 static inline void 855 bfd_section_list_prepend (bfd *abfd, asection *s) 856 { 857 s->prev = 0; 858 if (abfd->sections) 859 { 860 s->next = abfd->sections; 861 abfd->sections->prev = s; 862 } 863 else 864 { 865 s->next = 0; 866 abfd->section_last = s; 867 } 868 abfd->sections = s; 869 } 870 871 static inline void 872 bfd_section_list_insert_after (bfd *abfd, asection *a, asection *s) 873 { 874 asection *next = a->next; 875 s->next = next; 876 s->prev = a; 877 a->next = s; 878 if (next) 879 next->prev = s; 880 else 881 abfd->section_last = s; 882 } 883 884 static inline void 885 bfd_section_list_insert_before (bfd *abfd, asection *b, asection *s) 886 { 887 asection *prev = b->prev; 888 s->prev = prev; 889 s->next = b; 890 b->prev = s; 891 if (prev) 892 prev->next = s; 893 else 894 abfd->sections = s; 895 } 896 897 static inline bool 898 bfd_section_removed_from_list (const bfd *abfd, const asection *s) 899 { 900 return s->next ? s->next->prev != s : abfd->section_last != s; 901 } 902 903 904File: bfd.info, Node: Error reporting, Next: Miscellaneous, Prev: typedef bfd, Up: BFD front end 905 9062.2 Error reporting 907=================== 908 909Most BFD functions return nonzero on success (check their individual 910documentation for precise semantics). On an error, they call 911`bfd_set_error' to set an error condition that callers can check by 912calling `bfd_get_error'. If that returns `bfd_error_system_call', then 913check `errno'. 914 915 The easiest way to report a BFD error to the user is to use 916`bfd_perror'. 917 9182.2.1 Type `bfd_error_type' 919--------------------------- 920 921The values returned by `bfd_get_error' are defined by the enumerated 922type `bfd_error_type'. 923 924 925 typedef enum bfd_error 926 { 927 bfd_error_no_error = 0, 928 bfd_error_system_call, 929 bfd_error_invalid_target, 930 bfd_error_wrong_format, 931 bfd_error_wrong_object_format, 932 bfd_error_invalid_operation, 933 bfd_error_no_memory, 934 bfd_error_no_symbols, 935 bfd_error_no_armap, 936 bfd_error_no_more_archived_files, 937 bfd_error_malformed_archive, 938 bfd_error_missing_dso, 939 bfd_error_file_not_recognized, 940 bfd_error_file_ambiguously_recognized, 941 bfd_error_no_contents, 942 bfd_error_nonrepresentable_section, 943 bfd_error_no_debug_section, 944 bfd_error_bad_value, 945 bfd_error_file_truncated, 946 bfd_error_file_too_big, 947 bfd_error_sorry, 948 bfd_error_on_input, 949 bfd_error_invalid_error_code 950 } 951 bfd_error_type; 952 9532.2.1.1 `bfd_get_error' 954....................... 955 956*Synopsis* 957 bfd_error_type bfd_get_error (void); 958 *Description* 959Return the current BFD error condition. 960 9612.2.1.2 `bfd_set_error' 962....................... 963 964*Synopsis* 965 void bfd_set_error (bfd_error_type error_tag); 966 *Description* 967Set the BFD error condition to be ERROR_TAG. 968 969 ERROR_TAG must not be bfd_error_on_input. Use bfd_set_input_error 970for input errors instead. 971 9722.2.1.3 `bfd_set_input_error' 973............................. 974 975*Synopsis* 976 void bfd_set_input_error (bfd *input, bfd_error_type error_tag); 977 *Description* 978Set the BFD error condition to be bfd_error_on_input. INPUT is the 979input bfd where the error occurred, and ERROR_TAG the bfd_error_type 980error. 981 9822.2.1.4 `bfd_errmsg' 983.................... 984 985*Synopsis* 986 const char *bfd_errmsg (bfd_error_type error_tag); 987 *Description* 988Return a string describing the error ERROR_TAG, or the system error if 989ERROR_TAG is `bfd_error_system_call'. 990 9912.2.1.5 `bfd_perror' 992.................... 993 994*Synopsis* 995 void bfd_perror (const char *message); 996 *Description* 997Print to the standard error stream a string describing the last BFD 998error that occurred, or the last system error if the last BFD error was 999a system call failure. If MESSAGE is non-NULL and non-empty, the error 1000string printed is preceded by MESSAGE, a colon, and a space. It is 1001followed by a newline. 1002 10032.2.2 BFD error handler 1004----------------------- 1005 1006Some BFD functions want to print messages describing the problem. They 1007call a BFD error handler function. This function may be overridden by 1008the program. 1009 1010 The BFD error handler acts like vprintf. 1011 1012 1013 typedef void (*bfd_error_handler_type) (const char *, va_list); 1014 10152.2.2.1 `_bfd_error_handler' 1016............................ 1017 1018*Synopsis* 1019 void _bfd_error_handler (const char *fmt, ...) ATTRIBUTE_PRINTF_1; 1020 *Description* 1021This is the default routine to handle BFD error messages. Like fprintf 1022(stderr, ...), but also handles some extra format specifiers. 1023 1024 %pA section name from section. For group components, prints group 1025name too. %pB file name from bfd. For archive components, prints 1026archive too. 1027 1028 Beware: Only supports a maximum of 9 format arguments. 1029 10302.2.2.2 `bfd_set_error_handler' 1031............................... 1032 1033*Synopsis* 1034 bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type); 1035 *Description* 1036Set the BFD error handler function. Returns the previous function. 1037 10382.2.2.3 `bfd_set_error_program_name' 1039.................................... 1040 1041*Synopsis* 1042 void bfd_set_error_program_name (const char *); 1043 *Description* 1044Set the program name to use when printing a BFD error. This is printed 1045before the error message followed by a colon and space. The string 1046must not be changed after it is passed to this function. 1047 10482.2.3 BFD assert handler 1049------------------------ 1050 1051If BFD finds an internal inconsistency, the bfd assert handler is 1052called with information on the BFD version, BFD source file and line. 1053If this happens, most programs linked against BFD are expected to want 1054to exit with an error, or mark the current BFD operation as failed, so 1055it is recommended to override the default handler, which just calls 1056_bfd_error_handler and continues. 1057 1058 1059 typedef void (*bfd_assert_handler_type) (const char *bfd_formatmsg, 1060 const char *bfd_version, 1061 const char *bfd_file, 1062 int bfd_line); 1063 10642.2.3.1 `bfd_set_assert_handler' 1065................................ 1066 1067*Synopsis* 1068 bfd_assert_handler_type bfd_set_assert_handler (bfd_assert_handler_type); 1069 *Description* 1070Set the BFD assert handler function. Returns the previous function. 1071 1072 1073File: bfd.info, Node: Miscellaneous, Next: Memory Usage, Prev: Error reporting, Up: BFD front end 1074 10752.3 Miscellaneous 1076================= 1077 10782.3.1 Miscellaneous functions 1079----------------------------- 1080 10812.3.1.1 `bfd_get_reloc_upper_bound' 1082................................... 1083 1084*Synopsis* 1085 long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect); 1086 *Description* 1087Return the number of bytes required to store the relocation information 1088associated with section SECT attached to bfd ABFD. If an error occurs, 1089return -1. 1090 10912.3.1.2 `bfd_canonicalize_reloc' 1092................................ 1093 1094*Synopsis* 1095 long bfd_canonicalize_reloc 1096 (bfd *abfd, asection *sec, arelent **loc, asymbol **syms); 1097 *Description* 1098Call the back end associated with the open BFD ABFD and translate the 1099external form of the relocation information attached to SEC into the 1100internal canonical form. Place the table into memory at LOC, which has 1101been preallocated, usually by a call to `bfd_get_reloc_upper_bound'. 1102Returns the number of relocs, or -1 on error. 1103 1104 The SYMS table is also needed for horrible internal magic reasons. 1105 11062.3.1.3 `bfd_set_reloc' 1107....................... 1108 1109*Synopsis* 1110 void bfd_set_reloc 1111 (bfd *abfd, asection *sec, arelent **rel, unsigned int count); 1112 *Description* 1113Set the relocation pointer and count within section SEC to the values 1114REL and COUNT. The argument ABFD is ignored. 1115 #define bfd_set_reloc(abfd, asect, location, count) \ 1116 BFD_SEND (abfd, _bfd_set_reloc, (abfd, asect, location, count)) 1117 11182.3.1.4 `bfd_set_file_flags' 1119............................ 1120 1121*Synopsis* 1122 bool bfd_set_file_flags (bfd *abfd, flagword flags); 1123 *Description* 1124Set the flag word in the BFD ABFD to the value FLAGS. 1125 1126 Possible errors are: 1127 * `bfd_error_wrong_format' - The target bfd was not of object format. 1128 1129 * `bfd_error_invalid_operation' - The target bfd was open for 1130 reading. 1131 1132 * `bfd_error_invalid_operation' - The flag word contained a bit 1133 which was not applicable to the type of file. E.g., an attempt 1134 was made to set the `D_PAGED' bit on a BFD format which does not 1135 support demand paging. 1136 11372.3.1.5 `bfd_get_arch_size' 1138........................... 1139 1140*Synopsis* 1141 int bfd_get_arch_size (bfd *abfd); 1142 *Description* 1143Returns the normalized architecture address size, in bits, as 1144determined by the object file's format. By normalized, we mean either 114532 or 64. For ELF, this information is included in the header. Use 1146bfd_arch_bits_per_address for number of bits in the architecture 1147address. 1148 1149 *Returns* 1150Returns the arch size in bits if known, `-1' otherwise. 1151 11522.3.1.6 `bfd_get_sign_extend_vma' 1153................................. 1154 1155*Synopsis* 1156 int bfd_get_sign_extend_vma (bfd *abfd); 1157 *Description* 1158Indicates if the target architecture "naturally" sign extends an 1159address. Some architectures implicitly sign extend address values when 1160they are converted to types larger than the size of an address. For 1161instance, bfd_get_start_address() will return an address sign extended 1162to fill a bfd_vma when this is the case. 1163 1164 *Returns* 1165Returns `1' if the target architecture is known to sign extend 1166addresses, `0' if the target architecture is known to not sign extend 1167addresses, and `-1' otherwise. 1168 11692.3.1.7 `bfd_set_start_address' 1170............................... 1171 1172*Synopsis* 1173 bool bfd_set_start_address (bfd *abfd, bfd_vma vma); 1174 *Description* 1175Make VMA the entry point of output BFD ABFD. 1176 1177 *Returns* 1178Returns `TRUE' on success, `FALSE' otherwise. 1179 11802.3.1.8 `bfd_get_gp_size' 1181......................... 1182 1183*Synopsis* 1184 unsigned int bfd_get_gp_size (bfd *abfd); 1185 *Description* 1186Return the maximum size of objects to be optimized using the GP 1187register under MIPS ECOFF. This is typically set by the `-G' argument 1188to the compiler, assembler or linker. 1189 11902.3.1.9 `bfd_set_gp_size' 1191......................... 1192 1193*Synopsis* 1194 void bfd_set_gp_size (bfd *abfd, unsigned int i); 1195 *Description* 1196Set the maximum size of objects to be optimized using the GP register 1197under ECOFF or MIPS ELF. This is typically set by the `-G' argument to 1198the compiler, assembler or linker. 1199 12002.3.1.10 `bfd_set_gp_value' 1201........................... 1202 1203*Synopsis* 1204 void bfd_set_gp_value (bfd *abfd, bfd_vma v); 1205 *Description* 1206Allow external access to the fucntion to set the GP value. This is 1207specifically added for gdb-compile support. 1208 12092.3.1.11 `bfd_scan_vma' 1210....................... 1211 1212*Synopsis* 1213 bfd_vma bfd_scan_vma (const char *string, const char **end, int base); 1214 *Description* 1215Convert, like `strtoul', a numerical expression STRING into a `bfd_vma' 1216integer, and return that integer. (Though without as many bells and 1217whistles as `strtoul'.) The expression is assumed to be unsigned 1218(i.e., positive). If given a BASE, it is used as the base for 1219conversion. A base of 0 causes the function to interpret the string in 1220hex if a leading "0x" or "0X" is found, otherwise in octal if a leading 1221zero is found, otherwise in decimal. 1222 1223 If the value would overflow, the maximum `bfd_vma' value is returned. 1224 12252.3.1.12 `bfd_copy_private_header_data' 1226....................................... 1227 1228*Synopsis* 1229 bool bfd_copy_private_header_data (bfd *ibfd, bfd *obfd); 1230 *Description* 1231Copy private BFD header information from the BFD IBFD to the the BFD 1232OBFD. This copies information that may require sections to exist, but 1233does not require symbol tables. Return `true' on success, `false' on 1234error. Possible error returns are: 1235 1236 * `bfd_error_no_memory' - Not enough memory exists to create private 1237 data for OBFD. 1238 1239 #define bfd_copy_private_header_data(ibfd, obfd) \ 1240 BFD_SEND (obfd, _bfd_copy_private_header_data, \ 1241 (ibfd, obfd)) 1242 12432.3.1.13 `bfd_copy_private_bfd_data' 1244.................................... 1245 1246*Synopsis* 1247 bool bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd); 1248 *Description* 1249Copy private BFD information from the BFD IBFD to the the BFD OBFD. 1250Return `TRUE' on success, `FALSE' on error. Possible error returns are: 1251 1252 * `bfd_error_no_memory' - Not enough memory exists to create private 1253 data for OBFD. 1254 1255 #define bfd_copy_private_bfd_data(ibfd, obfd) \ 1256 BFD_SEND (obfd, _bfd_copy_private_bfd_data, \ 1257 (ibfd, obfd)) 1258 12592.3.1.14 `bfd_set_private_flags' 1260................................ 1261 1262*Synopsis* 1263 bool bfd_set_private_flags (bfd *abfd, flagword flags); 1264 *Description* 1265Set private BFD flag information in the BFD ABFD. Return `TRUE' on 1266success, `FALSE' on error. Possible error returns are: 1267 1268 * `bfd_error_no_memory' - Not enough memory exists to create private 1269 data for OBFD. 1270 1271 #define bfd_set_private_flags(abfd, flags) \ 1272 BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags)) 1273 12742.3.1.15 `Other functions' 1275.......................... 1276 1277*Description* 1278The following functions exist but have not yet been documented. 1279 #define bfd_sizeof_headers(abfd, info) \ 1280 BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, info)) 1281 1282 #define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \ 1283 BFD_SEND (abfd, _bfd_find_nearest_line, \ 1284 (abfd, syms, sec, off, file, func, line, NULL)) 1285 1286 #define bfd_find_nearest_line_discriminator(abfd, sec, syms, off, file, func, \ 1287 line, disc) \ 1288 BFD_SEND (abfd, _bfd_find_nearest_line, \ 1289 (abfd, syms, sec, off, file, func, line, disc)) 1290 1291 #define bfd_find_line(abfd, syms, sym, file, line) \ 1292 BFD_SEND (abfd, _bfd_find_line, \ 1293 (abfd, syms, sym, file, line)) 1294 1295 #define bfd_find_inliner_info(abfd, file, func, line) \ 1296 BFD_SEND (abfd, _bfd_find_inliner_info, \ 1297 (abfd, file, func, line)) 1298 1299 #define bfd_debug_info_start(abfd) \ 1300 BFD_SEND (abfd, _bfd_debug_info_start, (abfd)) 1301 1302 #define bfd_debug_info_end(abfd) \ 1303 BFD_SEND (abfd, _bfd_debug_info_end, (abfd)) 1304 1305 #define bfd_debug_info_accumulate(abfd, section) \ 1306 BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section)) 1307 1308 #define bfd_stat_arch_elt(abfd, stat) \ 1309 BFD_SEND (abfd->my_archive ? abfd->my_archive : abfd, \ 1310 _bfd_stat_arch_elt, (abfd, stat)) 1311 1312 #define bfd_update_armap_timestamp(abfd) \ 1313 BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd)) 1314 1315 #define bfd_set_arch_mach(abfd, arch, mach)\ 1316 BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach)) 1317 1318 #define bfd_relax_section(abfd, section, link_info, again) \ 1319 BFD_SEND (abfd, _bfd_relax_section, (abfd, section, link_info, again)) 1320 1321 #define bfd_gc_sections(abfd, link_info) \ 1322 BFD_SEND (abfd, _bfd_gc_sections, (abfd, link_info)) 1323 1324 #define bfd_lookup_section_flags(link_info, flag_info, section) \ 1325 BFD_SEND (abfd, _bfd_lookup_section_flags, (link_info, flag_info, section)) 1326 1327 #define bfd_merge_sections(abfd, link_info) \ 1328 BFD_SEND (abfd, _bfd_merge_sections, (abfd, link_info)) 1329 1330 #define bfd_is_group_section(abfd, sec) \ 1331 BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec)) 1332 1333 #define bfd_group_name(abfd, sec) \ 1334 BFD_SEND (abfd, _bfd_group_name, (abfd, sec)) 1335 1336 #define bfd_discard_group(abfd, sec) \ 1337 BFD_SEND (abfd, _bfd_discard_group, (abfd, sec)) 1338 1339 #define bfd_link_hash_table_create(abfd) \ 1340 BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd)) 1341 1342 #define bfd_link_add_symbols(abfd, info) \ 1343 BFD_SEND (abfd, _bfd_link_add_symbols, (abfd, info)) 1344 1345 #define bfd_link_just_syms(abfd, sec, info) \ 1346 BFD_SEND (abfd, _bfd_link_just_syms, (sec, info)) 1347 1348 #define bfd_final_link(abfd, info) \ 1349 BFD_SEND (abfd, _bfd_final_link, (abfd, info)) 1350 1351 #define bfd_free_cached_info(abfd) \ 1352 BFD_SEND (abfd, _bfd_free_cached_info, (abfd)) 1353 1354 #define bfd_get_dynamic_symtab_upper_bound(abfd) \ 1355 BFD_SEND (abfd, _bfd_get_dynamic_symtab_upper_bound, (abfd)) 1356 1357 #define bfd_print_private_bfd_data(abfd, file)\ 1358 BFD_SEND (abfd, _bfd_print_private_bfd_data, (abfd, file)) 1359 1360 #define bfd_canonicalize_dynamic_symtab(abfd, asymbols) \ 1361 BFD_SEND (abfd, _bfd_canonicalize_dynamic_symtab, (abfd, asymbols)) 1362 1363 #define bfd_get_synthetic_symtab(abfd, count, syms, dyncount, dynsyms, ret) \ 1364 BFD_SEND (abfd, _bfd_get_synthetic_symtab, (abfd, count, syms, \ 1365 dyncount, dynsyms, ret)) 1366 1367 #define bfd_get_dynamic_reloc_upper_bound(abfd) \ 1368 BFD_SEND (abfd, _bfd_get_dynamic_reloc_upper_bound, (abfd)) 1369 1370 #define bfd_canonicalize_dynamic_reloc(abfd, arels, asyms) \ 1371 BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms)) 1372 1373 extern bfd_byte *bfd_get_relocated_section_contents 1374 (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *, 1375 bool, asymbol **); 1376 13772.3.1.16 `bfd_alt_mach_code' 1378............................ 1379 1380*Synopsis* 1381 bool bfd_alt_mach_code (bfd *abfd, int alternative); 1382 *Description* 1383When more than one machine code number is available for the same 1384machine type, this function can be used to switch between the preferred 1385one (alternative == 0) and any others. Currently, only ELF supports 1386this feature, with up to two alternate machine codes. 1387 13882.3.1.17 `bfd_emul_get_maxpagesize' 1389................................... 1390 1391*Synopsis* 1392 bfd_vma bfd_emul_get_maxpagesize (const char *); 1393 *Description* 1394Returns the maximum page size, in bytes, as determined by emulation. 1395 1396 *Returns* 1397Returns the maximum page size in bytes for ELF, 0 otherwise. 1398 13992.3.1.18 `bfd_emul_get_commonpagesize' 1400...................................... 1401 1402*Synopsis* 1403 bfd_vma bfd_emul_get_commonpagesize (const char *); 1404 *Description* 1405Returns the common page size, in bytes, as determined by emulation. 1406 1407 *Returns* 1408Returns the common page size in bytes for ELF, 0 otherwise. 1409 14102.3.1.19 `bfd_demangle' 1411....................... 1412 1413*Synopsis* 1414 char *bfd_demangle (bfd *, const char *, int); 1415 *Description* 1416Wrapper around cplus_demangle. Strips leading underscores and other 1417such chars that would otherwise confuse the demangler. If passed a g++ 1418v3 ABI mangled name, returns a buffer allocated with malloc holding the 1419demangled name. Returns NULL otherwise and on memory alloc failure. 1420 14212.3.1.20 `bfd_update_compression_header' 1422........................................ 1423 1424*Synopsis* 1425 void bfd_update_compression_header 1426 (bfd *abfd, bfd_byte *contents, asection *sec); 1427 *Description* 1428Set the compression header at CONTENTS of SEC in ABFD and update 1429elf_section_flags for compression. 1430 14312.3.1.21 `bfd_check_compression_header' 1432....................................... 1433 1434*Synopsis* 1435 bool bfd_check_compression_header 1436 (bfd *abfd, bfd_byte *contents, asection *sec, 1437 bfd_size_type *uncompressed_size, 1438 unsigned int *uncompressed_alignment_power); 1439 *Description* 1440Check the compression header at CONTENTS of SEC in ABFD and store the 1441uncompressed size in UNCOMPRESSED_SIZE and the uncompressed data 1442alignment in UNCOMPRESSED_ALIGNMENT_POWER if the compression header is 1443valid. 1444 1445 *Returns* 1446Return TRUE if the compression header is valid. 1447 14482.3.1.22 `bfd_get_compression_header_size' 1449.......................................... 1450 1451*Synopsis* 1452 int bfd_get_compression_header_size (bfd *abfd, asection *sec); 1453 *Description* 1454Return the size of the compression header of SEC in ABFD. 1455 1456 *Returns* 1457Return the size of the compression header in bytes. 1458 14592.3.1.23 `bfd_convert_section_size' 1460................................... 1461 1462*Synopsis* 1463 bfd_size_type bfd_convert_section_size 1464 (bfd *ibfd, asection *isec, bfd *obfd, bfd_size_type size); 1465 *Description* 1466Convert the size SIZE of the section ISEC in input BFD IBFD to the 1467section size in output BFD OBFD. 1468 14692.3.1.24 `bfd_convert_section_contents' 1470....................................... 1471 1472*Synopsis* 1473 bool bfd_convert_section_contents 1474 (bfd *ibfd, asection *isec, bfd *obfd, 1475 bfd_byte **ptr, bfd_size_type *ptr_size); 1476 *Description* 1477Convert the contents, stored in *PTR, of the section ISEC in input BFD 1478IBFD to output BFD OBFD if needed. The original buffer pointed to by 1479*PTR may be freed and *PTR is returned with memory malloc'd by this 1480function, and the new size written to PTR_SIZE. 1481 14822.3.1.25 `struct bfd_iovec' 1483........................... 1484 1485*Description* 1486The `struct bfd_iovec' contains the internal file I/O class. Each 1487`BFD' has an instance of this class and all file I/O is routed through 1488it (it is assumed that the instance implements all methods listed 1489below). 1490 struct bfd_iovec 1491 { 1492 /* To avoid problems with macros, a "b" rather than "f" 1493 prefix is prepended to each method name. */ 1494 /* Attempt to read/write NBYTES on ABFD's IOSTREAM storing/fetching 1495 bytes starting at PTR. Return the number of bytes actually 1496 transfered (a read past end-of-file returns less than NBYTES), 1497 or -1 (setting `bfd_error') if an error occurs. */ 1498 file_ptr (*bread) (struct bfd *abfd, void *ptr, file_ptr nbytes); 1499 file_ptr (*bwrite) (struct bfd *abfd, const void *ptr, 1500 file_ptr nbytes); 1501 /* Return the current IOSTREAM file offset, or -1 (setting `bfd_error' 1502 if an error occurs. */ 1503 file_ptr (*btell) (struct bfd *abfd); 1504 /* For the following, on successful completion a value of 0 is returned. 1505 Otherwise, a value of -1 is returned (and `bfd_error' is set). */ 1506 int (*bseek) (struct bfd *abfd, file_ptr offset, int whence); 1507 int (*bclose) (struct bfd *abfd); 1508 int (*bflush) (struct bfd *abfd); 1509 int (*bstat) (struct bfd *abfd, struct stat *sb); 1510 /* Mmap a part of the files. ADDR, LEN, PROT, FLAGS and OFFSET are the usual 1511 mmap parameter, except that LEN and OFFSET do not need to be page 1512 aligned. Returns (void *)-1 on failure, mmapped address on success. 1513 Also write in MAP_ADDR the address of the page aligned buffer and in 1514 MAP_LEN the size mapped (a page multiple). Use unmap with MAP_ADDR and 1515 MAP_LEN to unmap. */ 1516 void *(*bmmap) (struct bfd *abfd, void *addr, bfd_size_type len, 1517 int prot, int flags, file_ptr offset, 1518 void **map_addr, bfd_size_type *map_len); 1519 }; 1520 extern const struct bfd_iovec _bfd_memory_iovec; 1521 15222.3.1.26 `bfd_get_mtime' 1523........................ 1524 1525*Synopsis* 1526 long bfd_get_mtime (bfd *abfd); 1527 *Description* 1528Return the file modification time (as read from the file system, or 1529from the archive header for archive members). 1530 15312.3.1.27 `bfd_get_size' 1532....................... 1533 1534*Synopsis* 1535 ufile_ptr bfd_get_size (bfd *abfd); 1536 *Description* 1537Return the file size (as read from file system) for the file associated 1538with BFD ABFD. 1539 1540 The initial motivation for, and use of, this routine is not so we 1541can get the exact size of the object the BFD applies to, since that 1542might not be generally possible (archive members for example). It 1543would be ideal if someone could eventually modify it so that such 1544results were guaranteed. 1545 1546 Instead, we want to ask questions like "is this NNN byte sized 1547object I'm about to try read from file offset YYY reasonable?" As as 1548example of where we might do this, some object formats use string 1549tables for which the first `sizeof (long)' bytes of the table contain 1550the size of the table itself, including the size bytes. If an 1551application tries to read what it thinks is one of these string tables, 1552without some way to validate the size, and for some reason the size is 1553wrong (byte swapping error, wrong location for the string table, etc.), 1554the only clue is likely to be a read error when it tries to read the 1555table, or a "virtual memory exhausted" error when it tries to allocate 155615 bazillon bytes of space for the 15 bazillon byte table it is about 1557to read. This function at least allows us to answer the question, "is 1558the size reasonable?". 1559 1560 A return value of zero indicates the file size is unknown. 1561 15622.3.1.28 `bfd_get_file_size' 1563............................ 1564 1565*Synopsis* 1566 ufile_ptr bfd_get_file_size (bfd *abfd); 1567 *Description* 1568Return the file size (as read from file system) for the file associated 1569with BFD ABFD. It supports both normal files and archive elements. 1570 15712.3.1.29 `bfd_mmap' 1572................... 1573 1574*Synopsis* 1575 void *bfd_mmap (bfd *abfd, void *addr, bfd_size_type len, 1576 int prot, int flags, file_ptr offset, 1577 void **map_addr, bfd_size_type *map_len); 1578 *Description* 1579Return mmap()ed region of the file, if possible and implemented. LEN 1580and OFFSET do not need to be page aligned. The page aligned address 1581and length are written to MAP_ADDR and MAP_LEN. 1582 1583 1584File: bfd.info, Node: Memory Usage, Next: Initialization, Prev: Miscellaneous, Up: BFD front end 1585 15862.4 Memory Usage 1587================ 1588 1589BFD keeps all of its internal structures in obstacks. There is one 1590obstack per open BFD file, into which the current state is stored. When 1591a BFD is closed, the obstack is deleted, and so everything which has 1592been allocated by BFD for the closing file is thrown away. 1593 1594 BFD does not free anything created by an application, but pointers 1595into `bfd' structures become invalid on a `bfd_close'; for example, 1596after a `bfd_close' the vector passed to `bfd_canonicalize_symtab' is 1597still around, since it has been allocated by the application, but the 1598data that it pointed to are lost. 1599 1600 The general rule is to not close a BFD until all operations dependent 1601upon data from the BFD have been completed, or all the data from within 1602the file has been copied. To help with the management of memory, there 1603is a function (`bfd_alloc_size') which returns the number of bytes in 1604obstacks associated with the supplied BFD. This could be used to select 1605the greediest open BFD, close it to reclaim the memory, perform some 1606operation and reopen the BFD again, to get a fresh copy of the data 1607structures. 1608 1609 1610File: bfd.info, Node: Initialization, Next: Sections, Prev: Memory Usage, Up: BFD front end 1611 16122.5 Initialization 1613================== 1614 16152.5.1 Initialization functions 1616------------------------------ 1617 1618These are the functions that handle initializing a BFD. 1619 16202.5.1.1 `bfd_init' 1621.................. 1622 1623*Synopsis* 1624 unsigned int bfd_init (void); 1625 *Description* 1626This routine must be called before any other BFD function to initialize 1627magical internal data structures. Returns a magic number, which may be 1628used to check that the bfd library is configured as expected by users. 1629 1630 /* Value returned by bfd_init. */ 1631 1632 #define BFD_INIT_MAGIC (sizeof (struct bfd_section)) 1633 1634 1635File: bfd.info, Node: Sections, Next: Symbols, Prev: Initialization, Up: BFD front end 1636 16372.6 Sections 1638============ 1639 1640The raw data contained within a BFD is maintained through the section 1641abstraction. A single BFD may have any number of sections. It keeps 1642hold of them by pointing to the first; each one points to the next in 1643the list. 1644 1645 Sections are supported in BFD in `section.c'. 1646 1647* Menu: 1648 1649* Section Input:: 1650* Section Output:: 1651* typedef asection:: 1652* section prototypes:: 1653 1654 1655File: bfd.info, Node: Section Input, Next: Section Output, Prev: Sections, Up: Sections 1656 16572.6.1 Section input 1658------------------- 1659 1660When a BFD is opened for reading, the section structures are created 1661and attached to the BFD. 1662 1663 Each section has a name which describes the section in the outside 1664world--for example, `a.out' would contain at least three sections, 1665called `.text', `.data' and `.bss'. 1666 1667 Names need not be unique; for example a COFF file may have several 1668sections named `.data'. 1669 1670 Sometimes a BFD will contain more than the "natural" number of 1671sections. A back end may attach other sections containing constructor 1672data, or an application may add a section (using `bfd_make_section') to 1673the sections attached to an already open BFD. For example, the linker 1674creates an extra section `COMMON' for each input file's BFD to hold 1675information about common storage. 1676 1677 The raw data is not necessarily read in when the section descriptor 1678is created. Some targets may leave the data in place until a 1679`bfd_get_section_contents' call is made. Other back ends may read in 1680all the data at once. For example, an S-record file has to be read 1681once to determine the size of the data. 1682 1683 1684File: bfd.info, Node: Section Output, Next: typedef asection, Prev: Section Input, Up: Sections 1685 16862.6.2 Section output 1687-------------------- 1688 1689To write a new object style BFD, the various sections to be written 1690have to be created. They are attached to the BFD in the same way as 1691input sections; data is written to the sections using 1692`bfd_set_section_contents'. 1693 1694 Any program that creates or combines sections (e.g., the assembler 1695and linker) must use the `asection' fields `output_section' and 1696`output_offset' to indicate the file sections to which each section 1697must be written. (If the section is being created from scratch, 1698`output_section' should probably point to the section itself and 1699`output_offset' should probably be zero.) 1700 1701 The data to be written comes from input sections attached (via 1702`output_section' pointers) to the output sections. The output section 1703structure can be considered a filter for the input section: the output 1704section determines the vma of the output data and the name, but the 1705input section determines the offset into the output section of the data 1706to be written. 1707 1708 E.g., to create a section "O", starting at 0x100, 0x123 long, 1709containing two subsections, "A" at offset 0x0 (i.e., at vma 0x100) and 1710"B" at offset 0x20 (i.e., at vma 0x120) the `asection' structures would 1711look like: 1712 1713 section name "A" 1714 output_offset 0x00 1715 size 0x20 1716 output_section -----------> section name "O" 1717 | vma 0x100 1718 section name "B" | size 0x123 1719 output_offset 0x20 | 1720 size 0x103 | 1721 output_section --------| 1722 17232.6.3 Link orders 1724----------------- 1725 1726The data within a section is stored in a "link_order". These are much 1727like the fixups in `gas'. The link_order abstraction allows a section 1728to grow and shrink within itself. 1729 1730 A link_order knows how big it is, and which is the next link_order 1731and where the raw data for it is; it also points to a list of 1732relocations which apply to it. 1733 1734 The link_order is used by the linker to perform relaxing on final 1735code. The compiler creates code which is as big as necessary to make 1736it work without relaxing, and the user can select whether to relax. 1737Sometimes relaxing takes a lot of time. The linker runs around the 1738relocations to see if any are attached to data which can be shrunk, if 1739so it does it on a link_order by link_order basis. 1740 1741 1742File: bfd.info, Node: typedef asection, Next: section prototypes, Prev: Section Output, Up: Sections 1743 17442.6.4 typedef asection 1745---------------------- 1746 1747Here is the section structure: 1748 1749 1750 typedef struct bfd_section 1751 { 1752 /* The name of the section; the name isn't a copy, the pointer is 1753 the same as that passed to bfd_make_section. */ 1754 const char *name; 1755 1756 /* The next section in the list belonging to the BFD, or NULL. */ 1757 struct bfd_section *next; 1758 1759 /* The previous section in the list belonging to the BFD, or NULL. */ 1760 struct bfd_section *prev; 1761 1762 /* A unique sequence number. */ 1763 unsigned int id; 1764 1765 /* A unique section number which can be used by assembler to 1766 distinguish different sections with the same section name. */ 1767 unsigned int section_id; 1768 1769 /* Which section in the bfd; 0..n-1 as sections are created in a bfd. */ 1770 unsigned int index; 1771 1772 /* The field flags contains attributes of the section. Some 1773 flags are read in from the object file, and some are 1774 synthesized from other information. */ 1775 flagword flags; 1776 1777 #define SEC_NO_FLAGS 0x0 1778 1779 /* Tells the OS to allocate space for this section when loading. 1780 This is clear for a section containing debug information only. */ 1781 #define SEC_ALLOC 0x1 1782 1783 /* Tells the OS to load the section from the file when loading. 1784 This is clear for a .bss section. */ 1785 #define SEC_LOAD 0x2 1786 1787 /* The section contains data still to be relocated, so there is 1788 some relocation information too. */ 1789 #define SEC_RELOC 0x4 1790 1791 /* A signal to the OS that the section contains read only data. */ 1792 #define SEC_READONLY 0x8 1793 1794 /* The section contains code only. */ 1795 #define SEC_CODE 0x10 1796 1797 /* The section contains data only. */ 1798 #define SEC_DATA 0x20 1799 1800 /* The section will reside in ROM. */ 1801 #define SEC_ROM 0x40 1802 1803 /* The section contains constructor information. This section 1804 type is used by the linker to create lists of constructors and 1805 destructors used by `g++'. When a back end sees a symbol 1806 which should be used in a constructor list, it creates a new 1807 section for the type of name (e.g., `__CTOR_LIST__'), attaches 1808 the symbol to it, and builds a relocation. To build the lists 1809 of constructors, all the linker has to do is catenate all the 1810 sections called `__CTOR_LIST__' and relocate the data 1811 contained within - exactly the operations it would peform on 1812 standard data. */ 1813 #define SEC_CONSTRUCTOR 0x80 1814 1815 /* The section has contents - a data section could be 1816 `SEC_ALLOC' | `SEC_HAS_CONTENTS'; a debug section could be 1817 `SEC_HAS_CONTENTS' */ 1818 #define SEC_HAS_CONTENTS 0x100 1819 1820 /* An instruction to the linker to not output the section 1821 even if it has information which would normally be written. */ 1822 #define SEC_NEVER_LOAD 0x200 1823 1824 /* The section contains thread local data. */ 1825 #define SEC_THREAD_LOCAL 0x400 1826 1827 /* The section's size is fixed. Generic linker code will not 1828 recalculate it and it is up to whoever has set this flag to 1829 get the size right. */ 1830 #define SEC_FIXED_SIZE 0x800 1831 1832 /* The section contains common symbols (symbols may be defined 1833 multiple times, the value of a symbol is the amount of 1834 space it requires, and the largest symbol value is the one 1835 used). Most targets have exactly one of these (which we 1836 translate to bfd_com_section_ptr), but ECOFF has two. */ 1837 #define SEC_IS_COMMON 0x1000 1838 1839 /* The section contains only debugging information. For 1840 example, this is set for ELF .debug and .stab sections. 1841 strip tests this flag to see if a section can be 1842 discarded. */ 1843 #define SEC_DEBUGGING 0x2000 1844 1845 /* The contents of this section are held in memory pointed to 1846 by the contents field. This is checked by bfd_get_section_contents, 1847 and the data is retrieved from memory if appropriate. */ 1848 #define SEC_IN_MEMORY 0x4000 1849 1850 /* The contents of this section are to be excluded by the 1851 linker for executable and shared objects unless those 1852 objects are to be further relocated. */ 1853 #define SEC_EXCLUDE 0x8000 1854 1855 /* The contents of this section are to be sorted based on the sum of 1856 the symbol and addend values specified by the associated relocation 1857 entries. Entries without associated relocation entries will be 1858 appended to the end of the section in an unspecified order. */ 1859 #define SEC_SORT_ENTRIES 0x10000 1860 1861 /* When linking, duplicate sections of the same name should be 1862 discarded, rather than being combined into a single section as 1863 is usually done. This is similar to how common symbols are 1864 handled. See SEC_LINK_DUPLICATES below. */ 1865 #define SEC_LINK_ONCE 0x20000 1866 1867 /* If SEC_LINK_ONCE is set, this bitfield describes how the linker 1868 should handle duplicate sections. */ 1869 #define SEC_LINK_DUPLICATES 0xc0000 1870 1871 /* This value for SEC_LINK_DUPLICATES means that duplicate 1872 sections with the same name should simply be discarded. */ 1873 #define SEC_LINK_DUPLICATES_DISCARD 0x0 1874 1875 /* This value for SEC_LINK_DUPLICATES means that the linker 1876 should warn if there are any duplicate sections, although 1877 it should still only link one copy. */ 1878 #define SEC_LINK_DUPLICATES_ONE_ONLY 0x40000 1879 1880 /* This value for SEC_LINK_DUPLICATES means that the linker 1881 should warn if any duplicate sections are a different size. */ 1882 #define SEC_LINK_DUPLICATES_SAME_SIZE 0x80000 1883 1884 /* This value for SEC_LINK_DUPLICATES means that the linker 1885 should warn if any duplicate sections contain different 1886 contents. */ 1887 #define SEC_LINK_DUPLICATES_SAME_CONTENTS \ 1888 (SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE) 1889 1890 /* This section was created by the linker as part of dynamic 1891 relocation or other arcane processing. It is skipped when 1892 going through the first-pass output, trusting that someone 1893 else up the line will take care of it later. */ 1894 #define SEC_LINKER_CREATED 0x100000 1895 1896 /* This section contains a section ID to distinguish different 1897 sections with the same section name. */ 1898 #define SEC_ASSEMBLER_SECTION_ID 0x100000 1899 1900 /* This section should not be subject to garbage collection. 1901 Also set to inform the linker that this section should not be 1902 listed in the link map as discarded. */ 1903 #define SEC_KEEP 0x200000 1904 1905 /* This section contains "short" data, and should be placed 1906 "near" the GP. */ 1907 #define SEC_SMALL_DATA 0x400000 1908 1909 /* Attempt to merge identical entities in the section. 1910 Entity size is given in the entsize field. */ 1911 #define SEC_MERGE 0x800000 1912 1913 /* If given with SEC_MERGE, entities to merge are zero terminated 1914 strings where entsize specifies character size instead of fixed 1915 size entries. */ 1916 #define SEC_STRINGS 0x1000000 1917 1918 /* This section contains data about section groups. */ 1919 #define SEC_GROUP 0x2000000 1920 1921 /* The section is a COFF shared library section. This flag is 1922 only for the linker. If this type of section appears in 1923 the input file, the linker must copy it to the output file 1924 without changing the vma or size. FIXME: Although this 1925 was originally intended to be general, it really is COFF 1926 specific (and the flag was renamed to indicate this). It 1927 might be cleaner to have some more general mechanism to 1928 allow the back end to control what the linker does with 1929 sections. */ 1930 #define SEC_COFF_SHARED_LIBRARY 0x4000000 1931 1932 /* This input section should be copied to output in reverse order 1933 as an array of pointers. This is for ELF linker internal use 1934 only. */ 1935 #define SEC_ELF_REVERSE_COPY 0x4000000 1936 1937 /* This section contains data which may be shared with other 1938 executables or shared objects. This is for COFF only. */ 1939 #define SEC_COFF_SHARED 0x8000000 1940 1941 /* This section should be compressed. This is for ELF linker 1942 internal use only. */ 1943 #define SEC_ELF_COMPRESS 0x8000000 1944 1945 /* When a section with this flag is being linked, then if the size of 1946 the input section is less than a page, it should not cross a page 1947 boundary. If the size of the input section is one page or more, 1948 it should be aligned on a page boundary. This is for TI 1949 TMS320C54X only. */ 1950 #define SEC_TIC54X_BLOCK 0x10000000 1951 1952 /* This section should be renamed. This is for ELF linker 1953 internal use only. */ 1954 #define SEC_ELF_RENAME 0x10000000 1955 1956 /* Conditionally link this section; do not link if there are no 1957 references found to any symbol in the section. This is for TI 1958 TMS320C54X only. */ 1959 #define SEC_TIC54X_CLINK 0x20000000 1960 1961 /* This section contains vliw code. This is for Toshiba MeP only. */ 1962 #define SEC_MEP_VLIW 0x20000000 1963 1964 /* All symbols, sizes and relocations in this section are octets 1965 instead of bytes. Required for DWARF debug sections as DWARF 1966 information is organized in octets, not bytes. */ 1967 #define SEC_ELF_OCTETS 0x40000000 1968 1969 /* Indicate that section has the no read flag set. This happens 1970 when memory read flag isn't set. */ 1971 #define SEC_COFF_NOREAD 0x40000000 1972 1973 /* Indicate that section has the purecode flag set. */ 1974 #define SEC_ELF_PURECODE 0x80000000 1975 1976 /* End of section flags. */ 1977 1978 /* Some internal packed boolean fields. */ 1979 1980 /* See the vma field. */ 1981 unsigned int user_set_vma : 1; 1982 1983 /* A mark flag used by some of the linker backends. */ 1984 unsigned int linker_mark : 1; 1985 1986 /* Another mark flag used by some of the linker backends. Set for 1987 output sections that have an input section. */ 1988 unsigned int linker_has_input : 1; 1989 1990 /* Mark flag used by some linker backends for garbage collection. */ 1991 unsigned int gc_mark : 1; 1992 1993 /* Section compression status. */ 1994 unsigned int compress_status : 2; 1995 #define COMPRESS_SECTION_NONE 0 1996 #define COMPRESS_SECTION_DONE 1 1997 #define DECOMPRESS_SECTION_SIZED 2 1998 1999 /* The following flags are used by the ELF linker. */ 2000 2001 /* Mark sections which have been allocated to segments. */ 2002 unsigned int segment_mark : 1; 2003 2004 /* Type of sec_info information. */ 2005 unsigned int sec_info_type:3; 2006 #define SEC_INFO_TYPE_NONE 0 2007 #define SEC_INFO_TYPE_STABS 1 2008 #define SEC_INFO_TYPE_MERGE 2 2009 #define SEC_INFO_TYPE_EH_FRAME 3 2010 #define SEC_INFO_TYPE_JUST_SYMS 4 2011 #define SEC_INFO_TYPE_TARGET 5 2012 #define SEC_INFO_TYPE_EH_FRAME_ENTRY 6 2013 2014 /* Nonzero if this section uses RELA relocations, rather than REL. */ 2015 unsigned int use_rela_p:1; 2016 2017 /* Bits used by various backends. The generic code doesn't touch 2018 these fields. */ 2019 2020 unsigned int sec_flg0:1; 2021 unsigned int sec_flg1:1; 2022 unsigned int sec_flg2:1; 2023 unsigned int sec_flg3:1; 2024 unsigned int sec_flg4:1; 2025 unsigned int sec_flg5:1; 2026 2027 /* End of internal packed boolean fields. */ 2028 2029 /* The virtual memory address of the section - where it will be 2030 at run time. The symbols are relocated against this. The 2031 user_set_vma flag is maintained by bfd; if it's not set, the 2032 backend can assign addresses (for example, in `a.out', where 2033 the default address for `.data' is dependent on the specific 2034 target and various flags). */ 2035 bfd_vma vma; 2036 2037 /* The load address of the section - where it would be in a 2038 rom image; really only used for writing section header 2039 information. */ 2040 bfd_vma lma; 2041 2042 /* The size of the section in *octets*, as it will be output. 2043 Contains a value even if the section has no contents (e.g., the 2044 size of `.bss'). */ 2045 bfd_size_type size; 2046 2047 /* For input sections, the original size on disk of the section, in 2048 octets. This field should be set for any section whose size is 2049 changed by linker relaxation. It is required for sections where 2050 the linker relaxation scheme doesn't cache altered section and 2051 reloc contents (stabs, eh_frame, SEC_MERGE, some coff relaxing 2052 targets), and thus the original size needs to be kept to read the 2053 section multiple times. For output sections, rawsize holds the 2054 section size calculated on a previous linker relaxation pass. */ 2055 bfd_size_type rawsize; 2056 2057 /* The compressed size of the section in octets. */ 2058 bfd_size_type compressed_size; 2059 2060 /* If this section is going to be output, then this value is the 2061 offset in *bytes* into the output section of the first byte in the 2062 input section (byte ==> smallest addressable unit on the 2063 target). In most cases, if this was going to start at the 2064 100th octet (8-bit quantity) in the output section, this value 2065 would be 100. However, if the target byte size is 16 bits 2066 (bfd_octets_per_byte is "2"), this value would be 50. */ 2067 bfd_vma output_offset; 2068 2069 /* The output section through which to map on output. */ 2070 struct bfd_section *output_section; 2071 2072 /* If an input section, a pointer to a vector of relocation 2073 records for the data in this section. */ 2074 struct reloc_cache_entry *relocation; 2075 2076 /* If an output section, a pointer to a vector of pointers to 2077 relocation records for the data in this section. */ 2078 struct reloc_cache_entry **orelocation; 2079 2080 /* The number of relocation records in one of the above. */ 2081 unsigned reloc_count; 2082 2083 /* The alignment requirement of the section, as an exponent of 2 - 2084 e.g., 3 aligns to 2^3 (or 8). */ 2085 unsigned int alignment_power; 2086 2087 /* Information below is back end specific - and not always used 2088 or updated. */ 2089 2090 /* File position of section data. */ 2091 file_ptr filepos; 2092 2093 /* File position of relocation info. */ 2094 file_ptr rel_filepos; 2095 2096 /* File position of line data. */ 2097 file_ptr line_filepos; 2098 2099 /* Pointer to data for applications. */ 2100 void *userdata; 2101 2102 /* If the SEC_IN_MEMORY flag is set, this points to the actual 2103 contents. */ 2104 unsigned char *contents; 2105 2106 /* Attached line number information. */ 2107 alent *lineno; 2108 2109 /* Number of line number records. */ 2110 unsigned int lineno_count; 2111 2112 /* Entity size for merging purposes. */ 2113 unsigned int entsize; 2114 2115 /* Points to the kept section if this section is a link-once section, 2116 and is discarded. */ 2117 struct bfd_section *kept_section; 2118 2119 /* When a section is being output, this value changes as more 2120 linenumbers are written out. */ 2121 file_ptr moving_line_filepos; 2122 2123 /* What the section number is in the target world. */ 2124 int target_index; 2125 2126 void *used_by_bfd; 2127 2128 /* If this is a constructor section then here is a list of the 2129 relocations created to relocate items within it. */ 2130 struct relent_chain *constructor_chain; 2131 2132 /* The BFD which owns the section. */ 2133 bfd *owner; 2134 2135 /* A symbol which points at this section only. */ 2136 struct bfd_symbol *symbol; 2137 struct bfd_symbol **symbol_ptr_ptr; 2138 2139 /* Early in the link process, map_head and map_tail are used to build 2140 a list of input sections attached to an output section. Later, 2141 output sections use these fields for a list of bfd_link_order 2142 structs. The linked_to_symbol_name field is for ELF assembler 2143 internal use. */ 2144 union { 2145 struct bfd_link_order *link_order; 2146 struct bfd_section *s; 2147 const char *linked_to_symbol_name; 2148 } map_head, map_tail; 2149 2150 /* Points to the output section this section is already assigned to, 2151 if any. This is used when support for non-contiguous memory 2152 regions is enabled. */ 2153 struct bfd_section *already_assigned; 2154 2155 /* Explicitly specified section type, if non-zero. */ 2156 unsigned int type; 2157 2158 } asection; 2159 2160 static inline const char * 2161 bfd_section_name (const asection *sec) 2162 { 2163 return sec->name; 2164 } 2165 2166 static inline bfd_size_type 2167 bfd_section_size (const asection *sec) 2168 { 2169 return sec->size; 2170 } 2171 2172 static inline bfd_vma 2173 bfd_section_vma (const asection *sec) 2174 { 2175 return sec->vma; 2176 } 2177 2178 static inline bfd_vma 2179 bfd_section_lma (const asection *sec) 2180 { 2181 return sec->lma; 2182 } 2183 2184 static inline unsigned int 2185 bfd_section_alignment (const asection *sec) 2186 { 2187 return sec->alignment_power; 2188 } 2189 2190 static inline flagword 2191 bfd_section_flags (const asection *sec) 2192 { 2193 return sec->flags; 2194 } 2195 2196 static inline void * 2197 bfd_section_userdata (const asection *sec) 2198 { 2199 return sec->userdata; 2200 } 2201 static inline bool 2202 bfd_is_com_section (const asection *sec) 2203 { 2204 return (sec->flags & SEC_IS_COMMON) != 0; 2205 } 2206 2207 /* Note: the following are provided as inline functions rather than macros 2208 because not all callers use the return value. A macro implementation 2209 would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some 2210 compilers will complain about comma expressions that have no effect. */ 2211 static inline bool 2212 bfd_set_section_userdata (asection *sec, void *val) 2213 { 2214 sec->userdata = val; 2215 return true; 2216 } 2217 2218 static inline bool 2219 bfd_set_section_vma (asection *sec, bfd_vma val) 2220 { 2221 sec->vma = sec->lma = val; 2222 sec->user_set_vma = true; 2223 return true; 2224 } 2225 2226 static inline bool 2227 bfd_set_section_lma (asection *sec, bfd_vma val) 2228 { 2229 sec->lma = val; 2230 return true; 2231 } 2232 2233 static inline bool 2234 bfd_set_section_alignment (asection *sec, unsigned int val) 2235 { 2236 sec->alignment_power = val; 2237 return true; 2238 } 2239 2240 /* These sections are global, and are managed by BFD. The application 2241 and target back end are not permitted to change the values in 2242 these sections. */ 2243 extern asection _bfd_std_section[4]; 2244 2245 #define BFD_ABS_SECTION_NAME "*ABS*" 2246 #define BFD_UND_SECTION_NAME "*UND*" 2247 #define BFD_COM_SECTION_NAME "*COM*" 2248 #define BFD_IND_SECTION_NAME "*IND*" 2249 2250 /* Pointer to the common section. */ 2251 #define bfd_com_section_ptr (&_bfd_std_section[0]) 2252 /* Pointer to the undefined section. */ 2253 #define bfd_und_section_ptr (&_bfd_std_section[1]) 2254 /* Pointer to the absolute section. */ 2255 #define bfd_abs_section_ptr (&_bfd_std_section[2]) 2256 /* Pointer to the indirect section. */ 2257 #define bfd_ind_section_ptr (&_bfd_std_section[3]) 2258 2259 static inline bool 2260 bfd_is_und_section (const asection *sec) 2261 { 2262 return sec == bfd_und_section_ptr; 2263 } 2264 2265 static inline bool 2266 bfd_is_abs_section (const asection *sec) 2267 { 2268 return sec == bfd_abs_section_ptr; 2269 } 2270 2271 static inline bool 2272 bfd_is_ind_section (const asection *sec) 2273 { 2274 return sec == bfd_ind_section_ptr; 2275 } 2276 2277 static inline bool 2278 bfd_is_const_section (const asection *sec) 2279 { 2280 return (sec >= _bfd_std_section 2281 && sec < _bfd_std_section + (sizeof (_bfd_std_section) 2282 / sizeof (_bfd_std_section[0]))); 2283 } 2284 2285 /* Return TRUE if input section SEC has been discarded. */ 2286 static inline bool 2287 discarded_section (const asection *sec) 2288 { 2289 return (!bfd_is_abs_section (sec) 2290 && bfd_is_abs_section (sec->output_section) 2291 && sec->sec_info_type != SEC_INFO_TYPE_MERGE 2292 && sec->sec_info_type != SEC_INFO_TYPE_JUST_SYMS); 2293 } 2294 2295 #define BFD_FAKE_SECTION(SEC, SYM, NAME, IDX, FLAGS) \ 2296 /* name, next, prev, id, section_id, index, flags, user_set_vma, */ \ 2297 { NAME, NULL, NULL, IDX, 0, 0, FLAGS, 0, \ 2298 \ 2299 /* linker_mark, linker_has_input, gc_mark, decompress_status, */ \ 2300 0, 0, 1, 0, \ 2301 \ 2302 /* segment_mark, sec_info_type, use_rela_p, */ \ 2303 0, 0, 0, \ 2304 \ 2305 /* sec_flg0, sec_flg1, sec_flg2, sec_flg3, sec_flg4, sec_flg5, */ \ 2306 0, 0, 0, 0, 0, 0, \ 2307 \ 2308 /* vma, lma, size, rawsize, compressed_size, */ \ 2309 0, 0, 0, 0, 0, \ 2310 \ 2311 /* output_offset, output_section, relocation, orelocation, */ \ 2312 0, &SEC, NULL, NULL, \ 2313 \ 2314 /* reloc_count, alignment_power, filepos, rel_filepos, */ \ 2315 0, 0, 0, 0, \ 2316 \ 2317 /* line_filepos, userdata, contents, lineno, lineno_count, */ \ 2318 0, NULL, NULL, NULL, 0, \ 2319 \ 2320 /* entsize, kept_section, moving_line_filepos, */ \ 2321 0, NULL, 0, \ 2322 \ 2323 /* target_index, used_by_bfd, constructor_chain, owner, */ \ 2324 0, NULL, NULL, NULL, \ 2325 \ 2326 /* symbol, symbol_ptr_ptr, */ \ 2327 (struct bfd_symbol *) SYM, &SEC.symbol, \ 2328 \ 2329 /* map_head, map_tail, already_assigned, type */ \ 2330 { NULL }, { NULL }, NULL, 0 \ 2331 \ 2332 } 2333 2334 /* We use a macro to initialize the static asymbol structures because 2335 traditional C does not permit us to initialize a union member while 2336 gcc warns if we don't initialize it. 2337 the_bfd, name, value, attr, section [, udata] */ 2338 #ifdef __STDC__ 2339 #define GLOBAL_SYM_INIT(NAME, SECTION) \ 2340 { 0, NAME, 0, BSF_SECTION_SYM, SECTION, { 0 }} 2341 #else 2342 #define GLOBAL_SYM_INIT(NAME, SECTION) \ 2343 { 0, NAME, 0, BSF_SECTION_SYM, SECTION } 2344 #endif 2345 2346 2347File: bfd.info, Node: section prototypes, Prev: typedef asection, Up: Sections 2348 23492.6.5 Section prototypes 2350------------------------ 2351 2352These are the functions exported by the section handling part of BFD. 2353 23542.6.5.1 `bfd_section_list_clear' 2355................................ 2356 2357*Synopsis* 2358 void bfd_section_list_clear (bfd *); 2359 *Description* 2360Clears the section list, and also resets the section count and hash 2361table entries. 2362 23632.6.5.2 `bfd_get_section_by_name' 2364................................. 2365 2366*Synopsis* 2367 asection *bfd_get_section_by_name (bfd *abfd, const char *name); 2368 *Description* 2369Return the most recently created section attached to ABFD named NAME. 2370Return NULL if no such section exists. 2371 23722.6.5.3 `bfd_get_next_section_by_name' 2373...................................... 2374 2375*Synopsis* 2376 asection *bfd_get_next_section_by_name (bfd *ibfd, asection *sec); 2377 *Description* 2378Given SEC is a section returned by `bfd_get_section_by_name', return 2379the next most recently created section attached to the same BFD with 2380the same name, or if no such section exists in the same BFD and IBFD is 2381non-NULL, the next section with the same name in any input BFD 2382following IBFD. Return NULL on finding no section. 2383 23842.6.5.4 `bfd_get_linker_section' 2385................................ 2386 2387*Synopsis* 2388 asection *bfd_get_linker_section (bfd *abfd, const char *name); 2389 *Description* 2390Return the linker created section attached to ABFD named NAME. Return 2391NULL if no such section exists. 2392 23932.6.5.5 `bfd_get_section_by_name_if' 2394.................................... 2395 2396*Synopsis* 2397 asection *bfd_get_section_by_name_if 2398 (bfd *abfd, 2399 const char *name, 2400 bool (*func) (bfd *abfd, asection *sect, void *obj), 2401 void *obj); 2402 *Description* 2403Call the provided function FUNC for each section attached to the BFD 2404ABFD whose name matches NAME, passing OBJ as an argument. The function 2405will be called as if by 2406 2407 func (abfd, the_section, obj); 2408 2409 It returns the first section for which FUNC returns true, otherwise 2410`NULL'. 2411 24122.6.5.6 `bfd_get_unique_section_name' 2413..................................... 2414 2415*Synopsis* 2416 char *bfd_get_unique_section_name 2417 (bfd *abfd, const char *templat, int *count); 2418 *Description* 2419Invent a section name that is unique in ABFD by tacking a dot and a 2420digit suffix onto the original TEMPLAT. If COUNT is non-NULL, then it 2421specifies the first number tried as a suffix to generate a unique name. 2422The value pointed to by COUNT will be incremented in this case. 2423 24242.6.5.7 `bfd_make_section_old_way' 2425.................................. 2426 2427*Synopsis* 2428 asection *bfd_make_section_old_way (bfd *abfd, const char *name); 2429 *Description* 2430Create a new empty section called NAME and attach it to the end of the 2431chain of sections for the BFD ABFD. An attempt to create a section with 2432a name which is already in use returns its pointer without changing the 2433section chain. 2434 2435 It has the funny name since this is the way it used to be before it 2436was rewritten.... 2437 2438 Possible errors are: 2439 * `bfd_error_invalid_operation' - If output has already started for 2440 this BFD. 2441 2442 * `bfd_error_no_memory' - If memory allocation fails. 2443 24442.6.5.8 `bfd_make_section_anyway_with_flags' 2445............................................ 2446 2447*Synopsis* 2448 asection *bfd_make_section_anyway_with_flags 2449 (bfd *abfd, const char *name, flagword flags); 2450 *Description* 2451Create a new empty section called NAME and attach it to the end of the 2452chain of sections for ABFD. Create a new section even if there is 2453already a section with that name. Also set the attributes of the new 2454section to the value FLAGS. 2455 2456 Return `NULL' and set `bfd_error' on error; possible errors are: 2457 * `bfd_error_invalid_operation' - If output has already started for 2458 ABFD. 2459 2460 * `bfd_error_no_memory' - If memory allocation fails. 2461 24622.6.5.9 `bfd_make_section_anyway' 2463................................. 2464 2465*Synopsis* 2466 asection *bfd_make_section_anyway (bfd *abfd, const char *name); 2467 *Description* 2468Create a new empty section called NAME and attach it to the end of the 2469chain of sections for ABFD. Create a new section even if there is 2470already a section with that name. 2471 2472 Return `NULL' and set `bfd_error' on error; possible errors are: 2473 * `bfd_error_invalid_operation' - If output has already started for 2474 ABFD. 2475 2476 * `bfd_error_no_memory' - If memory allocation fails. 2477 24782.6.5.10 `bfd_make_section_with_flags' 2479...................................... 2480 2481*Synopsis* 2482 asection *bfd_make_section_with_flags 2483 (bfd *, const char *name, flagword flags); 2484 *Description* 2485Like `bfd_make_section_anyway', but return `NULL' (without calling 2486bfd_set_error ()) without changing the section chain if there is 2487already a section named NAME. Also set the attributes of the new 2488section to the value FLAGS. If there is an error, return `NULL' and set 2489`bfd_error'. 2490 24912.6.5.11 `bfd_make_section' 2492........................... 2493 2494*Synopsis* 2495 asection *bfd_make_section (bfd *, const char *name); 2496 *Description* 2497Like `bfd_make_section_anyway', but return `NULL' (without calling 2498bfd_set_error ()) without changing the section chain if there is 2499already a section named NAME. If there is an error, return `NULL' and 2500set `bfd_error'. 2501 25022.6.5.12 `bfd_set_section_flags' 2503................................ 2504 2505*Synopsis* 2506 bool bfd_set_section_flags (asection *sec, flagword flags); 2507 *Description* 2508Set the attributes of the section SEC to the value FLAGS. Return 2509`TRUE' on success, `FALSE' on error. Possible error returns are: 2510 2511 * `bfd_error_invalid_operation' - The section cannot have one or 2512 more of the attributes requested. For example, a .bss section in 2513 `a.out' may not have the `SEC_HAS_CONTENTS' field set. 2514 25152.6.5.13 `bfd_rename_section' 2516............................. 2517 2518*Synopsis* 2519 void bfd_rename_section 2520 (asection *sec, const char *newname); 2521 *Description* 2522Rename section SEC to NEWNAME. 2523 25242.6.5.14 `bfd_map_over_sections' 2525................................ 2526 2527*Synopsis* 2528 void bfd_map_over_sections 2529 (bfd *abfd, 2530 void (*func) (bfd *abfd, asection *sect, void *obj), 2531 void *obj); 2532 *Description* 2533Call the provided function FUNC for each section attached to the BFD 2534ABFD, passing OBJ as an argument. The function will be called as if by 2535 2536 func (abfd, the_section, obj); 2537 2538 This is the preferred method for iterating over sections; an 2539alternative would be to use a loop: 2540 2541 asection *p; 2542 for (p = abfd->sections; p != NULL; p = p->next) 2543 func (abfd, p, ...) 2544 25452.6.5.15 `bfd_sections_find_if' 2546............................... 2547 2548*Synopsis* 2549 asection *bfd_sections_find_if 2550 (bfd *abfd, 2551 bool (*operation) (bfd *abfd, asection *sect, void *obj), 2552 void *obj); 2553 *Description* 2554Call the provided function OPERATION for each section attached to the 2555BFD ABFD, passing OBJ as an argument. The function will be called as if 2556by 2557 2558 operation (abfd, the_section, obj); 2559 2560 It returns the first section for which OPERATION returns true. 2561 25622.6.5.16 `bfd_set_section_size' 2563............................... 2564 2565*Synopsis* 2566 bool bfd_set_section_size (asection *sec, bfd_size_type val); 2567 *Description* 2568Set SEC to the size VAL. If the operation is ok, then `TRUE' is 2569returned, else `FALSE'. 2570 2571 Possible error returns: 2572 * `bfd_error_invalid_operation' - Writing has started to the BFD, so 2573 setting the size is invalid. 2574 25752.6.5.17 `bfd_set_section_contents' 2576................................... 2577 2578*Synopsis* 2579 bool bfd_set_section_contents 2580 (bfd *abfd, asection *section, const void *data, 2581 file_ptr offset, bfd_size_type count); 2582 *Description* 2583Sets the contents of the section SECTION in BFD ABFD to the data 2584starting in memory at LOCATION. The data is written to the output 2585section starting at offset OFFSET for COUNT octets. 2586 2587 Normally `TRUE' is returned, but `FALSE' is returned if there was an 2588error. Possible error returns are: 2589 * `bfd_error_no_contents' - The output section does not have the 2590 `SEC_HAS_CONTENTS' attribute, so nothing can be written to it. 2591 2592 * `bfd_error_bad_value' - The section is unable to contain all of 2593 the data. 2594 2595 * `bfd_error_invalid_operation' - The BFD is not writeable. 2596 2597 * and some more too. 2598 This routine is front end to the back end function 2599`_bfd_set_section_contents'. 2600 26012.6.5.18 `bfd_get_section_contents' 2602................................... 2603 2604*Synopsis* 2605 bool bfd_get_section_contents 2606 (bfd *abfd, asection *section, void *location, file_ptr offset, 2607 bfd_size_type count); 2608 *Description* 2609Read data from SECTION in BFD ABFD into memory starting at LOCATION. 2610The data is read at an offset of OFFSET from the start of the input 2611section, and is read for COUNT bytes. 2612 2613 If the contents of a constructor with the `SEC_CONSTRUCTOR' flag set 2614are requested or if the section does not have the `SEC_HAS_CONTENTS' 2615flag set, then the LOCATION is filled with zeroes. If no errors occur, 2616`TRUE' is returned, else `FALSE'. 2617 26182.6.5.19 `bfd_malloc_and_get_section' 2619..................................... 2620 2621*Synopsis* 2622 bool bfd_malloc_and_get_section 2623 (bfd *abfd, asection *section, bfd_byte **buf); 2624 *Description* 2625Read all data from SECTION in BFD ABFD into a buffer, *BUF, malloc'd by 2626this function. 2627 26282.6.5.20 `bfd_copy_private_section_data' 2629........................................ 2630 2631*Synopsis* 2632 bool bfd_copy_private_section_data 2633 (bfd *ibfd, asection *isec, bfd *obfd, asection *osec); 2634 *Description* 2635Copy private section information from ISEC in the BFD IBFD to the 2636section OSEC in the BFD OBFD. Return `TRUE' on success, `FALSE' on 2637error. Possible error returns are: 2638 2639 * `bfd_error_no_memory' - Not enough memory exists to create private 2640 data for OSEC. 2641 2642 #define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \ 2643 BFD_SEND (obfd, _bfd_copy_private_section_data, \ 2644 (ibfd, isection, obfd, osection)) 2645 26462.6.5.21 `bfd_generic_is_group_section' 2647....................................... 2648 2649*Synopsis* 2650 bool bfd_generic_is_group_section (bfd *, const asection *sec); 2651 *Description* 2652Returns TRUE if SEC is a member of a group. 2653 26542.6.5.22 `bfd_generic_group_name' 2655................................. 2656 2657*Synopsis* 2658 const char *bfd_generic_group_name (bfd *, const asection *sec); 2659 *Description* 2660Returns group name if SEC is a member of a group. 2661 26622.6.5.23 `bfd_generic_discard_group' 2663.................................... 2664 2665*Synopsis* 2666 bool bfd_generic_discard_group (bfd *abfd, asection *group); 2667 *Description* 2668Remove all members of GROUP from the output. 2669 2670 2671File: bfd.info, Node: Symbols, Next: Archives, Prev: Sections, Up: BFD front end 2672 26732.7 Symbols 2674=========== 2675 2676BFD tries to maintain as much symbol information as it can when it 2677moves information from file to file. BFD passes information to 2678applications though the `asymbol' structure. When the application 2679requests the symbol table, BFD reads the table in the native form and 2680translates parts of it into the internal format. To maintain more than 2681the information passed to applications, some targets keep some 2682information "behind the scenes" in a structure only the particular back 2683end knows about. For example, the coff back end keeps the original 2684symbol table structure as well as the canonical structure when a BFD is 2685read in. On output, the coff back end can reconstruct the output symbol 2686table so that no information is lost, even information unique to coff 2687which BFD doesn't know or understand. If a coff symbol table were read, 2688but were written through an a.out back end, all the coff specific 2689information would be lost. The symbol table of a BFD is not necessarily 2690read in until a canonicalize request is made. Then the BFD back end 2691fills in a table provided by the application with pointers to the 2692canonical information. To output symbols, the application provides BFD 2693with a table of pointers to pointers to `asymbol's. This allows 2694applications like the linker to output a symbol as it was read, since 2695the "behind the scenes" information will be still available. 2696 2697* Menu: 2698 2699* Reading Symbols:: 2700* Writing Symbols:: 2701* Mini Symbols:: 2702* typedef asymbol:: 2703* symbol handling functions:: 2704 2705 2706File: bfd.info, Node: Reading Symbols, Next: Writing Symbols, Prev: Symbols, Up: Symbols 2707 27082.7.1 Reading symbols 2709--------------------- 2710 2711There are two stages to reading a symbol table from a BFD: allocating 2712storage, and the actual reading process. This is an excerpt from an 2713application which reads the symbol table: 2714 2715 long storage_needed; 2716 asymbol **symbol_table; 2717 long number_of_symbols; 2718 long i; 2719 2720 storage_needed = bfd_get_symtab_upper_bound (abfd); 2721 2722 if (storage_needed < 0) 2723 FAIL 2724 2725 if (storage_needed == 0) 2726 return; 2727 2728 symbol_table = xmalloc (storage_needed); 2729 ... 2730 number_of_symbols = 2731 bfd_canonicalize_symtab (abfd, symbol_table); 2732 2733 if (number_of_symbols < 0) 2734 FAIL 2735 2736 for (i = 0; i < number_of_symbols; i++) 2737 process_symbol (symbol_table[i]); 2738 2739 All storage for the symbols themselves is in an objalloc connected 2740to the BFD; it is freed when the BFD is closed. 2741 2742 2743File: bfd.info, Node: Writing Symbols, Next: Mini Symbols, Prev: Reading Symbols, Up: Symbols 2744 27452.7.2 Writing symbols 2746--------------------- 2747 2748Writing of a symbol table is automatic when a BFD open for writing is 2749closed. The application attaches a vector of pointers to pointers to 2750symbols to the BFD being written, and fills in the symbol count. The 2751close and cleanup code reads through the table provided and performs 2752all the necessary operations. The BFD output code must always be 2753provided with an "owned" symbol: one which has come from another BFD, 2754or one which has been created using `bfd_make_empty_symbol'. Here is an 2755example showing the creation of a symbol table with only one element: 2756 2757 #include "sysdep.h" 2758 #include "bfd.h" 2759 int main (void) 2760 { 2761 bfd *abfd; 2762 asymbol *ptrs[2]; 2763 asymbol *new; 2764 2765 abfd = bfd_openw ("foo","a.out-sunos-big"); 2766 bfd_set_format (abfd, bfd_object); 2767 new = bfd_make_empty_symbol (abfd); 2768 new->name = "dummy_symbol"; 2769 new->section = bfd_make_section_old_way (abfd, ".text"); 2770 new->flags = BSF_GLOBAL; 2771 new->value = 0x12345; 2772 2773 ptrs[0] = new; 2774 ptrs[1] = 0; 2775 2776 bfd_set_symtab (abfd, ptrs, 1); 2777 bfd_close (abfd); 2778 return 0; 2779 } 2780 2781 ./makesym 2782 nm foo 2783 00012345 A dummy_symbol 2784 2785 Many formats cannot represent arbitrary symbol information; for 2786instance, the `a.out' object format does not allow an arbitrary number 2787of sections. A symbol pointing to a section which is not one of 2788`.text', `.data' or `.bss' cannot be described. 2789 2790 2791File: bfd.info, Node: Mini Symbols, Next: typedef asymbol, Prev: Writing Symbols, Up: Symbols 2792 27932.7.3 Mini Symbols 2794------------------ 2795 2796Mini symbols provide read-only access to the symbol table. They use 2797less memory space, but require more time to access. They can be useful 2798for tools like nm or objdump, which may have to handle symbol tables of 2799extremely large executables. 2800 2801 The `bfd_read_minisymbols' function will read the symbols into 2802memory in an internal form. It will return a `void *' pointer to a 2803block of memory, a symbol count, and the size of each symbol. The 2804pointer is allocated using `malloc', and should be freed by the caller 2805when it is no longer needed. 2806 2807 The function `bfd_minisymbol_to_symbol' will take a pointer to a 2808minisymbol, and a pointer to a structure returned by 2809`bfd_make_empty_symbol', and return a `asymbol' structure. The return 2810value may or may not be the same as the value from 2811`bfd_make_empty_symbol' which was passed in. 2812 2813 2814File: bfd.info, Node: typedef asymbol, Next: symbol handling functions, Prev: Mini Symbols, Up: Symbols 2815 28162.7.4 typedef asymbol 2817--------------------- 2818 2819An `asymbol' has the form: 2820 2821 2822 typedef struct bfd_symbol 2823 { 2824 /* A pointer to the BFD which owns the symbol. This information 2825 is necessary so that a back end can work out what additional 2826 information (invisible to the application writer) is carried 2827 with the symbol. 2828 2829 This field is *almost* redundant, since you can use section->owner 2830 instead, except that some symbols point to the global sections 2831 bfd_{abs,com,und}_section. This could be fixed by making 2832 these globals be per-bfd (or per-target-flavor). FIXME. */ 2833 struct bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field. */ 2834 2835 /* The text of the symbol. The name is left alone, and not copied; the 2836 application may not alter it. */ 2837 const char *name; 2838 2839 /* The value of the symbol. This really should be a union of a 2840 numeric value with a pointer, since some flags indicate that 2841 a pointer to another symbol is stored here. */ 2842 symvalue value; 2843 2844 /* Attributes of a symbol. */ 2845 #define BSF_NO_FLAGS 0 2846 2847 /* The symbol has local scope; `static' in `C'. The value 2848 is the offset into the section of the data. */ 2849 #define BSF_LOCAL (1 << 0) 2850 2851 /* The symbol has global scope; initialized data in `C'. The 2852 value is the offset into the section of the data. */ 2853 #define BSF_GLOBAL (1 << 1) 2854 2855 /* The symbol has global scope and is exported. The value is 2856 the offset into the section of the data. */ 2857 #define BSF_EXPORT BSF_GLOBAL /* No real difference. */ 2858 2859 /* A normal C symbol would be one of: 2860 `BSF_LOCAL', `BSF_UNDEFINED' or `BSF_GLOBAL'. */ 2861 2862 /* The symbol is a debugging record. The value has an arbitrary 2863 meaning, unless BSF_DEBUGGING_RELOC is also set. */ 2864 #define BSF_DEBUGGING (1 << 2) 2865 2866 /* The symbol denotes a function entry point. Used in ELF, 2867 perhaps others someday. */ 2868 #define BSF_FUNCTION (1 << 3) 2869 2870 /* Used by the linker. */ 2871 #define BSF_KEEP (1 << 5) 2872 2873 /* An ELF common symbol. */ 2874 #define BSF_ELF_COMMON (1 << 6) 2875 2876 /* A weak global symbol, overridable without warnings by 2877 a regular global symbol of the same name. */ 2878 #define BSF_WEAK (1 << 7) 2879 2880 /* This symbol was created to point to a section, e.g. ELF's 2881 STT_SECTION symbols. */ 2882 #define BSF_SECTION_SYM (1 << 8) 2883 2884 /* The symbol used to be a common symbol, but now it is 2885 allocated. */ 2886 #define BSF_OLD_COMMON (1 << 9) 2887 2888 /* In some files the type of a symbol sometimes alters its 2889 location in an output file - ie in coff a `ISFCN' symbol 2890 which is also `C_EXT' symbol appears where it was 2891 declared and not at the end of a section. This bit is set 2892 by the target BFD part to convey this information. */ 2893 #define BSF_NOT_AT_END (1 << 10) 2894 2895 /* Signal that the symbol is the label of constructor section. */ 2896 #define BSF_CONSTRUCTOR (1 << 11) 2897 2898 /* Signal that the symbol is a warning symbol. The name is a 2899 warning. The name of the next symbol is the one to warn about; 2900 if a reference is made to a symbol with the same name as the next 2901 symbol, a warning is issued by the linker. */ 2902 #define BSF_WARNING (1 << 12) 2903 2904 /* Signal that the symbol is indirect. This symbol is an indirect 2905 pointer to the symbol with the same name as the next symbol. */ 2906 #define BSF_INDIRECT (1 << 13) 2907 2908 /* BSF_FILE marks symbols that contain a file name. This is used 2909 for ELF STT_FILE symbols. */ 2910 #define BSF_FILE (1 << 14) 2911 2912 /* Symbol is from dynamic linking information. */ 2913 #define BSF_DYNAMIC (1 << 15) 2914 2915 /* The symbol denotes a data object. Used in ELF, and perhaps 2916 others someday. */ 2917 #define BSF_OBJECT (1 << 16) 2918 2919 /* This symbol is a debugging symbol. The value is the offset 2920 into the section of the data. BSF_DEBUGGING should be set 2921 as well. */ 2922 #define BSF_DEBUGGING_RELOC (1 << 17) 2923 2924 /* This symbol is thread local. Used in ELF. */ 2925 #define BSF_THREAD_LOCAL (1 << 18) 2926 2927 /* This symbol represents a complex relocation expression, 2928 with the expression tree serialized in the symbol name. */ 2929 #define BSF_RELC (1 << 19) 2930 2931 /* This symbol represents a signed complex relocation expression, 2932 with the expression tree serialized in the symbol name. */ 2933 #define BSF_SRELC (1 << 20) 2934 2935 /* This symbol was created by bfd_get_synthetic_symtab. */ 2936 #define BSF_SYNTHETIC (1 << 21) 2937 2938 /* This symbol is an indirect code object. Unrelated to BSF_INDIRECT. 2939 The dynamic linker will compute the value of this symbol by 2940 calling the function that it points to. BSF_FUNCTION must 2941 also be also set. */ 2942 #define BSF_GNU_INDIRECT_FUNCTION (1 << 22) 2943 /* This symbol is a globally unique data object. The dynamic linker 2944 will make sure that in the entire process there is just one symbol 2945 with this name and type in use. BSF_OBJECT must also be set. */ 2946 #define BSF_GNU_UNIQUE (1 << 23) 2947 2948 /* This section symbol should be included in the symbol table. */ 2949 #define BSF_SECTION_SYM_USED (1 << 24) 2950 2951 flagword flags; 2952 2953 /* A pointer to the section to which this symbol is 2954 relative. This will always be non NULL, there are special 2955 sections for undefined and absolute symbols. */ 2956 struct bfd_section *section; 2957 2958 /* Back end special data. */ 2959 union 2960 { 2961 void *p; 2962 bfd_vma i; 2963 } 2964 udata; 2965 } 2966 asymbol; 2967 2968 2969File: bfd.info, Node: symbol handling functions, Prev: typedef asymbol, Up: Symbols 2970 29712.7.5 Symbol handling functions 2972------------------------------- 2973 29742.7.5.1 `bfd_get_symtab_upper_bound' 2975.................................... 2976 2977*Description* 2978Return the number of bytes required to store a vector of pointers to 2979`asymbols' for all the symbols in the BFD ABFD, including a terminal 2980NULL pointer. If there are no symbols in the BFD, then return 0. If an 2981error occurs, return -1. 2982 #define bfd_get_symtab_upper_bound(abfd) \ 2983 BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd)) 2984 29852.7.5.2 `bfd_is_local_label' 2986............................ 2987 2988*Synopsis* 2989 bool bfd_is_local_label (bfd *abfd, asymbol *sym); 2990 *Description* 2991Return TRUE if the given symbol SYM in the BFD ABFD is a compiler 2992generated local label, else return FALSE. 2993 29942.7.5.3 `bfd_is_local_label_name' 2995................................. 2996 2997*Synopsis* 2998 bool bfd_is_local_label_name (bfd *abfd, const char *name); 2999 *Description* 3000Return TRUE if a symbol with the name NAME in the BFD ABFD is a 3001compiler generated local label, else return FALSE. This just checks 3002whether the name has the form of a local label. 3003 #define bfd_is_local_label_name(abfd, name) \ 3004 BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name)) 3005 30062.7.5.4 `bfd_is_target_special_symbol' 3007...................................... 3008 3009*Synopsis* 3010 bool bfd_is_target_special_symbol (bfd *abfd, asymbol *sym); 3011 *Description* 3012Return TRUE iff a symbol SYM in the BFD ABFD is something special to 3013the particular target represented by the BFD. Such symbols should 3014normally not be mentioned to the user. 3015 #define bfd_is_target_special_symbol(abfd, sym) \ 3016 BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym)) 3017 30182.7.5.5 `bfd_canonicalize_symtab' 3019................................. 3020 3021*Description* 3022Read the symbols from the BFD ABFD, and fills in the vector LOCATION 3023with pointers to the symbols and a trailing NULL. Return the actual 3024number of symbol pointers, not including the NULL. 3025 #define bfd_canonicalize_symtab(abfd, location) \ 3026 BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location)) 3027 30282.7.5.6 `bfd_set_symtab' 3029........................ 3030 3031*Synopsis* 3032 bool bfd_set_symtab 3033 (bfd *abfd, asymbol **location, unsigned int count); 3034 *Description* 3035Arrange that when the output BFD ABFD is closed, the table LOCATION of 3036COUNT pointers to symbols will be written. 3037 30382.7.5.7 `bfd_print_symbol_vandf' 3039................................ 3040 3041*Synopsis* 3042 void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol); 3043 *Description* 3044Print the value and flags of the SYMBOL supplied to the stream FILE. 3045 30462.7.5.8 `bfd_make_empty_symbol' 3047............................... 3048 3049*Description* 3050Create a new `asymbol' structure for the BFD ABFD and return a pointer 3051to it. 3052 3053 This routine is necessary because each back end has private 3054information surrounding the `asymbol'. Building your own `asymbol' and 3055pointing to it will not create the private information, and will cause 3056problems later on. 3057 #define bfd_make_empty_symbol(abfd) \ 3058 BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd)) 3059 30602.7.5.9 `_bfd_generic_make_empty_symbol' 3061........................................ 3062 3063*Synopsis* 3064 asymbol *_bfd_generic_make_empty_symbol (bfd *); 3065 *Description* 3066Create a new `asymbol' structure for the BFD ABFD and return a pointer 3067to it. Used by core file routines, binary back-end and anywhere else 3068where no private info is needed. 3069 30702.7.5.10 `bfd_make_debug_symbol' 3071................................ 3072 3073*Description* 3074Create a new `asymbol' structure for the BFD ABFD, to be used as a 3075debugging symbol. Further details of its use have yet to be worked out. 3076 #define bfd_make_debug_symbol(abfd,ptr,size) \ 3077 BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size)) 3078 30792.7.5.11 `bfd_decode_symclass' 3080.............................. 3081 3082*Description* 3083Return a character corresponding to the symbol class of SYMBOL, or '?' 3084for an unknown class. 3085 3086 *Synopsis* 3087 int bfd_decode_symclass (asymbol *symbol); 3088 30892.7.5.12 `bfd_is_undefined_symclass' 3090.................................... 3091 3092*Description* 3093Returns non-zero if the class symbol returned by bfd_decode_symclass 3094represents an undefined symbol. Returns zero otherwise. 3095 3096 *Synopsis* 3097 bool bfd_is_undefined_symclass (int symclass); 3098 30992.7.5.13 `bfd_symbol_info' 3100.......................... 3101 3102*Description* 3103Fill in the basic info about symbol that nm needs. Additional info may 3104be added by the back-ends after calling this function. 3105 3106 *Synopsis* 3107 void bfd_symbol_info (asymbol *symbol, symbol_info *ret); 3108 31092.7.5.14 `bfd_copy_private_symbol_data' 3110....................................... 3111 3112*Synopsis* 3113 bool bfd_copy_private_symbol_data 3114 (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym); 3115 *Description* 3116Copy private symbol information from ISYM in the BFD IBFD to the symbol 3117OSYM in the BFD OBFD. Return `TRUE' on success, `FALSE' on error. 3118Possible error returns are: 3119 3120 * `bfd_error_no_memory' - Not enough memory exists to create private 3121 data for OSEC. 3122 3123 #define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \ 3124 BFD_SEND (obfd, _bfd_copy_private_symbol_data, \ 3125 (ibfd, isymbol, obfd, osymbol)) 3126 3127 3128File: bfd.info, Node: Archives, Next: Formats, Prev: Symbols, Up: BFD front end 3129 31302.8 Archives 3131============ 3132 3133*Description* 3134An archive (or library) is just another BFD. It has a symbol table, 3135although there's not much a user program will do with it. 3136 3137 The big difference between an archive BFD and an ordinary BFD is 3138that the archive doesn't have sections. Instead it has a chain of BFDs 3139that are considered its contents. These BFDs can be manipulated like 3140any other. The BFDs contained in an archive opened for reading will 3141all be opened for reading. You may put either input or output BFDs 3142into an archive opened for output; they will be handled correctly when 3143the archive is closed. 3144 3145 Use `bfd_openr_next_archived_file' to step through the contents of 3146an archive opened for input. You don't have to read the entire archive 3147if you don't want to! Read it until you find what you want. 3148 3149 A BFD returned by `bfd_openr_next_archived_file' can be closed 3150manually with `bfd_close'. If you do not close it, then a second 3151iteration through the members of an archive may return the same BFD. 3152If you close the archive BFD, then all the member BFDs will 3153automatically be closed as well. 3154 3155 Archive contents of output BFDs are chained through the 3156`archive_next' pointer in a BFD. The first one is findable through the 3157`archive_head' slot of the archive. Set it with `bfd_set_archive_head' 3158(q.v.). A given BFD may be in only one open output archive at a time. 3159 3160 As expected, the BFD archive code is more general than the archive 3161code of any given environment. BFD archives may contain files of 3162different formats (e.g., a.out and coff) and even different 3163architectures. You may even place archives recursively into archives! 3164 3165 This can cause unexpected confusion, since some archive formats are 3166more expressive than others. For instance, Intel COFF archives can 3167preserve long filenames; SunOS a.out archives cannot. If you move a 3168file from the first to the second format and back again, the filename 3169may be truncated. Likewise, different a.out environments have different 3170conventions as to how they truncate filenames, whether they preserve 3171directory names in filenames, etc. When interoperating with native 3172tools, be sure your files are homogeneous. 3173 3174 Beware: most of these formats do not react well to the presence of 3175spaces in filenames. We do the best we can, but can't always handle 3176this case due to restrictions in the format of archives. Many Unix 3177utilities are braindead in regards to spaces and such in filenames 3178anyway, so this shouldn't be much of a restriction. 3179 3180 Archives are supported in BFD in `archive.c'. 3181 31822.8.1 Archive functions 3183----------------------- 3184 31852.8.1.1 `bfd_get_next_mapent' 3186............................. 3187 3188*Synopsis* 3189 symindex bfd_get_next_mapent 3190 (bfd *abfd, symindex previous, carsym **sym); 3191 *Description* 3192Step through archive ABFD's symbol table (if it has one). Successively 3193update SYM with the next symbol's information, returning that symbol's 3194(internal) index into the symbol table. 3195 3196 Supply `BFD_NO_MORE_SYMBOLS' as the PREVIOUS entry to get the first 3197one; returns `BFD_NO_MORE_SYMBOLS' when you've already got the last one. 3198 3199 A `carsym' is a canonical archive symbol. The only user-visible 3200element is its name, a null-terminated string. 3201 32022.8.1.2 `bfd_set_archive_head' 3203.............................. 3204 3205*Synopsis* 3206 bool bfd_set_archive_head (bfd *output, bfd *new_head); 3207 *Description* 3208Set the head of the chain of BFDs contained in the archive OUTPUT to 3209NEW_HEAD. 3210 32112.8.1.3 `bfd_openr_next_archived_file' 3212...................................... 3213 3214*Synopsis* 3215 bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous); 3216 *Description* 3217Provided a BFD, ARCHIVE, containing an archive and NULL, open an input 3218BFD on the first contained element and returns that. Subsequent calls 3219should pass the archive and the previous return value to return a 3220created BFD to the next contained element. NULL is returned when there 3221are no more. Note - if you want to process the bfd returned by this 3222call be sure to call bfd_check_format() on it first. 3223 3224 3225File: bfd.info, Node: Formats, Next: Relocations, Prev: Archives, Up: BFD front end 3226 32272.9 File formats 3228================ 3229 3230A format is a BFD concept of high level file contents type. The formats 3231supported by BFD are: 3232 3233 * `bfd_object' 3234 The BFD may contain data, symbols, relocations and debug info. 3235 3236 * `bfd_archive' 3237 The BFD contains other BFDs and an optional index. 3238 3239 * `bfd_core' 3240 The BFD contains the result of an executable core dump. 3241 32422.9.1 File format functions 3243--------------------------- 3244 32452.9.1.1 `bfd_check_format' 3246.......................... 3247 3248*Synopsis* 3249 bool bfd_check_format (bfd *abfd, bfd_format format); 3250 *Description* 3251Verify if the file attached to the BFD ABFD is compatible with the 3252format FORMAT (i.e., one of `bfd_object', `bfd_archive' or `bfd_core'). 3253 3254 If the BFD has been set to a specific target before the call, only 3255the named target and format combination is checked. If the target has 3256not been set, or has been set to `default', then all the known target 3257backends is interrogated to determine a match. If the default target 3258matches, it is used. If not, exactly one target must recognize the 3259file, or an error results. 3260 3261 The function returns `TRUE' on success, otherwise `FALSE' with one 3262of the following error codes: 3263 3264 * `bfd_error_invalid_operation' - if `format' is not one of 3265 `bfd_object', `bfd_archive' or `bfd_core'. 3266 3267 * `bfd_error_system_call' - if an error occured during a read - even 3268 some file mismatches can cause bfd_error_system_calls. 3269 3270 * `file_not_recognised' - none of the backends recognised the file 3271 format. 3272 3273 * `bfd_error_file_ambiguously_recognized' - more than one backend 3274 recognised the file format. 3275 32762.9.1.2 `bfd_check_format_matches' 3277.................................. 3278 3279*Synopsis* 3280 bool bfd_check_format_matches 3281 (bfd *abfd, bfd_format format, char ***matching); 3282 *Description* 3283Like `bfd_check_format', except when it returns FALSE with `bfd_errno' 3284set to `bfd_error_file_ambiguously_recognized'. In that case, if 3285MATCHING is not NULL, it will be filled in with a NULL-terminated list 3286of the names of the formats that matched, allocated with `malloc'. 3287Then the user may choose a format and try again. 3288 3289 When done with the list that MATCHING points to, the caller should 3290free it. 3291 32922.9.1.3 `bfd_set_format' 3293........................ 3294 3295*Synopsis* 3296 bool bfd_set_format (bfd *abfd, bfd_format format); 3297 *Description* 3298This function sets the file format of the BFD ABFD to the format 3299FORMAT. If the target set in the BFD does not support the format 3300requested, the format is invalid, or the BFD is not open for writing, 3301then an error occurs. 3302 33032.9.1.4 `bfd_format_string' 3304........................... 3305 3306*Synopsis* 3307 const char *bfd_format_string (bfd_format format); 3308 *Description* 3309Return a pointer to a const string `invalid', `object', `archive', 3310`core', or `unknown', depending upon the value of FORMAT. 3311 3312 3313File: bfd.info, Node: Relocations, Next: Core Files, Prev: Formats, Up: BFD front end 3314 33152.10 Relocations 3316================ 3317 3318BFD maintains relocations in much the same way it maintains symbols: 3319they are left alone until required, then read in en-masse and 3320translated into an internal form. A common routine 3321`bfd_perform_relocation' acts upon the canonical form to do the fixup. 3322 3323 Relocations are maintained on a per section basis, while symbols are 3324maintained on a per BFD basis. 3325 3326 All that a back end has to do to fit the BFD interface is to create 3327a `struct reloc_cache_entry' for each relocation in a particular 3328section, and fill in the right bits of the structures. 3329 3330* Menu: 3331 3332* typedef arelent:: 3333* howto manager:: 3334 3335 3336File: bfd.info, Node: typedef arelent, Next: howto manager, Prev: Relocations, Up: Relocations 3337 33382.10.1 typedef arelent 3339---------------------- 3340 3341This is the structure of a relocation entry: 3342 3343 3344 typedef enum bfd_reloc_status 3345 { 3346 /* No errors detected. Note - the value 2 is used so that it 3347 will not be mistaken for the boolean TRUE or FALSE values. */ 3348 bfd_reloc_ok = 2, 3349 3350 /* The relocation was performed, but there was an overflow. */ 3351 bfd_reloc_overflow, 3352 3353 /* The address to relocate was not within the section supplied. */ 3354 bfd_reloc_outofrange, 3355 3356 /* Used by special functions. */ 3357 bfd_reloc_continue, 3358 3359 /* Unsupported relocation size requested. */ 3360 bfd_reloc_notsupported, 3361 3362 /* Unused. */ 3363 bfd_reloc_other, 3364 3365 /* The symbol to relocate against was undefined. */ 3366 bfd_reloc_undefined, 3367 3368 /* The relocation was performed, but may not be ok. If this type is 3369 returned, the error_message argument to bfd_perform_relocation 3370 will be set. */ 3371 bfd_reloc_dangerous 3372 } 3373 bfd_reloc_status_type; 3374 3375 typedef const struct reloc_howto_struct reloc_howto_type; 3376 3377 typedef struct reloc_cache_entry 3378 { 3379 /* A pointer into the canonical table of pointers. */ 3380 struct bfd_symbol **sym_ptr_ptr; 3381 3382 /* offset in section. */ 3383 bfd_size_type address; 3384 3385 /* addend for relocation value. */ 3386 bfd_vma addend; 3387 3388 /* Pointer to how to perform the required relocation. */ 3389 reloc_howto_type *howto; 3390 3391 } 3392 arelent; 3393 *Description* 3394Here is a description of each of the fields within an `arelent': 3395 3396 * `sym_ptr_ptr' 3397 The symbol table pointer points to a pointer to the symbol 3398associated with the relocation request. It is the pointer into the 3399table returned by the back end's `canonicalize_symtab' action. *Note 3400Symbols::. The symbol is referenced through a pointer to a pointer so 3401that tools like the linker can fix up all the symbols of the same name 3402by modifying only one pointer. The relocation routine looks in the 3403symbol and uses the base of the section the symbol is attached to and 3404the value of the symbol as the initial relocation offset. If the symbol 3405pointer is zero, then the section provided is looked up. 3406 3407 * `address' 3408 The `address' field gives the offset in bytes from the base of the 3409section data which owns the relocation record to the first byte of 3410relocatable information. The actual data relocated will be relative to 3411this point; for example, a relocation type which modifies the bottom 3412two bytes of a four byte word would not touch the first byte pointed to 3413in a big endian world. 3414 3415 * `addend' 3416 The `addend' is a value provided by the back end to be added (!) to 3417the relocation offset. Its interpretation is dependent upon the howto. 3418For example, on the 68k the code: 3419 3420 char foo[]; 3421 main() 3422 { 3423 return foo[0x12345678]; 3424 } 3425 3426 Could be compiled into: 3427 3428 linkw fp,#-4 3429 moveb @#12345678,d0 3430 extbl d0 3431 unlk fp 3432 rts 3433 3434 This could create a reloc pointing to `foo', but leave the offset in 3435the data, something like: 3436 3437 RELOCATION RECORDS FOR [.text]: 3438 offset type value 3439 00000006 32 _foo 3440 3441 00000000 4e56 fffc ; linkw fp,#-4 3442 00000004 1039 1234 5678 ; moveb @#12345678,d0 3443 0000000a 49c0 ; extbl d0 3444 0000000c 4e5e ; unlk fp 3445 0000000e 4e75 ; rts 3446 3447 Using coff and an 88k, some instructions don't have enough space in 3448them to represent the full address range, and pointers have to be 3449loaded in two parts. So you'd get something like: 3450 3451 or.u r13,r0,hi16(_foo+0x12345678) 3452 ld.b r2,r13,lo16(_foo+0x12345678) 3453 jmp r1 3454 3455 This should create two relocs, both pointing to `_foo', and with 34560x12340000 in their addend field. The data would consist of: 3457 3458 RELOCATION RECORDS FOR [.text]: 3459 offset type value 3460 00000002 HVRT16 _foo+0x12340000 3461 00000006 LVRT16 _foo+0x12340000 3462 3463 00000000 5da05678 ; or.u r13,r0,0x5678 3464 00000004 1c4d5678 ; ld.b r2,r13,0x5678 3465 00000008 f400c001 ; jmp r1 3466 3467 The relocation routine digs out the value from the data, adds it to 3468the addend to get the original offset, and then adds the value of 3469`_foo'. Note that all 32 bits have to be kept around somewhere, to cope 3470with carry from bit 15 to bit 16. 3471 3472 One further example is the sparc and the a.out format. The sparc has 3473a similar problem to the 88k, in that some instructions don't have room 3474for an entire offset, but on the sparc the parts are created in odd 3475sized lumps. The designers of the a.out format chose to not use the 3476data within the section for storing part of the offset; all the offset 3477is kept within the reloc. Anything in the data should be ignored. 3478 3479 save %sp,-112,%sp 3480 sethi %hi(_foo+0x12345678),%g2 3481 ldsb [%g2+%lo(_foo+0x12345678)],%i0 3482 ret 3483 restore 3484 3485 Both relocs contain a pointer to `foo', and the offsets contain junk. 3486 3487 RELOCATION RECORDS FOR [.text]: 3488 offset type value 3489 00000004 HI22 _foo+0x12345678 3490 00000008 LO10 _foo+0x12345678 3491 3492 00000000 9de3bf90 ; save %sp,-112,%sp 3493 00000004 05000000 ; sethi %hi(_foo+0),%g2 3494 00000008 f048a000 ; ldsb [%g2+%lo(_foo+0)],%i0 3495 0000000c 81c7e008 ; ret 3496 00000010 81e80000 ; restore 3497 3498 * `howto' 3499 The `howto' field can be imagined as a relocation instruction. It is 3500a pointer to a structure which contains information on what to do with 3501all of the other information in the reloc record and data section. A 3502back end would normally have a relocation instruction set and turn 3503relocations into pointers to the correct structure on input - but it 3504would be possible to create each howto field on demand. 3505 35062.10.1.1 `enum complain_overflow' 3507................................. 3508 3509Indicates what sort of overflow checking should be done when performing 3510a relocation. 3511 3512 3513 enum complain_overflow 3514 { 3515 /* Do not complain on overflow. */ 3516 complain_overflow_dont, 3517 3518 /* Complain if the value overflows when considered as a signed 3519 number one bit larger than the field. ie. A bitfield of N bits 3520 is allowed to represent -2**n to 2**n-1. */ 3521 complain_overflow_bitfield, 3522 3523 /* Complain if the value overflows when considered as a signed 3524 number. */ 3525 complain_overflow_signed, 3526 3527 /* Complain if the value overflows when considered as an 3528 unsigned number. */ 3529 complain_overflow_unsigned 3530 }; 3531 35322.10.1.2 `reloc_howto_type' 3533........................... 3534 3535The `reloc_howto_type' is a structure which contains all the 3536information that libbfd needs to know to tie up a back end's data. 3537 3538 struct reloc_howto_struct 3539 { 3540 /* The type field has mainly a documentary use - the back end can 3541 do what it wants with it, though normally the back end's idea of 3542 an external reloc number is stored in this field. */ 3543 unsigned int type; 3544 3545 /* The size of the item to be relocated in bytes. */ 3546 unsigned int size:4; 3547 3548 /* The number of bits in the field to be relocated. This is used 3549 when doing overflow checking. */ 3550 unsigned int bitsize:7; 3551 3552 /* The value the final relocation is shifted right by. This drops 3553 unwanted data from the relocation. */ 3554 unsigned int rightshift:6; 3555 3556 /* The bit position of the reloc value in the destination. 3557 The relocated value is left shifted by this amount. */ 3558 unsigned int bitpos:6; 3559 3560 /* What type of overflow error should be checked for when 3561 relocating. */ 3562 ENUM_BITFIELD (complain_overflow) complain_on_overflow:2; 3563 3564 /* The relocation value should be negated before applying. */ 3565 unsigned int negate:1; 3566 3567 /* The relocation is relative to the item being relocated. */ 3568 unsigned int pc_relative:1; 3569 3570 /* Some formats record a relocation addend in the section contents 3571 rather than with the relocation. For ELF formats this is the 3572 distinction between USE_REL and USE_RELA (though the code checks 3573 for USE_REL == 1/0). The value of this field is TRUE if the 3574 addend is recorded with the section contents; when performing a 3575 partial link (ld -r) the section contents (the data) will be 3576 modified. The value of this field is FALSE if addends are 3577 recorded with the relocation (in arelent.addend); when performing 3578 a partial link the relocation will be modified. 3579 All relocations for all ELF USE_RELA targets should set this field 3580 to FALSE (values of TRUE should be looked on with suspicion). 3581 However, the converse is not true: not all relocations of all ELF 3582 USE_REL targets set this field to TRUE. Why this is so is peculiar 3583 to each particular target. For relocs that aren't used in partial 3584 links (e.g. GOT stuff) it doesn't matter what this is set to. */ 3585 unsigned int partial_inplace:1; 3586 3587 /* When some formats create PC relative instructions, they leave 3588 the value of the pc of the place being relocated in the offset 3589 slot of the instruction, so that a PC relative relocation can 3590 be made just by adding in an ordinary offset (e.g., sun3 a.out). 3591 Some formats leave the displacement part of an instruction 3592 empty (e.g., ELF); this flag signals the fact. */ 3593 unsigned int pcrel_offset:1; 3594 3595 /* src_mask selects the part of the instruction (or data) to be used 3596 in the relocation sum. If the target relocations don't have an 3597 addend in the reloc, eg. ELF USE_REL, src_mask will normally equal 3598 dst_mask to extract the addend from the section contents. If 3599 relocations do have an addend in the reloc, eg. ELF USE_RELA, this 3600 field should normally be zero. Non-zero values for ELF USE_RELA 3601 targets should be viewed with suspicion as normally the value in 3602 the dst_mask part of the section contents should be ignored. */ 3603 bfd_vma src_mask; 3604 3605 /* dst_mask selects which parts of the instruction (or data) are 3606 replaced with a relocated value. */ 3607 bfd_vma dst_mask; 3608 3609 /* If this field is non null, then the supplied function is 3610 called rather than the normal function. This allows really 3611 strange relocation methods to be accommodated. */ 3612 bfd_reloc_status_type (*special_function) 3613 (bfd *, arelent *, struct bfd_symbol *, void *, asection *, 3614 bfd *, char **); 3615 3616 /* The textual name of the relocation type. */ 3617 const char *name; 3618 }; 3619 36202.10.1.3 `The HOWTO Macro' 3621.......................... 3622 3623*Description* 3624The HOWTO macro fills in a reloc_howto_type (a typedef for const struct 3625reloc_howto_struct). 3626 #define HOWTO_RSIZE(sz) ((sz) < 0 ? -(sz) : (sz)) 3627 #define HOWTO(type, right, size, bits, pcrel, left, ovf, func, name, \ 3628 inplace, src_mask, dst_mask, pcrel_off) \ 3629 { (unsigned) type, HOWTO_RSIZE (size), bits, right, left, ovf, \ 3630 size < 0, pcrel, inplace, pcrel_off, src_mask, dst_mask, func, name } 3631 3632 *Description* 3633This is used to fill in an empty howto entry in an array. 3634 #define EMPTY_HOWTO(C) \ 3635 HOWTO ((C), 0, 1, 0, false, 0, complain_overflow_dont, NULL, \ 3636 NULL, false, 0, 0, false) 3637 3638 static inline unsigned int 3639 bfd_get_reloc_size (reloc_howto_type *howto) 3640 { 3641 return howto->size; 3642 } 3643 36442.10.1.4 `arelent_chain' 3645........................ 3646 3647*Description* 3648How relocs are tied together in an `asection': 3649 typedef struct relent_chain 3650 { 3651 arelent relent; 3652 struct relent_chain *next; 3653 } 3654 arelent_chain; 3655 36562.10.1.5 `bfd_check_overflow' 3657............................. 3658 3659*Synopsis* 3660 bfd_reloc_status_type bfd_check_overflow 3661 (enum complain_overflow how, 3662 unsigned int bitsize, 3663 unsigned int rightshift, 3664 unsigned int addrsize, 3665 bfd_vma relocation); 3666 *Description* 3667Perform overflow checking on RELOCATION which has BITSIZE significant 3668bits and will be shifted right by RIGHTSHIFT bits, on a machine with 3669addresses containing ADDRSIZE significant bits. The result is either of 3670`bfd_reloc_ok' or `bfd_reloc_overflow'. 3671 36722.10.1.6 `bfd_reloc_offset_in_range' 3673.................................... 3674 3675*Synopsis* 3676 bool bfd_reloc_offset_in_range 3677 (reloc_howto_type *howto, 3678 bfd *abfd, 3679 asection *section, 3680 bfd_size_type offset); 3681 *Description* 3682Returns TRUE if the reloc described by HOWTO can be applied at OFFSET 3683octets in SECTION. 3684 36852.10.1.7 `bfd_perform_relocation' 3686................................. 3687 3688*Synopsis* 3689 bfd_reloc_status_type bfd_perform_relocation 3690 (bfd *abfd, 3691 arelent *reloc_entry, 3692 void *data, 3693 asection *input_section, 3694 bfd *output_bfd, 3695 char **error_message); 3696 *Description* 3697If OUTPUT_BFD is supplied to this function, the generated image will be 3698relocatable; the relocations are copied to the output file after they 3699have been changed to reflect the new state of the world. There are two 3700ways of reflecting the results of partial linkage in an output file: by 3701modifying the output data in place, and by modifying the relocation 3702record. Some native formats (e.g., basic a.out and basic coff) have no 3703way of specifying an addend in the relocation type, so the addend has 3704to go in the output data. This is no big deal since in these formats 3705the output data slot will always be big enough for the addend. Complex 3706reloc types with addends were invented to solve just this problem. The 3707ERROR_MESSAGE argument is set to an error message if this return 3708`bfd_reloc_dangerous'. 3709 37102.10.1.8 `bfd_install_relocation' 3711................................. 3712 3713*Synopsis* 3714 bfd_reloc_status_type bfd_install_relocation 3715 (bfd *abfd, 3716 arelent *reloc_entry, 3717 void *data, bfd_vma data_start, 3718 asection *input_section, 3719 char **error_message); 3720 *Description* 3721This looks remarkably like `bfd_perform_relocation', except it does not 3722expect that the section contents have been filled in. I.e., it's 3723suitable for use when creating, rather than applying a relocation. 3724 3725 For now, this function should be considered reserved for the 3726assembler. 3727 3728 3729File: bfd.info, Node: howto manager, Prev: typedef arelent, Up: Relocations 3730 37312.10.2 The howto manager 3732------------------------ 3733 3734When an application wants to create a relocation, but doesn't know what 3735the target machine might call it, it can find out by using this bit of 3736code. 3737 37382.10.2.1 `bfd_reloc_code_type' 3739.............................. 3740 3741*Description* 3742The insides of a reloc code. The idea is that, eventually, there will 3743be one enumerator for every type of relocation we ever do. Pass one of 3744these values to `bfd_reloc_type_lookup', and it'll return a howto 3745pointer. 3746 3747 This does mean that the application must determine the correct 3748enumerator value; you can't get a howto pointer from a random set of 3749attributes. 3750 3751 Here are the possible values for `enum bfd_reloc_code_real': 3752 3753 -- : BFD_RELOC_64 3754 -- : BFD_RELOC_32 3755 -- : BFD_RELOC_26 3756 -- : BFD_RELOC_24 3757 -- : BFD_RELOC_16 3758 -- : BFD_RELOC_14 3759 -- : BFD_RELOC_8 3760 Basic absolute relocations of N bits. 3761 3762 -- : BFD_RELOC_64_PCREL 3763 -- : BFD_RELOC_32_PCREL 3764 -- : BFD_RELOC_24_PCREL 3765 -- : BFD_RELOC_16_PCREL 3766 -- : BFD_RELOC_12_PCREL 3767 -- : BFD_RELOC_8_PCREL 3768 PC-relative relocations. Sometimes these are relative to the 3769 address of the relocation itself; sometimes they are relative to 3770 the start of the section containing the relocation. It depends on 3771 the specific target. 3772 3773 -- : BFD_RELOC_32_SECREL 3774 -- : BFD_RELOC_16_SECIDX 3775 Section relative relocations. Some targets need this for DWARF2. 3776 3777 -- : BFD_RELOC_32_GOT_PCREL 3778 -- : BFD_RELOC_16_GOT_PCREL 3779 -- : BFD_RELOC_8_GOT_PCREL 3780 -- : BFD_RELOC_32_GOTOFF 3781 -- : BFD_RELOC_16_GOTOFF 3782 -- : BFD_RELOC_LO16_GOTOFF 3783 -- : BFD_RELOC_HI16_GOTOFF 3784 -- : BFD_RELOC_HI16_S_GOTOFF 3785 -- : BFD_RELOC_8_GOTOFF 3786 -- : BFD_RELOC_64_PLT_PCREL 3787 -- : BFD_RELOC_32_PLT_PCREL 3788 -- : BFD_RELOC_24_PLT_PCREL 3789 -- : BFD_RELOC_16_PLT_PCREL 3790 -- : BFD_RELOC_8_PLT_PCREL 3791 -- : BFD_RELOC_64_PLTOFF 3792 -- : BFD_RELOC_32_PLTOFF 3793 -- : BFD_RELOC_16_PLTOFF 3794 -- : BFD_RELOC_LO16_PLTOFF 3795 -- : BFD_RELOC_HI16_PLTOFF 3796 -- : BFD_RELOC_HI16_S_PLTOFF 3797 -- : BFD_RELOC_8_PLTOFF 3798 For ELF. 3799 3800 -- : BFD_RELOC_SIZE32 3801 -- : BFD_RELOC_SIZE64 3802 Size relocations. 3803 3804 -- : BFD_RELOC_68K_GLOB_DAT 3805 -- : BFD_RELOC_68K_JMP_SLOT 3806 -- : BFD_RELOC_68K_RELATIVE 3807 -- : BFD_RELOC_68K_TLS_GD32 3808 -- : BFD_RELOC_68K_TLS_GD16 3809 -- : BFD_RELOC_68K_TLS_GD8 3810 -- : BFD_RELOC_68K_TLS_LDM32 3811 -- : BFD_RELOC_68K_TLS_LDM16 3812 -- : BFD_RELOC_68K_TLS_LDM8 3813 -- : BFD_RELOC_68K_TLS_LDO32 3814 -- : BFD_RELOC_68K_TLS_LDO16 3815 -- : BFD_RELOC_68K_TLS_LDO8 3816 -- : BFD_RELOC_68K_TLS_IE32 3817 -- : BFD_RELOC_68K_TLS_IE16 3818 -- : BFD_RELOC_68K_TLS_IE8 3819 -- : BFD_RELOC_68K_TLS_LE32 3820 -- : BFD_RELOC_68K_TLS_LE16 3821 -- : BFD_RELOC_68K_TLS_LE8 3822 Relocations used by 68K ELF. 3823 3824 -- : BFD_RELOC_VAX_GLOB_DAT 3825 -- : BFD_RELOC_VAX_GLOB_REF 3826 -- : BFD_RELOC_VAX_JMP_SLOT 3827 -- : BFD_RELOC_VAX_RELATIVE 3828 Relocations used by VAX ELF. 3829 3830 -- : BFD_RELOC_32_BASEREL 3831 -- : BFD_RELOC_16_BASEREL 3832 -- : BFD_RELOC_LO16_BASEREL 3833 -- : BFD_RELOC_HI16_BASEREL 3834 -- : BFD_RELOC_HI16_S_BASEREL 3835 -- : BFD_RELOC_8_BASEREL 3836 -- : BFD_RELOC_RVA 3837 Linkage-table relative. 3838 3839 -- : BFD_RELOC_8_FFnn 3840 Absolute 8-bit relocation, but used to form an address like 0xFFnn. 3841 3842 -- : BFD_RELOC_32_PCREL_S2 3843 -- : BFD_RELOC_16_PCREL_S2 3844 -- : BFD_RELOC_23_PCREL_S2 3845 These PC-relative relocations are stored as word displacements - 3846 i.e., byte displacements shifted right two bits. The 30-bit word 3847 displacement (<<32_PCREL_S2>> - 32 bits, shifted 2) is used on the 3848 SPARC. (SPARC tools generally refer to this as <<WDISP30>>.) The 3849 signed 16-bit displacement is used on the MIPS, and the 23-bit 3850 displacement is used on the Alpha. 3851 3852 -- : BFD_RELOC_HI22 3853 -- : BFD_RELOC_LO10 3854 High 22 bits and low 10 bits of 32-bit value, placed into lower 3855 bits of the target word. These are used on the SPARC. 3856 3857 -- : BFD_RELOC_GPREL16 3858 -- : BFD_RELOC_GPREL32 3859 For systems that allocate a Global Pointer register, these are 3860 displacements off that register. These relocation types are 3861 handled specially, because the value the register will have is 3862 decided relatively late. 3863 3864 -- : BFD_RELOC_NONE 3865 -- : BFD_RELOC_SPARC_WDISP22 3866 -- : BFD_RELOC_SPARC22 3867 -- : BFD_RELOC_SPARC13 3868 -- : BFD_RELOC_SPARC_GOT10 3869 -- : BFD_RELOC_SPARC_GOT13 3870 -- : BFD_RELOC_SPARC_GOT22 3871 -- : BFD_RELOC_SPARC_PC10 3872 -- : BFD_RELOC_SPARC_PC22 3873 -- : BFD_RELOC_SPARC_WPLT30 3874 -- : BFD_RELOC_SPARC_COPY 3875 -- : BFD_RELOC_SPARC_GLOB_DAT 3876 -- : BFD_RELOC_SPARC_JMP_SLOT 3877 -- : BFD_RELOC_SPARC_RELATIVE 3878 -- : BFD_RELOC_SPARC_UA16 3879 -- : BFD_RELOC_SPARC_UA32 3880 -- : BFD_RELOC_SPARC_UA64 3881 -- : BFD_RELOC_SPARC_GOTDATA_HIX22 3882 -- : BFD_RELOC_SPARC_GOTDATA_LOX10 3883 -- : BFD_RELOC_SPARC_GOTDATA_OP_HIX22 3884 -- : BFD_RELOC_SPARC_GOTDATA_OP_LOX10 3885 -- : BFD_RELOC_SPARC_GOTDATA_OP 3886 -- : BFD_RELOC_SPARC_JMP_IREL 3887 -- : BFD_RELOC_SPARC_IRELATIVE 3888 SPARC ELF relocations. There is probably some overlap with other 3889 relocation types already defined. 3890 3891 -- : BFD_RELOC_SPARC_BASE13 3892 -- : BFD_RELOC_SPARC_BASE22 3893 I think these are specific to SPARC a.out (e.g., Sun 4). 3894 3895 -- : BFD_RELOC_SPARC_64 3896 -- : BFD_RELOC_SPARC_10 3897 -- : BFD_RELOC_SPARC_11 3898 -- : BFD_RELOC_SPARC_OLO10 3899 -- : BFD_RELOC_SPARC_HH22 3900 -- : BFD_RELOC_SPARC_HM10 3901 -- : BFD_RELOC_SPARC_LM22 3902 -- : BFD_RELOC_SPARC_PC_HH22 3903 -- : BFD_RELOC_SPARC_PC_HM10 3904 -- : BFD_RELOC_SPARC_PC_LM22 3905 -- : BFD_RELOC_SPARC_WDISP16 3906 -- : BFD_RELOC_SPARC_WDISP19 3907 -- : BFD_RELOC_SPARC_7 3908 -- : BFD_RELOC_SPARC_6 3909 -- : BFD_RELOC_SPARC_5 3910 -- : BFD_RELOC_SPARC_DISP64 3911 -- : BFD_RELOC_SPARC_PLT32 3912 -- : BFD_RELOC_SPARC_PLT64 3913 -- : BFD_RELOC_SPARC_HIX22 3914 -- : BFD_RELOC_SPARC_LOX10 3915 -- : BFD_RELOC_SPARC_H44 3916 -- : BFD_RELOC_SPARC_M44 3917 -- : BFD_RELOC_SPARC_L44 3918 -- : BFD_RELOC_SPARC_REGISTER 3919 -- : BFD_RELOC_SPARC_H34 3920 -- : BFD_RELOC_SPARC_SIZE32 3921 -- : BFD_RELOC_SPARC_SIZE64 3922 -- : BFD_RELOC_SPARC_WDISP10 3923 SPARC64 relocations 3924 3925 -- : BFD_RELOC_SPARC_REV32 3926 SPARC little endian relocation 3927 3928 -- : BFD_RELOC_SPARC_TLS_GD_HI22 3929 -- : BFD_RELOC_SPARC_TLS_GD_LO10 3930 -- : BFD_RELOC_SPARC_TLS_GD_ADD 3931 -- : BFD_RELOC_SPARC_TLS_GD_CALL 3932 -- : BFD_RELOC_SPARC_TLS_LDM_HI22 3933 -- : BFD_RELOC_SPARC_TLS_LDM_LO10 3934 -- : BFD_RELOC_SPARC_TLS_LDM_ADD 3935 -- : BFD_RELOC_SPARC_TLS_LDM_CALL 3936 -- : BFD_RELOC_SPARC_TLS_LDO_HIX22 3937 -- : BFD_RELOC_SPARC_TLS_LDO_LOX10 3938 -- : BFD_RELOC_SPARC_TLS_LDO_ADD 3939 -- : BFD_RELOC_SPARC_TLS_IE_HI22 3940 -- : BFD_RELOC_SPARC_TLS_IE_LO10 3941 -- : BFD_RELOC_SPARC_TLS_IE_LD 3942 -- : BFD_RELOC_SPARC_TLS_IE_LDX 3943 -- : BFD_RELOC_SPARC_TLS_IE_ADD 3944 -- : BFD_RELOC_SPARC_TLS_LE_HIX22 3945 -- : BFD_RELOC_SPARC_TLS_LE_LOX10 3946 -- : BFD_RELOC_SPARC_TLS_DTPMOD32 3947 -- : BFD_RELOC_SPARC_TLS_DTPMOD64 3948 -- : BFD_RELOC_SPARC_TLS_DTPOFF32 3949 -- : BFD_RELOC_SPARC_TLS_DTPOFF64 3950 -- : BFD_RELOC_SPARC_TLS_TPOFF32 3951 -- : BFD_RELOC_SPARC_TLS_TPOFF64 3952 SPARC TLS relocations 3953 3954 -- : BFD_RELOC_SPU_IMM7 3955 -- : BFD_RELOC_SPU_IMM8 3956 -- : BFD_RELOC_SPU_IMM10 3957 -- : BFD_RELOC_SPU_IMM10W 3958 -- : BFD_RELOC_SPU_IMM16 3959 -- : BFD_RELOC_SPU_IMM16W 3960 -- : BFD_RELOC_SPU_IMM18 3961 -- : BFD_RELOC_SPU_PCREL9a 3962 -- : BFD_RELOC_SPU_PCREL9b 3963 -- : BFD_RELOC_SPU_PCREL16 3964 -- : BFD_RELOC_SPU_LO16 3965 -- : BFD_RELOC_SPU_HI16 3966 -- : BFD_RELOC_SPU_PPU32 3967 -- : BFD_RELOC_SPU_PPU64 3968 -- : BFD_RELOC_SPU_ADD_PIC 3969 SPU Relocations. 3970 3971 -- : BFD_RELOC_ALPHA_GPDISP_HI16 3972 Alpha ECOFF and ELF relocations. Some of these treat the symbol or 3973 "addend" in some special way. For GPDISP_HI16 ("gpdisp") 3974 relocations, the symbol is ignored when writing; when reading, it 3975 will be the absolute section symbol. The addend is the 3976 displacement in bytes of the "lda" instruction from the "ldah" 3977 instruction (which is at the address of this reloc). 3978 3979 -- : BFD_RELOC_ALPHA_GPDISP_LO16 3980 For GPDISP_LO16 ("ignore") relocations, the symbol is handled as 3981 with GPDISP_HI16 relocs. The addend is ignored when writing the 3982 relocations out, and is filled in with the file's GP value on 3983 reading, for convenience. 3984 3985 -- : BFD_RELOC_ALPHA_GPDISP 3986 The ELF GPDISP relocation is exactly the same as the GPDISP_HI16 3987 relocation except that there is no accompanying GPDISP_LO16 3988 relocation. 3989 3990 -- : BFD_RELOC_ALPHA_LITERAL 3991 -- : BFD_RELOC_ALPHA_ELF_LITERAL 3992 -- : BFD_RELOC_ALPHA_LITUSE 3993 The Alpha LITERAL/LITUSE relocs are produced by a symbol reference; 3994 the assembler turns it into a LDQ instruction to load the address 3995 of the symbol, and then fills in a register in the real 3996 instruction. 3997 3998 The LITERAL reloc, at the LDQ instruction, refers to the .lita 3999 section symbol. The addend is ignored when writing, but is filled 4000 in with the file's GP value on reading, for convenience, as with 4001 the GPDISP_LO16 reloc. 4002 4003 The ELF_LITERAL reloc is somewhere between 16_GOTOFF and 4004 GPDISP_LO16. It should refer to the symbol to be referenced, as 4005 with 16_GOTOFF, but it generates output not based on the position 4006 within the .got section, but relative to the GP value chosen for 4007 the file during the final link stage. 4008 4009 The LITUSE reloc, on the instruction using the loaded address, 4010 gives information to the linker that it might be able to use to 4011 optimize away some literal section references. The symbol is 4012 ignored (read as the absolute section symbol), and the "addend" 4013 indicates the type of instruction using the register: 1 - "memory" 4014 fmt insn 2 - byte-manipulation (byte offset reg) 3 - jsr (target 4015 of branch) 4016 4017 -- : BFD_RELOC_ALPHA_HINT 4018 The HINT relocation indicates a value that should be filled into 4019 the "hint" field of a jmp/jsr/ret instruction, for possible branch- 4020 prediction logic which may be provided on some processors. 4021 4022 -- : BFD_RELOC_ALPHA_LINKAGE 4023 The LINKAGE relocation outputs a linkage pair in the object file, 4024 which is filled by the linker. 4025 4026 -- : BFD_RELOC_ALPHA_CODEADDR 4027 The CODEADDR relocation outputs a STO_CA in the object file, which 4028 is filled by the linker. 4029 4030 -- : BFD_RELOC_ALPHA_GPREL_HI16 4031 -- : BFD_RELOC_ALPHA_GPREL_LO16 4032 The GPREL_HI/LO relocations together form a 32-bit offset from the 4033 GP register. 4034 4035 -- : BFD_RELOC_ALPHA_BRSGP 4036 Like BFD_RELOC_23_PCREL_S2, except that the source and target must 4037 share a common GP, and the target address is adjusted for 4038 STO_ALPHA_STD_GPLOAD. 4039 4040 -- : BFD_RELOC_ALPHA_NOP 4041 The NOP relocation outputs a NOP if the longword displacement 4042 between two procedure entry points is < 2^21. 4043 4044 -- : BFD_RELOC_ALPHA_BSR 4045 The BSR relocation outputs a BSR if the longword displacement 4046 between two procedure entry points is < 2^21. 4047 4048 -- : BFD_RELOC_ALPHA_LDA 4049 The LDA relocation outputs a LDA if the longword displacement 4050 between two procedure entry points is < 2^16. 4051 4052 -- : BFD_RELOC_ALPHA_BOH 4053 The BOH relocation outputs a BSR if the longword displacement 4054 between two procedure entry points is < 2^21, or else a hint. 4055 4056 -- : BFD_RELOC_ALPHA_TLSGD 4057 -- : BFD_RELOC_ALPHA_TLSLDM 4058 -- : BFD_RELOC_ALPHA_DTPMOD64 4059 -- : BFD_RELOC_ALPHA_GOTDTPREL16 4060 -- : BFD_RELOC_ALPHA_DTPREL64 4061 -- : BFD_RELOC_ALPHA_DTPREL_HI16 4062 -- : BFD_RELOC_ALPHA_DTPREL_LO16 4063 -- : BFD_RELOC_ALPHA_DTPREL16 4064 -- : BFD_RELOC_ALPHA_GOTTPREL16 4065 -- : BFD_RELOC_ALPHA_TPREL64 4066 -- : BFD_RELOC_ALPHA_TPREL_HI16 4067 -- : BFD_RELOC_ALPHA_TPREL_LO16 4068 -- : BFD_RELOC_ALPHA_TPREL16 4069 Alpha thread-local storage relocations. 4070 4071 -- : BFD_RELOC_MIPS_JMP 4072 -- : BFD_RELOC_MICROMIPS_JMP 4073 The MIPS jump instruction. 4074 4075 -- : BFD_RELOC_MIPS16_JMP 4076 The MIPS16 jump instruction. 4077 4078 -- : BFD_RELOC_MIPS16_GPREL 4079 MIPS16 GP relative reloc. 4080 4081 -- : BFD_RELOC_HI16 4082 High 16 bits of 32-bit value; simple reloc. 4083 4084 -- : BFD_RELOC_HI16_S 4085 High 16 bits of 32-bit value but the low 16 bits will be sign 4086 extended and added to form the final result. If the low 16 bits 4087 form a negative number, we need to add one to the high value to 4088 compensate for the borrow when the low bits are added. 4089 4090 -- : BFD_RELOC_LO16 4091 Low 16 bits. 4092 4093 -- : BFD_RELOC_HI16_PCREL 4094 High 16 bits of 32-bit pc-relative value 4095 4096 -- : BFD_RELOC_HI16_S_PCREL 4097 High 16 bits of 32-bit pc-relative value, adjusted 4098 4099 -- : BFD_RELOC_LO16_PCREL 4100 Low 16 bits of pc-relative value 4101 4102 -- : BFD_RELOC_MIPS16_GOT16 4103 -- : BFD_RELOC_MIPS16_CALL16 4104 Equivalent of BFD_RELOC_MIPS_*, but with the MIPS16 layout of 4105 16-bit immediate fields 4106 4107 -- : BFD_RELOC_MIPS16_HI16 4108 MIPS16 high 16 bits of 32-bit value. 4109 4110 -- : BFD_RELOC_MIPS16_HI16_S 4111 MIPS16 high 16 bits of 32-bit value but the low 16 bits will be 4112 sign extended and added to form the final result. If the low 16 4113 bits form a negative number, we need to add one to the high value 4114 to compensate for the borrow when the low bits are added. 4115 4116 -- : BFD_RELOC_MIPS16_LO16 4117 MIPS16 low 16 bits. 4118 4119 -- : BFD_RELOC_MIPS16_TLS_GD 4120 -- : BFD_RELOC_MIPS16_TLS_LDM 4121 -- : BFD_RELOC_MIPS16_TLS_DTPREL_HI16 4122 -- : BFD_RELOC_MIPS16_TLS_DTPREL_LO16 4123 -- : BFD_RELOC_MIPS16_TLS_GOTTPREL 4124 -- : BFD_RELOC_MIPS16_TLS_TPREL_HI16 4125 -- : BFD_RELOC_MIPS16_TLS_TPREL_LO16 4126 MIPS16 TLS relocations 4127 4128 -- : BFD_RELOC_MIPS_LITERAL 4129 -- : BFD_RELOC_MICROMIPS_LITERAL 4130 Relocation against a MIPS literal section. 4131 4132 -- : BFD_RELOC_MICROMIPS_7_PCREL_S1 4133 -- : BFD_RELOC_MICROMIPS_10_PCREL_S1 4134 -- : BFD_RELOC_MICROMIPS_16_PCREL_S1 4135 microMIPS PC-relative relocations. 4136 4137 -- : BFD_RELOC_MIPS16_16_PCREL_S1 4138 MIPS16 PC-relative relocation. 4139 4140 -- : BFD_RELOC_MIPS_21_PCREL_S2 4141 -- : BFD_RELOC_MIPS_26_PCREL_S2 4142 -- : BFD_RELOC_MIPS_18_PCREL_S3 4143 -- : BFD_RELOC_MIPS_19_PCREL_S2 4144 MIPS PC-relative relocations. 4145 4146 -- : BFD_RELOC_MICROMIPS_GPREL16 4147 -- : BFD_RELOC_MICROMIPS_HI16 4148 -- : BFD_RELOC_MICROMIPS_HI16_S 4149 -- : BFD_RELOC_MICROMIPS_LO16 4150 microMIPS versions of generic BFD relocs. 4151 4152 -- : BFD_RELOC_MIPS_GOT16 4153 -- : BFD_RELOC_MICROMIPS_GOT16 4154 -- : BFD_RELOC_MIPS_CALL16 4155 -- : BFD_RELOC_MICROMIPS_CALL16 4156 -- : BFD_RELOC_MIPS_GOT_HI16 4157 -- : BFD_RELOC_MICROMIPS_GOT_HI16 4158 -- : BFD_RELOC_MIPS_GOT_LO16 4159 -- : BFD_RELOC_MICROMIPS_GOT_LO16 4160 -- : BFD_RELOC_MIPS_CALL_HI16 4161 -- : BFD_RELOC_MICROMIPS_CALL_HI16 4162 -- : BFD_RELOC_MIPS_CALL_LO16 4163 -- : BFD_RELOC_MICROMIPS_CALL_LO16 4164 -- : BFD_RELOC_MIPS_SUB 4165 -- : BFD_RELOC_MICROMIPS_SUB 4166 -- : BFD_RELOC_MIPS_GOT_PAGE 4167 -- : BFD_RELOC_MICROMIPS_GOT_PAGE 4168 -- : BFD_RELOC_MIPS_GOT_OFST 4169 -- : BFD_RELOC_MICROMIPS_GOT_OFST 4170 -- : BFD_RELOC_MIPS_GOT_DISP 4171 -- : BFD_RELOC_MICROMIPS_GOT_DISP 4172 -- : BFD_RELOC_MIPS_SHIFT5 4173 -- : BFD_RELOC_MIPS_SHIFT6 4174 -- : BFD_RELOC_MIPS_INSERT_A 4175 -- : BFD_RELOC_MIPS_INSERT_B 4176 -- : BFD_RELOC_MIPS_DELETE 4177 -- : BFD_RELOC_MIPS_HIGHEST 4178 -- : BFD_RELOC_MICROMIPS_HIGHEST 4179 -- : BFD_RELOC_MIPS_HIGHER 4180 -- : BFD_RELOC_MICROMIPS_HIGHER 4181 -- : BFD_RELOC_MIPS_SCN_DISP 4182 -- : BFD_RELOC_MICROMIPS_SCN_DISP 4183 -- : BFD_RELOC_MIPS_16 4184 -- : BFD_RELOC_MIPS_RELGOT 4185 -- : BFD_RELOC_MIPS_JALR 4186 -- : BFD_RELOC_MICROMIPS_JALR 4187 -- : BFD_RELOC_MIPS_TLS_DTPMOD32 4188 -- : BFD_RELOC_MIPS_TLS_DTPREL32 4189 -- : BFD_RELOC_MIPS_TLS_DTPMOD64 4190 -- : BFD_RELOC_MIPS_TLS_DTPREL64 4191 -- : BFD_RELOC_MIPS_TLS_GD 4192 -- : BFD_RELOC_MICROMIPS_TLS_GD 4193 -- : BFD_RELOC_MIPS_TLS_LDM 4194 -- : BFD_RELOC_MICROMIPS_TLS_LDM 4195 -- : BFD_RELOC_MIPS_TLS_DTPREL_HI16 4196 -- : BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16 4197 -- : BFD_RELOC_MIPS_TLS_DTPREL_LO16 4198 -- : BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16 4199 -- : BFD_RELOC_MIPS_TLS_GOTTPREL 4200 -- : BFD_RELOC_MICROMIPS_TLS_GOTTPREL 4201 -- : BFD_RELOC_MIPS_TLS_TPREL32 4202 -- : BFD_RELOC_MIPS_TLS_TPREL64 4203 -- : BFD_RELOC_MIPS_TLS_TPREL_HI16 4204 -- : BFD_RELOC_MICROMIPS_TLS_TPREL_HI16 4205 -- : BFD_RELOC_MIPS_TLS_TPREL_LO16 4206 -- : BFD_RELOC_MICROMIPS_TLS_TPREL_LO16 4207 -- : BFD_RELOC_MIPS_EH 4208 MIPS ELF relocations. 4209 4210 -- : BFD_RELOC_MIPS_COPY 4211 -- : BFD_RELOC_MIPS_JUMP_SLOT 4212 MIPS ELF relocations (VxWorks and PLT extensions). 4213 4214 -- : BFD_RELOC_MOXIE_10_PCREL 4215 Moxie ELF relocations. 4216 4217 -- : BFD_RELOC_FT32_10 4218 -- : BFD_RELOC_FT32_20 4219 -- : BFD_RELOC_FT32_17 4220 -- : BFD_RELOC_FT32_18 4221 -- : BFD_RELOC_FT32_RELAX 4222 -- : BFD_RELOC_FT32_SC0 4223 -- : BFD_RELOC_FT32_SC1 4224 -- : BFD_RELOC_FT32_15 4225 -- : BFD_RELOC_FT32_DIFF32 4226 FT32 ELF relocations. 4227 4228 -- : BFD_RELOC_FRV_LABEL16 4229 -- : BFD_RELOC_FRV_LABEL24 4230 -- : BFD_RELOC_FRV_LO16 4231 -- : BFD_RELOC_FRV_HI16 4232 -- : BFD_RELOC_FRV_GPREL12 4233 -- : BFD_RELOC_FRV_GPRELU12 4234 -- : BFD_RELOC_FRV_GPREL32 4235 -- : BFD_RELOC_FRV_GPRELHI 4236 -- : BFD_RELOC_FRV_GPRELLO 4237 -- : BFD_RELOC_FRV_GOT12 4238 -- : BFD_RELOC_FRV_GOTHI 4239 -- : BFD_RELOC_FRV_GOTLO 4240 -- : BFD_RELOC_FRV_FUNCDESC 4241 -- : BFD_RELOC_FRV_FUNCDESC_GOT12 4242 -- : BFD_RELOC_FRV_FUNCDESC_GOTHI 4243 -- : BFD_RELOC_FRV_FUNCDESC_GOTLO 4244 -- : BFD_RELOC_FRV_FUNCDESC_VALUE 4245 -- : BFD_RELOC_FRV_FUNCDESC_GOTOFF12 4246 -- : BFD_RELOC_FRV_FUNCDESC_GOTOFFHI 4247 -- : BFD_RELOC_FRV_FUNCDESC_GOTOFFLO 4248 -- : BFD_RELOC_FRV_GOTOFF12 4249 -- : BFD_RELOC_FRV_GOTOFFHI 4250 -- : BFD_RELOC_FRV_GOTOFFLO 4251 -- : BFD_RELOC_FRV_GETTLSOFF 4252 -- : BFD_RELOC_FRV_TLSDESC_VALUE 4253 -- : BFD_RELOC_FRV_GOTTLSDESC12 4254 -- : BFD_RELOC_FRV_GOTTLSDESCHI 4255 -- : BFD_RELOC_FRV_GOTTLSDESCLO 4256 -- : BFD_RELOC_FRV_TLSMOFF12 4257 -- : BFD_RELOC_FRV_TLSMOFFHI 4258 -- : BFD_RELOC_FRV_TLSMOFFLO 4259 -- : BFD_RELOC_FRV_GOTTLSOFF12 4260 -- : BFD_RELOC_FRV_GOTTLSOFFHI 4261 -- : BFD_RELOC_FRV_GOTTLSOFFLO 4262 -- : BFD_RELOC_FRV_TLSOFF 4263 -- : BFD_RELOC_FRV_TLSDESC_RELAX 4264 -- : BFD_RELOC_FRV_GETTLSOFF_RELAX 4265 -- : BFD_RELOC_FRV_TLSOFF_RELAX 4266 -- : BFD_RELOC_FRV_TLSMOFF 4267 Fujitsu Frv Relocations. 4268 4269 -- : BFD_RELOC_MN10300_GOTOFF24 4270 This is a 24bit GOT-relative reloc for the mn10300. 4271 4272 -- : BFD_RELOC_MN10300_GOT32 4273 This is a 32bit GOT-relative reloc for the mn10300, offset by two 4274 bytes in the instruction. 4275 4276 -- : BFD_RELOC_MN10300_GOT24 4277 This is a 24bit GOT-relative reloc for the mn10300, offset by two 4278 bytes in the instruction. 4279 4280 -- : BFD_RELOC_MN10300_GOT16 4281 This is a 16bit GOT-relative reloc for the mn10300, offset by two 4282 bytes in the instruction. 4283 4284 -- : BFD_RELOC_MN10300_COPY 4285 Copy symbol at runtime. 4286 4287 -- : BFD_RELOC_MN10300_GLOB_DAT 4288 Create GOT entry. 4289 4290 -- : BFD_RELOC_MN10300_JMP_SLOT 4291 Create PLT entry. 4292 4293 -- : BFD_RELOC_MN10300_RELATIVE 4294 Adjust by program base. 4295 4296 -- : BFD_RELOC_MN10300_SYM_DIFF 4297 Together with another reloc targeted at the same location, allows 4298 for a value that is the difference of two symbols in the same 4299 section. 4300 4301 -- : BFD_RELOC_MN10300_ALIGN 4302 The addend of this reloc is an alignment power that must be 4303 honoured at the offset's location, regardless of linker relaxation. 4304 4305 -- : BFD_RELOC_MN10300_TLS_GD 4306 -- : BFD_RELOC_MN10300_TLS_LD 4307 -- : BFD_RELOC_MN10300_TLS_LDO 4308 -- : BFD_RELOC_MN10300_TLS_GOTIE 4309 -- : BFD_RELOC_MN10300_TLS_IE 4310 -- : BFD_RELOC_MN10300_TLS_LE 4311 -- : BFD_RELOC_MN10300_TLS_DTPMOD 4312 -- : BFD_RELOC_MN10300_TLS_DTPOFF 4313 -- : BFD_RELOC_MN10300_TLS_TPOFF 4314 Various TLS-related relocations. 4315 4316 -- : BFD_RELOC_MN10300_32_PCREL 4317 This is a 32bit pcrel reloc for the mn10300, offset by two bytes 4318 in the instruction. 4319 4320 -- : BFD_RELOC_MN10300_16_PCREL 4321 This is a 16bit pcrel reloc for the mn10300, offset by two bytes 4322 in the instruction. 4323 4324 -- : BFD_RELOC_386_GOT32 4325 -- : BFD_RELOC_386_PLT32 4326 -- : BFD_RELOC_386_COPY 4327 -- : BFD_RELOC_386_GLOB_DAT 4328 -- : BFD_RELOC_386_JUMP_SLOT 4329 -- : BFD_RELOC_386_RELATIVE 4330 -- : BFD_RELOC_386_GOTOFF 4331 -- : BFD_RELOC_386_GOTPC 4332 -- : BFD_RELOC_386_TLS_TPOFF 4333 -- : BFD_RELOC_386_TLS_IE 4334 -- : BFD_RELOC_386_TLS_GOTIE 4335 -- : BFD_RELOC_386_TLS_LE 4336 -- : BFD_RELOC_386_TLS_GD 4337 -- : BFD_RELOC_386_TLS_LDM 4338 -- : BFD_RELOC_386_TLS_LDO_32 4339 -- : BFD_RELOC_386_TLS_IE_32 4340 -- : BFD_RELOC_386_TLS_LE_32 4341 -- : BFD_RELOC_386_TLS_DTPMOD32 4342 -- : BFD_RELOC_386_TLS_DTPOFF32 4343 -- : BFD_RELOC_386_TLS_TPOFF32 4344 -- : BFD_RELOC_386_TLS_GOTDESC 4345 -- : BFD_RELOC_386_TLS_DESC_CALL 4346 -- : BFD_RELOC_386_TLS_DESC 4347 -- : BFD_RELOC_386_IRELATIVE 4348 -- : BFD_RELOC_386_GOT32X 4349 i386/elf relocations 4350 4351 -- : BFD_RELOC_X86_64_GOT32 4352 -- : BFD_RELOC_X86_64_PLT32 4353 -- : BFD_RELOC_X86_64_COPY 4354 -- : BFD_RELOC_X86_64_GLOB_DAT 4355 -- : BFD_RELOC_X86_64_JUMP_SLOT 4356 -- : BFD_RELOC_X86_64_RELATIVE 4357 -- : BFD_RELOC_X86_64_GOTPCREL 4358 -- : BFD_RELOC_X86_64_32S 4359 -- : BFD_RELOC_X86_64_DTPMOD64 4360 -- : BFD_RELOC_X86_64_DTPOFF64 4361 -- : BFD_RELOC_X86_64_TPOFF64 4362 -- : BFD_RELOC_X86_64_TLSGD 4363 -- : BFD_RELOC_X86_64_TLSLD 4364 -- : BFD_RELOC_X86_64_DTPOFF32 4365 -- : BFD_RELOC_X86_64_GOTTPOFF 4366 -- : BFD_RELOC_X86_64_TPOFF32 4367 -- : BFD_RELOC_X86_64_GOTOFF64 4368 -- : BFD_RELOC_X86_64_GOTPC32 4369 -- : BFD_RELOC_X86_64_GOT64 4370 -- : BFD_RELOC_X86_64_GOTPCREL64 4371 -- : BFD_RELOC_X86_64_GOTPC64 4372 -- : BFD_RELOC_X86_64_GOTPLT64 4373 -- : BFD_RELOC_X86_64_PLTOFF64 4374 -- : BFD_RELOC_X86_64_GOTPC32_TLSDESC 4375 -- : BFD_RELOC_X86_64_TLSDESC_CALL 4376 -- : BFD_RELOC_X86_64_TLSDESC 4377 -- : BFD_RELOC_X86_64_IRELATIVE 4378 -- : BFD_RELOC_X86_64_PC32_BND 4379 -- : BFD_RELOC_X86_64_PLT32_BND 4380 -- : BFD_RELOC_X86_64_GOTPCRELX 4381 -- : BFD_RELOC_X86_64_REX_GOTPCRELX 4382 x86-64/elf relocations 4383 4384 -- : BFD_RELOC_NS32K_IMM_8 4385 -- : BFD_RELOC_NS32K_IMM_16 4386 -- : BFD_RELOC_NS32K_IMM_32 4387 -- : BFD_RELOC_NS32K_IMM_8_PCREL 4388 -- : BFD_RELOC_NS32K_IMM_16_PCREL 4389 -- : BFD_RELOC_NS32K_IMM_32_PCREL 4390 -- : BFD_RELOC_NS32K_DISP_8 4391 -- : BFD_RELOC_NS32K_DISP_16 4392 -- : BFD_RELOC_NS32K_DISP_32 4393 -- : BFD_RELOC_NS32K_DISP_8_PCREL 4394 -- : BFD_RELOC_NS32K_DISP_16_PCREL 4395 -- : BFD_RELOC_NS32K_DISP_32_PCREL 4396 ns32k relocations 4397 4398 -- : BFD_RELOC_PDP11_DISP_8_PCREL 4399 -- : BFD_RELOC_PDP11_DISP_6_PCREL 4400 PDP11 relocations 4401 4402 -- : BFD_RELOC_PJ_CODE_HI16 4403 -- : BFD_RELOC_PJ_CODE_LO16 4404 -- : BFD_RELOC_PJ_CODE_DIR16 4405 -- : BFD_RELOC_PJ_CODE_DIR32 4406 -- : BFD_RELOC_PJ_CODE_REL16 4407 -- : BFD_RELOC_PJ_CODE_REL32 4408 Picojava relocs. Not all of these appear in object files. 4409 4410 -- : BFD_RELOC_PPC_B26 4411 -- : BFD_RELOC_PPC_BA26 4412 -- : BFD_RELOC_PPC_TOC16 4413 -- : BFD_RELOC_PPC_TOC16_LO 4414 -- : BFD_RELOC_PPC_TOC16_HI 4415 -- : BFD_RELOC_PPC_B16 4416 -- : BFD_RELOC_PPC_B16_BRTAKEN 4417 -- : BFD_RELOC_PPC_B16_BRNTAKEN 4418 -- : BFD_RELOC_PPC_BA16 4419 -- : BFD_RELOC_PPC_BA16_BRTAKEN 4420 -- : BFD_RELOC_PPC_BA16_BRNTAKEN 4421 -- : BFD_RELOC_PPC_COPY 4422 -- : BFD_RELOC_PPC_GLOB_DAT 4423 -- : BFD_RELOC_PPC_JMP_SLOT 4424 -- : BFD_RELOC_PPC_RELATIVE 4425 -- : BFD_RELOC_PPC_LOCAL24PC 4426 -- : BFD_RELOC_PPC_EMB_NADDR32 4427 -- : BFD_RELOC_PPC_EMB_NADDR16 4428 -- : BFD_RELOC_PPC_EMB_NADDR16_LO 4429 -- : BFD_RELOC_PPC_EMB_NADDR16_HI 4430 -- : BFD_RELOC_PPC_EMB_NADDR16_HA 4431 -- : BFD_RELOC_PPC_EMB_SDAI16 4432 -- : BFD_RELOC_PPC_EMB_SDA2I16 4433 -- : BFD_RELOC_PPC_EMB_SDA2REL 4434 -- : BFD_RELOC_PPC_EMB_SDA21 4435 -- : BFD_RELOC_PPC_EMB_MRKREF 4436 -- : BFD_RELOC_PPC_EMB_RELSEC16 4437 -- : BFD_RELOC_PPC_EMB_RELST_LO 4438 -- : BFD_RELOC_PPC_EMB_RELST_HI 4439 -- : BFD_RELOC_PPC_EMB_RELST_HA 4440 -- : BFD_RELOC_PPC_EMB_BIT_FLD 4441 -- : BFD_RELOC_PPC_EMB_RELSDA 4442 -- : BFD_RELOC_PPC_VLE_REL8 4443 -- : BFD_RELOC_PPC_VLE_REL15 4444 -- : BFD_RELOC_PPC_VLE_REL24 4445 -- : BFD_RELOC_PPC_VLE_LO16A 4446 -- : BFD_RELOC_PPC_VLE_LO16D 4447 -- : BFD_RELOC_PPC_VLE_HI16A 4448 -- : BFD_RELOC_PPC_VLE_HI16D 4449 -- : BFD_RELOC_PPC_VLE_HA16A 4450 -- : BFD_RELOC_PPC_VLE_HA16D 4451 -- : BFD_RELOC_PPC_VLE_SDA21 4452 -- : BFD_RELOC_PPC_VLE_SDA21_LO 4453 -- : BFD_RELOC_PPC_VLE_SDAREL_LO16A 4454 -- : BFD_RELOC_PPC_VLE_SDAREL_LO16D 4455 -- : BFD_RELOC_PPC_VLE_SDAREL_HI16A 4456 -- : BFD_RELOC_PPC_VLE_SDAREL_HI16D 4457 -- : BFD_RELOC_PPC_VLE_SDAREL_HA16A 4458 -- : BFD_RELOC_PPC_VLE_SDAREL_HA16D 4459 -- : BFD_RELOC_PPC_16DX_HA 4460 -- : BFD_RELOC_PPC_REL16DX_HA 4461 -- : BFD_RELOC_PPC_NEG 4462 -- : BFD_RELOC_PPC64_HIGHER 4463 -- : BFD_RELOC_PPC64_HIGHER_S 4464 -- : BFD_RELOC_PPC64_HIGHEST 4465 -- : BFD_RELOC_PPC64_HIGHEST_S 4466 -- : BFD_RELOC_PPC64_TOC16_LO 4467 -- : BFD_RELOC_PPC64_TOC16_HI 4468 -- : BFD_RELOC_PPC64_TOC16_HA 4469 -- : BFD_RELOC_PPC64_TOC 4470 -- : BFD_RELOC_PPC64_PLTGOT16 4471 -- : BFD_RELOC_PPC64_PLTGOT16_LO 4472 -- : BFD_RELOC_PPC64_PLTGOT16_HI 4473 -- : BFD_RELOC_PPC64_PLTGOT16_HA 4474 -- : BFD_RELOC_PPC64_ADDR16_DS 4475 -- : BFD_RELOC_PPC64_ADDR16_LO_DS 4476 -- : BFD_RELOC_PPC64_GOT16_DS 4477 -- : BFD_RELOC_PPC64_GOT16_LO_DS 4478 -- : BFD_RELOC_PPC64_PLT16_LO_DS 4479 -- : BFD_RELOC_PPC64_SECTOFF_DS 4480 -- : BFD_RELOC_PPC64_SECTOFF_LO_DS 4481 -- : BFD_RELOC_PPC64_TOC16_DS 4482 -- : BFD_RELOC_PPC64_TOC16_LO_DS 4483 -- : BFD_RELOC_PPC64_PLTGOT16_DS 4484 -- : BFD_RELOC_PPC64_PLTGOT16_LO_DS 4485 -- : BFD_RELOC_PPC64_ADDR16_HIGH 4486 -- : BFD_RELOC_PPC64_ADDR16_HIGHA 4487 -- : BFD_RELOC_PPC64_REL16_HIGH 4488 -- : BFD_RELOC_PPC64_REL16_HIGHA 4489 -- : BFD_RELOC_PPC64_REL16_HIGHER 4490 -- : BFD_RELOC_PPC64_REL16_HIGHERA 4491 -- : BFD_RELOC_PPC64_REL16_HIGHEST 4492 -- : BFD_RELOC_PPC64_REL16_HIGHESTA 4493 -- : BFD_RELOC_PPC64_ADDR64_LOCAL 4494 -- : BFD_RELOC_PPC64_ENTRY 4495 -- : BFD_RELOC_PPC64_REL24_NOTOC 4496 -- : BFD_RELOC_PPC64_REL24_P9NOTOC 4497 -- : BFD_RELOC_PPC64_D34 4498 -- : BFD_RELOC_PPC64_D34_LO 4499 -- : BFD_RELOC_PPC64_D34_HI30 4500 -- : BFD_RELOC_PPC64_D34_HA30 4501 -- : BFD_RELOC_PPC64_PCREL34 4502 -- : BFD_RELOC_PPC64_GOT_PCREL34 4503 -- : BFD_RELOC_PPC64_PLT_PCREL34 4504 -- : BFD_RELOC_PPC64_ADDR16_HIGHER34 4505 -- : BFD_RELOC_PPC64_ADDR16_HIGHERA34 4506 -- : BFD_RELOC_PPC64_ADDR16_HIGHEST34 4507 -- : BFD_RELOC_PPC64_ADDR16_HIGHESTA34 4508 -- : BFD_RELOC_PPC64_REL16_HIGHER34 4509 -- : BFD_RELOC_PPC64_REL16_HIGHERA34 4510 -- : BFD_RELOC_PPC64_REL16_HIGHEST34 4511 -- : BFD_RELOC_PPC64_REL16_HIGHESTA34 4512 -- : BFD_RELOC_PPC64_D28 4513 -- : BFD_RELOC_PPC64_PCREL28 4514 Power(rs6000) and PowerPC relocations. 4515 4516 -- : BFD_RELOC_PPC_TLS 4517 -- : BFD_RELOC_PPC_TLSGD 4518 -- : BFD_RELOC_PPC_TLSLD 4519 -- : BFD_RELOC_PPC_TLSLE 4520 -- : BFD_RELOC_PPC_TLSIE 4521 -- : BFD_RELOC_PPC_TLSM 4522 -- : BFD_RELOC_PPC_TLSML 4523 -- : BFD_RELOC_PPC_DTPMOD 4524 -- : BFD_RELOC_PPC_TPREL16 4525 -- : BFD_RELOC_PPC_TPREL16_LO 4526 -- : BFD_RELOC_PPC_TPREL16_HI 4527 -- : BFD_RELOC_PPC_TPREL16_HA 4528 -- : BFD_RELOC_PPC_TPREL 4529 -- : BFD_RELOC_PPC_DTPREL16 4530 -- : BFD_RELOC_PPC_DTPREL16_LO 4531 -- : BFD_RELOC_PPC_DTPREL16_HI 4532 -- : BFD_RELOC_PPC_DTPREL16_HA 4533 -- : BFD_RELOC_PPC_DTPREL 4534 -- : BFD_RELOC_PPC_GOT_TLSGD16 4535 -- : BFD_RELOC_PPC_GOT_TLSGD16_LO 4536 -- : BFD_RELOC_PPC_GOT_TLSGD16_HI 4537 -- : BFD_RELOC_PPC_GOT_TLSGD16_HA 4538 -- : BFD_RELOC_PPC_GOT_TLSLD16 4539 -- : BFD_RELOC_PPC_GOT_TLSLD16_LO 4540 -- : BFD_RELOC_PPC_GOT_TLSLD16_HI 4541 -- : BFD_RELOC_PPC_GOT_TLSLD16_HA 4542 -- : BFD_RELOC_PPC_GOT_TPREL16 4543 -- : BFD_RELOC_PPC_GOT_TPREL16_LO 4544 -- : BFD_RELOC_PPC_GOT_TPREL16_HI 4545 -- : BFD_RELOC_PPC_GOT_TPREL16_HA 4546 -- : BFD_RELOC_PPC_GOT_DTPREL16 4547 -- : BFD_RELOC_PPC_GOT_DTPREL16_LO 4548 -- : BFD_RELOC_PPC_GOT_DTPREL16_HI 4549 -- : BFD_RELOC_PPC_GOT_DTPREL16_HA 4550 -- : BFD_RELOC_PPC64_TLSGD 4551 -- : BFD_RELOC_PPC64_TLSLD 4552 -- : BFD_RELOC_PPC64_TLSLE 4553 -- : BFD_RELOC_PPC64_TLSIE 4554 -- : BFD_RELOC_PPC64_TLSM 4555 -- : BFD_RELOC_PPC64_TLSML 4556 -- : BFD_RELOC_PPC64_TPREL16_DS 4557 -- : BFD_RELOC_PPC64_TPREL16_LO_DS 4558 -- : BFD_RELOC_PPC64_TPREL16_HIGH 4559 -- : BFD_RELOC_PPC64_TPREL16_HIGHA 4560 -- : BFD_RELOC_PPC64_TPREL16_HIGHER 4561 -- : BFD_RELOC_PPC64_TPREL16_HIGHERA 4562 -- : BFD_RELOC_PPC64_TPREL16_HIGHEST 4563 -- : BFD_RELOC_PPC64_TPREL16_HIGHESTA 4564 -- : BFD_RELOC_PPC64_DTPREL16_DS 4565 -- : BFD_RELOC_PPC64_DTPREL16_LO_DS 4566 -- : BFD_RELOC_PPC64_DTPREL16_HIGH 4567 -- : BFD_RELOC_PPC64_DTPREL16_HIGHA 4568 -- : BFD_RELOC_PPC64_DTPREL16_HIGHER 4569 -- : BFD_RELOC_PPC64_DTPREL16_HIGHERA 4570 -- : BFD_RELOC_PPC64_DTPREL16_HIGHEST 4571 -- : BFD_RELOC_PPC64_DTPREL16_HIGHESTA 4572 -- : BFD_RELOC_PPC64_TPREL34 4573 -- : BFD_RELOC_PPC64_DTPREL34 4574 -- : BFD_RELOC_PPC64_GOT_TLSGD_PCREL34 4575 -- : BFD_RELOC_PPC64_GOT_TLSLD_PCREL34 4576 -- : BFD_RELOC_PPC64_GOT_TPREL_PCREL34 4577 -- : BFD_RELOC_PPC64_GOT_DTPREL_PCREL34 4578 -- : BFD_RELOC_PPC64_TLS_PCREL 4579 PowerPC and PowerPC64 thread-local storage relocations. 4580 4581 -- : BFD_RELOC_I370_D12 4582 IBM 370/390 relocations 4583 4584 -- : BFD_RELOC_CTOR 4585 The type of reloc used to build a constructor table - at the moment 4586 probably a 32 bit wide absolute relocation, but the target can 4587 choose. It generally does map to one of the other relocation 4588 types. 4589 4590 -- : BFD_RELOC_ARM_PCREL_BRANCH 4591 ARM 26 bit pc-relative branch. The lowest two bits must be zero 4592 and are not stored in the instruction. 4593 4594 -- : BFD_RELOC_ARM_PCREL_BLX 4595 ARM 26 bit pc-relative branch. The lowest bit must be zero and is 4596 not stored in the instruction. The 2nd lowest bit comes from a 1 4597 bit field in the instruction. 4598 4599 -- : BFD_RELOC_THUMB_PCREL_BLX 4600 Thumb 22 bit pc-relative branch. The lowest bit must be zero and 4601 is not stored in the instruction. The 2nd lowest bit comes from a 4602 1 bit field in the instruction. 4603 4604 -- : BFD_RELOC_ARM_PCREL_CALL 4605 ARM 26-bit pc-relative branch for an unconditional BL or BLX 4606 instruction. 4607 4608 -- : BFD_RELOC_ARM_PCREL_JUMP 4609 ARM 26-bit pc-relative branch for B or conditional BL instruction. 4610 4611 -- : BFD_RELOC_THUMB_PCREL_BRANCH5 4612 ARM 5-bit pc-relative branch for Branch Future instructions. 4613 4614 -- : BFD_RELOC_THUMB_PCREL_BFCSEL 4615 ARM 6-bit pc-relative branch for BFCSEL instruction. 4616 4617 -- : BFD_RELOC_ARM_THUMB_BF17 4618 ARM 17-bit pc-relative branch for Branch Future instructions. 4619 4620 -- : BFD_RELOC_ARM_THUMB_BF13 4621 ARM 13-bit pc-relative branch for BFCSEL instruction. 4622 4623 -- : BFD_RELOC_ARM_THUMB_BF19 4624 ARM 19-bit pc-relative branch for Branch Future Link instruction. 4625 4626 -- : BFD_RELOC_ARM_THUMB_LOOP12 4627 ARM 12-bit pc-relative branch for Low Overhead Loop instructions. 4628 4629 -- : BFD_RELOC_THUMB_PCREL_BRANCH7 4630 -- : BFD_RELOC_THUMB_PCREL_BRANCH9 4631 -- : BFD_RELOC_THUMB_PCREL_BRANCH12 4632 -- : BFD_RELOC_THUMB_PCREL_BRANCH20 4633 -- : BFD_RELOC_THUMB_PCREL_BRANCH23 4634 -- : BFD_RELOC_THUMB_PCREL_BRANCH25 4635 Thumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches. The 4636 lowest bit must be zero and is not stored in the instruction. 4637 Note that the corresponding ELF R_ARM_THM_JUMPnn constant has an 4638 "nn" one smaller in all cases. Note further that BRANCH23 4639 corresponds to R_ARM_THM_CALL. 4640 4641 -- : BFD_RELOC_ARM_OFFSET_IMM 4642 12-bit immediate offset, used in ARM-format ldr and str 4643 instructions. 4644 4645 -- : BFD_RELOC_ARM_THUMB_OFFSET 4646 5-bit immediate offset, used in Thumb-format ldr and str 4647 instructions. 4648 4649 -- : BFD_RELOC_ARM_TARGET1 4650 Pc-relative or absolute relocation depending on target. Used for 4651 entries in .init_array sections. 4652 4653 -- : BFD_RELOC_ARM_ROSEGREL32 4654 Read-only segment base relative address. 4655 4656 -- : BFD_RELOC_ARM_SBREL32 4657 Data segment base relative address. 4658 4659 -- : BFD_RELOC_ARM_TARGET2 4660 This reloc is used for references to RTTI data from exception 4661 handling tables. The actual definition depends on the target. It 4662 may be a pc-relative or some form of GOT-indirect relocation. 4663 4664 -- : BFD_RELOC_ARM_PREL31 4665 31-bit PC relative address. 4666 4667 -- : BFD_RELOC_ARM_MOVW 4668 -- : BFD_RELOC_ARM_MOVT 4669 -- : BFD_RELOC_ARM_MOVW_PCREL 4670 -- : BFD_RELOC_ARM_MOVT_PCREL 4671 -- : BFD_RELOC_ARM_THUMB_MOVW 4672 -- : BFD_RELOC_ARM_THUMB_MOVT 4673 -- : BFD_RELOC_ARM_THUMB_MOVW_PCREL 4674 -- : BFD_RELOC_ARM_THUMB_MOVT_PCREL 4675 Low and High halfword relocations for MOVW and MOVT instructions. 4676 4677 -- : BFD_RELOC_ARM_GOTFUNCDESC 4678 -- : BFD_RELOC_ARM_GOTOFFFUNCDESC 4679 -- : BFD_RELOC_ARM_FUNCDESC 4680 -- : BFD_RELOC_ARM_FUNCDESC_VALUE 4681 -- : BFD_RELOC_ARM_TLS_GD32_FDPIC 4682 -- : BFD_RELOC_ARM_TLS_LDM32_FDPIC 4683 -- : BFD_RELOC_ARM_TLS_IE32_FDPIC 4684 ARM FDPIC specific relocations. 4685 4686 -- : BFD_RELOC_ARM_JUMP_SLOT 4687 -- : BFD_RELOC_ARM_GLOB_DAT 4688 -- : BFD_RELOC_ARM_GOT32 4689 -- : BFD_RELOC_ARM_PLT32 4690 -- : BFD_RELOC_ARM_RELATIVE 4691 -- : BFD_RELOC_ARM_GOTOFF 4692 -- : BFD_RELOC_ARM_GOTPC 4693 -- : BFD_RELOC_ARM_GOT_PREL 4694 Relocations for setting up GOTs and PLTs for shared libraries. 4695 4696 -- : BFD_RELOC_ARM_TLS_GD32 4697 -- : BFD_RELOC_ARM_TLS_LDO32 4698 -- : BFD_RELOC_ARM_TLS_LDM32 4699 -- : BFD_RELOC_ARM_TLS_DTPOFF32 4700 -- : BFD_RELOC_ARM_TLS_DTPMOD32 4701 -- : BFD_RELOC_ARM_TLS_TPOFF32 4702 -- : BFD_RELOC_ARM_TLS_IE32 4703 -- : BFD_RELOC_ARM_TLS_LE32 4704 -- : BFD_RELOC_ARM_TLS_GOTDESC 4705 -- : BFD_RELOC_ARM_TLS_CALL 4706 -- : BFD_RELOC_ARM_THM_TLS_CALL 4707 -- : BFD_RELOC_ARM_TLS_DESCSEQ 4708 -- : BFD_RELOC_ARM_THM_TLS_DESCSEQ 4709 -- : BFD_RELOC_ARM_TLS_DESC 4710 ARM thread-local storage relocations. 4711 4712 -- : BFD_RELOC_ARM_ALU_PC_G0_NC 4713 -- : BFD_RELOC_ARM_ALU_PC_G0 4714 -- : BFD_RELOC_ARM_ALU_PC_G1_NC 4715 -- : BFD_RELOC_ARM_ALU_PC_G1 4716 -- : BFD_RELOC_ARM_ALU_PC_G2 4717 -- : BFD_RELOC_ARM_LDR_PC_G0 4718 -- : BFD_RELOC_ARM_LDR_PC_G1 4719 -- : BFD_RELOC_ARM_LDR_PC_G2 4720 -- : BFD_RELOC_ARM_LDRS_PC_G0 4721 -- : BFD_RELOC_ARM_LDRS_PC_G1 4722 -- : BFD_RELOC_ARM_LDRS_PC_G2 4723 -- : BFD_RELOC_ARM_LDC_PC_G0 4724 -- : BFD_RELOC_ARM_LDC_PC_G1 4725 -- : BFD_RELOC_ARM_LDC_PC_G2 4726 -- : BFD_RELOC_ARM_ALU_SB_G0_NC 4727 -- : BFD_RELOC_ARM_ALU_SB_G0 4728 -- : BFD_RELOC_ARM_ALU_SB_G1_NC 4729 -- : BFD_RELOC_ARM_ALU_SB_G1 4730 -- : BFD_RELOC_ARM_ALU_SB_G2 4731 -- : BFD_RELOC_ARM_LDR_SB_G0 4732 -- : BFD_RELOC_ARM_LDR_SB_G1 4733 -- : BFD_RELOC_ARM_LDR_SB_G2 4734 -- : BFD_RELOC_ARM_LDRS_SB_G0 4735 -- : BFD_RELOC_ARM_LDRS_SB_G1 4736 -- : BFD_RELOC_ARM_LDRS_SB_G2 4737 -- : BFD_RELOC_ARM_LDC_SB_G0 4738 -- : BFD_RELOC_ARM_LDC_SB_G1 4739 -- : BFD_RELOC_ARM_LDC_SB_G2 4740 ARM group relocations. 4741 4742 -- : BFD_RELOC_ARM_V4BX 4743 Annotation of BX instructions. 4744 4745 -- : BFD_RELOC_ARM_IRELATIVE 4746 ARM support for STT_GNU_IFUNC. 4747 4748 -- : BFD_RELOC_ARM_THUMB_ALU_ABS_G0_NC 4749 -- : BFD_RELOC_ARM_THUMB_ALU_ABS_G1_NC 4750 -- : BFD_RELOC_ARM_THUMB_ALU_ABS_G2_NC 4751 -- : BFD_RELOC_ARM_THUMB_ALU_ABS_G3_NC 4752 Thumb1 relocations to support execute-only code. 4753 4754 -- : BFD_RELOC_ARM_IMMEDIATE 4755 -- : BFD_RELOC_ARM_ADRL_IMMEDIATE 4756 -- : BFD_RELOC_ARM_T32_IMMEDIATE 4757 -- : BFD_RELOC_ARM_T32_ADD_IMM 4758 -- : BFD_RELOC_ARM_T32_IMM12 4759 -- : BFD_RELOC_ARM_T32_ADD_PC12 4760 -- : BFD_RELOC_ARM_SHIFT_IMM 4761 -- : BFD_RELOC_ARM_SMC 4762 -- : BFD_RELOC_ARM_HVC 4763 -- : BFD_RELOC_ARM_SWI 4764 -- : BFD_RELOC_ARM_MULTI 4765 -- : BFD_RELOC_ARM_CP_OFF_IMM 4766 -- : BFD_RELOC_ARM_CP_OFF_IMM_S2 4767 -- : BFD_RELOC_ARM_T32_CP_OFF_IMM 4768 -- : BFD_RELOC_ARM_T32_CP_OFF_IMM_S2 4769 -- : BFD_RELOC_ARM_T32_VLDR_VSTR_OFF_IMM 4770 -- : BFD_RELOC_ARM_ADR_IMM 4771 -- : BFD_RELOC_ARM_LDR_IMM 4772 -- : BFD_RELOC_ARM_LITERAL 4773 -- : BFD_RELOC_ARM_IN_POOL 4774 -- : BFD_RELOC_ARM_OFFSET_IMM8 4775 -- : BFD_RELOC_ARM_T32_OFFSET_U8 4776 -- : BFD_RELOC_ARM_T32_OFFSET_IMM 4777 -- : BFD_RELOC_ARM_HWLITERAL 4778 -- : BFD_RELOC_ARM_THUMB_ADD 4779 -- : BFD_RELOC_ARM_THUMB_IMM 4780 -- : BFD_RELOC_ARM_THUMB_SHIFT 4781 These relocs are only used within the ARM assembler. They are not 4782 (at present) written to any object files. 4783 4784 -- : BFD_RELOC_SH_PCDISP8BY2 4785 -- : BFD_RELOC_SH_PCDISP12BY2 4786 -- : BFD_RELOC_SH_IMM3 4787 -- : BFD_RELOC_SH_IMM3U 4788 -- : BFD_RELOC_SH_DISP12 4789 -- : BFD_RELOC_SH_DISP12BY2 4790 -- : BFD_RELOC_SH_DISP12BY4 4791 -- : BFD_RELOC_SH_DISP12BY8 4792 -- : BFD_RELOC_SH_DISP20 4793 -- : BFD_RELOC_SH_DISP20BY8 4794 -- : BFD_RELOC_SH_IMM4 4795 -- : BFD_RELOC_SH_IMM4BY2 4796 -- : BFD_RELOC_SH_IMM4BY4 4797 -- : BFD_RELOC_SH_IMM8 4798 -- : BFD_RELOC_SH_IMM8BY2 4799 -- : BFD_RELOC_SH_IMM8BY4 4800 -- : BFD_RELOC_SH_PCRELIMM8BY2 4801 -- : BFD_RELOC_SH_PCRELIMM8BY4 4802 -- : BFD_RELOC_SH_SWITCH16 4803 -- : BFD_RELOC_SH_SWITCH32 4804 -- : BFD_RELOC_SH_USES 4805 -- : BFD_RELOC_SH_COUNT 4806 -- : BFD_RELOC_SH_ALIGN 4807 -- : BFD_RELOC_SH_CODE 4808 -- : BFD_RELOC_SH_DATA 4809 -- : BFD_RELOC_SH_LABEL 4810 -- : BFD_RELOC_SH_LOOP_START 4811 -- : BFD_RELOC_SH_LOOP_END 4812 -- : BFD_RELOC_SH_COPY 4813 -- : BFD_RELOC_SH_GLOB_DAT 4814 -- : BFD_RELOC_SH_JMP_SLOT 4815 -- : BFD_RELOC_SH_RELATIVE 4816 -- : BFD_RELOC_SH_GOTPC 4817 -- : BFD_RELOC_SH_GOT_LOW16 4818 -- : BFD_RELOC_SH_GOT_MEDLOW16 4819 -- : BFD_RELOC_SH_GOT_MEDHI16 4820 -- : BFD_RELOC_SH_GOT_HI16 4821 -- : BFD_RELOC_SH_GOTPLT_LOW16 4822 -- : BFD_RELOC_SH_GOTPLT_MEDLOW16 4823 -- : BFD_RELOC_SH_GOTPLT_MEDHI16 4824 -- : BFD_RELOC_SH_GOTPLT_HI16 4825 -- : BFD_RELOC_SH_PLT_LOW16 4826 -- : BFD_RELOC_SH_PLT_MEDLOW16 4827 -- : BFD_RELOC_SH_PLT_MEDHI16 4828 -- : BFD_RELOC_SH_PLT_HI16 4829 -- : BFD_RELOC_SH_GOTOFF_LOW16 4830 -- : BFD_RELOC_SH_GOTOFF_MEDLOW16 4831 -- : BFD_RELOC_SH_GOTOFF_MEDHI16 4832 -- : BFD_RELOC_SH_GOTOFF_HI16 4833 -- : BFD_RELOC_SH_GOTPC_LOW16 4834 -- : BFD_RELOC_SH_GOTPC_MEDLOW16 4835 -- : BFD_RELOC_SH_GOTPC_MEDHI16 4836 -- : BFD_RELOC_SH_GOTPC_HI16 4837 -- : BFD_RELOC_SH_COPY64 4838 -- : BFD_RELOC_SH_GLOB_DAT64 4839 -- : BFD_RELOC_SH_JMP_SLOT64 4840 -- : BFD_RELOC_SH_RELATIVE64 4841 -- : BFD_RELOC_SH_GOT10BY4 4842 -- : BFD_RELOC_SH_GOT10BY8 4843 -- : BFD_RELOC_SH_GOTPLT10BY4 4844 -- : BFD_RELOC_SH_GOTPLT10BY8 4845 -- : BFD_RELOC_SH_GOTPLT32 4846 -- : BFD_RELOC_SH_SHMEDIA_CODE 4847 -- : BFD_RELOC_SH_IMMU5 4848 -- : BFD_RELOC_SH_IMMS6 4849 -- : BFD_RELOC_SH_IMMS6BY32 4850 -- : BFD_RELOC_SH_IMMU6 4851 -- : BFD_RELOC_SH_IMMS10 4852 -- : BFD_RELOC_SH_IMMS10BY2 4853 -- : BFD_RELOC_SH_IMMS10BY4 4854 -- : BFD_RELOC_SH_IMMS10BY8 4855 -- : BFD_RELOC_SH_IMMS16 4856 -- : BFD_RELOC_SH_IMMU16 4857 -- : BFD_RELOC_SH_IMM_LOW16 4858 -- : BFD_RELOC_SH_IMM_LOW16_PCREL 4859 -- : BFD_RELOC_SH_IMM_MEDLOW16 4860 -- : BFD_RELOC_SH_IMM_MEDLOW16_PCREL 4861 -- : BFD_RELOC_SH_IMM_MEDHI16 4862 -- : BFD_RELOC_SH_IMM_MEDHI16_PCREL 4863 -- : BFD_RELOC_SH_IMM_HI16 4864 -- : BFD_RELOC_SH_IMM_HI16_PCREL 4865 -- : BFD_RELOC_SH_PT_16 4866 -- : BFD_RELOC_SH_TLS_GD_32 4867 -- : BFD_RELOC_SH_TLS_LD_32 4868 -- : BFD_RELOC_SH_TLS_LDO_32 4869 -- : BFD_RELOC_SH_TLS_IE_32 4870 -- : BFD_RELOC_SH_TLS_LE_32 4871 -- : BFD_RELOC_SH_TLS_DTPMOD32 4872 -- : BFD_RELOC_SH_TLS_DTPOFF32 4873 -- : BFD_RELOC_SH_TLS_TPOFF32 4874 -- : BFD_RELOC_SH_GOT20 4875 -- : BFD_RELOC_SH_GOTOFF20 4876 -- : BFD_RELOC_SH_GOTFUNCDESC 4877 -- : BFD_RELOC_SH_GOTFUNCDESC20 4878 -- : BFD_RELOC_SH_GOTOFFFUNCDESC 4879 -- : BFD_RELOC_SH_GOTOFFFUNCDESC20 4880 -- : BFD_RELOC_SH_FUNCDESC 4881 Renesas / SuperH SH relocs. Not all of these appear in object 4882 files. 4883 4884 -- : BFD_RELOC_ARC_NONE 4885 -- : BFD_RELOC_ARC_8 4886 -- : BFD_RELOC_ARC_16 4887 -- : BFD_RELOC_ARC_24 4888 -- : BFD_RELOC_ARC_32 4889 -- : BFD_RELOC_ARC_N8 4890 -- : BFD_RELOC_ARC_N16 4891 -- : BFD_RELOC_ARC_N24 4892 -- : BFD_RELOC_ARC_N32 4893 -- : BFD_RELOC_ARC_SDA 4894 -- : BFD_RELOC_ARC_SECTOFF 4895 -- : BFD_RELOC_ARC_S21H_PCREL 4896 -- : BFD_RELOC_ARC_S21W_PCREL 4897 -- : BFD_RELOC_ARC_S25H_PCREL 4898 -- : BFD_RELOC_ARC_S25W_PCREL 4899 -- : BFD_RELOC_ARC_SDA32 4900 -- : BFD_RELOC_ARC_SDA_LDST 4901 -- : BFD_RELOC_ARC_SDA_LDST1 4902 -- : BFD_RELOC_ARC_SDA_LDST2 4903 -- : BFD_RELOC_ARC_SDA16_LD 4904 -- : BFD_RELOC_ARC_SDA16_LD1 4905 -- : BFD_RELOC_ARC_SDA16_LD2 4906 -- : BFD_RELOC_ARC_S13_PCREL 4907 -- : BFD_RELOC_ARC_W 4908 -- : BFD_RELOC_ARC_32_ME 4909 -- : BFD_RELOC_ARC_32_ME_S 4910 -- : BFD_RELOC_ARC_N32_ME 4911 -- : BFD_RELOC_ARC_SECTOFF_ME 4912 -- : BFD_RELOC_ARC_SDA32_ME 4913 -- : BFD_RELOC_ARC_W_ME 4914 -- : BFD_RELOC_AC_SECTOFF_U8 4915 -- : BFD_RELOC_AC_SECTOFF_U8_1 4916 -- : BFD_RELOC_AC_SECTOFF_U8_2 4917 -- : BFD_RELOC_AC_SECTOFF_S9 4918 -- : BFD_RELOC_AC_SECTOFF_S9_1 4919 -- : BFD_RELOC_AC_SECTOFF_S9_2 4920 -- : BFD_RELOC_ARC_SECTOFF_ME_1 4921 -- : BFD_RELOC_ARC_SECTOFF_ME_2 4922 -- : BFD_RELOC_ARC_SECTOFF_1 4923 -- : BFD_RELOC_ARC_SECTOFF_2 4924 -- : BFD_RELOC_ARC_SDA_12 4925 -- : BFD_RELOC_ARC_SDA16_ST2 4926 -- : BFD_RELOC_ARC_32_PCREL 4927 -- : BFD_RELOC_ARC_PC32 4928 -- : BFD_RELOC_ARC_GOT32 4929 -- : BFD_RELOC_ARC_GOTPC32 4930 -- : BFD_RELOC_ARC_PLT32 4931 -- : BFD_RELOC_ARC_COPY 4932 -- : BFD_RELOC_ARC_GLOB_DAT 4933 -- : BFD_RELOC_ARC_JMP_SLOT 4934 -- : BFD_RELOC_ARC_RELATIVE 4935 -- : BFD_RELOC_ARC_GOTOFF 4936 -- : BFD_RELOC_ARC_GOTPC 4937 -- : BFD_RELOC_ARC_S21W_PCREL_PLT 4938 -- : BFD_RELOC_ARC_S25H_PCREL_PLT 4939 -- : BFD_RELOC_ARC_TLS_DTPMOD 4940 -- : BFD_RELOC_ARC_TLS_TPOFF 4941 -- : BFD_RELOC_ARC_TLS_GD_GOT 4942 -- : BFD_RELOC_ARC_TLS_GD_LD 4943 -- : BFD_RELOC_ARC_TLS_GD_CALL 4944 -- : BFD_RELOC_ARC_TLS_IE_GOT 4945 -- : BFD_RELOC_ARC_TLS_DTPOFF 4946 -- : BFD_RELOC_ARC_TLS_DTPOFF_S9 4947 -- : BFD_RELOC_ARC_TLS_LE_S9 4948 -- : BFD_RELOC_ARC_TLS_LE_32 4949 -- : BFD_RELOC_ARC_S25W_PCREL_PLT 4950 -- : BFD_RELOC_ARC_S21H_PCREL_PLT 4951 -- : BFD_RELOC_ARC_NPS_CMEM16 4952 -- : BFD_RELOC_ARC_JLI_SECTOFF 4953 ARC relocs. 4954 4955 -- : BFD_RELOC_BFIN_16_IMM 4956 ADI Blackfin 16 bit immediate absolute reloc. 4957 4958 -- : BFD_RELOC_BFIN_16_HIGH 4959 ADI Blackfin 16 bit immediate absolute reloc higher 16 bits. 4960 4961 -- : BFD_RELOC_BFIN_4_PCREL 4962 ADI Blackfin 'a' part of LSETUP. 4963 4964 -- : BFD_RELOC_BFIN_5_PCREL 4965 ADI Blackfin. 4966 4967 -- : BFD_RELOC_BFIN_16_LOW 4968 ADI Blackfin 16 bit immediate absolute reloc lower 16 bits. 4969 4970 -- : BFD_RELOC_BFIN_10_PCREL 4971 ADI Blackfin. 4972 4973 -- : BFD_RELOC_BFIN_11_PCREL 4974 ADI Blackfin 'b' part of LSETUP. 4975 4976 -- : BFD_RELOC_BFIN_12_PCREL_JUMP 4977 ADI Blackfin. 4978 4979 -- : BFD_RELOC_BFIN_12_PCREL_JUMP_S 4980 ADI Blackfin Short jump, pcrel. 4981 4982 -- : BFD_RELOC_BFIN_24_PCREL_CALL_X 4983 ADI Blackfin Call.x not implemented. 4984 4985 -- : BFD_RELOC_BFIN_24_PCREL_JUMP_L 4986 ADI Blackfin Long Jump pcrel. 4987 4988 -- : BFD_RELOC_BFIN_GOT17M4 4989 -- : BFD_RELOC_BFIN_GOTHI 4990 -- : BFD_RELOC_BFIN_GOTLO 4991 -- : BFD_RELOC_BFIN_FUNCDESC 4992 -- : BFD_RELOC_BFIN_FUNCDESC_GOT17M4 4993 -- : BFD_RELOC_BFIN_FUNCDESC_GOTHI 4994 -- : BFD_RELOC_BFIN_FUNCDESC_GOTLO 4995 -- : BFD_RELOC_BFIN_FUNCDESC_VALUE 4996 -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4 4997 -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI 4998 -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO 4999 -- : BFD_RELOC_BFIN_GOTOFF17M4 5000 -- : BFD_RELOC_BFIN_GOTOFFHI 5001 -- : BFD_RELOC_BFIN_GOTOFFLO 5002 ADI Blackfin FD-PIC relocations. 5003 5004 -- : BFD_RELOC_BFIN_GOT 5005 ADI Blackfin GOT relocation. 5006 5007 -- : BFD_RELOC_BFIN_PLTPC 5008 ADI Blackfin PLTPC relocation. 5009 5010 -- : BFD_ARELOC_BFIN_PUSH 5011 ADI Blackfin arithmetic relocation. 5012 5013 -- : BFD_ARELOC_BFIN_CONST 5014 ADI Blackfin arithmetic relocation. 5015 5016 -- : BFD_ARELOC_BFIN_ADD 5017 ADI Blackfin arithmetic relocation. 5018 5019 -- : BFD_ARELOC_BFIN_SUB 5020 ADI Blackfin arithmetic relocation. 5021 5022 -- : BFD_ARELOC_BFIN_MULT 5023 ADI Blackfin arithmetic relocation. 5024 5025 -- : BFD_ARELOC_BFIN_DIV 5026 ADI Blackfin arithmetic relocation. 5027 5028 -- : BFD_ARELOC_BFIN_MOD 5029 ADI Blackfin arithmetic relocation. 5030 5031 -- : BFD_ARELOC_BFIN_LSHIFT 5032 ADI Blackfin arithmetic relocation. 5033 5034 -- : BFD_ARELOC_BFIN_RSHIFT 5035 ADI Blackfin arithmetic relocation. 5036 5037 -- : BFD_ARELOC_BFIN_AND 5038 ADI Blackfin arithmetic relocation. 5039 5040 -- : BFD_ARELOC_BFIN_OR 5041 ADI Blackfin arithmetic relocation. 5042 5043 -- : BFD_ARELOC_BFIN_XOR 5044 ADI Blackfin arithmetic relocation. 5045 5046 -- : BFD_ARELOC_BFIN_LAND 5047 ADI Blackfin arithmetic relocation. 5048 5049 -- : BFD_ARELOC_BFIN_LOR 5050 ADI Blackfin arithmetic relocation. 5051 5052 -- : BFD_ARELOC_BFIN_LEN 5053 ADI Blackfin arithmetic relocation. 5054 5055 -- : BFD_ARELOC_BFIN_NEG 5056 ADI Blackfin arithmetic relocation. 5057 5058 -- : BFD_ARELOC_BFIN_COMP 5059 ADI Blackfin arithmetic relocation. 5060 5061 -- : BFD_ARELOC_BFIN_PAGE 5062 ADI Blackfin arithmetic relocation. 5063 5064 -- : BFD_ARELOC_BFIN_HWPAGE 5065 ADI Blackfin arithmetic relocation. 5066 5067 -- : BFD_ARELOC_BFIN_ADDR 5068 ADI Blackfin arithmetic relocation. 5069 5070 -- : BFD_RELOC_D10V_10_PCREL_R 5071 Mitsubishi D10V relocs. This is a 10-bit reloc with the right 2 5072 bits assumed to be 0. 5073 5074 -- : BFD_RELOC_D10V_10_PCREL_L 5075 Mitsubishi D10V relocs. This is a 10-bit reloc with the right 2 5076 bits assumed to be 0. This is the same as the previous reloc 5077 except it is in the left container, i.e., shifted left 15 bits. 5078 5079 -- : BFD_RELOC_D10V_18 5080 This is an 18-bit reloc with the right 2 bits assumed to be 0. 5081 5082 -- : BFD_RELOC_D10V_18_PCREL 5083 This is an 18-bit reloc with the right 2 bits assumed to be 0. 5084 5085 -- : BFD_RELOC_D30V_6 5086 Mitsubishi D30V relocs. This is a 6-bit absolute reloc. 5087 5088 -- : BFD_RELOC_D30V_9_PCREL 5089 This is a 6-bit pc-relative reloc with the right 3 bits assumed to 5090 be 0. 5091 5092 -- : BFD_RELOC_D30V_9_PCREL_R 5093 This is a 6-bit pc-relative reloc with the right 3 bits assumed to 5094 be 0. Same as the previous reloc but on the right side of the 5095 container. 5096 5097 -- : BFD_RELOC_D30V_15 5098 This is a 12-bit absolute reloc with the right 3 bitsassumed to be 5099 0. 5100 5101 -- : BFD_RELOC_D30V_15_PCREL 5102 This is a 12-bit pc-relative reloc with the right 3 bits assumed 5103 to be 0. 5104 5105 -- : BFD_RELOC_D30V_15_PCREL_R 5106 This is a 12-bit pc-relative reloc with the right 3 bits assumed 5107 to be 0. Same as the previous reloc but on the right side of the 5108 container. 5109 5110 -- : BFD_RELOC_D30V_21 5111 This is an 18-bit absolute reloc with the right 3 bits assumed to 5112 be 0. 5113 5114 -- : BFD_RELOC_D30V_21_PCREL 5115 This is an 18-bit pc-relative reloc with the right 3 bits assumed 5116 to be 0. 5117 5118 -- : BFD_RELOC_D30V_21_PCREL_R 5119 This is an 18-bit pc-relative reloc with the right 3 bits assumed 5120 to be 0. Same as the previous reloc but on the right side of the 5121 container. 5122 5123 -- : BFD_RELOC_D30V_32 5124 This is a 32-bit absolute reloc. 5125 5126 -- : BFD_RELOC_D30V_32_PCREL 5127 This is a 32-bit pc-relative reloc. 5128 5129 -- : BFD_RELOC_DLX_HI16_S 5130 DLX relocs 5131 5132 -- : BFD_RELOC_DLX_LO16 5133 DLX relocs 5134 5135 -- : BFD_RELOC_DLX_JMP26 5136 DLX relocs 5137 5138 -- : BFD_RELOC_M32C_HI8 5139 -- : BFD_RELOC_M32C_RL_JUMP 5140 -- : BFD_RELOC_M32C_RL_1ADDR 5141 -- : BFD_RELOC_M32C_RL_2ADDR 5142 Renesas M16C/M32C Relocations. 5143 5144 -- : BFD_RELOC_M32R_24 5145 Renesas M32R (formerly Mitsubishi M32R) relocs. This is a 24 bit 5146 absolute address. 5147 5148 -- : BFD_RELOC_M32R_10_PCREL 5149 This is a 10-bit pc-relative reloc with the right 2 bits assumed 5150 to be 0. 5151 5152 -- : BFD_RELOC_M32R_18_PCREL 5153 This is an 18-bit reloc with the right 2 bits assumed to be 0. 5154 5155 -- : BFD_RELOC_M32R_26_PCREL 5156 This is a 26-bit reloc with the right 2 bits assumed to be 0. 5157 5158 -- : BFD_RELOC_M32R_HI16_ULO 5159 This is a 16-bit reloc containing the high 16 bits of an address 5160 used when the lower 16 bits are treated as unsigned. 5161 5162 -- : BFD_RELOC_M32R_HI16_SLO 5163 This is a 16-bit reloc containing the high 16 bits of an address 5164 used when the lower 16 bits are treated as signed. 5165 5166 -- : BFD_RELOC_M32R_LO16 5167 This is a 16-bit reloc containing the lower 16 bits of an address. 5168 5169 -- : BFD_RELOC_M32R_SDA16 5170 This is a 16-bit reloc containing the small data area offset for 5171 use in add3, load, and store instructions. 5172 5173 -- : BFD_RELOC_M32R_GOT24 5174 -- : BFD_RELOC_M32R_26_PLTREL 5175 -- : BFD_RELOC_M32R_COPY 5176 -- : BFD_RELOC_M32R_GLOB_DAT 5177 -- : BFD_RELOC_M32R_JMP_SLOT 5178 -- : BFD_RELOC_M32R_RELATIVE 5179 -- : BFD_RELOC_M32R_GOTOFF 5180 -- : BFD_RELOC_M32R_GOTOFF_HI_ULO 5181 -- : BFD_RELOC_M32R_GOTOFF_HI_SLO 5182 -- : BFD_RELOC_M32R_GOTOFF_LO 5183 -- : BFD_RELOC_M32R_GOTPC24 5184 -- : BFD_RELOC_M32R_GOT16_HI_ULO 5185 -- : BFD_RELOC_M32R_GOT16_HI_SLO 5186 -- : BFD_RELOC_M32R_GOT16_LO 5187 -- : BFD_RELOC_M32R_GOTPC_HI_ULO 5188 -- : BFD_RELOC_M32R_GOTPC_HI_SLO 5189 -- : BFD_RELOC_M32R_GOTPC_LO 5190 For PIC. 5191 5192 -- : BFD_RELOC_NDS32_20 5193 NDS32 relocs. This is a 20 bit absolute address. 5194 5195 -- : BFD_RELOC_NDS32_9_PCREL 5196 This is a 9-bit pc-relative reloc with the right 1 bit assumed to 5197 be 0. 5198 5199 -- : BFD_RELOC_NDS32_WORD_9_PCREL 5200 This is a 9-bit pc-relative reloc with the right 1 bit assumed to 5201 be 0. 5202 5203 -- : BFD_RELOC_NDS32_15_PCREL 5204 This is an 15-bit reloc with the right 1 bit assumed to be 0. 5205 5206 -- : BFD_RELOC_NDS32_17_PCREL 5207 This is an 17-bit reloc with the right 1 bit assumed to be 0. 5208 5209 -- : BFD_RELOC_NDS32_25_PCREL 5210 This is a 25-bit reloc with the right 1 bit assumed to be 0. 5211 5212 -- : BFD_RELOC_NDS32_HI20 5213 This is a 20-bit reloc containing the high 20 bits of an address 5214 used with the lower 12 bits 5215 5216 -- : BFD_RELOC_NDS32_LO12S3 5217 This is a 12-bit reloc containing the lower 12 bits of an address 5218 then shift right by 3. This is used with ldi,sdi... 5219 5220 -- : BFD_RELOC_NDS32_LO12S2 5221 This is a 12-bit reloc containing the lower 12 bits of an address 5222 then shift left by 2. This is used with lwi,swi... 5223 5224 -- : BFD_RELOC_NDS32_LO12S1 5225 This is a 12-bit reloc containing the lower 12 bits of an address 5226 then shift left by 1. This is used with lhi,shi... 5227 5228 -- : BFD_RELOC_NDS32_LO12S0 5229 This is a 12-bit reloc containing the lower 12 bits of an address 5230 then shift left by 0. This is used with lbisbi... 5231 5232 -- : BFD_RELOC_NDS32_LO12S0_ORI 5233 This is a 12-bit reloc containing the lower 12 bits of an address 5234 then shift left by 0. This is only used with branch relaxations 5235 5236 -- : BFD_RELOC_NDS32_SDA15S3 5237 This is a 15-bit reloc containing the small data area 18-bit 5238 signed offset and shift left by 3 for use in ldi, sdi... 5239 5240 -- : BFD_RELOC_NDS32_SDA15S2 5241 This is a 15-bit reloc containing the small data area 17-bit 5242 signed offset and shift left by 2 for use in lwi, swi... 5243 5244 -- : BFD_RELOC_NDS32_SDA15S1 5245 This is a 15-bit reloc containing the small data area 16-bit 5246 signed offset and shift left by 1 for use in lhi, shi... 5247 5248 -- : BFD_RELOC_NDS32_SDA15S0 5249 This is a 15-bit reloc containing the small data area 15-bit 5250 signed offset and shift left by 0 for use in lbi, sbi... 5251 5252 -- : BFD_RELOC_NDS32_SDA16S3 5253 This is a 16-bit reloc containing the small data area 16-bit 5254 signed offset and shift left by 3 5255 5256 -- : BFD_RELOC_NDS32_SDA17S2 5257 This is a 17-bit reloc containing the small data area 17-bit 5258 signed offset and shift left by 2 for use in lwi.gp, swi.gp... 5259 5260 -- : BFD_RELOC_NDS32_SDA18S1 5261 This is a 18-bit reloc containing the small data area 18-bit 5262 signed offset and shift left by 1 for use in lhi.gp, shi.gp... 5263 5264 -- : BFD_RELOC_NDS32_SDA19S0 5265 This is a 19-bit reloc containing the small data area 19-bit 5266 signed offset and shift left by 0 for use in lbi.gp, sbi.gp... 5267 5268 -- : BFD_RELOC_NDS32_GOT20 5269 -- : BFD_RELOC_NDS32_9_PLTREL 5270 -- : BFD_RELOC_NDS32_25_PLTREL 5271 -- : BFD_RELOC_NDS32_COPY 5272 -- : BFD_RELOC_NDS32_GLOB_DAT 5273 -- : BFD_RELOC_NDS32_JMP_SLOT 5274 -- : BFD_RELOC_NDS32_RELATIVE 5275 -- : BFD_RELOC_NDS32_GOTOFF 5276 -- : BFD_RELOC_NDS32_GOTOFF_HI20 5277 -- : BFD_RELOC_NDS32_GOTOFF_LO12 5278 -- : BFD_RELOC_NDS32_GOTPC20 5279 -- : BFD_RELOC_NDS32_GOT_HI20 5280 -- : BFD_RELOC_NDS32_GOT_LO12 5281 -- : BFD_RELOC_NDS32_GOTPC_HI20 5282 -- : BFD_RELOC_NDS32_GOTPC_LO12 5283 for PIC 5284 5285 -- : BFD_RELOC_NDS32_INSN16 5286 -- : BFD_RELOC_NDS32_LABEL 5287 -- : BFD_RELOC_NDS32_LONGCALL1 5288 -- : BFD_RELOC_NDS32_LONGCALL2 5289 -- : BFD_RELOC_NDS32_LONGCALL3 5290 -- : BFD_RELOC_NDS32_LONGJUMP1 5291 -- : BFD_RELOC_NDS32_LONGJUMP2 5292 -- : BFD_RELOC_NDS32_LONGJUMP3 5293 -- : BFD_RELOC_NDS32_LOADSTORE 5294 -- : BFD_RELOC_NDS32_9_FIXED 5295 -- : BFD_RELOC_NDS32_15_FIXED 5296 -- : BFD_RELOC_NDS32_17_FIXED 5297 -- : BFD_RELOC_NDS32_25_FIXED 5298 -- : BFD_RELOC_NDS32_LONGCALL4 5299 -- : BFD_RELOC_NDS32_LONGCALL5 5300 -- : BFD_RELOC_NDS32_LONGCALL6 5301 -- : BFD_RELOC_NDS32_LONGJUMP4 5302 -- : BFD_RELOC_NDS32_LONGJUMP5 5303 -- : BFD_RELOC_NDS32_LONGJUMP6 5304 -- : BFD_RELOC_NDS32_LONGJUMP7 5305 for relax 5306 5307 -- : BFD_RELOC_NDS32_PLTREL_HI20 5308 -- : BFD_RELOC_NDS32_PLTREL_LO12 5309 -- : BFD_RELOC_NDS32_PLT_GOTREL_HI20 5310 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO12 5311 for PIC 5312 5313 -- : BFD_RELOC_NDS32_SDA12S2_DP 5314 -- : BFD_RELOC_NDS32_SDA12S2_SP 5315 -- : BFD_RELOC_NDS32_LO12S2_DP 5316 -- : BFD_RELOC_NDS32_LO12S2_SP 5317 for floating point 5318 5319 -- : BFD_RELOC_NDS32_DWARF2_OP1 5320 -- : BFD_RELOC_NDS32_DWARF2_OP2 5321 -- : BFD_RELOC_NDS32_DWARF2_LEB 5322 for dwarf2 debug_line. 5323 5324 -- : BFD_RELOC_NDS32_UPDATE_TA 5325 for eliminate 16-bit instructions 5326 5327 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO20 5328 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO15 5329 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO19 5330 -- : BFD_RELOC_NDS32_GOT_LO15 5331 -- : BFD_RELOC_NDS32_GOT_LO19 5332 -- : BFD_RELOC_NDS32_GOTOFF_LO15 5333 -- : BFD_RELOC_NDS32_GOTOFF_LO19 5334 -- : BFD_RELOC_NDS32_GOT15S2 5335 -- : BFD_RELOC_NDS32_GOT17S2 5336 for PIC object relaxation 5337 5338 -- : BFD_RELOC_NDS32_5 5339 NDS32 relocs. This is a 5 bit absolute address. 5340 5341 -- : BFD_RELOC_NDS32_10_UPCREL 5342 This is a 10-bit unsigned pc-relative reloc with the right 1 bit 5343 assumed to be 0. 5344 5345 -- : BFD_RELOC_NDS32_SDA_FP7U2_RELA 5346 If fp were omitted, fp can used as another gp. 5347 5348 -- : BFD_RELOC_NDS32_RELAX_ENTRY 5349 -- : BFD_RELOC_NDS32_GOT_SUFF 5350 -- : BFD_RELOC_NDS32_GOTOFF_SUFF 5351 -- : BFD_RELOC_NDS32_PLT_GOT_SUFF 5352 -- : BFD_RELOC_NDS32_MULCALL_SUFF 5353 -- : BFD_RELOC_NDS32_PTR 5354 -- : BFD_RELOC_NDS32_PTR_COUNT 5355 -- : BFD_RELOC_NDS32_PTR_RESOLVED 5356 -- : BFD_RELOC_NDS32_PLTBLOCK 5357 -- : BFD_RELOC_NDS32_RELAX_REGION_BEGIN 5358 -- : BFD_RELOC_NDS32_RELAX_REGION_END 5359 -- : BFD_RELOC_NDS32_MINUEND 5360 -- : BFD_RELOC_NDS32_SUBTRAHEND 5361 -- : BFD_RELOC_NDS32_DIFF8 5362 -- : BFD_RELOC_NDS32_DIFF16 5363 -- : BFD_RELOC_NDS32_DIFF32 5364 -- : BFD_RELOC_NDS32_DIFF_ULEB128 5365 -- : BFD_RELOC_NDS32_EMPTY 5366 relaxation relative relocation types 5367 5368 -- : BFD_RELOC_NDS32_25_ABS 5369 This is a 25 bit absolute address. 5370 5371 -- : BFD_RELOC_NDS32_DATA 5372 -- : BFD_RELOC_NDS32_TRAN 5373 -- : BFD_RELOC_NDS32_17IFC_PCREL 5374 -- : BFD_RELOC_NDS32_10IFCU_PCREL 5375 For ex9 and ifc using. 5376 5377 -- : BFD_RELOC_NDS32_TPOFF 5378 -- : BFD_RELOC_NDS32_GOTTPOFF 5379 -- : BFD_RELOC_NDS32_TLS_LE_HI20 5380 -- : BFD_RELOC_NDS32_TLS_LE_LO12 5381 -- : BFD_RELOC_NDS32_TLS_LE_20 5382 -- : BFD_RELOC_NDS32_TLS_LE_15S0 5383 -- : BFD_RELOC_NDS32_TLS_LE_15S1 5384 -- : BFD_RELOC_NDS32_TLS_LE_15S2 5385 -- : BFD_RELOC_NDS32_TLS_LE_ADD 5386 -- : BFD_RELOC_NDS32_TLS_LE_LS 5387 -- : BFD_RELOC_NDS32_TLS_IE_HI20 5388 -- : BFD_RELOC_NDS32_TLS_IE_LO12 5389 -- : BFD_RELOC_NDS32_TLS_IE_LO12S2 5390 -- : BFD_RELOC_NDS32_TLS_IEGP_HI20 5391 -- : BFD_RELOC_NDS32_TLS_IEGP_LO12 5392 -- : BFD_RELOC_NDS32_TLS_IEGP_LO12S2 5393 -- : BFD_RELOC_NDS32_TLS_IEGP_LW 5394 -- : BFD_RELOC_NDS32_TLS_DESC 5395 -- : BFD_RELOC_NDS32_TLS_DESC_HI20 5396 -- : BFD_RELOC_NDS32_TLS_DESC_LO12 5397 -- : BFD_RELOC_NDS32_TLS_DESC_20 5398 -- : BFD_RELOC_NDS32_TLS_DESC_SDA17S2 5399 -- : BFD_RELOC_NDS32_TLS_DESC_ADD 5400 -- : BFD_RELOC_NDS32_TLS_DESC_FUNC 5401 -- : BFD_RELOC_NDS32_TLS_DESC_CALL 5402 -- : BFD_RELOC_NDS32_TLS_DESC_MEM 5403 -- : BFD_RELOC_NDS32_REMOVE 5404 -- : BFD_RELOC_NDS32_GROUP 5405 For TLS. 5406 5407 -- : BFD_RELOC_NDS32_LSI 5408 For floating load store relaxation. 5409 5410 -- : BFD_RELOC_V850_9_PCREL 5411 This is a 9-bit reloc 5412 5413 -- : BFD_RELOC_V850_22_PCREL 5414 This is a 22-bit reloc 5415 5416 -- : BFD_RELOC_V850_SDA_16_16_OFFSET 5417 This is a 16 bit offset from the short data area pointer. 5418 5419 -- : BFD_RELOC_V850_SDA_15_16_OFFSET 5420 This is a 16 bit offset (of which only 15 bits are used) from the 5421 short data area pointer. 5422 5423 -- : BFD_RELOC_V850_ZDA_16_16_OFFSET 5424 This is a 16 bit offset from the zero data area pointer. 5425 5426 -- : BFD_RELOC_V850_ZDA_15_16_OFFSET 5427 This is a 16 bit offset (of which only 15 bits are used) from the 5428 zero data area pointer. 5429 5430 -- : BFD_RELOC_V850_TDA_6_8_OFFSET 5431 This is an 8 bit offset (of which only 6 bits are used) from the 5432 tiny data area pointer. 5433 5434 -- : BFD_RELOC_V850_TDA_7_8_OFFSET 5435 This is an 8bit offset (of which only 7 bits are used) from the 5436 tiny data area pointer. 5437 5438 -- : BFD_RELOC_V850_TDA_7_7_OFFSET 5439 This is a 7 bit offset from the tiny data area pointer. 5440 5441 -- : BFD_RELOC_V850_TDA_16_16_OFFSET 5442 This is a 16 bit offset from the tiny data area pointer. 5443 5444 -- : BFD_RELOC_V850_TDA_4_5_OFFSET 5445 This is a 5 bit offset (of which only 4 bits are used) from the 5446 tiny data area pointer. 5447 5448 -- : BFD_RELOC_V850_TDA_4_4_OFFSET 5449 This is a 4 bit offset from the tiny data area pointer. 5450 5451 -- : BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET 5452 This is a 16 bit offset from the short data area pointer, with the 5453 bits placed non-contiguously in the instruction. 5454 5455 -- : BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET 5456 This is a 16 bit offset from the zero data area pointer, with the 5457 bits placed non-contiguously in the instruction. 5458 5459 -- : BFD_RELOC_V850_CALLT_6_7_OFFSET 5460 This is a 6 bit offset from the call table base pointer. 5461 5462 -- : BFD_RELOC_V850_CALLT_16_16_OFFSET 5463 This is a 16 bit offset from the call table base pointer. 5464 5465 -- : BFD_RELOC_V850_LONGCALL 5466 Used for relaxing indirect function calls. 5467 5468 -- : BFD_RELOC_V850_LONGJUMP 5469 Used for relaxing indirect jumps. 5470 5471 -- : BFD_RELOC_V850_ALIGN 5472 Used to maintain alignment whilst relaxing. 5473 5474 -- : BFD_RELOC_V850_LO16_SPLIT_OFFSET 5475 This is a variation of BFD_RELOC_LO16 that can be used in v850e 5476 ld.bu instructions. 5477 5478 -- : BFD_RELOC_V850_16_PCREL 5479 This is a 16-bit reloc. 5480 5481 -- : BFD_RELOC_V850_17_PCREL 5482 This is a 17-bit reloc. 5483 5484 -- : BFD_RELOC_V850_23 5485 This is a 23-bit reloc. 5486 5487 -- : BFD_RELOC_V850_32_PCREL 5488 This is a 32-bit reloc. 5489 5490 -- : BFD_RELOC_V850_32_ABS 5491 This is a 32-bit reloc. 5492 5493 -- : BFD_RELOC_V850_16_SPLIT_OFFSET 5494 This is a 16-bit reloc. 5495 5496 -- : BFD_RELOC_V850_16_S1 5497 This is a 16-bit reloc. 5498 5499 -- : BFD_RELOC_V850_LO16_S1 5500 Low 16 bits. 16 bit shifted by 1. 5501 5502 -- : BFD_RELOC_V850_CALLT_15_16_OFFSET 5503 This is a 16 bit offset from the call table base pointer. 5504 5505 -- : BFD_RELOC_V850_32_GOTPCREL 5506 DSO relocations. 5507 5508 -- : BFD_RELOC_V850_16_GOT 5509 DSO relocations. 5510 5511 -- : BFD_RELOC_V850_32_GOT 5512 DSO relocations. 5513 5514 -- : BFD_RELOC_V850_22_PLT_PCREL 5515 DSO relocations. 5516 5517 -- : BFD_RELOC_V850_32_PLT_PCREL 5518 DSO relocations. 5519 5520 -- : BFD_RELOC_V850_COPY 5521 DSO relocations. 5522 5523 -- : BFD_RELOC_V850_GLOB_DAT 5524 DSO relocations. 5525 5526 -- : BFD_RELOC_V850_JMP_SLOT 5527 DSO relocations. 5528 5529 -- : BFD_RELOC_V850_RELATIVE 5530 DSO relocations. 5531 5532 -- : BFD_RELOC_V850_16_GOTOFF 5533 DSO relocations. 5534 5535 -- : BFD_RELOC_V850_32_GOTOFF 5536 DSO relocations. 5537 5538 -- : BFD_RELOC_V850_CODE 5539 start code. 5540 5541 -- : BFD_RELOC_V850_DATA 5542 start data in text. 5543 5544 -- : BFD_RELOC_TIC30_LDP 5545 This is a 8bit DP reloc for the tms320c30, where the most 5546 significant 8 bits of a 24 bit word are placed into the least 5547 significant 8 bits of the opcode. 5548 5549 -- : BFD_RELOC_TIC54X_PARTLS7 5550 This is a 7bit reloc for the tms320c54x, where the least 5551 significant 7 bits of a 16 bit word are placed into the least 5552 significant 7 bits of the opcode. 5553 5554 -- : BFD_RELOC_TIC54X_PARTMS9 5555 This is a 9bit DP reloc for the tms320c54x, where the most 5556 significant 9 bits of a 16 bit word are placed into the least 5557 significant 9 bits of the opcode. 5558 5559 -- : BFD_RELOC_TIC54X_23 5560 This is an extended address 23-bit reloc for the tms320c54x. 5561 5562 -- : BFD_RELOC_TIC54X_16_OF_23 5563 This is a 16-bit reloc for the tms320c54x, where the least 5564 significant 16 bits of a 23-bit extended address are placed into 5565 the opcode. 5566 5567 -- : BFD_RELOC_TIC54X_MS7_OF_23 5568 This is a reloc for the tms320c54x, where the most significant 7 5569 bits of a 23-bit extended address are placed into the opcode. 5570 5571 -- : BFD_RELOC_C6000_PCR_S21 5572 -- : BFD_RELOC_C6000_PCR_S12 5573 -- : BFD_RELOC_C6000_PCR_S10 5574 -- : BFD_RELOC_C6000_PCR_S7 5575 -- : BFD_RELOC_C6000_ABS_S16 5576 -- : BFD_RELOC_C6000_ABS_L16 5577 -- : BFD_RELOC_C6000_ABS_H16 5578 -- : BFD_RELOC_C6000_SBR_U15_B 5579 -- : BFD_RELOC_C6000_SBR_U15_H 5580 -- : BFD_RELOC_C6000_SBR_U15_W 5581 -- : BFD_RELOC_C6000_SBR_S16 5582 -- : BFD_RELOC_C6000_SBR_L16_B 5583 -- : BFD_RELOC_C6000_SBR_L16_H 5584 -- : BFD_RELOC_C6000_SBR_L16_W 5585 -- : BFD_RELOC_C6000_SBR_H16_B 5586 -- : BFD_RELOC_C6000_SBR_H16_H 5587 -- : BFD_RELOC_C6000_SBR_H16_W 5588 -- : BFD_RELOC_C6000_SBR_GOT_U15_W 5589 -- : BFD_RELOC_C6000_SBR_GOT_L16_W 5590 -- : BFD_RELOC_C6000_SBR_GOT_H16_W 5591 -- : BFD_RELOC_C6000_DSBT_INDEX 5592 -- : BFD_RELOC_C6000_PREL31 5593 -- : BFD_RELOC_C6000_COPY 5594 -- : BFD_RELOC_C6000_JUMP_SLOT 5595 -- : BFD_RELOC_C6000_EHTYPE 5596 -- : BFD_RELOC_C6000_PCR_H16 5597 -- : BFD_RELOC_C6000_PCR_L16 5598 -- : BFD_RELOC_C6000_ALIGN 5599 -- : BFD_RELOC_C6000_FPHEAD 5600 -- : BFD_RELOC_C6000_NOCMP 5601 TMS320C6000 relocations. 5602 5603 -- : BFD_RELOC_FR30_48 5604 This is a 48 bit reloc for the FR30 that stores 32 bits. 5605 5606 -- : BFD_RELOC_FR30_20 5607 This is a 32 bit reloc for the FR30 that stores 20 bits split up 5608 into two sections. 5609 5610 -- : BFD_RELOC_FR30_6_IN_4 5611 This is a 16 bit reloc for the FR30 that stores a 6 bit word 5612 offset in 4 bits. 5613 5614 -- : BFD_RELOC_FR30_8_IN_8 5615 This is a 16 bit reloc for the FR30 that stores an 8 bit byte 5616 offset into 8 bits. 5617 5618 -- : BFD_RELOC_FR30_9_IN_8 5619 This is a 16 bit reloc for the FR30 that stores a 9 bit short 5620 offset into 8 bits. 5621 5622 -- : BFD_RELOC_FR30_10_IN_8 5623 This is a 16 bit reloc for the FR30 that stores a 10 bit word 5624 offset into 8 bits. 5625 5626 -- : BFD_RELOC_FR30_9_PCREL 5627 This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative 5628 short offset into 8 bits. 5629 5630 -- : BFD_RELOC_FR30_12_PCREL 5631 This is a 16 bit reloc for the FR30 that stores a 12 bit pc 5632 relative short offset into 11 bits. 5633 5634 -- : BFD_RELOC_MCORE_PCREL_IMM8BY4 5635 -- : BFD_RELOC_MCORE_PCREL_IMM11BY2 5636 -- : BFD_RELOC_MCORE_PCREL_IMM4BY2 5637 -- : BFD_RELOC_MCORE_PCREL_32 5638 -- : BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2 5639 -- : BFD_RELOC_MCORE_RVA 5640 Motorola Mcore relocations. 5641 5642 -- : BFD_RELOC_MEP_8 5643 -- : BFD_RELOC_MEP_16 5644 -- : BFD_RELOC_MEP_32 5645 -- : BFD_RELOC_MEP_PCREL8A2 5646 -- : BFD_RELOC_MEP_PCREL12A2 5647 -- : BFD_RELOC_MEP_PCREL17A2 5648 -- : BFD_RELOC_MEP_PCREL24A2 5649 -- : BFD_RELOC_MEP_PCABS24A2 5650 -- : BFD_RELOC_MEP_LOW16 5651 -- : BFD_RELOC_MEP_HI16U 5652 -- : BFD_RELOC_MEP_HI16S 5653 -- : BFD_RELOC_MEP_GPREL 5654 -- : BFD_RELOC_MEP_TPREL 5655 -- : BFD_RELOC_MEP_TPREL7 5656 -- : BFD_RELOC_MEP_TPREL7A2 5657 -- : BFD_RELOC_MEP_TPREL7A4 5658 -- : BFD_RELOC_MEP_UIMM24 5659 -- : BFD_RELOC_MEP_ADDR24A4 5660 -- : BFD_RELOC_MEP_GNU_VTINHERIT 5661 -- : BFD_RELOC_MEP_GNU_VTENTRY 5662 Toshiba Media Processor Relocations. 5663 5664 -- : BFD_RELOC_METAG_HIADDR16 5665 -- : BFD_RELOC_METAG_LOADDR16 5666 -- : BFD_RELOC_METAG_RELBRANCH 5667 -- : BFD_RELOC_METAG_GETSETOFF 5668 -- : BFD_RELOC_METAG_HIOG 5669 -- : BFD_RELOC_METAG_LOOG 5670 -- : BFD_RELOC_METAG_REL8 5671 -- : BFD_RELOC_METAG_REL16 5672 -- : BFD_RELOC_METAG_HI16_GOTOFF 5673 -- : BFD_RELOC_METAG_LO16_GOTOFF 5674 -- : BFD_RELOC_METAG_GETSET_GOTOFF 5675 -- : BFD_RELOC_METAG_GETSET_GOT 5676 -- : BFD_RELOC_METAG_HI16_GOTPC 5677 -- : BFD_RELOC_METAG_LO16_GOTPC 5678 -- : BFD_RELOC_METAG_HI16_PLT 5679 -- : BFD_RELOC_METAG_LO16_PLT 5680 -- : BFD_RELOC_METAG_RELBRANCH_PLT 5681 -- : BFD_RELOC_METAG_GOTOFF 5682 -- : BFD_RELOC_METAG_PLT 5683 -- : BFD_RELOC_METAG_COPY 5684 -- : BFD_RELOC_METAG_JMP_SLOT 5685 -- : BFD_RELOC_METAG_RELATIVE 5686 -- : BFD_RELOC_METAG_GLOB_DAT 5687 -- : BFD_RELOC_METAG_TLS_GD 5688 -- : BFD_RELOC_METAG_TLS_LDM 5689 -- : BFD_RELOC_METAG_TLS_LDO_HI16 5690 -- : BFD_RELOC_METAG_TLS_LDO_LO16 5691 -- : BFD_RELOC_METAG_TLS_LDO 5692 -- : BFD_RELOC_METAG_TLS_IE 5693 -- : BFD_RELOC_METAG_TLS_IENONPIC 5694 -- : BFD_RELOC_METAG_TLS_IENONPIC_HI16 5695 -- : BFD_RELOC_METAG_TLS_IENONPIC_LO16 5696 -- : BFD_RELOC_METAG_TLS_TPOFF 5697 -- : BFD_RELOC_METAG_TLS_DTPMOD 5698 -- : BFD_RELOC_METAG_TLS_DTPOFF 5699 -- : BFD_RELOC_METAG_TLS_LE 5700 -- : BFD_RELOC_METAG_TLS_LE_HI16 5701 -- : BFD_RELOC_METAG_TLS_LE_LO16 5702 Imagination Technologies Meta relocations. 5703 5704 -- : BFD_RELOC_MMIX_GETA 5705 -- : BFD_RELOC_MMIX_GETA_1 5706 -- : BFD_RELOC_MMIX_GETA_2 5707 -- : BFD_RELOC_MMIX_GETA_3 5708 These are relocations for the GETA instruction. 5709 5710 -- : BFD_RELOC_MMIX_CBRANCH 5711 -- : BFD_RELOC_MMIX_CBRANCH_J 5712 -- : BFD_RELOC_MMIX_CBRANCH_1 5713 -- : BFD_RELOC_MMIX_CBRANCH_2 5714 -- : BFD_RELOC_MMIX_CBRANCH_3 5715 These are relocations for a conditional branch instruction. 5716 5717 -- : BFD_RELOC_MMIX_PUSHJ 5718 -- : BFD_RELOC_MMIX_PUSHJ_1 5719 -- : BFD_RELOC_MMIX_PUSHJ_2 5720 -- : BFD_RELOC_MMIX_PUSHJ_3 5721 -- : BFD_RELOC_MMIX_PUSHJ_STUBBABLE 5722 These are relocations for the PUSHJ instruction. 5723 5724 -- : BFD_RELOC_MMIX_JMP 5725 -- : BFD_RELOC_MMIX_JMP_1 5726 -- : BFD_RELOC_MMIX_JMP_2 5727 -- : BFD_RELOC_MMIX_JMP_3 5728 These are relocations for the JMP instruction. 5729 5730 -- : BFD_RELOC_MMIX_ADDR19 5731 This is a relocation for a relative address as in a GETA 5732 instruction or a branch. 5733 5734 -- : BFD_RELOC_MMIX_ADDR27 5735 This is a relocation for a relative address as in a JMP 5736 instruction. 5737 5738 -- : BFD_RELOC_MMIX_REG_OR_BYTE 5739 This is a relocation for an instruction field that may be a general 5740 register or a value 0..255. 5741 5742 -- : BFD_RELOC_MMIX_REG 5743 This is a relocation for an instruction field that may be a general 5744 register. 5745 5746 -- : BFD_RELOC_MMIX_BASE_PLUS_OFFSET 5747 This is a relocation for two instruction fields holding a register 5748 and an offset, the equivalent of the relocation. 5749 5750 -- : BFD_RELOC_MMIX_LOCAL 5751 This relocation is an assertion that the expression is not 5752 allocated as a global register. It does not modify contents. 5753 5754 -- : BFD_RELOC_AVR_7_PCREL 5755 This is a 16 bit reloc for the AVR that stores 8 bit pc relative 5756 short offset into 7 bits. 5757 5758 -- : BFD_RELOC_AVR_13_PCREL 5759 This is a 16 bit reloc for the AVR that stores 13 bit pc relative 5760 short offset into 12 bits. 5761 5762 -- : BFD_RELOC_AVR_16_PM 5763 This is a 16 bit reloc for the AVR that stores 17 bit value 5764 (usually program memory address) into 16 bits. 5765 5766 -- : BFD_RELOC_AVR_LO8_LDI 5767 This is a 16 bit reloc for the AVR that stores 8 bit value (usually 5768 data memory address) into 8 bit immediate value of LDI insn. 5769 5770 -- : BFD_RELOC_AVR_HI8_LDI 5771 This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 5772 bit of data memory address) into 8 bit immediate value of LDI insn. 5773 5774 -- : BFD_RELOC_AVR_HH8_LDI 5775 This is a 16 bit reloc for the AVR that stores 8 bit value (most 5776 high 8 bit of program memory address) into 8 bit immediate value 5777 of LDI insn. 5778 5779 -- : BFD_RELOC_AVR_MS8_LDI 5780 This is a 16 bit reloc for the AVR that stores 8 bit value (most 5781 high 8 bit of 32 bit value) into 8 bit immediate value of LDI insn. 5782 5783 -- : BFD_RELOC_AVR_LO8_LDI_NEG 5784 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5785 (usually data memory address) into 8 bit immediate value of SUBI 5786 insn. 5787 5788 -- : BFD_RELOC_AVR_HI8_LDI_NEG 5789 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5790 (high 8 bit of data memory address) into 8 bit immediate value of 5791 SUBI insn. 5792 5793 -- : BFD_RELOC_AVR_HH8_LDI_NEG 5794 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5795 (most high 8 bit of program memory address) into 8 bit immediate 5796 value of LDI or SUBI insn. 5797 5798 -- : BFD_RELOC_AVR_MS8_LDI_NEG 5799 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5800 (msb of 32 bit value) into 8 bit immediate value of LDI insn. 5801 5802 -- : BFD_RELOC_AVR_LO8_LDI_PM 5803 This is a 16 bit reloc for the AVR that stores 8 bit value (usually 5804 command address) into 8 bit immediate value of LDI insn. 5805 5806 -- : BFD_RELOC_AVR_LO8_LDI_GS 5807 This is a 16 bit reloc for the AVR that stores 8 bit value 5808 (command address) into 8 bit immediate value of LDI insn. If the 5809 address is beyond the 128k boundary, the linker inserts a jump 5810 stub for this reloc in the lower 128k. 5811 5812 -- : BFD_RELOC_AVR_HI8_LDI_PM 5813 This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 5814 bit of command address) into 8 bit immediate value of LDI insn. 5815 5816 -- : BFD_RELOC_AVR_HI8_LDI_GS 5817 This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 5818 bit of command address) into 8 bit immediate value of LDI insn. 5819 If the address is beyond the 128k boundary, the linker inserts a 5820 jump stub for this reloc below 128k. 5821 5822 -- : BFD_RELOC_AVR_HH8_LDI_PM 5823 This is a 16 bit reloc for the AVR that stores 8 bit value (most 5824 high 8 bit of command address) into 8 bit immediate value of LDI 5825 insn. 5826 5827 -- : BFD_RELOC_AVR_LO8_LDI_PM_NEG 5828 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5829 (usually command address) into 8 bit immediate value of SUBI insn. 5830 5831 -- : BFD_RELOC_AVR_HI8_LDI_PM_NEG 5832 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5833 (high 8 bit of 16 bit command address) into 8 bit immediate value 5834 of SUBI insn. 5835 5836 -- : BFD_RELOC_AVR_HH8_LDI_PM_NEG 5837 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5838 (high 6 bit of 22 bit command address) into 8 bit immediate value 5839 of SUBI insn. 5840 5841 -- : BFD_RELOC_AVR_CALL 5842 This is a 32 bit reloc for the AVR that stores 23 bit value into 5843 22 bits. 5844 5845 -- : BFD_RELOC_AVR_LDI 5846 This is a 16 bit reloc for the AVR that stores all needed bits for 5847 absolute addressing with ldi with overflow check to linktime 5848 5849 -- : BFD_RELOC_AVR_6 5850 This is a 6 bit reloc for the AVR that stores offset for ldd/std 5851 instructions 5852 5853 -- : BFD_RELOC_AVR_6_ADIW 5854 This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw 5855 instructions 5856 5857 -- : BFD_RELOC_AVR_8_LO 5858 This is a 8 bit reloc for the AVR that stores bits 0..7 of a symbol 5859 in .byte lo8(symbol) 5860 5861 -- : BFD_RELOC_AVR_8_HI 5862 This is a 8 bit reloc for the AVR that stores bits 8..15 of a 5863 symbol in .byte hi8(symbol) 5864 5865 -- : BFD_RELOC_AVR_8_HLO 5866 This is a 8 bit reloc for the AVR that stores bits 16..23 of a 5867 symbol in .byte hlo8(symbol) 5868 5869 -- : BFD_RELOC_AVR_DIFF8 5870 -- : BFD_RELOC_AVR_DIFF16 5871 -- : BFD_RELOC_AVR_DIFF32 5872 AVR relocations to mark the difference of two local symbols. 5873 These are only needed to support linker relaxation and can be 5874 ignored when not relaxing. The field is set to the value of the 5875 difference assuming no relaxation. The relocation encodes the 5876 position of the second symbol so the linker can determine whether 5877 to adjust the field value. 5878 5879 -- : BFD_RELOC_AVR_LDS_STS_16 5880 This is a 7 bit reloc for the AVR that stores SRAM address for 5881 16bit lds and sts instructions supported only tiny core. 5882 5883 -- : BFD_RELOC_AVR_PORT6 5884 This is a 6 bit reloc for the AVR that stores an I/O register 5885 number for the IN and OUT instructions 5886 5887 -- : BFD_RELOC_AVR_PORT5 5888 This is a 5 bit reloc for the AVR that stores an I/O register 5889 number for the SBIC, SBIS, SBI and CBI instructions 5890 5891 -- : BFD_RELOC_RISCV_HI20 5892 -- : BFD_RELOC_RISCV_PCREL_HI20 5893 -- : BFD_RELOC_RISCV_PCREL_LO12_I 5894 -- : BFD_RELOC_RISCV_PCREL_LO12_S 5895 -- : BFD_RELOC_RISCV_LO12_I 5896 -- : BFD_RELOC_RISCV_LO12_S 5897 -- : BFD_RELOC_RISCV_GPREL12_I 5898 -- : BFD_RELOC_RISCV_GPREL12_S 5899 -- : BFD_RELOC_RISCV_TPREL_HI20 5900 -- : BFD_RELOC_RISCV_TPREL_LO12_I 5901 -- : BFD_RELOC_RISCV_TPREL_LO12_S 5902 -- : BFD_RELOC_RISCV_TPREL_ADD 5903 -- : BFD_RELOC_RISCV_CALL 5904 -- : BFD_RELOC_RISCV_CALL_PLT 5905 -- : BFD_RELOC_RISCV_ADD8 5906 -- : BFD_RELOC_RISCV_ADD16 5907 -- : BFD_RELOC_RISCV_ADD32 5908 -- : BFD_RELOC_RISCV_ADD64 5909 -- : BFD_RELOC_RISCV_SUB8 5910 -- : BFD_RELOC_RISCV_SUB16 5911 -- : BFD_RELOC_RISCV_SUB32 5912 -- : BFD_RELOC_RISCV_SUB64 5913 -- : BFD_RELOC_RISCV_GOT_HI20 5914 -- : BFD_RELOC_RISCV_TLS_GOT_HI20 5915 -- : BFD_RELOC_RISCV_TLS_GD_HI20 5916 -- : BFD_RELOC_RISCV_JMP 5917 -- : BFD_RELOC_RISCV_TLS_DTPMOD32 5918 -- : BFD_RELOC_RISCV_TLS_DTPREL32 5919 -- : BFD_RELOC_RISCV_TLS_DTPMOD64 5920 -- : BFD_RELOC_RISCV_TLS_DTPREL64 5921 -- : BFD_RELOC_RISCV_TLS_TPREL32 5922 -- : BFD_RELOC_RISCV_TLS_TPREL64 5923 -- : BFD_RELOC_RISCV_ALIGN 5924 -- : BFD_RELOC_RISCV_RVC_BRANCH 5925 -- : BFD_RELOC_RISCV_RVC_JUMP 5926 -- : BFD_RELOC_RISCV_RVC_LUI 5927 -- : BFD_RELOC_RISCV_GPREL_I 5928 -- : BFD_RELOC_RISCV_GPREL_S 5929 -- : BFD_RELOC_RISCV_TPREL_I 5930 -- : BFD_RELOC_RISCV_TPREL_S 5931 -- : BFD_RELOC_RISCV_RELAX 5932 -- : BFD_RELOC_RISCV_CFA 5933 -- : BFD_RELOC_RISCV_SUB6 5934 -- : BFD_RELOC_RISCV_SET6 5935 -- : BFD_RELOC_RISCV_SET8 5936 -- : BFD_RELOC_RISCV_SET16 5937 -- : BFD_RELOC_RISCV_SET32 5938 -- : BFD_RELOC_RISCV_32_PCREL 5939 RISC-V relocations. 5940 5941 -- : BFD_RELOC_RL78_NEG8 5942 -- : BFD_RELOC_RL78_NEG16 5943 -- : BFD_RELOC_RL78_NEG24 5944 -- : BFD_RELOC_RL78_NEG32 5945 -- : BFD_RELOC_RL78_16_OP 5946 -- : BFD_RELOC_RL78_24_OP 5947 -- : BFD_RELOC_RL78_32_OP 5948 -- : BFD_RELOC_RL78_8U 5949 -- : BFD_RELOC_RL78_16U 5950 -- : BFD_RELOC_RL78_24U 5951 -- : BFD_RELOC_RL78_DIR3U_PCREL 5952 -- : BFD_RELOC_RL78_DIFF 5953 -- : BFD_RELOC_RL78_GPRELB 5954 -- : BFD_RELOC_RL78_GPRELW 5955 -- : BFD_RELOC_RL78_GPRELL 5956 -- : BFD_RELOC_RL78_SYM 5957 -- : BFD_RELOC_RL78_OP_SUBTRACT 5958 -- : BFD_RELOC_RL78_OP_NEG 5959 -- : BFD_RELOC_RL78_OP_AND 5960 -- : BFD_RELOC_RL78_OP_SHRA 5961 -- : BFD_RELOC_RL78_ABS8 5962 -- : BFD_RELOC_RL78_ABS16 5963 -- : BFD_RELOC_RL78_ABS16_REV 5964 -- : BFD_RELOC_RL78_ABS32 5965 -- : BFD_RELOC_RL78_ABS32_REV 5966 -- : BFD_RELOC_RL78_ABS16U 5967 -- : BFD_RELOC_RL78_ABS16UW 5968 -- : BFD_RELOC_RL78_ABS16UL 5969 -- : BFD_RELOC_RL78_RELAX 5970 -- : BFD_RELOC_RL78_HI16 5971 -- : BFD_RELOC_RL78_HI8 5972 -- : BFD_RELOC_RL78_LO16 5973 -- : BFD_RELOC_RL78_CODE 5974 -- : BFD_RELOC_RL78_SADDR 5975 Renesas RL78 Relocations. 5976 5977 -- : BFD_RELOC_RX_NEG8 5978 -- : BFD_RELOC_RX_NEG16 5979 -- : BFD_RELOC_RX_NEG24 5980 -- : BFD_RELOC_RX_NEG32 5981 -- : BFD_RELOC_RX_16_OP 5982 -- : BFD_RELOC_RX_24_OP 5983 -- : BFD_RELOC_RX_32_OP 5984 -- : BFD_RELOC_RX_8U 5985 -- : BFD_RELOC_RX_16U 5986 -- : BFD_RELOC_RX_24U 5987 -- : BFD_RELOC_RX_DIR3U_PCREL 5988 -- : BFD_RELOC_RX_DIFF 5989 -- : BFD_RELOC_RX_GPRELB 5990 -- : BFD_RELOC_RX_GPRELW 5991 -- : BFD_RELOC_RX_GPRELL 5992 -- : BFD_RELOC_RX_SYM 5993 -- : BFD_RELOC_RX_OP_SUBTRACT 5994 -- : BFD_RELOC_RX_OP_NEG 5995 -- : BFD_RELOC_RX_ABS8 5996 -- : BFD_RELOC_RX_ABS16 5997 -- : BFD_RELOC_RX_ABS16_REV 5998 -- : BFD_RELOC_RX_ABS32 5999 -- : BFD_RELOC_RX_ABS32_REV 6000 -- : BFD_RELOC_RX_ABS16U 6001 -- : BFD_RELOC_RX_ABS16UW 6002 -- : BFD_RELOC_RX_ABS16UL 6003 -- : BFD_RELOC_RX_RELAX 6004 Renesas RX Relocations. 6005 6006 -- : BFD_RELOC_390_12 6007 Direct 12 bit. 6008 6009 -- : BFD_RELOC_390_GOT12 6010 12 bit GOT offset. 6011 6012 -- : BFD_RELOC_390_PLT32 6013 32 bit PC relative PLT address. 6014 6015 -- : BFD_RELOC_390_COPY 6016 Copy symbol at runtime. 6017 6018 -- : BFD_RELOC_390_GLOB_DAT 6019 Create GOT entry. 6020 6021 -- : BFD_RELOC_390_JMP_SLOT 6022 Create PLT entry. 6023 6024 -- : BFD_RELOC_390_RELATIVE 6025 Adjust by program base. 6026 6027 -- : BFD_RELOC_390_GOTPC 6028 32 bit PC relative offset to GOT. 6029 6030 -- : BFD_RELOC_390_GOT16 6031 16 bit GOT offset. 6032 6033 -- : BFD_RELOC_390_PC12DBL 6034 PC relative 12 bit shifted by 1. 6035 6036 -- : BFD_RELOC_390_PLT12DBL 6037 12 bit PC rel. PLT shifted by 1. 6038 6039 -- : BFD_RELOC_390_PC16DBL 6040 PC relative 16 bit shifted by 1. 6041 6042 -- : BFD_RELOC_390_PLT16DBL 6043 16 bit PC rel. PLT shifted by 1. 6044 6045 -- : BFD_RELOC_390_PC24DBL 6046 PC relative 24 bit shifted by 1. 6047 6048 -- : BFD_RELOC_390_PLT24DBL 6049 24 bit PC rel. PLT shifted by 1. 6050 6051 -- : BFD_RELOC_390_PC32DBL 6052 PC relative 32 bit shifted by 1. 6053 6054 -- : BFD_RELOC_390_PLT32DBL 6055 32 bit PC rel. PLT shifted by 1. 6056 6057 -- : BFD_RELOC_390_GOTPCDBL 6058 32 bit PC rel. GOT shifted by 1. 6059 6060 -- : BFD_RELOC_390_GOT64 6061 64 bit GOT offset. 6062 6063 -- : BFD_RELOC_390_PLT64 6064 64 bit PC relative PLT address. 6065 6066 -- : BFD_RELOC_390_GOTENT 6067 32 bit rel. offset to GOT entry. 6068 6069 -- : BFD_RELOC_390_GOTOFF64 6070 64 bit offset to GOT. 6071 6072 -- : BFD_RELOC_390_GOTPLT12 6073 12-bit offset to symbol-entry within GOT, with PLT handling. 6074 6075 -- : BFD_RELOC_390_GOTPLT16 6076 16-bit offset to symbol-entry within GOT, with PLT handling. 6077 6078 -- : BFD_RELOC_390_GOTPLT32 6079 32-bit offset to symbol-entry within GOT, with PLT handling. 6080 6081 -- : BFD_RELOC_390_GOTPLT64 6082 64-bit offset to symbol-entry within GOT, with PLT handling. 6083 6084 -- : BFD_RELOC_390_GOTPLTENT 6085 32-bit rel. offset to symbol-entry within GOT, with PLT handling. 6086 6087 -- : BFD_RELOC_390_PLTOFF16 6088 16-bit rel. offset from the GOT to a PLT entry. 6089 6090 -- : BFD_RELOC_390_PLTOFF32 6091 32-bit rel. offset from the GOT to a PLT entry. 6092 6093 -- : BFD_RELOC_390_PLTOFF64 6094 64-bit rel. offset from the GOT to a PLT entry. 6095 6096 -- : BFD_RELOC_390_TLS_LOAD 6097 -- : BFD_RELOC_390_TLS_GDCALL 6098 -- : BFD_RELOC_390_TLS_LDCALL 6099 -- : BFD_RELOC_390_TLS_GD32 6100 -- : BFD_RELOC_390_TLS_GD64 6101 -- : BFD_RELOC_390_TLS_GOTIE12 6102 -- : BFD_RELOC_390_TLS_GOTIE32 6103 -- : BFD_RELOC_390_TLS_GOTIE64 6104 -- : BFD_RELOC_390_TLS_LDM32 6105 -- : BFD_RELOC_390_TLS_LDM64 6106 -- : BFD_RELOC_390_TLS_IE32 6107 -- : BFD_RELOC_390_TLS_IE64 6108 -- : BFD_RELOC_390_TLS_IEENT 6109 -- : BFD_RELOC_390_TLS_LE32 6110 -- : BFD_RELOC_390_TLS_LE64 6111 -- : BFD_RELOC_390_TLS_LDO32 6112 -- : BFD_RELOC_390_TLS_LDO64 6113 -- : BFD_RELOC_390_TLS_DTPMOD 6114 -- : BFD_RELOC_390_TLS_DTPOFF 6115 -- : BFD_RELOC_390_TLS_TPOFF 6116 s390 tls relocations. 6117 6118 -- : BFD_RELOC_390_20 6119 -- : BFD_RELOC_390_GOT20 6120 -- : BFD_RELOC_390_GOTPLT20 6121 -- : BFD_RELOC_390_TLS_GOTIE20 6122 Long displacement extension. 6123 6124 -- : BFD_RELOC_390_IRELATIVE 6125 STT_GNU_IFUNC relocation. 6126 6127 -- : BFD_RELOC_SCORE_GPREL15 6128 Score relocations Low 16 bit for load/store 6129 6130 -- : BFD_RELOC_SCORE_DUMMY2 6131 -- : BFD_RELOC_SCORE_JMP 6132 This is a 24-bit reloc with the right 1 bit assumed to be 0 6133 6134 -- : BFD_RELOC_SCORE_BRANCH 6135 This is a 19-bit reloc with the right 1 bit assumed to be 0 6136 6137 -- : BFD_RELOC_SCORE_IMM30 6138 This is a 32-bit reloc for 48-bit instructions. 6139 6140 -- : BFD_RELOC_SCORE_IMM32 6141 This is a 32-bit reloc for 48-bit instructions. 6142 6143 -- : BFD_RELOC_SCORE16_JMP 6144 This is a 11-bit reloc with the right 1 bit assumed to be 0 6145 6146 -- : BFD_RELOC_SCORE16_BRANCH 6147 This is a 8-bit reloc with the right 1 bit assumed to be 0 6148 6149 -- : BFD_RELOC_SCORE_BCMP 6150 This is a 9-bit reloc with the right 1 bit assumed to be 0 6151 6152 -- : BFD_RELOC_SCORE_GOT15 6153 -- : BFD_RELOC_SCORE_GOT_LO16 6154 -- : BFD_RELOC_SCORE_CALL15 6155 -- : BFD_RELOC_SCORE_DUMMY_HI16 6156 Undocumented Score relocs 6157 6158 -- : BFD_RELOC_IP2K_FR9 6159 Scenix IP2K - 9-bit register number / data address 6160 6161 -- : BFD_RELOC_IP2K_BANK 6162 Scenix IP2K - 4-bit register/data bank number 6163 6164 -- : BFD_RELOC_IP2K_ADDR16CJP 6165 Scenix IP2K - low 13 bits of instruction word address 6166 6167 -- : BFD_RELOC_IP2K_PAGE3 6168 Scenix IP2K - high 3 bits of instruction word address 6169 6170 -- : BFD_RELOC_IP2K_LO8DATA 6171 -- : BFD_RELOC_IP2K_HI8DATA 6172 -- : BFD_RELOC_IP2K_EX8DATA 6173 Scenix IP2K - ext/low/high 8 bits of data address 6174 6175 -- : BFD_RELOC_IP2K_LO8INSN 6176 -- : BFD_RELOC_IP2K_HI8INSN 6177 Scenix IP2K - low/high 8 bits of instruction word address 6178 6179 -- : BFD_RELOC_IP2K_PC_SKIP 6180 Scenix IP2K - even/odd PC modifier to modify snb pcl.0 6181 6182 -- : BFD_RELOC_IP2K_TEXT 6183 Scenix IP2K - 16 bit word address in text section. 6184 6185 -- : BFD_RELOC_IP2K_FR_OFFSET 6186 Scenix IP2K - 7-bit sp or dp offset 6187 6188 -- : BFD_RELOC_VPE4KMATH_DATA 6189 -- : BFD_RELOC_VPE4KMATH_INSN 6190 Scenix VPE4K coprocessor - data/insn-space addressing 6191 6192 -- : BFD_RELOC_VTABLE_INHERIT 6193 -- : BFD_RELOC_VTABLE_ENTRY 6194 These two relocations are used by the linker to determine which of 6195 the entries in a C++ virtual function table are actually used. 6196 When the -gc-sections option is given, the linker will zero out 6197 the entries that are not used, so that the code for those 6198 functions need not be included in the output. 6199 6200 VTABLE_INHERIT is a zero-space relocation used to describe to the 6201 linker the inheritance tree of a C++ virtual function table. The 6202 relocation's symbol should be the parent class' vtable, and the 6203 relocation should be located at the child vtable. 6204 6205 VTABLE_ENTRY is a zero-space relocation that describes the use of a 6206 virtual function table entry. The reloc's symbol should refer to 6207 the table of the class mentioned in the code. Off of that base, 6208 an offset describes the entry that is being used. For Rela hosts, 6209 this offset is stored in the reloc's addend. For Rel hosts, we 6210 are forced to put this offset in the reloc's section offset. 6211 6212 -- : BFD_RELOC_IA64_IMM14 6213 -- : BFD_RELOC_IA64_IMM22 6214 -- : BFD_RELOC_IA64_IMM64 6215 -- : BFD_RELOC_IA64_DIR32MSB 6216 -- : BFD_RELOC_IA64_DIR32LSB 6217 -- : BFD_RELOC_IA64_DIR64MSB 6218 -- : BFD_RELOC_IA64_DIR64LSB 6219 -- : BFD_RELOC_IA64_GPREL22 6220 -- : BFD_RELOC_IA64_GPREL64I 6221 -- : BFD_RELOC_IA64_GPREL32MSB 6222 -- : BFD_RELOC_IA64_GPREL32LSB 6223 -- : BFD_RELOC_IA64_GPREL64MSB 6224 -- : BFD_RELOC_IA64_GPREL64LSB 6225 -- : BFD_RELOC_IA64_LTOFF22 6226 -- : BFD_RELOC_IA64_LTOFF64I 6227 -- : BFD_RELOC_IA64_PLTOFF22 6228 -- : BFD_RELOC_IA64_PLTOFF64I 6229 -- : BFD_RELOC_IA64_PLTOFF64MSB 6230 -- : BFD_RELOC_IA64_PLTOFF64LSB 6231 -- : BFD_RELOC_IA64_FPTR64I 6232 -- : BFD_RELOC_IA64_FPTR32MSB 6233 -- : BFD_RELOC_IA64_FPTR32LSB 6234 -- : BFD_RELOC_IA64_FPTR64MSB 6235 -- : BFD_RELOC_IA64_FPTR64LSB 6236 -- : BFD_RELOC_IA64_PCREL21B 6237 -- : BFD_RELOC_IA64_PCREL21BI 6238 -- : BFD_RELOC_IA64_PCREL21M 6239 -- : BFD_RELOC_IA64_PCREL21F 6240 -- : BFD_RELOC_IA64_PCREL22 6241 -- : BFD_RELOC_IA64_PCREL60B 6242 -- : BFD_RELOC_IA64_PCREL64I 6243 -- : BFD_RELOC_IA64_PCREL32MSB 6244 -- : BFD_RELOC_IA64_PCREL32LSB 6245 -- : BFD_RELOC_IA64_PCREL64MSB 6246 -- : BFD_RELOC_IA64_PCREL64LSB 6247 -- : BFD_RELOC_IA64_LTOFF_FPTR22 6248 -- : BFD_RELOC_IA64_LTOFF_FPTR64I 6249 -- : BFD_RELOC_IA64_LTOFF_FPTR32MSB 6250 -- : BFD_RELOC_IA64_LTOFF_FPTR32LSB 6251 -- : BFD_RELOC_IA64_LTOFF_FPTR64MSB 6252 -- : BFD_RELOC_IA64_LTOFF_FPTR64LSB 6253 -- : BFD_RELOC_IA64_SEGREL32MSB 6254 -- : BFD_RELOC_IA64_SEGREL32LSB 6255 -- : BFD_RELOC_IA64_SEGREL64MSB 6256 -- : BFD_RELOC_IA64_SEGREL64LSB 6257 -- : BFD_RELOC_IA64_SECREL32MSB 6258 -- : BFD_RELOC_IA64_SECREL32LSB 6259 -- : BFD_RELOC_IA64_SECREL64MSB 6260 -- : BFD_RELOC_IA64_SECREL64LSB 6261 -- : BFD_RELOC_IA64_REL32MSB 6262 -- : BFD_RELOC_IA64_REL32LSB 6263 -- : BFD_RELOC_IA64_REL64MSB 6264 -- : BFD_RELOC_IA64_REL64LSB 6265 -- : BFD_RELOC_IA64_LTV32MSB 6266 -- : BFD_RELOC_IA64_LTV32LSB 6267 -- : BFD_RELOC_IA64_LTV64MSB 6268 -- : BFD_RELOC_IA64_LTV64LSB 6269 -- : BFD_RELOC_IA64_IPLTMSB 6270 -- : BFD_RELOC_IA64_IPLTLSB 6271 -- : BFD_RELOC_IA64_COPY 6272 -- : BFD_RELOC_IA64_LTOFF22X 6273 -- : BFD_RELOC_IA64_LDXMOV 6274 -- : BFD_RELOC_IA64_TPREL14 6275 -- : BFD_RELOC_IA64_TPREL22 6276 -- : BFD_RELOC_IA64_TPREL64I 6277 -- : BFD_RELOC_IA64_TPREL64MSB 6278 -- : BFD_RELOC_IA64_TPREL64LSB 6279 -- : BFD_RELOC_IA64_LTOFF_TPREL22 6280 -- : BFD_RELOC_IA64_DTPMOD64MSB 6281 -- : BFD_RELOC_IA64_DTPMOD64LSB 6282 -- : BFD_RELOC_IA64_LTOFF_DTPMOD22 6283 -- : BFD_RELOC_IA64_DTPREL14 6284 -- : BFD_RELOC_IA64_DTPREL22 6285 -- : BFD_RELOC_IA64_DTPREL64I 6286 -- : BFD_RELOC_IA64_DTPREL32MSB 6287 -- : BFD_RELOC_IA64_DTPREL32LSB 6288 -- : BFD_RELOC_IA64_DTPREL64MSB 6289 -- : BFD_RELOC_IA64_DTPREL64LSB 6290 -- : BFD_RELOC_IA64_LTOFF_DTPREL22 6291 Intel IA64 Relocations. 6292 6293 -- : BFD_RELOC_M68HC11_HI8 6294 Motorola 68HC11 reloc. This is the 8 bit high part of an absolute 6295 address. 6296 6297 -- : BFD_RELOC_M68HC11_LO8 6298 Motorola 68HC11 reloc. This is the 8 bit low part of an absolute 6299 address. 6300 6301 -- : BFD_RELOC_M68HC11_3B 6302 Motorola 68HC11 reloc. This is the 3 bit of a value. 6303 6304 -- : BFD_RELOC_M68HC11_RL_JUMP 6305 Motorola 68HC11 reloc. This reloc marks the beginning of a 6306 jump/call instruction. It is used for linker relaxation to 6307 correctly identify beginning of instruction and change some 6308 branches to use PC-relative addressing mode. 6309 6310 -- : BFD_RELOC_M68HC11_RL_GROUP 6311 Motorola 68HC11 reloc. This reloc marks a group of several 6312 instructions that gcc generates and for which the linker 6313 relaxation pass can modify and/or remove some of them. 6314 6315 -- : BFD_RELOC_M68HC11_LO16 6316 Motorola 68HC11 reloc. This is the 16-bit lower part of an 6317 address. It is used for 'call' instruction to specify the symbol 6318 address without any special transformation (due to memory bank 6319 window). 6320 6321 -- : BFD_RELOC_M68HC11_PAGE 6322 Motorola 68HC11 reloc. This is a 8-bit reloc that specifies the 6323 page number of an address. It is used by 'call' instruction to 6324 specify the page number of the symbol. 6325 6326 -- : BFD_RELOC_M68HC11_24 6327 Motorola 68HC11 reloc. This is a 24-bit reloc that represents the 6328 address with a 16-bit value and a 8-bit page number. The symbol 6329 address is transformed to follow the 16K memory bank of 68HC12 6330 (seen as mapped in the window). 6331 6332 -- : BFD_RELOC_M68HC12_5B 6333 Motorola 68HC12 reloc. This is the 5 bits of a value. 6334 6335 -- : BFD_RELOC_XGATE_RL_JUMP 6336 Freescale XGATE reloc. This reloc marks the beginning of a 6337 bra/jal instruction. 6338 6339 -- : BFD_RELOC_XGATE_RL_GROUP 6340 Freescale XGATE reloc. This reloc marks a group of several 6341 instructions that gcc generates and for which the linker 6342 relaxation pass can modify and/or remove some of them. 6343 6344 -- : BFD_RELOC_XGATE_LO16 6345 Freescale XGATE reloc. This is the 16-bit lower part of an 6346 address. It is used for the '16-bit' instructions. 6347 6348 -- : BFD_RELOC_XGATE_GPAGE 6349 Freescale XGATE reloc. 6350 6351 -- : BFD_RELOC_XGATE_24 6352 Freescale XGATE reloc. 6353 6354 -- : BFD_RELOC_XGATE_PCREL_9 6355 Freescale XGATE reloc. This is a 9-bit pc-relative reloc. 6356 6357 -- : BFD_RELOC_XGATE_PCREL_10 6358 Freescale XGATE reloc. This is a 10-bit pc-relative reloc. 6359 6360 -- : BFD_RELOC_XGATE_IMM8_LO 6361 Freescale XGATE reloc. This is the 16-bit lower part of an 6362 address. It is used for the '16-bit' instructions. 6363 6364 -- : BFD_RELOC_XGATE_IMM8_HI 6365 Freescale XGATE reloc. This is the 16-bit higher part of an 6366 address. It is used for the '16-bit' instructions. 6367 6368 -- : BFD_RELOC_XGATE_IMM3 6369 Freescale XGATE reloc. This is a 3-bit pc-relative reloc. 6370 6371 -- : BFD_RELOC_XGATE_IMM4 6372 Freescale XGATE reloc. This is a 4-bit pc-relative reloc. 6373 6374 -- : BFD_RELOC_XGATE_IMM5 6375 Freescale XGATE reloc. This is a 5-bit pc-relative reloc. 6376 6377 -- : BFD_RELOC_M68HC12_9B 6378 Motorola 68HC12 reloc. This is the 9 bits of a value. 6379 6380 -- : BFD_RELOC_M68HC12_16B 6381 Motorola 68HC12 reloc. This is the 16 bits of a value. 6382 6383 -- : BFD_RELOC_M68HC12_9_PCREL 6384 Motorola 68HC12/XGATE reloc. This is a PCREL9 branch. 6385 6386 -- : BFD_RELOC_M68HC12_10_PCREL 6387 Motorola 68HC12/XGATE reloc. This is a PCREL10 branch. 6388 6389 -- : BFD_RELOC_M68HC12_LO8XG 6390 Motorola 68HC12/XGATE reloc. This is the 8 bit low part of an 6391 absolute address and immediately precedes a matching HI8XG part. 6392 6393 -- : BFD_RELOC_M68HC12_HI8XG 6394 Motorola 68HC12/XGATE reloc. This is the 8 bit high part of an 6395 absolute address and immediately follows a matching LO8XG part. 6396 6397 -- : BFD_RELOC_S12Z_15_PCREL 6398 Freescale S12Z reloc. This is a 15 bit relative address. If the 6399 most significant bits are all zero then it may be truncated to 8 6400 bits. 6401 6402 -- : BFD_RELOC_CR16_NUM8 6403 -- : BFD_RELOC_CR16_NUM16 6404 -- : BFD_RELOC_CR16_NUM32 6405 -- : BFD_RELOC_CR16_NUM32a 6406 -- : BFD_RELOC_CR16_REGREL0 6407 -- : BFD_RELOC_CR16_REGREL4 6408 -- : BFD_RELOC_CR16_REGREL4a 6409 -- : BFD_RELOC_CR16_REGREL14 6410 -- : BFD_RELOC_CR16_REGREL14a 6411 -- : BFD_RELOC_CR16_REGREL16 6412 -- : BFD_RELOC_CR16_REGREL20 6413 -- : BFD_RELOC_CR16_REGREL20a 6414 -- : BFD_RELOC_CR16_ABS20 6415 -- : BFD_RELOC_CR16_ABS24 6416 -- : BFD_RELOC_CR16_IMM4 6417 -- : BFD_RELOC_CR16_IMM8 6418 -- : BFD_RELOC_CR16_IMM16 6419 -- : BFD_RELOC_CR16_IMM20 6420 -- : BFD_RELOC_CR16_IMM24 6421 -- : BFD_RELOC_CR16_IMM32 6422 -- : BFD_RELOC_CR16_IMM32a 6423 -- : BFD_RELOC_CR16_DISP4 6424 -- : BFD_RELOC_CR16_DISP8 6425 -- : BFD_RELOC_CR16_DISP16 6426 -- : BFD_RELOC_CR16_DISP20 6427 -- : BFD_RELOC_CR16_DISP24 6428 -- : BFD_RELOC_CR16_DISP24a 6429 -- : BFD_RELOC_CR16_SWITCH8 6430 -- : BFD_RELOC_CR16_SWITCH16 6431 -- : BFD_RELOC_CR16_SWITCH32 6432 -- : BFD_RELOC_CR16_GOT_REGREL20 6433 -- : BFD_RELOC_CR16_GOTC_REGREL20 6434 -- : BFD_RELOC_CR16_GLOB_DAT 6435 NS CR16 Relocations. 6436 6437 -- : BFD_RELOC_CRX_REL4 6438 -- : BFD_RELOC_CRX_REL8 6439 -- : BFD_RELOC_CRX_REL8_CMP 6440 -- : BFD_RELOC_CRX_REL16 6441 -- : BFD_RELOC_CRX_REL24 6442 -- : BFD_RELOC_CRX_REL32 6443 -- : BFD_RELOC_CRX_REGREL12 6444 -- : BFD_RELOC_CRX_REGREL22 6445 -- : BFD_RELOC_CRX_REGREL28 6446 -- : BFD_RELOC_CRX_REGREL32 6447 -- : BFD_RELOC_CRX_ABS16 6448 -- : BFD_RELOC_CRX_ABS32 6449 -- : BFD_RELOC_CRX_NUM8 6450 -- : BFD_RELOC_CRX_NUM16 6451 -- : BFD_RELOC_CRX_NUM32 6452 -- : BFD_RELOC_CRX_IMM16 6453 -- : BFD_RELOC_CRX_IMM32 6454 -- : BFD_RELOC_CRX_SWITCH8 6455 -- : BFD_RELOC_CRX_SWITCH16 6456 -- : BFD_RELOC_CRX_SWITCH32 6457 NS CRX Relocations. 6458 6459 -- : BFD_RELOC_CRIS_BDISP8 6460 -- : BFD_RELOC_CRIS_UNSIGNED_5 6461 -- : BFD_RELOC_CRIS_SIGNED_6 6462 -- : BFD_RELOC_CRIS_UNSIGNED_6 6463 -- : BFD_RELOC_CRIS_SIGNED_8 6464 -- : BFD_RELOC_CRIS_UNSIGNED_8 6465 -- : BFD_RELOC_CRIS_SIGNED_16 6466 -- : BFD_RELOC_CRIS_UNSIGNED_16 6467 -- : BFD_RELOC_CRIS_LAPCQ_OFFSET 6468 -- : BFD_RELOC_CRIS_UNSIGNED_4 6469 These relocs are only used within the CRIS assembler. They are not 6470 (at present) written to any object files. 6471 6472 -- : BFD_RELOC_CRIS_COPY 6473 -- : BFD_RELOC_CRIS_GLOB_DAT 6474 -- : BFD_RELOC_CRIS_JUMP_SLOT 6475 -- : BFD_RELOC_CRIS_RELATIVE 6476 Relocs used in ELF shared libraries for CRIS. 6477 6478 -- : BFD_RELOC_CRIS_32_GOT 6479 32-bit offset to symbol-entry within GOT. 6480 6481 -- : BFD_RELOC_CRIS_16_GOT 6482 16-bit offset to symbol-entry within GOT. 6483 6484 -- : BFD_RELOC_CRIS_32_GOTPLT 6485 32-bit offset to symbol-entry within GOT, with PLT handling. 6486 6487 -- : BFD_RELOC_CRIS_16_GOTPLT 6488 16-bit offset to symbol-entry within GOT, with PLT handling. 6489 6490 -- : BFD_RELOC_CRIS_32_GOTREL 6491 32-bit offset to symbol, relative to GOT. 6492 6493 -- : BFD_RELOC_CRIS_32_PLT_GOTREL 6494 32-bit offset to symbol with PLT entry, relative to GOT. 6495 6496 -- : BFD_RELOC_CRIS_32_PLT_PCREL 6497 32-bit offset to symbol with PLT entry, relative to this 6498 relocation. 6499 6500 -- : BFD_RELOC_CRIS_32_GOT_GD 6501 -- : BFD_RELOC_CRIS_16_GOT_GD 6502 -- : BFD_RELOC_CRIS_32_GD 6503 -- : BFD_RELOC_CRIS_DTP 6504 -- : BFD_RELOC_CRIS_32_DTPREL 6505 -- : BFD_RELOC_CRIS_16_DTPREL 6506 -- : BFD_RELOC_CRIS_32_GOT_TPREL 6507 -- : BFD_RELOC_CRIS_16_GOT_TPREL 6508 -- : BFD_RELOC_CRIS_32_TPREL 6509 -- : BFD_RELOC_CRIS_16_TPREL 6510 -- : BFD_RELOC_CRIS_DTPMOD 6511 -- : BFD_RELOC_CRIS_32_IE 6512 Relocs used in TLS code for CRIS. 6513 6514 -- : BFD_RELOC_OR1K_REL_26 6515 -- : BFD_RELOC_OR1K_SLO16 6516 -- : BFD_RELOC_OR1K_PCREL_PG21 6517 -- : BFD_RELOC_OR1K_LO13 6518 -- : BFD_RELOC_OR1K_SLO13 6519 -- : BFD_RELOC_OR1K_GOTPC_HI16 6520 -- : BFD_RELOC_OR1K_GOTPC_LO16 6521 -- : BFD_RELOC_OR1K_GOT_AHI16 6522 -- : BFD_RELOC_OR1K_GOT16 6523 -- : BFD_RELOC_OR1K_GOT_PG21 6524 -- : BFD_RELOC_OR1K_GOT_LO13 6525 -- : BFD_RELOC_OR1K_PLT26 6526 -- : BFD_RELOC_OR1K_PLTA26 6527 -- : BFD_RELOC_OR1K_GOTOFF_SLO16 6528 -- : BFD_RELOC_OR1K_COPY 6529 -- : BFD_RELOC_OR1K_GLOB_DAT 6530 -- : BFD_RELOC_OR1K_JMP_SLOT 6531 -- : BFD_RELOC_OR1K_RELATIVE 6532 -- : BFD_RELOC_OR1K_TLS_GD_HI16 6533 -- : BFD_RELOC_OR1K_TLS_GD_LO16 6534 -- : BFD_RELOC_OR1K_TLS_GD_PG21 6535 -- : BFD_RELOC_OR1K_TLS_GD_LO13 6536 -- : BFD_RELOC_OR1K_TLS_LDM_HI16 6537 -- : BFD_RELOC_OR1K_TLS_LDM_LO16 6538 -- : BFD_RELOC_OR1K_TLS_LDM_PG21 6539 -- : BFD_RELOC_OR1K_TLS_LDM_LO13 6540 -- : BFD_RELOC_OR1K_TLS_LDO_HI16 6541 -- : BFD_RELOC_OR1K_TLS_LDO_LO16 6542 -- : BFD_RELOC_OR1K_TLS_IE_HI16 6543 -- : BFD_RELOC_OR1K_TLS_IE_AHI16 6544 -- : BFD_RELOC_OR1K_TLS_IE_LO16 6545 -- : BFD_RELOC_OR1K_TLS_IE_PG21 6546 -- : BFD_RELOC_OR1K_TLS_IE_LO13 6547 -- : BFD_RELOC_OR1K_TLS_LE_HI16 6548 -- : BFD_RELOC_OR1K_TLS_LE_AHI16 6549 -- : BFD_RELOC_OR1K_TLS_LE_LO16 6550 -- : BFD_RELOC_OR1K_TLS_LE_SLO16 6551 -- : BFD_RELOC_OR1K_TLS_TPOFF 6552 -- : BFD_RELOC_OR1K_TLS_DTPOFF 6553 -- : BFD_RELOC_OR1K_TLS_DTPMOD 6554 OpenRISC 1000 Relocations. 6555 6556 -- : BFD_RELOC_H8_DIR16A8 6557 -- : BFD_RELOC_H8_DIR16R8 6558 -- : BFD_RELOC_H8_DIR24A8 6559 -- : BFD_RELOC_H8_DIR24R8 6560 -- : BFD_RELOC_H8_DIR32A16 6561 -- : BFD_RELOC_H8_DISP32A16 6562 H8 elf Relocations. 6563 6564 -- : BFD_RELOC_XSTORMY16_REL_12 6565 -- : BFD_RELOC_XSTORMY16_12 6566 -- : BFD_RELOC_XSTORMY16_24 6567 -- : BFD_RELOC_XSTORMY16_FPTR16 6568 Sony Xstormy16 Relocations. 6569 6570 -- : BFD_RELOC_RELC 6571 Self-describing complex relocations. 6572 6573 -- : BFD_RELOC_VAX_GLOB_DAT 6574 -- : BFD_RELOC_VAX_JMP_SLOT 6575 -- : BFD_RELOC_VAX_RELATIVE 6576 Relocations used by VAX ELF. 6577 6578 -- : BFD_RELOC_MT_PC16 6579 Morpho MT - 16 bit immediate relocation. 6580 6581 -- : BFD_RELOC_MT_HI16 6582 Morpho MT - Hi 16 bits of an address. 6583 6584 -- : BFD_RELOC_MT_LO16 6585 Morpho MT - Low 16 bits of an address. 6586 6587 -- : BFD_RELOC_MT_GNU_VTINHERIT 6588 Morpho MT - Used to tell the linker which vtable entries are used. 6589 6590 -- : BFD_RELOC_MT_GNU_VTENTRY 6591 Morpho MT - Used to tell the linker which vtable entries are used. 6592 6593 -- : BFD_RELOC_MT_PCINSN8 6594 Morpho MT - 8 bit immediate relocation. 6595 6596 -- : BFD_RELOC_MSP430_10_PCREL 6597 -- : BFD_RELOC_MSP430_16_PCREL 6598 -- : BFD_RELOC_MSP430_16 6599 -- : BFD_RELOC_MSP430_16_PCREL_BYTE 6600 -- : BFD_RELOC_MSP430_16_BYTE 6601 -- : BFD_RELOC_MSP430_2X_PCREL 6602 -- : BFD_RELOC_MSP430_RL_PCREL 6603 -- : BFD_RELOC_MSP430_ABS8 6604 -- : BFD_RELOC_MSP430X_PCR20_EXT_SRC 6605 -- : BFD_RELOC_MSP430X_PCR20_EXT_DST 6606 -- : BFD_RELOC_MSP430X_PCR20_EXT_ODST 6607 -- : BFD_RELOC_MSP430X_ABS20_EXT_SRC 6608 -- : BFD_RELOC_MSP430X_ABS20_EXT_DST 6609 -- : BFD_RELOC_MSP430X_ABS20_EXT_ODST 6610 -- : BFD_RELOC_MSP430X_ABS20_ADR_SRC 6611 -- : BFD_RELOC_MSP430X_ABS20_ADR_DST 6612 -- : BFD_RELOC_MSP430X_PCR16 6613 -- : BFD_RELOC_MSP430X_PCR20_CALL 6614 -- : BFD_RELOC_MSP430X_ABS16 6615 -- : BFD_RELOC_MSP430_ABS_HI16 6616 -- : BFD_RELOC_MSP430_PREL31 6617 -- : BFD_RELOC_MSP430_SYM_DIFF 6618 -- : BFD_RELOC_MSP430_SET_ULEB128 6619 -- : BFD_RELOC_MSP430_SUB_ULEB128 6620 msp430 specific relocation codes 6621 6622 -- : BFD_RELOC_NIOS2_S16 6623 -- : BFD_RELOC_NIOS2_U16 6624 -- : BFD_RELOC_NIOS2_CALL26 6625 -- : BFD_RELOC_NIOS2_IMM5 6626 -- : BFD_RELOC_NIOS2_CACHE_OPX 6627 -- : BFD_RELOC_NIOS2_IMM6 6628 -- : BFD_RELOC_NIOS2_IMM8 6629 -- : BFD_RELOC_NIOS2_HI16 6630 -- : BFD_RELOC_NIOS2_LO16 6631 -- : BFD_RELOC_NIOS2_HIADJ16 6632 -- : BFD_RELOC_NIOS2_GPREL 6633 -- : BFD_RELOC_NIOS2_UJMP 6634 -- : BFD_RELOC_NIOS2_CJMP 6635 -- : BFD_RELOC_NIOS2_CALLR 6636 -- : BFD_RELOC_NIOS2_ALIGN 6637 -- : BFD_RELOC_NIOS2_GOT16 6638 -- : BFD_RELOC_NIOS2_CALL16 6639 -- : BFD_RELOC_NIOS2_GOTOFF_LO 6640 -- : BFD_RELOC_NIOS2_GOTOFF_HA 6641 -- : BFD_RELOC_NIOS2_PCREL_LO 6642 -- : BFD_RELOC_NIOS2_PCREL_HA 6643 -- : BFD_RELOC_NIOS2_TLS_GD16 6644 -- : BFD_RELOC_NIOS2_TLS_LDM16 6645 -- : BFD_RELOC_NIOS2_TLS_LDO16 6646 -- : BFD_RELOC_NIOS2_TLS_IE16 6647 -- : BFD_RELOC_NIOS2_TLS_LE16 6648 -- : BFD_RELOC_NIOS2_TLS_DTPMOD 6649 -- : BFD_RELOC_NIOS2_TLS_DTPREL 6650 -- : BFD_RELOC_NIOS2_TLS_TPREL 6651 -- : BFD_RELOC_NIOS2_COPY 6652 -- : BFD_RELOC_NIOS2_GLOB_DAT 6653 -- : BFD_RELOC_NIOS2_JUMP_SLOT 6654 -- : BFD_RELOC_NIOS2_RELATIVE 6655 -- : BFD_RELOC_NIOS2_GOTOFF 6656 -- : BFD_RELOC_NIOS2_CALL26_NOAT 6657 -- : BFD_RELOC_NIOS2_GOT_LO 6658 -- : BFD_RELOC_NIOS2_GOT_HA 6659 -- : BFD_RELOC_NIOS2_CALL_LO 6660 -- : BFD_RELOC_NIOS2_CALL_HA 6661 -- : BFD_RELOC_NIOS2_R2_S12 6662 -- : BFD_RELOC_NIOS2_R2_I10_1_PCREL 6663 -- : BFD_RELOC_NIOS2_R2_T1I7_1_PCREL 6664 -- : BFD_RELOC_NIOS2_R2_T1I7_2 6665 -- : BFD_RELOC_NIOS2_R2_T2I4 6666 -- : BFD_RELOC_NIOS2_R2_T2I4_1 6667 -- : BFD_RELOC_NIOS2_R2_T2I4_2 6668 -- : BFD_RELOC_NIOS2_R2_X1I7_2 6669 -- : BFD_RELOC_NIOS2_R2_X2L5 6670 -- : BFD_RELOC_NIOS2_R2_F1I5_2 6671 -- : BFD_RELOC_NIOS2_R2_L5I4X1 6672 -- : BFD_RELOC_NIOS2_R2_T1X1I6 6673 -- : BFD_RELOC_NIOS2_R2_T1X1I6_2 6674 Relocations used by the Altera Nios II core. 6675 6676 -- : BFD_RELOC_PRU_U16 6677 PRU LDI 16-bit unsigned data-memory relocation. 6678 6679 -- : BFD_RELOC_PRU_U16_PMEMIMM 6680 PRU LDI 16-bit unsigned instruction-memory relocation. 6681 6682 -- : BFD_RELOC_PRU_LDI32 6683 PRU relocation for two consecutive LDI load instructions that load 6684 a 32 bit value into a register. If the higher bits are all zero, 6685 then the second instruction may be relaxed. 6686 6687 -- : BFD_RELOC_PRU_S10_PCREL 6688 PRU QBBx 10-bit signed PC-relative relocation. 6689 6690 -- : BFD_RELOC_PRU_U8_PCREL 6691 PRU 8-bit unsigned relocation used for the LOOP instruction. 6692 6693 -- : BFD_RELOC_PRU_32_PMEM 6694 -- : BFD_RELOC_PRU_16_PMEM 6695 PRU Program Memory relocations. Used to convert from byte 6696 addressing to 32-bit word addressing. 6697 6698 -- : BFD_RELOC_PRU_GNU_DIFF8 6699 -- : BFD_RELOC_PRU_GNU_DIFF16 6700 -- : BFD_RELOC_PRU_GNU_DIFF32 6701 -- : BFD_RELOC_PRU_GNU_DIFF16_PMEM 6702 -- : BFD_RELOC_PRU_GNU_DIFF32_PMEM 6703 PRU relocations to mark the difference of two local symbols. 6704 These are only needed to support linker relaxation and can be 6705 ignored when not relaxing. The field is set to the value of the 6706 difference assuming no relaxation. The relocation encodes the 6707 position of the second symbol so the linker can determine whether 6708 to adjust the field value. The PMEM variants encode the word 6709 difference, instead of byte difference between symbols. 6710 6711 -- : BFD_RELOC_IQ2000_OFFSET_16 6712 -- : BFD_RELOC_IQ2000_OFFSET_21 6713 -- : BFD_RELOC_IQ2000_UHI16 6714 IQ2000 Relocations. 6715 6716 -- : BFD_RELOC_XTENSA_RTLD 6717 Special Xtensa relocation used only by PLT entries in ELF shared 6718 objects to indicate that the runtime linker should set the value 6719 to one of its own internal functions or data structures. 6720 6721 -- : BFD_RELOC_XTENSA_GLOB_DAT 6722 -- : BFD_RELOC_XTENSA_JMP_SLOT 6723 -- : BFD_RELOC_XTENSA_RELATIVE 6724 Xtensa relocations for ELF shared objects. 6725 6726 -- : BFD_RELOC_XTENSA_PLT 6727 Xtensa relocation used in ELF object files for symbols that may 6728 require PLT entries. Otherwise, this is just a generic 32-bit 6729 relocation. 6730 6731 -- : BFD_RELOC_XTENSA_DIFF8 6732 -- : BFD_RELOC_XTENSA_DIFF16 6733 -- : BFD_RELOC_XTENSA_DIFF32 6734 Xtensa relocations for backward compatibility. These have been 6735 replaced by BFD_RELOC_XTENSA_PDIFF and BFD_RELOC_XTENSA_NDIFF. 6736 Xtensa relocations to mark the difference of two local symbols. 6737 These are only needed to support linker relaxation and can be 6738 ignored when not relaxing. The field is set to the value of the 6739 difference assuming no relaxation. The relocation encodes the 6740 position of the first symbol so the linker can determine whether 6741 to adjust the field value. 6742 6743 -- : BFD_RELOC_XTENSA_SLOT0_OP 6744 -- : BFD_RELOC_XTENSA_SLOT1_OP 6745 -- : BFD_RELOC_XTENSA_SLOT2_OP 6746 -- : BFD_RELOC_XTENSA_SLOT3_OP 6747 -- : BFD_RELOC_XTENSA_SLOT4_OP 6748 -- : BFD_RELOC_XTENSA_SLOT5_OP 6749 -- : BFD_RELOC_XTENSA_SLOT6_OP 6750 -- : BFD_RELOC_XTENSA_SLOT7_OP 6751 -- : BFD_RELOC_XTENSA_SLOT8_OP 6752 -- : BFD_RELOC_XTENSA_SLOT9_OP 6753 -- : BFD_RELOC_XTENSA_SLOT10_OP 6754 -- : BFD_RELOC_XTENSA_SLOT11_OP 6755 -- : BFD_RELOC_XTENSA_SLOT12_OP 6756 -- : BFD_RELOC_XTENSA_SLOT13_OP 6757 -- : BFD_RELOC_XTENSA_SLOT14_OP 6758 Generic Xtensa relocations for instruction operands. Only the slot 6759 number is encoded in the relocation. The relocation applies to the 6760 last PC-relative immediate operand, or if there are no PC-relative 6761 immediates, to the last immediate operand. 6762 6763 -- : BFD_RELOC_XTENSA_SLOT0_ALT 6764 -- : BFD_RELOC_XTENSA_SLOT1_ALT 6765 -- : BFD_RELOC_XTENSA_SLOT2_ALT 6766 -- : BFD_RELOC_XTENSA_SLOT3_ALT 6767 -- : BFD_RELOC_XTENSA_SLOT4_ALT 6768 -- : BFD_RELOC_XTENSA_SLOT5_ALT 6769 -- : BFD_RELOC_XTENSA_SLOT6_ALT 6770 -- : BFD_RELOC_XTENSA_SLOT7_ALT 6771 -- : BFD_RELOC_XTENSA_SLOT8_ALT 6772 -- : BFD_RELOC_XTENSA_SLOT9_ALT 6773 -- : BFD_RELOC_XTENSA_SLOT10_ALT 6774 -- : BFD_RELOC_XTENSA_SLOT11_ALT 6775 -- : BFD_RELOC_XTENSA_SLOT12_ALT 6776 -- : BFD_RELOC_XTENSA_SLOT13_ALT 6777 -- : BFD_RELOC_XTENSA_SLOT14_ALT 6778 Alternate Xtensa relocations. Only the slot is encoded in the 6779 relocation. The meaning of these relocations is opcode-specific. 6780 6781 -- : BFD_RELOC_XTENSA_OP0 6782 -- : BFD_RELOC_XTENSA_OP1 6783 -- : BFD_RELOC_XTENSA_OP2 6784 Xtensa relocations for backward compatibility. These have all been 6785 replaced by BFD_RELOC_XTENSA_SLOT0_OP. 6786 6787 -- : BFD_RELOC_XTENSA_ASM_EXPAND 6788 Xtensa relocation to mark that the assembler expanded the 6789 instructions from an original target. The expansion size is 6790 encoded in the reloc size. 6791 6792 -- : BFD_RELOC_XTENSA_ASM_SIMPLIFY 6793 Xtensa relocation to mark that the linker should simplify 6794 assembler-expanded instructions. This is commonly used internally 6795 by the linker after analysis of a BFD_RELOC_XTENSA_ASM_EXPAND. 6796 6797 -- : BFD_RELOC_XTENSA_TLSDESC_FN 6798 -- : BFD_RELOC_XTENSA_TLSDESC_ARG 6799 -- : BFD_RELOC_XTENSA_TLS_DTPOFF 6800 -- : BFD_RELOC_XTENSA_TLS_TPOFF 6801 -- : BFD_RELOC_XTENSA_TLS_FUNC 6802 -- : BFD_RELOC_XTENSA_TLS_ARG 6803 -- : BFD_RELOC_XTENSA_TLS_CALL 6804 Xtensa TLS relocations. 6805 6806 -- : BFD_RELOC_XTENSA_PDIFF8 6807 -- : BFD_RELOC_XTENSA_PDIFF16 6808 -- : BFD_RELOC_XTENSA_PDIFF32 6809 -- : BFD_RELOC_XTENSA_NDIFF8 6810 -- : BFD_RELOC_XTENSA_NDIFF16 6811 -- : BFD_RELOC_XTENSA_NDIFF32 6812 Xtensa relocations to mark the difference of two local symbols. 6813 These are only needed to support linker relaxation and can be 6814 ignored when not relaxing. The field is set to the value of the 6815 difference assuming no relaxation. The relocation encodes the 6816 position of the subtracted symbol so the linker can determine 6817 whether to adjust the field value. PDIFF relocations are used for 6818 positive differences, NDIFF relocations are used for negative 6819 differences. The difference value is treated as unsigned with 6820 these relocation types, giving full 8/16 value ranges. 6821 6822 -- : BFD_RELOC_Z80_DISP8 6823 8 bit signed offset in (ix+d) or (iy+d). 6824 6825 -- : BFD_RELOC_Z80_BYTE0 6826 First 8 bits of multibyte (32, 24 or 16 bit) value. 6827 6828 -- : BFD_RELOC_Z80_BYTE1 6829 Second 8 bits of multibyte (32, 24 or 16 bit) value. 6830 6831 -- : BFD_RELOC_Z80_BYTE2 6832 Third 8 bits of multibyte (32 or 24 bit) value. 6833 6834 -- : BFD_RELOC_Z80_BYTE3 6835 Fourth 8 bits of multibyte (32 bit) value. 6836 6837 -- : BFD_RELOC_Z80_WORD0 6838 Lowest 16 bits of multibyte (32 or 24 bit) value. 6839 6840 -- : BFD_RELOC_Z80_WORD1 6841 Highest 16 bits of multibyte (32 or 24 bit) value. 6842 6843 -- : BFD_RELOC_Z80_16_BE 6844 Like BFD_RELOC_16 but big-endian. 6845 6846 -- : BFD_RELOC_Z8K_DISP7 6847 DJNZ offset. 6848 6849 -- : BFD_RELOC_Z8K_CALLR 6850 CALR offset. 6851 6852 -- : BFD_RELOC_Z8K_IMM4L 6853 4 bit value. 6854 6855 -- : BFD_RELOC_LM32_CALL 6856 -- : BFD_RELOC_LM32_BRANCH 6857 -- : BFD_RELOC_LM32_16_GOT 6858 -- : BFD_RELOC_LM32_GOTOFF_HI16 6859 -- : BFD_RELOC_LM32_GOTOFF_LO16 6860 -- : BFD_RELOC_LM32_COPY 6861 -- : BFD_RELOC_LM32_GLOB_DAT 6862 -- : BFD_RELOC_LM32_JMP_SLOT 6863 -- : BFD_RELOC_LM32_RELATIVE 6864 Lattice Mico32 relocations. 6865 6866 -- : BFD_RELOC_MACH_O_SECTDIFF 6867 Difference between two section addreses. Must be followed by a 6868 BFD_RELOC_MACH_O_PAIR. 6869 6870 -- : BFD_RELOC_MACH_O_LOCAL_SECTDIFF 6871 Like BFD_RELOC_MACH_O_SECTDIFF but with a local symbol. 6872 6873 -- : BFD_RELOC_MACH_O_PAIR 6874 Pair of relocation. Contains the first symbol. 6875 6876 -- : BFD_RELOC_MACH_O_SUBTRACTOR32 6877 Symbol will be substracted. Must be followed by a BFD_RELOC_32. 6878 6879 -- : BFD_RELOC_MACH_O_SUBTRACTOR64 6880 Symbol will be substracted. Must be followed by a BFD_RELOC_64. 6881 6882 -- : BFD_RELOC_MACH_O_X86_64_BRANCH32 6883 -- : BFD_RELOC_MACH_O_X86_64_BRANCH8 6884 PCREL relocations. They are marked as branch to create PLT entry 6885 if required. 6886 6887 -- : BFD_RELOC_MACH_O_X86_64_GOT 6888 Used when referencing a GOT entry. 6889 6890 -- : BFD_RELOC_MACH_O_X86_64_GOT_LOAD 6891 Used when loading a GOT entry with movq. It is specially marked 6892 so that the linker could optimize the movq to a leaq if possible. 6893 6894 -- : BFD_RELOC_MACH_O_X86_64_PCREL32_1 6895 Same as BFD_RELOC_32_PCREL but with an implicit -1 addend. 6896 6897 -- : BFD_RELOC_MACH_O_X86_64_PCREL32_2 6898 Same as BFD_RELOC_32_PCREL but with an implicit -2 addend. 6899 6900 -- : BFD_RELOC_MACH_O_X86_64_PCREL32_4 6901 Same as BFD_RELOC_32_PCREL but with an implicit -4 addend. 6902 6903 -- : BFD_RELOC_MACH_O_X86_64_TLV 6904 Used when referencing a TLV entry. 6905 6906 -- : BFD_RELOC_MACH_O_ARM64_ADDEND 6907 Addend for PAGE or PAGEOFF. 6908 6909 -- : BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21 6910 Relative offset to page of GOT slot. 6911 6912 -- : BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12 6913 Relative offset within page of GOT slot. 6914 6915 -- : BFD_RELOC_MACH_O_ARM64_POINTER_TO_GOT 6916 Address of a GOT entry. 6917 6918 -- : BFD_RELOC_MICROBLAZE_32_LO 6919 This is a 32 bit reloc for the microblaze that stores the low 16 6920 bits of a value 6921 6922 -- : BFD_RELOC_MICROBLAZE_32_LO_PCREL 6923 This is a 32 bit pc-relative reloc for the microblaze that stores 6924 the low 16 bits of a value 6925 6926 -- : BFD_RELOC_MICROBLAZE_32_ROSDA 6927 This is a 32 bit reloc for the microblaze that stores a value 6928 relative to the read-only small data area anchor 6929 6930 -- : BFD_RELOC_MICROBLAZE_32_RWSDA 6931 This is a 32 bit reloc for the microblaze that stores a value 6932 relative to the read-write small data area anchor 6933 6934 -- : BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM 6935 This is a 32 bit reloc for the microblaze to handle expressions of 6936 the form "Symbol Op Symbol" 6937 6938 -- : BFD_RELOC_MICROBLAZE_64_NONE 6939 This is a 64 bit reloc that stores the 32 bit pc relative value in 6940 two words (with an imm instruction). No relocation is done here - 6941 only used for relaxing 6942 6943 -- : BFD_RELOC_MICROBLAZE_64_GOTPC 6944 This is a 64 bit reloc that stores the 32 bit pc relative value in 6945 two words (with an imm instruction). The relocation is 6946 PC-relative GOT offset 6947 6948 -- : BFD_RELOC_MICROBLAZE_64_GOT 6949 This is a 64 bit reloc that stores the 32 bit pc relative value in 6950 two words (with an imm instruction). The relocation is GOT offset 6951 6952 -- : BFD_RELOC_MICROBLAZE_64_PLT 6953 This is a 64 bit reloc that stores the 32 bit pc relative value in 6954 two words (with an imm instruction). The relocation is 6955 PC-relative offset into PLT 6956 6957 -- : BFD_RELOC_MICROBLAZE_64_GOTOFF 6958 This is a 64 bit reloc that stores the 32 bit GOT relative value 6959 in two words (with an imm instruction). The relocation is 6960 relative offset from _GLOBAL_OFFSET_TABLE_ 6961 6962 -- : BFD_RELOC_MICROBLAZE_32_GOTOFF 6963 This is a 32 bit reloc that stores the 32 bit GOT relative value 6964 in a word. The relocation is relative offset from 6965 6966 -- : BFD_RELOC_MICROBLAZE_COPY 6967 This is used to tell the dynamic linker to copy the value out of 6968 the dynamic object into the runtime process image. 6969 6970 -- : BFD_RELOC_MICROBLAZE_64_TLS 6971 Unused Reloc 6972 6973 -- : BFD_RELOC_MICROBLAZE_64_TLSGD 6974 This is a 64 bit reloc that stores the 32 bit GOT relative value 6975 of the GOT TLS GD info entry in two words (with an imm 6976 instruction). The relocation is GOT offset. 6977 6978 -- : BFD_RELOC_MICROBLAZE_64_TLSLD 6979 This is a 64 bit reloc that stores the 32 bit GOT relative value 6980 of the GOT TLS LD info entry in two words (with an imm 6981 instruction). The relocation is GOT offset. 6982 6983 -- : BFD_RELOC_MICROBLAZE_32_TLSDTPMOD 6984 This is a 32 bit reloc that stores the Module ID to GOT(n). 6985 6986 -- : BFD_RELOC_MICROBLAZE_32_TLSDTPREL 6987 This is a 32 bit reloc that stores TLS offset to GOT(n+1). 6988 6989 -- : BFD_RELOC_MICROBLAZE_64_TLSDTPREL 6990 This is a 32 bit reloc for storing TLS offset to two words (uses 6991 imm instruction) 6992 6993 -- : BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL 6994 This is a 64 bit reloc that stores 32-bit thread pointer relative 6995 offset to two words (uses imm instruction). 6996 6997 -- : BFD_RELOC_MICROBLAZE_64_TLSTPREL 6998 This is a 64 bit reloc that stores 32-bit thread pointer relative 6999 offset to two words (uses imm instruction). 7000 7001 -- : BFD_RELOC_MICROBLAZE_64_TEXTPCREL 7002 This is a 64 bit reloc that stores the 32 bit pc relative value in 7003 two words (with an imm instruction). The relocation is 7004 PC-relative offset from start of TEXT. 7005 7006 -- : BFD_RELOC_MICROBLAZE_64_TEXTREL 7007 This is a 64 bit reloc that stores the 32 bit offset value in two 7008 words (with an imm instruction). The relocation is relative 7009 offset from start of TEXT. 7010 7011 -- : BFD_RELOC_AARCH64_RELOC_START 7012 AArch64 pseudo relocation code to mark the start of the AArch64 7013 relocation enumerators. N.B. the order of the enumerators is 7014 important as several tables in the AArch64 bfd backend are indexed 7015 by these enumerators; make sure they are all synced. 7016 7017 -- : BFD_RELOC_AARCH64_NULL 7018 Deprecated AArch64 null relocation code. 7019 7020 -- : BFD_RELOC_AARCH64_NONE 7021 AArch64 null relocation code. 7022 7023 -- : BFD_RELOC_AARCH64_64 7024 -- : BFD_RELOC_AARCH64_32 7025 -- : BFD_RELOC_AARCH64_16 7026 Basic absolute relocations of N bits. These are equivalent to 7027 BFD_RELOC_N and they were added to assist the indexing of the howto 7028 table. 7029 7030 -- : BFD_RELOC_AARCH64_64_PCREL 7031 -- : BFD_RELOC_AARCH64_32_PCREL 7032 -- : BFD_RELOC_AARCH64_16_PCREL 7033 PC-relative relocations. These are equivalent to BFD_RELOC_N_PCREL 7034 and they were added to assist the indexing of the howto table. 7035 7036 -- : BFD_RELOC_AARCH64_MOVW_G0 7037 AArch64 MOV[NZK] instruction with most significant bits 0 to 15 of 7038 an unsigned address/value. 7039 7040 -- : BFD_RELOC_AARCH64_MOVW_G0_NC 7041 AArch64 MOV[NZK] instruction with less significant bits 0 to 15 of 7042 an address/value. No overflow checking. 7043 7044 -- : BFD_RELOC_AARCH64_MOVW_G1 7045 AArch64 MOV[NZK] instruction with most significant bits 16 to 31 7046 of an unsigned address/value. 7047 7048 -- : BFD_RELOC_AARCH64_MOVW_G1_NC 7049 AArch64 MOV[NZK] instruction with less significant bits 16 to 31 7050 of an address/value. No overflow checking. 7051 7052 -- : BFD_RELOC_AARCH64_MOVW_G2 7053 AArch64 MOV[NZK] instruction with most significant bits 32 to 47 7054 of an unsigned address/value. 7055 7056 -- : BFD_RELOC_AARCH64_MOVW_G2_NC 7057 AArch64 MOV[NZK] instruction with less significant bits 32 to 47 7058 of an address/value. No overflow checking. 7059 7060 -- : BFD_RELOC_AARCH64_MOVW_G3 7061 AArch64 MOV[NZK] instruction with most signficant bits 48 to 64 of 7062 a signed or unsigned address/value. 7063 7064 -- : BFD_RELOC_AARCH64_MOVW_G0_S 7065 AArch64 MOV[NZ] instruction with most significant bits 0 to 15 of 7066 a signed value. Changes instruction to MOVZ or MOVN depending on 7067 the value's sign. 7068 7069 -- : BFD_RELOC_AARCH64_MOVW_G1_S 7070 AArch64 MOV[NZ] instruction with most significant bits 16 to 31 of 7071 a signed value. Changes instruction to MOVZ or MOVN depending on 7072 the value's sign. 7073 7074 -- : BFD_RELOC_AARCH64_MOVW_G2_S 7075 AArch64 MOV[NZ] instruction with most significant bits 32 to 47 of 7076 a signed value. Changes instruction to MOVZ or MOVN depending on 7077 the value's sign. 7078 7079 -- : BFD_RELOC_AARCH64_MOVW_PREL_G0 7080 AArch64 MOV[NZ] instruction with most significant bits 0 to 15 of 7081 a signed value. Changes instruction to MOVZ or MOVN depending on 7082 the value's sign. 7083 7084 -- : BFD_RELOC_AARCH64_MOVW_PREL_G0_NC 7085 AArch64 MOV[NZ] instruction with most significant bits 0 to 15 of 7086 a signed value. Changes instruction to MOVZ or MOVN depending on 7087 the value's sign. 7088 7089 -- : BFD_RELOC_AARCH64_MOVW_PREL_G1 7090 AArch64 MOVK instruction with most significant bits 16 to 31 of a 7091 signed value. 7092 7093 -- : BFD_RELOC_AARCH64_MOVW_PREL_G1_NC 7094 AArch64 MOVK instruction with most significant bits 16 to 31 of a 7095 signed value. 7096 7097 -- : BFD_RELOC_AARCH64_MOVW_PREL_G2 7098 AArch64 MOVK instruction with most significant bits 32 to 47 of a 7099 signed value. 7100 7101 -- : BFD_RELOC_AARCH64_MOVW_PREL_G2_NC 7102 AArch64 MOVK instruction with most significant bits 32 to 47 of a 7103 signed value. 7104 7105 -- : BFD_RELOC_AARCH64_MOVW_PREL_G3 7106 AArch64 MOVK instruction with most significant bits 47 to 63 of a 7107 signed value. 7108 7109 -- : BFD_RELOC_AARCH64_LD_LO19_PCREL 7110 AArch64 Load Literal instruction, holding a 19 bit pc-relative word 7111 offset. The lowest two bits must be zero and are not stored in the 7112 instruction, giving a 21 bit signed byte offset. 7113 7114 -- : BFD_RELOC_AARCH64_ADR_LO21_PCREL 7115 AArch64 ADR instruction, holding a simple 21 bit pc-relative byte 7116 offset. 7117 7118 -- : BFD_RELOC_AARCH64_ADR_HI21_PCREL 7119 AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page 7120 offset, giving a 4KB aligned page base address. 7121 7122 -- : BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL 7123 AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page 7124 offset, giving a 4KB aligned page base address, but with no 7125 overflow checking. 7126 7127 -- : BFD_RELOC_AARCH64_ADD_LO12 7128 AArch64 ADD immediate instruction, holding bits 0 to 11 of the 7129 address. Used in conjunction with 7130 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 7131 7132 -- : BFD_RELOC_AARCH64_LDST8_LO12 7133 AArch64 8-bit load/store instruction, holding bits 0 to 11 of the 7134 address. Used in conjunction with 7135 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 7136 7137 -- : BFD_RELOC_AARCH64_TSTBR14 7138 AArch64 14 bit pc-relative test bit and branch. The lowest two 7139 bits must be zero and are not stored in the instruction, giving a 7140 16 bit signed byte offset. 7141 7142 -- : BFD_RELOC_AARCH64_BRANCH19 7143 AArch64 19 bit pc-relative conditional branch and compare & branch. 7144 The lowest two bits must be zero and are not stored in the 7145 instruction, giving a 21 bit signed byte offset. 7146 7147 -- : BFD_RELOC_AARCH64_JUMP26 7148 AArch64 26 bit pc-relative unconditional branch. The lowest two 7149 bits must be zero and are not stored in the instruction, giving a 7150 28 bit signed byte offset. 7151 7152 -- : BFD_RELOC_AARCH64_CALL26 7153 AArch64 26 bit pc-relative unconditional branch and link. The 7154 lowest two bits must be zero and are not stored in the instruction, 7155 giving a 28 bit signed byte offset. 7156 7157 -- : BFD_RELOC_AARCH64_LDST16_LO12 7158 AArch64 16-bit load/store instruction, holding bits 0 to 11 of the 7159 address. Used in conjunction with 7160 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 7161 7162 -- : BFD_RELOC_AARCH64_LDST32_LO12 7163 AArch64 32-bit load/store instruction, holding bits 0 to 11 of the 7164 address. Used in conjunction with 7165 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 7166 7167 -- : BFD_RELOC_AARCH64_LDST64_LO12 7168 AArch64 64-bit load/store instruction, holding bits 0 to 11 of the 7169 address. Used in conjunction with 7170 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 7171 7172 -- : BFD_RELOC_AARCH64_LDST128_LO12 7173 AArch64 128-bit load/store instruction, holding bits 0 to 11 of the 7174 address. Used in conjunction with 7175 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 7176 7177 -- : BFD_RELOC_AARCH64_GOT_LD_PREL19 7178 AArch64 Load Literal instruction, holding a 19 bit PC relative word 7179 offset of the global offset table entry for a symbol. The lowest 7180 two bits must be zero and are not stored in the instruction, 7181 giving a 21 bit signed byte offset. This relocation type requires 7182 signed overflow checking. 7183 7184 -- : BFD_RELOC_AARCH64_ADR_GOT_PAGE 7185 Get to the page base of the global offset table entry for a symbol 7186 as part of an ADRP instruction using a 21 bit PC relative 7187 value.Used in conjunction with BFD_RELOC_AARCH64_LD64_GOT_LO12_NC. 7188 7189 -- : BFD_RELOC_AARCH64_LD64_GOT_LO12_NC 7190 Unsigned 12 bit byte offset for 64 bit load/store from the page of 7191 the GOT entry for this symbol. Used in conjunction with 7192 BFD_RELOC_AARCH64_ADR_GOT_PAGE. Valid in LP64 ABI only. 7193 7194 -- : BFD_RELOC_AARCH64_LD32_GOT_LO12_NC 7195 Unsigned 12 bit byte offset for 32 bit load/store from the page of 7196 the GOT entry for this symbol. Used in conjunction with 7197 BFD_RELOC_AARCH64_ADR_GOT_PAGE. Valid in ILP32 ABI only. 7198 7199 -- : BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC 7200 Unsigned 16 bit byte offset for 64 bit load/store from the GOT 7201 entry for this symbol. Valid in LP64 ABI only. 7202 7203 -- : BFD_RELOC_AARCH64_MOVW_GOTOFF_G1 7204 Unsigned 16 bit byte higher offset for 64 bit load/store from the 7205 GOT entry for this symbol. Valid in LP64 ABI only. 7206 7207 -- : BFD_RELOC_AARCH64_LD64_GOTOFF_LO15 7208 Unsigned 15 bit byte offset for 64 bit load/store from the page of 7209 the GOT entry for this symbol. Valid in LP64 ABI only. 7210 7211 -- : BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14 7212 Scaled 14 bit byte offset to the page base of the global offset 7213 table. 7214 7215 -- : BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15 7216 Scaled 15 bit byte offset to the page base of the global offset 7217 table. 7218 7219 -- : BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21 7220 Get to the page base of the global offset table entry for a symbols 7221 tls_index structure as part of an adrp instruction using a 21 bit 7222 PC relative value. Used in conjunction with 7223 BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC. 7224 7225 -- : BFD_RELOC_AARCH64_TLSGD_ADR_PREL21 7226 AArch64 TLS General Dynamic 7227 7228 -- : BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC 7229 Unsigned 12 bit byte offset to global offset table entry for a 7230 symbols tls_index structure. Used in conjunction with 7231 BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21. 7232 7233 -- : BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC 7234 AArch64 TLS General Dynamic relocation. 7235 7236 -- : BFD_RELOC_AARCH64_TLSGD_MOVW_G1 7237 AArch64 TLS General Dynamic relocation. 7238 7239 -- : BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 7240 AArch64 TLS INITIAL EXEC relocation. 7241 7242 -- : BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC 7243 AArch64 TLS INITIAL EXEC relocation. 7244 7245 -- : BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC 7246 AArch64 TLS INITIAL EXEC relocation. 7247 7248 -- : BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19 7249 AArch64 TLS INITIAL EXEC relocation. 7250 7251 -- : BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC 7252 AArch64 TLS INITIAL EXEC relocation. 7253 7254 -- : BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1 7255 AArch64 TLS INITIAL EXEC relocation. 7256 7257 -- : BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12 7258 bit[23:12] of byte offset to module TLS base address. 7259 7260 -- : BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12 7261 Unsigned 12 bit byte offset to module TLS base address. 7262 7263 -- : BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC 7264 No overflow check version of 7265 BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12. 7266 7267 -- : BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC 7268 Unsigned 12 bit byte offset to global offset table entry for a 7269 symbols tls_index structure. Used in conjunction with 7270 BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21. 7271 7272 -- : BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21 7273 GOT entry page address for AArch64 TLS Local Dynamic, used with 7274 ADRP instruction. 7275 7276 -- : BFD_RELOC_AARCH64_TLSLD_ADR_PREL21 7277 GOT entry address for AArch64 TLS Local Dynamic, used with ADR 7278 instruction. 7279 7280 -- : BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12 7281 bit[11:1] of byte offset to module TLS base address, encoded in 7282 ldst instructions. 7283 7284 -- : BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC 7285 Similar as BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12, but no 7286 overflow check. 7287 7288 -- : BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12 7289 bit[11:2] of byte offset to module TLS base address, encoded in 7290 ldst instructions. 7291 7292 -- : BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC 7293 Similar as BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12, but no 7294 overflow check. 7295 7296 -- : BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12 7297 bit[11:3] of byte offset to module TLS base address, encoded in 7298 ldst instructions. 7299 7300 -- : BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC 7301 Similar as BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12, but no 7302 overflow check. 7303 7304 -- : BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12 7305 bit[11:0] of byte offset to module TLS base address, encoded in 7306 ldst instructions. 7307 7308 -- : BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC 7309 Similar as BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12, but no 7310 overflow check. 7311 7312 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0 7313 bit[15:0] of byte offset to module TLS base address. 7314 7315 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC 7316 No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0 7317 7318 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1 7319 bit[31:16] of byte offset to module TLS base address. 7320 7321 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC 7322 No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1 7323 7324 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2 7325 bit[47:32] of byte offset to module TLS base address. 7326 7327 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2 7328 AArch64 TLS LOCAL EXEC relocation. 7329 7330 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1 7331 AArch64 TLS LOCAL EXEC relocation. 7332 7333 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC 7334 AArch64 TLS LOCAL EXEC relocation. 7335 7336 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0 7337 AArch64 TLS LOCAL EXEC relocation. 7338 7339 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC 7340 AArch64 TLS LOCAL EXEC relocation. 7341 7342 -- : BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12 7343 AArch64 TLS LOCAL EXEC relocation. 7344 7345 -- : BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12 7346 AArch64 TLS LOCAL EXEC relocation. 7347 7348 -- : BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC 7349 AArch64 TLS LOCAL EXEC relocation. 7350 7351 -- : BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12 7352 bit[11:1] of byte offset to module TLS base address, encoded in 7353 ldst instructions. 7354 7355 -- : BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12_NC 7356 Similar as BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12, but no 7357 overflow check. 7358 7359 -- : BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12 7360 bit[11:2] of byte offset to module TLS base address, encoded in 7361 ldst instructions. 7362 7363 -- : BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12_NC 7364 Similar as BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12, but no 7365 overflow check. 7366 7367 -- : BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12 7368 bit[11:3] of byte offset to module TLS base address, encoded in 7369 ldst instructions. 7370 7371 -- : BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12_NC 7372 Similar as BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12, but no 7373 overflow check. 7374 7375 -- : BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12 7376 bit[11:0] of byte offset to module TLS base address, encoded in 7377 ldst instructions. 7378 7379 -- : BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12_NC 7380 Similar as BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12, but no 7381 overflow check. 7382 7383 -- : BFD_RELOC_AARCH64_TLSDESC_LD_PREL19 7384 AArch64 TLS DESC relocation. 7385 7386 -- : BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21 7387 AArch64 TLS DESC relocation. 7388 7389 -- : BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21 7390 AArch64 TLS DESC relocation. 7391 7392 -- : BFD_RELOC_AARCH64_TLSDESC_LD64_LO12 7393 AArch64 TLS DESC relocation. 7394 7395 -- : BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC 7396 AArch64 TLS DESC relocation. 7397 7398 -- : BFD_RELOC_AARCH64_TLSDESC_ADD_LO12 7399 AArch64 TLS DESC relocation. 7400 7401 -- : BFD_RELOC_AARCH64_TLSDESC_OFF_G1 7402 AArch64 TLS DESC relocation. 7403 7404 -- : BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC 7405 AArch64 TLS DESC relocation. 7406 7407 -- : BFD_RELOC_AARCH64_TLSDESC_LDR 7408 AArch64 TLS DESC relocation. 7409 7410 -- : BFD_RELOC_AARCH64_TLSDESC_ADD 7411 AArch64 TLS DESC relocation. 7412 7413 -- : BFD_RELOC_AARCH64_TLSDESC_CALL 7414 AArch64 TLS DESC relocation. 7415 7416 -- : BFD_RELOC_AARCH64_COPY 7417 AArch64 TLS relocation. 7418 7419 -- : BFD_RELOC_AARCH64_GLOB_DAT 7420 AArch64 TLS relocation. 7421 7422 -- : BFD_RELOC_AARCH64_JUMP_SLOT 7423 AArch64 TLS relocation. 7424 7425 -- : BFD_RELOC_AARCH64_RELATIVE 7426 AArch64 TLS relocation. 7427 7428 -- : BFD_RELOC_AARCH64_TLS_DTPMOD 7429 AArch64 TLS relocation. 7430 7431 -- : BFD_RELOC_AARCH64_TLS_DTPREL 7432 AArch64 TLS relocation. 7433 7434 -- : BFD_RELOC_AARCH64_TLS_TPREL 7435 AArch64 TLS relocation. 7436 7437 -- : BFD_RELOC_AARCH64_TLSDESC 7438 AArch64 TLS relocation. 7439 7440 -- : BFD_RELOC_AARCH64_IRELATIVE 7441 AArch64 support for STT_GNU_IFUNC. 7442 7443 -- : BFD_RELOC_AARCH64_RELOC_END 7444 AArch64 pseudo relocation code to mark the end of the AArch64 7445 relocation enumerators that have direct mapping to ELF reloc codes. 7446 There are a few more enumerators after this one; those are mainly 7447 used by the AArch64 assembler for the internal fixup or to select 7448 one of the above enumerators. 7449 7450 -- : BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP 7451 AArch64 pseudo relocation code to be used internally by the AArch64 7452 assembler and not (currently) written to any object files. 7453 7454 -- : BFD_RELOC_AARCH64_LDST_LO12 7455 AArch64 unspecified load/store instruction, holding bits 0 to 11 7456 of the address. Used in conjunction with 7457 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 7458 7459 -- : BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12 7460 AArch64 pseudo relocation code for TLS local dynamic mode. It's 7461 to be used internally by the AArch64 assembler and not (currently) 7462 written to any object files. 7463 7464 -- : BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC 7465 Similar as BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12, but no 7466 overflow check. 7467 7468 -- : BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12 7469 AArch64 pseudo relocation code for TLS local exec mode. It's to be 7470 used internally by the AArch64 assembler and not (currently) 7471 written to any object files. 7472 7473 -- : BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12_NC 7474 Similar as BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12, but no 7475 overflow check. 7476 7477 -- : BFD_RELOC_AARCH64_LD_GOT_LO12_NC 7478 AArch64 pseudo relocation code to be used internally by the AArch64 7479 assembler and not (currently) written to any object files. 7480 7481 -- : BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC 7482 AArch64 pseudo relocation code to be used internally by the AArch64 7483 assembler and not (currently) written to any object files. 7484 7485 -- : BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC 7486 AArch64 pseudo relocation code to be used internally by the AArch64 7487 assembler and not (currently) written to any object files. 7488 7489 -- : BFD_RELOC_TILEPRO_COPY 7490 -- : BFD_RELOC_TILEPRO_GLOB_DAT 7491 -- : BFD_RELOC_TILEPRO_JMP_SLOT 7492 -- : BFD_RELOC_TILEPRO_RELATIVE 7493 -- : BFD_RELOC_TILEPRO_BROFF_X1 7494 -- : BFD_RELOC_TILEPRO_JOFFLONG_X1 7495 -- : BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT 7496 -- : BFD_RELOC_TILEPRO_IMM8_X0 7497 -- : BFD_RELOC_TILEPRO_IMM8_Y0 7498 -- : BFD_RELOC_TILEPRO_IMM8_X1 7499 -- : BFD_RELOC_TILEPRO_IMM8_Y1 7500 -- : BFD_RELOC_TILEPRO_DEST_IMM8_X1 7501 -- : BFD_RELOC_TILEPRO_MT_IMM15_X1 7502 -- : BFD_RELOC_TILEPRO_MF_IMM15_X1 7503 -- : BFD_RELOC_TILEPRO_IMM16_X0 7504 -- : BFD_RELOC_TILEPRO_IMM16_X1 7505 -- : BFD_RELOC_TILEPRO_IMM16_X0_LO 7506 -- : BFD_RELOC_TILEPRO_IMM16_X1_LO 7507 -- : BFD_RELOC_TILEPRO_IMM16_X0_HI 7508 -- : BFD_RELOC_TILEPRO_IMM16_X1_HI 7509 -- : BFD_RELOC_TILEPRO_IMM16_X0_HA 7510 -- : BFD_RELOC_TILEPRO_IMM16_X1_HA 7511 -- : BFD_RELOC_TILEPRO_IMM16_X0_PCREL 7512 -- : BFD_RELOC_TILEPRO_IMM16_X1_PCREL 7513 -- : BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL 7514 -- : BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL 7515 -- : BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL 7516 -- : BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL 7517 -- : BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL 7518 -- : BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL 7519 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT 7520 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT 7521 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO 7522 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO 7523 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI 7524 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI 7525 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA 7526 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA 7527 -- : BFD_RELOC_TILEPRO_MMSTART_X0 7528 -- : BFD_RELOC_TILEPRO_MMEND_X0 7529 -- : BFD_RELOC_TILEPRO_MMSTART_X1 7530 -- : BFD_RELOC_TILEPRO_MMEND_X1 7531 -- : BFD_RELOC_TILEPRO_SHAMT_X0 7532 -- : BFD_RELOC_TILEPRO_SHAMT_X1 7533 -- : BFD_RELOC_TILEPRO_SHAMT_Y0 7534 -- : BFD_RELOC_TILEPRO_SHAMT_Y1 7535 -- : BFD_RELOC_TILEPRO_TLS_GD_CALL 7536 -- : BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD 7537 -- : BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD 7538 -- : BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD 7539 -- : BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD 7540 -- : BFD_RELOC_TILEPRO_TLS_IE_LOAD 7541 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD 7542 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD 7543 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO 7544 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO 7545 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI 7546 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI 7547 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA 7548 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA 7549 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE 7550 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE 7551 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO 7552 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO 7553 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI 7554 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI 7555 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA 7556 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA 7557 -- : BFD_RELOC_TILEPRO_TLS_DTPMOD32 7558 -- : BFD_RELOC_TILEPRO_TLS_DTPOFF32 7559 -- : BFD_RELOC_TILEPRO_TLS_TPOFF32 7560 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE 7561 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE 7562 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO 7563 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO 7564 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI 7565 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI 7566 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA 7567 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA 7568 Tilera TILEPro Relocations. 7569 7570 -- : BFD_RELOC_TILEGX_HW0 7571 -- : BFD_RELOC_TILEGX_HW1 7572 -- : BFD_RELOC_TILEGX_HW2 7573 -- : BFD_RELOC_TILEGX_HW3 7574 -- : BFD_RELOC_TILEGX_HW0_LAST 7575 -- : BFD_RELOC_TILEGX_HW1_LAST 7576 -- : BFD_RELOC_TILEGX_HW2_LAST 7577 -- : BFD_RELOC_TILEGX_COPY 7578 -- : BFD_RELOC_TILEGX_GLOB_DAT 7579 -- : BFD_RELOC_TILEGX_JMP_SLOT 7580 -- : BFD_RELOC_TILEGX_RELATIVE 7581 -- : BFD_RELOC_TILEGX_BROFF_X1 7582 -- : BFD_RELOC_TILEGX_JUMPOFF_X1 7583 -- : BFD_RELOC_TILEGX_JUMPOFF_X1_PLT 7584 -- : BFD_RELOC_TILEGX_IMM8_X0 7585 -- : BFD_RELOC_TILEGX_IMM8_Y0 7586 -- : BFD_RELOC_TILEGX_IMM8_X1 7587 -- : BFD_RELOC_TILEGX_IMM8_Y1 7588 -- : BFD_RELOC_TILEGX_DEST_IMM8_X1 7589 -- : BFD_RELOC_TILEGX_MT_IMM14_X1 7590 -- : BFD_RELOC_TILEGX_MF_IMM14_X1 7591 -- : BFD_RELOC_TILEGX_MMSTART_X0 7592 -- : BFD_RELOC_TILEGX_MMEND_X0 7593 -- : BFD_RELOC_TILEGX_SHAMT_X0 7594 -- : BFD_RELOC_TILEGX_SHAMT_X1 7595 -- : BFD_RELOC_TILEGX_SHAMT_Y0 7596 -- : BFD_RELOC_TILEGX_SHAMT_Y1 7597 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0 7598 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0 7599 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1 7600 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1 7601 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2 7602 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2 7603 -- : BFD_RELOC_TILEGX_IMM16_X0_HW3 7604 -- : BFD_RELOC_TILEGX_IMM16_X1_HW3 7605 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST 7606 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST 7607 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST 7608 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST 7609 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST 7610 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST 7611 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL 7612 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL 7613 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL 7614 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL 7615 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL 7616 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL 7617 -- : BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL 7618 -- : BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL 7619 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL 7620 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL 7621 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL 7622 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL 7623 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL 7624 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL 7625 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT 7626 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT 7627 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL 7628 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL 7629 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL 7630 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL 7631 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL 7632 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL 7633 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT 7634 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT 7635 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT 7636 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT 7637 -- : BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL 7638 -- : BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL 7639 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD 7640 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD 7641 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE 7642 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE 7643 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE 7644 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE 7645 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE 7646 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE 7647 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD 7648 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD 7649 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD 7650 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD 7651 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE 7652 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE 7653 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL 7654 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL 7655 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL 7656 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL 7657 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL 7658 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL 7659 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE 7660 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE 7661 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE 7662 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE 7663 -- : BFD_RELOC_TILEGX_TLS_DTPMOD64 7664 -- : BFD_RELOC_TILEGX_TLS_DTPOFF64 7665 -- : BFD_RELOC_TILEGX_TLS_TPOFF64 7666 -- : BFD_RELOC_TILEGX_TLS_DTPMOD32 7667 -- : BFD_RELOC_TILEGX_TLS_DTPOFF32 7668 -- : BFD_RELOC_TILEGX_TLS_TPOFF32 7669 -- : BFD_RELOC_TILEGX_TLS_GD_CALL 7670 -- : BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD 7671 -- : BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD 7672 -- : BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD 7673 -- : BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD 7674 -- : BFD_RELOC_TILEGX_TLS_IE_LOAD 7675 -- : BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD 7676 -- : BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD 7677 -- : BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD 7678 -- : BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD 7679 Tilera TILE-Gx Relocations. 7680 7681 -- : BFD_RELOC_BPF_64 7682 -- : BFD_RELOC_BPF_32 7683 -- : BFD_RELOC_BPF_16 7684 -- : BFD_RELOC_BPF_DISP16 7685 -- : BFD_RELOC_BPF_DISP32 7686 Linux eBPF relocations. 7687 7688 -- : BFD_RELOC_EPIPHANY_SIMM8 7689 Adapteva EPIPHANY - 8 bit signed pc-relative displacement 7690 7691 -- : BFD_RELOC_EPIPHANY_SIMM24 7692 Adapteva EPIPHANY - 24 bit signed pc-relative displacement 7693 7694 -- : BFD_RELOC_EPIPHANY_HIGH 7695 Adapteva EPIPHANY - 16 most-significant bits of absolute address 7696 7697 -- : BFD_RELOC_EPIPHANY_LOW 7698 Adapteva EPIPHANY - 16 least-significant bits of absolute address 7699 7700 -- : BFD_RELOC_EPIPHANY_SIMM11 7701 Adapteva EPIPHANY - 11 bit signed number - add/sub immediate 7702 7703 -- : BFD_RELOC_EPIPHANY_IMM11 7704 Adapteva EPIPHANY - 11 bit sign-magnitude number (ld/st 7705 displacement) 7706 7707 -- : BFD_RELOC_EPIPHANY_IMM8 7708 Adapteva EPIPHANY - 8 bit immediate for 16 bit mov instruction. 7709 7710 -- : BFD_RELOC_VISIUM_HI16 7711 -- : BFD_RELOC_VISIUM_LO16 7712 -- : BFD_RELOC_VISIUM_IM16 7713 -- : BFD_RELOC_VISIUM_REL16 7714 -- : BFD_RELOC_VISIUM_HI16_PCREL 7715 -- : BFD_RELOC_VISIUM_LO16_PCREL 7716 -- : BFD_RELOC_VISIUM_IM16_PCREL 7717 Visium Relocations. 7718 7719 -- : BFD_RELOC_WASM32_LEB128 7720 -- : BFD_RELOC_WASM32_LEB128_GOT 7721 -- : BFD_RELOC_WASM32_LEB128_GOT_CODE 7722 -- : BFD_RELOC_WASM32_LEB128_PLT 7723 -- : BFD_RELOC_WASM32_PLT_INDEX 7724 -- : BFD_RELOC_WASM32_ABS32_CODE 7725 -- : BFD_RELOC_WASM32_COPY 7726 -- : BFD_RELOC_WASM32_CODE_POINTER 7727 -- : BFD_RELOC_WASM32_INDEX 7728 -- : BFD_RELOC_WASM32_PLT_SIG 7729 WebAssembly relocations. 7730 7731 -- : BFD_RELOC_CKCORE_NONE 7732 -- : BFD_RELOC_CKCORE_ADDR32 7733 -- : BFD_RELOC_CKCORE_PCREL_IMM8BY4 7734 -- : BFD_RELOC_CKCORE_PCREL_IMM11BY2 7735 -- : BFD_RELOC_CKCORE_PCREL_IMM4BY2 7736 -- : BFD_RELOC_CKCORE_PCREL32 7737 -- : BFD_RELOC_CKCORE_PCREL_JSR_IMM11BY2 7738 -- : BFD_RELOC_CKCORE_GNU_VTINHERIT 7739 -- : BFD_RELOC_CKCORE_GNU_VTENTRY 7740 -- : BFD_RELOC_CKCORE_RELATIVE 7741 -- : BFD_RELOC_CKCORE_COPY 7742 -- : BFD_RELOC_CKCORE_GLOB_DAT 7743 -- : BFD_RELOC_CKCORE_JUMP_SLOT 7744 -- : BFD_RELOC_CKCORE_GOTOFF 7745 -- : BFD_RELOC_CKCORE_GOTPC 7746 -- : BFD_RELOC_CKCORE_GOT32 7747 -- : BFD_RELOC_CKCORE_PLT32 7748 -- : BFD_RELOC_CKCORE_ADDRGOT 7749 -- : BFD_RELOC_CKCORE_ADDRPLT 7750 -- : BFD_RELOC_CKCORE_PCREL_IMM26BY2 7751 -- : BFD_RELOC_CKCORE_PCREL_IMM16BY2 7752 -- : BFD_RELOC_CKCORE_PCREL_IMM16BY4 7753 -- : BFD_RELOC_CKCORE_PCREL_IMM10BY2 7754 -- : BFD_RELOC_CKCORE_PCREL_IMM10BY4 7755 -- : BFD_RELOC_CKCORE_ADDR_HI16 7756 -- : BFD_RELOC_CKCORE_ADDR_LO16 7757 -- : BFD_RELOC_CKCORE_GOTPC_HI16 7758 -- : BFD_RELOC_CKCORE_GOTPC_LO16 7759 -- : BFD_RELOC_CKCORE_GOTOFF_HI16 7760 -- : BFD_RELOC_CKCORE_GOTOFF_LO16 7761 -- : BFD_RELOC_CKCORE_GOT12 7762 -- : BFD_RELOC_CKCORE_GOT_HI16 7763 -- : BFD_RELOC_CKCORE_GOT_LO16 7764 -- : BFD_RELOC_CKCORE_PLT12 7765 -- : BFD_RELOC_CKCORE_PLT_HI16 7766 -- : BFD_RELOC_CKCORE_PLT_LO16 7767 -- : BFD_RELOC_CKCORE_ADDRGOT_HI16 7768 -- : BFD_RELOC_CKCORE_ADDRGOT_LO16 7769 -- : BFD_RELOC_CKCORE_ADDRPLT_HI16 7770 -- : BFD_RELOC_CKCORE_ADDRPLT_LO16 7771 -- : BFD_RELOC_CKCORE_PCREL_JSR_IMM26BY2 7772 -- : BFD_RELOC_CKCORE_TOFFSET_LO16 7773 -- : BFD_RELOC_CKCORE_DOFFSET_LO16 7774 -- : BFD_RELOC_CKCORE_PCREL_IMM18BY2 7775 -- : BFD_RELOC_CKCORE_DOFFSET_IMM18 7776 -- : BFD_RELOC_CKCORE_DOFFSET_IMM18BY2 7777 -- : BFD_RELOC_CKCORE_DOFFSET_IMM18BY4 7778 -- : BFD_RELOC_CKCORE_GOTOFF_IMM18 7779 -- : BFD_RELOC_CKCORE_GOT_IMM18BY4 7780 -- : BFD_RELOC_CKCORE_PLT_IMM18BY4 7781 -- : BFD_RELOC_CKCORE_PCREL_IMM7BY4 7782 -- : BFD_RELOC_CKCORE_TLS_LE32 7783 -- : BFD_RELOC_CKCORE_TLS_IE32 7784 -- : BFD_RELOC_CKCORE_TLS_GD32 7785 -- : BFD_RELOC_CKCORE_TLS_LDM32 7786 -- : BFD_RELOC_CKCORE_TLS_LDO32 7787 -- : BFD_RELOC_CKCORE_TLS_DTPMOD32 7788 -- : BFD_RELOC_CKCORE_TLS_DTPOFF32 7789 -- : BFD_RELOC_CKCORE_TLS_TPOFF32 7790 -- : BFD_RELOC_CKCORE_PCREL_FLRW_IMM8BY4 7791 -- : BFD_RELOC_CKCORE_NOJSRI 7792 -- : BFD_RELOC_CKCORE_CALLGRAPH 7793 -- : BFD_RELOC_CKCORE_IRELATIVE 7794 -- : BFD_RELOC_CKCORE_PCREL_BLOOP_IMM4BY4 7795 -- : BFD_RELOC_CKCORE_PCREL_BLOOP_IMM12BY4 7796 C-SKY relocations. 7797 7798 -- : BFD_RELOC_S12Z_OPR 7799 S12Z relocations. 7800 7801 -- : BFD_RELOC_LARCH_TLS_DTPMOD32 7802 -- : BFD_RELOC_LARCH_TLS_DTPREL32 7803 -- : BFD_RELOC_LARCH_TLS_DTPMOD64 7804 -- : BFD_RELOC_LARCH_TLS_DTPREL64 7805 -- : BFD_RELOC_LARCH_TLS_TPREL32 7806 -- : BFD_RELOC_LARCH_TLS_TPREL64 7807 -- : BFD_RELOC_LARCH_MARK_LA 7808 -- : BFD_RELOC_LARCH_MARK_PCREL 7809 -- : BFD_RELOC_LARCH_SOP_PUSH_PCREL 7810 -- : BFD_RELOC_LARCH_SOP_PUSH_ABSOLUTE 7811 -- : BFD_RELOC_LARCH_SOP_PUSH_DUP 7812 -- : BFD_RELOC_LARCH_SOP_PUSH_GPREL 7813 -- : BFD_RELOC_LARCH_SOP_PUSH_TLS_TPREL 7814 -- : BFD_RELOC_LARCH_SOP_PUSH_TLS_GOT 7815 -- : BFD_RELOC_LARCH_SOP_PUSH_TLS_GD 7816 -- : BFD_RELOC_LARCH_SOP_PUSH_PLT_PCREL 7817 -- : BFD_RELOC_LARCH_SOP_ASSERT 7818 -- : BFD_RELOC_LARCH_SOP_NOT 7819 -- : BFD_RELOC_LARCH_SOP_SUB 7820 -- : BFD_RELOC_LARCH_SOP_SL 7821 -- : BFD_RELOC_LARCH_SOP_SR 7822 -- : BFD_RELOC_LARCH_SOP_ADD 7823 -- : BFD_RELOC_LARCH_SOP_AND 7824 -- : BFD_RELOC_LARCH_SOP_IF_ELSE 7825 -- : BFD_RELOC_LARCH_SOP_POP_32_S_10_5 7826 -- : BFD_RELOC_LARCH_SOP_POP_32_U_10_12 7827 -- : BFD_RELOC_LARCH_SOP_POP_32_S_10_12 7828 -- : BFD_RELOC_LARCH_SOP_POP_32_S_10_16 7829 -- : BFD_RELOC_LARCH_SOP_POP_32_S_10_16_S2 7830 -- : BFD_RELOC_LARCH_SOP_POP_32_S_5_20 7831 -- : BFD_RELOC_LARCH_SOP_POP_32_S_0_5_10_16_S2 7832 -- : BFD_RELOC_LARCH_SOP_POP_32_S_0_10_10_16_S2 7833 -- : BFD_RELOC_LARCH_SOP_POP_32_U 7834 -- : BFD_RELOC_LARCH_ADD8 7835 -- : BFD_RELOC_LARCH_ADD16 7836 -- : BFD_RELOC_LARCH_ADD24 7837 -- : BFD_RELOC_LARCH_ADD32 7838 -- : BFD_RELOC_LARCH_ADD64 7839 -- : BFD_RELOC_LARCH_SUB8 7840 -- : BFD_RELOC_LARCH_SUB16 7841 -- : BFD_RELOC_LARCH_SUB24 7842 -- : BFD_RELOC_LARCH_SUB32 7843 -- : BFD_RELOC_LARCH_SUB64 7844 LARCH relocations. 7845 7846 7847 typedef enum bfd_reloc_code_real bfd_reloc_code_real_type; 7848 78492.10.2.2 `bfd_reloc_type_lookup' 7850................................ 7851 7852*Synopsis* 7853 reloc_howto_type *bfd_reloc_type_lookup 7854 (bfd *abfd, bfd_reloc_code_real_type code); 7855 reloc_howto_type *bfd_reloc_name_lookup 7856 (bfd *abfd, const char *reloc_name); 7857 *Description* 7858Return a pointer to a howto structure which, when invoked, will perform 7859the relocation CODE on data from the architecture noted. 7860 78612.10.2.3 `bfd_default_reloc_type_lookup' 7862........................................ 7863 7864*Synopsis* 7865 reloc_howto_type *bfd_default_reloc_type_lookup 7866 (bfd *abfd, bfd_reloc_code_real_type code); 7867 *Description* 7868Provides a default relocation lookup routine for any architecture. 7869 78702.10.2.4 `bfd_get_reloc_code_name' 7871.................................. 7872 7873*Synopsis* 7874 const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code); 7875 *Description* 7876Provides a printable name for the supplied relocation code. Useful 7877mainly for printing error messages. 7878 78792.10.2.5 `bfd_generic_relax_section' 7880.................................... 7881 7882*Synopsis* 7883 bool bfd_generic_relax_section 7884 (bfd *abfd, 7885 asection *section, 7886 struct bfd_link_info *, 7887 bool *); 7888 *Description* 7889Provides default handling for relaxing for back ends which don't do 7890relaxing. 7891 78922.10.2.6 `bfd_generic_gc_sections' 7893.................................. 7894 7895*Synopsis* 7896 bool bfd_generic_gc_sections 7897 (bfd *, struct bfd_link_info *); 7898 *Description* 7899Provides default handling for relaxing for back ends which don't do 7900section gc - i.e., does nothing. 7901 79022.10.2.7 `bfd_generic_lookup_section_flags' 7903........................................... 7904 7905*Synopsis* 7906 bool bfd_generic_lookup_section_flags 7907 (struct bfd_link_info *, struct flag_info *, asection *); 7908 *Description* 7909Provides default handling for section flags lookup - i.e., does nothing. 7910Returns FALSE if the section should be omitted, otherwise TRUE. 7911 79122.10.2.8 `bfd_generic_merge_sections' 7913..................................... 7914 7915*Synopsis* 7916 bool bfd_generic_merge_sections 7917 (bfd *, struct bfd_link_info *); 7918 *Description* 7919Provides default handling for SEC_MERGE section merging for back ends 7920which don't have SEC_MERGE support - i.e., does nothing. 7921 79222.10.2.9 `bfd_generic_get_relocated_section_contents' 7923..................................................... 7924 7925*Synopsis* 7926 bfd_byte *bfd_generic_get_relocated_section_contents 7927 (bfd *abfd, 7928 struct bfd_link_info *link_info, 7929 struct bfd_link_order *link_order, 7930 bfd_byte *data, 7931 bool relocatable, 7932 asymbol **symbols); 7933 *Description* 7934Provides default handling of relocation effort for back ends which 7935can't be bothered to do it efficiently. 7936 79372.10.2.10 `_bfd_generic_set_reloc' 7938.................................. 7939 7940*Synopsis* 7941 void _bfd_generic_set_reloc 7942 (bfd *abfd, 7943 sec_ptr section, 7944 arelent **relptr, 7945 unsigned int count); 7946 *Description* 7947Installs a new set of internal relocations in SECTION. 7948 79492.10.2.11 `_bfd_unrecognized_reloc' 7950................................... 7951 7952*Synopsis* 7953 bool _bfd_unrecognized_reloc 7954 (bfd * abfd, 7955 sec_ptr section, 7956 unsigned int r_type); 7957 *Description* 7958Reports an unrecognized reloc. Written as a function in order to 7959reduce code duplication. Returns FALSE so that it can be called from a 7960return statement. 7961 7962 7963File: bfd.info, Node: Core Files, Next: Targets, Prev: Relocations, Up: BFD front end 7964 79652.11 Core files 7966=============== 7967 79682.11.1 Core file functions 7969-------------------------- 7970 7971*Description* 7972These are functions pertaining to core files. 7973 79742.11.1.1 `bfd_core_file_failing_command' 7975........................................ 7976 7977*Synopsis* 7978 const char *bfd_core_file_failing_command (bfd *abfd); 7979 *Description* 7980Return a read-only string explaining which program was running when it 7981failed and produced the core file ABFD. 7982 79832.11.1.2 `bfd_core_file_failing_signal' 7984....................................... 7985 7986*Synopsis* 7987 int bfd_core_file_failing_signal (bfd *abfd); 7988 *Description* 7989Returns the signal number which caused the core dump which generated 7990the file the BFD ABFD is attached to. 7991 79922.11.1.3 `bfd_core_file_pid' 7993............................ 7994 7995*Synopsis* 7996 int bfd_core_file_pid (bfd *abfd); 7997 *Description* 7998Returns the PID of the process the core dump the BFD ABFD is attached 7999to was generated from. 8000 80012.11.1.4 `core_file_matches_executable_p' 8002......................................... 8003 8004*Synopsis* 8005 bool core_file_matches_executable_p 8006 (bfd *core_bfd, bfd *exec_bfd); 8007 *Description* 8008Return `TRUE' if the core file attached to CORE_BFD was generated by a 8009run of the executable file attached to EXEC_BFD, `FALSE' otherwise. 8010 80112.11.1.5 `generic_core_file_matches_executable_p' 8012................................................. 8013 8014*Synopsis* 8015 bool generic_core_file_matches_executable_p 8016 (bfd *core_bfd, bfd *exec_bfd); 8017 *Description* 8018Return TRUE if the core file attached to CORE_BFD was generated by a 8019run of the executable file attached to EXEC_BFD. The match is based on 8020executable basenames only. 8021 8022 Note: When not able to determine the core file failing command or 8023the executable name, we still return TRUE even though we're not sure 8024that core file and executable match. This is to avoid generating a 8025false warning in situations where we really don't know whether they 8026match or not. 8027 8028 8029File: bfd.info, Node: Targets, Next: Architectures, Prev: Core Files, Up: BFD front end 8030 80312.12 Targets 8032============ 8033 8034*Description* 8035Each port of BFD to a different machine requires the creation of a 8036target back end. All the back end provides to the root part of BFD is a 8037structure containing pointers to functions which perform certain low 8038level operations on files. BFD translates the applications's requests 8039through a pointer into calls to the back end routines. 8040 8041 When a file is opened with `bfd_openr', its format and target are 8042unknown. BFD uses various mechanisms to determine how to interpret the 8043file. The operations performed are: 8044 8045 * Create a BFD by calling the internal routine `_bfd_new_bfd', then 8046 call `bfd_find_target' with the target string supplied to 8047 `bfd_openr' and the new BFD pointer. 8048 8049 * If a null target string was provided to `bfd_find_target', look up 8050 the environment variable `GNUTARGET' and use that as the target 8051 string. 8052 8053 * If the target string is still `NULL', or the target string is 8054 `default', then use the first item in the target vector as the 8055 target type, and set `target_defaulted' in the BFD to cause 8056 `bfd_check_format' to loop through all the targets. *Note 8057 bfd_target::. *Note Formats::. 8058 8059 * Otherwise, inspect the elements in the target vector one by one, 8060 until a match on target name is found. When found, use it. 8061 8062 * Otherwise return the error `bfd_error_invalid_target' to 8063 `bfd_openr'. 8064 8065 * `bfd_openr' attempts to open the file using `bfd_open_file', and 8066 returns the BFD. 8067 Once the BFD has been opened and the target selected, the file 8068format may be determined. This is done by calling `bfd_check_format' on 8069the BFD with a suggested format. If `target_defaulted' has been set, 8070each possible target type is tried to see if it recognizes the 8071specified format. `bfd_check_format' returns `TRUE' when the caller 8072guesses right. 8073 8074* Menu: 8075 8076* bfd_target:: 8077 8078 8079File: bfd.info, Node: bfd_target, Prev: Targets, Up: Targets 8080 80812.12.1 bfd_target 8082----------------- 8083 8084*Description* 8085This structure contains everything that BFD knows about a target. It 8086includes things like its byte order, name, and which routines to call 8087to do various operations. 8088 8089 Every BFD points to a target structure with its `xvec' member. 8090 8091 The macros below are used to dispatch to functions through the 8092`bfd_target' vector. They are used in a number of macros further down 8093in `bfd.h', and are also used when calling various routines by hand 8094inside the BFD implementation. The ARGLIST argument must be 8095parenthesized; it contains all the arguments to the called function. 8096 8097 They make the documentation (more) unpleasant to read, so if someone 8098wants to fix this and not break the above, please do. 8099 #define BFD_SEND(bfd, message, arglist) \ 8100 ((*((bfd)->xvec->message)) arglist) 8101 8102 #ifdef DEBUG_BFD_SEND 8103 #undef BFD_SEND 8104 #define BFD_SEND(bfd, message, arglist) \ 8105 (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \ 8106 ((*((bfd)->xvec->message)) arglist) : \ 8107 (bfd_assert (__FILE__,__LINE__), NULL)) 8108 #endif 8109 For operations which index on the BFD format: 8110 #define BFD_SEND_FMT(bfd, message, arglist) \ 8111 (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) 8112 8113 #ifdef DEBUG_BFD_SEND 8114 #undef BFD_SEND_FMT 8115 #define BFD_SEND_FMT(bfd, message, arglist) \ 8116 (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \ 8117 (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) : \ 8118 (bfd_assert (__FILE__,__LINE__), NULL)) 8119 #endif 8120 8121 /* Defined to TRUE if unused section symbol should be kept. */ 8122 #ifndef TARGET_KEEP_UNUSED_SECTION_SYMBOLS 8123 #define TARGET_KEEP_UNUSED_SECTION_SYMBOLS true 8124 #endif 8125 This is the structure which defines the type of BFD this is. The 8126`xvec' member of the struct `bfd' itself points here. Each module that 8127implements access to a different target under BFD, defines one of these. 8128 8129 FIXME, these names should be rationalised with the names of the 8130entry points which call them. Too bad we can't have one macro to define 8131them both! 8132 enum bfd_flavour 8133 { 8134 /* N.B. Update bfd_flavour_name if you change this. */ 8135 bfd_target_unknown_flavour, 8136 bfd_target_aout_flavour, 8137 bfd_target_coff_flavour, 8138 bfd_target_ecoff_flavour, 8139 bfd_target_xcoff_flavour, 8140 bfd_target_elf_flavour, 8141 bfd_target_tekhex_flavour, 8142 bfd_target_srec_flavour, 8143 bfd_target_verilog_flavour, 8144 bfd_target_ihex_flavour, 8145 bfd_target_som_flavour, 8146 bfd_target_os9k_flavour, 8147 bfd_target_versados_flavour, 8148 bfd_target_msdos_flavour, 8149 bfd_target_ovax_flavour, 8150 bfd_target_evax_flavour, 8151 bfd_target_mmo_flavour, 8152 bfd_target_mach_o_flavour, 8153 bfd_target_pef_flavour, 8154 bfd_target_pef_xlib_flavour, 8155 bfd_target_sym_flavour 8156 }; 8157 8158 enum bfd_endian { BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN }; 8159 8160 /* Forward declaration. */ 8161 typedef struct bfd_link_info _bfd_link_info; 8162 8163 /* Forward declaration. */ 8164 typedef struct flag_info flag_info; 8165 8166 typedef void (*bfd_cleanup) (bfd *); 8167 8168 typedef struct bfd_target 8169 { 8170 /* Identifies the kind of target, e.g., SunOS4, Ultrix, etc. */ 8171 const char *name; 8172 8173 /* The "flavour" of a back end is a general indication about 8174 the contents of a file. */ 8175 enum bfd_flavour flavour; 8176 8177 /* The order of bytes within the data area of a file. */ 8178 enum bfd_endian byteorder; 8179 8180 /* The order of bytes within the header parts of a file. */ 8181 enum bfd_endian header_byteorder; 8182 8183 /* A mask of all the flags which an executable may have set - 8184 from the set `BFD_NO_FLAGS', `HAS_RELOC', ...`D_PAGED'. */ 8185 flagword object_flags; 8186 8187 /* A mask of all the flags which a section may have set - from 8188 the set `SEC_NO_FLAGS', `SEC_ALLOC', ...`SET_NEVER_LOAD'. */ 8189 flagword section_flags; 8190 8191 /* The character normally found at the front of a symbol. 8192 (if any), perhaps `_'. */ 8193 char symbol_leading_char; 8194 8195 /* The pad character for file names within an archive header. */ 8196 char ar_pad_char; 8197 8198 /* The maximum number of characters in an archive header. */ 8199 unsigned char ar_max_namelen; 8200 8201 /* How well this target matches, used to select between various 8202 possible targets when more than one target matches. */ 8203 unsigned char match_priority; 8204 8205 /* TRUE if unused section symbols should be kept. */ 8206 bool keep_unused_section_symbols; 8207 8208 /* Entries for byte swapping for data. These are different from the 8209 other entry points, since they don't take a BFD as the first argument. 8210 Certain other handlers could do the same. */ 8211 uint64_t (*bfd_getx64) (const void *); 8212 int64_t (*bfd_getx_signed_64) (const void *); 8213 void (*bfd_putx64) (uint64_t, void *); 8214 bfd_vma (*bfd_getx32) (const void *); 8215 bfd_signed_vma (*bfd_getx_signed_32) (const void *); 8216 void (*bfd_putx32) (bfd_vma, void *); 8217 bfd_vma (*bfd_getx16) (const void *); 8218 bfd_signed_vma (*bfd_getx_signed_16) (const void *); 8219 void (*bfd_putx16) (bfd_vma, void *); 8220 8221 /* Byte swapping for the headers. */ 8222 uint64_t (*bfd_h_getx64) (const void *); 8223 int64_t (*bfd_h_getx_signed_64) (const void *); 8224 void (*bfd_h_putx64) (uint64_t, void *); 8225 bfd_vma (*bfd_h_getx32) (const void *); 8226 bfd_signed_vma (*bfd_h_getx_signed_32) (const void *); 8227 void (*bfd_h_putx32) (bfd_vma, void *); 8228 bfd_vma (*bfd_h_getx16) (const void *); 8229 bfd_signed_vma (*bfd_h_getx_signed_16) (const void *); 8230 void (*bfd_h_putx16) (bfd_vma, void *); 8231 8232 /* Format dependent routines: these are vectors of entry points 8233 within the target vector structure, one for each format to check. */ 8234 8235 /* Check the format of a file being read. Return a `bfd_cleanup' on 8236 success or zero on failure. */ 8237 bfd_cleanup (*_bfd_check_format[bfd_type_end]) (bfd *); 8238 8239 /* Set the format of a file being written. */ 8240 bool (*_bfd_set_format[bfd_type_end]) (bfd *); 8241 8242 /* Write cached information into a file being written, at `bfd_close'. */ 8243 bool (*_bfd_write_contents[bfd_type_end]) (bfd *); 8244 The general target vector. These vectors are initialized using the 8245BFD_JUMP_TABLE macros. 8246 8247 /* Generic entry points. */ 8248 #define BFD_JUMP_TABLE_GENERIC(NAME) \ 8249 NAME##_close_and_cleanup, \ 8250 NAME##_bfd_free_cached_info, \ 8251 NAME##_new_section_hook, \ 8252 NAME##_get_section_contents, \ 8253 NAME##_get_section_contents_in_window 8254 8255 /* Called when the BFD is being closed to do any necessary cleanup. */ 8256 bool (*_close_and_cleanup) (bfd *); 8257 /* Ask the BFD to free all cached information. */ 8258 bool (*_bfd_free_cached_info) (bfd *); 8259 /* Called when a new section is created. */ 8260 bool (*_new_section_hook) (bfd *, sec_ptr); 8261 /* Read the contents of a section. */ 8262 bool (*_bfd_get_section_contents) (bfd *, sec_ptr, void *, file_ptr, 8263 bfd_size_type); 8264 bool (*_bfd_get_section_contents_in_window) (bfd *, sec_ptr, bfd_window *, 8265 file_ptr, bfd_size_type); 8266 8267 /* Entry points to copy private data. */ 8268 #define BFD_JUMP_TABLE_COPY(NAME) \ 8269 NAME##_bfd_copy_private_bfd_data, \ 8270 NAME##_bfd_merge_private_bfd_data, \ 8271 _bfd_generic_init_private_section_data, \ 8272 NAME##_bfd_copy_private_section_data, \ 8273 NAME##_bfd_copy_private_symbol_data, \ 8274 NAME##_bfd_copy_private_header_data, \ 8275 NAME##_bfd_set_private_flags, \ 8276 NAME##_bfd_print_private_bfd_data 8277 8278 /* Called to copy BFD general private data from one object file 8279 to another. */ 8280 bool (*_bfd_copy_private_bfd_data) (bfd *, bfd *); 8281 /* Called to merge BFD general private data from one object file 8282 to a common output file when linking. */ 8283 bool (*_bfd_merge_private_bfd_data) (bfd *, struct bfd_link_info *); 8284 /* Called to initialize BFD private section data from one object file 8285 to another. */ 8286 #define bfd_init_private_section_data(ibfd, isec, obfd, osec, link_info) \ 8287 BFD_SEND (obfd, _bfd_init_private_section_data, \ 8288 (ibfd, isec, obfd, osec, link_info)) 8289 bool (*_bfd_init_private_section_data) (bfd *, sec_ptr, bfd *, sec_ptr, 8290 struct bfd_link_info *); 8291 /* Called to copy BFD private section data from one object file 8292 to another. */ 8293 bool (*_bfd_copy_private_section_data) (bfd *, sec_ptr, bfd *, sec_ptr); 8294 /* Called to copy BFD private symbol data from one symbol 8295 to another. */ 8296 bool (*_bfd_copy_private_symbol_data) (bfd *, asymbol *, 8297 bfd *, asymbol *); 8298 /* Called to copy BFD private header data from one object file 8299 to another. */ 8300 bool (*_bfd_copy_private_header_data) (bfd *, bfd *); 8301 /* Called to set private backend flags. */ 8302 bool (*_bfd_set_private_flags) (bfd *, flagword); 8303 8304 /* Called to print private BFD data. */ 8305 bool (*_bfd_print_private_bfd_data) (bfd *, void *); 8306 8307 /* Core file entry points. */ 8308 #define BFD_JUMP_TABLE_CORE(NAME) \ 8309 NAME##_core_file_failing_command, \ 8310 NAME##_core_file_failing_signal, \ 8311 NAME##_core_file_matches_executable_p, \ 8312 NAME##_core_file_pid 8313 8314 char *(*_core_file_failing_command) (bfd *); 8315 int (*_core_file_failing_signal) (bfd *); 8316 bool (*_core_file_matches_executable_p) (bfd *, bfd *); 8317 int (*_core_file_pid) (bfd *); 8318 8319 /* Archive entry points. */ 8320 #define BFD_JUMP_TABLE_ARCHIVE(NAME) \ 8321 NAME##_slurp_armap, \ 8322 NAME##_slurp_extended_name_table, \ 8323 NAME##_construct_extended_name_table, \ 8324 NAME##_truncate_arname, \ 8325 NAME##_write_armap, \ 8326 NAME##_read_ar_hdr, \ 8327 NAME##_write_ar_hdr, \ 8328 NAME##_openr_next_archived_file, \ 8329 NAME##_get_elt_at_index, \ 8330 NAME##_generic_stat_arch_elt, \ 8331 NAME##_update_armap_timestamp 8332 8333 bool (*_bfd_slurp_armap) (bfd *); 8334 bool (*_bfd_slurp_extended_name_table) (bfd *); 8335 bool (*_bfd_construct_extended_name_table) (bfd *, char **, 8336 bfd_size_type *, 8337 const char **); 8338 void (*_bfd_truncate_arname) (bfd *, const char *, char *); 8339 bool (*write_armap) (bfd *, unsigned, struct orl *, unsigned, int); 8340 void *(*_bfd_read_ar_hdr_fn) (bfd *); 8341 bool (*_bfd_write_ar_hdr_fn) (bfd *, bfd *); 8342 bfd *(*openr_next_archived_file) (bfd *, bfd *); 8343 #define bfd_get_elt_at_index(b,i) \ 8344 BFD_SEND (b, _bfd_get_elt_at_index, (b,i)) 8345 bfd *(*_bfd_get_elt_at_index) (bfd *, symindex); 8346 int (*_bfd_stat_arch_elt) (bfd *, struct stat *); 8347 bool (*_bfd_update_armap_timestamp) (bfd *); 8348 8349 /* Entry points used for symbols. */ 8350 #define BFD_JUMP_TABLE_SYMBOLS(NAME) \ 8351 NAME##_get_symtab_upper_bound, \ 8352 NAME##_canonicalize_symtab, \ 8353 NAME##_make_empty_symbol, \ 8354 NAME##_print_symbol, \ 8355 NAME##_get_symbol_info, \ 8356 NAME##_get_symbol_version_string, \ 8357 NAME##_bfd_is_local_label_name, \ 8358 NAME##_bfd_is_target_special_symbol, \ 8359 NAME##_get_lineno, \ 8360 NAME##_find_nearest_line, \ 8361 NAME##_find_line, \ 8362 NAME##_find_inliner_info, \ 8363 NAME##_bfd_make_debug_symbol, \ 8364 NAME##_read_minisymbols, \ 8365 NAME##_minisymbol_to_symbol 8366 8367 long (*_bfd_get_symtab_upper_bound) (bfd *); 8368 long (*_bfd_canonicalize_symtab) (bfd *, struct bfd_symbol **); 8369 struct bfd_symbol * 8370 (*_bfd_make_empty_symbol) (bfd *); 8371 void (*_bfd_print_symbol) (bfd *, void *, struct bfd_symbol *, 8372 bfd_print_symbol_type); 8373 #define bfd_print_symbol(b,p,s,e) \ 8374 BFD_SEND (b, _bfd_print_symbol, (b,p,s,e)) 8375 void (*_bfd_get_symbol_info) (bfd *, struct bfd_symbol *, symbol_info *); 8376 #define bfd_get_symbol_info(b,p,e) \ 8377 BFD_SEND (b, _bfd_get_symbol_info, (b,p,e)) 8378 const char * 8379 (*_bfd_get_symbol_version_string) (bfd *, struct bfd_symbol *, 8380 bool, bool *); 8381 #define bfd_get_symbol_version_string(b,s,p,h) \ 8382 BFD_SEND (b, _bfd_get_symbol_version_string, (b,s,p,h)) 8383 bool (*_bfd_is_local_label_name) (bfd *, const char *); 8384 bool (*_bfd_is_target_special_symbol) (bfd *, asymbol *); 8385 alent * 8386 (*_get_lineno) (bfd *, struct bfd_symbol *); 8387 bool (*_bfd_find_nearest_line) (bfd *, struct bfd_symbol **, 8388 struct bfd_section *, bfd_vma, 8389 const char **, const char **, 8390 unsigned int *, unsigned int *); 8391 bool (*_bfd_find_line) (bfd *, struct bfd_symbol **, 8392 struct bfd_symbol *, const char **, 8393 unsigned int *); 8394 bool (*_bfd_find_inliner_info) 8395 (bfd *, const char **, const char **, unsigned int *); 8396 /* Back-door to allow format-aware applications to create debug symbols 8397 while using BFD for everything else. Currently used by the assembler 8398 when creating COFF files. */ 8399 asymbol * 8400 (*_bfd_make_debug_symbol) (bfd *, void *, unsigned long size); 8401 #define bfd_read_minisymbols(b, d, m, s) \ 8402 BFD_SEND (b, _read_minisymbols, (b, d, m, s)) 8403 long (*_read_minisymbols) (bfd *, bool, void **, unsigned int *); 8404 #define bfd_minisymbol_to_symbol(b, d, m, f) \ 8405 BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f)) 8406 asymbol * 8407 (*_minisymbol_to_symbol) (bfd *, bool, const void *, asymbol *); 8408 8409 /* Routines for relocs. */ 8410 #define BFD_JUMP_TABLE_RELOCS(NAME) \ 8411 NAME##_get_reloc_upper_bound, \ 8412 NAME##_canonicalize_reloc, \ 8413 NAME##_set_reloc, \ 8414 NAME##_bfd_reloc_type_lookup, \ 8415 NAME##_bfd_reloc_name_lookup 8416 8417 long (*_get_reloc_upper_bound) (bfd *, sec_ptr); 8418 long (*_bfd_canonicalize_reloc) (bfd *, sec_ptr, arelent **, 8419 struct bfd_symbol **); 8420 void (*_bfd_set_reloc) (bfd *, sec_ptr, arelent **, unsigned int); 8421 /* See documentation on reloc types. */ 8422 reloc_howto_type * 8423 (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type); 8424 reloc_howto_type * 8425 (*reloc_name_lookup) (bfd *, const char *); 8426 8427 /* Routines used when writing an object file. */ 8428 #define BFD_JUMP_TABLE_WRITE(NAME) \ 8429 NAME##_set_arch_mach, \ 8430 NAME##_set_section_contents 8431 8432 bool (*_bfd_set_arch_mach) (bfd *, enum bfd_architecture, 8433 unsigned long); 8434 bool (*_bfd_set_section_contents) (bfd *, sec_ptr, const void *, 8435 file_ptr, bfd_size_type); 8436 8437 /* Routines used by the linker. */ 8438 #define BFD_JUMP_TABLE_LINK(NAME) \ 8439 NAME##_sizeof_headers, \ 8440 NAME##_bfd_get_relocated_section_contents, \ 8441 NAME##_bfd_relax_section, \ 8442 NAME##_bfd_link_hash_table_create, \ 8443 NAME##_bfd_link_add_symbols, \ 8444 NAME##_bfd_link_just_syms, \ 8445 NAME##_bfd_copy_link_hash_symbol_type, \ 8446 NAME##_bfd_final_link, \ 8447 NAME##_bfd_link_split_section, \ 8448 NAME##_bfd_link_check_relocs, \ 8449 NAME##_bfd_gc_sections, \ 8450 NAME##_bfd_lookup_section_flags, \ 8451 NAME##_bfd_merge_sections, \ 8452 NAME##_bfd_is_group_section, \ 8453 NAME##_bfd_group_name, \ 8454 NAME##_bfd_discard_group, \ 8455 NAME##_section_already_linked, \ 8456 NAME##_bfd_define_common_symbol, \ 8457 NAME##_bfd_link_hide_symbol, \ 8458 NAME##_bfd_define_start_stop 8459 8460 int (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *); 8461 bfd_byte * 8462 (*_bfd_get_relocated_section_contents) (bfd *, 8463 struct bfd_link_info *, 8464 struct bfd_link_order *, 8465 bfd_byte *, bool, 8466 struct bfd_symbol **); 8467 8468 bool (*_bfd_relax_section) (bfd *, struct bfd_section *, 8469 struct bfd_link_info *, bool *); 8470 8471 /* Create a hash table for the linker. Different backends store 8472 different information in this table. */ 8473 struct bfd_link_hash_table * 8474 (*_bfd_link_hash_table_create) (bfd *); 8475 8476 /* Add symbols from this object file into the hash table. */ 8477 bool (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *); 8478 8479 /* Indicate that we are only retrieving symbol values from this section. */ 8480 void (*_bfd_link_just_syms) (asection *, struct bfd_link_info *); 8481 8482 /* Copy the symbol type and other attributes for a linker script 8483 assignment of one symbol to another. */ 8484 #define bfd_copy_link_hash_symbol_type(b, t, f) \ 8485 BFD_SEND (b, _bfd_copy_link_hash_symbol_type, (b, t, f)) 8486 void (*_bfd_copy_link_hash_symbol_type) (bfd *, 8487 struct bfd_link_hash_entry *, 8488 struct bfd_link_hash_entry *); 8489 8490 /* Do a link based on the link_order structures attached to each 8491 section of the BFD. */ 8492 bool (*_bfd_final_link) (bfd *, struct bfd_link_info *); 8493 8494 /* Should this section be split up into smaller pieces during linking. */ 8495 bool (*_bfd_link_split_section) (bfd *, struct bfd_section *); 8496 8497 /* Check the relocations in the bfd for validity. */ 8498 bool (* _bfd_link_check_relocs)(bfd *, struct bfd_link_info *); 8499 8500 /* Remove sections that are not referenced from the output. */ 8501 bool (*_bfd_gc_sections) (bfd *, struct bfd_link_info *); 8502 8503 /* Sets the bitmask of allowed and disallowed section flags. */ 8504 bool (*_bfd_lookup_section_flags) (struct bfd_link_info *, 8505 struct flag_info *, asection *); 8506 8507 /* Attempt to merge SEC_MERGE sections. */ 8508 bool (*_bfd_merge_sections) (bfd *, struct bfd_link_info *); 8509 8510 /* Is this section a member of a group? */ 8511 bool (*_bfd_is_group_section) (bfd *, const struct bfd_section *); 8512 8513 /* The group name, if section is a member of a group. */ 8514 const char *(*_bfd_group_name) (bfd *, const struct bfd_section *); 8515 8516 /* Discard members of a group. */ 8517 bool (*_bfd_discard_group) (bfd *, struct bfd_section *); 8518 8519 /* Check if SEC has been already linked during a reloceatable or 8520 final link. */ 8521 bool (*_section_already_linked) (bfd *, asection *, 8522 struct bfd_link_info *); 8523 8524 /* Define a common symbol. */ 8525 bool (*_bfd_define_common_symbol) (bfd *, struct bfd_link_info *, 8526 struct bfd_link_hash_entry *); 8527 8528 /* Hide a symbol. */ 8529 void (*_bfd_link_hide_symbol) (bfd *, struct bfd_link_info *, 8530 struct bfd_link_hash_entry *); 8531 8532 /* Define a __start, __stop, .startof. or .sizeof. symbol. */ 8533 struct bfd_link_hash_entry * 8534 (*_bfd_define_start_stop) (struct bfd_link_info *, const char *, 8535 asection *); 8536 8537 /* Routines to handle dynamic symbols and relocs. */ 8538 #define BFD_JUMP_TABLE_DYNAMIC(NAME) \ 8539 NAME##_get_dynamic_symtab_upper_bound, \ 8540 NAME##_canonicalize_dynamic_symtab, \ 8541 NAME##_get_synthetic_symtab, \ 8542 NAME##_get_dynamic_reloc_upper_bound, \ 8543 NAME##_canonicalize_dynamic_reloc 8544 8545 /* Get the amount of memory required to hold the dynamic symbols. */ 8546 long (*_bfd_get_dynamic_symtab_upper_bound) (bfd *); 8547 /* Read in the dynamic symbols. */ 8548 long (*_bfd_canonicalize_dynamic_symtab) (bfd *, struct bfd_symbol **); 8549 /* Create synthetized symbols. */ 8550 long (*_bfd_get_synthetic_symtab) (bfd *, long, struct bfd_symbol **, 8551 long, struct bfd_symbol **, 8552 struct bfd_symbol **); 8553 /* Get the amount of memory required to hold the dynamic relocs. */ 8554 long (*_bfd_get_dynamic_reloc_upper_bound) (bfd *); 8555 /* Read in the dynamic relocs. */ 8556 long (*_bfd_canonicalize_dynamic_reloc) (bfd *, arelent **, 8557 struct bfd_symbol **); 8558 A pointer to an alternative bfd_target in case the current one is not 8559satisfactory. This can happen when the target cpu supports both big 8560and little endian code, and target chosen by the linker has the wrong 8561endianness. The function open_output() in ld/ldlang.c uses this field 8562to find an alternative output format that is suitable. 8563 /* Opposite endian version of this target. */ 8564 const struct bfd_target *alternative_target; 8565 8566 /* Data for use by back-end routines, which isn't 8567 generic enough to belong in this structure. */ 8568 const void *backend_data; 8569 8570 } bfd_target; 8571 8572 static inline const char * 8573 bfd_get_target (const bfd *abfd) 8574 { 8575 return abfd->xvec->name; 8576 } 8577 8578 static inline enum bfd_flavour 8579 bfd_get_flavour (const bfd *abfd) 8580 { 8581 return abfd->xvec->flavour; 8582 } 8583 8584 static inline flagword 8585 bfd_applicable_file_flags (const bfd *abfd) 8586 { 8587 return abfd->xvec->object_flags; 8588 } 8589 8590 static inline bool 8591 bfd_family_coff (const bfd *abfd) 8592 { 8593 return (bfd_get_flavour (abfd) == bfd_target_coff_flavour 8594 || bfd_get_flavour (abfd) == bfd_target_xcoff_flavour); 8595 } 8596 8597 static inline bool 8598 bfd_big_endian (const bfd *abfd) 8599 { 8600 return abfd->xvec->byteorder == BFD_ENDIAN_BIG; 8601 } 8602 static inline bool 8603 bfd_little_endian (const bfd *abfd) 8604 { 8605 return abfd->xvec->byteorder == BFD_ENDIAN_LITTLE; 8606 } 8607 8608 static inline bool 8609 bfd_header_big_endian (const bfd *abfd) 8610 { 8611 return abfd->xvec->header_byteorder == BFD_ENDIAN_BIG; 8612 } 8613 8614 static inline bool 8615 bfd_header_little_endian (const bfd *abfd) 8616 { 8617 return abfd->xvec->header_byteorder == BFD_ENDIAN_LITTLE; 8618 } 8619 8620 static inline flagword 8621 bfd_applicable_section_flags (const bfd *abfd) 8622 { 8623 return abfd->xvec->section_flags; 8624 } 8625 8626 static inline char 8627 bfd_get_symbol_leading_char (const bfd *abfd) 8628 { 8629 return abfd->xvec->symbol_leading_char; 8630 } 8631 8632 static inline enum bfd_flavour 8633 bfd_asymbol_flavour (const asymbol *sy) 8634 { 8635 if ((sy->flags & BSF_SYNTHETIC) != 0) 8636 return bfd_target_unknown_flavour; 8637 return sy->the_bfd->xvec->flavour; 8638 } 8639 8640 static inline bool 8641 bfd_keep_unused_section_symbols (const bfd *abfd) 8642 { 8643 return abfd->xvec->keep_unused_section_symbols; 8644 } 8645 86462.12.1.1 `bfd_set_default_target' 8647................................. 8648 8649*Synopsis* 8650 bool bfd_set_default_target (const char *name); 8651 *Description* 8652Set the default target vector to use when recognizing a BFD. This 8653takes the name of the target, which may be a BFD target name or a 8654configuration triplet. 8655 86562.12.1.2 `bfd_find_target' 8657.......................... 8658 8659*Synopsis* 8660 const bfd_target *bfd_find_target (const char *target_name, bfd *abfd); 8661 *Description* 8662Return a pointer to the transfer vector for the object target named 8663TARGET_NAME. If TARGET_NAME is `NULL', choose the one in the 8664environment variable `GNUTARGET'; if that is null or not defined, then 8665choose the first entry in the target list. Passing in the string 8666"default" or setting the environment variable to "default" will cause 8667the first entry in the target list to be returned, and 8668"target_defaulted" will be set in the BFD if ABFD isn't `NULL'. This 8669causes `bfd_check_format' to loop over all the targets to find the one 8670that matches the file being read. 8671 86722.12.1.3 `bfd_get_target_info' 8673.............................. 8674 8675*Synopsis* 8676 const bfd_target *bfd_get_target_info (const char *target_name, 8677 bfd *abfd, 8678 bool *is_bigendian, 8679 int *underscoring, 8680 const char **def_target_arch); 8681 *Description* 8682Return a pointer to the transfer vector for the object target named 8683TARGET_NAME. If TARGET_NAME is `NULL', choose the one in the 8684environment variable `GNUTARGET'; if that is null or not defined, then 8685choose the first entry in the target list. Passing in the string 8686"default" or setting the environment variable to "default" will cause 8687the first entry in the target list to be returned, and 8688"target_defaulted" will be set in the BFD if ABFD isn't `NULL'. This 8689causes `bfd_check_format' to loop over all the targets to find the one 8690that matches the file being read. If IS_BIGENDIAN is not `NULL', then 8691set this value to target's endian mode. True for big-endian, FALSE for 8692little-endian or for invalid target. If UNDERSCORING is not `NULL', 8693then set this value to target's underscoring mode. Zero for 8694none-underscoring, -1 for invalid target, else the value of target 8695vector's symbol underscoring. If DEF_TARGET_ARCH is not `NULL', then 8696set it to the architecture string specified by the target_name. 8697 86982.12.1.4 `bfd_target_list' 8699.......................... 8700 8701*Synopsis* 8702 const char ** bfd_target_list (void); 8703 *Description* 8704Return a freshly malloced NULL-terminated vector of the names of all 8705the valid BFD targets. Do not modify the names. 8706 87072.12.1.5 `bfd_iterate_over_targets' 8708................................... 8709 8710*Synopsis* 8711 const bfd_target *bfd_iterate_over_targets 8712 (int (*func) (const bfd_target *, void *), 8713 void *data); 8714 *Description* 8715Call FUNC for each target in the list of BFD target vectors, passing 8716DATA to FUNC. Stop iterating if FUNC returns a non-zero result, and 8717return that target vector. Return NULL if FUNC always returns zero. 8718 87192.12.1.6 `bfd_flavour_name' 8720........................... 8721 8722*Synopsis* 8723 const char *bfd_flavour_name (enum bfd_flavour flavour); 8724 *Description* 8725Return the string form of FLAVOUR. 8726 8727 8728File: bfd.info, Node: Architectures, Next: Opening and Closing, Prev: Targets, Up: BFD front end 8729 87302.13 Architectures 8731================== 8732 8733BFD keeps one atom in a BFD describing the architecture of the data 8734attached to the BFD: a pointer to a `bfd_arch_info_type'. 8735 8736 Pointers to structures can be requested independently of a BFD so 8737that an architecture's information can be interrogated without access 8738to an open BFD. 8739 8740 The architecture information is provided by each architecture 8741package. The set of default architectures is selected by the macro 8742`SELECT_ARCHITECTURES'. This is normally set up in the 8743`config/TARGET.mt' file of your choice. If the name is not defined, 8744then all the architectures supported are included. 8745 8746 When BFD starts up, all the architectures are called with an 8747initialize method. It is up to the architecture back end to insert as 8748many items into the list of architectures as it wants to; generally 8749this would be one for each machine and one for the default case (an 8750item with a machine field of 0). 8751 8752 BFD's idea of an architecture is implemented in `archures.c'. 8753 87542.13.1 bfd_architecture 8755----------------------- 8756 8757*Description* 8758This enum gives the object file's CPU architecture, in a global 8759sense--i.e., what processor family does it belong to? Another field 8760indicates which processor within the family is in use. The machine 8761gives a number which distinguishes different versions of the 8762architecture, containing, for example, 68020 for Motorola 68020. 8763 enum bfd_architecture 8764 { 8765 bfd_arch_unknown, /* File arch not known. */ 8766 bfd_arch_obscure, /* Arch known, not one of these. */ 8767 bfd_arch_m68k, /* Motorola 68xxx. */ 8768 #define bfd_mach_m68000 1 8769 #define bfd_mach_m68008 2 8770 #define bfd_mach_m68010 3 8771 #define bfd_mach_m68020 4 8772 #define bfd_mach_m68030 5 8773 #define bfd_mach_m68040 6 8774 #define bfd_mach_m68060 7 8775 #define bfd_mach_cpu32 8 8776 #define bfd_mach_fido 9 8777 #define bfd_mach_mcf_isa_a_nodiv 10 8778 #define bfd_mach_mcf_isa_a 11 8779 #define bfd_mach_mcf_isa_a_mac 12 8780 #define bfd_mach_mcf_isa_a_emac 13 8781 #define bfd_mach_mcf_isa_aplus 14 8782 #define bfd_mach_mcf_isa_aplus_mac 15 8783 #define bfd_mach_mcf_isa_aplus_emac 16 8784 #define bfd_mach_mcf_isa_b_nousp 17 8785 #define bfd_mach_mcf_isa_b_nousp_mac 18 8786 #define bfd_mach_mcf_isa_b_nousp_emac 19 8787 #define bfd_mach_mcf_isa_b 20 8788 #define bfd_mach_mcf_isa_b_mac 21 8789 #define bfd_mach_mcf_isa_b_emac 22 8790 #define bfd_mach_mcf_isa_b_float 23 8791 #define bfd_mach_mcf_isa_b_float_mac 24 8792 #define bfd_mach_mcf_isa_b_float_emac 25 8793 #define bfd_mach_mcf_isa_c 26 8794 #define bfd_mach_mcf_isa_c_mac 27 8795 #define bfd_mach_mcf_isa_c_emac 28 8796 #define bfd_mach_mcf_isa_c_nodiv 29 8797 #define bfd_mach_mcf_isa_c_nodiv_mac 30 8798 #define bfd_mach_mcf_isa_c_nodiv_emac 31 8799 bfd_arch_vax, /* DEC Vax. */ 8800 8801 bfd_arch_or1k, /* OpenRISC 1000. */ 8802 #define bfd_mach_or1k 1 8803 #define bfd_mach_or1knd 2 8804 8805 bfd_arch_sparc, /* SPARC. */ 8806 #define bfd_mach_sparc 1 8807 /* The difference between v8plus and v9 is that v9 is a true 64 bit env. */ 8808 #define bfd_mach_sparc_sparclet 2 8809 #define bfd_mach_sparc_sparclite 3 8810 #define bfd_mach_sparc_v8plus 4 8811 #define bfd_mach_sparc_v8plusa 5 /* with ultrasparc add'ns. */ 8812 #define bfd_mach_sparc_sparclite_le 6 8813 #define bfd_mach_sparc_v9 7 8814 #define bfd_mach_sparc_v9a 8 /* with ultrasparc add'ns. */ 8815 #define bfd_mach_sparc_v8plusb 9 /* with cheetah add'ns. */ 8816 #define bfd_mach_sparc_v9b 10 /* with cheetah add'ns. */ 8817 #define bfd_mach_sparc_v8plusc 11 /* with UA2005 and T1 add'ns. */ 8818 #define bfd_mach_sparc_v9c 12 /* with UA2005 and T1 add'ns. */ 8819 #define bfd_mach_sparc_v8plusd 13 /* with UA2007 and T3 add'ns. */ 8820 #define bfd_mach_sparc_v9d 14 /* with UA2007 and T3 add'ns. */ 8821 #define bfd_mach_sparc_v8pluse 15 /* with OSA2001 and T4 add'ns (no IMA). */ 8822 #define bfd_mach_sparc_v9e 16 /* with OSA2001 and T4 add'ns (no IMA). */ 8823 #define bfd_mach_sparc_v8plusv 17 /* with OSA2011 and T4 and IMA and FJMAU add'ns. */ 8824 #define bfd_mach_sparc_v9v 18 /* with OSA2011 and T4 and IMA and FJMAU add'ns. */ 8825 #define bfd_mach_sparc_v8plusm 19 /* with OSA2015 and M7 add'ns. */ 8826 #define bfd_mach_sparc_v9m 20 /* with OSA2015 and M7 add'ns. */ 8827 #define bfd_mach_sparc_v8plusm8 21 /* with OSA2017 and M8 add'ns. */ 8828 #define bfd_mach_sparc_v9m8 22 /* with OSA2017 and M8 add'ns. */ 8829 /* Nonzero if MACH has the v9 instruction set. */ 8830 #define bfd_mach_sparc_v9_p(mach) \ 8831 ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9m8 \ 8832 && (mach) != bfd_mach_sparc_sparclite_le) 8833 /* Nonzero if MACH is a 64 bit sparc architecture. */ 8834 #define bfd_mach_sparc_64bit_p(mach) \ 8835 ((mach) >= bfd_mach_sparc_v9 \ 8836 && (mach) != bfd_mach_sparc_v8plusb \ 8837 && (mach) != bfd_mach_sparc_v8plusc \ 8838 && (mach) != bfd_mach_sparc_v8plusd \ 8839 && (mach) != bfd_mach_sparc_v8pluse \ 8840 && (mach) != bfd_mach_sparc_v8plusv \ 8841 && (mach) != bfd_mach_sparc_v8plusm \ 8842 && (mach) != bfd_mach_sparc_v8plusm8) 8843 bfd_arch_spu, /* PowerPC SPU. */ 8844 #define bfd_mach_spu 256 8845 bfd_arch_mips, /* MIPS Rxxxx. */ 8846 #define bfd_mach_mips3000 3000 8847 #define bfd_mach_mips3900 3900 8848 #define bfd_mach_mips4000 4000 8849 #define bfd_mach_mips4010 4010 8850 #define bfd_mach_mips4100 4100 8851 #define bfd_mach_mips4111 4111 8852 #define bfd_mach_mips4120 4120 8853 #define bfd_mach_mips4300 4300 8854 #define bfd_mach_mips4400 4400 8855 #define bfd_mach_mips4600 4600 8856 #define bfd_mach_mips4650 4650 8857 #define bfd_mach_mips5000 5000 8858 #define bfd_mach_mips5400 5400 8859 #define bfd_mach_mips5500 5500 8860 #define bfd_mach_mips5900 5900 8861 #define bfd_mach_mips6000 6000 8862 #define bfd_mach_mips7000 7000 8863 #define bfd_mach_mips8000 8000 8864 #define bfd_mach_mips9000 9000 8865 #define bfd_mach_mips10000 10000 8866 #define bfd_mach_mips12000 12000 8867 #define bfd_mach_mips14000 14000 8868 #define bfd_mach_mips16000 16000 8869 #define bfd_mach_mips16 16 8870 #define bfd_mach_mips5 5 8871 #define bfd_mach_mips_loongson_2e 3001 8872 #define bfd_mach_mips_loongson_2f 3002 8873 #define bfd_mach_mips_gs464 3003 8874 #define bfd_mach_mips_gs464e 3004 8875 #define bfd_mach_mips_gs264e 3005 8876 #define bfd_mach_mips_sb1 12310201 /* octal 'SB', 01. */ 8877 #define bfd_mach_mips_octeon 6501 8878 #define bfd_mach_mips_octeonp 6601 8879 #define bfd_mach_mips_octeon2 6502 8880 #define bfd_mach_mips_octeon3 6503 8881 #define bfd_mach_mips_xlr 887682 /* decimal 'XLR'. */ 8882 #define bfd_mach_mips_interaptiv_mr2 736550 /* decimal 'IA2'. */ 8883 #define bfd_mach_mipsisa32 32 8884 #define bfd_mach_mipsisa32r2 33 8885 #define bfd_mach_mipsisa32r3 34 8886 #define bfd_mach_mipsisa32r5 36 8887 #define bfd_mach_mipsisa32r6 37 8888 #define bfd_mach_mipsisa64 64 8889 #define bfd_mach_mipsisa64r2 65 8890 #define bfd_mach_mipsisa64r3 66 8891 #define bfd_mach_mipsisa64r5 68 8892 #define bfd_mach_mipsisa64r6 69 8893 #define bfd_mach_mips_micromips 96 8894 bfd_arch_i386, /* Intel 386. */ 8895 #define bfd_mach_i386_intel_syntax (1 << 0) 8896 #define bfd_mach_i386_i8086 (1 << 1) 8897 #define bfd_mach_i386_i386 (1 << 2) 8898 #define bfd_mach_x86_64 (1 << 3) 8899 #define bfd_mach_x64_32 (1 << 4) 8900 #define bfd_mach_i386_i386_intel_syntax (bfd_mach_i386_i386 | bfd_mach_i386_intel_syntax) 8901 #define bfd_mach_x86_64_intel_syntax (bfd_mach_x86_64 | bfd_mach_i386_intel_syntax) 8902 #define bfd_mach_x64_32_intel_syntax (bfd_mach_x64_32 | bfd_mach_i386_intel_syntax) 8903 bfd_arch_iamcu, /* Intel MCU. */ 8904 #define bfd_mach_iamcu (1 << 8) 8905 #define bfd_mach_i386_iamcu (bfd_mach_i386_i386 | bfd_mach_iamcu) 8906 #define bfd_mach_i386_iamcu_intel_syntax (bfd_mach_i386_iamcu | bfd_mach_i386_intel_syntax) 8907 bfd_arch_romp, /* IBM ROMP PC/RT. */ 8908 bfd_arch_convex, /* Convex. */ 8909 bfd_arch_m98k, /* Motorola 98xxx. */ 8910 bfd_arch_pyramid, /* Pyramid Technology. */ 8911 bfd_arch_h8300, /* Renesas H8/300 (formerly Hitachi H8/300). */ 8912 #define bfd_mach_h8300 1 8913 #define bfd_mach_h8300h 2 8914 #define bfd_mach_h8300s 3 8915 #define bfd_mach_h8300hn 4 8916 #define bfd_mach_h8300sn 5 8917 #define bfd_mach_h8300sx 6 8918 #define bfd_mach_h8300sxn 7 8919 bfd_arch_pdp11, /* DEC PDP-11. */ 8920 bfd_arch_powerpc, /* PowerPC. */ 8921 #define bfd_mach_ppc 32 8922 #define bfd_mach_ppc64 64 8923 #define bfd_mach_ppc_403 403 8924 #define bfd_mach_ppc_403gc 4030 8925 #define bfd_mach_ppc_405 405 8926 #define bfd_mach_ppc_505 505 8927 #define bfd_mach_ppc_601 601 8928 #define bfd_mach_ppc_602 602 8929 #define bfd_mach_ppc_603 603 8930 #define bfd_mach_ppc_ec603e 6031 8931 #define bfd_mach_ppc_604 604 8932 #define bfd_mach_ppc_620 620 8933 #define bfd_mach_ppc_630 630 8934 #define bfd_mach_ppc_750 750 8935 #define bfd_mach_ppc_860 860 8936 #define bfd_mach_ppc_a35 35 8937 #define bfd_mach_ppc_rs64ii 642 8938 #define bfd_mach_ppc_rs64iii 643 8939 #define bfd_mach_ppc_7400 7400 8940 #define bfd_mach_ppc_e500 500 8941 #define bfd_mach_ppc_e500mc 5001 8942 #define bfd_mach_ppc_e500mc64 5005 8943 #define bfd_mach_ppc_e5500 5006 8944 #define bfd_mach_ppc_e6500 5007 8945 #define bfd_mach_ppc_titan 83 8946 #define bfd_mach_ppc_vle 84 8947 bfd_arch_rs6000, /* IBM RS/6000. */ 8948 #define bfd_mach_rs6k 6000 8949 #define bfd_mach_rs6k_rs1 6001 8950 #define bfd_mach_rs6k_rsc 6003 8951 #define bfd_mach_rs6k_rs2 6002 8952 bfd_arch_hppa, /* HP PA RISC. */ 8953 #define bfd_mach_hppa10 10 8954 #define bfd_mach_hppa11 11 8955 #define bfd_mach_hppa20 20 8956 #define bfd_mach_hppa20w 25 8957 bfd_arch_d10v, /* Mitsubishi D10V. */ 8958 #define bfd_mach_d10v 1 8959 #define bfd_mach_d10v_ts2 2 8960 #define bfd_mach_d10v_ts3 3 8961 bfd_arch_d30v, /* Mitsubishi D30V. */ 8962 bfd_arch_dlx, /* DLX. */ 8963 bfd_arch_m68hc11, /* Motorola 68HC11. */ 8964 bfd_arch_m68hc12, /* Motorola 68HC12. */ 8965 #define bfd_mach_m6812_default 0 8966 #define bfd_mach_m6812 1 8967 #define bfd_mach_m6812s 2 8968 bfd_arch_m9s12x, /* Freescale S12X. */ 8969 bfd_arch_m9s12xg, /* Freescale XGATE. */ 8970 bfd_arch_s12z, /* Freescale S12Z. */ 8971 #define bfd_mach_s12z_default 0 8972 bfd_arch_z8k, /* Zilog Z8000. */ 8973 #define bfd_mach_z8001 1 8974 #define bfd_mach_z8002 2 8975 bfd_arch_sh, /* Renesas / SuperH SH (formerly Hitachi SH). */ 8976 #define bfd_mach_sh 1 8977 #define bfd_mach_sh2 0x20 8978 #define bfd_mach_sh_dsp 0x2d 8979 #define bfd_mach_sh2a 0x2a 8980 #define bfd_mach_sh2a_nofpu 0x2b 8981 #define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1 8982 #define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2 8983 #define bfd_mach_sh2a_or_sh4 0x2a3 8984 #define bfd_mach_sh2a_or_sh3e 0x2a4 8985 #define bfd_mach_sh2e 0x2e 8986 #define bfd_mach_sh3 0x30 8987 #define bfd_mach_sh3_nommu 0x31 8988 #define bfd_mach_sh3_dsp 0x3d 8989 #define bfd_mach_sh3e 0x3e 8990 #define bfd_mach_sh4 0x40 8991 #define bfd_mach_sh4_nofpu 0x41 8992 #define bfd_mach_sh4_nommu_nofpu 0x42 8993 #define bfd_mach_sh4a 0x4a 8994 #define bfd_mach_sh4a_nofpu 0x4b 8995 #define bfd_mach_sh4al_dsp 0x4d 8996 bfd_arch_alpha, /* Dec Alpha. */ 8997 #define bfd_mach_alpha_ev4 0x10 8998 #define bfd_mach_alpha_ev5 0x20 8999 #define bfd_mach_alpha_ev6 0x30 9000 bfd_arch_arm, /* Advanced Risc Machines ARM. */ 9001 #define bfd_mach_arm_unknown 0 9002 #define bfd_mach_arm_2 1 9003 #define bfd_mach_arm_2a 2 9004 #define bfd_mach_arm_3 3 9005 #define bfd_mach_arm_3M 4 9006 #define bfd_mach_arm_4 5 9007 #define bfd_mach_arm_4T 6 9008 #define bfd_mach_arm_5 7 9009 #define bfd_mach_arm_5T 8 9010 #define bfd_mach_arm_5TE 9 9011 #define bfd_mach_arm_XScale 10 9012 #define bfd_mach_arm_ep9312 11 9013 #define bfd_mach_arm_iWMMXt 12 9014 #define bfd_mach_arm_iWMMXt2 13 9015 #define bfd_mach_arm_5TEJ 14 9016 #define bfd_mach_arm_6 15 9017 #define bfd_mach_arm_6KZ 16 9018 #define bfd_mach_arm_6T2 17 9019 #define bfd_mach_arm_6K 18 9020 #define bfd_mach_arm_7 19 9021 #define bfd_mach_arm_6M 20 9022 #define bfd_mach_arm_6SM 21 9023 #define bfd_mach_arm_7EM 22 9024 #define bfd_mach_arm_8 23 9025 #define bfd_mach_arm_8R 24 9026 #define bfd_mach_arm_8M_BASE 25 9027 #define bfd_mach_arm_8M_MAIN 26 9028 #define bfd_mach_arm_8_1M_MAIN 27 9029 #define bfd_mach_arm_9 28 9030 bfd_arch_nds32, /* Andes NDS32. */ 9031 #define bfd_mach_n1 1 9032 #define bfd_mach_n1h 2 9033 #define bfd_mach_n1h_v2 3 9034 #define bfd_mach_n1h_v3 4 9035 #define bfd_mach_n1h_v3m 5 9036 bfd_arch_ns32k, /* National Semiconductors ns32000. */ 9037 bfd_arch_tic30, /* Texas Instruments TMS320C30. */ 9038 bfd_arch_tic4x, /* Texas Instruments TMS320C3X/4X. */ 9039 #define bfd_mach_tic3x 30 9040 #define bfd_mach_tic4x 40 9041 bfd_arch_tic54x, /* Texas Instruments TMS320C54X. */ 9042 bfd_arch_tic6x, /* Texas Instruments TMS320C6X. */ 9043 bfd_arch_v850, /* NEC V850. */ 9044 bfd_arch_v850_rh850,/* NEC V850 (using RH850 ABI). */ 9045 #define bfd_mach_v850 1 9046 #define bfd_mach_v850e 'E' 9047 #define bfd_mach_v850e1 '1' 9048 #define bfd_mach_v850e2 0x4532 9049 #define bfd_mach_v850e2v3 0x45325633 9050 #define bfd_mach_v850e3v5 0x45335635 /* ('E'|'3'|'V'|'5'). */ 9051 bfd_arch_arc, /* ARC Cores. */ 9052 #define bfd_mach_arc_a4 0 9053 #define bfd_mach_arc_a5 1 9054 #define bfd_mach_arc_arc600 2 9055 #define bfd_mach_arc_arc601 4 9056 #define bfd_mach_arc_arc700 3 9057 #define bfd_mach_arc_arcv2 5 9058 bfd_arch_m32c, /* Renesas M16C/M32C. */ 9059 #define bfd_mach_m16c 0x75 9060 #define bfd_mach_m32c 0x78 9061 bfd_arch_m32r, /* Renesas M32R (formerly Mitsubishi M32R/D). */ 9062 #define bfd_mach_m32r 1 /* For backwards compatibility. */ 9063 #define bfd_mach_m32rx 'x' 9064 #define bfd_mach_m32r2 '2' 9065 bfd_arch_mn10200, /* Matsushita MN10200. */ 9066 bfd_arch_mn10300, /* Matsushita MN10300. */ 9067 #define bfd_mach_mn10300 300 9068 #define bfd_mach_am33 330 9069 #define bfd_mach_am33_2 332 9070 bfd_arch_fr30, 9071 #define bfd_mach_fr30 0x46523330 9072 bfd_arch_frv, 9073 #define bfd_mach_frv 1 9074 #define bfd_mach_frvsimple 2 9075 #define bfd_mach_fr300 300 9076 #define bfd_mach_fr400 400 9077 #define bfd_mach_fr450 450 9078 #define bfd_mach_frvtomcat 499 /* fr500 prototype. */ 9079 #define bfd_mach_fr500 500 9080 #define bfd_mach_fr550 550 9081 bfd_arch_moxie, /* The moxie processor. */ 9082 #define bfd_mach_moxie 1 9083 bfd_arch_ft32, /* The ft32 processor. */ 9084 #define bfd_mach_ft32 1 9085 #define bfd_mach_ft32b 2 9086 bfd_arch_mcore, 9087 bfd_arch_mep, 9088 #define bfd_mach_mep 1 9089 #define bfd_mach_mep_h1 0x6831 9090 #define bfd_mach_mep_c5 0x6335 9091 bfd_arch_metag, 9092 #define bfd_mach_metag 1 9093 bfd_arch_ia64, /* HP/Intel ia64. */ 9094 #define bfd_mach_ia64_elf64 64 9095 #define bfd_mach_ia64_elf32 32 9096 bfd_arch_ip2k, /* Ubicom IP2K microcontrollers. */ 9097 #define bfd_mach_ip2022 1 9098 #define bfd_mach_ip2022ext 2 9099 bfd_arch_iq2000, /* Vitesse IQ2000. */ 9100 #define bfd_mach_iq2000 1 9101 #define bfd_mach_iq10 2 9102 bfd_arch_bpf, /* Linux eBPF. */ 9103 #define bfd_mach_bpf 1 9104 #define bfd_mach_xbpf 2 9105 bfd_arch_epiphany, /* Adapteva EPIPHANY. */ 9106 #define bfd_mach_epiphany16 1 9107 #define bfd_mach_epiphany32 2 9108 bfd_arch_mt, 9109 #define bfd_mach_ms1 1 9110 #define bfd_mach_mrisc2 2 9111 #define bfd_mach_ms2 3 9112 bfd_arch_pj, 9113 bfd_arch_avr, /* Atmel AVR microcontrollers. */ 9114 #define bfd_mach_avr1 1 9115 #define bfd_mach_avr2 2 9116 #define bfd_mach_avr25 25 9117 #define bfd_mach_avr3 3 9118 #define bfd_mach_avr31 31 9119 #define bfd_mach_avr35 35 9120 #define bfd_mach_avr4 4 9121 #define bfd_mach_avr5 5 9122 #define bfd_mach_avr51 51 9123 #define bfd_mach_avr6 6 9124 #define bfd_mach_avrtiny 100 9125 #define bfd_mach_avrxmega1 101 9126 #define bfd_mach_avrxmega2 102 9127 #define bfd_mach_avrxmega3 103 9128 #define bfd_mach_avrxmega4 104 9129 #define bfd_mach_avrxmega5 105 9130 #define bfd_mach_avrxmega6 106 9131 #define bfd_mach_avrxmega7 107 9132 bfd_arch_bfin, /* ADI Blackfin. */ 9133 #define bfd_mach_bfin 1 9134 bfd_arch_cr16, /* National Semiconductor CompactRISC (ie CR16). */ 9135 #define bfd_mach_cr16 1 9136 bfd_arch_crx, /* National Semiconductor CRX. */ 9137 #define bfd_mach_crx 1 9138 bfd_arch_cris, /* Axis CRIS. */ 9139 #define bfd_mach_cris_v0_v10 255 9140 #define bfd_mach_cris_v32 32 9141 #define bfd_mach_cris_v10_v32 1032 9142 bfd_arch_riscv, 9143 #define bfd_mach_riscv32 132 9144 #define bfd_mach_riscv64 164 9145 bfd_arch_rl78, 9146 #define bfd_mach_rl78 0x75 9147 bfd_arch_rx, /* Renesas RX. */ 9148 #define bfd_mach_rx 0x75 9149 #define bfd_mach_rx_v2 0x76 9150 #define bfd_mach_rx_v3 0x77 9151 bfd_arch_s390, /* IBM s390. */ 9152 #define bfd_mach_s390_31 31 9153 #define bfd_mach_s390_64 64 9154 bfd_arch_score, /* Sunplus score. */ 9155 #define bfd_mach_score3 3 9156 #define bfd_mach_score7 7 9157 bfd_arch_mmix, /* Donald Knuth's educational processor. */ 9158 bfd_arch_xstormy16, 9159 #define bfd_mach_xstormy16 1 9160 bfd_arch_msp430, /* Texas Instruments MSP430 architecture. */ 9161 #define bfd_mach_msp11 11 9162 #define bfd_mach_msp110 110 9163 #define bfd_mach_msp12 12 9164 #define bfd_mach_msp13 13 9165 #define bfd_mach_msp14 14 9166 #define bfd_mach_msp15 15 9167 #define bfd_mach_msp16 16 9168 #define bfd_mach_msp20 20 9169 #define bfd_mach_msp21 21 9170 #define bfd_mach_msp22 22 9171 #define bfd_mach_msp23 23 9172 #define bfd_mach_msp24 24 9173 #define bfd_mach_msp26 26 9174 #define bfd_mach_msp31 31 9175 #define bfd_mach_msp32 32 9176 #define bfd_mach_msp33 33 9177 #define bfd_mach_msp41 41 9178 #define bfd_mach_msp42 42 9179 #define bfd_mach_msp43 43 9180 #define bfd_mach_msp44 44 9181 #define bfd_mach_msp430x 45 9182 #define bfd_mach_msp46 46 9183 #define bfd_mach_msp47 47 9184 #define bfd_mach_msp54 54 9185 bfd_arch_xgate, /* Freescale XGATE. */ 9186 #define bfd_mach_xgate 1 9187 bfd_arch_xtensa, /* Tensilica's Xtensa cores. */ 9188 #define bfd_mach_xtensa 1 9189 bfd_arch_z80, 9190 /* Zilog Z80 without undocumented opcodes. */ 9191 #define bfd_mach_z80strict 1 9192 /* Zilog Z180: successor with additional instructions, but without 9193 halves of ix and iy. */ 9194 #define bfd_mach_z180 2 9195 /* Zilog Z80 with ixl, ixh, iyl, and iyh. */ 9196 #define bfd_mach_z80 3 9197 /* Zilog eZ80 (successor of Z80 & Z180) in Z80 (16-bit address) mode. */ 9198 #define bfd_mach_ez80_z80 4 9199 /* Zilog eZ80 (successor of Z80 & Z180) in ADL (24-bit address) mode. */ 9200 #define bfd_mach_ez80_adl 5 9201 /* Z80N */ 9202 #define bfd_mach_z80n 6 9203 /* Zilog Z80 with all undocumented instructions. */ 9204 #define bfd_mach_z80full 7 9205 /* GameBoy Z80 (reduced instruction set). */ 9206 #define bfd_mach_gbz80 8 9207 /* ASCII R800: successor with multiplication. */ 9208 #define bfd_mach_r800 11 9209 bfd_arch_lm32, /* Lattice Mico32. */ 9210 #define bfd_mach_lm32 1 9211 bfd_arch_microblaze,/* Xilinx MicroBlaze. */ 9212 bfd_arch_tilepro, /* Tilera TILEPro. */ 9213 bfd_arch_tilegx, /* Tilera TILE-Gx. */ 9214 #define bfd_mach_tilepro 1 9215 #define bfd_mach_tilegx 1 9216 #define bfd_mach_tilegx32 2 9217 bfd_arch_aarch64, /* AArch64. */ 9218 #define bfd_mach_aarch64 0 9219 #define bfd_mach_aarch64_8R 1 9220 #define bfd_mach_aarch64_ilp32 32 9221 bfd_arch_nios2, /* Nios II. */ 9222 #define bfd_mach_nios2 0 9223 #define bfd_mach_nios2r1 1 9224 #define bfd_mach_nios2r2 2 9225 bfd_arch_visium, /* Visium. */ 9226 #define bfd_mach_visium 1 9227 bfd_arch_wasm32, /* WebAssembly. */ 9228 #define bfd_mach_wasm32 1 9229 bfd_arch_pru, /* PRU. */ 9230 #define bfd_mach_pru 0 9231 bfd_arch_nfp, /* Netronome Flow Processor */ 9232 #define bfd_mach_nfp3200 0x3200 9233 #define bfd_mach_nfp6000 0x6000 9234 bfd_arch_csky, /* C-SKY. */ 9235 #define bfd_mach_ck_unknown 0 9236 #define bfd_mach_ck510 1 9237 #define bfd_mach_ck610 2 9238 #define bfd_mach_ck801 3 9239 #define bfd_mach_ck802 4 9240 #define bfd_mach_ck803 5 9241 #define bfd_mach_ck807 6 9242 #define bfd_mach_ck810 7 9243 #define bfd_mach_ck860 8 9244 bfd_arch_loongarch, /* LoongArch */ 9245 #define bfd_mach_loongarch32 1 9246 #define bfd_mach_loongarch64 2 9247 bfd_arch_amdgcn, /* AMDGCN */ 9248 #define bfd_mach_amdgcn_unknown 0x000 9249 #define bfd_mach_amdgcn_gfx900 0x02c 9250 #define bfd_mach_amdgcn_gfx904 0x02e 9251 #define bfd_mach_amdgcn_gfx906 0x02f 9252 #define bfd_mach_amdgcn_gfx908 0x030 9253 #define bfd_mach_amdgcn_gfx90a 0x03f 9254 #define bfd_mach_amdgcn_gfx1010 0x033 9255 #define bfd_mach_amdgcn_gfx1011 0x034 9256 #define bfd_mach_amdgcn_gfx1012 0x035 9257 #define bfd_mach_amdgcn_gfx1030 0x036 9258 #define bfd_mach_amdgcn_gfx1031 0x037 9259 #define bfd_mach_amdgcn_gfx1032 0x038 9260 bfd_arch_last 9261 }; 9262 92632.13.2 bfd_arch_info 9264-------------------- 9265 9266*Description* 9267This structure contains information on architectures for use within BFD. 9268 9269 typedef struct bfd_arch_info 9270 { 9271 int bits_per_word; 9272 int bits_per_address; 9273 int bits_per_byte; 9274 enum bfd_architecture arch; 9275 unsigned long mach; 9276 const char *arch_name; 9277 const char *printable_name; 9278 unsigned int section_align_power; 9279 /* TRUE if this is the default machine for the architecture. 9280 The default arch should be the first entry for an arch so that 9281 all the entries for that arch can be accessed via `next'. */ 9282 bool the_default; 9283 const struct bfd_arch_info * (*compatible) (const struct bfd_arch_info *, 9284 const struct bfd_arch_info *); 9285 9286 bool (*scan) (const struct bfd_arch_info *, const char *); 9287 9288 /* Allocate via bfd_malloc and return a fill buffer of size COUNT. If 9289 IS_BIGENDIAN is TRUE, the order of bytes is big endian. If CODE is 9290 TRUE, the buffer contains code. */ 9291 void *(*fill) (bfd_size_type count, bool is_bigendian, bool code); 9292 9293 const struct bfd_arch_info *next; 9294 9295 /* On some architectures the offset for a relocation can point into 9296 the middle of an instruction. This field specifies the maximum 9297 offset such a relocation can have (in octets). This affects the 9298 behaviour of the disassembler, since a value greater than zero 9299 means that it may need to disassemble an instruction twice, once 9300 to get its length and then a second time to display it. If the 9301 value is negative then this has to be done for every single 9302 instruction, regardless of the offset of the reloc. */ 9303 signed int max_reloc_offset_into_insn; 9304 } 9305 bfd_arch_info_type; 9306 93072.13.2.1 `bfd_printable_name' 9308............................. 9309 9310*Synopsis* 9311 const char *bfd_printable_name (bfd *abfd); 9312 *Description* 9313Return a printable string representing the architecture and machine 9314from the pointer to the architecture info structure. 9315 93162.13.2.2 `bfd_scan_arch' 9317........................ 9318 9319*Synopsis* 9320 const bfd_arch_info_type *bfd_scan_arch (const char *string); 9321 *Description* 9322Figure out if BFD supports any cpu which could be described with the 9323name STRING. Return a pointer to an `arch_info' structure if a machine 9324is found, otherwise NULL. 9325 93262.13.2.3 `bfd_arch_list' 9327........................ 9328 9329*Synopsis* 9330 const char **bfd_arch_list (void); 9331 *Description* 9332Return a freshly malloced NULL-terminated vector of the names of all 9333the valid BFD architectures. Do not modify the names. 9334 93352.13.2.4 `bfd_arch_get_compatible' 9336.................................. 9337 9338*Synopsis* 9339 const bfd_arch_info_type *bfd_arch_get_compatible 9340 (const bfd *abfd, const bfd *bbfd, bool accept_unknowns); 9341 *Description* 9342Determine whether two BFDs' architectures and machine types are 9343compatible. Calculates the lowest common denominator between the two 9344architectures and machine types implied by the BFDs and returns a 9345pointer to an `arch_info' structure describing the compatible machine. 9346 93472.13.2.5 `bfd_default_arch_struct' 9348.................................. 9349 9350*Description* 9351The `bfd_default_arch_struct' is an item of `bfd_arch_info_type' which 9352has been initialized to a fairly generic state. A BFD starts life by 9353pointing to this structure, until the correct back end has determined 9354the real architecture of the file. 9355 extern const bfd_arch_info_type bfd_default_arch_struct; 9356 93572.13.2.6 `bfd_set_arch_info' 9358............................ 9359 9360*Synopsis* 9361 void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg); 9362 *Description* 9363Set the architecture info of ABFD to ARG. 9364 93652.13.2.7 `bfd_default_set_arch_mach' 9366.................................... 9367 9368*Synopsis* 9369 bool bfd_default_set_arch_mach 9370 (bfd *abfd, enum bfd_architecture arch, unsigned long mach); 9371 *Description* 9372Set the architecture and machine type in BFD ABFD to ARCH and MACH. 9373Find the correct pointer to a structure and insert it into the 9374`arch_info' pointer. 9375 93762.13.2.8 `bfd_get_arch' 9377....................... 9378 9379*Synopsis* 9380 enum bfd_architecture bfd_get_arch (const bfd *abfd); 9381 *Description* 9382Return the enumerated type which describes the BFD ABFD's architecture. 9383 93842.13.2.9 `bfd_get_mach' 9385....................... 9386 9387*Synopsis* 9388 unsigned long bfd_get_mach (const bfd *abfd); 9389 *Description* 9390Return the long type which describes the BFD ABFD's machine. 9391 93922.13.2.10 `bfd_arch_bits_per_byte' 9393.................................. 9394 9395*Synopsis* 9396 unsigned int bfd_arch_bits_per_byte (const bfd *abfd); 9397 *Description* 9398Return the number of bits in one of the BFD ABFD's architecture's bytes. 9399 94002.13.2.11 `bfd_arch_bits_per_address' 9401..................................... 9402 9403*Synopsis* 9404 unsigned int bfd_arch_bits_per_address (const bfd *abfd); 9405 *Description* 9406Return the number of bits in one of the BFD ABFD's architecture's 9407addresses. 9408 94092.13.2.12 `bfd_default_compatible' 9410.................................. 9411 9412*Synopsis* 9413 const bfd_arch_info_type *bfd_default_compatible 9414 (const bfd_arch_info_type *a, const bfd_arch_info_type *b); 9415 *Description* 9416The default function for testing for compatibility. 9417 94182.13.2.13 `bfd_default_scan' 9419............................ 9420 9421*Synopsis* 9422 bool bfd_default_scan 9423 (const struct bfd_arch_info *info, const char *string); 9424 *Description* 9425The default function for working out whether this is an architecture 9426hit and a machine hit. 9427 94282.13.2.14 `bfd_get_arch_info' 9429............................. 9430 9431*Synopsis* 9432 const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd); 9433 *Description* 9434Return the architecture info struct in ABFD. 9435 94362.13.2.15 `bfd_lookup_arch' 9437........................... 9438 9439*Synopsis* 9440 const bfd_arch_info_type *bfd_lookup_arch 9441 (enum bfd_architecture arch, unsigned long machine); 9442 *Description* 9443Look for the architecture info structure which matches the arguments 9444ARCH and MACHINE. A machine of 0 matches the machine/architecture 9445structure which marks itself as the default. 9446 94472.13.2.16 `bfd_printable_arch_mach' 9448................................... 9449 9450*Synopsis* 9451 const char *bfd_printable_arch_mach 9452 (enum bfd_architecture arch, unsigned long machine); 9453 *Description* 9454Return a printable string representing the architecture and machine 9455type. 9456 9457 This routine is depreciated. 9458 94592.13.2.17 `bfd_octets_per_byte' 9460............................... 9461 9462*Synopsis* 9463 unsigned int bfd_octets_per_byte (const bfd *abfd, 9464 const asection *sec); 9465 *Description* 9466Return the number of octets (8-bit quantities) per target byte (minimum 9467addressable unit). In most cases, this will be one, but some DSP 9468targets have 16, 32, or even 48 bits per byte. 9469 94702.13.2.18 `bfd_arch_mach_octets_per_byte' 9471......................................... 9472 9473*Synopsis* 9474 unsigned int bfd_arch_mach_octets_per_byte 9475 (enum bfd_architecture arch, unsigned long machine); 9476 *Description* 9477See bfd_octets_per_byte. 9478 9479 This routine is provided for those cases where a bfd * is not 9480available 9481 94822.13.2.19 `bfd_arch_default_fill' 9483................................. 9484 9485*Synopsis* 9486 void *bfd_arch_default_fill (bfd_size_type count, 9487 bool is_bigendian, 9488 bool code); 9489 *Description* 9490Allocate via bfd_malloc and return a fill buffer of size COUNT. If 9491IS_BIGENDIAN is TRUE, the order of bytes is big endian. If CODE is 9492TRUE, the buffer contains code. 9493 9494 9495File: bfd.info, Node: Opening and Closing, Next: Internal, Prev: Architectures, Up: BFD front end 9496 9497 /* Set to N to open the next N BFDs using an alternate id space. */ 9498 extern unsigned int bfd_use_reserved_id; 9499 95002.14 Opening and closing BFDs 9501============================= 9502 95032.14.1 Functions for opening and closing 9504---------------------------------------- 9505 95062.14.1.1 `bfd_fopen' 9507.................... 9508 9509*Synopsis* 9510 bfd *bfd_fopen (const char *filename, const char *target, 9511 const char *mode, int fd); 9512 *Description* 9513Open the file FILENAME with the target TARGET. Return a pointer to the 9514created BFD. If FD is not -1, then `fdopen' is used to open the file; 9515otherwise, `fopen' is used. MODE is passed directly to `fopen' or 9516`fdopen'. 9517 9518 Calls `bfd_find_target', so TARGET is interpreted as by that 9519function. 9520 9521 The new BFD is marked as cacheable iff FD is -1. 9522 9523 If `NULL' is returned then an error has occured. Possible errors 9524are `bfd_error_no_memory', `bfd_error_invalid_target' or `system_call' 9525error. 9526 9527 On error, FD is always closed. 9528 9529 A copy of the FILENAME argument is stored in the newly created BFD. 9530It can be accessed via the bfd_get_filename() macro. 9531 95322.14.1.2 `bfd_openr' 9533.................... 9534 9535*Synopsis* 9536 bfd *bfd_openr (const char *filename, const char *target); 9537 *Description* 9538Open the file FILENAME (using `fopen') with the target TARGET. Return 9539a pointer to the created BFD. 9540 9541 Calls `bfd_find_target', so TARGET is interpreted as by that 9542function. 9543 9544 If `NULL' is returned then an error has occured. Possible errors 9545are `bfd_error_no_memory', `bfd_error_invalid_target' or `system_call' 9546error. 9547 9548 A copy of the FILENAME argument is stored in the newly created BFD. 9549It can be accessed via the bfd_get_filename() macro. 9550 95512.14.1.3 `bfd_fdopenr' 9552...................... 9553 9554*Synopsis* 9555 bfd *bfd_fdopenr (const char *filename, const char *target, int fd); 9556 *Description* 9557`bfd_fdopenr' is to `bfd_fopenr' much like `fdopen' is to `fopen'. It 9558opens a BFD on a file already described by the FD supplied. 9559 9560 When the file is later `bfd_close'd, the file descriptor will be 9561closed. If the caller desires that this file descriptor be cached by 9562BFD (opened as needed, closed as needed to free descriptors for other 9563opens), with the supplied FD used as an initial file descriptor (but 9564subject to closure at any time), call bfd_set_cacheable(bfd, 1) on the 9565returned BFD. The default is to assume no caching; the file descriptor 9566will remain open until `bfd_close', and will not be affected by BFD 9567operations on other files. 9568 9569 Possible errors are `bfd_error_no_memory', 9570`bfd_error_invalid_target' and `bfd_error_system_call'. 9571 9572 On error, FD is closed. 9573 9574 A copy of the FILENAME argument is stored in the newly created BFD. 9575It can be accessed via the bfd_get_filename() macro. 9576 95772.14.1.4 `bfd_fdopenw' 9578...................... 9579 9580*Synopsis* 9581 bfd *bfd_fdopenw (const char *filename, const char *target, int fd); 9582 *Description* 9583`bfd_fdopenw' is exactly like `bfd_fdopenr' with the exception that the 9584resulting BFD is suitable for output. 9585 95862.14.1.5 `bfd_openstreamr' 9587.......................... 9588 9589*Synopsis* 9590 bfd *bfd_openstreamr (const char * filename, const char * target, 9591 void * stream); 9592 *Description* 9593Open a BFD for read access on an existing stdio stream. When the BFD 9594is passed to `bfd_close', the stream will be closed. 9595 9596 A copy of the FILENAME argument is stored in the newly created BFD. 9597It can be accessed via the bfd_get_filename() macro. 9598 95992.14.1.6 `bfd_openr_iovec' 9600.......................... 9601 9602*Synopsis* 9603 bfd *bfd_openr_iovec (const char *filename, const char *target, 9604 void *(*open_func) (struct bfd *nbfd, 9605 void *open_closure), 9606 void *open_closure, 9607 file_ptr (*pread_func) (struct bfd *nbfd, 9608 void *stream, 9609 void *buf, 9610 file_ptr nbytes, 9611 file_ptr offset), 9612 int (*close_func) (struct bfd *nbfd, 9613 void *stream), 9614 int (*stat_func) (struct bfd *abfd, 9615 void *stream, 9616 struct stat *sb)); 9617 *Description* 9618Create and return a BFD backed by a read-only STREAM. The STREAM is 9619created using OPEN_FUNC, accessed using PREAD_FUNC and destroyed using 9620CLOSE_FUNC. 9621 9622 Calls `bfd_find_target', so TARGET is interpreted as by that 9623function. 9624 9625 Calls OPEN_FUNC (which can call `bfd_zalloc' and `bfd_get_filename') 9626to obtain the read-only stream backing the BFD. OPEN_FUNC either 9627succeeds returning the non-`NULL' STREAM, or fails returning `NULL' 9628(setting `bfd_error'). 9629 9630 Calls PREAD_FUNC to request NBYTES of data from STREAM starting at 9631OFFSET (e.g., via a call to `bfd_read'). PREAD_FUNC either succeeds 9632returning the number of bytes read (which can be less than NBYTES when 9633end-of-file), or fails returning -1 (setting `bfd_error'). 9634 9635 Calls CLOSE_FUNC when the BFD is later closed using `bfd_close'. 9636CLOSE_FUNC either succeeds returning 0, or fails returning -1 (setting 9637`bfd_error'). 9638 9639 Calls STAT_FUNC to fill in a stat structure for bfd_stat, 9640bfd_get_size, and bfd_get_mtime calls. STAT_FUNC returns 0 on success, 9641or returns -1 on failure (setting `bfd_error'). 9642 9643 If `bfd_openr_iovec' returns `NULL' then an error has occurred. 9644Possible errors are `bfd_error_no_memory', `bfd_error_invalid_target' 9645and `bfd_error_system_call'. 9646 9647 A copy of the FILENAME argument is stored in the newly created BFD. 9648It can be accessed via the bfd_get_filename() macro. 9649 96502.14.1.7 `bfd_openw' 9651.................... 9652 9653*Synopsis* 9654 bfd *bfd_openw (const char *filename, const char *target); 9655 *Description* 9656Create a BFD, associated with file FILENAME, using the file format 9657TARGET, and return a pointer to it. 9658 9659 Possible errors are `bfd_error_system_call', `bfd_error_no_memory', 9660`bfd_error_invalid_target'. 9661 9662 A copy of the FILENAME argument is stored in the newly created BFD. 9663It can be accessed via the bfd_get_filename() macro. 9664 96652.14.1.8 `bfd_close' 9666.................... 9667 9668*Synopsis* 9669 bool bfd_close (bfd *abfd); 9670 *Description* 9671Close a BFD. If the BFD was open for writing, then pending operations 9672are completed and the file written out and closed. If the created file 9673is executable, then `chmod' is called to mark it as such. 9674 9675 All memory attached to the BFD is released. 9676 9677 The file descriptor associated with the BFD is closed (even if it 9678was passed in to BFD by `bfd_fdopenr'). 9679 9680 *Returns* 9681`TRUE' is returned if all is ok, otherwise `FALSE'. 9682 96832.14.1.9 `bfd_close_all_done' 9684............................. 9685 9686*Synopsis* 9687 bool bfd_close_all_done (bfd *); 9688 *Description* 9689Close a BFD. Differs from `bfd_close' since it does not complete any 9690pending operations. This routine would be used if the application had 9691just used BFD for swapping and didn't want to use any of the writing 9692code. 9693 9694 If the created file is executable, then `chmod' is called to mark it 9695as such. 9696 9697 All memory attached to the BFD is released. 9698 9699 *Returns* 9700`TRUE' is returned if all is ok, otherwise `FALSE'. 9701 97022.14.1.10 `bfd_create' 9703...................... 9704 9705*Synopsis* 9706 bfd *bfd_create (const char *filename, bfd *templ); 9707 *Description* 9708Create a new BFD in the manner of `bfd_openw', but without opening a 9709file. The new BFD takes the target from the target used by TEMPL. The 9710format is always set to `bfd_object'. 9711 9712 A copy of the FILENAME argument is stored in the newly created BFD. 9713It can be accessed via the bfd_get_filename() macro. 9714 97152.14.1.11 `bfd_make_writable' 9716............................. 9717 9718*Synopsis* 9719 bool bfd_make_writable (bfd *abfd); 9720 *Description* 9721Takes a BFD as created by `bfd_create' and converts it into one like as 9722returned by `bfd_openw'. It does this by converting the BFD to 9723BFD_IN_MEMORY. It's assumed that you will call `bfd_make_readable' on 9724this bfd later. 9725 9726 *Returns* 9727`TRUE' is returned if all is ok, otherwise `FALSE'. 9728 97292.14.1.12 `bfd_make_readable' 9730............................. 9731 9732*Synopsis* 9733 bool bfd_make_readable (bfd *abfd); 9734 *Description* 9735Takes a BFD as created by `bfd_create' and `bfd_make_writable' and 9736converts it into one like as returned by `bfd_openr'. It does this by 9737writing the contents out to the memory buffer, then reversing the 9738direction. 9739 9740 *Returns* 9741`TRUE' is returned if all is ok, otherwise `FALSE'. 9742 97432.14.1.13 `bfd_alloc' 9744..................... 9745 9746*Synopsis* 9747 void *bfd_alloc (bfd *abfd, bfd_size_type wanted); 9748 *Description* 9749Allocate a block of WANTED bytes of memory attached to `abfd' and 9750return a pointer to it. 9751 97522.14.1.14 `bfd_zalloc' 9753...................... 9754 9755*Synopsis* 9756 void *bfd_zalloc (bfd *abfd, bfd_size_type wanted); 9757 *Description* 9758Allocate a block of WANTED bytes of zeroed memory attached to `abfd' 9759and return a pointer to it. 9760 97612.14.1.15 `bfd_calc_gnu_debuglink_crc32' 9762........................................ 9763 9764*Synopsis* 9765 unsigned long bfd_calc_gnu_debuglink_crc32 9766 (unsigned long crc, const unsigned char *buf, bfd_size_type len); 9767 *Description* 9768Computes a CRC value as used in the .gnu_debuglink section. Advances 9769the previously computed CRC value by computing and adding in the crc32 9770for LEN bytes of BUF. 9771 9772 *Returns* 9773Return the updated CRC32 value. 9774 97752.14.1.16 `bfd_get_debug_link_info_1' 9776..................................... 9777 9778*Synopsis* 9779 char *bfd_get_debug_link_info_1 (bfd *abfd, void *crc32_out); 9780 *Description* 9781Extracts the filename and CRC32 value for any separate debug 9782information file associated with ABFD. 9783 9784 The CRC32_OUT parameter is an untyped pointer because this routine 9785is used as a `get_func_type' function, but it is expected to be an 9786unsigned long pointer. 9787 9788 *Returns* 9789The filename of the associated debug information file, or NULL if there 9790is no such file. If the filename was found then the contents of 9791CRC32_OUT are updated to hold the corresponding CRC32 value for the 9792file. 9793 9794 The returned filename is allocated with `malloc'; freeing it is the 9795responsibility of the caller. 9796 97972.14.1.17 `bfd_get_debug_link_info' 9798................................... 9799 9800*Synopsis* 9801 char *bfd_get_debug_link_info (bfd *abfd, unsigned long *crc32_out); 9802 *Description* 9803Extracts the filename and CRC32 value for any separate debug 9804information file associated with ABFD. 9805 9806 *Returns* 9807The filename of the associated debug information file, or NULL if there 9808is no such file. If the filename was found then the contents of 9809CRC32_OUT are updated to hold the corresponding CRC32 value for the 9810file. 9811 9812 The returned filename is allocated with `malloc'; freeing it is the 9813responsibility of the caller. 9814 98152.14.1.18 `bfd_get_alt_debug_link_info' 9816....................................... 9817 9818*Synopsis* 9819 char *bfd_get_alt_debug_link_info (bfd * abfd, 9820 bfd_size_type *buildid_len, 9821 bfd_byte **buildid_out); 9822 *Description* 9823Fetch the filename and BuildID value for any alternate debuginfo 9824associated with ABFD. Return NULL if no such info found, otherwise 9825return filename and update BUILDID_LEN and BUILDID_OUT. The returned 9826filename and build_id are allocated with `malloc'; freeing them is the 9827responsibility of the caller. 9828 98292.14.1.19 `separate_debug_file_exists' 9830...................................... 9831 9832*Synopsis* 9833 bool separate_debug_file_exists 9834 (char *name, void *crc32_p); 9835 *Description* 9836Checks to see if NAME is a file and if its contents match CRC32, which 9837is a pointer to an `unsigned long' containing a CRC32. 9838 9839 The CRC32_P parameter is an untyped pointer because this routine is 9840used as a `check_func_type' function. 9841 98422.14.1.20 `separate_alt_debug_file_exists' 9843.......................................... 9844 9845*Synopsis* 9846 bool separate_alt_debug_file_exists 9847 (char *name, void *unused); 9848 *Description* 9849Checks to see if NAME is a file. 9850 98512.14.1.21 `find_separate_debug_file' 9852.................................... 9853 9854*Synopsis* 9855 char *find_separate_debug_file 9856 (bfd *abfd, const char *dir, bool include_dirs, 9857 get_func_type get, check_func_type check, void *data); 9858 *Description* 9859Searches for a debug information file corresponding to ABFD. 9860 9861 The name of the separate debug info file is returned by the GET 9862function. This function scans various fixed locations in the 9863filesystem, including the file tree rooted at DIR. If the INCLUDE_DIRS 9864parameter is true then the directory components of ABFD's filename will 9865be included in the searched locations. 9866 9867 DATA is passed unmodified to the GET and CHECK functions. It is 9868generally used to implement build-id-like matching in the callback 9869functions. 9870 9871 *Returns* 9872Returns the filename of the first file to be found which receives a 9873TRUE result from the CHECK function. Returns NULL if no valid file 9874could be found. 9875 98762.14.1.22 `bfd_follow_gnu_debuglink' 9877.................................... 9878 9879*Synopsis* 9880 char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir); 9881 *Description* 9882Takes a BFD and searches it for a .gnu_debuglink section. If this 9883section is found, it examines the section for the name and checksum of 9884a '.debug' file containing auxiliary debugging information. It then 9885searches the filesystem for this .debug file in some standard 9886locations, including the directory tree rooted at DIR, and if found 9887returns the full filename. 9888 9889 If DIR is NULL, the search will take place starting at the current 9890directory. 9891 9892 *Returns* 9893`NULL' on any errors or failure to locate the .debug file, otherwise a 9894pointer to a heap-allocated string containing the filename. The caller 9895is responsible for freeing this string. 9896 98972.14.1.23 `bfd_follow_gnu_debugaltlink' 9898....................................... 9899 9900*Synopsis* 9901 char *bfd_follow_gnu_debugaltlink (bfd *abfd, const char *dir); 9902 *Description* 9903Takes a BFD and searches it for a .gnu_debugaltlink section. If this 9904section is found, it examines the section for the name of a file 9905containing auxiliary debugging information. It then searches the 9906filesystem for this file in a set of standard locations, including the 9907directory tree rooted at DIR, and if found returns the full filename. 9908 9909 If DIR is NULL, the search will take place starting at the current 9910directory. 9911 9912 *Returns* 9913`NULL' on any errors or failure to locate the debug file, otherwise a 9914pointer to a heap-allocated string containing the filename. The caller 9915is responsible for freeing this string. 9916 99172.14.1.24 `bfd_create_gnu_debuglink_section' 9918............................................ 9919 9920*Synopsis* 9921 struct bfd_section *bfd_create_gnu_debuglink_section 9922 (bfd *abfd, const char *filename); 9923 *Description* 9924Takes a BFD and adds a .gnu_debuglink section to it. The section is 9925sized to be big enough to contain a link to the specified FILENAME. 9926 9927 *Returns* 9928A pointer to the new section is returned if all is ok. Otherwise 9929`NULL' is returned and bfd_error is set. 9930 99312.14.1.25 `bfd_fill_in_gnu_debuglink_section' 9932............................................. 9933 9934*Synopsis* 9935 bool bfd_fill_in_gnu_debuglink_section 9936 (bfd *abfd, struct bfd_section *sect, const char *filename); 9937 *Description* 9938Takes a BFD and containing a .gnu_debuglink section SECT and fills in 9939the contents of the section to contain a link to the specified 9940FILENAME. The filename should be relative to the current directory. 9941 9942 *Returns* 9943`TRUE' is returned if all is ok. Otherwise `FALSE' is returned and 9944bfd_error is set. 9945 99462.14.1.26 `get_build_id' 9947........................ 9948 9949*Synopsis* 9950 struct bfd_build_id * get_build_id (bfd *abfd); 9951 *Description* 9952Finds the build-id associated with ABFD. If the build-id is extracted 9953from the note section then a build-id structure is built for it, using 9954memory allocated to ABFD, and this is then attached to the ABFD. 9955 9956 *Returns* 9957Returns a pointer to the build-id structure if a build-id could be 9958found. If no build-id is found NULL is returned and error code is set. 9959 99602.14.1.27 `get_build_id_name' 9961............................. 9962 9963*Synopsis* 9964 char * get_build_id_name (bfd *abfd, void *build_id_out_p) 9965 *Description* 9966Searches ABFD for a build-id, and then constructs a pathname from it. 9967The path is computed as .build-id/NN/NN+NN.debug where NNNN+NN is the 9968build-id value as a hexadecimal string. 9969 9970 *Returns* 9971Returns the constructed filename or NULL upon error. It is the 9972caller's responsibility to free the memory used to hold the filename. 9973If a filename is returned then the BUILD_ID_OUT_P parameter (which 9974points to a `struct bfd_build_id' pointer) is set to a pointer to the 9975build_id structure. 9976 99772.14.1.28 `check_build_id_file' 9978............................... 9979 9980*Synopsis* 9981 bool check_build_id_file (char *name, void *buildid_p); 9982 *Description* 9983Checks to see if NAME is a readable file and if its build-id matches 9984BUILDID. 9985 9986 *Returns* 9987Returns TRUE if the file exists, is readable, and contains a build-id 9988which matches the build-id pointed at by BUILD_ID_P (which is really a 9989`struct bfd_build_id **'). 9990 99912.14.1.29 `bfd_follow_build_id_debuglink' 9992......................................... 9993 9994*Synopsis* 9995 char *bfd_follow_build_id_debuglink (bfd *abfd, const char *dir); 9996 *Description* 9997Takes ABFD and searches it for a .note.gnu.build-id section. If this 9998section is found, it extracts the value of the NT_GNU_BUILD_ID note, 9999which should be a hexadecimal value NNNN+NN (for 32+ hex digits). It 10000then searches the filesystem for a file named .BUILD-ID/NN/NN+NN.DEBUG 10001in a set of standard locations, including the directory tree rooted at 10002DIR. The filename of the first matching file to be found is returned. 10003A matching file should contain a .note.gnu.build-id section with the 10004same NNNN+NN note as ABFD, although this check is currently not 10005implemented. 10006 10007 If DIR is NULL, the search will take place starting at the current 10008directory. 10009 10010 *Returns* 10011`NULL' on any errors or failure to locate the debug file, otherwise a 10012pointer to a heap-allocated string containing the filename. The caller 10013is responsible for freeing this string. 10014 100152.14.1.30 `bfd_set_filename' 10016............................ 10017 10018*Synopsis* 10019 const char *bfd_set_filename (bfd *abfd, const char *filename); 10020 *Description* 10021Set the filename of ABFD, copying the FILENAME parameter to bfd_alloc'd 10022memory owned by ABFD. Returns a pointer the newly allocated name, or 10023NULL if the allocation failed. 10024 10025 10026File: bfd.info, Node: Internal, Next: File Caching, Prev: Opening and Closing, Up: BFD front end 10027 10028 10029File: bfd.info, Node: File Caching, Next: Linker Functions, Prev: Internal, Up: BFD front end 10030 100312.15 File caching 10032================= 10033 10034The file caching mechanism is embedded within BFD and allows the 10035application to open as many BFDs as it wants without regard to the 10036underlying operating system's file descriptor limit (often as low as 20 10037open files). The module in `cache.c' maintains a least recently used 10038list of `bfd_cache_max_open' files, and exports the name 10039`bfd_cache_lookup', which runs around and makes sure that the required 10040BFD is open. If not, then it chooses a file to close, closes it and 10041opens the one wanted, returning its file handle. 10042 100432.15.1 Caching functions 10044------------------------ 10045 100462.15.1.1 `bfd_cache_init' 10047......................... 10048 10049*Synopsis* 10050 bool bfd_cache_init (bfd *abfd); 10051 *Description* 10052Add a newly opened BFD to the cache. 10053 100542.15.1.2 `bfd_cache_close' 10055.......................... 10056 10057*Synopsis* 10058 bool bfd_cache_close (bfd *abfd); 10059 *Description* 10060Remove the BFD ABFD from the cache. If the attached file is open, then 10061close it too. 10062 10063 *Returns* 10064`FALSE' is returned if closing the file fails, `TRUE' is returned if 10065all is well. 10066 100672.15.1.3 `bfd_cache_close_all' 10068.............................. 10069 10070*Synopsis* 10071 bool bfd_cache_close_all (void); 10072 *Description* 10073Remove all BFDs from the cache. If the attached file is open, then 10074close it too. 10075 10076 *Returns* 10077`FALSE' is returned if closing one of the file fails, `TRUE' is 10078returned if all is well. 10079 100802.15.1.4 `bfd_open_file' 10081........................ 10082 10083*Synopsis* 10084 FILE* bfd_open_file (bfd *abfd); 10085 *Description* 10086Call the OS to open a file for ABFD. Return the `FILE *' (possibly 10087`NULL') that results from this operation. Set up the BFD so that 10088future accesses know the file is open. If the `FILE *' returned is 10089`NULL', then it won't have been put in the cache, so it won't have to 10090be removed from it. 10091 10092 10093File: bfd.info, Node: Linker Functions, Next: Hash Tables, Prev: File Caching, Up: BFD front end 10094 100952.16 Linker Functions 10096===================== 10097 10098The linker uses three special entry points in the BFD target vector. 10099It is not necessary to write special routines for these entry points 10100when creating a new BFD back end, since generic versions are provided. 10101However, writing them can speed up linking and make it use 10102significantly less runtime memory. 10103 10104 The first routine creates a hash table used by the other routines. 10105The second routine adds the symbols from an object file to the hash 10106table. The third routine takes all the object files and links them 10107together to create the output file. These routines are designed so 10108that the linker proper does not need to know anything about the symbols 10109in the object files that it is linking. The linker merely arranges the 10110sections as directed by the linker script and lets BFD handle the 10111details of symbols and relocs. 10112 10113 The second routine and third routines are passed a pointer to a 10114`struct bfd_link_info' structure (defined in `bfdlink.h') which holds 10115information relevant to the link, including the linker hash table 10116(which was created by the first routine) and a set of callback 10117functions to the linker proper. 10118 10119 The generic linker routines are in `linker.c', and use the header 10120file `genlink.h'. As of this writing, the only back ends which have 10121implemented versions of these routines are a.out (in `aoutx.h') and 10122ECOFF (in `ecoff.c'). The a.out routines are used as examples 10123throughout this section. 10124 10125* Menu: 10126 10127* Creating a Linker Hash Table:: 10128* Adding Symbols to the Hash Table:: 10129* Performing the Final Link:: 10130 10131 10132File: bfd.info, Node: Creating a Linker Hash Table, Next: Adding Symbols to the Hash Table, Prev: Linker Functions, Up: Linker Functions 10133 101342.16.1 Creating a linker hash table 10135----------------------------------- 10136 10137The linker routines must create a hash table, which must be derived 10138from `struct bfd_link_hash_table' described in `bfdlink.c'. *Note Hash 10139Tables::, for information on how to create a derived hash table. This 10140entry point is called using the target vector of the linker output file. 10141 10142 The `_bfd_link_hash_table_create' entry point must allocate and 10143initialize an instance of the desired hash table. If the back end does 10144not require any additional information to be stored with the entries in 10145the hash table, the entry point may simply create a `struct 10146bfd_link_hash_table'. Most likely, however, some additional 10147information will be needed. 10148 10149 For example, with each entry in the hash table the a.out linker 10150keeps the index the symbol has in the final output file (this index 10151number is used so that when doing a relocatable link the symbol index 10152used in the output file can be quickly filled in when copying over a 10153reloc). The a.out linker code defines the required structures and 10154functions for a hash table derived from `struct bfd_link_hash_table'. 10155The a.out linker hash table is created by the function 10156`NAME(aout,link_hash_table_create)'; it simply allocates space for the 10157hash table, initializes it, and returns a pointer to it. 10158 10159 When writing the linker routines for a new back end, you will 10160generally not know exactly which fields will be required until you have 10161finished. You should simply create a new hash table which defines no 10162additional fields, and then simply add fields as they become necessary. 10163 10164 10165File: bfd.info, Node: Adding Symbols to the Hash Table, Next: Performing the Final Link, Prev: Creating a Linker Hash Table, Up: Linker Functions 10166 101672.16.2 Adding symbols to the hash table 10168--------------------------------------- 10169 10170The linker proper will call the `_bfd_link_add_symbols' entry point for 10171each object file or archive which is to be linked (typically these are 10172the files named on the command line, but some may also come from the 10173linker script). The entry point is responsible for examining the file. 10174For an object file, BFD must add any relevant symbol information to 10175the hash table. For an archive, BFD must determine which elements of 10176the archive should be used and adding them to the link. 10177 10178 The a.out version of this entry point is 10179`NAME(aout,link_add_symbols)'. 10180 10181* Menu: 10182 10183* Differing file formats:: 10184* Adding symbols from an object file:: 10185* Adding symbols from an archive:: 10186 10187 10188File: 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 10189 101902.16.2.1 Differing file formats 10191............................... 10192 10193Normally all the files involved in a link will be of the same format, 10194but it is also possible to link together different format object files, 10195and the back end must support that. The `_bfd_link_add_symbols' entry 10196point is called via the target vector of the file to be added. This 10197has an important consequence: the function may not assume that the hash 10198table is the type created by the corresponding 10199`_bfd_link_hash_table_create' vector. All the `_bfd_link_add_symbols' 10200function can assume about the hash table is that it is derived from 10201`struct bfd_link_hash_table'. 10202 10203 Sometimes the `_bfd_link_add_symbols' function must store some 10204information in the hash table entry to be used by the `_bfd_final_link' 10205function. In such a case the output bfd xvec must be checked to make 10206sure that the hash table was created by an object file of the same 10207format. 10208 10209 The `_bfd_final_link' routine must be prepared to handle a hash 10210entry without any extra information added by the 10211`_bfd_link_add_symbols' function. A hash entry without extra 10212information will also occur when the linker script directs the linker 10213to create a symbol. Note that, regardless of how a hash table entry is 10214added, all the fields will be initialized to some sort of null value by 10215the hash table entry initialization function. 10216 10217 See `ecoff_link_add_externals' for an example of how to check the 10218output bfd before saving information (in this case, the ECOFF external 10219symbol debugging information) in a hash table entry. 10220 10221 10222File: 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 10223 102242.16.2.2 Adding symbols from an object file 10225........................................... 10226 10227When the `_bfd_link_add_symbols' routine is passed an object file, it 10228must add all externally visible symbols in that object file to the hash 10229table. The actual work of adding the symbol to the hash table is 10230normally handled by the function `_bfd_generic_link_add_one_symbol'. 10231The `_bfd_link_add_symbols' routine is responsible for reading all the 10232symbols from the object file and passing the correct information to 10233`_bfd_generic_link_add_one_symbol'. 10234 10235 The `_bfd_link_add_symbols' routine should not use 10236`bfd_canonicalize_symtab' to read the symbols. The point of providing 10237this routine is to avoid the overhead of converting the symbols into 10238generic `asymbol' structures. 10239 10240 `_bfd_generic_link_add_one_symbol' handles the details of combining 10241common symbols, warning about multiple definitions, and so forth. It 10242takes arguments which describe the symbol to add, notably symbol flags, 10243a section, and an offset. The symbol flags include such things as 10244`BSF_WEAK' or `BSF_INDIRECT'. The section is a section in the object 10245file, or something like `bfd_und_section_ptr' for an undefined symbol 10246or `bfd_com_section_ptr' for a common symbol. 10247 10248 If the `_bfd_final_link' routine is also going to need to read the 10249symbol information, the `_bfd_link_add_symbols' routine should save it 10250somewhere attached to the object file BFD. However, the information 10251should only be saved if the `keep_memory' field of the `info' argument 10252is TRUE, so that the `-no-keep-memory' linker switch is effective. 10253 10254 The a.out function which adds symbols from an object file is 10255`aout_link_add_object_symbols', and most of the interesting work is in 10256`aout_link_add_symbols'. The latter saves pointers to the hash tables 10257entries created by `_bfd_generic_link_add_one_symbol' indexed by symbol 10258number, so that the `_bfd_final_link' routine does not have to call the 10259hash table lookup routine to locate the entry. 10260 10261 10262File: bfd.info, Node: Adding symbols from an archive, Prev: Adding symbols from an object file, Up: Adding Symbols to the Hash Table 10263 102642.16.2.3 Adding symbols from an archive 10265....................................... 10266 10267When the `_bfd_link_add_symbols' routine is passed an archive, it must 10268look through the symbols defined by the archive and decide which 10269elements of the archive should be included in the link. For each such 10270element it must call the `add_archive_element' linker callback, and it 10271must add the symbols from the object file to the linker hash table. 10272(The callback may in fact indicate that a replacement BFD should be 10273used, in which case the symbols from that BFD should be added to the 10274linker hash table instead.) 10275 10276 In most cases the work of looking through the symbols in the archive 10277should be done by the `_bfd_generic_link_add_archive_symbols' function. 10278`_bfd_generic_link_add_archive_symbols' is passed a function to call to 10279make the final decision about adding an archive element to the link and 10280to do the actual work of adding the symbols to the linker hash table. 10281If the element is to be included, the `add_archive_element' linker 10282callback routine must be called with the element as an argument, and 10283the element's symbols must be added to the linker hash table just as 10284though the element had itself been passed to the 10285`_bfd_link_add_symbols' function. 10286 10287 When the a.out `_bfd_link_add_symbols' function receives an archive, 10288it calls `_bfd_generic_link_add_archive_symbols' passing 10289`aout_link_check_archive_element' as the function argument. 10290`aout_link_check_archive_element' calls `aout_link_check_ar_symbols'. 10291If the latter decides to add the element (an element is only added if 10292it provides a real, non-common, definition for a previously undefined 10293or common symbol) it calls the `add_archive_element' callback and then 10294`aout_link_check_archive_element' calls `aout_link_add_symbols' to 10295actually add the symbols to the linker hash table - possibly those of a 10296substitute BFD, if the `add_archive_element' callback avails itself of 10297that option. 10298 10299 The ECOFF back end is unusual in that it does not normally call 10300`_bfd_generic_link_add_archive_symbols', because ECOFF archives already 10301contain a hash table of symbols. The ECOFF back end searches the 10302archive itself to avoid the overhead of creating a new hash table. 10303 10304 10305File: bfd.info, Node: Performing the Final Link, Prev: Adding Symbols to the Hash Table, Up: Linker Functions 10306 103072.16.3 Performing the final link 10308-------------------------------- 10309 10310When all the input files have been processed, the linker calls the 10311`_bfd_final_link' entry point of the output BFD. This routine is 10312responsible for producing the final output file, which has several 10313aspects. It must relocate the contents of the input sections and copy 10314the data into the output sections. It must build an output symbol 10315table including any local symbols from the input files and the global 10316symbols from the hash table. When producing relocatable output, it must 10317modify the input relocs and write them into the output file. There may 10318also be object format dependent work to be done. 10319 10320 The linker will also call the `write_object_contents' entry point 10321when the BFD is closed. The two entry points must work together in 10322order to produce the correct output file. 10323 10324 The details of how this works are inevitably dependent upon the 10325specific object file format. The a.out `_bfd_final_link' routine is 10326`NAME(aout,final_link)'. 10327 10328* Menu: 10329 10330* Information provided by the linker:: 10331* Relocating the section contents:: 10332* Writing the symbol table:: 10333 10334 10335File: bfd.info, Node: Information provided by the linker, Next: Relocating the section contents, Prev: Performing the Final Link, Up: Performing the Final Link 10336 103372.16.3.1 Information provided by the linker 10338........................................... 10339 10340Before the linker calls the `_bfd_final_link' entry point, it sets up 10341some data structures for the function to use. 10342 10343 The `input_bfds' field of the `bfd_link_info' structure will point 10344to a list of all the input files included in the link. These files are 10345linked through the `link.next' field of the `bfd' structure. 10346 10347 Each section in the output file will have a list of `link_order' 10348structures attached to the `map_head.link_order' field (the 10349`link_order' structure is defined in `bfdlink.h'). These structures 10350describe how to create the contents of the output section in terms of 10351the contents of various input sections, fill constants, and, 10352eventually, other types of information. They also describe relocs that 10353must be created by the BFD backend, but do not correspond to any input 10354file; this is used to support -Ur, which builds constructors while 10355generating a relocatable object file. 10356 10357 10358File: bfd.info, Node: Relocating the section contents, Next: Writing the symbol table, Prev: Information provided by the linker, Up: Performing the Final Link 10359 103602.16.3.2 Relocating the section contents 10361........................................ 10362 10363The `_bfd_final_link' function should look through the `link_order' 10364structures attached to each section of the output file. Each 10365`link_order' structure should either be handled specially, or it should 10366be passed to the function `_bfd_default_link_order' which will do the 10367right thing (`_bfd_default_link_order' is defined in `linker.c'). 10368 10369 For efficiency, a `link_order' of type `bfd_indirect_link_order' 10370whose associated section belongs to a BFD of the same format as the 10371output BFD must be handled specially. This type of `link_order' 10372describes part of an output section in terms of a section belonging to 10373one of the input files. The `_bfd_final_link' function should read the 10374contents of the section and any associated relocs, apply the relocs to 10375the section contents, and write out the modified section contents. If 10376performing a relocatable link, the relocs themselves must also be 10377modified and written out. 10378 10379 The functions `_bfd_relocate_contents' and 10380`_bfd_final_link_relocate' provide some general support for performing 10381the actual relocations, notably overflow checking. Their arguments 10382include information about the symbol the relocation is against and a 10383`reloc_howto_type' argument which describes the relocation to perform. 10384These functions are defined in `reloc.c'. 10385 10386 The a.out function which handles reading, relocating, and writing 10387section contents is `aout_link_input_section'. The actual relocation 10388is done in `aout_link_input_section_std' and 10389`aout_link_input_section_ext'. 10390 10391 10392File: bfd.info, Node: Writing the symbol table, Prev: Relocating the section contents, Up: Performing the Final Link 10393 103942.16.3.3 Writing the symbol table 10395................................. 10396 10397The `_bfd_final_link' function must gather all the symbols in the input 10398files and write them out. It must also write out all the symbols in 10399the global hash table. This must be controlled by the `strip' and 10400`discard' fields of the `bfd_link_info' structure. 10401 10402 The local symbols of the input files will not have been entered into 10403the linker hash table. The `_bfd_final_link' routine must consider 10404each input file and include the symbols in the output file. It may be 10405convenient to do this when looking through the `link_order' structures, 10406or it may be done by stepping through the `input_bfds' list. 10407 10408 The `_bfd_final_link' routine must also traverse the global hash 10409table to gather all the externally visible symbols. It is possible 10410that most of the externally visible symbols may be written out when 10411considering the symbols of each input file, but it is still necessary 10412to traverse the hash table since the linker script may have defined 10413some symbols that are not in any of the input files. 10414 10415 The `strip' field of the `bfd_link_info' structure controls which 10416symbols are written out. The possible values are listed in 10417`bfdlink.h'. If the value is `strip_some', then the `keep_hash' field 10418of the `bfd_link_info' structure is a hash table of symbols to keep; 10419each symbol should be looked up in this hash table, and only symbols 10420which are present should be included in the output file. 10421 10422 If the `strip' field of the `bfd_link_info' structure permits local 10423symbols to be written out, the `discard' field is used to further 10424controls which local symbols are included in the output file. If the 10425value is `discard_l', then all local symbols which begin with a certain 10426prefix are discarded; this is controlled by the 10427`bfd_is_local_label_name' entry point. 10428 10429 The a.out backend handles symbols by calling 10430`aout_link_write_symbols' on each input BFD and then traversing the 10431global hash table with the function `aout_link_write_other_symbol'. It 10432builds a string table while writing out the symbols, which is written 10433to the output file at the end of `NAME(aout,final_link)'. 10434 104352.16.3.4 `bfd_link_split_section' 10436................................. 10437 10438*Synopsis* 10439 bool bfd_link_split_section (bfd *abfd, asection *sec); 10440 *Description* 10441Return nonzero if SEC should be split during a reloceatable or final 10442link. 10443 #define bfd_link_split_section(abfd, sec) \ 10444 BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec)) 10445 104462.16.3.5 `bfd_section_already_linked' 10447..................................... 10448 10449*Synopsis* 10450 bool bfd_section_already_linked (bfd *abfd, 10451 asection *sec, 10452 struct bfd_link_info *info); 10453 *Description* 10454Check if DATA has been already linked during a reloceatable or final 10455link. Return TRUE if it has. 10456 #define bfd_section_already_linked(abfd, sec, info) \ 10457 BFD_SEND (abfd, _section_already_linked, (abfd, sec, info)) 10458 104592.16.3.6 `bfd_generic_define_common_symbol' 10460........................................... 10461 10462*Synopsis* 10463 bool bfd_generic_define_common_symbol 10464 (bfd *output_bfd, struct bfd_link_info *info, 10465 struct bfd_link_hash_entry *h); 10466 *Description* 10467Convert common symbol H into a defined symbol. Return TRUE on success 10468and FALSE on failure. 10469 #define bfd_define_common_symbol(output_bfd, info, h) \ 10470 BFD_SEND (output_bfd, _bfd_define_common_symbol, (output_bfd, info, h)) 10471 104722.16.3.7 `_bfd_generic_link_hide_symbol' 10473........................................ 10474 10475*Synopsis* 10476 void _bfd_generic_link_hide_symbol 10477 (bfd *output_bfd, struct bfd_link_info *info, 10478 struct bfd_link_hash_entry *h); 10479 *Description* 10480Hide symbol H. This is an internal function. It should not be called 10481from outside the BFD library. 10482 #define bfd_link_hide_symbol(output_bfd, info, h) \ 10483 BFD_SEND (output_bfd, _bfd_link_hide_symbol, (output_bfd, info, h)) 10484 104852.16.3.8 `bfd_generic_define_start_stop' 10486........................................ 10487 10488*Synopsis* 10489 struct bfd_link_hash_entry *bfd_generic_define_start_stop 10490 (struct bfd_link_info *info, 10491 const char *symbol, asection *sec); 10492 *Description* 10493Define a __start, __stop, .startof. or .sizeof. symbol. Return the 10494symbol or NULL if no such undefined symbol exists. 10495 #define bfd_define_start_stop(output_bfd, info, symbol, sec) \ 10496 BFD_SEND (output_bfd, _bfd_define_start_stop, (info, symbol, sec)) 10497 104982.16.3.9 `bfd_find_version_for_sym' 10499................................... 10500 10501*Synopsis* 10502 struct bfd_elf_version_tree * bfd_find_version_for_sym 10503 (struct bfd_elf_version_tree *verdefs, 10504 const char *sym_name, bool *hide); 10505 *Description* 10506Search an elf version script tree for symbol versioning info and export 10507/ don't-export status for a given symbol. Return non-NULL on success 10508and NULL on failure; also sets the output `hide' boolean parameter. 10509 105102.16.3.10 `bfd_hide_sym_by_version' 10511................................... 10512 10513*Synopsis* 10514 bool bfd_hide_sym_by_version 10515 (struct bfd_elf_version_tree *verdefs, const char *sym_name); 10516 *Description* 10517Search an elf version script tree for symbol versioning info for a 10518given symbol. Return TRUE if the symbol is hidden. 10519 105202.16.3.11 `bfd_link_check_relocs' 10521................................. 10522 10523*Synopsis* 10524 bool bfd_link_check_relocs 10525 (bfd *abfd, struct bfd_link_info *info); 10526 *Description* 10527Checks the relocs in ABFD for validity. Does not execute the relocs. 10528Return TRUE if everything is OK, FALSE otherwise. This is the external 10529entry point to this code. 10530 105312.16.3.12 `_bfd_generic_link_check_relocs' 10532.......................................... 10533 10534*Synopsis* 10535 bool _bfd_generic_link_check_relocs 10536 (bfd *abfd, struct bfd_link_info *info); 10537 *Description* 10538Stub function for targets that do not implement reloc checking. Return 10539TRUE. This is an internal function. It should not be called from 10540outside the BFD library. 10541 105422.16.3.13 `bfd_merge_private_bfd_data' 10543...................................... 10544 10545*Synopsis* 10546 bool bfd_merge_private_bfd_data 10547 (bfd *ibfd, struct bfd_link_info *info); 10548 *Description* 10549Merge private BFD information from the BFD IBFD to the the output file 10550BFD when linking. Return `TRUE' on success, `FALSE' on error. 10551Possible error returns are: 10552 10553 * `bfd_error_no_memory' - Not enough memory exists to create private 10554 data for OBFD. 10555 10556 #define bfd_merge_private_bfd_data(ibfd, info) \ 10557 BFD_SEND ((info)->output_bfd, _bfd_merge_private_bfd_data, \ 10558 (ibfd, info)) 10559 105602.16.3.14 `_bfd_generic_verify_endian_match' 10561............................................ 10562 10563*Synopsis* 10564 bool _bfd_generic_verify_endian_match 10565 (bfd *ibfd, struct bfd_link_info *info); 10566 *Description* 10567Can be used from / for bfd_merge_private_bfd_data to check that 10568endianness matches between input and output file. Returns TRUE for a 10569match, otherwise returns FALSE and emits an error. 10570 10571 10572File: bfd.info, Node: Hash Tables, Prev: Linker Functions, Up: BFD front end 10573 105742.17 Hash Tables 10575================ 10576 10577BFD provides a simple set of hash table functions. Routines are 10578provided to initialize a hash table, to free a hash table, to look up a 10579string in a hash table and optionally create an entry for it, and to 10580traverse a hash table. There is currently no routine to delete an 10581string from a hash table. 10582 10583 The basic hash table does not permit any data to be stored with a 10584string. However, a hash table is designed to present a base class from 10585which other types of hash tables may be derived. These derived types 10586may store additional information with the string. Hash tables were 10587implemented in this way, rather than simply providing a data pointer in 10588a hash table entry, because they were designed for use by the linker 10589back ends. The linker may create thousands of hash table entries, and 10590the overhead of allocating private data and storing and following 10591pointers becomes noticeable. 10592 10593 The basic hash table code is in `hash.c'. 10594 10595* Menu: 10596 10597* Creating and Freeing a Hash Table:: 10598* Looking Up or Entering a String:: 10599* Traversing a Hash Table:: 10600* Deriving a New Hash Table Type:: 10601 10602 10603File: bfd.info, Node: Creating and Freeing a Hash Table, Next: Looking Up or Entering a String, Prev: Hash Tables, Up: Hash Tables 10604 106052.17.1 Creating and freeing a hash table 10606---------------------------------------- 10607 10608To create a hash table, create an instance of a `struct bfd_hash_table' 10609(defined in `bfd.h') and call `bfd_hash_table_init' (if you know 10610approximately how many entries you will need, the function 10611`bfd_hash_table_init_n', which takes a SIZE argument, may be used). 10612`bfd_hash_table_init' returns `FALSE' if some sort of error occurs. 10613 10614 The function `bfd_hash_table_init' take as an argument a function to 10615use to create new entries. For a basic hash table, use the function 10616`bfd_hash_newfunc'. *Note Deriving a New Hash Table Type::, for why 10617you would want to use a different value for this argument. 10618 10619 `bfd_hash_table_init' will create an objalloc which will be used to 10620allocate new entries. You may allocate memory on this objalloc using 10621`bfd_hash_allocate'. 10622 10623 Use `bfd_hash_table_free' to free up all the memory that has been 10624allocated for a hash table. This will not free up the `struct 10625bfd_hash_table' itself, which you must provide. 10626 10627 Use `bfd_hash_set_default_size' to set the default size of hash 10628table to use. 10629 10630 10631File: bfd.info, Node: Looking Up or Entering a String, Next: Traversing a Hash Table, Prev: Creating and Freeing a Hash Table, Up: Hash Tables 10632 106332.17.2 Looking up or entering a string 10634-------------------------------------- 10635 10636The function `bfd_hash_lookup' is used both to look up a string in the 10637hash table and to create a new entry. 10638 10639 If the CREATE argument is `FALSE', `bfd_hash_lookup' will look up a 10640string. If the string is found, it will returns a pointer to a `struct 10641bfd_hash_entry'. If the string is not found in the table 10642`bfd_hash_lookup' will return `NULL'. You should not modify any of the 10643fields in the returns `struct bfd_hash_entry'. 10644 10645 If the CREATE argument is `TRUE', the string will be entered into 10646the hash table if it is not already there. Either way a pointer to a 10647`struct bfd_hash_entry' will be returned, either to the existing 10648structure or to a newly created one. In this case, a `NULL' return 10649means that an error occurred. 10650 10651 If the CREATE argument is `TRUE', and a new entry is created, the 10652COPY argument is used to decide whether to copy the string onto the 10653hash table objalloc or not. If COPY is passed as `FALSE', you must be 10654careful not to deallocate or modify the string as long as the hash table 10655exists. 10656 10657 10658File: bfd.info, Node: Traversing a Hash Table, Next: Deriving a New Hash Table Type, Prev: Looking Up or Entering a String, Up: Hash Tables 10659 106602.17.3 Traversing a hash table 10661------------------------------ 10662 10663The function `bfd_hash_traverse' may be used to traverse a hash table, 10664calling a function on each element. The traversal is done in a random 10665order. 10666 10667 `bfd_hash_traverse' takes as arguments a function and a generic 10668`void *' pointer. The function is called with a hash table entry (a 10669`struct bfd_hash_entry *') and the generic pointer passed to 10670`bfd_hash_traverse'. The function must return a `boolean' value, which 10671indicates whether to continue traversing the hash table. If the 10672function returns `FALSE', `bfd_hash_traverse' will stop the traversal 10673and return immediately. 10674 10675 10676File: bfd.info, Node: Deriving a New Hash Table Type, Prev: Traversing a Hash Table, Up: Hash Tables 10677 106782.17.4 Deriving a new hash table type 10679------------------------------------- 10680 10681Many uses of hash tables want to store additional information which 10682each entry in the hash table. Some also find it convenient to store 10683additional information with the hash table itself. This may be done 10684using a derived hash table. 10685 10686 Since C is not an object oriented language, creating a derived hash 10687table requires sticking together some boilerplate routines with a few 10688differences specific to the type of hash table you want to create. 10689 10690 An example of a derived hash table is the linker hash table. The 10691structures for this are defined in `bfdlink.h'. The functions are in 10692`linker.c'. 10693 10694 You may also derive a hash table from an already derived hash table. 10695For example, the a.out linker backend code uses a hash table derived 10696from the linker hash table. 10697 10698* Menu: 10699 10700* Define the Derived Structures:: 10701* Write the Derived Creation Routine:: 10702* Write Other Derived Routines:: 10703 10704 10705File: 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 10706 107072.17.4.1 Define the derived structures 10708...................................... 10709 10710You must define a structure for an entry in the hash table, and a 10711structure for the hash table itself. 10712 10713 The first field in the structure for an entry in the hash table must 10714be of the type used for an entry in the hash table you are deriving 10715from. If you are deriving from a basic hash table this is `struct 10716bfd_hash_entry', which is defined in `bfd.h'. The first field in the 10717structure for the hash table itself must be of the type of the hash 10718table you are deriving from itself. If you are deriving from a basic 10719hash table, this is `struct bfd_hash_table'. 10720 10721 For example, the linker hash table defines `struct 10722bfd_link_hash_entry' (in `bfdlink.h'). The first field, `root', is of 10723type `struct bfd_hash_entry'. Similarly, the first field in `struct 10724bfd_link_hash_table', `table', is of type `struct bfd_hash_table'. 10725 10726 10727File: 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 10728 107292.17.4.2 Write the derived creation routine 10730........................................... 10731 10732You must write a routine which will create and initialize an entry in 10733the hash table. This routine is passed as the function argument to 10734`bfd_hash_table_init'. 10735 10736 In order to permit other hash tables to be derived from the hash 10737table you are creating, this routine must be written in a standard way. 10738 10739 The first argument to the creation routine is a pointer to a hash 10740table entry. This may be `NULL', in which case the routine should 10741allocate the right amount of space. Otherwise the space has already 10742been allocated by a hash table type derived from this one. 10743 10744 After allocating space, the creation routine must call the creation 10745routine of the hash table type it is derived from, passing in a pointer 10746to the space it just allocated. This will initialize any fields used 10747by the base hash table. 10748 10749 Finally the creation routine must initialize any local fields for 10750the new hash table type. 10751 10752 Here is a boilerplate example of a creation routine. FUNCTION_NAME 10753is the name of the routine. ENTRY_TYPE is the type of an entry in the 10754hash table you are creating. BASE_NEWFUNC is the name of the creation 10755routine of the hash table type your hash table is derived from. 10756 10757 struct bfd_hash_entry * 10758 FUNCTION_NAME (struct bfd_hash_entry *entry, 10759 struct bfd_hash_table *table, 10760 const char *string) 10761 { 10762 struct ENTRY_TYPE *ret = (ENTRY_TYPE *) entry; 10763 10764 /* Allocate the structure if it has not already been allocated by a 10765 derived class. */ 10766 if (ret == NULL) 10767 { 10768 ret = bfd_hash_allocate (table, sizeof (* ret)); 10769 if (ret == NULL) 10770 return NULL; 10771 } 10772 10773 /* Call the allocation method of the base class. */ 10774 ret = ((ENTRY_TYPE *) 10775 BASE_NEWFUNC ((struct bfd_hash_entry *) ret, table, string)); 10776 10777 /* Initialize the local fields here. */ 10778 10779 return (struct bfd_hash_entry *) ret; 10780 } 10781 *Description* 10782The creation routine for the linker hash table, which is in `linker.c', 10783looks just like this example. FUNCTION_NAME is 10784`_bfd_link_hash_newfunc'. ENTRY_TYPE is `struct bfd_link_hash_entry'. 10785BASE_NEWFUNC is `bfd_hash_newfunc', the creation routine for a basic 10786hash table. 10787 10788 `_bfd_link_hash_newfunc' also initializes the local fields in a 10789linker hash table entry: `type', `written' and `next'. 10790 10791 10792File: bfd.info, Node: Write Other Derived Routines, Prev: Write the Derived Creation Routine, Up: Deriving a New Hash Table Type 10793 107942.17.4.3 Write other derived routines 10795..................................... 10796 10797You will want to write other routines for your new hash table, as well. 10798 10799 You will want an initialization routine which calls the 10800initialization routine of the hash table you are deriving from and 10801initializes any other local fields. For the linker hash table, this is 10802`_bfd_link_hash_table_init' in `linker.c'. 10803 10804 You will want a lookup routine which calls the lookup routine of the 10805hash table you are deriving from and casts the result. The linker hash 10806table uses `bfd_link_hash_lookup' in `linker.c' (this actually takes an 10807additional argument which it uses to decide how to return the looked up 10808value). 10809 10810 You may want a traversal routine. This should just call the 10811traversal routine of the hash table you are deriving from with 10812appropriate casts. The linker hash table uses `bfd_link_hash_traverse' 10813in `linker.c'. 10814 10815 These routines may simply be defined as macros. For example, the 10816a.out backend linker hash table, which is derived from the linker hash 10817table, uses macros for the lookup and traversal routines. These are 10818`aout_link_hash_lookup' and `aout_link_hash_traverse' in aoutx.h. 10819 10820 10821File: bfd.info, Node: BFD back ends, Next: GNU Free Documentation License, Prev: BFD front end, Up: Top 10822 108233 BFD back ends 10824*************** 10825 10826* Menu: 10827 10828* What to Put Where:: 10829* aout :: a.out backends 10830* coff :: coff backends 10831* elf :: elf backends 10832* mmo :: mmo backend 10833 10834 10835File: bfd.info, Node: What to Put Where, Next: aout, Prev: BFD back ends, Up: BFD back ends 10836 108373.1 What to Put Where 10838===================== 10839 10840All of BFD lives in one directory. 10841 10842 10843File: bfd.info, Node: aout, Next: coff, Prev: What to Put Where, Up: BFD back ends 10844 108453.2 a.out backends 10846================== 10847 10848*Description* 10849BFD supports a number of different flavours of a.out format, though the 10850major differences are only the sizes of the structures on disk, and the 10851shape of the relocation information. 10852 10853 The support is split into a basic support file `aoutx.h' and other 10854files which derive functions from the base. One derivation file is 10855`aoutf1.h' (for a.out flavour 1), and adds to the basic a.out functions 10856support for sun3, sun4, and 386 a.out files, to create a target jump 10857vector for a specific target. 10858 10859 This information is further split out into more specific files for 10860each machine, including `sunos.c' for sun3 and sun4, and `demo64.c' for 10861a demonstration of a 64 bit a.out format. 10862 10863 The base file `aoutx.h' defines general mechanisms for reading and 10864writing records to and from disk and various other methods which BFD 10865requires. It is included by `aout32.c' and `aout64.c' to form the names 10866`aout_32_swap_exec_header_in', `aout_64_swap_exec_header_in', etc. 10867 10868 As an example, this is what goes on to make the back end for a sun4, 10869from `aout32.c': 10870 10871 #define ARCH_SIZE 32 10872 #include "aoutx.h" 10873 10874 Which exports names: 10875 10876 ... 10877 aout_32_canonicalize_reloc 10878 aout_32_find_nearest_line 10879 aout_32_get_lineno 10880 aout_32_get_reloc_upper_bound 10881 ... 10882 10883 from `sunos.c': 10884 10885 #define TARGET_NAME "a.out-sunos-big" 10886 #define VECNAME sparc_aout_sunos_be_vec 10887 #include "aoutf1.h" 10888 10889 requires all the names from `aout32.c', and produces the jump vector 10890 10891 sparc_aout_sunos_be_vec 10892 10893 The file `host-aout.c' is a special case. It is for a large set of 10894hosts that use "more or less standard" a.out files, and for which 10895cross-debugging is not interesting. It uses the standard 32-bit a.out 10896support routines, but determines the file offsets and addresses of the 10897text, data, and BSS sections, the machine architecture and machine 10898type, and the entry point address, in a host-dependent manner. Once 10899these values have been determined, generic code is used to handle the 10900object file. 10901 10902 When porting it to run on a new system, you must supply: 10903 10904 HOST_PAGE_SIZE 10905 HOST_SEGMENT_SIZE 10906 HOST_MACHINE_ARCH (optional) 10907 HOST_MACHINE_MACHINE (optional) 10908 HOST_TEXT_START_ADDR 10909 HOST_STACK_END_ADDR 10910 10911 in the file `../include/sys/h-XXX.h' (for your host). These values, 10912plus the structures and macros defined in `a.out.h' on your host 10913system, will produce a BFD target that will access ordinary a.out files 10914on your host. To configure a new machine to use `host-aout.c', specify: 10915 10916 TDEFAULTS = -DDEFAULT_VECTOR=host_aout_big_vec 10917 TDEPFILES= host-aout.o trad-core.o 10918 10919 in the `config/XXX.mt' file, and modify `configure.ac' to use the 10920`XXX.mt' file (by setting "`bfd_target=XXX'") when your configuration 10921is selected. 10922 109233.2.1 Relocations 10924----------------- 10925 10926*Description* 10927The file `aoutx.h' provides for both the _standard_ and _extended_ 10928forms of a.out relocation records. 10929 10930 The standard records contain only an address, a symbol index, and a 10931type field. The extended records also have a full integer for an 10932addend. 10933 109343.2.2 Internal entry points 10935--------------------------- 10936 10937*Description* 10938`aoutx.h' exports several routines for accessing the contents of an 10939a.out file, which are gathered and exported in turn by various format 10940specific files (eg sunos.c). 10941 109423.2.2.1 `aout_SIZE_swap_exec_header_in' 10943....................................... 10944 10945*Synopsis* 10946 void aout_SIZE_swap_exec_header_in, 10947 (bfd *abfd, 10948 struct external_exec *bytes, 10949 struct internal_exec *execp); 10950 *Description* 10951Swap the information in an executable header RAW_BYTES taken from a raw 10952byte stream memory image into the internal exec header structure EXECP. 10953 109543.2.2.2 `aout_SIZE_swap_exec_header_out' 10955........................................ 10956 10957*Synopsis* 10958 void aout_SIZE_swap_exec_header_out 10959 (bfd *abfd, 10960 struct internal_exec *execp, 10961 struct external_exec *raw_bytes); 10962 *Description* 10963Swap the information in an internal exec header structure EXECP into 10964the buffer RAW_BYTES ready for writing to disk. 10965 109663.2.2.3 `aout_SIZE_some_aout_object_p' 10967...................................... 10968 10969*Synopsis* 10970 const bfd_target *aout_SIZE_some_aout_object_p 10971 (bfd *abfd, 10972 struct internal_exec *execp, 10973 const bfd_target *(*callback_to_real_object_p) (bfd *)); 10974 *Description* 10975Some a.out variant thinks that the file open in ABFD checking is an 10976a.out file. Do some more checking, and set up for access if it really 10977is. Call back to the calling environment's "finish up" function just 10978before returning, to handle any last-minute setup. 10979 109803.2.2.4 `aout_SIZE_mkobject' 10981............................ 10982 10983*Synopsis* 10984 bool aout_SIZE_mkobject, (bfd *abfd); 10985 *Description* 10986Initialize BFD ABFD for use with a.out files. 10987 109883.2.2.5 `aout_SIZE_machine_type' 10989................................ 10990 10991*Synopsis* 10992 enum machine_type aout_SIZE_machine_type 10993 (enum bfd_architecture arch, 10994 unsigned long machine, 10995 bool *unknown); 10996 *Description* 10997Keep track of machine architecture and machine type for a.out's. Return 10998the `machine_type' for a particular architecture and machine, or 10999`M_UNKNOWN' if that exact architecture and machine can't be represented 11000in a.out format. 11001 11002 If the architecture is understood, machine type 0 (default) is 11003always understood. 11004 110053.2.2.6 `aout_SIZE_set_arch_mach' 11006................................. 11007 11008*Synopsis* 11009 bool aout_SIZE_set_arch_mach, 11010 (bfd *, 11011 enum bfd_architecture arch, 11012 unsigned long machine); 11013 *Description* 11014Set the architecture and the machine of the BFD ABFD to the values ARCH 11015and MACHINE. Verify that ABFD's format can support the architecture 11016required. 11017 110183.2.2.7 `aout_SIZE_new_section_hook' 11019.................................... 11020 11021*Synopsis* 11022 bool aout_SIZE_new_section_hook, 11023 (bfd *abfd, 11024 asection *newsect); 11025 *Description* 11026Called by the BFD in response to a `bfd_make_section' request. 11027 11028 11029File: bfd.info, Node: coff, Next: elf, Prev: aout, Up: BFD back ends 11030 110313.3 coff backends 11032================= 11033 11034BFD supports a number of different flavours of coff format. The major 11035differences between formats are the sizes and alignments of fields in 11036structures on disk, and the occasional extra field. 11037 11038 Coff in all its varieties is implemented with a few common files and 11039a number of implementation specific files. For example, the i386 coff 11040format is implemented in the file `coff-i386.c'. This file `#include's 11041`coff/i386.h' which defines the external structure of the coff format 11042for the i386, and `coff/internal.h' which defines the internal 11043structure. `coff-i386.c' also defines the relocations used by the i386 11044coff format *Note Relocations::. 11045 110463.3.1 Porting to a new version of coff 11047-------------------------------------- 11048 11049The recommended method is to select from the existing implementations 11050the version of coff which is most like the one you want to use. For 11051example, we'll say that i386 coff is the one you select, and that your 11052coff flavour is called foo. Copy `i386coff.c' to `foocoff.c', copy 11053`../include/coff/i386.h' to `../include/coff/foo.h', and add the lines 11054to `targets.c' and `Makefile.in' so that your new back end is used. 11055Alter the shapes of the structures in `../include/coff/foo.h' so that 11056they match what you need. You will probably also have to add `#ifdef's 11057to the code in `coff/internal.h' and `coffcode.h' if your version of 11058coff is too wild. 11059 11060 You can verify that your new BFD backend works quite simply by 11061building `objdump' from the `binutils' directory, and making sure that 11062its version of what's going on and your host system's idea (assuming it 11063has the pretty standard coff dump utility, usually called `att-dump' or 11064just `dump') are the same. Then clean up your code, and send what 11065you've done to Cygnus. Then your stuff will be in the next release, and 11066you won't have to keep integrating it. 11067 110683.3.2 How the coff backend works 11069-------------------------------- 11070 110713.3.2.1 File layout 11072................... 11073 11074The Coff backend is split into generic routines that are applicable to 11075any Coff target and routines that are specific to a particular target. 11076The target-specific routines are further split into ones which are 11077basically the same for all Coff targets except that they use the 11078external symbol format or use different values for certain constants. 11079 11080 The generic routines are in `coffgen.c'. These routines work for 11081any Coff target. They use some hooks into the target specific code; 11082the hooks are in a `bfd_coff_backend_data' structure, one of which 11083exists for each target. 11084 11085 The essentially similar target-specific routines are in 11086`coffcode.h'. This header file includes executable C code. The 11087various Coff targets first include the appropriate Coff header file, 11088make any special defines that are needed, and then include `coffcode.h'. 11089 11090 Some of the Coff targets then also have additional routines in the 11091target source file itself. 11092 110933.3.2.2 Coff long section names 11094............................... 11095 11096In the standard Coff object format, section names are limited to the 11097eight bytes available in the `s_name' field of the `SCNHDR' section 11098header structure. The format requires the field to be NUL-padded, but 11099not necessarily NUL-terminated, so the longest section names permitted 11100are a full eight characters. 11101 11102 The Microsoft PE variants of the Coff object file format add an 11103extension to support the use of long section names. This extension is 11104defined in section 4 of the Microsoft PE/COFF specification (rev 8.1). 11105If a section name is too long to fit into the section header's `s_name' 11106field, it is instead placed into the string table, and the `s_name' 11107field is filled with a slash ("/") followed by the ASCII decimal 11108representation of the offset of the full name relative to the string 11109table base. 11110 11111 Note that this implies that the extension can only be used in object 11112files, as executables do not contain a string table. The standard 11113specifies that long section names from objects emitted into executable 11114images are to be truncated. 11115 11116 However, as a GNU extension, BFD can generate executable images that 11117contain a string table and long section names. This would appear to be 11118technically valid, as the standard only says that Coff debugging 11119information is deprecated, not forbidden, and in practice it works, 11120although some tools that parse PE files expecting the MS standard 11121format may become confused; `PEview' is one known example. 11122 11123 The functionality is supported in BFD by code implemented under the 11124control of the macro `COFF_LONG_SECTION_NAMES'. If not defined, the 11125format does not support long section names in any way. If defined, it 11126is used to initialise a flag, `_bfd_coff_long_section_names', and a 11127hook function pointer, `_bfd_coff_set_long_section_names', in the Coff 11128backend data structure. The flag controls the generation of long 11129section names in output BFDs at runtime; if it is false, as it will be 11130by default when generating an executable image, long section names are 11131truncated; if true, the long section names extension is employed. The 11132hook points to a function that allows the value of the flag to be 11133altered at runtime, on formats that support long section names at all; 11134on other formats it points to a stub that returns an error indication. 11135 11136 With input BFDs, the flag is set according to whether any long 11137section names are detected while reading the section headers. For a 11138completely new BFD, the flag is set to the default for the target 11139format. This information can be used by a client of the BFD library 11140when deciding what output format to generate, and means that a BFD that 11141is opened for read and subsequently converted to a writeable BFD and 11142modified in-place will retain whatever format it had on input. 11143 11144 If `COFF_LONG_SECTION_NAMES' is simply defined (blank), or is 11145defined to the value "1", then long section names are enabled by 11146default; if it is defined to the value zero, they are disabled by 11147default (but still accepted in input BFDs). The header `coffcode.h' 11148defines a macro, `COFF_DEFAULT_LONG_SECTION_NAMES', which is used in 11149the backends to initialise the backend data structure fields 11150appropriately; see the comments for further detail. 11151 111523.3.2.3 Bit twiddling 11153..................... 11154 11155Each flavour of coff supported in BFD has its own header file 11156describing the external layout of the structures. There is also an 11157internal description of the coff layout, in `coff/internal.h'. A major 11158function of the coff backend is swapping the bytes and twiddling the 11159bits to translate the external form of the structures into the normal 11160internal form. This is all performed in the `bfd_swap'_thing_direction 11161routines. Some elements are different sizes between different versions 11162of coff; it is the duty of the coff version specific include file to 11163override the definitions of various packing routines in `coffcode.h'. 11164E.g., the size of line number entry in coff is sometimes 16 bits, and 11165sometimes 32 bits. `#define'ing `PUT_LNSZ_LNNO' and `GET_LNSZ_LNNO' 11166will select the correct one. No doubt, some day someone will find a 11167version of coff which has a varying field size not catered to at the 11168moment. To port BFD, that person will have to add more `#defines'. 11169Three of the bit twiddling routines are exported to `gdb'; 11170`coff_swap_aux_in', `coff_swap_sym_in' and `coff_swap_lineno_in'. `GDB' 11171reads the symbol table on its own, but uses BFD to fix things up. More 11172of the bit twiddlers are exported for `gas'; `coff_swap_aux_out', 11173`coff_swap_sym_out', `coff_swap_lineno_out', `coff_swap_reloc_out', 11174`coff_swap_filehdr_out', `coff_swap_aouthdr_out', 11175`coff_swap_scnhdr_out'. `Gas' currently keeps track of all the symbol 11176table and reloc drudgery itself, thereby saving the internal BFD 11177overhead, but uses BFD to swap things on the way out, making cross 11178ports much safer. Doing so also allows BFD (and thus the linker) to 11179use the same header files as `gas', which makes one avenue to disaster 11180disappear. 11181 111823.3.2.4 Symbol reading 11183...................... 11184 11185The simple canonical form for symbols used by BFD is not rich enough to 11186keep all the information available in a coff symbol table. The back end 11187gets around this problem by keeping the original symbol table around, 11188"behind the scenes". 11189 11190 When a symbol table is requested (through a call to 11191`bfd_canonicalize_symtab'), a request gets through to 11192`coff_get_normalized_symtab'. This reads the symbol table from the coff 11193file and swaps all the structures inside into the internal form. It 11194also fixes up all the pointers in the table (represented in the file by 11195offsets from the first symbol in the table) into physical pointers to 11196elements in the new internal table. This involves some work since the 11197meanings of fields change depending upon context: a field that is a 11198pointer to another structure in the symbol table at one moment may be 11199the size in bytes of a structure at the next. Another pass is made 11200over the table. All symbols which mark file names (`C_FILE' symbols) 11201are modified so that the internal string points to the value in the 11202auxent (the real filename) rather than the normal text associated with 11203the symbol (`".file"'). 11204 11205 At this time the symbol names are moved around. Coff stores all 11206symbols less than nine characters long physically within the symbol 11207table; longer strings are kept at the end of the file in the string 11208table. This pass moves all strings into memory and replaces them with 11209pointers to the strings. 11210 11211 The symbol table is massaged once again, this time to create the 11212canonical table used by the BFD application. Each symbol is inspected 11213in turn, and a decision made (using the `sclass' field) about the 11214various flags to set in the `asymbol'. *Note Symbols::. The generated 11215canonical table shares strings with the hidden internal symbol table. 11216 11217 Any linenumbers are read from the coff file too, and attached to the 11218symbols which own the functions the linenumbers belong to. 11219 112203.3.2.5 Symbol writing 11221...................... 11222 11223Writing a symbol to a coff file which didn't come from a coff file will 11224lose any debugging information. The `asymbol' structure remembers the 11225BFD from which the symbol was taken, and on output the back end makes 11226sure that the same destination target as source target is present. 11227 11228 When the symbols have come from a coff file then all the debugging 11229information is preserved. 11230 11231 Symbol tables are provided for writing to the back end in a vector 11232of pointers to pointers. This allows applications like the linker to 11233accumulate and output large symbol tables without having to do too much 11234byte copying. 11235 11236 This function runs through the provided symbol table and patches 11237each symbol marked as a file place holder (`C_FILE') to point to the 11238next file place holder in the list. It also marks each `offset' field 11239in the list with the offset from the first symbol of the current symbol. 11240 11241 Another function of this procedure is to turn the canonical value 11242form of BFD into the form used by coff. Internally, BFD expects symbol 11243values to be offsets from a section base; so a symbol physically at 112440x120, but in a section starting at 0x100, would have the value 0x20. 11245Coff expects symbols to contain their final value, so symbols have 11246their values changed at this point to reflect their sum with their 11247owning section. This transformation uses the `output_section' field of 11248the `asymbol''s `asection' *Note Sections::. 11249 11250 * `coff_mangle_symbols' 11251 This routine runs though the provided symbol table and uses the 11252offsets generated by the previous pass and the pointers generated when 11253the symbol table was read in to create the structured hierarchy 11254required by coff. It changes each pointer to a symbol into the index 11255into the symbol table of the asymbol. 11256 11257 * `coff_write_symbols' 11258 This routine runs through the symbol table and patches up the 11259symbols from their internal form into the coff way, calls the bit 11260twiddlers, and writes out the table to the file. 11261 112623.3.2.6 `coff_symbol_type' 11263.......................... 11264 11265*Description* 11266The hidden information for an `asymbol' is described in a 11267`combined_entry_type': 11268 11269 11270 typedef struct coff_ptr_struct 11271 { 11272 /* Remembers the offset from the first symbol in the file for 11273 this symbol. Generated by coff_renumber_symbols. */ 11274 unsigned int offset; 11275 11276 /* Should the value of this symbol be renumbered. Used for 11277 XCOFF C_BSTAT symbols. Set by coff_slurp_symbol_table. */ 11278 unsigned int fix_value : 1; 11279 11280 /* Should the tag field of this symbol be renumbered. 11281 Created by coff_pointerize_aux. */ 11282 unsigned int fix_tag : 1; 11283 11284 /* Should the endidx field of this symbol be renumbered. 11285 Created by coff_pointerize_aux. */ 11286 unsigned int fix_end : 1; 11287 11288 /* Should the x_csect.x_scnlen field be renumbered. 11289 Created by coff_pointerize_aux. */ 11290 unsigned int fix_scnlen : 1; 11291 11292 /* Fix up an XCOFF C_BINCL/C_EINCL symbol. The value is the 11293 index into the line number entries. Set by coff_slurp_symbol_table. */ 11294 unsigned int fix_line : 1; 11295 11296 /* The container for the symbol structure as read and translated 11297 from the file. */ 11298 union 11299 { 11300 union internal_auxent auxent; 11301 struct internal_syment syment; 11302 } u; 11303 11304 /* Selector for the union above. */ 11305 bool is_sym; 11306 11307 /* An extra pointer which can used by format based on COFF (like XCOFF) 11308 to provide extra information to their backend. */ 11309 void *extrap; 11310 } combined_entry_type; 11311 11312 11313 /* Each canonical asymbol really looks like this: */ 11314 11315 typedef struct coff_symbol_struct 11316 { 11317 /* The actual symbol which the rest of BFD works with */ 11318 asymbol symbol; 11319 11320 /* A pointer to the hidden information for this symbol */ 11321 combined_entry_type *native; 11322 11323 /* A pointer to the linenumber information for this symbol */ 11324 struct lineno_cache_entry *lineno; 11325 11326 /* Have the line numbers been relocated yet ? */ 11327 bool done_lineno; 11328 } coff_symbol_type; 11329 113303.3.2.7 `bfd_coff_backend_data' 11331............................... 11332 11333 /* COFF symbol classifications. */ 11334 11335 enum coff_symbol_classification 11336 { 11337 /* Global symbol. */ 11338 COFF_SYMBOL_GLOBAL, 11339 /* Common symbol. */ 11340 COFF_SYMBOL_COMMON, 11341 /* Undefined symbol. */ 11342 COFF_SYMBOL_UNDEFINED, 11343 /* Local symbol. */ 11344 COFF_SYMBOL_LOCAL, 11345 /* PE section symbol. */ 11346 COFF_SYMBOL_PE_SECTION 11347 }; 11348 11349 typedef asection * (*coff_gc_mark_hook_fn) 11350 (asection *, struct bfd_link_info *, struct internal_reloc *, 11351 struct coff_link_hash_entry *, struct internal_syment *); 11352Special entry points for gdb to swap in coff symbol table parts: 11353 typedef struct 11354 { 11355 void (*_bfd_coff_swap_aux_in) 11356 (bfd *, void *, int, int, int, int, void *); 11357 11358 void (*_bfd_coff_swap_sym_in) 11359 (bfd *, void *, void *); 11360 11361 void (*_bfd_coff_swap_lineno_in) 11362 (bfd *, void *, void *); 11363 11364 unsigned int (*_bfd_coff_swap_aux_out) 11365 (bfd *, void *, int, int, int, int, void *); 11366 11367 unsigned int (*_bfd_coff_swap_sym_out) 11368 (bfd *, void *, void *); 11369 11370 unsigned int (*_bfd_coff_swap_lineno_out) 11371 (bfd *, void *, void *); 11372 11373 unsigned int (*_bfd_coff_swap_reloc_out) 11374 (bfd *, void *, void *); 11375 11376 unsigned int (*_bfd_coff_swap_filehdr_out) 11377 (bfd *, void *, void *); 11378 11379 unsigned int (*_bfd_coff_swap_aouthdr_out) 11380 (bfd *, void *, void *); 11381 11382 unsigned int (*_bfd_coff_swap_scnhdr_out) 11383 (bfd *, void *, void *); 11384 11385 unsigned int _bfd_filhsz; 11386 unsigned int _bfd_aoutsz; 11387 unsigned int _bfd_scnhsz; 11388 unsigned int _bfd_symesz; 11389 unsigned int _bfd_auxesz; 11390 unsigned int _bfd_relsz; 11391 unsigned int _bfd_linesz; 11392 unsigned int _bfd_filnmlen; 11393 bool _bfd_coff_long_filenames; 11394 11395 bool _bfd_coff_long_section_names; 11396 bool (*_bfd_coff_set_long_section_names) 11397 (bfd *, int); 11398 11399 unsigned int _bfd_coff_default_section_alignment_power; 11400 bool _bfd_coff_force_symnames_in_strings; 11401 unsigned int _bfd_coff_debug_string_prefix_length; 11402 unsigned int _bfd_coff_max_nscns; 11403 11404 void (*_bfd_coff_swap_filehdr_in) 11405 (bfd *, void *, void *); 11406 11407 void (*_bfd_coff_swap_aouthdr_in) 11408 (bfd *, void *, void *); 11409 11410 void (*_bfd_coff_swap_scnhdr_in) 11411 (bfd *, void *, void *); 11412 11413 void (*_bfd_coff_swap_reloc_in) 11414 (bfd *abfd, void *, void *); 11415 11416 bool (*_bfd_coff_bad_format_hook) 11417 (bfd *, void *); 11418 11419 bool (*_bfd_coff_set_arch_mach_hook) 11420 (bfd *, void *); 11421 11422 void * (*_bfd_coff_mkobject_hook) 11423 (bfd *, void *, void *); 11424 11425 bool (*_bfd_styp_to_sec_flags_hook) 11426 (bfd *, void *, const char *, asection *, flagword *); 11427 11428 void (*_bfd_set_alignment_hook) 11429 (bfd *, asection *, void *); 11430 11431 bool (*_bfd_coff_slurp_symbol_table) 11432 (bfd *); 11433 11434 bool (*_bfd_coff_symname_in_debug) 11435 (bfd *, struct internal_syment *); 11436 11437 bool (*_bfd_coff_pointerize_aux_hook) 11438 (bfd *, combined_entry_type *, combined_entry_type *, 11439 unsigned int, combined_entry_type *); 11440 11441 bool (*_bfd_coff_print_aux) 11442 (bfd *, FILE *, combined_entry_type *, combined_entry_type *, 11443 combined_entry_type *, unsigned int); 11444 11445 void (*_bfd_coff_reloc16_extra_cases) 11446 (bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *, 11447 bfd_byte *, unsigned int *, unsigned int *); 11448 11449 int (*_bfd_coff_reloc16_estimate) 11450 (bfd *, asection *, arelent *, unsigned int, 11451 struct bfd_link_info *); 11452 11453 enum coff_symbol_classification (*_bfd_coff_classify_symbol) 11454 (bfd *, struct internal_syment *); 11455 11456 bool (*_bfd_coff_compute_section_file_positions) 11457 (bfd *); 11458 11459 bool (*_bfd_coff_start_final_link) 11460 (bfd *, struct bfd_link_info *); 11461 11462 bool (*_bfd_coff_relocate_section) 11463 (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, 11464 struct internal_reloc *, struct internal_syment *, asection **); 11465 11466 reloc_howto_type *(*_bfd_coff_rtype_to_howto) 11467 (bfd *, asection *, struct internal_reloc *, 11468 struct coff_link_hash_entry *, struct internal_syment *, bfd_vma *); 11469 11470 bool (*_bfd_coff_adjust_symndx) 11471 (bfd *, struct bfd_link_info *, bfd *, asection *, 11472 struct internal_reloc *, bool *); 11473 11474 bool (*_bfd_coff_link_add_one_symbol) 11475 (struct bfd_link_info *, bfd *, const char *, flagword, 11476 asection *, bfd_vma, const char *, bool, bool, 11477 struct bfd_link_hash_entry **); 11478 11479 bool (*_bfd_coff_link_output_has_begun) 11480 (bfd *, struct coff_final_link_info *); 11481 11482 bool (*_bfd_coff_final_link_postscript) 11483 (bfd *, struct coff_final_link_info *); 11484 11485 bool (*_bfd_coff_print_pdata) 11486 (bfd *, void *); 11487 11488 } bfd_coff_backend_data; 11489 11490 #define coff_backend_info(abfd) \ 11491 ((bfd_coff_backend_data *) (abfd)->xvec->backend_data) 11492 11493 #define bfd_coff_swap_aux_in(a,e,t,c,ind,num,i) \ 11494 ((coff_backend_info (a)->_bfd_coff_swap_aux_in) (a,e,t,c,ind,num,i)) 11495 11496 #define bfd_coff_swap_sym_in(a,e,i) \ 11497 ((coff_backend_info (a)->_bfd_coff_swap_sym_in) (a,e,i)) 11498 11499 #define bfd_coff_swap_lineno_in(a,e,i) \ 11500 ((coff_backend_info ( a)->_bfd_coff_swap_lineno_in) (a,e,i)) 11501 11502 #define bfd_coff_swap_reloc_out(abfd, i, o) \ 11503 ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_out) (abfd, i, o)) 11504 11505 #define bfd_coff_swap_lineno_out(abfd, i, o) \ 11506 ((coff_backend_info (abfd)->_bfd_coff_swap_lineno_out) (abfd, i, o)) 11507 11508 #define bfd_coff_swap_aux_out(a,i,t,c,ind,num,o) \ 11509 ((coff_backend_info (a)->_bfd_coff_swap_aux_out) (a,i,t,c,ind,num,o)) 11510 11511 #define bfd_coff_swap_sym_out(abfd, i,o) \ 11512 ((coff_backend_info (abfd)->_bfd_coff_swap_sym_out) (abfd, i, o)) 11513 11514 #define bfd_coff_swap_scnhdr_out(abfd, i,o) \ 11515 ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_out) (abfd, i, o)) 11516 11517 #define bfd_coff_swap_filehdr_out(abfd, i,o) \ 11518 ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_out) (abfd, i, o)) 11519 11520 #define bfd_coff_swap_aouthdr_out(abfd, i,o) \ 11521 ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_out) (abfd, i, o)) 11522 11523 #define bfd_coff_filhsz(abfd) (coff_backend_info (abfd)->_bfd_filhsz) 11524 #define bfd_coff_aoutsz(abfd) (coff_backend_info (abfd)->_bfd_aoutsz) 11525 #define bfd_coff_scnhsz(abfd) (coff_backend_info (abfd)->_bfd_scnhsz) 11526 #define bfd_coff_symesz(abfd) (coff_backend_info (abfd)->_bfd_symesz) 11527 #define bfd_coff_auxesz(abfd) (coff_backend_info (abfd)->_bfd_auxesz) 11528 #define bfd_coff_relsz(abfd) (coff_backend_info (abfd)->_bfd_relsz) 11529 #define bfd_coff_linesz(abfd) (coff_backend_info (abfd)->_bfd_linesz) 11530 #define bfd_coff_filnmlen(abfd) (coff_backend_info (abfd)->_bfd_filnmlen) 11531 #define bfd_coff_long_filenames(abfd) \ 11532 (coff_backend_info (abfd)->_bfd_coff_long_filenames) 11533 #define bfd_coff_long_section_names(abfd) \ 11534 (coff_backend_info (abfd)->_bfd_coff_long_section_names) 11535 #define bfd_coff_set_long_section_names(abfd, enable) \ 11536 ((coff_backend_info (abfd)->_bfd_coff_set_long_section_names) (abfd, enable)) 11537 #define bfd_coff_default_section_alignment_power(abfd) \ 11538 (coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power) 11539 #define bfd_coff_max_nscns(abfd) \ 11540 (coff_backend_info (abfd)->_bfd_coff_max_nscns) 11541 11542 #define bfd_coff_swap_filehdr_in(abfd, i,o) \ 11543 ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o)) 11544 11545 #define bfd_coff_swap_aouthdr_in(abfd, i,o) \ 11546 ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_in) (abfd, i, o)) 11547 11548 #define bfd_coff_swap_scnhdr_in(abfd, i,o) \ 11549 ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_in) (abfd, i, o)) 11550 11551 #define bfd_coff_swap_reloc_in(abfd, i, o) \ 11552 ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_in) (abfd, i, o)) 11553 11554 #define bfd_coff_bad_format_hook(abfd, filehdr) \ 11555 ((coff_backend_info (abfd)->_bfd_coff_bad_format_hook) (abfd, filehdr)) 11556 11557 #define bfd_coff_set_arch_mach_hook(abfd, filehdr)\ 11558 ((coff_backend_info (abfd)->_bfd_coff_set_arch_mach_hook) (abfd, filehdr)) 11559 #define bfd_coff_mkobject_hook(abfd, filehdr, aouthdr)\ 11560 ((coff_backend_info (abfd)->_bfd_coff_mkobject_hook)\ 11561 (abfd, filehdr, aouthdr)) 11562 11563 #define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name, section, flags_ptr)\ 11564 ((coff_backend_info (abfd)->_bfd_styp_to_sec_flags_hook)\ 11565 (abfd, scnhdr, name, section, flags_ptr)) 11566 11567 #define bfd_coff_set_alignment_hook(abfd, sec, scnhdr)\ 11568 ((coff_backend_info (abfd)->_bfd_set_alignment_hook) (abfd, sec, scnhdr)) 11569 11570 #define bfd_coff_slurp_symbol_table(abfd)\ 11571 ((coff_backend_info (abfd)->_bfd_coff_slurp_symbol_table) (abfd)) 11572 11573 #define bfd_coff_symname_in_debug(abfd, sym)\ 11574 ((coff_backend_info (abfd)->_bfd_coff_symname_in_debug) (abfd, sym)) 11575 11576 #define bfd_coff_force_symnames_in_strings(abfd)\ 11577 (coff_backend_info (abfd)->_bfd_coff_force_symnames_in_strings) 11578 11579 #define bfd_coff_debug_string_prefix_length(abfd)\ 11580 (coff_backend_info (abfd)->_bfd_coff_debug_string_prefix_length) 11581 11582 #define bfd_coff_print_aux(abfd, file, base, symbol, aux, indaux)\ 11583 ((coff_backend_info (abfd)->_bfd_coff_print_aux)\ 11584 (abfd, file, base, symbol, aux, indaux)) 11585 11586 #define bfd_coff_reloc16_extra_cases(abfd, link_info, link_order,\ 11587 reloc, data, src_ptr, dst_ptr)\ 11588 ((coff_backend_info (abfd)->_bfd_coff_reloc16_extra_cases)\ 11589 (abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr)) 11590 11591 #define bfd_coff_reloc16_estimate(abfd, section, reloc, shrink, link_info)\ 11592 ((coff_backend_info (abfd)->_bfd_coff_reloc16_estimate)\ 11593 (abfd, section, reloc, shrink, link_info)) 11594 11595 #define bfd_coff_classify_symbol(abfd, sym)\ 11596 ((coff_backend_info (abfd)->_bfd_coff_classify_symbol)\ 11597 (abfd, sym)) 11598 11599 #define bfd_coff_compute_section_file_positions(abfd)\ 11600 ((coff_backend_info (abfd)->_bfd_coff_compute_section_file_positions)\ 11601 (abfd)) 11602 11603 #define bfd_coff_start_final_link(obfd, info)\ 11604 ((coff_backend_info (obfd)->_bfd_coff_start_final_link)\ 11605 (obfd, info)) 11606 #define bfd_coff_relocate_section(obfd,info,ibfd,o,con,rel,isyms,secs)\ 11607 ((coff_backend_info (ibfd)->_bfd_coff_relocate_section)\ 11608 (obfd, info, ibfd, o, con, rel, isyms, secs)) 11609 #define bfd_coff_rtype_to_howto(abfd, sec, rel, h, sym, addendp)\ 11610 ((coff_backend_info (abfd)->_bfd_coff_rtype_to_howto)\ 11611 (abfd, sec, rel, h, sym, addendp)) 11612 #define bfd_coff_adjust_symndx(obfd, info, ibfd, sec, rel, adjustedp)\ 11613 ((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\ 11614 (obfd, info, ibfd, sec, rel, adjustedp)) 11615 #define bfd_coff_link_add_one_symbol(info, abfd, name, flags, section,\ 11616 value, string, cp, coll, hashp)\ 11617 ((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\ 11618 (info, abfd, name, flags, section, value, string, cp, coll, hashp)) 11619 11620 #define bfd_coff_link_output_has_begun(a,p) \ 11621 ((coff_backend_info (a)->_bfd_coff_link_output_has_begun) (a, p)) 11622 #define bfd_coff_final_link_postscript(a,p) \ 11623 ((coff_backend_info (a)->_bfd_coff_final_link_postscript) (a, p)) 11624 11625 #define bfd_coff_have_print_pdata(a) \ 11626 (coff_backend_info (a)->_bfd_coff_print_pdata) 11627 #define bfd_coff_print_pdata(a,p) \ 11628 ((coff_backend_info (a)->_bfd_coff_print_pdata) (a, p)) 11629 11630 /* Macro: Returns true if the bfd is a PE executable as opposed to a 11631 PE object file. */ 11632 #define bfd_pei_p(abfd) \ 11633 (startswith ((abfd)->xvec->name, "pei-")) 11634 116353.3.2.8 Writing relocations 11636........................... 11637 11638To write relocations, the back end steps though the canonical 11639relocation table and create an `internal_reloc'. The symbol index to 11640use is removed from the `offset' field in the symbol table supplied. 11641The address comes directly from the sum of the section base address and 11642the relocation offset; the type is dug directly from the howto field. 11643Then the `internal_reloc' is swapped into the shape of an 11644`external_reloc' and written out to disk. 11645 116463.3.2.9 Reading linenumbers 11647........................... 11648 11649Creating the linenumber table is done by reading in the entire coff 11650linenumber table, and creating another table for internal use. 11651 11652 A coff linenumber table is structured so that each function is 11653marked as having a line number of 0. Each line within the function is 11654an offset from the first line in the function. The base of the line 11655number information for the table is stored in the symbol associated 11656with the function. 11657 11658 Note: The PE format uses line number 0 for a flag indicating a new 11659source file. 11660 11661 The information is copied from the external to the internal table, 11662and each symbol which marks a function is marked by pointing its... 11663 11664 How does this work ? 11665 116663.3.2.10 Reading relocations 11667............................ 11668 11669Coff relocations are easily transformed into the internal BFD form 11670(`arelent'). 11671 11672 Reading a coff relocation table is done in the following stages: 11673 11674 * Read the entire coff relocation table into memory. 11675 11676 * Process each relocation in turn; first swap it from the external 11677 to the internal form. 11678 11679 * Turn the symbol referenced in the relocation's symbol index into a 11680 pointer into the canonical symbol table. This table is the same 11681 as the one returned by a call to `bfd_canonicalize_symtab'. The 11682 back end will call that routine and save the result if a 11683 canonicalization hasn't been done. 11684 11685 * The reloc index is turned into a pointer to a howto structure, in 11686 a back end specific way. For instance, the 386 uses the `r_type' 11687 to directly produce an index into a howto table vector. 11688 11689 11690File: bfd.info, Node: elf, Next: mmo, Prev: coff, Up: BFD back ends 11691 116923.4 ELF backends 11693================ 11694 11695BFD support for ELF formats is being worked on. Currently, the best 11696supported back ends are for sparc and i386 (running svr4 or Solaris 2). 11697 11698 Documentation of the internals of the support code still needs to be 11699written. The code is changing quickly enough that we haven't bothered 11700yet. 11701 11702 11703File: bfd.info, Node: mmo, Prev: elf, Up: BFD back ends 11704 117053.5 mmo backend 11706=============== 11707 11708The mmo object format is used exclusively together with Professor 11709Donald E. Knuth's educational 64-bit processor MMIX. The simulator 11710`mmix' which is available at `http://mmix.cs.hm.edu/src/index.html' 11711understands this format. That package also includes a combined 11712assembler and linker called `mmixal'. The mmo format has no advantages 11713feature-wise compared to e.g. ELF. It is a simple non-relocatable 11714object format with no support for archives or debugging information, 11715except for symbol value information and line numbers (which is not yet 11716implemented in BFD). See `http://mmix.cs.hm.edu/' for more information 11717about MMIX. The ELF format is used for intermediate object files in 11718the BFD implementation. 11719 11720* Menu: 11721 11722* File layout:: 11723* Symbol-table:: 11724* mmo section mapping:: 11725 11726 11727File: bfd.info, Node: File layout, Next: Symbol-table, Prev: mmo, Up: mmo 11728 117293.5.1 File layout 11730----------------- 11731 11732The mmo file contents is not partitioned into named sections as with 11733e.g. ELF. Memory areas is formed by specifying the location of the 11734data that follows. Only the memory area `0x0000...00' to `0x01ff...ff' 11735is executable, so it is used for code (and constants) and the area 11736`0x2000...00' to `0x20ff...ff' is used for writable data. *Note mmo 11737section mapping::. 11738 11739 There is provision for specifying "special data" of 65536 different 11740types. We use type 80 (decimal), arbitrarily chosen the same as the 11741ELF `e_machine' number for MMIX, filling it with section information 11742normally found in ELF objects. *Note mmo section mapping::. 11743 11744 Contents is entered as 32-bit words, xor:ed over previous contents, 11745always zero-initialized. A word that starts with the byte `0x98' forms 11746a command called a `lopcode', where the next byte distinguished between 11747the thirteen lopcodes. The two remaining bytes, called the `Y' and `Z' 11748fields, or the `YZ' field (a 16-bit big-endian number), are used for 11749various purposes different for each lopcode. As documented in 11750`http://mmix.cs.hm.edu/doc/mmixal.pdf', the lopcodes are: 11751 11752`lop_quote' 11753 0x98000001. The next word is contents, regardless of whether it 11754 starts with 0x98 or not. 11755 11756`lop_loc' 11757 0x9801YYZZ, where `Z' is 1 or 2. This is a location directive, 11758 setting the location for the next data to the next 32-bit word 11759 (for Z = 1) or 64-bit word (for Z = 2), plus Y * 2^56. Normally 11760 `Y' is 0 for the text segment and 2 for the data segment. Beware 11761 that the low bits of non- tetrabyte-aligned values are silently 11762 discarded when being automatically incremented and when storing 11763 contents (in contrast to e.g. its use as current location when 11764 followed by lop_fixo et al before the next possibly-quoted 11765 tetrabyte contents). 11766 11767`lop_skip' 11768 0x9802YYZZ. Increase the current location by `YZ' bytes. 11769 11770`lop_fixo' 11771 0x9803YYZZ, where `Z' is 1 or 2. Store the current location as 64 11772 bits into the location pointed to by the next 32-bit (Z = 1) or 11773 64-bit (Z = 2) word, plus Y * 2^56. 11774 11775`lop_fixr' 11776 0x9804YYZZ. `YZ' is stored into the current location plus 2 - 4 * 11777 YZ. 11778 11779`lop_fixrx' 11780 0x980500ZZ. `Z' is 16 or 24. A value `L' derived from the 11781 following 32-bit word are used in a manner similar to `YZ' in 11782 lop_fixr: it is xor:ed into the current location minus 4 * L. The 11783 first byte of the word is 0 or 1. If it is 1, then L = (LOWEST 24 11784 BITS OF WORD) - 2^Z, if 0, then L = (LOWEST 24 BITS OF WORD). 11785 11786`lop_file' 11787 0x9806YYZZ. `Y' is the file number, `Z' is count of 32-bit words. 11788 Set the file number to `Y' and the line counter to 0. The next Z 11789 * 4 bytes contain the file name, padded with zeros if the count is 11790 not a multiple of four. The same `Y' may occur multiple times, 11791 but `Z' must be 0 for all but the first occurrence. 11792 11793`lop_line' 11794 0x9807YYZZ. `YZ' is the line number. Together with lop_file, it 11795 forms the source location for the next 32-bit word. Note that for 11796 each non-lopcode 32-bit word, line numbers are assumed incremented 11797 by one. 11798 11799`lop_spec' 11800 0x9808YYZZ. `YZ' is the type number. Data until the next lopcode 11801 other than lop_quote forms special data of type `YZ'. *Note mmo 11802 section mapping::. 11803 11804 Other types than 80, (or type 80 with a content that does not 11805 parse) is stored in sections named `.MMIX.spec_data.N' where N is 11806 the `YZ'-type. The flags for such a sections say not to allocate 11807 or load the data. The vma is 0. Contents of multiple occurrences 11808 of special data N is concatenated to the data of the previous 11809 lop_spec Ns. The location in data or code at which the lop_spec 11810 occurred is lost. 11811 11812`lop_pre' 11813 0x980901ZZ. The first lopcode in a file. The `Z' field forms the 11814 length of header information in 32-bit words, where the first word 11815 tells the time in seconds since `00:00:00 GMT Jan 1 1970'. 11816 11817`lop_post' 11818 0x980a00ZZ. Z > 32. This lopcode follows after all 11819 content-generating lopcodes in a program. The `Z' field denotes 11820 the value of `rG' at the beginning of the program. The following 11821 256 - Z big-endian 64-bit words are loaded into global registers 11822 `$G' ... `$255'. 11823 11824`lop_stab' 11825 0x980b0000. The next-to-last lopcode in a program. Must follow 11826 immediately after the lop_post lopcode and its data. After this 11827 lopcode follows all symbols in a compressed format (*note 11828 Symbol-table::). 11829 11830`lop_end' 11831 0x980cYYZZ. The last lopcode in a program. It must follow the 11832 lop_stab lopcode and its data. The `YZ' field contains the number 11833 of 32-bit words of symbol table information after the preceding 11834 lop_stab lopcode. 11835 11836 Note that the lopcode "fixups"; `lop_fixr', `lop_fixrx' and 11837`lop_fixo' are not generated by BFD, but are handled. They are 11838generated by `mmixal'. 11839 11840 This trivial one-label, one-instruction file: 11841 11842 :Main TRAP 1,2,3 11843 11844 can be represented this way in mmo: 11845 11846 0x98090101 - lop_pre, one 32-bit word with timestamp. 11847 <timestamp> 11848 0x98010002 - lop_loc, text segment, using a 64-bit address. 11849 Note that mmixal does not emit this for the file above. 11850 0x00000000 - Address, high 32 bits. 11851 0x00000000 - Address, low 32 bits. 11852 0x98060002 - lop_file, 2 32-bit words for file-name. 11853 0x74657374 - "test" 11854 0x2e730000 - ".s\0\0" 11855 0x98070001 - lop_line, line 1. 11856 0x00010203 - TRAP 1,2,3 11857 0x980a00ff - lop_post, setting $255 to 0. 11858 0x00000000 11859 0x00000000 11860 0x980b0000 - lop_stab for ":Main" = 0, serial 1. 11861 0x203a4040 *Note Symbol-table::. 11862 0x10404020 11863 0x4d206120 11864 0x69016e00 11865 0x81000000 11866 0x980c0005 - lop_end; symbol table contained five 32-bit words. 11867 11868 11869File: bfd.info, Node: Symbol-table, Next: mmo section mapping, Prev: File layout, Up: mmo 11870 118713.5.2 Symbol table format 11872------------------------- 11873 11874From mmixal.w (or really, the generated mmixal.tex) in the MMIXware 11875package which also contains the `mmix' simulator: "Symbols are stored 11876and retrieved by means of a `ternary search trie', following ideas of 11877Bentley and Sedgewick. (See ACM-SIAM Symp. on Discrete Algorithms `8' 11878(1997), 360-369; R.Sedgewick, `Algorithms in C' (Reading, Mass. 11879Addison-Wesley, 1998), `15.4'.) Each trie node stores a character, and 11880there are branches to subtries for the cases where a given character is 11881less than, equal to, or greater than the character in the trie. There 11882also is a pointer to a symbol table entry if a symbol ends at the 11883current node." 11884 11885 So it's a tree encoded as a stream of bytes. The stream of bytes 11886acts on a single virtual global symbol, adding and removing characters 11887and signalling complete symbol points. Here, we read the stream and 11888create symbols at the completion points. 11889 11890 First, there's a control byte `m'. If any of the listed bits in `m' 11891is nonzero, we execute what stands at the right, in the listed order: 11892 11893 (MMO3_LEFT) 11894 0x40 - Traverse left trie. 11895 (Read a new command byte and recurse.) 11896 11897 (MMO3_SYMBITS) 11898 0x2f - Read the next byte as a character and store it in the 11899 current character position; increment character position. 11900 Test the bits of `m': 11901 11902 (MMO3_WCHAR) 11903 0x80 - The character is 16-bit (so read another byte, 11904 merge into current character. 11905 11906 (MMO3_TYPEBITS) 11907 0xf - We have a complete symbol; parse the type, value 11908 and serial number and do what should be done 11909 with a symbol. The type and length information 11910 is in j = (m & 0xf). 11911 11912 (MMO3_REGQUAL_BITS) 11913 j == 0xf: A register variable. The following 11914 byte tells which register. 11915 j <= 8: An absolute symbol. Read j bytes as the 11916 big-endian number the symbol equals. 11917 A j = 2 with two zero bytes denotes an 11918 unknown symbol. 11919 j > 8: As with j <= 8, but add (0x20 << 56) 11920 to the value in the following j - 8 11921 bytes. 11922 11923 Then comes the serial number, as a variant of 11924 uleb128, but better named ubeb128: 11925 Read bytes and shift the previous value left 7 11926 (multiply by 128). Add in the new byte, repeat 11927 until a byte has bit 7 set. The serial number 11928 is the computed value minus 128. 11929 11930 (MMO3_MIDDLE) 11931 0x20 - Traverse middle trie. (Read a new command byte 11932 and recurse.) Decrement character position. 11933 11934 (MMO3_RIGHT) 11935 0x10 - Traverse right trie. (Read a new command byte and 11936 recurse.) 11937 11938 Let's look again at the `lop_stab' for the trivial file (*note File 11939layout::). 11940 11941 0x980b0000 - lop_stab for ":Main" = 0, serial 1. 11942 0x203a4040 11943 0x10404020 11944 0x4d206120 11945 0x69016e00 11946 0x81000000 11947 11948 This forms the trivial trie (note that the path between ":" and "M" 11949is redundant): 11950 11951 203a ":" 11952 40 / 11953 40 / 11954 10 \ 11955 40 / 11956 40 / 11957 204d "M" 11958 2061 "a" 11959 2069 "i" 11960 016e "n" is the last character in a full symbol, and 11961 with a value represented in one byte. 11962 00 The value is 0. 11963 81 The serial number is 1. 11964 11965 11966File: bfd.info, Node: mmo section mapping, Prev: Symbol-table, Up: mmo 11967 119683.5.3 mmo section mapping 11969------------------------- 11970 11971The implementation in BFD uses special data type 80 (decimal) to 11972encapsulate and describe named sections, containing e.g. debug 11973information. If needed, any datum in the encapsulation will be quoted 11974using lop_quote. First comes a 32-bit word holding the number of 1197532-bit words containing the zero-terminated zero-padded segment name. 11976After the name there's a 32-bit word holding flags describing the 11977section type. Then comes a 64-bit big-endian word with the section 11978length (in bytes), then another with the section start address. 11979Depending on the type of section, the contents might follow, 11980zero-padded to 32-bit boundary. For a loadable section (such as data 11981or code), the contents might follow at some later point, not 11982necessarily immediately, as a lop_loc with the same start address as in 11983the section description, followed by the contents. This in effect 11984forms a descriptor that must be emitted before the actual contents. 11985Sections described this way must not overlap. 11986 11987 For areas that don't have such descriptors, synthetic sections are 11988formed by BFD. Consecutive contents in the two memory areas 11989`0x0000...00' to `0x01ff...ff' and `0x2000...00' to `0x20ff...ff' are 11990entered in sections named `.text' and `.data' respectively. If an area 11991is not otherwise described, but would together with a neighboring lower 11992area be less than `0x40000000' bytes long, it is joined with the lower 11993area and the gap is zero-filled. For other cases, a new section is 11994formed, named `.MMIX.sec.N'. Here, N is a number, a running count 11995through the mmo file, starting at 0. 11996 11997 A loadable section specified as: 11998 11999 .section secname,"ax" 12000 TETRA 1,2,3,4,-1,-2009 12001 BYTE 80 12002 12003 and linked to address `0x4', is represented by the sequence: 12004 12005 0x98080050 - lop_spec 80 12006 0x00000002 - two 32-bit words for the section name 12007 0x7365636e - "secn" 12008 0x616d6500 - "ame\0" 12009 0x00000033 - flags CODE, READONLY, LOAD, ALLOC 12010 0x00000000 - high 32 bits of section length 12011 0x0000001c - section length is 28 bytes; 6 * 4 + 1 + alignment to 32 bits 12012 0x00000000 - high 32 bits of section address 12013 0x00000004 - section address is 4 12014 0x98010002 - 64 bits with address of following data 12015 0x00000000 - high 32 bits of address 12016 0x00000004 - low 32 bits: data starts at address 4 12017 0x00000001 - 1 12018 0x00000002 - 2 12019 0x00000003 - 3 12020 0x00000004 - 4 12021 0xffffffff - -1 12022 0xfffff827 - -2009 12023 0x50000000 - 80 as a byte, padded with zeros. 12024 12025 Note that the lop_spec wrapping does not include the section 12026contents. Compare this to a non-loaded section specified as: 12027 12028 .section thirdsec 12029 TETRA 200001,100002 12030 BYTE 38,40 12031 12032 This, when linked to address `0x200000000000001c', is represented by: 12033 12034 0x98080050 - lop_spec 80 12035 0x00000002 - two 32-bit words for the section name 12036 0x7365636e - "thir" 12037 0x616d6500 - "dsec" 12038 0x00000010 - flag READONLY 12039 0x00000000 - high 32 bits of section length 12040 0x0000000c - section length is 12 bytes; 2 * 4 + 2 + alignment to 32 bits 12041 0x20000000 - high 32 bits of address 12042 0x0000001c - low 32 bits of address 0x200000000000001c 12043 0x00030d41 - 200001 12044 0x000186a2 - 100002 12045 0x26280000 - 38, 40 as bytes, padded with zeros 12046 12047 For the latter example, the section contents must not be loaded in 12048memory, and is therefore specified as part of the special data. The 12049address is usually unimportant but might provide information for e.g. 12050the DWARF 2 debugging format. 12051 12052 12053File: bfd.info, Node: GNU Free Documentation License, Next: BFD Index, Prev: BFD back ends, Up: Top 12054 12055 Version 1.3, 3 November 2008 12056 12057 Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. 12058 `http://fsf.org/' 12059 12060 Everyone is permitted to copy and distribute verbatim copies 12061 of this license document, but changing it is not allowed. 12062 12063 0. PREAMBLE 12064 12065 The purpose of this License is to make a manual, textbook, or other 12066 functional and useful document "free" in the sense of freedom: to 12067 assure everyone the effective freedom to copy and redistribute it, 12068 with or without modifying it, either commercially or 12069 noncommercially. Secondarily, this License preserves for the 12070 author and publisher a way to get credit for their work, while not 12071 being considered responsible for modifications made by others. 12072 12073 This License is a kind of "copyleft", which means that derivative 12074 works of the document must themselves be free in the same sense. 12075 It complements the GNU General Public License, which is a copyleft 12076 license designed for free software. 12077 12078 We have designed this License in order to use it for manuals for 12079 free software, because free software needs free documentation: a 12080 free program should come with manuals providing the same freedoms 12081 that the software does. But this License is not limited to 12082 software manuals; it can be used for any textual work, regardless 12083 of subject matter or whether it is published as a printed book. 12084 We recommend this License principally for works whose purpose is 12085 instruction or reference. 12086 12087 1. APPLICABILITY AND DEFINITIONS 12088 12089 This License applies to any manual or other work, in any medium, 12090 that contains a notice placed by the copyright holder saying it 12091 can be distributed under the terms of this License. Such a notice 12092 grants a world-wide, royalty-free license, unlimited in duration, 12093 to use that work under the conditions stated herein. The 12094 "Document", below, refers to any such manual or work. Any member 12095 of the public is a licensee, and is addressed as "you". You 12096 accept the license if you copy, modify or distribute the work in a 12097 way requiring permission under copyright law. 12098 12099 A "Modified Version" of the Document means any work containing the 12100 Document or a portion of it, either copied verbatim, or with 12101 modifications and/or translated into another language. 12102 12103 A "Secondary Section" is a named appendix or a front-matter section 12104 of the Document that deals exclusively with the relationship of the 12105 publishers or authors of the Document to the Document's overall 12106 subject (or to related matters) and contains nothing that could 12107 fall directly within that overall subject. (Thus, if the Document 12108 is in part a textbook of mathematics, a Secondary Section may not 12109 explain any mathematics.) The relationship could be a matter of 12110 historical connection with the subject or with related matters, or 12111 of legal, commercial, philosophical, ethical or political position 12112 regarding them. 12113 12114 The "Invariant Sections" are certain Secondary Sections whose 12115 titles are designated, as being those of Invariant Sections, in 12116 the notice that says that the Document is released under this 12117 License. If a section does not fit the above definition of 12118 Secondary then it is not allowed to be designated as Invariant. 12119 The Document may contain zero Invariant Sections. If the Document 12120 does not identify any Invariant Sections then there are none. 12121 12122 The "Cover Texts" are certain short passages of text that are 12123 listed, as Front-Cover Texts or Back-Cover Texts, in the notice 12124 that says that the Document is released under this License. A 12125 Front-Cover Text may be at most 5 words, and a Back-Cover Text may 12126 be at most 25 words. 12127 12128 A "Transparent" copy of the Document means a machine-readable copy, 12129 represented in a format whose specification is available to the 12130 general public, that is suitable for revising the document 12131 straightforwardly with generic text editors or (for images 12132 composed of pixels) generic paint programs or (for drawings) some 12133 widely available drawing editor, and that is suitable for input to 12134 text formatters or for automatic translation to a variety of 12135 formats suitable for input to text formatters. A copy made in an 12136 otherwise Transparent file format whose markup, or absence of 12137 markup, has been arranged to thwart or discourage subsequent 12138 modification by readers is not Transparent. An image format is 12139 not Transparent if used for any substantial amount of text. A 12140 copy that is not "Transparent" is called "Opaque". 12141 12142 Examples of suitable formats for Transparent copies include plain 12143 ASCII without markup, Texinfo input format, LaTeX input format, 12144 SGML or XML using a publicly available DTD, and 12145 standard-conforming simple HTML, PostScript or PDF designed for 12146 human modification. Examples of transparent image formats include 12147 PNG, XCF and JPG. Opaque formats include proprietary formats that 12148 can be read and edited only by proprietary word processors, SGML or 12149 XML for which the DTD and/or processing tools are not generally 12150 available, and the machine-generated HTML, PostScript or PDF 12151 produced by some word processors for output purposes only. 12152 12153 The "Title Page" means, for a printed book, the title page itself, 12154 plus such following pages as are needed to hold, legibly, the 12155 material this License requires to appear in the title page. For 12156 works in formats which do not have any title page as such, "Title 12157 Page" means the text near the most prominent appearance of the 12158 work's title, preceding the beginning of the body of the text. 12159 12160 The "publisher" means any person or entity that distributes copies 12161 of the Document to the public. 12162 12163 A section "Entitled XYZ" means a named subunit of the Document 12164 whose title either is precisely XYZ or contains XYZ in parentheses 12165 following text that translates XYZ in another language. (Here XYZ 12166 stands for a specific section name mentioned below, such as 12167 "Acknowledgements", "Dedications", "Endorsements", or "History".) 12168 To "Preserve the Title" of such a section when you modify the 12169 Document means that it remains a section "Entitled XYZ" according 12170 to this definition. 12171 12172 The Document may include Warranty Disclaimers next to the notice 12173 which states that this License applies to the Document. These 12174 Warranty Disclaimers are considered to be included by reference in 12175 this License, but only as regards disclaiming warranties: any other 12176 implication that these Warranty Disclaimers may have is void and 12177 has no effect on the meaning of this License. 12178 12179 2. VERBATIM COPYING 12180 12181 You may copy and distribute the Document in any medium, either 12182 commercially or noncommercially, provided that this License, the 12183 copyright notices, and the license notice saying this License 12184 applies to the Document are reproduced in all copies, and that you 12185 add no other conditions whatsoever to those of this License. You 12186 may not use technical measures to obstruct or control the reading 12187 or further copying of the copies you make or distribute. However, 12188 you may accept compensation in exchange for copies. If you 12189 distribute a large enough number of copies you must also follow 12190 the conditions in section 3. 12191 12192 You may also lend copies, under the same conditions stated above, 12193 and you may publicly display copies. 12194 12195 3. COPYING IN QUANTITY 12196 12197 If you publish printed copies (or copies in media that commonly 12198 have printed covers) of the Document, numbering more than 100, and 12199 the Document's license notice requires Cover Texts, you must 12200 enclose the copies in covers that carry, clearly and legibly, all 12201 these Cover Texts: Front-Cover Texts on the front cover, and 12202 Back-Cover Texts on the back cover. Both covers must also clearly 12203 and legibly identify you as the publisher of these copies. The 12204 front cover must present the full title with all words of the 12205 title equally prominent and visible. You may add other material 12206 on the covers in addition. Copying with changes limited to the 12207 covers, as long as they preserve the title of the Document and 12208 satisfy these conditions, can be treated as verbatim copying in 12209 other respects. 12210 12211 If the required texts for either cover are too voluminous to fit 12212 legibly, you should put the first ones listed (as many as fit 12213 reasonably) on the actual cover, and continue the rest onto 12214 adjacent pages. 12215 12216 If you publish or distribute Opaque copies of the Document 12217 numbering more than 100, you must either include a 12218 machine-readable Transparent copy along with each Opaque copy, or 12219 state in or with each Opaque copy a computer-network location from 12220 which the general network-using public has access to download 12221 using public-standard network protocols a complete Transparent 12222 copy of the Document, free of added material. If you use the 12223 latter option, you must take reasonably prudent steps, when you 12224 begin distribution of Opaque copies in quantity, to ensure that 12225 this Transparent copy will remain thus accessible at the stated 12226 location until at least one year after the last time you 12227 distribute an Opaque copy (directly or through your agents or 12228 retailers) of that edition to the public. 12229 12230 It is requested, but not required, that you contact the authors of 12231 the Document well before redistributing any large number of 12232 copies, to give them a chance to provide you with an updated 12233 version of the Document. 12234 12235 4. MODIFICATIONS 12236 12237 You may copy and distribute a Modified Version of the Document 12238 under the conditions of sections 2 and 3 above, provided that you 12239 release the Modified Version under precisely this License, with 12240 the Modified Version filling the role of the Document, thus 12241 licensing distribution and modification of the Modified Version to 12242 whoever possesses a copy of it. In addition, you must do these 12243 things in the Modified Version: 12244 12245 A. Use in the Title Page (and on the covers, if any) a title 12246 distinct from that of the Document, and from those of 12247 previous versions (which should, if there were any, be listed 12248 in the History section of the Document). You may use the 12249 same title as a previous version if the original publisher of 12250 that version gives permission. 12251 12252 B. List on the Title Page, as authors, one or more persons or 12253 entities responsible for authorship of the modifications in 12254 the Modified Version, together with at least five of the 12255 principal authors of the Document (all of its principal 12256 authors, if it has fewer than five), unless they release you 12257 from this requirement. 12258 12259 C. State on the Title page the name of the publisher of the 12260 Modified Version, as the publisher. 12261 12262 D. Preserve all the copyright notices of the Document. 12263 12264 E. Add an appropriate copyright notice for your modifications 12265 adjacent to the other copyright notices. 12266 12267 F. Include, immediately after the copyright notices, a license 12268 notice giving the public permission to use the Modified 12269 Version under the terms of this License, in the form shown in 12270 the Addendum below. 12271 12272 G. Preserve in that license notice the full lists of Invariant 12273 Sections and required Cover Texts given in the Document's 12274 license notice. 12275 12276 H. Include an unaltered copy of this License. 12277 12278 I. Preserve the section Entitled "History", Preserve its Title, 12279 and add to it an item stating at least the title, year, new 12280 authors, and publisher of the Modified Version as given on 12281 the Title Page. If there is no section Entitled "History" in 12282 the Document, create one stating the title, year, authors, 12283 and publisher of the Document as given on its Title Page, 12284 then add an item describing the Modified Version as stated in 12285 the previous sentence. 12286 12287 J. Preserve the network location, if any, given in the Document 12288 for public access to a Transparent copy of the Document, and 12289 likewise the network locations given in the Document for 12290 previous versions it was based on. These may be placed in 12291 the "History" section. You may omit a network location for a 12292 work that was published at least four years before the 12293 Document itself, or if the original publisher of the version 12294 it refers to gives permission. 12295 12296 K. For any section Entitled "Acknowledgements" or "Dedications", 12297 Preserve the Title of the section, and preserve in the 12298 section all the substance and tone of each of the contributor 12299 acknowledgements and/or dedications given therein. 12300 12301 L. Preserve all the Invariant Sections of the Document, 12302 unaltered in their text and in their titles. Section numbers 12303 or the equivalent are not considered part of the section 12304 titles. 12305 12306 M. Delete any section Entitled "Endorsements". Such a section 12307 may not be included in the Modified Version. 12308 12309 N. Do not retitle any existing section to be Entitled 12310 "Endorsements" or to conflict in title with any Invariant 12311 Section. 12312 12313 O. Preserve any Warranty Disclaimers. 12314 12315 If the Modified Version includes new front-matter sections or 12316 appendices that qualify as Secondary Sections and contain no 12317 material copied from the Document, you may at your option 12318 designate some or all of these sections as invariant. To do this, 12319 add their titles to the list of Invariant Sections in the Modified 12320 Version's license notice. These titles must be distinct from any 12321 other section titles. 12322 12323 You may add a section Entitled "Endorsements", provided it contains 12324 nothing but endorsements of your Modified Version by various 12325 parties--for example, statements of peer review or that the text 12326 has been approved by an organization as the authoritative 12327 definition of a standard. 12328 12329 You may add a passage of up to five words as a Front-Cover Text, 12330 and a passage of up to 25 words as a Back-Cover Text, to the end 12331 of the list of Cover Texts in the Modified Version. Only one 12332 passage of Front-Cover Text and one of Back-Cover Text may be 12333 added by (or through arrangements made by) any one entity. If the 12334 Document already includes a cover text for the same cover, 12335 previously added by you or by arrangement made by the same entity 12336 you are acting on behalf of, you may not add another; but you may 12337 replace the old one, on explicit permission from the previous 12338 publisher that added the old one. 12339 12340 The author(s) and publisher(s) of the Document do not by this 12341 License give permission to use their names for publicity for or to 12342 assert or imply endorsement of any Modified Version. 12343 12344 5. COMBINING DOCUMENTS 12345 12346 You may combine the Document with other documents released under 12347 this License, under the terms defined in section 4 above for 12348 modified versions, provided that you include in the combination 12349 all of the Invariant Sections of all of the original documents, 12350 unmodified, and list them all as Invariant Sections of your 12351 combined work in its license notice, and that you preserve all 12352 their Warranty Disclaimers. 12353 12354 The combined work need only contain one copy of this License, and 12355 multiple identical Invariant Sections may be replaced with a single 12356 copy. If there are multiple Invariant Sections with the same name 12357 but different contents, make the title of each such section unique 12358 by adding at the end of it, in parentheses, the name of the 12359 original author or publisher of that section if known, or else a 12360 unique number. Make the same adjustment to the section titles in 12361 the list of Invariant Sections in the license notice of the 12362 combined work. 12363 12364 In the combination, you must combine any sections Entitled 12365 "History" in the various original documents, forming one section 12366 Entitled "History"; likewise combine any sections Entitled 12367 "Acknowledgements", and any sections Entitled "Dedications". You 12368 must delete all sections Entitled "Endorsements." 12369 12370 6. COLLECTIONS OF DOCUMENTS 12371 12372 You may make a collection consisting of the Document and other 12373 documents released under this License, and replace the individual 12374 copies of this License in the various documents with a single copy 12375 that is included in the collection, provided that you follow the 12376 rules of this License for verbatim copying of each of the 12377 documents in all other respects. 12378 12379 You may extract a single document from such a collection, and 12380 distribute it individually under this License, provided you insert 12381 a copy of this License into the extracted document, and follow 12382 this License in all other respects regarding verbatim copying of 12383 that document. 12384 12385 7. AGGREGATION WITH INDEPENDENT WORKS 12386 12387 A compilation of the Document or its derivatives with other 12388 separate and independent documents or works, in or on a volume of 12389 a storage or distribution medium, is called an "aggregate" if the 12390 copyright resulting from the compilation is not used to limit the 12391 legal rights of the compilation's users beyond what the individual 12392 works permit. When the Document is included in an aggregate, this 12393 License does not apply to the other works in the aggregate which 12394 are not themselves derivative works of the Document. 12395 12396 If the Cover Text requirement of section 3 is applicable to these 12397 copies of the Document, then if the Document is less than one half 12398 of the entire aggregate, the Document's Cover Texts may be placed 12399 on covers that bracket the Document within the aggregate, or the 12400 electronic equivalent of covers if the Document is in electronic 12401 form. Otherwise they must appear on printed covers that bracket 12402 the whole aggregate. 12403 12404 8. TRANSLATION 12405 12406 Translation is considered a kind of modification, so you may 12407 distribute translations of the Document under the terms of section 12408 4. Replacing Invariant Sections with translations requires special 12409 permission from their copyright holders, but you may include 12410 translations of some or all Invariant Sections in addition to the 12411 original versions of these Invariant Sections. You may include a 12412 translation of this License, and all the license notices in the 12413 Document, and any Warranty Disclaimers, provided that you also 12414 include the original English version of this License and the 12415 original versions of those notices and disclaimers. In case of a 12416 disagreement between the translation and the original version of 12417 this License or a notice or disclaimer, the original version will 12418 prevail. 12419 12420 If a section in the Document is Entitled "Acknowledgements", 12421 "Dedications", or "History", the requirement (section 4) to 12422 Preserve its Title (section 1) will typically require changing the 12423 actual title. 12424 12425 9. TERMINATION 12426 12427 You may not copy, modify, sublicense, or distribute the Document 12428 except as expressly provided under this License. Any attempt 12429 otherwise to copy, modify, sublicense, or distribute it is void, 12430 and will automatically terminate your rights under this License. 12431 12432 However, if you cease all violation of this License, then your 12433 license from a particular copyright holder is reinstated (a) 12434 provisionally, unless and until the copyright holder explicitly 12435 and finally terminates your license, and (b) permanently, if the 12436 copyright holder fails to notify you of the violation by some 12437 reasonable means prior to 60 days after the cessation. 12438 12439 Moreover, your license from a particular copyright holder is 12440 reinstated permanently if the copyright holder notifies you of the 12441 violation by some reasonable means, this is the first time you have 12442 received notice of violation of this License (for any work) from 12443 that copyright holder, and you cure the violation prior to 30 days 12444 after your receipt of the notice. 12445 12446 Termination of your rights under this section does not terminate 12447 the licenses of parties who have received copies or rights from 12448 you under this License. If your rights have been terminated and 12449 not permanently reinstated, receipt of a copy of some or all of 12450 the same material does not give you any rights to use it. 12451 12452 10. FUTURE REVISIONS OF THIS LICENSE 12453 12454 The Free Software Foundation may publish new, revised versions of 12455 the GNU Free Documentation License from time to time. Such new 12456 versions will be similar in spirit to the present version, but may 12457 differ in detail to address new problems or concerns. See 12458 `http://www.gnu.org/copyleft/'. 12459 12460 Each version of the License is given a distinguishing version 12461 number. If the Document specifies that a particular numbered 12462 version of this License "or any later version" applies to it, you 12463 have the option of following the terms and conditions either of 12464 that specified version or of any later version that has been 12465 published (not as a draft) by the Free Software Foundation. If 12466 the Document does not specify a version number of this License, 12467 you may choose any version ever published (not as a draft) by the 12468 Free Software Foundation. If the Document specifies that a proxy 12469 can decide which future versions of this License can be used, that 12470 proxy's public statement of acceptance of a version permanently 12471 authorizes you to choose that version for the Document. 12472 12473 11. RELICENSING 12474 12475 "Massive Multiauthor Collaboration Site" (or "MMC Site") means any 12476 World Wide Web server that publishes copyrightable works and also 12477 provides prominent facilities for anybody to edit those works. A 12478 public wiki that anybody can edit is an example of such a server. 12479 A "Massive Multiauthor Collaboration" (or "MMC") contained in the 12480 site means any set of copyrightable works thus published on the MMC 12481 site. 12482 12483 "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 12484 license published by Creative Commons Corporation, a not-for-profit 12485 corporation with a principal place of business in San Francisco, 12486 California, as well as future copyleft versions of that license 12487 published by that same organization. 12488 12489 "Incorporate" means to publish or republish a Document, in whole or 12490 in part, as part of another Document. 12491 12492 An MMC is "eligible for relicensing" if it is licensed under this 12493 License, and if all works that were first published under this 12494 License somewhere other than this MMC, and subsequently 12495 incorporated in whole or in part into the MMC, (1) had no cover 12496 texts or invariant sections, and (2) were thus incorporated prior 12497 to November 1, 2008. 12498 12499 The operator of an MMC Site may republish an MMC contained in the 12500 site under CC-BY-SA on the same site at any time before August 1, 12501 2009, provided the MMC is eligible for relicensing. 12502 12503 12504ADDENDUM: How to use this License for your documents 12505==================================================== 12506 12507To use this License in a document you have written, include a copy of 12508the License in the document and put the following copyright and license 12509notices just after the title page: 12510 12511 Copyright (C) YEAR YOUR NAME. 12512 Permission is granted to copy, distribute and/or modify this document 12513 under the terms of the GNU Free Documentation License, Version 1.3 12514 or any later version published by the Free Software Foundation; 12515 with no Invariant Sections, no Front-Cover Texts, and no Back-Cover 12516 Texts. A copy of the license is included in the section entitled ``GNU 12517 Free Documentation License''. 12518 12519 If you have Invariant Sections, Front-Cover Texts and Back-Cover 12520Texts, replace the "with...Texts." line with this: 12521 12522 with the Invariant Sections being LIST THEIR TITLES, with 12523 the Front-Cover Texts being LIST, and with the Back-Cover Texts 12524 being LIST. 12525 12526 If you have Invariant Sections without Cover Texts, or some other 12527combination of the three, merge those two alternatives to suit the 12528situation. 12529 12530 If your document contains nontrivial examples of program code, we 12531recommend releasing these examples in parallel under your choice of 12532free software license, such as the GNU General Public License, to 12533permit their use in free software. 12534 12535 12536File: bfd.info, Node: BFD Index, Prev: GNU Free Documentation License, Up: Top 12537 12538BFD Index 12539********* 12540 12541[index] 12542* Menu: 12543 12544* _bfd_error_handler: Error reporting. (line 111) 12545* _bfd_final_link_relocate: Relocating the section contents. 12546 (line 22) 12547* _bfd_generic_link_add_archive_symbols: Adding symbols from an archive. 12548 (line 15) 12549* _bfd_generic_link_add_one_symbol: Adding symbols from an object file. 12550 (line 19) 12551* _bfd_generic_link_check_relocs: Writing the symbol table. 12552 (line 140) 12553* _bfd_generic_link_hide_symbol: Writing the symbol table. 12554 (line 81) 12555* _bfd_generic_make_empty_symbol: symbol handling functions. 12556 (line 92) 12557* _bfd_generic_set_reloc: howto manager. (line 4209) 12558* _bfd_generic_verify_endian_match: Writing the symbol table. 12559 (line 169) 12560* _bfd_link_add_symbols in target vector: Adding Symbols to the Hash Table. 12561 (line 6) 12562* _bfd_link_final_link in target vector: Performing the Final Link. 12563 (line 6) 12564* _bfd_link_hash_table_create in target vector: Creating a Linker Hash Table. 12565 (line 6) 12566* _bfd_relocate_contents: Relocating the section contents. 12567 (line 22) 12568* _bfd_unrecognized_reloc: howto manager. (line 4221) 12569* aout_SIZE_machine_type: aout. (line 146) 12570* aout_SIZE_mkobject: aout. (line 138) 12571* aout_SIZE_new_section_hook: aout. (line 176) 12572* aout_SIZE_set_arch_mach: aout. (line 163) 12573* aout_SIZE_some_aout_object_p: aout. (line 124) 12574* aout_SIZE_swap_exec_header_in: aout. (line 100) 12575* aout_SIZE_swap_exec_header_out: aout. (line 112) 12576* arelent_chain: typedef arelent. (line 309) 12577* BFD: Overview. (line 6) 12578* BFD canonical format: Canonical format. (line 11) 12579* bfd_alloc: Opening and Closing. 12580 (line 249) 12581* bfd_alt_mach_code: Miscellaneous. (line 305) 12582* bfd_arch_bits_per_address: Architectures. (line 673) 12583* bfd_arch_bits_per_byte: Architectures. (line 665) 12584* bfd_arch_default_fill: Architectures. (line 755) 12585* bfd_arch_get_compatible: Architectures. (line 608) 12586* bfd_arch_list: Architectures. (line 599) 12587* bfd_arch_mach_octets_per_byte: Architectures. (line 743) 12588* BFD_ARELOC_BFIN_ADD: howto manager. (line 1289) 12589* BFD_ARELOC_BFIN_ADDR: howto manager. (line 1340) 12590* BFD_ARELOC_BFIN_AND: howto manager. (line 1310) 12591* BFD_ARELOC_BFIN_COMP: howto manager. (line 1331) 12592* BFD_ARELOC_BFIN_CONST: howto manager. (line 1286) 12593* BFD_ARELOC_BFIN_DIV: howto manager. (line 1298) 12594* BFD_ARELOC_BFIN_HWPAGE: howto manager. (line 1337) 12595* BFD_ARELOC_BFIN_LAND: howto manager. (line 1319) 12596* BFD_ARELOC_BFIN_LEN: howto manager. (line 1325) 12597* BFD_ARELOC_BFIN_LOR: howto manager. (line 1322) 12598* BFD_ARELOC_BFIN_LSHIFT: howto manager. (line 1304) 12599* BFD_ARELOC_BFIN_MOD: howto manager. (line 1301) 12600* BFD_ARELOC_BFIN_MULT: howto manager. (line 1295) 12601* BFD_ARELOC_BFIN_NEG: howto manager. (line 1328) 12602* BFD_ARELOC_BFIN_OR: howto manager. (line 1313) 12603* BFD_ARELOC_BFIN_PAGE: howto manager. (line 1334) 12604* BFD_ARELOC_BFIN_PUSH: howto manager. (line 1283) 12605* BFD_ARELOC_BFIN_RSHIFT: howto manager. (line 1307) 12606* BFD_ARELOC_BFIN_SUB: howto manager. (line 1292) 12607* BFD_ARELOC_BFIN_XOR: howto manager. (line 1316) 12608* bfd_cache_close: File Caching. (line 26) 12609* bfd_cache_close_all: File Caching. (line 39) 12610* bfd_cache_init: File Caching. (line 18) 12611* bfd_calc_gnu_debuglink_crc32: Opening and Closing. 12612 (line 267) 12613* bfd_canonicalize_reloc: Miscellaneous. (line 19) 12614* bfd_canonicalize_symtab: symbol handling functions. 12615 (line 50) 12616* bfd_check_compression_header: Miscellaneous. (line 359) 12617* bfd_check_format: Formats. (line 21) 12618* bfd_check_format_matches: Formats. (line 52) 12619* bfd_check_overflow: typedef arelent. (line 321) 12620* bfd_close: Opening and Closing. 12621 (line 171) 12622* bfd_close_all_done: Opening and Closing. 12623 (line 189) 12624* bfd_coff_backend_data: coff. (line 301) 12625* bfd_convert_section_contents: Miscellaneous. (line 397) 12626* bfd_convert_section_size: Miscellaneous. (line 387) 12627* bfd_copy_private_bfd_data: Miscellaneous. (line 171) 12628* bfd_copy_private_header_data: Miscellaneous. (line 153) 12629* bfd_copy_private_section_data: section prototypes. (line 282) 12630* bfd_copy_private_symbol_data: symbol handling functions. 12631 (line 140) 12632* bfd_core_file_failing_command: Core Files. (line 12) 12633* bfd_core_file_failing_signal: Core Files. (line 21) 12634* bfd_core_file_pid: Core Files. (line 30) 12635* bfd_create: Opening and Closing. 12636 (line 208) 12637* bfd_create_gnu_debuglink_section: Opening and Closing. 12638 (line 423) 12639* bfd_decode_symclass: symbol handling functions. 12640 (line 111) 12641* bfd_default_arch_struct: Architectures. (line 620) 12642* bfd_default_compatible: Architectures. (line 682) 12643* bfd_default_reloc_type_lookup: howto manager. (line 4133) 12644* bfd_default_scan: Architectures. (line 691) 12645* bfd_default_set_arch_mach: Architectures. (line 638) 12646* bfd_demangle: Miscellaneous. (line 338) 12647* bfd_emul_get_commonpagesize: Miscellaneous. (line 327) 12648* bfd_emul_get_maxpagesize: Miscellaneous. (line 316) 12649* bfd_errmsg: Error reporting. (line 79) 12650* bfd_fdopenr: Opening and Closing. 12651 (line 57) 12652* bfd_fdopenw: Opening and Closing. 12653 (line 83) 12654* bfd_fill_in_gnu_debuglink_section: Opening and Closing. 12655 (line 437) 12656* bfd_find_target: bfd_target. (line 578) 12657* bfd_find_version_for_sym: Writing the symbol table. 12658 (line 107) 12659* bfd_flavour_name: bfd_target. (line 641) 12660* bfd_follow_build_id_debuglink: Opening and Closing. 12661 (line 497) 12662* bfd_follow_gnu_debugaltlink: Opening and Closing. 12663 (line 403) 12664* bfd_follow_gnu_debuglink: Opening and Closing. 12665 (line 382) 12666* bfd_fopen: Opening and Closing. 12667 (line 12) 12668* bfd_format_string: Formats. (line 79) 12669* bfd_generic_define_common_symbol: Writing the symbol table. 12670 (line 68) 12671* bfd_generic_define_start_stop: Writing the symbol table. 12672 (line 94) 12673* bfd_generic_discard_group: section prototypes. (line 316) 12674* bfd_generic_gc_sections: howto manager. (line 4164) 12675* bfd_generic_get_relocated_section_contents: howto manager. (line 4194) 12676* bfd_generic_group_name: section prototypes. (line 308) 12677* bfd_generic_is_group_section: section prototypes. (line 300) 12678* bfd_generic_lookup_section_flags: howto manager. (line 4174) 12679* bfd_generic_merge_sections: howto manager. (line 4184) 12680* bfd_generic_relax_section: howto manager. (line 4151) 12681* bfd_get_alt_debug_link_info: Opening and Closing. 12682 (line 321) 12683* bfd_get_arch: Architectures. (line 649) 12684* bfd_get_arch_info: Architectures. (line 701) 12685* bfd_get_arch_size: Miscellaneous. (line 65) 12686* bfd_get_compression_header_size: Miscellaneous. (line 376) 12687* bfd_get_debug_link_info: Opening and Closing. 12688 (line 303) 12689* bfd_get_debug_link_info_1: Opening and Closing. 12690 (line 281) 12691* bfd_get_error: Error reporting. (line 49) 12692* bfd_get_file_size: Miscellaneous. (line 490) 12693* bfd_get_gp_size: Miscellaneous. (line 108) 12694* bfd_get_linker_section: section prototypes. (line 38) 12695* bfd_get_mach: Architectures. (line 657) 12696* bfd_get_mtime: Miscellaneous. (line 450) 12697* bfd_get_next_mapent: Archives. (line 58) 12698* bfd_get_next_section_by_name: section prototypes. (line 26) 12699* bfd_get_reloc_code_name: howto manager. (line 4142) 12700* bfd_get_reloc_upper_bound: Miscellaneous. (line 9) 12701* bfd_get_section_by_name: section prototypes. (line 17) 12702* bfd_get_section_by_name_if: section prototypes. (line 47) 12703* bfd_get_section_contents: section prototypes. (line 255) 12704* bfd_get_sign_extend_vma: Miscellaneous. (line 80) 12705* bfd_get_size: Miscellaneous. (line 459) 12706* bfd_get_symtab_upper_bound: symbol handling functions. 12707 (line 6) 12708* bfd_get_target_info: bfd_target. (line 594) 12709* bfd_get_unique_section_name: section prototypes. (line 66) 12710* bfd_hash_allocate: Creating and Freeing a Hash Table. 12711 (line 17) 12712* bfd_hash_lookup: Looking Up or Entering a String. 12713 (line 6) 12714* bfd_hash_newfunc: Creating and Freeing a Hash Table. 12715 (line 12) 12716* bfd_hash_set_default_size: Creating and Freeing a Hash Table. 12717 (line 25) 12718* bfd_hash_table_free: Creating and Freeing a Hash Table. 12719 (line 21) 12720* bfd_hash_table_init: Creating and Freeing a Hash Table. 12721 (line 6) 12722* bfd_hash_table_init_n: Creating and Freeing a Hash Table. 12723 (line 6) 12724* bfd_hash_traverse: Traversing a Hash Table. 12725 (line 6) 12726* bfd_hide_sym_by_version: Writing the symbol table. 12727 (line 119) 12728* bfd_init: Initialization. (line 11) 12729* bfd_install_relocation: typedef arelent. (line 375) 12730* bfd_is_local_label: symbol handling functions. 12731 (line 17) 12732* bfd_is_local_label_name: symbol handling functions. 12733 (line 26) 12734* bfd_is_target_special_symbol: symbol handling functions. 12735 (line 38) 12736* bfd_is_undefined_symclass: symbol handling functions. 12737 (line 120) 12738* bfd_iterate_over_targets: bfd_target. (line 629) 12739* bfd_link_check_relocs: Writing the symbol table. 12740 (line 129) 12741* bfd_link_split_section: Writing the symbol table. 12742 (line 44) 12743* bfd_lookup_arch: Architectures. (line 709) 12744* bfd_make_debug_symbol: symbol handling functions. 12745 (line 102) 12746* bfd_make_empty_symbol: symbol handling functions. 12747 (line 78) 12748* bfd_make_readable: Opening and Closing. 12749 (line 235) 12750* bfd_make_section: section prototypes. (line 145) 12751* bfd_make_section_anyway: section prototypes. (line 116) 12752* bfd_make_section_anyway_with_flags: section prototypes. (line 98) 12753* bfd_make_section_old_way: section prototypes. (line 78) 12754* bfd_make_section_with_flags: section prototypes. (line 132) 12755* bfd_make_writable: Opening and Closing. 12756 (line 221) 12757* bfd_malloc_and_get_section: section prototypes. (line 272) 12758* bfd_map_over_sections: section prototypes. (line 178) 12759* bfd_merge_private_bfd_data: Writing the symbol table. 12760 (line 151) 12761* bfd_mmap: Miscellaneous. (line 499) 12762* bfd_octets_per_byte: Architectures. (line 732) 12763* bfd_open_file: File Caching. (line 52) 12764* bfd_openr: Opening and Closing. 12765 (line 38) 12766* bfd_openr_iovec: Opening and Closing. 12767 (line 105) 12768* bfd_openr_next_archived_file: Archives. (line 84) 12769* bfd_openstreamr: Opening and Closing. 12770 (line 92) 12771* bfd_openw: Opening and Closing. 12772 (line 156) 12773* bfd_perform_relocation: typedef arelent. (line 350) 12774* bfd_perror: Error reporting. (line 88) 12775* bfd_print_symbol_vandf: symbol handling functions. 12776 (line 70) 12777* bfd_printable_arch_mach: Architectures. (line 720) 12778* bfd_printable_name: Architectures. (line 580) 12779* BFD_RELOC_12_PCREL: howto manager. (line 39) 12780* BFD_RELOC_14: howto manager. (line 31) 12781* BFD_RELOC_16: howto manager. (line 30) 12782* BFD_RELOC_16_BASEREL: howto manager. (line 104) 12783* BFD_RELOC_16_GOT_PCREL: howto manager. (line 51) 12784* BFD_RELOC_16_GOTOFF: howto manager. (line 54) 12785* BFD_RELOC_16_PCREL: howto manager. (line 38) 12786* BFD_RELOC_16_PCREL_S2: howto manager. (line 116) 12787* BFD_RELOC_16_PLT_PCREL: howto manager. (line 62) 12788* BFD_RELOC_16_PLTOFF: howto manager. (line 66) 12789* BFD_RELOC_16_SECIDX: howto manager. (line 47) 12790* BFD_RELOC_23_PCREL_S2: howto manager. (line 117) 12791* BFD_RELOC_24: howto manager. (line 29) 12792* BFD_RELOC_24_PCREL: howto manager. (line 37) 12793* BFD_RELOC_24_PLT_PCREL: howto manager. (line 61) 12794* BFD_RELOC_26: howto manager. (line 28) 12795* BFD_RELOC_32: howto manager. (line 27) 12796* BFD_RELOC_32_BASEREL: howto manager. (line 103) 12797* BFD_RELOC_32_GOT_PCREL: howto manager. (line 50) 12798* BFD_RELOC_32_GOTOFF: howto manager. (line 53) 12799* BFD_RELOC_32_PCREL: howto manager. (line 36) 12800* BFD_RELOC_32_PCREL_S2: howto manager. (line 115) 12801* BFD_RELOC_32_PLT_PCREL: howto manager. (line 60) 12802* BFD_RELOC_32_PLTOFF: howto manager. (line 65) 12803* BFD_RELOC_32_SECREL: howto manager. (line 46) 12804* BFD_RELOC_386_COPY: howto manager. (line 599) 12805* BFD_RELOC_386_GLOB_DAT: howto manager. (line 600) 12806* BFD_RELOC_386_GOT32: howto manager. (line 597) 12807* BFD_RELOC_386_GOT32X: howto manager. (line 621) 12808* BFD_RELOC_386_GOTOFF: howto manager. (line 603) 12809* BFD_RELOC_386_GOTPC: howto manager. (line 604) 12810* BFD_RELOC_386_IRELATIVE: howto manager. (line 620) 12811* BFD_RELOC_386_JUMP_SLOT: howto manager. (line 601) 12812* BFD_RELOC_386_PLT32: howto manager. (line 598) 12813* BFD_RELOC_386_RELATIVE: howto manager. (line 602) 12814* BFD_RELOC_386_TLS_DESC: howto manager. (line 619) 12815* BFD_RELOC_386_TLS_DESC_CALL: howto manager. (line 618) 12816* BFD_RELOC_386_TLS_DTPMOD32: howto manager. (line 614) 12817* BFD_RELOC_386_TLS_DTPOFF32: howto manager. (line 615) 12818* BFD_RELOC_386_TLS_GD: howto manager. (line 609) 12819* BFD_RELOC_386_TLS_GOTDESC: howto manager. (line 617) 12820* BFD_RELOC_386_TLS_GOTIE: howto manager. (line 607) 12821* BFD_RELOC_386_TLS_IE: howto manager. (line 606) 12822* BFD_RELOC_386_TLS_IE_32: howto manager. (line 612) 12823* BFD_RELOC_386_TLS_LDM: howto manager. (line 610) 12824* BFD_RELOC_386_TLS_LDO_32: howto manager. (line 611) 12825* BFD_RELOC_386_TLS_LE: howto manager. (line 608) 12826* BFD_RELOC_386_TLS_LE_32: howto manager. (line 613) 12827* BFD_RELOC_386_TLS_TPOFF: howto manager. (line 605) 12828* BFD_RELOC_386_TLS_TPOFF32: howto manager. (line 616) 12829* BFD_RELOC_390_12: howto manager. (line 2279) 12830* BFD_RELOC_390_20: howto manager. (line 2391) 12831* BFD_RELOC_390_COPY: howto manager. (line 2288) 12832* BFD_RELOC_390_GLOB_DAT: howto manager. (line 2291) 12833* BFD_RELOC_390_GOT12: howto manager. (line 2282) 12834* BFD_RELOC_390_GOT16: howto manager. (line 2303) 12835* BFD_RELOC_390_GOT20: howto manager. (line 2392) 12836* BFD_RELOC_390_GOT64: howto manager. (line 2333) 12837* BFD_RELOC_390_GOTENT: howto manager. (line 2339) 12838* BFD_RELOC_390_GOTOFF64: howto manager. (line 2342) 12839* BFD_RELOC_390_GOTPC: howto manager. (line 2300) 12840* BFD_RELOC_390_GOTPCDBL: howto manager. (line 2330) 12841* BFD_RELOC_390_GOTPLT12: howto manager. (line 2345) 12842* BFD_RELOC_390_GOTPLT16: howto manager. (line 2348) 12843* BFD_RELOC_390_GOTPLT20: howto manager. (line 2393) 12844* BFD_RELOC_390_GOTPLT32: howto manager. (line 2351) 12845* BFD_RELOC_390_GOTPLT64: howto manager. (line 2354) 12846* BFD_RELOC_390_GOTPLTENT: howto manager. (line 2357) 12847* BFD_RELOC_390_IRELATIVE: howto manager. (line 2397) 12848* BFD_RELOC_390_JMP_SLOT: howto manager. (line 2294) 12849* BFD_RELOC_390_PC12DBL: howto manager. (line 2306) 12850* BFD_RELOC_390_PC16DBL: howto manager. (line 2312) 12851* BFD_RELOC_390_PC24DBL: howto manager. (line 2318) 12852* BFD_RELOC_390_PC32DBL: howto manager. (line 2324) 12853* BFD_RELOC_390_PLT12DBL: howto manager. (line 2309) 12854* BFD_RELOC_390_PLT16DBL: howto manager. (line 2315) 12855* BFD_RELOC_390_PLT24DBL: howto manager. (line 2321) 12856* BFD_RELOC_390_PLT32: howto manager. (line 2285) 12857* BFD_RELOC_390_PLT32DBL: howto manager. (line 2327) 12858* BFD_RELOC_390_PLT64: howto manager. (line 2336) 12859* BFD_RELOC_390_PLTOFF16: howto manager. (line 2360) 12860* BFD_RELOC_390_PLTOFF32: howto manager. (line 2363) 12861* BFD_RELOC_390_PLTOFF64: howto manager. (line 2366) 12862* BFD_RELOC_390_RELATIVE: howto manager. (line 2297) 12863* BFD_RELOC_390_TLS_DTPMOD: howto manager. (line 2386) 12864* BFD_RELOC_390_TLS_DTPOFF: howto manager. (line 2387) 12865* BFD_RELOC_390_TLS_GD32: howto manager. (line 2372) 12866* BFD_RELOC_390_TLS_GD64: howto manager. (line 2373) 12867* BFD_RELOC_390_TLS_GDCALL: howto manager. (line 2370) 12868* BFD_RELOC_390_TLS_GOTIE12: howto manager. (line 2374) 12869* BFD_RELOC_390_TLS_GOTIE20: howto manager. (line 2394) 12870* BFD_RELOC_390_TLS_GOTIE32: howto manager. (line 2375) 12871* BFD_RELOC_390_TLS_GOTIE64: howto manager. (line 2376) 12872* BFD_RELOC_390_TLS_IE32: howto manager. (line 2379) 12873* BFD_RELOC_390_TLS_IE64: howto manager. (line 2380) 12874* BFD_RELOC_390_TLS_IEENT: howto manager. (line 2381) 12875* BFD_RELOC_390_TLS_LDCALL: howto manager. (line 2371) 12876* BFD_RELOC_390_TLS_LDM32: howto manager. (line 2377) 12877* BFD_RELOC_390_TLS_LDM64: howto manager. (line 2378) 12878* BFD_RELOC_390_TLS_LDO32: howto manager. (line 2384) 12879* BFD_RELOC_390_TLS_LDO64: howto manager. (line 2385) 12880* BFD_RELOC_390_TLS_LE32: howto manager. (line 2382) 12881* BFD_RELOC_390_TLS_LE64: howto manager. (line 2383) 12882* BFD_RELOC_390_TLS_LOAD: howto manager. (line 2369) 12883* BFD_RELOC_390_TLS_TPOFF: howto manager. (line 2388) 12884* BFD_RELOC_64: howto manager. (line 26) 12885* BFD_RELOC_64_PCREL: howto manager. (line 35) 12886* BFD_RELOC_64_PLT_PCREL: howto manager. (line 59) 12887* BFD_RELOC_64_PLTOFF: howto manager. (line 64) 12888* BFD_RELOC_68K_GLOB_DAT: howto manager. (line 77) 12889* BFD_RELOC_68K_JMP_SLOT: howto manager. (line 78) 12890* BFD_RELOC_68K_RELATIVE: howto manager. (line 79) 12891* BFD_RELOC_68K_TLS_GD16: howto manager. (line 81) 12892* BFD_RELOC_68K_TLS_GD32: howto manager. (line 80) 12893* BFD_RELOC_68K_TLS_GD8: howto manager. (line 82) 12894* BFD_RELOC_68K_TLS_IE16: howto manager. (line 90) 12895* BFD_RELOC_68K_TLS_IE32: howto manager. (line 89) 12896* BFD_RELOC_68K_TLS_IE8: howto manager. (line 91) 12897* BFD_RELOC_68K_TLS_LDM16: howto manager. (line 84) 12898* BFD_RELOC_68K_TLS_LDM32: howto manager. (line 83) 12899* BFD_RELOC_68K_TLS_LDM8: howto manager. (line 85) 12900* BFD_RELOC_68K_TLS_LDO16: howto manager. (line 87) 12901* BFD_RELOC_68K_TLS_LDO32: howto manager. (line 86) 12902* BFD_RELOC_68K_TLS_LDO8: howto manager. (line 88) 12903* BFD_RELOC_68K_TLS_LE16: howto manager. (line 93) 12904* BFD_RELOC_68K_TLS_LE32: howto manager. (line 92) 12905* BFD_RELOC_68K_TLS_LE8: howto manager. (line 94) 12906* BFD_RELOC_8: howto manager. (line 32) 12907* BFD_RELOC_8_BASEREL: howto manager. (line 108) 12908* BFD_RELOC_8_FFnn: howto manager. (line 112) 12909* BFD_RELOC_8_GOT_PCREL: howto manager. (line 52) 12910* BFD_RELOC_8_GOTOFF: howto manager. (line 58) 12911* BFD_RELOC_8_PCREL: howto manager. (line 40) 12912* BFD_RELOC_8_PLT_PCREL: howto manager. (line 63) 12913* BFD_RELOC_8_PLTOFF: howto manager. (line 70) 12914* BFD_RELOC_AARCH64_16: howto manager. (line 3298) 12915* BFD_RELOC_AARCH64_16_PCREL: howto manager. (line 3305) 12916* BFD_RELOC_AARCH64_32: howto manager. (line 3297) 12917* BFD_RELOC_AARCH64_32_PCREL: howto manager. (line 3304) 12918* BFD_RELOC_AARCH64_64: howto manager. (line 3296) 12919* BFD_RELOC_AARCH64_64_PCREL: howto manager. (line 3303) 12920* BFD_RELOC_AARCH64_ADD_LO12: howto manager. (line 3400) 12921* BFD_RELOC_AARCH64_ADR_GOT_PAGE: howto manager. (line 3457) 12922* BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL: howto manager. (line 3395) 12923* BFD_RELOC_AARCH64_ADR_HI21_PCREL: howto manager. (line 3391) 12924* BFD_RELOC_AARCH64_ADR_LO21_PCREL: howto manager. (line 3387) 12925* BFD_RELOC_AARCH64_BRANCH19: howto manager. (line 3415) 12926* BFD_RELOC_AARCH64_CALL26: howto manager. (line 3425) 12927* BFD_RELOC_AARCH64_COPY: howto manager. (line 3689) 12928* BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP: howto manager. (line 3723) 12929* BFD_RELOC_AARCH64_GLOB_DAT: howto manager. (line 3692) 12930* BFD_RELOC_AARCH64_GOT_LD_PREL19: howto manager. (line 3450) 12931* BFD_RELOC_AARCH64_IRELATIVE: howto manager. (line 3713) 12932* BFD_RELOC_AARCH64_JUMP26: howto manager. (line 3420) 12933* BFD_RELOC_AARCH64_JUMP_SLOT: howto manager. (line 3695) 12934* BFD_RELOC_AARCH64_LD32_GOT_LO12_NC: howto manager. (line 3467) 12935* BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14: howto manager. (line 3484) 12936* BFD_RELOC_AARCH64_LD64_GOT_LO12_NC: howto manager. (line 3462) 12937* BFD_RELOC_AARCH64_LD64_GOTOFF_LO15: howto manager. (line 3480) 12938* BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15: howto manager. (line 3488) 12939* BFD_RELOC_AARCH64_LD_GOT_LO12_NC: howto manager. (line 3750) 12940* BFD_RELOC_AARCH64_LD_LO19_PCREL: howto manager. (line 3382) 12941* BFD_RELOC_AARCH64_LDST128_LO12: howto manager. (line 3445) 12942* BFD_RELOC_AARCH64_LDST16_LO12: howto manager. (line 3430) 12943* BFD_RELOC_AARCH64_LDST32_LO12: howto manager. (line 3435) 12944* BFD_RELOC_AARCH64_LDST64_LO12: howto manager. (line 3440) 12945* BFD_RELOC_AARCH64_LDST8_LO12: howto manager. (line 3405) 12946* BFD_RELOC_AARCH64_LDST_LO12: howto manager. (line 3727) 12947* BFD_RELOC_AARCH64_MOVW_G0: howto manager. (line 3309) 12948* BFD_RELOC_AARCH64_MOVW_G0_NC: howto manager. (line 3313) 12949* BFD_RELOC_AARCH64_MOVW_G0_S: howto manager. (line 3337) 12950* BFD_RELOC_AARCH64_MOVW_G1: howto manager. (line 3317) 12951* BFD_RELOC_AARCH64_MOVW_G1_NC: howto manager. (line 3321) 12952* BFD_RELOC_AARCH64_MOVW_G1_S: howto manager. (line 3342) 12953* BFD_RELOC_AARCH64_MOVW_G2: howto manager. (line 3325) 12954* BFD_RELOC_AARCH64_MOVW_G2_NC: howto manager. (line 3329) 12955* BFD_RELOC_AARCH64_MOVW_G2_S: howto manager. (line 3347) 12956* BFD_RELOC_AARCH64_MOVW_G3: howto manager. (line 3333) 12957* BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC: howto manager. (line 3472) 12958* BFD_RELOC_AARCH64_MOVW_GOTOFF_G1: howto manager. (line 3476) 12959* BFD_RELOC_AARCH64_MOVW_PREL_G0: howto manager. (line 3352) 12960* BFD_RELOC_AARCH64_MOVW_PREL_G0_NC: howto manager. (line 3357) 12961* BFD_RELOC_AARCH64_MOVW_PREL_G1: howto manager. (line 3362) 12962* BFD_RELOC_AARCH64_MOVW_PREL_G1_NC: howto manager. (line 3366) 12963* BFD_RELOC_AARCH64_MOVW_PREL_G2: howto manager. (line 3370) 12964* BFD_RELOC_AARCH64_MOVW_PREL_G2_NC: howto manager. (line 3374) 12965* BFD_RELOC_AARCH64_MOVW_PREL_G3: howto manager. (line 3378) 12966* BFD_RELOC_AARCH64_NONE: howto manager. (line 3293) 12967* BFD_RELOC_AARCH64_NULL: howto manager. (line 3290) 12968* BFD_RELOC_AARCH64_RELATIVE: howto manager. (line 3698) 12969* BFD_RELOC_AARCH64_RELOC_END: howto manager. (line 3716) 12970* BFD_RELOC_AARCH64_RELOC_START: howto manager. (line 3284) 12971* BFD_RELOC_AARCH64_TLS_DTPMOD: howto manager. (line 3701) 12972* BFD_RELOC_AARCH64_TLS_DTPREL: howto manager. (line 3704) 12973* BFD_RELOC_AARCH64_TLS_TPREL: howto manager. (line 3707) 12974* BFD_RELOC_AARCH64_TLSDESC: howto manager. (line 3710) 12975* BFD_RELOC_AARCH64_TLSDESC_ADD: howto manager. (line 3683) 12976* BFD_RELOC_AARCH64_TLSDESC_ADD_LO12: howto manager. (line 3671) 12977* BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21: howto manager. (line 3662) 12978* BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21: howto manager. (line 3659) 12979* BFD_RELOC_AARCH64_TLSDESC_CALL: howto manager. (line 3686) 12980* BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC: howto manager. (line 3668) 12981* BFD_RELOC_AARCH64_TLSDESC_LD64_LO12: howto manager. (line 3665) 12982* BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC: howto manager. (line 3758) 12983* BFD_RELOC_AARCH64_TLSDESC_LD_PREL19: howto manager. (line 3656) 12984* BFD_RELOC_AARCH64_TLSDESC_LDR: howto manager. (line 3680) 12985* BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC: howto manager. (line 3677) 12986* BFD_RELOC_AARCH64_TLSDESC_OFF_G1: howto manager. (line 3674) 12987* BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC: howto manager. (line 3501) 12988* BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21: howto manager. (line 3492) 12989* BFD_RELOC_AARCH64_TLSGD_ADR_PREL21: howto manager. (line 3498) 12990* BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC: howto manager. (line 3506) 12991* BFD_RELOC_AARCH64_TLSGD_MOVW_G1: howto manager. (line 3509) 12992* BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21: howto manager. 12993 (line 3512) 12994* BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC: howto manager. 12995 (line 3518) 12996* BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC: howto manager. 12997 (line 3515) 12998* BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC: howto manager. 12999 (line 3754) 13000* BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19: howto manager. (line 3521) 13001* BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC: howto manager. 13002 (line 3524) 13003* BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1: howto manager. (line 3527) 13004* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12: howto manager. (line 3530) 13005* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12: howto manager. (line 3533) 13006* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC: howto manager. (line 3536) 13007* BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC: howto manager. (line 3540) 13008* BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21: howto manager. (line 3545) 13009* BFD_RELOC_AARCH64_TLSLD_ADR_PREL21: howto manager. (line 3549) 13010* BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12: howto manager. (line 3553) 13011* BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC: howto manager. 13012 (line 3557) 13013* BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12: howto manager. (line 3561) 13014* BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC: howto manager. 13015 (line 3565) 13016* BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12: howto manager. (line 3569) 13017* BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC: howto manager. 13018 (line 3573) 13019* BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12: howto manager. (line 3577) 13020* BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC: howto manager. 13021 (line 3581) 13022* BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12: howto manager. (line 3732) 13023* BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC: howto manager. 13024 (line 3737) 13025* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0: howto manager. (line 3585) 13026* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC: howto manager. (line 3588) 13027* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1: howto manager. (line 3591) 13028* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC: howto manager. (line 3594) 13029* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2: howto manager. (line 3597) 13030* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12: howto manager. (line 3615) 13031* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12: howto manager. (line 3618) 13032* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC: howto manager. (line 3621) 13033* BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12: howto manager. (line 3624) 13034* BFD_RELOC_AARCH64_TLSLE_LDST16_TPREL_LO12_NC: howto manager. 13035 (line 3628) 13036* BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12: howto manager. (line 3632) 13037* BFD_RELOC_AARCH64_TLSLE_LDST32_TPREL_LO12_NC: howto manager. 13038 (line 3636) 13039* BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12: howto manager. (line 3640) 13040* BFD_RELOC_AARCH64_TLSLE_LDST64_TPREL_LO12_NC: howto manager. 13041 (line 3644) 13042* BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12: howto manager. (line 3648) 13043* BFD_RELOC_AARCH64_TLSLE_LDST8_TPREL_LO12_NC: howto manager. 13044 (line 3652) 13045* BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12: howto manager. (line 3741) 13046* BFD_RELOC_AARCH64_TLSLE_LDST_TPREL_LO12_NC: howto manager. (line 3746) 13047* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0: howto manager. (line 3609) 13048* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC: howto manager. (line 3612) 13049* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1: howto manager. (line 3603) 13050* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC: howto manager. (line 3606) 13051* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2: howto manager. (line 3600) 13052* BFD_RELOC_AARCH64_TSTBR14: howto manager. (line 3410) 13053* BFD_RELOC_AC_SECTOFF_S9: howto manager. (line 1190) 13054* BFD_RELOC_AC_SECTOFF_S9_1: howto manager. (line 1191) 13055* BFD_RELOC_AC_SECTOFF_S9_2: howto manager. (line 1192) 13056* BFD_RELOC_AC_SECTOFF_U8: howto manager. (line 1187) 13057* BFD_RELOC_AC_SECTOFF_U8_1: howto manager. (line 1188) 13058* BFD_RELOC_AC_SECTOFF_U8_2: howto manager. (line 1189) 13059* BFD_RELOC_ALPHA_BOH: howto manager. (line 325) 13060* BFD_RELOC_ALPHA_BRSGP: howto manager. (line 308) 13061* BFD_RELOC_ALPHA_BSR: howto manager. (line 317) 13062* BFD_RELOC_ALPHA_CODEADDR: howto manager. (line 299) 13063* BFD_RELOC_ALPHA_DTPMOD64: howto manager. (line 331) 13064* BFD_RELOC_ALPHA_DTPREL16: howto manager. (line 336) 13065* BFD_RELOC_ALPHA_DTPREL64: howto manager. (line 333) 13066* BFD_RELOC_ALPHA_DTPREL_HI16: howto manager. (line 334) 13067* BFD_RELOC_ALPHA_DTPREL_LO16: howto manager. (line 335) 13068* BFD_RELOC_ALPHA_ELF_LITERAL: howto manager. (line 264) 13069* BFD_RELOC_ALPHA_GOTDTPREL16: howto manager. (line 332) 13070* BFD_RELOC_ALPHA_GOTTPREL16: howto manager. (line 337) 13071* BFD_RELOC_ALPHA_GPDISP: howto manager. (line 258) 13072* BFD_RELOC_ALPHA_GPDISP_HI16: howto manager. (line 244) 13073* BFD_RELOC_ALPHA_GPDISP_LO16: howto manager. (line 252) 13074* BFD_RELOC_ALPHA_GPREL_HI16: howto manager. (line 303) 13075* BFD_RELOC_ALPHA_GPREL_LO16: howto manager. (line 304) 13076* BFD_RELOC_ALPHA_HINT: howto manager. (line 290) 13077* BFD_RELOC_ALPHA_LDA: howto manager. (line 321) 13078* BFD_RELOC_ALPHA_LINKAGE: howto manager. (line 295) 13079* BFD_RELOC_ALPHA_LITERAL: howto manager. (line 263) 13080* BFD_RELOC_ALPHA_LITUSE: howto manager. (line 265) 13081* BFD_RELOC_ALPHA_NOP: howto manager. (line 313) 13082* BFD_RELOC_ALPHA_TLSGD: howto manager. (line 329) 13083* BFD_RELOC_ALPHA_TLSLDM: howto manager. (line 330) 13084* BFD_RELOC_ALPHA_TPREL16: howto manager. (line 341) 13085* BFD_RELOC_ALPHA_TPREL64: howto manager. (line 338) 13086* BFD_RELOC_ALPHA_TPREL_HI16: howto manager. (line 339) 13087* BFD_RELOC_ALPHA_TPREL_LO16: howto manager. (line 340) 13088* BFD_RELOC_ARC_16: howto manager. (line 1159) 13089* BFD_RELOC_ARC_24: howto manager. (line 1160) 13090* BFD_RELOC_ARC_32: howto manager. (line 1161) 13091* BFD_RELOC_ARC_32_ME: howto manager. (line 1181) 13092* BFD_RELOC_ARC_32_ME_S: howto manager. (line 1182) 13093* BFD_RELOC_ARC_32_PCREL: howto manager. (line 1199) 13094* BFD_RELOC_ARC_8: howto manager. (line 1158) 13095* BFD_RELOC_ARC_COPY: howto manager. (line 1204) 13096* BFD_RELOC_ARC_GLOB_DAT: howto manager. (line 1205) 13097* BFD_RELOC_ARC_GOT32: howto manager. (line 1201) 13098* BFD_RELOC_ARC_GOTOFF: howto manager. (line 1208) 13099* BFD_RELOC_ARC_GOTPC: howto manager. (line 1209) 13100* BFD_RELOC_ARC_GOTPC32: howto manager. (line 1202) 13101* BFD_RELOC_ARC_JLI_SECTOFF: howto manager. (line 1225) 13102* BFD_RELOC_ARC_JMP_SLOT: howto manager. (line 1206) 13103* BFD_RELOC_ARC_N16: howto manager. (line 1163) 13104* BFD_RELOC_ARC_N24: howto manager. (line 1164) 13105* BFD_RELOC_ARC_N32: howto manager. (line 1165) 13106* BFD_RELOC_ARC_N32_ME: howto manager. (line 1183) 13107* BFD_RELOC_ARC_N8: howto manager. (line 1162) 13108* BFD_RELOC_ARC_NONE: howto manager. (line 1157) 13109* BFD_RELOC_ARC_NPS_CMEM16: howto manager. (line 1224) 13110* BFD_RELOC_ARC_PC32: howto manager. (line 1200) 13111* BFD_RELOC_ARC_PLT32: howto manager. (line 1203) 13112* BFD_RELOC_ARC_RELATIVE: howto manager. (line 1207) 13113* BFD_RELOC_ARC_S13_PCREL: howto manager. (line 1179) 13114* BFD_RELOC_ARC_S21H_PCREL: howto manager. (line 1168) 13115* BFD_RELOC_ARC_S21H_PCREL_PLT: howto manager. (line 1223) 13116* BFD_RELOC_ARC_S21W_PCREL: howto manager. (line 1169) 13117* BFD_RELOC_ARC_S21W_PCREL_PLT: howto manager. (line 1210) 13118* BFD_RELOC_ARC_S25H_PCREL: howto manager. (line 1170) 13119* BFD_RELOC_ARC_S25H_PCREL_PLT: howto manager. (line 1211) 13120* BFD_RELOC_ARC_S25W_PCREL: howto manager. (line 1171) 13121* BFD_RELOC_ARC_S25W_PCREL_PLT: howto manager. (line 1222) 13122* BFD_RELOC_ARC_SDA: howto manager. (line 1166) 13123* BFD_RELOC_ARC_SDA16_LD: howto manager. (line 1176) 13124* BFD_RELOC_ARC_SDA16_LD1: howto manager. (line 1177) 13125* BFD_RELOC_ARC_SDA16_LD2: howto manager. (line 1178) 13126* BFD_RELOC_ARC_SDA16_ST2: howto manager. (line 1198) 13127* BFD_RELOC_ARC_SDA32: howto manager. (line 1172) 13128* BFD_RELOC_ARC_SDA32_ME: howto manager. (line 1185) 13129* BFD_RELOC_ARC_SDA_12: howto manager. (line 1197) 13130* BFD_RELOC_ARC_SDA_LDST: howto manager. (line 1173) 13131* BFD_RELOC_ARC_SDA_LDST1: howto manager. (line 1174) 13132* BFD_RELOC_ARC_SDA_LDST2: howto manager. (line 1175) 13133* BFD_RELOC_ARC_SECTOFF: howto manager. (line 1167) 13134* BFD_RELOC_ARC_SECTOFF_1: howto manager. (line 1195) 13135* BFD_RELOC_ARC_SECTOFF_2: howto manager. (line 1196) 13136* BFD_RELOC_ARC_SECTOFF_ME: howto manager. (line 1184) 13137* BFD_RELOC_ARC_SECTOFF_ME_1: howto manager. (line 1193) 13138* BFD_RELOC_ARC_SECTOFF_ME_2: howto manager. (line 1194) 13139* BFD_RELOC_ARC_TLS_DTPMOD: howto manager. (line 1212) 13140* BFD_RELOC_ARC_TLS_DTPOFF: howto manager. (line 1218) 13141* BFD_RELOC_ARC_TLS_DTPOFF_S9: howto manager. (line 1219) 13142* BFD_RELOC_ARC_TLS_GD_CALL: howto manager. (line 1216) 13143* BFD_RELOC_ARC_TLS_GD_GOT: howto manager. (line 1214) 13144* BFD_RELOC_ARC_TLS_GD_LD: howto manager. (line 1215) 13145* BFD_RELOC_ARC_TLS_IE_GOT: howto manager. (line 1217) 13146* BFD_RELOC_ARC_TLS_LE_32: howto manager. (line 1221) 13147* BFD_RELOC_ARC_TLS_LE_S9: howto manager. (line 1220) 13148* BFD_RELOC_ARC_TLS_TPOFF: howto manager. (line 1213) 13149* BFD_RELOC_ARC_W: howto manager. (line 1180) 13150* BFD_RELOC_ARC_W_ME: howto manager. (line 1186) 13151* BFD_RELOC_ARM_ADR_IMM: howto manager. (line 1043) 13152* BFD_RELOC_ARM_ADRL_IMMEDIATE: howto manager. (line 1028) 13153* BFD_RELOC_ARM_ALU_PC_G0: howto manager. (line 986) 13154* BFD_RELOC_ARM_ALU_PC_G0_NC: howto manager. (line 985) 13155* BFD_RELOC_ARM_ALU_PC_G1: howto manager. (line 988) 13156* BFD_RELOC_ARM_ALU_PC_G1_NC: howto manager. (line 987) 13157* BFD_RELOC_ARM_ALU_PC_G2: howto manager. (line 989) 13158* BFD_RELOC_ARM_ALU_SB_G0: howto manager. (line 1000) 13159* BFD_RELOC_ARM_ALU_SB_G0_NC: howto manager. (line 999) 13160* BFD_RELOC_ARM_ALU_SB_G1: howto manager. (line 1002) 13161* BFD_RELOC_ARM_ALU_SB_G1_NC: howto manager. (line 1001) 13162* BFD_RELOC_ARM_ALU_SB_G2: howto manager. (line 1003) 13163* BFD_RELOC_ARM_CP_OFF_IMM: howto manager. (line 1038) 13164* BFD_RELOC_ARM_CP_OFF_IMM_S2: howto manager. (line 1039) 13165* BFD_RELOC_ARM_FUNCDESC: howto manager. (line 952) 13166* BFD_RELOC_ARM_FUNCDESC_VALUE: howto manager. (line 953) 13167* BFD_RELOC_ARM_GLOB_DAT: howto manager. (line 960) 13168* BFD_RELOC_ARM_GOT32: howto manager. (line 961) 13169* BFD_RELOC_ARM_GOT_PREL: howto manager. (line 966) 13170* BFD_RELOC_ARM_GOTFUNCDESC: howto manager. (line 950) 13171* BFD_RELOC_ARM_GOTOFF: howto manager. (line 964) 13172* BFD_RELOC_ARM_GOTOFFFUNCDESC: howto manager. (line 951) 13173* BFD_RELOC_ARM_GOTPC: howto manager. (line 965) 13174* BFD_RELOC_ARM_HVC: howto manager. (line 1035) 13175* BFD_RELOC_ARM_HWLITERAL: howto manager. (line 1050) 13176* BFD_RELOC_ARM_IMMEDIATE: howto manager. (line 1027) 13177* BFD_RELOC_ARM_IN_POOL: howto manager. (line 1046) 13178* BFD_RELOC_ARM_IRELATIVE: howto manager. (line 1018) 13179* BFD_RELOC_ARM_JUMP_SLOT: howto manager. (line 959) 13180* BFD_RELOC_ARM_LDC_PC_G0: howto manager. (line 996) 13181* BFD_RELOC_ARM_LDC_PC_G1: howto manager. (line 997) 13182* BFD_RELOC_ARM_LDC_PC_G2: howto manager. (line 998) 13183* BFD_RELOC_ARM_LDC_SB_G0: howto manager. (line 1010) 13184* BFD_RELOC_ARM_LDC_SB_G1: howto manager. (line 1011) 13185* BFD_RELOC_ARM_LDC_SB_G2: howto manager. (line 1012) 13186* BFD_RELOC_ARM_LDR_IMM: howto manager. (line 1044) 13187* BFD_RELOC_ARM_LDR_PC_G0: howto manager. (line 990) 13188* BFD_RELOC_ARM_LDR_PC_G1: howto manager. (line 991) 13189* BFD_RELOC_ARM_LDR_PC_G2: howto manager. (line 992) 13190* BFD_RELOC_ARM_LDR_SB_G0: howto manager. (line 1004) 13191* BFD_RELOC_ARM_LDR_SB_G1: howto manager. (line 1005) 13192* BFD_RELOC_ARM_LDR_SB_G2: howto manager. (line 1006) 13193* BFD_RELOC_ARM_LDRS_PC_G0: howto manager. (line 993) 13194* BFD_RELOC_ARM_LDRS_PC_G1: howto manager. (line 994) 13195* BFD_RELOC_ARM_LDRS_PC_G2: howto manager. (line 995) 13196* BFD_RELOC_ARM_LDRS_SB_G0: howto manager. (line 1007) 13197* BFD_RELOC_ARM_LDRS_SB_G1: howto manager. (line 1008) 13198* BFD_RELOC_ARM_LDRS_SB_G2: howto manager. (line 1009) 13199* BFD_RELOC_ARM_LITERAL: howto manager. (line 1045) 13200* BFD_RELOC_ARM_MOVT: howto manager. (line 941) 13201* BFD_RELOC_ARM_MOVT_PCREL: howto manager. (line 943) 13202* BFD_RELOC_ARM_MOVW: howto manager. (line 940) 13203* BFD_RELOC_ARM_MOVW_PCREL: howto manager. (line 942) 13204* BFD_RELOC_ARM_MULTI: howto manager. (line 1037) 13205* BFD_RELOC_ARM_OFFSET_IMM: howto manager. (line 914) 13206* BFD_RELOC_ARM_OFFSET_IMM8: howto manager. (line 1047) 13207* BFD_RELOC_ARM_PCREL_BLX: howto manager. (line 867) 13208* BFD_RELOC_ARM_PCREL_BRANCH: howto manager. (line 863) 13209* BFD_RELOC_ARM_PCREL_CALL: howto manager. (line 877) 13210* BFD_RELOC_ARM_PCREL_JUMP: howto manager. (line 881) 13211* BFD_RELOC_ARM_PLT32: howto manager. (line 962) 13212* BFD_RELOC_ARM_PREL31: howto manager. (line 937) 13213* BFD_RELOC_ARM_RELATIVE: howto manager. (line 963) 13214* BFD_RELOC_ARM_ROSEGREL32: howto manager. (line 926) 13215* BFD_RELOC_ARM_SBREL32: howto manager. (line 929) 13216* BFD_RELOC_ARM_SHIFT_IMM: howto manager. (line 1033) 13217* BFD_RELOC_ARM_SMC: howto manager. (line 1034) 13218* BFD_RELOC_ARM_SWI: howto manager. (line 1036) 13219* BFD_RELOC_ARM_T32_ADD_IMM: howto manager. (line 1030) 13220* BFD_RELOC_ARM_T32_ADD_PC12: howto manager. (line 1032) 13221* BFD_RELOC_ARM_T32_CP_OFF_IMM: howto manager. (line 1040) 13222* BFD_RELOC_ARM_T32_CP_OFF_IMM_S2: howto manager. (line 1041) 13223* BFD_RELOC_ARM_T32_IMM12: howto manager. (line 1031) 13224* BFD_RELOC_ARM_T32_IMMEDIATE: howto manager. (line 1029) 13225* BFD_RELOC_ARM_T32_OFFSET_IMM: howto manager. (line 1049) 13226* BFD_RELOC_ARM_T32_OFFSET_U8: howto manager. (line 1048) 13227* BFD_RELOC_ARM_T32_VLDR_VSTR_OFF_IMM: howto manager. (line 1042) 13228* BFD_RELOC_ARM_TARGET1: howto manager. (line 922) 13229* BFD_RELOC_ARM_TARGET2: howto manager. (line 932) 13230* BFD_RELOC_ARM_THM_TLS_CALL: howto manager. (line 979) 13231* BFD_RELOC_ARM_THM_TLS_DESCSEQ: howto manager. (line 981) 13232* BFD_RELOC_ARM_THUMB_ADD: howto manager. (line 1051) 13233* BFD_RELOC_ARM_THUMB_ALU_ABS_G0_NC: howto manager. (line 1021) 13234* BFD_RELOC_ARM_THUMB_ALU_ABS_G1_NC: howto manager. (line 1022) 13235* BFD_RELOC_ARM_THUMB_ALU_ABS_G2_NC: howto manager. (line 1023) 13236* BFD_RELOC_ARM_THUMB_ALU_ABS_G3_NC: howto manager. (line 1024) 13237* BFD_RELOC_ARM_THUMB_BF13: howto manager. (line 893) 13238* BFD_RELOC_ARM_THUMB_BF17: howto manager. (line 890) 13239* BFD_RELOC_ARM_THUMB_BF19: howto manager. (line 896) 13240* BFD_RELOC_ARM_THUMB_IMM: howto manager. (line 1052) 13241* BFD_RELOC_ARM_THUMB_LOOP12: howto manager. (line 899) 13242* BFD_RELOC_ARM_THUMB_MOVT: howto manager. (line 945) 13243* BFD_RELOC_ARM_THUMB_MOVT_PCREL: howto manager. (line 947) 13244* BFD_RELOC_ARM_THUMB_MOVW: howto manager. (line 944) 13245* BFD_RELOC_ARM_THUMB_MOVW_PCREL: howto manager. (line 946) 13246* BFD_RELOC_ARM_THUMB_OFFSET: howto manager. (line 918) 13247* BFD_RELOC_ARM_THUMB_SHIFT: howto manager. (line 1053) 13248* BFD_RELOC_ARM_TLS_CALL: howto manager. (line 978) 13249* BFD_RELOC_ARM_TLS_DESC: howto manager. (line 982) 13250* BFD_RELOC_ARM_TLS_DESCSEQ: howto manager. (line 980) 13251* BFD_RELOC_ARM_TLS_DTPMOD32: howto manager. (line 973) 13252* BFD_RELOC_ARM_TLS_DTPOFF32: howto manager. (line 972) 13253* BFD_RELOC_ARM_TLS_GD32: howto manager. (line 969) 13254* BFD_RELOC_ARM_TLS_GD32_FDPIC: howto manager. (line 954) 13255* BFD_RELOC_ARM_TLS_GOTDESC: howto manager. (line 977) 13256* BFD_RELOC_ARM_TLS_IE32: howto manager. (line 975) 13257* BFD_RELOC_ARM_TLS_IE32_FDPIC: howto manager. (line 956) 13258* BFD_RELOC_ARM_TLS_LDM32: howto manager. (line 971) 13259* BFD_RELOC_ARM_TLS_LDM32_FDPIC: howto manager. (line 955) 13260* BFD_RELOC_ARM_TLS_LDO32: howto manager. (line 970) 13261* BFD_RELOC_ARM_TLS_LE32: howto manager. (line 976) 13262* BFD_RELOC_ARM_TLS_TPOFF32: howto manager. (line 974) 13263* BFD_RELOC_ARM_V4BX: howto manager. (line 1015) 13264* BFD_RELOC_AVR_13_PCREL: howto manager. (line 2031) 13265* BFD_RELOC_AVR_16_PM: howto manager. (line 2035) 13266* BFD_RELOC_AVR_6: howto manager. (line 2122) 13267* BFD_RELOC_AVR_6_ADIW: howto manager. (line 2126) 13268* BFD_RELOC_AVR_7_PCREL: howto manager. (line 2027) 13269* BFD_RELOC_AVR_8_HI: howto manager. (line 2134) 13270* BFD_RELOC_AVR_8_HLO: howto manager. (line 2138) 13271* BFD_RELOC_AVR_8_LO: howto manager. (line 2130) 13272* BFD_RELOC_AVR_CALL: howto manager. (line 2114) 13273* BFD_RELOC_AVR_DIFF16: howto manager. (line 2143) 13274* BFD_RELOC_AVR_DIFF32: howto manager. (line 2144) 13275* BFD_RELOC_AVR_DIFF8: howto manager. (line 2142) 13276* BFD_RELOC_AVR_HH8_LDI: howto manager. (line 2047) 13277* BFD_RELOC_AVR_HH8_LDI_NEG: howto manager. (line 2066) 13278* BFD_RELOC_AVR_HH8_LDI_PM: howto manager. (line 2095) 13279* BFD_RELOC_AVR_HH8_LDI_PM_NEG: howto manager. (line 2109) 13280* BFD_RELOC_AVR_HI8_LDI: howto manager. (line 2043) 13281* BFD_RELOC_AVR_HI8_LDI_GS: howto manager. (line 2089) 13282* BFD_RELOC_AVR_HI8_LDI_NEG: howto manager. (line 2061) 13283* BFD_RELOC_AVR_HI8_LDI_PM: howto manager. (line 2085) 13284* BFD_RELOC_AVR_HI8_LDI_PM_NEG: howto manager. (line 2104) 13285* BFD_RELOC_AVR_LDI: howto manager. (line 2118) 13286* BFD_RELOC_AVR_LDS_STS_16: howto manager. (line 2152) 13287* BFD_RELOC_AVR_LO8_LDI: howto manager. (line 2039) 13288* BFD_RELOC_AVR_LO8_LDI_GS: howto manager. (line 2079) 13289* BFD_RELOC_AVR_LO8_LDI_NEG: howto manager. (line 2056) 13290* BFD_RELOC_AVR_LO8_LDI_PM: howto manager. (line 2075) 13291* BFD_RELOC_AVR_LO8_LDI_PM_NEG: howto manager. (line 2100) 13292* BFD_RELOC_AVR_MS8_LDI: howto manager. (line 2052) 13293* BFD_RELOC_AVR_MS8_LDI_NEG: howto manager. (line 2071) 13294* BFD_RELOC_AVR_PORT5: howto manager. (line 2160) 13295* BFD_RELOC_AVR_PORT6: howto manager. (line 2156) 13296* BFD_RELOC_BFIN_10_PCREL: howto manager. (line 1243) 13297* BFD_RELOC_BFIN_11_PCREL: howto manager. (line 1246) 13298* BFD_RELOC_BFIN_12_PCREL_JUMP: howto manager. (line 1249) 13299* BFD_RELOC_BFIN_12_PCREL_JUMP_S: howto manager. (line 1252) 13300* BFD_RELOC_BFIN_16_HIGH: howto manager. (line 1231) 13301* BFD_RELOC_BFIN_16_IMM: howto manager. (line 1228) 13302* BFD_RELOC_BFIN_16_LOW: howto manager. (line 1240) 13303* BFD_RELOC_BFIN_24_PCREL_CALL_X: howto manager. (line 1255) 13304* BFD_RELOC_BFIN_24_PCREL_JUMP_L: howto manager. (line 1258) 13305* BFD_RELOC_BFIN_4_PCREL: howto manager. (line 1234) 13306* BFD_RELOC_BFIN_5_PCREL: howto manager. (line 1237) 13307* BFD_RELOC_BFIN_FUNCDESC: howto manager. (line 1264) 13308* BFD_RELOC_BFIN_FUNCDESC_GOT17M4: howto manager. (line 1265) 13309* BFD_RELOC_BFIN_FUNCDESC_GOTHI: howto manager. (line 1266) 13310* BFD_RELOC_BFIN_FUNCDESC_GOTLO: howto manager. (line 1267) 13311* BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4: howto manager. (line 1269) 13312* BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI: howto manager. (line 1270) 13313* BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO: howto manager. (line 1271) 13314* BFD_RELOC_BFIN_FUNCDESC_VALUE: howto manager. (line 1268) 13315* BFD_RELOC_BFIN_GOT: howto manager. (line 1277) 13316* BFD_RELOC_BFIN_GOT17M4: howto manager. (line 1261) 13317* BFD_RELOC_BFIN_GOTHI: howto manager. (line 1262) 13318* BFD_RELOC_BFIN_GOTLO: howto manager. (line 1263) 13319* BFD_RELOC_BFIN_GOTOFF17M4: howto manager. (line 1272) 13320* BFD_RELOC_BFIN_GOTOFFHI: howto manager. (line 1273) 13321* BFD_RELOC_BFIN_GOTOFFLO: howto manager. (line 1274) 13322* BFD_RELOC_BFIN_PLTPC: howto manager. (line 1280) 13323* BFD_RELOC_BPF_16: howto manager. (line 3956) 13324* BFD_RELOC_BPF_32: howto manager. (line 3955) 13325* BFD_RELOC_BPF_64: howto manager. (line 3954) 13326* BFD_RELOC_BPF_DISP16: howto manager. (line 3957) 13327* BFD_RELOC_BPF_DISP32: howto manager. (line 3958) 13328* BFD_RELOC_C6000_ABS_H16: howto manager. (line 1850) 13329* BFD_RELOC_C6000_ABS_L16: howto manager. (line 1849) 13330* BFD_RELOC_C6000_ABS_S16: howto manager. (line 1848) 13331* BFD_RELOC_C6000_ALIGN: howto manager. (line 1871) 13332* BFD_RELOC_C6000_COPY: howto manager. (line 1866) 13333* BFD_RELOC_C6000_DSBT_INDEX: howto manager. (line 1864) 13334* BFD_RELOC_C6000_EHTYPE: howto manager. (line 1868) 13335* BFD_RELOC_C6000_FPHEAD: howto manager. (line 1872) 13336* BFD_RELOC_C6000_JUMP_SLOT: howto manager. (line 1867) 13337* BFD_RELOC_C6000_NOCMP: howto manager. (line 1873) 13338* BFD_RELOC_C6000_PCR_H16: howto manager. (line 1869) 13339* BFD_RELOC_C6000_PCR_L16: howto manager. (line 1870) 13340* BFD_RELOC_C6000_PCR_S10: howto manager. (line 1846) 13341* BFD_RELOC_C6000_PCR_S12: howto manager. (line 1845) 13342* BFD_RELOC_C6000_PCR_S21: howto manager. (line 1844) 13343* BFD_RELOC_C6000_PCR_S7: howto manager. (line 1847) 13344* BFD_RELOC_C6000_PREL31: howto manager. (line 1865) 13345* BFD_RELOC_C6000_SBR_GOT_H16_W: howto manager. (line 1863) 13346* BFD_RELOC_C6000_SBR_GOT_L16_W: howto manager. (line 1862) 13347* BFD_RELOC_C6000_SBR_GOT_U15_W: howto manager. (line 1861) 13348* BFD_RELOC_C6000_SBR_H16_B: howto manager. (line 1858) 13349* BFD_RELOC_C6000_SBR_H16_H: howto manager. (line 1859) 13350* BFD_RELOC_C6000_SBR_H16_W: howto manager. (line 1860) 13351* BFD_RELOC_C6000_SBR_L16_B: howto manager. (line 1855) 13352* BFD_RELOC_C6000_SBR_L16_H: howto manager. (line 1856) 13353* BFD_RELOC_C6000_SBR_L16_W: howto manager. (line 1857) 13354* BFD_RELOC_C6000_SBR_S16: howto manager. (line 1854) 13355* BFD_RELOC_C6000_SBR_U15_B: howto manager. (line 1851) 13356* BFD_RELOC_C6000_SBR_U15_H: howto manager. (line 1852) 13357* BFD_RELOC_C6000_SBR_U15_W: howto manager. (line 1853) 13358* BFD_RELOC_CKCORE_ADDR32: howto manager. (line 4005) 13359* BFD_RELOC_CKCORE_ADDR_HI16: howto manager. (line 4028) 13360* BFD_RELOC_CKCORE_ADDR_LO16: howto manager. (line 4029) 13361* BFD_RELOC_CKCORE_ADDRGOT: howto manager. (line 4021) 13362* BFD_RELOC_CKCORE_ADDRGOT_HI16: howto manager. (line 4040) 13363* BFD_RELOC_CKCORE_ADDRGOT_LO16: howto manager. (line 4041) 13364* BFD_RELOC_CKCORE_ADDRPLT: howto manager. (line 4022) 13365* BFD_RELOC_CKCORE_ADDRPLT_HI16: howto manager. (line 4042) 13366* BFD_RELOC_CKCORE_ADDRPLT_LO16: howto manager. (line 4043) 13367* BFD_RELOC_CKCORE_CALLGRAPH: howto manager. (line 4065) 13368* BFD_RELOC_CKCORE_COPY: howto manager. (line 4014) 13369* BFD_RELOC_CKCORE_DOFFSET_IMM18: howto manager. (line 4048) 13370* BFD_RELOC_CKCORE_DOFFSET_IMM18BY2: howto manager. (line 4049) 13371* BFD_RELOC_CKCORE_DOFFSET_IMM18BY4: howto manager. (line 4050) 13372* BFD_RELOC_CKCORE_DOFFSET_LO16: howto manager. (line 4046) 13373* BFD_RELOC_CKCORE_GLOB_DAT: howto manager. (line 4015) 13374* BFD_RELOC_CKCORE_GNU_VTENTRY: howto manager. (line 4012) 13375* BFD_RELOC_CKCORE_GNU_VTINHERIT: howto manager. (line 4011) 13376* BFD_RELOC_CKCORE_GOT12: howto manager. (line 4034) 13377* BFD_RELOC_CKCORE_GOT32: howto manager. (line 4019) 13378* BFD_RELOC_CKCORE_GOT_HI16: howto manager. (line 4035) 13379* BFD_RELOC_CKCORE_GOT_IMM18BY4: howto manager. (line 4052) 13380* BFD_RELOC_CKCORE_GOT_LO16: howto manager. (line 4036) 13381* BFD_RELOC_CKCORE_GOTOFF: howto manager. (line 4017) 13382* BFD_RELOC_CKCORE_GOTOFF_HI16: howto manager. (line 4032) 13383* BFD_RELOC_CKCORE_GOTOFF_IMM18: howto manager. (line 4051) 13384* BFD_RELOC_CKCORE_GOTOFF_LO16: howto manager. (line 4033) 13385* BFD_RELOC_CKCORE_GOTPC: howto manager. (line 4018) 13386* BFD_RELOC_CKCORE_GOTPC_HI16: howto manager. (line 4030) 13387* BFD_RELOC_CKCORE_GOTPC_LO16: howto manager. (line 4031) 13388* BFD_RELOC_CKCORE_IRELATIVE: howto manager. (line 4066) 13389* BFD_RELOC_CKCORE_JUMP_SLOT: howto manager. (line 4016) 13390* BFD_RELOC_CKCORE_NOJSRI: howto manager. (line 4064) 13391* BFD_RELOC_CKCORE_NONE: howto manager. (line 4004) 13392* BFD_RELOC_CKCORE_PCREL32: howto manager. (line 4009) 13393* BFD_RELOC_CKCORE_PCREL_BLOOP_IMM12BY4: howto manager. (line 4068) 13394* BFD_RELOC_CKCORE_PCREL_BLOOP_IMM4BY4: howto manager. (line 4067) 13395* BFD_RELOC_CKCORE_PCREL_FLRW_IMM8BY4: howto manager. (line 4063) 13396* BFD_RELOC_CKCORE_PCREL_IMM10BY2: howto manager. (line 4026) 13397* BFD_RELOC_CKCORE_PCREL_IMM10BY4: howto manager. (line 4027) 13398* BFD_RELOC_CKCORE_PCREL_IMM11BY2: howto manager. (line 4007) 13399* BFD_RELOC_CKCORE_PCREL_IMM16BY2: howto manager. (line 4024) 13400* BFD_RELOC_CKCORE_PCREL_IMM16BY4: howto manager. (line 4025) 13401* BFD_RELOC_CKCORE_PCREL_IMM18BY2: howto manager. (line 4047) 13402* BFD_RELOC_CKCORE_PCREL_IMM26BY2: howto manager. (line 4023) 13403* BFD_RELOC_CKCORE_PCREL_IMM4BY2: howto manager. (line 4008) 13404* BFD_RELOC_CKCORE_PCREL_IMM7BY4: howto manager. (line 4054) 13405* BFD_RELOC_CKCORE_PCREL_IMM8BY4: howto manager. (line 4006) 13406* BFD_RELOC_CKCORE_PCREL_JSR_IMM11BY2: howto manager. (line 4010) 13407* BFD_RELOC_CKCORE_PCREL_JSR_IMM26BY2: howto manager. (line 4044) 13408* BFD_RELOC_CKCORE_PLT12: howto manager. (line 4037) 13409* BFD_RELOC_CKCORE_PLT32: howto manager. (line 4020) 13410* BFD_RELOC_CKCORE_PLT_HI16: howto manager. (line 4038) 13411* BFD_RELOC_CKCORE_PLT_IMM18BY4: howto manager. (line 4053) 13412* BFD_RELOC_CKCORE_PLT_LO16: howto manager. (line 4039) 13413* BFD_RELOC_CKCORE_RELATIVE: howto manager. (line 4013) 13414* BFD_RELOC_CKCORE_TLS_DTPMOD32: howto manager. (line 4060) 13415* BFD_RELOC_CKCORE_TLS_DTPOFF32: howto manager. (line 4061) 13416* BFD_RELOC_CKCORE_TLS_GD32: howto manager. (line 4057) 13417* BFD_RELOC_CKCORE_TLS_IE32: howto manager. (line 4056) 13418* BFD_RELOC_CKCORE_TLS_LDM32: howto manager. (line 4058) 13419* BFD_RELOC_CKCORE_TLS_LDO32: howto manager. (line 4059) 13420* BFD_RELOC_CKCORE_TLS_LE32: howto manager. (line 4055) 13421* BFD_RELOC_CKCORE_TLS_TPOFF32: howto manager. (line 4062) 13422* BFD_RELOC_CKCORE_TOFFSET_LO16: howto manager. (line 4045) 13423* bfd_reloc_code_type: howto manager. (line 10) 13424* BFD_RELOC_CR16_ABS20: howto manager. (line 2687) 13425* BFD_RELOC_CR16_ABS24: howto manager. (line 2688) 13426* BFD_RELOC_CR16_DISP16: howto manager. (line 2698) 13427* BFD_RELOC_CR16_DISP20: howto manager. (line 2699) 13428* BFD_RELOC_CR16_DISP24: howto manager. (line 2700) 13429* BFD_RELOC_CR16_DISP24a: howto manager. (line 2701) 13430* BFD_RELOC_CR16_DISP4: howto manager. (line 2696) 13431* BFD_RELOC_CR16_DISP8: howto manager. (line 2697) 13432* BFD_RELOC_CR16_GLOB_DAT: howto manager. (line 2707) 13433* BFD_RELOC_CR16_GOT_REGREL20: howto manager. (line 2705) 13434* BFD_RELOC_CR16_GOTC_REGREL20: howto manager. (line 2706) 13435* BFD_RELOC_CR16_IMM16: howto manager. (line 2691) 13436* BFD_RELOC_CR16_IMM20: howto manager. (line 2692) 13437* BFD_RELOC_CR16_IMM24: howto manager. (line 2693) 13438* BFD_RELOC_CR16_IMM32: howto manager. (line 2694) 13439* BFD_RELOC_CR16_IMM32a: howto manager. (line 2695) 13440* BFD_RELOC_CR16_IMM4: howto manager. (line 2689) 13441* BFD_RELOC_CR16_IMM8: howto manager. (line 2690) 13442* BFD_RELOC_CR16_NUM16: howto manager. (line 2676) 13443* BFD_RELOC_CR16_NUM32: howto manager. (line 2677) 13444* BFD_RELOC_CR16_NUM32a: howto manager. (line 2678) 13445* BFD_RELOC_CR16_NUM8: howto manager. (line 2675) 13446* BFD_RELOC_CR16_REGREL0: howto manager. (line 2679) 13447* BFD_RELOC_CR16_REGREL14: howto manager. (line 2682) 13448* BFD_RELOC_CR16_REGREL14a: howto manager. (line 2683) 13449* BFD_RELOC_CR16_REGREL16: howto manager. (line 2684) 13450* BFD_RELOC_CR16_REGREL20: howto manager. (line 2685) 13451* BFD_RELOC_CR16_REGREL20a: howto manager. (line 2686) 13452* BFD_RELOC_CR16_REGREL4: howto manager. (line 2680) 13453* BFD_RELOC_CR16_REGREL4a: howto manager. (line 2681) 13454* BFD_RELOC_CR16_SWITCH16: howto manager. (line 2703) 13455* BFD_RELOC_CR16_SWITCH32: howto manager. (line 2704) 13456* BFD_RELOC_CR16_SWITCH8: howto manager. (line 2702) 13457* BFD_RELOC_CRIS_16_DTPREL: howto manager. (line 2778) 13458* BFD_RELOC_CRIS_16_GOT: howto manager. (line 2754) 13459* BFD_RELOC_CRIS_16_GOT_GD: howto manager. (line 2774) 13460* BFD_RELOC_CRIS_16_GOT_TPREL: howto manager. (line 2780) 13461* BFD_RELOC_CRIS_16_GOTPLT: howto manager. (line 2760) 13462* BFD_RELOC_CRIS_16_TPREL: howto manager. (line 2782) 13463* BFD_RELOC_CRIS_32_DTPREL: howto manager. (line 2777) 13464* BFD_RELOC_CRIS_32_GD: howto manager. (line 2775) 13465* BFD_RELOC_CRIS_32_GOT: howto manager. (line 2751) 13466* BFD_RELOC_CRIS_32_GOT_GD: howto manager. (line 2773) 13467* BFD_RELOC_CRIS_32_GOT_TPREL: howto manager. (line 2779) 13468* BFD_RELOC_CRIS_32_GOTPLT: howto manager. (line 2757) 13469* BFD_RELOC_CRIS_32_GOTREL: howto manager. (line 2763) 13470* BFD_RELOC_CRIS_32_IE: howto manager. (line 2784) 13471* BFD_RELOC_CRIS_32_PLT_GOTREL: howto manager. (line 2766) 13472* BFD_RELOC_CRIS_32_PLT_PCREL: howto manager. (line 2769) 13473* BFD_RELOC_CRIS_32_TPREL: howto manager. (line 2781) 13474* BFD_RELOC_CRIS_BDISP8: howto manager. (line 2732) 13475* BFD_RELOC_CRIS_COPY: howto manager. (line 2745) 13476* BFD_RELOC_CRIS_DTP: howto manager. (line 2776) 13477* BFD_RELOC_CRIS_DTPMOD: howto manager. (line 2783) 13478* BFD_RELOC_CRIS_GLOB_DAT: howto manager. (line 2746) 13479* BFD_RELOC_CRIS_JUMP_SLOT: howto manager. (line 2747) 13480* BFD_RELOC_CRIS_LAPCQ_OFFSET: howto manager. (line 2740) 13481* BFD_RELOC_CRIS_RELATIVE: howto manager. (line 2748) 13482* BFD_RELOC_CRIS_SIGNED_16: howto manager. (line 2738) 13483* BFD_RELOC_CRIS_SIGNED_6: howto manager. (line 2734) 13484* BFD_RELOC_CRIS_SIGNED_8: howto manager. (line 2736) 13485* BFD_RELOC_CRIS_UNSIGNED_16: howto manager. (line 2739) 13486* BFD_RELOC_CRIS_UNSIGNED_4: howto manager. (line 2741) 13487* BFD_RELOC_CRIS_UNSIGNED_5: howto manager. (line 2733) 13488* BFD_RELOC_CRIS_UNSIGNED_6: howto manager. (line 2735) 13489* BFD_RELOC_CRIS_UNSIGNED_8: howto manager. (line 2737) 13490* BFD_RELOC_CRX_ABS16: howto manager. (line 2720) 13491* BFD_RELOC_CRX_ABS32: howto manager. (line 2721) 13492* BFD_RELOC_CRX_IMM16: howto manager. (line 2725) 13493* BFD_RELOC_CRX_IMM32: howto manager. (line 2726) 13494* BFD_RELOC_CRX_NUM16: howto manager. (line 2723) 13495* BFD_RELOC_CRX_NUM32: howto manager. (line 2724) 13496* BFD_RELOC_CRX_NUM8: howto manager. (line 2722) 13497* BFD_RELOC_CRX_REGREL12: howto manager. (line 2716) 13498* BFD_RELOC_CRX_REGREL22: howto manager. (line 2717) 13499* BFD_RELOC_CRX_REGREL28: howto manager. (line 2718) 13500* BFD_RELOC_CRX_REGREL32: howto manager. (line 2719) 13501* BFD_RELOC_CRX_REL16: howto manager. (line 2713) 13502* BFD_RELOC_CRX_REL24: howto manager. (line 2714) 13503* BFD_RELOC_CRX_REL32: howto manager. (line 2715) 13504* BFD_RELOC_CRX_REL4: howto manager. (line 2710) 13505* BFD_RELOC_CRX_REL8: howto manager. (line 2711) 13506* BFD_RELOC_CRX_REL8_CMP: howto manager. (line 2712) 13507* BFD_RELOC_CRX_SWITCH16: howto manager. (line 2728) 13508* BFD_RELOC_CRX_SWITCH32: howto manager. (line 2729) 13509* BFD_RELOC_CRX_SWITCH8: howto manager. (line 2727) 13510* BFD_RELOC_CTOR: howto manager. (line 857) 13511* BFD_RELOC_D10V_10_PCREL_L: howto manager. (line 1347) 13512* BFD_RELOC_D10V_10_PCREL_R: howto manager. (line 1343) 13513* BFD_RELOC_D10V_18: howto manager. (line 1352) 13514* BFD_RELOC_D10V_18_PCREL: howto manager. (line 1355) 13515* BFD_RELOC_D30V_15: howto manager. (line 1370) 13516* BFD_RELOC_D30V_15_PCREL: howto manager. (line 1374) 13517* BFD_RELOC_D30V_15_PCREL_R: howto manager. (line 1378) 13518* BFD_RELOC_D30V_21: howto manager. (line 1383) 13519* BFD_RELOC_D30V_21_PCREL: howto manager. (line 1387) 13520* BFD_RELOC_D30V_21_PCREL_R: howto manager. (line 1391) 13521* BFD_RELOC_D30V_32: howto manager. (line 1396) 13522* BFD_RELOC_D30V_32_PCREL: howto manager. (line 1399) 13523* BFD_RELOC_D30V_6: howto manager. (line 1358) 13524* BFD_RELOC_D30V_9_PCREL: howto manager. (line 1361) 13525* BFD_RELOC_D30V_9_PCREL_R: howto manager. (line 1365) 13526* BFD_RELOC_DLX_HI16_S: howto manager. (line 1402) 13527* BFD_RELOC_DLX_JMP26: howto manager. (line 1408) 13528* BFD_RELOC_DLX_LO16: howto manager. (line 1405) 13529* BFD_RELOC_EPIPHANY_HIGH: howto manager. (line 3967) 13530* BFD_RELOC_EPIPHANY_IMM11: howto manager. (line 3976) 13531* BFD_RELOC_EPIPHANY_IMM8: howto manager. (line 3980) 13532* BFD_RELOC_EPIPHANY_LOW: howto manager. (line 3970) 13533* BFD_RELOC_EPIPHANY_SIMM11: howto manager. (line 3973) 13534* BFD_RELOC_EPIPHANY_SIMM24: howto manager. (line 3964) 13535* BFD_RELOC_EPIPHANY_SIMM8: howto manager. (line 3961) 13536* BFD_RELOC_FR30_10_IN_8: howto manager. (line 1895) 13537* BFD_RELOC_FR30_12_PCREL: howto manager. (line 1903) 13538* BFD_RELOC_FR30_20: howto manager. (line 1879) 13539* BFD_RELOC_FR30_48: howto manager. (line 1876) 13540* BFD_RELOC_FR30_6_IN_4: howto manager. (line 1883) 13541* BFD_RELOC_FR30_8_IN_8: howto manager. (line 1887) 13542* BFD_RELOC_FR30_9_IN_8: howto manager. (line 1891) 13543* BFD_RELOC_FR30_9_PCREL: howto manager. (line 1899) 13544* BFD_RELOC_FRV_FUNCDESC: howto manager. (line 513) 13545* BFD_RELOC_FRV_FUNCDESC_GOT12: howto manager. (line 514) 13546* BFD_RELOC_FRV_FUNCDESC_GOTHI: howto manager. (line 515) 13547* BFD_RELOC_FRV_FUNCDESC_GOTLO: howto manager. (line 516) 13548* BFD_RELOC_FRV_FUNCDESC_GOTOFF12: howto manager. (line 518) 13549* BFD_RELOC_FRV_FUNCDESC_GOTOFFHI: howto manager. (line 519) 13550* BFD_RELOC_FRV_FUNCDESC_GOTOFFLO: howto manager. (line 520) 13551* BFD_RELOC_FRV_FUNCDESC_VALUE: howto manager. (line 517) 13552* BFD_RELOC_FRV_GETTLSOFF: howto manager. (line 524) 13553* BFD_RELOC_FRV_GETTLSOFF_RELAX: howto manager. (line 537) 13554* BFD_RELOC_FRV_GOT12: howto manager. (line 510) 13555* BFD_RELOC_FRV_GOTHI: howto manager. (line 511) 13556* BFD_RELOC_FRV_GOTLO: howto manager. (line 512) 13557* BFD_RELOC_FRV_GOTOFF12: howto manager. (line 521) 13558* BFD_RELOC_FRV_GOTOFFHI: howto manager. (line 522) 13559* BFD_RELOC_FRV_GOTOFFLO: howto manager. (line 523) 13560* BFD_RELOC_FRV_GOTTLSDESC12: howto manager. (line 526) 13561* BFD_RELOC_FRV_GOTTLSDESCHI: howto manager. (line 527) 13562* BFD_RELOC_FRV_GOTTLSDESCLO: howto manager. (line 528) 13563* BFD_RELOC_FRV_GOTTLSOFF12: howto manager. (line 532) 13564* BFD_RELOC_FRV_GOTTLSOFFHI: howto manager. (line 533) 13565* BFD_RELOC_FRV_GOTTLSOFFLO: howto manager. (line 534) 13566* BFD_RELOC_FRV_GPREL12: howto manager. (line 505) 13567* BFD_RELOC_FRV_GPREL32: howto manager. (line 507) 13568* BFD_RELOC_FRV_GPRELHI: howto manager. (line 508) 13569* BFD_RELOC_FRV_GPRELLO: howto manager. (line 509) 13570* BFD_RELOC_FRV_GPRELU12: howto manager. (line 506) 13571* BFD_RELOC_FRV_HI16: howto manager. (line 504) 13572* BFD_RELOC_FRV_LABEL16: howto manager. (line 501) 13573* BFD_RELOC_FRV_LABEL24: howto manager. (line 502) 13574* BFD_RELOC_FRV_LO16: howto manager. (line 503) 13575* BFD_RELOC_FRV_TLSDESC_RELAX: howto manager. (line 536) 13576* BFD_RELOC_FRV_TLSDESC_VALUE: howto manager. (line 525) 13577* BFD_RELOC_FRV_TLSMOFF: howto manager. (line 539) 13578* BFD_RELOC_FRV_TLSMOFF12: howto manager. (line 529) 13579* BFD_RELOC_FRV_TLSMOFFHI: howto manager. (line 530) 13580* BFD_RELOC_FRV_TLSMOFFLO: howto manager. (line 531) 13581* BFD_RELOC_FRV_TLSOFF: howto manager. (line 535) 13582* BFD_RELOC_FRV_TLSOFF_RELAX: howto manager. (line 538) 13583* BFD_RELOC_FT32_10: howto manager. (line 490) 13584* BFD_RELOC_FT32_15: howto manager. (line 497) 13585* BFD_RELOC_FT32_17: howto manager. (line 492) 13586* BFD_RELOC_FT32_18: howto manager. (line 493) 13587* BFD_RELOC_FT32_20: howto manager. (line 491) 13588* BFD_RELOC_FT32_DIFF32: howto manager. (line 498) 13589* BFD_RELOC_FT32_RELAX: howto manager. (line 494) 13590* BFD_RELOC_FT32_SC0: howto manager. (line 495) 13591* BFD_RELOC_FT32_SC1: howto manager. (line 496) 13592* BFD_RELOC_GPREL16: howto manager. (line 130) 13593* BFD_RELOC_GPREL32: howto manager. (line 131) 13594* BFD_RELOC_H8_DIR16A8: howto manager. (line 2829) 13595* BFD_RELOC_H8_DIR16R8: howto manager. (line 2830) 13596* BFD_RELOC_H8_DIR24A8: howto manager. (line 2831) 13597* BFD_RELOC_H8_DIR24R8: howto manager. (line 2832) 13598* BFD_RELOC_H8_DIR32A16: howto manager. (line 2833) 13599* BFD_RELOC_H8_DISP32A16: howto manager. (line 2834) 13600* BFD_RELOC_HI16: howto manager. (line 354) 13601* BFD_RELOC_HI16_BASEREL: howto manager. (line 106) 13602* BFD_RELOC_HI16_GOTOFF: howto manager. (line 56) 13603* BFD_RELOC_HI16_PCREL: howto manager. (line 366) 13604* BFD_RELOC_HI16_PLTOFF: howto manager. (line 68) 13605* BFD_RELOC_HI16_S: howto manager. (line 357) 13606* BFD_RELOC_HI16_S_BASEREL: howto manager. (line 107) 13607* BFD_RELOC_HI16_S_GOTOFF: howto manager. (line 57) 13608* BFD_RELOC_HI16_S_PCREL: howto manager. (line 369) 13609* BFD_RELOC_HI16_S_PLTOFF: howto manager. (line 69) 13610* BFD_RELOC_HI22: howto manager. (line 125) 13611* BFD_RELOC_I370_D12: howto manager. (line 854) 13612* BFD_RELOC_IA64_COPY: howto manager. (line 2544) 13613* BFD_RELOC_IA64_DIR32LSB: howto manager. (line 2489) 13614* BFD_RELOC_IA64_DIR32MSB: howto manager. (line 2488) 13615* BFD_RELOC_IA64_DIR64LSB: howto manager. (line 2491) 13616* BFD_RELOC_IA64_DIR64MSB: howto manager. (line 2490) 13617* BFD_RELOC_IA64_DTPMOD64LSB: howto manager. (line 2554) 13618* BFD_RELOC_IA64_DTPMOD64MSB: howto manager. (line 2553) 13619* BFD_RELOC_IA64_DTPREL14: howto manager. (line 2556) 13620* BFD_RELOC_IA64_DTPREL22: howto manager. (line 2557) 13621* BFD_RELOC_IA64_DTPREL32LSB: howto manager. (line 2560) 13622* BFD_RELOC_IA64_DTPREL32MSB: howto manager. (line 2559) 13623* BFD_RELOC_IA64_DTPREL64I: howto manager. (line 2558) 13624* BFD_RELOC_IA64_DTPREL64LSB: howto manager. (line 2562) 13625* BFD_RELOC_IA64_DTPREL64MSB: howto manager. (line 2561) 13626* BFD_RELOC_IA64_FPTR32LSB: howto manager. (line 2506) 13627* BFD_RELOC_IA64_FPTR32MSB: howto manager. (line 2505) 13628* BFD_RELOC_IA64_FPTR64I: howto manager. (line 2504) 13629* BFD_RELOC_IA64_FPTR64LSB: howto manager. (line 2508) 13630* BFD_RELOC_IA64_FPTR64MSB: howto manager. (line 2507) 13631* BFD_RELOC_IA64_GPREL22: howto manager. (line 2492) 13632* BFD_RELOC_IA64_GPREL32LSB: howto manager. (line 2495) 13633* BFD_RELOC_IA64_GPREL32MSB: howto manager. (line 2494) 13634* BFD_RELOC_IA64_GPREL64I: howto manager. (line 2493) 13635* BFD_RELOC_IA64_GPREL64LSB: howto manager. (line 2497) 13636* BFD_RELOC_IA64_GPREL64MSB: howto manager. (line 2496) 13637* BFD_RELOC_IA64_IMM14: howto manager. (line 2485) 13638* BFD_RELOC_IA64_IMM22: howto manager. (line 2486) 13639* BFD_RELOC_IA64_IMM64: howto manager. (line 2487) 13640* BFD_RELOC_IA64_IPLTLSB: howto manager. (line 2543) 13641* BFD_RELOC_IA64_IPLTMSB: howto manager. (line 2542) 13642* BFD_RELOC_IA64_LDXMOV: howto manager. (line 2546) 13643* BFD_RELOC_IA64_LTOFF22: howto manager. (line 2498) 13644* BFD_RELOC_IA64_LTOFF22X: howto manager. (line 2545) 13645* BFD_RELOC_IA64_LTOFF64I: howto manager. (line 2499) 13646* BFD_RELOC_IA64_LTOFF_DTPMOD22: howto manager. (line 2555) 13647* BFD_RELOC_IA64_LTOFF_DTPREL22: howto manager. (line 2563) 13648* BFD_RELOC_IA64_LTOFF_FPTR22: howto manager. (line 2520) 13649* BFD_RELOC_IA64_LTOFF_FPTR32LSB: howto manager. (line 2523) 13650* BFD_RELOC_IA64_LTOFF_FPTR32MSB: howto manager. (line 2522) 13651* BFD_RELOC_IA64_LTOFF_FPTR64I: howto manager. (line 2521) 13652* BFD_RELOC_IA64_LTOFF_FPTR64LSB: howto manager. (line 2525) 13653* BFD_RELOC_IA64_LTOFF_FPTR64MSB: howto manager. (line 2524) 13654* BFD_RELOC_IA64_LTOFF_TPREL22: howto manager. (line 2552) 13655* BFD_RELOC_IA64_LTV32LSB: howto manager. (line 2539) 13656* BFD_RELOC_IA64_LTV32MSB: howto manager. (line 2538) 13657* BFD_RELOC_IA64_LTV64LSB: howto manager. (line 2541) 13658* BFD_RELOC_IA64_LTV64MSB: howto manager. (line 2540) 13659* BFD_RELOC_IA64_PCREL21B: howto manager. (line 2509) 13660* BFD_RELOC_IA64_PCREL21BI: howto manager. (line 2510) 13661* BFD_RELOC_IA64_PCREL21F: howto manager. (line 2512) 13662* BFD_RELOC_IA64_PCREL21M: howto manager. (line 2511) 13663* BFD_RELOC_IA64_PCREL22: howto manager. (line 2513) 13664* BFD_RELOC_IA64_PCREL32LSB: howto manager. (line 2517) 13665* BFD_RELOC_IA64_PCREL32MSB: howto manager. (line 2516) 13666* BFD_RELOC_IA64_PCREL60B: howto manager. (line 2514) 13667* BFD_RELOC_IA64_PCREL64I: howto manager. (line 2515) 13668* BFD_RELOC_IA64_PCREL64LSB: howto manager. (line 2519) 13669* BFD_RELOC_IA64_PCREL64MSB: howto manager. (line 2518) 13670* BFD_RELOC_IA64_PLTOFF22: howto manager. (line 2500) 13671* BFD_RELOC_IA64_PLTOFF64I: howto manager. (line 2501) 13672* BFD_RELOC_IA64_PLTOFF64LSB: howto manager. (line 2503) 13673* BFD_RELOC_IA64_PLTOFF64MSB: howto manager. (line 2502) 13674* BFD_RELOC_IA64_REL32LSB: howto manager. (line 2535) 13675* BFD_RELOC_IA64_REL32MSB: howto manager. (line 2534) 13676* BFD_RELOC_IA64_REL64LSB: howto manager. (line 2537) 13677* BFD_RELOC_IA64_REL64MSB: howto manager. (line 2536) 13678* BFD_RELOC_IA64_SECREL32LSB: howto manager. (line 2531) 13679* BFD_RELOC_IA64_SECREL32MSB: howto manager. (line 2530) 13680* BFD_RELOC_IA64_SECREL64LSB: howto manager. (line 2533) 13681* BFD_RELOC_IA64_SECREL64MSB: howto manager. (line 2532) 13682* BFD_RELOC_IA64_SEGREL32LSB: howto manager. (line 2527) 13683* BFD_RELOC_IA64_SEGREL32MSB: howto manager. (line 2526) 13684* BFD_RELOC_IA64_SEGREL64LSB: howto manager. (line 2529) 13685* BFD_RELOC_IA64_SEGREL64MSB: howto manager. (line 2528) 13686* BFD_RELOC_IA64_TPREL14: howto manager. (line 2547) 13687* BFD_RELOC_IA64_TPREL22: howto manager. (line 2548) 13688* BFD_RELOC_IA64_TPREL64I: howto manager. (line 2549) 13689* BFD_RELOC_IA64_TPREL64LSB: howto manager. (line 2551) 13690* BFD_RELOC_IA64_TPREL64MSB: howto manager. (line 2550) 13691* BFD_RELOC_IP2K_ADDR16CJP: howto manager. (line 2437) 13692* BFD_RELOC_IP2K_BANK: howto manager. (line 2434) 13693* BFD_RELOC_IP2K_EX8DATA: howto manager. (line 2445) 13694* BFD_RELOC_IP2K_FR9: howto manager. (line 2431) 13695* BFD_RELOC_IP2K_FR_OFFSET: howto manager. (line 2458) 13696* BFD_RELOC_IP2K_HI8DATA: howto manager. (line 2444) 13697* BFD_RELOC_IP2K_HI8INSN: howto manager. (line 2449) 13698* BFD_RELOC_IP2K_LO8DATA: howto manager. (line 2443) 13699* BFD_RELOC_IP2K_LO8INSN: howto manager. (line 2448) 13700* BFD_RELOC_IP2K_PAGE3: howto manager. (line 2440) 13701* BFD_RELOC_IP2K_PC_SKIP: howto manager. (line 2452) 13702* BFD_RELOC_IP2K_TEXT: howto manager. (line 2455) 13703* BFD_RELOC_IQ2000_OFFSET_16: howto manager. (line 2984) 13704* BFD_RELOC_IQ2000_OFFSET_21: howto manager. (line 2985) 13705* BFD_RELOC_IQ2000_UHI16: howto manager. (line 2986) 13706* BFD_RELOC_LARCH_ADD16: howto manager. (line 4108) 13707* BFD_RELOC_LARCH_ADD24: howto manager. (line 4109) 13708* BFD_RELOC_LARCH_ADD32: howto manager. (line 4110) 13709* BFD_RELOC_LARCH_ADD64: howto manager. (line 4111) 13710* BFD_RELOC_LARCH_ADD8: howto manager. (line 4107) 13711* BFD_RELOC_LARCH_MARK_LA: howto manager. (line 4080) 13712* BFD_RELOC_LARCH_MARK_PCREL: howto manager. (line 4081) 13713* BFD_RELOC_LARCH_SOP_ADD: howto manager. (line 4095) 13714* BFD_RELOC_LARCH_SOP_AND: howto manager. (line 4096) 13715* BFD_RELOC_LARCH_SOP_ASSERT: howto manager. (line 4090) 13716* BFD_RELOC_LARCH_SOP_IF_ELSE: howto manager. (line 4097) 13717* BFD_RELOC_LARCH_SOP_NOT: howto manager. (line 4091) 13718* BFD_RELOC_LARCH_SOP_POP_32_S_0_10_10_16_S2: howto manager. (line 4105) 13719* BFD_RELOC_LARCH_SOP_POP_32_S_0_5_10_16_S2: howto manager. (line 4104) 13720* BFD_RELOC_LARCH_SOP_POP_32_S_10_12: howto manager. (line 4100) 13721* BFD_RELOC_LARCH_SOP_POP_32_S_10_16: howto manager. (line 4101) 13722* BFD_RELOC_LARCH_SOP_POP_32_S_10_16_S2: howto manager. (line 4102) 13723* BFD_RELOC_LARCH_SOP_POP_32_S_10_5: howto manager. (line 4098) 13724* BFD_RELOC_LARCH_SOP_POP_32_S_5_20: howto manager. (line 4103) 13725* BFD_RELOC_LARCH_SOP_POP_32_U: howto manager. (line 4106) 13726* BFD_RELOC_LARCH_SOP_POP_32_U_10_12: howto manager. (line 4099) 13727* BFD_RELOC_LARCH_SOP_PUSH_ABSOLUTE: howto manager. (line 4083) 13728* BFD_RELOC_LARCH_SOP_PUSH_DUP: howto manager. (line 4084) 13729* BFD_RELOC_LARCH_SOP_PUSH_GPREL: howto manager. (line 4085) 13730* BFD_RELOC_LARCH_SOP_PUSH_PCREL: howto manager. (line 4082) 13731* BFD_RELOC_LARCH_SOP_PUSH_PLT_PCREL: howto manager. (line 4089) 13732* BFD_RELOC_LARCH_SOP_PUSH_TLS_GD: howto manager. (line 4088) 13733* BFD_RELOC_LARCH_SOP_PUSH_TLS_GOT: howto manager. (line 4087) 13734* BFD_RELOC_LARCH_SOP_PUSH_TLS_TPREL: howto manager. (line 4086) 13735* BFD_RELOC_LARCH_SOP_SL: howto manager. (line 4093) 13736* BFD_RELOC_LARCH_SOP_SR: howto manager. (line 4094) 13737* BFD_RELOC_LARCH_SOP_SUB: howto manager. (line 4092) 13738* BFD_RELOC_LARCH_SUB16: howto manager. (line 4113) 13739* BFD_RELOC_LARCH_SUB24: howto manager. (line 4114) 13740* BFD_RELOC_LARCH_SUB32: howto manager. (line 4115) 13741* BFD_RELOC_LARCH_SUB64: howto manager. (line 4116) 13742* BFD_RELOC_LARCH_SUB8: howto manager. (line 4112) 13743* BFD_RELOC_LARCH_TLS_DTPMOD32: howto manager. (line 4074) 13744* BFD_RELOC_LARCH_TLS_DTPMOD64: howto manager. (line 4076) 13745* BFD_RELOC_LARCH_TLS_DTPREL32: howto manager. (line 4075) 13746* BFD_RELOC_LARCH_TLS_DTPREL64: howto manager. (line 4077) 13747* BFD_RELOC_LARCH_TLS_TPREL32: howto manager. (line 4078) 13748* BFD_RELOC_LARCH_TLS_TPREL64: howto manager. (line 4079) 13749* BFD_RELOC_LM32_16_GOT: howto manager. (line 3130) 13750* BFD_RELOC_LM32_BRANCH: howto manager. (line 3129) 13751* BFD_RELOC_LM32_CALL: howto manager. (line 3128) 13752* BFD_RELOC_LM32_COPY: howto manager. (line 3133) 13753* BFD_RELOC_LM32_GLOB_DAT: howto manager. (line 3134) 13754* BFD_RELOC_LM32_GOTOFF_HI16: howto manager. (line 3131) 13755* BFD_RELOC_LM32_GOTOFF_LO16: howto manager. (line 3132) 13756* BFD_RELOC_LM32_JMP_SLOT: howto manager. (line 3135) 13757* BFD_RELOC_LM32_RELATIVE: howto manager. (line 3136) 13758* BFD_RELOC_LO10: howto manager. (line 126) 13759* BFD_RELOC_LO16: howto manager. (line 363) 13760* BFD_RELOC_LO16_BASEREL: howto manager. (line 105) 13761* BFD_RELOC_LO16_GOTOFF: howto manager. (line 55) 13762* BFD_RELOC_LO16_PCREL: howto manager. (line 372) 13763* BFD_RELOC_LO16_PLTOFF: howto manager. (line 67) 13764* BFD_RELOC_M32C_HI8: howto manager. (line 1411) 13765* BFD_RELOC_M32C_RL_1ADDR: howto manager. (line 1413) 13766* BFD_RELOC_M32C_RL_2ADDR: howto manager. (line 1414) 13767* BFD_RELOC_M32C_RL_JUMP: howto manager. (line 1412) 13768* BFD_RELOC_M32R_10_PCREL: howto manager. (line 1421) 13769* BFD_RELOC_M32R_18_PCREL: howto manager. (line 1425) 13770* BFD_RELOC_M32R_24: howto manager. (line 1417) 13771* BFD_RELOC_M32R_26_PCREL: howto manager. (line 1428) 13772* BFD_RELOC_M32R_26_PLTREL: howto manager. (line 1447) 13773* BFD_RELOC_M32R_COPY: howto manager. (line 1448) 13774* BFD_RELOC_M32R_GLOB_DAT: howto manager. (line 1449) 13775* BFD_RELOC_M32R_GOT16_HI_SLO: howto manager. (line 1458) 13776* BFD_RELOC_M32R_GOT16_HI_ULO: howto manager. (line 1457) 13777* BFD_RELOC_M32R_GOT16_LO: howto manager. (line 1459) 13778* BFD_RELOC_M32R_GOT24: howto manager. (line 1446) 13779* BFD_RELOC_M32R_GOTOFF: howto manager. (line 1452) 13780* BFD_RELOC_M32R_GOTOFF_HI_SLO: howto manager. (line 1454) 13781* BFD_RELOC_M32R_GOTOFF_HI_ULO: howto manager. (line 1453) 13782* BFD_RELOC_M32R_GOTOFF_LO: howto manager. (line 1455) 13783* BFD_RELOC_M32R_GOTPC24: howto manager. (line 1456) 13784* BFD_RELOC_M32R_GOTPC_HI_SLO: howto manager. (line 1461) 13785* BFD_RELOC_M32R_GOTPC_HI_ULO: howto manager. (line 1460) 13786* BFD_RELOC_M32R_GOTPC_LO: howto manager. (line 1462) 13787* BFD_RELOC_M32R_HI16_SLO: howto manager. (line 1435) 13788* BFD_RELOC_M32R_HI16_ULO: howto manager. (line 1431) 13789* BFD_RELOC_M32R_JMP_SLOT: howto manager. (line 1450) 13790* BFD_RELOC_M32R_LO16: howto manager. (line 1439) 13791* BFD_RELOC_M32R_RELATIVE: howto manager. (line 1451) 13792* BFD_RELOC_M32R_SDA16: howto manager. (line 1442) 13793* BFD_RELOC_M68HC11_24: howto manager. (line 2599) 13794* BFD_RELOC_M68HC11_3B: howto manager. (line 2574) 13795* BFD_RELOC_M68HC11_HI8: howto manager. (line 2566) 13796* BFD_RELOC_M68HC11_LO16: howto manager. (line 2588) 13797* BFD_RELOC_M68HC11_LO8: howto manager. (line 2570) 13798* BFD_RELOC_M68HC11_PAGE: howto manager. (line 2594) 13799* BFD_RELOC_M68HC11_RL_GROUP: howto manager. (line 2583) 13800* BFD_RELOC_M68HC11_RL_JUMP: howto manager. (line 2577) 13801* BFD_RELOC_M68HC12_10_PCREL: howto manager. (line 2659) 13802* BFD_RELOC_M68HC12_16B: howto manager. (line 2653) 13803* BFD_RELOC_M68HC12_5B: howto manager. (line 2605) 13804* BFD_RELOC_M68HC12_9_PCREL: howto manager. (line 2656) 13805* BFD_RELOC_M68HC12_9B: howto manager. (line 2650) 13806* BFD_RELOC_M68HC12_HI8XG: howto manager. (line 2666) 13807* BFD_RELOC_M68HC12_LO8XG: howto manager. (line 2662) 13808* BFD_RELOC_MACH_O_ARM64_ADDEND: howto manager. (line 3179) 13809* BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21: howto manager. (line 3182) 13810* BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12: howto manager. (line 3185) 13811* BFD_RELOC_MACH_O_ARM64_POINTER_TO_GOT: howto manager. (line 3188) 13812* BFD_RELOC_MACH_O_LOCAL_SECTDIFF: howto manager. (line 3143) 13813* BFD_RELOC_MACH_O_PAIR: howto manager. (line 3146) 13814* BFD_RELOC_MACH_O_SECTDIFF: howto manager. (line 3139) 13815* BFD_RELOC_MACH_O_SUBTRACTOR32: howto manager. (line 3149) 13816* BFD_RELOC_MACH_O_SUBTRACTOR64: howto manager. (line 3152) 13817* BFD_RELOC_MACH_O_X86_64_BRANCH32: howto manager. (line 3155) 13818* BFD_RELOC_MACH_O_X86_64_BRANCH8: howto manager. (line 3156) 13819* BFD_RELOC_MACH_O_X86_64_GOT: howto manager. (line 3160) 13820* BFD_RELOC_MACH_O_X86_64_GOT_LOAD: howto manager. (line 3163) 13821* BFD_RELOC_MACH_O_X86_64_PCREL32_1: howto manager. (line 3167) 13822* BFD_RELOC_MACH_O_X86_64_PCREL32_2: howto manager. (line 3170) 13823* BFD_RELOC_MACH_O_X86_64_PCREL32_4: howto manager. (line 3173) 13824* BFD_RELOC_MACH_O_X86_64_TLV: howto manager. (line 3176) 13825* BFD_RELOC_MCORE_PCREL_32: howto manager. (line 1910) 13826* BFD_RELOC_MCORE_PCREL_IMM11BY2: howto manager. (line 1908) 13827* BFD_RELOC_MCORE_PCREL_IMM4BY2: howto manager. (line 1909) 13828* BFD_RELOC_MCORE_PCREL_IMM8BY4: howto manager. (line 1907) 13829* BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2: howto manager. (line 1911) 13830* BFD_RELOC_MCORE_RVA: howto manager. (line 1912) 13831* BFD_RELOC_MEP_16: howto manager. (line 1916) 13832* BFD_RELOC_MEP_32: howto manager. (line 1917) 13833* BFD_RELOC_MEP_8: howto manager. (line 1915) 13834* BFD_RELOC_MEP_ADDR24A4: howto manager. (line 1932) 13835* BFD_RELOC_MEP_GNU_VTENTRY: howto manager. (line 1934) 13836* BFD_RELOC_MEP_GNU_VTINHERIT: howto manager. (line 1933) 13837* BFD_RELOC_MEP_GPREL: howto manager. (line 1926) 13838* BFD_RELOC_MEP_HI16S: howto manager. (line 1925) 13839* BFD_RELOC_MEP_HI16U: howto manager. (line 1924) 13840* BFD_RELOC_MEP_LOW16: howto manager. (line 1923) 13841* BFD_RELOC_MEP_PCABS24A2: howto manager. (line 1922) 13842* BFD_RELOC_MEP_PCREL12A2: howto manager. (line 1919) 13843* BFD_RELOC_MEP_PCREL17A2: howto manager. (line 1920) 13844* BFD_RELOC_MEP_PCREL24A2: howto manager. (line 1921) 13845* BFD_RELOC_MEP_PCREL8A2: howto manager. (line 1918) 13846* BFD_RELOC_MEP_TPREL: howto manager. (line 1927) 13847* BFD_RELOC_MEP_TPREL7: howto manager. (line 1928) 13848* BFD_RELOC_MEP_TPREL7A2: howto manager. (line 1929) 13849* BFD_RELOC_MEP_TPREL7A4: howto manager. (line 1930) 13850* BFD_RELOC_MEP_UIMM24: howto manager. (line 1931) 13851* BFD_RELOC_METAG_COPY: howto manager. (line 1956) 13852* BFD_RELOC_METAG_GETSET_GOT: howto manager. (line 1948) 13853* BFD_RELOC_METAG_GETSET_GOTOFF: howto manager. (line 1947) 13854* BFD_RELOC_METAG_GETSETOFF: howto manager. (line 1940) 13855* BFD_RELOC_METAG_GLOB_DAT: howto manager. (line 1959) 13856* BFD_RELOC_METAG_GOTOFF: howto manager. (line 1954) 13857* BFD_RELOC_METAG_HI16_GOTOFF: howto manager. (line 1945) 13858* BFD_RELOC_METAG_HI16_GOTPC: howto manager. (line 1949) 13859* BFD_RELOC_METAG_HI16_PLT: howto manager. (line 1951) 13860* BFD_RELOC_METAG_HIADDR16: howto manager. (line 1937) 13861* BFD_RELOC_METAG_HIOG: howto manager. (line 1941) 13862* BFD_RELOC_METAG_JMP_SLOT: howto manager. (line 1957) 13863* BFD_RELOC_METAG_LO16_GOTOFF: howto manager. (line 1946) 13864* BFD_RELOC_METAG_LO16_GOTPC: howto manager. (line 1950) 13865* BFD_RELOC_METAG_LO16_PLT: howto manager. (line 1952) 13866* BFD_RELOC_METAG_LOADDR16: howto manager. (line 1938) 13867* BFD_RELOC_METAG_LOOG: howto manager. (line 1942) 13868* BFD_RELOC_METAG_PLT: howto manager. (line 1955) 13869* BFD_RELOC_METAG_REL16: howto manager. (line 1944) 13870* BFD_RELOC_METAG_REL8: howto manager. (line 1943) 13871* BFD_RELOC_METAG_RELATIVE: howto manager. (line 1958) 13872* BFD_RELOC_METAG_RELBRANCH: howto manager. (line 1939) 13873* BFD_RELOC_METAG_RELBRANCH_PLT: howto manager. (line 1953) 13874* BFD_RELOC_METAG_TLS_DTPMOD: howto manager. (line 1970) 13875* BFD_RELOC_METAG_TLS_DTPOFF: howto manager. (line 1971) 13876* BFD_RELOC_METAG_TLS_GD: howto manager. (line 1960) 13877* BFD_RELOC_METAG_TLS_IE: howto manager. (line 1965) 13878* BFD_RELOC_METAG_TLS_IENONPIC: howto manager. (line 1966) 13879* BFD_RELOC_METAG_TLS_IENONPIC_HI16: howto manager. (line 1967) 13880* BFD_RELOC_METAG_TLS_IENONPIC_LO16: howto manager. (line 1968) 13881* BFD_RELOC_METAG_TLS_LDM: howto manager. (line 1961) 13882* BFD_RELOC_METAG_TLS_LDO: howto manager. (line 1964) 13883* BFD_RELOC_METAG_TLS_LDO_HI16: howto manager. (line 1962) 13884* BFD_RELOC_METAG_TLS_LDO_LO16: howto manager. (line 1963) 13885* BFD_RELOC_METAG_TLS_LE: howto manager. (line 1972) 13886* BFD_RELOC_METAG_TLS_LE_HI16: howto manager. (line 1973) 13887* BFD_RELOC_METAG_TLS_LE_LO16: howto manager. (line 1974) 13888* BFD_RELOC_METAG_TLS_TPOFF: howto manager. (line 1969) 13889* BFD_RELOC_MICROBLAZE_32_GOTOFF: howto manager. (line 3235) 13890* BFD_RELOC_MICROBLAZE_32_LO: howto manager. (line 3191) 13891* BFD_RELOC_MICROBLAZE_32_LO_PCREL: howto manager. (line 3195) 13892* BFD_RELOC_MICROBLAZE_32_ROSDA: howto manager. (line 3199) 13893* BFD_RELOC_MICROBLAZE_32_RWSDA: howto manager. (line 3203) 13894* BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM: howto manager. (line 3207) 13895* BFD_RELOC_MICROBLAZE_32_TLSDTPMOD: howto manager. (line 3256) 13896* BFD_RELOC_MICROBLAZE_32_TLSDTPREL: howto manager. (line 3259) 13897* BFD_RELOC_MICROBLAZE_64_GOT: howto manager. (line 3221) 13898* BFD_RELOC_MICROBLAZE_64_GOTOFF: howto manager. (line 3230) 13899* BFD_RELOC_MICROBLAZE_64_GOTPC: howto manager. (line 3216) 13900* BFD_RELOC_MICROBLAZE_64_NONE: howto manager. (line 3211) 13901* BFD_RELOC_MICROBLAZE_64_PLT: howto manager. (line 3225) 13902* BFD_RELOC_MICROBLAZE_64_TEXTPCREL: howto manager. (line 3274) 13903* BFD_RELOC_MICROBLAZE_64_TEXTREL: howto manager. (line 3279) 13904* BFD_RELOC_MICROBLAZE_64_TLS: howto manager. (line 3243) 13905* BFD_RELOC_MICROBLAZE_64_TLSDTPREL: howto manager. (line 3262) 13906* BFD_RELOC_MICROBLAZE_64_TLSGD: howto manager. (line 3246) 13907* BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL: howto manager. (line 3266) 13908* BFD_RELOC_MICROBLAZE_64_TLSLD: howto manager. (line 3251) 13909* BFD_RELOC_MICROBLAZE_64_TLSTPREL: howto manager. (line 3270) 13910* BFD_RELOC_MICROBLAZE_COPY: howto manager. (line 3239) 13911* BFD_RELOC_MICROMIPS_10_PCREL_S1: howto manager. (line 406) 13912* BFD_RELOC_MICROMIPS_16_PCREL_S1: howto manager. (line 407) 13913* BFD_RELOC_MICROMIPS_7_PCREL_S1: howto manager. (line 405) 13914* BFD_RELOC_MICROMIPS_CALL16: howto manager. (line 428) 13915* BFD_RELOC_MICROMIPS_CALL_HI16: howto manager. (line 434) 13916* BFD_RELOC_MICROMIPS_CALL_LO16: howto manager. (line 436) 13917* BFD_RELOC_MICROMIPS_GOT16: howto manager. (line 426) 13918* BFD_RELOC_MICROMIPS_GOT_DISP: howto manager. (line 444) 13919* BFD_RELOC_MICROMIPS_GOT_HI16: howto manager. (line 430) 13920* BFD_RELOC_MICROMIPS_GOT_LO16: howto manager. (line 432) 13921* BFD_RELOC_MICROMIPS_GOT_OFST: howto manager. (line 442) 13922* BFD_RELOC_MICROMIPS_GOT_PAGE: howto manager. (line 440) 13923* BFD_RELOC_MICROMIPS_GPREL16: howto manager. (line 419) 13924* BFD_RELOC_MICROMIPS_HI16: howto manager. (line 420) 13925* BFD_RELOC_MICROMIPS_HI16_S: howto manager. (line 421) 13926* BFD_RELOC_MICROMIPS_HIGHER: howto manager. (line 453) 13927* BFD_RELOC_MICROMIPS_HIGHEST: howto manager. (line 451) 13928* BFD_RELOC_MICROMIPS_JALR: howto manager. (line 459) 13929* BFD_RELOC_MICROMIPS_JMP: howto manager. (line 345) 13930* BFD_RELOC_MICROMIPS_LITERAL: howto manager. (line 402) 13931* BFD_RELOC_MICROMIPS_LO16: howto manager. (line 422) 13932* BFD_RELOC_MICROMIPS_SCN_DISP: howto manager. (line 455) 13933* BFD_RELOC_MICROMIPS_SUB: howto manager. (line 438) 13934* BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16: howto manager. (line 469) 13935* BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16: howto manager. (line 471) 13936* BFD_RELOC_MICROMIPS_TLS_GD: howto manager. (line 465) 13937* BFD_RELOC_MICROMIPS_TLS_GOTTPREL: howto manager. (line 473) 13938* BFD_RELOC_MICROMIPS_TLS_LDM: howto manager. (line 467) 13939* BFD_RELOC_MICROMIPS_TLS_TPREL_HI16: howto manager. (line 477) 13940* BFD_RELOC_MICROMIPS_TLS_TPREL_LO16: howto manager. (line 479) 13941* BFD_RELOC_MIPS16_16_PCREL_S1: howto manager. (line 410) 13942* BFD_RELOC_MIPS16_CALL16: howto manager. (line 376) 13943* BFD_RELOC_MIPS16_GOT16: howto manager. (line 375) 13944* BFD_RELOC_MIPS16_GPREL: howto manager. (line 351) 13945* BFD_RELOC_MIPS16_HI16: howto manager. (line 380) 13946* BFD_RELOC_MIPS16_HI16_S: howto manager. (line 383) 13947* BFD_RELOC_MIPS16_JMP: howto manager. (line 348) 13948* BFD_RELOC_MIPS16_LO16: howto manager. (line 389) 13949* BFD_RELOC_MIPS16_TLS_DTPREL_HI16: howto manager. (line 394) 13950* BFD_RELOC_MIPS16_TLS_DTPREL_LO16: howto manager. (line 395) 13951* BFD_RELOC_MIPS16_TLS_GD: howto manager. (line 392) 13952* BFD_RELOC_MIPS16_TLS_GOTTPREL: howto manager. (line 396) 13953* BFD_RELOC_MIPS16_TLS_LDM: howto manager. (line 393) 13954* BFD_RELOC_MIPS16_TLS_TPREL_HI16: howto manager. (line 397) 13955* BFD_RELOC_MIPS16_TLS_TPREL_LO16: howto manager. (line 398) 13956* BFD_RELOC_MIPS_16: howto manager. (line 456) 13957* BFD_RELOC_MIPS_18_PCREL_S3: howto manager. (line 415) 13958* BFD_RELOC_MIPS_19_PCREL_S2: howto manager. (line 416) 13959* BFD_RELOC_MIPS_21_PCREL_S2: howto manager. (line 413) 13960* BFD_RELOC_MIPS_26_PCREL_S2: howto manager. (line 414) 13961* BFD_RELOC_MIPS_CALL16: howto manager. (line 427) 13962* BFD_RELOC_MIPS_CALL_HI16: howto manager. (line 433) 13963* BFD_RELOC_MIPS_CALL_LO16: howto manager. (line 435) 13964* BFD_RELOC_MIPS_COPY: howto manager. (line 483) 13965* BFD_RELOC_MIPS_DELETE: howto manager. (line 449) 13966* BFD_RELOC_MIPS_EH: howto manager. (line 480) 13967* BFD_RELOC_MIPS_GOT16: howto manager. (line 425) 13968* BFD_RELOC_MIPS_GOT_DISP: howto manager. (line 443) 13969* BFD_RELOC_MIPS_GOT_HI16: howto manager. (line 429) 13970* BFD_RELOC_MIPS_GOT_LO16: howto manager. (line 431) 13971* BFD_RELOC_MIPS_GOT_OFST: howto manager. (line 441) 13972* BFD_RELOC_MIPS_GOT_PAGE: howto manager. (line 439) 13973* BFD_RELOC_MIPS_HIGHER: howto manager. (line 452) 13974* BFD_RELOC_MIPS_HIGHEST: howto manager. (line 450) 13975* BFD_RELOC_MIPS_INSERT_A: howto manager. (line 447) 13976* BFD_RELOC_MIPS_INSERT_B: howto manager. (line 448) 13977* BFD_RELOC_MIPS_JALR: howto manager. (line 458) 13978* BFD_RELOC_MIPS_JMP: howto manager. (line 344) 13979* BFD_RELOC_MIPS_JUMP_SLOT: howto manager. (line 484) 13980* BFD_RELOC_MIPS_LITERAL: howto manager. (line 401) 13981* BFD_RELOC_MIPS_RELGOT: howto manager. (line 457) 13982* BFD_RELOC_MIPS_SCN_DISP: howto manager. (line 454) 13983* BFD_RELOC_MIPS_SHIFT5: howto manager. (line 445) 13984* BFD_RELOC_MIPS_SHIFT6: howto manager. (line 446) 13985* BFD_RELOC_MIPS_SUB: howto manager. (line 437) 13986* BFD_RELOC_MIPS_TLS_DTPMOD32: howto manager. (line 460) 13987* BFD_RELOC_MIPS_TLS_DTPMOD64: howto manager. (line 462) 13988* BFD_RELOC_MIPS_TLS_DTPREL32: howto manager. (line 461) 13989* BFD_RELOC_MIPS_TLS_DTPREL64: howto manager. (line 463) 13990* BFD_RELOC_MIPS_TLS_DTPREL_HI16: howto manager. (line 468) 13991* BFD_RELOC_MIPS_TLS_DTPREL_LO16: howto manager. (line 470) 13992* BFD_RELOC_MIPS_TLS_GD: howto manager. (line 464) 13993* BFD_RELOC_MIPS_TLS_GOTTPREL: howto manager. (line 472) 13994* BFD_RELOC_MIPS_TLS_LDM: howto manager. (line 466) 13995* BFD_RELOC_MIPS_TLS_TPREL32: howto manager. (line 474) 13996* BFD_RELOC_MIPS_TLS_TPREL64: howto manager. (line 475) 13997* BFD_RELOC_MIPS_TLS_TPREL_HI16: howto manager. (line 476) 13998* BFD_RELOC_MIPS_TLS_TPREL_LO16: howto manager. (line 478) 13999* BFD_RELOC_MMIX_ADDR19: howto manager. (line 2003) 14000* BFD_RELOC_MMIX_ADDR27: howto manager. (line 2007) 14001* BFD_RELOC_MMIX_BASE_PLUS_OFFSET: howto manager. (line 2019) 14002* BFD_RELOC_MMIX_CBRANCH: howto manager. (line 1983) 14003* BFD_RELOC_MMIX_CBRANCH_1: howto manager. (line 1985) 14004* BFD_RELOC_MMIX_CBRANCH_2: howto manager. (line 1986) 14005* BFD_RELOC_MMIX_CBRANCH_3: howto manager. (line 1987) 14006* BFD_RELOC_MMIX_CBRANCH_J: howto manager. (line 1984) 14007* BFD_RELOC_MMIX_GETA: howto manager. (line 1977) 14008* BFD_RELOC_MMIX_GETA_1: howto manager. (line 1978) 14009* BFD_RELOC_MMIX_GETA_2: howto manager. (line 1979) 14010* BFD_RELOC_MMIX_GETA_3: howto manager. (line 1980) 14011* BFD_RELOC_MMIX_JMP: howto manager. (line 1997) 14012* BFD_RELOC_MMIX_JMP_1: howto manager. (line 1998) 14013* BFD_RELOC_MMIX_JMP_2: howto manager. (line 1999) 14014* BFD_RELOC_MMIX_JMP_3: howto manager. (line 2000) 14015* BFD_RELOC_MMIX_LOCAL: howto manager. (line 2023) 14016* BFD_RELOC_MMIX_PUSHJ: howto manager. (line 1990) 14017* BFD_RELOC_MMIX_PUSHJ_1: howto manager. (line 1991) 14018* BFD_RELOC_MMIX_PUSHJ_2: howto manager. (line 1992) 14019* BFD_RELOC_MMIX_PUSHJ_3: howto manager. (line 1993) 14020* BFD_RELOC_MMIX_PUSHJ_STUBBABLE: howto manager. (line 1994) 14021* BFD_RELOC_MMIX_REG: howto manager. (line 2015) 14022* BFD_RELOC_MMIX_REG_OR_BYTE: howto manager. (line 2011) 14023* BFD_RELOC_MN10300_16_PCREL: howto manager. (line 593) 14024* BFD_RELOC_MN10300_32_PCREL: howto manager. (line 589) 14025* BFD_RELOC_MN10300_ALIGN: howto manager. (line 574) 14026* BFD_RELOC_MN10300_COPY: howto manager. (line 557) 14027* BFD_RELOC_MN10300_GLOB_DAT: howto manager. (line 560) 14028* BFD_RELOC_MN10300_GOT16: howto manager. (line 553) 14029* BFD_RELOC_MN10300_GOT24: howto manager. (line 549) 14030* BFD_RELOC_MN10300_GOT32: howto manager. (line 545) 14031* BFD_RELOC_MN10300_GOTOFF24: howto manager. (line 542) 14032* BFD_RELOC_MN10300_JMP_SLOT: howto manager. (line 563) 14033* BFD_RELOC_MN10300_RELATIVE: howto manager. (line 566) 14034* BFD_RELOC_MN10300_SYM_DIFF: howto manager. (line 569) 14035* BFD_RELOC_MN10300_TLS_DTPMOD: howto manager. (line 584) 14036* BFD_RELOC_MN10300_TLS_DTPOFF: howto manager. (line 585) 14037* BFD_RELOC_MN10300_TLS_GD: howto manager. (line 578) 14038* BFD_RELOC_MN10300_TLS_GOTIE: howto manager. (line 581) 14039* BFD_RELOC_MN10300_TLS_IE: howto manager. (line 582) 14040* BFD_RELOC_MN10300_TLS_LD: howto manager. (line 579) 14041* BFD_RELOC_MN10300_TLS_LDO: howto manager. (line 580) 14042* BFD_RELOC_MN10300_TLS_LE: howto manager. (line 583) 14043* BFD_RELOC_MN10300_TLS_TPOFF: howto manager. (line 586) 14044* BFD_RELOC_MOXIE_10_PCREL: howto manager. (line 487) 14045* BFD_RELOC_MSP430_10_PCREL: howto manager. (line 2869) 14046* BFD_RELOC_MSP430_16: howto manager. (line 2871) 14047* BFD_RELOC_MSP430_16_BYTE: howto manager. (line 2873) 14048* BFD_RELOC_MSP430_16_PCREL: howto manager. (line 2870) 14049* BFD_RELOC_MSP430_16_PCREL_BYTE: howto manager. (line 2872) 14050* BFD_RELOC_MSP430_2X_PCREL: howto manager. (line 2874) 14051* BFD_RELOC_MSP430_ABS8: howto manager. (line 2876) 14052* BFD_RELOC_MSP430_ABS_HI16: howto manager. (line 2888) 14053* BFD_RELOC_MSP430_PREL31: howto manager. (line 2889) 14054* BFD_RELOC_MSP430_RL_PCREL: howto manager. (line 2875) 14055* BFD_RELOC_MSP430_SET_ULEB128: howto manager. (line 2891) 14056* BFD_RELOC_MSP430_SUB_ULEB128: howto manager. (line 2892) 14057* BFD_RELOC_MSP430_SYM_DIFF: howto manager. (line 2890) 14058* BFD_RELOC_MSP430X_ABS16: howto manager. (line 2887) 14059* BFD_RELOC_MSP430X_ABS20_ADR_DST: howto manager. (line 2884) 14060* BFD_RELOC_MSP430X_ABS20_ADR_SRC: howto manager. (line 2883) 14061* BFD_RELOC_MSP430X_ABS20_EXT_DST: howto manager. (line 2881) 14062* BFD_RELOC_MSP430X_ABS20_EXT_ODST: howto manager. (line 2882) 14063* BFD_RELOC_MSP430X_ABS20_EXT_SRC: howto manager. (line 2880) 14064* BFD_RELOC_MSP430X_PCR16: howto manager. (line 2885) 14065* BFD_RELOC_MSP430X_PCR20_CALL: howto manager. (line 2886) 14066* BFD_RELOC_MSP430X_PCR20_EXT_DST: howto manager. (line 2878) 14067* BFD_RELOC_MSP430X_PCR20_EXT_ODST: howto manager. (line 2879) 14068* BFD_RELOC_MSP430X_PCR20_EXT_SRC: howto manager. (line 2877) 14069* BFD_RELOC_MT_GNU_VTENTRY: howto manager. (line 2863) 14070* BFD_RELOC_MT_GNU_VTINHERIT: howto manager. (line 2860) 14071* BFD_RELOC_MT_HI16: howto manager. (line 2854) 14072* BFD_RELOC_MT_LO16: howto manager. (line 2857) 14073* BFD_RELOC_MT_PC16: howto manager. (line 2851) 14074* BFD_RELOC_MT_PCINSN8: howto manager. (line 2866) 14075* BFD_RELOC_NDS32_10_UPCREL: howto manager. (line 1614) 14076* BFD_RELOC_NDS32_10IFCU_PCREL: howto manager. (line 1647) 14077* BFD_RELOC_NDS32_15_FIXED: howto manager. (line 1568) 14078* BFD_RELOC_NDS32_15_PCREL: howto manager. (line 1476) 14079* BFD_RELOC_NDS32_17_FIXED: howto manager. (line 1569) 14080* BFD_RELOC_NDS32_17_PCREL: howto manager. (line 1479) 14081* BFD_RELOC_NDS32_17IFC_PCREL: howto manager. (line 1646) 14082* BFD_RELOC_NDS32_20: howto manager. (line 1465) 14083* BFD_RELOC_NDS32_25_ABS: howto manager. (line 1641) 14084* BFD_RELOC_NDS32_25_FIXED: howto manager. (line 1570) 14085* BFD_RELOC_NDS32_25_PCREL: howto manager. (line 1482) 14086* BFD_RELOC_NDS32_25_PLTREL: howto manager. (line 1543) 14087* BFD_RELOC_NDS32_5: howto manager. (line 1611) 14088* BFD_RELOC_NDS32_9_FIXED: howto manager. (line 1567) 14089* BFD_RELOC_NDS32_9_PCREL: howto manager. (line 1468) 14090* BFD_RELOC_NDS32_9_PLTREL: howto manager. (line 1542) 14091* BFD_RELOC_NDS32_COPY: howto manager. (line 1544) 14092* BFD_RELOC_NDS32_DATA: howto manager. (line 1644) 14093* BFD_RELOC_NDS32_DIFF16: howto manager. (line 1635) 14094* BFD_RELOC_NDS32_DIFF32: howto manager. (line 1636) 14095* BFD_RELOC_NDS32_DIFF8: howto manager. (line 1634) 14096* BFD_RELOC_NDS32_DIFF_ULEB128: howto manager. (line 1637) 14097* BFD_RELOC_NDS32_DWARF2_LEB: howto manager. (line 1594) 14098* BFD_RELOC_NDS32_DWARF2_OP1: howto manager. (line 1592) 14099* BFD_RELOC_NDS32_DWARF2_OP2: howto manager. (line 1593) 14100* BFD_RELOC_NDS32_EMPTY: howto manager. (line 1638) 14101* BFD_RELOC_NDS32_GLOB_DAT: howto manager. (line 1545) 14102* BFD_RELOC_NDS32_GOT15S2: howto manager. (line 1607) 14103* BFD_RELOC_NDS32_GOT17S2: howto manager. (line 1608) 14104* BFD_RELOC_NDS32_GOT20: howto manager. (line 1541) 14105* BFD_RELOC_NDS32_GOT_HI20: howto manager. (line 1552) 14106* BFD_RELOC_NDS32_GOT_LO12: howto manager. (line 1553) 14107* BFD_RELOC_NDS32_GOT_LO15: howto manager. (line 1603) 14108* BFD_RELOC_NDS32_GOT_LO19: howto manager. (line 1604) 14109* BFD_RELOC_NDS32_GOT_SUFF: howto manager. (line 1622) 14110* BFD_RELOC_NDS32_GOTOFF: howto manager. (line 1548) 14111* BFD_RELOC_NDS32_GOTOFF_HI20: howto manager. (line 1549) 14112* BFD_RELOC_NDS32_GOTOFF_LO12: howto manager. (line 1550) 14113* BFD_RELOC_NDS32_GOTOFF_LO15: howto manager. (line 1605) 14114* BFD_RELOC_NDS32_GOTOFF_LO19: howto manager. (line 1606) 14115* BFD_RELOC_NDS32_GOTOFF_SUFF: howto manager. (line 1623) 14116* BFD_RELOC_NDS32_GOTPC20: howto manager. (line 1551) 14117* BFD_RELOC_NDS32_GOTPC_HI20: howto manager. (line 1554) 14118* BFD_RELOC_NDS32_GOTPC_LO12: howto manager. (line 1555) 14119* BFD_RELOC_NDS32_GOTTPOFF: howto manager. (line 1651) 14120* BFD_RELOC_NDS32_GROUP: howto manager. (line 1677) 14121* BFD_RELOC_NDS32_HI20: howto manager. (line 1485) 14122* BFD_RELOC_NDS32_INSN16: howto manager. (line 1558) 14123* BFD_RELOC_NDS32_JMP_SLOT: howto manager. (line 1546) 14124* BFD_RELOC_NDS32_LABEL: howto manager. (line 1559) 14125* BFD_RELOC_NDS32_LO12S0: howto manager. (line 1501) 14126* BFD_RELOC_NDS32_LO12S0_ORI: howto manager. (line 1505) 14127* BFD_RELOC_NDS32_LO12S1: howto manager. (line 1497) 14128* BFD_RELOC_NDS32_LO12S2: howto manager. (line 1493) 14129* BFD_RELOC_NDS32_LO12S2_DP: howto manager. (line 1588) 14130* BFD_RELOC_NDS32_LO12S2_SP: howto manager. (line 1589) 14131* BFD_RELOC_NDS32_LO12S3: howto manager. (line 1489) 14132* BFD_RELOC_NDS32_LOADSTORE: howto manager. (line 1566) 14133* BFD_RELOC_NDS32_LONGCALL1: howto manager. (line 1560) 14134* BFD_RELOC_NDS32_LONGCALL2: howto manager. (line 1561) 14135* BFD_RELOC_NDS32_LONGCALL3: howto manager. (line 1562) 14136* BFD_RELOC_NDS32_LONGCALL4: howto manager. (line 1571) 14137* BFD_RELOC_NDS32_LONGCALL5: howto manager. (line 1572) 14138* BFD_RELOC_NDS32_LONGCALL6: howto manager. (line 1573) 14139* BFD_RELOC_NDS32_LONGJUMP1: howto manager. (line 1563) 14140* BFD_RELOC_NDS32_LONGJUMP2: howto manager. (line 1564) 14141* BFD_RELOC_NDS32_LONGJUMP3: howto manager. (line 1565) 14142* BFD_RELOC_NDS32_LONGJUMP4: howto manager. (line 1574) 14143* BFD_RELOC_NDS32_LONGJUMP5: howto manager. (line 1575) 14144* BFD_RELOC_NDS32_LONGJUMP6: howto manager. (line 1576) 14145* BFD_RELOC_NDS32_LONGJUMP7: howto manager. (line 1577) 14146* BFD_RELOC_NDS32_LSI: howto manager. (line 1680) 14147* BFD_RELOC_NDS32_MINUEND: howto manager. (line 1632) 14148* BFD_RELOC_NDS32_MULCALL_SUFF: howto manager. (line 1625) 14149* BFD_RELOC_NDS32_PLT_GOT_SUFF: howto manager. (line 1624) 14150* BFD_RELOC_NDS32_PLT_GOTREL_HI20: howto manager. (line 1582) 14151* BFD_RELOC_NDS32_PLT_GOTREL_LO12: howto manager. (line 1583) 14152* BFD_RELOC_NDS32_PLT_GOTREL_LO15: howto manager. (line 1601) 14153* BFD_RELOC_NDS32_PLT_GOTREL_LO19: howto manager. (line 1602) 14154* BFD_RELOC_NDS32_PLT_GOTREL_LO20: howto manager. (line 1600) 14155* BFD_RELOC_NDS32_PLTBLOCK: howto manager. (line 1629) 14156* BFD_RELOC_NDS32_PLTREL_HI20: howto manager. (line 1580) 14157* BFD_RELOC_NDS32_PLTREL_LO12: howto manager. (line 1581) 14158* BFD_RELOC_NDS32_PTR: howto manager. (line 1626) 14159* BFD_RELOC_NDS32_PTR_COUNT: howto manager. (line 1627) 14160* BFD_RELOC_NDS32_PTR_RESOLVED: howto manager. (line 1628) 14161* BFD_RELOC_NDS32_RELATIVE: howto manager. (line 1547) 14162* BFD_RELOC_NDS32_RELAX_ENTRY: howto manager. (line 1621) 14163* BFD_RELOC_NDS32_RELAX_REGION_BEGIN: howto manager. (line 1630) 14164* BFD_RELOC_NDS32_RELAX_REGION_END: howto manager. (line 1631) 14165* BFD_RELOC_NDS32_REMOVE: howto manager. (line 1676) 14166* BFD_RELOC_NDS32_SDA12S2_DP: howto manager. (line 1586) 14167* BFD_RELOC_NDS32_SDA12S2_SP: howto manager. (line 1587) 14168* BFD_RELOC_NDS32_SDA15S0: howto manager. (line 1521) 14169* BFD_RELOC_NDS32_SDA15S1: howto manager. (line 1517) 14170* BFD_RELOC_NDS32_SDA15S2: howto manager. (line 1513) 14171* BFD_RELOC_NDS32_SDA15S3: howto manager. (line 1509) 14172* BFD_RELOC_NDS32_SDA16S3: howto manager. (line 1525) 14173* BFD_RELOC_NDS32_SDA17S2: howto manager. (line 1529) 14174* BFD_RELOC_NDS32_SDA18S1: howto manager. (line 1533) 14175* BFD_RELOC_NDS32_SDA19S0: howto manager. (line 1537) 14176* BFD_RELOC_NDS32_SDA_FP7U2_RELA: howto manager. (line 1618) 14177* BFD_RELOC_NDS32_SUBTRAHEND: howto manager. (line 1633) 14178* BFD_RELOC_NDS32_TLS_DESC: howto manager. (line 1667) 14179* BFD_RELOC_NDS32_TLS_DESC_20: howto manager. (line 1670) 14180* BFD_RELOC_NDS32_TLS_DESC_ADD: howto manager. (line 1672) 14181* BFD_RELOC_NDS32_TLS_DESC_CALL: howto manager. (line 1674) 14182* BFD_RELOC_NDS32_TLS_DESC_FUNC: howto manager. (line 1673) 14183* BFD_RELOC_NDS32_TLS_DESC_HI20: howto manager. (line 1668) 14184* BFD_RELOC_NDS32_TLS_DESC_LO12: howto manager. (line 1669) 14185* BFD_RELOC_NDS32_TLS_DESC_MEM: howto manager. (line 1675) 14186* BFD_RELOC_NDS32_TLS_DESC_SDA17S2: howto manager. (line 1671) 14187* BFD_RELOC_NDS32_TLS_IE_HI20: howto manager. (line 1660) 14188* BFD_RELOC_NDS32_TLS_IE_LO12: howto manager. (line 1661) 14189* BFD_RELOC_NDS32_TLS_IE_LO12S2: howto manager. (line 1662) 14190* BFD_RELOC_NDS32_TLS_IEGP_HI20: howto manager. (line 1663) 14191* BFD_RELOC_NDS32_TLS_IEGP_LO12: howto manager. (line 1664) 14192* BFD_RELOC_NDS32_TLS_IEGP_LO12S2: howto manager. (line 1665) 14193* BFD_RELOC_NDS32_TLS_IEGP_LW: howto manager. (line 1666) 14194* BFD_RELOC_NDS32_TLS_LE_15S0: howto manager. (line 1655) 14195* BFD_RELOC_NDS32_TLS_LE_15S1: howto manager. (line 1656) 14196* BFD_RELOC_NDS32_TLS_LE_15S2: howto manager. (line 1657) 14197* BFD_RELOC_NDS32_TLS_LE_20: howto manager. (line 1654) 14198* BFD_RELOC_NDS32_TLS_LE_ADD: howto manager. (line 1658) 14199* BFD_RELOC_NDS32_TLS_LE_HI20: howto manager. (line 1652) 14200* BFD_RELOC_NDS32_TLS_LE_LO12: howto manager. (line 1653) 14201* BFD_RELOC_NDS32_TLS_LE_LS: howto manager. (line 1659) 14202* BFD_RELOC_NDS32_TPOFF: howto manager. (line 1650) 14203* BFD_RELOC_NDS32_TRAN: howto manager. (line 1645) 14204* BFD_RELOC_NDS32_UPDATE_TA: howto manager. (line 1597) 14205* BFD_RELOC_NDS32_WORD_9_PCREL: howto manager. (line 1472) 14206* BFD_RELOC_NIOS2_ALIGN: howto manager. (line 2909) 14207* BFD_RELOC_NIOS2_CACHE_OPX: howto manager. (line 2899) 14208* BFD_RELOC_NIOS2_CALL16: howto manager. (line 2911) 14209* BFD_RELOC_NIOS2_CALL26: howto manager. (line 2897) 14210* BFD_RELOC_NIOS2_CALL26_NOAT: howto manager. (line 2929) 14211* BFD_RELOC_NIOS2_CALL_HA: howto manager. (line 2933) 14212* BFD_RELOC_NIOS2_CALL_LO: howto manager. (line 2932) 14213* BFD_RELOC_NIOS2_CALLR: howto manager. (line 2908) 14214* BFD_RELOC_NIOS2_CJMP: howto manager. (line 2907) 14215* BFD_RELOC_NIOS2_COPY: howto manager. (line 2924) 14216* BFD_RELOC_NIOS2_GLOB_DAT: howto manager. (line 2925) 14217* BFD_RELOC_NIOS2_GOT16: howto manager. (line 2910) 14218* BFD_RELOC_NIOS2_GOT_HA: howto manager. (line 2931) 14219* BFD_RELOC_NIOS2_GOT_LO: howto manager. (line 2930) 14220* BFD_RELOC_NIOS2_GOTOFF: howto manager. (line 2928) 14221* BFD_RELOC_NIOS2_GOTOFF_HA: howto manager. (line 2913) 14222* BFD_RELOC_NIOS2_GOTOFF_LO: howto manager. (line 2912) 14223* BFD_RELOC_NIOS2_GPREL: howto manager. (line 2905) 14224* BFD_RELOC_NIOS2_HI16: howto manager. (line 2902) 14225* BFD_RELOC_NIOS2_HIADJ16: howto manager. (line 2904) 14226* BFD_RELOC_NIOS2_IMM5: howto manager. (line 2898) 14227* BFD_RELOC_NIOS2_IMM6: howto manager. (line 2900) 14228* BFD_RELOC_NIOS2_IMM8: howto manager. (line 2901) 14229* BFD_RELOC_NIOS2_JUMP_SLOT: howto manager. (line 2926) 14230* BFD_RELOC_NIOS2_LO16: howto manager. (line 2903) 14231* BFD_RELOC_NIOS2_PCREL_HA: howto manager. (line 2915) 14232* BFD_RELOC_NIOS2_PCREL_LO: howto manager. (line 2914) 14233* BFD_RELOC_NIOS2_R2_F1I5_2: howto manager. (line 2943) 14234* BFD_RELOC_NIOS2_R2_I10_1_PCREL: howto manager. (line 2935) 14235* BFD_RELOC_NIOS2_R2_L5I4X1: howto manager. (line 2944) 14236* BFD_RELOC_NIOS2_R2_S12: howto manager. (line 2934) 14237* BFD_RELOC_NIOS2_R2_T1I7_1_PCREL: howto manager. (line 2936) 14238* BFD_RELOC_NIOS2_R2_T1I7_2: howto manager. (line 2937) 14239* BFD_RELOC_NIOS2_R2_T1X1I6: howto manager. (line 2945) 14240* BFD_RELOC_NIOS2_R2_T1X1I6_2: howto manager. (line 2946) 14241* BFD_RELOC_NIOS2_R2_T2I4: howto manager. (line 2938) 14242* BFD_RELOC_NIOS2_R2_T2I4_1: howto manager. (line 2939) 14243* BFD_RELOC_NIOS2_R2_T2I4_2: howto manager. (line 2940) 14244* BFD_RELOC_NIOS2_R2_X1I7_2: howto manager. (line 2941) 14245* BFD_RELOC_NIOS2_R2_X2L5: howto manager. (line 2942) 14246* BFD_RELOC_NIOS2_RELATIVE: howto manager. (line 2927) 14247* BFD_RELOC_NIOS2_S16: howto manager. (line 2895) 14248* BFD_RELOC_NIOS2_TLS_DTPMOD: howto manager. (line 2921) 14249* BFD_RELOC_NIOS2_TLS_DTPREL: howto manager. (line 2922) 14250* BFD_RELOC_NIOS2_TLS_GD16: howto manager. (line 2916) 14251* BFD_RELOC_NIOS2_TLS_IE16: howto manager. (line 2919) 14252* BFD_RELOC_NIOS2_TLS_LDM16: howto manager. (line 2917) 14253* BFD_RELOC_NIOS2_TLS_LDO16: howto manager. (line 2918) 14254* BFD_RELOC_NIOS2_TLS_LE16: howto manager. (line 2920) 14255* BFD_RELOC_NIOS2_TLS_TPREL: howto manager. (line 2923) 14256* BFD_RELOC_NIOS2_U16: howto manager. (line 2896) 14257* BFD_RELOC_NIOS2_UJMP: howto manager. (line 2906) 14258* BFD_RELOC_NONE: howto manager. (line 137) 14259* BFD_RELOC_NS32K_DISP_16: howto manager. (line 664) 14260* BFD_RELOC_NS32K_DISP_16_PCREL: howto manager. (line 667) 14261* BFD_RELOC_NS32K_DISP_32: howto manager. (line 665) 14262* BFD_RELOC_NS32K_DISP_32_PCREL: howto manager. (line 668) 14263* BFD_RELOC_NS32K_DISP_8: howto manager. (line 663) 14264* BFD_RELOC_NS32K_DISP_8_PCREL: howto manager. (line 666) 14265* BFD_RELOC_NS32K_IMM_16: howto manager. (line 658) 14266* BFD_RELOC_NS32K_IMM_16_PCREL: howto manager. (line 661) 14267* BFD_RELOC_NS32K_IMM_32: howto manager. (line 659) 14268* BFD_RELOC_NS32K_IMM_32_PCREL: howto manager. (line 662) 14269* BFD_RELOC_NS32K_IMM_8: howto manager. (line 657) 14270* BFD_RELOC_NS32K_IMM_8_PCREL: howto manager. (line 660) 14271* bfd_reloc_offset_in_range: typedef arelent. (line 337) 14272* BFD_RELOC_OR1K_COPY: howto manager. (line 2801) 14273* BFD_RELOC_OR1K_GLOB_DAT: howto manager. (line 2802) 14274* BFD_RELOC_OR1K_GOT16: howto manager. (line 2795) 14275* BFD_RELOC_OR1K_GOT_AHI16: howto manager. (line 2794) 14276* BFD_RELOC_OR1K_GOT_LO13: howto manager. (line 2797) 14277* BFD_RELOC_OR1K_GOT_PG21: howto manager. (line 2796) 14278* BFD_RELOC_OR1K_GOTOFF_SLO16: howto manager. (line 2800) 14279* BFD_RELOC_OR1K_GOTPC_HI16: howto manager. (line 2792) 14280* BFD_RELOC_OR1K_GOTPC_LO16: howto manager. (line 2793) 14281* BFD_RELOC_OR1K_JMP_SLOT: howto manager. (line 2803) 14282* BFD_RELOC_OR1K_LO13: howto manager. (line 2790) 14283* BFD_RELOC_OR1K_PCREL_PG21: howto manager. (line 2789) 14284* BFD_RELOC_OR1K_PLT26: howto manager. (line 2798) 14285* BFD_RELOC_OR1K_PLTA26: howto manager. (line 2799) 14286* BFD_RELOC_OR1K_REL_26: howto manager. (line 2787) 14287* BFD_RELOC_OR1K_RELATIVE: howto manager. (line 2804) 14288* BFD_RELOC_OR1K_SLO13: howto manager. (line 2791) 14289* BFD_RELOC_OR1K_SLO16: howto manager. (line 2788) 14290* BFD_RELOC_OR1K_TLS_DTPMOD: howto manager. (line 2826) 14291* BFD_RELOC_OR1K_TLS_DTPOFF: howto manager. (line 2825) 14292* BFD_RELOC_OR1K_TLS_GD_HI16: howto manager. (line 2805) 14293* BFD_RELOC_OR1K_TLS_GD_LO13: howto manager. (line 2808) 14294* BFD_RELOC_OR1K_TLS_GD_LO16: howto manager. (line 2806) 14295* BFD_RELOC_OR1K_TLS_GD_PG21: howto manager. (line 2807) 14296* BFD_RELOC_OR1K_TLS_IE_AHI16: howto manager. (line 2816) 14297* BFD_RELOC_OR1K_TLS_IE_HI16: howto manager. (line 2815) 14298* BFD_RELOC_OR1K_TLS_IE_LO13: howto manager. (line 2819) 14299* BFD_RELOC_OR1K_TLS_IE_LO16: howto manager. (line 2817) 14300* BFD_RELOC_OR1K_TLS_IE_PG21: howto manager. (line 2818) 14301* BFD_RELOC_OR1K_TLS_LDM_HI16: howto manager. (line 2809) 14302* BFD_RELOC_OR1K_TLS_LDM_LO13: howto manager. (line 2812) 14303* BFD_RELOC_OR1K_TLS_LDM_LO16: howto manager. (line 2810) 14304* BFD_RELOC_OR1K_TLS_LDM_PG21: howto manager. (line 2811) 14305* BFD_RELOC_OR1K_TLS_LDO_HI16: howto manager. (line 2813) 14306* BFD_RELOC_OR1K_TLS_LDO_LO16: howto manager. (line 2814) 14307* BFD_RELOC_OR1K_TLS_LE_AHI16: howto manager. (line 2821) 14308* BFD_RELOC_OR1K_TLS_LE_HI16: howto manager. (line 2820) 14309* BFD_RELOC_OR1K_TLS_LE_LO16: howto manager. (line 2822) 14310* BFD_RELOC_OR1K_TLS_LE_SLO16: howto manager. (line 2823) 14311* BFD_RELOC_OR1K_TLS_TPOFF: howto manager. (line 2824) 14312* BFD_RELOC_PDP11_DISP_6_PCREL: howto manager. (line 672) 14313* BFD_RELOC_PDP11_DISP_8_PCREL: howto manager. (line 671) 14314* BFD_RELOC_PJ_CODE_DIR16: howto manager. (line 677) 14315* BFD_RELOC_PJ_CODE_DIR32: howto manager. (line 678) 14316* BFD_RELOC_PJ_CODE_HI16: howto manager. (line 675) 14317* BFD_RELOC_PJ_CODE_LO16: howto manager. (line 676) 14318* BFD_RELOC_PJ_CODE_REL16: howto manager. (line 679) 14319* BFD_RELOC_PJ_CODE_REL32: howto manager. (line 680) 14320* BFD_RELOC_PPC64_ADDR16_DS: howto manager. (line 747) 14321* BFD_RELOC_PPC64_ADDR16_HIGH: howto manager. (line 758) 14322* BFD_RELOC_PPC64_ADDR16_HIGHA: howto manager. (line 759) 14323* BFD_RELOC_PPC64_ADDR16_HIGHER34: howto manager. (line 777) 14324* BFD_RELOC_PPC64_ADDR16_HIGHERA34: howto manager. (line 778) 14325* BFD_RELOC_PPC64_ADDR16_HIGHEST34: howto manager. (line 779) 14326* BFD_RELOC_PPC64_ADDR16_HIGHESTA34: howto manager. (line 780) 14327* BFD_RELOC_PPC64_ADDR16_LO_DS: howto manager. (line 748) 14328* BFD_RELOC_PPC64_ADDR64_LOCAL: howto manager. (line 766) 14329* BFD_RELOC_PPC64_D28: howto manager. (line 785) 14330* BFD_RELOC_PPC64_D34: howto manager. (line 770) 14331* BFD_RELOC_PPC64_D34_HA30: howto manager. (line 773) 14332* BFD_RELOC_PPC64_D34_HI30: howto manager. (line 772) 14333* BFD_RELOC_PPC64_D34_LO: howto manager. (line 771) 14334* BFD_RELOC_PPC64_DTPREL16_DS: howto manager. (line 837) 14335* BFD_RELOC_PPC64_DTPREL16_HIGH: howto manager. (line 839) 14336* BFD_RELOC_PPC64_DTPREL16_HIGHA: howto manager. (line 840) 14337* BFD_RELOC_PPC64_DTPREL16_HIGHER: howto manager. (line 841) 14338* BFD_RELOC_PPC64_DTPREL16_HIGHERA: howto manager. (line 842) 14339* BFD_RELOC_PPC64_DTPREL16_HIGHEST: howto manager. (line 843) 14340* BFD_RELOC_PPC64_DTPREL16_HIGHESTA: howto manager. (line 844) 14341* BFD_RELOC_PPC64_DTPREL16_LO_DS: howto manager. (line 838) 14342* BFD_RELOC_PPC64_DTPREL34: howto manager. (line 846) 14343* BFD_RELOC_PPC64_ENTRY: howto manager. (line 767) 14344* BFD_RELOC_PPC64_GOT16_DS: howto manager. (line 749) 14345* BFD_RELOC_PPC64_GOT16_LO_DS: howto manager. (line 750) 14346* BFD_RELOC_PPC64_GOT_DTPREL_PCREL34: howto manager. (line 850) 14347* BFD_RELOC_PPC64_GOT_PCREL34: howto manager. (line 775) 14348* BFD_RELOC_PPC64_GOT_TLSGD_PCREL34: howto manager. (line 847) 14349* BFD_RELOC_PPC64_GOT_TLSLD_PCREL34: howto manager. (line 848) 14350* BFD_RELOC_PPC64_GOT_TPREL_PCREL34: howto manager. (line 849) 14351* BFD_RELOC_PPC64_HIGHER: howto manager. (line 735) 14352* BFD_RELOC_PPC64_HIGHER_S: howto manager. (line 736) 14353* BFD_RELOC_PPC64_HIGHEST: howto manager. (line 737) 14354* BFD_RELOC_PPC64_HIGHEST_S: howto manager. (line 738) 14355* BFD_RELOC_PPC64_PCREL28: howto manager. (line 786) 14356* BFD_RELOC_PPC64_PCREL34: howto manager. (line 774) 14357* BFD_RELOC_PPC64_PLT16_LO_DS: howto manager. (line 751) 14358* BFD_RELOC_PPC64_PLT_PCREL34: howto manager. (line 776) 14359* BFD_RELOC_PPC64_PLTGOT16: howto manager. (line 743) 14360* BFD_RELOC_PPC64_PLTGOT16_DS: howto manager. (line 756) 14361* BFD_RELOC_PPC64_PLTGOT16_HA: howto manager. (line 746) 14362* BFD_RELOC_PPC64_PLTGOT16_HI: howto manager. (line 745) 14363* BFD_RELOC_PPC64_PLTGOT16_LO: howto manager. (line 744) 14364* BFD_RELOC_PPC64_PLTGOT16_LO_DS: howto manager. (line 757) 14365* BFD_RELOC_PPC64_REL16_HIGH: howto manager. (line 760) 14366* BFD_RELOC_PPC64_REL16_HIGHA: howto manager. (line 761) 14367* BFD_RELOC_PPC64_REL16_HIGHER: howto manager. (line 762) 14368* BFD_RELOC_PPC64_REL16_HIGHER34: howto manager. (line 781) 14369* BFD_RELOC_PPC64_REL16_HIGHERA: howto manager. (line 763) 14370* BFD_RELOC_PPC64_REL16_HIGHERA34: howto manager. (line 782) 14371* BFD_RELOC_PPC64_REL16_HIGHEST: howto manager. (line 764) 14372* BFD_RELOC_PPC64_REL16_HIGHEST34: howto manager. (line 783) 14373* BFD_RELOC_PPC64_REL16_HIGHESTA: howto manager. (line 765) 14374* BFD_RELOC_PPC64_REL16_HIGHESTA34: howto manager. (line 784) 14375* BFD_RELOC_PPC64_REL24_NOTOC: howto manager. (line 768) 14376* BFD_RELOC_PPC64_REL24_P9NOTOC: howto manager. (line 769) 14377* BFD_RELOC_PPC64_SECTOFF_DS: howto manager. (line 752) 14378* BFD_RELOC_PPC64_SECTOFF_LO_DS: howto manager. (line 753) 14379* BFD_RELOC_PPC64_TLS_PCREL: howto manager. (line 851) 14380* BFD_RELOC_PPC64_TLSGD: howto manager. (line 823) 14381* BFD_RELOC_PPC64_TLSIE: howto manager. (line 826) 14382* BFD_RELOC_PPC64_TLSLD: howto manager. (line 824) 14383* BFD_RELOC_PPC64_TLSLE: howto manager. (line 825) 14384* BFD_RELOC_PPC64_TLSM: howto manager. (line 827) 14385* BFD_RELOC_PPC64_TLSML: howto manager. (line 828) 14386* BFD_RELOC_PPC64_TOC: howto manager. (line 742) 14387* BFD_RELOC_PPC64_TOC16_DS: howto manager. (line 754) 14388* BFD_RELOC_PPC64_TOC16_HA: howto manager. (line 741) 14389* BFD_RELOC_PPC64_TOC16_HI: howto manager. (line 740) 14390* BFD_RELOC_PPC64_TOC16_LO: howto manager. (line 739) 14391* BFD_RELOC_PPC64_TOC16_LO_DS: howto manager. (line 755) 14392* BFD_RELOC_PPC64_TPREL16_DS: howto manager. (line 829) 14393* BFD_RELOC_PPC64_TPREL16_HIGH: howto manager. (line 831) 14394* BFD_RELOC_PPC64_TPREL16_HIGHA: howto manager. (line 832) 14395* BFD_RELOC_PPC64_TPREL16_HIGHER: howto manager. (line 833) 14396* BFD_RELOC_PPC64_TPREL16_HIGHERA: howto manager. (line 834) 14397* BFD_RELOC_PPC64_TPREL16_HIGHEST: howto manager. (line 835) 14398* BFD_RELOC_PPC64_TPREL16_HIGHESTA: howto manager. (line 836) 14399* BFD_RELOC_PPC64_TPREL16_LO_DS: howto manager. (line 830) 14400* BFD_RELOC_PPC64_TPREL34: howto manager. (line 845) 14401* BFD_RELOC_PPC_16DX_HA: howto manager. (line 732) 14402* BFD_RELOC_PPC_B16: howto manager. (line 688) 14403* BFD_RELOC_PPC_B16_BRNTAKEN: howto manager. (line 690) 14404* BFD_RELOC_PPC_B16_BRTAKEN: howto manager. (line 689) 14405* BFD_RELOC_PPC_B26: howto manager. (line 683) 14406* BFD_RELOC_PPC_BA16: howto manager. (line 691) 14407* BFD_RELOC_PPC_BA16_BRNTAKEN: howto manager. (line 693) 14408* BFD_RELOC_PPC_BA16_BRTAKEN: howto manager. (line 692) 14409* BFD_RELOC_PPC_BA26: howto manager. (line 684) 14410* BFD_RELOC_PPC_COPY: howto manager. (line 694) 14411* BFD_RELOC_PPC_DTPMOD: howto manager. (line 796) 14412* BFD_RELOC_PPC_DTPREL: howto manager. (line 806) 14413* BFD_RELOC_PPC_DTPREL16: howto manager. (line 802) 14414* BFD_RELOC_PPC_DTPREL16_HA: howto manager. (line 805) 14415* BFD_RELOC_PPC_DTPREL16_HI: howto manager. (line 804) 14416* BFD_RELOC_PPC_DTPREL16_LO: howto manager. (line 803) 14417* BFD_RELOC_PPC_EMB_BIT_FLD: howto manager. (line 713) 14418* BFD_RELOC_PPC_EMB_MRKREF: howto manager. (line 708) 14419* BFD_RELOC_PPC_EMB_NADDR16: howto manager. (line 700) 14420* BFD_RELOC_PPC_EMB_NADDR16_HA: howto manager. (line 703) 14421* BFD_RELOC_PPC_EMB_NADDR16_HI: howto manager. (line 702) 14422* BFD_RELOC_PPC_EMB_NADDR16_LO: howto manager. (line 701) 14423* BFD_RELOC_PPC_EMB_NADDR32: howto manager. (line 699) 14424* BFD_RELOC_PPC_EMB_RELSDA: howto manager. (line 714) 14425* BFD_RELOC_PPC_EMB_RELSEC16: howto manager. (line 709) 14426* BFD_RELOC_PPC_EMB_RELST_HA: howto manager. (line 712) 14427* BFD_RELOC_PPC_EMB_RELST_HI: howto manager. (line 711) 14428* BFD_RELOC_PPC_EMB_RELST_LO: howto manager. (line 710) 14429* BFD_RELOC_PPC_EMB_SDA21: howto manager. (line 707) 14430* BFD_RELOC_PPC_EMB_SDA2I16: howto manager. (line 705) 14431* BFD_RELOC_PPC_EMB_SDA2REL: howto manager. (line 706) 14432* BFD_RELOC_PPC_EMB_SDAI16: howto manager. (line 704) 14433* BFD_RELOC_PPC_GLOB_DAT: howto manager. (line 695) 14434* BFD_RELOC_PPC_GOT_DTPREL16: howto manager. (line 819) 14435* BFD_RELOC_PPC_GOT_DTPREL16_HA: howto manager. (line 822) 14436* BFD_RELOC_PPC_GOT_DTPREL16_HI: howto manager. (line 821) 14437* BFD_RELOC_PPC_GOT_DTPREL16_LO: howto manager. (line 820) 14438* BFD_RELOC_PPC_GOT_TLSGD16: howto manager. (line 807) 14439* BFD_RELOC_PPC_GOT_TLSGD16_HA: howto manager. (line 810) 14440* BFD_RELOC_PPC_GOT_TLSGD16_HI: howto manager. (line 809) 14441* BFD_RELOC_PPC_GOT_TLSGD16_LO: howto manager. (line 808) 14442* BFD_RELOC_PPC_GOT_TLSLD16: howto manager. (line 811) 14443* BFD_RELOC_PPC_GOT_TLSLD16_HA: howto manager. (line 814) 14444* BFD_RELOC_PPC_GOT_TLSLD16_HI: howto manager. (line 813) 14445* BFD_RELOC_PPC_GOT_TLSLD16_LO: howto manager. (line 812) 14446* BFD_RELOC_PPC_GOT_TPREL16: howto manager. (line 815) 14447* BFD_RELOC_PPC_GOT_TPREL16_HA: howto manager. (line 818) 14448* BFD_RELOC_PPC_GOT_TPREL16_HI: howto manager. (line 817) 14449* BFD_RELOC_PPC_GOT_TPREL16_LO: howto manager. (line 816) 14450* BFD_RELOC_PPC_JMP_SLOT: howto manager. (line 696) 14451* BFD_RELOC_PPC_LOCAL24PC: howto manager. (line 698) 14452* BFD_RELOC_PPC_NEG: howto manager. (line 734) 14453* BFD_RELOC_PPC_REL16DX_HA: howto manager. (line 733) 14454* BFD_RELOC_PPC_RELATIVE: howto manager. (line 697) 14455* BFD_RELOC_PPC_TLS: howto manager. (line 789) 14456* BFD_RELOC_PPC_TLSGD: howto manager. (line 790) 14457* BFD_RELOC_PPC_TLSIE: howto manager. (line 793) 14458* BFD_RELOC_PPC_TLSLD: howto manager. (line 791) 14459* BFD_RELOC_PPC_TLSLE: howto manager. (line 792) 14460* BFD_RELOC_PPC_TLSM: howto manager. (line 794) 14461* BFD_RELOC_PPC_TLSML: howto manager. (line 795) 14462* BFD_RELOC_PPC_TOC16: howto manager. (line 685) 14463* BFD_RELOC_PPC_TOC16_HI: howto manager. (line 687) 14464* BFD_RELOC_PPC_TOC16_LO: howto manager. (line 686) 14465* BFD_RELOC_PPC_TPREL: howto manager. (line 801) 14466* BFD_RELOC_PPC_TPREL16: howto manager. (line 797) 14467* BFD_RELOC_PPC_TPREL16_HA: howto manager. (line 800) 14468* BFD_RELOC_PPC_TPREL16_HI: howto manager. (line 799) 14469* BFD_RELOC_PPC_TPREL16_LO: howto manager. (line 798) 14470* BFD_RELOC_PPC_VLE_HA16A: howto manager. (line 722) 14471* BFD_RELOC_PPC_VLE_HA16D: howto manager. (line 723) 14472* BFD_RELOC_PPC_VLE_HI16A: howto manager. (line 720) 14473* BFD_RELOC_PPC_VLE_HI16D: howto manager. (line 721) 14474* BFD_RELOC_PPC_VLE_LO16A: howto manager. (line 718) 14475* BFD_RELOC_PPC_VLE_LO16D: howto manager. (line 719) 14476* BFD_RELOC_PPC_VLE_REL15: howto manager. (line 716) 14477* BFD_RELOC_PPC_VLE_REL24: howto manager. (line 717) 14478* BFD_RELOC_PPC_VLE_REL8: howto manager. (line 715) 14479* BFD_RELOC_PPC_VLE_SDA21: howto manager. (line 724) 14480* BFD_RELOC_PPC_VLE_SDA21_LO: howto manager. (line 725) 14481* BFD_RELOC_PPC_VLE_SDAREL_HA16A: howto manager. (line 730) 14482* BFD_RELOC_PPC_VLE_SDAREL_HA16D: howto manager. (line 731) 14483* BFD_RELOC_PPC_VLE_SDAREL_HI16A: howto manager. (line 728) 14484* BFD_RELOC_PPC_VLE_SDAREL_HI16D: howto manager. (line 729) 14485* BFD_RELOC_PPC_VLE_SDAREL_LO16A: howto manager. (line 726) 14486* BFD_RELOC_PPC_VLE_SDAREL_LO16D: howto manager. (line 727) 14487* BFD_RELOC_PRU_16_PMEM: howto manager. (line 2967) 14488* BFD_RELOC_PRU_32_PMEM: howto manager. (line 2966) 14489* BFD_RELOC_PRU_GNU_DIFF16: howto manager. (line 2972) 14490* BFD_RELOC_PRU_GNU_DIFF16_PMEM: howto manager. (line 2974) 14491* BFD_RELOC_PRU_GNU_DIFF32: howto manager. (line 2973) 14492* BFD_RELOC_PRU_GNU_DIFF32_PMEM: howto manager. (line 2975) 14493* BFD_RELOC_PRU_GNU_DIFF8: howto manager. (line 2971) 14494* BFD_RELOC_PRU_LDI32: howto manager. (line 2955) 14495* BFD_RELOC_PRU_S10_PCREL: howto manager. (line 2960) 14496* BFD_RELOC_PRU_U16: howto manager. (line 2949) 14497* BFD_RELOC_PRU_U16_PMEMIMM: howto manager. (line 2952) 14498* BFD_RELOC_PRU_U8_PCREL: howto manager. (line 2963) 14499* BFD_RELOC_RELC: howto manager. (line 2843) 14500* BFD_RELOC_RISCV_32_PCREL: howto manager. (line 2211) 14501* BFD_RELOC_RISCV_ADD16: howto manager. (line 2179) 14502* BFD_RELOC_RISCV_ADD32: howto manager. (line 2180) 14503* BFD_RELOC_RISCV_ADD64: howto manager. (line 2181) 14504* BFD_RELOC_RISCV_ADD8: howto manager. (line 2178) 14505* BFD_RELOC_RISCV_ALIGN: howto manager. (line 2196) 14506* BFD_RELOC_RISCV_CALL: howto manager. (line 2176) 14507* BFD_RELOC_RISCV_CALL_PLT: howto manager. (line 2177) 14508* BFD_RELOC_RISCV_CFA: howto manager. (line 2205) 14509* BFD_RELOC_RISCV_GOT_HI20: howto manager. (line 2186) 14510* BFD_RELOC_RISCV_GPREL12_I: howto manager. (line 2170) 14511* BFD_RELOC_RISCV_GPREL12_S: howto manager. (line 2171) 14512* BFD_RELOC_RISCV_GPREL_I: howto manager. (line 2200) 14513* BFD_RELOC_RISCV_GPREL_S: howto manager. (line 2201) 14514* BFD_RELOC_RISCV_HI20: howto manager. (line 2164) 14515* BFD_RELOC_RISCV_JMP: howto manager. (line 2189) 14516* BFD_RELOC_RISCV_LO12_I: howto manager. (line 2168) 14517* BFD_RELOC_RISCV_LO12_S: howto manager. (line 2169) 14518* BFD_RELOC_RISCV_PCREL_HI20: howto manager. (line 2165) 14519* BFD_RELOC_RISCV_PCREL_LO12_I: howto manager. (line 2166) 14520* BFD_RELOC_RISCV_PCREL_LO12_S: howto manager. (line 2167) 14521* BFD_RELOC_RISCV_RELAX: howto manager. (line 2204) 14522* BFD_RELOC_RISCV_RVC_BRANCH: howto manager. (line 2197) 14523* BFD_RELOC_RISCV_RVC_JUMP: howto manager. (line 2198) 14524* BFD_RELOC_RISCV_RVC_LUI: howto manager. (line 2199) 14525* BFD_RELOC_RISCV_SET16: howto manager. (line 2209) 14526* BFD_RELOC_RISCV_SET32: howto manager. (line 2210) 14527* BFD_RELOC_RISCV_SET6: howto manager. (line 2207) 14528* BFD_RELOC_RISCV_SET8: howto manager. (line 2208) 14529* BFD_RELOC_RISCV_SUB16: howto manager. (line 2183) 14530* BFD_RELOC_RISCV_SUB32: howto manager. (line 2184) 14531* BFD_RELOC_RISCV_SUB6: howto manager. (line 2206) 14532* BFD_RELOC_RISCV_SUB64: howto manager. (line 2185) 14533* BFD_RELOC_RISCV_SUB8: howto manager. (line 2182) 14534* BFD_RELOC_RISCV_TLS_DTPMOD32: howto manager. (line 2190) 14535* BFD_RELOC_RISCV_TLS_DTPMOD64: howto manager. (line 2192) 14536* BFD_RELOC_RISCV_TLS_DTPREL32: howto manager. (line 2191) 14537* BFD_RELOC_RISCV_TLS_DTPREL64: howto manager. (line 2193) 14538* BFD_RELOC_RISCV_TLS_GD_HI20: howto manager. (line 2188) 14539* BFD_RELOC_RISCV_TLS_GOT_HI20: howto manager. (line 2187) 14540* BFD_RELOC_RISCV_TLS_TPREL32: howto manager. (line 2194) 14541* BFD_RELOC_RISCV_TLS_TPREL64: howto manager. (line 2195) 14542* BFD_RELOC_RISCV_TPREL_ADD: howto manager. (line 2175) 14543* BFD_RELOC_RISCV_TPREL_HI20: howto manager. (line 2172) 14544* BFD_RELOC_RISCV_TPREL_I: howto manager. (line 2202) 14545* BFD_RELOC_RISCV_TPREL_LO12_I: howto manager. (line 2173) 14546* BFD_RELOC_RISCV_TPREL_LO12_S: howto manager. (line 2174) 14547* BFD_RELOC_RISCV_TPREL_S: howto manager. (line 2203) 14548* BFD_RELOC_RL78_16_OP: howto manager. (line 2218) 14549* BFD_RELOC_RL78_16U: howto manager. (line 2222) 14550* BFD_RELOC_RL78_24_OP: howto manager. (line 2219) 14551* BFD_RELOC_RL78_24U: howto manager. (line 2223) 14552* BFD_RELOC_RL78_32_OP: howto manager. (line 2220) 14553* BFD_RELOC_RL78_8U: howto manager. (line 2221) 14554* BFD_RELOC_RL78_ABS16: howto manager. (line 2235) 14555* BFD_RELOC_RL78_ABS16_REV: howto manager. (line 2236) 14556* BFD_RELOC_RL78_ABS16U: howto manager. (line 2239) 14557* BFD_RELOC_RL78_ABS16UL: howto manager. (line 2241) 14558* BFD_RELOC_RL78_ABS16UW: howto manager. (line 2240) 14559* BFD_RELOC_RL78_ABS32: howto manager. (line 2237) 14560* BFD_RELOC_RL78_ABS32_REV: howto manager. (line 2238) 14561* BFD_RELOC_RL78_ABS8: howto manager. (line 2234) 14562* BFD_RELOC_RL78_CODE: howto manager. (line 2246) 14563* BFD_RELOC_RL78_DIFF: howto manager. (line 2225) 14564* BFD_RELOC_RL78_DIR3U_PCREL: howto manager. (line 2224) 14565* BFD_RELOC_RL78_GPRELB: howto manager. (line 2226) 14566* BFD_RELOC_RL78_GPRELL: howto manager. (line 2228) 14567* BFD_RELOC_RL78_GPRELW: howto manager. (line 2227) 14568* BFD_RELOC_RL78_HI16: howto manager. (line 2243) 14569* BFD_RELOC_RL78_HI8: howto manager. (line 2244) 14570* BFD_RELOC_RL78_LO16: howto manager. (line 2245) 14571* BFD_RELOC_RL78_NEG16: howto manager. (line 2215) 14572* BFD_RELOC_RL78_NEG24: howto manager. (line 2216) 14573* BFD_RELOC_RL78_NEG32: howto manager. (line 2217) 14574* BFD_RELOC_RL78_NEG8: howto manager. (line 2214) 14575* BFD_RELOC_RL78_OP_AND: howto manager. (line 2232) 14576* BFD_RELOC_RL78_OP_NEG: howto manager. (line 2231) 14577* BFD_RELOC_RL78_OP_SHRA: howto manager. (line 2233) 14578* BFD_RELOC_RL78_OP_SUBTRACT: howto manager. (line 2230) 14579* BFD_RELOC_RL78_RELAX: howto manager. (line 2242) 14580* BFD_RELOC_RL78_SADDR: howto manager. (line 2247) 14581* BFD_RELOC_RL78_SYM: howto manager. (line 2229) 14582* BFD_RELOC_RVA: howto manager. (line 109) 14583* BFD_RELOC_RX_16_OP: howto manager. (line 2254) 14584* BFD_RELOC_RX_16U: howto manager. (line 2258) 14585* BFD_RELOC_RX_24_OP: howto manager. (line 2255) 14586* BFD_RELOC_RX_24U: howto manager. (line 2259) 14587* BFD_RELOC_RX_32_OP: howto manager. (line 2256) 14588* BFD_RELOC_RX_8U: howto manager. (line 2257) 14589* BFD_RELOC_RX_ABS16: howto manager. (line 2269) 14590* BFD_RELOC_RX_ABS16_REV: howto manager. (line 2270) 14591* BFD_RELOC_RX_ABS16U: howto manager. (line 2273) 14592* BFD_RELOC_RX_ABS16UL: howto manager. (line 2275) 14593* BFD_RELOC_RX_ABS16UW: howto manager. (line 2274) 14594* BFD_RELOC_RX_ABS32: howto manager. (line 2271) 14595* BFD_RELOC_RX_ABS32_REV: howto manager. (line 2272) 14596* BFD_RELOC_RX_ABS8: howto manager. (line 2268) 14597* BFD_RELOC_RX_DIFF: howto manager. (line 2261) 14598* BFD_RELOC_RX_DIR3U_PCREL: howto manager. (line 2260) 14599* BFD_RELOC_RX_GPRELB: howto manager. (line 2262) 14600* BFD_RELOC_RX_GPRELL: howto manager. (line 2264) 14601* BFD_RELOC_RX_GPRELW: howto manager. (line 2263) 14602* BFD_RELOC_RX_NEG16: howto manager. (line 2251) 14603* BFD_RELOC_RX_NEG24: howto manager. (line 2252) 14604* BFD_RELOC_RX_NEG32: howto manager. (line 2253) 14605* BFD_RELOC_RX_NEG8: howto manager. (line 2250) 14606* BFD_RELOC_RX_OP_NEG: howto manager. (line 2267) 14607* BFD_RELOC_RX_OP_SUBTRACT: howto manager. (line 2266) 14608* BFD_RELOC_RX_RELAX: howto manager. (line 2276) 14609* BFD_RELOC_RX_SYM: howto manager. (line 2265) 14610* BFD_RELOC_S12Z_15_PCREL: howto manager. (line 2670) 14611* BFD_RELOC_S12Z_OPR: howto manager. (line 4071) 14612* BFD_RELOC_SCORE16_BRANCH: howto manager. (line 2419) 14613* BFD_RELOC_SCORE16_JMP: howto manager. (line 2416) 14614* BFD_RELOC_SCORE_BCMP: howto manager. (line 2422) 14615* BFD_RELOC_SCORE_BRANCH: howto manager. (line 2407) 14616* BFD_RELOC_SCORE_CALL15: howto manager. (line 2427) 14617* BFD_RELOC_SCORE_DUMMY2: howto manager. (line 2403) 14618* BFD_RELOC_SCORE_DUMMY_HI16: howto manager. (line 2428) 14619* BFD_RELOC_SCORE_GOT15: howto manager. (line 2425) 14620* BFD_RELOC_SCORE_GOT_LO16: howto manager. (line 2426) 14621* BFD_RELOC_SCORE_GPREL15: howto manager. (line 2400) 14622* BFD_RELOC_SCORE_IMM30: howto manager. (line 2410) 14623* BFD_RELOC_SCORE_IMM32: howto manager. (line 2413) 14624* BFD_RELOC_SCORE_JMP: howto manager. (line 2404) 14625* BFD_RELOC_SH_ALIGN: howto manager. (line 1079) 14626* BFD_RELOC_SH_CODE: howto manager. (line 1080) 14627* BFD_RELOC_SH_COPY: howto manager. (line 1085) 14628* BFD_RELOC_SH_COPY64: howto manager. (line 1110) 14629* BFD_RELOC_SH_COUNT: howto manager. (line 1078) 14630* BFD_RELOC_SH_DATA: howto manager. (line 1081) 14631* BFD_RELOC_SH_DISP12: howto manager. (line 1061) 14632* BFD_RELOC_SH_DISP12BY2: howto manager. (line 1062) 14633* BFD_RELOC_SH_DISP12BY4: howto manager. (line 1063) 14634* BFD_RELOC_SH_DISP12BY8: howto manager. (line 1064) 14635* BFD_RELOC_SH_DISP20: howto manager. (line 1065) 14636* BFD_RELOC_SH_DISP20BY8: howto manager. (line 1066) 14637* BFD_RELOC_SH_FUNCDESC: howto manager. (line 1153) 14638* BFD_RELOC_SH_GLOB_DAT: howto manager. (line 1086) 14639* BFD_RELOC_SH_GLOB_DAT64: howto manager. (line 1111) 14640* BFD_RELOC_SH_GOT10BY4: howto manager. (line 1114) 14641* BFD_RELOC_SH_GOT10BY8: howto manager. (line 1115) 14642* BFD_RELOC_SH_GOT20: howto manager. (line 1147) 14643* BFD_RELOC_SH_GOT_HI16: howto manager. (line 1093) 14644* BFD_RELOC_SH_GOT_LOW16: howto manager. (line 1090) 14645* BFD_RELOC_SH_GOT_MEDHI16: howto manager. (line 1092) 14646* BFD_RELOC_SH_GOT_MEDLOW16: howto manager. (line 1091) 14647* BFD_RELOC_SH_GOTFUNCDESC: howto manager. (line 1149) 14648* BFD_RELOC_SH_GOTFUNCDESC20: howto manager. (line 1150) 14649* BFD_RELOC_SH_GOTOFF20: howto manager. (line 1148) 14650* BFD_RELOC_SH_GOTOFF_HI16: howto manager. (line 1105) 14651* BFD_RELOC_SH_GOTOFF_LOW16: howto manager. (line 1102) 14652* BFD_RELOC_SH_GOTOFF_MEDHI16: howto manager. (line 1104) 14653* BFD_RELOC_SH_GOTOFF_MEDLOW16: howto manager. (line 1103) 14654* BFD_RELOC_SH_GOTOFFFUNCDESC: howto manager. (line 1151) 14655* BFD_RELOC_SH_GOTOFFFUNCDESC20: howto manager. (line 1152) 14656* BFD_RELOC_SH_GOTPC: howto manager. (line 1089) 14657* BFD_RELOC_SH_GOTPC_HI16: howto manager. (line 1109) 14658* BFD_RELOC_SH_GOTPC_LOW16: howto manager. (line 1106) 14659* BFD_RELOC_SH_GOTPC_MEDHI16: howto manager. (line 1108) 14660* BFD_RELOC_SH_GOTPC_MEDLOW16: howto manager. (line 1107) 14661* BFD_RELOC_SH_GOTPLT10BY4: howto manager. (line 1116) 14662* BFD_RELOC_SH_GOTPLT10BY8: howto manager. (line 1117) 14663* BFD_RELOC_SH_GOTPLT32: howto manager. (line 1118) 14664* BFD_RELOC_SH_GOTPLT_HI16: howto manager. (line 1097) 14665* BFD_RELOC_SH_GOTPLT_LOW16: howto manager. (line 1094) 14666* BFD_RELOC_SH_GOTPLT_MEDHI16: howto manager. (line 1096) 14667* BFD_RELOC_SH_GOTPLT_MEDLOW16: howto manager. (line 1095) 14668* BFD_RELOC_SH_IMM3: howto manager. (line 1059) 14669* BFD_RELOC_SH_IMM3U: howto manager. (line 1060) 14670* BFD_RELOC_SH_IMM4: howto manager. (line 1067) 14671* BFD_RELOC_SH_IMM4BY2: howto manager. (line 1068) 14672* BFD_RELOC_SH_IMM4BY4: howto manager. (line 1069) 14673* BFD_RELOC_SH_IMM8: howto manager. (line 1070) 14674* BFD_RELOC_SH_IMM8BY2: howto manager. (line 1071) 14675* BFD_RELOC_SH_IMM8BY4: howto manager. (line 1072) 14676* BFD_RELOC_SH_IMM_HI16: howto manager. (line 1136) 14677* BFD_RELOC_SH_IMM_HI16_PCREL: howto manager. (line 1137) 14678* BFD_RELOC_SH_IMM_LOW16: howto manager. (line 1130) 14679* BFD_RELOC_SH_IMM_LOW16_PCREL: howto manager. (line 1131) 14680* BFD_RELOC_SH_IMM_MEDHI16: howto manager. (line 1134) 14681* BFD_RELOC_SH_IMM_MEDHI16_PCREL: howto manager. (line 1135) 14682* BFD_RELOC_SH_IMM_MEDLOW16: howto manager. (line 1132) 14683* BFD_RELOC_SH_IMM_MEDLOW16_PCREL: howto manager. (line 1133) 14684* BFD_RELOC_SH_IMMS10: howto manager. (line 1124) 14685* BFD_RELOC_SH_IMMS10BY2: howto manager. (line 1125) 14686* BFD_RELOC_SH_IMMS10BY4: howto manager. (line 1126) 14687* BFD_RELOC_SH_IMMS10BY8: howto manager. (line 1127) 14688* BFD_RELOC_SH_IMMS16: howto manager. (line 1128) 14689* BFD_RELOC_SH_IMMS6: howto manager. (line 1121) 14690* BFD_RELOC_SH_IMMS6BY32: howto manager. (line 1122) 14691* BFD_RELOC_SH_IMMU16: howto manager. (line 1129) 14692* BFD_RELOC_SH_IMMU5: howto manager. (line 1120) 14693* BFD_RELOC_SH_IMMU6: howto manager. (line 1123) 14694* BFD_RELOC_SH_JMP_SLOT: howto manager. (line 1087) 14695* BFD_RELOC_SH_JMP_SLOT64: howto manager. (line 1112) 14696* BFD_RELOC_SH_LABEL: howto manager. (line 1082) 14697* BFD_RELOC_SH_LOOP_END: howto manager. (line 1084) 14698* BFD_RELOC_SH_LOOP_START: howto manager. (line 1083) 14699* BFD_RELOC_SH_PCDISP12BY2: howto manager. (line 1058) 14700* BFD_RELOC_SH_PCDISP8BY2: howto manager. (line 1057) 14701* BFD_RELOC_SH_PCRELIMM8BY2: howto manager. (line 1073) 14702* BFD_RELOC_SH_PCRELIMM8BY4: howto manager. (line 1074) 14703* BFD_RELOC_SH_PLT_HI16: howto manager. (line 1101) 14704* BFD_RELOC_SH_PLT_LOW16: howto manager. (line 1098) 14705* BFD_RELOC_SH_PLT_MEDHI16: howto manager. (line 1100) 14706* BFD_RELOC_SH_PLT_MEDLOW16: howto manager. (line 1099) 14707* BFD_RELOC_SH_PT_16: howto manager. (line 1138) 14708* BFD_RELOC_SH_RELATIVE: howto manager. (line 1088) 14709* BFD_RELOC_SH_RELATIVE64: howto manager. (line 1113) 14710* BFD_RELOC_SH_SHMEDIA_CODE: howto manager. (line 1119) 14711* BFD_RELOC_SH_SWITCH16: howto manager. (line 1075) 14712* BFD_RELOC_SH_SWITCH32: howto manager. (line 1076) 14713* BFD_RELOC_SH_TLS_DTPMOD32: howto manager. (line 1144) 14714* BFD_RELOC_SH_TLS_DTPOFF32: howto manager. (line 1145) 14715* BFD_RELOC_SH_TLS_GD_32: howto manager. (line 1139) 14716* BFD_RELOC_SH_TLS_IE_32: howto manager. (line 1142) 14717* BFD_RELOC_SH_TLS_LD_32: howto manager. (line 1140) 14718* BFD_RELOC_SH_TLS_LDO_32: howto manager. (line 1141) 14719* BFD_RELOC_SH_TLS_LE_32: howto manager. (line 1143) 14720* BFD_RELOC_SH_TLS_TPOFF32: howto manager. (line 1146) 14721* BFD_RELOC_SH_USES: howto manager. (line 1077) 14722* BFD_RELOC_SIZE32: howto manager. (line 73) 14723* BFD_RELOC_SIZE64: howto manager. (line 74) 14724* BFD_RELOC_SPARC13: howto manager. (line 140) 14725* BFD_RELOC_SPARC22: howto manager. (line 139) 14726* BFD_RELOC_SPARC_10: howto manager. (line 169) 14727* BFD_RELOC_SPARC_11: howto manager. (line 170) 14728* BFD_RELOC_SPARC_5: howto manager. (line 182) 14729* BFD_RELOC_SPARC_6: howto manager. (line 181) 14730* BFD_RELOC_SPARC_64: howto manager. (line 168) 14731* BFD_RELOC_SPARC_7: howto manager. (line 180) 14732* BFD_RELOC_SPARC_BASE13: howto manager. (line 164) 14733* BFD_RELOC_SPARC_BASE22: howto manager. (line 165) 14734* BFD_RELOC_SPARC_COPY: howto manager. (line 147) 14735* BFD_RELOC_SPARC_DISP64: howto manager. (line 183) 14736* BFD_RELOC_SPARC_GLOB_DAT: howto manager. (line 148) 14737* BFD_RELOC_SPARC_GOT10: howto manager. (line 141) 14738* BFD_RELOC_SPARC_GOT13: howto manager. (line 142) 14739* BFD_RELOC_SPARC_GOT22: howto manager. (line 143) 14740* BFD_RELOC_SPARC_GOTDATA_HIX22: howto manager. (line 154) 14741* BFD_RELOC_SPARC_GOTDATA_LOX10: howto manager. (line 155) 14742* BFD_RELOC_SPARC_GOTDATA_OP: howto manager. (line 158) 14743* BFD_RELOC_SPARC_GOTDATA_OP_HIX22: howto manager. (line 156) 14744* BFD_RELOC_SPARC_GOTDATA_OP_LOX10: howto manager. (line 157) 14745* BFD_RELOC_SPARC_H34: howto manager. (line 192) 14746* BFD_RELOC_SPARC_H44: howto manager. (line 188) 14747* BFD_RELOC_SPARC_HH22: howto manager. (line 172) 14748* BFD_RELOC_SPARC_HIX22: howto manager. (line 186) 14749* BFD_RELOC_SPARC_HM10: howto manager. (line 173) 14750* BFD_RELOC_SPARC_IRELATIVE: howto manager. (line 160) 14751* BFD_RELOC_SPARC_JMP_IREL: howto manager. (line 159) 14752* BFD_RELOC_SPARC_JMP_SLOT: howto manager. (line 149) 14753* BFD_RELOC_SPARC_L44: howto manager. (line 190) 14754* BFD_RELOC_SPARC_LM22: howto manager. (line 174) 14755* BFD_RELOC_SPARC_LOX10: howto manager. (line 187) 14756* BFD_RELOC_SPARC_M44: howto manager. (line 189) 14757* BFD_RELOC_SPARC_OLO10: howto manager. (line 171) 14758* BFD_RELOC_SPARC_PC10: howto manager. (line 144) 14759* BFD_RELOC_SPARC_PC22: howto manager. (line 145) 14760* BFD_RELOC_SPARC_PC_HH22: howto manager. (line 175) 14761* BFD_RELOC_SPARC_PC_HM10: howto manager. (line 176) 14762* BFD_RELOC_SPARC_PC_LM22: howto manager. (line 177) 14763* BFD_RELOC_SPARC_PLT32: howto manager. (line 184) 14764* BFD_RELOC_SPARC_PLT64: howto manager. (line 185) 14765* BFD_RELOC_SPARC_REGISTER: howto manager. (line 191) 14766* BFD_RELOC_SPARC_RELATIVE: howto manager. (line 150) 14767* BFD_RELOC_SPARC_REV32: howto manager. (line 198) 14768* BFD_RELOC_SPARC_SIZE32: howto manager. (line 193) 14769* BFD_RELOC_SPARC_SIZE64: howto manager. (line 194) 14770* BFD_RELOC_SPARC_TLS_DTPMOD32: howto manager. (line 219) 14771* BFD_RELOC_SPARC_TLS_DTPMOD64: howto manager. (line 220) 14772* BFD_RELOC_SPARC_TLS_DTPOFF32: howto manager. (line 221) 14773* BFD_RELOC_SPARC_TLS_DTPOFF64: howto manager. (line 222) 14774* BFD_RELOC_SPARC_TLS_GD_ADD: howto manager. (line 203) 14775* BFD_RELOC_SPARC_TLS_GD_CALL: howto manager. (line 204) 14776* BFD_RELOC_SPARC_TLS_GD_HI22: howto manager. (line 201) 14777* BFD_RELOC_SPARC_TLS_GD_LO10: howto manager. (line 202) 14778* BFD_RELOC_SPARC_TLS_IE_ADD: howto manager. (line 216) 14779* BFD_RELOC_SPARC_TLS_IE_HI22: howto manager. (line 212) 14780* BFD_RELOC_SPARC_TLS_IE_LD: howto manager. (line 214) 14781* BFD_RELOC_SPARC_TLS_IE_LDX: howto manager. (line 215) 14782* BFD_RELOC_SPARC_TLS_IE_LO10: howto manager. (line 213) 14783* BFD_RELOC_SPARC_TLS_LDM_ADD: howto manager. (line 207) 14784* BFD_RELOC_SPARC_TLS_LDM_CALL: howto manager. (line 208) 14785* BFD_RELOC_SPARC_TLS_LDM_HI22: howto manager. (line 205) 14786* BFD_RELOC_SPARC_TLS_LDM_LO10: howto manager. (line 206) 14787* BFD_RELOC_SPARC_TLS_LDO_ADD: howto manager. (line 211) 14788* BFD_RELOC_SPARC_TLS_LDO_HIX22: howto manager. (line 209) 14789* BFD_RELOC_SPARC_TLS_LDO_LOX10: howto manager. (line 210) 14790* BFD_RELOC_SPARC_TLS_LE_HIX22: howto manager. (line 217) 14791* BFD_RELOC_SPARC_TLS_LE_LOX10: howto manager. (line 218) 14792* BFD_RELOC_SPARC_TLS_TPOFF32: howto manager. (line 223) 14793* BFD_RELOC_SPARC_TLS_TPOFF64: howto manager. (line 224) 14794* BFD_RELOC_SPARC_UA16: howto manager. (line 151) 14795* BFD_RELOC_SPARC_UA32: howto manager. (line 152) 14796* BFD_RELOC_SPARC_UA64: howto manager. (line 153) 14797* BFD_RELOC_SPARC_WDISP10: howto manager. (line 195) 14798* BFD_RELOC_SPARC_WDISP16: howto manager. (line 178) 14799* BFD_RELOC_SPARC_WDISP19: howto manager. (line 179) 14800* BFD_RELOC_SPARC_WDISP22: howto manager. (line 138) 14801* BFD_RELOC_SPARC_WPLT30: howto manager. (line 146) 14802* BFD_RELOC_SPU_ADD_PIC: howto manager. (line 241) 14803* BFD_RELOC_SPU_HI16: howto manager. (line 238) 14804* BFD_RELOC_SPU_IMM10: howto manager. (line 229) 14805* BFD_RELOC_SPU_IMM10W: howto manager. (line 230) 14806* BFD_RELOC_SPU_IMM16: howto manager. (line 231) 14807* BFD_RELOC_SPU_IMM16W: howto manager. (line 232) 14808* BFD_RELOC_SPU_IMM18: howto manager. (line 233) 14809* BFD_RELOC_SPU_IMM7: howto manager. (line 227) 14810* BFD_RELOC_SPU_IMM8: howto manager. (line 228) 14811* BFD_RELOC_SPU_LO16: howto manager. (line 237) 14812* BFD_RELOC_SPU_PCREL16: howto manager. (line 236) 14813* BFD_RELOC_SPU_PCREL9a: howto manager. (line 234) 14814* BFD_RELOC_SPU_PCREL9b: howto manager. (line 235) 14815* BFD_RELOC_SPU_PPU32: howto manager. (line 239) 14816* BFD_RELOC_SPU_PPU64: howto manager. (line 240) 14817* BFD_RELOC_THUMB_PCREL_BFCSEL: howto manager. (line 887) 14818* BFD_RELOC_THUMB_PCREL_BLX: howto manager. (line 872) 14819* BFD_RELOC_THUMB_PCREL_BRANCH12: howto manager. (line 904) 14820* BFD_RELOC_THUMB_PCREL_BRANCH20: howto manager. (line 905) 14821* BFD_RELOC_THUMB_PCREL_BRANCH23: howto manager. (line 906) 14822* BFD_RELOC_THUMB_PCREL_BRANCH25: howto manager. (line 907) 14823* BFD_RELOC_THUMB_PCREL_BRANCH5: howto manager. (line 884) 14824* BFD_RELOC_THUMB_PCREL_BRANCH7: howto manager. (line 902) 14825* BFD_RELOC_THUMB_PCREL_BRANCH9: howto manager. (line 903) 14826* BFD_RELOC_TIC30_LDP: howto manager. (line 1817) 14827* BFD_RELOC_TIC54X_16_OF_23: howto manager. (line 1835) 14828* BFD_RELOC_TIC54X_23: howto manager. (line 1832) 14829* BFD_RELOC_TIC54X_MS7_OF_23: howto manager. (line 1840) 14830* BFD_RELOC_TIC54X_PARTLS7: howto manager. (line 1822) 14831* BFD_RELOC_TIC54X_PARTMS9: howto manager. (line 1827) 14832* BFD_RELOC_TILEGX_BROFF_X1: howto manager. (line 3854) 14833* BFD_RELOC_TILEGX_COPY: howto manager. (line 3850) 14834* BFD_RELOC_TILEGX_DEST_IMM8_X1: howto manager. (line 3861) 14835* BFD_RELOC_TILEGX_GLOB_DAT: howto manager. (line 3851) 14836* BFD_RELOC_TILEGX_HW0: howto manager. (line 3843) 14837* BFD_RELOC_TILEGX_HW0_LAST: howto manager. (line 3847) 14838* BFD_RELOC_TILEGX_HW1: howto manager. (line 3844) 14839* BFD_RELOC_TILEGX_HW1_LAST: howto manager. (line 3848) 14840* BFD_RELOC_TILEGX_HW2: howto manager. (line 3845) 14841* BFD_RELOC_TILEGX_HW2_LAST: howto manager. (line 3849) 14842* BFD_RELOC_TILEGX_HW3: howto manager. (line 3846) 14843* BFD_RELOC_TILEGX_IMM16_X0_HW0: howto manager. (line 3870) 14844* BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT: howto manager. (line 3898) 14845* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST: howto manager. (line 3878) 14846* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT: howto manager. (line 3906) 14847* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL: howto manager. (line 3892) 14848* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL: howto manager. 14849 (line 3926) 14850* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD: howto manager. (line 3920) 14851* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE: howto manager. (line 3932) 14852* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE: howto manager. (line 3916) 14853* BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL: howto manager. (line 3884) 14854* BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL: howto manager. (line 3900) 14855* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD: howto manager. (line 3912) 14856* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE: howto manager. (line 3924) 14857* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE: howto manager. (line 3914) 14858* BFD_RELOC_TILEGX_IMM16_X0_HW1: howto manager. (line 3872) 14859* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST: howto manager. (line 3880) 14860* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT: howto manager. (line 3908) 14861* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL: howto manager. (line 3894) 14862* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL: howto manager. 14863 (line 3928) 14864* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD: howto manager. (line 3922) 14865* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE: howto manager. (line 3934) 14866* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE: howto manager. (line 3918) 14867* BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL: howto manager. (line 3886) 14868* BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL: howto manager. (line 3902) 14869* BFD_RELOC_TILEGX_IMM16_X0_HW2: howto manager. (line 3874) 14870* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST: howto manager. (line 3882) 14871* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL: howto manager. (line 3896) 14872* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL: howto manager. 14873 (line 3930) 14874* BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL: howto manager. (line 3888) 14875* BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL: howto manager. (line 3904) 14876* BFD_RELOC_TILEGX_IMM16_X0_HW3: howto manager. (line 3876) 14877* BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL: howto manager. (line 3890) 14878* BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL: howto manager. (line 3910) 14879* BFD_RELOC_TILEGX_IMM16_X1_HW0: howto manager. (line 3871) 14880* BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT: howto manager. (line 3899) 14881* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST: howto manager. (line 3879) 14882* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT: howto manager. (line 3907) 14883* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL: howto manager. (line 3893) 14884* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL: howto manager. 14885 (line 3927) 14886* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD: howto manager. (line 3921) 14887* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE: howto manager. (line 3933) 14888* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE: howto manager. (line 3917) 14889* BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL: howto manager. (line 3885) 14890* BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL: howto manager. (line 3901) 14891* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD: howto manager. (line 3913) 14892* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE: howto manager. (line 3925) 14893* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE: howto manager. (line 3915) 14894* BFD_RELOC_TILEGX_IMM16_X1_HW1: howto manager. (line 3873) 14895* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST: howto manager. (line 3881) 14896* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT: howto manager. (line 3909) 14897* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL: howto manager. (line 3895) 14898* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL: howto manager. 14899 (line 3929) 14900* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD: howto manager. (line 3923) 14901* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE: howto manager. (line 3935) 14902* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE: howto manager. (line 3919) 14903* BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL: howto manager. (line 3887) 14904* BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL: howto manager. (line 3903) 14905* BFD_RELOC_TILEGX_IMM16_X1_HW2: howto manager. (line 3875) 14906* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST: howto manager. (line 3883) 14907* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL: howto manager. (line 3897) 14908* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL: howto manager. 14909 (line 3931) 14910* BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL: howto manager. (line 3889) 14911* BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL: howto manager. (line 3905) 14912* BFD_RELOC_TILEGX_IMM16_X1_HW3: howto manager. (line 3877) 14913* BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL: howto manager. (line 3891) 14914* BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL: howto manager. (line 3911) 14915* BFD_RELOC_TILEGX_IMM8_X0: howto manager. (line 3857) 14916* BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD: howto manager. (line 3948) 14917* BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD: howto manager. (line 3943) 14918* BFD_RELOC_TILEGX_IMM8_X1: howto manager. (line 3859) 14919* BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD: howto manager. (line 3949) 14920* BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD: howto manager. (line 3944) 14921* BFD_RELOC_TILEGX_IMM8_Y0: howto manager. (line 3858) 14922* BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD: howto manager. (line 3950) 14923* BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD: howto manager. (line 3945) 14924* BFD_RELOC_TILEGX_IMM8_Y1: howto manager. (line 3860) 14925* BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD: howto manager. (line 3951) 14926* BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD: howto manager. (line 3946) 14927* BFD_RELOC_TILEGX_JMP_SLOT: howto manager. (line 3852) 14928* BFD_RELOC_TILEGX_JUMPOFF_X1: howto manager. (line 3855) 14929* BFD_RELOC_TILEGX_JUMPOFF_X1_PLT: howto manager. (line 3856) 14930* BFD_RELOC_TILEGX_MF_IMM14_X1: howto manager. (line 3863) 14931* BFD_RELOC_TILEGX_MMEND_X0: howto manager. (line 3865) 14932* BFD_RELOC_TILEGX_MMSTART_X0: howto manager. (line 3864) 14933* BFD_RELOC_TILEGX_MT_IMM14_X1: howto manager. (line 3862) 14934* BFD_RELOC_TILEGX_RELATIVE: howto manager. (line 3853) 14935* BFD_RELOC_TILEGX_SHAMT_X0: howto manager. (line 3866) 14936* BFD_RELOC_TILEGX_SHAMT_X1: howto manager. (line 3867) 14937* BFD_RELOC_TILEGX_SHAMT_Y0: howto manager. (line 3868) 14938* BFD_RELOC_TILEGX_SHAMT_Y1: howto manager. (line 3869) 14939* BFD_RELOC_TILEGX_TLS_DTPMOD32: howto manager. (line 3939) 14940* BFD_RELOC_TILEGX_TLS_DTPMOD64: howto manager. (line 3936) 14941* BFD_RELOC_TILEGX_TLS_DTPOFF32: howto manager. (line 3940) 14942* BFD_RELOC_TILEGX_TLS_DTPOFF64: howto manager. (line 3937) 14943* BFD_RELOC_TILEGX_TLS_GD_CALL: howto manager. (line 3942) 14944* BFD_RELOC_TILEGX_TLS_IE_LOAD: howto manager. (line 3947) 14945* BFD_RELOC_TILEGX_TLS_TPOFF32: howto manager. (line 3941) 14946* BFD_RELOC_TILEGX_TLS_TPOFF64: howto manager. (line 3938) 14947* BFD_RELOC_TILEPRO_BROFF_X1: howto manager. (line 3766) 14948* BFD_RELOC_TILEPRO_COPY: howto manager. (line 3762) 14949* BFD_RELOC_TILEPRO_DEST_IMM8_X1: howto manager. (line 3773) 14950* BFD_RELOC_TILEPRO_GLOB_DAT: howto manager. (line 3763) 14951* BFD_RELOC_TILEPRO_IMM16_X0: howto manager. (line 3776) 14952* BFD_RELOC_TILEPRO_IMM16_X0_GOT: howto manager. (line 3792) 14953* BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA: howto manager. (line 3798) 14954* BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI: howto manager. (line 3796) 14955* BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO: howto manager. (line 3794) 14956* BFD_RELOC_TILEPRO_IMM16_X0_HA: howto manager. (line 3782) 14957* BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL: howto manager. (line 3790) 14958* BFD_RELOC_TILEPRO_IMM16_X0_HI: howto manager. (line 3780) 14959* BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL: howto manager. (line 3788) 14960* BFD_RELOC_TILEPRO_IMM16_X0_LO: howto manager. (line 3778) 14961* BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL: howto manager. (line 3786) 14962* BFD_RELOC_TILEPRO_IMM16_X0_PCREL: howto manager. (line 3784) 14963* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD: howto manager. (line 3814) 14964* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA: howto manager. (line 3820) 14965* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI: howto manager. (line 3818) 14966* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO: howto manager. (line 3816) 14967* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE: howto manager. (line 3822) 14968* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA: howto manager. (line 3828) 14969* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI: howto manager. (line 3826) 14970* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO: howto manager. (line 3824) 14971* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE: howto manager. (line 3833) 14972* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA: howto manager. (line 3839) 14973* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI: howto manager. (line 3837) 14974* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO: howto manager. (line 3835) 14975* BFD_RELOC_TILEPRO_IMM16_X1: howto manager. (line 3777) 14976* BFD_RELOC_TILEPRO_IMM16_X1_GOT: howto manager. (line 3793) 14977* BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA: howto manager. (line 3799) 14978* BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI: howto manager. (line 3797) 14979* BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO: howto manager. (line 3795) 14980* BFD_RELOC_TILEPRO_IMM16_X1_HA: howto manager. (line 3783) 14981* BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL: howto manager. (line 3791) 14982* BFD_RELOC_TILEPRO_IMM16_X1_HI: howto manager. (line 3781) 14983* BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL: howto manager. (line 3789) 14984* BFD_RELOC_TILEPRO_IMM16_X1_LO: howto manager. (line 3779) 14985* BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL: howto manager. (line 3787) 14986* BFD_RELOC_TILEPRO_IMM16_X1_PCREL: howto manager. (line 3785) 14987* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD: howto manager. (line 3815) 14988* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA: howto manager. (line 3821) 14989* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI: howto manager. (line 3819) 14990* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO: howto manager. (line 3817) 14991* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE: howto manager. (line 3823) 14992* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA: howto manager. (line 3829) 14993* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI: howto manager. (line 3827) 14994* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO: howto manager. (line 3825) 14995* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE: howto manager. (line 3834) 14996* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA: howto manager. (line 3840) 14997* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI: howto manager. (line 3838) 14998* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO: howto manager. (line 3836) 14999* BFD_RELOC_TILEPRO_IMM8_X0: howto manager. (line 3769) 15000* BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD: howto manager. (line 3809) 15001* BFD_RELOC_TILEPRO_IMM8_X1: howto manager. (line 3771) 15002* BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD: howto manager. (line 3810) 15003* BFD_RELOC_TILEPRO_IMM8_Y0: howto manager. (line 3770) 15004* BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD: howto manager. (line 3811) 15005* BFD_RELOC_TILEPRO_IMM8_Y1: howto manager. (line 3772) 15006* BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD: howto manager. (line 3812) 15007* BFD_RELOC_TILEPRO_JMP_SLOT: howto manager. (line 3764) 15008* BFD_RELOC_TILEPRO_JOFFLONG_X1: howto manager. (line 3767) 15009* BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT: howto manager. (line 3768) 15010* BFD_RELOC_TILEPRO_MF_IMM15_X1: howto manager. (line 3775) 15011* BFD_RELOC_TILEPRO_MMEND_X0: howto manager. (line 3801) 15012* BFD_RELOC_TILEPRO_MMEND_X1: howto manager. (line 3803) 15013* BFD_RELOC_TILEPRO_MMSTART_X0: howto manager. (line 3800) 15014* BFD_RELOC_TILEPRO_MMSTART_X1: howto manager. (line 3802) 15015* BFD_RELOC_TILEPRO_MT_IMM15_X1: howto manager. (line 3774) 15016* BFD_RELOC_TILEPRO_RELATIVE: howto manager. (line 3765) 15017* BFD_RELOC_TILEPRO_SHAMT_X0: howto manager. (line 3804) 15018* BFD_RELOC_TILEPRO_SHAMT_X1: howto manager. (line 3805) 15019* BFD_RELOC_TILEPRO_SHAMT_Y0: howto manager. (line 3806) 15020* BFD_RELOC_TILEPRO_SHAMT_Y1: howto manager. (line 3807) 15021* BFD_RELOC_TILEPRO_TLS_DTPMOD32: howto manager. (line 3830) 15022* BFD_RELOC_TILEPRO_TLS_DTPOFF32: howto manager. (line 3831) 15023* BFD_RELOC_TILEPRO_TLS_GD_CALL: howto manager. (line 3808) 15024* BFD_RELOC_TILEPRO_TLS_IE_LOAD: howto manager. (line 3813) 15025* BFD_RELOC_TILEPRO_TLS_TPOFF32: howto manager. (line 3832) 15026* bfd_reloc_type_lookup: howto manager. (line 4120) 15027* BFD_RELOC_V850_16_GOT: howto manager. (line 1781) 15028* BFD_RELOC_V850_16_GOTOFF: howto manager. (line 1805) 15029* BFD_RELOC_V850_16_PCREL: howto manager. (line 1751) 15030* BFD_RELOC_V850_16_S1: howto manager. (line 1769) 15031* BFD_RELOC_V850_16_SPLIT_OFFSET: howto manager. (line 1766) 15032* BFD_RELOC_V850_17_PCREL: howto manager. (line 1754) 15033* BFD_RELOC_V850_22_PCREL: howto manager. (line 1686) 15034* BFD_RELOC_V850_22_PLT_PCREL: howto manager. (line 1787) 15035* BFD_RELOC_V850_23: howto manager. (line 1757) 15036* BFD_RELOC_V850_32_ABS: howto manager. (line 1763) 15037* BFD_RELOC_V850_32_GOT: howto manager. (line 1784) 15038* BFD_RELOC_V850_32_GOTOFF: howto manager. (line 1808) 15039* BFD_RELOC_V850_32_GOTPCREL: howto manager. (line 1778) 15040* BFD_RELOC_V850_32_PCREL: howto manager. (line 1760) 15041* BFD_RELOC_V850_32_PLT_PCREL: howto manager. (line 1790) 15042* BFD_RELOC_V850_9_PCREL: howto manager. (line 1683) 15043* BFD_RELOC_V850_ALIGN: howto manager. (line 1744) 15044* BFD_RELOC_V850_CALLT_15_16_OFFSET: howto manager. (line 1775) 15045* BFD_RELOC_V850_CALLT_16_16_OFFSET: howto manager. (line 1735) 15046* BFD_RELOC_V850_CALLT_6_7_OFFSET: howto manager. (line 1732) 15047* BFD_RELOC_V850_CODE: howto manager. (line 1811) 15048* BFD_RELOC_V850_COPY: howto manager. (line 1793) 15049* BFD_RELOC_V850_DATA: howto manager. (line 1814) 15050* BFD_RELOC_V850_GLOB_DAT: howto manager. (line 1796) 15051* BFD_RELOC_V850_JMP_SLOT: howto manager. (line 1799) 15052* BFD_RELOC_V850_LO16_S1: howto manager. (line 1772) 15053* BFD_RELOC_V850_LO16_SPLIT_OFFSET: howto manager. (line 1747) 15054* BFD_RELOC_V850_LONGCALL: howto manager. (line 1738) 15055* BFD_RELOC_V850_LONGJUMP: howto manager. (line 1741) 15056* BFD_RELOC_V850_RELATIVE: howto manager. (line 1802) 15057* BFD_RELOC_V850_SDA_15_16_OFFSET: howto manager. (line 1692) 15058* BFD_RELOC_V850_SDA_16_16_OFFSET: howto manager. (line 1689) 15059* BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET: howto manager. (line 1724) 15060* BFD_RELOC_V850_TDA_16_16_OFFSET: howto manager. (line 1714) 15061* BFD_RELOC_V850_TDA_4_4_OFFSET: howto manager. (line 1721) 15062* BFD_RELOC_V850_TDA_4_5_OFFSET: howto manager. (line 1717) 15063* BFD_RELOC_V850_TDA_6_8_OFFSET: howto manager. (line 1703) 15064* BFD_RELOC_V850_TDA_7_7_OFFSET: howto manager. (line 1711) 15065* BFD_RELOC_V850_TDA_7_8_OFFSET: howto manager. (line 1707) 15066* BFD_RELOC_V850_ZDA_15_16_OFFSET: howto manager. (line 1699) 15067* BFD_RELOC_V850_ZDA_16_16_OFFSET: howto manager. (line 1696) 15068* BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET: howto manager. (line 1728) 15069* BFD_RELOC_VAX_GLOB_DAT: howto manager. (line 97) 15070* BFD_RELOC_VAX_GLOB_REF: howto manager. (line 98) 15071* BFD_RELOC_VAX_JMP_SLOT: howto manager. (line 99) 15072* BFD_RELOC_VAX_RELATIVE: howto manager. (line 100) 15073* BFD_RELOC_VISIUM_HI16: howto manager. (line 3983) 15074* BFD_RELOC_VISIUM_HI16_PCREL: howto manager. (line 3987) 15075* BFD_RELOC_VISIUM_IM16: howto manager. (line 3985) 15076* BFD_RELOC_VISIUM_IM16_PCREL: howto manager. (line 3989) 15077* BFD_RELOC_VISIUM_LO16: howto manager. (line 3984) 15078* BFD_RELOC_VISIUM_LO16_PCREL: howto manager. (line 3988) 15079* BFD_RELOC_VISIUM_REL16: howto manager. (line 3986) 15080* BFD_RELOC_VPE4KMATH_DATA: howto manager. (line 2461) 15081* BFD_RELOC_VPE4KMATH_INSN: howto manager. (line 2462) 15082* BFD_RELOC_VTABLE_ENTRY: howto manager. (line 2466) 15083* BFD_RELOC_VTABLE_INHERIT: howto manager. (line 2465) 15084* BFD_RELOC_WASM32_ABS32_CODE: howto manager. (line 3997) 15085* BFD_RELOC_WASM32_CODE_POINTER: howto manager. (line 3999) 15086* BFD_RELOC_WASM32_COPY: howto manager. (line 3998) 15087* BFD_RELOC_WASM32_INDEX: howto manager. (line 4000) 15088* BFD_RELOC_WASM32_LEB128: howto manager. (line 3992) 15089* BFD_RELOC_WASM32_LEB128_GOT: howto manager. (line 3993) 15090* BFD_RELOC_WASM32_LEB128_GOT_CODE: howto manager. (line 3994) 15091* BFD_RELOC_WASM32_LEB128_PLT: howto manager. (line 3995) 15092* BFD_RELOC_WASM32_PLT_INDEX: howto manager. (line 3996) 15093* BFD_RELOC_WASM32_PLT_SIG: howto manager. (line 4001) 15094* BFD_RELOC_X86_64_32S: howto manager. (line 631) 15095* BFD_RELOC_X86_64_COPY: howto manager. (line 626) 15096* BFD_RELOC_X86_64_DTPMOD64: howto manager. (line 632) 15097* BFD_RELOC_X86_64_DTPOFF32: howto manager. (line 637) 15098* BFD_RELOC_X86_64_DTPOFF64: howto manager. (line 633) 15099* BFD_RELOC_X86_64_GLOB_DAT: howto manager. (line 627) 15100* BFD_RELOC_X86_64_GOT32: howto manager. (line 624) 15101* BFD_RELOC_X86_64_GOT64: howto manager. (line 642) 15102* BFD_RELOC_X86_64_GOTOFF64: howto manager. (line 640) 15103* BFD_RELOC_X86_64_GOTPC32: howto manager. (line 641) 15104* BFD_RELOC_X86_64_GOTPC32_TLSDESC: howto manager. (line 647) 15105* BFD_RELOC_X86_64_GOTPC64: howto manager. (line 644) 15106* BFD_RELOC_X86_64_GOTPCREL: howto manager. (line 630) 15107* BFD_RELOC_X86_64_GOTPCREL64: howto manager. (line 643) 15108* BFD_RELOC_X86_64_GOTPCRELX: howto manager. (line 653) 15109* BFD_RELOC_X86_64_GOTPLT64: howto manager. (line 645) 15110* BFD_RELOC_X86_64_GOTTPOFF: howto manager. (line 638) 15111* BFD_RELOC_X86_64_IRELATIVE: howto manager. (line 650) 15112* BFD_RELOC_X86_64_JUMP_SLOT: howto manager. (line 628) 15113* BFD_RELOC_X86_64_PC32_BND: howto manager. (line 651) 15114* BFD_RELOC_X86_64_PLT32: howto manager. (line 625) 15115* BFD_RELOC_X86_64_PLT32_BND: howto manager. (line 652) 15116* BFD_RELOC_X86_64_PLTOFF64: howto manager. (line 646) 15117* BFD_RELOC_X86_64_RELATIVE: howto manager. (line 629) 15118* BFD_RELOC_X86_64_REX_GOTPCRELX: howto manager. (line 654) 15119* BFD_RELOC_X86_64_TLSDESC: howto manager. (line 649) 15120* BFD_RELOC_X86_64_TLSDESC_CALL: howto manager. (line 648) 15121* BFD_RELOC_X86_64_TLSGD: howto manager. (line 635) 15122* BFD_RELOC_X86_64_TLSLD: howto manager. (line 636) 15123* BFD_RELOC_X86_64_TPOFF32: howto manager. (line 639) 15124* BFD_RELOC_X86_64_TPOFF64: howto manager. (line 634) 15125* BFD_RELOC_XGATE_24: howto manager. (line 2624) 15126* BFD_RELOC_XGATE_GPAGE: howto manager. (line 2621) 15127* BFD_RELOC_XGATE_IMM3: howto manager. (line 2641) 15128* BFD_RELOC_XGATE_IMM4: howto manager. (line 2644) 15129* BFD_RELOC_XGATE_IMM5: howto manager. (line 2647) 15130* BFD_RELOC_XGATE_IMM8_HI: howto manager. (line 2637) 15131* BFD_RELOC_XGATE_IMM8_LO: howto manager. (line 2633) 15132* BFD_RELOC_XGATE_LO16: howto manager. (line 2617) 15133* BFD_RELOC_XGATE_PCREL_10: howto manager. (line 2630) 15134* BFD_RELOC_XGATE_PCREL_9: howto manager. (line 2627) 15135* BFD_RELOC_XGATE_RL_GROUP: howto manager. (line 2612) 15136* BFD_RELOC_XGATE_RL_JUMP: howto manager. (line 2608) 15137* BFD_RELOC_XSTORMY16_12: howto manager. (line 2838) 15138* BFD_RELOC_XSTORMY16_24: howto manager. (line 2839) 15139* BFD_RELOC_XSTORMY16_FPTR16: howto manager. (line 2840) 15140* BFD_RELOC_XSTORMY16_REL_12: howto manager. (line 2837) 15141* BFD_RELOC_XTENSA_ASM_EXPAND: howto manager. (line 3060) 15142* BFD_RELOC_XTENSA_ASM_SIMPLIFY: howto manager. (line 3065) 15143* BFD_RELOC_XTENSA_DIFF16: howto manager. (line 3005) 15144* BFD_RELOC_XTENSA_DIFF32: howto manager. (line 3006) 15145* BFD_RELOC_XTENSA_DIFF8: howto manager. (line 3004) 15146* BFD_RELOC_XTENSA_GLOB_DAT: howto manager. (line 2994) 15147* BFD_RELOC_XTENSA_JMP_SLOT: howto manager. (line 2995) 15148* BFD_RELOC_XTENSA_NDIFF16: howto manager. (line 3083) 15149* BFD_RELOC_XTENSA_NDIFF32: howto manager. (line 3084) 15150* BFD_RELOC_XTENSA_NDIFF8: howto manager. (line 3082) 15151* BFD_RELOC_XTENSA_OP0: howto manager. (line 3054) 15152* BFD_RELOC_XTENSA_OP1: howto manager. (line 3055) 15153* BFD_RELOC_XTENSA_OP2: howto manager. (line 3056) 15154* BFD_RELOC_XTENSA_PDIFF16: howto manager. (line 3080) 15155* BFD_RELOC_XTENSA_PDIFF32: howto manager. (line 3081) 15156* BFD_RELOC_XTENSA_PDIFF8: howto manager. (line 3079) 15157* BFD_RELOC_XTENSA_PLT: howto manager. (line 2999) 15158* BFD_RELOC_XTENSA_RELATIVE: howto manager. (line 2996) 15159* BFD_RELOC_XTENSA_RTLD: howto manager. (line 2989) 15160* BFD_RELOC_XTENSA_SLOT0_ALT: howto manager. (line 3036) 15161* BFD_RELOC_XTENSA_SLOT0_OP: howto manager. (line 3016) 15162* BFD_RELOC_XTENSA_SLOT10_ALT: howto manager. (line 3046) 15163* BFD_RELOC_XTENSA_SLOT10_OP: howto manager. (line 3026) 15164* BFD_RELOC_XTENSA_SLOT11_ALT: howto manager. (line 3047) 15165* BFD_RELOC_XTENSA_SLOT11_OP: howto manager. (line 3027) 15166* BFD_RELOC_XTENSA_SLOT12_ALT: howto manager. (line 3048) 15167* BFD_RELOC_XTENSA_SLOT12_OP: howto manager. (line 3028) 15168* BFD_RELOC_XTENSA_SLOT13_ALT: howto manager. (line 3049) 15169* BFD_RELOC_XTENSA_SLOT13_OP: howto manager. (line 3029) 15170* BFD_RELOC_XTENSA_SLOT14_ALT: howto manager. (line 3050) 15171* BFD_RELOC_XTENSA_SLOT14_OP: howto manager. (line 3030) 15172* BFD_RELOC_XTENSA_SLOT1_ALT: howto manager. (line 3037) 15173* BFD_RELOC_XTENSA_SLOT1_OP: howto manager. (line 3017) 15174* BFD_RELOC_XTENSA_SLOT2_ALT: howto manager. (line 3038) 15175* BFD_RELOC_XTENSA_SLOT2_OP: howto manager. (line 3018) 15176* BFD_RELOC_XTENSA_SLOT3_ALT: howto manager. (line 3039) 15177* BFD_RELOC_XTENSA_SLOT3_OP: howto manager. (line 3019) 15178* BFD_RELOC_XTENSA_SLOT4_ALT: howto manager. (line 3040) 15179* BFD_RELOC_XTENSA_SLOT4_OP: howto manager. (line 3020) 15180* BFD_RELOC_XTENSA_SLOT5_ALT: howto manager. (line 3041) 15181* BFD_RELOC_XTENSA_SLOT5_OP: howto manager. (line 3021) 15182* BFD_RELOC_XTENSA_SLOT6_ALT: howto manager. (line 3042) 15183* BFD_RELOC_XTENSA_SLOT6_OP: howto manager. (line 3022) 15184* BFD_RELOC_XTENSA_SLOT7_ALT: howto manager. (line 3043) 15185* BFD_RELOC_XTENSA_SLOT7_OP: howto manager. (line 3023) 15186* BFD_RELOC_XTENSA_SLOT8_ALT: howto manager. (line 3044) 15187* BFD_RELOC_XTENSA_SLOT8_OP: howto manager. (line 3024) 15188* BFD_RELOC_XTENSA_SLOT9_ALT: howto manager. (line 3045) 15189* BFD_RELOC_XTENSA_SLOT9_OP: howto manager. (line 3025) 15190* BFD_RELOC_XTENSA_TLS_ARG: howto manager. (line 3075) 15191* BFD_RELOC_XTENSA_TLS_CALL: howto manager. (line 3076) 15192* BFD_RELOC_XTENSA_TLS_DTPOFF: howto manager. (line 3072) 15193* BFD_RELOC_XTENSA_TLS_FUNC: howto manager. (line 3074) 15194* BFD_RELOC_XTENSA_TLS_TPOFF: howto manager. (line 3073) 15195* BFD_RELOC_XTENSA_TLSDESC_ARG: howto manager. (line 3071) 15196* BFD_RELOC_XTENSA_TLSDESC_FN: howto manager. (line 3070) 15197* BFD_RELOC_Z80_16_BE: howto manager. (line 3116) 15198* BFD_RELOC_Z80_BYTE0: howto manager. (line 3098) 15199* BFD_RELOC_Z80_BYTE1: howto manager. (line 3101) 15200* BFD_RELOC_Z80_BYTE2: howto manager. (line 3104) 15201* BFD_RELOC_Z80_BYTE3: howto manager. (line 3107) 15202* BFD_RELOC_Z80_DISP8: howto manager. (line 3095) 15203* BFD_RELOC_Z80_WORD0: howto manager. (line 3110) 15204* BFD_RELOC_Z80_WORD1: howto manager. (line 3113) 15205* BFD_RELOC_Z8K_CALLR: howto manager. (line 3122) 15206* BFD_RELOC_Z8K_DISP7: howto manager. (line 3119) 15207* BFD_RELOC_Z8K_IMM4L: howto manager. (line 3125) 15208* bfd_rename_section: section prototypes. (line 169) 15209* bfd_scan_arch: Architectures. (line 589) 15210* bfd_scan_vma: Miscellaneous. (line 137) 15211* bfd_section_already_linked: Writing the symbol table. 15212 (line 55) 15213* bfd_section_list_clear: section prototypes. (line 8) 15214* bfd_sections_find_if: section prototypes. (line 199) 15215* bfd_set_arch_info: Architectures. (line 630) 15216* bfd_set_archive_head: Archives. (line 75) 15217* bfd_set_assert_handler: Error reporting. (line 160) 15218* bfd_set_default_target: bfd_target. (line 568) 15219* bfd_set_error: Error reporting. (line 58) 15220* bfd_set_error_handler: Error reporting. (line 127) 15221* bfd_set_error_program_name: Error reporting. (line 135) 15222* bfd_set_file_flags: Miscellaneous. (line 46) 15223* bfd_set_filename: Opening and Closing. 15224 (line 521) 15225* bfd_set_format: Formats. (line 68) 15226* bfd_set_gp_size: Miscellaneous. (line 118) 15227* bfd_set_gp_value: Miscellaneous. (line 128) 15228* bfd_set_input_error: Error reporting. (line 69) 15229* bfd_set_private_flags: Miscellaneous. (line 187) 15230* bfd_set_reloc: Miscellaneous. (line 34) 15231* bfd_set_section_contents: section prototypes. (line 229) 15232* bfd_set_section_flags: section prototypes. (line 156) 15233* bfd_set_section_size: section prototypes. (line 216) 15234* bfd_set_start_address: Miscellaneous. (line 97) 15235* bfd_set_symtab: symbol handling functions. 15236 (line 60) 15237* bfd_symbol_info: symbol handling functions. 15238 (line 130) 15239* bfd_target_list: bfd_target. (line 620) 15240* bfd_update_compression_header: Miscellaneous. (line 349) 15241* bfd_zalloc: Opening and Closing. 15242 (line 258) 15243* check_build_id_file: Opening and Closing. 15244 (line 483) 15245* coff_symbol_type: coff. (line 234) 15246* core_file_matches_executable_p: Core Files. (line 39) 15247* find_separate_debug_file: Opening and Closing. 15248 (line 357) 15249* generic_core_file_matches_executable_p: Core Files. (line 49) 15250* get_build_id: Opening and Closing. 15251 (line 452) 15252* get_build_id_name: Opening and Closing. 15253 (line 466) 15254* Hash tables: Hash Tables. (line 6) 15255* internal object-file format: Canonical format. (line 11) 15256* Linker: Linker Functions. (line 6) 15257* Other functions: Miscellaneous. (line 202) 15258* separate_alt_debug_file_exists: Opening and Closing. 15259 (line 348) 15260* separate_debug_file_exists: Opening and Closing. 15261 (line 335) 15262* struct bfd_iovec: Miscellaneous. (line 410) 15263* target vector (_bfd_final_link): Performing the Final Link. 15264 (line 6) 15265* target vector (_bfd_link_add_symbols): Adding Symbols to the Hash Table. 15266 (line 6) 15267* target vector (_bfd_link_hash_table_create): Creating a Linker Hash Table. 15268 (line 6) 15269* The HOWTO Macro: typedef arelent. (line 284) 15270* what is it?: Overview. (line 6) 15271 15272 15273 15274Tag Table: 15275Node: Top1227 15276Node: Overview1566 15277Node: History2617 15278Node: How It Works3563 15279Node: What BFD Version 2 Can Do5106 15280Node: BFD information loss6421 15281Node: Canonical format8953 15282Node: BFD front end13296 15283Node: typedef bfd13720 15284Node: Error reporting31766 15285Node: Miscellaneous37022 15286Node: Memory Usage55939 15287Node: Initialization57167 15288Node: Sections57843 15289Node: Section Input58326 15290Node: Section Output59517 15291Node: typedef asection62003 15292Node: section prototypes86494 15293Node: Symbols97164 15294Node: Reading Symbols98759 15295Node: Writing Symbols99866 15296Node: Mini Symbols101607 15297Node: typedef asymbol102581 15298Node: symbol handling functions108803 15299Node: Archives114140 15300Node: Formats118272 15301Node: Relocations121199 15302Node: typedef arelent121926 15303Node: howto manager136618 15304Node: Core Files272776 15305Node: Targets274800 15306Node: bfd_target276770 15307Node: Architectures303530 15308Node: Opening and Closing335390 15309Node: Internal353563 15310Node: File Caching353667 15311Node: Linker Functions355560 15312Node: Creating a Linker Hash Table357233 15313Node: Adding Symbols to the Hash Table358971 15314Node: Differing file formats359871 15315Node: Adding symbols from an object file361596 15316Node: Adding symbols from an archive363747 15317Node: Performing the Final Link366093 15318Node: Information provided by the linker367335 15319Node: Relocating the section contents368489 15320Node: Writing the symbol table370240 15321Node: Hash Tables377326 15322Node: Creating and Freeing a Hash Table378524 15323Node: Looking Up or Entering a String379774 15324Node: Traversing a Hash Table381027 15325Node: Deriving a New Hash Table Type381816 15326Node: Define the Derived Structures382882 15327Node: Write the Derived Creation Routine383963 15328Node: Write Other Derived Routines386588 15329Node: BFD back ends387903 15330Node: What to Put Where388173 15331Node: aout388353 15332Node: coff394603 15333Node: elf422708 15334Node: mmo423109 15335Node: File layout423982 15336Node: Symbol-table429909 15337Node: mmo section mapping433673 15338Node: GNU Free Documentation License437325 15339Node: BFD Index462408 15340 15341End Tag Table 15342