bfd.info revision 1.1.1.4
1This is bfd.info, produced by makeinfo version 4.8 from bfd.texinfo. 2 3INFO-DIR-SECTION Software development 4START-INFO-DIR-ENTRY 5* Bfd: (bfd). The Binary File Descriptor library. 6END-INFO-DIR-ENTRY 7 8 This file documents the BFD library. 9 10 Copyright (C) 1991-2015 Free Software Foundation, Inc. 11 12 Permission is granted to copy, distribute and/or modify this document 13under the terms of the GNU Free Documentation License, Version 1.3 or 14any later version published by the Free Software Foundation; with the 15Invariant Sections being "GNU General Public License" and "Funding Free 16Software", the Front-Cover texts being (a) (see below), and with the 17Back-Cover Texts being (b) (see below). A copy of the license is 18included in the section entitled "GNU Free Documentation License". 19 20 (a) The FSF's Front-Cover Text is: 21 22 A GNU Manual 23 24 (b) The FSF's Back-Cover Text is: 25 26 You have freedom to copy and modify this GNU Manual, like GNU 27software. Copies published by the Free Software Foundation raise 28funds for GNU development. 29 30 31File: bfd.info, Node: Top, Next: Overview, Prev: (dir), Up: (dir) 32 33 This file documents the binary file descriptor library libbfd. 34 35* Menu: 36 37* Overview:: Overview of BFD 38* BFD front end:: BFD front end 39* BFD back ends:: BFD back ends 40* GNU Free Documentation License:: GNU Free Documentation License 41* BFD Index:: BFD Index 42 43 44File: bfd.info, Node: Overview, Next: BFD front end, Prev: Top, Up: Top 45 461 Introduction 47************** 48 49BFD is a package which allows applications to use the same routines to 50operate on object files whatever the object file format. A new object 51file format can be supported simply by creating a new BFD back end and 52adding it to the library. 53 54 BFD is split into two parts: the front end, and the back ends (one 55for each object file format). 56 * The front end of BFD provides the interface to the user. It manages 57 memory and various canonical data structures. The front end also 58 decides which back end to use and when to call back end routines. 59 60 * The back ends provide BFD its view of the real world. Each back 61 end provides a set of calls which the BFD front end can use to 62 maintain its canonical form. The back ends also may keep around 63 information for their own use, for greater efficiency. 64 65* Menu: 66 67* History:: History 68* How It Works:: How It Works 69* What BFD Version 2 Can Do:: What BFD Version 2 Can Do 70 71 72File: bfd.info, Node: History, Next: How It Works, Prev: Overview, Up: Overview 73 741.1 History 75=========== 76 77One spur behind BFD was the desire, on the part of the GNU 960 team at 78Intel Oregon, for interoperability of applications on their COFF and 79b.out file formats. Cygnus was providing GNU support for the team, and 80was contracted to provide the required functionality. 81 82 The name came from a conversation David Wallace was having with 83Richard Stallman about the library: RMS said that it would be quite 84hard--David said "BFD". Stallman was right, but the name stuck. 85 86 At the same time, Ready Systems wanted much the same thing, but for 87different object file formats: IEEE-695, Oasys, Srecords, a.out and 68k 88coff. 89 90 BFD was first implemented by members of Cygnus Support; Steve 91Chamberlain (`sac@cygnus.com'), John Gilmore (`gnu@cygnus.com'), K. 92Richard Pixley (`rich@cygnus.com') and David Henkel-Wallace 93(`gumby@cygnus.com'). 94 95 96File: bfd.info, Node: How It Works, Next: What BFD Version 2 Can Do, Prev: History, Up: Overview 97 981.2 How To Use BFD 99================== 100 101To use the library, include `bfd.h' and link with `libbfd.a'. 102 103 BFD provides a common interface to the parts of an object file for a 104calling application. 105 106 When an application successfully opens a target file (object, 107archive, or whatever), a pointer to an internal structure is returned. 108This pointer points to a structure called `bfd', described in `bfd.h'. 109Our convention is to call this pointer a BFD, and instances of it 110within code `abfd'. All operations on the target object file are 111applied as methods to the BFD. The mapping is defined within `bfd.h' 112in a set of macros, all beginning with `bfd_' to reduce namespace 113pollution. 114 115 For example, this sequence does what you would probably expect: 116return the number of sections in an object file attached to a BFD 117`abfd'. 118 119 #include "bfd.h" 120 121 unsigned int number_of_sections (abfd) 122 bfd *abfd; 123 { 124 return bfd_count_sections (abfd); 125 } 126 127 The abstraction used within BFD is that an object file has: 128 129 * a header, 130 131 * a number of sections containing raw data (*note Sections::), 132 133 * a set of relocations (*note Relocations::), and 134 135 * some symbol information (*note Symbols::). 136 Also, BFDs opened for archives have the additional attribute of an 137index and contain subordinate BFDs. This approach is fine for a.out and 138coff, but loses efficiency when applied to formats such as S-records and 139IEEE-695. 140 141 142File: bfd.info, Node: What BFD Version 2 Can Do, Prev: How It Works, Up: Overview 143 1441.3 What BFD Version 2 Can Do 145============================= 146 147When an object file is opened, BFD subroutines automatically determine 148the format of the input object file. They then build a descriptor in 149memory with pointers to routines that will be used to access elements of 150the object file's data structures. 151 152 As different information from the object files is required, BFD 153reads from different sections of the file and processes them. For 154example, a very common operation for the linker is processing symbol 155tables. Each BFD back end provides a routine for converting between 156the object file's representation of symbols and an internal canonical 157format. When the linker asks for the symbol table of an object file, it 158calls through a memory pointer to the routine from the relevant BFD 159back end which reads and converts the table into a canonical form. The 160linker then operates upon the canonical form. When the link is finished 161and the linker writes the output file's symbol table, another BFD back 162end routine is called to take the newly created symbol table and 163convert it into the chosen output format. 164 165* Menu: 166 167* BFD information loss:: Information Loss 168* Canonical format:: The BFD canonical object-file format 169 170 171File: bfd.info, Node: BFD information loss, Next: Canonical format, Up: What BFD Version 2 Can Do 172 1731.3.1 Information Loss 174---------------------- 175 176_Information can be lost during output._ The output formats supported 177by BFD do not provide identical facilities, and information which can 178be described in one form has nowhere to go in another format. One 179example of this is alignment information in `b.out'. There is nowhere 180in an `a.out' format file to store alignment information on the 181contained data, so when a file is linked from `b.out' and an `a.out' 182image is produced, alignment information will not propagate to the 183output file. (The linker will still use the alignment information 184internally, so the link is performed correctly). 185 186 Another example is COFF section names. COFF files may contain an 187unlimited number of sections, each one with a textual section name. If 188the target of the link is a format which does not have many sections 189(e.g., `a.out') or has sections without names (e.g., the Oasys format), 190the link cannot be done simply. You can circumvent this problem by 191describing the desired input-to-output section mapping with the linker 192command language. 193 194 _Information can be lost during canonicalization._ The BFD internal 195canonical form of the external formats is not exhaustive; there are 196structures in input formats for which there is no direct representation 197internally. This means that the BFD back ends cannot maintain all 198possible data richness through the transformation between external to 199internal and back to external formats. 200 201 This limitation is only a problem when an application reads one 202format and writes another. Each BFD back end is responsible for 203maintaining as much data as possible, and the internal BFD canonical 204form has structures which are opaque to the BFD core, and exported only 205to the back ends. When a file is read in one format, the canonical form 206is generated for BFD and the application. At the same time, the back 207end saves away any information which may otherwise be lost. If the data 208is then written back in the same format, the back end routine will be 209able to use the canonical form provided by the BFD core as well as the 210information it prepared earlier. Since there is a great deal of 211commonality between back ends, there is no information lost when 212linking or copying big endian COFF to little endian COFF, or `a.out' to 213`b.out'. When a mixture of formats is linked, the information is only 214lost from the files whose format differs from the destination. 215 216 217File: bfd.info, Node: Canonical format, Prev: BFD information loss, Up: What BFD Version 2 Can Do 218 2191.3.2 The BFD canonical object-file format 220------------------------------------------ 221 222The greatest potential for loss of information occurs when there is the 223least overlap between the information provided by the source format, 224that stored by the canonical format, and that needed by the destination 225format. A brief description of the canonical form may help you 226understand which kinds of data you can count on preserving across 227conversions. 228 229_files_ 230 Information stored on a per-file basis includes target machine 231 architecture, particular implementation format type, a demand 232 pageable bit, and a write protected bit. Information like Unix 233 magic numbers is not stored here--only the magic numbers' meaning, 234 so a `ZMAGIC' file would have both the demand pageable bit and the 235 write protected text bit set. The byte order of the target is 236 stored on a per-file basis, so that big- and little-endian object 237 files may be used with one another. 238 239_sections_ 240 Each section in the input file contains the name of the section, 241 the section's original address in the object file, size and 242 alignment information, various flags, and pointers into other BFD 243 data structures. 244 245_symbols_ 246 Each symbol contains a pointer to the information for the object 247 file which originally defined it, its name, its value, and various 248 flag bits. When a BFD back end reads in a symbol table, it 249 relocates all symbols to make them relative to the base of the 250 section where they were defined. Doing this ensures that each 251 symbol points to its containing section. Each symbol also has a 252 varying amount of hidden private data for the BFD back end. Since 253 the symbol points to the original file, the private data format 254 for that symbol is accessible. `ld' can operate on a collection 255 of symbols of wildly different formats without problems. 256 257 Normal global and simple local symbols are maintained on output, 258 so an output file (no matter its format) will retain symbols 259 pointing to functions and to global, static, and common variables. 260 Some symbol information is not worth retaining; in `a.out', type 261 information is stored in the symbol table as long symbol names. 262 This information would be useless to most COFF debuggers; the 263 linker has command line switches to allow users to throw it away. 264 265 There is one word of type information within the symbol, so if the 266 format supports symbol type information within symbols (for 267 example, COFF, IEEE, Oasys) and the type is simple enough to fit 268 within one word (nearly everything but aggregates), the 269 information will be preserved. 270 271_relocation level_ 272 Each canonical BFD relocation record contains a pointer to the 273 symbol to relocate to, the offset of the data to relocate, the 274 section the data is in, and a pointer to a relocation type 275 descriptor. Relocation is performed by passing messages through 276 the relocation type descriptor and the symbol pointer. Therefore, 277 relocations can be performed on output data using a relocation 278 method that is only available in one of the input formats. For 279 instance, Oasys provides a byte relocation format. A relocation 280 record requesting this relocation type would point indirectly to a 281 routine to perform this, so the relocation may be performed on a 282 byte being written to a 68k COFF file, even though 68k COFF has no 283 such relocation type. 284 285_line numbers_ 286 Object formats can contain, for debugging purposes, some form of 287 mapping between symbols, source line numbers, and addresses in the 288 output file. These addresses have to be relocated along with the 289 symbol information. Each symbol with an associated list of line 290 number records points to the first record of the list. The head 291 of a line number list consists of a pointer to the symbol, which 292 allows finding out the address of the function whose line number 293 is being described. The rest of the list is made up of pairs: 294 offsets into the section and line numbers. Any format which can 295 simply derive this information can pass it successfully between 296 formats (COFF, IEEE and Oasys). 297 298 299File: bfd.info, Node: BFD front end, Next: BFD back ends, Prev: Overview, Up: Top 300 3012 BFD Front End 302*************** 303 304* Menu: 305 306* typedef bfd:: 307* Error reporting:: 308* Miscellaneous:: 309* Memory Usage:: 310* Initialization:: 311* Sections:: 312* Symbols:: 313* Archives:: 314* Formats:: 315* Relocations:: 316* Core Files:: 317* Targets:: 318* Architectures:: 319* Opening and Closing:: 320* Internal:: 321* File Caching:: 322* Linker Functions:: 323* Hash Tables:: 324 325 326File: bfd.info, Node: typedef bfd, Next: Error reporting, Prev: BFD front end, Up: BFD front end 327 3282.1 `typedef bfd' 329================= 330 331A BFD has type `bfd'; objects of this type are the cornerstone of any 332application using BFD. Using BFD consists of making references though 333the BFD and to data in the BFD. 334 335 Here is the structure that defines the type `bfd'. It contains the 336major data about the file and pointers to the rest of the data. 337 338 339 enum bfd_direction 340 { 341 no_direction = 0, 342 read_direction = 1, 343 write_direction = 2, 344 both_direction = 3 345 }; 346 347 enum bfd_plugin_format 348 { 349 bfd_plugin_uknown = 0, 350 bfd_plugin_yes = 1, 351 bfd_plugin_no = 2 352 }; 353 354 struct bfd_build_id 355 { 356 bfd_size_type size; 357 bfd_byte data[1]; 358 }; 359 360 struct bfd 361 { 362 /* The filename the application opened the BFD with. */ 363 const char *filename; 364 365 /* A pointer to the target jump table. */ 366 const struct bfd_target *xvec; 367 368 /* The IOSTREAM, and corresponding IO vector that provide access 369 to the file backing the BFD. */ 370 void *iostream; 371 const struct bfd_iovec *iovec; 372 373 /* The caching routines use these to maintain a 374 least-recently-used list of BFDs. */ 375 struct bfd *lru_prev, *lru_next; 376 377 /* When a file is closed by the caching routines, BFD retains 378 state information on the file here... */ 379 ufile_ptr where; 380 381 /* File modified time, if mtime_set is TRUE. */ 382 long mtime; 383 384 /* A unique identifier of the BFD */ 385 unsigned int id; 386 387 /* The format which belongs to the BFD. (object, core, etc.) */ 388 ENUM_BITFIELD (bfd_format) format : 3; 389 390 /* The direction with which the BFD was opened. */ 391 ENUM_BITFIELD (bfd_direction) direction : 2; 392 393 /* Format_specific flags. */ 394 flagword flags : 18; 395 396 /* Values that may appear in the flags field of a BFD. These also 397 appear in the object_flags field of the bfd_target structure, where 398 they indicate the set of flags used by that backend (not all flags 399 are meaningful for all object file formats) (FIXME: at the moment, 400 the object_flags values have mostly just been copied from backend 401 to another, and are not necessarily correct). */ 402 403 #define BFD_NO_FLAGS 0x00 404 405 /* BFD contains relocation entries. */ 406 #define HAS_RELOC 0x01 407 408 /* BFD is directly executable. */ 409 #define EXEC_P 0x02 410 411 /* BFD has line number information (basically used for F_LNNO in a 412 COFF header). */ 413 #define HAS_LINENO 0x04 414 415 /* BFD has debugging information. */ 416 #define HAS_DEBUG 0x08 417 418 /* BFD has symbols. */ 419 #define HAS_SYMS 0x10 420 421 /* BFD has local symbols (basically used for F_LSYMS in a COFF 422 header). */ 423 #define HAS_LOCALS 0x20 424 425 /* BFD is a dynamic object. */ 426 #define DYNAMIC 0x40 427 428 /* Text section is write protected (if D_PAGED is not set, this is 429 like an a.out NMAGIC file) (the linker sets this by default, but 430 clears it for -r or -N). */ 431 #define WP_TEXT 0x80 432 433 /* BFD is dynamically paged (this is like an a.out ZMAGIC file) (the 434 linker sets this by default, but clears it for -r or -n or -N). */ 435 #define D_PAGED 0x100 436 437 /* BFD is relaxable (this means that bfd_relax_section may be able to 438 do something) (sometimes bfd_relax_section can do something even if 439 this is not set). */ 440 #define BFD_IS_RELAXABLE 0x200 441 442 /* This may be set before writing out a BFD to request using a 443 traditional format. For example, this is used to request that when 444 writing out an a.out object the symbols not be hashed to eliminate 445 duplicates. */ 446 #define BFD_TRADITIONAL_FORMAT 0x400 447 448 /* This flag indicates that the BFD contents are actually cached 449 in memory. If this is set, iostream points to a bfd_in_memory 450 struct. */ 451 #define BFD_IN_MEMORY 0x800 452 453 /* This BFD has been created by the linker and doesn't correspond 454 to any input file. */ 455 #define BFD_LINKER_CREATED 0x1000 456 457 /* This may be set before writing out a BFD to request that it 458 be written using values for UIDs, GIDs, timestamps, etc. that 459 will be consistent from run to run. */ 460 #define BFD_DETERMINISTIC_OUTPUT 0x2000 461 462 /* Compress sections in this BFD. */ 463 #define BFD_COMPRESS 0x4000 464 465 /* Decompress sections in this BFD. */ 466 #define BFD_DECOMPRESS 0x8000 467 468 /* BFD is a dummy, for plugins. */ 469 #define BFD_PLUGIN 0x10000 470 471 /* Compress sections in this BFD with SHF_COMPRESSED from gABI. */ 472 #define BFD_COMPRESS_GABI 0x20000 473 474 /* Flags bits to be saved in bfd_preserve_save. */ 475 #define BFD_FLAGS_SAVED \ 476 (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_PLUGIN \ 477 | BFD_COMPRESS_GABI) 478 479 /* Flags bits which are for BFD use only. */ 480 #define BFD_FLAGS_FOR_BFD_USE_MASK \ 481 (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_LINKER_CREATED \ 482 | BFD_PLUGIN | BFD_TRADITIONAL_FORMAT | BFD_DETERMINISTIC_OUTPUT \ 483 | BFD_COMPRESS_GABI) 484 485 /* Is the file descriptor being cached? That is, can it be closed as 486 needed, and re-opened when accessed later? */ 487 unsigned int cacheable : 1; 488 489 /* Marks whether there was a default target specified when the 490 BFD was opened. This is used to select which matching algorithm 491 to use to choose the back end. */ 492 unsigned int target_defaulted : 1; 493 494 /* ... and here: (``once'' means at least once). */ 495 unsigned int opened_once : 1; 496 497 /* Set if we have a locally maintained mtime value, rather than 498 getting it from the file each time. */ 499 unsigned int mtime_set : 1; 500 501 /* Flag set if symbols from this BFD should not be exported. */ 502 unsigned int no_export : 1; 503 504 /* Remember when output has begun, to stop strange things 505 from happening. */ 506 unsigned int output_has_begun : 1; 507 508 /* Have archive map. */ 509 unsigned int has_armap : 1; 510 511 /* Set if this is a thin archive. */ 512 unsigned int is_thin_archive : 1; 513 514 /* Set if only required symbols should be added in the link hash table for 515 this object. Used by VMS linkers. */ 516 unsigned int selective_search : 1; 517 518 /* Set if this is the linker output BFD. */ 519 unsigned int is_linker_output : 1; 520 521 /* Set if this is the linker input BFD. */ 522 unsigned int is_linker_input : 1; 523 524 /* If this is an input for a compiler plug-in library. */ 525 ENUM_BITFIELD (bfd_plugin_format) plugin_format : 2; 526 527 /* Set if this is a plugin output file. */ 528 unsigned int lto_output : 1; 529 530 /* Set to dummy BFD created when claimed by a compiler plug-in 531 library. */ 532 bfd *plugin_dummy_bfd; 533 534 /* Currently my_archive is tested before adding origin to 535 anything. I believe that this can become always an add of 536 origin, with origin set to 0 for non archive files. */ 537 ufile_ptr origin; 538 539 /* The origin in the archive of the proxy entry. This will 540 normally be the same as origin, except for thin archives, 541 when it will contain the current offset of the proxy in the 542 thin archive rather than the offset of the bfd in its actual 543 container. */ 544 ufile_ptr proxy_origin; 545 546 /* A hash table for section names. */ 547 struct bfd_hash_table section_htab; 548 549 /* Pointer to linked list of sections. */ 550 struct bfd_section *sections; 551 552 /* The last section on the section list. */ 553 struct bfd_section *section_last; 554 555 /* The number of sections. */ 556 unsigned int section_count; 557 558 /* A field used by _bfd_generic_link_add_archive_symbols. This will 559 be used only for archive elements. */ 560 int archive_pass; 561 562 /* Stuff only useful for object files: 563 The start address. */ 564 bfd_vma start_address; 565 566 /* Symbol table for output BFD (with symcount entries). 567 Also used by the linker to cache input BFD symbols. */ 568 struct bfd_symbol **outsymbols; 569 570 /* Used for input and output. */ 571 unsigned int symcount; 572 573 /* Used for slurped dynamic symbol tables. */ 574 unsigned int dynsymcount; 575 576 /* Pointer to structure which contains architecture information. */ 577 const struct bfd_arch_info *arch_info; 578 579 /* Stuff only useful for archives. */ 580 void *arelt_data; 581 struct bfd *my_archive; /* The containing archive BFD. */ 582 struct bfd *archive_next; /* The next BFD in the archive. */ 583 struct bfd *archive_head; /* The first BFD in the archive. */ 584 struct bfd *nested_archives; /* List of nested archive in a flattened 585 thin archive. */ 586 587 union { 588 /* For input BFDs, a chain of BFDs involved in a link. */ 589 struct bfd *next; 590 /* For output BFD, the linker hash table. */ 591 struct bfd_link_hash_table *hash; 592 } link; 593 594 /* Used by the back end to hold private data. */ 595 union 596 { 597 struct aout_data_struct *aout_data; 598 struct artdata *aout_ar_data; 599 struct _oasys_data *oasys_obj_data; 600 struct _oasys_ar_data *oasys_ar_data; 601 struct coff_tdata *coff_obj_data; 602 struct pe_tdata *pe_obj_data; 603 struct xcoff_tdata *xcoff_obj_data; 604 struct ecoff_tdata *ecoff_obj_data; 605 struct ieee_data_struct *ieee_data; 606 struct ieee_ar_data_struct *ieee_ar_data; 607 struct srec_data_struct *srec_data; 608 struct verilog_data_struct *verilog_data; 609 struct ihex_data_struct *ihex_data; 610 struct tekhex_data_struct *tekhex_data; 611 struct elf_obj_tdata *elf_obj_data; 612 struct nlm_obj_tdata *nlm_obj_data; 613 struct bout_data_struct *bout_data; 614 struct mmo_data_struct *mmo_data; 615 struct sun_core_struct *sun_core_data; 616 struct sco5_core_struct *sco5_core_data; 617 struct trad_core_struct *trad_core_data; 618 struct som_data_struct *som_data; 619 struct hpux_core_struct *hpux_core_data; 620 struct hppabsd_core_struct *hppabsd_core_data; 621 struct sgi_core_struct *sgi_core_data; 622 struct lynx_core_struct *lynx_core_data; 623 struct osf_core_struct *osf_core_data; 624 struct cisco_core_struct *cisco_core_data; 625 struct versados_data_struct *versados_data; 626 struct netbsd_core_struct *netbsd_core_data; 627 struct mach_o_data_struct *mach_o_data; 628 struct mach_o_fat_data_struct *mach_o_fat_data; 629 struct plugin_data_struct *plugin_data; 630 struct bfd_pef_data_struct *pef_data; 631 struct bfd_pef_xlib_data_struct *pef_xlib_data; 632 struct bfd_sym_data_struct *sym_data; 633 void *any; 634 } 635 tdata; 636 637 /* Used by the application to hold private data. */ 638 void *usrdata; 639 640 /* Where all the allocated stuff under this BFD goes. This is a 641 struct objalloc *, but we use void * to avoid requiring the inclusion 642 of objalloc.h. */ 643 void *memory; 644 645 /* For input BFDs, the build ID, if the object has one. */ 646 const struct bfd_build_id *build_id; 647 }; 648 649 /* See note beside bfd_set_section_userdata. */ 650 static inline bfd_boolean 651 bfd_set_cacheable (bfd * abfd, bfd_boolean val) 652 { 653 abfd->cacheable = val; 654 return TRUE; 655 } 656 657 658File: bfd.info, Node: Error reporting, Next: Miscellaneous, Prev: typedef bfd, Up: BFD front end 659 6602.2 Error reporting 661=================== 662 663Most BFD functions return nonzero on success (check their individual 664documentation for precise semantics). On an error, they call 665`bfd_set_error' to set an error condition that callers can check by 666calling `bfd_get_error'. If that returns `bfd_error_system_call', then 667check `errno'. 668 669 The easiest way to report a BFD error to the user is to use 670`bfd_perror'. 671 6722.2.1 Type `bfd_error_type' 673--------------------------- 674 675The values returned by `bfd_get_error' are defined by the enumerated 676type `bfd_error_type'. 677 678 679 typedef enum bfd_error 680 { 681 bfd_error_no_error = 0, 682 bfd_error_system_call, 683 bfd_error_invalid_target, 684 bfd_error_wrong_format, 685 bfd_error_wrong_object_format, 686 bfd_error_invalid_operation, 687 bfd_error_no_memory, 688 bfd_error_no_symbols, 689 bfd_error_no_armap, 690 bfd_error_no_more_archived_files, 691 bfd_error_malformed_archive, 692 bfd_error_missing_dso, 693 bfd_error_file_not_recognized, 694 bfd_error_file_ambiguously_recognized, 695 bfd_error_no_contents, 696 bfd_error_nonrepresentable_section, 697 bfd_error_no_debug_section, 698 bfd_error_bad_value, 699 bfd_error_file_truncated, 700 bfd_error_file_too_big, 701 bfd_error_on_input, 702 bfd_error_invalid_error_code 703 } 704 bfd_error_type; 705 7062.2.1.1 `bfd_get_error' 707....................... 708 709*Synopsis* 710 bfd_error_type bfd_get_error (void); 711 *Description* 712Return the current BFD error condition. 713 7142.2.1.2 `bfd_set_error' 715....................... 716 717*Synopsis* 718 void bfd_set_error (bfd_error_type error_tag, ...); 719 *Description* 720Set the BFD error condition to be ERROR_TAG. If ERROR_TAG is 721bfd_error_on_input, then this function takes two more parameters, the 722input bfd where the error occurred, and the bfd_error_type error. 723 7242.2.1.3 `bfd_errmsg' 725.................... 726 727*Synopsis* 728 const char *bfd_errmsg (bfd_error_type error_tag); 729 *Description* 730Return a string describing the error ERROR_TAG, or the system error if 731ERROR_TAG is `bfd_error_system_call'. 732 7332.2.1.4 `bfd_perror' 734.................... 735 736*Synopsis* 737 void bfd_perror (const char *message); 738 *Description* 739Print to the standard error stream a string describing the last BFD 740error that occurred, or the last system error if the last BFD error was 741a system call failure. If MESSAGE is non-NULL and non-empty, the error 742string printed is preceded by MESSAGE, a colon, and a space. It is 743followed by a newline. 744 7452.2.2 BFD error handler 746----------------------- 747 748Some BFD functions want to print messages describing the problem. They 749call a BFD error handler function. This function may be overridden by 750the program. 751 752 The BFD error handler acts like printf. 753 754 755 typedef void (*bfd_error_handler_type) (const char *, ...); 756 7572.2.2.1 `bfd_set_error_handler' 758............................... 759 760*Synopsis* 761 bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type); 762 *Description* 763Set the BFD error handler function. Returns the previous function. 764 7652.2.2.2 `bfd_set_error_program_name' 766.................................... 767 768*Synopsis* 769 void bfd_set_error_program_name (const char *); 770 *Description* 771Set the program name to use when printing a BFD error. This is printed 772before the error message followed by a colon and space. The string 773must not be changed after it is passed to this function. 774 7752.2.2.3 `bfd_get_error_handler' 776............................... 777 778*Synopsis* 779 bfd_error_handler_type bfd_get_error_handler (void); 780 *Description* 781Return the BFD error handler function. 782 7832.2.3 BFD assert handler 784------------------------ 785 786If BFD finds an internal inconsistency, the bfd assert handler is 787called with information on the BFD version, BFD source file and line. 788If this happens, most programs linked against BFD are expected to want 789to exit with an error, or mark the current BFD operation as failed, so 790it is recommended to override the default handler, which just calls 791_bfd_error_handler and continues. 792 793 794 typedef void (*bfd_assert_handler_type) (const char *bfd_formatmsg, 795 const char *bfd_version, 796 const char *bfd_file, 797 int bfd_line); 798 7992.2.3.1 `bfd_set_assert_handler' 800................................ 801 802*Synopsis* 803 bfd_assert_handler_type bfd_set_assert_handler (bfd_assert_handler_type); 804 *Description* 805Set the BFD assert handler function. Returns the previous function. 806 8072.2.3.2 `bfd_get_assert_handler' 808................................ 809 810*Synopsis* 811 bfd_assert_handler_type bfd_get_assert_handler (void); 812 *Description* 813Return the BFD assert handler function. 814 815 816File: bfd.info, Node: Miscellaneous, Next: Memory Usage, Prev: Error reporting, Up: BFD front end 817 8182.3 Miscellaneous 819================= 820 8212.3.1 Miscellaneous functions 822----------------------------- 823 8242.3.1.1 `bfd_get_reloc_upper_bound' 825................................... 826 827*Synopsis* 828 long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect); 829 *Description* 830Return the number of bytes required to store the relocation information 831associated with section SECT attached to bfd ABFD. If an error occurs, 832return -1. 833 8342.3.1.2 `bfd_canonicalize_reloc' 835................................ 836 837*Synopsis* 838 long bfd_canonicalize_reloc 839 (bfd *abfd, asection *sec, arelent **loc, asymbol **syms); 840 *Description* 841Call the back end associated with the open BFD ABFD and translate the 842external form of the relocation information attached to SEC into the 843internal canonical form. Place the table into memory at LOC, which has 844been preallocated, usually by a call to `bfd_get_reloc_upper_bound'. 845Returns the number of relocs, or -1 on error. 846 847 The SYMS table is also needed for horrible internal magic reasons. 848 8492.3.1.3 `bfd_set_reloc' 850....................... 851 852*Synopsis* 853 void bfd_set_reloc 854 (bfd *abfd, asection *sec, arelent **rel, unsigned int count); 855 *Description* 856Set the relocation pointer and count within section SEC to the values 857REL and COUNT. The argument ABFD is ignored. 858 8592.3.1.4 `bfd_set_file_flags' 860............................ 861 862*Synopsis* 863 bfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags); 864 *Description* 865Set the flag word in the BFD ABFD to the value FLAGS. 866 867 Possible errors are: 868 * `bfd_error_wrong_format' - The target bfd was not of object format. 869 870 * `bfd_error_invalid_operation' - The target bfd was open for 871 reading. 872 873 * `bfd_error_invalid_operation' - The flag word contained a bit 874 which was not applicable to the type of file. E.g., an attempt 875 was made to set the `D_PAGED' bit on a BFD format which does not 876 support demand paging. 877 8782.3.1.5 `bfd_get_arch_size' 879........................... 880 881*Synopsis* 882 int bfd_get_arch_size (bfd *abfd); 883 *Description* 884Returns the normalized architecture address size, in bits, as 885determined by the object file's format. By normalized, we mean either 88632 or 64. For ELF, this information is included in the header. Use 887bfd_arch_bits_per_address for number of bits in the architecture 888address. 889 890 *Returns* 891Returns the arch size in bits if known, `-1' otherwise. 892 8932.3.1.6 `bfd_get_sign_extend_vma' 894................................. 895 896*Synopsis* 897 int bfd_get_sign_extend_vma (bfd *abfd); 898 *Description* 899Indicates if the target architecture "naturally" sign extends an 900address. Some architectures implicitly sign extend address values when 901they are converted to types larger than the size of an address. For 902instance, bfd_get_start_address() will return an address sign extended 903to fill a bfd_vma when this is the case. 904 905 *Returns* 906Returns `1' if the target architecture is known to sign extend 907addresses, `0' if the target architecture is known to not sign extend 908addresses, and `-1' otherwise. 909 9102.3.1.7 `bfd_set_start_address' 911............................... 912 913*Synopsis* 914 bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma); 915 *Description* 916Make VMA the entry point of output BFD ABFD. 917 918 *Returns* 919Returns `TRUE' on success, `FALSE' otherwise. 920 9212.3.1.8 `bfd_get_gp_size' 922......................... 923 924*Synopsis* 925 unsigned int bfd_get_gp_size (bfd *abfd); 926 *Description* 927Return the maximum size of objects to be optimized using the GP 928register under MIPS ECOFF. This is typically set by the `-G' argument 929to the compiler, assembler or linker. 930 9312.3.1.9 `bfd_set_gp_size' 932......................... 933 934*Synopsis* 935 void bfd_set_gp_size (bfd *abfd, unsigned int i); 936 *Description* 937Set the maximum size of objects to be optimized using the GP register 938under ECOFF or MIPS ELF. This is typically set by the `-G' argument to 939the compiler, assembler or linker. 940 9412.3.1.10 `bfd_scan_vma' 942....................... 943 944*Synopsis* 945 bfd_vma bfd_scan_vma (const char *string, const char **end, int base); 946 *Description* 947Convert, like `strtoul', a numerical expression STRING into a `bfd_vma' 948integer, and return that integer. (Though without as many bells and 949whistles as `strtoul'.) The expression is assumed to be unsigned 950(i.e., positive). If given a BASE, it is used as the base for 951conversion. A base of 0 causes the function to interpret the string in 952hex if a leading "0x" or "0X" is found, otherwise in octal if a leading 953zero is found, otherwise in decimal. 954 955 If the value would overflow, the maximum `bfd_vma' value is returned. 956 9572.3.1.11 `bfd_copy_private_header_data' 958....................................... 959 960*Synopsis* 961 bfd_boolean bfd_copy_private_header_data (bfd *ibfd, bfd *obfd); 962 *Description* 963Copy private BFD header information from the BFD IBFD to the the BFD 964OBFD. This copies information that may require sections to exist, but 965does not require symbol tables. Return `true' on success, `false' on 966error. Possible error returns are: 967 968 * `bfd_error_no_memory' - Not enough memory exists to create private 969 data for OBFD. 970 971 #define bfd_copy_private_header_data(ibfd, obfd) \ 972 BFD_SEND (obfd, _bfd_copy_private_header_data, \ 973 (ibfd, obfd)) 974 9752.3.1.12 `bfd_copy_private_bfd_data' 976.................................... 977 978*Synopsis* 979 bfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd); 980 *Description* 981Copy private BFD information from the BFD IBFD to the the BFD OBFD. 982Return `TRUE' on success, `FALSE' on error. Possible error returns are: 983 984 * `bfd_error_no_memory' - Not enough memory exists to create private 985 data for OBFD. 986 987 #define bfd_copy_private_bfd_data(ibfd, obfd) \ 988 BFD_SEND (obfd, _bfd_copy_private_bfd_data, \ 989 (ibfd, obfd)) 990 9912.3.1.13 `bfd_merge_private_bfd_data' 992..................................... 993 994*Synopsis* 995 bfd_boolean bfd_merge_private_bfd_data (bfd *ibfd, bfd *obfd); 996 *Description* 997Merge private BFD information from the BFD IBFD to the the output file 998BFD OBFD when linking. Return `TRUE' on success, `FALSE' on error. 999Possible error returns are: 1000 1001 * `bfd_error_no_memory' - Not enough memory exists to create private 1002 data for OBFD. 1003 1004 #define bfd_merge_private_bfd_data(ibfd, obfd) \ 1005 BFD_SEND (obfd, _bfd_merge_private_bfd_data, \ 1006 (ibfd, obfd)) 1007 10082.3.1.14 `bfd_set_private_flags' 1009................................ 1010 1011*Synopsis* 1012 bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags); 1013 *Description* 1014Set private BFD flag information in the BFD ABFD. Return `TRUE' on 1015success, `FALSE' on error. Possible error returns are: 1016 1017 * `bfd_error_no_memory' - Not enough memory exists to create private 1018 data for OBFD. 1019 1020 #define bfd_set_private_flags(abfd, flags) \ 1021 BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags)) 1022 10232.3.1.15 `Other functions' 1024.......................... 1025 1026*Description* 1027The following functions exist but have not yet been documented. 1028 #define bfd_sizeof_headers(abfd, info) \ 1029 BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, info)) 1030 1031 #define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \ 1032 BFD_SEND (abfd, _bfd_find_nearest_line, \ 1033 (abfd, syms, sec, off, file, func, line, NULL)) 1034 1035 #define bfd_find_nearest_line_discriminator(abfd, sec, syms, off, file, func, \ 1036 line, disc) \ 1037 BFD_SEND (abfd, _bfd_find_nearest_line, \ 1038 (abfd, syms, sec, off, file, func, line, disc)) 1039 1040 #define bfd_find_line(abfd, syms, sym, file, line) \ 1041 BFD_SEND (abfd, _bfd_find_line, \ 1042 (abfd, syms, sym, file, line)) 1043 1044 #define bfd_find_inliner_info(abfd, file, func, line) \ 1045 BFD_SEND (abfd, _bfd_find_inliner_info, \ 1046 (abfd, file, func, line)) 1047 1048 #define bfd_debug_info_start(abfd) \ 1049 BFD_SEND (abfd, _bfd_debug_info_start, (abfd)) 1050 1051 #define bfd_debug_info_end(abfd) \ 1052 BFD_SEND (abfd, _bfd_debug_info_end, (abfd)) 1053 1054 #define bfd_debug_info_accumulate(abfd, section) \ 1055 BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section)) 1056 1057 #define bfd_stat_arch_elt(abfd, stat) \ 1058 BFD_SEND (abfd, _bfd_stat_arch_elt,(abfd, stat)) 1059 1060 #define bfd_update_armap_timestamp(abfd) \ 1061 BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd)) 1062 1063 #define bfd_set_arch_mach(abfd, arch, mach)\ 1064 BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach)) 1065 1066 #define bfd_relax_section(abfd, section, link_info, again) \ 1067 BFD_SEND (abfd, _bfd_relax_section, (abfd, section, link_info, again)) 1068 1069 #define bfd_gc_sections(abfd, link_info) \ 1070 BFD_SEND (abfd, _bfd_gc_sections, (abfd, link_info)) 1071 1072 #define bfd_lookup_section_flags(link_info, flag_info, section) \ 1073 BFD_SEND (abfd, _bfd_lookup_section_flags, (link_info, flag_info, section)) 1074 1075 #define bfd_merge_sections(abfd, link_info) \ 1076 BFD_SEND (abfd, _bfd_merge_sections, (abfd, link_info)) 1077 1078 #define bfd_is_group_section(abfd, sec) \ 1079 BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec)) 1080 1081 #define bfd_discard_group(abfd, sec) \ 1082 BFD_SEND (abfd, _bfd_discard_group, (abfd, sec)) 1083 1084 #define bfd_link_hash_table_create(abfd) \ 1085 BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd)) 1086 1087 #define bfd_link_add_symbols(abfd, info) \ 1088 BFD_SEND (abfd, _bfd_link_add_symbols, (abfd, info)) 1089 1090 #define bfd_link_just_syms(abfd, sec, info) \ 1091 BFD_SEND (abfd, _bfd_link_just_syms, (sec, info)) 1092 1093 #define bfd_final_link(abfd, info) \ 1094 BFD_SEND (abfd, _bfd_final_link, (abfd, info)) 1095 1096 #define bfd_free_cached_info(abfd) \ 1097 BFD_SEND (abfd, _bfd_free_cached_info, (abfd)) 1098 1099 #define bfd_get_dynamic_symtab_upper_bound(abfd) \ 1100 BFD_SEND (abfd, _bfd_get_dynamic_symtab_upper_bound, (abfd)) 1101 1102 #define bfd_print_private_bfd_data(abfd, file)\ 1103 BFD_SEND (abfd, _bfd_print_private_bfd_data, (abfd, file)) 1104 1105 #define bfd_canonicalize_dynamic_symtab(abfd, asymbols) \ 1106 BFD_SEND (abfd, _bfd_canonicalize_dynamic_symtab, (abfd, asymbols)) 1107 1108 #define bfd_get_synthetic_symtab(abfd, count, syms, dyncount, dynsyms, ret) \ 1109 BFD_SEND (abfd, _bfd_get_synthetic_symtab, (abfd, count, syms, \ 1110 dyncount, dynsyms, ret)) 1111 1112 #define bfd_get_dynamic_reloc_upper_bound(abfd) \ 1113 BFD_SEND (abfd, _bfd_get_dynamic_reloc_upper_bound, (abfd)) 1114 1115 #define bfd_canonicalize_dynamic_reloc(abfd, arels, asyms) \ 1116 BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms)) 1117 1118 extern bfd_byte *bfd_get_relocated_section_contents 1119 (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *, 1120 bfd_boolean, asymbol **); 1121 11222.3.1.16 `bfd_alt_mach_code' 1123............................ 1124 1125*Synopsis* 1126 bfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative); 1127 *Description* 1128When more than one machine code number is available for the same 1129machine type, this function can be used to switch between the preferred 1130one (alternative == 0) and any others. Currently, only ELF supports 1131this feature, with up to two alternate machine codes. 1132 11332.3.1.17 `bfd_emul_get_maxpagesize' 1134................................... 1135 1136*Synopsis* 1137 bfd_vma bfd_emul_get_maxpagesize (const char *); 1138 *Description* 1139Returns the maximum page size, in bytes, as determined by emulation. 1140 1141 *Returns* 1142Returns the maximum page size in bytes for ELF, 0 otherwise. 1143 11442.3.1.18 `bfd_emul_set_maxpagesize' 1145................................... 1146 1147*Synopsis* 1148 void bfd_emul_set_maxpagesize (const char *, bfd_vma); 1149 *Description* 1150For ELF, set the maximum page size for the emulation. It is a no-op 1151for other formats. 1152 11532.3.1.19 `bfd_emul_get_commonpagesize' 1154...................................... 1155 1156*Synopsis* 1157 bfd_vma bfd_emul_get_commonpagesize (const char *); 1158 *Description* 1159Returns the common page size, in bytes, as determined by emulation. 1160 1161 *Returns* 1162Returns the common page size in bytes for ELF, 0 otherwise. 1163 11642.3.1.20 `bfd_emul_set_commonpagesize' 1165...................................... 1166 1167*Synopsis* 1168 void bfd_emul_set_commonpagesize (const char *, bfd_vma); 1169 *Description* 1170For ELF, set the common page size for the emulation. It is a no-op for 1171other formats. 1172 11732.3.1.21 `bfd_demangle' 1174....................... 1175 1176*Synopsis* 1177 char *bfd_demangle (bfd *, const char *, int); 1178 *Description* 1179Wrapper around cplus_demangle. Strips leading underscores and other 1180such chars that would otherwise confuse the demangler. If passed a g++ 1181v3 ABI mangled name, returns a buffer allocated with malloc holding the 1182demangled name. Returns NULL otherwise and on memory alloc failure. 1183 11842.3.1.22 `bfd_update_compression_header' 1185........................................ 1186 1187*Synopsis* 1188 void bfd_update_compression_header 1189 (bfd *abfd, bfd_byte *contents, asection *sec); 1190 *Description* 1191Set the compression header at CONTENTS of SEC in ABFD and update 1192elf_section_flags for compression. 1193 11942.3.1.23 `bfd_check_compression_header' 1195....................................... 1196 1197*Synopsis* 1198 bfd_boolean bfd_check_compression_header 1199 (bfd *abfd, bfd_byte *contents, asection *sec, 1200 bfd_size_type *uncompressed_size); 1201 *Description* 1202Check the compression header at CONTENTS of SEC in ABFD and store the 1203uncompressed size in UNCOMPRESSED_SIZE if the compression header is 1204valid. 1205 1206 *Returns* 1207Return TRUE if the compression header is valid. 1208 12092.3.1.24 `bfd_get_compression_header_size' 1210.......................................... 1211 1212*Synopsis* 1213 int bfd_get_compression_header_size (bfd *abfd, asection *sec); 1214 *Description* 1215Return the size of the compression header of SEC in ABFD. 1216 1217 *Returns* 1218Return the size of the compression header in bytes. 1219 12202.3.1.25 `bfd_convert_section_size' 1221................................... 1222 1223*Synopsis* 1224 bfd_size_type bfd_convert_section_size 1225 (bfd *ibfd, asection *isec, bfd *obfd, bfd_size_type size); 1226 *Description* 1227Convert the size SIZE of the section ISEC in input BFD IBFD to the 1228section size in output BFD OBFD. 1229 12302.3.1.26 `bfd_convert_section_contents' 1231....................................... 1232 1233*Synopsis* 1234 bfd_boolean bfd_convert_section_contents 1235 (bfd *ibfd, asection *isec, bfd *obfd, 1236 bfd_byte **ptr, bfd_size_type *ptr_size); 1237 *Description* 1238Convert the contents, stored in *PTR, of the section ISEC in input BFD 1239IBFD to output BFD OBFD if needed. The original buffer pointed to by 1240*PTR may be freed and *PTR is returned with memory malloc'd by this 1241function, and the new size written to PTR_SIZE. 1242 12432.3.1.27 `struct bfd_iovec' 1244........................... 1245 1246*Description* 1247The `struct bfd_iovec' contains the internal file I/O class. Each 1248`BFD' has an instance of this class and all file I/O is routed through 1249it (it is assumed that the instance implements all methods listed 1250below). 1251 struct bfd_iovec 1252 { 1253 /* To avoid problems with macros, a "b" rather than "f" 1254 prefix is prepended to each method name. */ 1255 /* Attempt to read/write NBYTES on ABFD's IOSTREAM storing/fetching 1256 bytes starting at PTR. Return the number of bytes actually 1257 transfered (a read past end-of-file returns less than NBYTES), 1258 or -1 (setting `bfd_error') if an error occurs. */ 1259 file_ptr (*bread) (struct bfd *abfd, void *ptr, file_ptr nbytes); 1260 file_ptr (*bwrite) (struct bfd *abfd, const void *ptr, 1261 file_ptr nbytes); 1262 /* Return the current IOSTREAM file offset, or -1 (setting `bfd_error' 1263 if an error occurs. */ 1264 file_ptr (*btell) (struct bfd *abfd); 1265 /* For the following, on successful completion a value of 0 is returned. 1266 Otherwise, a value of -1 is returned (and `bfd_error' is set). */ 1267 int (*bseek) (struct bfd *abfd, file_ptr offset, int whence); 1268 int (*bclose) (struct bfd *abfd); 1269 int (*bflush) (struct bfd *abfd); 1270 int (*bstat) (struct bfd *abfd, struct stat *sb); 1271 /* Mmap a part of the files. ADDR, LEN, PROT, FLAGS and OFFSET are the usual 1272 mmap parameter, except that LEN and OFFSET do not need to be page 1273 aligned. Returns (void *)-1 on failure, mmapped address on success. 1274 Also write in MAP_ADDR the address of the page aligned buffer and in 1275 MAP_LEN the size mapped (a page multiple). Use unmap with MAP_ADDR and 1276 MAP_LEN to unmap. */ 1277 void *(*bmmap) (struct bfd *abfd, void *addr, bfd_size_type len, 1278 int prot, int flags, file_ptr offset, 1279 void **map_addr, bfd_size_type *map_len); 1280 }; 1281 extern const struct bfd_iovec _bfd_memory_iovec; 1282 12832.3.1.28 `bfd_get_mtime' 1284........................ 1285 1286*Synopsis* 1287 long bfd_get_mtime (bfd *abfd); 1288 *Description* 1289Return the file modification time (as read from the file system, or 1290from the archive header for archive members). 1291 12922.3.1.29 `bfd_get_size' 1293....................... 1294 1295*Synopsis* 1296 file_ptr bfd_get_size (bfd *abfd); 1297 *Description* 1298Return the file size (as read from file system) for the file associated 1299with BFD ABFD. 1300 1301 The initial motivation for, and use of, this routine is not so we 1302can get the exact size of the object the BFD applies to, since that 1303might not be generally possible (archive members for example). It 1304would be ideal if someone could eventually modify it so that such 1305results were guaranteed. 1306 1307 Instead, we want to ask questions like "is this NNN byte sized 1308object I'm about to try read from file offset YYY reasonable?" As as 1309example of where we might do this, some object formats use string 1310tables for which the first `sizeof (long)' bytes of the table contain 1311the size of the table itself, including the size bytes. If an 1312application tries to read what it thinks is one of these string tables, 1313without some way to validate the size, and for some reason the size is 1314wrong (byte swapping error, wrong location for the string table, etc.), 1315the only clue is likely to be a read error when it tries to read the 1316table, or a "virtual memory exhausted" error when it tries to allocate 131715 bazillon bytes of space for the 15 bazillon byte table it is about 1318to read. This function at least allows us to answer the question, "is 1319the size reasonable?". 1320 13212.3.1.30 `bfd_mmap' 1322................... 1323 1324*Synopsis* 1325 void *bfd_mmap (bfd *abfd, void *addr, bfd_size_type len, 1326 int prot, int flags, file_ptr offset, 1327 void **map_addr, bfd_size_type *map_len); 1328 *Description* 1329Return mmap()ed region of the file, if possible and implemented. LEN 1330and OFFSET do not need to be page aligned. The page aligned address 1331and length are written to MAP_ADDR and MAP_LEN. 1332 1333 1334File: bfd.info, Node: Memory Usage, Next: Initialization, Prev: Miscellaneous, Up: BFD front end 1335 13362.4 Memory Usage 1337================ 1338 1339BFD keeps all of its internal structures in obstacks. There is one 1340obstack per open BFD file, into which the current state is stored. When 1341a BFD is closed, the obstack is deleted, and so everything which has 1342been allocated by BFD for the closing file is thrown away. 1343 1344 BFD does not free anything created by an application, but pointers 1345into `bfd' structures become invalid on a `bfd_close'; for example, 1346after a `bfd_close' the vector passed to `bfd_canonicalize_symtab' is 1347still around, since it has been allocated by the application, but the 1348data that it pointed to are lost. 1349 1350 The general rule is to not close a BFD until all operations dependent 1351upon data from the BFD have been completed, or all the data from within 1352the file has been copied. To help with the management of memory, there 1353is a function (`bfd_alloc_size') which returns the number of bytes in 1354obstacks associated with the supplied BFD. This could be used to select 1355the greediest open BFD, close it to reclaim the memory, perform some 1356operation and reopen the BFD again, to get a fresh copy of the data 1357structures. 1358 1359 1360File: bfd.info, Node: Initialization, Next: Sections, Prev: Memory Usage, Up: BFD front end 1361 13622.5 Initialization 1363================== 1364 13652.5.1 Initialization functions 1366------------------------------ 1367 1368These are the functions that handle initializing a BFD. 1369 13702.5.1.1 `bfd_init' 1371.................. 1372 1373*Synopsis* 1374 void bfd_init (void); 1375 *Description* 1376This routine must be called before any other BFD function to initialize 1377magical internal data structures. 1378 1379 1380File: bfd.info, Node: Sections, Next: Symbols, Prev: Initialization, Up: BFD front end 1381 13822.6 Sections 1383============ 1384 1385The raw data contained within a BFD is maintained through the section 1386abstraction. A single BFD may have any number of sections. It keeps 1387hold of them by pointing to the first; each one points to the next in 1388the list. 1389 1390 Sections are supported in BFD in `section.c'. 1391 1392* Menu: 1393 1394* Section Input:: 1395* Section Output:: 1396* typedef asection:: 1397* section prototypes:: 1398 1399 1400File: bfd.info, Node: Section Input, Next: Section Output, Prev: Sections, Up: Sections 1401 14022.6.1 Section input 1403------------------- 1404 1405When a BFD is opened for reading, the section structures are created 1406and attached to the BFD. 1407 1408 Each section has a name which describes the section in the outside 1409world--for example, `a.out' would contain at least three sections, 1410called `.text', `.data' and `.bss'. 1411 1412 Names need not be unique; for example a COFF file may have several 1413sections named `.data'. 1414 1415 Sometimes a BFD will contain more than the "natural" number of 1416sections. A back end may attach other sections containing constructor 1417data, or an application may add a section (using `bfd_make_section') to 1418the sections attached to an already open BFD. For example, the linker 1419creates an extra section `COMMON' for each input file's BFD to hold 1420information about common storage. 1421 1422 The raw data is not necessarily read in when the section descriptor 1423is created. Some targets may leave the data in place until a 1424`bfd_get_section_contents' call is made. Other back ends may read in 1425all the data at once. For example, an S-record file has to be read 1426once to determine the size of the data. An IEEE-695 file doesn't 1427contain raw data in sections, but data and relocation expressions 1428intermixed, so the data area has to be parsed to get out the data and 1429relocations. 1430 1431 1432File: bfd.info, Node: Section Output, Next: typedef asection, Prev: Section Input, Up: Sections 1433 14342.6.2 Section output 1435-------------------- 1436 1437To write a new object style BFD, the various sections to be written 1438have to be created. They are attached to the BFD in the same way as 1439input sections; data is written to the sections using 1440`bfd_set_section_contents'. 1441 1442 Any program that creates or combines sections (e.g., the assembler 1443and linker) must use the `asection' fields `output_section' and 1444`output_offset' to indicate the file sections to which each section 1445must be written. (If the section is being created from scratch, 1446`output_section' should probably point to the section itself and 1447`output_offset' should probably be zero.) 1448 1449 The data to be written comes from input sections attached (via 1450`output_section' pointers) to the output sections. The output section 1451structure can be considered a filter for the input section: the output 1452section determines the vma of the output data and the name, but the 1453input section determines the offset into the output section of the data 1454to be written. 1455 1456 E.g., to create a section "O", starting at 0x100, 0x123 long, 1457containing two subsections, "A" at offset 0x0 (i.e., at vma 0x100) and 1458"B" at offset 0x20 (i.e., at vma 0x120) the `asection' structures would 1459look like: 1460 1461 section name "A" 1462 output_offset 0x00 1463 size 0x20 1464 output_section -----------> section name "O" 1465 | vma 0x100 1466 section name "B" | size 0x123 1467 output_offset 0x20 | 1468 size 0x103 | 1469 output_section --------| 1470 14712.6.3 Link orders 1472----------------- 1473 1474The data within a section is stored in a "link_order". These are much 1475like the fixups in `gas'. The link_order abstraction allows a section 1476to grow and shrink within itself. 1477 1478 A link_order knows how big it is, and which is the next link_order 1479and where the raw data for it is; it also points to a list of 1480relocations which apply to it. 1481 1482 The link_order is used by the linker to perform relaxing on final 1483code. The compiler creates code which is as big as necessary to make 1484it work without relaxing, and the user can select whether to relax. 1485Sometimes relaxing takes a lot of time. The linker runs around the 1486relocations to see if any are attached to data which can be shrunk, if 1487so it does it on a link_order by link_order basis. 1488 1489 1490File: bfd.info, Node: typedef asection, Next: section prototypes, Prev: Section Output, Up: Sections 1491 14922.6.4 typedef asection 1493---------------------- 1494 1495Here is the section structure: 1496 1497 1498 typedef struct bfd_section 1499 { 1500 /* The name of the section; the name isn't a copy, the pointer is 1501 the same as that passed to bfd_make_section. */ 1502 const char *name; 1503 1504 /* A unique sequence number. */ 1505 unsigned int id; 1506 1507 /* Which section in the bfd; 0..n-1 as sections are created in a bfd. */ 1508 unsigned int index; 1509 1510 /* The next section in the list belonging to the BFD, or NULL. */ 1511 struct bfd_section *next; 1512 1513 /* The previous section in the list belonging to the BFD, or NULL. */ 1514 struct bfd_section *prev; 1515 1516 /* The field flags contains attributes of the section. Some 1517 flags are read in from the object file, and some are 1518 synthesized from other information. */ 1519 flagword flags; 1520 1521 #define SEC_NO_FLAGS 0x000 1522 1523 /* Tells the OS to allocate space for this section when loading. 1524 This is clear for a section containing debug information only. */ 1525 #define SEC_ALLOC 0x001 1526 1527 /* Tells the OS to load the section from the file when loading. 1528 This is clear for a .bss section. */ 1529 #define SEC_LOAD 0x002 1530 1531 /* The section contains data still to be relocated, so there is 1532 some relocation information too. */ 1533 #define SEC_RELOC 0x004 1534 1535 /* A signal to the OS that the section contains read only data. */ 1536 #define SEC_READONLY 0x008 1537 1538 /* The section contains code only. */ 1539 #define SEC_CODE 0x010 1540 1541 /* The section contains data only. */ 1542 #define SEC_DATA 0x020 1543 1544 /* The section will reside in ROM. */ 1545 #define SEC_ROM 0x040 1546 1547 /* The section contains constructor information. This section 1548 type is used by the linker to create lists of constructors and 1549 destructors used by `g++'. When a back end sees a symbol 1550 which should be used in a constructor list, it creates a new 1551 section for the type of name (e.g., `__CTOR_LIST__'), attaches 1552 the symbol to it, and builds a relocation. To build the lists 1553 of constructors, all the linker has to do is catenate all the 1554 sections called `__CTOR_LIST__' and relocate the data 1555 contained within - exactly the operations it would peform on 1556 standard data. */ 1557 #define SEC_CONSTRUCTOR 0x080 1558 1559 /* The section has contents - a data section could be 1560 `SEC_ALLOC' | `SEC_HAS_CONTENTS'; a debug section could be 1561 `SEC_HAS_CONTENTS' */ 1562 #define SEC_HAS_CONTENTS 0x100 1563 1564 /* An instruction to the linker to not output the section 1565 even if it has information which would normally be written. */ 1566 #define SEC_NEVER_LOAD 0x200 1567 1568 /* The section contains thread local data. */ 1569 #define SEC_THREAD_LOCAL 0x400 1570 1571 /* The section has GOT references. This flag is only for the 1572 linker, and is currently only used by the elf32-hppa back end. 1573 It will be set if global offset table references were detected 1574 in this section, which indicate to the linker that the section 1575 contains PIC code, and must be handled specially when doing a 1576 static link. */ 1577 #define SEC_HAS_GOT_REF 0x800 1578 1579 /* The section contains common symbols (symbols may be defined 1580 multiple times, the value of a symbol is the amount of 1581 space it requires, and the largest symbol value is the one 1582 used). Most targets have exactly one of these (which we 1583 translate to bfd_com_section_ptr), but ECOFF has two. */ 1584 #define SEC_IS_COMMON 0x1000 1585 1586 /* The section contains only debugging information. For 1587 example, this is set for ELF .debug and .stab sections. 1588 strip tests this flag to see if a section can be 1589 discarded. */ 1590 #define SEC_DEBUGGING 0x2000 1591 1592 /* The contents of this section are held in memory pointed to 1593 by the contents field. This is checked by bfd_get_section_contents, 1594 and the data is retrieved from memory if appropriate. */ 1595 #define SEC_IN_MEMORY 0x4000 1596 1597 /* The contents of this section are to be excluded by the 1598 linker for executable and shared objects unless those 1599 objects are to be further relocated. */ 1600 #define SEC_EXCLUDE 0x8000 1601 1602 /* The contents of this section are to be sorted based on the sum of 1603 the symbol and addend values specified by the associated relocation 1604 entries. Entries without associated relocation entries will be 1605 appended to the end of the section in an unspecified order. */ 1606 #define SEC_SORT_ENTRIES 0x10000 1607 1608 /* When linking, duplicate sections of the same name should be 1609 discarded, rather than being combined into a single section as 1610 is usually done. This is similar to how common symbols are 1611 handled. See SEC_LINK_DUPLICATES below. */ 1612 #define SEC_LINK_ONCE 0x20000 1613 1614 /* If SEC_LINK_ONCE is set, this bitfield describes how the linker 1615 should handle duplicate sections. */ 1616 #define SEC_LINK_DUPLICATES 0xc0000 1617 1618 /* This value for SEC_LINK_DUPLICATES means that duplicate 1619 sections with the same name should simply be discarded. */ 1620 #define SEC_LINK_DUPLICATES_DISCARD 0x0 1621 1622 /* This value for SEC_LINK_DUPLICATES means that the linker 1623 should warn if there are any duplicate sections, although 1624 it should still only link one copy. */ 1625 #define SEC_LINK_DUPLICATES_ONE_ONLY 0x40000 1626 1627 /* This value for SEC_LINK_DUPLICATES means that the linker 1628 should warn if any duplicate sections are a different size. */ 1629 #define SEC_LINK_DUPLICATES_SAME_SIZE 0x80000 1630 1631 /* This value for SEC_LINK_DUPLICATES means that the linker 1632 should warn if any duplicate sections contain different 1633 contents. */ 1634 #define SEC_LINK_DUPLICATES_SAME_CONTENTS \ 1635 (SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE) 1636 1637 /* This section was created by the linker as part of dynamic 1638 relocation or other arcane processing. It is skipped when 1639 going through the first-pass output, trusting that someone 1640 else up the line will take care of it later. */ 1641 #define SEC_LINKER_CREATED 0x100000 1642 1643 /* This section should not be subject to garbage collection. 1644 Also set to inform the linker that this section should not be 1645 listed in the link map as discarded. */ 1646 #define SEC_KEEP 0x200000 1647 1648 /* This section contains "short" data, and should be placed 1649 "near" the GP. */ 1650 #define SEC_SMALL_DATA 0x400000 1651 1652 /* Attempt to merge identical entities in the section. 1653 Entity size is given in the entsize field. */ 1654 #define SEC_MERGE 0x800000 1655 1656 /* If given with SEC_MERGE, entities to merge are zero terminated 1657 strings where entsize specifies character size instead of fixed 1658 size entries. */ 1659 #define SEC_STRINGS 0x1000000 1660 1661 /* This section contains data about section groups. */ 1662 #define SEC_GROUP 0x2000000 1663 1664 /* The section is a COFF shared library section. This flag is 1665 only for the linker. If this type of section appears in 1666 the input file, the linker must copy it to the output file 1667 without changing the vma or size. FIXME: Although this 1668 was originally intended to be general, it really is COFF 1669 specific (and the flag was renamed to indicate this). It 1670 might be cleaner to have some more general mechanism to 1671 allow the back end to control what the linker does with 1672 sections. */ 1673 #define SEC_COFF_SHARED_LIBRARY 0x4000000 1674 1675 /* This input section should be copied to output in reverse order 1676 as an array of pointers. This is for ELF linker internal use 1677 only. */ 1678 #define SEC_ELF_REVERSE_COPY 0x4000000 1679 1680 /* This section contains data which may be shared with other 1681 executables or shared objects. This is for COFF only. */ 1682 #define SEC_COFF_SHARED 0x8000000 1683 1684 /* This section should be compressed. This is for ELF linker 1685 internal use only. */ 1686 #define SEC_ELF_COMPRESS 0x8000000 1687 1688 /* When a section with this flag is being linked, then if the size of 1689 the input section is less than a page, it should not cross a page 1690 boundary. If the size of the input section is one page or more, 1691 it should be aligned on a page boundary. This is for TI 1692 TMS320C54X only. */ 1693 #define SEC_TIC54X_BLOCK 0x10000000 1694 1695 /* This section should be renamed. This is for ELF linker 1696 internal use only. */ 1697 #define SEC_ELF_RENAME 0x10000000 1698 1699 /* Conditionally link this section; do not link if there are no 1700 references found to any symbol in the section. This is for TI 1701 TMS320C54X only. */ 1702 #define SEC_TIC54X_CLINK 0x20000000 1703 1704 /* This section contains vliw code. This is for Toshiba MeP only. */ 1705 #define SEC_MEP_VLIW 0x20000000 1706 1707 /* Indicate that section has the no read flag set. This happens 1708 when memory read flag isn't set. */ 1709 #define SEC_COFF_NOREAD 0x40000000 1710 1711 /* End of section flags. */ 1712 1713 /* Some internal packed boolean fields. */ 1714 1715 /* See the vma field. */ 1716 unsigned int user_set_vma : 1; 1717 1718 /* A mark flag used by some of the linker backends. */ 1719 unsigned int linker_mark : 1; 1720 1721 /* Another mark flag used by some of the linker backends. Set for 1722 output sections that have an input section. */ 1723 unsigned int linker_has_input : 1; 1724 1725 /* Mark flag used by some linker backends for garbage collection. */ 1726 unsigned int gc_mark : 1; 1727 1728 /* Section compression status. */ 1729 unsigned int compress_status : 2; 1730 #define COMPRESS_SECTION_NONE 0 1731 #define COMPRESS_SECTION_DONE 1 1732 #define DECOMPRESS_SECTION_SIZED 2 1733 1734 /* The following flags are used by the ELF linker. */ 1735 1736 /* Mark sections which have been allocated to segments. */ 1737 unsigned int segment_mark : 1; 1738 1739 /* Type of sec_info information. */ 1740 unsigned int sec_info_type:3; 1741 #define SEC_INFO_TYPE_NONE 0 1742 #define SEC_INFO_TYPE_STABS 1 1743 #define SEC_INFO_TYPE_MERGE 2 1744 #define SEC_INFO_TYPE_EH_FRAME 3 1745 #define SEC_INFO_TYPE_JUST_SYMS 4 1746 #define SEC_INFO_TYPE_TARGET 5 1747 #define SEC_INFO_TYPE_EH_FRAME_ENTRY 6 1748 1749 /* Nonzero if this section uses RELA relocations, rather than REL. */ 1750 unsigned int use_rela_p:1; 1751 1752 /* Bits used by various backends. The generic code doesn't touch 1753 these fields. */ 1754 1755 unsigned int sec_flg0:1; 1756 unsigned int sec_flg1:1; 1757 unsigned int sec_flg2:1; 1758 unsigned int sec_flg3:1; 1759 unsigned int sec_flg4:1; 1760 unsigned int sec_flg5:1; 1761 1762 /* End of internal packed boolean fields. */ 1763 1764 /* The virtual memory address of the section - where it will be 1765 at run time. The symbols are relocated against this. The 1766 user_set_vma flag is maintained by bfd; if it's not set, the 1767 backend can assign addresses (for example, in `a.out', where 1768 the default address for `.data' is dependent on the specific 1769 target and various flags). */ 1770 bfd_vma vma; 1771 1772 /* The load address of the section - where it would be in a 1773 rom image; really only used for writing section header 1774 information. */ 1775 bfd_vma lma; 1776 1777 /* The size of the section in octets, as it will be output. 1778 Contains a value even if the section has no contents (e.g., the 1779 size of `.bss'). */ 1780 bfd_size_type size; 1781 1782 /* For input sections, the original size on disk of the section, in 1783 octets. This field should be set for any section whose size is 1784 changed by linker relaxation. It is required for sections where 1785 the linker relaxation scheme doesn't cache altered section and 1786 reloc contents (stabs, eh_frame, SEC_MERGE, some coff relaxing 1787 targets), and thus the original size needs to be kept to read the 1788 section multiple times. For output sections, rawsize holds the 1789 section size calculated on a previous linker relaxation pass. */ 1790 bfd_size_type rawsize; 1791 1792 /* The compressed size of the section in octets. */ 1793 bfd_size_type compressed_size; 1794 1795 /* Relaxation table. */ 1796 struct relax_table *relax; 1797 1798 /* Count of used relaxation table entries. */ 1799 int relax_count; 1800 1801 1802 /* If this section is going to be output, then this value is the 1803 offset in *bytes* into the output section of the first byte in the 1804 input section (byte ==> smallest addressable unit on the 1805 target). In most cases, if this was going to start at the 1806 100th octet (8-bit quantity) in the output section, this value 1807 would be 100. However, if the target byte size is 16 bits 1808 (bfd_octets_per_byte is "2"), this value would be 50. */ 1809 bfd_vma output_offset; 1810 1811 /* The output section through which to map on output. */ 1812 struct bfd_section *output_section; 1813 1814 /* The alignment requirement of the section, as an exponent of 2 - 1815 e.g., 3 aligns to 2^3 (or 8). */ 1816 unsigned int alignment_power; 1817 1818 /* If an input section, a pointer to a vector of relocation 1819 records for the data in this section. */ 1820 struct reloc_cache_entry *relocation; 1821 1822 /* If an output section, a pointer to a vector of pointers to 1823 relocation records for the data in this section. */ 1824 struct reloc_cache_entry **orelocation; 1825 1826 /* The number of relocation records in one of the above. */ 1827 unsigned reloc_count; 1828 1829 /* Information below is back end specific - and not always used 1830 or updated. */ 1831 1832 /* File position of section data. */ 1833 file_ptr filepos; 1834 1835 /* File position of relocation info. */ 1836 file_ptr rel_filepos; 1837 1838 /* File position of line data. */ 1839 file_ptr line_filepos; 1840 1841 /* Pointer to data for applications. */ 1842 void *userdata; 1843 1844 /* If the SEC_IN_MEMORY flag is set, this points to the actual 1845 contents. */ 1846 unsigned char *contents; 1847 1848 /* Attached line number information. */ 1849 alent *lineno; 1850 1851 /* Number of line number records. */ 1852 unsigned int lineno_count; 1853 1854 /* Entity size for merging purposes. */ 1855 unsigned int entsize; 1856 1857 /* Points to the kept section if this section is a link-once section, 1858 and is discarded. */ 1859 struct bfd_section *kept_section; 1860 1861 /* When a section is being output, this value changes as more 1862 linenumbers are written out. */ 1863 file_ptr moving_line_filepos; 1864 1865 /* What the section number is in the target world. */ 1866 int target_index; 1867 1868 void *used_by_bfd; 1869 1870 /* If this is a constructor section then here is a list of the 1871 relocations created to relocate items within it. */ 1872 struct relent_chain *constructor_chain; 1873 1874 /* The BFD which owns the section. */ 1875 bfd *owner; 1876 1877 /* A symbol which points at this section only. */ 1878 struct bfd_symbol *symbol; 1879 struct bfd_symbol **symbol_ptr_ptr; 1880 1881 /* Early in the link process, map_head and map_tail are used to build 1882 a list of input sections attached to an output section. Later, 1883 output sections use these fields for a list of bfd_link_order 1884 structs. */ 1885 union { 1886 struct bfd_link_order *link_order; 1887 struct bfd_section *s; 1888 } map_head, map_tail; 1889 } asection; 1890 1891 /* Relax table contains information about instructions which can 1892 be removed by relaxation -- replacing a long address with a 1893 short address. */ 1894 struct relax_table { 1895 /* Address where bytes may be deleted. */ 1896 bfd_vma addr; 1897 1898 /* Number of bytes to be deleted. */ 1899 int size; 1900 }; 1901 1902 /* Note: the following are provided as inline functions rather than macros 1903 because not all callers use the return value. A macro implementation 1904 would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some 1905 compilers will complain about comma expressions that have no effect. */ 1906 static inline bfd_boolean 1907 bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, void * val) 1908 { 1909 ptr->userdata = val; 1910 return TRUE; 1911 } 1912 1913 static inline bfd_boolean 1914 bfd_set_section_vma (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, bfd_vma val) 1915 { 1916 ptr->vma = ptr->lma = val; 1917 ptr->user_set_vma = TRUE; 1918 return TRUE; 1919 } 1920 1921 static inline bfd_boolean 1922 bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, unsigned int val) 1923 { 1924 ptr->alignment_power = val; 1925 return TRUE; 1926 } 1927 1928 /* These sections are global, and are managed by BFD. The application 1929 and target back end are not permitted to change the values in 1930 these sections. */ 1931 extern asection _bfd_std_section[4]; 1932 1933 #define BFD_ABS_SECTION_NAME "*ABS*" 1934 #define BFD_UND_SECTION_NAME "*UND*" 1935 #define BFD_COM_SECTION_NAME "*COM*" 1936 #define BFD_IND_SECTION_NAME "*IND*" 1937 1938 /* Pointer to the common section. */ 1939 #define bfd_com_section_ptr (&_bfd_std_section[0]) 1940 /* Pointer to the undefined section. */ 1941 #define bfd_und_section_ptr (&_bfd_std_section[1]) 1942 /* Pointer to the absolute section. */ 1943 #define bfd_abs_section_ptr (&_bfd_std_section[2]) 1944 /* Pointer to the indirect section. */ 1945 #define bfd_ind_section_ptr (&_bfd_std_section[3]) 1946 1947 #define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr) 1948 #define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr) 1949 #define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr) 1950 1951 #define bfd_is_const_section(SEC) \ 1952 ( ((SEC) == bfd_abs_section_ptr) \ 1953 || ((SEC) == bfd_und_section_ptr) \ 1954 || ((SEC) == bfd_com_section_ptr) \ 1955 || ((SEC) == bfd_ind_section_ptr)) 1956 1957 /* Macros to handle insertion and deletion of a bfd's sections. These 1958 only handle the list pointers, ie. do not adjust section_count, 1959 target_index etc. */ 1960 #define bfd_section_list_remove(ABFD, S) \ 1961 do \ 1962 { \ 1963 asection *_s = S; \ 1964 asection *_next = _s->next; \ 1965 asection *_prev = _s->prev; \ 1966 if (_prev) \ 1967 _prev->next = _next; \ 1968 else \ 1969 (ABFD)->sections = _next; \ 1970 if (_next) \ 1971 _next->prev = _prev; \ 1972 else \ 1973 (ABFD)->section_last = _prev; \ 1974 } \ 1975 while (0) 1976 #define bfd_section_list_append(ABFD, S) \ 1977 do \ 1978 { \ 1979 asection *_s = S; \ 1980 bfd *_abfd = ABFD; \ 1981 _s->next = NULL; \ 1982 if (_abfd->section_last) \ 1983 { \ 1984 _s->prev = _abfd->section_last; \ 1985 _abfd->section_last->next = _s; \ 1986 } \ 1987 else \ 1988 { \ 1989 _s->prev = NULL; \ 1990 _abfd->sections = _s; \ 1991 } \ 1992 _abfd->section_last = _s; \ 1993 } \ 1994 while (0) 1995 #define bfd_section_list_prepend(ABFD, S) \ 1996 do \ 1997 { \ 1998 asection *_s = S; \ 1999 bfd *_abfd = ABFD; \ 2000 _s->prev = NULL; \ 2001 if (_abfd->sections) \ 2002 { \ 2003 _s->next = _abfd->sections; \ 2004 _abfd->sections->prev = _s; \ 2005 } \ 2006 else \ 2007 { \ 2008 _s->next = NULL; \ 2009 _abfd->section_last = _s; \ 2010 } \ 2011 _abfd->sections = _s; \ 2012 } \ 2013 while (0) 2014 #define bfd_section_list_insert_after(ABFD, A, S) \ 2015 do \ 2016 { \ 2017 asection *_a = A; \ 2018 asection *_s = S; \ 2019 asection *_next = _a->next; \ 2020 _s->next = _next; \ 2021 _s->prev = _a; \ 2022 _a->next = _s; \ 2023 if (_next) \ 2024 _next->prev = _s; \ 2025 else \ 2026 (ABFD)->section_last = _s; \ 2027 } \ 2028 while (0) 2029 #define bfd_section_list_insert_before(ABFD, B, S) \ 2030 do \ 2031 { \ 2032 asection *_b = B; \ 2033 asection *_s = S; \ 2034 asection *_prev = _b->prev; \ 2035 _s->prev = _prev; \ 2036 _s->next = _b; \ 2037 _b->prev = _s; \ 2038 if (_prev) \ 2039 _prev->next = _s; \ 2040 else \ 2041 (ABFD)->sections = _s; \ 2042 } \ 2043 while (0) 2044 #define bfd_section_removed_from_list(ABFD, S) \ 2045 ((S)->next == NULL ? (ABFD)->section_last != (S) : (S)->next->prev != (S)) 2046 2047 #define BFD_FAKE_SECTION(SEC, FLAGS, SYM, NAME, IDX) \ 2048 /* name, id, index, next, prev, flags, user_set_vma, */ \ 2049 { NAME, IDX, 0, NULL, NULL, FLAGS, 0, \ 2050 \ 2051 /* linker_mark, linker_has_input, gc_mark, decompress_status, */ \ 2052 0, 0, 1, 0, \ 2053 \ 2054 /* segment_mark, sec_info_type, use_rela_p, */ \ 2055 0, 0, 0, \ 2056 \ 2057 /* sec_flg0, sec_flg1, sec_flg2, sec_flg3, sec_flg4, sec_flg5, */ \ 2058 0, 0, 0, 0, 0, 0, \ 2059 \ 2060 /* vma, lma, size, rawsize, compressed_size, relax, relax_count, */ \ 2061 0, 0, 0, 0, 0, 0, 0, \ 2062 \ 2063 /* output_offset, output_section, alignment_power, */ \ 2064 0, &SEC, 0, \ 2065 \ 2066 /* relocation, orelocation, reloc_count, filepos, rel_filepos, */ \ 2067 NULL, NULL, 0, 0, 0, \ 2068 \ 2069 /* line_filepos, userdata, contents, lineno, lineno_count, */ \ 2070 0, NULL, NULL, NULL, 0, \ 2071 \ 2072 /* entsize, kept_section, moving_line_filepos, */ \ 2073 0, NULL, 0, \ 2074 \ 2075 /* target_index, used_by_bfd, constructor_chain, owner, */ \ 2076 0, NULL, NULL, NULL, \ 2077 \ 2078 /* symbol, symbol_ptr_ptr, */ \ 2079 (struct bfd_symbol *) SYM, &SEC.symbol, \ 2080 \ 2081 /* map_head, map_tail */ \ 2082 { NULL }, { NULL } \ 2083 } 2084 2085 2086File: bfd.info, Node: section prototypes, Prev: typedef asection, Up: Sections 2087 20882.6.5 Section prototypes 2089------------------------ 2090 2091These are the functions exported by the section handling part of BFD. 2092 20932.6.5.1 `bfd_section_list_clear' 2094................................ 2095 2096*Synopsis* 2097 void bfd_section_list_clear (bfd *); 2098 *Description* 2099Clears the section list, and also resets the section count and hash 2100table entries. 2101 21022.6.5.2 `bfd_get_section_by_name' 2103................................. 2104 2105*Synopsis* 2106 asection *bfd_get_section_by_name (bfd *abfd, const char *name); 2107 *Description* 2108Return the most recently created section attached to ABFD named NAME. 2109Return NULL if no such section exists. 2110 21112.6.5.3 `bfd_get_next_section_by_name' 2112...................................... 2113 2114*Synopsis* 2115 asection *bfd_get_next_section_by_name (bfd *ibfd, asection *sec); 2116 *Description* 2117Given SEC is a section returned by `bfd_get_section_by_name', return 2118the next most recently created section attached to the same BFD with 2119the same name, or if no such section exists in the same BFD and IBFD is 2120non-NULL, the next section with the same name in any input BFD 2121following IBFD. Return NULL on finding no section. 2122 21232.6.5.4 `bfd_get_linker_section' 2124................................ 2125 2126*Synopsis* 2127 asection *bfd_get_linker_section (bfd *abfd, const char *name); 2128 *Description* 2129Return the linker created section attached to ABFD named NAME. Return 2130NULL if no such section exists. 2131 21322.6.5.5 `bfd_get_section_by_name_if' 2133.................................... 2134 2135*Synopsis* 2136 asection *bfd_get_section_by_name_if 2137 (bfd *abfd, 2138 const char *name, 2139 bfd_boolean (*func) (bfd *abfd, asection *sect, void *obj), 2140 void *obj); 2141 *Description* 2142Call the provided function FUNC for each section attached to the BFD 2143ABFD whose name matches NAME, passing OBJ as an argument. The function 2144will be called as if by 2145 2146 func (abfd, the_section, obj); 2147 2148 It returns the first section for which FUNC returns true, otherwise 2149`NULL'. 2150 21512.6.5.6 `bfd_get_unique_section_name' 2152..................................... 2153 2154*Synopsis* 2155 char *bfd_get_unique_section_name 2156 (bfd *abfd, const char *templat, int *count); 2157 *Description* 2158Invent a section name that is unique in ABFD by tacking a dot and a 2159digit suffix onto the original TEMPLAT. If COUNT is non-NULL, then it 2160specifies the first number tried as a suffix to generate a unique name. 2161The value pointed to by COUNT will be incremented in this case. 2162 21632.6.5.7 `bfd_make_section_old_way' 2164.................................. 2165 2166*Synopsis* 2167 asection *bfd_make_section_old_way (bfd *abfd, const char *name); 2168 *Description* 2169Create a new empty section called NAME and attach it to the end of the 2170chain of sections for the BFD ABFD. An attempt to create a section with 2171a name which is already in use returns its pointer without changing the 2172section chain. 2173 2174 It has the funny name since this is the way it used to be before it 2175was rewritten.... 2176 2177 Possible errors are: 2178 * `bfd_error_invalid_operation' - If output has already started for 2179 this BFD. 2180 2181 * `bfd_error_no_memory' - If memory allocation fails. 2182 21832.6.5.8 `bfd_make_section_anyway_with_flags' 2184............................................ 2185 2186*Synopsis* 2187 asection *bfd_make_section_anyway_with_flags 2188 (bfd *abfd, const char *name, flagword flags); 2189 *Description* 2190Create a new empty section called NAME and attach it to the end of the 2191chain of sections for ABFD. Create a new section even if there is 2192already a section with that name. Also set the attributes of the new 2193section to the value FLAGS. 2194 2195 Return `NULL' and set `bfd_error' on error; possible errors are: 2196 * `bfd_error_invalid_operation' - If output has already started for 2197 ABFD. 2198 2199 * `bfd_error_no_memory' - If memory allocation fails. 2200 22012.6.5.9 `bfd_make_section_anyway' 2202................................. 2203 2204*Synopsis* 2205 asection *bfd_make_section_anyway (bfd *abfd, const char *name); 2206 *Description* 2207Create a new empty section called NAME and attach it to the end of the 2208chain of sections for ABFD. Create a new section even if there is 2209already a section with that name. 2210 2211 Return `NULL' and set `bfd_error' on error; possible errors are: 2212 * `bfd_error_invalid_operation' - If output has already started for 2213 ABFD. 2214 2215 * `bfd_error_no_memory' - If memory allocation fails. 2216 22172.6.5.10 `bfd_make_section_with_flags' 2218...................................... 2219 2220*Synopsis* 2221 asection *bfd_make_section_with_flags 2222 (bfd *, const char *name, flagword flags); 2223 *Description* 2224Like `bfd_make_section_anyway', but return `NULL' (without calling 2225bfd_set_error ()) without changing the section chain if there is 2226already a section named NAME. Also set the attributes of the new 2227section to the value FLAGS. If there is an error, return `NULL' and set 2228`bfd_error'. 2229 22302.6.5.11 `bfd_make_section' 2231........................... 2232 2233*Synopsis* 2234 asection *bfd_make_section (bfd *, const char *name); 2235 *Description* 2236Like `bfd_make_section_anyway', but return `NULL' (without calling 2237bfd_set_error ()) without changing the section chain if there is 2238already a section named NAME. If there is an error, return `NULL' and 2239set `bfd_error'. 2240 22412.6.5.12 `bfd_get_next_section_id' 2242.................................. 2243 2244*Synopsis* 2245 int bfd_get_next_section_id (void); 2246 *Description* 2247Returns the id that the next section created will have. 2248 22492.6.5.13 `bfd_set_section_flags' 2250................................ 2251 2252*Synopsis* 2253 bfd_boolean bfd_set_section_flags 2254 (bfd *abfd, asection *sec, flagword flags); 2255 *Description* 2256Set the attributes of the section SEC in the BFD ABFD to the value 2257FLAGS. Return `TRUE' on success, `FALSE' on error. Possible error 2258returns are: 2259 2260 * `bfd_error_invalid_operation' - The section cannot have one or 2261 more of the attributes requested. For example, a .bss section in 2262 `a.out' may not have the `SEC_HAS_CONTENTS' field set. 2263 22642.6.5.14 `bfd_rename_section' 2265............................. 2266 2267*Synopsis* 2268 void bfd_rename_section 2269 (bfd *abfd, asection *sec, const char *newname); 2270 *Description* 2271Rename section SEC in ABFD to NEWNAME. 2272 22732.6.5.15 `bfd_map_over_sections' 2274................................ 2275 2276*Synopsis* 2277 void bfd_map_over_sections 2278 (bfd *abfd, 2279 void (*func) (bfd *abfd, asection *sect, void *obj), 2280 void *obj); 2281 *Description* 2282Call the provided function FUNC for each section attached to the BFD 2283ABFD, passing OBJ as an argument. The function will be called as if by 2284 2285 func (abfd, the_section, obj); 2286 2287 This is the preferred method for iterating over sections; an 2288alternative would be to use a loop: 2289 2290 asection *p; 2291 for (p = abfd->sections; p != NULL; p = p->next) 2292 func (abfd, p, ...) 2293 22942.6.5.16 `bfd_sections_find_if' 2295............................... 2296 2297*Synopsis* 2298 asection *bfd_sections_find_if 2299 (bfd *abfd, 2300 bfd_boolean (*operation) (bfd *abfd, asection *sect, void *obj), 2301 void *obj); 2302 *Description* 2303Call the provided function OPERATION for each section attached to the 2304BFD ABFD, passing OBJ as an argument. The function will be called as if 2305by 2306 2307 operation (abfd, the_section, obj); 2308 2309 It returns the first section for which OPERATION returns true. 2310 23112.6.5.17 `bfd_set_section_size' 2312............................... 2313 2314*Synopsis* 2315 bfd_boolean bfd_set_section_size 2316 (bfd *abfd, asection *sec, bfd_size_type val); 2317 *Description* 2318Set SEC to the size VAL. If the operation is ok, then `TRUE' is 2319returned, else `FALSE'. 2320 2321 Possible error returns: 2322 * `bfd_error_invalid_operation' - Writing has started to the BFD, so 2323 setting the size is invalid. 2324 23252.6.5.18 `bfd_set_section_contents' 2326................................... 2327 2328*Synopsis* 2329 bfd_boolean bfd_set_section_contents 2330 (bfd *abfd, asection *section, const void *data, 2331 file_ptr offset, bfd_size_type count); 2332 *Description* 2333Sets the contents of the section SECTION in BFD ABFD to the data 2334starting in memory at DATA. The data is written to the output section 2335starting at offset OFFSET for COUNT octets. 2336 2337 Normally `TRUE' is returned, else `FALSE'. Possible error returns 2338are: 2339 * `bfd_error_no_contents' - The output section does not have the 2340 `SEC_HAS_CONTENTS' attribute, so nothing can be written to it. 2341 2342 * and some more too 2343 This routine is front end to the back end function 2344`_bfd_set_section_contents'. 2345 23462.6.5.19 `bfd_get_section_contents' 2347................................... 2348 2349*Synopsis* 2350 bfd_boolean bfd_get_section_contents 2351 (bfd *abfd, asection *section, void *location, file_ptr offset, 2352 bfd_size_type count); 2353 *Description* 2354Read data from SECTION in BFD ABFD into memory starting at LOCATION. 2355The data is read at an offset of OFFSET from the start of the input 2356section, and is read for COUNT bytes. 2357 2358 If the contents of a constructor with the `SEC_CONSTRUCTOR' flag set 2359are requested or if the section does not have the `SEC_HAS_CONTENTS' 2360flag set, then the LOCATION is filled with zeroes. If no errors occur, 2361`TRUE' is returned, else `FALSE'. 2362 23632.6.5.20 `bfd_malloc_and_get_section' 2364..................................... 2365 2366*Synopsis* 2367 bfd_boolean bfd_malloc_and_get_section 2368 (bfd *abfd, asection *section, bfd_byte **buf); 2369 *Description* 2370Read all data from SECTION in BFD ABFD into a buffer, *BUF, malloc'd by 2371this function. 2372 23732.6.5.21 `bfd_copy_private_section_data' 2374........................................ 2375 2376*Synopsis* 2377 bfd_boolean bfd_copy_private_section_data 2378 (bfd *ibfd, asection *isec, bfd *obfd, asection *osec); 2379 *Description* 2380Copy private section information from ISEC in the BFD IBFD to the 2381section OSEC in the BFD OBFD. Return `TRUE' on success, `FALSE' on 2382error. Possible error returns are: 2383 2384 * `bfd_error_no_memory' - Not enough memory exists to create private 2385 data for OSEC. 2386 2387 #define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \ 2388 BFD_SEND (obfd, _bfd_copy_private_section_data, \ 2389 (ibfd, isection, obfd, osection)) 2390 23912.6.5.22 `bfd_generic_is_group_section' 2392....................................... 2393 2394*Synopsis* 2395 bfd_boolean bfd_generic_is_group_section (bfd *, const asection *sec); 2396 *Description* 2397Returns TRUE if SEC is a member of a group. 2398 23992.6.5.23 `bfd_generic_discard_group' 2400.................................... 2401 2402*Synopsis* 2403 bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group); 2404 *Description* 2405Remove all members of GROUP from the output. 2406 2407 2408File: bfd.info, Node: Symbols, Next: Archives, Prev: Sections, Up: BFD front end 2409 24102.7 Symbols 2411=========== 2412 2413BFD tries to maintain as much symbol information as it can when it 2414moves information from file to file. BFD passes information to 2415applications though the `asymbol' structure. When the application 2416requests the symbol table, BFD reads the table in the native form and 2417translates parts of it into the internal format. To maintain more than 2418the information passed to applications, some targets keep some 2419information "behind the scenes" in a structure only the particular back 2420end knows about. For example, the coff back end keeps the original 2421symbol table structure as well as the canonical structure when a BFD is 2422read in. On output, the coff back end can reconstruct the output symbol 2423table so that no information is lost, even information unique to coff 2424which BFD doesn't know or understand. If a coff symbol table were read, 2425but were written through an a.out back end, all the coff specific 2426information would be lost. The symbol table of a BFD is not necessarily 2427read in until a canonicalize request is made. Then the BFD back end 2428fills in a table provided by the application with pointers to the 2429canonical information. To output symbols, the application provides BFD 2430with a table of pointers to pointers to `asymbol's. This allows 2431applications like the linker to output a symbol as it was read, since 2432the "behind the scenes" information will be still available. 2433 2434* Menu: 2435 2436* Reading Symbols:: 2437* Writing Symbols:: 2438* Mini Symbols:: 2439* typedef asymbol:: 2440* symbol handling functions:: 2441 2442 2443File: bfd.info, Node: Reading Symbols, Next: Writing Symbols, Prev: Symbols, Up: Symbols 2444 24452.7.1 Reading symbols 2446--------------------- 2447 2448There are two stages to reading a symbol table from a BFD: allocating 2449storage, and the actual reading process. This is an excerpt from an 2450application which reads the symbol table: 2451 2452 long storage_needed; 2453 asymbol **symbol_table; 2454 long number_of_symbols; 2455 long i; 2456 2457 storage_needed = bfd_get_symtab_upper_bound (abfd); 2458 2459 if (storage_needed < 0) 2460 FAIL 2461 2462 if (storage_needed == 0) 2463 return; 2464 2465 symbol_table = xmalloc (storage_needed); 2466 ... 2467 number_of_symbols = 2468 bfd_canonicalize_symtab (abfd, symbol_table); 2469 2470 if (number_of_symbols < 0) 2471 FAIL 2472 2473 for (i = 0; i < number_of_symbols; i++) 2474 process_symbol (symbol_table[i]); 2475 2476 All storage for the symbols themselves is in an objalloc connected 2477to the BFD; it is freed when the BFD is closed. 2478 2479 2480File: bfd.info, Node: Writing Symbols, Next: Mini Symbols, Prev: Reading Symbols, Up: Symbols 2481 24822.7.2 Writing symbols 2483--------------------- 2484 2485Writing of a symbol table is automatic when a BFD open for writing is 2486closed. The application attaches a vector of pointers to pointers to 2487symbols to the BFD being written, and fills in the symbol count. The 2488close and cleanup code reads through the table provided and performs 2489all the necessary operations. The BFD output code must always be 2490provided with an "owned" symbol: one which has come from another BFD, 2491or one which has been created using `bfd_make_empty_symbol'. Here is an 2492example showing the creation of a symbol table with only one element: 2493 2494 #include "sysdep.h" 2495 #include "bfd.h" 2496 int main (void) 2497 { 2498 bfd *abfd; 2499 asymbol *ptrs[2]; 2500 asymbol *new; 2501 2502 abfd = bfd_openw ("foo","a.out-sunos-big"); 2503 bfd_set_format (abfd, bfd_object); 2504 new = bfd_make_empty_symbol (abfd); 2505 new->name = "dummy_symbol"; 2506 new->section = bfd_make_section_old_way (abfd, ".text"); 2507 new->flags = BSF_GLOBAL; 2508 new->value = 0x12345; 2509 2510 ptrs[0] = new; 2511 ptrs[1] = 0; 2512 2513 bfd_set_symtab (abfd, ptrs, 1); 2514 bfd_close (abfd); 2515 return 0; 2516 } 2517 2518 ./makesym 2519 nm foo 2520 00012345 A dummy_symbol 2521 2522 Many formats cannot represent arbitrary symbol information; for 2523instance, the `a.out' object format does not allow an arbitrary number 2524of sections. A symbol pointing to a section which is not one of 2525`.text', `.data' or `.bss' cannot be described. 2526 2527 2528File: bfd.info, Node: Mini Symbols, Next: typedef asymbol, Prev: Writing Symbols, Up: Symbols 2529 25302.7.3 Mini Symbols 2531------------------ 2532 2533Mini symbols provide read-only access to the symbol table. They use 2534less memory space, but require more time to access. They can be useful 2535for tools like nm or objdump, which may have to handle symbol tables of 2536extremely large executables. 2537 2538 The `bfd_read_minisymbols' function will read the symbols into 2539memory in an internal form. It will return a `void *' pointer to a 2540block of memory, a symbol count, and the size of each symbol. The 2541pointer is allocated using `malloc', and should be freed by the caller 2542when it is no longer needed. 2543 2544 The function `bfd_minisymbol_to_symbol' will take a pointer to a 2545minisymbol, and a pointer to a structure returned by 2546`bfd_make_empty_symbol', and return a `asymbol' structure. The return 2547value may or may not be the same as the value from 2548`bfd_make_empty_symbol' which was passed in. 2549 2550 2551File: bfd.info, Node: typedef asymbol, Next: symbol handling functions, Prev: Mini Symbols, Up: Symbols 2552 25532.7.4 typedef asymbol 2554--------------------- 2555 2556An `asymbol' has the form: 2557 2558 2559 typedef struct bfd_symbol 2560 { 2561 /* A pointer to the BFD which owns the symbol. This information 2562 is necessary so that a back end can work out what additional 2563 information (invisible to the application writer) is carried 2564 with the symbol. 2565 2566 This field is *almost* redundant, since you can use section->owner 2567 instead, except that some symbols point to the global sections 2568 bfd_{abs,com,und}_section. This could be fixed by making 2569 these globals be per-bfd (or per-target-flavor). FIXME. */ 2570 struct bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field. */ 2571 2572 /* The text of the symbol. The name is left alone, and not copied; the 2573 application may not alter it. */ 2574 const char *name; 2575 2576 /* The value of the symbol. This really should be a union of a 2577 numeric value with a pointer, since some flags indicate that 2578 a pointer to another symbol is stored here. */ 2579 symvalue value; 2580 2581 /* Attributes of a symbol. */ 2582 #define BSF_NO_FLAGS 0x00 2583 2584 /* The symbol has local scope; `static' in `C'. The value 2585 is the offset into the section of the data. */ 2586 #define BSF_LOCAL (1 << 0) 2587 2588 /* The symbol has global scope; initialized data in `C'. The 2589 value is the offset into the section of the data. */ 2590 #define BSF_GLOBAL (1 << 1) 2591 2592 /* The symbol has global scope and is exported. The value is 2593 the offset into the section of the data. */ 2594 #define BSF_EXPORT BSF_GLOBAL /* No real difference. */ 2595 2596 /* A normal C symbol would be one of: 2597 `BSF_LOCAL', `BSF_COMMON', `BSF_UNDEFINED' or 2598 `BSF_GLOBAL'. */ 2599 2600 /* The symbol is a debugging record. The value has an arbitrary 2601 meaning, unless BSF_DEBUGGING_RELOC is also set. */ 2602 #define BSF_DEBUGGING (1 << 2) 2603 2604 /* The symbol denotes a function entry point. Used in ELF, 2605 perhaps others someday. */ 2606 #define BSF_FUNCTION (1 << 3) 2607 2608 /* Used by the linker. */ 2609 #define BSF_KEEP (1 << 5) 2610 #define BSF_KEEP_G (1 << 6) 2611 2612 /* A weak global symbol, overridable without warnings by 2613 a regular global symbol of the same name. */ 2614 #define BSF_WEAK (1 << 7) 2615 2616 /* This symbol was created to point to a section, e.g. ELF's 2617 STT_SECTION symbols. */ 2618 #define BSF_SECTION_SYM (1 << 8) 2619 2620 /* The symbol used to be a common symbol, but now it is 2621 allocated. */ 2622 #define BSF_OLD_COMMON (1 << 9) 2623 2624 /* In some files the type of a symbol sometimes alters its 2625 location in an output file - ie in coff a `ISFCN' symbol 2626 which is also `C_EXT' symbol appears where it was 2627 declared and not at the end of a section. This bit is set 2628 by the target BFD part to convey this information. */ 2629 #define BSF_NOT_AT_END (1 << 10) 2630 2631 /* Signal that the symbol is the label of constructor section. */ 2632 #define BSF_CONSTRUCTOR (1 << 11) 2633 2634 /* Signal that the symbol is a warning symbol. The name is a 2635 warning. The name of the next symbol is the one to warn about; 2636 if a reference is made to a symbol with the same name as the next 2637 symbol, a warning is issued by the linker. */ 2638 #define BSF_WARNING (1 << 12) 2639 2640 /* Signal that the symbol is indirect. This symbol is an indirect 2641 pointer to the symbol with the same name as the next symbol. */ 2642 #define BSF_INDIRECT (1 << 13) 2643 2644 /* BSF_FILE marks symbols that contain a file name. This is used 2645 for ELF STT_FILE symbols. */ 2646 #define BSF_FILE (1 << 14) 2647 2648 /* Symbol is from dynamic linking information. */ 2649 #define BSF_DYNAMIC (1 << 15) 2650 2651 /* The symbol denotes a data object. Used in ELF, and perhaps 2652 others someday. */ 2653 #define BSF_OBJECT (1 << 16) 2654 2655 /* This symbol is a debugging symbol. The value is the offset 2656 into the section of the data. BSF_DEBUGGING should be set 2657 as well. */ 2658 #define BSF_DEBUGGING_RELOC (1 << 17) 2659 2660 /* This symbol is thread local. Used in ELF. */ 2661 #define BSF_THREAD_LOCAL (1 << 18) 2662 2663 /* This symbol represents a complex relocation expression, 2664 with the expression tree serialized in the symbol name. */ 2665 #define BSF_RELC (1 << 19) 2666 2667 /* This symbol represents a signed complex relocation expression, 2668 with the expression tree serialized in the symbol name. */ 2669 #define BSF_SRELC (1 << 20) 2670 2671 /* This symbol was created by bfd_get_synthetic_symtab. */ 2672 #define BSF_SYNTHETIC (1 << 21) 2673 2674 /* This symbol is an indirect code object. Unrelated to BSF_INDIRECT. 2675 The dynamic linker will compute the value of this symbol by 2676 calling the function that it points to. BSF_FUNCTION must 2677 also be also set. */ 2678 #define BSF_GNU_INDIRECT_FUNCTION (1 << 22) 2679 /* This symbol is a globally unique data object. The dynamic linker 2680 will make sure that in the entire process there is just one symbol 2681 with this name and type in use. BSF_OBJECT must also be set. */ 2682 #define BSF_GNU_UNIQUE (1 << 23) 2683 2684 flagword flags; 2685 2686 /* A pointer to the section to which this symbol is 2687 relative. This will always be non NULL, there are special 2688 sections for undefined and absolute symbols. */ 2689 struct bfd_section *section; 2690 2691 /* Back end special data. */ 2692 union 2693 { 2694 void *p; 2695 bfd_vma i; 2696 } 2697 udata; 2698 } 2699 asymbol; 2700 2701 2702File: bfd.info, Node: symbol handling functions, Prev: typedef asymbol, Up: Symbols 2703 27042.7.5 Symbol handling functions 2705------------------------------- 2706 27072.7.5.1 `bfd_get_symtab_upper_bound' 2708.................................... 2709 2710*Description* 2711Return the number of bytes required to store a vector of pointers to 2712`asymbols' for all the symbols in the BFD ABFD, including a terminal 2713NULL pointer. If there are no symbols in the BFD, then return 0. If an 2714error occurs, return -1. 2715 #define bfd_get_symtab_upper_bound(abfd) \ 2716 BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd)) 2717 27182.7.5.2 `bfd_is_local_label' 2719............................ 2720 2721*Synopsis* 2722 bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym); 2723 *Description* 2724Return TRUE if the given symbol SYM in the BFD ABFD is a compiler 2725generated local label, else return FALSE. 2726 27272.7.5.3 `bfd_is_local_label_name' 2728................................. 2729 2730*Synopsis* 2731 bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name); 2732 *Description* 2733Return TRUE if a symbol with the name NAME in the BFD ABFD is a 2734compiler generated local label, else return FALSE. This just checks 2735whether the name has the form of a local label. 2736 #define bfd_is_local_label_name(abfd, name) \ 2737 BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name)) 2738 27392.7.5.4 `bfd_is_target_special_symbol' 2740...................................... 2741 2742*Synopsis* 2743 bfd_boolean bfd_is_target_special_symbol (bfd *abfd, asymbol *sym); 2744 *Description* 2745Return TRUE iff a symbol SYM in the BFD ABFD is something special to 2746the particular target represented by the BFD. Such symbols should 2747normally not be mentioned to the user. 2748 #define bfd_is_target_special_symbol(abfd, sym) \ 2749 BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym)) 2750 27512.7.5.5 `bfd_canonicalize_symtab' 2752................................. 2753 2754*Description* 2755Read the symbols from the BFD ABFD, and fills in the vector LOCATION 2756with pointers to the symbols and a trailing NULL. Return the actual 2757number of symbol pointers, not including the NULL. 2758 #define bfd_canonicalize_symtab(abfd, location) \ 2759 BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location)) 2760 27612.7.5.6 `bfd_set_symtab' 2762........................ 2763 2764*Synopsis* 2765 bfd_boolean bfd_set_symtab 2766 (bfd *abfd, asymbol **location, unsigned int count); 2767 *Description* 2768Arrange that when the output BFD ABFD is closed, the table LOCATION of 2769COUNT pointers to symbols will be written. 2770 27712.7.5.7 `bfd_print_symbol_vandf' 2772................................ 2773 2774*Synopsis* 2775 void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol); 2776 *Description* 2777Print the value and flags of the SYMBOL supplied to the stream FILE. 2778 27792.7.5.8 `bfd_make_empty_symbol' 2780............................... 2781 2782*Description* 2783Create a new `asymbol' structure for the BFD ABFD and return a pointer 2784to it. 2785 2786 This routine is necessary because each back end has private 2787information surrounding the `asymbol'. Building your own `asymbol' and 2788pointing to it will not create the private information, and will cause 2789problems later on. 2790 #define bfd_make_empty_symbol(abfd) \ 2791 BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd)) 2792 27932.7.5.9 `_bfd_generic_make_empty_symbol' 2794........................................ 2795 2796*Synopsis* 2797 asymbol *_bfd_generic_make_empty_symbol (bfd *); 2798 *Description* 2799Create a new `asymbol' structure for the BFD ABFD and return a pointer 2800to it. Used by core file routines, binary back-end and anywhere else 2801where no private info is needed. 2802 28032.7.5.10 `bfd_make_debug_symbol' 2804................................ 2805 2806*Description* 2807Create a new `asymbol' structure for the BFD ABFD, to be used as a 2808debugging symbol. Further details of its use have yet to be worked out. 2809 #define bfd_make_debug_symbol(abfd,ptr,size) \ 2810 BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size)) 2811 28122.7.5.11 `bfd_decode_symclass' 2813.............................. 2814 2815*Description* 2816Return a character corresponding to the symbol class of SYMBOL, or '?' 2817for an unknown class. 2818 2819 *Synopsis* 2820 int bfd_decode_symclass (asymbol *symbol); 2821 28222.7.5.12 `bfd_is_undefined_symclass' 2823.................................... 2824 2825*Description* 2826Returns non-zero if the class symbol returned by bfd_decode_symclass 2827represents an undefined symbol. Returns zero otherwise. 2828 2829 *Synopsis* 2830 bfd_boolean bfd_is_undefined_symclass (int symclass); 2831 28322.7.5.13 `bfd_symbol_info' 2833.......................... 2834 2835*Description* 2836Fill in the basic info about symbol that nm needs. Additional info may 2837be added by the back-ends after calling this function. 2838 2839 *Synopsis* 2840 void bfd_symbol_info (asymbol *symbol, symbol_info *ret); 2841 28422.7.5.14 `bfd_copy_private_symbol_data' 2843....................................... 2844 2845*Synopsis* 2846 bfd_boolean bfd_copy_private_symbol_data 2847 (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym); 2848 *Description* 2849Copy private symbol information from ISYM in the BFD IBFD to the symbol 2850OSYM in the BFD OBFD. Return `TRUE' on success, `FALSE' on error. 2851Possible error returns are: 2852 2853 * `bfd_error_no_memory' - Not enough memory exists to create private 2854 data for OSEC. 2855 2856 #define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \ 2857 BFD_SEND (obfd, _bfd_copy_private_symbol_data, \ 2858 (ibfd, isymbol, obfd, osymbol)) 2859 2860 2861File: bfd.info, Node: Archives, Next: Formats, Prev: Symbols, Up: BFD front end 2862 28632.8 Archives 2864============ 2865 2866*Description* 2867An archive (or library) is just another BFD. It has a symbol table, 2868although there's not much a user program will do with it. 2869 2870 The big difference between an archive BFD and an ordinary BFD is 2871that the archive doesn't have sections. Instead it has a chain of BFDs 2872that are considered its contents. These BFDs can be manipulated like 2873any other. The BFDs contained in an archive opened for reading will 2874all be opened for reading. You may put either input or output BFDs 2875into an archive opened for output; they will be handled correctly when 2876the archive is closed. 2877 2878 Use `bfd_openr_next_archived_file' to step through the contents of 2879an archive opened for input. You don't have to read the entire archive 2880if you don't want to! Read it until you find what you want. 2881 2882 A BFD returned by `bfd_openr_next_archived_file' can be closed 2883manually with `bfd_close'. If you do not close it, then a second 2884iteration through the members of an archive may return the same BFD. 2885If you close the archive BFD, then all the member BFDs will 2886automatically be closed as well. 2887 2888 Archive contents of output BFDs are chained through the 2889`archive_next' pointer in a BFD. The first one is findable through the 2890`archive_head' slot of the archive. Set it with `bfd_set_archive_head' 2891(q.v.). A given BFD may be in only one open output archive at a time. 2892 2893 As expected, the BFD archive code is more general than the archive 2894code of any given environment. BFD archives may contain files of 2895different formats (e.g., a.out and coff) and even different 2896architectures. You may even place archives recursively into archives! 2897 2898 This can cause unexpected confusion, since some archive formats are 2899more expressive than others. For instance, Intel COFF archives can 2900preserve long filenames; SunOS a.out archives cannot. If you move a 2901file from the first to the second format and back again, the filename 2902may be truncated. Likewise, different a.out environments have different 2903conventions as to how they truncate filenames, whether they preserve 2904directory names in filenames, etc. When interoperating with native 2905tools, be sure your files are homogeneous. 2906 2907 Beware: most of these formats do not react well to the presence of 2908spaces in filenames. We do the best we can, but can't always handle 2909this case due to restrictions in the format of archives. Many Unix 2910utilities are braindead in regards to spaces and such in filenames 2911anyway, so this shouldn't be much of a restriction. 2912 2913 Archives are supported in BFD in `archive.c'. 2914 29152.8.1 Archive functions 2916----------------------- 2917 29182.8.1.1 `bfd_get_next_mapent' 2919............................. 2920 2921*Synopsis* 2922 symindex bfd_get_next_mapent 2923 (bfd *abfd, symindex previous, carsym **sym); 2924 *Description* 2925Step through archive ABFD's symbol table (if it has one). Successively 2926update SYM with the next symbol's information, returning that symbol's 2927(internal) index into the symbol table. 2928 2929 Supply `BFD_NO_MORE_SYMBOLS' as the PREVIOUS entry to get the first 2930one; returns `BFD_NO_MORE_SYMBOLS' when you've already got the last one. 2931 2932 A `carsym' is a canonical archive symbol. The only user-visible 2933element is its name, a null-terminated string. 2934 29352.8.1.2 `bfd_set_archive_head' 2936.............................. 2937 2938*Synopsis* 2939 bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head); 2940 *Description* 2941Set the head of the chain of BFDs contained in the archive OUTPUT to 2942NEW_HEAD. 2943 29442.8.1.3 `bfd_openr_next_archived_file' 2945...................................... 2946 2947*Synopsis* 2948 bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous); 2949 *Description* 2950Provided a BFD, ARCHIVE, containing an archive and NULL, open an input 2951BFD on the first contained element and returns that. Subsequent calls 2952should pass the archive and the previous return value to return a 2953created BFD to the next contained element. NULL is returned when there 2954are no more. 2955 2956 2957File: bfd.info, Node: Formats, Next: Relocations, Prev: Archives, Up: BFD front end 2958 29592.9 File formats 2960================ 2961 2962A format is a BFD concept of high level file contents type. The formats 2963supported by BFD are: 2964 2965 * `bfd_object' 2966 The BFD may contain data, symbols, relocations and debug info. 2967 2968 * `bfd_archive' 2969 The BFD contains other BFDs and an optional index. 2970 2971 * `bfd_core' 2972 The BFD contains the result of an executable core dump. 2973 29742.9.1 File format functions 2975--------------------------- 2976 29772.9.1.1 `bfd_check_format' 2978.......................... 2979 2980*Synopsis* 2981 bfd_boolean bfd_check_format (bfd *abfd, bfd_format format); 2982 *Description* 2983Verify if the file attached to the BFD ABFD is compatible with the 2984format FORMAT (i.e., one of `bfd_object', `bfd_archive' or `bfd_core'). 2985 2986 If the BFD has been set to a specific target before the call, only 2987the named target and format combination is checked. If the target has 2988not been set, or has been set to `default', then all the known target 2989backends is interrogated to determine a match. If the default target 2990matches, it is used. If not, exactly one target must recognize the 2991file, or an error results. 2992 2993 The function returns `TRUE' on success, otherwise `FALSE' with one 2994of the following error codes: 2995 2996 * `bfd_error_invalid_operation' - if `format' is not one of 2997 `bfd_object', `bfd_archive' or `bfd_core'. 2998 2999 * `bfd_error_system_call' - if an error occured during a read - even 3000 some file mismatches can cause bfd_error_system_calls. 3001 3002 * `file_not_recognised' - none of the backends recognised the file 3003 format. 3004 3005 * `bfd_error_file_ambiguously_recognized' - more than one backend 3006 recognised the file format. 3007 30082.9.1.2 `bfd_check_format_matches' 3009.................................. 3010 3011*Synopsis* 3012 bfd_boolean bfd_check_format_matches 3013 (bfd *abfd, bfd_format format, char ***matching); 3014 *Description* 3015Like `bfd_check_format', except when it returns FALSE with `bfd_errno' 3016set to `bfd_error_file_ambiguously_recognized'. In that case, if 3017MATCHING is not NULL, it will be filled in with a NULL-terminated list 3018of the names of the formats that matched, allocated with `malloc'. 3019Then the user may choose a format and try again. 3020 3021 When done with the list that MATCHING points to, the caller should 3022free it. 3023 30242.9.1.3 `bfd_set_format' 3025........................ 3026 3027*Synopsis* 3028 bfd_boolean bfd_set_format (bfd *abfd, bfd_format format); 3029 *Description* 3030This function sets the file format of the BFD ABFD to the format 3031FORMAT. If the target set in the BFD does not support the format 3032requested, the format is invalid, or the BFD is not open for writing, 3033then an error occurs. 3034 30352.9.1.4 `bfd_format_string' 3036........................... 3037 3038*Synopsis* 3039 const char *bfd_format_string (bfd_format format); 3040 *Description* 3041Return a pointer to a const string `invalid', `object', `archive', 3042`core', or `unknown', depending upon the value of FORMAT. 3043 3044 3045File: bfd.info, Node: Relocations, Next: Core Files, Prev: Formats, Up: BFD front end 3046 30472.10 Relocations 3048================ 3049 3050BFD maintains relocations in much the same way it maintains symbols: 3051they are left alone until required, then read in en-masse and 3052translated into an internal form. A common routine 3053`bfd_perform_relocation' acts upon the canonical form to do the fixup. 3054 3055 Relocations are maintained on a per section basis, while symbols are 3056maintained on a per BFD basis. 3057 3058 All that a back end has to do to fit the BFD interface is to create 3059a `struct reloc_cache_entry' for each relocation in a particular 3060section, and fill in the right bits of the structures. 3061 3062* Menu: 3063 3064* typedef arelent:: 3065* howto manager:: 3066 3067 3068File: bfd.info, Node: typedef arelent, Next: howto manager, Prev: Relocations, Up: Relocations 3069 30702.10.1 typedef arelent 3071---------------------- 3072 3073This is the structure of a relocation entry: 3074 3075 3076 typedef enum bfd_reloc_status 3077 { 3078 /* No errors detected. */ 3079 bfd_reloc_ok, 3080 3081 /* The relocation was performed, but there was an overflow. */ 3082 bfd_reloc_overflow, 3083 3084 /* The address to relocate was not within the section supplied. */ 3085 bfd_reloc_outofrange, 3086 3087 /* Used by special functions. */ 3088 bfd_reloc_continue, 3089 3090 /* Unsupported relocation size requested. */ 3091 bfd_reloc_notsupported, 3092 3093 /* Unused. */ 3094 bfd_reloc_other, 3095 3096 /* The symbol to relocate against was undefined. */ 3097 bfd_reloc_undefined, 3098 3099 /* The relocation was performed, but may not be ok - presently 3100 generated only when linking i960 coff files with i960 b.out 3101 symbols. If this type is returned, the error_message argument 3102 to bfd_perform_relocation will be set. */ 3103 bfd_reloc_dangerous 3104 } 3105 bfd_reloc_status_type; 3106 3107 3108 typedef struct reloc_cache_entry 3109 { 3110 /* A pointer into the canonical table of pointers. */ 3111 struct bfd_symbol **sym_ptr_ptr; 3112 3113 /* offset in section. */ 3114 bfd_size_type address; 3115 3116 /* addend for relocation value. */ 3117 bfd_vma addend; 3118 3119 /* Pointer to how to perform the required relocation. */ 3120 reloc_howto_type *howto; 3121 3122 } 3123 arelent; 3124 *Description* 3125Here is a description of each of the fields within an `arelent': 3126 3127 * `sym_ptr_ptr' 3128 The symbol table pointer points to a pointer to the symbol 3129associated with the relocation request. It is the pointer into the 3130table returned by the back end's `canonicalize_symtab' action. *Note 3131Symbols::. The symbol is referenced through a pointer to a pointer so 3132that tools like the linker can fix up all the symbols of the same name 3133by modifying only one pointer. The relocation routine looks in the 3134symbol and uses the base of the section the symbol is attached to and 3135the value of the symbol as the initial relocation offset. If the symbol 3136pointer is zero, then the section provided is looked up. 3137 3138 * `address' 3139 The `address' field gives the offset in bytes from the base of the 3140section data which owns the relocation record to the first byte of 3141relocatable information. The actual data relocated will be relative to 3142this point; for example, a relocation type which modifies the bottom 3143two bytes of a four byte word would not touch the first byte pointed to 3144in a big endian world. 3145 3146 * `addend' 3147 The `addend' is a value provided by the back end to be added (!) to 3148the relocation offset. Its interpretation is dependent upon the howto. 3149For example, on the 68k the code: 3150 3151 char foo[]; 3152 main() 3153 { 3154 return foo[0x12345678]; 3155 } 3156 3157 Could be compiled into: 3158 3159 linkw fp,#-4 3160 moveb @#12345678,d0 3161 extbl d0 3162 unlk fp 3163 rts 3164 3165 This could create a reloc pointing to `foo', but leave the offset in 3166the data, something like: 3167 3168 RELOCATION RECORDS FOR [.text]: 3169 offset type value 3170 00000006 32 _foo 3171 3172 00000000 4e56 fffc ; linkw fp,#-4 3173 00000004 1039 1234 5678 ; moveb @#12345678,d0 3174 0000000a 49c0 ; extbl d0 3175 0000000c 4e5e ; unlk fp 3176 0000000e 4e75 ; rts 3177 3178 Using coff and an 88k, some instructions don't have enough space in 3179them to represent the full address range, and pointers have to be 3180loaded in two parts. So you'd get something like: 3181 3182 or.u r13,r0,hi16(_foo+0x12345678) 3183 ld.b r2,r13,lo16(_foo+0x12345678) 3184 jmp r1 3185 3186 This should create two relocs, both pointing to `_foo', and with 31870x12340000 in their addend field. The data would consist of: 3188 3189 RELOCATION RECORDS FOR [.text]: 3190 offset type value 3191 00000002 HVRT16 _foo+0x12340000 3192 00000006 LVRT16 _foo+0x12340000 3193 3194 00000000 5da05678 ; or.u r13,r0,0x5678 3195 00000004 1c4d5678 ; ld.b r2,r13,0x5678 3196 00000008 f400c001 ; jmp r1 3197 3198 The relocation routine digs out the value from the data, adds it to 3199the addend to get the original offset, and then adds the value of 3200`_foo'. Note that all 32 bits have to be kept around somewhere, to cope 3201with carry from bit 15 to bit 16. 3202 3203 One further example is the sparc and the a.out format. The sparc has 3204a similar problem to the 88k, in that some instructions don't have room 3205for an entire offset, but on the sparc the parts are created in odd 3206sized lumps. The designers of the a.out format chose to not use the 3207data within the section for storing part of the offset; all the offset 3208is kept within the reloc. Anything in the data should be ignored. 3209 3210 save %sp,-112,%sp 3211 sethi %hi(_foo+0x12345678),%g2 3212 ldsb [%g2+%lo(_foo+0x12345678)],%i0 3213 ret 3214 restore 3215 3216 Both relocs contain a pointer to `foo', and the offsets contain junk. 3217 3218 RELOCATION RECORDS FOR [.text]: 3219 offset type value 3220 00000004 HI22 _foo+0x12345678 3221 00000008 LO10 _foo+0x12345678 3222 3223 00000000 9de3bf90 ; save %sp,-112,%sp 3224 00000004 05000000 ; sethi %hi(_foo+0),%g2 3225 00000008 f048a000 ; ldsb [%g2+%lo(_foo+0)],%i0 3226 0000000c 81c7e008 ; ret 3227 00000010 81e80000 ; restore 3228 3229 * `howto' 3230 The `howto' field can be imagined as a relocation instruction. It is 3231a pointer to a structure which contains information on what to do with 3232all of the other information in the reloc record and data section. A 3233back end would normally have a relocation instruction set and turn 3234relocations into pointers to the correct structure on input - but it 3235would be possible to create each howto field on demand. 3236 32372.10.1.1 `enum complain_overflow' 3238................................. 3239 3240Indicates what sort of overflow checking should be done when performing 3241a relocation. 3242 3243 3244 enum complain_overflow 3245 { 3246 /* Do not complain on overflow. */ 3247 complain_overflow_dont, 3248 3249 /* Complain if the value overflows when considered as a signed 3250 number one bit larger than the field. ie. A bitfield of N bits 3251 is allowed to represent -2**n to 2**n-1. */ 3252 complain_overflow_bitfield, 3253 3254 /* Complain if the value overflows when considered as a signed 3255 number. */ 3256 complain_overflow_signed, 3257 3258 /* Complain if the value overflows when considered as an 3259 unsigned number. */ 3260 complain_overflow_unsigned 3261 }; 3262 32632.10.1.2 `reloc_howto_type' 3264........................... 3265 3266The `reloc_howto_type' is a structure which contains all the 3267information that libbfd needs to know to tie up a back end's data. 3268 3269 struct bfd_symbol; /* Forward declaration. */ 3270 3271 struct reloc_howto_struct 3272 { 3273 /* The type field has mainly a documentary use - the back end can 3274 do what it wants with it, though normally the back end's 3275 external idea of what a reloc number is stored 3276 in this field. For example, a PC relative word relocation 3277 in a coff environment has the type 023 - because that's 3278 what the outside world calls a R_PCRWORD reloc. */ 3279 unsigned int type; 3280 3281 /* The value the final relocation is shifted right by. This drops 3282 unwanted data from the relocation. */ 3283 unsigned int rightshift; 3284 3285 /* The size of the item to be relocated. This is *not* a 3286 power-of-two measure. To get the number of bytes operated 3287 on by a type of relocation, use bfd_get_reloc_size. */ 3288 int size; 3289 3290 /* The number of bits in the item to be relocated. This is used 3291 when doing overflow checking. */ 3292 unsigned int bitsize; 3293 3294 /* The relocation is relative to the field being relocated. */ 3295 bfd_boolean pc_relative; 3296 3297 /* The bit position of the reloc value in the destination. 3298 The relocated value is left shifted by this amount. */ 3299 unsigned int bitpos; 3300 3301 /* What type of overflow error should be checked for when 3302 relocating. */ 3303 enum complain_overflow complain_on_overflow; 3304 3305 /* If this field is non null, then the supplied function is 3306 called rather than the normal function. This allows really 3307 strange relocation methods to be accommodated (e.g., i960 callj 3308 instructions). */ 3309 bfd_reloc_status_type (*special_function) 3310 (bfd *, arelent *, struct bfd_symbol *, void *, asection *, 3311 bfd *, char **); 3312 3313 /* The textual name of the relocation type. */ 3314 char *name; 3315 3316 /* Some formats record a relocation addend in the section contents 3317 rather than with the relocation. For ELF formats this is the 3318 distinction between USE_REL and USE_RELA (though the code checks 3319 for USE_REL == 1/0). The value of this field is TRUE if the 3320 addend is recorded with the section contents; when performing a 3321 partial link (ld -r) the section contents (the data) will be 3322 modified. The value of this field is FALSE if addends are 3323 recorded with the relocation (in arelent.addend); when performing 3324 a partial link the relocation will be modified. 3325 All relocations for all ELF USE_RELA targets should set this field 3326 to FALSE (values of TRUE should be looked on with suspicion). 3327 However, the converse is not true: not all relocations of all ELF 3328 USE_REL targets set this field to TRUE. Why this is so is peculiar 3329 to each particular target. For relocs that aren't used in partial 3330 links (e.g. GOT stuff) it doesn't matter what this is set to. */ 3331 bfd_boolean partial_inplace; 3332 3333 /* src_mask selects the part of the instruction (or data) to be used 3334 in the relocation sum. If the target relocations don't have an 3335 addend in the reloc, eg. ELF USE_REL, src_mask will normally equal 3336 dst_mask to extract the addend from the section contents. If 3337 relocations do have an addend in the reloc, eg. ELF USE_RELA, this 3338 field should be zero. Non-zero values for ELF USE_RELA targets are 3339 bogus as in those cases the value in the dst_mask part of the 3340 section contents should be treated as garbage. */ 3341 bfd_vma src_mask; 3342 3343 /* dst_mask selects which parts of the instruction (or data) are 3344 replaced with a relocated value. */ 3345 bfd_vma dst_mask; 3346 3347 /* When some formats create PC relative instructions, they leave 3348 the value of the pc of the place being relocated in the offset 3349 slot of the instruction, so that a PC relative relocation can 3350 be made just by adding in an ordinary offset (e.g., sun3 a.out). 3351 Some formats leave the displacement part of an instruction 3352 empty (e.g., m88k bcs); this flag signals the fact. */ 3353 bfd_boolean pcrel_offset; 3354 }; 3355 33562.10.1.3 `The HOWTO Macro' 3357.......................... 3358 3359*Description* 3360The HOWTO define is horrible and will go away. 3361 #define HOWTO(C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \ 3362 { (unsigned) C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC } 3363 3364 *Description* 3365And will be replaced with the totally magic way. But for the moment, we 3366are compatible, so do it this way. 3367 #define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \ 3368 HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \ 3369 NAME, FALSE, 0, 0, IN) 3370 3371 *Description* 3372This is used to fill in an empty howto entry in an array. 3373 #define EMPTY_HOWTO(C) \ 3374 HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \ 3375 NULL, FALSE, 0, 0, FALSE) 3376 3377 *Description* 3378Helper routine to turn a symbol into a relocation value. 3379 #define HOWTO_PREPARE(relocation, symbol) \ 3380 { \ 3381 if (symbol != NULL) \ 3382 { \ 3383 if (bfd_is_com_section (symbol->section)) \ 3384 { \ 3385 relocation = 0; \ 3386 } \ 3387 else \ 3388 { \ 3389 relocation = symbol->value; \ 3390 } \ 3391 } \ 3392 } 3393 33942.10.1.4 `bfd_get_reloc_size' 3395............................. 3396 3397*Synopsis* 3398 unsigned int bfd_get_reloc_size (reloc_howto_type *); 3399 *Description* 3400For a reloc_howto_type that operates on a fixed number of bytes, this 3401returns the number of bytes operated on. 3402 34032.10.1.5 `arelent_chain' 3404........................ 3405 3406*Description* 3407How relocs are tied together in an `asection': 3408 typedef struct relent_chain 3409 { 3410 arelent relent; 3411 struct relent_chain *next; 3412 } 3413 arelent_chain; 3414 34152.10.1.6 `bfd_check_overflow' 3416............................. 3417 3418*Synopsis* 3419 bfd_reloc_status_type bfd_check_overflow 3420 (enum complain_overflow how, 3421 unsigned int bitsize, 3422 unsigned int rightshift, 3423 unsigned int addrsize, 3424 bfd_vma relocation); 3425 *Description* 3426Perform overflow checking on RELOCATION which has BITSIZE significant 3427bits and will be shifted right by RIGHTSHIFT bits, on a machine with 3428addresses containing ADDRSIZE significant bits. The result is either of 3429`bfd_reloc_ok' or `bfd_reloc_overflow'. 3430 34312.10.1.7 `bfd_perform_relocation' 3432................................. 3433 3434*Synopsis* 3435 bfd_reloc_status_type bfd_perform_relocation 3436 (bfd *abfd, 3437 arelent *reloc_entry, 3438 void *data, 3439 asection *input_section, 3440 bfd *output_bfd, 3441 char **error_message); 3442 *Description* 3443If OUTPUT_BFD is supplied to this function, the generated image will be 3444relocatable; the relocations are copied to the output file after they 3445have been changed to reflect the new state of the world. There are two 3446ways of reflecting the results of partial linkage in an output file: by 3447modifying the output data in place, and by modifying the relocation 3448record. Some native formats (e.g., basic a.out and basic coff) have no 3449way of specifying an addend in the relocation type, so the addend has 3450to go in the output data. This is no big deal since in these formats 3451the output data slot will always be big enough for the addend. Complex 3452reloc types with addends were invented to solve just this problem. The 3453ERROR_MESSAGE argument is set to an error message if this return 3454`bfd_reloc_dangerous'. 3455 34562.10.1.8 `bfd_install_relocation' 3457................................. 3458 3459*Synopsis* 3460 bfd_reloc_status_type bfd_install_relocation 3461 (bfd *abfd, 3462 arelent *reloc_entry, 3463 void *data, bfd_vma data_start, 3464 asection *input_section, 3465 char **error_message); 3466 *Description* 3467This looks remarkably like `bfd_perform_relocation', except it does not 3468expect that the section contents have been filled in. I.e., it's 3469suitable for use when creating, rather than applying a relocation. 3470 3471 For now, this function should be considered reserved for the 3472assembler. 3473 3474 3475File: bfd.info, Node: howto manager, Prev: typedef arelent, Up: Relocations 3476 34772.10.2 The howto manager 3478------------------------ 3479 3480When an application wants to create a relocation, but doesn't know what 3481the target machine might call it, it can find out by using this bit of 3482code. 3483 34842.10.2.1 `bfd_reloc_code_type' 3485.............................. 3486 3487*Description* 3488The insides of a reloc code. The idea is that, eventually, there will 3489be one enumerator for every type of relocation we ever do. Pass one of 3490these values to `bfd_reloc_type_lookup', and it'll return a howto 3491pointer. 3492 3493 This does mean that the application must determine the correct 3494enumerator value; you can't get a howto pointer from a random set of 3495attributes. 3496 3497 Here are the possible values for `enum bfd_reloc_code_real': 3498 3499 -- : BFD_RELOC_64 3500 -- : BFD_RELOC_32 3501 -- : BFD_RELOC_26 3502 -- : BFD_RELOC_24 3503 -- : BFD_RELOC_16 3504 -- : BFD_RELOC_14 3505 -- : BFD_RELOC_8 3506 Basic absolute relocations of N bits. 3507 3508 -- : BFD_RELOC_64_PCREL 3509 -- : BFD_RELOC_32_PCREL 3510 -- : BFD_RELOC_24_PCREL 3511 -- : BFD_RELOC_16_PCREL 3512 -- : BFD_RELOC_12_PCREL 3513 -- : BFD_RELOC_8_PCREL 3514 PC-relative relocations. Sometimes these are relative to the 3515 address of the relocation itself; sometimes they are relative to 3516 the start of the section containing the relocation. It depends on 3517 the specific target. 3518 3519 The 24-bit relocation is used in some Intel 960 configurations. 3520 3521 -- : BFD_RELOC_32_SECREL 3522 Section relative relocations. Some targets need this for DWARF2. 3523 3524 -- : BFD_RELOC_32_GOT_PCREL 3525 -- : BFD_RELOC_16_GOT_PCREL 3526 -- : BFD_RELOC_8_GOT_PCREL 3527 -- : BFD_RELOC_32_GOTOFF 3528 -- : BFD_RELOC_16_GOTOFF 3529 -- : BFD_RELOC_LO16_GOTOFF 3530 -- : BFD_RELOC_HI16_GOTOFF 3531 -- : BFD_RELOC_HI16_S_GOTOFF 3532 -- : BFD_RELOC_8_GOTOFF 3533 -- : BFD_RELOC_64_PLT_PCREL 3534 -- : BFD_RELOC_32_PLT_PCREL 3535 -- : BFD_RELOC_24_PLT_PCREL 3536 -- : BFD_RELOC_16_PLT_PCREL 3537 -- : BFD_RELOC_8_PLT_PCREL 3538 -- : BFD_RELOC_64_PLTOFF 3539 -- : BFD_RELOC_32_PLTOFF 3540 -- : BFD_RELOC_16_PLTOFF 3541 -- : BFD_RELOC_LO16_PLTOFF 3542 -- : BFD_RELOC_HI16_PLTOFF 3543 -- : BFD_RELOC_HI16_S_PLTOFF 3544 -- : BFD_RELOC_8_PLTOFF 3545 For ELF. 3546 3547 -- : BFD_RELOC_SIZE32 3548 -- : BFD_RELOC_SIZE64 3549 Size relocations. 3550 3551 -- : BFD_RELOC_68K_GLOB_DAT 3552 -- : BFD_RELOC_68K_JMP_SLOT 3553 -- : BFD_RELOC_68K_RELATIVE 3554 -- : BFD_RELOC_68K_TLS_GD32 3555 -- : BFD_RELOC_68K_TLS_GD16 3556 -- : BFD_RELOC_68K_TLS_GD8 3557 -- : BFD_RELOC_68K_TLS_LDM32 3558 -- : BFD_RELOC_68K_TLS_LDM16 3559 -- : BFD_RELOC_68K_TLS_LDM8 3560 -- : BFD_RELOC_68K_TLS_LDO32 3561 -- : BFD_RELOC_68K_TLS_LDO16 3562 -- : BFD_RELOC_68K_TLS_LDO8 3563 -- : BFD_RELOC_68K_TLS_IE32 3564 -- : BFD_RELOC_68K_TLS_IE16 3565 -- : BFD_RELOC_68K_TLS_IE8 3566 -- : BFD_RELOC_68K_TLS_LE32 3567 -- : BFD_RELOC_68K_TLS_LE16 3568 -- : BFD_RELOC_68K_TLS_LE8 3569 Relocations used by 68K ELF. 3570 3571 -- : BFD_RELOC_32_BASEREL 3572 -- : BFD_RELOC_16_BASEREL 3573 -- : BFD_RELOC_LO16_BASEREL 3574 -- : BFD_RELOC_HI16_BASEREL 3575 -- : BFD_RELOC_HI16_S_BASEREL 3576 -- : BFD_RELOC_8_BASEREL 3577 -- : BFD_RELOC_RVA 3578 Linkage-table relative. 3579 3580 -- : BFD_RELOC_8_FFnn 3581 Absolute 8-bit relocation, but used to form an address like 0xFFnn. 3582 3583 -- : BFD_RELOC_32_PCREL_S2 3584 -- : BFD_RELOC_16_PCREL_S2 3585 -- : BFD_RELOC_23_PCREL_S2 3586 These PC-relative relocations are stored as word displacements - 3587 i.e., byte displacements shifted right two bits. The 30-bit word 3588 displacement (<<32_PCREL_S2>> - 32 bits, shifted 2) is used on the 3589 SPARC. (SPARC tools generally refer to this as <<WDISP30>>.) The 3590 signed 16-bit displacement is used on the MIPS, and the 23-bit 3591 displacement is used on the Alpha. 3592 3593 -- : BFD_RELOC_HI22 3594 -- : BFD_RELOC_LO10 3595 High 22 bits and low 10 bits of 32-bit value, placed into lower 3596 bits of the target word. These are used on the SPARC. 3597 3598 -- : BFD_RELOC_GPREL16 3599 -- : BFD_RELOC_GPREL32 3600 For systems that allocate a Global Pointer register, these are 3601 displacements off that register. These relocation types are 3602 handled specially, because the value the register will have is 3603 decided relatively late. 3604 3605 -- : BFD_RELOC_I960_CALLJ 3606 Reloc types used for i960/b.out. 3607 3608 -- : BFD_RELOC_NONE 3609 -- : BFD_RELOC_SPARC_WDISP22 3610 -- : BFD_RELOC_SPARC22 3611 -- : BFD_RELOC_SPARC13 3612 -- : BFD_RELOC_SPARC_GOT10 3613 -- : BFD_RELOC_SPARC_GOT13 3614 -- : BFD_RELOC_SPARC_GOT22 3615 -- : BFD_RELOC_SPARC_PC10 3616 -- : BFD_RELOC_SPARC_PC22 3617 -- : BFD_RELOC_SPARC_WPLT30 3618 -- : BFD_RELOC_SPARC_COPY 3619 -- : BFD_RELOC_SPARC_GLOB_DAT 3620 -- : BFD_RELOC_SPARC_JMP_SLOT 3621 -- : BFD_RELOC_SPARC_RELATIVE 3622 -- : BFD_RELOC_SPARC_UA16 3623 -- : BFD_RELOC_SPARC_UA32 3624 -- : BFD_RELOC_SPARC_UA64 3625 -- : BFD_RELOC_SPARC_GOTDATA_HIX22 3626 -- : BFD_RELOC_SPARC_GOTDATA_LOX10 3627 -- : BFD_RELOC_SPARC_GOTDATA_OP_HIX22 3628 -- : BFD_RELOC_SPARC_GOTDATA_OP_LOX10 3629 -- : BFD_RELOC_SPARC_GOTDATA_OP 3630 -- : BFD_RELOC_SPARC_JMP_IREL 3631 -- : BFD_RELOC_SPARC_IRELATIVE 3632 SPARC ELF relocations. There is probably some overlap with other 3633 relocation types already defined. 3634 3635 -- : BFD_RELOC_SPARC_BASE13 3636 -- : BFD_RELOC_SPARC_BASE22 3637 I think these are specific to SPARC a.out (e.g., Sun 4). 3638 3639 -- : BFD_RELOC_SPARC_64 3640 -- : BFD_RELOC_SPARC_10 3641 -- : BFD_RELOC_SPARC_11 3642 -- : BFD_RELOC_SPARC_OLO10 3643 -- : BFD_RELOC_SPARC_HH22 3644 -- : BFD_RELOC_SPARC_HM10 3645 -- : BFD_RELOC_SPARC_LM22 3646 -- : BFD_RELOC_SPARC_PC_HH22 3647 -- : BFD_RELOC_SPARC_PC_HM10 3648 -- : BFD_RELOC_SPARC_PC_LM22 3649 -- : BFD_RELOC_SPARC_WDISP16 3650 -- : BFD_RELOC_SPARC_WDISP19 3651 -- : BFD_RELOC_SPARC_7 3652 -- : BFD_RELOC_SPARC_6 3653 -- : BFD_RELOC_SPARC_5 3654 -- : BFD_RELOC_SPARC_DISP64 3655 -- : BFD_RELOC_SPARC_PLT32 3656 -- : BFD_RELOC_SPARC_PLT64 3657 -- : BFD_RELOC_SPARC_HIX22 3658 -- : BFD_RELOC_SPARC_LOX10 3659 -- : BFD_RELOC_SPARC_H44 3660 -- : BFD_RELOC_SPARC_M44 3661 -- : BFD_RELOC_SPARC_L44 3662 -- : BFD_RELOC_SPARC_REGISTER 3663 -- : BFD_RELOC_SPARC_H34 3664 -- : BFD_RELOC_SPARC_SIZE32 3665 -- : BFD_RELOC_SPARC_SIZE64 3666 -- : BFD_RELOC_SPARC_WDISP10 3667 SPARC64 relocations 3668 3669 -- : BFD_RELOC_SPARC_REV32 3670 SPARC little endian relocation 3671 3672 -- : BFD_RELOC_SPARC_TLS_GD_HI22 3673 -- : BFD_RELOC_SPARC_TLS_GD_LO10 3674 -- : BFD_RELOC_SPARC_TLS_GD_ADD 3675 -- : BFD_RELOC_SPARC_TLS_GD_CALL 3676 -- : BFD_RELOC_SPARC_TLS_LDM_HI22 3677 -- : BFD_RELOC_SPARC_TLS_LDM_LO10 3678 -- : BFD_RELOC_SPARC_TLS_LDM_ADD 3679 -- : BFD_RELOC_SPARC_TLS_LDM_CALL 3680 -- : BFD_RELOC_SPARC_TLS_LDO_HIX22 3681 -- : BFD_RELOC_SPARC_TLS_LDO_LOX10 3682 -- : BFD_RELOC_SPARC_TLS_LDO_ADD 3683 -- : BFD_RELOC_SPARC_TLS_IE_HI22 3684 -- : BFD_RELOC_SPARC_TLS_IE_LO10 3685 -- : BFD_RELOC_SPARC_TLS_IE_LD 3686 -- : BFD_RELOC_SPARC_TLS_IE_LDX 3687 -- : BFD_RELOC_SPARC_TLS_IE_ADD 3688 -- : BFD_RELOC_SPARC_TLS_LE_HIX22 3689 -- : BFD_RELOC_SPARC_TLS_LE_LOX10 3690 -- : BFD_RELOC_SPARC_TLS_DTPMOD32 3691 -- : BFD_RELOC_SPARC_TLS_DTPMOD64 3692 -- : BFD_RELOC_SPARC_TLS_DTPOFF32 3693 -- : BFD_RELOC_SPARC_TLS_DTPOFF64 3694 -- : BFD_RELOC_SPARC_TLS_TPOFF32 3695 -- : BFD_RELOC_SPARC_TLS_TPOFF64 3696 SPARC TLS relocations 3697 3698 -- : BFD_RELOC_SPU_IMM7 3699 -- : BFD_RELOC_SPU_IMM8 3700 -- : BFD_RELOC_SPU_IMM10 3701 -- : BFD_RELOC_SPU_IMM10W 3702 -- : BFD_RELOC_SPU_IMM16 3703 -- : BFD_RELOC_SPU_IMM16W 3704 -- : BFD_RELOC_SPU_IMM18 3705 -- : BFD_RELOC_SPU_PCREL9a 3706 -- : BFD_RELOC_SPU_PCREL9b 3707 -- : BFD_RELOC_SPU_PCREL16 3708 -- : BFD_RELOC_SPU_LO16 3709 -- : BFD_RELOC_SPU_HI16 3710 -- : BFD_RELOC_SPU_PPU32 3711 -- : BFD_RELOC_SPU_PPU64 3712 -- : BFD_RELOC_SPU_ADD_PIC 3713 SPU Relocations. 3714 3715 -- : BFD_RELOC_ALPHA_GPDISP_HI16 3716 Alpha ECOFF and ELF relocations. Some of these treat the symbol or 3717 "addend" in some special way. For GPDISP_HI16 ("gpdisp") 3718 relocations, the symbol is ignored when writing; when reading, it 3719 will be the absolute section symbol. The addend is the 3720 displacement in bytes of the "lda" instruction from the "ldah" 3721 instruction (which is at the address of this reloc). 3722 3723 -- : BFD_RELOC_ALPHA_GPDISP_LO16 3724 For GPDISP_LO16 ("ignore") relocations, the symbol is handled as 3725 with GPDISP_HI16 relocs. The addend is ignored when writing the 3726 relocations out, and is filled in with the file's GP value on 3727 reading, for convenience. 3728 3729 -- : BFD_RELOC_ALPHA_GPDISP 3730 The ELF GPDISP relocation is exactly the same as the GPDISP_HI16 3731 relocation except that there is no accompanying GPDISP_LO16 3732 relocation. 3733 3734 -- : BFD_RELOC_ALPHA_LITERAL 3735 -- : BFD_RELOC_ALPHA_ELF_LITERAL 3736 -- : BFD_RELOC_ALPHA_LITUSE 3737 The Alpha LITERAL/LITUSE relocs are produced by a symbol reference; 3738 the assembler turns it into a LDQ instruction to load the address 3739 of the symbol, and then fills in a register in the real 3740 instruction. 3741 3742 The LITERAL reloc, at the LDQ instruction, refers to the .lita 3743 section symbol. The addend is ignored when writing, but is filled 3744 in with the file's GP value on reading, for convenience, as with 3745 the GPDISP_LO16 reloc. 3746 3747 The ELF_LITERAL reloc is somewhere between 16_GOTOFF and 3748 GPDISP_LO16. It should refer to the symbol to be referenced, as 3749 with 16_GOTOFF, but it generates output not based on the position 3750 within the .got section, but relative to the GP value chosen for 3751 the file during the final link stage. 3752 3753 The LITUSE reloc, on the instruction using the loaded address, 3754 gives information to the linker that it might be able to use to 3755 optimize away some literal section references. The symbol is 3756 ignored (read as the absolute section symbol), and the "addend" 3757 indicates the type of instruction using the register: 1 - "memory" 3758 fmt insn 2 - byte-manipulation (byte offset reg) 3 - jsr (target 3759 of branch) 3760 3761 -- : BFD_RELOC_ALPHA_HINT 3762 The HINT relocation indicates a value that should be filled into 3763 the "hint" field of a jmp/jsr/ret instruction, for possible branch- 3764 prediction logic which may be provided on some processors. 3765 3766 -- : BFD_RELOC_ALPHA_LINKAGE 3767 The LINKAGE relocation outputs a linkage pair in the object file, 3768 which is filled by the linker. 3769 3770 -- : BFD_RELOC_ALPHA_CODEADDR 3771 The CODEADDR relocation outputs a STO_CA in the object file, which 3772 is filled by the linker. 3773 3774 -- : BFD_RELOC_ALPHA_GPREL_HI16 3775 -- : BFD_RELOC_ALPHA_GPREL_LO16 3776 The GPREL_HI/LO relocations together form a 32-bit offset from the 3777 GP register. 3778 3779 -- : BFD_RELOC_ALPHA_BRSGP 3780 Like BFD_RELOC_23_PCREL_S2, except that the source and target must 3781 share a common GP, and the target address is adjusted for 3782 STO_ALPHA_STD_GPLOAD. 3783 3784 -- : BFD_RELOC_ALPHA_NOP 3785 The NOP relocation outputs a NOP if the longword displacement 3786 between two procedure entry points is < 2^21. 3787 3788 -- : BFD_RELOC_ALPHA_BSR 3789 The BSR relocation outputs a BSR if the longword displacement 3790 between two procedure entry points is < 2^21. 3791 3792 -- : BFD_RELOC_ALPHA_LDA 3793 The LDA relocation outputs a LDA if the longword displacement 3794 between two procedure entry points is < 2^16. 3795 3796 -- : BFD_RELOC_ALPHA_BOH 3797 The BOH relocation outputs a BSR if the longword displacement 3798 between two procedure entry points is < 2^21, or else a hint. 3799 3800 -- : BFD_RELOC_ALPHA_TLSGD 3801 -- : BFD_RELOC_ALPHA_TLSLDM 3802 -- : BFD_RELOC_ALPHA_DTPMOD64 3803 -- : BFD_RELOC_ALPHA_GOTDTPREL16 3804 -- : BFD_RELOC_ALPHA_DTPREL64 3805 -- : BFD_RELOC_ALPHA_DTPREL_HI16 3806 -- : BFD_RELOC_ALPHA_DTPREL_LO16 3807 -- : BFD_RELOC_ALPHA_DTPREL16 3808 -- : BFD_RELOC_ALPHA_GOTTPREL16 3809 -- : BFD_RELOC_ALPHA_TPREL64 3810 -- : BFD_RELOC_ALPHA_TPREL_HI16 3811 -- : BFD_RELOC_ALPHA_TPREL_LO16 3812 -- : BFD_RELOC_ALPHA_TPREL16 3813 Alpha thread-local storage relocations. 3814 3815 -- : BFD_RELOC_MIPS_JMP 3816 -- : BFD_RELOC_MICROMIPS_JMP 3817 The MIPS jump instruction. 3818 3819 -- : BFD_RELOC_MIPS16_JMP 3820 The MIPS16 jump instruction. 3821 3822 -- : BFD_RELOC_MIPS16_GPREL 3823 MIPS16 GP relative reloc. 3824 3825 -- : BFD_RELOC_HI16 3826 High 16 bits of 32-bit value; simple reloc. 3827 3828 -- : BFD_RELOC_HI16_S 3829 High 16 bits of 32-bit value but the low 16 bits will be sign 3830 extended and added to form the final result. If the low 16 bits 3831 form a negative number, we need to add one to the high value to 3832 compensate for the borrow when the low bits are added. 3833 3834 -- : BFD_RELOC_LO16 3835 Low 16 bits. 3836 3837 -- : BFD_RELOC_HI16_PCREL 3838 High 16 bits of 32-bit pc-relative value 3839 3840 -- : BFD_RELOC_HI16_S_PCREL 3841 High 16 bits of 32-bit pc-relative value, adjusted 3842 3843 -- : BFD_RELOC_LO16_PCREL 3844 Low 16 bits of pc-relative value 3845 3846 -- : BFD_RELOC_MIPS16_GOT16 3847 -- : BFD_RELOC_MIPS16_CALL16 3848 Equivalent of BFD_RELOC_MIPS_*, but with the MIPS16 layout of 3849 16-bit immediate fields 3850 3851 -- : BFD_RELOC_MIPS16_HI16 3852 MIPS16 high 16 bits of 32-bit value. 3853 3854 -- : BFD_RELOC_MIPS16_HI16_S 3855 MIPS16 high 16 bits of 32-bit value but the low 16 bits will be 3856 sign extended and added to form the final result. If the low 16 3857 bits form a negative number, we need to add one to the high value 3858 to compensate for the borrow when the low bits are added. 3859 3860 -- : BFD_RELOC_MIPS16_LO16 3861 MIPS16 low 16 bits. 3862 3863 -- : BFD_RELOC_MIPS16_TLS_GD 3864 -- : BFD_RELOC_MIPS16_TLS_LDM 3865 -- : BFD_RELOC_MIPS16_TLS_DTPREL_HI16 3866 -- : BFD_RELOC_MIPS16_TLS_DTPREL_LO16 3867 -- : BFD_RELOC_MIPS16_TLS_GOTTPREL 3868 -- : BFD_RELOC_MIPS16_TLS_TPREL_HI16 3869 -- : BFD_RELOC_MIPS16_TLS_TPREL_LO16 3870 MIPS16 TLS relocations 3871 3872 -- : BFD_RELOC_MIPS_LITERAL 3873 -- : BFD_RELOC_MICROMIPS_LITERAL 3874 Relocation against a MIPS literal section. 3875 3876 -- : BFD_RELOC_MICROMIPS_7_PCREL_S1 3877 -- : BFD_RELOC_MICROMIPS_10_PCREL_S1 3878 -- : BFD_RELOC_MICROMIPS_16_PCREL_S1 3879 microMIPS PC-relative relocations. 3880 3881 -- : BFD_RELOC_MIPS_21_PCREL_S2 3882 -- : BFD_RELOC_MIPS_26_PCREL_S2 3883 -- : BFD_RELOC_MIPS_18_PCREL_S3 3884 -- : BFD_RELOC_MIPS_19_PCREL_S2 3885 MIPS PC-relative relocations. 3886 3887 -- : BFD_RELOC_MICROMIPS_GPREL16 3888 -- : BFD_RELOC_MICROMIPS_HI16 3889 -- : BFD_RELOC_MICROMIPS_HI16_S 3890 -- : BFD_RELOC_MICROMIPS_LO16 3891 microMIPS versions of generic BFD relocs. 3892 3893 -- : BFD_RELOC_MIPS_GOT16 3894 -- : BFD_RELOC_MICROMIPS_GOT16 3895 -- : BFD_RELOC_MIPS_CALL16 3896 -- : BFD_RELOC_MICROMIPS_CALL16 3897 -- : BFD_RELOC_MIPS_GOT_HI16 3898 -- : BFD_RELOC_MICROMIPS_GOT_HI16 3899 -- : BFD_RELOC_MIPS_GOT_LO16 3900 -- : BFD_RELOC_MICROMIPS_GOT_LO16 3901 -- : BFD_RELOC_MIPS_CALL_HI16 3902 -- : BFD_RELOC_MICROMIPS_CALL_HI16 3903 -- : BFD_RELOC_MIPS_CALL_LO16 3904 -- : BFD_RELOC_MICROMIPS_CALL_LO16 3905 -- : BFD_RELOC_MIPS_SUB 3906 -- : BFD_RELOC_MICROMIPS_SUB 3907 -- : BFD_RELOC_MIPS_GOT_PAGE 3908 -- : BFD_RELOC_MICROMIPS_GOT_PAGE 3909 -- : BFD_RELOC_MIPS_GOT_OFST 3910 -- : BFD_RELOC_MICROMIPS_GOT_OFST 3911 -- : BFD_RELOC_MIPS_GOT_DISP 3912 -- : BFD_RELOC_MICROMIPS_GOT_DISP 3913 -- : BFD_RELOC_MIPS_SHIFT5 3914 -- : BFD_RELOC_MIPS_SHIFT6 3915 -- : BFD_RELOC_MIPS_INSERT_A 3916 -- : BFD_RELOC_MIPS_INSERT_B 3917 -- : BFD_RELOC_MIPS_DELETE 3918 -- : BFD_RELOC_MIPS_HIGHEST 3919 -- : BFD_RELOC_MICROMIPS_HIGHEST 3920 -- : BFD_RELOC_MIPS_HIGHER 3921 -- : BFD_RELOC_MICROMIPS_HIGHER 3922 -- : BFD_RELOC_MIPS_SCN_DISP 3923 -- : BFD_RELOC_MICROMIPS_SCN_DISP 3924 -- : BFD_RELOC_MIPS_REL16 3925 -- : BFD_RELOC_MIPS_RELGOT 3926 -- : BFD_RELOC_MIPS_JALR 3927 -- : BFD_RELOC_MICROMIPS_JALR 3928 -- : BFD_RELOC_MIPS_TLS_DTPMOD32 3929 -- : BFD_RELOC_MIPS_TLS_DTPREL32 3930 -- : BFD_RELOC_MIPS_TLS_DTPMOD64 3931 -- : BFD_RELOC_MIPS_TLS_DTPREL64 3932 -- : BFD_RELOC_MIPS_TLS_GD 3933 -- : BFD_RELOC_MICROMIPS_TLS_GD 3934 -- : BFD_RELOC_MIPS_TLS_LDM 3935 -- : BFD_RELOC_MICROMIPS_TLS_LDM 3936 -- : BFD_RELOC_MIPS_TLS_DTPREL_HI16 3937 -- : BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16 3938 -- : BFD_RELOC_MIPS_TLS_DTPREL_LO16 3939 -- : BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16 3940 -- : BFD_RELOC_MIPS_TLS_GOTTPREL 3941 -- : BFD_RELOC_MICROMIPS_TLS_GOTTPREL 3942 -- : BFD_RELOC_MIPS_TLS_TPREL32 3943 -- : BFD_RELOC_MIPS_TLS_TPREL64 3944 -- : BFD_RELOC_MIPS_TLS_TPREL_HI16 3945 -- : BFD_RELOC_MICROMIPS_TLS_TPREL_HI16 3946 -- : BFD_RELOC_MIPS_TLS_TPREL_LO16 3947 -- : BFD_RELOC_MICROMIPS_TLS_TPREL_LO16 3948 -- : BFD_RELOC_MIPS_EH 3949 MIPS ELF relocations. 3950 3951 -- : BFD_RELOC_MIPS_COPY 3952 -- : BFD_RELOC_MIPS_JUMP_SLOT 3953 MIPS ELF relocations (VxWorks and PLT extensions). 3954 3955 -- : BFD_RELOC_MOXIE_10_PCREL 3956 Moxie ELF relocations. 3957 3958 -- : BFD_RELOC_FT32_10 3959 -- : BFD_RELOC_FT32_20 3960 -- : BFD_RELOC_FT32_17 3961 -- : BFD_RELOC_FT32_18 3962 FT32 ELF relocations. 3963 3964 -- : BFD_RELOC_FRV_LABEL16 3965 -- : BFD_RELOC_FRV_LABEL24 3966 -- : BFD_RELOC_FRV_LO16 3967 -- : BFD_RELOC_FRV_HI16 3968 -- : BFD_RELOC_FRV_GPREL12 3969 -- : BFD_RELOC_FRV_GPRELU12 3970 -- : BFD_RELOC_FRV_GPREL32 3971 -- : BFD_RELOC_FRV_GPRELHI 3972 -- : BFD_RELOC_FRV_GPRELLO 3973 -- : BFD_RELOC_FRV_GOT12 3974 -- : BFD_RELOC_FRV_GOTHI 3975 -- : BFD_RELOC_FRV_GOTLO 3976 -- : BFD_RELOC_FRV_FUNCDESC 3977 -- : BFD_RELOC_FRV_FUNCDESC_GOT12 3978 -- : BFD_RELOC_FRV_FUNCDESC_GOTHI 3979 -- : BFD_RELOC_FRV_FUNCDESC_GOTLO 3980 -- : BFD_RELOC_FRV_FUNCDESC_VALUE 3981 -- : BFD_RELOC_FRV_FUNCDESC_GOTOFF12 3982 -- : BFD_RELOC_FRV_FUNCDESC_GOTOFFHI 3983 -- : BFD_RELOC_FRV_FUNCDESC_GOTOFFLO 3984 -- : BFD_RELOC_FRV_GOTOFF12 3985 -- : BFD_RELOC_FRV_GOTOFFHI 3986 -- : BFD_RELOC_FRV_GOTOFFLO 3987 -- : BFD_RELOC_FRV_GETTLSOFF 3988 -- : BFD_RELOC_FRV_TLSDESC_VALUE 3989 -- : BFD_RELOC_FRV_GOTTLSDESC12 3990 -- : BFD_RELOC_FRV_GOTTLSDESCHI 3991 -- : BFD_RELOC_FRV_GOTTLSDESCLO 3992 -- : BFD_RELOC_FRV_TLSMOFF12 3993 -- : BFD_RELOC_FRV_TLSMOFFHI 3994 -- : BFD_RELOC_FRV_TLSMOFFLO 3995 -- : BFD_RELOC_FRV_GOTTLSOFF12 3996 -- : BFD_RELOC_FRV_GOTTLSOFFHI 3997 -- : BFD_RELOC_FRV_GOTTLSOFFLO 3998 -- : BFD_RELOC_FRV_TLSOFF 3999 -- : BFD_RELOC_FRV_TLSDESC_RELAX 4000 -- : BFD_RELOC_FRV_GETTLSOFF_RELAX 4001 -- : BFD_RELOC_FRV_TLSOFF_RELAX 4002 -- : BFD_RELOC_FRV_TLSMOFF 4003 Fujitsu Frv Relocations. 4004 4005 -- : BFD_RELOC_MN10300_GOTOFF24 4006 This is a 24bit GOT-relative reloc for the mn10300. 4007 4008 -- : BFD_RELOC_MN10300_GOT32 4009 This is a 32bit GOT-relative reloc for the mn10300, offset by two 4010 bytes in the instruction. 4011 4012 -- : BFD_RELOC_MN10300_GOT24 4013 This is a 24bit GOT-relative reloc for the mn10300, offset by two 4014 bytes in the instruction. 4015 4016 -- : BFD_RELOC_MN10300_GOT16 4017 This is a 16bit GOT-relative reloc for the mn10300, offset by two 4018 bytes in the instruction. 4019 4020 -- : BFD_RELOC_MN10300_COPY 4021 Copy symbol at runtime. 4022 4023 -- : BFD_RELOC_MN10300_GLOB_DAT 4024 Create GOT entry. 4025 4026 -- : BFD_RELOC_MN10300_JMP_SLOT 4027 Create PLT entry. 4028 4029 -- : BFD_RELOC_MN10300_RELATIVE 4030 Adjust by program base. 4031 4032 -- : BFD_RELOC_MN10300_SYM_DIFF 4033 Together with another reloc targeted at the same location, allows 4034 for a value that is the difference of two symbols in the same 4035 section. 4036 4037 -- : BFD_RELOC_MN10300_ALIGN 4038 The addend of this reloc is an alignment power that must be 4039 honoured at the offset's location, regardless of linker relaxation. 4040 4041 -- : BFD_RELOC_MN10300_TLS_GD 4042 -- : BFD_RELOC_MN10300_TLS_LD 4043 -- : BFD_RELOC_MN10300_TLS_LDO 4044 -- : BFD_RELOC_MN10300_TLS_GOTIE 4045 -- : BFD_RELOC_MN10300_TLS_IE 4046 -- : BFD_RELOC_MN10300_TLS_LE 4047 -- : BFD_RELOC_MN10300_TLS_DTPMOD 4048 -- : BFD_RELOC_MN10300_TLS_DTPOFF 4049 -- : BFD_RELOC_MN10300_TLS_TPOFF 4050 Various TLS-related relocations. 4051 4052 -- : BFD_RELOC_MN10300_32_PCREL 4053 This is a 32bit pcrel reloc for the mn10300, offset by two bytes 4054 in the instruction. 4055 4056 -- : BFD_RELOC_MN10300_16_PCREL 4057 This is a 16bit pcrel reloc for the mn10300, offset by two bytes 4058 in the instruction. 4059 4060 -- : BFD_RELOC_386_GOT32 4061 -- : BFD_RELOC_386_PLT32 4062 -- : BFD_RELOC_386_COPY 4063 -- : BFD_RELOC_386_GLOB_DAT 4064 -- : BFD_RELOC_386_JUMP_SLOT 4065 -- : BFD_RELOC_386_RELATIVE 4066 -- : BFD_RELOC_386_GOTOFF 4067 -- : BFD_RELOC_386_GOTPC 4068 -- : BFD_RELOC_386_TLS_TPOFF 4069 -- : BFD_RELOC_386_TLS_IE 4070 -- : BFD_RELOC_386_TLS_GOTIE 4071 -- : BFD_RELOC_386_TLS_LE 4072 -- : BFD_RELOC_386_TLS_GD 4073 -- : BFD_RELOC_386_TLS_LDM 4074 -- : BFD_RELOC_386_TLS_LDO_32 4075 -- : BFD_RELOC_386_TLS_IE_32 4076 -- : BFD_RELOC_386_TLS_LE_32 4077 -- : BFD_RELOC_386_TLS_DTPMOD32 4078 -- : BFD_RELOC_386_TLS_DTPOFF32 4079 -- : BFD_RELOC_386_TLS_TPOFF32 4080 -- : BFD_RELOC_386_TLS_GOTDESC 4081 -- : BFD_RELOC_386_TLS_DESC_CALL 4082 -- : BFD_RELOC_386_TLS_DESC 4083 -- : BFD_RELOC_386_IRELATIVE 4084 -- : BFD_RELOC_386_GOT32X 4085 i386/elf relocations 4086 4087 -- : BFD_RELOC_X86_64_GOT32 4088 -- : BFD_RELOC_X86_64_PLT32 4089 -- : BFD_RELOC_X86_64_COPY 4090 -- : BFD_RELOC_X86_64_GLOB_DAT 4091 -- : BFD_RELOC_X86_64_JUMP_SLOT 4092 -- : BFD_RELOC_X86_64_RELATIVE 4093 -- : BFD_RELOC_X86_64_GOTPCREL 4094 -- : BFD_RELOC_X86_64_32S 4095 -- : BFD_RELOC_X86_64_DTPMOD64 4096 -- : BFD_RELOC_X86_64_DTPOFF64 4097 -- : BFD_RELOC_X86_64_TPOFF64 4098 -- : BFD_RELOC_X86_64_TLSGD 4099 -- : BFD_RELOC_X86_64_TLSLD 4100 -- : BFD_RELOC_X86_64_DTPOFF32 4101 -- : BFD_RELOC_X86_64_GOTTPOFF 4102 -- : BFD_RELOC_X86_64_TPOFF32 4103 -- : BFD_RELOC_X86_64_GOTOFF64 4104 -- : BFD_RELOC_X86_64_GOTPC32 4105 -- : BFD_RELOC_X86_64_GOT64 4106 -- : BFD_RELOC_X86_64_GOTPCREL64 4107 -- : BFD_RELOC_X86_64_GOTPC64 4108 -- : BFD_RELOC_X86_64_GOTPLT64 4109 -- : BFD_RELOC_X86_64_PLTOFF64 4110 -- : BFD_RELOC_X86_64_GOTPC32_TLSDESC 4111 -- : BFD_RELOC_X86_64_TLSDESC_CALL 4112 -- : BFD_RELOC_X86_64_TLSDESC 4113 -- : BFD_RELOC_X86_64_IRELATIVE 4114 -- : BFD_RELOC_X86_64_PC32_BND 4115 -- : BFD_RELOC_X86_64_PLT32_BND 4116 -- : BFD_RELOC_X86_64_GOTPCRELX 4117 -- : BFD_RELOC_X86_64_REX_GOTPCRELX 4118 x86-64/elf relocations 4119 4120 -- : BFD_RELOC_NS32K_IMM_8 4121 -- : BFD_RELOC_NS32K_IMM_16 4122 -- : BFD_RELOC_NS32K_IMM_32 4123 -- : BFD_RELOC_NS32K_IMM_8_PCREL 4124 -- : BFD_RELOC_NS32K_IMM_16_PCREL 4125 -- : BFD_RELOC_NS32K_IMM_32_PCREL 4126 -- : BFD_RELOC_NS32K_DISP_8 4127 -- : BFD_RELOC_NS32K_DISP_16 4128 -- : BFD_RELOC_NS32K_DISP_32 4129 -- : BFD_RELOC_NS32K_DISP_8_PCREL 4130 -- : BFD_RELOC_NS32K_DISP_16_PCREL 4131 -- : BFD_RELOC_NS32K_DISP_32_PCREL 4132 ns32k relocations 4133 4134 -- : BFD_RELOC_PDP11_DISP_8_PCREL 4135 -- : BFD_RELOC_PDP11_DISP_6_PCREL 4136 PDP11 relocations 4137 4138 -- : BFD_RELOC_PJ_CODE_HI16 4139 -- : BFD_RELOC_PJ_CODE_LO16 4140 -- : BFD_RELOC_PJ_CODE_DIR16 4141 -- : BFD_RELOC_PJ_CODE_DIR32 4142 -- : BFD_RELOC_PJ_CODE_REL16 4143 -- : BFD_RELOC_PJ_CODE_REL32 4144 Picojava relocs. Not all of these appear in object files. 4145 4146 -- : BFD_RELOC_PPC_B26 4147 -- : BFD_RELOC_PPC_BA26 4148 -- : BFD_RELOC_PPC_TOC16 4149 -- : BFD_RELOC_PPC_B16 4150 -- : BFD_RELOC_PPC_B16_BRTAKEN 4151 -- : BFD_RELOC_PPC_B16_BRNTAKEN 4152 -- : BFD_RELOC_PPC_BA16 4153 -- : BFD_RELOC_PPC_BA16_BRTAKEN 4154 -- : BFD_RELOC_PPC_BA16_BRNTAKEN 4155 -- : BFD_RELOC_PPC_COPY 4156 -- : BFD_RELOC_PPC_GLOB_DAT 4157 -- : BFD_RELOC_PPC_JMP_SLOT 4158 -- : BFD_RELOC_PPC_RELATIVE 4159 -- : BFD_RELOC_PPC_LOCAL24PC 4160 -- : BFD_RELOC_PPC_EMB_NADDR32 4161 -- : BFD_RELOC_PPC_EMB_NADDR16 4162 -- : BFD_RELOC_PPC_EMB_NADDR16_LO 4163 -- : BFD_RELOC_PPC_EMB_NADDR16_HI 4164 -- : BFD_RELOC_PPC_EMB_NADDR16_HA 4165 -- : BFD_RELOC_PPC_EMB_SDAI16 4166 -- : BFD_RELOC_PPC_EMB_SDA2I16 4167 -- : BFD_RELOC_PPC_EMB_SDA2REL 4168 -- : BFD_RELOC_PPC_EMB_SDA21 4169 -- : BFD_RELOC_PPC_EMB_MRKREF 4170 -- : BFD_RELOC_PPC_EMB_RELSEC16 4171 -- : BFD_RELOC_PPC_EMB_RELST_LO 4172 -- : BFD_RELOC_PPC_EMB_RELST_HI 4173 -- : BFD_RELOC_PPC_EMB_RELST_HA 4174 -- : BFD_RELOC_PPC_EMB_BIT_FLD 4175 -- : BFD_RELOC_PPC_EMB_RELSDA 4176 -- : BFD_RELOC_PPC_VLE_REL8 4177 -- : BFD_RELOC_PPC_VLE_REL15 4178 -- : BFD_RELOC_PPC_VLE_REL24 4179 -- : BFD_RELOC_PPC_VLE_LO16A 4180 -- : BFD_RELOC_PPC_VLE_LO16D 4181 -- : BFD_RELOC_PPC_VLE_HI16A 4182 -- : BFD_RELOC_PPC_VLE_HI16D 4183 -- : BFD_RELOC_PPC_VLE_HA16A 4184 -- : BFD_RELOC_PPC_VLE_HA16D 4185 -- : BFD_RELOC_PPC_VLE_SDA21 4186 -- : BFD_RELOC_PPC_VLE_SDA21_LO 4187 -- : BFD_RELOC_PPC_VLE_SDAREL_LO16A 4188 -- : BFD_RELOC_PPC_VLE_SDAREL_LO16D 4189 -- : BFD_RELOC_PPC_VLE_SDAREL_HI16A 4190 -- : BFD_RELOC_PPC_VLE_SDAREL_HI16D 4191 -- : BFD_RELOC_PPC_VLE_SDAREL_HA16A 4192 -- : BFD_RELOC_PPC_VLE_SDAREL_HA16D 4193 -- : BFD_RELOC_PPC_REL16DX_HA 4194 -- : BFD_RELOC_PPC64_HIGHER 4195 -- : BFD_RELOC_PPC64_HIGHER_S 4196 -- : BFD_RELOC_PPC64_HIGHEST 4197 -- : BFD_RELOC_PPC64_HIGHEST_S 4198 -- : BFD_RELOC_PPC64_TOC16_LO 4199 -- : BFD_RELOC_PPC64_TOC16_HI 4200 -- : BFD_RELOC_PPC64_TOC16_HA 4201 -- : BFD_RELOC_PPC64_TOC 4202 -- : BFD_RELOC_PPC64_PLTGOT16 4203 -- : BFD_RELOC_PPC64_PLTGOT16_LO 4204 -- : BFD_RELOC_PPC64_PLTGOT16_HI 4205 -- : BFD_RELOC_PPC64_PLTGOT16_HA 4206 -- : BFD_RELOC_PPC64_ADDR16_DS 4207 -- : BFD_RELOC_PPC64_ADDR16_LO_DS 4208 -- : BFD_RELOC_PPC64_GOT16_DS 4209 -- : BFD_RELOC_PPC64_GOT16_LO_DS 4210 -- : BFD_RELOC_PPC64_PLT16_LO_DS 4211 -- : BFD_RELOC_PPC64_SECTOFF_DS 4212 -- : BFD_RELOC_PPC64_SECTOFF_LO_DS 4213 -- : BFD_RELOC_PPC64_TOC16_DS 4214 -- : BFD_RELOC_PPC64_TOC16_LO_DS 4215 -- : BFD_RELOC_PPC64_PLTGOT16_DS 4216 -- : BFD_RELOC_PPC64_PLTGOT16_LO_DS 4217 -- : BFD_RELOC_PPC64_ADDR16_HIGH 4218 -- : BFD_RELOC_PPC64_ADDR16_HIGHA 4219 -- : BFD_RELOC_PPC64_ADDR64_LOCAL 4220 -- : BFD_RELOC_PPC64_ENTRY 4221 Power(rs6000) and PowerPC relocations. 4222 4223 -- : BFD_RELOC_PPC_TLS 4224 -- : BFD_RELOC_PPC_TLSGD 4225 -- : BFD_RELOC_PPC_TLSLD 4226 -- : BFD_RELOC_PPC_DTPMOD 4227 -- : BFD_RELOC_PPC_TPREL16 4228 -- : BFD_RELOC_PPC_TPREL16_LO 4229 -- : BFD_RELOC_PPC_TPREL16_HI 4230 -- : BFD_RELOC_PPC_TPREL16_HA 4231 -- : BFD_RELOC_PPC_TPREL 4232 -- : BFD_RELOC_PPC_DTPREL16 4233 -- : BFD_RELOC_PPC_DTPREL16_LO 4234 -- : BFD_RELOC_PPC_DTPREL16_HI 4235 -- : BFD_RELOC_PPC_DTPREL16_HA 4236 -- : BFD_RELOC_PPC_DTPREL 4237 -- : BFD_RELOC_PPC_GOT_TLSGD16 4238 -- : BFD_RELOC_PPC_GOT_TLSGD16_LO 4239 -- : BFD_RELOC_PPC_GOT_TLSGD16_HI 4240 -- : BFD_RELOC_PPC_GOT_TLSGD16_HA 4241 -- : BFD_RELOC_PPC_GOT_TLSLD16 4242 -- : BFD_RELOC_PPC_GOT_TLSLD16_LO 4243 -- : BFD_RELOC_PPC_GOT_TLSLD16_HI 4244 -- : BFD_RELOC_PPC_GOT_TLSLD16_HA 4245 -- : BFD_RELOC_PPC_GOT_TPREL16 4246 -- : BFD_RELOC_PPC_GOT_TPREL16_LO 4247 -- : BFD_RELOC_PPC_GOT_TPREL16_HI 4248 -- : BFD_RELOC_PPC_GOT_TPREL16_HA 4249 -- : BFD_RELOC_PPC_GOT_DTPREL16 4250 -- : BFD_RELOC_PPC_GOT_DTPREL16_LO 4251 -- : BFD_RELOC_PPC_GOT_DTPREL16_HI 4252 -- : BFD_RELOC_PPC_GOT_DTPREL16_HA 4253 -- : BFD_RELOC_PPC64_TPREL16_DS 4254 -- : BFD_RELOC_PPC64_TPREL16_LO_DS 4255 -- : BFD_RELOC_PPC64_TPREL16_HIGHER 4256 -- : BFD_RELOC_PPC64_TPREL16_HIGHERA 4257 -- : BFD_RELOC_PPC64_TPREL16_HIGHEST 4258 -- : BFD_RELOC_PPC64_TPREL16_HIGHESTA 4259 -- : BFD_RELOC_PPC64_DTPREL16_DS 4260 -- : BFD_RELOC_PPC64_DTPREL16_LO_DS 4261 -- : BFD_RELOC_PPC64_DTPREL16_HIGHER 4262 -- : BFD_RELOC_PPC64_DTPREL16_HIGHERA 4263 -- : BFD_RELOC_PPC64_DTPREL16_HIGHEST 4264 -- : BFD_RELOC_PPC64_DTPREL16_HIGHESTA 4265 -- : BFD_RELOC_PPC64_TPREL16_HIGH 4266 -- : BFD_RELOC_PPC64_TPREL16_HIGHA 4267 -- : BFD_RELOC_PPC64_DTPREL16_HIGH 4268 -- : BFD_RELOC_PPC64_DTPREL16_HIGHA 4269 PowerPC and PowerPC64 thread-local storage relocations. 4270 4271 -- : BFD_RELOC_I370_D12 4272 IBM 370/390 relocations 4273 4274 -- : BFD_RELOC_CTOR 4275 The type of reloc used to build a constructor table - at the moment 4276 probably a 32 bit wide absolute relocation, but the target can 4277 choose. It generally does map to one of the other relocation 4278 types. 4279 4280 -- : BFD_RELOC_ARM_PCREL_BRANCH 4281 ARM 26 bit pc-relative branch. The lowest two bits must be zero 4282 and are not stored in the instruction. 4283 4284 -- : BFD_RELOC_ARM_PCREL_BLX 4285 ARM 26 bit pc-relative branch. The lowest bit must be zero and is 4286 not stored in the instruction. The 2nd lowest bit comes from a 1 4287 bit field in the instruction. 4288 4289 -- : BFD_RELOC_THUMB_PCREL_BLX 4290 Thumb 22 bit pc-relative branch. The lowest bit must be zero and 4291 is not stored in the instruction. The 2nd lowest bit comes from a 4292 1 bit field in the instruction. 4293 4294 -- : BFD_RELOC_ARM_PCREL_CALL 4295 ARM 26-bit pc-relative branch for an unconditional BL or BLX 4296 instruction. 4297 4298 -- : BFD_RELOC_ARM_PCREL_JUMP 4299 ARM 26-bit pc-relative branch for B or conditional BL instruction. 4300 4301 -- : BFD_RELOC_THUMB_PCREL_BRANCH7 4302 -- : BFD_RELOC_THUMB_PCREL_BRANCH9 4303 -- : BFD_RELOC_THUMB_PCREL_BRANCH12 4304 -- : BFD_RELOC_THUMB_PCREL_BRANCH20 4305 -- : BFD_RELOC_THUMB_PCREL_BRANCH23 4306 -- : BFD_RELOC_THUMB_PCREL_BRANCH25 4307 Thumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches. The 4308 lowest bit must be zero and is not stored in the instruction. 4309 Note that the corresponding ELF R_ARM_THM_JUMPnn constant has an 4310 "nn" one smaller in all cases. Note further that BRANCH23 4311 corresponds to R_ARM_THM_CALL. 4312 4313 -- : BFD_RELOC_ARM_OFFSET_IMM 4314 12-bit immediate offset, used in ARM-format ldr and str 4315 instructions. 4316 4317 -- : BFD_RELOC_ARM_THUMB_OFFSET 4318 5-bit immediate offset, used in Thumb-format ldr and str 4319 instructions. 4320 4321 -- : BFD_RELOC_ARM_TARGET1 4322 Pc-relative or absolute relocation depending on target. Used for 4323 entries in .init_array sections. 4324 4325 -- : BFD_RELOC_ARM_ROSEGREL32 4326 Read-only segment base relative address. 4327 4328 -- : BFD_RELOC_ARM_SBREL32 4329 Data segment base relative address. 4330 4331 -- : BFD_RELOC_ARM_TARGET2 4332 This reloc is used for references to RTTI data from exception 4333 handling tables. The actual definition depends on the target. It 4334 may be a pc-relative or some form of GOT-indirect relocation. 4335 4336 -- : BFD_RELOC_ARM_PREL31 4337 31-bit PC relative address. 4338 4339 -- : BFD_RELOC_ARM_MOVW 4340 -- : BFD_RELOC_ARM_MOVT 4341 -- : BFD_RELOC_ARM_MOVW_PCREL 4342 -- : BFD_RELOC_ARM_MOVT_PCREL 4343 -- : BFD_RELOC_ARM_THUMB_MOVW 4344 -- : BFD_RELOC_ARM_THUMB_MOVT 4345 -- : BFD_RELOC_ARM_THUMB_MOVW_PCREL 4346 -- : BFD_RELOC_ARM_THUMB_MOVT_PCREL 4347 Low and High halfword relocations for MOVW and MOVT instructions. 4348 4349 -- : BFD_RELOC_ARM_JUMP_SLOT 4350 -- : BFD_RELOC_ARM_GLOB_DAT 4351 -- : BFD_RELOC_ARM_GOT32 4352 -- : BFD_RELOC_ARM_PLT32 4353 -- : BFD_RELOC_ARM_RELATIVE 4354 -- : BFD_RELOC_ARM_GOTOFF 4355 -- : BFD_RELOC_ARM_GOTPC 4356 -- : BFD_RELOC_ARM_GOT_PREL 4357 Relocations for setting up GOTs and PLTs for shared libraries. 4358 4359 -- : BFD_RELOC_ARM_TLS_GD32 4360 -- : BFD_RELOC_ARM_TLS_LDO32 4361 -- : BFD_RELOC_ARM_TLS_LDM32 4362 -- : BFD_RELOC_ARM_TLS_DTPOFF32 4363 -- : BFD_RELOC_ARM_TLS_DTPMOD32 4364 -- : BFD_RELOC_ARM_TLS_TPOFF32 4365 -- : BFD_RELOC_ARM_TLS_IE32 4366 -- : BFD_RELOC_ARM_TLS_LE32 4367 -- : BFD_RELOC_ARM_TLS_GOTDESC 4368 -- : BFD_RELOC_ARM_TLS_CALL 4369 -- : BFD_RELOC_ARM_THM_TLS_CALL 4370 -- : BFD_RELOC_ARM_TLS_DESCSEQ 4371 -- : BFD_RELOC_ARM_THM_TLS_DESCSEQ 4372 -- : BFD_RELOC_ARM_TLS_DESC 4373 ARM thread-local storage relocations. 4374 4375 -- : BFD_RELOC_ARM_ALU_PC_G0_NC 4376 -- : BFD_RELOC_ARM_ALU_PC_G0 4377 -- : BFD_RELOC_ARM_ALU_PC_G1_NC 4378 -- : BFD_RELOC_ARM_ALU_PC_G1 4379 -- : BFD_RELOC_ARM_ALU_PC_G2 4380 -- : BFD_RELOC_ARM_LDR_PC_G0 4381 -- : BFD_RELOC_ARM_LDR_PC_G1 4382 -- : BFD_RELOC_ARM_LDR_PC_G2 4383 -- : BFD_RELOC_ARM_LDRS_PC_G0 4384 -- : BFD_RELOC_ARM_LDRS_PC_G1 4385 -- : BFD_RELOC_ARM_LDRS_PC_G2 4386 -- : BFD_RELOC_ARM_LDC_PC_G0 4387 -- : BFD_RELOC_ARM_LDC_PC_G1 4388 -- : BFD_RELOC_ARM_LDC_PC_G2 4389 -- : BFD_RELOC_ARM_ALU_SB_G0_NC 4390 -- : BFD_RELOC_ARM_ALU_SB_G0 4391 -- : BFD_RELOC_ARM_ALU_SB_G1_NC 4392 -- : BFD_RELOC_ARM_ALU_SB_G1 4393 -- : BFD_RELOC_ARM_ALU_SB_G2 4394 -- : BFD_RELOC_ARM_LDR_SB_G0 4395 -- : BFD_RELOC_ARM_LDR_SB_G1 4396 -- : BFD_RELOC_ARM_LDR_SB_G2 4397 -- : BFD_RELOC_ARM_LDRS_SB_G0 4398 -- : BFD_RELOC_ARM_LDRS_SB_G1 4399 -- : BFD_RELOC_ARM_LDRS_SB_G2 4400 -- : BFD_RELOC_ARM_LDC_SB_G0 4401 -- : BFD_RELOC_ARM_LDC_SB_G1 4402 -- : BFD_RELOC_ARM_LDC_SB_G2 4403 ARM group relocations. 4404 4405 -- : BFD_RELOC_ARM_V4BX 4406 Annotation of BX instructions. 4407 4408 -- : BFD_RELOC_ARM_IRELATIVE 4409 ARM support for STT_GNU_IFUNC. 4410 4411 -- : BFD_RELOC_ARM_IMMEDIATE 4412 -- : BFD_RELOC_ARM_ADRL_IMMEDIATE 4413 -- : BFD_RELOC_ARM_T32_IMMEDIATE 4414 -- : BFD_RELOC_ARM_T32_ADD_IMM 4415 -- : BFD_RELOC_ARM_T32_IMM12 4416 -- : BFD_RELOC_ARM_T32_ADD_PC12 4417 -- : BFD_RELOC_ARM_SHIFT_IMM 4418 -- : BFD_RELOC_ARM_SMC 4419 -- : BFD_RELOC_ARM_HVC 4420 -- : BFD_RELOC_ARM_SWI 4421 -- : BFD_RELOC_ARM_MULTI 4422 -- : BFD_RELOC_ARM_CP_OFF_IMM 4423 -- : BFD_RELOC_ARM_CP_OFF_IMM_S2 4424 -- : BFD_RELOC_ARM_T32_CP_OFF_IMM 4425 -- : BFD_RELOC_ARM_T32_CP_OFF_IMM_S2 4426 -- : BFD_RELOC_ARM_ADR_IMM 4427 -- : BFD_RELOC_ARM_LDR_IMM 4428 -- : BFD_RELOC_ARM_LITERAL 4429 -- : BFD_RELOC_ARM_IN_POOL 4430 -- : BFD_RELOC_ARM_OFFSET_IMM8 4431 -- : BFD_RELOC_ARM_T32_OFFSET_U8 4432 -- : BFD_RELOC_ARM_T32_OFFSET_IMM 4433 -- : BFD_RELOC_ARM_HWLITERAL 4434 -- : BFD_RELOC_ARM_THUMB_ADD 4435 -- : BFD_RELOC_ARM_THUMB_IMM 4436 -- : BFD_RELOC_ARM_THUMB_SHIFT 4437 These relocs are only used within the ARM assembler. They are not 4438 (at present) written to any object files. 4439 4440 -- : BFD_RELOC_SH_PCDISP8BY2 4441 -- : BFD_RELOC_SH_PCDISP12BY2 4442 -- : BFD_RELOC_SH_IMM3 4443 -- : BFD_RELOC_SH_IMM3U 4444 -- : BFD_RELOC_SH_DISP12 4445 -- : BFD_RELOC_SH_DISP12BY2 4446 -- : BFD_RELOC_SH_DISP12BY4 4447 -- : BFD_RELOC_SH_DISP12BY8 4448 -- : BFD_RELOC_SH_DISP20 4449 -- : BFD_RELOC_SH_DISP20BY8 4450 -- : BFD_RELOC_SH_IMM4 4451 -- : BFD_RELOC_SH_IMM4BY2 4452 -- : BFD_RELOC_SH_IMM4BY4 4453 -- : BFD_RELOC_SH_IMM8 4454 -- : BFD_RELOC_SH_IMM8BY2 4455 -- : BFD_RELOC_SH_IMM8BY4 4456 -- : BFD_RELOC_SH_PCRELIMM8BY2 4457 -- : BFD_RELOC_SH_PCRELIMM8BY4 4458 -- : BFD_RELOC_SH_SWITCH16 4459 -- : BFD_RELOC_SH_SWITCH32 4460 -- : BFD_RELOC_SH_USES 4461 -- : BFD_RELOC_SH_COUNT 4462 -- : BFD_RELOC_SH_ALIGN 4463 -- : BFD_RELOC_SH_CODE 4464 -- : BFD_RELOC_SH_DATA 4465 -- : BFD_RELOC_SH_LABEL 4466 -- : BFD_RELOC_SH_LOOP_START 4467 -- : BFD_RELOC_SH_LOOP_END 4468 -- : BFD_RELOC_SH_COPY 4469 -- : BFD_RELOC_SH_GLOB_DAT 4470 -- : BFD_RELOC_SH_JMP_SLOT 4471 -- : BFD_RELOC_SH_RELATIVE 4472 -- : BFD_RELOC_SH_GOTPC 4473 -- : BFD_RELOC_SH_GOT_LOW16 4474 -- : BFD_RELOC_SH_GOT_MEDLOW16 4475 -- : BFD_RELOC_SH_GOT_MEDHI16 4476 -- : BFD_RELOC_SH_GOT_HI16 4477 -- : BFD_RELOC_SH_GOTPLT_LOW16 4478 -- : BFD_RELOC_SH_GOTPLT_MEDLOW16 4479 -- : BFD_RELOC_SH_GOTPLT_MEDHI16 4480 -- : BFD_RELOC_SH_GOTPLT_HI16 4481 -- : BFD_RELOC_SH_PLT_LOW16 4482 -- : BFD_RELOC_SH_PLT_MEDLOW16 4483 -- : BFD_RELOC_SH_PLT_MEDHI16 4484 -- : BFD_RELOC_SH_PLT_HI16 4485 -- : BFD_RELOC_SH_GOTOFF_LOW16 4486 -- : BFD_RELOC_SH_GOTOFF_MEDLOW16 4487 -- : BFD_RELOC_SH_GOTOFF_MEDHI16 4488 -- : BFD_RELOC_SH_GOTOFF_HI16 4489 -- : BFD_RELOC_SH_GOTPC_LOW16 4490 -- : BFD_RELOC_SH_GOTPC_MEDLOW16 4491 -- : BFD_RELOC_SH_GOTPC_MEDHI16 4492 -- : BFD_RELOC_SH_GOTPC_HI16 4493 -- : BFD_RELOC_SH_COPY64 4494 -- : BFD_RELOC_SH_GLOB_DAT64 4495 -- : BFD_RELOC_SH_JMP_SLOT64 4496 -- : BFD_RELOC_SH_RELATIVE64 4497 -- : BFD_RELOC_SH_GOT10BY4 4498 -- : BFD_RELOC_SH_GOT10BY8 4499 -- : BFD_RELOC_SH_GOTPLT10BY4 4500 -- : BFD_RELOC_SH_GOTPLT10BY8 4501 -- : BFD_RELOC_SH_GOTPLT32 4502 -- : BFD_RELOC_SH_SHMEDIA_CODE 4503 -- : BFD_RELOC_SH_IMMU5 4504 -- : BFD_RELOC_SH_IMMS6 4505 -- : BFD_RELOC_SH_IMMS6BY32 4506 -- : BFD_RELOC_SH_IMMU6 4507 -- : BFD_RELOC_SH_IMMS10 4508 -- : BFD_RELOC_SH_IMMS10BY2 4509 -- : BFD_RELOC_SH_IMMS10BY4 4510 -- : BFD_RELOC_SH_IMMS10BY8 4511 -- : BFD_RELOC_SH_IMMS16 4512 -- : BFD_RELOC_SH_IMMU16 4513 -- : BFD_RELOC_SH_IMM_LOW16 4514 -- : BFD_RELOC_SH_IMM_LOW16_PCREL 4515 -- : BFD_RELOC_SH_IMM_MEDLOW16 4516 -- : BFD_RELOC_SH_IMM_MEDLOW16_PCREL 4517 -- : BFD_RELOC_SH_IMM_MEDHI16 4518 -- : BFD_RELOC_SH_IMM_MEDHI16_PCREL 4519 -- : BFD_RELOC_SH_IMM_HI16 4520 -- : BFD_RELOC_SH_IMM_HI16_PCREL 4521 -- : BFD_RELOC_SH_PT_16 4522 -- : BFD_RELOC_SH_TLS_GD_32 4523 -- : BFD_RELOC_SH_TLS_LD_32 4524 -- : BFD_RELOC_SH_TLS_LDO_32 4525 -- : BFD_RELOC_SH_TLS_IE_32 4526 -- : BFD_RELOC_SH_TLS_LE_32 4527 -- : BFD_RELOC_SH_TLS_DTPMOD32 4528 -- : BFD_RELOC_SH_TLS_DTPOFF32 4529 -- : BFD_RELOC_SH_TLS_TPOFF32 4530 -- : BFD_RELOC_SH_GOT20 4531 -- : BFD_RELOC_SH_GOTOFF20 4532 -- : BFD_RELOC_SH_GOTFUNCDESC 4533 -- : BFD_RELOC_SH_GOTFUNCDESC20 4534 -- : BFD_RELOC_SH_GOTOFFFUNCDESC 4535 -- : BFD_RELOC_SH_GOTOFFFUNCDESC20 4536 -- : BFD_RELOC_SH_FUNCDESC 4537 Renesas / SuperH SH relocs. Not all of these appear in object 4538 files. 4539 4540 -- : BFD_RELOC_ARC_NONE 4541 -- : BFD_RELOC_ARC_8 4542 -- : BFD_RELOC_ARC_16 4543 -- : BFD_RELOC_ARC_24 4544 -- : BFD_RELOC_ARC_32 4545 -- : BFD_RELOC_ARC_N8 4546 -- : BFD_RELOC_ARC_N16 4547 -- : BFD_RELOC_ARC_N24 4548 -- : BFD_RELOC_ARC_N32 4549 -- : BFD_RELOC_ARC_SDA 4550 -- : BFD_RELOC_ARC_SECTOFF 4551 -- : BFD_RELOC_ARC_S21H_PCREL 4552 -- : BFD_RELOC_ARC_S21W_PCREL 4553 -- : BFD_RELOC_ARC_S25H_PCREL 4554 -- : BFD_RELOC_ARC_S25W_PCREL 4555 -- : BFD_RELOC_ARC_SDA32 4556 -- : BFD_RELOC_ARC_SDA_LDST 4557 -- : BFD_RELOC_ARC_SDA_LDST1 4558 -- : BFD_RELOC_ARC_SDA_LDST2 4559 -- : BFD_RELOC_ARC_SDA16_LD 4560 -- : BFD_RELOC_ARC_SDA16_LD1 4561 -- : BFD_RELOC_ARC_SDA16_LD2 4562 -- : BFD_RELOC_ARC_S13_PCREL 4563 -- : BFD_RELOC_ARC_W 4564 -- : BFD_RELOC_ARC_32_ME 4565 -- : BFD_RELOC_ARC_32_ME_S 4566 -- : BFD_RELOC_ARC_N32_ME 4567 -- : BFD_RELOC_ARC_SECTOFF_ME 4568 -- : BFD_RELOC_ARC_SDA32_ME 4569 -- : BFD_RELOC_ARC_W_ME 4570 -- : BFD_RELOC_AC_SECTOFF_U8 4571 -- : BFD_RELOC_AC_SECTOFF_U8_1 4572 -- : BFD_RELOC_AC_SECTOFF_U8_2 4573 -- : BFD_RELOC_AC_SECTFOFF_S9 4574 -- : BFD_RELOC_AC_SECTFOFF_S9_1 4575 -- : BFD_RELOC_AC_SECTFOFF_S9_2 4576 -- : BFD_RELOC_ARC_SECTOFF_ME_1 4577 -- : BFD_RELOC_ARC_SECTOFF_ME_2 4578 -- : BFD_RELOC_ARC_SECTOFF_1 4579 -- : BFD_RELOC_ARC_SECTOFF_2 4580 -- : BFD_RELOC_ARC_SDA16_ST2 4581 -- : BFD_RELOC_ARC_32_PCREL 4582 -- : BFD_RELOC_ARC_PC32 4583 -- : BFD_RELOC_ARC_GOT32 4584 -- : BFD_RELOC_ARC_GOTPC32 4585 -- : BFD_RELOC_ARC_PLT32 4586 -- : BFD_RELOC_ARC_COPY 4587 -- : BFD_RELOC_ARC_GLOB_DAT 4588 -- : BFD_RELOC_ARC_JMP_SLOT 4589 -- : BFD_RELOC_ARC_RELATIVE 4590 -- : BFD_RELOC_ARC_GOTOFF 4591 -- : BFD_RELOC_ARC_GOTPC 4592 -- : BFD_RELOC_ARC_S21W_PCREL_PLT 4593 -- : BFD_RELOC_ARC_S25H_PCREL_PLT 4594 -- : BFD_RELOC_ARC_TLS_DTPMOD 4595 -- : BFD_RELOC_ARC_TLS_TPOFF 4596 -- : BFD_RELOC_ARC_TLS_GD_GOT 4597 -- : BFD_RELOC_ARC_TLS_GD_LD 4598 -- : BFD_RELOC_ARC_TLS_GD_CALL 4599 -- : BFD_RELOC_ARC_TLS_IE_GOT 4600 -- : BFD_RELOC_ARC_TLS_DTPOFF 4601 -- : BFD_RELOC_ARC_TLS_DTPOFF_S9 4602 -- : BFD_RELOC_ARC_TLS_LE_S9 4603 -- : BFD_RELOC_ARC_TLS_LE_32 4604 -- : BFD_RELOC_ARC_S25W_PCREL_PLT 4605 -- : BFD_RELOC_ARC_S21H_PCREL_PLT 4606 ARC relocs. 4607 4608 -- : BFD_RELOC_BFIN_16_IMM 4609 ADI Blackfin 16 bit immediate absolute reloc. 4610 4611 -- : BFD_RELOC_BFIN_16_HIGH 4612 ADI Blackfin 16 bit immediate absolute reloc higher 16 bits. 4613 4614 -- : BFD_RELOC_BFIN_4_PCREL 4615 ADI Blackfin 'a' part of LSETUP. 4616 4617 -- : BFD_RELOC_BFIN_5_PCREL 4618 ADI Blackfin. 4619 4620 -- : BFD_RELOC_BFIN_16_LOW 4621 ADI Blackfin 16 bit immediate absolute reloc lower 16 bits. 4622 4623 -- : BFD_RELOC_BFIN_10_PCREL 4624 ADI Blackfin. 4625 4626 -- : BFD_RELOC_BFIN_11_PCREL 4627 ADI Blackfin 'b' part of LSETUP. 4628 4629 -- : BFD_RELOC_BFIN_12_PCREL_JUMP 4630 ADI Blackfin. 4631 4632 -- : BFD_RELOC_BFIN_12_PCREL_JUMP_S 4633 ADI Blackfin Short jump, pcrel. 4634 4635 -- : BFD_RELOC_BFIN_24_PCREL_CALL_X 4636 ADI Blackfin Call.x not implemented. 4637 4638 -- : BFD_RELOC_BFIN_24_PCREL_JUMP_L 4639 ADI Blackfin Long Jump pcrel. 4640 4641 -- : BFD_RELOC_BFIN_GOT17M4 4642 -- : BFD_RELOC_BFIN_GOTHI 4643 -- : BFD_RELOC_BFIN_GOTLO 4644 -- : BFD_RELOC_BFIN_FUNCDESC 4645 -- : BFD_RELOC_BFIN_FUNCDESC_GOT17M4 4646 -- : BFD_RELOC_BFIN_FUNCDESC_GOTHI 4647 -- : BFD_RELOC_BFIN_FUNCDESC_GOTLO 4648 -- : BFD_RELOC_BFIN_FUNCDESC_VALUE 4649 -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4 4650 -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI 4651 -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO 4652 -- : BFD_RELOC_BFIN_GOTOFF17M4 4653 -- : BFD_RELOC_BFIN_GOTOFFHI 4654 -- : BFD_RELOC_BFIN_GOTOFFLO 4655 ADI Blackfin FD-PIC relocations. 4656 4657 -- : BFD_RELOC_BFIN_GOT 4658 ADI Blackfin GOT relocation. 4659 4660 -- : BFD_RELOC_BFIN_PLTPC 4661 ADI Blackfin PLTPC relocation. 4662 4663 -- : BFD_ARELOC_BFIN_PUSH 4664 ADI Blackfin arithmetic relocation. 4665 4666 -- : BFD_ARELOC_BFIN_CONST 4667 ADI Blackfin arithmetic relocation. 4668 4669 -- : BFD_ARELOC_BFIN_ADD 4670 ADI Blackfin arithmetic relocation. 4671 4672 -- : BFD_ARELOC_BFIN_SUB 4673 ADI Blackfin arithmetic relocation. 4674 4675 -- : BFD_ARELOC_BFIN_MULT 4676 ADI Blackfin arithmetic relocation. 4677 4678 -- : BFD_ARELOC_BFIN_DIV 4679 ADI Blackfin arithmetic relocation. 4680 4681 -- : BFD_ARELOC_BFIN_MOD 4682 ADI Blackfin arithmetic relocation. 4683 4684 -- : BFD_ARELOC_BFIN_LSHIFT 4685 ADI Blackfin arithmetic relocation. 4686 4687 -- : BFD_ARELOC_BFIN_RSHIFT 4688 ADI Blackfin arithmetic relocation. 4689 4690 -- : BFD_ARELOC_BFIN_AND 4691 ADI Blackfin arithmetic relocation. 4692 4693 -- : BFD_ARELOC_BFIN_OR 4694 ADI Blackfin arithmetic relocation. 4695 4696 -- : BFD_ARELOC_BFIN_XOR 4697 ADI Blackfin arithmetic relocation. 4698 4699 -- : BFD_ARELOC_BFIN_LAND 4700 ADI Blackfin arithmetic relocation. 4701 4702 -- : BFD_ARELOC_BFIN_LOR 4703 ADI Blackfin arithmetic relocation. 4704 4705 -- : BFD_ARELOC_BFIN_LEN 4706 ADI Blackfin arithmetic relocation. 4707 4708 -- : BFD_ARELOC_BFIN_NEG 4709 ADI Blackfin arithmetic relocation. 4710 4711 -- : BFD_ARELOC_BFIN_COMP 4712 ADI Blackfin arithmetic relocation. 4713 4714 -- : BFD_ARELOC_BFIN_PAGE 4715 ADI Blackfin arithmetic relocation. 4716 4717 -- : BFD_ARELOC_BFIN_HWPAGE 4718 ADI Blackfin arithmetic relocation. 4719 4720 -- : BFD_ARELOC_BFIN_ADDR 4721 ADI Blackfin arithmetic relocation. 4722 4723 -- : BFD_RELOC_D10V_10_PCREL_R 4724 Mitsubishi D10V relocs. This is a 10-bit reloc with the right 2 4725 bits assumed to be 0. 4726 4727 -- : BFD_RELOC_D10V_10_PCREL_L 4728 Mitsubishi D10V relocs. This is a 10-bit reloc with the right 2 4729 bits assumed to be 0. This is the same as the previous reloc 4730 except it is in the left container, i.e., shifted left 15 bits. 4731 4732 -- : BFD_RELOC_D10V_18 4733 This is an 18-bit reloc with the right 2 bits assumed to be 0. 4734 4735 -- : BFD_RELOC_D10V_18_PCREL 4736 This is an 18-bit reloc with the right 2 bits assumed to be 0. 4737 4738 -- : BFD_RELOC_D30V_6 4739 Mitsubishi D30V relocs. This is a 6-bit absolute reloc. 4740 4741 -- : BFD_RELOC_D30V_9_PCREL 4742 This is a 6-bit pc-relative reloc with the right 3 bits assumed to 4743 be 0. 4744 4745 -- : BFD_RELOC_D30V_9_PCREL_R 4746 This is a 6-bit pc-relative reloc with the right 3 bits assumed to 4747 be 0. Same as the previous reloc but on the right side of the 4748 container. 4749 4750 -- : BFD_RELOC_D30V_15 4751 This is a 12-bit absolute reloc with the right 3 bitsassumed to be 4752 0. 4753 4754 -- : BFD_RELOC_D30V_15_PCREL 4755 This is a 12-bit pc-relative reloc with the right 3 bits assumed 4756 to be 0. 4757 4758 -- : BFD_RELOC_D30V_15_PCREL_R 4759 This is a 12-bit pc-relative reloc with the right 3 bits assumed 4760 to be 0. Same as the previous reloc but on the right side of the 4761 container. 4762 4763 -- : BFD_RELOC_D30V_21 4764 This is an 18-bit absolute reloc with the right 3 bits assumed to 4765 be 0. 4766 4767 -- : BFD_RELOC_D30V_21_PCREL 4768 This is an 18-bit pc-relative reloc with the right 3 bits assumed 4769 to be 0. 4770 4771 -- : BFD_RELOC_D30V_21_PCREL_R 4772 This is an 18-bit pc-relative reloc with the right 3 bits assumed 4773 to be 0. Same as the previous reloc but on the right side of the 4774 container. 4775 4776 -- : BFD_RELOC_D30V_32 4777 This is a 32-bit absolute reloc. 4778 4779 -- : BFD_RELOC_D30V_32_PCREL 4780 This is a 32-bit pc-relative reloc. 4781 4782 -- : BFD_RELOC_DLX_HI16_S 4783 DLX relocs 4784 4785 -- : BFD_RELOC_DLX_LO16 4786 DLX relocs 4787 4788 -- : BFD_RELOC_DLX_JMP26 4789 DLX relocs 4790 4791 -- : BFD_RELOC_M32C_HI8 4792 -- : BFD_RELOC_M32C_RL_JUMP 4793 -- : BFD_RELOC_M32C_RL_1ADDR 4794 -- : BFD_RELOC_M32C_RL_2ADDR 4795 Renesas M16C/M32C Relocations. 4796 4797 -- : BFD_RELOC_M32R_24 4798 Renesas M32R (formerly Mitsubishi M32R) relocs. This is a 24 bit 4799 absolute address. 4800 4801 -- : BFD_RELOC_M32R_10_PCREL 4802 This is a 10-bit pc-relative reloc with the right 2 bits assumed 4803 to be 0. 4804 4805 -- : BFD_RELOC_M32R_18_PCREL 4806 This is an 18-bit reloc with the right 2 bits assumed to be 0. 4807 4808 -- : BFD_RELOC_M32R_26_PCREL 4809 This is a 26-bit reloc with the right 2 bits assumed to be 0. 4810 4811 -- : BFD_RELOC_M32R_HI16_ULO 4812 This is a 16-bit reloc containing the high 16 bits of an address 4813 used when the lower 16 bits are treated as unsigned. 4814 4815 -- : BFD_RELOC_M32R_HI16_SLO 4816 This is a 16-bit reloc containing the high 16 bits of an address 4817 used when the lower 16 bits are treated as signed. 4818 4819 -- : BFD_RELOC_M32R_LO16 4820 This is a 16-bit reloc containing the lower 16 bits of an address. 4821 4822 -- : BFD_RELOC_M32R_SDA16 4823 This is a 16-bit reloc containing the small data area offset for 4824 use in add3, load, and store instructions. 4825 4826 -- : BFD_RELOC_M32R_GOT24 4827 -- : BFD_RELOC_M32R_26_PLTREL 4828 -- : BFD_RELOC_M32R_COPY 4829 -- : BFD_RELOC_M32R_GLOB_DAT 4830 -- : BFD_RELOC_M32R_JMP_SLOT 4831 -- : BFD_RELOC_M32R_RELATIVE 4832 -- : BFD_RELOC_M32R_GOTOFF 4833 -- : BFD_RELOC_M32R_GOTOFF_HI_ULO 4834 -- : BFD_RELOC_M32R_GOTOFF_HI_SLO 4835 -- : BFD_RELOC_M32R_GOTOFF_LO 4836 -- : BFD_RELOC_M32R_GOTPC24 4837 -- : BFD_RELOC_M32R_GOT16_HI_ULO 4838 -- : BFD_RELOC_M32R_GOT16_HI_SLO 4839 -- : BFD_RELOC_M32R_GOT16_LO 4840 -- : BFD_RELOC_M32R_GOTPC_HI_ULO 4841 -- : BFD_RELOC_M32R_GOTPC_HI_SLO 4842 -- : BFD_RELOC_M32R_GOTPC_LO 4843 For PIC. 4844 4845 -- : BFD_RELOC_NDS32_20 4846 NDS32 relocs. This is a 20 bit absolute address. 4847 4848 -- : BFD_RELOC_NDS32_9_PCREL 4849 This is a 9-bit pc-relative reloc with the right 1 bit assumed to 4850 be 0. 4851 4852 -- : BFD_RELOC_NDS32_WORD_9_PCREL 4853 This is a 9-bit pc-relative reloc with the right 1 bit assumed to 4854 be 0. 4855 4856 -- : BFD_RELOC_NDS32_15_PCREL 4857 This is an 15-bit reloc with the right 1 bit assumed to be 0. 4858 4859 -- : BFD_RELOC_NDS32_17_PCREL 4860 This is an 17-bit reloc with the right 1 bit assumed to be 0. 4861 4862 -- : BFD_RELOC_NDS32_25_PCREL 4863 This is a 25-bit reloc with the right 1 bit assumed to be 0. 4864 4865 -- : BFD_RELOC_NDS32_HI20 4866 This is a 20-bit reloc containing the high 20 bits of an address 4867 used with the lower 12 bits 4868 4869 -- : BFD_RELOC_NDS32_LO12S3 4870 This is a 12-bit reloc containing the lower 12 bits of an address 4871 then shift right by 3. This is used with ldi,sdi... 4872 4873 -- : BFD_RELOC_NDS32_LO12S2 4874 This is a 12-bit reloc containing the lower 12 bits of an address 4875 then shift left by 2. This is used with lwi,swi... 4876 4877 -- : BFD_RELOC_NDS32_LO12S1 4878 This is a 12-bit reloc containing the lower 12 bits of an address 4879 then shift left by 1. This is used with lhi,shi... 4880 4881 -- : BFD_RELOC_NDS32_LO12S0 4882 This is a 12-bit reloc containing the lower 12 bits of an address 4883 then shift left by 0. This is used with lbisbi... 4884 4885 -- : BFD_RELOC_NDS32_LO12S0_ORI 4886 This is a 12-bit reloc containing the lower 12 bits of an address 4887 then shift left by 0. This is only used with branch relaxations 4888 4889 -- : BFD_RELOC_NDS32_SDA15S3 4890 This is a 15-bit reloc containing the small data area 18-bit 4891 signed offset and shift left by 3 for use in ldi, sdi... 4892 4893 -- : BFD_RELOC_NDS32_SDA15S2 4894 This is a 15-bit reloc containing the small data area 17-bit 4895 signed offset and shift left by 2 for use in lwi, swi... 4896 4897 -- : BFD_RELOC_NDS32_SDA15S1 4898 This is a 15-bit reloc containing the small data area 16-bit 4899 signed offset and shift left by 1 for use in lhi, shi... 4900 4901 -- : BFD_RELOC_NDS32_SDA15S0 4902 This is a 15-bit reloc containing the small data area 15-bit 4903 signed offset and shift left by 0 for use in lbi, sbi... 4904 4905 -- : BFD_RELOC_NDS32_SDA16S3 4906 This is a 16-bit reloc containing the small data area 16-bit 4907 signed offset and shift left by 3 4908 4909 -- : BFD_RELOC_NDS32_SDA17S2 4910 This is a 17-bit reloc containing the small data area 17-bit 4911 signed offset and shift left by 2 for use in lwi.gp, swi.gp... 4912 4913 -- : BFD_RELOC_NDS32_SDA18S1 4914 This is a 18-bit reloc containing the small data area 18-bit 4915 signed offset and shift left by 1 for use in lhi.gp, shi.gp... 4916 4917 -- : BFD_RELOC_NDS32_SDA19S0 4918 This is a 19-bit reloc containing the small data area 19-bit 4919 signed offset and shift left by 0 for use in lbi.gp, sbi.gp... 4920 4921 -- : BFD_RELOC_NDS32_GOT20 4922 -- : BFD_RELOC_NDS32_9_PLTREL 4923 -- : BFD_RELOC_NDS32_25_PLTREL 4924 -- : BFD_RELOC_NDS32_COPY 4925 -- : BFD_RELOC_NDS32_GLOB_DAT 4926 -- : BFD_RELOC_NDS32_JMP_SLOT 4927 -- : BFD_RELOC_NDS32_RELATIVE 4928 -- : BFD_RELOC_NDS32_GOTOFF 4929 -- : BFD_RELOC_NDS32_GOTOFF_HI20 4930 -- : BFD_RELOC_NDS32_GOTOFF_LO12 4931 -- : BFD_RELOC_NDS32_GOTPC20 4932 -- : BFD_RELOC_NDS32_GOT_HI20 4933 -- : BFD_RELOC_NDS32_GOT_LO12 4934 -- : BFD_RELOC_NDS32_GOTPC_HI20 4935 -- : BFD_RELOC_NDS32_GOTPC_LO12 4936 for PIC 4937 4938 -- : BFD_RELOC_NDS32_INSN16 4939 -- : BFD_RELOC_NDS32_LABEL 4940 -- : BFD_RELOC_NDS32_LONGCALL1 4941 -- : BFD_RELOC_NDS32_LONGCALL2 4942 -- : BFD_RELOC_NDS32_LONGCALL3 4943 -- : BFD_RELOC_NDS32_LONGJUMP1 4944 -- : BFD_RELOC_NDS32_LONGJUMP2 4945 -- : BFD_RELOC_NDS32_LONGJUMP3 4946 -- : BFD_RELOC_NDS32_LOADSTORE 4947 -- : BFD_RELOC_NDS32_9_FIXED 4948 -- : BFD_RELOC_NDS32_15_FIXED 4949 -- : BFD_RELOC_NDS32_17_FIXED 4950 -- : BFD_RELOC_NDS32_25_FIXED 4951 -- : BFD_RELOC_NDS32_LONGCALL4 4952 -- : BFD_RELOC_NDS32_LONGCALL5 4953 -- : BFD_RELOC_NDS32_LONGCALL6 4954 -- : BFD_RELOC_NDS32_LONGJUMP4 4955 -- : BFD_RELOC_NDS32_LONGJUMP5 4956 -- : BFD_RELOC_NDS32_LONGJUMP6 4957 -- : BFD_RELOC_NDS32_LONGJUMP7 4958 for relax 4959 4960 -- : BFD_RELOC_NDS32_PLTREL_HI20 4961 -- : BFD_RELOC_NDS32_PLTREL_LO12 4962 -- : BFD_RELOC_NDS32_PLT_GOTREL_HI20 4963 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO12 4964 for PIC 4965 4966 -- : BFD_RELOC_NDS32_SDA12S2_DP 4967 -- : BFD_RELOC_NDS32_SDA12S2_SP 4968 -- : BFD_RELOC_NDS32_LO12S2_DP 4969 -- : BFD_RELOC_NDS32_LO12S2_SP 4970 for floating point 4971 4972 -- : BFD_RELOC_NDS32_DWARF2_OP1 4973 -- : BFD_RELOC_NDS32_DWARF2_OP2 4974 -- : BFD_RELOC_NDS32_DWARF2_LEB 4975 for dwarf2 debug_line. 4976 4977 -- : BFD_RELOC_NDS32_UPDATE_TA 4978 for eliminate 16-bit instructions 4979 4980 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO20 4981 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO15 4982 -- : BFD_RELOC_NDS32_PLT_GOTREL_LO19 4983 -- : BFD_RELOC_NDS32_GOT_LO15 4984 -- : BFD_RELOC_NDS32_GOT_LO19 4985 -- : BFD_RELOC_NDS32_GOTOFF_LO15 4986 -- : BFD_RELOC_NDS32_GOTOFF_LO19 4987 -- : BFD_RELOC_NDS32_GOT15S2 4988 -- : BFD_RELOC_NDS32_GOT17S2 4989 for PIC object relaxation 4990 4991 -- : BFD_RELOC_NDS32_5 4992 NDS32 relocs. This is a 5 bit absolute address. 4993 4994 -- : BFD_RELOC_NDS32_10_UPCREL 4995 This is a 10-bit unsigned pc-relative reloc with the right 1 bit 4996 assumed to be 0. 4997 4998 -- : BFD_RELOC_NDS32_SDA_FP7U2_RELA 4999 If fp were omitted, fp can used as another gp. 5000 5001 -- : BFD_RELOC_NDS32_RELAX_ENTRY 5002 -- : BFD_RELOC_NDS32_GOT_SUFF 5003 -- : BFD_RELOC_NDS32_GOTOFF_SUFF 5004 -- : BFD_RELOC_NDS32_PLT_GOT_SUFF 5005 -- : BFD_RELOC_NDS32_MULCALL_SUFF 5006 -- : BFD_RELOC_NDS32_PTR 5007 -- : BFD_RELOC_NDS32_PTR_COUNT 5008 -- : BFD_RELOC_NDS32_PTR_RESOLVED 5009 -- : BFD_RELOC_NDS32_PLTBLOCK 5010 -- : BFD_RELOC_NDS32_RELAX_REGION_BEGIN 5011 -- : BFD_RELOC_NDS32_RELAX_REGION_END 5012 -- : BFD_RELOC_NDS32_MINUEND 5013 -- : BFD_RELOC_NDS32_SUBTRAHEND 5014 -- : BFD_RELOC_NDS32_DIFF8 5015 -- : BFD_RELOC_NDS32_DIFF16 5016 -- : BFD_RELOC_NDS32_DIFF32 5017 -- : BFD_RELOC_NDS32_DIFF_ULEB128 5018 -- : BFD_RELOC_NDS32_EMPTY 5019 relaxation relative relocation types 5020 5021 -- : BFD_RELOC_NDS32_25_ABS 5022 This is a 25 bit absolute address. 5023 5024 -- : BFD_RELOC_NDS32_DATA 5025 -- : BFD_RELOC_NDS32_TRAN 5026 -- : BFD_RELOC_NDS32_17IFC_PCREL 5027 -- : BFD_RELOC_NDS32_10IFCU_PCREL 5028 For ex9 and ifc using. 5029 5030 -- : BFD_RELOC_NDS32_TPOFF 5031 -- : BFD_RELOC_NDS32_TLS_LE_HI20 5032 -- : BFD_RELOC_NDS32_TLS_LE_LO12 5033 -- : BFD_RELOC_NDS32_TLS_LE_ADD 5034 -- : BFD_RELOC_NDS32_TLS_LE_LS 5035 -- : BFD_RELOC_NDS32_GOTTPOFF 5036 -- : BFD_RELOC_NDS32_TLS_IE_HI20 5037 -- : BFD_RELOC_NDS32_TLS_IE_LO12S2 5038 -- : BFD_RELOC_NDS32_TLS_TPOFF 5039 -- : BFD_RELOC_NDS32_TLS_LE_20 5040 -- : BFD_RELOC_NDS32_TLS_LE_15S0 5041 -- : BFD_RELOC_NDS32_TLS_LE_15S1 5042 -- : BFD_RELOC_NDS32_TLS_LE_15S2 5043 For TLS. 5044 5045 -- : BFD_RELOC_V850_9_PCREL 5046 This is a 9-bit reloc 5047 5048 -- : BFD_RELOC_V850_22_PCREL 5049 This is a 22-bit reloc 5050 5051 -- : BFD_RELOC_V850_SDA_16_16_OFFSET 5052 This is a 16 bit offset from the short data area pointer. 5053 5054 -- : BFD_RELOC_V850_SDA_15_16_OFFSET 5055 This is a 16 bit offset (of which only 15 bits are used) from the 5056 short data area pointer. 5057 5058 -- : BFD_RELOC_V850_ZDA_16_16_OFFSET 5059 This is a 16 bit offset from the zero data area pointer. 5060 5061 -- : BFD_RELOC_V850_ZDA_15_16_OFFSET 5062 This is a 16 bit offset (of which only 15 bits are used) from the 5063 zero data area pointer. 5064 5065 -- : BFD_RELOC_V850_TDA_6_8_OFFSET 5066 This is an 8 bit offset (of which only 6 bits are used) from the 5067 tiny data area pointer. 5068 5069 -- : BFD_RELOC_V850_TDA_7_8_OFFSET 5070 This is an 8bit offset (of which only 7 bits are used) from the 5071 tiny data area pointer. 5072 5073 -- : BFD_RELOC_V850_TDA_7_7_OFFSET 5074 This is a 7 bit offset from the tiny data area pointer. 5075 5076 -- : BFD_RELOC_V850_TDA_16_16_OFFSET 5077 This is a 16 bit offset from the tiny data area pointer. 5078 5079 -- : BFD_RELOC_V850_TDA_4_5_OFFSET 5080 This is a 5 bit offset (of which only 4 bits are used) from the 5081 tiny data area pointer. 5082 5083 -- : BFD_RELOC_V850_TDA_4_4_OFFSET 5084 This is a 4 bit offset from the tiny data area pointer. 5085 5086 -- : BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET 5087 This is a 16 bit offset from the short data area pointer, with the 5088 bits placed non-contiguously in the instruction. 5089 5090 -- : BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET 5091 This is a 16 bit offset from the zero data area pointer, with the 5092 bits placed non-contiguously in the instruction. 5093 5094 -- : BFD_RELOC_V850_CALLT_6_7_OFFSET 5095 This is a 6 bit offset from the call table base pointer. 5096 5097 -- : BFD_RELOC_V850_CALLT_16_16_OFFSET 5098 This is a 16 bit offset from the call table base pointer. 5099 5100 -- : BFD_RELOC_V850_LONGCALL 5101 Used for relaxing indirect function calls. 5102 5103 -- : BFD_RELOC_V850_LONGJUMP 5104 Used for relaxing indirect jumps. 5105 5106 -- : BFD_RELOC_V850_ALIGN 5107 Used to maintain alignment whilst relaxing. 5108 5109 -- : BFD_RELOC_V850_LO16_SPLIT_OFFSET 5110 This is a variation of BFD_RELOC_LO16 that can be used in v850e 5111 ld.bu instructions. 5112 5113 -- : BFD_RELOC_V850_16_PCREL 5114 This is a 16-bit reloc. 5115 5116 -- : BFD_RELOC_V850_17_PCREL 5117 This is a 17-bit reloc. 5118 5119 -- : BFD_RELOC_V850_23 5120 This is a 23-bit reloc. 5121 5122 -- : BFD_RELOC_V850_32_PCREL 5123 This is a 32-bit reloc. 5124 5125 -- : BFD_RELOC_V850_32_ABS 5126 This is a 32-bit reloc. 5127 5128 -- : BFD_RELOC_V850_16_SPLIT_OFFSET 5129 This is a 16-bit reloc. 5130 5131 -- : BFD_RELOC_V850_16_S1 5132 This is a 16-bit reloc. 5133 5134 -- : BFD_RELOC_V850_LO16_S1 5135 Low 16 bits. 16 bit shifted by 1. 5136 5137 -- : BFD_RELOC_V850_CALLT_15_16_OFFSET 5138 This is a 16 bit offset from the call table base pointer. 5139 5140 -- : BFD_RELOC_V850_32_GOTPCREL 5141 DSO relocations. 5142 5143 -- : BFD_RELOC_V850_16_GOT 5144 DSO relocations. 5145 5146 -- : BFD_RELOC_V850_32_GOT 5147 DSO relocations. 5148 5149 -- : BFD_RELOC_V850_22_PLT_PCREL 5150 DSO relocations. 5151 5152 -- : BFD_RELOC_V850_32_PLT_PCREL 5153 DSO relocations. 5154 5155 -- : BFD_RELOC_V850_COPY 5156 DSO relocations. 5157 5158 -- : BFD_RELOC_V850_GLOB_DAT 5159 DSO relocations. 5160 5161 -- : BFD_RELOC_V850_JMP_SLOT 5162 DSO relocations. 5163 5164 -- : BFD_RELOC_V850_RELATIVE 5165 DSO relocations. 5166 5167 -- : BFD_RELOC_V850_16_GOTOFF 5168 DSO relocations. 5169 5170 -- : BFD_RELOC_V850_32_GOTOFF 5171 DSO relocations. 5172 5173 -- : BFD_RELOC_V850_CODE 5174 start code. 5175 5176 -- : BFD_RELOC_V850_DATA 5177 start data in text. 5178 5179 -- : BFD_RELOC_TIC30_LDP 5180 This is a 8bit DP reloc for the tms320c30, where the most 5181 significant 8 bits of a 24 bit word are placed into the least 5182 significant 8 bits of the opcode. 5183 5184 -- : BFD_RELOC_TIC54X_PARTLS7 5185 This is a 7bit reloc for the tms320c54x, where the least 5186 significant 7 bits of a 16 bit word are placed into the least 5187 significant 7 bits of the opcode. 5188 5189 -- : BFD_RELOC_TIC54X_PARTMS9 5190 This is a 9bit DP reloc for the tms320c54x, where the most 5191 significant 9 bits of a 16 bit word are placed into the least 5192 significant 9 bits of the opcode. 5193 5194 -- : BFD_RELOC_TIC54X_23 5195 This is an extended address 23-bit reloc for the tms320c54x. 5196 5197 -- : BFD_RELOC_TIC54X_16_OF_23 5198 This is a 16-bit reloc for the tms320c54x, where the least 5199 significant 16 bits of a 23-bit extended address are placed into 5200 the opcode. 5201 5202 -- : BFD_RELOC_TIC54X_MS7_OF_23 5203 This is a reloc for the tms320c54x, where the most significant 7 5204 bits of a 23-bit extended address are placed into the opcode. 5205 5206 -- : BFD_RELOC_C6000_PCR_S21 5207 -- : BFD_RELOC_C6000_PCR_S12 5208 -- : BFD_RELOC_C6000_PCR_S10 5209 -- : BFD_RELOC_C6000_PCR_S7 5210 -- : BFD_RELOC_C6000_ABS_S16 5211 -- : BFD_RELOC_C6000_ABS_L16 5212 -- : BFD_RELOC_C6000_ABS_H16 5213 -- : BFD_RELOC_C6000_SBR_U15_B 5214 -- : BFD_RELOC_C6000_SBR_U15_H 5215 -- : BFD_RELOC_C6000_SBR_U15_W 5216 -- : BFD_RELOC_C6000_SBR_S16 5217 -- : BFD_RELOC_C6000_SBR_L16_B 5218 -- : BFD_RELOC_C6000_SBR_L16_H 5219 -- : BFD_RELOC_C6000_SBR_L16_W 5220 -- : BFD_RELOC_C6000_SBR_H16_B 5221 -- : BFD_RELOC_C6000_SBR_H16_H 5222 -- : BFD_RELOC_C6000_SBR_H16_W 5223 -- : BFD_RELOC_C6000_SBR_GOT_U15_W 5224 -- : BFD_RELOC_C6000_SBR_GOT_L16_W 5225 -- : BFD_RELOC_C6000_SBR_GOT_H16_W 5226 -- : BFD_RELOC_C6000_DSBT_INDEX 5227 -- : BFD_RELOC_C6000_PREL31 5228 -- : BFD_RELOC_C6000_COPY 5229 -- : BFD_RELOC_C6000_JUMP_SLOT 5230 -- : BFD_RELOC_C6000_EHTYPE 5231 -- : BFD_RELOC_C6000_PCR_H16 5232 -- : BFD_RELOC_C6000_PCR_L16 5233 -- : BFD_RELOC_C6000_ALIGN 5234 -- : BFD_RELOC_C6000_FPHEAD 5235 -- : BFD_RELOC_C6000_NOCMP 5236 TMS320C6000 relocations. 5237 5238 -- : BFD_RELOC_FR30_48 5239 This is a 48 bit reloc for the FR30 that stores 32 bits. 5240 5241 -- : BFD_RELOC_FR30_20 5242 This is a 32 bit reloc for the FR30 that stores 20 bits split up 5243 into two sections. 5244 5245 -- : BFD_RELOC_FR30_6_IN_4 5246 This is a 16 bit reloc for the FR30 that stores a 6 bit word 5247 offset in 4 bits. 5248 5249 -- : BFD_RELOC_FR30_8_IN_8 5250 This is a 16 bit reloc for the FR30 that stores an 8 bit byte 5251 offset into 8 bits. 5252 5253 -- : BFD_RELOC_FR30_9_IN_8 5254 This is a 16 bit reloc for the FR30 that stores a 9 bit short 5255 offset into 8 bits. 5256 5257 -- : BFD_RELOC_FR30_10_IN_8 5258 This is a 16 bit reloc for the FR30 that stores a 10 bit word 5259 offset into 8 bits. 5260 5261 -- : BFD_RELOC_FR30_9_PCREL 5262 This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative 5263 short offset into 8 bits. 5264 5265 -- : BFD_RELOC_FR30_12_PCREL 5266 This is a 16 bit reloc for the FR30 that stores a 12 bit pc 5267 relative short offset into 11 bits. 5268 5269 -- : BFD_RELOC_MCORE_PCREL_IMM8BY4 5270 -- : BFD_RELOC_MCORE_PCREL_IMM11BY2 5271 -- : BFD_RELOC_MCORE_PCREL_IMM4BY2 5272 -- : BFD_RELOC_MCORE_PCREL_32 5273 -- : BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2 5274 -- : BFD_RELOC_MCORE_RVA 5275 Motorola Mcore relocations. 5276 5277 -- : BFD_RELOC_MEP_8 5278 -- : BFD_RELOC_MEP_16 5279 -- : BFD_RELOC_MEP_32 5280 -- : BFD_RELOC_MEP_PCREL8A2 5281 -- : BFD_RELOC_MEP_PCREL12A2 5282 -- : BFD_RELOC_MEP_PCREL17A2 5283 -- : BFD_RELOC_MEP_PCREL24A2 5284 -- : BFD_RELOC_MEP_PCABS24A2 5285 -- : BFD_RELOC_MEP_LOW16 5286 -- : BFD_RELOC_MEP_HI16U 5287 -- : BFD_RELOC_MEP_HI16S 5288 -- : BFD_RELOC_MEP_GPREL 5289 -- : BFD_RELOC_MEP_TPREL 5290 -- : BFD_RELOC_MEP_TPREL7 5291 -- : BFD_RELOC_MEP_TPREL7A2 5292 -- : BFD_RELOC_MEP_TPREL7A4 5293 -- : BFD_RELOC_MEP_UIMM24 5294 -- : BFD_RELOC_MEP_ADDR24A4 5295 -- : BFD_RELOC_MEP_GNU_VTINHERIT 5296 -- : BFD_RELOC_MEP_GNU_VTENTRY 5297 Toshiba Media Processor Relocations. 5298 5299 -- : BFD_RELOC_METAG_HIADDR16 5300 -- : BFD_RELOC_METAG_LOADDR16 5301 -- : BFD_RELOC_METAG_RELBRANCH 5302 -- : BFD_RELOC_METAG_GETSETOFF 5303 -- : BFD_RELOC_METAG_HIOG 5304 -- : BFD_RELOC_METAG_LOOG 5305 -- : BFD_RELOC_METAG_REL8 5306 -- : BFD_RELOC_METAG_REL16 5307 -- : BFD_RELOC_METAG_HI16_GOTOFF 5308 -- : BFD_RELOC_METAG_LO16_GOTOFF 5309 -- : BFD_RELOC_METAG_GETSET_GOTOFF 5310 -- : BFD_RELOC_METAG_GETSET_GOT 5311 -- : BFD_RELOC_METAG_HI16_GOTPC 5312 -- : BFD_RELOC_METAG_LO16_GOTPC 5313 -- : BFD_RELOC_METAG_HI16_PLT 5314 -- : BFD_RELOC_METAG_LO16_PLT 5315 -- : BFD_RELOC_METAG_RELBRANCH_PLT 5316 -- : BFD_RELOC_METAG_GOTOFF 5317 -- : BFD_RELOC_METAG_PLT 5318 -- : BFD_RELOC_METAG_COPY 5319 -- : BFD_RELOC_METAG_JMP_SLOT 5320 -- : BFD_RELOC_METAG_RELATIVE 5321 -- : BFD_RELOC_METAG_GLOB_DAT 5322 -- : BFD_RELOC_METAG_TLS_GD 5323 -- : BFD_RELOC_METAG_TLS_LDM 5324 -- : BFD_RELOC_METAG_TLS_LDO_HI16 5325 -- : BFD_RELOC_METAG_TLS_LDO_LO16 5326 -- : BFD_RELOC_METAG_TLS_LDO 5327 -- : BFD_RELOC_METAG_TLS_IE 5328 -- : BFD_RELOC_METAG_TLS_IENONPIC 5329 -- : BFD_RELOC_METAG_TLS_IENONPIC_HI16 5330 -- : BFD_RELOC_METAG_TLS_IENONPIC_LO16 5331 -- : BFD_RELOC_METAG_TLS_TPOFF 5332 -- : BFD_RELOC_METAG_TLS_DTPMOD 5333 -- : BFD_RELOC_METAG_TLS_DTPOFF 5334 -- : BFD_RELOC_METAG_TLS_LE 5335 -- : BFD_RELOC_METAG_TLS_LE_HI16 5336 -- : BFD_RELOC_METAG_TLS_LE_LO16 5337 Imagination Technologies Meta relocations. 5338 5339 -- : BFD_RELOC_MMIX_GETA 5340 -- : BFD_RELOC_MMIX_GETA_1 5341 -- : BFD_RELOC_MMIX_GETA_2 5342 -- : BFD_RELOC_MMIX_GETA_3 5343 These are relocations for the GETA instruction. 5344 5345 -- : BFD_RELOC_MMIX_CBRANCH 5346 -- : BFD_RELOC_MMIX_CBRANCH_J 5347 -- : BFD_RELOC_MMIX_CBRANCH_1 5348 -- : BFD_RELOC_MMIX_CBRANCH_2 5349 -- : BFD_RELOC_MMIX_CBRANCH_3 5350 These are relocations for a conditional branch instruction. 5351 5352 -- : BFD_RELOC_MMIX_PUSHJ 5353 -- : BFD_RELOC_MMIX_PUSHJ_1 5354 -- : BFD_RELOC_MMIX_PUSHJ_2 5355 -- : BFD_RELOC_MMIX_PUSHJ_3 5356 -- : BFD_RELOC_MMIX_PUSHJ_STUBBABLE 5357 These are relocations for the PUSHJ instruction. 5358 5359 -- : BFD_RELOC_MMIX_JMP 5360 -- : BFD_RELOC_MMIX_JMP_1 5361 -- : BFD_RELOC_MMIX_JMP_2 5362 -- : BFD_RELOC_MMIX_JMP_3 5363 These are relocations for the JMP instruction. 5364 5365 -- : BFD_RELOC_MMIX_ADDR19 5366 This is a relocation for a relative address as in a GETA 5367 instruction or a branch. 5368 5369 -- : BFD_RELOC_MMIX_ADDR27 5370 This is a relocation for a relative address as in a JMP 5371 instruction. 5372 5373 -- : BFD_RELOC_MMIX_REG_OR_BYTE 5374 This is a relocation for an instruction field that may be a general 5375 register or a value 0..255. 5376 5377 -- : BFD_RELOC_MMIX_REG 5378 This is a relocation for an instruction field that may be a general 5379 register. 5380 5381 -- : BFD_RELOC_MMIX_BASE_PLUS_OFFSET 5382 This is a relocation for two instruction fields holding a register 5383 and an offset, the equivalent of the relocation. 5384 5385 -- : BFD_RELOC_MMIX_LOCAL 5386 This relocation is an assertion that the expression is not 5387 allocated as a global register. It does not modify contents. 5388 5389 -- : BFD_RELOC_AVR_7_PCREL 5390 This is a 16 bit reloc for the AVR that stores 8 bit pc relative 5391 short offset into 7 bits. 5392 5393 -- : BFD_RELOC_AVR_13_PCREL 5394 This is a 16 bit reloc for the AVR that stores 13 bit pc relative 5395 short offset into 12 bits. 5396 5397 -- : BFD_RELOC_AVR_16_PM 5398 This is a 16 bit reloc for the AVR that stores 17 bit value 5399 (usually program memory address) into 16 bits. 5400 5401 -- : BFD_RELOC_AVR_LO8_LDI 5402 This is a 16 bit reloc for the AVR that stores 8 bit value (usually 5403 data memory address) into 8 bit immediate value of LDI insn. 5404 5405 -- : BFD_RELOC_AVR_HI8_LDI 5406 This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 5407 bit of data memory address) into 8 bit immediate value of LDI insn. 5408 5409 -- : BFD_RELOC_AVR_HH8_LDI 5410 This is a 16 bit reloc for the AVR that stores 8 bit value (most 5411 high 8 bit of program memory address) into 8 bit immediate value 5412 of LDI insn. 5413 5414 -- : BFD_RELOC_AVR_MS8_LDI 5415 This is a 16 bit reloc for the AVR that stores 8 bit value (most 5416 high 8 bit of 32 bit value) into 8 bit immediate value of LDI insn. 5417 5418 -- : BFD_RELOC_AVR_LO8_LDI_NEG 5419 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5420 (usually data memory address) into 8 bit immediate value of SUBI 5421 insn. 5422 5423 -- : BFD_RELOC_AVR_HI8_LDI_NEG 5424 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5425 (high 8 bit of data memory address) into 8 bit immediate value of 5426 SUBI insn. 5427 5428 -- : BFD_RELOC_AVR_HH8_LDI_NEG 5429 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5430 (most high 8 bit of program memory address) into 8 bit immediate 5431 value of LDI or SUBI insn. 5432 5433 -- : BFD_RELOC_AVR_MS8_LDI_NEG 5434 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5435 (msb of 32 bit value) into 8 bit immediate value of LDI insn. 5436 5437 -- : BFD_RELOC_AVR_LO8_LDI_PM 5438 This is a 16 bit reloc for the AVR that stores 8 bit value (usually 5439 command address) into 8 bit immediate value of LDI insn. 5440 5441 -- : BFD_RELOC_AVR_LO8_LDI_GS 5442 This is a 16 bit reloc for the AVR that stores 8 bit value 5443 (command address) into 8 bit immediate value of LDI insn. If the 5444 address is beyond the 128k boundary, the linker inserts a jump 5445 stub for this reloc in the lower 128k. 5446 5447 -- : BFD_RELOC_AVR_HI8_LDI_PM 5448 This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 5449 bit of command address) into 8 bit immediate value of LDI insn. 5450 5451 -- : BFD_RELOC_AVR_HI8_LDI_GS 5452 This is a 16 bit reloc for the AVR that stores 8 bit value (high 8 5453 bit of command address) into 8 bit immediate value of LDI insn. 5454 If the address is beyond the 128k boundary, the linker inserts a 5455 jump stub for this reloc below 128k. 5456 5457 -- : BFD_RELOC_AVR_HH8_LDI_PM 5458 This is a 16 bit reloc for the AVR that stores 8 bit value (most 5459 high 8 bit of command address) into 8 bit immediate value of LDI 5460 insn. 5461 5462 -- : BFD_RELOC_AVR_LO8_LDI_PM_NEG 5463 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5464 (usually command address) into 8 bit immediate value of SUBI insn. 5465 5466 -- : BFD_RELOC_AVR_HI8_LDI_PM_NEG 5467 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5468 (high 8 bit of 16 bit command address) into 8 bit immediate value 5469 of SUBI insn. 5470 5471 -- : BFD_RELOC_AVR_HH8_LDI_PM_NEG 5472 This is a 16 bit reloc for the AVR that stores negated 8 bit value 5473 (high 6 bit of 22 bit command address) into 8 bit immediate value 5474 of SUBI insn. 5475 5476 -- : BFD_RELOC_AVR_CALL 5477 This is a 32 bit reloc for the AVR that stores 23 bit value into 5478 22 bits. 5479 5480 -- : BFD_RELOC_AVR_LDI 5481 This is a 16 bit reloc for the AVR that stores all needed bits for 5482 absolute addressing with ldi with overflow check to linktime 5483 5484 -- : BFD_RELOC_AVR_6 5485 This is a 6 bit reloc for the AVR that stores offset for ldd/std 5486 instructions 5487 5488 -- : BFD_RELOC_AVR_6_ADIW 5489 This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw 5490 instructions 5491 5492 -- : BFD_RELOC_AVR_8_LO 5493 This is a 8 bit reloc for the AVR that stores bits 0..7 of a symbol 5494 in .byte lo8(symbol) 5495 5496 -- : BFD_RELOC_AVR_8_HI 5497 This is a 8 bit reloc for the AVR that stores bits 8..15 of a 5498 symbol in .byte hi8(symbol) 5499 5500 -- : BFD_RELOC_AVR_8_HLO 5501 This is a 8 bit reloc for the AVR that stores bits 16..23 of a 5502 symbol in .byte hlo8(symbol) 5503 5504 -- : BFD_RELOC_AVR_DIFF8 5505 -- : BFD_RELOC_AVR_DIFF16 5506 -- : BFD_RELOC_AVR_DIFF32 5507 AVR relocations to mark the difference of two local symbols. 5508 These are only needed to support linker relaxation and can be 5509 ignored when not relaxing. The field is set to the value of the 5510 difference assuming no relaxation. The relocation encodes the 5511 position of the second symbol so the linker can determine whether 5512 to adjust the field value. 5513 5514 -- : BFD_RELOC_AVR_LDS_STS_16 5515 This is a 7 bit reloc for the AVR that stores SRAM address for 5516 16bit lds and sts instructions supported only tiny core. 5517 5518 -- : BFD_RELOC_AVR_PORT6 5519 This is a 6 bit reloc for the AVR that stores an I/O register 5520 number for the IN and OUT instructions 5521 5522 -- : BFD_RELOC_AVR_PORT5 5523 This is a 5 bit reloc for the AVR that stores an I/O register 5524 number for the SBIC, SBIS, SBI and CBI instructions 5525 5526 -- : BFD_RELOC_RL78_NEG8 5527 -- : BFD_RELOC_RL78_NEG16 5528 -- : BFD_RELOC_RL78_NEG24 5529 -- : BFD_RELOC_RL78_NEG32 5530 -- : BFD_RELOC_RL78_16_OP 5531 -- : BFD_RELOC_RL78_24_OP 5532 -- : BFD_RELOC_RL78_32_OP 5533 -- : BFD_RELOC_RL78_8U 5534 -- : BFD_RELOC_RL78_16U 5535 -- : BFD_RELOC_RL78_24U 5536 -- : BFD_RELOC_RL78_DIR3U_PCREL 5537 -- : BFD_RELOC_RL78_DIFF 5538 -- : BFD_RELOC_RL78_GPRELB 5539 -- : BFD_RELOC_RL78_GPRELW 5540 -- : BFD_RELOC_RL78_GPRELL 5541 -- : BFD_RELOC_RL78_SYM 5542 -- : BFD_RELOC_RL78_OP_SUBTRACT 5543 -- : BFD_RELOC_RL78_OP_NEG 5544 -- : BFD_RELOC_RL78_OP_AND 5545 -- : BFD_RELOC_RL78_OP_SHRA 5546 -- : BFD_RELOC_RL78_ABS8 5547 -- : BFD_RELOC_RL78_ABS16 5548 -- : BFD_RELOC_RL78_ABS16_REV 5549 -- : BFD_RELOC_RL78_ABS32 5550 -- : BFD_RELOC_RL78_ABS32_REV 5551 -- : BFD_RELOC_RL78_ABS16U 5552 -- : BFD_RELOC_RL78_ABS16UW 5553 -- : BFD_RELOC_RL78_ABS16UL 5554 -- : BFD_RELOC_RL78_RELAX 5555 -- : BFD_RELOC_RL78_HI16 5556 -- : BFD_RELOC_RL78_HI8 5557 -- : BFD_RELOC_RL78_LO16 5558 -- : BFD_RELOC_RL78_CODE 5559 -- : BFD_RELOC_RL78_SADDR 5560 Renesas RL78 Relocations. 5561 5562 -- : BFD_RELOC_RX_NEG8 5563 -- : BFD_RELOC_RX_NEG16 5564 -- : BFD_RELOC_RX_NEG24 5565 -- : BFD_RELOC_RX_NEG32 5566 -- : BFD_RELOC_RX_16_OP 5567 -- : BFD_RELOC_RX_24_OP 5568 -- : BFD_RELOC_RX_32_OP 5569 -- : BFD_RELOC_RX_8U 5570 -- : BFD_RELOC_RX_16U 5571 -- : BFD_RELOC_RX_24U 5572 -- : BFD_RELOC_RX_DIR3U_PCREL 5573 -- : BFD_RELOC_RX_DIFF 5574 -- : BFD_RELOC_RX_GPRELB 5575 -- : BFD_RELOC_RX_GPRELW 5576 -- : BFD_RELOC_RX_GPRELL 5577 -- : BFD_RELOC_RX_SYM 5578 -- : BFD_RELOC_RX_OP_SUBTRACT 5579 -- : BFD_RELOC_RX_OP_NEG 5580 -- : BFD_RELOC_RX_ABS8 5581 -- : BFD_RELOC_RX_ABS16 5582 -- : BFD_RELOC_RX_ABS16_REV 5583 -- : BFD_RELOC_RX_ABS32 5584 -- : BFD_RELOC_RX_ABS32_REV 5585 -- : BFD_RELOC_RX_ABS16U 5586 -- : BFD_RELOC_RX_ABS16UW 5587 -- : BFD_RELOC_RX_ABS16UL 5588 -- : BFD_RELOC_RX_RELAX 5589 Renesas RX Relocations. 5590 5591 -- : BFD_RELOC_390_12 5592 Direct 12 bit. 5593 5594 -- : BFD_RELOC_390_GOT12 5595 12 bit GOT offset. 5596 5597 -- : BFD_RELOC_390_PLT32 5598 32 bit PC relative PLT address. 5599 5600 -- : BFD_RELOC_390_COPY 5601 Copy symbol at runtime. 5602 5603 -- : BFD_RELOC_390_GLOB_DAT 5604 Create GOT entry. 5605 5606 -- : BFD_RELOC_390_JMP_SLOT 5607 Create PLT entry. 5608 5609 -- : BFD_RELOC_390_RELATIVE 5610 Adjust by program base. 5611 5612 -- : BFD_RELOC_390_GOTPC 5613 32 bit PC relative offset to GOT. 5614 5615 -- : BFD_RELOC_390_GOT16 5616 16 bit GOT offset. 5617 5618 -- : BFD_RELOC_390_PC12DBL 5619 PC relative 12 bit shifted by 1. 5620 5621 -- : BFD_RELOC_390_PLT12DBL 5622 12 bit PC rel. PLT shifted by 1. 5623 5624 -- : BFD_RELOC_390_PC16DBL 5625 PC relative 16 bit shifted by 1. 5626 5627 -- : BFD_RELOC_390_PLT16DBL 5628 16 bit PC rel. PLT shifted by 1. 5629 5630 -- : BFD_RELOC_390_PC24DBL 5631 PC relative 24 bit shifted by 1. 5632 5633 -- : BFD_RELOC_390_PLT24DBL 5634 24 bit PC rel. PLT shifted by 1. 5635 5636 -- : BFD_RELOC_390_PC32DBL 5637 PC relative 32 bit shifted by 1. 5638 5639 -- : BFD_RELOC_390_PLT32DBL 5640 32 bit PC rel. PLT shifted by 1. 5641 5642 -- : BFD_RELOC_390_GOTPCDBL 5643 32 bit PC rel. GOT shifted by 1. 5644 5645 -- : BFD_RELOC_390_GOT64 5646 64 bit GOT offset. 5647 5648 -- : BFD_RELOC_390_PLT64 5649 64 bit PC relative PLT address. 5650 5651 -- : BFD_RELOC_390_GOTENT 5652 32 bit rel. offset to GOT entry. 5653 5654 -- : BFD_RELOC_390_GOTOFF64 5655 64 bit offset to GOT. 5656 5657 -- : BFD_RELOC_390_GOTPLT12 5658 12-bit offset to symbol-entry within GOT, with PLT handling. 5659 5660 -- : BFD_RELOC_390_GOTPLT16 5661 16-bit offset to symbol-entry within GOT, with PLT handling. 5662 5663 -- : BFD_RELOC_390_GOTPLT32 5664 32-bit offset to symbol-entry within GOT, with PLT handling. 5665 5666 -- : BFD_RELOC_390_GOTPLT64 5667 64-bit offset to symbol-entry within GOT, with PLT handling. 5668 5669 -- : BFD_RELOC_390_GOTPLTENT 5670 32-bit rel. offset to symbol-entry within GOT, with PLT handling. 5671 5672 -- : BFD_RELOC_390_PLTOFF16 5673 16-bit rel. offset from the GOT to a PLT entry. 5674 5675 -- : BFD_RELOC_390_PLTOFF32 5676 32-bit rel. offset from the GOT to a PLT entry. 5677 5678 -- : BFD_RELOC_390_PLTOFF64 5679 64-bit rel. offset from the GOT to a PLT entry. 5680 5681 -- : BFD_RELOC_390_TLS_LOAD 5682 -- : BFD_RELOC_390_TLS_GDCALL 5683 -- : BFD_RELOC_390_TLS_LDCALL 5684 -- : BFD_RELOC_390_TLS_GD32 5685 -- : BFD_RELOC_390_TLS_GD64 5686 -- : BFD_RELOC_390_TLS_GOTIE12 5687 -- : BFD_RELOC_390_TLS_GOTIE32 5688 -- : BFD_RELOC_390_TLS_GOTIE64 5689 -- : BFD_RELOC_390_TLS_LDM32 5690 -- : BFD_RELOC_390_TLS_LDM64 5691 -- : BFD_RELOC_390_TLS_IE32 5692 -- : BFD_RELOC_390_TLS_IE64 5693 -- : BFD_RELOC_390_TLS_IEENT 5694 -- : BFD_RELOC_390_TLS_LE32 5695 -- : BFD_RELOC_390_TLS_LE64 5696 -- : BFD_RELOC_390_TLS_LDO32 5697 -- : BFD_RELOC_390_TLS_LDO64 5698 -- : BFD_RELOC_390_TLS_DTPMOD 5699 -- : BFD_RELOC_390_TLS_DTPOFF 5700 -- : BFD_RELOC_390_TLS_TPOFF 5701 s390 tls relocations. 5702 5703 -- : BFD_RELOC_390_20 5704 -- : BFD_RELOC_390_GOT20 5705 -- : BFD_RELOC_390_GOTPLT20 5706 -- : BFD_RELOC_390_TLS_GOTIE20 5707 Long displacement extension. 5708 5709 -- : BFD_RELOC_390_IRELATIVE 5710 STT_GNU_IFUNC relocation. 5711 5712 -- : BFD_RELOC_SCORE_GPREL15 5713 Score relocations Low 16 bit for load/store 5714 5715 -- : BFD_RELOC_SCORE_DUMMY2 5716 -- : BFD_RELOC_SCORE_JMP 5717 This is a 24-bit reloc with the right 1 bit assumed to be 0 5718 5719 -- : BFD_RELOC_SCORE_BRANCH 5720 This is a 19-bit reloc with the right 1 bit assumed to be 0 5721 5722 -- : BFD_RELOC_SCORE_IMM30 5723 This is a 32-bit reloc for 48-bit instructions. 5724 5725 -- : BFD_RELOC_SCORE_IMM32 5726 This is a 32-bit reloc for 48-bit instructions. 5727 5728 -- : BFD_RELOC_SCORE16_JMP 5729 This is a 11-bit reloc with the right 1 bit assumed to be 0 5730 5731 -- : BFD_RELOC_SCORE16_BRANCH 5732 This is a 8-bit reloc with the right 1 bit assumed to be 0 5733 5734 -- : BFD_RELOC_SCORE_BCMP 5735 This is a 9-bit reloc with the right 1 bit assumed to be 0 5736 5737 -- : BFD_RELOC_SCORE_GOT15 5738 -- : BFD_RELOC_SCORE_GOT_LO16 5739 -- : BFD_RELOC_SCORE_CALL15 5740 -- : BFD_RELOC_SCORE_DUMMY_HI16 5741 Undocumented Score relocs 5742 5743 -- : BFD_RELOC_IP2K_FR9 5744 Scenix IP2K - 9-bit register number / data address 5745 5746 -- : BFD_RELOC_IP2K_BANK 5747 Scenix IP2K - 4-bit register/data bank number 5748 5749 -- : BFD_RELOC_IP2K_ADDR16CJP 5750 Scenix IP2K - low 13 bits of instruction word address 5751 5752 -- : BFD_RELOC_IP2K_PAGE3 5753 Scenix IP2K - high 3 bits of instruction word address 5754 5755 -- : BFD_RELOC_IP2K_LO8DATA 5756 -- : BFD_RELOC_IP2K_HI8DATA 5757 -- : BFD_RELOC_IP2K_EX8DATA 5758 Scenix IP2K - ext/low/high 8 bits of data address 5759 5760 -- : BFD_RELOC_IP2K_LO8INSN 5761 -- : BFD_RELOC_IP2K_HI8INSN 5762 Scenix IP2K - low/high 8 bits of instruction word address 5763 5764 -- : BFD_RELOC_IP2K_PC_SKIP 5765 Scenix IP2K - even/odd PC modifier to modify snb pcl.0 5766 5767 -- : BFD_RELOC_IP2K_TEXT 5768 Scenix IP2K - 16 bit word address in text section. 5769 5770 -- : BFD_RELOC_IP2K_FR_OFFSET 5771 Scenix IP2K - 7-bit sp or dp offset 5772 5773 -- : BFD_RELOC_VPE4KMATH_DATA 5774 -- : BFD_RELOC_VPE4KMATH_INSN 5775 Scenix VPE4K coprocessor - data/insn-space addressing 5776 5777 -- : BFD_RELOC_VTABLE_INHERIT 5778 -- : BFD_RELOC_VTABLE_ENTRY 5779 These two relocations are used by the linker to determine which of 5780 the entries in a C++ virtual function table are actually used. 5781 When the -gc-sections option is given, the linker will zero out 5782 the entries that are not used, so that the code for those 5783 functions need not be included in the output. 5784 5785 VTABLE_INHERIT is a zero-space relocation used to describe to the 5786 linker the inheritance tree of a C++ virtual function table. The 5787 relocation's symbol should be the parent class' vtable, and the 5788 relocation should be located at the child vtable. 5789 5790 VTABLE_ENTRY is a zero-space relocation that describes the use of a 5791 virtual function table entry. The reloc's symbol should refer to 5792 the table of the class mentioned in the code. Off of that base, 5793 an offset describes the entry that is being used. For Rela hosts, 5794 this offset is stored in the reloc's addend. For Rel hosts, we 5795 are forced to put this offset in the reloc's section offset. 5796 5797 -- : BFD_RELOC_IA64_IMM14 5798 -- : BFD_RELOC_IA64_IMM22 5799 -- : BFD_RELOC_IA64_IMM64 5800 -- : BFD_RELOC_IA64_DIR32MSB 5801 -- : BFD_RELOC_IA64_DIR32LSB 5802 -- : BFD_RELOC_IA64_DIR64MSB 5803 -- : BFD_RELOC_IA64_DIR64LSB 5804 -- : BFD_RELOC_IA64_GPREL22 5805 -- : BFD_RELOC_IA64_GPREL64I 5806 -- : BFD_RELOC_IA64_GPREL32MSB 5807 -- : BFD_RELOC_IA64_GPREL32LSB 5808 -- : BFD_RELOC_IA64_GPREL64MSB 5809 -- : BFD_RELOC_IA64_GPREL64LSB 5810 -- : BFD_RELOC_IA64_LTOFF22 5811 -- : BFD_RELOC_IA64_LTOFF64I 5812 -- : BFD_RELOC_IA64_PLTOFF22 5813 -- : BFD_RELOC_IA64_PLTOFF64I 5814 -- : BFD_RELOC_IA64_PLTOFF64MSB 5815 -- : BFD_RELOC_IA64_PLTOFF64LSB 5816 -- : BFD_RELOC_IA64_FPTR64I 5817 -- : BFD_RELOC_IA64_FPTR32MSB 5818 -- : BFD_RELOC_IA64_FPTR32LSB 5819 -- : BFD_RELOC_IA64_FPTR64MSB 5820 -- : BFD_RELOC_IA64_FPTR64LSB 5821 -- : BFD_RELOC_IA64_PCREL21B 5822 -- : BFD_RELOC_IA64_PCREL21BI 5823 -- : BFD_RELOC_IA64_PCREL21M 5824 -- : BFD_RELOC_IA64_PCREL21F 5825 -- : BFD_RELOC_IA64_PCREL22 5826 -- : BFD_RELOC_IA64_PCREL60B 5827 -- : BFD_RELOC_IA64_PCREL64I 5828 -- : BFD_RELOC_IA64_PCREL32MSB 5829 -- : BFD_RELOC_IA64_PCREL32LSB 5830 -- : BFD_RELOC_IA64_PCREL64MSB 5831 -- : BFD_RELOC_IA64_PCREL64LSB 5832 -- : BFD_RELOC_IA64_LTOFF_FPTR22 5833 -- : BFD_RELOC_IA64_LTOFF_FPTR64I 5834 -- : BFD_RELOC_IA64_LTOFF_FPTR32MSB 5835 -- : BFD_RELOC_IA64_LTOFF_FPTR32LSB 5836 -- : BFD_RELOC_IA64_LTOFF_FPTR64MSB 5837 -- : BFD_RELOC_IA64_LTOFF_FPTR64LSB 5838 -- : BFD_RELOC_IA64_SEGREL32MSB 5839 -- : BFD_RELOC_IA64_SEGREL32LSB 5840 -- : BFD_RELOC_IA64_SEGREL64MSB 5841 -- : BFD_RELOC_IA64_SEGREL64LSB 5842 -- : BFD_RELOC_IA64_SECREL32MSB 5843 -- : BFD_RELOC_IA64_SECREL32LSB 5844 -- : BFD_RELOC_IA64_SECREL64MSB 5845 -- : BFD_RELOC_IA64_SECREL64LSB 5846 -- : BFD_RELOC_IA64_REL32MSB 5847 -- : BFD_RELOC_IA64_REL32LSB 5848 -- : BFD_RELOC_IA64_REL64MSB 5849 -- : BFD_RELOC_IA64_REL64LSB 5850 -- : BFD_RELOC_IA64_LTV32MSB 5851 -- : BFD_RELOC_IA64_LTV32LSB 5852 -- : BFD_RELOC_IA64_LTV64MSB 5853 -- : BFD_RELOC_IA64_LTV64LSB 5854 -- : BFD_RELOC_IA64_IPLTMSB 5855 -- : BFD_RELOC_IA64_IPLTLSB 5856 -- : BFD_RELOC_IA64_COPY 5857 -- : BFD_RELOC_IA64_LTOFF22X 5858 -- : BFD_RELOC_IA64_LDXMOV 5859 -- : BFD_RELOC_IA64_TPREL14 5860 -- : BFD_RELOC_IA64_TPREL22 5861 -- : BFD_RELOC_IA64_TPREL64I 5862 -- : BFD_RELOC_IA64_TPREL64MSB 5863 -- : BFD_RELOC_IA64_TPREL64LSB 5864 -- : BFD_RELOC_IA64_LTOFF_TPREL22 5865 -- : BFD_RELOC_IA64_DTPMOD64MSB 5866 -- : BFD_RELOC_IA64_DTPMOD64LSB 5867 -- : BFD_RELOC_IA64_LTOFF_DTPMOD22 5868 -- : BFD_RELOC_IA64_DTPREL14 5869 -- : BFD_RELOC_IA64_DTPREL22 5870 -- : BFD_RELOC_IA64_DTPREL64I 5871 -- : BFD_RELOC_IA64_DTPREL32MSB 5872 -- : BFD_RELOC_IA64_DTPREL32LSB 5873 -- : BFD_RELOC_IA64_DTPREL64MSB 5874 -- : BFD_RELOC_IA64_DTPREL64LSB 5875 -- : BFD_RELOC_IA64_LTOFF_DTPREL22 5876 Intel IA64 Relocations. 5877 5878 -- : BFD_RELOC_M68HC11_HI8 5879 Motorola 68HC11 reloc. This is the 8 bit high part of an absolute 5880 address. 5881 5882 -- : BFD_RELOC_M68HC11_LO8 5883 Motorola 68HC11 reloc. This is the 8 bit low part of an absolute 5884 address. 5885 5886 -- : BFD_RELOC_M68HC11_3B 5887 Motorola 68HC11 reloc. This is the 3 bit of a value. 5888 5889 -- : BFD_RELOC_M68HC11_RL_JUMP 5890 Motorola 68HC11 reloc. This reloc marks the beginning of a 5891 jump/call instruction. It is used for linker relaxation to 5892 correctly identify beginning of instruction and change some 5893 branches to use PC-relative addressing mode. 5894 5895 -- : BFD_RELOC_M68HC11_RL_GROUP 5896 Motorola 68HC11 reloc. This reloc marks a group of several 5897 instructions that gcc generates and for which the linker 5898 relaxation pass can modify and/or remove some of them. 5899 5900 -- : BFD_RELOC_M68HC11_LO16 5901 Motorola 68HC11 reloc. This is the 16-bit lower part of an 5902 address. It is used for 'call' instruction to specify the symbol 5903 address without any special transformation (due to memory bank 5904 window). 5905 5906 -- : BFD_RELOC_M68HC11_PAGE 5907 Motorola 68HC11 reloc. This is a 8-bit reloc that specifies the 5908 page number of an address. It is used by 'call' instruction to 5909 specify the page number of the symbol. 5910 5911 -- : BFD_RELOC_M68HC11_24 5912 Motorola 68HC11 reloc. This is a 24-bit reloc that represents the 5913 address with a 16-bit value and a 8-bit page number. The symbol 5914 address is transformed to follow the 16K memory bank of 68HC12 5915 (seen as mapped in the window). 5916 5917 -- : BFD_RELOC_M68HC12_5B 5918 Motorola 68HC12 reloc. This is the 5 bits of a value. 5919 5920 -- : BFD_RELOC_XGATE_RL_JUMP 5921 Freescale XGATE reloc. This reloc marks the beginning of a 5922 bra/jal instruction. 5923 5924 -- : BFD_RELOC_XGATE_RL_GROUP 5925 Freescale XGATE reloc. This reloc marks a group of several 5926 instructions that gcc generates and for which the linker 5927 relaxation pass can modify and/or remove some of them. 5928 5929 -- : BFD_RELOC_XGATE_LO16 5930 Freescale XGATE reloc. This is the 16-bit lower part of an 5931 address. It is used for the '16-bit' instructions. 5932 5933 -- : BFD_RELOC_XGATE_GPAGE 5934 Freescale XGATE reloc. 5935 5936 -- : BFD_RELOC_XGATE_24 5937 Freescale XGATE reloc. 5938 5939 -- : BFD_RELOC_XGATE_PCREL_9 5940 Freescale XGATE reloc. This is a 9-bit pc-relative reloc. 5941 5942 -- : BFD_RELOC_XGATE_PCREL_10 5943 Freescale XGATE reloc. This is a 10-bit pc-relative reloc. 5944 5945 -- : BFD_RELOC_XGATE_IMM8_LO 5946 Freescale XGATE reloc. This is the 16-bit lower part of an 5947 address. It is used for the '16-bit' instructions. 5948 5949 -- : BFD_RELOC_XGATE_IMM8_HI 5950 Freescale XGATE reloc. This is the 16-bit higher part of an 5951 address. It is used for the '16-bit' instructions. 5952 5953 -- : BFD_RELOC_XGATE_IMM3 5954 Freescale XGATE reloc. This is a 3-bit pc-relative reloc. 5955 5956 -- : BFD_RELOC_XGATE_IMM4 5957 Freescale XGATE reloc. This is a 4-bit pc-relative reloc. 5958 5959 -- : BFD_RELOC_XGATE_IMM5 5960 Freescale XGATE reloc. This is a 5-bit pc-relative reloc. 5961 5962 -- : BFD_RELOC_M68HC12_9B 5963 Motorola 68HC12 reloc. This is the 9 bits of a value. 5964 5965 -- : BFD_RELOC_M68HC12_16B 5966 Motorola 68HC12 reloc. This is the 16 bits of a value. 5967 5968 -- : BFD_RELOC_M68HC12_9_PCREL 5969 Motorola 68HC12/XGATE reloc. This is a PCREL9 branch. 5970 5971 -- : BFD_RELOC_M68HC12_10_PCREL 5972 Motorola 68HC12/XGATE reloc. This is a PCREL10 branch. 5973 5974 -- : BFD_RELOC_M68HC12_LO8XG 5975 Motorola 68HC12/XGATE reloc. This is the 8 bit low part of an 5976 absolute address and immediately precedes a matching HI8XG part. 5977 5978 -- : BFD_RELOC_M68HC12_HI8XG 5979 Motorola 68HC12/XGATE reloc. This is the 8 bit high part of an 5980 absolute address and immediately follows a matching LO8XG part. 5981 5982 -- : BFD_RELOC_16C_NUM08 5983 -- : BFD_RELOC_16C_NUM08_C 5984 -- : BFD_RELOC_16C_NUM16 5985 -- : BFD_RELOC_16C_NUM16_C 5986 -- : BFD_RELOC_16C_NUM32 5987 -- : BFD_RELOC_16C_NUM32_C 5988 -- : BFD_RELOC_16C_DISP04 5989 -- : BFD_RELOC_16C_DISP04_C 5990 -- : BFD_RELOC_16C_DISP08 5991 -- : BFD_RELOC_16C_DISP08_C 5992 -- : BFD_RELOC_16C_DISP16 5993 -- : BFD_RELOC_16C_DISP16_C 5994 -- : BFD_RELOC_16C_DISP24 5995 -- : BFD_RELOC_16C_DISP24_C 5996 -- : BFD_RELOC_16C_DISP24a 5997 -- : BFD_RELOC_16C_DISP24a_C 5998 -- : BFD_RELOC_16C_REG04 5999 -- : BFD_RELOC_16C_REG04_C 6000 -- : BFD_RELOC_16C_REG04a 6001 -- : BFD_RELOC_16C_REG04a_C 6002 -- : BFD_RELOC_16C_REG14 6003 -- : BFD_RELOC_16C_REG14_C 6004 -- : BFD_RELOC_16C_REG16 6005 -- : BFD_RELOC_16C_REG16_C 6006 -- : BFD_RELOC_16C_REG20 6007 -- : BFD_RELOC_16C_REG20_C 6008 -- : BFD_RELOC_16C_ABS20 6009 -- : BFD_RELOC_16C_ABS20_C 6010 -- : BFD_RELOC_16C_ABS24 6011 -- : BFD_RELOC_16C_ABS24_C 6012 -- : BFD_RELOC_16C_IMM04 6013 -- : BFD_RELOC_16C_IMM04_C 6014 -- : BFD_RELOC_16C_IMM16 6015 -- : BFD_RELOC_16C_IMM16_C 6016 -- : BFD_RELOC_16C_IMM20 6017 -- : BFD_RELOC_16C_IMM20_C 6018 -- : BFD_RELOC_16C_IMM24 6019 -- : BFD_RELOC_16C_IMM24_C 6020 -- : BFD_RELOC_16C_IMM32 6021 -- : BFD_RELOC_16C_IMM32_C 6022 NS CR16C Relocations. 6023 6024 -- : BFD_RELOC_CR16_NUM8 6025 -- : BFD_RELOC_CR16_NUM16 6026 -- : BFD_RELOC_CR16_NUM32 6027 -- : BFD_RELOC_CR16_NUM32a 6028 -- : BFD_RELOC_CR16_REGREL0 6029 -- : BFD_RELOC_CR16_REGREL4 6030 -- : BFD_RELOC_CR16_REGREL4a 6031 -- : BFD_RELOC_CR16_REGREL14 6032 -- : BFD_RELOC_CR16_REGREL14a 6033 -- : BFD_RELOC_CR16_REGREL16 6034 -- : BFD_RELOC_CR16_REGREL20 6035 -- : BFD_RELOC_CR16_REGREL20a 6036 -- : BFD_RELOC_CR16_ABS20 6037 -- : BFD_RELOC_CR16_ABS24 6038 -- : BFD_RELOC_CR16_IMM4 6039 -- : BFD_RELOC_CR16_IMM8 6040 -- : BFD_RELOC_CR16_IMM16 6041 -- : BFD_RELOC_CR16_IMM20 6042 -- : BFD_RELOC_CR16_IMM24 6043 -- : BFD_RELOC_CR16_IMM32 6044 -- : BFD_RELOC_CR16_IMM32a 6045 -- : BFD_RELOC_CR16_DISP4 6046 -- : BFD_RELOC_CR16_DISP8 6047 -- : BFD_RELOC_CR16_DISP16 6048 -- : BFD_RELOC_CR16_DISP20 6049 -- : BFD_RELOC_CR16_DISP24 6050 -- : BFD_RELOC_CR16_DISP24a 6051 -- : BFD_RELOC_CR16_SWITCH8 6052 -- : BFD_RELOC_CR16_SWITCH16 6053 -- : BFD_RELOC_CR16_SWITCH32 6054 -- : BFD_RELOC_CR16_GOT_REGREL20 6055 -- : BFD_RELOC_CR16_GOTC_REGREL20 6056 -- : BFD_RELOC_CR16_GLOB_DAT 6057 NS CR16 Relocations. 6058 6059 -- : BFD_RELOC_CRX_REL4 6060 -- : BFD_RELOC_CRX_REL8 6061 -- : BFD_RELOC_CRX_REL8_CMP 6062 -- : BFD_RELOC_CRX_REL16 6063 -- : BFD_RELOC_CRX_REL24 6064 -- : BFD_RELOC_CRX_REL32 6065 -- : BFD_RELOC_CRX_REGREL12 6066 -- : BFD_RELOC_CRX_REGREL22 6067 -- : BFD_RELOC_CRX_REGREL28 6068 -- : BFD_RELOC_CRX_REGREL32 6069 -- : BFD_RELOC_CRX_ABS16 6070 -- : BFD_RELOC_CRX_ABS32 6071 -- : BFD_RELOC_CRX_NUM8 6072 -- : BFD_RELOC_CRX_NUM16 6073 -- : BFD_RELOC_CRX_NUM32 6074 -- : BFD_RELOC_CRX_IMM16 6075 -- : BFD_RELOC_CRX_IMM32 6076 -- : BFD_RELOC_CRX_SWITCH8 6077 -- : BFD_RELOC_CRX_SWITCH16 6078 -- : BFD_RELOC_CRX_SWITCH32 6079 NS CRX Relocations. 6080 6081 -- : BFD_RELOC_CRIS_BDISP8 6082 -- : BFD_RELOC_CRIS_UNSIGNED_5 6083 -- : BFD_RELOC_CRIS_SIGNED_6 6084 -- : BFD_RELOC_CRIS_UNSIGNED_6 6085 -- : BFD_RELOC_CRIS_SIGNED_8 6086 -- : BFD_RELOC_CRIS_UNSIGNED_8 6087 -- : BFD_RELOC_CRIS_SIGNED_16 6088 -- : BFD_RELOC_CRIS_UNSIGNED_16 6089 -- : BFD_RELOC_CRIS_LAPCQ_OFFSET 6090 -- : BFD_RELOC_CRIS_UNSIGNED_4 6091 These relocs are only used within the CRIS assembler. They are not 6092 (at present) written to any object files. 6093 6094 -- : BFD_RELOC_CRIS_COPY 6095 -- : BFD_RELOC_CRIS_GLOB_DAT 6096 -- : BFD_RELOC_CRIS_JUMP_SLOT 6097 -- : BFD_RELOC_CRIS_RELATIVE 6098 Relocs used in ELF shared libraries for CRIS. 6099 6100 -- : BFD_RELOC_CRIS_32_GOT 6101 32-bit offset to symbol-entry within GOT. 6102 6103 -- : BFD_RELOC_CRIS_16_GOT 6104 16-bit offset to symbol-entry within GOT. 6105 6106 -- : BFD_RELOC_CRIS_32_GOTPLT 6107 32-bit offset to symbol-entry within GOT, with PLT handling. 6108 6109 -- : BFD_RELOC_CRIS_16_GOTPLT 6110 16-bit offset to symbol-entry within GOT, with PLT handling. 6111 6112 -- : BFD_RELOC_CRIS_32_GOTREL 6113 32-bit offset to symbol, relative to GOT. 6114 6115 -- : BFD_RELOC_CRIS_32_PLT_GOTREL 6116 32-bit offset to symbol with PLT entry, relative to GOT. 6117 6118 -- : BFD_RELOC_CRIS_32_PLT_PCREL 6119 32-bit offset to symbol with PLT entry, relative to this 6120 relocation. 6121 6122 -- : BFD_RELOC_CRIS_32_GOT_GD 6123 -- : BFD_RELOC_CRIS_16_GOT_GD 6124 -- : BFD_RELOC_CRIS_32_GD 6125 -- : BFD_RELOC_CRIS_DTP 6126 -- : BFD_RELOC_CRIS_32_DTPREL 6127 -- : BFD_RELOC_CRIS_16_DTPREL 6128 -- : BFD_RELOC_CRIS_32_GOT_TPREL 6129 -- : BFD_RELOC_CRIS_16_GOT_TPREL 6130 -- : BFD_RELOC_CRIS_32_TPREL 6131 -- : BFD_RELOC_CRIS_16_TPREL 6132 -- : BFD_RELOC_CRIS_DTPMOD 6133 -- : BFD_RELOC_CRIS_32_IE 6134 Relocs used in TLS code for CRIS. 6135 6136 -- : BFD_RELOC_860_COPY 6137 -- : BFD_RELOC_860_GLOB_DAT 6138 -- : BFD_RELOC_860_JUMP_SLOT 6139 -- : BFD_RELOC_860_RELATIVE 6140 -- : BFD_RELOC_860_PC26 6141 -- : BFD_RELOC_860_PLT26 6142 -- : BFD_RELOC_860_PC16 6143 -- : BFD_RELOC_860_LOW0 6144 -- : BFD_RELOC_860_SPLIT0 6145 -- : BFD_RELOC_860_LOW1 6146 -- : BFD_RELOC_860_SPLIT1 6147 -- : BFD_RELOC_860_LOW2 6148 -- : BFD_RELOC_860_SPLIT2 6149 -- : BFD_RELOC_860_LOW3 6150 -- : BFD_RELOC_860_LOGOT0 6151 -- : BFD_RELOC_860_SPGOT0 6152 -- : BFD_RELOC_860_LOGOT1 6153 -- : BFD_RELOC_860_SPGOT1 6154 -- : BFD_RELOC_860_LOGOTOFF0 6155 -- : BFD_RELOC_860_SPGOTOFF0 6156 -- : BFD_RELOC_860_LOGOTOFF1 6157 -- : BFD_RELOC_860_SPGOTOFF1 6158 -- : BFD_RELOC_860_LOGOTOFF2 6159 -- : BFD_RELOC_860_LOGOTOFF3 6160 -- : BFD_RELOC_860_LOPC 6161 -- : BFD_RELOC_860_HIGHADJ 6162 -- : BFD_RELOC_860_HAGOT 6163 -- : BFD_RELOC_860_HAGOTOFF 6164 -- : BFD_RELOC_860_HAPC 6165 -- : BFD_RELOC_860_HIGH 6166 -- : BFD_RELOC_860_HIGOT 6167 -- : BFD_RELOC_860_HIGOTOFF 6168 Intel i860 Relocations. 6169 6170 -- : BFD_RELOC_OR1K_REL_26 6171 -- : BFD_RELOC_OR1K_GOTPC_HI16 6172 -- : BFD_RELOC_OR1K_GOTPC_LO16 6173 -- : BFD_RELOC_OR1K_GOT16 6174 -- : BFD_RELOC_OR1K_PLT26 6175 -- : BFD_RELOC_OR1K_GOTOFF_HI16 6176 -- : BFD_RELOC_OR1K_GOTOFF_LO16 6177 -- : BFD_RELOC_OR1K_COPY 6178 -- : BFD_RELOC_OR1K_GLOB_DAT 6179 -- : BFD_RELOC_OR1K_JMP_SLOT 6180 -- : BFD_RELOC_OR1K_RELATIVE 6181 -- : BFD_RELOC_OR1K_TLS_GD_HI16 6182 -- : BFD_RELOC_OR1K_TLS_GD_LO16 6183 -- : BFD_RELOC_OR1K_TLS_LDM_HI16 6184 -- : BFD_RELOC_OR1K_TLS_LDM_LO16 6185 -- : BFD_RELOC_OR1K_TLS_LDO_HI16 6186 -- : BFD_RELOC_OR1K_TLS_LDO_LO16 6187 -- : BFD_RELOC_OR1K_TLS_IE_HI16 6188 -- : BFD_RELOC_OR1K_TLS_IE_LO16 6189 -- : BFD_RELOC_OR1K_TLS_LE_HI16 6190 -- : BFD_RELOC_OR1K_TLS_LE_LO16 6191 -- : BFD_RELOC_OR1K_TLS_TPOFF 6192 -- : BFD_RELOC_OR1K_TLS_DTPOFF 6193 -- : BFD_RELOC_OR1K_TLS_DTPMOD 6194 OpenRISC 1000 Relocations. 6195 6196 -- : BFD_RELOC_H8_DIR16A8 6197 -- : BFD_RELOC_H8_DIR16R8 6198 -- : BFD_RELOC_H8_DIR24A8 6199 -- : BFD_RELOC_H8_DIR24R8 6200 -- : BFD_RELOC_H8_DIR32A16 6201 -- : BFD_RELOC_H8_DISP32A16 6202 H8 elf Relocations. 6203 6204 -- : BFD_RELOC_XSTORMY16_REL_12 6205 -- : BFD_RELOC_XSTORMY16_12 6206 -- : BFD_RELOC_XSTORMY16_24 6207 -- : BFD_RELOC_XSTORMY16_FPTR16 6208 Sony Xstormy16 Relocations. 6209 6210 -- : BFD_RELOC_RELC 6211 Self-describing complex relocations. 6212 6213 -- : BFD_RELOC_XC16X_PAG 6214 -- : BFD_RELOC_XC16X_POF 6215 -- : BFD_RELOC_XC16X_SEG 6216 -- : BFD_RELOC_XC16X_SOF 6217 Infineon Relocations. 6218 6219 -- : BFD_RELOC_VAX_GLOB_DAT 6220 -- : BFD_RELOC_VAX_JMP_SLOT 6221 -- : BFD_RELOC_VAX_RELATIVE 6222 Relocations used by VAX ELF. 6223 6224 -- : BFD_RELOC_MT_PC16 6225 Morpho MT - 16 bit immediate relocation. 6226 6227 -- : BFD_RELOC_MT_HI16 6228 Morpho MT - Hi 16 bits of an address. 6229 6230 -- : BFD_RELOC_MT_LO16 6231 Morpho MT - Low 16 bits of an address. 6232 6233 -- : BFD_RELOC_MT_GNU_VTINHERIT 6234 Morpho MT - Used to tell the linker which vtable entries are used. 6235 6236 -- : BFD_RELOC_MT_GNU_VTENTRY 6237 Morpho MT - Used to tell the linker which vtable entries are used. 6238 6239 -- : BFD_RELOC_MT_PCINSN8 6240 Morpho MT - 8 bit immediate relocation. 6241 6242 -- : BFD_RELOC_MSP430_10_PCREL 6243 -- : BFD_RELOC_MSP430_16_PCREL 6244 -- : BFD_RELOC_MSP430_16 6245 -- : BFD_RELOC_MSP430_16_PCREL_BYTE 6246 -- : BFD_RELOC_MSP430_16_BYTE 6247 -- : BFD_RELOC_MSP430_2X_PCREL 6248 -- : BFD_RELOC_MSP430_RL_PCREL 6249 -- : BFD_RELOC_MSP430_ABS8 6250 -- : BFD_RELOC_MSP430X_PCR20_EXT_SRC 6251 -- : BFD_RELOC_MSP430X_PCR20_EXT_DST 6252 -- : BFD_RELOC_MSP430X_PCR20_EXT_ODST 6253 -- : BFD_RELOC_MSP430X_ABS20_EXT_SRC 6254 -- : BFD_RELOC_MSP430X_ABS20_EXT_DST 6255 -- : BFD_RELOC_MSP430X_ABS20_EXT_ODST 6256 -- : BFD_RELOC_MSP430X_ABS20_ADR_SRC 6257 -- : BFD_RELOC_MSP430X_ABS20_ADR_DST 6258 -- : BFD_RELOC_MSP430X_PCR16 6259 -- : BFD_RELOC_MSP430X_PCR20_CALL 6260 -- : BFD_RELOC_MSP430X_ABS16 6261 -- : BFD_RELOC_MSP430_ABS_HI16 6262 -- : BFD_RELOC_MSP430_PREL31 6263 -- : BFD_RELOC_MSP430_SYM_DIFF 6264 msp430 specific relocation codes 6265 6266 -- : BFD_RELOC_NIOS2_S16 6267 -- : BFD_RELOC_NIOS2_U16 6268 -- : BFD_RELOC_NIOS2_CALL26 6269 -- : BFD_RELOC_NIOS2_IMM5 6270 -- : BFD_RELOC_NIOS2_CACHE_OPX 6271 -- : BFD_RELOC_NIOS2_IMM6 6272 -- : BFD_RELOC_NIOS2_IMM8 6273 -- : BFD_RELOC_NIOS2_HI16 6274 -- : BFD_RELOC_NIOS2_LO16 6275 -- : BFD_RELOC_NIOS2_HIADJ16 6276 -- : BFD_RELOC_NIOS2_GPREL 6277 -- : BFD_RELOC_NIOS2_UJMP 6278 -- : BFD_RELOC_NIOS2_CJMP 6279 -- : BFD_RELOC_NIOS2_CALLR 6280 -- : BFD_RELOC_NIOS2_ALIGN 6281 -- : BFD_RELOC_NIOS2_GOT16 6282 -- : BFD_RELOC_NIOS2_CALL16 6283 -- : BFD_RELOC_NIOS2_GOTOFF_LO 6284 -- : BFD_RELOC_NIOS2_GOTOFF_HA 6285 -- : BFD_RELOC_NIOS2_PCREL_LO 6286 -- : BFD_RELOC_NIOS2_PCREL_HA 6287 -- : BFD_RELOC_NIOS2_TLS_GD16 6288 -- : BFD_RELOC_NIOS2_TLS_LDM16 6289 -- : BFD_RELOC_NIOS2_TLS_LDO16 6290 -- : BFD_RELOC_NIOS2_TLS_IE16 6291 -- : BFD_RELOC_NIOS2_TLS_LE16 6292 -- : BFD_RELOC_NIOS2_TLS_DTPMOD 6293 -- : BFD_RELOC_NIOS2_TLS_DTPREL 6294 -- : BFD_RELOC_NIOS2_TLS_TPREL 6295 -- : BFD_RELOC_NIOS2_COPY 6296 -- : BFD_RELOC_NIOS2_GLOB_DAT 6297 -- : BFD_RELOC_NIOS2_JUMP_SLOT 6298 -- : BFD_RELOC_NIOS2_RELATIVE 6299 -- : BFD_RELOC_NIOS2_GOTOFF 6300 -- : BFD_RELOC_NIOS2_CALL26_NOAT 6301 -- : BFD_RELOC_NIOS2_GOT_LO 6302 -- : BFD_RELOC_NIOS2_GOT_HA 6303 -- : BFD_RELOC_NIOS2_CALL_LO 6304 -- : BFD_RELOC_NIOS2_CALL_HA 6305 -- : BFD_RELOC_NIOS2_R2_S12 6306 -- : BFD_RELOC_NIOS2_R2_I10_1_PCREL 6307 -- : BFD_RELOC_NIOS2_R2_T1I7_1_PCREL 6308 -- : BFD_RELOC_NIOS2_R2_T1I7_2 6309 -- : BFD_RELOC_NIOS2_R2_T2I4 6310 -- : BFD_RELOC_NIOS2_R2_T2I4_1 6311 -- : BFD_RELOC_NIOS2_R2_T2I4_2 6312 -- : BFD_RELOC_NIOS2_R2_X1I7_2 6313 -- : BFD_RELOC_NIOS2_R2_X2L5 6314 -- : BFD_RELOC_NIOS2_R2_F1I5_2 6315 -- : BFD_RELOC_NIOS2_R2_L5I4X1 6316 -- : BFD_RELOC_NIOS2_R2_T1X1I6 6317 -- : BFD_RELOC_NIOS2_R2_T1X1I6_2 6318 Relocations used by the Altera Nios II core. 6319 6320 -- : BFD_RELOC_IQ2000_OFFSET_16 6321 -- : BFD_RELOC_IQ2000_OFFSET_21 6322 -- : BFD_RELOC_IQ2000_UHI16 6323 IQ2000 Relocations. 6324 6325 -- : BFD_RELOC_XTENSA_RTLD 6326 Special Xtensa relocation used only by PLT entries in ELF shared 6327 objects to indicate that the runtime linker should set the value 6328 to one of its own internal functions or data structures. 6329 6330 -- : BFD_RELOC_XTENSA_GLOB_DAT 6331 -- : BFD_RELOC_XTENSA_JMP_SLOT 6332 -- : BFD_RELOC_XTENSA_RELATIVE 6333 Xtensa relocations for ELF shared objects. 6334 6335 -- : BFD_RELOC_XTENSA_PLT 6336 Xtensa relocation used in ELF object files for symbols that may 6337 require PLT entries. Otherwise, this is just a generic 32-bit 6338 relocation. 6339 6340 -- : BFD_RELOC_XTENSA_DIFF8 6341 -- : BFD_RELOC_XTENSA_DIFF16 6342 -- : BFD_RELOC_XTENSA_DIFF32 6343 Xtensa relocations to mark the difference of two local symbols. 6344 These are only needed to support linker relaxation and can be 6345 ignored when not relaxing. The field is set to the value of the 6346 difference assuming no relaxation. The relocation encodes the 6347 position of the first symbol so the linker can determine whether 6348 to adjust the field value. 6349 6350 -- : BFD_RELOC_XTENSA_SLOT0_OP 6351 -- : BFD_RELOC_XTENSA_SLOT1_OP 6352 -- : BFD_RELOC_XTENSA_SLOT2_OP 6353 -- : BFD_RELOC_XTENSA_SLOT3_OP 6354 -- : BFD_RELOC_XTENSA_SLOT4_OP 6355 -- : BFD_RELOC_XTENSA_SLOT5_OP 6356 -- : BFD_RELOC_XTENSA_SLOT6_OP 6357 -- : BFD_RELOC_XTENSA_SLOT7_OP 6358 -- : BFD_RELOC_XTENSA_SLOT8_OP 6359 -- : BFD_RELOC_XTENSA_SLOT9_OP 6360 -- : BFD_RELOC_XTENSA_SLOT10_OP 6361 -- : BFD_RELOC_XTENSA_SLOT11_OP 6362 -- : BFD_RELOC_XTENSA_SLOT12_OP 6363 -- : BFD_RELOC_XTENSA_SLOT13_OP 6364 -- : BFD_RELOC_XTENSA_SLOT14_OP 6365 Generic Xtensa relocations for instruction operands. Only the slot 6366 number is encoded in the relocation. The relocation applies to the 6367 last PC-relative immediate operand, or if there are no PC-relative 6368 immediates, to the last immediate operand. 6369 6370 -- : BFD_RELOC_XTENSA_SLOT0_ALT 6371 -- : BFD_RELOC_XTENSA_SLOT1_ALT 6372 -- : BFD_RELOC_XTENSA_SLOT2_ALT 6373 -- : BFD_RELOC_XTENSA_SLOT3_ALT 6374 -- : BFD_RELOC_XTENSA_SLOT4_ALT 6375 -- : BFD_RELOC_XTENSA_SLOT5_ALT 6376 -- : BFD_RELOC_XTENSA_SLOT6_ALT 6377 -- : BFD_RELOC_XTENSA_SLOT7_ALT 6378 -- : BFD_RELOC_XTENSA_SLOT8_ALT 6379 -- : BFD_RELOC_XTENSA_SLOT9_ALT 6380 -- : BFD_RELOC_XTENSA_SLOT10_ALT 6381 -- : BFD_RELOC_XTENSA_SLOT11_ALT 6382 -- : BFD_RELOC_XTENSA_SLOT12_ALT 6383 -- : BFD_RELOC_XTENSA_SLOT13_ALT 6384 -- : BFD_RELOC_XTENSA_SLOT14_ALT 6385 Alternate Xtensa relocations. Only the slot is encoded in the 6386 relocation. The meaning of these relocations is opcode-specific. 6387 6388 -- : BFD_RELOC_XTENSA_OP0 6389 -- : BFD_RELOC_XTENSA_OP1 6390 -- : BFD_RELOC_XTENSA_OP2 6391 Xtensa relocations for backward compatibility. These have all been 6392 replaced by BFD_RELOC_XTENSA_SLOT0_OP. 6393 6394 -- : BFD_RELOC_XTENSA_ASM_EXPAND 6395 Xtensa relocation to mark that the assembler expanded the 6396 instructions from an original target. The expansion size is 6397 encoded in the reloc size. 6398 6399 -- : BFD_RELOC_XTENSA_ASM_SIMPLIFY 6400 Xtensa relocation to mark that the linker should simplify 6401 assembler-expanded instructions. This is commonly used internally 6402 by the linker after analysis of a BFD_RELOC_XTENSA_ASM_EXPAND. 6403 6404 -- : BFD_RELOC_XTENSA_TLSDESC_FN 6405 -- : BFD_RELOC_XTENSA_TLSDESC_ARG 6406 -- : BFD_RELOC_XTENSA_TLS_DTPOFF 6407 -- : BFD_RELOC_XTENSA_TLS_TPOFF 6408 -- : BFD_RELOC_XTENSA_TLS_FUNC 6409 -- : BFD_RELOC_XTENSA_TLS_ARG 6410 -- : BFD_RELOC_XTENSA_TLS_CALL 6411 Xtensa TLS relocations. 6412 6413 -- : BFD_RELOC_Z80_DISP8 6414 8 bit signed offset in (ix+d) or (iy+d). 6415 6416 -- : BFD_RELOC_Z8K_DISP7 6417 DJNZ offset. 6418 6419 -- : BFD_RELOC_Z8K_CALLR 6420 CALR offset. 6421 6422 -- : BFD_RELOC_Z8K_IMM4L 6423 4 bit value. 6424 6425 -- : BFD_RELOC_LM32_CALL 6426 -- : BFD_RELOC_LM32_BRANCH 6427 -- : BFD_RELOC_LM32_16_GOT 6428 -- : BFD_RELOC_LM32_GOTOFF_HI16 6429 -- : BFD_RELOC_LM32_GOTOFF_LO16 6430 -- : BFD_RELOC_LM32_COPY 6431 -- : BFD_RELOC_LM32_GLOB_DAT 6432 -- : BFD_RELOC_LM32_JMP_SLOT 6433 -- : BFD_RELOC_LM32_RELATIVE 6434 Lattice Mico32 relocations. 6435 6436 -- : BFD_RELOC_MACH_O_SECTDIFF 6437 Difference between two section addreses. Must be followed by a 6438 BFD_RELOC_MACH_O_PAIR. 6439 6440 -- : BFD_RELOC_MACH_O_LOCAL_SECTDIFF 6441 Like BFD_RELOC_MACH_O_SECTDIFF but with a local symbol. 6442 6443 -- : BFD_RELOC_MACH_O_PAIR 6444 Pair of relocation. Contains the first symbol. 6445 6446 -- : BFD_RELOC_MACH_O_X86_64_BRANCH32 6447 -- : BFD_RELOC_MACH_O_X86_64_BRANCH8 6448 PCREL relocations. They are marked as branch to create PLT entry 6449 if required. 6450 6451 -- : BFD_RELOC_MACH_O_X86_64_GOT 6452 Used when referencing a GOT entry. 6453 6454 -- : BFD_RELOC_MACH_O_X86_64_GOT_LOAD 6455 Used when loading a GOT entry with movq. It is specially marked 6456 so that the linker could optimize the movq to a leaq if possible. 6457 6458 -- : BFD_RELOC_MACH_O_X86_64_SUBTRACTOR32 6459 Symbol will be substracted. Must be followed by a BFD_RELOC_64. 6460 6461 -- : BFD_RELOC_MACH_O_X86_64_SUBTRACTOR64 6462 Symbol will be substracted. Must be followed by a BFD_RELOC_64. 6463 6464 -- : BFD_RELOC_MACH_O_X86_64_PCREL32_1 6465 Same as BFD_RELOC_32_PCREL but with an implicit -1 addend. 6466 6467 -- : BFD_RELOC_MACH_O_X86_64_PCREL32_2 6468 Same as BFD_RELOC_32_PCREL but with an implicit -2 addend. 6469 6470 -- : BFD_RELOC_MACH_O_X86_64_PCREL32_4 6471 Same as BFD_RELOC_32_PCREL but with an implicit -4 addend. 6472 6473 -- : BFD_RELOC_MICROBLAZE_32_LO 6474 This is a 32 bit reloc for the microblaze that stores the low 16 6475 bits of a value 6476 6477 -- : BFD_RELOC_MICROBLAZE_32_LO_PCREL 6478 This is a 32 bit pc-relative reloc for the microblaze that stores 6479 the low 16 bits of a value 6480 6481 -- : BFD_RELOC_MICROBLAZE_32_ROSDA 6482 This is a 32 bit reloc for the microblaze that stores a value 6483 relative to the read-only small data area anchor 6484 6485 -- : BFD_RELOC_MICROBLAZE_32_RWSDA 6486 This is a 32 bit reloc for the microblaze that stores a value 6487 relative to the read-write small data area anchor 6488 6489 -- : BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM 6490 This is a 32 bit reloc for the microblaze to handle expressions of 6491 the form "Symbol Op Symbol" 6492 6493 -- : BFD_RELOC_MICROBLAZE_64_NONE 6494 This is a 64 bit reloc that stores the 32 bit pc relative value in 6495 two words (with an imm instruction). No relocation is done here - 6496 only used for relaxing 6497 6498 -- : BFD_RELOC_MICROBLAZE_64_GOTPC 6499 This is a 64 bit reloc that stores the 32 bit pc relative value in 6500 two words (with an imm instruction). The relocation is 6501 PC-relative GOT offset 6502 6503 -- : BFD_RELOC_MICROBLAZE_64_GOT 6504 This is a 64 bit reloc that stores the 32 bit pc relative value in 6505 two words (with an imm instruction). The relocation is GOT offset 6506 6507 -- : BFD_RELOC_MICROBLAZE_64_PLT 6508 This is a 64 bit reloc that stores the 32 bit pc relative value in 6509 two words (with an imm instruction). The relocation is 6510 PC-relative offset into PLT 6511 6512 -- : BFD_RELOC_MICROBLAZE_64_GOTOFF 6513 This is a 64 bit reloc that stores the 32 bit GOT relative value 6514 in two words (with an imm instruction). The relocation is 6515 relative offset from _GLOBAL_OFFSET_TABLE_ 6516 6517 -- : BFD_RELOC_MICROBLAZE_32_GOTOFF 6518 This is a 32 bit reloc that stores the 32 bit GOT relative value 6519 in a word. The relocation is relative offset from 6520 6521 -- : BFD_RELOC_MICROBLAZE_COPY 6522 This is used to tell the dynamic linker to copy the value out of 6523 the dynamic object into the runtime process image. 6524 6525 -- : BFD_RELOC_MICROBLAZE_64_TLS 6526 Unused Reloc 6527 6528 -- : BFD_RELOC_MICROBLAZE_64_TLSGD 6529 This is a 64 bit reloc that stores the 32 bit GOT relative value 6530 of the GOT TLS GD info entry in two words (with an imm 6531 instruction). The relocation is GOT offset. 6532 6533 -- : BFD_RELOC_MICROBLAZE_64_TLSLD 6534 This is a 64 bit reloc that stores the 32 bit GOT relative value 6535 of the GOT TLS LD info entry in two words (with an imm 6536 instruction). The relocation is GOT offset. 6537 6538 -- : BFD_RELOC_MICROBLAZE_32_TLSDTPMOD 6539 This is a 32 bit reloc that stores the Module ID to GOT(n). 6540 6541 -- : BFD_RELOC_MICROBLAZE_32_TLSDTPREL 6542 This is a 32 bit reloc that stores TLS offset to GOT(n+1). 6543 6544 -- : BFD_RELOC_MICROBLAZE_64_TLSDTPREL 6545 This is a 32 bit reloc for storing TLS offset to two words (uses 6546 imm instruction) 6547 6548 -- : BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL 6549 This is a 64 bit reloc that stores 32-bit thread pointer relative 6550 offset to two words (uses imm instruction). 6551 6552 -- : BFD_RELOC_MICROBLAZE_64_TLSTPREL 6553 This is a 64 bit reloc that stores 32-bit thread pointer relative 6554 offset to two words (uses imm instruction). 6555 6556 -- : BFD_RELOC_AARCH64_RELOC_START 6557 AArch64 pseudo relocation code to mark the start of the AArch64 6558 relocation enumerators. N.B. the order of the enumerators is 6559 important as several tables in the AArch64 bfd backend are indexed 6560 by these enumerators; make sure they are all synced. 6561 6562 -- : BFD_RELOC_AARCH64_NONE 6563 AArch64 null relocation code. 6564 6565 -- : BFD_RELOC_AARCH64_64 6566 -- : BFD_RELOC_AARCH64_32 6567 -- : BFD_RELOC_AARCH64_16 6568 Basic absolute relocations of N bits. These are equivalent to 6569 BFD_RELOC_N and they were added to assist the indexing of the howto 6570 table. 6571 6572 -- : BFD_RELOC_AARCH64_64_PCREL 6573 -- : BFD_RELOC_AARCH64_32_PCREL 6574 -- : BFD_RELOC_AARCH64_16_PCREL 6575 PC-relative relocations. These are equivalent to BFD_RELOC_N_PCREL 6576 and they were added to assist the indexing of the howto table. 6577 6578 -- : BFD_RELOC_AARCH64_MOVW_G0 6579 AArch64 MOV[NZK] instruction with most significant bits 0 to 15 of 6580 an unsigned address/value. 6581 6582 -- : BFD_RELOC_AARCH64_MOVW_G0_NC 6583 AArch64 MOV[NZK] instruction with less significant bits 0 to 15 of 6584 an address/value. No overflow checking. 6585 6586 -- : BFD_RELOC_AARCH64_MOVW_G1 6587 AArch64 MOV[NZK] instruction with most significant bits 16 to 31 6588 of an unsigned address/value. 6589 6590 -- : BFD_RELOC_AARCH64_MOVW_G1_NC 6591 AArch64 MOV[NZK] instruction with less significant bits 16 to 31 6592 of an address/value. No overflow checking. 6593 6594 -- : BFD_RELOC_AARCH64_MOVW_G2 6595 AArch64 MOV[NZK] instruction with most significant bits 32 to 47 6596 of an unsigned address/value. 6597 6598 -- : BFD_RELOC_AARCH64_MOVW_G2_NC 6599 AArch64 MOV[NZK] instruction with less significant bits 32 to 47 6600 of an address/value. No overflow checking. 6601 6602 -- : BFD_RELOC_AARCH64_MOVW_G3 6603 AArch64 MOV[NZK] instruction with most signficant bits 48 to 64 of 6604 a signed or unsigned address/value. 6605 6606 -- : BFD_RELOC_AARCH64_MOVW_G0_S 6607 AArch64 MOV[NZ] instruction with most significant bits 0 to 15 of 6608 a signed value. Changes instruction to MOVZ or MOVN depending on 6609 the value's sign. 6610 6611 -- : BFD_RELOC_AARCH64_MOVW_G1_S 6612 AArch64 MOV[NZ] instruction with most significant bits 16 to 31 of 6613 a signed value. Changes instruction to MOVZ or MOVN depending on 6614 the value's sign. 6615 6616 -- : BFD_RELOC_AARCH64_MOVW_G2_S 6617 AArch64 MOV[NZ] instruction with most significant bits 32 to 47 of 6618 a signed value. Changes instruction to MOVZ or MOVN depending on 6619 the value's sign. 6620 6621 -- : BFD_RELOC_AARCH64_LD_LO19_PCREL 6622 AArch64 Load Literal instruction, holding a 19 bit pc-relative word 6623 offset. The lowest two bits must be zero and are not stored in the 6624 instruction, giving a 21 bit signed byte offset. 6625 6626 -- : BFD_RELOC_AARCH64_ADR_LO21_PCREL 6627 AArch64 ADR instruction, holding a simple 21 bit pc-relative byte 6628 offset. 6629 6630 -- : BFD_RELOC_AARCH64_ADR_HI21_PCREL 6631 AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page 6632 offset, giving a 4KB aligned page base address. 6633 6634 -- : BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL 6635 AArch64 ADRP instruction, with bits 12 to 32 of a pc-relative page 6636 offset, giving a 4KB aligned page base address, but with no 6637 overflow checking. 6638 6639 -- : BFD_RELOC_AARCH64_ADD_LO12 6640 AArch64 ADD immediate instruction, holding bits 0 to 11 of the 6641 address. Used in conjunction with 6642 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 6643 6644 -- : BFD_RELOC_AARCH64_LDST8_LO12 6645 AArch64 8-bit load/store instruction, holding bits 0 to 11 of the 6646 address. Used in conjunction with 6647 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 6648 6649 -- : BFD_RELOC_AARCH64_TSTBR14 6650 AArch64 14 bit pc-relative test bit and branch. The lowest two 6651 bits must be zero and are not stored in the instruction, giving a 6652 16 bit signed byte offset. 6653 6654 -- : BFD_RELOC_AARCH64_BRANCH19 6655 AArch64 19 bit pc-relative conditional branch and compare & branch. 6656 The lowest two bits must be zero and are not stored in the 6657 instruction, giving a 21 bit signed byte offset. 6658 6659 -- : BFD_RELOC_AARCH64_JUMP26 6660 AArch64 26 bit pc-relative unconditional branch. The lowest two 6661 bits must be zero and are not stored in the instruction, giving a 6662 28 bit signed byte offset. 6663 6664 -- : BFD_RELOC_AARCH64_CALL26 6665 AArch64 26 bit pc-relative unconditional branch and link. The 6666 lowest two bits must be zero and are not stored in the instruction, 6667 giving a 28 bit signed byte offset. 6668 6669 -- : BFD_RELOC_AARCH64_LDST16_LO12 6670 AArch64 16-bit load/store instruction, holding bits 0 to 11 of the 6671 address. Used in conjunction with 6672 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 6673 6674 -- : BFD_RELOC_AARCH64_LDST32_LO12 6675 AArch64 32-bit load/store instruction, holding bits 0 to 11 of the 6676 address. Used in conjunction with 6677 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 6678 6679 -- : BFD_RELOC_AARCH64_LDST64_LO12 6680 AArch64 64-bit load/store instruction, holding bits 0 to 11 of the 6681 address. Used in conjunction with 6682 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 6683 6684 -- : BFD_RELOC_AARCH64_LDST128_LO12 6685 AArch64 128-bit load/store instruction, holding bits 0 to 11 of the 6686 address. Used in conjunction with 6687 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 6688 6689 -- : BFD_RELOC_AARCH64_GOT_LD_PREL19 6690 AArch64 Load Literal instruction, holding a 19 bit PC relative word 6691 offset of the global offset table entry for a symbol. The lowest 6692 two bits must be zero and are not stored in the instruction, 6693 giving a 21 bit signed byte offset. This relocation type requires 6694 signed overflow checking. 6695 6696 -- : BFD_RELOC_AARCH64_ADR_GOT_PAGE 6697 Get to the page base of the global offset table entry for a symbol 6698 as part of an ADRP instruction using a 21 bit PC relative 6699 value.Used in conjunction with BFD_RELOC_AARCH64_LD64_GOT_LO12_NC. 6700 6701 -- : BFD_RELOC_AARCH64_LD64_GOT_LO12_NC 6702 Unsigned 12 bit byte offset for 64 bit load/store from the page of 6703 the GOT entry for this symbol. Used in conjunction with 6704 BFD_RELOC_AARCH64_ADR_GOTPAGE. Valid in LP64 ABI only. 6705 6706 -- : BFD_RELOC_AARCH64_LD32_GOT_LO12_NC 6707 Unsigned 12 bit byte offset for 32 bit load/store from the page of 6708 the GOT entry for this symbol. Used in conjunction with 6709 BFD_RELOC_AARCH64_ADR_GOTPAGE. Valid in ILP32 ABI only. 6710 6711 -- : BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC 6712 Unsigned 16 bit byte offset for 64 bit load/store from the GOT 6713 entry for this symbol. Valid in LP64 ABI only. 6714 6715 -- : BFD_RELOC_AARCH64_MOVW_GOTOFF_G1 6716 Unsigned 16 bit byte higher offset for 64 bit load/store from the 6717 GOT entry for this symbol. Valid in LP64 ABI only. 6718 6719 -- : BFD_RELOC_AARCH64_LD64_GOTOFF_LO15 6720 Unsigned 15 bit byte offset for 64 bit load/store from the page of 6721 the GOT entry for this symbol. Valid in LP64 ABI only. 6722 6723 -- : BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14 6724 Scaled 14 bit byte offset to the page base of the global offset 6725 table. 6726 6727 -- : BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15 6728 Scaled 15 bit byte offset to the page base of the global offset 6729 table. 6730 6731 -- : BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21 6732 Get to the page base of the global offset table entry for a symbols 6733 tls_index structure as part of an adrp instruction using a 21 bit 6734 PC relative value. Used in conjunction with 6735 BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC. 6736 6737 -- : BFD_RELOC_AARCH64_TLSGD_ADR_PREL21 6738 AArch64 TLS General Dynamic 6739 6740 -- : BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC 6741 Unsigned 12 bit byte offset to global offset table entry for a 6742 symbols tls_index structure. Used in conjunction with 6743 BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21. 6744 6745 -- : BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC 6746 AArch64 TLS General Dynamic relocation. 6747 6748 -- : BFD_RELOC_AARCH64_TLSGD_MOVW_G1 6749 AArch64 TLS General Dynamic relocation. 6750 6751 -- : BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 6752 AArch64 TLS INITIAL EXEC relocation. 6753 6754 -- : BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC 6755 AArch64 TLS INITIAL EXEC relocation. 6756 6757 -- : BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC 6758 AArch64 TLS INITIAL EXEC relocation. 6759 6760 -- : BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19 6761 AArch64 TLS INITIAL EXEC relocation. 6762 6763 -- : BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC 6764 AArch64 TLS INITIAL EXEC relocation. 6765 6766 -- : BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1 6767 AArch64 TLS INITIAL EXEC relocation. 6768 6769 -- : BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12 6770 bit[23:12] of byte offset to module TLS base address. 6771 6772 -- : BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12 6773 Unsigned 12 bit byte offset to module TLS base address. 6774 6775 -- : BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC 6776 No overflow check version of 6777 BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12. 6778 6779 -- : BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC 6780 Unsigned 12 bit byte offset to global offset table entry for a 6781 symbols tls_index structure. Used in conjunction with 6782 BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21. 6783 6784 -- : BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21 6785 GOT entry page address for AArch64 TLS Local Dynamic, used with 6786 ADRP instruction. 6787 6788 -- : BFD_RELOC_AARCH64_TLSLD_ADR_PREL21 6789 GOT entry address for AArch64 TLS Local Dynamic, used with ADR 6790 instruction. 6791 6792 -- : BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12 6793 bit[11:1] of byte offset to module TLS base address, encoded in 6794 ldst instructions. 6795 6796 -- : BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC 6797 Similar as BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12, but no 6798 overflow check. 6799 6800 -- : BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12 6801 bit[11:2] of byte offset to module TLS base address, encoded in 6802 ldst instructions. 6803 6804 -- : BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC 6805 Similar as BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12, but no 6806 overflow check. 6807 6808 -- : BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12 6809 bit[11:3] of byte offset to module TLS base address, encoded in 6810 ldst instructions. 6811 6812 -- : BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC 6813 Similar as BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12, but no 6814 overflow check. 6815 6816 -- : BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12 6817 bit[11:0] of byte offset to module TLS base address, encoded in 6818 ldst instructions. 6819 6820 -- : BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC 6821 Similar as BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12, but no 6822 overflow check. 6823 6824 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0 6825 bit[15:0] of byte offset to module TLS base address. 6826 6827 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC 6828 No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0 6829 6830 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1 6831 bit[31:16] of byte offset to module TLS base address. 6832 6833 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC 6834 No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1 6835 6836 -- : BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2 6837 bit[47:32] of byte offset to module TLS base address. 6838 6839 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2 6840 AArch64 TLS LOCAL EXEC relocation. 6841 6842 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1 6843 AArch64 TLS LOCAL EXEC relocation. 6844 6845 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC 6846 AArch64 TLS LOCAL EXEC relocation. 6847 6848 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0 6849 AArch64 TLS LOCAL EXEC relocation. 6850 6851 -- : BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC 6852 AArch64 TLS LOCAL EXEC relocation. 6853 6854 -- : BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12 6855 AArch64 TLS LOCAL EXEC relocation. 6856 6857 -- : BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12 6858 AArch64 TLS LOCAL EXEC relocation. 6859 6860 -- : BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC 6861 AArch64 TLS LOCAL EXEC relocation. 6862 6863 -- : BFD_RELOC_AARCH64_TLSDESC_LD_PREL19 6864 AArch64 TLS DESC relocation. 6865 6866 -- : BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21 6867 AArch64 TLS DESC relocation. 6868 6869 -- : BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21 6870 AArch64 TLS DESC relocation. 6871 6872 -- : BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC 6873 AArch64 TLS DESC relocation. 6874 6875 -- : BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC 6876 AArch64 TLS DESC relocation. 6877 6878 -- : BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC 6879 AArch64 TLS DESC relocation. 6880 6881 -- : BFD_RELOC_AARCH64_TLSDESC_OFF_G1 6882 AArch64 TLS DESC relocation. 6883 6884 -- : BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC 6885 AArch64 TLS DESC relocation. 6886 6887 -- : BFD_RELOC_AARCH64_TLSDESC_LDR 6888 AArch64 TLS DESC relocation. 6889 6890 -- : BFD_RELOC_AARCH64_TLSDESC_ADD 6891 AArch64 TLS DESC relocation. 6892 6893 -- : BFD_RELOC_AARCH64_TLSDESC_CALL 6894 AArch64 TLS DESC relocation. 6895 6896 -- : BFD_RELOC_AARCH64_COPY 6897 AArch64 TLS relocation. 6898 6899 -- : BFD_RELOC_AARCH64_GLOB_DAT 6900 AArch64 TLS relocation. 6901 6902 -- : BFD_RELOC_AARCH64_JUMP_SLOT 6903 AArch64 TLS relocation. 6904 6905 -- : BFD_RELOC_AARCH64_RELATIVE 6906 AArch64 TLS relocation. 6907 6908 -- : BFD_RELOC_AARCH64_TLS_DTPMOD 6909 AArch64 TLS relocation. 6910 6911 -- : BFD_RELOC_AARCH64_TLS_DTPREL 6912 AArch64 TLS relocation. 6913 6914 -- : BFD_RELOC_AARCH64_TLS_TPREL 6915 AArch64 TLS relocation. 6916 6917 -- : BFD_RELOC_AARCH64_TLSDESC 6918 AArch64 TLS relocation. 6919 6920 -- : BFD_RELOC_AARCH64_IRELATIVE 6921 AArch64 support for STT_GNU_IFUNC. 6922 6923 -- : BFD_RELOC_AARCH64_RELOC_END 6924 AArch64 pseudo relocation code to mark the end of the AArch64 6925 relocation enumerators that have direct mapping to ELF reloc codes. 6926 There are a few more enumerators after this one; those are mainly 6927 used by the AArch64 assembler for the internal fixup or to select 6928 one of the above enumerators. 6929 6930 -- : BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP 6931 AArch64 pseudo relocation code to be used internally by the AArch64 6932 assembler and not (currently) written to any object files. 6933 6934 -- : BFD_RELOC_AARCH64_LDST_LO12 6935 AArch64 unspecified load/store instruction, holding bits 0 to 11 6936 of the address. Used in conjunction with 6937 BFD_RELOC_AARCH64_ADR_HI21_PCREL. 6938 6939 -- : BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12 6940 AArch64 pseudo relocation code for TLS local dynamic mode. It's 6941 to be used internally by the AArch64 assembler and not (currently) 6942 written to any object files. 6943 6944 -- : BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC 6945 Similar as BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12, but no 6946 overflow check. 6947 6948 -- : BFD_RELOC_AARCH64_LD_GOT_LO12_NC 6949 AArch64 pseudo relocation code to be used internally by the AArch64 6950 assembler and not (currently) written to any object files. 6951 6952 -- : BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC 6953 AArch64 pseudo relocation code to be used internally by the AArch64 6954 assembler and not (currently) written to any object files. 6955 6956 -- : BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC 6957 AArch64 pseudo relocation code to be used internally by the AArch64 6958 assembler and not (currently) written to any object files. 6959 6960 -- : BFD_RELOC_TILEPRO_COPY 6961 -- : BFD_RELOC_TILEPRO_GLOB_DAT 6962 -- : BFD_RELOC_TILEPRO_JMP_SLOT 6963 -- : BFD_RELOC_TILEPRO_RELATIVE 6964 -- : BFD_RELOC_TILEPRO_BROFF_X1 6965 -- : BFD_RELOC_TILEPRO_JOFFLONG_X1 6966 -- : BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT 6967 -- : BFD_RELOC_TILEPRO_IMM8_X0 6968 -- : BFD_RELOC_TILEPRO_IMM8_Y0 6969 -- : BFD_RELOC_TILEPRO_IMM8_X1 6970 -- : BFD_RELOC_TILEPRO_IMM8_Y1 6971 -- : BFD_RELOC_TILEPRO_DEST_IMM8_X1 6972 -- : BFD_RELOC_TILEPRO_MT_IMM15_X1 6973 -- : BFD_RELOC_TILEPRO_MF_IMM15_X1 6974 -- : BFD_RELOC_TILEPRO_IMM16_X0 6975 -- : BFD_RELOC_TILEPRO_IMM16_X1 6976 -- : BFD_RELOC_TILEPRO_IMM16_X0_LO 6977 -- : BFD_RELOC_TILEPRO_IMM16_X1_LO 6978 -- : BFD_RELOC_TILEPRO_IMM16_X0_HI 6979 -- : BFD_RELOC_TILEPRO_IMM16_X1_HI 6980 -- : BFD_RELOC_TILEPRO_IMM16_X0_HA 6981 -- : BFD_RELOC_TILEPRO_IMM16_X1_HA 6982 -- : BFD_RELOC_TILEPRO_IMM16_X0_PCREL 6983 -- : BFD_RELOC_TILEPRO_IMM16_X1_PCREL 6984 -- : BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL 6985 -- : BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL 6986 -- : BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL 6987 -- : BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL 6988 -- : BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL 6989 -- : BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL 6990 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT 6991 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT 6992 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO 6993 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO 6994 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI 6995 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI 6996 -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA 6997 -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA 6998 -- : BFD_RELOC_TILEPRO_MMSTART_X0 6999 -- : BFD_RELOC_TILEPRO_MMEND_X0 7000 -- : BFD_RELOC_TILEPRO_MMSTART_X1 7001 -- : BFD_RELOC_TILEPRO_MMEND_X1 7002 -- : BFD_RELOC_TILEPRO_SHAMT_X0 7003 -- : BFD_RELOC_TILEPRO_SHAMT_X1 7004 -- : BFD_RELOC_TILEPRO_SHAMT_Y0 7005 -- : BFD_RELOC_TILEPRO_SHAMT_Y1 7006 -- : BFD_RELOC_TILEPRO_TLS_GD_CALL 7007 -- : BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD 7008 -- : BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD 7009 -- : BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD 7010 -- : BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD 7011 -- : BFD_RELOC_TILEPRO_TLS_IE_LOAD 7012 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD 7013 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD 7014 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO 7015 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO 7016 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI 7017 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI 7018 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA 7019 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA 7020 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE 7021 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE 7022 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO 7023 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO 7024 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI 7025 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI 7026 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA 7027 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA 7028 -- : BFD_RELOC_TILEPRO_TLS_DTPMOD32 7029 -- : BFD_RELOC_TILEPRO_TLS_DTPOFF32 7030 -- : BFD_RELOC_TILEPRO_TLS_TPOFF32 7031 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE 7032 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE 7033 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO 7034 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO 7035 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI 7036 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI 7037 -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA 7038 -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA 7039 Tilera TILEPro Relocations. 7040 7041 -- : BFD_RELOC_TILEGX_HW0 7042 -- : BFD_RELOC_TILEGX_HW1 7043 -- : BFD_RELOC_TILEGX_HW2 7044 -- : BFD_RELOC_TILEGX_HW3 7045 -- : BFD_RELOC_TILEGX_HW0_LAST 7046 -- : BFD_RELOC_TILEGX_HW1_LAST 7047 -- : BFD_RELOC_TILEGX_HW2_LAST 7048 -- : BFD_RELOC_TILEGX_COPY 7049 -- : BFD_RELOC_TILEGX_GLOB_DAT 7050 -- : BFD_RELOC_TILEGX_JMP_SLOT 7051 -- : BFD_RELOC_TILEGX_RELATIVE 7052 -- : BFD_RELOC_TILEGX_BROFF_X1 7053 -- : BFD_RELOC_TILEGX_JUMPOFF_X1 7054 -- : BFD_RELOC_TILEGX_JUMPOFF_X1_PLT 7055 -- : BFD_RELOC_TILEGX_IMM8_X0 7056 -- : BFD_RELOC_TILEGX_IMM8_Y0 7057 -- : BFD_RELOC_TILEGX_IMM8_X1 7058 -- : BFD_RELOC_TILEGX_IMM8_Y1 7059 -- : BFD_RELOC_TILEGX_DEST_IMM8_X1 7060 -- : BFD_RELOC_TILEGX_MT_IMM14_X1 7061 -- : BFD_RELOC_TILEGX_MF_IMM14_X1 7062 -- : BFD_RELOC_TILEGX_MMSTART_X0 7063 -- : BFD_RELOC_TILEGX_MMEND_X0 7064 -- : BFD_RELOC_TILEGX_SHAMT_X0 7065 -- : BFD_RELOC_TILEGX_SHAMT_X1 7066 -- : BFD_RELOC_TILEGX_SHAMT_Y0 7067 -- : BFD_RELOC_TILEGX_SHAMT_Y1 7068 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0 7069 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0 7070 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1 7071 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1 7072 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2 7073 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2 7074 -- : BFD_RELOC_TILEGX_IMM16_X0_HW3 7075 -- : BFD_RELOC_TILEGX_IMM16_X1_HW3 7076 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST 7077 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST 7078 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST 7079 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST 7080 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST 7081 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST 7082 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL 7083 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL 7084 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL 7085 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL 7086 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL 7087 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL 7088 -- : BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL 7089 -- : BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL 7090 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL 7091 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL 7092 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL 7093 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL 7094 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL 7095 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL 7096 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT 7097 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT 7098 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL 7099 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL 7100 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL 7101 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL 7102 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL 7103 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL 7104 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT 7105 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT 7106 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT 7107 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT 7108 -- : BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL 7109 -- : BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL 7110 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD 7111 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD 7112 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE 7113 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE 7114 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE 7115 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE 7116 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE 7117 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE 7118 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD 7119 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD 7120 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD 7121 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD 7122 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE 7123 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE 7124 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL 7125 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL 7126 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL 7127 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL 7128 -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL 7129 -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL 7130 -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE 7131 -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE 7132 -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE 7133 -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE 7134 -- : BFD_RELOC_TILEGX_TLS_DTPMOD64 7135 -- : BFD_RELOC_TILEGX_TLS_DTPOFF64 7136 -- : BFD_RELOC_TILEGX_TLS_TPOFF64 7137 -- : BFD_RELOC_TILEGX_TLS_DTPMOD32 7138 -- : BFD_RELOC_TILEGX_TLS_DTPOFF32 7139 -- : BFD_RELOC_TILEGX_TLS_TPOFF32 7140 -- : BFD_RELOC_TILEGX_TLS_GD_CALL 7141 -- : BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD 7142 -- : BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD 7143 -- : BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD 7144 -- : BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD 7145 -- : BFD_RELOC_TILEGX_TLS_IE_LOAD 7146 -- : BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD 7147 -- : BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD 7148 -- : BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD 7149 -- : BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD 7150 Tilera TILE-Gx Relocations. 7151 7152 -- : BFD_RELOC_EPIPHANY_SIMM8 7153 Adapteva EPIPHANY - 8 bit signed pc-relative displacement 7154 7155 -- : BFD_RELOC_EPIPHANY_SIMM24 7156 Adapteva EPIPHANY - 24 bit signed pc-relative displacement 7157 7158 -- : BFD_RELOC_EPIPHANY_HIGH 7159 Adapteva EPIPHANY - 16 most-significant bits of absolute address 7160 7161 -- : BFD_RELOC_EPIPHANY_LOW 7162 Adapteva EPIPHANY - 16 least-significant bits of absolute address 7163 7164 -- : BFD_RELOC_EPIPHANY_SIMM11 7165 Adapteva EPIPHANY - 11 bit signed number - add/sub immediate 7166 7167 -- : BFD_RELOC_EPIPHANY_IMM11 7168 Adapteva EPIPHANY - 11 bit sign-magnitude number (ld/st 7169 displacement) 7170 7171 -- : BFD_RELOC_EPIPHANY_IMM8 7172 Adapteva EPIPHANY - 8 bit immediate for 16 bit mov instruction. 7173 7174 -- : BFD_RELOC_VISIUM_HI16 7175 -- : BFD_RELOC_VISIUM_LO16 7176 -- : BFD_RELOC_VISIUM_IM16 7177 -- : BFD_RELOC_VISIUM_REL16 7178 -- : BFD_RELOC_VISIUM_HI16_PCREL 7179 -- : BFD_RELOC_VISIUM_LO16_PCREL 7180 -- : BFD_RELOC_VISIUM_IM16_PCREL 7181 Visium Relocations. 7182 7183 7184 typedef enum bfd_reloc_code_real bfd_reloc_code_real_type; 7185 71862.10.2.2 `bfd_reloc_type_lookup' 7187................................ 7188 7189*Synopsis* 7190 reloc_howto_type *bfd_reloc_type_lookup 7191 (bfd *abfd, bfd_reloc_code_real_type code); 7192 reloc_howto_type *bfd_reloc_name_lookup 7193 (bfd *abfd, const char *reloc_name); 7194 *Description* 7195Return a pointer to a howto structure which, when invoked, will perform 7196the relocation CODE on data from the architecture noted. 7197 71982.10.2.3 `bfd_default_reloc_type_lookup' 7199........................................ 7200 7201*Synopsis* 7202 reloc_howto_type *bfd_default_reloc_type_lookup 7203 (bfd *abfd, bfd_reloc_code_real_type code); 7204 *Description* 7205Provides a default relocation lookup routine for any architecture. 7206 72072.10.2.4 `bfd_get_reloc_code_name' 7208.................................. 7209 7210*Synopsis* 7211 const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code); 7212 *Description* 7213Provides a printable name for the supplied relocation code. Useful 7214mainly for printing error messages. 7215 72162.10.2.5 `bfd_generic_relax_section' 7217.................................... 7218 7219*Synopsis* 7220 bfd_boolean bfd_generic_relax_section 7221 (bfd *abfd, 7222 asection *section, 7223 struct bfd_link_info *, 7224 bfd_boolean *); 7225 *Description* 7226Provides default handling for relaxing for back ends which don't do 7227relaxing. 7228 72292.10.2.6 `bfd_generic_gc_sections' 7230.................................. 7231 7232*Synopsis* 7233 bfd_boolean bfd_generic_gc_sections 7234 (bfd *, struct bfd_link_info *); 7235 *Description* 7236Provides default handling for relaxing for back ends which don't do 7237section gc - i.e., does nothing. 7238 72392.10.2.7 `bfd_generic_lookup_section_flags' 7240........................................... 7241 7242*Synopsis* 7243 bfd_boolean bfd_generic_lookup_section_flags 7244 (struct bfd_link_info *, struct flag_info *, asection *); 7245 *Description* 7246Provides default handling for section flags lookup - i.e., does nothing. 7247Returns FALSE if the section should be omitted, otherwise TRUE. 7248 72492.10.2.8 `bfd_generic_merge_sections' 7250..................................... 7251 7252*Synopsis* 7253 bfd_boolean bfd_generic_merge_sections 7254 (bfd *, struct bfd_link_info *); 7255 *Description* 7256Provides default handling for SEC_MERGE section merging for back ends 7257which don't have SEC_MERGE support - i.e., does nothing. 7258 72592.10.2.9 `bfd_generic_get_relocated_section_contents' 7260..................................................... 7261 7262*Synopsis* 7263 bfd_byte *bfd_generic_get_relocated_section_contents 7264 (bfd *abfd, 7265 struct bfd_link_info *link_info, 7266 struct bfd_link_order *link_order, 7267 bfd_byte *data, 7268 bfd_boolean relocatable, 7269 asymbol **symbols); 7270 *Description* 7271Provides default handling of relocation effort for back ends which 7272can't be bothered to do it efficiently. 7273 7274 7275File: bfd.info, Node: Core Files, Next: Targets, Prev: Relocations, Up: BFD front end 7276 72772.11 Core files 7278=============== 7279 72802.11.1 Core file functions 7281-------------------------- 7282 7283*Description* 7284These are functions pertaining to core files. 7285 72862.11.1.1 `bfd_core_file_failing_command' 7287........................................ 7288 7289*Synopsis* 7290 const char *bfd_core_file_failing_command (bfd *abfd); 7291 *Description* 7292Return a read-only string explaining which program was running when it 7293failed and produced the core file ABFD. 7294 72952.11.1.2 `bfd_core_file_failing_signal' 7296....................................... 7297 7298*Synopsis* 7299 int bfd_core_file_failing_signal (bfd *abfd); 7300 *Description* 7301Returns the signal number which caused the core dump which generated 7302the file the BFD ABFD is attached to. 7303 73042.11.1.3 `bfd_core_file_pid' 7305............................ 7306 7307*Synopsis* 7308 int bfd_core_file_pid (bfd *abfd); 7309 *Description* 7310Returns the PID of the process the core dump the BFD ABFD is attached 7311to was generated from. 7312 73132.11.1.4 `core_file_matches_executable_p' 7314......................................... 7315 7316*Synopsis* 7317 bfd_boolean core_file_matches_executable_p 7318 (bfd *core_bfd, bfd *exec_bfd); 7319 *Description* 7320Return `TRUE' if the core file attached to CORE_BFD was generated by a 7321run of the executable file attached to EXEC_BFD, `FALSE' otherwise. 7322 73232.11.1.5 `generic_core_file_matches_executable_p' 7324................................................. 7325 7326*Synopsis* 7327 bfd_boolean generic_core_file_matches_executable_p 7328 (bfd *core_bfd, bfd *exec_bfd); 7329 *Description* 7330Return TRUE if the core file attached to CORE_BFD was generated by a 7331run of the executable file attached to EXEC_BFD. The match is based on 7332executable basenames only. 7333 7334 Note: When not able to determine the core file failing command or 7335the executable name, we still return TRUE even though we're not sure 7336that core file and executable match. This is to avoid generating a 7337false warning in situations where we really don't know whether they 7338match or not. 7339 7340 7341File: bfd.info, Node: Targets, Next: Architectures, Prev: Core Files, Up: BFD front end 7342 73432.12 Targets 7344============ 7345 7346*Description* 7347Each port of BFD to a different machine requires the creation of a 7348target back end. All the back end provides to the root part of BFD is a 7349structure containing pointers to functions which perform certain low 7350level operations on files. BFD translates the applications's requests 7351through a pointer into calls to the back end routines. 7352 7353 When a file is opened with `bfd_openr', its format and target are 7354unknown. BFD uses various mechanisms to determine how to interpret the 7355file. The operations performed are: 7356 7357 * Create a BFD by calling the internal routine `_bfd_new_bfd', then 7358 call `bfd_find_target' with the target string supplied to 7359 `bfd_openr' and the new BFD pointer. 7360 7361 * If a null target string was provided to `bfd_find_target', look up 7362 the environment variable `GNUTARGET' and use that as the target 7363 string. 7364 7365 * If the target string is still `NULL', or the target string is 7366 `default', then use the first item in the target vector as the 7367 target type, and set `target_defaulted' in the BFD to cause 7368 `bfd_check_format' to loop through all the targets. *Note 7369 bfd_target::. *Note Formats::. 7370 7371 * Otherwise, inspect the elements in the target vector one by one, 7372 until a match on target name is found. When found, use it. 7373 7374 * Otherwise return the error `bfd_error_invalid_target' to 7375 `bfd_openr'. 7376 7377 * `bfd_openr' attempts to open the file using `bfd_open_file', and 7378 returns the BFD. 7379 Once the BFD has been opened and the target selected, the file 7380format may be determined. This is done by calling `bfd_check_format' on 7381the BFD with a suggested format. If `target_defaulted' has been set, 7382each possible target type is tried to see if it recognizes the 7383specified format. `bfd_check_format' returns `TRUE' when the caller 7384guesses right. 7385 7386* Menu: 7387 7388* bfd_target:: 7389 7390 7391File: bfd.info, Node: bfd_target, Prev: Targets, Up: Targets 7392 73932.12.1 bfd_target 7394----------------- 7395 7396*Description* 7397This structure contains everything that BFD knows about a target. It 7398includes things like its byte order, name, and which routines to call 7399to do various operations. 7400 7401 Every BFD points to a target structure with its `xvec' member. 7402 7403 The macros below are used to dispatch to functions through the 7404`bfd_target' vector. They are used in a number of macros further down 7405in `bfd.h', and are also used when calling various routines by hand 7406inside the BFD implementation. The ARGLIST argument must be 7407parenthesized; it contains all the arguments to the called function. 7408 7409 They make the documentation (more) unpleasant to read, so if someone 7410wants to fix this and not break the above, please do. 7411 #define BFD_SEND(bfd, message, arglist) \ 7412 ((*((bfd)->xvec->message)) arglist) 7413 7414 #ifdef DEBUG_BFD_SEND 7415 #undef BFD_SEND 7416 #define BFD_SEND(bfd, message, arglist) \ 7417 (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \ 7418 ((*((bfd)->xvec->message)) arglist) : \ 7419 (bfd_assert (__FILE__,__LINE__), NULL)) 7420 #endif 7421 For operations which index on the BFD format: 7422 #define BFD_SEND_FMT(bfd, message, arglist) \ 7423 (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) 7424 7425 #ifdef DEBUG_BFD_SEND 7426 #undef BFD_SEND_FMT 7427 #define BFD_SEND_FMT(bfd, message, arglist) \ 7428 (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \ 7429 (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) : \ 7430 (bfd_assert (__FILE__,__LINE__), NULL)) 7431 #endif 7432 This is the structure which defines the type of BFD this is. The 7433`xvec' member of the struct `bfd' itself points here. Each module that 7434implements access to a different target under BFD, defines one of these. 7435 7436 FIXME, these names should be rationalised with the names of the 7437entry points which call them. Too bad we can't have one macro to define 7438them both! 7439 enum bfd_flavour 7440 { 7441 /* N.B. Update bfd_flavour_name if you change this. */ 7442 bfd_target_unknown_flavour, 7443 bfd_target_aout_flavour, 7444 bfd_target_coff_flavour, 7445 bfd_target_ecoff_flavour, 7446 bfd_target_xcoff_flavour, 7447 bfd_target_elf_flavour, 7448 bfd_target_ieee_flavour, 7449 bfd_target_nlm_flavour, 7450 bfd_target_oasys_flavour, 7451 bfd_target_tekhex_flavour, 7452 bfd_target_srec_flavour, 7453 bfd_target_verilog_flavour, 7454 bfd_target_ihex_flavour, 7455 bfd_target_som_flavour, 7456 bfd_target_os9k_flavour, 7457 bfd_target_versados_flavour, 7458 bfd_target_msdos_flavour, 7459 bfd_target_ovax_flavour, 7460 bfd_target_evax_flavour, 7461 bfd_target_mmo_flavour, 7462 bfd_target_mach_o_flavour, 7463 bfd_target_pef_flavour, 7464 bfd_target_pef_xlib_flavour, 7465 bfd_target_sym_flavour 7466 }; 7467 7468 enum bfd_endian { BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN }; 7469 7470 /* Forward declaration. */ 7471 typedef struct bfd_link_info _bfd_link_info; 7472 7473 /* Forward declaration. */ 7474 typedef struct flag_info flag_info; 7475 7476 typedef struct bfd_target 7477 { 7478 /* Identifies the kind of target, e.g., SunOS4, Ultrix, etc. */ 7479 char *name; 7480 7481 /* The "flavour" of a back end is a general indication about 7482 the contents of a file. */ 7483 enum bfd_flavour flavour; 7484 7485 /* The order of bytes within the data area of a file. */ 7486 enum bfd_endian byteorder; 7487 7488 /* The order of bytes within the header parts of a file. */ 7489 enum bfd_endian header_byteorder; 7490 7491 /* A mask of all the flags which an executable may have set - 7492 from the set `BFD_NO_FLAGS', `HAS_RELOC', ...`D_PAGED'. */ 7493 flagword object_flags; 7494 7495 /* A mask of all the flags which a section may have set - from 7496 the set `SEC_NO_FLAGS', `SEC_ALLOC', ...`SET_NEVER_LOAD'. */ 7497 flagword section_flags; 7498 7499 /* The character normally found at the front of a symbol. 7500 (if any), perhaps `_'. */ 7501 char symbol_leading_char; 7502 7503 /* The pad character for file names within an archive header. */ 7504 char ar_pad_char; 7505 7506 /* The maximum number of characters in an archive header. */ 7507 unsigned char ar_max_namelen; 7508 7509 /* How well this target matches, used to select between various 7510 possible targets when more than one target matches. */ 7511 unsigned char match_priority; 7512 7513 /* Entries for byte swapping for data. These are different from the 7514 other entry points, since they don't take a BFD as the first argument. 7515 Certain other handlers could do the same. */ 7516 bfd_uint64_t (*bfd_getx64) (const void *); 7517 bfd_int64_t (*bfd_getx_signed_64) (const void *); 7518 void (*bfd_putx64) (bfd_uint64_t, void *); 7519 bfd_vma (*bfd_getx32) (const void *); 7520 bfd_signed_vma (*bfd_getx_signed_32) (const void *); 7521 void (*bfd_putx32) (bfd_vma, void *); 7522 bfd_vma (*bfd_getx16) (const void *); 7523 bfd_signed_vma (*bfd_getx_signed_16) (const void *); 7524 void (*bfd_putx16) (bfd_vma, void *); 7525 7526 /* Byte swapping for the headers. */ 7527 bfd_uint64_t (*bfd_h_getx64) (const void *); 7528 bfd_int64_t (*bfd_h_getx_signed_64) (const void *); 7529 void (*bfd_h_putx64) (bfd_uint64_t, void *); 7530 bfd_vma (*bfd_h_getx32) (const void *); 7531 bfd_signed_vma (*bfd_h_getx_signed_32) (const void *); 7532 void (*bfd_h_putx32) (bfd_vma, void *); 7533 bfd_vma (*bfd_h_getx16) (const void *); 7534 bfd_signed_vma (*bfd_h_getx_signed_16) (const void *); 7535 void (*bfd_h_putx16) (bfd_vma, void *); 7536 7537 /* Format dependent routines: these are vectors of entry points 7538 within the target vector structure, one for each format to check. */ 7539 7540 /* Check the format of a file being read. Return a `bfd_target *' or zero. */ 7541 const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *); 7542 7543 /* Set the format of a file being written. */ 7544 bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *); 7545 7546 /* Write cached information into a file being written, at `bfd_close'. */ 7547 bfd_boolean (*_bfd_write_contents[bfd_type_end]) (bfd *); 7548 The general target vector. These vectors are initialized using the 7549BFD_JUMP_TABLE macros. 7550 7551 /* Generic entry points. */ 7552 #define BFD_JUMP_TABLE_GENERIC(NAME) \ 7553 NAME##_close_and_cleanup, \ 7554 NAME##_bfd_free_cached_info, \ 7555 NAME##_new_section_hook, \ 7556 NAME##_get_section_contents, \ 7557 NAME##_get_section_contents_in_window 7558 7559 /* Called when the BFD is being closed to do any necessary cleanup. */ 7560 bfd_boolean (*_close_and_cleanup) (bfd *); 7561 /* Ask the BFD to free all cached information. */ 7562 bfd_boolean (*_bfd_free_cached_info) (bfd *); 7563 /* Called when a new section is created. */ 7564 bfd_boolean (*_new_section_hook) (bfd *, sec_ptr); 7565 /* Read the contents of a section. */ 7566 bfd_boolean (*_bfd_get_section_contents) 7567 (bfd *, sec_ptr, void *, file_ptr, bfd_size_type); 7568 bfd_boolean (*_bfd_get_section_contents_in_window) 7569 (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type); 7570 7571 /* Entry points to copy private data. */ 7572 #define BFD_JUMP_TABLE_COPY(NAME) \ 7573 NAME##_bfd_copy_private_bfd_data, \ 7574 NAME##_bfd_merge_private_bfd_data, \ 7575 _bfd_generic_init_private_section_data, \ 7576 NAME##_bfd_copy_private_section_data, \ 7577 NAME##_bfd_copy_private_symbol_data, \ 7578 NAME##_bfd_copy_private_header_data, \ 7579 NAME##_bfd_set_private_flags, \ 7580 NAME##_bfd_print_private_bfd_data 7581 7582 /* Called to copy BFD general private data from one object file 7583 to another. */ 7584 bfd_boolean (*_bfd_copy_private_bfd_data) (bfd *, bfd *); 7585 /* Called to merge BFD general private data from one object file 7586 to a common output file when linking. */ 7587 bfd_boolean (*_bfd_merge_private_bfd_data) (bfd *, bfd *); 7588 /* Called to initialize BFD private section data from one object file 7589 to another. */ 7590 #define bfd_init_private_section_data(ibfd, isec, obfd, osec, link_info) \ 7591 BFD_SEND (obfd, _bfd_init_private_section_data, (ibfd, isec, obfd, osec, link_info)) 7592 bfd_boolean (*_bfd_init_private_section_data) 7593 (bfd *, sec_ptr, bfd *, sec_ptr, struct bfd_link_info *); 7594 /* Called to copy BFD private section data from one object file 7595 to another. */ 7596 bfd_boolean (*_bfd_copy_private_section_data) 7597 (bfd *, sec_ptr, bfd *, sec_ptr); 7598 /* Called to copy BFD private symbol data from one symbol 7599 to another. */ 7600 bfd_boolean (*_bfd_copy_private_symbol_data) 7601 (bfd *, asymbol *, bfd *, asymbol *); 7602 /* Called to copy BFD private header data from one object file 7603 to another. */ 7604 bfd_boolean (*_bfd_copy_private_header_data) 7605 (bfd *, bfd *); 7606 /* Called to set private backend flags. */ 7607 bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword); 7608 7609 /* Called to print private BFD data. */ 7610 bfd_boolean (*_bfd_print_private_bfd_data) (bfd *, void *); 7611 7612 /* Core file entry points. */ 7613 #define BFD_JUMP_TABLE_CORE(NAME) \ 7614 NAME##_core_file_failing_command, \ 7615 NAME##_core_file_failing_signal, \ 7616 NAME##_core_file_matches_executable_p, \ 7617 NAME##_core_file_pid 7618 7619 char * (*_core_file_failing_command) (bfd *); 7620 int (*_core_file_failing_signal) (bfd *); 7621 bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *); 7622 int (*_core_file_pid) (bfd *); 7623 7624 /* Archive entry points. */ 7625 #define BFD_JUMP_TABLE_ARCHIVE(NAME) \ 7626 NAME##_slurp_armap, \ 7627 NAME##_slurp_extended_name_table, \ 7628 NAME##_construct_extended_name_table, \ 7629 NAME##_truncate_arname, \ 7630 NAME##_write_armap, \ 7631 NAME##_read_ar_hdr, \ 7632 NAME##_write_ar_hdr, \ 7633 NAME##_openr_next_archived_file, \ 7634 NAME##_get_elt_at_index, \ 7635 NAME##_generic_stat_arch_elt, \ 7636 NAME##_update_armap_timestamp 7637 7638 bfd_boolean (*_bfd_slurp_armap) (bfd *); 7639 bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *); 7640 bfd_boolean (*_bfd_construct_extended_name_table) 7641 (bfd *, char **, bfd_size_type *, const char **); 7642 void (*_bfd_truncate_arname) (bfd *, const char *, char *); 7643 bfd_boolean (*write_armap) 7644 (bfd *, unsigned int, struct orl *, unsigned int, int); 7645 void * (*_bfd_read_ar_hdr_fn) (bfd *); 7646 bfd_boolean (*_bfd_write_ar_hdr_fn) (bfd *, bfd *); 7647 bfd * (*openr_next_archived_file) (bfd *, bfd *); 7648 #define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i)) 7649 bfd * (*_bfd_get_elt_at_index) (bfd *, symindex); 7650 int (*_bfd_stat_arch_elt) (bfd *, struct stat *); 7651 bfd_boolean (*_bfd_update_armap_timestamp) (bfd *); 7652 7653 /* Entry points used for symbols. */ 7654 #define BFD_JUMP_TABLE_SYMBOLS(NAME) \ 7655 NAME##_get_symtab_upper_bound, \ 7656 NAME##_canonicalize_symtab, \ 7657 NAME##_make_empty_symbol, \ 7658 NAME##_print_symbol, \ 7659 NAME##_get_symbol_info, \ 7660 NAME##_get_symbol_version_string, \ 7661 NAME##_bfd_is_local_label_name, \ 7662 NAME##_bfd_is_target_special_symbol, \ 7663 NAME##_get_lineno, \ 7664 NAME##_find_nearest_line, \ 7665 NAME##_find_line, \ 7666 NAME##_find_inliner_info, \ 7667 NAME##_bfd_make_debug_symbol, \ 7668 NAME##_read_minisymbols, \ 7669 NAME##_minisymbol_to_symbol 7670 7671 long (*_bfd_get_symtab_upper_bound) (bfd *); 7672 long (*_bfd_canonicalize_symtab) 7673 (bfd *, struct bfd_symbol **); 7674 struct bfd_symbol * 7675 (*_bfd_make_empty_symbol) (bfd *); 7676 void (*_bfd_print_symbol) 7677 (bfd *, void *, struct bfd_symbol *, bfd_print_symbol_type); 7678 #define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e)) 7679 void (*_bfd_get_symbol_info) 7680 (bfd *, struct bfd_symbol *, symbol_info *); 7681 #define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e)) 7682 const char *(*_bfd_get_symbol_version_string) 7683 (bfd *, struct bfd_symbol *, bfd_boolean *); 7684 #define bfd_get_symbol_version_string(b,s,h) BFD_SEND (b, _bfd_get_symbol_version_string, (b,s,h)) 7685 bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *); 7686 bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *); 7687 alent * (*_get_lineno) (bfd *, struct bfd_symbol *); 7688 bfd_boolean (*_bfd_find_nearest_line) 7689 (bfd *, struct bfd_symbol **, struct bfd_section *, bfd_vma, 7690 const char **, const char **, unsigned int *, unsigned int *); 7691 bfd_boolean (*_bfd_find_line) 7692 (bfd *, struct bfd_symbol **, struct bfd_symbol *, 7693 const char **, unsigned int *); 7694 bfd_boolean (*_bfd_find_inliner_info) 7695 (bfd *, const char **, const char **, unsigned int *); 7696 /* Back-door to allow format-aware applications to create debug symbols 7697 while using BFD for everything else. Currently used by the assembler 7698 when creating COFF files. */ 7699 asymbol * (*_bfd_make_debug_symbol) 7700 (bfd *, void *, unsigned long size); 7701 #define bfd_read_minisymbols(b, d, m, s) \ 7702 BFD_SEND (b, _read_minisymbols, (b, d, m, s)) 7703 long (*_read_minisymbols) 7704 (bfd *, bfd_boolean, void **, unsigned int *); 7705 #define bfd_minisymbol_to_symbol(b, d, m, f) \ 7706 BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f)) 7707 asymbol * (*_minisymbol_to_symbol) 7708 (bfd *, bfd_boolean, const void *, asymbol *); 7709 7710 /* Routines for relocs. */ 7711 #define BFD_JUMP_TABLE_RELOCS(NAME) \ 7712 NAME##_get_reloc_upper_bound, \ 7713 NAME##_canonicalize_reloc, \ 7714 NAME##_bfd_reloc_type_lookup, \ 7715 NAME##_bfd_reloc_name_lookup 7716 7717 long (*_get_reloc_upper_bound) (bfd *, sec_ptr); 7718 long (*_bfd_canonicalize_reloc) 7719 (bfd *, sec_ptr, arelent **, struct bfd_symbol **); 7720 /* See documentation on reloc types. */ 7721 reloc_howto_type * 7722 (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type); 7723 reloc_howto_type * 7724 (*reloc_name_lookup) (bfd *, const char *); 7725 7726 7727 /* Routines used when writing an object file. */ 7728 #define BFD_JUMP_TABLE_WRITE(NAME) \ 7729 NAME##_set_arch_mach, \ 7730 NAME##_set_section_contents 7731 7732 bfd_boolean (*_bfd_set_arch_mach) 7733 (bfd *, enum bfd_architecture, unsigned long); 7734 bfd_boolean (*_bfd_set_section_contents) 7735 (bfd *, sec_ptr, const void *, file_ptr, bfd_size_type); 7736 7737 /* Routines used by the linker. */ 7738 #define BFD_JUMP_TABLE_LINK(NAME) \ 7739 NAME##_sizeof_headers, \ 7740 NAME##_bfd_get_relocated_section_contents, \ 7741 NAME##_bfd_relax_section, \ 7742 NAME##_bfd_link_hash_table_create, \ 7743 NAME##_bfd_link_add_symbols, \ 7744 NAME##_bfd_link_just_syms, \ 7745 NAME##_bfd_copy_link_hash_symbol_type, \ 7746 NAME##_bfd_final_link, \ 7747 NAME##_bfd_link_split_section, \ 7748 NAME##_bfd_gc_sections, \ 7749 NAME##_bfd_lookup_section_flags, \ 7750 NAME##_bfd_merge_sections, \ 7751 NAME##_bfd_is_group_section, \ 7752 NAME##_bfd_discard_group, \ 7753 NAME##_section_already_linked, \ 7754 NAME##_bfd_define_common_symbol 7755 7756 int (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *); 7757 bfd_byte * (*_bfd_get_relocated_section_contents) 7758 (bfd *, struct bfd_link_info *, struct bfd_link_order *, 7759 bfd_byte *, bfd_boolean, struct bfd_symbol **); 7760 7761 bfd_boolean (*_bfd_relax_section) 7762 (bfd *, struct bfd_section *, struct bfd_link_info *, bfd_boolean *); 7763 7764 /* Create a hash table for the linker. Different backends store 7765 different information in this table. */ 7766 struct bfd_link_hash_table * 7767 (*_bfd_link_hash_table_create) (bfd *); 7768 7769 /* Add symbols from this object file into the hash table. */ 7770 bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *); 7771 7772 /* Indicate that we are only retrieving symbol values from this section. */ 7773 void (*_bfd_link_just_syms) (asection *, struct bfd_link_info *); 7774 7775 /* Copy the symbol type and other attributes for a linker script 7776 assignment of one symbol to another. */ 7777 #define bfd_copy_link_hash_symbol_type(b, t, f) \ 7778 BFD_SEND (b, _bfd_copy_link_hash_symbol_type, (b, t, f)) 7779 void (*_bfd_copy_link_hash_symbol_type) 7780 (bfd *, struct bfd_link_hash_entry *, struct bfd_link_hash_entry *); 7781 7782 /* Do a link based on the link_order structures attached to each 7783 section of the BFD. */ 7784 bfd_boolean (*_bfd_final_link) (bfd *, struct bfd_link_info *); 7785 7786 /* Should this section be split up into smaller pieces during linking. */ 7787 bfd_boolean (*_bfd_link_split_section) (bfd *, struct bfd_section *); 7788 7789 /* Remove sections that are not referenced from the output. */ 7790 bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *); 7791 7792 /* Sets the bitmask of allowed and disallowed section flags. */ 7793 bfd_boolean (*_bfd_lookup_section_flags) (struct bfd_link_info *, 7794 struct flag_info *, 7795 asection *); 7796 7797 /* Attempt to merge SEC_MERGE sections. */ 7798 bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *); 7799 7800 /* Is this section a member of a group? */ 7801 bfd_boolean (*_bfd_is_group_section) (bfd *, const struct bfd_section *); 7802 7803 /* Discard members of a group. */ 7804 bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *); 7805 7806 /* Check if SEC has been already linked during a reloceatable or 7807 final link. */ 7808 bfd_boolean (*_section_already_linked) (bfd *, asection *, 7809 struct bfd_link_info *); 7810 7811 /* Define a common symbol. */ 7812 bfd_boolean (*_bfd_define_common_symbol) (bfd *, struct bfd_link_info *, 7813 struct bfd_link_hash_entry *); 7814 7815 /* Routines to handle dynamic symbols and relocs. */ 7816 #define BFD_JUMP_TABLE_DYNAMIC(NAME) \ 7817 NAME##_get_dynamic_symtab_upper_bound, \ 7818 NAME##_canonicalize_dynamic_symtab, \ 7819 NAME##_get_synthetic_symtab, \ 7820 NAME##_get_dynamic_reloc_upper_bound, \ 7821 NAME##_canonicalize_dynamic_reloc 7822 7823 /* Get the amount of memory required to hold the dynamic symbols. */ 7824 long (*_bfd_get_dynamic_symtab_upper_bound) (bfd *); 7825 /* Read in the dynamic symbols. */ 7826 long (*_bfd_canonicalize_dynamic_symtab) 7827 (bfd *, struct bfd_symbol **); 7828 /* Create synthetized symbols. */ 7829 long (*_bfd_get_synthetic_symtab) 7830 (bfd *, long, struct bfd_symbol **, long, struct bfd_symbol **, 7831 struct bfd_symbol **); 7832 /* Get the amount of memory required to hold the dynamic relocs. */ 7833 long (*_bfd_get_dynamic_reloc_upper_bound) (bfd *); 7834 /* Read in the dynamic relocs. */ 7835 long (*_bfd_canonicalize_dynamic_reloc) 7836 (bfd *, arelent **, struct bfd_symbol **); 7837 A pointer to an alternative bfd_target in case the current one is not 7838satisfactory. This can happen when the target cpu supports both big 7839and little endian code, and target chosen by the linker has the wrong 7840endianness. The function open_output() in ld/ldlang.c uses this field 7841to find an alternative output format that is suitable. 7842 /* Opposite endian version of this target. */ 7843 const struct bfd_target * alternative_target; 7844 7845 /* Data for use by back-end routines, which isn't 7846 generic enough to belong in this structure. */ 7847 const void *backend_data; 7848 7849 } bfd_target; 7850 78512.12.1.1 `bfd_set_default_target' 7852................................. 7853 7854*Synopsis* 7855 bfd_boolean bfd_set_default_target (const char *name); 7856 *Description* 7857Set the default target vector to use when recognizing a BFD. This 7858takes the name of the target, which may be a BFD target name or a 7859configuration triplet. 7860 78612.12.1.2 `bfd_find_target' 7862.......................... 7863 7864*Synopsis* 7865 const bfd_target *bfd_find_target (const char *target_name, bfd *abfd); 7866 *Description* 7867Return a pointer to the transfer vector for the object target named 7868TARGET_NAME. If TARGET_NAME is `NULL', choose the one in the 7869environment variable `GNUTARGET'; if that is null or not defined, then 7870choose the first entry in the target list. Passing in the string 7871"default" or setting the environment variable to "default" will cause 7872the first entry in the target list to be returned, and 7873"target_defaulted" will be set in the BFD if ABFD isn't `NULL'. This 7874causes `bfd_check_format' to loop over all the targets to find the one 7875that matches the file being read. 7876 78772.12.1.3 `bfd_get_target_info' 7878.............................. 7879 7880*Synopsis* 7881 const bfd_target *bfd_get_target_info (const char *target_name, 7882 bfd *abfd, 7883 bfd_boolean *is_bigendian, 7884 int *underscoring, 7885 const char **def_target_arch); 7886 *Description* 7887Return a pointer to the transfer vector for the object target named 7888TARGET_NAME. If TARGET_NAME is `NULL', choose the one in the 7889environment variable `GNUTARGET'; if that is null or not defined, then 7890choose the first entry in the target list. Passing in the string 7891"default" or setting the environment variable to "default" will cause 7892the first entry in the target list to be returned, and 7893"target_defaulted" will be set in the BFD if ABFD isn't `NULL'. This 7894causes `bfd_check_format' to loop over all the targets to find the one 7895that matches the file being read. If IS_BIGENDIAN is not `NULL', then 7896set this value to target's endian mode. True for big-endian, FALSE for 7897little-endian or for invalid target. If UNDERSCORING is not `NULL', 7898then set this value to target's underscoring mode. Zero for 7899none-underscoring, -1 for invalid target, else the value of target 7900vector's symbol underscoring. If DEF_TARGET_ARCH is not `NULL', then 7901set it to the architecture string specified by the target_name. 7902 79032.12.1.4 `bfd_target_list' 7904.......................... 7905 7906*Synopsis* 7907 const char ** bfd_target_list (void); 7908 *Description* 7909Return a freshly malloced NULL-terminated vector of the names of all 7910the valid BFD targets. Do not modify the names. 7911 79122.12.1.5 `bfd_seach_for_target' 7913............................... 7914 7915*Synopsis* 7916 const bfd_target *bfd_search_for_target 7917 (int (*search_func) (const bfd_target *, void *), 7918 void *); 7919 *Description* 7920Return a pointer to the first transfer vector in the list of transfer 7921vectors maintained by BFD that produces a non-zero result when passed 7922to the function SEARCH_FUNC. The parameter DATA is passed, unexamined, 7923to the search function. 7924 79252.12.1.6 `bfd_flavour_name' 7926........................... 7927 7928*Synopsis* 7929 const char *bfd_flavour_name (enum bfd_flavour flavour); 7930 *Description* 7931Return the string form of FLAVOUR. 7932 7933 7934File: bfd.info, Node: Architectures, Next: Opening and Closing, Prev: Targets, Up: BFD front end 7935 79362.13 Architectures 7937================== 7938 7939BFD keeps one atom in a BFD describing the architecture of the data 7940attached to the BFD: a pointer to a `bfd_arch_info_type'. 7941 7942 Pointers to structures can be requested independently of a BFD so 7943that an architecture's information can be interrogated without access 7944to an open BFD. 7945 7946 The architecture information is provided by each architecture 7947package. The set of default architectures is selected by the macro 7948`SELECT_ARCHITECTURES'. This is normally set up in the 7949`config/TARGET.mt' file of your choice. If the name is not defined, 7950then all the architectures supported are included. 7951 7952 When BFD starts up, all the architectures are called with an 7953initialize method. It is up to the architecture back end to insert as 7954many items into the list of architectures as it wants to; generally 7955this would be one for each machine and one for the default case (an 7956item with a machine field of 0). 7957 7958 BFD's idea of an architecture is implemented in `archures.c'. 7959 79602.13.1 bfd_architecture 7961----------------------- 7962 7963*Description* 7964This enum gives the object file's CPU architecture, in a global 7965sense--i.e., what processor family does it belong to? Another field 7966indicates which processor within the family is in use. The machine 7967gives a number which distinguishes different versions of the 7968architecture, containing, for example, 2 and 3 for Intel i960 KA and 7969i960 KB, and 68020 and 68030 for Motorola 68020 and 68030. 7970 enum bfd_architecture 7971 { 7972 bfd_arch_unknown, /* File arch not known. */ 7973 bfd_arch_obscure, /* Arch known, not one of these. */ 7974 bfd_arch_m68k, /* Motorola 68xxx */ 7975 #define bfd_mach_m68000 1 7976 #define bfd_mach_m68008 2 7977 #define bfd_mach_m68010 3 7978 #define bfd_mach_m68020 4 7979 #define bfd_mach_m68030 5 7980 #define bfd_mach_m68040 6 7981 #define bfd_mach_m68060 7 7982 #define bfd_mach_cpu32 8 7983 #define bfd_mach_fido 9 7984 #define bfd_mach_mcf_isa_a_nodiv 10 7985 #define bfd_mach_mcf_isa_a 11 7986 #define bfd_mach_mcf_isa_a_mac 12 7987 #define bfd_mach_mcf_isa_a_emac 13 7988 #define bfd_mach_mcf_isa_aplus 14 7989 #define bfd_mach_mcf_isa_aplus_mac 15 7990 #define bfd_mach_mcf_isa_aplus_emac 16 7991 #define bfd_mach_mcf_isa_b_nousp 17 7992 #define bfd_mach_mcf_isa_b_nousp_mac 18 7993 #define bfd_mach_mcf_isa_b_nousp_emac 19 7994 #define bfd_mach_mcf_isa_b 20 7995 #define bfd_mach_mcf_isa_b_mac 21 7996 #define bfd_mach_mcf_isa_b_emac 22 7997 #define bfd_mach_mcf_isa_b_float 23 7998 #define bfd_mach_mcf_isa_b_float_mac 24 7999 #define bfd_mach_mcf_isa_b_float_emac 25 8000 #define bfd_mach_mcf_isa_c 26 8001 #define bfd_mach_mcf_isa_c_mac 27 8002 #define bfd_mach_mcf_isa_c_emac 28 8003 #define bfd_mach_mcf_isa_c_nodiv 29 8004 #define bfd_mach_mcf_isa_c_nodiv_mac 30 8005 #define bfd_mach_mcf_isa_c_nodiv_emac 31 8006 bfd_arch_vax, /* DEC Vax */ 8007 bfd_arch_i960, /* Intel 960 */ 8008 /* The order of the following is important. 8009 lower number indicates a machine type that 8010 only accepts a subset of the instructions 8011 available to machines with higher numbers. 8012 The exception is the "ca", which is 8013 incompatible with all other machines except 8014 "core". */ 8015 8016 #define bfd_mach_i960_core 1 8017 #define bfd_mach_i960_ka_sa 2 8018 #define bfd_mach_i960_kb_sb 3 8019 #define bfd_mach_i960_mc 4 8020 #define bfd_mach_i960_xa 5 8021 #define bfd_mach_i960_ca 6 8022 #define bfd_mach_i960_jx 7 8023 #define bfd_mach_i960_hx 8 8024 8025 bfd_arch_or1k, /* OpenRISC 1000 */ 8026 #define bfd_mach_or1k 1 8027 #define bfd_mach_or1knd 2 8028 8029 bfd_arch_sparc, /* SPARC */ 8030 #define bfd_mach_sparc 1 8031 /* The difference between v8plus and v9 is that v9 is a true 64 bit env. */ 8032 #define bfd_mach_sparc_sparclet 2 8033 #define bfd_mach_sparc_sparclite 3 8034 #define bfd_mach_sparc_v8plus 4 8035 #define bfd_mach_sparc_v8plusa 5 /* with ultrasparc add'ns. */ 8036 #define bfd_mach_sparc_sparclite_le 6 8037 #define bfd_mach_sparc_v9 7 8038 #define bfd_mach_sparc_v9a 8 /* with ultrasparc add'ns. */ 8039 #define bfd_mach_sparc_v8plusb 9 /* with cheetah add'ns. */ 8040 #define bfd_mach_sparc_v9b 10 /* with cheetah add'ns. */ 8041 /* Nonzero if MACH has the v9 instruction set. */ 8042 #define bfd_mach_sparc_v9_p(mach) \ 8043 ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9b \ 8044 && (mach) != bfd_mach_sparc_sparclite_le) 8045 /* Nonzero if MACH is a 64 bit sparc architecture. */ 8046 #define bfd_mach_sparc_64bit_p(mach) \ 8047 ((mach) >= bfd_mach_sparc_v9 && (mach) != bfd_mach_sparc_v8plusb) 8048 bfd_arch_spu, /* PowerPC SPU */ 8049 #define bfd_mach_spu 256 8050 bfd_arch_mips, /* MIPS Rxxxx */ 8051 #define bfd_mach_mips3000 3000 8052 #define bfd_mach_mips3900 3900 8053 #define bfd_mach_mips4000 4000 8054 #define bfd_mach_mips4010 4010 8055 #define bfd_mach_mips4100 4100 8056 #define bfd_mach_mips4111 4111 8057 #define bfd_mach_mips4120 4120 8058 #define bfd_mach_mips4300 4300 8059 #define bfd_mach_mips4400 4400 8060 #define bfd_mach_mips4600 4600 8061 #define bfd_mach_mips4650 4650 8062 #define bfd_mach_mips5000 5000 8063 #define bfd_mach_mips5400 5400 8064 #define bfd_mach_mips5500 5500 8065 #define bfd_mach_mips5900 5900 8066 #define bfd_mach_mips6000 6000 8067 #define bfd_mach_mips7000 7000 8068 #define bfd_mach_mips8000 8000 8069 #define bfd_mach_mips9000 9000 8070 #define bfd_mach_mips10000 10000 8071 #define bfd_mach_mips12000 12000 8072 #define bfd_mach_mips14000 14000 8073 #define bfd_mach_mips16000 16000 8074 #define bfd_mach_mips16 16 8075 #define bfd_mach_mips5 5 8076 #define bfd_mach_mips_loongson_2e 3001 8077 #define bfd_mach_mips_loongson_2f 3002 8078 #define bfd_mach_mips_loongson_3a 3003 8079 #define bfd_mach_mips_sb1 12310201 /* octal 'SB', 01 */ 8080 #define bfd_mach_mips_octeon 6501 8081 #define bfd_mach_mips_octeonp 6601 8082 #define bfd_mach_mips_octeon2 6502 8083 #define bfd_mach_mips_octeon3 6503 8084 #define bfd_mach_mips_xlr 887682 /* decimal 'XLR' */ 8085 #define bfd_mach_mipsisa32 32 8086 #define bfd_mach_mipsisa32r2 33 8087 #define bfd_mach_mipsisa32r3 34 8088 #define bfd_mach_mipsisa32r5 36 8089 #define bfd_mach_mipsisa32r6 37 8090 #define bfd_mach_mipsisa64 64 8091 #define bfd_mach_mipsisa64r2 65 8092 #define bfd_mach_mipsisa64r3 66 8093 #define bfd_mach_mipsisa64r5 68 8094 #define bfd_mach_mipsisa64r6 69 8095 #define bfd_mach_mips_micromips 96 8096 bfd_arch_i386, /* Intel 386 */ 8097 #define bfd_mach_i386_intel_syntax (1 << 0) 8098 #define bfd_mach_i386_i8086 (1 << 1) 8099 #define bfd_mach_i386_i386 (1 << 2) 8100 #define bfd_mach_x86_64 (1 << 3) 8101 #define bfd_mach_x64_32 (1 << 4) 8102 #define bfd_mach_i386_i386_intel_syntax (bfd_mach_i386_i386 | bfd_mach_i386_intel_syntax) 8103 #define bfd_mach_x86_64_intel_syntax (bfd_mach_x86_64 | bfd_mach_i386_intel_syntax) 8104 #define bfd_mach_x64_32_intel_syntax (bfd_mach_x64_32 | bfd_mach_i386_intel_syntax) 8105 bfd_arch_l1om, /* Intel L1OM */ 8106 #define bfd_mach_l1om (1 << 5) 8107 #define bfd_mach_l1om_intel_syntax (bfd_mach_l1om | bfd_mach_i386_intel_syntax) 8108 bfd_arch_k1om, /* Intel K1OM */ 8109 #define bfd_mach_k1om (1 << 6) 8110 #define bfd_mach_k1om_intel_syntax (bfd_mach_k1om | bfd_mach_i386_intel_syntax) 8111 #define bfd_mach_i386_nacl (1 << 7) 8112 #define bfd_mach_i386_i386_nacl (bfd_mach_i386_i386 | bfd_mach_i386_nacl) 8113 #define bfd_mach_x86_64_nacl (bfd_mach_x86_64 | bfd_mach_i386_nacl) 8114 #define bfd_mach_x64_32_nacl (bfd_mach_x64_32 | bfd_mach_i386_nacl) 8115 bfd_arch_iamcu, /* Intel MCU */ 8116 #define bfd_mach_iamcu (1 << 8) 8117 #define bfd_mach_i386_iamcu (bfd_mach_i386_i386 | bfd_mach_iamcu) 8118 #define bfd_mach_i386_iamcu_intel_syntax (bfd_mach_i386_iamcu | bfd_mach_i386_intel_syntax) 8119 bfd_arch_we32k, /* AT&T WE32xxx */ 8120 bfd_arch_tahoe, /* CCI/Harris Tahoe */ 8121 bfd_arch_i860, /* Intel 860 */ 8122 bfd_arch_i370, /* IBM 360/370 Mainframes */ 8123 bfd_arch_romp, /* IBM ROMP PC/RT */ 8124 bfd_arch_convex, /* Convex */ 8125 bfd_arch_m88k, /* Motorola 88xxx */ 8126 bfd_arch_m98k, /* Motorola 98xxx */ 8127 bfd_arch_pyramid, /* Pyramid Technology */ 8128 bfd_arch_h8300, /* Renesas H8/300 (formerly Hitachi H8/300) */ 8129 #define bfd_mach_h8300 1 8130 #define bfd_mach_h8300h 2 8131 #define bfd_mach_h8300s 3 8132 #define bfd_mach_h8300hn 4 8133 #define bfd_mach_h8300sn 5 8134 #define bfd_mach_h8300sx 6 8135 #define bfd_mach_h8300sxn 7 8136 bfd_arch_pdp11, /* DEC PDP-11 */ 8137 bfd_arch_plugin, 8138 bfd_arch_powerpc, /* PowerPC */ 8139 #define bfd_mach_ppc 32 8140 #define bfd_mach_ppc64 64 8141 #define bfd_mach_ppc_403 403 8142 #define bfd_mach_ppc_403gc 4030 8143 #define bfd_mach_ppc_405 405 8144 #define bfd_mach_ppc_505 505 8145 #define bfd_mach_ppc_601 601 8146 #define bfd_mach_ppc_602 602 8147 #define bfd_mach_ppc_603 603 8148 #define bfd_mach_ppc_ec603e 6031 8149 #define bfd_mach_ppc_604 604 8150 #define bfd_mach_ppc_620 620 8151 #define bfd_mach_ppc_630 630 8152 #define bfd_mach_ppc_750 750 8153 #define bfd_mach_ppc_860 860 8154 #define bfd_mach_ppc_a35 35 8155 #define bfd_mach_ppc_rs64ii 642 8156 #define bfd_mach_ppc_rs64iii 643 8157 #define bfd_mach_ppc_7400 7400 8158 #define bfd_mach_ppc_e500 500 8159 #define bfd_mach_ppc_e500mc 5001 8160 #define bfd_mach_ppc_e500mc64 5005 8161 #define bfd_mach_ppc_e5500 5006 8162 #define bfd_mach_ppc_e6500 5007 8163 #define bfd_mach_ppc_titan 83 8164 #define bfd_mach_ppc_vle 84 8165 bfd_arch_rs6000, /* IBM RS/6000 */ 8166 #define bfd_mach_rs6k 6000 8167 #define bfd_mach_rs6k_rs1 6001 8168 #define bfd_mach_rs6k_rsc 6003 8169 #define bfd_mach_rs6k_rs2 6002 8170 bfd_arch_hppa, /* HP PA RISC */ 8171 #define bfd_mach_hppa10 10 8172 #define bfd_mach_hppa11 11 8173 #define bfd_mach_hppa20 20 8174 #define bfd_mach_hppa20w 25 8175 bfd_arch_d10v, /* Mitsubishi D10V */ 8176 #define bfd_mach_d10v 1 8177 #define bfd_mach_d10v_ts2 2 8178 #define bfd_mach_d10v_ts3 3 8179 bfd_arch_d30v, /* Mitsubishi D30V */ 8180 bfd_arch_dlx, /* DLX */ 8181 bfd_arch_m68hc11, /* Motorola 68HC11 */ 8182 bfd_arch_m68hc12, /* Motorola 68HC12 */ 8183 #define bfd_mach_m6812_default 0 8184 #define bfd_mach_m6812 1 8185 #define bfd_mach_m6812s 2 8186 bfd_arch_m9s12x, /* Freescale S12X */ 8187 bfd_arch_m9s12xg, /* Freescale XGATE */ 8188 bfd_arch_z8k, /* Zilog Z8000 */ 8189 #define bfd_mach_z8001 1 8190 #define bfd_mach_z8002 2 8191 bfd_arch_h8500, /* Renesas H8/500 (formerly Hitachi H8/500) */ 8192 bfd_arch_sh, /* Renesas / SuperH SH (formerly Hitachi SH) */ 8193 #define bfd_mach_sh 1 8194 #define bfd_mach_sh2 0x20 8195 #define bfd_mach_sh_dsp 0x2d 8196 #define bfd_mach_sh2a 0x2a 8197 #define bfd_mach_sh2a_nofpu 0x2b 8198 #define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1 8199 #define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2 8200 #define bfd_mach_sh2a_or_sh4 0x2a3 8201 #define bfd_mach_sh2a_or_sh3e 0x2a4 8202 #define bfd_mach_sh2e 0x2e 8203 #define bfd_mach_sh3 0x30 8204 #define bfd_mach_sh3_nommu 0x31 8205 #define bfd_mach_sh3_dsp 0x3d 8206 #define bfd_mach_sh3e 0x3e 8207 #define bfd_mach_sh4 0x40 8208 #define bfd_mach_sh4_nofpu 0x41 8209 #define bfd_mach_sh4_nommu_nofpu 0x42 8210 #define bfd_mach_sh4a 0x4a 8211 #define bfd_mach_sh4a_nofpu 0x4b 8212 #define bfd_mach_sh4al_dsp 0x4d 8213 #define bfd_mach_sh5 0x50 8214 bfd_arch_alpha, /* Dec Alpha */ 8215 #define bfd_mach_alpha_ev4 0x10 8216 #define bfd_mach_alpha_ev5 0x20 8217 #define bfd_mach_alpha_ev6 0x30 8218 bfd_arch_arm, /* Advanced Risc Machines ARM. */ 8219 #define bfd_mach_arm_unknown 0 8220 #define bfd_mach_arm_2 1 8221 #define bfd_mach_arm_2a 2 8222 #define bfd_mach_arm_3 3 8223 #define bfd_mach_arm_3M 4 8224 #define bfd_mach_arm_4 5 8225 #define bfd_mach_arm_4T 6 8226 #define bfd_mach_arm_5 7 8227 #define bfd_mach_arm_5T 8 8228 #define bfd_mach_arm_5TE 9 8229 #define bfd_mach_arm_XScale 10 8230 #define bfd_mach_arm_ep9312 11 8231 #define bfd_mach_arm_iWMMXt 12 8232 #define bfd_mach_arm_iWMMXt2 13 8233 bfd_arch_nds32, /* Andes NDS32 */ 8234 #define bfd_mach_n1 1 8235 #define bfd_mach_n1h 2 8236 #define bfd_mach_n1h_v2 3 8237 #define bfd_mach_n1h_v3 4 8238 #define bfd_mach_n1h_v3m 5 8239 bfd_arch_ns32k, /* National Semiconductors ns32000 */ 8240 bfd_arch_w65, /* WDC 65816 */ 8241 bfd_arch_tic30, /* Texas Instruments TMS320C30 */ 8242 bfd_arch_tic4x, /* Texas Instruments TMS320C3X/4X */ 8243 #define bfd_mach_tic3x 30 8244 #define bfd_mach_tic4x 40 8245 bfd_arch_tic54x, /* Texas Instruments TMS320C54X */ 8246 bfd_arch_tic6x, /* Texas Instruments TMS320C6X */ 8247 bfd_arch_tic80, /* TI TMS320c80 (MVP) */ 8248 bfd_arch_v850, /* NEC V850 */ 8249 bfd_arch_v850_rh850,/* NEC V850 (using RH850 ABI) */ 8250 #define bfd_mach_v850 1 8251 #define bfd_mach_v850e 'E' 8252 #define bfd_mach_v850e1 '1' 8253 #define bfd_mach_v850e2 0x4532 8254 #define bfd_mach_v850e2v3 0x45325633 8255 #define bfd_mach_v850e3v5 0x45335635 /* ('E'|'3'|'V'|'5') */ 8256 bfd_arch_arc, /* ARC Cores */ 8257 #define bfd_mach_arc_a4 0 8258 #define bfd_mach_arc_a5 1 8259 #define bfd_mach_arc_arc600 2 8260 #define bfd_mach_arc_arc601 4 8261 #define bfd_mach_arc_arc700 3 8262 #define bfd_mach_arc_arcv2 5 8263 bfd_arch_m32c, /* Renesas M16C/M32C. */ 8264 #define bfd_mach_m16c 0x75 8265 #define bfd_mach_m32c 0x78 8266 bfd_arch_m32r, /* Renesas M32R (formerly Mitsubishi M32R/D) */ 8267 #define bfd_mach_m32r 1 /* For backwards compatibility. */ 8268 #define bfd_mach_m32rx 'x' 8269 #define bfd_mach_m32r2 '2' 8270 bfd_arch_mn10200, /* Matsushita MN10200 */ 8271 bfd_arch_mn10300, /* Matsushita MN10300 */ 8272 #define bfd_mach_mn10300 300 8273 #define bfd_mach_am33 330 8274 #define bfd_mach_am33_2 332 8275 bfd_arch_fr30, 8276 #define bfd_mach_fr30 0x46523330 8277 bfd_arch_frv, 8278 #define bfd_mach_frv 1 8279 #define bfd_mach_frvsimple 2 8280 #define bfd_mach_fr300 300 8281 #define bfd_mach_fr400 400 8282 #define bfd_mach_fr450 450 8283 #define bfd_mach_frvtomcat 499 /* fr500 prototype */ 8284 #define bfd_mach_fr500 500 8285 #define bfd_mach_fr550 550 8286 bfd_arch_moxie, /* The moxie processor */ 8287 #define bfd_mach_moxie 1 8288 bfd_arch_ft32, /* The ft32 processor */ 8289 #define bfd_mach_ft32 1 8290 bfd_arch_mcore, 8291 bfd_arch_mep, 8292 #define bfd_mach_mep 1 8293 #define bfd_mach_mep_h1 0x6831 8294 #define bfd_mach_mep_c5 0x6335 8295 bfd_arch_metag, 8296 #define bfd_mach_metag 1 8297 bfd_arch_ia64, /* HP/Intel ia64 */ 8298 #define bfd_mach_ia64_elf64 64 8299 #define bfd_mach_ia64_elf32 32 8300 bfd_arch_ip2k, /* Ubicom IP2K microcontrollers. */ 8301 #define bfd_mach_ip2022 1 8302 #define bfd_mach_ip2022ext 2 8303 bfd_arch_iq2000, /* Vitesse IQ2000. */ 8304 #define bfd_mach_iq2000 1 8305 #define bfd_mach_iq10 2 8306 bfd_arch_epiphany, /* Adapteva EPIPHANY */ 8307 #define bfd_mach_epiphany16 1 8308 #define bfd_mach_epiphany32 2 8309 bfd_arch_mt, 8310 #define bfd_mach_ms1 1 8311 #define bfd_mach_mrisc2 2 8312 #define bfd_mach_ms2 3 8313 bfd_arch_pj, 8314 bfd_arch_avr, /* Atmel AVR microcontrollers. */ 8315 #define bfd_mach_avr1 1 8316 #define bfd_mach_avr2 2 8317 #define bfd_mach_avr25 25 8318 #define bfd_mach_avr3 3 8319 #define bfd_mach_avr31 31 8320 #define bfd_mach_avr35 35 8321 #define bfd_mach_avr4 4 8322 #define bfd_mach_avr5 5 8323 #define bfd_mach_avr51 51 8324 #define bfd_mach_avr6 6 8325 #define bfd_mach_avrtiny 100 8326 #define bfd_mach_avrxmega1 101 8327 #define bfd_mach_avrxmega2 102 8328 #define bfd_mach_avrxmega3 103 8329 #define bfd_mach_avrxmega4 104 8330 #define bfd_mach_avrxmega5 105 8331 #define bfd_mach_avrxmega6 106 8332 #define bfd_mach_avrxmega7 107 8333 bfd_arch_bfin, /* ADI Blackfin */ 8334 #define bfd_mach_bfin 1 8335 bfd_arch_cr16, /* National Semiconductor CompactRISC (ie CR16). */ 8336 #define bfd_mach_cr16 1 8337 bfd_arch_cr16c, /* National Semiconductor CompactRISC. */ 8338 #define bfd_mach_cr16c 1 8339 bfd_arch_crx, /* National Semiconductor CRX. */ 8340 #define bfd_mach_crx 1 8341 bfd_arch_cris, /* Axis CRIS */ 8342 #define bfd_mach_cris_v0_v10 255 8343 #define bfd_mach_cris_v32 32 8344 #define bfd_mach_cris_v10_v32 1032 8345 bfd_arch_rl78, 8346 #define bfd_mach_rl78 0x75 8347 bfd_arch_rx, /* Renesas RX. */ 8348 #define bfd_mach_rx 0x75 8349 bfd_arch_s390, /* IBM s390 */ 8350 #define bfd_mach_s390_31 31 8351 #define bfd_mach_s390_64 64 8352 bfd_arch_score, /* Sunplus score */ 8353 #define bfd_mach_score3 3 8354 #define bfd_mach_score7 7 8355 bfd_arch_mmix, /* Donald Knuth's educational processor. */ 8356 bfd_arch_xstormy16, 8357 #define bfd_mach_xstormy16 1 8358 bfd_arch_msp430, /* Texas Instruments MSP430 architecture. */ 8359 #define bfd_mach_msp11 11 8360 #define bfd_mach_msp110 110 8361 #define bfd_mach_msp12 12 8362 #define bfd_mach_msp13 13 8363 #define bfd_mach_msp14 14 8364 #define bfd_mach_msp15 15 8365 #define bfd_mach_msp16 16 8366 #define bfd_mach_msp20 20 8367 #define bfd_mach_msp21 21 8368 #define bfd_mach_msp22 22 8369 #define bfd_mach_msp23 23 8370 #define bfd_mach_msp24 24 8371 #define bfd_mach_msp26 26 8372 #define bfd_mach_msp31 31 8373 #define bfd_mach_msp32 32 8374 #define bfd_mach_msp33 33 8375 #define bfd_mach_msp41 41 8376 #define bfd_mach_msp42 42 8377 #define bfd_mach_msp43 43 8378 #define bfd_mach_msp44 44 8379 #define bfd_mach_msp430x 45 8380 #define bfd_mach_msp46 46 8381 #define bfd_mach_msp47 47 8382 #define bfd_mach_msp54 54 8383 bfd_arch_xc16x, /* Infineon's XC16X Series. */ 8384 #define bfd_mach_xc16x 1 8385 #define bfd_mach_xc16xl 2 8386 #define bfd_mach_xc16xs 3 8387 bfd_arch_xgate, /* Freescale XGATE */ 8388 #define bfd_mach_xgate 1 8389 bfd_arch_xtensa, /* Tensilica's Xtensa cores. */ 8390 #define bfd_mach_xtensa 1 8391 bfd_arch_z80, 8392 #define bfd_mach_z80strict 1 /* No undocumented opcodes. */ 8393 #define bfd_mach_z80 3 /* With ixl, ixh, iyl, and iyh. */ 8394 #define bfd_mach_z80full 7 /* All undocumented instructions. */ 8395 #define bfd_mach_r800 11 /* R800: successor with multiplication. */ 8396 bfd_arch_lm32, /* Lattice Mico32 */ 8397 #define bfd_mach_lm32 1 8398 bfd_arch_microblaze,/* Xilinx MicroBlaze. */ 8399 bfd_arch_tilepro, /* Tilera TILEPro */ 8400 bfd_arch_tilegx, /* Tilera TILE-Gx */ 8401 #define bfd_mach_tilepro 1 8402 #define bfd_mach_tilegx 1 8403 #define bfd_mach_tilegx32 2 8404 bfd_arch_aarch64, /* AArch64 */ 8405 #define bfd_mach_aarch64 0 8406 #define bfd_mach_aarch64_ilp32 32 8407 bfd_arch_nios2, /* Nios II */ 8408 #define bfd_mach_nios2 0 8409 #define bfd_mach_nios2r1 1 8410 #define bfd_mach_nios2r2 2 8411 bfd_arch_visium, /* Visium */ 8412 #define bfd_mach_visium 1 8413 bfd_arch_last 8414 }; 8415 84162.13.2 bfd_arch_info 8417-------------------- 8418 8419*Description* 8420This structure contains information on architectures for use within BFD. 8421 8422 typedef struct bfd_arch_info 8423 { 8424 int bits_per_word; 8425 int bits_per_address; 8426 int bits_per_byte; 8427 enum bfd_architecture arch; 8428 unsigned long mach; 8429 const char *arch_name; 8430 const char *printable_name; 8431 unsigned int section_align_power; 8432 /* TRUE if this is the default machine for the architecture. 8433 The default arch should be the first entry for an arch so that 8434 all the entries for that arch can be accessed via `next'. */ 8435 bfd_boolean the_default; 8436 const struct bfd_arch_info * (*compatible) 8437 (const struct bfd_arch_info *a, const struct bfd_arch_info *b); 8438 8439 bfd_boolean (*scan) (const struct bfd_arch_info *, const char *); 8440 8441 /* Allocate via bfd_malloc and return a fill buffer of size COUNT. If 8442 IS_BIGENDIAN is TRUE, the order of bytes is big endian. If CODE is 8443 TRUE, the buffer contains code. */ 8444 void *(*fill) (bfd_size_type count, bfd_boolean is_bigendian, 8445 bfd_boolean code); 8446 8447 const struct bfd_arch_info *next; 8448 } 8449 bfd_arch_info_type; 8450 84512.13.2.1 `bfd_printable_name' 8452............................. 8453 8454*Synopsis* 8455 const char *bfd_printable_name (bfd *abfd); 8456 *Description* 8457Return a printable string representing the architecture and machine 8458from the pointer to the architecture info structure. 8459 84602.13.2.2 `bfd_scan_arch' 8461........................ 8462 8463*Synopsis* 8464 const bfd_arch_info_type *bfd_scan_arch (const char *string); 8465 *Description* 8466Figure out if BFD supports any cpu which could be described with the 8467name STRING. Return a pointer to an `arch_info' structure if a machine 8468is found, otherwise NULL. 8469 84702.13.2.3 `bfd_arch_list' 8471........................ 8472 8473*Synopsis* 8474 const char **bfd_arch_list (void); 8475 *Description* 8476Return a freshly malloced NULL-terminated vector of the names of all 8477the valid BFD architectures. Do not modify the names. 8478 84792.13.2.4 `bfd_arch_get_compatible' 8480.................................. 8481 8482*Synopsis* 8483 const bfd_arch_info_type *bfd_arch_get_compatible 8484 (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns); 8485 *Description* 8486Determine whether two BFDs' architectures and machine types are 8487compatible. Calculates the lowest common denominator between the two 8488architectures and machine types implied by the BFDs and returns a 8489pointer to an `arch_info' structure describing the compatible machine. 8490 84912.13.2.5 `bfd_default_arch_struct' 8492.................................. 8493 8494*Description* 8495The `bfd_default_arch_struct' is an item of `bfd_arch_info_type' which 8496has been initialized to a fairly generic state. A BFD starts life by 8497pointing to this structure, until the correct back end has determined 8498the real architecture of the file. 8499 extern const bfd_arch_info_type bfd_default_arch_struct; 8500 85012.13.2.6 `bfd_set_arch_info' 8502............................ 8503 8504*Synopsis* 8505 void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg); 8506 *Description* 8507Set the architecture info of ABFD to ARG. 8508 85092.13.2.7 `bfd_default_set_arch_mach' 8510.................................... 8511 8512*Synopsis* 8513 bfd_boolean bfd_default_set_arch_mach 8514 (bfd *abfd, enum bfd_architecture arch, unsigned long mach); 8515 *Description* 8516Set the architecture and machine type in BFD ABFD to ARCH and MACH. 8517Find the correct pointer to a structure and insert it into the 8518`arch_info' pointer. 8519 85202.13.2.8 `bfd_get_arch' 8521....................... 8522 8523*Synopsis* 8524 enum bfd_architecture bfd_get_arch (bfd *abfd); 8525 *Description* 8526Return the enumerated type which describes the BFD ABFD's architecture. 8527 85282.13.2.9 `bfd_get_mach' 8529....................... 8530 8531*Synopsis* 8532 unsigned long bfd_get_mach (bfd *abfd); 8533 *Description* 8534Return the long type which describes the BFD ABFD's machine. 8535 85362.13.2.10 `bfd_arch_bits_per_byte' 8537.................................. 8538 8539*Synopsis* 8540 unsigned int bfd_arch_bits_per_byte (bfd *abfd); 8541 *Description* 8542Return the number of bits in one of the BFD ABFD's architecture's bytes. 8543 85442.13.2.11 `bfd_arch_bits_per_address' 8545..................................... 8546 8547*Synopsis* 8548 unsigned int bfd_arch_bits_per_address (bfd *abfd); 8549 *Description* 8550Return the number of bits in one of the BFD ABFD's architecture's 8551addresses. 8552 85532.13.2.12 `bfd_default_compatible' 8554.................................. 8555 8556*Synopsis* 8557 const bfd_arch_info_type *bfd_default_compatible 8558 (const bfd_arch_info_type *a, const bfd_arch_info_type *b); 8559 *Description* 8560The default function for testing for compatibility. 8561 85622.13.2.13 `bfd_default_scan' 8563............................ 8564 8565*Synopsis* 8566 bfd_boolean bfd_default_scan 8567 (const struct bfd_arch_info *info, const char *string); 8568 *Description* 8569The default function for working out whether this is an architecture 8570hit and a machine hit. 8571 85722.13.2.14 `bfd_get_arch_info' 8573............................. 8574 8575*Synopsis* 8576 const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd); 8577 *Description* 8578Return the architecture info struct in ABFD. 8579 85802.13.2.15 `bfd_lookup_arch' 8581........................... 8582 8583*Synopsis* 8584 const bfd_arch_info_type *bfd_lookup_arch 8585 (enum bfd_architecture arch, unsigned long machine); 8586 *Description* 8587Look for the architecture info structure which matches the arguments 8588ARCH and MACHINE. A machine of 0 matches the machine/architecture 8589structure which marks itself as the default. 8590 85912.13.2.16 `bfd_printable_arch_mach' 8592................................... 8593 8594*Synopsis* 8595 const char *bfd_printable_arch_mach 8596 (enum bfd_architecture arch, unsigned long machine); 8597 *Description* 8598Return a printable string representing the architecture and machine 8599type. 8600 8601 This routine is depreciated. 8602 86032.13.2.17 `bfd_octets_per_byte' 8604............................... 8605 8606*Synopsis* 8607 unsigned int bfd_octets_per_byte (bfd *abfd); 8608 *Description* 8609Return the number of octets (8-bit quantities) per target byte (minimum 8610addressable unit). In most cases, this will be one, but some DSP 8611targets have 16, 32, or even 48 bits per byte. 8612 86132.13.2.18 `bfd_arch_mach_octets_per_byte' 8614......................................... 8615 8616*Synopsis* 8617 unsigned int bfd_arch_mach_octets_per_byte 8618 (enum bfd_architecture arch, unsigned long machine); 8619 *Description* 8620See bfd_octets_per_byte. 8621 8622 This routine is provided for those cases where a bfd * is not 8623available 8624 86252.13.2.19 `bfd_arch_default_fill' 8626................................. 8627 8628*Synopsis* 8629 void *bfd_arch_default_fill (bfd_size_type count, 8630 bfd_boolean is_bigendian, 8631 bfd_boolean code); 8632 *Description* 8633Allocate via bfd_malloc and return a fill buffer of size COUNT. If 8634IS_BIGENDIAN is TRUE, the order of bytes is big endian. If CODE is 8635TRUE, the buffer contains code. 8636 8637 8638File: bfd.info, Node: Opening and Closing, Next: Internal, Prev: Architectures, Up: BFD front end 8639 8640 /* Set to N to open the next N BFDs using an alternate id space. */ 8641 extern unsigned int bfd_use_reserved_id; 8642 86432.14 Opening and closing BFDs 8644============================= 8645 86462.14.1 Functions for opening and closing 8647---------------------------------------- 8648 86492.14.1.1 `bfd_fopen' 8650.................... 8651 8652*Synopsis* 8653 bfd *bfd_fopen (const char *filename, const char *target, 8654 const char *mode, int fd); 8655 *Description* 8656Open the file FILENAME with the target TARGET. Return a pointer to the 8657created BFD. If FD is not -1, then `fdopen' is used to open the file; 8658otherwise, `fopen' is used. MODE is passed directly to `fopen' or 8659`fdopen'. 8660 8661 Calls `bfd_find_target', so TARGET is interpreted as by that 8662function. 8663 8664 The new BFD is marked as cacheable iff FD is -1. 8665 8666 If `NULL' is returned then an error has occured. Possible errors 8667are `bfd_error_no_memory', `bfd_error_invalid_target' or `system_call' 8668error. 8669 8670 On error, FD is always closed. 8671 8672 A copy of the FILENAME argument is stored in the newly created BFD. 8673It can be accessed via the bfd_get_filename() macro. 8674 86752.14.1.2 `bfd_openr' 8676.................... 8677 8678*Synopsis* 8679 bfd *bfd_openr (const char *filename, const char *target); 8680 *Description* 8681Open the file FILENAME (using `fopen') with the target TARGET. Return 8682a pointer to the created BFD. 8683 8684 Calls `bfd_find_target', so TARGET is interpreted as by that 8685function. 8686 8687 If `NULL' is returned then an error has occured. Possible errors 8688are `bfd_error_no_memory', `bfd_error_invalid_target' or `system_call' 8689error. 8690 8691 A copy of the FILENAME argument is stored in the newly created BFD. 8692It can be accessed via the bfd_get_filename() macro. 8693 86942.14.1.3 `bfd_fdopenr' 8695...................... 8696 8697*Synopsis* 8698 bfd *bfd_fdopenr (const char *filename, const char *target, int fd); 8699 *Description* 8700`bfd_fdopenr' is to `bfd_fopenr' much like `fdopen' is to `fopen'. It 8701opens a BFD on a file already described by the FD supplied. 8702 8703 When the file is later `bfd_close'd, the file descriptor will be 8704closed. If the caller desires that this file descriptor be cached by 8705BFD (opened as needed, closed as needed to free descriptors for other 8706opens), with the supplied FD used as an initial file descriptor (but 8707subject to closure at any time), call bfd_set_cacheable(bfd, 1) on the 8708returned BFD. The default is to assume no caching; the file descriptor 8709will remain open until `bfd_close', and will not be affected by BFD 8710operations on other files. 8711 8712 Possible errors are `bfd_error_no_memory', 8713`bfd_error_invalid_target' and `bfd_error_system_call'. 8714 8715 On error, FD is closed. 8716 8717 A copy of the FILENAME argument is stored in the newly created BFD. 8718It can be accessed via the bfd_get_filename() macro. 8719 87202.14.1.4 `bfd_openstreamr' 8721.......................... 8722 8723*Synopsis* 8724 bfd *bfd_openstreamr (const char * filename, const char * target, void * stream); 8725 *Description* 8726Open a BFD for read access on an existing stdio stream. When the BFD 8727is passed to `bfd_close', the stream will be closed. 8728 8729 A copy of the FILENAME argument is stored in the newly created BFD. 8730It can be accessed via the bfd_get_filename() macro. 8731 87322.14.1.5 `bfd_openr_iovec' 8733.......................... 8734 8735*Synopsis* 8736 bfd *bfd_openr_iovec (const char *filename, const char *target, 8737 void *(*open_func) (struct bfd *nbfd, 8738 void *open_closure), 8739 void *open_closure, 8740 file_ptr (*pread_func) (struct bfd *nbfd, 8741 void *stream, 8742 void *buf, 8743 file_ptr nbytes, 8744 file_ptr offset), 8745 int (*close_func) (struct bfd *nbfd, 8746 void *stream), 8747 int (*stat_func) (struct bfd *abfd, 8748 void *stream, 8749 struct stat *sb)); 8750 *Description* 8751Create and return a BFD backed by a read-only STREAM. The STREAM is 8752created using OPEN_FUNC, accessed using PREAD_FUNC and destroyed using 8753CLOSE_FUNC. 8754 8755 Calls `bfd_find_target', so TARGET is interpreted as by that 8756function. 8757 8758 Calls OPEN_FUNC (which can call `bfd_zalloc' and `bfd_get_filename') 8759to obtain the read-only stream backing the BFD. OPEN_FUNC either 8760succeeds returning the non-`NULL' STREAM, or fails returning `NULL' 8761(setting `bfd_error'). 8762 8763 Calls PREAD_FUNC to request NBYTES of data from STREAM starting at 8764OFFSET (e.g., via a call to `bfd_read'). PREAD_FUNC either succeeds 8765returning the number of bytes read (which can be less than NBYTES when 8766end-of-file), or fails returning -1 (setting `bfd_error'). 8767 8768 Calls CLOSE_FUNC when the BFD is later closed using `bfd_close'. 8769CLOSE_FUNC either succeeds returning 0, or fails returning -1 (setting 8770`bfd_error'). 8771 8772 Calls STAT_FUNC to fill in a stat structure for bfd_stat, 8773bfd_get_size, and bfd_get_mtime calls. STAT_FUNC returns 0 on success, 8774or returns -1 on failure (setting `bfd_error'). 8775 8776 If `bfd_openr_iovec' returns `NULL' then an error has occurred. 8777Possible errors are `bfd_error_no_memory', `bfd_error_invalid_target' 8778and `bfd_error_system_call'. 8779 8780 A copy of the FILENAME argument is stored in the newly created BFD. 8781It can be accessed via the bfd_get_filename() macro. 8782 87832.14.1.6 `bfd_openw' 8784.................... 8785 8786*Synopsis* 8787 bfd *bfd_openw (const char *filename, const char *target); 8788 *Description* 8789Create a BFD, associated with file FILENAME, using the file format 8790TARGET, and return a pointer to it. 8791 8792 Possible errors are `bfd_error_system_call', `bfd_error_no_memory', 8793`bfd_error_invalid_target'. 8794 8795 A copy of the FILENAME argument is stored in the newly created BFD. 8796It can be accessed via the bfd_get_filename() macro. 8797 87982.14.1.7 `bfd_close' 8799.................... 8800 8801*Synopsis* 8802 bfd_boolean bfd_close (bfd *abfd); 8803 *Description* 8804Close a BFD. If the BFD was open for writing, then pending operations 8805are completed and the file written out and closed. If the created file 8806is executable, then `chmod' is called to mark it as such. 8807 8808 All memory attached to the BFD is released. 8809 8810 The file descriptor associated with the BFD is closed (even if it 8811was passed in to BFD by `bfd_fdopenr'). 8812 8813 *Returns* 8814`TRUE' is returned if all is ok, otherwise `FALSE'. 8815 88162.14.1.8 `bfd_close_all_done' 8817............................. 8818 8819*Synopsis* 8820 bfd_boolean bfd_close_all_done (bfd *); 8821 *Description* 8822Close a BFD. Differs from `bfd_close' since it does not complete any 8823pending operations. This routine would be used if the application had 8824just used BFD for swapping and didn't want to use any of the writing 8825code. 8826 8827 If the created file is executable, then `chmod' is called to mark it 8828as such. 8829 8830 All memory attached to the BFD is released. 8831 8832 *Returns* 8833`TRUE' is returned if all is ok, otherwise `FALSE'. 8834 88352.14.1.9 `bfd_create' 8836..................... 8837 8838*Synopsis* 8839 bfd *bfd_create (const char *filename, bfd *templ); 8840 *Description* 8841Create a new BFD in the manner of `bfd_openw', but without opening a 8842file. The new BFD takes the target from the target used by TEMPL. The 8843format is always set to `bfd_object'. 8844 8845 A copy of the FILENAME argument is stored in the newly created BFD. 8846It can be accessed via the bfd_get_filename() macro. 8847 88482.14.1.10 `bfd_make_writable' 8849............................. 8850 8851*Synopsis* 8852 bfd_boolean bfd_make_writable (bfd *abfd); 8853 *Description* 8854Takes a BFD as created by `bfd_create' and converts it into one like as 8855returned by `bfd_openw'. It does this by converting the BFD to 8856BFD_IN_MEMORY. It's assumed that you will call `bfd_make_readable' on 8857this bfd later. 8858 8859 *Returns* 8860`TRUE' is returned if all is ok, otherwise `FALSE'. 8861 88622.14.1.11 `bfd_make_readable' 8863............................. 8864 8865*Synopsis* 8866 bfd_boolean bfd_make_readable (bfd *abfd); 8867 *Description* 8868Takes a BFD as created by `bfd_create' and `bfd_make_writable' and 8869converts it into one like as returned by `bfd_openr'. It does this by 8870writing the contents out to the memory buffer, then reversing the 8871direction. 8872 8873 *Returns* 8874`TRUE' is returned if all is ok, otherwise `FALSE'. 8875 88762.14.1.12 `bfd_alloc' 8877..................... 8878 8879*Synopsis* 8880 void *bfd_alloc (bfd *abfd, bfd_size_type wanted); 8881 *Description* 8882Allocate a block of WANTED bytes of memory attached to `abfd' and 8883return a pointer to it. 8884 88852.14.1.13 `bfd_alloc2' 8886...................... 8887 8888*Synopsis* 8889 void *bfd_alloc2 (bfd *abfd, bfd_size_type nmemb, bfd_size_type size); 8890 *Description* 8891Allocate a block of NMEMB elements of SIZE bytes each of memory 8892attached to `abfd' and return a pointer to it. 8893 88942.14.1.14 `bfd_zalloc' 8895...................... 8896 8897*Synopsis* 8898 void *bfd_zalloc (bfd *abfd, bfd_size_type wanted); 8899 *Description* 8900Allocate a block of WANTED bytes of zeroed memory attached to `abfd' 8901and return a pointer to it. 8902 89032.14.1.15 `bfd_zalloc2' 8904....................... 8905 8906*Synopsis* 8907 void *bfd_zalloc2 (bfd *abfd, bfd_size_type nmemb, bfd_size_type size); 8908 *Description* 8909Allocate a block of NMEMB elements of SIZE bytes each of zeroed memory 8910attached to `abfd' and return a pointer to it. 8911 89122.14.1.16 `bfd_calc_gnu_debuglink_crc32' 8913........................................ 8914 8915*Synopsis* 8916 unsigned long bfd_calc_gnu_debuglink_crc32 8917 (unsigned long crc, const unsigned char *buf, bfd_size_type len); 8918 *Description* 8919Computes a CRC value as used in the .gnu_debuglink section. Advances 8920the previously computed CRC value by computing and adding in the crc32 8921for LEN bytes of BUF. 8922 8923 *Returns* 8924Return the updated CRC32 value. 8925 89262.14.1.17 `bfd_get_debug_link_info' 8927................................... 8928 8929*Synopsis* 8930 char *bfd_get_debug_link_info (bfd *abfd, unsigned long *crc32_out); 8931 *Description* 8932Fetch the filename and CRC32 value for any separate debuginfo 8933associated with ABFD. Return NULL if no such info found, otherwise 8934return filename and update CRC32_OUT. The returned filename is 8935allocated with `malloc'; freeing it is the responsibility of the caller. 8936 89372.14.1.18 `bfd_get_alt_debug_link_info' 8938....................................... 8939 8940*Synopsis* 8941 char *bfd_get_alt_debug_link_info (bfd * abfd, 8942 bfd_size_type *buildid_len, 8943 bfd_byte **buildid_out); 8944 *Description* 8945Fetch the filename and BuildID value for any alternate debuginfo 8946associated with ABFD. Return NULL if no such info found, otherwise 8947return filename and update BUILDID_LEN and BUILDID_OUT. The returned 8948filename and build_id are allocated with `malloc'; freeing them is the 8949responsibility of the caller. 8950 89512.14.1.19 `separate_debug_file_exists' 8952...................................... 8953 8954*Synopsis* 8955 bfd_boolean separate_debug_file_exists 8956 (char *name, unsigned long crc32); 8957 *Description* 8958Checks to see if NAME is a file and if its contents match CRC32. 8959 89602.14.1.20 `separate_alt_debug_file_exists' 8961.......................................... 8962 8963*Synopsis* 8964 bfd_boolean separate_alt_debug_file_exists 8965 (char *name, unsigned long crc32); 8966 *Description* 8967Checks to see if NAME is a file and if its BuildID matches BUILDID. 8968 89692.14.1.21 `find_separate_debug_file' 8970.................................... 8971 8972*Synopsis* 8973 char *find_separate_debug_file (bfd *abfd); 8974 *Description* 8975Searches ABFD for a section called SECTION_NAME which is expected to 8976contain a reference to a file containing separate debugging 8977information. The function scans various locations in the filesystem, 8978including the file tree rooted at DEBUG_FILE_DIRECTORY, and returns the 8979first matching filename that it finds. If CHECK_CRC is TRUE then the 8980contents of the file must also match the CRC value contained in 8981SECTION_NAME. Returns NULL if no valid file could be found. 8982 89832.14.1.22 `bfd_follow_gnu_debuglink' 8984.................................... 8985 8986*Synopsis* 8987 char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir); 8988 *Description* 8989Takes a BFD and searches it for a .gnu_debuglink section. If this 8990section is found, it examines the section for the name and checksum of 8991a '.debug' file containing auxiliary debugging information. It then 8992searches the filesystem for this .debug file in some standard 8993locations, including the directory tree rooted at DIR, and if found 8994returns the full filename. 8995 8996 If DIR is NULL, it will search a default path configured into libbfd 8997at build time. [XXX this feature is not currently implemented]. 8998 8999 *Returns* 9000`NULL' on any errors or failure to locate the .debug file, otherwise a 9001pointer to a heap-allocated string containing the filename. The caller 9002is responsible for freeing this string. 9003 90042.14.1.23 `bfd_follow_gnu_debugaltlink' 9005....................................... 9006 9007*Synopsis* 9008 char *bfd_follow_gnu_debugaltlink (bfd *abfd, const char *dir); 9009 *Description* 9010Takes a BFD and searches it for a .gnu_debugaltlink section. If this 9011section is found, it examines the section for the name of a file 9012containing auxiliary debugging information. It then searches the 9013filesystem for this file in a set of standard locations, including the 9014directory tree rooted at DIR, and if found returns the full filename. 9015 9016 If DIR is NULL, it will search a default path configured into libbfd 9017at build time. [FIXME: This feature is not currently implemented]. 9018 9019 *Returns* 9020`NULL' on any errors or failure to locate the debug file, otherwise a 9021pointer to a heap-allocated string containing the filename. The caller 9022is responsible for freeing this string. 9023 90242.14.1.24 `bfd_create_gnu_debuglink_section' 9025............................................ 9026 9027*Synopsis* 9028 struct bfd_section *bfd_create_gnu_debuglink_section 9029 (bfd *abfd, const char *filename); 9030 *Description* 9031Takes a BFD and adds a .gnu_debuglink section to it. The section is 9032sized to be big enough to contain a link to the specified FILENAME. 9033 9034 *Returns* 9035A pointer to the new section is returned if all is ok. Otherwise 9036`NULL' is returned and bfd_error is set. 9037 90382.14.1.25 `bfd_fill_in_gnu_debuglink_section' 9039............................................. 9040 9041*Synopsis* 9042 bfd_boolean bfd_fill_in_gnu_debuglink_section 9043 (bfd *abfd, struct bfd_section *sect, const char *filename); 9044 *Description* 9045Takes a BFD and containing a .gnu_debuglink section SECT and fills in 9046the contents of the section to contain a link to the specified 9047FILENAME. The filename should be relative to the current directory. 9048 9049 *Returns* 9050`TRUE' is returned if all is ok. Otherwise `FALSE' is returned and 9051bfd_error is set. 9052 9053 9054File: bfd.info, Node: Internal, Next: File Caching, Prev: Opening and Closing, Up: BFD front end 9055 90562.15 Implementation details 9057=========================== 9058 90592.15.1 Internal functions 9060------------------------- 9061 9062*Description* 9063These routines are used within BFD. They are not intended for export, 9064but are documented here for completeness. 9065 90662.15.1.1 `bfd_write_bigendian_4byte_int' 9067........................................ 9068 9069*Synopsis* 9070 bfd_boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int); 9071 *Description* 9072Write a 4 byte integer I to the output BFD ABFD, in big endian order 9073regardless of what else is going on. This is useful in archives. 9074 90752.15.1.2 `bfd_put_size' 9076....................... 9077 90782.15.1.3 `bfd_get_size' 9079....................... 9080 9081*Description* 9082These macros as used for reading and writing raw data in sections; each 9083access (except for bytes) is vectored through the target format of the 9084BFD and mangled accordingly. The mangling performs any necessary endian 9085translations and removes alignment restrictions. Note that types 9086accepted and returned by these macros are identical so they can be 9087swapped around in macros--for example, `libaout.h' defines `GET_WORD' 9088to either `bfd_get_32' or `bfd_get_64'. 9089 9090 In the put routines, VAL must be a `bfd_vma'. If we are on a system 9091without prototypes, the caller is responsible for making sure that is 9092true, with a cast if necessary. We don't cast them in the macro 9093definitions because that would prevent `lint' or `gcc -Wall' from 9094detecting sins such as passing a pointer. To detect calling these with 9095less than a `bfd_vma', use `gcc -Wconversion' on a host with 64 bit 9096`bfd_vma''s. 9097 9098 /* Byte swapping macros for user section data. */ 9099 9100 #define bfd_put_8(abfd, val, ptr) \ 9101 ((void) (*((unsigned char *) (ptr)) = (val) & 0xff)) 9102 #define bfd_put_signed_8 \ 9103 bfd_put_8 9104 #define bfd_get_8(abfd, ptr) \ 9105 (*(const unsigned char *) (ptr) & 0xff) 9106 #define bfd_get_signed_8(abfd, ptr) \ 9107 (((*(const unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80) 9108 9109 #define bfd_put_16(abfd, val, ptr) \ 9110 BFD_SEND (abfd, bfd_putx16, ((val),(ptr))) 9111 #define bfd_put_signed_16 \ 9112 bfd_put_16 9113 #define bfd_get_16(abfd, ptr) \ 9114 BFD_SEND (abfd, bfd_getx16, (ptr)) 9115 #define bfd_get_signed_16(abfd, ptr) \ 9116 BFD_SEND (abfd, bfd_getx_signed_16, (ptr)) 9117 9118 #define bfd_put_32(abfd, val, ptr) \ 9119 BFD_SEND (abfd, bfd_putx32, ((val),(ptr))) 9120 #define bfd_put_signed_32 \ 9121 bfd_put_32 9122 #define bfd_get_32(abfd, ptr) \ 9123 BFD_SEND (abfd, bfd_getx32, (ptr)) 9124 #define bfd_get_signed_32(abfd, ptr) \ 9125 BFD_SEND (abfd, bfd_getx_signed_32, (ptr)) 9126 9127 #define bfd_put_64(abfd, val, ptr) \ 9128 BFD_SEND (abfd, bfd_putx64, ((val), (ptr))) 9129 #define bfd_put_signed_64 \ 9130 bfd_put_64 9131 #define bfd_get_64(abfd, ptr) \ 9132 BFD_SEND (abfd, bfd_getx64, (ptr)) 9133 #define bfd_get_signed_64(abfd, ptr) \ 9134 BFD_SEND (abfd, bfd_getx_signed_64, (ptr)) 9135 9136 #define bfd_get(bits, abfd, ptr) \ 9137 ((bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr) \ 9138 : (bits) == 16 ? bfd_get_16 (abfd, ptr) \ 9139 : (bits) == 32 ? bfd_get_32 (abfd, ptr) \ 9140 : (bits) == 64 ? bfd_get_64 (abfd, ptr) \ 9141 : (abort (), (bfd_vma) - 1)) 9142 9143 #define bfd_put(bits, abfd, val, ptr) \ 9144 ((bits) == 8 ? bfd_put_8 (abfd, val, ptr) \ 9145 : (bits) == 16 ? bfd_put_16 (abfd, val, ptr) \ 9146 : (bits) == 32 ? bfd_put_32 (abfd, val, ptr) \ 9147 : (bits) == 64 ? bfd_put_64 (abfd, val, ptr) \ 9148 : (abort (), (void) 0)) 9149 91502.15.1.4 `bfd_h_put_size' 9151......................... 9152 9153*Description* 9154These macros have the same function as their `bfd_get_x' brethren, 9155except that they are used for removing information for the header 9156records of object files. Believe it or not, some object files keep 9157their header records in big endian order and their data in little 9158endian order. 9159 9160 /* Byte swapping macros for file header data. */ 9161 9162 #define bfd_h_put_8(abfd, val, ptr) \ 9163 bfd_put_8 (abfd, val, ptr) 9164 #define bfd_h_put_signed_8(abfd, val, ptr) \ 9165 bfd_put_8 (abfd, val, ptr) 9166 #define bfd_h_get_8(abfd, ptr) \ 9167 bfd_get_8 (abfd, ptr) 9168 #define bfd_h_get_signed_8(abfd, ptr) \ 9169 bfd_get_signed_8 (abfd, ptr) 9170 9171 #define bfd_h_put_16(abfd, val, ptr) \ 9172 BFD_SEND (abfd, bfd_h_putx16, (val, ptr)) 9173 #define bfd_h_put_signed_16 \ 9174 bfd_h_put_16 9175 #define bfd_h_get_16(abfd, ptr) \ 9176 BFD_SEND (abfd, bfd_h_getx16, (ptr)) 9177 #define bfd_h_get_signed_16(abfd, ptr) \ 9178 BFD_SEND (abfd, bfd_h_getx_signed_16, (ptr)) 9179 9180 #define bfd_h_put_32(abfd, val, ptr) \ 9181 BFD_SEND (abfd, bfd_h_putx32, (val, ptr)) 9182 #define bfd_h_put_signed_32 \ 9183 bfd_h_put_32 9184 #define bfd_h_get_32(abfd, ptr) \ 9185 BFD_SEND (abfd, bfd_h_getx32, (ptr)) 9186 #define bfd_h_get_signed_32(abfd, ptr) \ 9187 BFD_SEND (abfd, bfd_h_getx_signed_32, (ptr)) 9188 9189 #define bfd_h_put_64(abfd, val, ptr) \ 9190 BFD_SEND (abfd, bfd_h_putx64, (val, ptr)) 9191 #define bfd_h_put_signed_64 \ 9192 bfd_h_put_64 9193 #define bfd_h_get_64(abfd, ptr) \ 9194 BFD_SEND (abfd, bfd_h_getx64, (ptr)) 9195 #define bfd_h_get_signed_64(abfd, ptr) \ 9196 BFD_SEND (abfd, bfd_h_getx_signed_64, (ptr)) 9197 9198 /* Aliases for the above, which should eventually go away. */ 9199 9200 #define H_PUT_64 bfd_h_put_64 9201 #define H_PUT_32 bfd_h_put_32 9202 #define H_PUT_16 bfd_h_put_16 9203 #define H_PUT_8 bfd_h_put_8 9204 #define H_PUT_S64 bfd_h_put_signed_64 9205 #define H_PUT_S32 bfd_h_put_signed_32 9206 #define H_PUT_S16 bfd_h_put_signed_16 9207 #define H_PUT_S8 bfd_h_put_signed_8 9208 #define H_GET_64 bfd_h_get_64 9209 #define H_GET_32 bfd_h_get_32 9210 #define H_GET_16 bfd_h_get_16 9211 #define H_GET_8 bfd_h_get_8 9212 #define H_GET_S64 bfd_h_get_signed_64 9213 #define H_GET_S32 bfd_h_get_signed_32 9214 #define H_GET_S16 bfd_h_get_signed_16 9215 #define H_GET_S8 bfd_h_get_signed_8 9216 92172.15.1.5 `bfd_log2' 9218................... 9219 9220*Synopsis* 9221 unsigned int bfd_log2 (bfd_vma x); 9222 *Description* 9223Return the log base 2 of the value supplied, rounded up. E.g., an X of 92241025 returns 11. A X of 0 returns 0. 9225 9226 9227File: bfd.info, Node: File Caching, Next: Linker Functions, Prev: Internal, Up: BFD front end 9228 92292.16 File caching 9230================= 9231 9232The file caching mechanism is embedded within BFD and allows the 9233application to open as many BFDs as it wants without regard to the 9234underlying operating system's file descriptor limit (often as low as 20 9235open files). The module in `cache.c' maintains a least recently used 9236list of `bfd_cache_max_open' files, and exports the name 9237`bfd_cache_lookup', which runs around and makes sure that the required 9238BFD is open. If not, then it chooses a file to close, closes it and 9239opens the one wanted, returning its file handle. 9240 92412.16.1 Caching functions 9242------------------------ 9243 92442.16.1.1 `bfd_cache_init' 9245......................... 9246 9247*Synopsis* 9248 bfd_boolean bfd_cache_init (bfd *abfd); 9249 *Description* 9250Add a newly opened BFD to the cache. 9251 92522.16.1.2 `bfd_cache_close' 9253.......................... 9254 9255*Synopsis* 9256 bfd_boolean bfd_cache_close (bfd *abfd); 9257 *Description* 9258Remove the BFD ABFD from the cache. If the attached file is open, then 9259close it too. 9260 9261 *Returns* 9262`FALSE' is returned if closing the file fails, `TRUE' is returned if 9263all is well. 9264 92652.16.1.3 `bfd_cache_close_all' 9266.............................. 9267 9268*Synopsis* 9269 bfd_boolean bfd_cache_close_all (void); 9270 *Description* 9271Remove all BFDs from the cache. If the attached file is open, then 9272close it too. 9273 9274 *Returns* 9275`FALSE' is returned if closing one of the file fails, `TRUE' is 9276returned if all is well. 9277 92782.16.1.4 `bfd_open_file' 9279........................ 9280 9281*Synopsis* 9282 FILE* bfd_open_file (bfd *abfd); 9283 *Description* 9284Call the OS to open a file for ABFD. Return the `FILE *' (possibly 9285`NULL') that results from this operation. Set up the BFD so that 9286future accesses know the file is open. If the `FILE *' returned is 9287`NULL', then it won't have been put in the cache, so it won't have to 9288be removed from it. 9289 9290 9291File: bfd.info, Node: Linker Functions, Next: Hash Tables, Prev: File Caching, Up: BFD front end 9292 92932.17 Linker Functions 9294===================== 9295 9296The linker uses three special entry points in the BFD target vector. 9297It is not necessary to write special routines for these entry points 9298when creating a new BFD back end, since generic versions are provided. 9299However, writing them can speed up linking and make it use 9300significantly less runtime memory. 9301 9302 The first routine creates a hash table used by the other routines. 9303The second routine adds the symbols from an object file to the hash 9304table. The third routine takes all the object files and links them 9305together to create the output file. These routines are designed so 9306that the linker proper does not need to know anything about the symbols 9307in the object files that it is linking. The linker merely arranges the 9308sections as directed by the linker script and lets BFD handle the 9309details of symbols and relocs. 9310 9311 The second routine and third routines are passed a pointer to a 9312`struct bfd_link_info' structure (defined in `bfdlink.h') which holds 9313information relevant to the link, including the linker hash table 9314(which was created by the first routine) and a set of callback 9315functions to the linker proper. 9316 9317 The generic linker routines are in `linker.c', and use the header 9318file `genlink.h'. As of this writing, the only back ends which have 9319implemented versions of these routines are a.out (in `aoutx.h') and 9320ECOFF (in `ecoff.c'). The a.out routines are used as examples 9321throughout this section. 9322 9323* Menu: 9324 9325* Creating a Linker Hash Table:: 9326* Adding Symbols to the Hash Table:: 9327* Performing the Final Link:: 9328 9329 9330File: bfd.info, Node: Creating a Linker Hash Table, Next: Adding Symbols to the Hash Table, Prev: Linker Functions, Up: Linker Functions 9331 93322.17.1 Creating a linker hash table 9333----------------------------------- 9334 9335The linker routines must create a hash table, which must be derived 9336from `struct bfd_link_hash_table' described in `bfdlink.c'. *Note Hash 9337Tables::, for information on how to create a derived hash table. This 9338entry point is called using the target vector of the linker output file. 9339 9340 The `_bfd_link_hash_table_create' entry point must allocate and 9341initialize an instance of the desired hash table. If the back end does 9342not require any additional information to be stored with the entries in 9343the hash table, the entry point may simply create a `struct 9344bfd_link_hash_table'. Most likely, however, some additional 9345information will be needed. 9346 9347 For example, with each entry in the hash table the a.out linker 9348keeps the index the symbol has in the final output file (this index 9349number is used so that when doing a relocatable link the symbol index 9350used in the output file can be quickly filled in when copying over a 9351reloc). The a.out linker code defines the required structures and 9352functions for a hash table derived from `struct bfd_link_hash_table'. 9353The a.out linker hash table is created by the function 9354`NAME(aout,link_hash_table_create)'; it simply allocates space for the 9355hash table, initializes it, and returns a pointer to it. 9356 9357 When writing the linker routines for a new back end, you will 9358generally not know exactly which fields will be required until you have 9359finished. You should simply create a new hash table which defines no 9360additional fields, and then simply add fields as they become necessary. 9361 9362 9363File: bfd.info, Node: Adding Symbols to the Hash Table, Next: Performing the Final Link, Prev: Creating a Linker Hash Table, Up: Linker Functions 9364 93652.17.2 Adding symbols to the hash table 9366--------------------------------------- 9367 9368The linker proper will call the `_bfd_link_add_symbols' entry point for 9369each object file or archive which is to be linked (typically these are 9370the files named on the command line, but some may also come from the 9371linker script). The entry point is responsible for examining the file. 9372For an object file, BFD must add any relevant symbol information to 9373the hash table. For an archive, BFD must determine which elements of 9374the archive should be used and adding them to the link. 9375 9376 The a.out version of this entry point is 9377`NAME(aout,link_add_symbols)'. 9378 9379* Menu: 9380 9381* Differing file formats:: 9382* Adding symbols from an object file:: 9383* Adding symbols from an archive:: 9384 9385 9386File: 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 9387 93882.17.2.1 Differing file formats 9389............................... 9390 9391Normally all the files involved in a link will be of the same format, 9392but it is also possible to link together different format object files, 9393and the back end must support that. The `_bfd_link_add_symbols' entry 9394point is called via the target vector of the file to be added. This 9395has an important consequence: the function may not assume that the hash 9396table is the type created by the corresponding 9397`_bfd_link_hash_table_create' vector. All the `_bfd_link_add_symbols' 9398function can assume about the hash table is that it is derived from 9399`struct bfd_link_hash_table'. 9400 9401 Sometimes the `_bfd_link_add_symbols' function must store some 9402information in the hash table entry to be used by the `_bfd_final_link' 9403function. In such a case the output bfd xvec must be checked to make 9404sure that the hash table was created by an object file of the same 9405format. 9406 9407 The `_bfd_final_link' routine must be prepared to handle a hash 9408entry without any extra information added by the 9409`_bfd_link_add_symbols' function. A hash entry without extra 9410information will also occur when the linker script directs the linker 9411to create a symbol. Note that, regardless of how a hash table entry is 9412added, all the fields will be initialized to some sort of null value by 9413the hash table entry initialization function. 9414 9415 See `ecoff_link_add_externals' for an example of how to check the 9416output bfd before saving information (in this case, the ECOFF external 9417symbol debugging information) in a hash table entry. 9418 9419 9420File: 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 9421 94222.17.2.2 Adding symbols from an object file 9423........................................... 9424 9425When the `_bfd_link_add_symbols' routine is passed an object file, it 9426must add all externally visible symbols in that object file to the hash 9427table. The actual work of adding the symbol to the hash table is 9428normally handled by the function `_bfd_generic_link_add_one_symbol'. 9429The `_bfd_link_add_symbols' routine is responsible for reading all the 9430symbols from the object file and passing the correct information to 9431`_bfd_generic_link_add_one_symbol'. 9432 9433 The `_bfd_link_add_symbols' routine should not use 9434`bfd_canonicalize_symtab' to read the symbols. The point of providing 9435this routine is to avoid the overhead of converting the symbols into 9436generic `asymbol' structures. 9437 9438 `_bfd_generic_link_add_one_symbol' handles the details of combining 9439common symbols, warning about multiple definitions, and so forth. It 9440takes arguments which describe the symbol to add, notably symbol flags, 9441a section, and an offset. The symbol flags include such things as 9442`BSF_WEAK' or `BSF_INDIRECT'. The section is a section in the object 9443file, or something like `bfd_und_section_ptr' for an undefined symbol 9444or `bfd_com_section_ptr' for a common symbol. 9445 9446 If the `_bfd_final_link' routine is also going to need to read the 9447symbol information, the `_bfd_link_add_symbols' routine should save it 9448somewhere attached to the object file BFD. However, the information 9449should only be saved if the `keep_memory' field of the `info' argument 9450is TRUE, so that the `-no-keep-memory' linker switch is effective. 9451 9452 The a.out function which adds symbols from an object file is 9453`aout_link_add_object_symbols', and most of the interesting work is in 9454`aout_link_add_symbols'. The latter saves pointers to the hash tables 9455entries created by `_bfd_generic_link_add_one_symbol' indexed by symbol 9456number, so that the `_bfd_final_link' routine does not have to call the 9457hash table lookup routine to locate the entry. 9458 9459 9460File: bfd.info, Node: Adding symbols from an archive, Prev: Adding symbols from an object file, Up: Adding Symbols to the Hash Table 9461 94622.17.2.3 Adding symbols from an archive 9463....................................... 9464 9465When the `_bfd_link_add_symbols' routine is passed an archive, it must 9466look through the symbols defined by the archive and decide which 9467elements of the archive should be included in the link. For each such 9468element it must call the `add_archive_element' linker callback, and it 9469must add the symbols from the object file to the linker hash table. 9470(The callback may in fact indicate that a replacement BFD should be 9471used, in which case the symbols from that BFD should be added to the 9472linker hash table instead.) 9473 9474 In most cases the work of looking through the symbols in the archive 9475should be done by the `_bfd_generic_link_add_archive_symbols' function. 9476`_bfd_generic_link_add_archive_symbols' is passed a function to call to 9477make the final decision about adding an archive element to the link and 9478to do the actual work of adding the symbols to the linker hash table. 9479If the element is to be included, the `add_archive_element' linker 9480callback routine must be called with the element as an argument, and 9481the element's symbols must be added to the linker hash table just as 9482though the element had itself been passed to the 9483`_bfd_link_add_symbols' function. 9484 9485 When the a.out `_bfd_link_add_symbols' function receives an archive, 9486it calls `_bfd_generic_link_add_archive_symbols' passing 9487`aout_link_check_archive_element' as the function argument. 9488`aout_link_check_archive_element' calls `aout_link_check_ar_symbols'. 9489If the latter decides to add the element (an element is only added if 9490it provides a real, non-common, definition for a previously undefined 9491or common symbol) it calls the `add_archive_element' callback and then 9492`aout_link_check_archive_element' calls `aout_link_add_symbols' to 9493actually add the symbols to the linker hash table - possibly those of a 9494substitute BFD, if the `add_archive_element' callback avails itself of 9495that option. 9496 9497 The ECOFF back end is unusual in that it does not normally call 9498`_bfd_generic_link_add_archive_symbols', because ECOFF archives already 9499contain a hash table of symbols. The ECOFF back end searches the 9500archive itself to avoid the overhead of creating a new hash table. 9501 9502 9503File: bfd.info, Node: Performing the Final Link, Prev: Adding Symbols to the Hash Table, Up: Linker Functions 9504 95052.17.3 Performing the final link 9506-------------------------------- 9507 9508When all the input files have been processed, the linker calls the 9509`_bfd_final_link' entry point of the output BFD. This routine is 9510responsible for producing the final output file, which has several 9511aspects. It must relocate the contents of the input sections and copy 9512the data into the output sections. It must build an output symbol 9513table including any local symbols from the input files and the global 9514symbols from the hash table. When producing relocatable output, it must 9515modify the input relocs and write them into the output file. There may 9516also be object format dependent work to be done. 9517 9518 The linker will also call the `write_object_contents' entry point 9519when the BFD is closed. The two entry points must work together in 9520order to produce the correct output file. 9521 9522 The details of how this works are inevitably dependent upon the 9523specific object file format. The a.out `_bfd_final_link' routine is 9524`NAME(aout,final_link)'. 9525 9526* Menu: 9527 9528* Information provided by the linker:: 9529* Relocating the section contents:: 9530* Writing the symbol table:: 9531 9532 9533File: bfd.info, Node: Information provided by the linker, Next: Relocating the section contents, Prev: Performing the Final Link, Up: Performing the Final Link 9534 95352.17.3.1 Information provided by the linker 9536........................................... 9537 9538Before the linker calls the `_bfd_final_link' entry point, it sets up 9539some data structures for the function to use. 9540 9541 The `input_bfds' field of the `bfd_link_info' structure will point 9542to a list of all the input files included in the link. These files are 9543linked through the `link.next' field of the `bfd' structure. 9544 9545 Each section in the output file will have a list of `link_order' 9546structures attached to the `map_head.link_order' field (the 9547`link_order' structure is defined in `bfdlink.h'). These structures 9548describe how to create the contents of the output section in terms of 9549the contents of various input sections, fill constants, and, 9550eventually, other types of information. They also describe relocs that 9551must be created by the BFD backend, but do not correspond to any input 9552file; this is used to support -Ur, which builds constructors while 9553generating a relocatable object file. 9554 9555 9556File: bfd.info, Node: Relocating the section contents, Next: Writing the symbol table, Prev: Information provided by the linker, Up: Performing the Final Link 9557 95582.17.3.2 Relocating the section contents 9559........................................ 9560 9561The `_bfd_final_link' function should look through the `link_order' 9562structures attached to each section of the output file. Each 9563`link_order' structure should either be handled specially, or it should 9564be passed to the function `_bfd_default_link_order' which will do the 9565right thing (`_bfd_default_link_order' is defined in `linker.c'). 9566 9567 For efficiency, a `link_order' of type `bfd_indirect_link_order' 9568whose associated section belongs to a BFD of the same format as the 9569output BFD must be handled specially. This type of `link_order' 9570describes part of an output section in terms of a section belonging to 9571one of the input files. The `_bfd_final_link' function should read the 9572contents of the section and any associated relocs, apply the relocs to 9573the section contents, and write out the modified section contents. If 9574performing a relocatable link, the relocs themselves must also be 9575modified and written out. 9576 9577 The functions `_bfd_relocate_contents' and 9578`_bfd_final_link_relocate' provide some general support for performing 9579the actual relocations, notably overflow checking. Their arguments 9580include information about the symbol the relocation is against and a 9581`reloc_howto_type' argument which describes the relocation to perform. 9582These functions are defined in `reloc.c'. 9583 9584 The a.out function which handles reading, relocating, and writing 9585section contents is `aout_link_input_section'. The actual relocation 9586is done in `aout_link_input_section_std' and 9587`aout_link_input_section_ext'. 9588 9589 9590File: bfd.info, Node: Writing the symbol table, Prev: Relocating the section contents, Up: Performing the Final Link 9591 95922.17.3.3 Writing the symbol table 9593................................. 9594 9595The `_bfd_final_link' function must gather all the symbols in the input 9596files and write them out. It must also write out all the symbols in 9597the global hash table. This must be controlled by the `strip' and 9598`discard' fields of the `bfd_link_info' structure. 9599 9600 The local symbols of the input files will not have been entered into 9601the linker hash table. The `_bfd_final_link' routine must consider 9602each input file and include the symbols in the output file. It may be 9603convenient to do this when looking through the `link_order' structures, 9604or it may be done by stepping through the `input_bfds' list. 9605 9606 The `_bfd_final_link' routine must also traverse the global hash 9607table to gather all the externally visible symbols. It is possible 9608that most of the externally visible symbols may be written out when 9609considering the symbols of each input file, but it is still necessary 9610to traverse the hash table since the linker script may have defined 9611some symbols that are not in any of the input files. 9612 9613 The `strip' field of the `bfd_link_info' structure controls which 9614symbols are written out. The possible values are listed in 9615`bfdlink.h'. If the value is `strip_some', then the `keep_hash' field 9616of the `bfd_link_info' structure is a hash table of symbols to keep; 9617each symbol should be looked up in this hash table, and only symbols 9618which are present should be included in the output file. 9619 9620 If the `strip' field of the `bfd_link_info' structure permits local 9621symbols to be written out, the `discard' field is used to further 9622controls which local symbols are included in the output file. If the 9623value is `discard_l', then all local symbols which begin with a certain 9624prefix are discarded; this is controlled by the 9625`bfd_is_local_label_name' entry point. 9626 9627 The a.out backend handles symbols by calling 9628`aout_link_write_symbols' on each input BFD and then traversing the 9629global hash table with the function `aout_link_write_other_symbol'. It 9630builds a string table while writing out the symbols, which is written 9631to the output file at the end of `NAME(aout,final_link)'. 9632 96332.17.3.4 `bfd_link_split_section' 9634................................. 9635 9636*Synopsis* 9637 bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec); 9638 *Description* 9639Return nonzero if SEC should be split during a reloceatable or final 9640link. 9641 #define bfd_link_split_section(abfd, sec) \ 9642 BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec)) 9643 96442.17.3.5 `bfd_section_already_linked' 9645..................................... 9646 9647*Synopsis* 9648 bfd_boolean bfd_section_already_linked (bfd *abfd, 9649 asection *sec, 9650 struct bfd_link_info *info); 9651 *Description* 9652Check if DATA has been already linked during a reloceatable or final 9653link. Return TRUE if it has. 9654 #define bfd_section_already_linked(abfd, sec, info) \ 9655 BFD_SEND (abfd, _section_already_linked, (abfd, sec, info)) 9656 96572.17.3.6 `bfd_generic_define_common_symbol' 9658........................................... 9659 9660*Synopsis* 9661 bfd_boolean bfd_generic_define_common_symbol 9662 (bfd *output_bfd, struct bfd_link_info *info, 9663 struct bfd_link_hash_entry *h); 9664 *Description* 9665Convert common symbol H into a defined symbol. Return TRUE on success 9666and FALSE on failure. 9667 #define bfd_define_common_symbol(output_bfd, info, h) \ 9668 BFD_SEND (output_bfd, _bfd_define_common_symbol, (output_bfd, info, h)) 9669 96702.17.3.7 `bfd_find_version_for_sym' 9671................................... 9672 9673*Synopsis* 9674 struct bfd_elf_version_tree * bfd_find_version_for_sym 9675 (struct bfd_elf_version_tree *verdefs, 9676 const char *sym_name, bfd_boolean *hide); 9677 *Description* 9678Search an elf version script tree for symbol versioning info and export 9679/ don't-export status for a given symbol. Return non-NULL on success 9680and NULL on failure; also sets the output `hide' boolean parameter. 9681 96822.17.3.8 `bfd_hide_sym_by_version' 9683.................................. 9684 9685*Synopsis* 9686 bfd_boolean bfd_hide_sym_by_version 9687 (struct bfd_elf_version_tree *verdefs, const char *sym_name); 9688 *Description* 9689Search an elf version script tree for symbol versioning info for a 9690given symbol. Return TRUE if the symbol is hidden. 9691 9692 9693File: bfd.info, Node: Hash Tables, Prev: Linker Functions, Up: BFD front end 9694 96952.18 Hash Tables 9696================ 9697 9698BFD provides a simple set of hash table functions. Routines are 9699provided to initialize a hash table, to free a hash table, to look up a 9700string in a hash table and optionally create an entry for it, and to 9701traverse a hash table. There is currently no routine to delete an 9702string from a hash table. 9703 9704 The basic hash table does not permit any data to be stored with a 9705string. However, a hash table is designed to present a base class from 9706which other types of hash tables may be derived. These derived types 9707may store additional information with the string. Hash tables were 9708implemented in this way, rather than simply providing a data pointer in 9709a hash table entry, because they were designed for use by the linker 9710back ends. The linker may create thousands of hash table entries, and 9711the overhead of allocating private data and storing and following 9712pointers becomes noticeable. 9713 9714 The basic hash table code is in `hash.c'. 9715 9716* Menu: 9717 9718* Creating and Freeing a Hash Table:: 9719* Looking Up or Entering a String:: 9720* Traversing a Hash Table:: 9721* Deriving a New Hash Table Type:: 9722 9723 9724File: bfd.info, Node: Creating and Freeing a Hash Table, Next: Looking Up or Entering a String, Prev: Hash Tables, Up: Hash Tables 9725 97262.18.1 Creating and freeing a hash table 9727---------------------------------------- 9728 9729To create a hash table, create an instance of a `struct bfd_hash_table' 9730(defined in `bfd.h') and call `bfd_hash_table_init' (if you know 9731approximately how many entries you will need, the function 9732`bfd_hash_table_init_n', which takes a SIZE argument, may be used). 9733`bfd_hash_table_init' returns `FALSE' if some sort of error occurs. 9734 9735 The function `bfd_hash_table_init' take as an argument a function to 9736use to create new entries. For a basic hash table, use the function 9737`bfd_hash_newfunc'. *Note Deriving a New Hash Table Type::, for why 9738you would want to use a different value for this argument. 9739 9740 `bfd_hash_table_init' will create an objalloc which will be used to 9741allocate new entries. You may allocate memory on this objalloc using 9742`bfd_hash_allocate'. 9743 9744 Use `bfd_hash_table_free' to free up all the memory that has been 9745allocated for a hash table. This will not free up the `struct 9746bfd_hash_table' itself, which you must provide. 9747 9748 Use `bfd_hash_set_default_size' to set the default size of hash 9749table to use. 9750 9751 9752File: bfd.info, Node: Looking Up or Entering a String, Next: Traversing a Hash Table, Prev: Creating and Freeing a Hash Table, Up: Hash Tables 9753 97542.18.2 Looking up or entering a string 9755-------------------------------------- 9756 9757The function `bfd_hash_lookup' is used both to look up a string in the 9758hash table and to create a new entry. 9759 9760 If the CREATE argument is `FALSE', `bfd_hash_lookup' will look up a 9761string. If the string is found, it will returns a pointer to a `struct 9762bfd_hash_entry'. If the string is not found in the table 9763`bfd_hash_lookup' will return `NULL'. You should not modify any of the 9764fields in the returns `struct bfd_hash_entry'. 9765 9766 If the CREATE argument is `TRUE', the string will be entered into 9767the hash table if it is not already there. Either way a pointer to a 9768`struct bfd_hash_entry' will be returned, either to the existing 9769structure or to a newly created one. In this case, a `NULL' return 9770means that an error occurred. 9771 9772 If the CREATE argument is `TRUE', and a new entry is created, the 9773COPY argument is used to decide whether to copy the string onto the 9774hash table objalloc or not. If COPY is passed as `FALSE', you must be 9775careful not to deallocate or modify the string as long as the hash table 9776exists. 9777 9778 9779File: bfd.info, Node: Traversing a Hash Table, Next: Deriving a New Hash Table Type, Prev: Looking Up or Entering a String, Up: Hash Tables 9780 97812.18.3 Traversing a hash table 9782------------------------------ 9783 9784The function `bfd_hash_traverse' may be used to traverse a hash table, 9785calling a function on each element. The traversal is done in a random 9786order. 9787 9788 `bfd_hash_traverse' takes as arguments a function and a generic 9789`void *' pointer. The function is called with a hash table entry (a 9790`struct bfd_hash_entry *') and the generic pointer passed to 9791`bfd_hash_traverse'. The function must return a `boolean' value, which 9792indicates whether to continue traversing the hash table. If the 9793function returns `FALSE', `bfd_hash_traverse' will stop the traversal 9794and return immediately. 9795 9796 9797File: bfd.info, Node: Deriving a New Hash Table Type, Prev: Traversing a Hash Table, Up: Hash Tables 9798 97992.18.4 Deriving a new hash table type 9800------------------------------------- 9801 9802Many uses of hash tables want to store additional information which 9803each entry in the hash table. Some also find it convenient to store 9804additional information with the hash table itself. This may be done 9805using a derived hash table. 9806 9807 Since C is not an object oriented language, creating a derived hash 9808table requires sticking together some boilerplate routines with a few 9809differences specific to the type of hash table you want to create. 9810 9811 An example of a derived hash table is the linker hash table. The 9812structures for this are defined in `bfdlink.h'. The functions are in 9813`linker.c'. 9814 9815 You may also derive a hash table from an already derived hash table. 9816For example, the a.out linker backend code uses a hash table derived 9817from the linker hash table. 9818 9819* Menu: 9820 9821* Define the Derived Structures:: 9822* Write the Derived Creation Routine:: 9823* Write Other Derived Routines:: 9824 9825 9826File: 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 9827 98282.18.4.1 Define the derived structures 9829...................................... 9830 9831You must define a structure for an entry in the hash table, and a 9832structure for the hash table itself. 9833 9834 The first field in the structure for an entry in the hash table must 9835be of the type used for an entry in the hash table you are deriving 9836from. If you are deriving from a basic hash table this is `struct 9837bfd_hash_entry', which is defined in `bfd.h'. The first field in the 9838structure for the hash table itself must be of the type of the hash 9839table you are deriving from itself. If you are deriving from a basic 9840hash table, this is `struct bfd_hash_table'. 9841 9842 For example, the linker hash table defines `struct 9843bfd_link_hash_entry' (in `bfdlink.h'). The first field, `root', is of 9844type `struct bfd_hash_entry'. Similarly, the first field in `struct 9845bfd_link_hash_table', `table', is of type `struct bfd_hash_table'. 9846 9847 9848File: 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 9849 98502.18.4.2 Write the derived creation routine 9851........................................... 9852 9853You must write a routine which will create and initialize an entry in 9854the hash table. This routine is passed as the function argument to 9855`bfd_hash_table_init'. 9856 9857 In order to permit other hash tables to be derived from the hash 9858table you are creating, this routine must be written in a standard way. 9859 9860 The first argument to the creation routine is a pointer to a hash 9861table entry. This may be `NULL', in which case the routine should 9862allocate the right amount of space. Otherwise the space has already 9863been allocated by a hash table type derived from this one. 9864 9865 After allocating space, the creation routine must call the creation 9866routine of the hash table type it is derived from, passing in a pointer 9867to the space it just allocated. This will initialize any fields used 9868by the base hash table. 9869 9870 Finally the creation routine must initialize any local fields for 9871the new hash table type. 9872 9873 Here is a boilerplate example of a creation routine. FUNCTION_NAME 9874is the name of the routine. ENTRY_TYPE is the type of an entry in the 9875hash table you are creating. BASE_NEWFUNC is the name of the creation 9876routine of the hash table type your hash table is derived from. 9877 9878 struct bfd_hash_entry * 9879 FUNCTION_NAME (struct bfd_hash_entry *entry, 9880 struct bfd_hash_table *table, 9881 const char *string) 9882 { 9883 struct ENTRY_TYPE *ret = (ENTRY_TYPE *) entry; 9884 9885 /* Allocate the structure if it has not already been allocated by a 9886 derived class. */ 9887 if (ret == NULL) 9888 { 9889 ret = bfd_hash_allocate (table, sizeof (* ret)); 9890 if (ret == NULL) 9891 return NULL; 9892 } 9893 9894 /* Call the allocation method of the base class. */ 9895 ret = ((ENTRY_TYPE *) 9896 BASE_NEWFUNC ((struct bfd_hash_entry *) ret, table, string)); 9897 9898 /* Initialize the local fields here. */ 9899 9900 return (struct bfd_hash_entry *) ret; 9901 } 9902 *Description* 9903The creation routine for the linker hash table, which is in `linker.c', 9904looks just like this example. FUNCTION_NAME is 9905`_bfd_link_hash_newfunc'. ENTRY_TYPE is `struct bfd_link_hash_entry'. 9906BASE_NEWFUNC is `bfd_hash_newfunc', the creation routine for a basic 9907hash table. 9908 9909 `_bfd_link_hash_newfunc' also initializes the local fields in a 9910linker hash table entry: `type', `written' and `next'. 9911 9912 9913File: bfd.info, Node: Write Other Derived Routines, Prev: Write the Derived Creation Routine, Up: Deriving a New Hash Table Type 9914 99152.18.4.3 Write other derived routines 9916..................................... 9917 9918You will want to write other routines for your new hash table, as well. 9919 9920 You will want an initialization routine which calls the 9921initialization routine of the hash table you are deriving from and 9922initializes any other local fields. For the linker hash table, this is 9923`_bfd_link_hash_table_init' in `linker.c'. 9924 9925 You will want a lookup routine which calls the lookup routine of the 9926hash table you are deriving from and casts the result. The linker hash 9927table uses `bfd_link_hash_lookup' in `linker.c' (this actually takes an 9928additional argument which it uses to decide how to return the looked up 9929value). 9930 9931 You may want a traversal routine. This should just call the 9932traversal routine of the hash table you are deriving from with 9933appropriate casts. The linker hash table uses `bfd_link_hash_traverse' 9934in `linker.c'. 9935 9936 These routines may simply be defined as macros. For example, the 9937a.out backend linker hash table, which is derived from the linker hash 9938table, uses macros for the lookup and traversal routines. These are 9939`aout_link_hash_lookup' and `aout_link_hash_traverse' in aoutx.h. 9940 9941 9942File: bfd.info, Node: BFD back ends, Next: GNU Free Documentation License, Prev: BFD front end, Up: Top 9943 99443 BFD back ends 9945*************** 9946 9947* Menu: 9948 9949* What to Put Where:: 9950* aout :: a.out backends 9951* coff :: coff backends 9952* elf :: elf backends 9953* mmo :: mmo backend 9954 9955 9956File: bfd.info, Node: What to Put Where, Next: aout, Prev: BFD back ends, Up: BFD back ends 9957 99583.1 What to Put Where 9959===================== 9960 9961All of BFD lives in one directory. 9962 9963 9964File: bfd.info, Node: aout, Next: coff, Prev: What to Put Where, Up: BFD back ends 9965 99663.2 a.out backends 9967================== 9968 9969*Description* 9970BFD supports a number of different flavours of a.out format, though the 9971major differences are only the sizes of the structures on disk, and the 9972shape of the relocation information. 9973 9974 The support is split into a basic support file `aoutx.h' and other 9975files which derive functions from the base. One derivation file is 9976`aoutf1.h' (for a.out flavour 1), and adds to the basic a.out functions 9977support for sun3, sun4, 386 and 29k a.out files, to create a target 9978jump vector for a specific target. 9979 9980 This information is further split out into more specific files for 9981each machine, including `sunos.c' for sun3 and sun4, `newsos3.c' for 9982the Sony NEWS, and `demo64.c' for a demonstration of a 64 bit a.out 9983format. 9984 9985 The base file `aoutx.h' defines general mechanisms for reading and 9986writing records to and from disk and various other methods which BFD 9987requires. It is included by `aout32.c' and `aout64.c' to form the names 9988`aout_32_swap_exec_header_in', `aout_64_swap_exec_header_in', etc. 9989 9990 As an example, this is what goes on to make the back end for a sun4, 9991from `aout32.c': 9992 9993 #define ARCH_SIZE 32 9994 #include "aoutx.h" 9995 9996 Which exports names: 9997 9998 ... 9999 aout_32_canonicalize_reloc 10000 aout_32_find_nearest_line 10001 aout_32_get_lineno 10002 aout_32_get_reloc_upper_bound 10003 ... 10004 10005 from `sunos.c': 10006 10007 #define TARGET_NAME "a.out-sunos-big" 10008 #define VECNAME sparc_aout_sunos_be_vec 10009 #include "aoutf1.h" 10010 10011 requires all the names from `aout32.c', and produces the jump vector 10012 10013 sparc_aout_sunos_be_vec 10014 10015 The file `host-aout.c' is a special case. It is for a large set of 10016hosts that use "more or less standard" a.out files, and for which 10017cross-debugging is not interesting. It uses the standard 32-bit a.out 10018support routines, but determines the file offsets and addresses of the 10019text, data, and BSS sections, the machine architecture and machine 10020type, and the entry point address, in a host-dependent manner. Once 10021these values have been determined, generic code is used to handle the 10022object file. 10023 10024 When porting it to run on a new system, you must supply: 10025 10026 HOST_PAGE_SIZE 10027 HOST_SEGMENT_SIZE 10028 HOST_MACHINE_ARCH (optional) 10029 HOST_MACHINE_MACHINE (optional) 10030 HOST_TEXT_START_ADDR 10031 HOST_STACK_END_ADDR 10032 10033 in the file `../include/sys/h-XXX.h' (for your host). These values, 10034plus the structures and macros defined in `a.out.h' on your host 10035system, will produce a BFD target that will access ordinary a.out files 10036on your host. To configure a new machine to use `host-aout.c', specify: 10037 10038 TDEFAULTS = -DDEFAULT_VECTOR=host_aout_big_vec 10039 TDEPFILES= host-aout.o trad-core.o 10040 10041 in the `config/XXX.mt' file, and modify `configure.ac' to use the 10042`XXX.mt' file (by setting "`bfd_target=XXX'") when your configuration 10043is selected. 10044 100453.2.1 Relocations 10046----------------- 10047 10048*Description* 10049The file `aoutx.h' provides for both the _standard_ and _extended_ 10050forms of a.out relocation records. 10051 10052 The standard records contain only an address, a symbol index, and a 10053type field. The extended records (used on 29ks and sparcs) also have a 10054full integer for an addend. 10055 100563.2.2 Internal entry points 10057--------------------------- 10058 10059*Description* 10060`aoutx.h' exports several routines for accessing the contents of an 10061a.out file, which are gathered and exported in turn by various format 10062specific files (eg sunos.c). 10063 100643.2.2.1 `aout_SIZE_swap_exec_header_in' 10065....................................... 10066 10067*Synopsis* 10068 void aout_SIZE_swap_exec_header_in, 10069 (bfd *abfd, 10070 struct external_exec *bytes, 10071 struct internal_exec *execp); 10072 *Description* 10073Swap the information in an executable header RAW_BYTES taken from a raw 10074byte stream memory image into the internal exec header structure EXECP. 10075 100763.2.2.2 `aout_SIZE_swap_exec_header_out' 10077........................................ 10078 10079*Synopsis* 10080 void aout_SIZE_swap_exec_header_out 10081 (bfd *abfd, 10082 struct internal_exec *execp, 10083 struct external_exec *raw_bytes); 10084 *Description* 10085Swap the information in an internal exec header structure EXECP into 10086the buffer RAW_BYTES ready for writing to disk. 10087 100883.2.2.3 `aout_SIZE_some_aout_object_p' 10089...................................... 10090 10091*Synopsis* 10092 const bfd_target *aout_SIZE_some_aout_object_p 10093 (bfd *abfd, 10094 struct internal_exec *execp, 10095 const bfd_target *(*callback_to_real_object_p) (bfd *)); 10096 *Description* 10097Some a.out variant thinks that the file open in ABFD checking is an 10098a.out file. Do some more checking, and set up for access if it really 10099is. Call back to the calling environment's "finish up" function just 10100before returning, to handle any last-minute setup. 10101 101023.2.2.4 `aout_SIZE_mkobject' 10103............................ 10104 10105*Synopsis* 10106 bfd_boolean aout_SIZE_mkobject, (bfd *abfd); 10107 *Description* 10108Initialize BFD ABFD for use with a.out files. 10109 101103.2.2.5 `aout_SIZE_machine_type' 10111................................ 10112 10113*Synopsis* 10114 enum machine_type aout_SIZE_machine_type 10115 (enum bfd_architecture arch, 10116 unsigned long machine, 10117 bfd_boolean *unknown); 10118 *Description* 10119Keep track of machine architecture and machine type for a.out's. Return 10120the `machine_type' for a particular architecture and machine, or 10121`M_UNKNOWN' if that exact architecture and machine can't be represented 10122in a.out format. 10123 10124 If the architecture is understood, machine type 0 (default) is 10125always understood. 10126 101273.2.2.6 `aout_SIZE_set_arch_mach' 10128................................. 10129 10130*Synopsis* 10131 bfd_boolean aout_SIZE_set_arch_mach, 10132 (bfd *, 10133 enum bfd_architecture arch, 10134 unsigned long machine); 10135 *Description* 10136Set the architecture and the machine of the BFD ABFD to the values ARCH 10137and MACHINE. Verify that ABFD's format can support the architecture 10138required. 10139 101403.2.2.7 `aout_SIZE_new_section_hook' 10141.................................... 10142 10143*Synopsis* 10144 bfd_boolean aout_SIZE_new_section_hook, 10145 (bfd *abfd, 10146 asection *newsect); 10147 *Description* 10148Called by the BFD in response to a `bfd_make_section' request. 10149 10150 10151File: bfd.info, Node: coff, Next: elf, Prev: aout, Up: BFD back ends 10152 101533.3 coff backends 10154================= 10155 10156BFD supports a number of different flavours of coff format. The major 10157differences between formats are the sizes and alignments of fields in 10158structures on disk, and the occasional extra field. 10159 10160 Coff in all its varieties is implemented with a few common files and 10161a number of implementation specific files. For example, The 88k bcs 10162coff format is implemented in the file `coff-m88k.c'. This file 10163`#include's `coff/m88k.h' which defines the external structure of the 10164coff format for the 88k, and `coff/internal.h' which defines the 10165internal structure. `coff-m88k.c' also defines the relocations used by 10166the 88k format *Note Relocations::. 10167 10168 The Intel i960 processor version of coff is implemented in 10169`coff-i960.c'. This file has the same structure as `coff-m88k.c', 10170except that it includes `coff/i960.h' rather than `coff-m88k.h'. 10171 101723.3.1 Porting to a new version of coff 10173-------------------------------------- 10174 10175The recommended method is to select from the existing implementations 10176the version of coff which is most like the one you want to use. For 10177example, we'll say that i386 coff is the one you select, and that your 10178coff flavour is called foo. Copy `i386coff.c' to `foocoff.c', copy 10179`../include/coff/i386.h' to `../include/coff/foo.h', and add the lines 10180to `targets.c' and `Makefile.in' so that your new back end is used. 10181Alter the shapes of the structures in `../include/coff/foo.h' so that 10182they match what you need. You will probably also have to add `#ifdef's 10183to the code in `coff/internal.h' and `coffcode.h' if your version of 10184coff is too wild. 10185 10186 You can verify that your new BFD backend works quite simply by 10187building `objdump' from the `binutils' directory, and making sure that 10188its version of what's going on and your host system's idea (assuming it 10189has the pretty standard coff dump utility, usually called `att-dump' or 10190just `dump') are the same. Then clean up your code, and send what 10191you've done to Cygnus. Then your stuff will be in the next release, and 10192you won't have to keep integrating it. 10193 101943.3.2 How the coff backend works 10195-------------------------------- 10196 101973.3.2.1 File layout 10198................... 10199 10200The Coff backend is split into generic routines that are applicable to 10201any Coff target and routines that are specific to a particular target. 10202The target-specific routines are further split into ones which are 10203basically the same for all Coff targets except that they use the 10204external symbol format or use different values for certain constants. 10205 10206 The generic routines are in `coffgen.c'. These routines work for 10207any Coff target. They use some hooks into the target specific code; 10208the hooks are in a `bfd_coff_backend_data' structure, one of which 10209exists for each target. 10210 10211 The essentially similar target-specific routines are in 10212`coffcode.h'. This header file includes executable C code. The 10213various Coff targets first include the appropriate Coff header file, 10214make any special defines that are needed, and then include `coffcode.h'. 10215 10216 Some of the Coff targets then also have additional routines in the 10217target source file itself. 10218 10219 For example, `coff-i960.c' includes `coff/internal.h' and 10220`coff/i960.h'. It then defines a few constants, such as `I960', and 10221includes `coffcode.h'. Since the i960 has complex relocation types, 10222`coff-i960.c' also includes some code to manipulate the i960 relocs. 10223This code is not in `coffcode.h' because it would not be used by any 10224other target. 10225 102263.3.2.2 Coff long section names 10227............................... 10228 10229In the standard Coff object format, section names are limited to the 10230eight bytes available in the `s_name' field of the `SCNHDR' section 10231header structure. The format requires the field to be NUL-padded, but 10232not necessarily NUL-terminated, so the longest section names permitted 10233are a full eight characters. 10234 10235 The Microsoft PE variants of the Coff object file format add an 10236extension to support the use of long section names. This extension is 10237defined in section 4 of the Microsoft PE/COFF specification (rev 8.1). 10238If a section name is too long to fit into the section header's `s_name' 10239field, it is instead placed into the string table, and the `s_name' 10240field is filled with a slash ("/") followed by the ASCII decimal 10241representation of the offset of the full name relative to the string 10242table base. 10243 10244 Note that this implies that the extension can only be used in object 10245files, as executables do not contain a string table. The standard 10246specifies that long section names from objects emitted into executable 10247images are to be truncated. 10248 10249 However, as a GNU extension, BFD can generate executable images that 10250contain a string table and long section names. This would appear to be 10251technically valid, as the standard only says that Coff debugging 10252information is deprecated, not forbidden, and in practice it works, 10253although some tools that parse PE files expecting the MS standard 10254format may become confused; `PEview' is one known example. 10255 10256 The functionality is supported in BFD by code implemented under the 10257control of the macro `COFF_LONG_SECTION_NAMES'. If not defined, the 10258format does not support long section names in any way. If defined, it 10259is used to initialise a flag, `_bfd_coff_long_section_names', and a 10260hook function pointer, `_bfd_coff_set_long_section_names', in the Coff 10261backend data structure. The flag controls the generation of long 10262section names in output BFDs at runtime; if it is false, as it will be 10263by default when generating an executable image, long section names are 10264truncated; if true, the long section names extension is employed. The 10265hook points to a function that allows the value of the flag to be 10266altered at runtime, on formats that support long section names at all; 10267on other formats it points to a stub that returns an error indication. 10268 10269 With input BFDs, the flag is set according to whether any long 10270section names are detected while reading the section headers. For a 10271completely new BFD, the flag is set to the default for the target 10272format. This information can be used by a client of the BFD library 10273when deciding what output format to generate, and means that a BFD that 10274is opened for read and subsequently converted to a writeable BFD and 10275modified in-place will retain whatever format it had on input. 10276 10277 If `COFF_LONG_SECTION_NAMES' is simply defined (blank), or is 10278defined to the value "1", then long section names are enabled by 10279default; if it is defined to the value zero, they are disabled by 10280default (but still accepted in input BFDs). The header `coffcode.h' 10281defines a macro, `COFF_DEFAULT_LONG_SECTION_NAMES', which is used in 10282the backends to initialise the backend data structure fields 10283appropriately; see the comments for further detail. 10284 102853.3.2.3 Bit twiddling 10286..................... 10287 10288Each flavour of coff supported in BFD has its own header file 10289describing the external layout of the structures. There is also an 10290internal description of the coff layout, in `coff/internal.h'. A major 10291function of the coff backend is swapping the bytes and twiddling the 10292bits to translate the external form of the structures into the normal 10293internal form. This is all performed in the `bfd_swap'_thing_direction 10294routines. Some elements are different sizes between different versions 10295of coff; it is the duty of the coff version specific include file to 10296override the definitions of various packing routines in `coffcode.h'. 10297E.g., the size of line number entry in coff is sometimes 16 bits, and 10298sometimes 32 bits. `#define'ing `PUT_LNSZ_LNNO' and `GET_LNSZ_LNNO' 10299will select the correct one. No doubt, some day someone will find a 10300version of coff which has a varying field size not catered to at the 10301moment. To port BFD, that person will have to add more `#defines'. 10302Three of the bit twiddling routines are exported to `gdb'; 10303`coff_swap_aux_in', `coff_swap_sym_in' and `coff_swap_lineno_in'. `GDB' 10304reads the symbol table on its own, but uses BFD to fix things up. More 10305of the bit twiddlers are exported for `gas'; `coff_swap_aux_out', 10306`coff_swap_sym_out', `coff_swap_lineno_out', `coff_swap_reloc_out', 10307`coff_swap_filehdr_out', `coff_swap_aouthdr_out', 10308`coff_swap_scnhdr_out'. `Gas' currently keeps track of all the symbol 10309table and reloc drudgery itself, thereby saving the internal BFD 10310overhead, but uses BFD to swap things on the way out, making cross 10311ports much safer. Doing so also allows BFD (and thus the linker) to 10312use the same header files as `gas', which makes one avenue to disaster 10313disappear. 10314 103153.3.2.4 Symbol reading 10316...................... 10317 10318The simple canonical form for symbols used by BFD is not rich enough to 10319keep all the information available in a coff symbol table. The back end 10320gets around this problem by keeping the original symbol table around, 10321"behind the scenes". 10322 10323 When a symbol table is requested (through a call to 10324`bfd_canonicalize_symtab'), a request gets through to 10325`coff_get_normalized_symtab'. This reads the symbol table from the coff 10326file and swaps all the structures inside into the internal form. It 10327also fixes up all the pointers in the table (represented in the file by 10328offsets from the first symbol in the table) into physical pointers to 10329elements in the new internal table. This involves some work since the 10330meanings of fields change depending upon context: a field that is a 10331pointer to another structure in the symbol table at one moment may be 10332the size in bytes of a structure at the next. Another pass is made 10333over the table. All symbols which mark file names (`C_FILE' symbols) 10334are modified so that the internal string points to the value in the 10335auxent (the real filename) rather than the normal text associated with 10336the symbol (`".file"'). 10337 10338 At this time the symbol names are moved around. Coff stores all 10339symbols less than nine characters long physically within the symbol 10340table; longer strings are kept at the end of the file in the string 10341table. This pass moves all strings into memory and replaces them with 10342pointers to the strings. 10343 10344 The symbol table is massaged once again, this time to create the 10345canonical table used by the BFD application. Each symbol is inspected 10346in turn, and a decision made (using the `sclass' field) about the 10347various flags to set in the `asymbol'. *Note Symbols::. The generated 10348canonical table shares strings with the hidden internal symbol table. 10349 10350 Any linenumbers are read from the coff file too, and attached to the 10351symbols which own the functions the linenumbers belong to. 10352 103533.3.2.5 Symbol writing 10354...................... 10355 10356Writing a symbol to a coff file which didn't come from a coff file will 10357lose any debugging information. The `asymbol' structure remembers the 10358BFD from which the symbol was taken, and on output the back end makes 10359sure that the same destination target as source target is present. 10360 10361 When the symbols have come from a coff file then all the debugging 10362information is preserved. 10363 10364 Symbol tables are provided for writing to the back end in a vector 10365of pointers to pointers. This allows applications like the linker to 10366accumulate and output large symbol tables without having to do too much 10367byte copying. 10368 10369 This function runs through the provided symbol table and patches 10370each symbol marked as a file place holder (`C_FILE') to point to the 10371next file place holder in the list. It also marks each `offset' field 10372in the list with the offset from the first symbol of the current symbol. 10373 10374 Another function of this procedure is to turn the canonical value 10375form of BFD into the form used by coff. Internally, BFD expects symbol 10376values to be offsets from a section base; so a symbol physically at 103770x120, but in a section starting at 0x100, would have the value 0x20. 10378Coff expects symbols to contain their final value, so symbols have 10379their values changed at this point to reflect their sum with their 10380owning section. This transformation uses the `output_section' field of 10381the `asymbol''s `asection' *Note Sections::. 10382 10383 * `coff_mangle_symbols' 10384 This routine runs though the provided symbol table and uses the 10385offsets generated by the previous pass and the pointers generated when 10386the symbol table was read in to create the structured hierarchy 10387required by coff. It changes each pointer to a symbol into the index 10388into the symbol table of the asymbol. 10389 10390 * `coff_write_symbols' 10391 This routine runs through the symbol table and patches up the 10392symbols from their internal form into the coff way, calls the bit 10393twiddlers, and writes out the table to the file. 10394 103953.3.2.6 `coff_symbol_type' 10396.......................... 10397 10398*Description* 10399The hidden information for an `asymbol' is described in a 10400`combined_entry_type': 10401 10402 10403 typedef struct coff_ptr_struct 10404 { 10405 /* Remembers the offset from the first symbol in the file for 10406 this symbol. Generated by coff_renumber_symbols. */ 10407 unsigned int offset; 10408 10409 /* Should the value of this symbol be renumbered. Used for 10410 XCOFF C_BSTAT symbols. Set by coff_slurp_symbol_table. */ 10411 unsigned int fix_value : 1; 10412 10413 /* Should the tag field of this symbol be renumbered. 10414 Created by coff_pointerize_aux. */ 10415 unsigned int fix_tag : 1; 10416 10417 /* Should the endidx field of this symbol be renumbered. 10418 Created by coff_pointerize_aux. */ 10419 unsigned int fix_end : 1; 10420 10421 /* Should the x_csect.x_scnlen field be renumbered. 10422 Created by coff_pointerize_aux. */ 10423 unsigned int fix_scnlen : 1; 10424 10425 /* Fix up an XCOFF C_BINCL/C_EINCL symbol. The value is the 10426 index into the line number entries. Set by coff_slurp_symbol_table. */ 10427 unsigned int fix_line : 1; 10428 10429 /* The container for the symbol structure as read and translated 10430 from the file. */ 10431 union 10432 { 10433 union internal_auxent auxent; 10434 struct internal_syment syment; 10435 } u; 10436 10437 /* Selector for the union above. */ 10438 bfd_boolean is_sym; 10439 } combined_entry_type; 10440 10441 10442 /* Each canonical asymbol really looks like this: */ 10443 10444 typedef struct coff_symbol_struct 10445 { 10446 /* The actual symbol which the rest of BFD works with */ 10447 asymbol symbol; 10448 10449 /* A pointer to the hidden information for this symbol */ 10450 combined_entry_type *native; 10451 10452 /* A pointer to the linenumber information for this symbol */ 10453 struct lineno_cache_entry *lineno; 10454 10455 /* Have the line numbers been relocated yet ? */ 10456 bfd_boolean done_lineno; 10457 } coff_symbol_type; 10458 104593.3.2.7 `bfd_coff_backend_data' 10460............................... 10461 10462 /* COFF symbol classifications. */ 10463 10464 enum coff_symbol_classification 10465 { 10466 /* Global symbol. */ 10467 COFF_SYMBOL_GLOBAL, 10468 /* Common symbol. */ 10469 COFF_SYMBOL_COMMON, 10470 /* Undefined symbol. */ 10471 COFF_SYMBOL_UNDEFINED, 10472 /* Local symbol. */ 10473 COFF_SYMBOL_LOCAL, 10474 /* PE section symbol. */ 10475 COFF_SYMBOL_PE_SECTION 10476 }; 10477 10478 typedef asection * (*coff_gc_mark_hook_fn) 10479 (asection *, struct bfd_link_info *, struct internal_reloc *, 10480 struct coff_link_hash_entry *, struct internal_syment *); 10481Special entry points for gdb to swap in coff symbol table parts: 10482 typedef struct 10483 { 10484 void (*_bfd_coff_swap_aux_in) 10485 (bfd *, void *, int, int, int, int, void *); 10486 10487 void (*_bfd_coff_swap_sym_in) 10488 (bfd *, void *, void *); 10489 10490 void (*_bfd_coff_swap_lineno_in) 10491 (bfd *, void *, void *); 10492 10493 unsigned int (*_bfd_coff_swap_aux_out) 10494 (bfd *, void *, int, int, int, int, void *); 10495 10496 unsigned int (*_bfd_coff_swap_sym_out) 10497 (bfd *, void *, void *); 10498 10499 unsigned int (*_bfd_coff_swap_lineno_out) 10500 (bfd *, void *, void *); 10501 10502 unsigned int (*_bfd_coff_swap_reloc_out) 10503 (bfd *, void *, void *); 10504 10505 unsigned int (*_bfd_coff_swap_filehdr_out) 10506 (bfd *, void *, void *); 10507 10508 unsigned int (*_bfd_coff_swap_aouthdr_out) 10509 (bfd *, void *, void *); 10510 10511 unsigned int (*_bfd_coff_swap_scnhdr_out) 10512 (bfd *, void *, void *); 10513 10514 unsigned int _bfd_filhsz; 10515 unsigned int _bfd_aoutsz; 10516 unsigned int _bfd_scnhsz; 10517 unsigned int _bfd_symesz; 10518 unsigned int _bfd_auxesz; 10519 unsigned int _bfd_relsz; 10520 unsigned int _bfd_linesz; 10521 unsigned int _bfd_filnmlen; 10522 bfd_boolean _bfd_coff_long_filenames; 10523 10524 bfd_boolean _bfd_coff_long_section_names; 10525 bfd_boolean (*_bfd_coff_set_long_section_names) 10526 (bfd *, int); 10527 10528 unsigned int _bfd_coff_default_section_alignment_power; 10529 bfd_boolean _bfd_coff_force_symnames_in_strings; 10530 unsigned int _bfd_coff_debug_string_prefix_length; 10531 unsigned int _bfd_coff_max_nscns; 10532 10533 void (*_bfd_coff_swap_filehdr_in) 10534 (bfd *, void *, void *); 10535 10536 void (*_bfd_coff_swap_aouthdr_in) 10537 (bfd *, void *, void *); 10538 10539 void (*_bfd_coff_swap_scnhdr_in) 10540 (bfd *, void *, void *); 10541 10542 void (*_bfd_coff_swap_reloc_in) 10543 (bfd *abfd, void *, void *); 10544 10545 bfd_boolean (*_bfd_coff_bad_format_hook) 10546 (bfd *, void *); 10547 10548 bfd_boolean (*_bfd_coff_set_arch_mach_hook) 10549 (bfd *, void *); 10550 10551 void * (*_bfd_coff_mkobject_hook) 10552 (bfd *, void *, void *); 10553 10554 bfd_boolean (*_bfd_styp_to_sec_flags_hook) 10555 (bfd *, void *, const char *, asection *, flagword *); 10556 10557 void (*_bfd_set_alignment_hook) 10558 (bfd *, asection *, void *); 10559 10560 bfd_boolean (*_bfd_coff_slurp_symbol_table) 10561 (bfd *); 10562 10563 bfd_boolean (*_bfd_coff_symname_in_debug) 10564 (bfd *, struct internal_syment *); 10565 10566 bfd_boolean (*_bfd_coff_pointerize_aux_hook) 10567 (bfd *, combined_entry_type *, combined_entry_type *, 10568 unsigned int, combined_entry_type *); 10569 10570 bfd_boolean (*_bfd_coff_print_aux) 10571 (bfd *, FILE *, combined_entry_type *, combined_entry_type *, 10572 combined_entry_type *, unsigned int); 10573 10574 void (*_bfd_coff_reloc16_extra_cases) 10575 (bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *, 10576 bfd_byte *, unsigned int *, unsigned int *); 10577 10578 int (*_bfd_coff_reloc16_estimate) 10579 (bfd *, asection *, arelent *, unsigned int, 10580 struct bfd_link_info *); 10581 10582 enum coff_symbol_classification (*_bfd_coff_classify_symbol) 10583 (bfd *, struct internal_syment *); 10584 10585 bfd_boolean (*_bfd_coff_compute_section_file_positions) 10586 (bfd *); 10587 10588 bfd_boolean (*_bfd_coff_start_final_link) 10589 (bfd *, struct bfd_link_info *); 10590 10591 bfd_boolean (*_bfd_coff_relocate_section) 10592 (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, 10593 struct internal_reloc *, struct internal_syment *, asection **); 10594 10595 reloc_howto_type *(*_bfd_coff_rtype_to_howto) 10596 (bfd *, asection *, struct internal_reloc *, 10597 struct coff_link_hash_entry *, struct internal_syment *, 10598 bfd_vma *); 10599 10600 bfd_boolean (*_bfd_coff_adjust_symndx) 10601 (bfd *, struct bfd_link_info *, bfd *, asection *, 10602 struct internal_reloc *, bfd_boolean *); 10603 10604 bfd_boolean (*_bfd_coff_link_add_one_symbol) 10605 (struct bfd_link_info *, bfd *, const char *, flagword, 10606 asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean, 10607 struct bfd_link_hash_entry **); 10608 10609 bfd_boolean (*_bfd_coff_link_output_has_begun) 10610 (bfd *, struct coff_final_link_info *); 10611 10612 bfd_boolean (*_bfd_coff_final_link_postscript) 10613 (bfd *, struct coff_final_link_info *); 10614 10615 bfd_boolean (*_bfd_coff_print_pdata) 10616 (bfd *, void *); 10617 10618 } bfd_coff_backend_data; 10619 10620 #define coff_backend_info(abfd) \ 10621 ((bfd_coff_backend_data *) (abfd)->xvec->backend_data) 10622 10623 #define bfd_coff_swap_aux_in(a,e,t,c,ind,num,i) \ 10624 ((coff_backend_info (a)->_bfd_coff_swap_aux_in) (a,e,t,c,ind,num,i)) 10625 10626 #define bfd_coff_swap_sym_in(a,e,i) \ 10627 ((coff_backend_info (a)->_bfd_coff_swap_sym_in) (a,e,i)) 10628 10629 #define bfd_coff_swap_lineno_in(a,e,i) \ 10630 ((coff_backend_info ( a)->_bfd_coff_swap_lineno_in) (a,e,i)) 10631 10632 #define bfd_coff_swap_reloc_out(abfd, i, o) \ 10633 ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_out) (abfd, i, o)) 10634 10635 #define bfd_coff_swap_lineno_out(abfd, i, o) \ 10636 ((coff_backend_info (abfd)->_bfd_coff_swap_lineno_out) (abfd, i, o)) 10637 10638 #define bfd_coff_swap_aux_out(a,i,t,c,ind,num,o) \ 10639 ((coff_backend_info (a)->_bfd_coff_swap_aux_out) (a,i,t,c,ind,num,o)) 10640 10641 #define bfd_coff_swap_sym_out(abfd, i,o) \ 10642 ((coff_backend_info (abfd)->_bfd_coff_swap_sym_out) (abfd, i, o)) 10643 10644 #define bfd_coff_swap_scnhdr_out(abfd, i,o) \ 10645 ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_out) (abfd, i, o)) 10646 10647 #define bfd_coff_swap_filehdr_out(abfd, i,o) \ 10648 ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_out) (abfd, i, o)) 10649 10650 #define bfd_coff_swap_aouthdr_out(abfd, i,o) \ 10651 ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_out) (abfd, i, o)) 10652 10653 #define bfd_coff_filhsz(abfd) (coff_backend_info (abfd)->_bfd_filhsz) 10654 #define bfd_coff_aoutsz(abfd) (coff_backend_info (abfd)->_bfd_aoutsz) 10655 #define bfd_coff_scnhsz(abfd) (coff_backend_info (abfd)->_bfd_scnhsz) 10656 #define bfd_coff_symesz(abfd) (coff_backend_info (abfd)->_bfd_symesz) 10657 #define bfd_coff_auxesz(abfd) (coff_backend_info (abfd)->_bfd_auxesz) 10658 #define bfd_coff_relsz(abfd) (coff_backend_info (abfd)->_bfd_relsz) 10659 #define bfd_coff_linesz(abfd) (coff_backend_info (abfd)->_bfd_linesz) 10660 #define bfd_coff_filnmlen(abfd) (coff_backend_info (abfd)->_bfd_filnmlen) 10661 #define bfd_coff_long_filenames(abfd) \ 10662 (coff_backend_info (abfd)->_bfd_coff_long_filenames) 10663 #define bfd_coff_long_section_names(abfd) \ 10664 (coff_backend_info (abfd)->_bfd_coff_long_section_names) 10665 #define bfd_coff_set_long_section_names(abfd, enable) \ 10666 ((coff_backend_info (abfd)->_bfd_coff_set_long_section_names) (abfd, enable)) 10667 #define bfd_coff_default_section_alignment_power(abfd) \ 10668 (coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power) 10669 #define bfd_coff_max_nscns(abfd) \ 10670 (coff_backend_info (abfd)->_bfd_coff_max_nscns) 10671 10672 #define bfd_coff_swap_filehdr_in(abfd, i,o) \ 10673 ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o)) 10674 10675 #define bfd_coff_swap_aouthdr_in(abfd, i,o) \ 10676 ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_in) (abfd, i, o)) 10677 10678 #define bfd_coff_swap_scnhdr_in(abfd, i,o) \ 10679 ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_in) (abfd, i, o)) 10680 10681 #define bfd_coff_swap_reloc_in(abfd, i, o) \ 10682 ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_in) (abfd, i, o)) 10683 10684 #define bfd_coff_bad_format_hook(abfd, filehdr) \ 10685 ((coff_backend_info (abfd)->_bfd_coff_bad_format_hook) (abfd, filehdr)) 10686 10687 #define bfd_coff_set_arch_mach_hook(abfd, filehdr)\ 10688 ((coff_backend_info (abfd)->_bfd_coff_set_arch_mach_hook) (abfd, filehdr)) 10689 #define bfd_coff_mkobject_hook(abfd, filehdr, aouthdr)\ 10690 ((coff_backend_info (abfd)->_bfd_coff_mkobject_hook)\ 10691 (abfd, filehdr, aouthdr)) 10692 10693 #define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name, section, flags_ptr)\ 10694 ((coff_backend_info (abfd)->_bfd_styp_to_sec_flags_hook)\ 10695 (abfd, scnhdr, name, section, flags_ptr)) 10696 10697 #define bfd_coff_set_alignment_hook(abfd, sec, scnhdr)\ 10698 ((coff_backend_info (abfd)->_bfd_set_alignment_hook) (abfd, sec, scnhdr)) 10699 10700 #define bfd_coff_slurp_symbol_table(abfd)\ 10701 ((coff_backend_info (abfd)->_bfd_coff_slurp_symbol_table) (abfd)) 10702 10703 #define bfd_coff_symname_in_debug(abfd, sym)\ 10704 ((coff_backend_info (abfd)->_bfd_coff_symname_in_debug) (abfd, sym)) 10705 10706 #define bfd_coff_force_symnames_in_strings(abfd)\ 10707 (coff_backend_info (abfd)->_bfd_coff_force_symnames_in_strings) 10708 10709 #define bfd_coff_debug_string_prefix_length(abfd)\ 10710 (coff_backend_info (abfd)->_bfd_coff_debug_string_prefix_length) 10711 10712 #define bfd_coff_print_aux(abfd, file, base, symbol, aux, indaux)\ 10713 ((coff_backend_info (abfd)->_bfd_coff_print_aux)\ 10714 (abfd, file, base, symbol, aux, indaux)) 10715 10716 #define bfd_coff_reloc16_extra_cases(abfd, link_info, link_order,\ 10717 reloc, data, src_ptr, dst_ptr)\ 10718 ((coff_backend_info (abfd)->_bfd_coff_reloc16_extra_cases)\ 10719 (abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr)) 10720 10721 #define bfd_coff_reloc16_estimate(abfd, section, reloc, shrink, link_info)\ 10722 ((coff_backend_info (abfd)->_bfd_coff_reloc16_estimate)\ 10723 (abfd, section, reloc, shrink, link_info)) 10724 10725 #define bfd_coff_classify_symbol(abfd, sym)\ 10726 ((coff_backend_info (abfd)->_bfd_coff_classify_symbol)\ 10727 (abfd, sym)) 10728 10729 #define bfd_coff_compute_section_file_positions(abfd)\ 10730 ((coff_backend_info (abfd)->_bfd_coff_compute_section_file_positions)\ 10731 (abfd)) 10732 10733 #define bfd_coff_start_final_link(obfd, info)\ 10734 ((coff_backend_info (obfd)->_bfd_coff_start_final_link)\ 10735 (obfd, info)) 10736 #define bfd_coff_relocate_section(obfd,info,ibfd,o,con,rel,isyms,secs)\ 10737 ((coff_backend_info (ibfd)->_bfd_coff_relocate_section)\ 10738 (obfd, info, ibfd, o, con, rel, isyms, secs)) 10739 #define bfd_coff_rtype_to_howto(abfd, sec, rel, h, sym, addendp)\ 10740 ((coff_backend_info (abfd)->_bfd_coff_rtype_to_howto)\ 10741 (abfd, sec, rel, h, sym, addendp)) 10742 #define bfd_coff_adjust_symndx(obfd, info, ibfd, sec, rel, adjustedp)\ 10743 ((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\ 10744 (obfd, info, ibfd, sec, rel, adjustedp)) 10745 #define bfd_coff_link_add_one_symbol(info, abfd, name, flags, section,\ 10746 value, string, cp, coll, hashp)\ 10747 ((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\ 10748 (info, abfd, name, flags, section, value, string, cp, coll, hashp)) 10749 10750 #define bfd_coff_link_output_has_begun(a,p) \ 10751 ((coff_backend_info (a)->_bfd_coff_link_output_has_begun) (a, p)) 10752 #define bfd_coff_final_link_postscript(a,p) \ 10753 ((coff_backend_info (a)->_bfd_coff_final_link_postscript) (a, p)) 10754 10755 #define bfd_coff_have_print_pdata(a) \ 10756 (coff_backend_info (a)->_bfd_coff_print_pdata) 10757 #define bfd_coff_print_pdata(a,p) \ 10758 ((coff_backend_info (a)->_bfd_coff_print_pdata) (a, p)) 10759 10760 /* Macro: Returns true if the bfd is a PE executable as opposed to a 10761 PE object file. */ 10762 #define bfd_pei_p(abfd) \ 10763 (CONST_STRNEQ ((abfd)->xvec->name, "pei-")) 10764 107653.3.2.8 Writing relocations 10766........................... 10767 10768To write relocations, the back end steps though the canonical 10769relocation table and create an `internal_reloc'. The symbol index to 10770use is removed from the `offset' field in the symbol table supplied. 10771The address comes directly from the sum of the section base address and 10772the relocation offset; the type is dug directly from the howto field. 10773Then the `internal_reloc' is swapped into the shape of an 10774`external_reloc' and written out to disk. 10775 107763.3.2.9 Reading linenumbers 10777........................... 10778 10779Creating the linenumber table is done by reading in the entire coff 10780linenumber table, and creating another table for internal use. 10781 10782 A coff linenumber table is structured so that each function is 10783marked as having a line number of 0. Each line within the function is 10784an offset from the first line in the function. The base of the line 10785number information for the table is stored in the symbol associated 10786with the function. 10787 10788 Note: The PE format uses line number 0 for a flag indicating a new 10789source file. 10790 10791 The information is copied from the external to the internal table, 10792and each symbol which marks a function is marked by pointing its... 10793 10794 How does this work ? 10795 107963.3.2.10 Reading relocations 10797............................ 10798 10799Coff relocations are easily transformed into the internal BFD form 10800(`arelent'). 10801 10802 Reading a coff relocation table is done in the following stages: 10803 10804 * Read the entire coff relocation table into memory. 10805 10806 * Process each relocation in turn; first swap it from the external 10807 to the internal form. 10808 10809 * Turn the symbol referenced in the relocation's symbol index into a 10810 pointer into the canonical symbol table. This table is the same 10811 as the one returned by a call to `bfd_canonicalize_symtab'. The 10812 back end will call that routine and save the result if a 10813 canonicalization hasn't been done. 10814 10815 * The reloc index is turned into a pointer to a howto structure, in 10816 a back end specific way. For instance, the 386 and 960 use the 10817 `r_type' to directly produce an index into a howto table vector; 10818 the 88k subtracts a number from the `r_type' field and creates an 10819 addend field. 10820 10821 10822File: bfd.info, Node: elf, Next: mmo, Prev: coff, Up: BFD back ends 10823 108243.4 ELF backends 10825================ 10826 10827BFD support for ELF formats is being worked on. Currently, the best 10828supported back ends are for sparc and i386 (running svr4 or Solaris 2). 10829 10830 Documentation of the internals of the support code still needs to be 10831written. The code is changing quickly enough that we haven't bothered 10832yet. 10833 10834 10835File: bfd.info, Node: mmo, Prev: elf, Up: BFD back ends 10836 108373.5 mmo backend 10838=============== 10839 10840The mmo object format is used exclusively together with Professor 10841Donald E. Knuth's educational 64-bit processor MMIX. The simulator 10842`mmix' which is available at `http://mmix.cs.hm.edu/src/index.html' 10843understands this format. That package also includes a combined 10844assembler and linker called `mmixal'. The mmo format has no advantages 10845feature-wise compared to e.g. ELF. It is a simple non-relocatable 10846object format with no support for archives or debugging information, 10847except for symbol value information and line numbers (which is not yet 10848implemented in BFD). See `http://mmix.cs.hm.edu/' for more information 10849about MMIX. The ELF format is used for intermediate object files in 10850the BFD implementation. 10851 10852* Menu: 10853 10854* File layout:: 10855* Symbol-table:: 10856* mmo section mapping:: 10857 10858 10859File: bfd.info, Node: File layout, Next: Symbol-table, Prev: mmo, Up: mmo 10860 108613.5.1 File layout 10862----------------- 10863 10864The mmo file contents is not partitioned into named sections as with 10865e.g. ELF. Memory areas is formed by specifying the location of the 10866data that follows. Only the memory area `0x0000...00' to `0x01ff...ff' 10867is executable, so it is used for code (and constants) and the area 10868`0x2000...00' to `0x20ff...ff' is used for writable data. *Note mmo 10869section mapping::. 10870 10871 There is provision for specifying "special data" of 65536 different 10872types. We use type 80 (decimal), arbitrarily chosen the same as the 10873ELF `e_machine' number for MMIX, filling it with section information 10874normally found in ELF objects. *Note mmo section mapping::. 10875 10876 Contents is entered as 32-bit words, xor:ed over previous contents, 10877always zero-initialized. A word that starts with the byte `0x98' forms 10878a command called a `lopcode', where the next byte distinguished between 10879the thirteen lopcodes. The two remaining bytes, called the `Y' and `Z' 10880fields, or the `YZ' field (a 16-bit big-endian number), are used for 10881various purposes different for each lopcode. As documented in 10882`http://mmix.cs.hm.edu/doc/mmixal.pdf', the lopcodes are: 10883 10884`lop_quote' 10885 0x98000001. The next word is contents, regardless of whether it 10886 starts with 0x98 or not. 10887 10888`lop_loc' 10889 0x9801YYZZ, where `Z' is 1 or 2. This is a location directive, 10890 setting the location for the next data to the next 32-bit word 10891 (for Z = 1) or 64-bit word (for Z = 2), plus Y * 2^56. Normally 10892 `Y' is 0 for the text segment and 2 for the data segment. Beware 10893 that the low bits of non- tetrabyte-aligned values are silently 10894 discarded when being automatically incremented and when storing 10895 contents (in contrast to e.g. its use as current location when 10896 followed by lop_fixo et al before the next possibly-quoted 10897 tetrabyte contents). 10898 10899`lop_skip' 10900 0x9802YYZZ. Increase the current location by `YZ' bytes. 10901 10902`lop_fixo' 10903 0x9803YYZZ, where `Z' is 1 or 2. Store the current location as 64 10904 bits into the location pointed to by the next 32-bit (Z = 1) or 10905 64-bit (Z = 2) word, plus Y * 2^56. 10906 10907`lop_fixr' 10908 0x9804YYZZ. `YZ' is stored into the current location plus 2 - 4 * 10909 YZ. 10910 10911`lop_fixrx' 10912 0x980500ZZ. `Z' is 16 or 24. A value `L' derived from the 10913 following 32-bit word are used in a manner similar to `YZ' in 10914 lop_fixr: it is xor:ed into the current location minus 4 * L. The 10915 first byte of the word is 0 or 1. If it is 1, then L = (LOWEST 24 10916 BITS OF WORD) - 2^Z, if 0, then L = (LOWEST 24 BITS OF WORD). 10917 10918`lop_file' 10919 0x9806YYZZ. `Y' is the file number, `Z' is count of 32-bit words. 10920 Set the file number to `Y' and the line counter to 0. The next Z 10921 * 4 bytes contain the file name, padded with zeros if the count is 10922 not a multiple of four. The same `Y' may occur multiple times, 10923 but `Z' must be 0 for all but the first occurrence. 10924 10925`lop_line' 10926 0x9807YYZZ. `YZ' is the line number. Together with lop_file, it 10927 forms the source location for the next 32-bit word. Note that for 10928 each non-lopcode 32-bit word, line numbers are assumed incremented 10929 by one. 10930 10931`lop_spec' 10932 0x9808YYZZ. `YZ' is the type number. Data until the next lopcode 10933 other than lop_quote forms special data of type `YZ'. *Note mmo 10934 section mapping::. 10935 10936 Other types than 80, (or type 80 with a content that does not 10937 parse) is stored in sections named `.MMIX.spec_data.N' where N is 10938 the `YZ'-type. The flags for such a sections say not to allocate 10939 or load the data. The vma is 0. Contents of multiple occurrences 10940 of special data N is concatenated to the data of the previous 10941 lop_spec Ns. The location in data or code at which the lop_spec 10942 occurred is lost. 10943 10944`lop_pre' 10945 0x980901ZZ. The first lopcode in a file. The `Z' field forms the 10946 length of header information in 32-bit words, where the first word 10947 tells the time in seconds since `00:00:00 GMT Jan 1 1970'. 10948 10949`lop_post' 10950 0x980a00ZZ. Z > 32. This lopcode follows after all 10951 content-generating lopcodes in a program. The `Z' field denotes 10952 the value of `rG' at the beginning of the program. The following 10953 256 - Z big-endian 64-bit words are loaded into global registers 10954 `$G' ... `$255'. 10955 10956`lop_stab' 10957 0x980b0000. The next-to-last lopcode in a program. Must follow 10958 immediately after the lop_post lopcode and its data. After this 10959 lopcode follows all symbols in a compressed format (*note 10960 Symbol-table::). 10961 10962`lop_end' 10963 0x980cYYZZ. The last lopcode in a program. It must follow the 10964 lop_stab lopcode and its data. The `YZ' field contains the number 10965 of 32-bit words of symbol table information after the preceding 10966 lop_stab lopcode. 10967 10968 Note that the lopcode "fixups"; `lop_fixr', `lop_fixrx' and 10969`lop_fixo' are not generated by BFD, but are handled. They are 10970generated by `mmixal'. 10971 10972 This trivial one-label, one-instruction file: 10973 10974 :Main TRAP 1,2,3 10975 10976 can be represented this way in mmo: 10977 10978 0x98090101 - lop_pre, one 32-bit word with timestamp. 10979 <timestamp> 10980 0x98010002 - lop_loc, text segment, using a 64-bit address. 10981 Note that mmixal does not emit this for the file above. 10982 0x00000000 - Address, high 32 bits. 10983 0x00000000 - Address, low 32 bits. 10984 0x98060002 - lop_file, 2 32-bit words for file-name. 10985 0x74657374 - "test" 10986 0x2e730000 - ".s\0\0" 10987 0x98070001 - lop_line, line 1. 10988 0x00010203 - TRAP 1,2,3 10989 0x980a00ff - lop_post, setting $255 to 0. 10990 0x00000000 10991 0x00000000 10992 0x980b0000 - lop_stab for ":Main" = 0, serial 1. 10993 0x203a4040 *Note Symbol-table::. 10994 0x10404020 10995 0x4d206120 10996 0x69016e00 10997 0x81000000 10998 0x980c0005 - lop_end; symbol table contained five 32-bit words. 10999 11000 11001File: bfd.info, Node: Symbol-table, Next: mmo section mapping, Prev: File layout, Up: mmo 11002 110033.5.2 Symbol table format 11004------------------------- 11005 11006From mmixal.w (or really, the generated mmixal.tex) in the MMIXware 11007package which also contains the `mmix' simulator: "Symbols are stored 11008and retrieved by means of a `ternary search trie', following ideas of 11009Bentley and Sedgewick. (See ACM-SIAM Symp. on Discrete Algorithms `8' 11010(1997), 360-369; R.Sedgewick, `Algorithms in C' (Reading, Mass. 11011Addison-Wesley, 1998), `15.4'.) Each trie node stores a character, and 11012there are branches to subtries for the cases where a given character is 11013less than, equal to, or greater than the character in the trie. There 11014also is a pointer to a symbol table entry if a symbol ends at the 11015current node." 11016 11017 So it's a tree encoded as a stream of bytes. The stream of bytes 11018acts on a single virtual global symbol, adding and removing characters 11019and signalling complete symbol points. Here, we read the stream and 11020create symbols at the completion points. 11021 11022 First, there's a control byte `m'. If any of the listed bits in `m' 11023is nonzero, we execute what stands at the right, in the listed order: 11024 11025 (MMO3_LEFT) 11026 0x40 - Traverse left trie. 11027 (Read a new command byte and recurse.) 11028 11029 (MMO3_SYMBITS) 11030 0x2f - Read the next byte as a character and store it in the 11031 current character position; increment character position. 11032 Test the bits of `m': 11033 11034 (MMO3_WCHAR) 11035 0x80 - The character is 16-bit (so read another byte, 11036 merge into current character. 11037 11038 (MMO3_TYPEBITS) 11039 0xf - We have a complete symbol; parse the type, value 11040 and serial number and do what should be done 11041 with a symbol. The type and length information 11042 is in j = (m & 0xf). 11043 11044 (MMO3_REGQUAL_BITS) 11045 j == 0xf: A register variable. The following 11046 byte tells which register. 11047 j <= 8: An absolute symbol. Read j bytes as the 11048 big-endian number the symbol equals. 11049 A j = 2 with two zero bytes denotes an 11050 unknown symbol. 11051 j > 8: As with j <= 8, but add (0x20 << 56) 11052 to the value in the following j - 8 11053 bytes. 11054 11055 Then comes the serial number, as a variant of 11056 uleb128, but better named ubeb128: 11057 Read bytes and shift the previous value left 7 11058 (multiply by 128). Add in the new byte, repeat 11059 until a byte has bit 7 set. The serial number 11060 is the computed value minus 128. 11061 11062 (MMO3_MIDDLE) 11063 0x20 - Traverse middle trie. (Read a new command byte 11064 and recurse.) Decrement character position. 11065 11066 (MMO3_RIGHT) 11067 0x10 - Traverse right trie. (Read a new command byte and 11068 recurse.) 11069 11070 Let's look again at the `lop_stab' for the trivial file (*note File 11071layout::). 11072 11073 0x980b0000 - lop_stab for ":Main" = 0, serial 1. 11074 0x203a4040 11075 0x10404020 11076 0x4d206120 11077 0x69016e00 11078 0x81000000 11079 11080 This forms the trivial trie (note that the path between ":" and "M" 11081is redundant): 11082 11083 203a ":" 11084 40 / 11085 40 / 11086 10 \ 11087 40 / 11088 40 / 11089 204d "M" 11090 2061 "a" 11091 2069 "i" 11092 016e "n" is the last character in a full symbol, and 11093 with a value represented in one byte. 11094 00 The value is 0. 11095 81 The serial number is 1. 11096 11097 11098File: bfd.info, Node: mmo section mapping, Prev: Symbol-table, Up: mmo 11099 111003.5.3 mmo section mapping 11101------------------------- 11102 11103The implementation in BFD uses special data type 80 (decimal) to 11104encapsulate and describe named sections, containing e.g. debug 11105information. If needed, any datum in the encapsulation will be quoted 11106using lop_quote. First comes a 32-bit word holding the number of 1110732-bit words containing the zero-terminated zero-padded segment name. 11108After the name there's a 32-bit word holding flags describing the 11109section type. Then comes a 64-bit big-endian word with the section 11110length (in bytes), then another with the section start address. 11111Depending on the type of section, the contents might follow, 11112zero-padded to 32-bit boundary. For a loadable section (such as data 11113or code), the contents might follow at some later point, not 11114necessarily immediately, as a lop_loc with the same start address as in 11115the section description, followed by the contents. This in effect 11116forms a descriptor that must be emitted before the actual contents. 11117Sections described this way must not overlap. 11118 11119 For areas that don't have such descriptors, synthetic sections are 11120formed by BFD. Consecutive contents in the two memory areas 11121`0x0000...00' to `0x01ff...ff' and `0x2000...00' to `0x20ff...ff' are 11122entered in sections named `.text' and `.data' respectively. If an area 11123is not otherwise described, but would together with a neighboring lower 11124area be less than `0x40000000' bytes long, it is joined with the lower 11125area and the gap is zero-filled. For other cases, a new section is 11126formed, named `.MMIX.sec.N'. Here, N is a number, a running count 11127through the mmo file, starting at 0. 11128 11129 A loadable section specified as: 11130 11131 .section secname,"ax" 11132 TETRA 1,2,3,4,-1,-2009 11133 BYTE 80 11134 11135 and linked to address `0x4', is represented by the sequence: 11136 11137 0x98080050 - lop_spec 80 11138 0x00000002 - two 32-bit words for the section name 11139 0x7365636e - "secn" 11140 0x616d6500 - "ame\0" 11141 0x00000033 - flags CODE, READONLY, LOAD, ALLOC 11142 0x00000000 - high 32 bits of section length 11143 0x0000001c - section length is 28 bytes; 6 * 4 + 1 + alignment to 32 bits 11144 0x00000000 - high 32 bits of section address 11145 0x00000004 - section address is 4 11146 0x98010002 - 64 bits with address of following data 11147 0x00000000 - high 32 bits of address 11148 0x00000004 - low 32 bits: data starts at address 4 11149 0x00000001 - 1 11150 0x00000002 - 2 11151 0x00000003 - 3 11152 0x00000004 - 4 11153 0xffffffff - -1 11154 0xfffff827 - -2009 11155 0x50000000 - 80 as a byte, padded with zeros. 11156 11157 Note that the lop_spec wrapping does not include the section 11158contents. Compare this to a non-loaded section specified as: 11159 11160 .section thirdsec 11161 TETRA 200001,100002 11162 BYTE 38,40 11163 11164 This, when linked to address `0x200000000000001c', is represented by: 11165 11166 0x98080050 - lop_spec 80 11167 0x00000002 - two 32-bit words for the section name 11168 0x7365636e - "thir" 11169 0x616d6500 - "dsec" 11170 0x00000010 - flag READONLY 11171 0x00000000 - high 32 bits of section length 11172 0x0000000c - section length is 12 bytes; 2 * 4 + 2 + alignment to 32 bits 11173 0x20000000 - high 32 bits of address 11174 0x0000001c - low 32 bits of address 0x200000000000001c 11175 0x00030d41 - 200001 11176 0x000186a2 - 100002 11177 0x26280000 - 38, 40 as bytes, padded with zeros 11178 11179 For the latter example, the section contents must not be loaded in 11180memory, and is therefore specified as part of the special data. The 11181address is usually unimportant but might provide information for e.g. 11182the DWARF 2 debugging format. 11183 11184 11185File: bfd.info, Node: GNU Free Documentation License, Next: BFD Index, Prev: BFD back ends, Up: Top 11186 11187 Version 1.3, 3 November 2008 11188 11189 Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. 11190 `http://fsf.org/' 11191 11192 Everyone is permitted to copy and distribute verbatim copies 11193 of this license document, but changing it is not allowed. 11194 11195 0. PREAMBLE 11196 11197 The purpose of this License is to make a manual, textbook, or other 11198 functional and useful document "free" in the sense of freedom: to 11199 assure everyone the effective freedom to copy and redistribute it, 11200 with or without modifying it, either commercially or 11201 noncommercially. Secondarily, this License preserves for the 11202 author and publisher a way to get credit for their work, while not 11203 being considered responsible for modifications made by others. 11204 11205 This License is a kind of "copyleft", which means that derivative 11206 works of the document must themselves be free in the same sense. 11207 It complements the GNU General Public License, which is a copyleft 11208 license designed for free software. 11209 11210 We have designed this License in order to use it for manuals for 11211 free software, because free software needs free documentation: a 11212 free program should come with manuals providing the same freedoms 11213 that the software does. But this License is not limited to 11214 software manuals; it can be used for any textual work, regardless 11215 of subject matter or whether it is published as a printed book. 11216 We recommend this License principally for works whose purpose is 11217 instruction or reference. 11218 11219 1. APPLICABILITY AND DEFINITIONS 11220 11221 This License applies to any manual or other work, in any medium, 11222 that contains a notice placed by the copyright holder saying it 11223 can be distributed under the terms of this License. Such a notice 11224 grants a world-wide, royalty-free license, unlimited in duration, 11225 to use that work under the conditions stated herein. The 11226 "Document", below, refers to any such manual or work. Any member 11227 of the public is a licensee, and is addressed as "you". You 11228 accept the license if you copy, modify or distribute the work in a 11229 way requiring permission under copyright law. 11230 11231 A "Modified Version" of the Document means any work containing the 11232 Document or a portion of it, either copied verbatim, or with 11233 modifications and/or translated into another language. 11234 11235 A "Secondary Section" is a named appendix or a front-matter section 11236 of the Document that deals exclusively with the relationship of the 11237 publishers or authors of the Document to the Document's overall 11238 subject (or to related matters) and contains nothing that could 11239 fall directly within that overall subject. (Thus, if the Document 11240 is in part a textbook of mathematics, a Secondary Section may not 11241 explain any mathematics.) The relationship could be a matter of 11242 historical connection with the subject or with related matters, or 11243 of legal, commercial, philosophical, ethical or political position 11244 regarding them. 11245 11246 The "Invariant Sections" are certain Secondary Sections whose 11247 titles are designated, as being those of Invariant Sections, in 11248 the notice that says that the Document is released under this 11249 License. If a section does not fit the above definition of 11250 Secondary then it is not allowed to be designated as Invariant. 11251 The Document may contain zero Invariant Sections. If the Document 11252 does not identify any Invariant Sections then there are none. 11253 11254 The "Cover Texts" are certain short passages of text that are 11255 listed, as Front-Cover Texts or Back-Cover Texts, in the notice 11256 that says that the Document is released under this License. A 11257 Front-Cover Text may be at most 5 words, and a Back-Cover Text may 11258 be at most 25 words. 11259 11260 A "Transparent" copy of the Document means a machine-readable copy, 11261 represented in a format whose specification is available to the 11262 general public, that is suitable for revising the document 11263 straightforwardly with generic text editors or (for images 11264 composed of pixels) generic paint programs or (for drawings) some 11265 widely available drawing editor, and that is suitable for input to 11266 text formatters or for automatic translation to a variety of 11267 formats suitable for input to text formatters. A copy made in an 11268 otherwise Transparent file format whose markup, or absence of 11269 markup, has been arranged to thwart or discourage subsequent 11270 modification by readers is not Transparent. An image format is 11271 not Transparent if used for any substantial amount of text. A 11272 copy that is not "Transparent" is called "Opaque". 11273 11274 Examples of suitable formats for Transparent copies include plain 11275 ASCII without markup, Texinfo input format, LaTeX input format, 11276 SGML or XML using a publicly available DTD, and 11277 standard-conforming simple HTML, PostScript or PDF designed for 11278 human modification. Examples of transparent image formats include 11279 PNG, XCF and JPG. Opaque formats include proprietary formats that 11280 can be read and edited only by proprietary word processors, SGML or 11281 XML for which the DTD and/or processing tools are not generally 11282 available, and the machine-generated HTML, PostScript or PDF 11283 produced by some word processors for output purposes only. 11284 11285 The "Title Page" means, for a printed book, the title page itself, 11286 plus such following pages as are needed to hold, legibly, the 11287 material this License requires to appear in the title page. For 11288 works in formats which do not have any title page as such, "Title 11289 Page" means the text near the most prominent appearance of the 11290 work's title, preceding the beginning of the body of the text. 11291 11292 The "publisher" means any person or entity that distributes copies 11293 of the Document to the public. 11294 11295 A section "Entitled XYZ" means a named subunit of the Document 11296 whose title either is precisely XYZ or contains XYZ in parentheses 11297 following text that translates XYZ in another language. (Here XYZ 11298 stands for a specific section name mentioned below, such as 11299 "Acknowledgements", "Dedications", "Endorsements", or "History".) 11300 To "Preserve the Title" of such a section when you modify the 11301 Document means that it remains a section "Entitled XYZ" according 11302 to this definition. 11303 11304 The Document may include Warranty Disclaimers next to the notice 11305 which states that this License applies to the Document. These 11306 Warranty Disclaimers are considered to be included by reference in 11307 this License, but only as regards disclaiming warranties: any other 11308 implication that these Warranty Disclaimers may have is void and 11309 has no effect on the meaning of this License. 11310 11311 2. VERBATIM COPYING 11312 11313 You may copy and distribute the Document in any medium, either 11314 commercially or noncommercially, provided that this License, the 11315 copyright notices, and the license notice saying this License 11316 applies to the Document are reproduced in all copies, and that you 11317 add no other conditions whatsoever to those of this License. You 11318 may not use technical measures to obstruct or control the reading 11319 or further copying of the copies you make or distribute. However, 11320 you may accept compensation in exchange for copies. If you 11321 distribute a large enough number of copies you must also follow 11322 the conditions in section 3. 11323 11324 You may also lend copies, under the same conditions stated above, 11325 and you may publicly display copies. 11326 11327 3. COPYING IN QUANTITY 11328 11329 If you publish printed copies (or copies in media that commonly 11330 have printed covers) of the Document, numbering more than 100, and 11331 the Document's license notice requires Cover Texts, you must 11332 enclose the copies in covers that carry, clearly and legibly, all 11333 these Cover Texts: Front-Cover Texts on the front cover, and 11334 Back-Cover Texts on the back cover. Both covers must also clearly 11335 and legibly identify you as the publisher of these copies. The 11336 front cover must present the full title with all words of the 11337 title equally prominent and visible. You may add other material 11338 on the covers in addition. Copying with changes limited to the 11339 covers, as long as they preserve the title of the Document and 11340 satisfy these conditions, can be treated as verbatim copying in 11341 other respects. 11342 11343 If the required texts for either cover are too voluminous to fit 11344 legibly, you should put the first ones listed (as many as fit 11345 reasonably) on the actual cover, and continue the rest onto 11346 adjacent pages. 11347 11348 If you publish or distribute Opaque copies of the Document 11349 numbering more than 100, you must either include a 11350 machine-readable Transparent copy along with each Opaque copy, or 11351 state in or with each Opaque copy a computer-network location from 11352 which the general network-using public has access to download 11353 using public-standard network protocols a complete Transparent 11354 copy of the Document, free of added material. If you use the 11355 latter option, you must take reasonably prudent steps, when you 11356 begin distribution of Opaque copies in quantity, to ensure that 11357 this Transparent copy will remain thus accessible at the stated 11358 location until at least one year after the last time you 11359 distribute an Opaque copy (directly or through your agents or 11360 retailers) of that edition to the public. 11361 11362 It is requested, but not required, that you contact the authors of 11363 the Document well before redistributing any large number of 11364 copies, to give them a chance to provide you with an updated 11365 version of the Document. 11366 11367 4. MODIFICATIONS 11368 11369 You may copy and distribute a Modified Version of the Document 11370 under the conditions of sections 2 and 3 above, provided that you 11371 release the Modified Version under precisely this License, with 11372 the Modified Version filling the role of the Document, thus 11373 licensing distribution and modification of the Modified Version to 11374 whoever possesses a copy of it. In addition, you must do these 11375 things in the Modified Version: 11376 11377 A. Use in the Title Page (and on the covers, if any) a title 11378 distinct from that of the Document, and from those of 11379 previous versions (which should, if there were any, be listed 11380 in the History section of the Document). You may use the 11381 same title as a previous version if the original publisher of 11382 that version gives permission. 11383 11384 B. List on the Title Page, as authors, one or more persons or 11385 entities responsible for authorship of the modifications in 11386 the Modified Version, together with at least five of the 11387 principal authors of the Document (all of its principal 11388 authors, if it has fewer than five), unless they release you 11389 from this requirement. 11390 11391 C. State on the Title page the name of the publisher of the 11392 Modified Version, as the publisher. 11393 11394 D. Preserve all the copyright notices of the Document. 11395 11396 E. Add an appropriate copyright notice for your modifications 11397 adjacent to the other copyright notices. 11398 11399 F. Include, immediately after the copyright notices, a license 11400 notice giving the public permission to use the Modified 11401 Version under the terms of this License, in the form shown in 11402 the Addendum below. 11403 11404 G. Preserve in that license notice the full lists of Invariant 11405 Sections and required Cover Texts given in the Document's 11406 license notice. 11407 11408 H. Include an unaltered copy of this License. 11409 11410 I. Preserve the section Entitled "History", Preserve its Title, 11411 and add to it an item stating at least the title, year, new 11412 authors, and publisher of the Modified Version as given on 11413 the Title Page. If there is no section Entitled "History" in 11414 the Document, create one stating the title, year, authors, 11415 and publisher of the Document as given on its Title Page, 11416 then add an item describing the Modified Version as stated in 11417 the previous sentence. 11418 11419 J. Preserve the network location, if any, given in the Document 11420 for public access to a Transparent copy of the Document, and 11421 likewise the network locations given in the Document for 11422 previous versions it was based on. These may be placed in 11423 the "History" section. You may omit a network location for a 11424 work that was published at least four years before the 11425 Document itself, or if the original publisher of the version 11426 it refers to gives permission. 11427 11428 K. For any section Entitled "Acknowledgements" or "Dedications", 11429 Preserve the Title of the section, and preserve in the 11430 section all the substance and tone of each of the contributor 11431 acknowledgements and/or dedications given therein. 11432 11433 L. Preserve all the Invariant Sections of the Document, 11434 unaltered in their text and in their titles. Section numbers 11435 or the equivalent are not considered part of the section 11436 titles. 11437 11438 M. Delete any section Entitled "Endorsements". Such a section 11439 may not be included in the Modified Version. 11440 11441 N. Do not retitle any existing section to be Entitled 11442 "Endorsements" or to conflict in title with any Invariant 11443 Section. 11444 11445 O. Preserve any Warranty Disclaimers. 11446 11447 If the Modified Version includes new front-matter sections or 11448 appendices that qualify as Secondary Sections and contain no 11449 material copied from the Document, you may at your option 11450 designate some or all of these sections as invariant. To do this, 11451 add their titles to the list of Invariant Sections in the Modified 11452 Version's license notice. These titles must be distinct from any 11453 other section titles. 11454 11455 You may add a section Entitled "Endorsements", provided it contains 11456 nothing but endorsements of your Modified Version by various 11457 parties--for example, statements of peer review or that the text 11458 has been approved by an organization as the authoritative 11459 definition of a standard. 11460 11461 You may add a passage of up to five words as a Front-Cover Text, 11462 and a passage of up to 25 words as a Back-Cover Text, to the end 11463 of the list of Cover Texts in the Modified Version. Only one 11464 passage of Front-Cover Text and one of Back-Cover Text may be 11465 added by (or through arrangements made by) any one entity. If the 11466 Document already includes a cover text for the same cover, 11467 previously added by you or by arrangement made by the same entity 11468 you are acting on behalf of, you may not add another; but you may 11469 replace the old one, on explicit permission from the previous 11470 publisher that added the old one. 11471 11472 The author(s) and publisher(s) of the Document do not by this 11473 License give permission to use their names for publicity for or to 11474 assert or imply endorsement of any Modified Version. 11475 11476 5. COMBINING DOCUMENTS 11477 11478 You may combine the Document with other documents released under 11479 this License, under the terms defined in section 4 above for 11480 modified versions, provided that you include in the combination 11481 all of the Invariant Sections of all of the original documents, 11482 unmodified, and list them all as Invariant Sections of your 11483 combined work in its license notice, and that you preserve all 11484 their Warranty Disclaimers. 11485 11486 The combined work need only contain one copy of this License, and 11487 multiple identical Invariant Sections may be replaced with a single 11488 copy. If there are multiple Invariant Sections with the same name 11489 but different contents, make the title of each such section unique 11490 by adding at the end of it, in parentheses, the name of the 11491 original author or publisher of that section if known, or else a 11492 unique number. Make the same adjustment to the section titles in 11493 the list of Invariant Sections in the license notice of the 11494 combined work. 11495 11496 In the combination, you must combine any sections Entitled 11497 "History" in the various original documents, forming one section 11498 Entitled "History"; likewise combine any sections Entitled 11499 "Acknowledgements", and any sections Entitled "Dedications". You 11500 must delete all sections Entitled "Endorsements." 11501 11502 6. COLLECTIONS OF DOCUMENTS 11503 11504 You may make a collection consisting of the Document and other 11505 documents released under this License, and replace the individual 11506 copies of this License in the various documents with a single copy 11507 that is included in the collection, provided that you follow the 11508 rules of this License for verbatim copying of each of the 11509 documents in all other respects. 11510 11511 You may extract a single document from such a collection, and 11512 distribute it individually under this License, provided you insert 11513 a copy of this License into the extracted document, and follow 11514 this License in all other respects regarding verbatim copying of 11515 that document. 11516 11517 7. AGGREGATION WITH INDEPENDENT WORKS 11518 11519 A compilation of the Document or its derivatives with other 11520 separate and independent documents or works, in or on a volume of 11521 a storage or distribution medium, is called an "aggregate" if the 11522 copyright resulting from the compilation is not used to limit the 11523 legal rights of the compilation's users beyond what the individual 11524 works permit. When the Document is included in an aggregate, this 11525 License does not apply to the other works in the aggregate which 11526 are not themselves derivative works of the Document. 11527 11528 If the Cover Text requirement of section 3 is applicable to these 11529 copies of the Document, then if the Document is less than one half 11530 of the entire aggregate, the Document's Cover Texts may be placed 11531 on covers that bracket the Document within the aggregate, or the 11532 electronic equivalent of covers if the Document is in electronic 11533 form. Otherwise they must appear on printed covers that bracket 11534 the whole aggregate. 11535 11536 8. TRANSLATION 11537 11538 Translation is considered a kind of modification, so you may 11539 distribute translations of the Document under the terms of section 11540 4. Replacing Invariant Sections with translations requires special 11541 permission from their copyright holders, but you may include 11542 translations of some or all Invariant Sections in addition to the 11543 original versions of these Invariant Sections. You may include a 11544 translation of this License, and all the license notices in the 11545 Document, and any Warranty Disclaimers, provided that you also 11546 include the original English version of this License and the 11547 original versions of those notices and disclaimers. In case of a 11548 disagreement between the translation and the original version of 11549 this License or a notice or disclaimer, the original version will 11550 prevail. 11551 11552 If a section in the Document is Entitled "Acknowledgements", 11553 "Dedications", or "History", the requirement (section 4) to 11554 Preserve its Title (section 1) will typically require changing the 11555 actual title. 11556 11557 9. TERMINATION 11558 11559 You may not copy, modify, sublicense, or distribute the Document 11560 except as expressly provided under this License. Any attempt 11561 otherwise to copy, modify, sublicense, or distribute it is void, 11562 and will automatically terminate your rights under this License. 11563 11564 However, if you cease all violation of this License, then your 11565 license from a particular copyright holder is reinstated (a) 11566 provisionally, unless and until the copyright holder explicitly 11567 and finally terminates your license, and (b) permanently, if the 11568 copyright holder fails to notify you of the violation by some 11569 reasonable means prior to 60 days after the cessation. 11570 11571 Moreover, your license from a particular copyright holder is 11572 reinstated permanently if the copyright holder notifies you of the 11573 violation by some reasonable means, this is the first time you have 11574 received notice of violation of this License (for any work) from 11575 that copyright holder, and you cure the violation prior to 30 days 11576 after your receipt of the notice. 11577 11578 Termination of your rights under this section does not terminate 11579 the licenses of parties who have received copies or rights from 11580 you under this License. If your rights have been terminated and 11581 not permanently reinstated, receipt of a copy of some or all of 11582 the same material does not give you any rights to use it. 11583 11584 10. FUTURE REVISIONS OF THIS LICENSE 11585 11586 The Free Software Foundation may publish new, revised versions of 11587 the GNU Free Documentation License from time to time. Such new 11588 versions will be similar in spirit to the present version, but may 11589 differ in detail to address new problems or concerns. See 11590 `http://www.gnu.org/copyleft/'. 11591 11592 Each version of the License is given a distinguishing version 11593 number. If the Document specifies that a particular numbered 11594 version of this License "or any later version" applies to it, you 11595 have the option of following the terms and conditions either of 11596 that specified version or of any later version that has been 11597 published (not as a draft) by the Free Software Foundation. If 11598 the Document does not specify a version number of this License, 11599 you may choose any version ever published (not as a draft) by the 11600 Free Software Foundation. If the Document specifies that a proxy 11601 can decide which future versions of this License can be used, that 11602 proxy's public statement of acceptance of a version permanently 11603 authorizes you to choose that version for the Document. 11604 11605 11. RELICENSING 11606 11607 "Massive Multiauthor Collaboration Site" (or "MMC Site") means any 11608 World Wide Web server that publishes copyrightable works and also 11609 provides prominent facilities for anybody to edit those works. A 11610 public wiki that anybody can edit is an example of such a server. 11611 A "Massive Multiauthor Collaboration" (or "MMC") contained in the 11612 site means any set of copyrightable works thus published on the MMC 11613 site. 11614 11615 "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 11616 license published by Creative Commons Corporation, a not-for-profit 11617 corporation with a principal place of business in San Francisco, 11618 California, as well as future copyleft versions of that license 11619 published by that same organization. 11620 11621 "Incorporate" means to publish or republish a Document, in whole or 11622 in part, as part of another Document. 11623 11624 An MMC is "eligible for relicensing" if it is licensed under this 11625 License, and if all works that were first published under this 11626 License somewhere other than this MMC, and subsequently 11627 incorporated in whole or in part into the MMC, (1) had no cover 11628 texts or invariant sections, and (2) were thus incorporated prior 11629 to November 1, 2008. 11630 11631 The operator of an MMC Site may republish an MMC contained in the 11632 site under CC-BY-SA on the same site at any time before August 1, 11633 2009, provided the MMC is eligible for relicensing. 11634 11635 11636ADDENDUM: How to use this License for your documents 11637==================================================== 11638 11639To use this License in a document you have written, include a copy of 11640the License in the document and put the following copyright and license 11641notices just after the title page: 11642 11643 Copyright (C) YEAR YOUR NAME. 11644 Permission is granted to copy, distribute and/or modify this document 11645 under the terms of the GNU Free Documentation License, Version 1.3 11646 or any later version published by the Free Software Foundation; 11647 with no Invariant Sections, no Front-Cover Texts, and no Back-Cover 11648 Texts. A copy of the license is included in the section entitled ``GNU 11649 Free Documentation License''. 11650 11651 If you have Invariant Sections, Front-Cover Texts and Back-Cover 11652Texts, replace the "with...Texts." line with this: 11653 11654 with the Invariant Sections being LIST THEIR TITLES, with 11655 the Front-Cover Texts being LIST, and with the Back-Cover Texts 11656 being LIST. 11657 11658 If you have Invariant Sections without Cover Texts, or some other 11659combination of the three, merge those two alternatives to suit the 11660situation. 11661 11662 If your document contains nontrivial examples of program code, we 11663recommend releasing these examples in parallel under your choice of 11664free software license, such as the GNU General Public License, to 11665permit their use in free software. 11666 11667 11668File: bfd.info, Node: BFD Index, Prev: GNU Free Documentation License, Up: Top 11669 11670BFD Index 11671********* 11672 11673[index] 11674* Menu: 11675 11676* _bfd_final_link_relocate: Relocating the section contents. 11677 (line 22) 11678* _bfd_generic_link_add_archive_symbols: Adding symbols from an archive. 11679 (line 15) 11680* _bfd_generic_link_add_one_symbol: Adding symbols from an object file. 11681 (line 19) 11682* _bfd_generic_make_empty_symbol: symbol handling functions. 11683 (line 92) 11684* _bfd_link_add_symbols in target vector: Adding Symbols to the Hash Table. 11685 (line 6) 11686* _bfd_link_final_link in target vector: Performing the Final Link. 11687 (line 6) 11688* _bfd_link_hash_table_create in target vector: Creating a Linker Hash Table. 11689 (line 6) 11690* _bfd_relocate_contents: Relocating the section contents. 11691 (line 22) 11692* aout_SIZE_machine_type: aout. (line 147) 11693* aout_SIZE_mkobject: aout. (line 139) 11694* aout_SIZE_new_section_hook: aout. (line 177) 11695* aout_SIZE_set_arch_mach: aout. (line 164) 11696* aout_SIZE_some_aout_object_p: aout. (line 125) 11697* aout_SIZE_swap_exec_header_in: aout. (line 101) 11698* aout_SIZE_swap_exec_header_out: aout. (line 113) 11699* arelent_chain: typedef arelent. (line 336) 11700* BFD: Overview. (line 6) 11701* BFD canonical format: Canonical format. (line 11) 11702* bfd_alloc: Opening and Closing. 11703 (line 239) 11704* bfd_alloc2: Opening and Closing. 11705 (line 248) 11706* bfd_alt_mach_code: Miscellaneous. (line 307) 11707* bfd_arch_bits_per_address: Architectures. (line 611) 11708* bfd_arch_bits_per_byte: Architectures. (line 603) 11709* bfd_arch_default_fill: Architectures. (line 692) 11710* bfd_arch_get_compatible: Architectures. (line 546) 11711* bfd_arch_list: Architectures. (line 537) 11712* bfd_arch_mach_octets_per_byte: Architectures. (line 680) 11713* BFD_ARELOC_BFIN_ADD: howto manager. (line 1196) 11714* BFD_ARELOC_BFIN_ADDR: howto manager. (line 1247) 11715* BFD_ARELOC_BFIN_AND: howto manager. (line 1217) 11716* BFD_ARELOC_BFIN_COMP: howto manager. (line 1238) 11717* BFD_ARELOC_BFIN_CONST: howto manager. (line 1193) 11718* BFD_ARELOC_BFIN_DIV: howto manager. (line 1205) 11719* BFD_ARELOC_BFIN_HWPAGE: howto manager. (line 1244) 11720* BFD_ARELOC_BFIN_LAND: howto manager. (line 1226) 11721* BFD_ARELOC_BFIN_LEN: howto manager. (line 1232) 11722* BFD_ARELOC_BFIN_LOR: howto manager. (line 1229) 11723* BFD_ARELOC_BFIN_LSHIFT: howto manager. (line 1211) 11724* BFD_ARELOC_BFIN_MOD: howto manager. (line 1208) 11725* BFD_ARELOC_BFIN_MULT: howto manager. (line 1202) 11726* BFD_ARELOC_BFIN_NEG: howto manager. (line 1235) 11727* BFD_ARELOC_BFIN_OR: howto manager. (line 1220) 11728* BFD_ARELOC_BFIN_PAGE: howto manager. (line 1241) 11729* BFD_ARELOC_BFIN_PUSH: howto manager. (line 1190) 11730* BFD_ARELOC_BFIN_RSHIFT: howto manager. (line 1214) 11731* BFD_ARELOC_BFIN_SUB: howto manager. (line 1199) 11732* BFD_ARELOC_BFIN_XOR: howto manager. (line 1223) 11733* bfd_cache_close: File Caching. (line 26) 11734* bfd_cache_close_all: File Caching. (line 39) 11735* bfd_cache_init: File Caching. (line 18) 11736* bfd_calc_gnu_debuglink_crc32: Opening and Closing. 11737 (line 275) 11738* bfd_canonicalize_reloc: Miscellaneous. (line 19) 11739* bfd_canonicalize_symtab: symbol handling functions. 11740 (line 50) 11741* bfd_check_compression_header: Miscellaneous. (line 379) 11742* bfd_check_format: Formats. (line 21) 11743* bfd_check_format_matches: Formats. (line 52) 11744* bfd_check_overflow: typedef arelent. (line 348) 11745* bfd_close: Opening and Closing. 11746 (line 161) 11747* bfd_close_all_done: Opening and Closing. 11748 (line 179) 11749* bfd_coff_backend_data: coff. (line 308) 11750* bfd_convert_section_contents: Miscellaneous. (line 415) 11751* bfd_convert_section_size: Miscellaneous. (line 405) 11752* bfd_copy_private_bfd_data: Miscellaneous. (line 160) 11753* bfd_copy_private_header_data: Miscellaneous. (line 142) 11754* bfd_copy_private_section_data: section prototypes. (line 288) 11755* bfd_copy_private_symbol_data: symbol handling functions. 11756 (line 140) 11757* bfd_core_file_failing_command: Core Files. (line 12) 11758* bfd_core_file_failing_signal: Core Files. (line 21) 11759* bfd_core_file_pid: Core Files. (line 30) 11760* bfd_create: Opening and Closing. 11761 (line 198) 11762* bfd_create_gnu_debuglink_section: Opening and Closing. 11763 (line 387) 11764* bfd_decode_symclass: symbol handling functions. 11765 (line 111) 11766* bfd_default_arch_struct: Architectures. (line 558) 11767* bfd_default_compatible: Architectures. (line 620) 11768* bfd_default_reloc_type_lookup: howto manager. (line 3724) 11769* bfd_default_scan: Architectures. (line 629) 11770* bfd_default_set_arch_mach: Architectures. (line 576) 11771* bfd_demangle: Miscellaneous. (line 358) 11772* bfd_emul_get_commonpagesize: Miscellaneous. (line 338) 11773* bfd_emul_get_maxpagesize: Miscellaneous. (line 318) 11774* bfd_emul_set_commonpagesize: Miscellaneous. (line 349) 11775* bfd_emul_set_maxpagesize: Miscellaneous. (line 329) 11776* bfd_errmsg: Error reporting. (line 67) 11777* bfd_fdopenr: Opening and Closing. 11778 (line 57) 11779* bfd_fill_in_gnu_debuglink_section: Opening and Closing. 11780 (line 401) 11781* bfd_find_target: bfd_target. (line 471) 11782* bfd_find_version_for_sym: Writing the symbol table. 11783 (line 81) 11784* bfd_flavour_name: bfd_target. (line 535) 11785* bfd_follow_gnu_debugaltlink: Opening and Closing. 11786 (line 367) 11787* bfd_follow_gnu_debuglink: Opening and Closing. 11788 (line 346) 11789* bfd_fopen: Opening and Closing. 11790 (line 12) 11791* bfd_format_string: Formats. (line 79) 11792* bfd_generic_define_common_symbol: Writing the symbol table. 11793 (line 68) 11794* bfd_generic_discard_group: section prototypes. (line 314) 11795* bfd_generic_gc_sections: howto manager. (line 3755) 11796* bfd_generic_get_relocated_section_contents: howto manager. (line 3785) 11797* bfd_generic_is_group_section: section prototypes. (line 306) 11798* bfd_generic_lookup_section_flags: howto manager. (line 3765) 11799* bfd_generic_merge_sections: howto manager. (line 3775) 11800* bfd_generic_relax_section: howto manager. (line 3742) 11801* bfd_get_alt_debug_link_info: Opening and Closing. 11802 (line 300) 11803* bfd_get_arch: Architectures. (line 587) 11804* bfd_get_arch_info: Architectures. (line 639) 11805* bfd_get_arch_size: Miscellaneous. (line 63) 11806* bfd_get_assert_handler: Error reporting. (line 150) 11807* bfd_get_compression_header_size: Miscellaneous. (line 394) 11808* bfd_get_debug_link_info: Opening and Closing. 11809 (line 289) 11810* bfd_get_error: Error reporting. (line 48) 11811* bfd_get_error_handler: Error reporting. (line 118) 11812* bfd_get_gp_size: Miscellaneous. (line 106) 11813* bfd_get_linker_section: section prototypes. (line 38) 11814* bfd_get_mach: Architectures. (line 595) 11815* bfd_get_mtime: Miscellaneous. (line 468) 11816* bfd_get_next_mapent: Archives. (line 58) 11817* bfd_get_next_section_by_name: section prototypes. (line 26) 11818* bfd_get_next_section_id: section prototypes. (line 156) 11819* bfd_get_reloc_code_name: howto manager. (line 3733) 11820* bfd_get_reloc_size: typedef arelent. (line 327) 11821* bfd_get_reloc_upper_bound: Miscellaneous. (line 9) 11822* bfd_get_section_by_name: section prototypes. (line 17) 11823* bfd_get_section_by_name_if: section prototypes. (line 47) 11824* bfd_get_section_contents: section prototypes. (line 261) 11825* bfd_get_sign_extend_vma: Miscellaneous. (line 78) 11826* bfd_get_size <1>: Miscellaneous. (line 477) 11827* bfd_get_size: Internal. (line 25) 11828* bfd_get_symtab_upper_bound: symbol handling functions. 11829 (line 6) 11830* bfd_get_target_info: bfd_target. (line 487) 11831* bfd_get_unique_section_name: section prototypes. (line 66) 11832* bfd_h_put_size: Internal. (line 97) 11833* bfd_hash_allocate: Creating and Freeing a Hash Table. 11834 (line 17) 11835* bfd_hash_lookup: Looking Up or Entering a String. 11836 (line 6) 11837* bfd_hash_newfunc: Creating and Freeing a Hash Table. 11838 (line 12) 11839* bfd_hash_set_default_size: Creating and Freeing a Hash Table. 11840 (line 25) 11841* bfd_hash_table_free: Creating and Freeing a Hash Table. 11842 (line 21) 11843* bfd_hash_table_init: Creating and Freeing a Hash Table. 11844 (line 6) 11845* bfd_hash_table_init_n: Creating and Freeing a Hash Table. 11846 (line 6) 11847* bfd_hash_traverse: Traversing a Hash Table. 11848 (line 6) 11849* bfd_hide_sym_by_version: Writing the symbol table. 11850 (line 93) 11851* bfd_init: Initialization. (line 11) 11852* bfd_install_relocation: typedef arelent. (line 389) 11853* bfd_is_local_label: symbol handling functions. 11854 (line 17) 11855* bfd_is_local_label_name: symbol handling functions. 11856 (line 26) 11857* bfd_is_target_special_symbol: symbol handling functions. 11858 (line 38) 11859* bfd_is_undefined_symclass: symbol handling functions. 11860 (line 120) 11861* bfd_link_split_section: Writing the symbol table. 11862 (line 44) 11863* bfd_log2: Internal. (line 164) 11864* bfd_lookup_arch: Architectures. (line 647) 11865* bfd_make_debug_symbol: symbol handling functions. 11866 (line 102) 11867* bfd_make_empty_symbol: symbol handling functions. 11868 (line 78) 11869* bfd_make_readable: Opening and Closing. 11870 (line 225) 11871* bfd_make_section: section prototypes. (line 145) 11872* bfd_make_section_anyway: section prototypes. (line 116) 11873* bfd_make_section_anyway_with_flags: section prototypes. (line 98) 11874* bfd_make_section_old_way: section prototypes. (line 78) 11875* bfd_make_section_with_flags: section prototypes. (line 132) 11876* bfd_make_writable: Opening and Closing. 11877 (line 211) 11878* bfd_malloc_and_get_section: section prototypes. (line 278) 11879* bfd_map_over_sections: section prototypes. (line 188) 11880* bfd_merge_private_bfd_data: Miscellaneous. (line 176) 11881* bfd_mmap: Miscellaneous. (line 506) 11882* bfd_octets_per_byte: Architectures. (line 670) 11883* bfd_open_file: File Caching. (line 52) 11884* bfd_openr: Opening and Closing. 11885 (line 38) 11886* bfd_openr_iovec: Opening and Closing. 11887 (line 95) 11888* bfd_openr_next_archived_file: Archives. (line 84) 11889* bfd_openstreamr: Opening and Closing. 11890 (line 83) 11891* bfd_openw: Opening and Closing. 11892 (line 146) 11893* bfd_perform_relocation: typedef arelent. (line 364) 11894* bfd_perror: Error reporting. (line 76) 11895* bfd_print_symbol_vandf: symbol handling functions. 11896 (line 70) 11897* bfd_printable_arch_mach: Architectures. (line 658) 11898* bfd_printable_name: Architectures. (line 518) 11899* bfd_put_size: Internal. (line 22) 11900* BFD_RELOC_12_PCREL: howto manager. (line 39) 11901* BFD_RELOC_14: howto manager. (line 31) 11902* BFD_RELOC_16: howto manager. (line 30) 11903* BFD_RELOC_16_BASEREL: howto manager. (line 99) 11904* BFD_RELOC_16_GOT_PCREL: howto manager. (line 52) 11905* BFD_RELOC_16_GOTOFF: howto manager. (line 55) 11906* BFD_RELOC_16_PCREL: howto manager. (line 38) 11907* BFD_RELOC_16_PCREL_S2: howto manager. (line 111) 11908* BFD_RELOC_16_PLT_PCREL: howto manager. (line 63) 11909* BFD_RELOC_16_PLTOFF: howto manager. (line 67) 11910* BFD_RELOC_16C_ABS20: howto manager. (line 2535) 11911* BFD_RELOC_16C_ABS20_C: howto manager. (line 2536) 11912* BFD_RELOC_16C_ABS24: howto manager. (line 2537) 11913* BFD_RELOC_16C_ABS24_C: howto manager. (line 2538) 11914* BFD_RELOC_16C_DISP04: howto manager. (line 2515) 11915* BFD_RELOC_16C_DISP04_C: howto manager. (line 2516) 11916* BFD_RELOC_16C_DISP08: howto manager. (line 2517) 11917* BFD_RELOC_16C_DISP08_C: howto manager. (line 2518) 11918* BFD_RELOC_16C_DISP16: howto manager. (line 2519) 11919* BFD_RELOC_16C_DISP16_C: howto manager. (line 2520) 11920* BFD_RELOC_16C_DISP24: howto manager. (line 2521) 11921* BFD_RELOC_16C_DISP24_C: howto manager. (line 2522) 11922* BFD_RELOC_16C_DISP24a: howto manager. (line 2523) 11923* BFD_RELOC_16C_DISP24a_C: howto manager. (line 2524) 11924* BFD_RELOC_16C_IMM04: howto manager. (line 2539) 11925* BFD_RELOC_16C_IMM04_C: howto manager. (line 2540) 11926* BFD_RELOC_16C_IMM16: howto manager. (line 2541) 11927* BFD_RELOC_16C_IMM16_C: howto manager. (line 2542) 11928* BFD_RELOC_16C_IMM20: howto manager. (line 2543) 11929* BFD_RELOC_16C_IMM20_C: howto manager. (line 2544) 11930* BFD_RELOC_16C_IMM24: howto manager. (line 2545) 11931* BFD_RELOC_16C_IMM24_C: howto manager. (line 2546) 11932* BFD_RELOC_16C_IMM32: howto manager. (line 2547) 11933* BFD_RELOC_16C_IMM32_C: howto manager. (line 2548) 11934* BFD_RELOC_16C_NUM08: howto manager. (line 2509) 11935* BFD_RELOC_16C_NUM08_C: howto manager. (line 2510) 11936* BFD_RELOC_16C_NUM16: howto manager. (line 2511) 11937* BFD_RELOC_16C_NUM16_C: howto manager. (line 2512) 11938* BFD_RELOC_16C_NUM32: howto manager. (line 2513) 11939* BFD_RELOC_16C_NUM32_C: howto manager. (line 2514) 11940* BFD_RELOC_16C_REG04: howto manager. (line 2525) 11941* BFD_RELOC_16C_REG04_C: howto manager. (line 2526) 11942* BFD_RELOC_16C_REG04a: howto manager. (line 2527) 11943* BFD_RELOC_16C_REG04a_C: howto manager. (line 2528) 11944* BFD_RELOC_16C_REG14: howto manager. (line 2529) 11945* BFD_RELOC_16C_REG14_C: howto manager. (line 2530) 11946* BFD_RELOC_16C_REG16: howto manager. (line 2531) 11947* BFD_RELOC_16C_REG16_C: howto manager. (line 2532) 11948* BFD_RELOC_16C_REG20: howto manager. (line 2533) 11949* BFD_RELOC_16C_REG20_C: howto manager. (line 2534) 11950* BFD_RELOC_23_PCREL_S2: howto manager. (line 112) 11951* BFD_RELOC_24: howto manager. (line 29) 11952* BFD_RELOC_24_PCREL: howto manager. (line 37) 11953* BFD_RELOC_24_PLT_PCREL: howto manager. (line 62) 11954* BFD_RELOC_26: howto manager. (line 28) 11955* BFD_RELOC_32: howto manager. (line 27) 11956* BFD_RELOC_32_BASEREL: howto manager. (line 98) 11957* BFD_RELOC_32_GOT_PCREL: howto manager. (line 51) 11958* BFD_RELOC_32_GOTOFF: howto manager. (line 54) 11959* BFD_RELOC_32_PCREL: howto manager. (line 36) 11960* BFD_RELOC_32_PCREL_S2: howto manager. (line 110) 11961* BFD_RELOC_32_PLT_PCREL: howto manager. (line 61) 11962* BFD_RELOC_32_PLTOFF: howto manager. (line 66) 11963* BFD_RELOC_32_SECREL: howto manager. (line 48) 11964* BFD_RELOC_386_COPY: howto manager. (line 589) 11965* BFD_RELOC_386_GLOB_DAT: howto manager. (line 590) 11966* BFD_RELOC_386_GOT32: howto manager. (line 587) 11967* BFD_RELOC_386_GOT32X: howto manager. (line 611) 11968* BFD_RELOC_386_GOTOFF: howto manager. (line 593) 11969* BFD_RELOC_386_GOTPC: howto manager. (line 594) 11970* BFD_RELOC_386_IRELATIVE: howto manager. (line 610) 11971* BFD_RELOC_386_JUMP_SLOT: howto manager. (line 591) 11972* BFD_RELOC_386_PLT32: howto manager. (line 588) 11973* BFD_RELOC_386_RELATIVE: howto manager. (line 592) 11974* BFD_RELOC_386_TLS_DESC: howto manager. (line 609) 11975* BFD_RELOC_386_TLS_DESC_CALL: howto manager. (line 608) 11976* BFD_RELOC_386_TLS_DTPMOD32: howto manager. (line 604) 11977* BFD_RELOC_386_TLS_DTPOFF32: howto manager. (line 605) 11978* BFD_RELOC_386_TLS_GD: howto manager. (line 599) 11979* BFD_RELOC_386_TLS_GOTDESC: howto manager. (line 607) 11980* BFD_RELOC_386_TLS_GOTIE: howto manager. (line 597) 11981* BFD_RELOC_386_TLS_IE: howto manager. (line 596) 11982* BFD_RELOC_386_TLS_IE_32: howto manager. (line 602) 11983* BFD_RELOC_386_TLS_LDM: howto manager. (line 600) 11984* BFD_RELOC_386_TLS_LDO_32: howto manager. (line 601) 11985* BFD_RELOC_386_TLS_LE: howto manager. (line 598) 11986* BFD_RELOC_386_TLS_LE_32: howto manager. (line 603) 11987* BFD_RELOC_386_TLS_TPOFF: howto manager. (line 595) 11988* BFD_RELOC_386_TLS_TPOFF32: howto manager. (line 606) 11989* BFD_RELOC_390_12: howto manager. (line 2118) 11990* BFD_RELOC_390_20: howto manager. (line 2230) 11991* BFD_RELOC_390_COPY: howto manager. (line 2127) 11992* BFD_RELOC_390_GLOB_DAT: howto manager. (line 2130) 11993* BFD_RELOC_390_GOT12: howto manager. (line 2121) 11994* BFD_RELOC_390_GOT16: howto manager. (line 2142) 11995* BFD_RELOC_390_GOT20: howto manager. (line 2231) 11996* BFD_RELOC_390_GOT64: howto manager. (line 2172) 11997* BFD_RELOC_390_GOTENT: howto manager. (line 2178) 11998* BFD_RELOC_390_GOTOFF64: howto manager. (line 2181) 11999* BFD_RELOC_390_GOTPC: howto manager. (line 2139) 12000* BFD_RELOC_390_GOTPCDBL: howto manager. (line 2169) 12001* BFD_RELOC_390_GOTPLT12: howto manager. (line 2184) 12002* BFD_RELOC_390_GOTPLT16: howto manager. (line 2187) 12003* BFD_RELOC_390_GOTPLT20: howto manager. (line 2232) 12004* BFD_RELOC_390_GOTPLT32: howto manager. (line 2190) 12005* BFD_RELOC_390_GOTPLT64: howto manager. (line 2193) 12006* BFD_RELOC_390_GOTPLTENT: howto manager. (line 2196) 12007* BFD_RELOC_390_IRELATIVE: howto manager. (line 2236) 12008* BFD_RELOC_390_JMP_SLOT: howto manager. (line 2133) 12009* BFD_RELOC_390_PC12DBL: howto manager. (line 2145) 12010* BFD_RELOC_390_PC16DBL: howto manager. (line 2151) 12011* BFD_RELOC_390_PC24DBL: howto manager. (line 2157) 12012* BFD_RELOC_390_PC32DBL: howto manager. (line 2163) 12013* BFD_RELOC_390_PLT12DBL: howto manager. (line 2148) 12014* BFD_RELOC_390_PLT16DBL: howto manager. (line 2154) 12015* BFD_RELOC_390_PLT24DBL: howto manager. (line 2160) 12016* BFD_RELOC_390_PLT32: howto manager. (line 2124) 12017* BFD_RELOC_390_PLT32DBL: howto manager. (line 2166) 12018* BFD_RELOC_390_PLT64: howto manager. (line 2175) 12019* BFD_RELOC_390_PLTOFF16: howto manager. (line 2199) 12020* BFD_RELOC_390_PLTOFF32: howto manager. (line 2202) 12021* BFD_RELOC_390_PLTOFF64: howto manager. (line 2205) 12022* BFD_RELOC_390_RELATIVE: howto manager. (line 2136) 12023* BFD_RELOC_390_TLS_DTPMOD: howto manager. (line 2225) 12024* BFD_RELOC_390_TLS_DTPOFF: howto manager. (line 2226) 12025* BFD_RELOC_390_TLS_GD32: howto manager. (line 2211) 12026* BFD_RELOC_390_TLS_GD64: howto manager. (line 2212) 12027* BFD_RELOC_390_TLS_GDCALL: howto manager. (line 2209) 12028* BFD_RELOC_390_TLS_GOTIE12: howto manager. (line 2213) 12029* BFD_RELOC_390_TLS_GOTIE20: howto manager. (line 2233) 12030* BFD_RELOC_390_TLS_GOTIE32: howto manager. (line 2214) 12031* BFD_RELOC_390_TLS_GOTIE64: howto manager. (line 2215) 12032* BFD_RELOC_390_TLS_IE32: howto manager. (line 2218) 12033* BFD_RELOC_390_TLS_IE64: howto manager. (line 2219) 12034* BFD_RELOC_390_TLS_IEENT: howto manager. (line 2220) 12035* BFD_RELOC_390_TLS_LDCALL: howto manager. (line 2210) 12036* BFD_RELOC_390_TLS_LDM32: howto manager. (line 2216) 12037* BFD_RELOC_390_TLS_LDM64: howto manager. (line 2217) 12038* BFD_RELOC_390_TLS_LDO32: howto manager. (line 2223) 12039* BFD_RELOC_390_TLS_LDO64: howto manager. (line 2224) 12040* BFD_RELOC_390_TLS_LE32: howto manager. (line 2221) 12041* BFD_RELOC_390_TLS_LE64: howto manager. (line 2222) 12042* BFD_RELOC_390_TLS_LOAD: howto manager. (line 2208) 12043* BFD_RELOC_390_TLS_TPOFF: howto manager. (line 2227) 12044* BFD_RELOC_64: howto manager. (line 26) 12045* BFD_RELOC_64_PCREL: howto manager. (line 35) 12046* BFD_RELOC_64_PLT_PCREL: howto manager. (line 60) 12047* BFD_RELOC_64_PLTOFF: howto manager. (line 65) 12048* BFD_RELOC_68K_GLOB_DAT: howto manager. (line 78) 12049* BFD_RELOC_68K_JMP_SLOT: howto manager. (line 79) 12050* BFD_RELOC_68K_RELATIVE: howto manager. (line 80) 12051* BFD_RELOC_68K_TLS_GD16: howto manager. (line 82) 12052* BFD_RELOC_68K_TLS_GD32: howto manager. (line 81) 12053* BFD_RELOC_68K_TLS_GD8: howto manager. (line 83) 12054* BFD_RELOC_68K_TLS_IE16: howto manager. (line 91) 12055* BFD_RELOC_68K_TLS_IE32: howto manager. (line 90) 12056* BFD_RELOC_68K_TLS_IE8: howto manager. (line 92) 12057* BFD_RELOC_68K_TLS_LDM16: howto manager. (line 85) 12058* BFD_RELOC_68K_TLS_LDM32: howto manager. (line 84) 12059* BFD_RELOC_68K_TLS_LDM8: howto manager. (line 86) 12060* BFD_RELOC_68K_TLS_LDO16: howto manager. (line 88) 12061* BFD_RELOC_68K_TLS_LDO32: howto manager. (line 87) 12062* BFD_RELOC_68K_TLS_LDO8: howto manager. (line 89) 12063* BFD_RELOC_68K_TLS_LE16: howto manager. (line 94) 12064* BFD_RELOC_68K_TLS_LE32: howto manager. (line 93) 12065* BFD_RELOC_68K_TLS_LE8: howto manager. (line 95) 12066* BFD_RELOC_8: howto manager. (line 32) 12067* BFD_RELOC_860_COPY: howto manager. (line 2663) 12068* BFD_RELOC_860_GLOB_DAT: howto manager. (line 2664) 12069* BFD_RELOC_860_HAGOT: howto manager. (line 2689) 12070* BFD_RELOC_860_HAGOTOFF: howto manager. (line 2690) 12071* BFD_RELOC_860_HAPC: howto manager. (line 2691) 12072* BFD_RELOC_860_HIGH: howto manager. (line 2692) 12073* BFD_RELOC_860_HIGHADJ: howto manager. (line 2688) 12074* BFD_RELOC_860_HIGOT: howto manager. (line 2693) 12075* BFD_RELOC_860_HIGOTOFF: howto manager. (line 2694) 12076* BFD_RELOC_860_JUMP_SLOT: howto manager. (line 2665) 12077* BFD_RELOC_860_LOGOT0: howto manager. (line 2677) 12078* BFD_RELOC_860_LOGOT1: howto manager. (line 2679) 12079* BFD_RELOC_860_LOGOTOFF0: howto manager. (line 2681) 12080* BFD_RELOC_860_LOGOTOFF1: howto manager. (line 2683) 12081* BFD_RELOC_860_LOGOTOFF2: howto manager. (line 2685) 12082* BFD_RELOC_860_LOGOTOFF3: howto manager. (line 2686) 12083* BFD_RELOC_860_LOPC: howto manager. (line 2687) 12084* BFD_RELOC_860_LOW0: howto manager. (line 2670) 12085* BFD_RELOC_860_LOW1: howto manager. (line 2672) 12086* BFD_RELOC_860_LOW2: howto manager. (line 2674) 12087* BFD_RELOC_860_LOW3: howto manager. (line 2676) 12088* BFD_RELOC_860_PC16: howto manager. (line 2669) 12089* BFD_RELOC_860_PC26: howto manager. (line 2667) 12090* BFD_RELOC_860_PLT26: howto manager. (line 2668) 12091* BFD_RELOC_860_RELATIVE: howto manager. (line 2666) 12092* BFD_RELOC_860_SPGOT0: howto manager. (line 2678) 12093* BFD_RELOC_860_SPGOT1: howto manager. (line 2680) 12094* BFD_RELOC_860_SPGOTOFF0: howto manager. (line 2682) 12095* BFD_RELOC_860_SPGOTOFF1: howto manager. (line 2684) 12096* BFD_RELOC_860_SPLIT0: howto manager. (line 2671) 12097* BFD_RELOC_860_SPLIT1: howto manager. (line 2673) 12098* BFD_RELOC_860_SPLIT2: howto manager. (line 2675) 12099* BFD_RELOC_8_BASEREL: howto manager. (line 103) 12100* BFD_RELOC_8_FFnn: howto manager. (line 107) 12101* BFD_RELOC_8_GOT_PCREL: howto manager. (line 53) 12102* BFD_RELOC_8_GOTOFF: howto manager. (line 59) 12103* BFD_RELOC_8_PCREL: howto manager. (line 40) 12104* BFD_RELOC_8_PLT_PCREL: howto manager. (line 64) 12105* BFD_RELOC_8_PLTOFF: howto manager. (line 71) 12106* BFD_RELOC_AARCH64_16: howto manager. (line 3094) 12107* BFD_RELOC_AARCH64_16_PCREL: howto manager. (line 3101) 12108* BFD_RELOC_AARCH64_32: howto manager. (line 3093) 12109* BFD_RELOC_AARCH64_32_PCREL: howto manager. (line 3100) 12110* BFD_RELOC_AARCH64_64: howto manager. (line 3092) 12111* BFD_RELOC_AARCH64_64_PCREL: howto manager. (line 3099) 12112* BFD_RELOC_AARCH64_ADD_LO12: howto manager. (line 3166) 12113* BFD_RELOC_AARCH64_ADR_GOT_PAGE: howto manager. (line 3223) 12114* BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL: howto manager. (line 3161) 12115* BFD_RELOC_AARCH64_ADR_HI21_PCREL: howto manager. (line 3157) 12116* BFD_RELOC_AARCH64_ADR_LO21_PCREL: howto manager. (line 3153) 12117* BFD_RELOC_AARCH64_BRANCH19: howto manager. (line 3181) 12118* BFD_RELOC_AARCH64_CALL26: howto manager. (line 3191) 12119* BFD_RELOC_AARCH64_COPY: howto manager. (line 3423) 12120* BFD_RELOC_AARCH64_GAS_INTERNAL_FIXUP: howto manager. (line 3457) 12121* BFD_RELOC_AARCH64_GLOB_DAT: howto manager. (line 3426) 12122* BFD_RELOC_AARCH64_GOT_LD_PREL19: howto manager. (line 3216) 12123* BFD_RELOC_AARCH64_IRELATIVE: howto manager. (line 3447) 12124* BFD_RELOC_AARCH64_JUMP26: howto manager. (line 3186) 12125* BFD_RELOC_AARCH64_JUMP_SLOT: howto manager. (line 3429) 12126* BFD_RELOC_AARCH64_LD32_GOT_LO12_NC: howto manager. (line 3233) 12127* BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14: howto manager. (line 3250) 12128* BFD_RELOC_AARCH64_LD64_GOT_LO12_NC: howto manager. (line 3228) 12129* BFD_RELOC_AARCH64_LD64_GOTOFF_LO15: howto manager. (line 3246) 12130* BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15: howto manager. (line 3254) 12131* BFD_RELOC_AARCH64_LD_GOT_LO12_NC: howto manager. (line 3475) 12132* BFD_RELOC_AARCH64_LD_LO19_PCREL: howto manager. (line 3148) 12133* BFD_RELOC_AARCH64_LDST128_LO12: howto manager. (line 3211) 12134* BFD_RELOC_AARCH64_LDST16_LO12: howto manager. (line 3196) 12135* BFD_RELOC_AARCH64_LDST32_LO12: howto manager. (line 3201) 12136* BFD_RELOC_AARCH64_LDST64_LO12: howto manager. (line 3206) 12137* BFD_RELOC_AARCH64_LDST8_LO12: howto manager. (line 3171) 12138* BFD_RELOC_AARCH64_LDST_LO12: howto manager. (line 3461) 12139* BFD_RELOC_AARCH64_MOVW_G0: howto manager. (line 3105) 12140* BFD_RELOC_AARCH64_MOVW_G0_NC: howto manager. (line 3109) 12141* BFD_RELOC_AARCH64_MOVW_G0_S: howto manager. (line 3133) 12142* BFD_RELOC_AARCH64_MOVW_G1: howto manager. (line 3113) 12143* BFD_RELOC_AARCH64_MOVW_G1_NC: howto manager. (line 3117) 12144* BFD_RELOC_AARCH64_MOVW_G1_S: howto manager. (line 3138) 12145* BFD_RELOC_AARCH64_MOVW_G2: howto manager. (line 3121) 12146* BFD_RELOC_AARCH64_MOVW_G2_NC: howto manager. (line 3125) 12147* BFD_RELOC_AARCH64_MOVW_G2_S: howto manager. (line 3143) 12148* BFD_RELOC_AARCH64_MOVW_G3: howto manager. (line 3129) 12149* BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC: howto manager. (line 3238) 12150* BFD_RELOC_AARCH64_MOVW_GOTOFF_G1: howto manager. (line 3242) 12151* BFD_RELOC_AARCH64_NONE: howto manager. (line 3089) 12152* BFD_RELOC_AARCH64_RELATIVE: howto manager. (line 3432) 12153* BFD_RELOC_AARCH64_RELOC_END: howto manager. (line 3450) 12154* BFD_RELOC_AARCH64_RELOC_START: howto manager. (line 3083) 12155* BFD_RELOC_AARCH64_TLS_DTPMOD: howto manager. (line 3435) 12156* BFD_RELOC_AARCH64_TLS_DTPREL: howto manager. (line 3438) 12157* BFD_RELOC_AARCH64_TLS_TPREL: howto manager. (line 3441) 12158* BFD_RELOC_AARCH64_TLSDESC: howto manager. (line 3444) 12159* BFD_RELOC_AARCH64_TLSDESC_ADD: howto manager. (line 3417) 12160* BFD_RELOC_AARCH64_TLSDESC_ADD_LO12_NC: howto manager. (line 3405) 12161* BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21: howto manager. (line 3396) 12162* BFD_RELOC_AARCH64_TLSDESC_ADR_PREL21: howto manager. (line 3393) 12163* BFD_RELOC_AARCH64_TLSDESC_CALL: howto manager. (line 3420) 12164* BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC: howto manager. (line 3402) 12165* BFD_RELOC_AARCH64_TLSDESC_LD64_LO12_NC: howto manager. (line 3399) 12166* BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC: howto manager. (line 3483) 12167* BFD_RELOC_AARCH64_TLSDESC_LD_PREL19: howto manager. (line 3390) 12168* BFD_RELOC_AARCH64_TLSDESC_LDR: howto manager. (line 3414) 12169* BFD_RELOC_AARCH64_TLSDESC_OFF_G0_NC: howto manager. (line 3411) 12170* BFD_RELOC_AARCH64_TLSDESC_OFF_G1: howto manager. (line 3408) 12171* BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC: howto manager. (line 3267) 12172* BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21: howto manager. (line 3258) 12173* BFD_RELOC_AARCH64_TLSGD_ADR_PREL21: howto manager. (line 3264) 12174* BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC: howto manager. (line 3272) 12175* BFD_RELOC_AARCH64_TLSGD_MOVW_G1: howto manager. (line 3275) 12176* BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21: howto manager. 12177 (line 3278) 12178* BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC: howto manager. 12179 (line 3284) 12180* BFD_RELOC_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC: howto manager. 12181 (line 3281) 12182* BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC: howto manager. 12183 (line 3479) 12184* BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19: howto manager. (line 3287) 12185* BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC: howto manager. 12186 (line 3290) 12187* BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1: howto manager. (line 3293) 12188* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12: howto manager. (line 3296) 12189* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12: howto manager. (line 3299) 12190* BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC: howto manager. (line 3302) 12191* BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC: howto manager. (line 3306) 12192* BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21: howto manager. (line 3311) 12193* BFD_RELOC_AARCH64_TLSLD_ADR_PREL21: howto manager. (line 3315) 12194* BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12: howto manager. (line 3319) 12195* BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC: howto manager. 12196 (line 3323) 12197* BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12: howto manager. (line 3327) 12198* BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC: howto manager. 12199 (line 3331) 12200* BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12: howto manager. (line 3335) 12201* BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC: howto manager. 12202 (line 3339) 12203* BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12: howto manager. (line 3343) 12204* BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC: howto manager. 12205 (line 3347) 12206* BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12: howto manager. (line 3466) 12207* BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC: howto manager. 12208 (line 3471) 12209* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0: howto manager. (line 3351) 12210* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC: howto manager. (line 3354) 12211* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1: howto manager. (line 3357) 12212* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC: howto manager. (line 3360) 12213* BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2: howto manager. (line 3363) 12214* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_HI12: howto manager. (line 3381) 12215* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12: howto manager. (line 3384) 12216* BFD_RELOC_AARCH64_TLSLE_ADD_TPREL_LO12_NC: howto manager. (line 3387) 12217* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0: howto manager. (line 3375) 12218* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G0_NC: howto manager. (line 3378) 12219* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1: howto manager. (line 3369) 12220* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G1_NC: howto manager. (line 3372) 12221* BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2: howto manager. (line 3366) 12222* BFD_RELOC_AARCH64_TSTBR14: howto manager. (line 3176) 12223* BFD_RELOC_AC_SECTFOFF_S9: howto manager. (line 1100) 12224* BFD_RELOC_AC_SECTFOFF_S9_1: howto manager. (line 1101) 12225* BFD_RELOC_AC_SECTFOFF_S9_2: howto manager. (line 1102) 12226* BFD_RELOC_AC_SECTOFF_U8: howto manager. (line 1097) 12227* BFD_RELOC_AC_SECTOFF_U8_1: howto manager. (line 1098) 12228* BFD_RELOC_AC_SECTOFF_U8_2: howto manager. (line 1099) 12229* BFD_RELOC_ALPHA_BOH: howto manager. (line 323) 12230* BFD_RELOC_ALPHA_BRSGP: howto manager. (line 306) 12231* BFD_RELOC_ALPHA_BSR: howto manager. (line 315) 12232* BFD_RELOC_ALPHA_CODEADDR: howto manager. (line 297) 12233* BFD_RELOC_ALPHA_DTPMOD64: howto manager. (line 329) 12234* BFD_RELOC_ALPHA_DTPREL16: howto manager. (line 334) 12235* BFD_RELOC_ALPHA_DTPREL64: howto manager. (line 331) 12236* BFD_RELOC_ALPHA_DTPREL_HI16: howto manager. (line 332) 12237* BFD_RELOC_ALPHA_DTPREL_LO16: howto manager. (line 333) 12238* BFD_RELOC_ALPHA_ELF_LITERAL: howto manager. (line 262) 12239* BFD_RELOC_ALPHA_GOTDTPREL16: howto manager. (line 330) 12240* BFD_RELOC_ALPHA_GOTTPREL16: howto manager. (line 335) 12241* BFD_RELOC_ALPHA_GPDISP: howto manager. (line 256) 12242* BFD_RELOC_ALPHA_GPDISP_HI16: howto manager. (line 242) 12243* BFD_RELOC_ALPHA_GPDISP_LO16: howto manager. (line 250) 12244* BFD_RELOC_ALPHA_GPREL_HI16: howto manager. (line 301) 12245* BFD_RELOC_ALPHA_GPREL_LO16: howto manager. (line 302) 12246* BFD_RELOC_ALPHA_HINT: howto manager. (line 288) 12247* BFD_RELOC_ALPHA_LDA: howto manager. (line 319) 12248* BFD_RELOC_ALPHA_LINKAGE: howto manager. (line 293) 12249* BFD_RELOC_ALPHA_LITERAL: howto manager. (line 261) 12250* BFD_RELOC_ALPHA_LITUSE: howto manager. (line 263) 12251* BFD_RELOC_ALPHA_NOP: howto manager. (line 311) 12252* BFD_RELOC_ALPHA_TLSGD: howto manager. (line 327) 12253* BFD_RELOC_ALPHA_TLSLDM: howto manager. (line 328) 12254* BFD_RELOC_ALPHA_TPREL16: howto manager. (line 339) 12255* BFD_RELOC_ALPHA_TPREL64: howto manager. (line 336) 12256* BFD_RELOC_ALPHA_TPREL_HI16: howto manager. (line 337) 12257* BFD_RELOC_ALPHA_TPREL_LO16: howto manager. (line 338) 12258* BFD_RELOC_ARC_16: howto manager. (line 1069) 12259* BFD_RELOC_ARC_24: howto manager. (line 1070) 12260* BFD_RELOC_ARC_32: howto manager. (line 1071) 12261* BFD_RELOC_ARC_32_ME: howto manager. (line 1091) 12262* BFD_RELOC_ARC_32_ME_S: howto manager. (line 1092) 12263* BFD_RELOC_ARC_32_PCREL: howto manager. (line 1108) 12264* BFD_RELOC_ARC_8: howto manager. (line 1068) 12265* BFD_RELOC_ARC_COPY: howto manager. (line 1113) 12266* BFD_RELOC_ARC_GLOB_DAT: howto manager. (line 1114) 12267* BFD_RELOC_ARC_GOT32: howto manager. (line 1110) 12268* BFD_RELOC_ARC_GOTOFF: howto manager. (line 1117) 12269* BFD_RELOC_ARC_GOTPC: howto manager. (line 1118) 12270* BFD_RELOC_ARC_GOTPC32: howto manager. (line 1111) 12271* BFD_RELOC_ARC_JMP_SLOT: howto manager. (line 1115) 12272* BFD_RELOC_ARC_N16: howto manager. (line 1073) 12273* BFD_RELOC_ARC_N24: howto manager. (line 1074) 12274* BFD_RELOC_ARC_N32: howto manager. (line 1075) 12275* BFD_RELOC_ARC_N32_ME: howto manager. (line 1093) 12276* BFD_RELOC_ARC_N8: howto manager. (line 1072) 12277* BFD_RELOC_ARC_NONE: howto manager. (line 1067) 12278* BFD_RELOC_ARC_PC32: howto manager. (line 1109) 12279* BFD_RELOC_ARC_PLT32: howto manager. (line 1112) 12280* BFD_RELOC_ARC_RELATIVE: howto manager. (line 1116) 12281* BFD_RELOC_ARC_S13_PCREL: howto manager. (line 1089) 12282* BFD_RELOC_ARC_S21H_PCREL: howto manager. (line 1078) 12283* BFD_RELOC_ARC_S21H_PCREL_PLT: howto manager. (line 1132) 12284* BFD_RELOC_ARC_S21W_PCREL: howto manager. (line 1079) 12285* BFD_RELOC_ARC_S21W_PCREL_PLT: howto manager. (line 1119) 12286* BFD_RELOC_ARC_S25H_PCREL: howto manager. (line 1080) 12287* BFD_RELOC_ARC_S25H_PCREL_PLT: howto manager. (line 1120) 12288* BFD_RELOC_ARC_S25W_PCREL: howto manager. (line 1081) 12289* BFD_RELOC_ARC_S25W_PCREL_PLT: howto manager. (line 1131) 12290* BFD_RELOC_ARC_SDA: howto manager. (line 1076) 12291* BFD_RELOC_ARC_SDA16_LD: howto manager. (line 1086) 12292* BFD_RELOC_ARC_SDA16_LD1: howto manager. (line 1087) 12293* BFD_RELOC_ARC_SDA16_LD2: howto manager. (line 1088) 12294* BFD_RELOC_ARC_SDA16_ST2: howto manager. (line 1107) 12295* BFD_RELOC_ARC_SDA32: howto manager. (line 1082) 12296* BFD_RELOC_ARC_SDA32_ME: howto manager. (line 1095) 12297* BFD_RELOC_ARC_SDA_LDST: howto manager. (line 1083) 12298* BFD_RELOC_ARC_SDA_LDST1: howto manager. (line 1084) 12299* BFD_RELOC_ARC_SDA_LDST2: howto manager. (line 1085) 12300* BFD_RELOC_ARC_SECTOFF: howto manager. (line 1077) 12301* BFD_RELOC_ARC_SECTOFF_1: howto manager. (line 1105) 12302* BFD_RELOC_ARC_SECTOFF_2: howto manager. (line 1106) 12303* BFD_RELOC_ARC_SECTOFF_ME: howto manager. (line 1094) 12304* BFD_RELOC_ARC_SECTOFF_ME_1: howto manager. (line 1103) 12305* BFD_RELOC_ARC_SECTOFF_ME_2: howto manager. (line 1104) 12306* BFD_RELOC_ARC_TLS_DTPMOD: howto manager. (line 1121) 12307* BFD_RELOC_ARC_TLS_DTPOFF: howto manager. (line 1127) 12308* BFD_RELOC_ARC_TLS_DTPOFF_S9: howto manager. (line 1128) 12309* BFD_RELOC_ARC_TLS_GD_CALL: howto manager. (line 1125) 12310* BFD_RELOC_ARC_TLS_GD_GOT: howto manager. (line 1123) 12311* BFD_RELOC_ARC_TLS_GD_LD: howto manager. (line 1124) 12312* BFD_RELOC_ARC_TLS_IE_GOT: howto manager. (line 1126) 12313* BFD_RELOC_ARC_TLS_LE_32: howto manager. (line 1130) 12314* BFD_RELOC_ARC_TLS_LE_S9: howto manager. (line 1129) 12315* BFD_RELOC_ARC_TLS_TPOFF: howto manager. (line 1122) 12316* BFD_RELOC_ARC_W: howto manager. (line 1090) 12317* BFD_RELOC_ARC_W_ME: howto manager. (line 1096) 12318* BFD_RELOC_ARM_ADR_IMM: howto manager. (line 953) 12319* BFD_RELOC_ARM_ADRL_IMMEDIATE: howto manager. (line 939) 12320* BFD_RELOC_ARM_ALU_PC_G0: howto manager. (line 903) 12321* BFD_RELOC_ARM_ALU_PC_G0_NC: howto manager. (line 902) 12322* BFD_RELOC_ARM_ALU_PC_G1: howto manager. (line 905) 12323* BFD_RELOC_ARM_ALU_PC_G1_NC: howto manager. (line 904) 12324* BFD_RELOC_ARM_ALU_PC_G2: howto manager. (line 906) 12325* BFD_RELOC_ARM_ALU_SB_G0: howto manager. (line 917) 12326* BFD_RELOC_ARM_ALU_SB_G0_NC: howto manager. (line 916) 12327* BFD_RELOC_ARM_ALU_SB_G1: howto manager. (line 919) 12328* BFD_RELOC_ARM_ALU_SB_G1_NC: howto manager. (line 918) 12329* BFD_RELOC_ARM_ALU_SB_G2: howto manager. (line 920) 12330* BFD_RELOC_ARM_CP_OFF_IMM: howto manager. (line 949) 12331* BFD_RELOC_ARM_CP_OFF_IMM_S2: howto manager. (line 950) 12332* BFD_RELOC_ARM_GLOB_DAT: howto manager. (line 877) 12333* BFD_RELOC_ARM_GOT32: howto manager. (line 878) 12334* BFD_RELOC_ARM_GOT_PREL: howto manager. (line 883) 12335* BFD_RELOC_ARM_GOTOFF: howto manager. (line 881) 12336* BFD_RELOC_ARM_GOTPC: howto manager. (line 882) 12337* BFD_RELOC_ARM_HVC: howto manager. (line 946) 12338* BFD_RELOC_ARM_HWLITERAL: howto manager. (line 960) 12339* BFD_RELOC_ARM_IMMEDIATE: howto manager. (line 938) 12340* BFD_RELOC_ARM_IN_POOL: howto manager. (line 956) 12341* BFD_RELOC_ARM_IRELATIVE: howto manager. (line 935) 12342* BFD_RELOC_ARM_JUMP_SLOT: howto manager. (line 876) 12343* BFD_RELOC_ARM_LDC_PC_G0: howto manager. (line 913) 12344* BFD_RELOC_ARM_LDC_PC_G1: howto manager. (line 914) 12345* BFD_RELOC_ARM_LDC_PC_G2: howto manager. (line 915) 12346* BFD_RELOC_ARM_LDC_SB_G0: howto manager. (line 927) 12347* BFD_RELOC_ARM_LDC_SB_G1: howto manager. (line 928) 12348* BFD_RELOC_ARM_LDC_SB_G2: howto manager. (line 929) 12349* BFD_RELOC_ARM_LDR_IMM: howto manager. (line 954) 12350* BFD_RELOC_ARM_LDR_PC_G0: howto manager. (line 907) 12351* BFD_RELOC_ARM_LDR_PC_G1: howto manager. (line 908) 12352* BFD_RELOC_ARM_LDR_PC_G2: howto manager. (line 909) 12353* BFD_RELOC_ARM_LDR_SB_G0: howto manager. (line 921) 12354* BFD_RELOC_ARM_LDR_SB_G1: howto manager. (line 922) 12355* BFD_RELOC_ARM_LDR_SB_G2: howto manager. (line 923) 12356* BFD_RELOC_ARM_LDRS_PC_G0: howto manager. (line 910) 12357* BFD_RELOC_ARM_LDRS_PC_G1: howto manager. (line 911) 12358* BFD_RELOC_ARM_LDRS_PC_G2: howto manager. (line 912) 12359* BFD_RELOC_ARM_LDRS_SB_G0: howto manager. (line 924) 12360* BFD_RELOC_ARM_LDRS_SB_G1: howto manager. (line 925) 12361* BFD_RELOC_ARM_LDRS_SB_G2: howto manager. (line 926) 12362* BFD_RELOC_ARM_LITERAL: howto manager. (line 955) 12363* BFD_RELOC_ARM_MOVT: howto manager. (line 867) 12364* BFD_RELOC_ARM_MOVT_PCREL: howto manager. (line 869) 12365* BFD_RELOC_ARM_MOVW: howto manager. (line 866) 12366* BFD_RELOC_ARM_MOVW_PCREL: howto manager. (line 868) 12367* BFD_RELOC_ARM_MULTI: howto manager. (line 948) 12368* BFD_RELOC_ARM_OFFSET_IMM: howto manager. (line 840) 12369* BFD_RELOC_ARM_OFFSET_IMM8: howto manager. (line 957) 12370* BFD_RELOC_ARM_PCREL_BLX: howto manager. (line 811) 12371* BFD_RELOC_ARM_PCREL_BRANCH: howto manager. (line 807) 12372* BFD_RELOC_ARM_PCREL_CALL: howto manager. (line 821) 12373* BFD_RELOC_ARM_PCREL_JUMP: howto manager. (line 825) 12374* BFD_RELOC_ARM_PLT32: howto manager. (line 879) 12375* BFD_RELOC_ARM_PREL31: howto manager. (line 863) 12376* BFD_RELOC_ARM_RELATIVE: howto manager. (line 880) 12377* BFD_RELOC_ARM_ROSEGREL32: howto manager. (line 852) 12378* BFD_RELOC_ARM_SBREL32: howto manager. (line 855) 12379* BFD_RELOC_ARM_SHIFT_IMM: howto manager. (line 944) 12380* BFD_RELOC_ARM_SMC: howto manager. (line 945) 12381* BFD_RELOC_ARM_SWI: howto manager. (line 947) 12382* BFD_RELOC_ARM_T32_ADD_IMM: howto manager. (line 941) 12383* BFD_RELOC_ARM_T32_ADD_PC12: howto manager. (line 943) 12384* BFD_RELOC_ARM_T32_CP_OFF_IMM: howto manager. (line 951) 12385* BFD_RELOC_ARM_T32_CP_OFF_IMM_S2: howto manager. (line 952) 12386* BFD_RELOC_ARM_T32_IMM12: howto manager. (line 942) 12387* BFD_RELOC_ARM_T32_IMMEDIATE: howto manager. (line 940) 12388* BFD_RELOC_ARM_T32_OFFSET_IMM: howto manager. (line 959) 12389* BFD_RELOC_ARM_T32_OFFSET_U8: howto manager. (line 958) 12390* BFD_RELOC_ARM_TARGET1: howto manager. (line 848) 12391* BFD_RELOC_ARM_TARGET2: howto manager. (line 858) 12392* BFD_RELOC_ARM_THM_TLS_CALL: howto manager. (line 896) 12393* BFD_RELOC_ARM_THM_TLS_DESCSEQ: howto manager. (line 898) 12394* BFD_RELOC_ARM_THUMB_ADD: howto manager. (line 961) 12395* BFD_RELOC_ARM_THUMB_IMM: howto manager. (line 962) 12396* BFD_RELOC_ARM_THUMB_MOVT: howto manager. (line 871) 12397* BFD_RELOC_ARM_THUMB_MOVT_PCREL: howto manager. (line 873) 12398* BFD_RELOC_ARM_THUMB_MOVW: howto manager. (line 870) 12399* BFD_RELOC_ARM_THUMB_MOVW_PCREL: howto manager. (line 872) 12400* BFD_RELOC_ARM_THUMB_OFFSET: howto manager. (line 844) 12401* BFD_RELOC_ARM_THUMB_SHIFT: howto manager. (line 963) 12402* BFD_RELOC_ARM_TLS_CALL: howto manager. (line 895) 12403* BFD_RELOC_ARM_TLS_DESC: howto manager. (line 899) 12404* BFD_RELOC_ARM_TLS_DESCSEQ: howto manager. (line 897) 12405* BFD_RELOC_ARM_TLS_DTPMOD32: howto manager. (line 890) 12406* BFD_RELOC_ARM_TLS_DTPOFF32: howto manager. (line 889) 12407* BFD_RELOC_ARM_TLS_GD32: howto manager. (line 886) 12408* BFD_RELOC_ARM_TLS_GOTDESC: howto manager. (line 894) 12409* BFD_RELOC_ARM_TLS_IE32: howto manager. (line 892) 12410* BFD_RELOC_ARM_TLS_LDM32: howto manager. (line 888) 12411* BFD_RELOC_ARM_TLS_LDO32: howto manager. (line 887) 12412* BFD_RELOC_ARM_TLS_LE32: howto manager. (line 893) 12413* BFD_RELOC_ARM_TLS_TPOFF32: howto manager. (line 891) 12414* BFD_RELOC_ARM_V4BX: howto manager. (line 932) 12415* BFD_RELOC_AVR_13_PCREL: howto manager. (line 1920) 12416* BFD_RELOC_AVR_16_PM: howto manager. (line 1924) 12417* BFD_RELOC_AVR_6: howto manager. (line 2011) 12418* BFD_RELOC_AVR_6_ADIW: howto manager. (line 2015) 12419* BFD_RELOC_AVR_7_PCREL: howto manager. (line 1916) 12420* BFD_RELOC_AVR_8_HI: howto manager. (line 2023) 12421* BFD_RELOC_AVR_8_HLO: howto manager. (line 2027) 12422* BFD_RELOC_AVR_8_LO: howto manager. (line 2019) 12423* BFD_RELOC_AVR_CALL: howto manager. (line 2003) 12424* BFD_RELOC_AVR_DIFF16: howto manager. (line 2032) 12425* BFD_RELOC_AVR_DIFF32: howto manager. (line 2033) 12426* BFD_RELOC_AVR_DIFF8: howto manager. (line 2031) 12427* BFD_RELOC_AVR_HH8_LDI: howto manager. (line 1936) 12428* BFD_RELOC_AVR_HH8_LDI_NEG: howto manager. (line 1955) 12429* BFD_RELOC_AVR_HH8_LDI_PM: howto manager. (line 1984) 12430* BFD_RELOC_AVR_HH8_LDI_PM_NEG: howto manager. (line 1998) 12431* BFD_RELOC_AVR_HI8_LDI: howto manager. (line 1932) 12432* BFD_RELOC_AVR_HI8_LDI_GS: howto manager. (line 1978) 12433* BFD_RELOC_AVR_HI8_LDI_NEG: howto manager. (line 1950) 12434* BFD_RELOC_AVR_HI8_LDI_PM: howto manager. (line 1974) 12435* BFD_RELOC_AVR_HI8_LDI_PM_NEG: howto manager. (line 1993) 12436* BFD_RELOC_AVR_LDI: howto manager. (line 2007) 12437* BFD_RELOC_AVR_LDS_STS_16: howto manager. (line 2041) 12438* BFD_RELOC_AVR_LO8_LDI: howto manager. (line 1928) 12439* BFD_RELOC_AVR_LO8_LDI_GS: howto manager. (line 1968) 12440* BFD_RELOC_AVR_LO8_LDI_NEG: howto manager. (line 1945) 12441* BFD_RELOC_AVR_LO8_LDI_PM: howto manager. (line 1964) 12442* BFD_RELOC_AVR_LO8_LDI_PM_NEG: howto manager. (line 1989) 12443* BFD_RELOC_AVR_MS8_LDI: howto manager. (line 1941) 12444* BFD_RELOC_AVR_MS8_LDI_NEG: howto manager. (line 1960) 12445* BFD_RELOC_AVR_PORT5: howto manager. (line 2049) 12446* BFD_RELOC_AVR_PORT6: howto manager. (line 2045) 12447* BFD_RELOC_BFIN_10_PCREL: howto manager. (line 1150) 12448* BFD_RELOC_BFIN_11_PCREL: howto manager. (line 1153) 12449* BFD_RELOC_BFIN_12_PCREL_JUMP: howto manager. (line 1156) 12450* BFD_RELOC_BFIN_12_PCREL_JUMP_S: howto manager. (line 1159) 12451* BFD_RELOC_BFIN_16_HIGH: howto manager. (line 1138) 12452* BFD_RELOC_BFIN_16_IMM: howto manager. (line 1135) 12453* BFD_RELOC_BFIN_16_LOW: howto manager. (line 1147) 12454* BFD_RELOC_BFIN_24_PCREL_CALL_X: howto manager. (line 1162) 12455* BFD_RELOC_BFIN_24_PCREL_JUMP_L: howto manager. (line 1165) 12456* BFD_RELOC_BFIN_4_PCREL: howto manager. (line 1141) 12457* BFD_RELOC_BFIN_5_PCREL: howto manager. (line 1144) 12458* BFD_RELOC_BFIN_FUNCDESC: howto manager. (line 1171) 12459* BFD_RELOC_BFIN_FUNCDESC_GOT17M4: howto manager. (line 1172) 12460* BFD_RELOC_BFIN_FUNCDESC_GOTHI: howto manager. (line 1173) 12461* BFD_RELOC_BFIN_FUNCDESC_GOTLO: howto manager. (line 1174) 12462* BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4: howto manager. (line 1176) 12463* BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI: howto manager. (line 1177) 12464* BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO: howto manager. (line 1178) 12465* BFD_RELOC_BFIN_FUNCDESC_VALUE: howto manager. (line 1175) 12466* BFD_RELOC_BFIN_GOT: howto manager. (line 1184) 12467* BFD_RELOC_BFIN_GOT17M4: howto manager. (line 1168) 12468* BFD_RELOC_BFIN_GOTHI: howto manager. (line 1169) 12469* BFD_RELOC_BFIN_GOTLO: howto manager. (line 1170) 12470* BFD_RELOC_BFIN_GOTOFF17M4: howto manager. (line 1179) 12471* BFD_RELOC_BFIN_GOTOFFHI: howto manager. (line 1180) 12472* BFD_RELOC_BFIN_GOTOFFLO: howto manager. (line 1181) 12473* BFD_RELOC_BFIN_PLTPC: howto manager. (line 1187) 12474* BFD_RELOC_C6000_ABS_H16: howto manager. (line 1739) 12475* BFD_RELOC_C6000_ABS_L16: howto manager. (line 1738) 12476* BFD_RELOC_C6000_ABS_S16: howto manager. (line 1737) 12477* BFD_RELOC_C6000_ALIGN: howto manager. (line 1760) 12478* BFD_RELOC_C6000_COPY: howto manager. (line 1755) 12479* BFD_RELOC_C6000_DSBT_INDEX: howto manager. (line 1753) 12480* BFD_RELOC_C6000_EHTYPE: howto manager. (line 1757) 12481* BFD_RELOC_C6000_FPHEAD: howto manager. (line 1761) 12482* BFD_RELOC_C6000_JUMP_SLOT: howto manager. (line 1756) 12483* BFD_RELOC_C6000_NOCMP: howto manager. (line 1762) 12484* BFD_RELOC_C6000_PCR_H16: howto manager. (line 1758) 12485* BFD_RELOC_C6000_PCR_L16: howto manager. (line 1759) 12486* BFD_RELOC_C6000_PCR_S10: howto manager. (line 1735) 12487* BFD_RELOC_C6000_PCR_S12: howto manager. (line 1734) 12488* BFD_RELOC_C6000_PCR_S21: howto manager. (line 1733) 12489* BFD_RELOC_C6000_PCR_S7: howto manager. (line 1736) 12490* BFD_RELOC_C6000_PREL31: howto manager. (line 1754) 12491* BFD_RELOC_C6000_SBR_GOT_H16_W: howto manager. (line 1752) 12492* BFD_RELOC_C6000_SBR_GOT_L16_W: howto manager. (line 1751) 12493* BFD_RELOC_C6000_SBR_GOT_U15_W: howto manager. (line 1750) 12494* BFD_RELOC_C6000_SBR_H16_B: howto manager. (line 1747) 12495* BFD_RELOC_C6000_SBR_H16_H: howto manager. (line 1748) 12496* BFD_RELOC_C6000_SBR_H16_W: howto manager. (line 1749) 12497* BFD_RELOC_C6000_SBR_L16_B: howto manager. (line 1744) 12498* BFD_RELOC_C6000_SBR_L16_H: howto manager. (line 1745) 12499* BFD_RELOC_C6000_SBR_L16_W: howto manager. (line 1746) 12500* BFD_RELOC_C6000_SBR_S16: howto manager. (line 1743) 12501* BFD_RELOC_C6000_SBR_U15_B: howto manager. (line 1740) 12502* BFD_RELOC_C6000_SBR_U15_H: howto manager. (line 1741) 12503* BFD_RELOC_C6000_SBR_U15_W: howto manager. (line 1742) 12504* bfd_reloc_code_type: howto manager. (line 10) 12505* BFD_RELOC_CR16_ABS20: howto manager. (line 2563) 12506* BFD_RELOC_CR16_ABS24: howto manager. (line 2564) 12507* BFD_RELOC_CR16_DISP16: howto manager. (line 2574) 12508* BFD_RELOC_CR16_DISP20: howto manager. (line 2575) 12509* BFD_RELOC_CR16_DISP24: howto manager. (line 2576) 12510* BFD_RELOC_CR16_DISP24a: howto manager. (line 2577) 12511* BFD_RELOC_CR16_DISP4: howto manager. (line 2572) 12512* BFD_RELOC_CR16_DISP8: howto manager. (line 2573) 12513* BFD_RELOC_CR16_GLOB_DAT: howto manager. (line 2583) 12514* BFD_RELOC_CR16_GOT_REGREL20: howto manager. (line 2581) 12515* BFD_RELOC_CR16_GOTC_REGREL20: howto manager. (line 2582) 12516* BFD_RELOC_CR16_IMM16: howto manager. (line 2567) 12517* BFD_RELOC_CR16_IMM20: howto manager. (line 2568) 12518* BFD_RELOC_CR16_IMM24: howto manager. (line 2569) 12519* BFD_RELOC_CR16_IMM32: howto manager. (line 2570) 12520* BFD_RELOC_CR16_IMM32a: howto manager. (line 2571) 12521* BFD_RELOC_CR16_IMM4: howto manager. (line 2565) 12522* BFD_RELOC_CR16_IMM8: howto manager. (line 2566) 12523* BFD_RELOC_CR16_NUM16: howto manager. (line 2552) 12524* BFD_RELOC_CR16_NUM32: howto manager. (line 2553) 12525* BFD_RELOC_CR16_NUM32a: howto manager. (line 2554) 12526* BFD_RELOC_CR16_NUM8: howto manager. (line 2551) 12527* BFD_RELOC_CR16_REGREL0: howto manager. (line 2555) 12528* BFD_RELOC_CR16_REGREL14: howto manager. (line 2558) 12529* BFD_RELOC_CR16_REGREL14a: howto manager. (line 2559) 12530* BFD_RELOC_CR16_REGREL16: howto manager. (line 2560) 12531* BFD_RELOC_CR16_REGREL20: howto manager. (line 2561) 12532* BFD_RELOC_CR16_REGREL20a: howto manager. (line 2562) 12533* BFD_RELOC_CR16_REGREL4: howto manager. (line 2556) 12534* BFD_RELOC_CR16_REGREL4a: howto manager. (line 2557) 12535* BFD_RELOC_CR16_SWITCH16: howto manager. (line 2579) 12536* BFD_RELOC_CR16_SWITCH32: howto manager. (line 2580) 12537* BFD_RELOC_CR16_SWITCH8: howto manager. (line 2578) 12538* BFD_RELOC_CRIS_16_DTPREL: howto manager. (line 2654) 12539* BFD_RELOC_CRIS_16_GOT: howto manager. (line 2630) 12540* BFD_RELOC_CRIS_16_GOT_GD: howto manager. (line 2650) 12541* BFD_RELOC_CRIS_16_GOT_TPREL: howto manager. (line 2656) 12542* BFD_RELOC_CRIS_16_GOTPLT: howto manager. (line 2636) 12543* BFD_RELOC_CRIS_16_TPREL: howto manager. (line 2658) 12544* BFD_RELOC_CRIS_32_DTPREL: howto manager. (line 2653) 12545* BFD_RELOC_CRIS_32_GD: howto manager. (line 2651) 12546* BFD_RELOC_CRIS_32_GOT: howto manager. (line 2627) 12547* BFD_RELOC_CRIS_32_GOT_GD: howto manager. (line 2649) 12548* BFD_RELOC_CRIS_32_GOT_TPREL: howto manager. (line 2655) 12549* BFD_RELOC_CRIS_32_GOTPLT: howto manager. (line 2633) 12550* BFD_RELOC_CRIS_32_GOTREL: howto manager. (line 2639) 12551* BFD_RELOC_CRIS_32_IE: howto manager. (line 2660) 12552* BFD_RELOC_CRIS_32_PLT_GOTREL: howto manager. (line 2642) 12553* BFD_RELOC_CRIS_32_PLT_PCREL: howto manager. (line 2645) 12554* BFD_RELOC_CRIS_32_TPREL: howto manager. (line 2657) 12555* BFD_RELOC_CRIS_BDISP8: howto manager. (line 2608) 12556* BFD_RELOC_CRIS_COPY: howto manager. (line 2621) 12557* BFD_RELOC_CRIS_DTP: howto manager. (line 2652) 12558* BFD_RELOC_CRIS_DTPMOD: howto manager. (line 2659) 12559* BFD_RELOC_CRIS_GLOB_DAT: howto manager. (line 2622) 12560* BFD_RELOC_CRIS_JUMP_SLOT: howto manager. (line 2623) 12561* BFD_RELOC_CRIS_LAPCQ_OFFSET: howto manager. (line 2616) 12562* BFD_RELOC_CRIS_RELATIVE: howto manager. (line 2624) 12563* BFD_RELOC_CRIS_SIGNED_16: howto manager. (line 2614) 12564* BFD_RELOC_CRIS_SIGNED_6: howto manager. (line 2610) 12565* BFD_RELOC_CRIS_SIGNED_8: howto manager. (line 2612) 12566* BFD_RELOC_CRIS_UNSIGNED_16: howto manager. (line 2615) 12567* BFD_RELOC_CRIS_UNSIGNED_4: howto manager. (line 2617) 12568* BFD_RELOC_CRIS_UNSIGNED_5: howto manager. (line 2609) 12569* BFD_RELOC_CRIS_UNSIGNED_6: howto manager. (line 2611) 12570* BFD_RELOC_CRIS_UNSIGNED_8: howto manager. (line 2613) 12571* BFD_RELOC_CRX_ABS16: howto manager. (line 2596) 12572* BFD_RELOC_CRX_ABS32: howto manager. (line 2597) 12573* BFD_RELOC_CRX_IMM16: howto manager. (line 2601) 12574* BFD_RELOC_CRX_IMM32: howto manager. (line 2602) 12575* BFD_RELOC_CRX_NUM16: howto manager. (line 2599) 12576* BFD_RELOC_CRX_NUM32: howto manager. (line 2600) 12577* BFD_RELOC_CRX_NUM8: howto manager. (line 2598) 12578* BFD_RELOC_CRX_REGREL12: howto manager. (line 2592) 12579* BFD_RELOC_CRX_REGREL22: howto manager. (line 2593) 12580* BFD_RELOC_CRX_REGREL28: howto manager. (line 2594) 12581* BFD_RELOC_CRX_REGREL32: howto manager. (line 2595) 12582* BFD_RELOC_CRX_REL16: howto manager. (line 2589) 12583* BFD_RELOC_CRX_REL24: howto manager. (line 2590) 12584* BFD_RELOC_CRX_REL32: howto manager. (line 2591) 12585* BFD_RELOC_CRX_REL4: howto manager. (line 2586) 12586* BFD_RELOC_CRX_REL8: howto manager. (line 2587) 12587* BFD_RELOC_CRX_REL8_CMP: howto manager. (line 2588) 12588* BFD_RELOC_CRX_SWITCH16: howto manager. (line 2604) 12589* BFD_RELOC_CRX_SWITCH32: howto manager. (line 2605) 12590* BFD_RELOC_CRX_SWITCH8: howto manager. (line 2603) 12591* BFD_RELOC_CTOR: howto manager. (line 801) 12592* BFD_RELOC_D10V_10_PCREL_L: howto manager. (line 1254) 12593* BFD_RELOC_D10V_10_PCREL_R: howto manager. (line 1250) 12594* BFD_RELOC_D10V_18: howto manager. (line 1259) 12595* BFD_RELOC_D10V_18_PCREL: howto manager. (line 1262) 12596* BFD_RELOC_D30V_15: howto manager. (line 1277) 12597* BFD_RELOC_D30V_15_PCREL: howto manager. (line 1281) 12598* BFD_RELOC_D30V_15_PCREL_R: howto manager. (line 1285) 12599* BFD_RELOC_D30V_21: howto manager. (line 1290) 12600* BFD_RELOC_D30V_21_PCREL: howto manager. (line 1294) 12601* BFD_RELOC_D30V_21_PCREL_R: howto manager. (line 1298) 12602* BFD_RELOC_D30V_32: howto manager. (line 1303) 12603* BFD_RELOC_D30V_32_PCREL: howto manager. (line 1306) 12604* BFD_RELOC_D30V_6: howto manager. (line 1265) 12605* BFD_RELOC_D30V_9_PCREL: howto manager. (line 1268) 12606* BFD_RELOC_D30V_9_PCREL_R: howto manager. (line 1272) 12607* BFD_RELOC_DLX_HI16_S: howto manager. (line 1309) 12608* BFD_RELOC_DLX_JMP26: howto manager. (line 1315) 12609* BFD_RELOC_DLX_LO16: howto manager. (line 1312) 12610* BFD_RELOC_EPIPHANY_HIGH: howto manager. (line 3685) 12611* BFD_RELOC_EPIPHANY_IMM11: howto manager. (line 3694) 12612* BFD_RELOC_EPIPHANY_IMM8: howto manager. (line 3698) 12613* BFD_RELOC_EPIPHANY_LOW: howto manager. (line 3688) 12614* BFD_RELOC_EPIPHANY_SIMM11: howto manager. (line 3691) 12615* BFD_RELOC_EPIPHANY_SIMM24: howto manager. (line 3682) 12616* BFD_RELOC_EPIPHANY_SIMM8: howto manager. (line 3679) 12617* BFD_RELOC_FR30_10_IN_8: howto manager. (line 1784) 12618* BFD_RELOC_FR30_12_PCREL: howto manager. (line 1792) 12619* BFD_RELOC_FR30_20: howto manager. (line 1768) 12620* BFD_RELOC_FR30_48: howto manager. (line 1765) 12621* BFD_RELOC_FR30_6_IN_4: howto manager. (line 1772) 12622* BFD_RELOC_FR30_8_IN_8: howto manager. (line 1776) 12623* BFD_RELOC_FR30_9_IN_8: howto manager. (line 1780) 12624* BFD_RELOC_FR30_9_PCREL: howto manager. (line 1788) 12625* BFD_RELOC_FRV_FUNCDESC: howto manager. (line 503) 12626* BFD_RELOC_FRV_FUNCDESC_GOT12: howto manager. (line 504) 12627* BFD_RELOC_FRV_FUNCDESC_GOTHI: howto manager. (line 505) 12628* BFD_RELOC_FRV_FUNCDESC_GOTLO: howto manager. (line 506) 12629* BFD_RELOC_FRV_FUNCDESC_GOTOFF12: howto manager. (line 508) 12630* BFD_RELOC_FRV_FUNCDESC_GOTOFFHI: howto manager. (line 509) 12631* BFD_RELOC_FRV_FUNCDESC_GOTOFFLO: howto manager. (line 510) 12632* BFD_RELOC_FRV_FUNCDESC_VALUE: howto manager. (line 507) 12633* BFD_RELOC_FRV_GETTLSOFF: howto manager. (line 514) 12634* BFD_RELOC_FRV_GETTLSOFF_RELAX: howto manager. (line 527) 12635* BFD_RELOC_FRV_GOT12: howto manager. (line 500) 12636* BFD_RELOC_FRV_GOTHI: howto manager. (line 501) 12637* BFD_RELOC_FRV_GOTLO: howto manager. (line 502) 12638* BFD_RELOC_FRV_GOTOFF12: howto manager. (line 511) 12639* BFD_RELOC_FRV_GOTOFFHI: howto manager. (line 512) 12640* BFD_RELOC_FRV_GOTOFFLO: howto manager. (line 513) 12641* BFD_RELOC_FRV_GOTTLSDESC12: howto manager. (line 516) 12642* BFD_RELOC_FRV_GOTTLSDESCHI: howto manager. (line 517) 12643* BFD_RELOC_FRV_GOTTLSDESCLO: howto manager. (line 518) 12644* BFD_RELOC_FRV_GOTTLSOFF12: howto manager. (line 522) 12645* BFD_RELOC_FRV_GOTTLSOFFHI: howto manager. (line 523) 12646* BFD_RELOC_FRV_GOTTLSOFFLO: howto manager. (line 524) 12647* BFD_RELOC_FRV_GPREL12: howto manager. (line 495) 12648* BFD_RELOC_FRV_GPREL32: howto manager. (line 497) 12649* BFD_RELOC_FRV_GPRELHI: howto manager. (line 498) 12650* BFD_RELOC_FRV_GPRELLO: howto manager. (line 499) 12651* BFD_RELOC_FRV_GPRELU12: howto manager. (line 496) 12652* BFD_RELOC_FRV_HI16: howto manager. (line 494) 12653* BFD_RELOC_FRV_LABEL16: howto manager. (line 491) 12654* BFD_RELOC_FRV_LABEL24: howto manager. (line 492) 12655* BFD_RELOC_FRV_LO16: howto manager. (line 493) 12656* BFD_RELOC_FRV_TLSDESC_RELAX: howto manager. (line 526) 12657* BFD_RELOC_FRV_TLSDESC_VALUE: howto manager. (line 515) 12658* BFD_RELOC_FRV_TLSMOFF: howto manager. (line 529) 12659* BFD_RELOC_FRV_TLSMOFF12: howto manager. (line 519) 12660* BFD_RELOC_FRV_TLSMOFFHI: howto manager. (line 520) 12661* BFD_RELOC_FRV_TLSMOFFLO: howto manager. (line 521) 12662* BFD_RELOC_FRV_TLSOFF: howto manager. (line 525) 12663* BFD_RELOC_FRV_TLSOFF_RELAX: howto manager. (line 528) 12664* BFD_RELOC_FT32_10: howto manager. (line 485) 12665* BFD_RELOC_FT32_17: howto manager. (line 487) 12666* BFD_RELOC_FT32_18: howto manager. (line 488) 12667* BFD_RELOC_FT32_20: howto manager. (line 486) 12668* BFD_RELOC_GPREL16: howto manager. (line 125) 12669* BFD_RELOC_GPREL32: howto manager. (line 126) 12670* BFD_RELOC_H8_DIR16A8: howto manager. (line 2723) 12671* BFD_RELOC_H8_DIR16R8: howto manager. (line 2724) 12672* BFD_RELOC_H8_DIR24A8: howto manager. (line 2725) 12673* BFD_RELOC_H8_DIR24R8: howto manager. (line 2726) 12674* BFD_RELOC_H8_DIR32A16: howto manager. (line 2727) 12675* BFD_RELOC_H8_DISP32A16: howto manager. (line 2728) 12676* BFD_RELOC_HI16: howto manager. (line 352) 12677* BFD_RELOC_HI16_BASEREL: howto manager. (line 101) 12678* BFD_RELOC_HI16_GOTOFF: howto manager. (line 57) 12679* BFD_RELOC_HI16_PCREL: howto manager. (line 364) 12680* BFD_RELOC_HI16_PLTOFF: howto manager. (line 69) 12681* BFD_RELOC_HI16_S: howto manager. (line 355) 12682* BFD_RELOC_HI16_S_BASEREL: howto manager. (line 102) 12683* BFD_RELOC_HI16_S_GOTOFF: howto manager. (line 58) 12684* BFD_RELOC_HI16_S_PCREL: howto manager. (line 367) 12685* BFD_RELOC_HI16_S_PLTOFF: howto manager. (line 70) 12686* BFD_RELOC_HI22: howto manager. (line 120) 12687* BFD_RELOC_I370_D12: howto manager. (line 798) 12688* BFD_RELOC_I960_CALLJ: howto manager. (line 132) 12689* BFD_RELOC_IA64_COPY: howto manager. (line 2383) 12690* BFD_RELOC_IA64_DIR32LSB: howto manager. (line 2328) 12691* BFD_RELOC_IA64_DIR32MSB: howto manager. (line 2327) 12692* BFD_RELOC_IA64_DIR64LSB: howto manager. (line 2330) 12693* BFD_RELOC_IA64_DIR64MSB: howto manager. (line 2329) 12694* BFD_RELOC_IA64_DTPMOD64LSB: howto manager. (line 2393) 12695* BFD_RELOC_IA64_DTPMOD64MSB: howto manager. (line 2392) 12696* BFD_RELOC_IA64_DTPREL14: howto manager. (line 2395) 12697* BFD_RELOC_IA64_DTPREL22: howto manager. (line 2396) 12698* BFD_RELOC_IA64_DTPREL32LSB: howto manager. (line 2399) 12699* BFD_RELOC_IA64_DTPREL32MSB: howto manager. (line 2398) 12700* BFD_RELOC_IA64_DTPREL64I: howto manager. (line 2397) 12701* BFD_RELOC_IA64_DTPREL64LSB: howto manager. (line 2401) 12702* BFD_RELOC_IA64_DTPREL64MSB: howto manager. (line 2400) 12703* BFD_RELOC_IA64_FPTR32LSB: howto manager. (line 2345) 12704* BFD_RELOC_IA64_FPTR32MSB: howto manager. (line 2344) 12705* BFD_RELOC_IA64_FPTR64I: howto manager. (line 2343) 12706* BFD_RELOC_IA64_FPTR64LSB: howto manager. (line 2347) 12707* BFD_RELOC_IA64_FPTR64MSB: howto manager. (line 2346) 12708* BFD_RELOC_IA64_GPREL22: howto manager. (line 2331) 12709* BFD_RELOC_IA64_GPREL32LSB: howto manager. (line 2334) 12710* BFD_RELOC_IA64_GPREL32MSB: howto manager. (line 2333) 12711* BFD_RELOC_IA64_GPREL64I: howto manager. (line 2332) 12712* BFD_RELOC_IA64_GPREL64LSB: howto manager. (line 2336) 12713* BFD_RELOC_IA64_GPREL64MSB: howto manager. (line 2335) 12714* BFD_RELOC_IA64_IMM14: howto manager. (line 2324) 12715* BFD_RELOC_IA64_IMM22: howto manager. (line 2325) 12716* BFD_RELOC_IA64_IMM64: howto manager. (line 2326) 12717* BFD_RELOC_IA64_IPLTLSB: howto manager. (line 2382) 12718* BFD_RELOC_IA64_IPLTMSB: howto manager. (line 2381) 12719* BFD_RELOC_IA64_LDXMOV: howto manager. (line 2385) 12720* BFD_RELOC_IA64_LTOFF22: howto manager. (line 2337) 12721* BFD_RELOC_IA64_LTOFF22X: howto manager. (line 2384) 12722* BFD_RELOC_IA64_LTOFF64I: howto manager. (line 2338) 12723* BFD_RELOC_IA64_LTOFF_DTPMOD22: howto manager. (line 2394) 12724* BFD_RELOC_IA64_LTOFF_DTPREL22: howto manager. (line 2402) 12725* BFD_RELOC_IA64_LTOFF_FPTR22: howto manager. (line 2359) 12726* BFD_RELOC_IA64_LTOFF_FPTR32LSB: howto manager. (line 2362) 12727* BFD_RELOC_IA64_LTOFF_FPTR32MSB: howto manager. (line 2361) 12728* BFD_RELOC_IA64_LTOFF_FPTR64I: howto manager. (line 2360) 12729* BFD_RELOC_IA64_LTOFF_FPTR64LSB: howto manager. (line 2364) 12730* BFD_RELOC_IA64_LTOFF_FPTR64MSB: howto manager. (line 2363) 12731* BFD_RELOC_IA64_LTOFF_TPREL22: howto manager. (line 2391) 12732* BFD_RELOC_IA64_LTV32LSB: howto manager. (line 2378) 12733* BFD_RELOC_IA64_LTV32MSB: howto manager. (line 2377) 12734* BFD_RELOC_IA64_LTV64LSB: howto manager. (line 2380) 12735* BFD_RELOC_IA64_LTV64MSB: howto manager. (line 2379) 12736* BFD_RELOC_IA64_PCREL21B: howto manager. (line 2348) 12737* BFD_RELOC_IA64_PCREL21BI: howto manager. (line 2349) 12738* BFD_RELOC_IA64_PCREL21F: howto manager. (line 2351) 12739* BFD_RELOC_IA64_PCREL21M: howto manager. (line 2350) 12740* BFD_RELOC_IA64_PCREL22: howto manager. (line 2352) 12741* BFD_RELOC_IA64_PCREL32LSB: howto manager. (line 2356) 12742* BFD_RELOC_IA64_PCREL32MSB: howto manager. (line 2355) 12743* BFD_RELOC_IA64_PCREL60B: howto manager. (line 2353) 12744* BFD_RELOC_IA64_PCREL64I: howto manager. (line 2354) 12745* BFD_RELOC_IA64_PCREL64LSB: howto manager. (line 2358) 12746* BFD_RELOC_IA64_PCREL64MSB: howto manager. (line 2357) 12747* BFD_RELOC_IA64_PLTOFF22: howto manager. (line 2339) 12748* BFD_RELOC_IA64_PLTOFF64I: howto manager. (line 2340) 12749* BFD_RELOC_IA64_PLTOFF64LSB: howto manager. (line 2342) 12750* BFD_RELOC_IA64_PLTOFF64MSB: howto manager. (line 2341) 12751* BFD_RELOC_IA64_REL32LSB: howto manager. (line 2374) 12752* BFD_RELOC_IA64_REL32MSB: howto manager. (line 2373) 12753* BFD_RELOC_IA64_REL64LSB: howto manager. (line 2376) 12754* BFD_RELOC_IA64_REL64MSB: howto manager. (line 2375) 12755* BFD_RELOC_IA64_SECREL32LSB: howto manager. (line 2370) 12756* BFD_RELOC_IA64_SECREL32MSB: howto manager. (line 2369) 12757* BFD_RELOC_IA64_SECREL64LSB: howto manager. (line 2372) 12758* BFD_RELOC_IA64_SECREL64MSB: howto manager. (line 2371) 12759* BFD_RELOC_IA64_SEGREL32LSB: howto manager. (line 2366) 12760* BFD_RELOC_IA64_SEGREL32MSB: howto manager. (line 2365) 12761* BFD_RELOC_IA64_SEGREL64LSB: howto manager. (line 2368) 12762* BFD_RELOC_IA64_SEGREL64MSB: howto manager. (line 2367) 12763* BFD_RELOC_IA64_TPREL14: howto manager. (line 2386) 12764* BFD_RELOC_IA64_TPREL22: howto manager. (line 2387) 12765* BFD_RELOC_IA64_TPREL64I: howto manager. (line 2388) 12766* BFD_RELOC_IA64_TPREL64LSB: howto manager. (line 2390) 12767* BFD_RELOC_IA64_TPREL64MSB: howto manager. (line 2389) 12768* BFD_RELOC_IP2K_ADDR16CJP: howto manager. (line 2276) 12769* BFD_RELOC_IP2K_BANK: howto manager. (line 2273) 12770* BFD_RELOC_IP2K_EX8DATA: howto manager. (line 2284) 12771* BFD_RELOC_IP2K_FR9: howto manager. (line 2270) 12772* BFD_RELOC_IP2K_FR_OFFSET: howto manager. (line 2297) 12773* BFD_RELOC_IP2K_HI8DATA: howto manager. (line 2283) 12774* BFD_RELOC_IP2K_HI8INSN: howto manager. (line 2288) 12775* BFD_RELOC_IP2K_LO8DATA: howto manager. (line 2282) 12776* BFD_RELOC_IP2K_LO8INSN: howto manager. (line 2287) 12777* BFD_RELOC_IP2K_PAGE3: howto manager. (line 2279) 12778* BFD_RELOC_IP2K_PC_SKIP: howto manager. (line 2291) 12779* BFD_RELOC_IP2K_TEXT: howto manager. (line 2294) 12780* BFD_RELOC_IQ2000_OFFSET_16: howto manager. (line 2847) 12781* BFD_RELOC_IQ2000_OFFSET_21: howto manager. (line 2848) 12782* BFD_RELOC_IQ2000_UHI16: howto manager. (line 2849) 12783* BFD_RELOC_LM32_16_GOT: howto manager. (line 2954) 12784* BFD_RELOC_LM32_BRANCH: howto manager. (line 2953) 12785* BFD_RELOC_LM32_CALL: howto manager. (line 2952) 12786* BFD_RELOC_LM32_COPY: howto manager. (line 2957) 12787* BFD_RELOC_LM32_GLOB_DAT: howto manager. (line 2958) 12788* BFD_RELOC_LM32_GOTOFF_HI16: howto manager. (line 2955) 12789* BFD_RELOC_LM32_GOTOFF_LO16: howto manager. (line 2956) 12790* BFD_RELOC_LM32_JMP_SLOT: howto manager. (line 2959) 12791* BFD_RELOC_LM32_RELATIVE: howto manager. (line 2960) 12792* BFD_RELOC_LO10: howto manager. (line 121) 12793* BFD_RELOC_LO16: howto manager. (line 361) 12794* BFD_RELOC_LO16_BASEREL: howto manager. (line 100) 12795* BFD_RELOC_LO16_GOTOFF: howto manager. (line 56) 12796* BFD_RELOC_LO16_PCREL: howto manager. (line 370) 12797* BFD_RELOC_LO16_PLTOFF: howto manager. (line 68) 12798* BFD_RELOC_M32C_HI8: howto manager. (line 1318) 12799* BFD_RELOC_M32C_RL_1ADDR: howto manager. (line 1320) 12800* BFD_RELOC_M32C_RL_2ADDR: howto manager. (line 1321) 12801* BFD_RELOC_M32C_RL_JUMP: howto manager. (line 1319) 12802* BFD_RELOC_M32R_10_PCREL: howto manager. (line 1328) 12803* BFD_RELOC_M32R_18_PCREL: howto manager. (line 1332) 12804* BFD_RELOC_M32R_24: howto manager. (line 1324) 12805* BFD_RELOC_M32R_26_PCREL: howto manager. (line 1335) 12806* BFD_RELOC_M32R_26_PLTREL: howto manager. (line 1354) 12807* BFD_RELOC_M32R_COPY: howto manager. (line 1355) 12808* BFD_RELOC_M32R_GLOB_DAT: howto manager. (line 1356) 12809* BFD_RELOC_M32R_GOT16_HI_SLO: howto manager. (line 1365) 12810* BFD_RELOC_M32R_GOT16_HI_ULO: howto manager. (line 1364) 12811* BFD_RELOC_M32R_GOT16_LO: howto manager. (line 1366) 12812* BFD_RELOC_M32R_GOT24: howto manager. (line 1353) 12813* BFD_RELOC_M32R_GOTOFF: howto manager. (line 1359) 12814* BFD_RELOC_M32R_GOTOFF_HI_SLO: howto manager. (line 1361) 12815* BFD_RELOC_M32R_GOTOFF_HI_ULO: howto manager. (line 1360) 12816* BFD_RELOC_M32R_GOTOFF_LO: howto manager. (line 1362) 12817* BFD_RELOC_M32R_GOTPC24: howto manager. (line 1363) 12818* BFD_RELOC_M32R_GOTPC_HI_SLO: howto manager. (line 1368) 12819* BFD_RELOC_M32R_GOTPC_HI_ULO: howto manager. (line 1367) 12820* BFD_RELOC_M32R_GOTPC_LO: howto manager. (line 1369) 12821* BFD_RELOC_M32R_HI16_SLO: howto manager. (line 1342) 12822* BFD_RELOC_M32R_HI16_ULO: howto manager. (line 1338) 12823* BFD_RELOC_M32R_JMP_SLOT: howto manager. (line 1357) 12824* BFD_RELOC_M32R_LO16: howto manager. (line 1346) 12825* BFD_RELOC_M32R_RELATIVE: howto manager. (line 1358) 12826* BFD_RELOC_M32R_SDA16: howto manager. (line 1349) 12827* BFD_RELOC_M68HC11_24: howto manager. (line 2438) 12828* BFD_RELOC_M68HC11_3B: howto manager. (line 2413) 12829* BFD_RELOC_M68HC11_HI8: howto manager. (line 2405) 12830* BFD_RELOC_M68HC11_LO16: howto manager. (line 2427) 12831* BFD_RELOC_M68HC11_LO8: howto manager. (line 2409) 12832* BFD_RELOC_M68HC11_PAGE: howto manager. (line 2433) 12833* BFD_RELOC_M68HC11_RL_GROUP: howto manager. (line 2422) 12834* BFD_RELOC_M68HC11_RL_JUMP: howto manager. (line 2416) 12835* BFD_RELOC_M68HC12_10_PCREL: howto manager. (line 2498) 12836* BFD_RELOC_M68HC12_16B: howto manager. (line 2492) 12837* BFD_RELOC_M68HC12_5B: howto manager. (line 2444) 12838* BFD_RELOC_M68HC12_9_PCREL: howto manager. (line 2495) 12839* BFD_RELOC_M68HC12_9B: howto manager. (line 2489) 12840* BFD_RELOC_M68HC12_HI8XG: howto manager. (line 2505) 12841* BFD_RELOC_M68HC12_LO8XG: howto manager. (line 2501) 12842* BFD_RELOC_MACH_O_LOCAL_SECTDIFF: howto manager. (line 2967) 12843* BFD_RELOC_MACH_O_PAIR: howto manager. (line 2970) 12844* BFD_RELOC_MACH_O_SECTDIFF: howto manager. (line 2963) 12845* BFD_RELOC_MACH_O_X86_64_BRANCH32: howto manager. (line 2973) 12846* BFD_RELOC_MACH_O_X86_64_BRANCH8: howto manager. (line 2974) 12847* BFD_RELOC_MACH_O_X86_64_GOT: howto manager. (line 2978) 12848* BFD_RELOC_MACH_O_X86_64_GOT_LOAD: howto manager. (line 2981) 12849* BFD_RELOC_MACH_O_X86_64_PCREL32_1: howto manager. (line 2991) 12850* BFD_RELOC_MACH_O_X86_64_PCREL32_2: howto manager. (line 2994) 12851* BFD_RELOC_MACH_O_X86_64_PCREL32_4: howto manager. (line 2997) 12852* BFD_RELOC_MACH_O_X86_64_SUBTRACTOR32: howto manager. (line 2985) 12853* BFD_RELOC_MACH_O_X86_64_SUBTRACTOR64: howto manager. (line 2988) 12854* BFD_RELOC_MCORE_PCREL_32: howto manager. (line 1799) 12855* BFD_RELOC_MCORE_PCREL_IMM11BY2: howto manager. (line 1797) 12856* BFD_RELOC_MCORE_PCREL_IMM4BY2: howto manager. (line 1798) 12857* BFD_RELOC_MCORE_PCREL_IMM8BY4: howto manager. (line 1796) 12858* BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2: howto manager. (line 1800) 12859* BFD_RELOC_MCORE_RVA: howto manager. (line 1801) 12860* BFD_RELOC_MEP_16: howto manager. (line 1805) 12861* BFD_RELOC_MEP_32: howto manager. (line 1806) 12862* BFD_RELOC_MEP_8: howto manager. (line 1804) 12863* BFD_RELOC_MEP_ADDR24A4: howto manager. (line 1821) 12864* BFD_RELOC_MEP_GNU_VTENTRY: howto manager. (line 1823) 12865* BFD_RELOC_MEP_GNU_VTINHERIT: howto manager. (line 1822) 12866* BFD_RELOC_MEP_GPREL: howto manager. (line 1815) 12867* BFD_RELOC_MEP_HI16S: howto manager. (line 1814) 12868* BFD_RELOC_MEP_HI16U: howto manager. (line 1813) 12869* BFD_RELOC_MEP_LOW16: howto manager. (line 1812) 12870* BFD_RELOC_MEP_PCABS24A2: howto manager. (line 1811) 12871* BFD_RELOC_MEP_PCREL12A2: howto manager. (line 1808) 12872* BFD_RELOC_MEP_PCREL17A2: howto manager. (line 1809) 12873* BFD_RELOC_MEP_PCREL24A2: howto manager. (line 1810) 12874* BFD_RELOC_MEP_PCREL8A2: howto manager. (line 1807) 12875* BFD_RELOC_MEP_TPREL: howto manager. (line 1816) 12876* BFD_RELOC_MEP_TPREL7: howto manager. (line 1817) 12877* BFD_RELOC_MEP_TPREL7A2: howto manager. (line 1818) 12878* BFD_RELOC_MEP_TPREL7A4: howto manager. (line 1819) 12879* BFD_RELOC_MEP_UIMM24: howto manager. (line 1820) 12880* BFD_RELOC_METAG_COPY: howto manager. (line 1845) 12881* BFD_RELOC_METAG_GETSET_GOT: howto manager. (line 1837) 12882* BFD_RELOC_METAG_GETSET_GOTOFF: howto manager. (line 1836) 12883* BFD_RELOC_METAG_GETSETOFF: howto manager. (line 1829) 12884* BFD_RELOC_METAG_GLOB_DAT: howto manager. (line 1848) 12885* BFD_RELOC_METAG_GOTOFF: howto manager. (line 1843) 12886* BFD_RELOC_METAG_HI16_GOTOFF: howto manager. (line 1834) 12887* BFD_RELOC_METAG_HI16_GOTPC: howto manager. (line 1838) 12888* BFD_RELOC_METAG_HI16_PLT: howto manager. (line 1840) 12889* BFD_RELOC_METAG_HIADDR16: howto manager. (line 1826) 12890* BFD_RELOC_METAG_HIOG: howto manager. (line 1830) 12891* BFD_RELOC_METAG_JMP_SLOT: howto manager. (line 1846) 12892* BFD_RELOC_METAG_LO16_GOTOFF: howto manager. (line 1835) 12893* BFD_RELOC_METAG_LO16_GOTPC: howto manager. (line 1839) 12894* BFD_RELOC_METAG_LO16_PLT: howto manager. (line 1841) 12895* BFD_RELOC_METAG_LOADDR16: howto manager. (line 1827) 12896* BFD_RELOC_METAG_LOOG: howto manager. (line 1831) 12897* BFD_RELOC_METAG_PLT: howto manager. (line 1844) 12898* BFD_RELOC_METAG_REL16: howto manager. (line 1833) 12899* BFD_RELOC_METAG_REL8: howto manager. (line 1832) 12900* BFD_RELOC_METAG_RELATIVE: howto manager. (line 1847) 12901* BFD_RELOC_METAG_RELBRANCH: howto manager. (line 1828) 12902* BFD_RELOC_METAG_RELBRANCH_PLT: howto manager. (line 1842) 12903* BFD_RELOC_METAG_TLS_DTPMOD: howto manager. (line 1859) 12904* BFD_RELOC_METAG_TLS_DTPOFF: howto manager. (line 1860) 12905* BFD_RELOC_METAG_TLS_GD: howto manager. (line 1849) 12906* BFD_RELOC_METAG_TLS_IE: howto manager. (line 1854) 12907* BFD_RELOC_METAG_TLS_IENONPIC: howto manager. (line 1855) 12908* BFD_RELOC_METAG_TLS_IENONPIC_HI16: howto manager. (line 1856) 12909* BFD_RELOC_METAG_TLS_IENONPIC_LO16: howto manager. (line 1857) 12910* BFD_RELOC_METAG_TLS_LDM: howto manager. (line 1850) 12911* BFD_RELOC_METAG_TLS_LDO: howto manager. (line 1853) 12912* BFD_RELOC_METAG_TLS_LDO_HI16: howto manager. (line 1851) 12913* BFD_RELOC_METAG_TLS_LDO_LO16: howto manager. (line 1852) 12914* BFD_RELOC_METAG_TLS_LE: howto manager. (line 1861) 12915* BFD_RELOC_METAG_TLS_LE_HI16: howto manager. (line 1862) 12916* BFD_RELOC_METAG_TLS_LE_LO16: howto manager. (line 1863) 12917* BFD_RELOC_METAG_TLS_TPOFF: howto manager. (line 1858) 12918* BFD_RELOC_MICROBLAZE_32_GOTOFF: howto manager. (line 3044) 12919* BFD_RELOC_MICROBLAZE_32_LO: howto manager. (line 3000) 12920* BFD_RELOC_MICROBLAZE_32_LO_PCREL: howto manager. (line 3004) 12921* BFD_RELOC_MICROBLAZE_32_ROSDA: howto manager. (line 3008) 12922* BFD_RELOC_MICROBLAZE_32_RWSDA: howto manager. (line 3012) 12923* BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM: howto manager. (line 3016) 12924* BFD_RELOC_MICROBLAZE_32_TLSDTPMOD: howto manager. (line 3065) 12925* BFD_RELOC_MICROBLAZE_32_TLSDTPREL: howto manager. (line 3068) 12926* BFD_RELOC_MICROBLAZE_64_GOT: howto manager. (line 3030) 12927* BFD_RELOC_MICROBLAZE_64_GOTOFF: howto manager. (line 3039) 12928* BFD_RELOC_MICROBLAZE_64_GOTPC: howto manager. (line 3025) 12929* BFD_RELOC_MICROBLAZE_64_NONE: howto manager. (line 3020) 12930* BFD_RELOC_MICROBLAZE_64_PLT: howto manager. (line 3034) 12931* BFD_RELOC_MICROBLAZE_64_TLS: howto manager. (line 3052) 12932* BFD_RELOC_MICROBLAZE_64_TLSDTPREL: howto manager. (line 3071) 12933* BFD_RELOC_MICROBLAZE_64_TLSGD: howto manager. (line 3055) 12934* BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL: howto manager. (line 3075) 12935* BFD_RELOC_MICROBLAZE_64_TLSLD: howto manager. (line 3060) 12936* BFD_RELOC_MICROBLAZE_64_TLSTPREL: howto manager. (line 3079) 12937* BFD_RELOC_MICROBLAZE_COPY: howto manager. (line 3048) 12938* BFD_RELOC_MICROMIPS_10_PCREL_S1: howto manager. (line 404) 12939* BFD_RELOC_MICROMIPS_16_PCREL_S1: howto manager. (line 405) 12940* BFD_RELOC_MICROMIPS_7_PCREL_S1: howto manager. (line 403) 12941* BFD_RELOC_MICROMIPS_CALL16: howto manager. (line 423) 12942* BFD_RELOC_MICROMIPS_CALL_HI16: howto manager. (line 429) 12943* BFD_RELOC_MICROMIPS_CALL_LO16: howto manager. (line 431) 12944* BFD_RELOC_MICROMIPS_GOT16: howto manager. (line 421) 12945* BFD_RELOC_MICROMIPS_GOT_DISP: howto manager. (line 439) 12946* BFD_RELOC_MICROMIPS_GOT_HI16: howto manager. (line 425) 12947* BFD_RELOC_MICROMIPS_GOT_LO16: howto manager. (line 427) 12948* BFD_RELOC_MICROMIPS_GOT_OFST: howto manager. (line 437) 12949* BFD_RELOC_MICROMIPS_GOT_PAGE: howto manager. (line 435) 12950* BFD_RELOC_MICROMIPS_GPREL16: howto manager. (line 414) 12951* BFD_RELOC_MICROMIPS_HI16: howto manager. (line 415) 12952* BFD_RELOC_MICROMIPS_HI16_S: howto manager. (line 416) 12953* BFD_RELOC_MICROMIPS_HIGHER: howto manager. (line 448) 12954* BFD_RELOC_MICROMIPS_HIGHEST: howto manager. (line 446) 12955* BFD_RELOC_MICROMIPS_JALR: howto manager. (line 454) 12956* BFD_RELOC_MICROMIPS_JMP: howto manager. (line 343) 12957* BFD_RELOC_MICROMIPS_LITERAL: howto manager. (line 400) 12958* BFD_RELOC_MICROMIPS_LO16: howto manager. (line 417) 12959* BFD_RELOC_MICROMIPS_SCN_DISP: howto manager. (line 450) 12960* BFD_RELOC_MICROMIPS_SUB: howto manager. (line 433) 12961* BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16: howto manager. (line 464) 12962* BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16: howto manager. (line 466) 12963* BFD_RELOC_MICROMIPS_TLS_GD: howto manager. (line 460) 12964* BFD_RELOC_MICROMIPS_TLS_GOTTPREL: howto manager. (line 468) 12965* BFD_RELOC_MICROMIPS_TLS_LDM: howto manager. (line 462) 12966* BFD_RELOC_MICROMIPS_TLS_TPREL_HI16: howto manager. (line 472) 12967* BFD_RELOC_MICROMIPS_TLS_TPREL_LO16: howto manager. (line 474) 12968* BFD_RELOC_MIPS16_CALL16: howto manager. (line 374) 12969* BFD_RELOC_MIPS16_GOT16: howto manager. (line 373) 12970* BFD_RELOC_MIPS16_GPREL: howto manager. (line 349) 12971* BFD_RELOC_MIPS16_HI16: howto manager. (line 378) 12972* BFD_RELOC_MIPS16_HI16_S: howto manager. (line 381) 12973* BFD_RELOC_MIPS16_JMP: howto manager. (line 346) 12974* BFD_RELOC_MIPS16_LO16: howto manager. (line 387) 12975* BFD_RELOC_MIPS16_TLS_DTPREL_HI16: howto manager. (line 392) 12976* BFD_RELOC_MIPS16_TLS_DTPREL_LO16: howto manager. (line 393) 12977* BFD_RELOC_MIPS16_TLS_GD: howto manager. (line 390) 12978* BFD_RELOC_MIPS16_TLS_GOTTPREL: howto manager. (line 394) 12979* BFD_RELOC_MIPS16_TLS_LDM: howto manager. (line 391) 12980* BFD_RELOC_MIPS16_TLS_TPREL_HI16: howto manager. (line 395) 12981* BFD_RELOC_MIPS16_TLS_TPREL_LO16: howto manager. (line 396) 12982* BFD_RELOC_MIPS_18_PCREL_S3: howto manager. (line 410) 12983* BFD_RELOC_MIPS_19_PCREL_S2: howto manager. (line 411) 12984* BFD_RELOC_MIPS_21_PCREL_S2: howto manager. (line 408) 12985* BFD_RELOC_MIPS_26_PCREL_S2: howto manager. (line 409) 12986* BFD_RELOC_MIPS_CALL16: howto manager. (line 422) 12987* BFD_RELOC_MIPS_CALL_HI16: howto manager. (line 428) 12988* BFD_RELOC_MIPS_CALL_LO16: howto manager. (line 430) 12989* BFD_RELOC_MIPS_COPY: howto manager. (line 478) 12990* BFD_RELOC_MIPS_DELETE: howto manager. (line 444) 12991* BFD_RELOC_MIPS_EH: howto manager. (line 475) 12992* BFD_RELOC_MIPS_GOT16: howto manager. (line 420) 12993* BFD_RELOC_MIPS_GOT_DISP: howto manager. (line 438) 12994* BFD_RELOC_MIPS_GOT_HI16: howto manager. (line 424) 12995* BFD_RELOC_MIPS_GOT_LO16: howto manager. (line 426) 12996* BFD_RELOC_MIPS_GOT_OFST: howto manager. (line 436) 12997* BFD_RELOC_MIPS_GOT_PAGE: howto manager. (line 434) 12998* BFD_RELOC_MIPS_HIGHER: howto manager. (line 447) 12999* BFD_RELOC_MIPS_HIGHEST: howto manager. (line 445) 13000* BFD_RELOC_MIPS_INSERT_A: howto manager. (line 442) 13001* BFD_RELOC_MIPS_INSERT_B: howto manager. (line 443) 13002* BFD_RELOC_MIPS_JALR: howto manager. (line 453) 13003* BFD_RELOC_MIPS_JMP: howto manager. (line 342) 13004* BFD_RELOC_MIPS_JUMP_SLOT: howto manager. (line 479) 13005* BFD_RELOC_MIPS_LITERAL: howto manager. (line 399) 13006* BFD_RELOC_MIPS_REL16: howto manager. (line 451) 13007* BFD_RELOC_MIPS_RELGOT: howto manager. (line 452) 13008* BFD_RELOC_MIPS_SCN_DISP: howto manager. (line 449) 13009* BFD_RELOC_MIPS_SHIFT5: howto manager. (line 440) 13010* BFD_RELOC_MIPS_SHIFT6: howto manager. (line 441) 13011* BFD_RELOC_MIPS_SUB: howto manager. (line 432) 13012* BFD_RELOC_MIPS_TLS_DTPMOD32: howto manager. (line 455) 13013* BFD_RELOC_MIPS_TLS_DTPMOD64: howto manager. (line 457) 13014* BFD_RELOC_MIPS_TLS_DTPREL32: howto manager. (line 456) 13015* BFD_RELOC_MIPS_TLS_DTPREL64: howto manager. (line 458) 13016* BFD_RELOC_MIPS_TLS_DTPREL_HI16: howto manager. (line 463) 13017* BFD_RELOC_MIPS_TLS_DTPREL_LO16: howto manager. (line 465) 13018* BFD_RELOC_MIPS_TLS_GD: howto manager. (line 459) 13019* BFD_RELOC_MIPS_TLS_GOTTPREL: howto manager. (line 467) 13020* BFD_RELOC_MIPS_TLS_LDM: howto manager. (line 461) 13021* BFD_RELOC_MIPS_TLS_TPREL32: howto manager. (line 469) 13022* BFD_RELOC_MIPS_TLS_TPREL64: howto manager. (line 470) 13023* BFD_RELOC_MIPS_TLS_TPREL_HI16: howto manager. (line 471) 13024* BFD_RELOC_MIPS_TLS_TPREL_LO16: howto manager. (line 473) 13025* BFD_RELOC_MMIX_ADDR19: howto manager. (line 1892) 13026* BFD_RELOC_MMIX_ADDR27: howto manager. (line 1896) 13027* BFD_RELOC_MMIX_BASE_PLUS_OFFSET: howto manager. (line 1908) 13028* BFD_RELOC_MMIX_CBRANCH: howto manager. (line 1872) 13029* BFD_RELOC_MMIX_CBRANCH_1: howto manager. (line 1874) 13030* BFD_RELOC_MMIX_CBRANCH_2: howto manager. (line 1875) 13031* BFD_RELOC_MMIX_CBRANCH_3: howto manager. (line 1876) 13032* BFD_RELOC_MMIX_CBRANCH_J: howto manager. (line 1873) 13033* BFD_RELOC_MMIX_GETA: howto manager. (line 1866) 13034* BFD_RELOC_MMIX_GETA_1: howto manager. (line 1867) 13035* BFD_RELOC_MMIX_GETA_2: howto manager. (line 1868) 13036* BFD_RELOC_MMIX_GETA_3: howto manager. (line 1869) 13037* BFD_RELOC_MMIX_JMP: howto manager. (line 1886) 13038* BFD_RELOC_MMIX_JMP_1: howto manager. (line 1887) 13039* BFD_RELOC_MMIX_JMP_2: howto manager. (line 1888) 13040* BFD_RELOC_MMIX_JMP_3: howto manager. (line 1889) 13041* BFD_RELOC_MMIX_LOCAL: howto manager. (line 1912) 13042* BFD_RELOC_MMIX_PUSHJ: howto manager. (line 1879) 13043* BFD_RELOC_MMIX_PUSHJ_1: howto manager. (line 1880) 13044* BFD_RELOC_MMIX_PUSHJ_2: howto manager. (line 1881) 13045* BFD_RELOC_MMIX_PUSHJ_3: howto manager. (line 1882) 13046* BFD_RELOC_MMIX_PUSHJ_STUBBABLE: howto manager. (line 1883) 13047* BFD_RELOC_MMIX_REG: howto manager. (line 1904) 13048* BFD_RELOC_MMIX_REG_OR_BYTE: howto manager. (line 1900) 13049* BFD_RELOC_MN10300_16_PCREL: howto manager. (line 583) 13050* BFD_RELOC_MN10300_32_PCREL: howto manager. (line 579) 13051* BFD_RELOC_MN10300_ALIGN: howto manager. (line 564) 13052* BFD_RELOC_MN10300_COPY: howto manager. (line 547) 13053* BFD_RELOC_MN10300_GLOB_DAT: howto manager. (line 550) 13054* BFD_RELOC_MN10300_GOT16: howto manager. (line 543) 13055* BFD_RELOC_MN10300_GOT24: howto manager. (line 539) 13056* BFD_RELOC_MN10300_GOT32: howto manager. (line 535) 13057* BFD_RELOC_MN10300_GOTOFF24: howto manager. (line 532) 13058* BFD_RELOC_MN10300_JMP_SLOT: howto manager. (line 553) 13059* BFD_RELOC_MN10300_RELATIVE: howto manager. (line 556) 13060* BFD_RELOC_MN10300_SYM_DIFF: howto manager. (line 559) 13061* BFD_RELOC_MN10300_TLS_DTPMOD: howto manager. (line 574) 13062* BFD_RELOC_MN10300_TLS_DTPOFF: howto manager. (line 575) 13063* BFD_RELOC_MN10300_TLS_GD: howto manager. (line 568) 13064* BFD_RELOC_MN10300_TLS_GOTIE: howto manager. (line 571) 13065* BFD_RELOC_MN10300_TLS_IE: howto manager. (line 572) 13066* BFD_RELOC_MN10300_TLS_LD: howto manager. (line 569) 13067* BFD_RELOC_MN10300_TLS_LDO: howto manager. (line 570) 13068* BFD_RELOC_MN10300_TLS_LE: howto manager. (line 573) 13069* BFD_RELOC_MN10300_TLS_TPOFF: howto manager. (line 576) 13070* BFD_RELOC_MOXIE_10_PCREL: howto manager. (line 482) 13071* BFD_RELOC_MSP430_10_PCREL: howto manager. (line 2769) 13072* BFD_RELOC_MSP430_16: howto manager. (line 2771) 13073* BFD_RELOC_MSP430_16_BYTE: howto manager. (line 2773) 13074* BFD_RELOC_MSP430_16_PCREL: howto manager. (line 2770) 13075* BFD_RELOC_MSP430_16_PCREL_BYTE: howto manager. (line 2772) 13076* BFD_RELOC_MSP430_2X_PCREL: howto manager. (line 2774) 13077* BFD_RELOC_MSP430_ABS8: howto manager. (line 2776) 13078* BFD_RELOC_MSP430_ABS_HI16: howto manager. (line 2788) 13079* BFD_RELOC_MSP430_PREL31: howto manager. (line 2789) 13080* BFD_RELOC_MSP430_RL_PCREL: howto manager. (line 2775) 13081* BFD_RELOC_MSP430_SYM_DIFF: howto manager. (line 2790) 13082* BFD_RELOC_MSP430X_ABS16: howto manager. (line 2787) 13083* BFD_RELOC_MSP430X_ABS20_ADR_DST: howto manager. (line 2784) 13084* BFD_RELOC_MSP430X_ABS20_ADR_SRC: howto manager. (line 2783) 13085* BFD_RELOC_MSP430X_ABS20_EXT_DST: howto manager. (line 2781) 13086* BFD_RELOC_MSP430X_ABS20_EXT_ODST: howto manager. (line 2782) 13087* BFD_RELOC_MSP430X_ABS20_EXT_SRC: howto manager. (line 2780) 13088* BFD_RELOC_MSP430X_PCR16: howto manager. (line 2785) 13089* BFD_RELOC_MSP430X_PCR20_CALL: howto manager. (line 2786) 13090* BFD_RELOC_MSP430X_PCR20_EXT_DST: howto manager. (line 2778) 13091* BFD_RELOC_MSP430X_PCR20_EXT_ODST: howto manager. (line 2779) 13092* BFD_RELOC_MSP430X_PCR20_EXT_SRC: howto manager. (line 2777) 13093* BFD_RELOC_MT_GNU_VTENTRY: howto manager. (line 2763) 13094* BFD_RELOC_MT_GNU_VTINHERIT: howto manager. (line 2760) 13095* BFD_RELOC_MT_HI16: howto manager. (line 2754) 13096* BFD_RELOC_MT_LO16: howto manager. (line 2757) 13097* BFD_RELOC_MT_PC16: howto manager. (line 2751) 13098* BFD_RELOC_MT_PCINSN8: howto manager. (line 2766) 13099* BFD_RELOC_NDS32_10_UPCREL: howto manager. (line 1521) 13100* BFD_RELOC_NDS32_10IFCU_PCREL: howto manager. (line 1554) 13101* BFD_RELOC_NDS32_15_FIXED: howto manager. (line 1475) 13102* BFD_RELOC_NDS32_15_PCREL: howto manager. (line 1383) 13103* BFD_RELOC_NDS32_17_FIXED: howto manager. (line 1476) 13104* BFD_RELOC_NDS32_17_PCREL: howto manager. (line 1386) 13105* BFD_RELOC_NDS32_17IFC_PCREL: howto manager. (line 1553) 13106* BFD_RELOC_NDS32_20: howto manager. (line 1372) 13107* BFD_RELOC_NDS32_25_ABS: howto manager. (line 1548) 13108* BFD_RELOC_NDS32_25_FIXED: howto manager. (line 1477) 13109* BFD_RELOC_NDS32_25_PCREL: howto manager. (line 1389) 13110* BFD_RELOC_NDS32_25_PLTREL: howto manager. (line 1450) 13111* BFD_RELOC_NDS32_5: howto manager. (line 1518) 13112* BFD_RELOC_NDS32_9_FIXED: howto manager. (line 1474) 13113* BFD_RELOC_NDS32_9_PCREL: howto manager. (line 1375) 13114* BFD_RELOC_NDS32_9_PLTREL: howto manager. (line 1449) 13115* BFD_RELOC_NDS32_COPY: howto manager. (line 1451) 13116* BFD_RELOC_NDS32_DATA: howto manager. (line 1551) 13117* BFD_RELOC_NDS32_DIFF16: howto manager. (line 1542) 13118* BFD_RELOC_NDS32_DIFF32: howto manager. (line 1543) 13119* BFD_RELOC_NDS32_DIFF8: howto manager. (line 1541) 13120* BFD_RELOC_NDS32_DIFF_ULEB128: howto manager. (line 1544) 13121* BFD_RELOC_NDS32_DWARF2_LEB: howto manager. (line 1501) 13122* BFD_RELOC_NDS32_DWARF2_OP1: howto manager. (line 1499) 13123* BFD_RELOC_NDS32_DWARF2_OP2: howto manager. (line 1500) 13124* BFD_RELOC_NDS32_EMPTY: howto manager. (line 1545) 13125* BFD_RELOC_NDS32_GLOB_DAT: howto manager. (line 1452) 13126* BFD_RELOC_NDS32_GOT15S2: howto manager. (line 1514) 13127* BFD_RELOC_NDS32_GOT17S2: howto manager. (line 1515) 13128* BFD_RELOC_NDS32_GOT20: howto manager. (line 1448) 13129* BFD_RELOC_NDS32_GOT_HI20: howto manager. (line 1459) 13130* BFD_RELOC_NDS32_GOT_LO12: howto manager. (line 1460) 13131* BFD_RELOC_NDS32_GOT_LO15: howto manager. (line 1510) 13132* BFD_RELOC_NDS32_GOT_LO19: howto manager. (line 1511) 13133* BFD_RELOC_NDS32_GOT_SUFF: howto manager. (line 1529) 13134* BFD_RELOC_NDS32_GOTOFF: howto manager. (line 1455) 13135* BFD_RELOC_NDS32_GOTOFF_HI20: howto manager. (line 1456) 13136* BFD_RELOC_NDS32_GOTOFF_LO12: howto manager. (line 1457) 13137* BFD_RELOC_NDS32_GOTOFF_LO15: howto manager. (line 1512) 13138* BFD_RELOC_NDS32_GOTOFF_LO19: howto manager. (line 1513) 13139* BFD_RELOC_NDS32_GOTOFF_SUFF: howto manager. (line 1530) 13140* BFD_RELOC_NDS32_GOTPC20: howto manager. (line 1458) 13141* BFD_RELOC_NDS32_GOTPC_HI20: howto manager. (line 1461) 13142* BFD_RELOC_NDS32_GOTPC_LO12: howto manager. (line 1462) 13143* BFD_RELOC_NDS32_GOTTPOFF: howto manager. (line 1562) 13144* BFD_RELOC_NDS32_HI20: howto manager. (line 1392) 13145* BFD_RELOC_NDS32_INSN16: howto manager. (line 1465) 13146* BFD_RELOC_NDS32_JMP_SLOT: howto manager. (line 1453) 13147* BFD_RELOC_NDS32_LABEL: howto manager. (line 1466) 13148* BFD_RELOC_NDS32_LO12S0: howto manager. (line 1408) 13149* BFD_RELOC_NDS32_LO12S0_ORI: howto manager. (line 1412) 13150* BFD_RELOC_NDS32_LO12S1: howto manager. (line 1404) 13151* BFD_RELOC_NDS32_LO12S2: howto manager. (line 1400) 13152* BFD_RELOC_NDS32_LO12S2_DP: howto manager. (line 1495) 13153* BFD_RELOC_NDS32_LO12S2_SP: howto manager. (line 1496) 13154* BFD_RELOC_NDS32_LO12S3: howto manager. (line 1396) 13155* BFD_RELOC_NDS32_LOADSTORE: howto manager. (line 1473) 13156* BFD_RELOC_NDS32_LONGCALL1: howto manager. (line 1467) 13157* BFD_RELOC_NDS32_LONGCALL2: howto manager. (line 1468) 13158* BFD_RELOC_NDS32_LONGCALL3: howto manager. (line 1469) 13159* BFD_RELOC_NDS32_LONGCALL4: howto manager. (line 1478) 13160* BFD_RELOC_NDS32_LONGCALL5: howto manager. (line 1479) 13161* BFD_RELOC_NDS32_LONGCALL6: howto manager. (line 1480) 13162* BFD_RELOC_NDS32_LONGJUMP1: howto manager. (line 1470) 13163* BFD_RELOC_NDS32_LONGJUMP2: howto manager. (line 1471) 13164* BFD_RELOC_NDS32_LONGJUMP3: howto manager. (line 1472) 13165* BFD_RELOC_NDS32_LONGJUMP4: howto manager. (line 1481) 13166* BFD_RELOC_NDS32_LONGJUMP5: howto manager. (line 1482) 13167* BFD_RELOC_NDS32_LONGJUMP6: howto manager. (line 1483) 13168* BFD_RELOC_NDS32_LONGJUMP7: howto manager. (line 1484) 13169* BFD_RELOC_NDS32_MINUEND: howto manager. (line 1539) 13170* BFD_RELOC_NDS32_MULCALL_SUFF: howto manager. (line 1532) 13171* BFD_RELOC_NDS32_PLT_GOT_SUFF: howto manager. (line 1531) 13172* BFD_RELOC_NDS32_PLT_GOTREL_HI20: howto manager. (line 1489) 13173* BFD_RELOC_NDS32_PLT_GOTREL_LO12: howto manager. (line 1490) 13174* BFD_RELOC_NDS32_PLT_GOTREL_LO15: howto manager. (line 1508) 13175* BFD_RELOC_NDS32_PLT_GOTREL_LO19: howto manager. (line 1509) 13176* BFD_RELOC_NDS32_PLT_GOTREL_LO20: howto manager. (line 1507) 13177* BFD_RELOC_NDS32_PLTBLOCK: howto manager. (line 1536) 13178* BFD_RELOC_NDS32_PLTREL_HI20: howto manager. (line 1487) 13179* BFD_RELOC_NDS32_PLTREL_LO12: howto manager. (line 1488) 13180* BFD_RELOC_NDS32_PTR: howto manager. (line 1533) 13181* BFD_RELOC_NDS32_PTR_COUNT: howto manager. (line 1534) 13182* BFD_RELOC_NDS32_PTR_RESOLVED: howto manager. (line 1535) 13183* BFD_RELOC_NDS32_RELATIVE: howto manager. (line 1454) 13184* BFD_RELOC_NDS32_RELAX_ENTRY: howto manager. (line 1528) 13185* BFD_RELOC_NDS32_RELAX_REGION_BEGIN: howto manager. (line 1537) 13186* BFD_RELOC_NDS32_RELAX_REGION_END: howto manager. (line 1538) 13187* BFD_RELOC_NDS32_SDA12S2_DP: howto manager. (line 1493) 13188* BFD_RELOC_NDS32_SDA12S2_SP: howto manager. (line 1494) 13189* BFD_RELOC_NDS32_SDA15S0: howto manager. (line 1428) 13190* BFD_RELOC_NDS32_SDA15S1: howto manager. (line 1424) 13191* BFD_RELOC_NDS32_SDA15S2: howto manager. (line 1420) 13192* BFD_RELOC_NDS32_SDA15S3: howto manager. (line 1416) 13193* BFD_RELOC_NDS32_SDA16S3: howto manager. (line 1432) 13194* BFD_RELOC_NDS32_SDA17S2: howto manager. (line 1436) 13195* BFD_RELOC_NDS32_SDA18S1: howto manager. (line 1440) 13196* BFD_RELOC_NDS32_SDA19S0: howto manager. (line 1444) 13197* BFD_RELOC_NDS32_SDA_FP7U2_RELA: howto manager. (line 1525) 13198* BFD_RELOC_NDS32_SUBTRAHEND: howto manager. (line 1540) 13199* BFD_RELOC_NDS32_TLS_IE_HI20: howto manager. (line 1563) 13200* BFD_RELOC_NDS32_TLS_IE_LO12S2: howto manager. (line 1564) 13201* BFD_RELOC_NDS32_TLS_LE_15S0: howto manager. (line 1567) 13202* BFD_RELOC_NDS32_TLS_LE_15S1: howto manager. (line 1568) 13203* BFD_RELOC_NDS32_TLS_LE_15S2: howto manager. (line 1569) 13204* BFD_RELOC_NDS32_TLS_LE_20: howto manager. (line 1566) 13205* BFD_RELOC_NDS32_TLS_LE_ADD: howto manager. (line 1560) 13206* BFD_RELOC_NDS32_TLS_LE_HI20: howto manager. (line 1558) 13207* BFD_RELOC_NDS32_TLS_LE_LO12: howto manager. (line 1559) 13208* BFD_RELOC_NDS32_TLS_LE_LS: howto manager. (line 1561) 13209* BFD_RELOC_NDS32_TLS_TPOFF: howto manager. (line 1565) 13210* BFD_RELOC_NDS32_TPOFF: howto manager. (line 1557) 13211* BFD_RELOC_NDS32_TRAN: howto manager. (line 1552) 13212* BFD_RELOC_NDS32_UPDATE_TA: howto manager. (line 1504) 13213* BFD_RELOC_NDS32_WORD_9_PCREL: howto manager. (line 1379) 13214* BFD_RELOC_NIOS2_ALIGN: howto manager. (line 2807) 13215* BFD_RELOC_NIOS2_CACHE_OPX: howto manager. (line 2797) 13216* BFD_RELOC_NIOS2_CALL16: howto manager. (line 2809) 13217* BFD_RELOC_NIOS2_CALL26: howto manager. (line 2795) 13218* BFD_RELOC_NIOS2_CALL26_NOAT: howto manager. (line 2827) 13219* BFD_RELOC_NIOS2_CALL_HA: howto manager. (line 2831) 13220* BFD_RELOC_NIOS2_CALL_LO: howto manager. (line 2830) 13221* BFD_RELOC_NIOS2_CALLR: howto manager. (line 2806) 13222* BFD_RELOC_NIOS2_CJMP: howto manager. (line 2805) 13223* BFD_RELOC_NIOS2_COPY: howto manager. (line 2822) 13224* BFD_RELOC_NIOS2_GLOB_DAT: howto manager. (line 2823) 13225* BFD_RELOC_NIOS2_GOT16: howto manager. (line 2808) 13226* BFD_RELOC_NIOS2_GOT_HA: howto manager. (line 2829) 13227* BFD_RELOC_NIOS2_GOT_LO: howto manager. (line 2828) 13228* BFD_RELOC_NIOS2_GOTOFF: howto manager. (line 2826) 13229* BFD_RELOC_NIOS2_GOTOFF_HA: howto manager. (line 2811) 13230* BFD_RELOC_NIOS2_GOTOFF_LO: howto manager. (line 2810) 13231* BFD_RELOC_NIOS2_GPREL: howto manager. (line 2803) 13232* BFD_RELOC_NIOS2_HI16: howto manager. (line 2800) 13233* BFD_RELOC_NIOS2_HIADJ16: howto manager. (line 2802) 13234* BFD_RELOC_NIOS2_IMM5: howto manager. (line 2796) 13235* BFD_RELOC_NIOS2_IMM6: howto manager. (line 2798) 13236* BFD_RELOC_NIOS2_IMM8: howto manager. (line 2799) 13237* BFD_RELOC_NIOS2_JUMP_SLOT: howto manager. (line 2824) 13238* BFD_RELOC_NIOS2_LO16: howto manager. (line 2801) 13239* BFD_RELOC_NIOS2_PCREL_HA: howto manager. (line 2813) 13240* BFD_RELOC_NIOS2_PCREL_LO: howto manager. (line 2812) 13241* BFD_RELOC_NIOS2_R2_F1I5_2: howto manager. (line 2841) 13242* BFD_RELOC_NIOS2_R2_I10_1_PCREL: howto manager. (line 2833) 13243* BFD_RELOC_NIOS2_R2_L5I4X1: howto manager. (line 2842) 13244* BFD_RELOC_NIOS2_R2_S12: howto manager. (line 2832) 13245* BFD_RELOC_NIOS2_R2_T1I7_1_PCREL: howto manager. (line 2834) 13246* BFD_RELOC_NIOS2_R2_T1I7_2: howto manager. (line 2835) 13247* BFD_RELOC_NIOS2_R2_T1X1I6: howto manager. (line 2843) 13248* BFD_RELOC_NIOS2_R2_T1X1I6_2: howto manager. (line 2844) 13249* BFD_RELOC_NIOS2_R2_T2I4: howto manager. (line 2836) 13250* BFD_RELOC_NIOS2_R2_T2I4_1: howto manager. (line 2837) 13251* BFD_RELOC_NIOS2_R2_T2I4_2: howto manager. (line 2838) 13252* BFD_RELOC_NIOS2_R2_X1I7_2: howto manager. (line 2839) 13253* BFD_RELOC_NIOS2_R2_X2L5: howto manager. (line 2840) 13254* BFD_RELOC_NIOS2_RELATIVE: howto manager. (line 2825) 13255* BFD_RELOC_NIOS2_S16: howto manager. (line 2793) 13256* BFD_RELOC_NIOS2_TLS_DTPMOD: howto manager. (line 2819) 13257* BFD_RELOC_NIOS2_TLS_DTPREL: howto manager. (line 2820) 13258* BFD_RELOC_NIOS2_TLS_GD16: howto manager. (line 2814) 13259* BFD_RELOC_NIOS2_TLS_IE16: howto manager. (line 2817) 13260* BFD_RELOC_NIOS2_TLS_LDM16: howto manager. (line 2815) 13261* BFD_RELOC_NIOS2_TLS_LDO16: howto manager. (line 2816) 13262* BFD_RELOC_NIOS2_TLS_LE16: howto manager. (line 2818) 13263* BFD_RELOC_NIOS2_TLS_TPREL: howto manager. (line 2821) 13264* BFD_RELOC_NIOS2_U16: howto manager. (line 2794) 13265* BFD_RELOC_NIOS2_UJMP: howto manager. (line 2804) 13266* BFD_RELOC_NONE: howto manager. (line 135) 13267* BFD_RELOC_NS32K_DISP_16: howto manager. (line 654) 13268* BFD_RELOC_NS32K_DISP_16_PCREL: howto manager. (line 657) 13269* BFD_RELOC_NS32K_DISP_32: howto manager. (line 655) 13270* BFD_RELOC_NS32K_DISP_32_PCREL: howto manager. (line 658) 13271* BFD_RELOC_NS32K_DISP_8: howto manager. (line 653) 13272* BFD_RELOC_NS32K_DISP_8_PCREL: howto manager. (line 656) 13273* BFD_RELOC_NS32K_IMM_16: howto manager. (line 648) 13274* BFD_RELOC_NS32K_IMM_16_PCREL: howto manager. (line 651) 13275* BFD_RELOC_NS32K_IMM_32: howto manager. (line 649) 13276* BFD_RELOC_NS32K_IMM_32_PCREL: howto manager. (line 652) 13277* BFD_RELOC_NS32K_IMM_8: howto manager. (line 647) 13278* BFD_RELOC_NS32K_IMM_8_PCREL: howto manager. (line 650) 13279* BFD_RELOC_OR1K_COPY: howto manager. (line 2704) 13280* BFD_RELOC_OR1K_GLOB_DAT: howto manager. (line 2705) 13281* BFD_RELOC_OR1K_GOT16: howto manager. (line 2700) 13282* BFD_RELOC_OR1K_GOTOFF_HI16: howto manager. (line 2702) 13283* BFD_RELOC_OR1K_GOTOFF_LO16: howto manager. (line 2703) 13284* BFD_RELOC_OR1K_GOTPC_HI16: howto manager. (line 2698) 13285* BFD_RELOC_OR1K_GOTPC_LO16: howto manager. (line 2699) 13286* BFD_RELOC_OR1K_JMP_SLOT: howto manager. (line 2706) 13287* BFD_RELOC_OR1K_PLT26: howto manager. (line 2701) 13288* BFD_RELOC_OR1K_REL_26: howto manager. (line 2697) 13289* BFD_RELOC_OR1K_RELATIVE: howto manager. (line 2707) 13290* BFD_RELOC_OR1K_TLS_DTPMOD: howto manager. (line 2720) 13291* BFD_RELOC_OR1K_TLS_DTPOFF: howto manager. (line 2719) 13292* BFD_RELOC_OR1K_TLS_GD_HI16: howto manager. (line 2708) 13293* BFD_RELOC_OR1K_TLS_GD_LO16: howto manager. (line 2709) 13294* BFD_RELOC_OR1K_TLS_IE_HI16: howto manager. (line 2714) 13295* BFD_RELOC_OR1K_TLS_IE_LO16: howto manager. (line 2715) 13296* BFD_RELOC_OR1K_TLS_LDM_HI16: howto manager. (line 2710) 13297* BFD_RELOC_OR1K_TLS_LDM_LO16: howto manager. (line 2711) 13298* BFD_RELOC_OR1K_TLS_LDO_HI16: howto manager. (line 2712) 13299* BFD_RELOC_OR1K_TLS_LDO_LO16: howto manager. (line 2713) 13300* BFD_RELOC_OR1K_TLS_LE_HI16: howto manager. (line 2716) 13301* BFD_RELOC_OR1K_TLS_LE_LO16: howto manager. (line 2717) 13302* BFD_RELOC_OR1K_TLS_TPOFF: howto manager. (line 2718) 13303* BFD_RELOC_PDP11_DISP_6_PCREL: howto manager. (line 662) 13304* BFD_RELOC_PDP11_DISP_8_PCREL: howto manager. (line 661) 13305* BFD_RELOC_PJ_CODE_DIR16: howto manager. (line 667) 13306* BFD_RELOC_PJ_CODE_DIR32: howto manager. (line 668) 13307* BFD_RELOC_PJ_CODE_HI16: howto manager. (line 665) 13308* BFD_RELOC_PJ_CODE_LO16: howto manager. (line 666) 13309* BFD_RELOC_PJ_CODE_REL16: howto manager. (line 669) 13310* BFD_RELOC_PJ_CODE_REL32: howto manager. (line 670) 13311* BFD_RELOC_PPC64_ADDR16_DS: howto manager. (line 733) 13312* BFD_RELOC_PPC64_ADDR16_HIGH: howto manager. (line 744) 13313* BFD_RELOC_PPC64_ADDR16_HIGHA: howto manager. (line 745) 13314* BFD_RELOC_PPC64_ADDR16_LO_DS: howto manager. (line 734) 13315* BFD_RELOC_PPC64_ADDR64_LOCAL: howto manager. (line 746) 13316* BFD_RELOC_PPC64_DTPREL16_DS: howto manager. (line 786) 13317* BFD_RELOC_PPC64_DTPREL16_HIGH: howto manager. (line 794) 13318* BFD_RELOC_PPC64_DTPREL16_HIGHA: howto manager. (line 795) 13319* BFD_RELOC_PPC64_DTPREL16_HIGHER: howto manager. (line 788) 13320* BFD_RELOC_PPC64_DTPREL16_HIGHERA: howto manager. (line 789) 13321* BFD_RELOC_PPC64_DTPREL16_HIGHEST: howto manager. (line 790) 13322* BFD_RELOC_PPC64_DTPREL16_HIGHESTA: howto manager. (line 791) 13323* BFD_RELOC_PPC64_DTPREL16_LO_DS: howto manager. (line 787) 13324* BFD_RELOC_PPC64_ENTRY: howto manager. (line 747) 13325* BFD_RELOC_PPC64_GOT16_DS: howto manager. (line 735) 13326* BFD_RELOC_PPC64_GOT16_LO_DS: howto manager. (line 736) 13327* BFD_RELOC_PPC64_HIGHER: howto manager. (line 721) 13328* BFD_RELOC_PPC64_HIGHER_S: howto manager. (line 722) 13329* BFD_RELOC_PPC64_HIGHEST: howto manager. (line 723) 13330* BFD_RELOC_PPC64_HIGHEST_S: howto manager. (line 724) 13331* BFD_RELOC_PPC64_PLT16_LO_DS: howto manager. (line 737) 13332* BFD_RELOC_PPC64_PLTGOT16: howto manager. (line 729) 13333* BFD_RELOC_PPC64_PLTGOT16_DS: howto manager. (line 742) 13334* BFD_RELOC_PPC64_PLTGOT16_HA: howto manager. (line 732) 13335* BFD_RELOC_PPC64_PLTGOT16_HI: howto manager. (line 731) 13336* BFD_RELOC_PPC64_PLTGOT16_LO: howto manager. (line 730) 13337* BFD_RELOC_PPC64_PLTGOT16_LO_DS: howto manager. (line 743) 13338* BFD_RELOC_PPC64_SECTOFF_DS: howto manager. (line 738) 13339* BFD_RELOC_PPC64_SECTOFF_LO_DS: howto manager. (line 739) 13340* BFD_RELOC_PPC64_TOC: howto manager. (line 728) 13341* BFD_RELOC_PPC64_TOC16_DS: howto manager. (line 740) 13342* BFD_RELOC_PPC64_TOC16_HA: howto manager. (line 727) 13343* BFD_RELOC_PPC64_TOC16_HI: howto manager. (line 726) 13344* BFD_RELOC_PPC64_TOC16_LO: howto manager. (line 725) 13345* BFD_RELOC_PPC64_TOC16_LO_DS: howto manager. (line 741) 13346* BFD_RELOC_PPC64_TPREL16_DS: howto manager. (line 780) 13347* BFD_RELOC_PPC64_TPREL16_HIGH: howto manager. (line 792) 13348* BFD_RELOC_PPC64_TPREL16_HIGHA: howto manager. (line 793) 13349* BFD_RELOC_PPC64_TPREL16_HIGHER: howto manager. (line 782) 13350* BFD_RELOC_PPC64_TPREL16_HIGHERA: howto manager. (line 783) 13351* BFD_RELOC_PPC64_TPREL16_HIGHEST: howto manager. (line 784) 13352* BFD_RELOC_PPC64_TPREL16_HIGHESTA: howto manager. (line 785) 13353* BFD_RELOC_PPC64_TPREL16_LO_DS: howto manager. (line 781) 13354* BFD_RELOC_PPC_B16: howto manager. (line 676) 13355* BFD_RELOC_PPC_B16_BRNTAKEN: howto manager. (line 678) 13356* BFD_RELOC_PPC_B16_BRTAKEN: howto manager. (line 677) 13357* BFD_RELOC_PPC_B26: howto manager. (line 673) 13358* BFD_RELOC_PPC_BA16: howto manager. (line 679) 13359* BFD_RELOC_PPC_BA16_BRNTAKEN: howto manager. (line 681) 13360* BFD_RELOC_PPC_BA16_BRTAKEN: howto manager. (line 680) 13361* BFD_RELOC_PPC_BA26: howto manager. (line 674) 13362* BFD_RELOC_PPC_COPY: howto manager. (line 682) 13363* BFD_RELOC_PPC_DTPMOD: howto manager. (line 753) 13364* BFD_RELOC_PPC_DTPREL: howto manager. (line 763) 13365* BFD_RELOC_PPC_DTPREL16: howto manager. (line 759) 13366* BFD_RELOC_PPC_DTPREL16_HA: howto manager. (line 762) 13367* BFD_RELOC_PPC_DTPREL16_HI: howto manager. (line 761) 13368* BFD_RELOC_PPC_DTPREL16_LO: howto manager. (line 760) 13369* BFD_RELOC_PPC_EMB_BIT_FLD: howto manager. (line 701) 13370* BFD_RELOC_PPC_EMB_MRKREF: howto manager. (line 696) 13371* BFD_RELOC_PPC_EMB_NADDR16: howto manager. (line 688) 13372* BFD_RELOC_PPC_EMB_NADDR16_HA: howto manager. (line 691) 13373* BFD_RELOC_PPC_EMB_NADDR16_HI: howto manager. (line 690) 13374* BFD_RELOC_PPC_EMB_NADDR16_LO: howto manager. (line 689) 13375* BFD_RELOC_PPC_EMB_NADDR32: howto manager. (line 687) 13376* BFD_RELOC_PPC_EMB_RELSDA: howto manager. (line 702) 13377* BFD_RELOC_PPC_EMB_RELSEC16: howto manager. (line 697) 13378* BFD_RELOC_PPC_EMB_RELST_HA: howto manager. (line 700) 13379* BFD_RELOC_PPC_EMB_RELST_HI: howto manager. (line 699) 13380* BFD_RELOC_PPC_EMB_RELST_LO: howto manager. (line 698) 13381* BFD_RELOC_PPC_EMB_SDA21: howto manager. (line 695) 13382* BFD_RELOC_PPC_EMB_SDA2I16: howto manager. (line 693) 13383* BFD_RELOC_PPC_EMB_SDA2REL: howto manager. (line 694) 13384* BFD_RELOC_PPC_EMB_SDAI16: howto manager. (line 692) 13385* BFD_RELOC_PPC_GLOB_DAT: howto manager. (line 683) 13386* BFD_RELOC_PPC_GOT_DTPREL16: howto manager. (line 776) 13387* BFD_RELOC_PPC_GOT_DTPREL16_HA: howto manager. (line 779) 13388* BFD_RELOC_PPC_GOT_DTPREL16_HI: howto manager. (line 778) 13389* BFD_RELOC_PPC_GOT_DTPREL16_LO: howto manager. (line 777) 13390* BFD_RELOC_PPC_GOT_TLSGD16: howto manager. (line 764) 13391* BFD_RELOC_PPC_GOT_TLSGD16_HA: howto manager. (line 767) 13392* BFD_RELOC_PPC_GOT_TLSGD16_HI: howto manager. (line 766) 13393* BFD_RELOC_PPC_GOT_TLSGD16_LO: howto manager. (line 765) 13394* BFD_RELOC_PPC_GOT_TLSLD16: howto manager. (line 768) 13395* BFD_RELOC_PPC_GOT_TLSLD16_HA: howto manager. (line 771) 13396* BFD_RELOC_PPC_GOT_TLSLD16_HI: howto manager. (line 770) 13397* BFD_RELOC_PPC_GOT_TLSLD16_LO: howto manager. (line 769) 13398* BFD_RELOC_PPC_GOT_TPREL16: howto manager. (line 772) 13399* BFD_RELOC_PPC_GOT_TPREL16_HA: howto manager. (line 775) 13400* BFD_RELOC_PPC_GOT_TPREL16_HI: howto manager. (line 774) 13401* BFD_RELOC_PPC_GOT_TPREL16_LO: howto manager. (line 773) 13402* BFD_RELOC_PPC_JMP_SLOT: howto manager. (line 684) 13403* BFD_RELOC_PPC_LOCAL24PC: howto manager. (line 686) 13404* BFD_RELOC_PPC_REL16DX_HA: howto manager. (line 720) 13405* BFD_RELOC_PPC_RELATIVE: howto manager. (line 685) 13406* BFD_RELOC_PPC_TLS: howto manager. (line 750) 13407* BFD_RELOC_PPC_TLSGD: howto manager. (line 751) 13408* BFD_RELOC_PPC_TLSLD: howto manager. (line 752) 13409* BFD_RELOC_PPC_TOC16: howto manager. (line 675) 13410* BFD_RELOC_PPC_TPREL: howto manager. (line 758) 13411* BFD_RELOC_PPC_TPREL16: howto manager. (line 754) 13412* BFD_RELOC_PPC_TPREL16_HA: howto manager. (line 757) 13413* BFD_RELOC_PPC_TPREL16_HI: howto manager. (line 756) 13414* BFD_RELOC_PPC_TPREL16_LO: howto manager. (line 755) 13415* BFD_RELOC_PPC_VLE_HA16A: howto manager. (line 710) 13416* BFD_RELOC_PPC_VLE_HA16D: howto manager. (line 711) 13417* BFD_RELOC_PPC_VLE_HI16A: howto manager. (line 708) 13418* BFD_RELOC_PPC_VLE_HI16D: howto manager. (line 709) 13419* BFD_RELOC_PPC_VLE_LO16A: howto manager. (line 706) 13420* BFD_RELOC_PPC_VLE_LO16D: howto manager. (line 707) 13421* BFD_RELOC_PPC_VLE_REL15: howto manager. (line 704) 13422* BFD_RELOC_PPC_VLE_REL24: howto manager. (line 705) 13423* BFD_RELOC_PPC_VLE_REL8: howto manager. (line 703) 13424* BFD_RELOC_PPC_VLE_SDA21: howto manager. (line 712) 13425* BFD_RELOC_PPC_VLE_SDA21_LO: howto manager. (line 713) 13426* BFD_RELOC_PPC_VLE_SDAREL_HA16A: howto manager. (line 718) 13427* BFD_RELOC_PPC_VLE_SDAREL_HA16D: howto manager. (line 719) 13428* BFD_RELOC_PPC_VLE_SDAREL_HI16A: howto manager. (line 716) 13429* BFD_RELOC_PPC_VLE_SDAREL_HI16D: howto manager. (line 717) 13430* BFD_RELOC_PPC_VLE_SDAREL_LO16A: howto manager. (line 714) 13431* BFD_RELOC_PPC_VLE_SDAREL_LO16D: howto manager. (line 715) 13432* BFD_RELOC_RELC: howto manager. (line 2737) 13433* BFD_RELOC_RL78_16_OP: howto manager. (line 2057) 13434* BFD_RELOC_RL78_16U: howto manager. (line 2061) 13435* BFD_RELOC_RL78_24_OP: howto manager. (line 2058) 13436* BFD_RELOC_RL78_24U: howto manager. (line 2062) 13437* BFD_RELOC_RL78_32_OP: howto manager. (line 2059) 13438* BFD_RELOC_RL78_8U: howto manager. (line 2060) 13439* BFD_RELOC_RL78_ABS16: howto manager. (line 2074) 13440* BFD_RELOC_RL78_ABS16_REV: howto manager. (line 2075) 13441* BFD_RELOC_RL78_ABS16U: howto manager. (line 2078) 13442* BFD_RELOC_RL78_ABS16UL: howto manager. (line 2080) 13443* BFD_RELOC_RL78_ABS16UW: howto manager. (line 2079) 13444* BFD_RELOC_RL78_ABS32: howto manager. (line 2076) 13445* BFD_RELOC_RL78_ABS32_REV: howto manager. (line 2077) 13446* BFD_RELOC_RL78_ABS8: howto manager. (line 2073) 13447* BFD_RELOC_RL78_CODE: howto manager. (line 2085) 13448* BFD_RELOC_RL78_DIFF: howto manager. (line 2064) 13449* BFD_RELOC_RL78_DIR3U_PCREL: howto manager. (line 2063) 13450* BFD_RELOC_RL78_GPRELB: howto manager. (line 2065) 13451* BFD_RELOC_RL78_GPRELL: howto manager. (line 2067) 13452* BFD_RELOC_RL78_GPRELW: howto manager. (line 2066) 13453* BFD_RELOC_RL78_HI16: howto manager. (line 2082) 13454* BFD_RELOC_RL78_HI8: howto manager. (line 2083) 13455* BFD_RELOC_RL78_LO16: howto manager. (line 2084) 13456* BFD_RELOC_RL78_NEG16: howto manager. (line 2054) 13457* BFD_RELOC_RL78_NEG24: howto manager. (line 2055) 13458* BFD_RELOC_RL78_NEG32: howto manager. (line 2056) 13459* BFD_RELOC_RL78_NEG8: howto manager. (line 2053) 13460* BFD_RELOC_RL78_OP_AND: howto manager. (line 2071) 13461* BFD_RELOC_RL78_OP_NEG: howto manager. (line 2070) 13462* BFD_RELOC_RL78_OP_SHRA: howto manager. (line 2072) 13463* BFD_RELOC_RL78_OP_SUBTRACT: howto manager. (line 2069) 13464* BFD_RELOC_RL78_RELAX: howto manager. (line 2081) 13465* BFD_RELOC_RL78_SADDR: howto manager. (line 2086) 13466* BFD_RELOC_RL78_SYM: howto manager. (line 2068) 13467* BFD_RELOC_RVA: howto manager. (line 104) 13468* BFD_RELOC_RX_16_OP: howto manager. (line 2093) 13469* BFD_RELOC_RX_16U: howto manager. (line 2097) 13470* BFD_RELOC_RX_24_OP: howto manager. (line 2094) 13471* BFD_RELOC_RX_24U: howto manager. (line 2098) 13472* BFD_RELOC_RX_32_OP: howto manager. (line 2095) 13473* BFD_RELOC_RX_8U: howto manager. (line 2096) 13474* BFD_RELOC_RX_ABS16: howto manager. (line 2108) 13475* BFD_RELOC_RX_ABS16_REV: howto manager. (line 2109) 13476* BFD_RELOC_RX_ABS16U: howto manager. (line 2112) 13477* BFD_RELOC_RX_ABS16UL: howto manager. (line 2114) 13478* BFD_RELOC_RX_ABS16UW: howto manager. (line 2113) 13479* BFD_RELOC_RX_ABS32: howto manager. (line 2110) 13480* BFD_RELOC_RX_ABS32_REV: howto manager. (line 2111) 13481* BFD_RELOC_RX_ABS8: howto manager. (line 2107) 13482* BFD_RELOC_RX_DIFF: howto manager. (line 2100) 13483* BFD_RELOC_RX_DIR3U_PCREL: howto manager. (line 2099) 13484* BFD_RELOC_RX_GPRELB: howto manager. (line 2101) 13485* BFD_RELOC_RX_GPRELL: howto manager. (line 2103) 13486* BFD_RELOC_RX_GPRELW: howto manager. (line 2102) 13487* BFD_RELOC_RX_NEG16: howto manager. (line 2090) 13488* BFD_RELOC_RX_NEG24: howto manager. (line 2091) 13489* BFD_RELOC_RX_NEG32: howto manager. (line 2092) 13490* BFD_RELOC_RX_NEG8: howto manager. (line 2089) 13491* BFD_RELOC_RX_OP_NEG: howto manager. (line 2106) 13492* BFD_RELOC_RX_OP_SUBTRACT: howto manager. (line 2105) 13493* BFD_RELOC_RX_RELAX: howto manager. (line 2115) 13494* BFD_RELOC_RX_SYM: howto manager. (line 2104) 13495* BFD_RELOC_SCORE16_BRANCH: howto manager. (line 2258) 13496* BFD_RELOC_SCORE16_JMP: howto manager. (line 2255) 13497* BFD_RELOC_SCORE_BCMP: howto manager. (line 2261) 13498* BFD_RELOC_SCORE_BRANCH: howto manager. (line 2246) 13499* BFD_RELOC_SCORE_CALL15: howto manager. (line 2266) 13500* BFD_RELOC_SCORE_DUMMY2: howto manager. (line 2242) 13501* BFD_RELOC_SCORE_DUMMY_HI16: howto manager. (line 2267) 13502* BFD_RELOC_SCORE_GOT15: howto manager. (line 2264) 13503* BFD_RELOC_SCORE_GOT_LO16: howto manager. (line 2265) 13504* BFD_RELOC_SCORE_GPREL15: howto manager. (line 2239) 13505* BFD_RELOC_SCORE_IMM30: howto manager. (line 2249) 13506* BFD_RELOC_SCORE_IMM32: howto manager. (line 2252) 13507* BFD_RELOC_SCORE_JMP: howto manager. (line 2243) 13508* BFD_RELOC_SH_ALIGN: howto manager. (line 989) 13509* BFD_RELOC_SH_CODE: howto manager. (line 990) 13510* BFD_RELOC_SH_COPY: howto manager. (line 995) 13511* BFD_RELOC_SH_COPY64: howto manager. (line 1020) 13512* BFD_RELOC_SH_COUNT: howto manager. (line 988) 13513* BFD_RELOC_SH_DATA: howto manager. (line 991) 13514* BFD_RELOC_SH_DISP12: howto manager. (line 971) 13515* BFD_RELOC_SH_DISP12BY2: howto manager. (line 972) 13516* BFD_RELOC_SH_DISP12BY4: howto manager. (line 973) 13517* BFD_RELOC_SH_DISP12BY8: howto manager. (line 974) 13518* BFD_RELOC_SH_DISP20: howto manager. (line 975) 13519* BFD_RELOC_SH_DISP20BY8: howto manager. (line 976) 13520* BFD_RELOC_SH_FUNCDESC: howto manager. (line 1063) 13521* BFD_RELOC_SH_GLOB_DAT: howto manager. (line 996) 13522* BFD_RELOC_SH_GLOB_DAT64: howto manager. (line 1021) 13523* BFD_RELOC_SH_GOT10BY4: howto manager. (line 1024) 13524* BFD_RELOC_SH_GOT10BY8: howto manager. (line 1025) 13525* BFD_RELOC_SH_GOT20: howto manager. (line 1057) 13526* BFD_RELOC_SH_GOT_HI16: howto manager. (line 1003) 13527* BFD_RELOC_SH_GOT_LOW16: howto manager. (line 1000) 13528* BFD_RELOC_SH_GOT_MEDHI16: howto manager. (line 1002) 13529* BFD_RELOC_SH_GOT_MEDLOW16: howto manager. (line 1001) 13530* BFD_RELOC_SH_GOTFUNCDESC: howto manager. (line 1059) 13531* BFD_RELOC_SH_GOTFUNCDESC20: howto manager. (line 1060) 13532* BFD_RELOC_SH_GOTOFF20: howto manager. (line 1058) 13533* BFD_RELOC_SH_GOTOFF_HI16: howto manager. (line 1015) 13534* BFD_RELOC_SH_GOTOFF_LOW16: howto manager. (line 1012) 13535* BFD_RELOC_SH_GOTOFF_MEDHI16: howto manager. (line 1014) 13536* BFD_RELOC_SH_GOTOFF_MEDLOW16: howto manager. (line 1013) 13537* BFD_RELOC_SH_GOTOFFFUNCDESC: howto manager. (line 1061) 13538* BFD_RELOC_SH_GOTOFFFUNCDESC20: howto manager. (line 1062) 13539* BFD_RELOC_SH_GOTPC: howto manager. (line 999) 13540* BFD_RELOC_SH_GOTPC_HI16: howto manager. (line 1019) 13541* BFD_RELOC_SH_GOTPC_LOW16: howto manager. (line 1016) 13542* BFD_RELOC_SH_GOTPC_MEDHI16: howto manager. (line 1018) 13543* BFD_RELOC_SH_GOTPC_MEDLOW16: howto manager. (line 1017) 13544* BFD_RELOC_SH_GOTPLT10BY4: howto manager. (line 1026) 13545* BFD_RELOC_SH_GOTPLT10BY8: howto manager. (line 1027) 13546* BFD_RELOC_SH_GOTPLT32: howto manager. (line 1028) 13547* BFD_RELOC_SH_GOTPLT_HI16: howto manager. (line 1007) 13548* BFD_RELOC_SH_GOTPLT_LOW16: howto manager. (line 1004) 13549* BFD_RELOC_SH_GOTPLT_MEDHI16: howto manager. (line 1006) 13550* BFD_RELOC_SH_GOTPLT_MEDLOW16: howto manager. (line 1005) 13551* BFD_RELOC_SH_IMM3: howto manager. (line 969) 13552* BFD_RELOC_SH_IMM3U: howto manager. (line 970) 13553* BFD_RELOC_SH_IMM4: howto manager. (line 977) 13554* BFD_RELOC_SH_IMM4BY2: howto manager. (line 978) 13555* BFD_RELOC_SH_IMM4BY4: howto manager. (line 979) 13556* BFD_RELOC_SH_IMM8: howto manager. (line 980) 13557* BFD_RELOC_SH_IMM8BY2: howto manager. (line 981) 13558* BFD_RELOC_SH_IMM8BY4: howto manager. (line 982) 13559* BFD_RELOC_SH_IMM_HI16: howto manager. (line 1046) 13560* BFD_RELOC_SH_IMM_HI16_PCREL: howto manager. (line 1047) 13561* BFD_RELOC_SH_IMM_LOW16: howto manager. (line 1040) 13562* BFD_RELOC_SH_IMM_LOW16_PCREL: howto manager. (line 1041) 13563* BFD_RELOC_SH_IMM_MEDHI16: howto manager. (line 1044) 13564* BFD_RELOC_SH_IMM_MEDHI16_PCREL: howto manager. (line 1045) 13565* BFD_RELOC_SH_IMM_MEDLOW16: howto manager. (line 1042) 13566* BFD_RELOC_SH_IMM_MEDLOW16_PCREL: howto manager. (line 1043) 13567* BFD_RELOC_SH_IMMS10: howto manager. (line 1034) 13568* BFD_RELOC_SH_IMMS10BY2: howto manager. (line 1035) 13569* BFD_RELOC_SH_IMMS10BY4: howto manager. (line 1036) 13570* BFD_RELOC_SH_IMMS10BY8: howto manager. (line 1037) 13571* BFD_RELOC_SH_IMMS16: howto manager. (line 1038) 13572* BFD_RELOC_SH_IMMS6: howto manager. (line 1031) 13573* BFD_RELOC_SH_IMMS6BY32: howto manager. (line 1032) 13574* BFD_RELOC_SH_IMMU16: howto manager. (line 1039) 13575* BFD_RELOC_SH_IMMU5: howto manager. (line 1030) 13576* BFD_RELOC_SH_IMMU6: howto manager. (line 1033) 13577* BFD_RELOC_SH_JMP_SLOT: howto manager. (line 997) 13578* BFD_RELOC_SH_JMP_SLOT64: howto manager. (line 1022) 13579* BFD_RELOC_SH_LABEL: howto manager. (line 992) 13580* BFD_RELOC_SH_LOOP_END: howto manager. (line 994) 13581* BFD_RELOC_SH_LOOP_START: howto manager. (line 993) 13582* BFD_RELOC_SH_PCDISP12BY2: howto manager. (line 968) 13583* BFD_RELOC_SH_PCDISP8BY2: howto manager. (line 967) 13584* BFD_RELOC_SH_PCRELIMM8BY2: howto manager. (line 983) 13585* BFD_RELOC_SH_PCRELIMM8BY4: howto manager. (line 984) 13586* BFD_RELOC_SH_PLT_HI16: howto manager. (line 1011) 13587* BFD_RELOC_SH_PLT_LOW16: howto manager. (line 1008) 13588* BFD_RELOC_SH_PLT_MEDHI16: howto manager. (line 1010) 13589* BFD_RELOC_SH_PLT_MEDLOW16: howto manager. (line 1009) 13590* BFD_RELOC_SH_PT_16: howto manager. (line 1048) 13591* BFD_RELOC_SH_RELATIVE: howto manager. (line 998) 13592* BFD_RELOC_SH_RELATIVE64: howto manager. (line 1023) 13593* BFD_RELOC_SH_SHMEDIA_CODE: howto manager. (line 1029) 13594* BFD_RELOC_SH_SWITCH16: howto manager. (line 985) 13595* BFD_RELOC_SH_SWITCH32: howto manager. (line 986) 13596* BFD_RELOC_SH_TLS_DTPMOD32: howto manager. (line 1054) 13597* BFD_RELOC_SH_TLS_DTPOFF32: howto manager. (line 1055) 13598* BFD_RELOC_SH_TLS_GD_32: howto manager. (line 1049) 13599* BFD_RELOC_SH_TLS_IE_32: howto manager. (line 1052) 13600* BFD_RELOC_SH_TLS_LD_32: howto manager. (line 1050) 13601* BFD_RELOC_SH_TLS_LDO_32: howto manager. (line 1051) 13602* BFD_RELOC_SH_TLS_LE_32: howto manager. (line 1053) 13603* BFD_RELOC_SH_TLS_TPOFF32: howto manager. (line 1056) 13604* BFD_RELOC_SH_USES: howto manager. (line 987) 13605* BFD_RELOC_SIZE32: howto manager. (line 74) 13606* BFD_RELOC_SIZE64: howto manager. (line 75) 13607* BFD_RELOC_SPARC13: howto manager. (line 138) 13608* BFD_RELOC_SPARC22: howto manager. (line 137) 13609* BFD_RELOC_SPARC_10: howto manager. (line 167) 13610* BFD_RELOC_SPARC_11: howto manager. (line 168) 13611* BFD_RELOC_SPARC_5: howto manager. (line 180) 13612* BFD_RELOC_SPARC_6: howto manager. (line 179) 13613* BFD_RELOC_SPARC_64: howto manager. (line 166) 13614* BFD_RELOC_SPARC_7: howto manager. (line 178) 13615* BFD_RELOC_SPARC_BASE13: howto manager. (line 162) 13616* BFD_RELOC_SPARC_BASE22: howto manager. (line 163) 13617* BFD_RELOC_SPARC_COPY: howto manager. (line 145) 13618* BFD_RELOC_SPARC_DISP64: howto manager. (line 181) 13619* BFD_RELOC_SPARC_GLOB_DAT: howto manager. (line 146) 13620* BFD_RELOC_SPARC_GOT10: howto manager. (line 139) 13621* BFD_RELOC_SPARC_GOT13: howto manager. (line 140) 13622* BFD_RELOC_SPARC_GOT22: howto manager. (line 141) 13623* BFD_RELOC_SPARC_GOTDATA_HIX22: howto manager. (line 152) 13624* BFD_RELOC_SPARC_GOTDATA_LOX10: howto manager. (line 153) 13625* BFD_RELOC_SPARC_GOTDATA_OP: howto manager. (line 156) 13626* BFD_RELOC_SPARC_GOTDATA_OP_HIX22: howto manager. (line 154) 13627* BFD_RELOC_SPARC_GOTDATA_OP_LOX10: howto manager. (line 155) 13628* BFD_RELOC_SPARC_H34: howto manager. (line 190) 13629* BFD_RELOC_SPARC_H44: howto manager. (line 186) 13630* BFD_RELOC_SPARC_HH22: howto manager. (line 170) 13631* BFD_RELOC_SPARC_HIX22: howto manager. (line 184) 13632* BFD_RELOC_SPARC_HM10: howto manager. (line 171) 13633* BFD_RELOC_SPARC_IRELATIVE: howto manager. (line 158) 13634* BFD_RELOC_SPARC_JMP_IREL: howto manager. (line 157) 13635* BFD_RELOC_SPARC_JMP_SLOT: howto manager. (line 147) 13636* BFD_RELOC_SPARC_L44: howto manager. (line 188) 13637* BFD_RELOC_SPARC_LM22: howto manager. (line 172) 13638* BFD_RELOC_SPARC_LOX10: howto manager. (line 185) 13639* BFD_RELOC_SPARC_M44: howto manager. (line 187) 13640* BFD_RELOC_SPARC_OLO10: howto manager. (line 169) 13641* BFD_RELOC_SPARC_PC10: howto manager. (line 142) 13642* BFD_RELOC_SPARC_PC22: howto manager. (line 143) 13643* BFD_RELOC_SPARC_PC_HH22: howto manager. (line 173) 13644* BFD_RELOC_SPARC_PC_HM10: howto manager. (line 174) 13645* BFD_RELOC_SPARC_PC_LM22: howto manager. (line 175) 13646* BFD_RELOC_SPARC_PLT32: howto manager. (line 182) 13647* BFD_RELOC_SPARC_PLT64: howto manager. (line 183) 13648* BFD_RELOC_SPARC_REGISTER: howto manager. (line 189) 13649* BFD_RELOC_SPARC_RELATIVE: howto manager. (line 148) 13650* BFD_RELOC_SPARC_REV32: howto manager. (line 196) 13651* BFD_RELOC_SPARC_SIZE32: howto manager. (line 191) 13652* BFD_RELOC_SPARC_SIZE64: howto manager. (line 192) 13653* BFD_RELOC_SPARC_TLS_DTPMOD32: howto manager. (line 217) 13654* BFD_RELOC_SPARC_TLS_DTPMOD64: howto manager. (line 218) 13655* BFD_RELOC_SPARC_TLS_DTPOFF32: howto manager. (line 219) 13656* BFD_RELOC_SPARC_TLS_DTPOFF64: howto manager. (line 220) 13657* BFD_RELOC_SPARC_TLS_GD_ADD: howto manager. (line 201) 13658* BFD_RELOC_SPARC_TLS_GD_CALL: howto manager. (line 202) 13659* BFD_RELOC_SPARC_TLS_GD_HI22: howto manager. (line 199) 13660* BFD_RELOC_SPARC_TLS_GD_LO10: howto manager. (line 200) 13661* BFD_RELOC_SPARC_TLS_IE_ADD: howto manager. (line 214) 13662* BFD_RELOC_SPARC_TLS_IE_HI22: howto manager. (line 210) 13663* BFD_RELOC_SPARC_TLS_IE_LD: howto manager. (line 212) 13664* BFD_RELOC_SPARC_TLS_IE_LDX: howto manager. (line 213) 13665* BFD_RELOC_SPARC_TLS_IE_LO10: howto manager. (line 211) 13666* BFD_RELOC_SPARC_TLS_LDM_ADD: howto manager. (line 205) 13667* BFD_RELOC_SPARC_TLS_LDM_CALL: howto manager. (line 206) 13668* BFD_RELOC_SPARC_TLS_LDM_HI22: howto manager. (line 203) 13669* BFD_RELOC_SPARC_TLS_LDM_LO10: howto manager. (line 204) 13670* BFD_RELOC_SPARC_TLS_LDO_ADD: howto manager. (line 209) 13671* BFD_RELOC_SPARC_TLS_LDO_HIX22: howto manager. (line 207) 13672* BFD_RELOC_SPARC_TLS_LDO_LOX10: howto manager. (line 208) 13673* BFD_RELOC_SPARC_TLS_LE_HIX22: howto manager. (line 215) 13674* BFD_RELOC_SPARC_TLS_LE_LOX10: howto manager. (line 216) 13675* BFD_RELOC_SPARC_TLS_TPOFF32: howto manager. (line 221) 13676* BFD_RELOC_SPARC_TLS_TPOFF64: howto manager. (line 222) 13677* BFD_RELOC_SPARC_UA16: howto manager. (line 149) 13678* BFD_RELOC_SPARC_UA32: howto manager. (line 150) 13679* BFD_RELOC_SPARC_UA64: howto manager. (line 151) 13680* BFD_RELOC_SPARC_WDISP10: howto manager. (line 193) 13681* BFD_RELOC_SPARC_WDISP16: howto manager. (line 176) 13682* BFD_RELOC_SPARC_WDISP19: howto manager. (line 177) 13683* BFD_RELOC_SPARC_WDISP22: howto manager. (line 136) 13684* BFD_RELOC_SPARC_WPLT30: howto manager. (line 144) 13685* BFD_RELOC_SPU_ADD_PIC: howto manager. (line 239) 13686* BFD_RELOC_SPU_HI16: howto manager. (line 236) 13687* BFD_RELOC_SPU_IMM10: howto manager. (line 227) 13688* BFD_RELOC_SPU_IMM10W: howto manager. (line 228) 13689* BFD_RELOC_SPU_IMM16: howto manager. (line 229) 13690* BFD_RELOC_SPU_IMM16W: howto manager. (line 230) 13691* BFD_RELOC_SPU_IMM18: howto manager. (line 231) 13692* BFD_RELOC_SPU_IMM7: howto manager. (line 225) 13693* BFD_RELOC_SPU_IMM8: howto manager. (line 226) 13694* BFD_RELOC_SPU_LO16: howto manager. (line 235) 13695* BFD_RELOC_SPU_PCREL16: howto manager. (line 234) 13696* BFD_RELOC_SPU_PCREL9a: howto manager. (line 232) 13697* BFD_RELOC_SPU_PCREL9b: howto manager. (line 233) 13698* BFD_RELOC_SPU_PPU32: howto manager. (line 237) 13699* BFD_RELOC_SPU_PPU64: howto manager. (line 238) 13700* BFD_RELOC_THUMB_PCREL_BLX: howto manager. (line 816) 13701* BFD_RELOC_THUMB_PCREL_BRANCH12: howto manager. (line 830) 13702* BFD_RELOC_THUMB_PCREL_BRANCH20: howto manager. (line 831) 13703* BFD_RELOC_THUMB_PCREL_BRANCH23: howto manager. (line 832) 13704* BFD_RELOC_THUMB_PCREL_BRANCH25: howto manager. (line 833) 13705* BFD_RELOC_THUMB_PCREL_BRANCH7: howto manager. (line 828) 13706* BFD_RELOC_THUMB_PCREL_BRANCH9: howto manager. (line 829) 13707* BFD_RELOC_TIC30_LDP: howto manager. (line 1706) 13708* BFD_RELOC_TIC54X_16_OF_23: howto manager. (line 1724) 13709* BFD_RELOC_TIC54X_23: howto manager. (line 1721) 13710* BFD_RELOC_TIC54X_MS7_OF_23: howto manager. (line 1729) 13711* BFD_RELOC_TIC54X_PARTLS7: howto manager. (line 1711) 13712* BFD_RELOC_TIC54X_PARTMS9: howto manager. (line 1716) 13713* BFD_RELOC_TILEGX_BROFF_X1: howto manager. (line 3579) 13714* BFD_RELOC_TILEGX_COPY: howto manager. (line 3575) 13715* BFD_RELOC_TILEGX_DEST_IMM8_X1: howto manager. (line 3586) 13716* BFD_RELOC_TILEGX_GLOB_DAT: howto manager. (line 3576) 13717* BFD_RELOC_TILEGX_HW0: howto manager. (line 3568) 13718* BFD_RELOC_TILEGX_HW0_LAST: howto manager. (line 3572) 13719* BFD_RELOC_TILEGX_HW1: howto manager. (line 3569) 13720* BFD_RELOC_TILEGX_HW1_LAST: howto manager. (line 3573) 13721* BFD_RELOC_TILEGX_HW2: howto manager. (line 3570) 13722* BFD_RELOC_TILEGX_HW2_LAST: howto manager. (line 3574) 13723* BFD_RELOC_TILEGX_HW3: howto manager. (line 3571) 13724* BFD_RELOC_TILEGX_IMM16_X0_HW0: howto manager. (line 3595) 13725* BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT: howto manager. (line 3623) 13726* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST: howto manager. (line 3603) 13727* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT: howto manager. (line 3631) 13728* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL: howto manager. (line 3617) 13729* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PLT_PCREL: howto manager. 13730 (line 3651) 13731* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD: howto manager. (line 3645) 13732* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE: howto manager. (line 3657) 13733* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_LE: howto manager. (line 3641) 13734* BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL: howto manager. (line 3609) 13735* BFD_RELOC_TILEGX_IMM16_X0_HW0_PLT_PCREL: howto manager. (line 3625) 13736* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD: howto manager. (line 3637) 13737* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE: howto manager. (line 3649) 13738* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_LE: howto manager. (line 3639) 13739* BFD_RELOC_TILEGX_IMM16_X0_HW1: howto manager. (line 3597) 13740* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST: howto manager. (line 3605) 13741* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT: howto manager. (line 3633) 13742* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL: howto manager. (line 3619) 13743* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PLT_PCREL: howto manager. 13744 (line 3653) 13745* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD: howto manager. (line 3647) 13746* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE: howto manager. (line 3659) 13747* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_LE: howto manager. (line 3643) 13748* BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL: howto manager. (line 3611) 13749* BFD_RELOC_TILEGX_IMM16_X0_HW1_PLT_PCREL: howto manager. (line 3627) 13750* BFD_RELOC_TILEGX_IMM16_X0_HW2: howto manager. (line 3599) 13751* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST: howto manager. (line 3607) 13752* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL: howto manager. (line 3621) 13753* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL: howto manager. 13754 (line 3655) 13755* BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL: howto manager. (line 3613) 13756* BFD_RELOC_TILEGX_IMM16_X0_HW2_PLT_PCREL: howto manager. (line 3629) 13757* BFD_RELOC_TILEGX_IMM16_X0_HW3: howto manager. (line 3601) 13758* BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL: howto manager. (line 3615) 13759* BFD_RELOC_TILEGX_IMM16_X0_HW3_PLT_PCREL: howto manager. (line 3635) 13760* BFD_RELOC_TILEGX_IMM16_X1_HW0: howto manager. (line 3596) 13761* BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT: howto manager. (line 3624) 13762* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST: howto manager. (line 3604) 13763* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT: howto manager. (line 3632) 13764* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL: howto manager. (line 3618) 13765* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PLT_PCREL: howto manager. 13766 (line 3652) 13767* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD: howto manager. (line 3646) 13768* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE: howto manager. (line 3658) 13769* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_LE: howto manager. (line 3642) 13770* BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL: howto manager. (line 3610) 13771* BFD_RELOC_TILEGX_IMM16_X1_HW0_PLT_PCREL: howto manager. (line 3626) 13772* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD: howto manager. (line 3638) 13773* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE: howto manager. (line 3650) 13774* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_LE: howto manager. (line 3640) 13775* BFD_RELOC_TILEGX_IMM16_X1_HW1: howto manager. (line 3598) 13776* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST: howto manager. (line 3606) 13777* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT: howto manager. (line 3634) 13778* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL: howto manager. (line 3620) 13779* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL: howto manager. 13780 (line 3654) 13781* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD: howto manager. (line 3648) 13782* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE: howto manager. (line 3660) 13783* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_LE: howto manager. (line 3644) 13784* BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL: howto manager. (line 3612) 13785* BFD_RELOC_TILEGX_IMM16_X1_HW1_PLT_PCREL: howto manager. (line 3628) 13786* BFD_RELOC_TILEGX_IMM16_X1_HW2: howto manager. (line 3600) 13787* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST: howto manager. (line 3608) 13788* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL: howto manager. (line 3622) 13789* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL: howto manager. 13790 (line 3656) 13791* BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL: howto manager. (line 3614) 13792* BFD_RELOC_TILEGX_IMM16_X1_HW2_PLT_PCREL: howto manager. (line 3630) 13793* BFD_RELOC_TILEGX_IMM16_X1_HW3: howto manager. (line 3602) 13794* BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL: howto manager. (line 3616) 13795* BFD_RELOC_TILEGX_IMM16_X1_HW3_PLT_PCREL: howto manager. (line 3636) 13796* BFD_RELOC_TILEGX_IMM8_X0: howto manager. (line 3582) 13797* BFD_RELOC_TILEGX_IMM8_X0_TLS_ADD: howto manager. (line 3673) 13798* BFD_RELOC_TILEGX_IMM8_X0_TLS_GD_ADD: howto manager. (line 3668) 13799* BFD_RELOC_TILEGX_IMM8_X1: howto manager. (line 3584) 13800* BFD_RELOC_TILEGX_IMM8_X1_TLS_ADD: howto manager. (line 3674) 13801* BFD_RELOC_TILEGX_IMM8_X1_TLS_GD_ADD: howto manager. (line 3669) 13802* BFD_RELOC_TILEGX_IMM8_Y0: howto manager. (line 3583) 13803* BFD_RELOC_TILEGX_IMM8_Y0_TLS_ADD: howto manager. (line 3675) 13804* BFD_RELOC_TILEGX_IMM8_Y0_TLS_GD_ADD: howto manager. (line 3670) 13805* BFD_RELOC_TILEGX_IMM8_Y1: howto manager. (line 3585) 13806* BFD_RELOC_TILEGX_IMM8_Y1_TLS_ADD: howto manager. (line 3676) 13807* BFD_RELOC_TILEGX_IMM8_Y1_TLS_GD_ADD: howto manager. (line 3671) 13808* BFD_RELOC_TILEGX_JMP_SLOT: howto manager. (line 3577) 13809* BFD_RELOC_TILEGX_JUMPOFF_X1: howto manager. (line 3580) 13810* BFD_RELOC_TILEGX_JUMPOFF_X1_PLT: howto manager. (line 3581) 13811* BFD_RELOC_TILEGX_MF_IMM14_X1: howto manager. (line 3588) 13812* BFD_RELOC_TILEGX_MMEND_X0: howto manager. (line 3590) 13813* BFD_RELOC_TILEGX_MMSTART_X0: howto manager. (line 3589) 13814* BFD_RELOC_TILEGX_MT_IMM14_X1: howto manager. (line 3587) 13815* BFD_RELOC_TILEGX_RELATIVE: howto manager. (line 3578) 13816* BFD_RELOC_TILEGX_SHAMT_X0: howto manager. (line 3591) 13817* BFD_RELOC_TILEGX_SHAMT_X1: howto manager. (line 3592) 13818* BFD_RELOC_TILEGX_SHAMT_Y0: howto manager. (line 3593) 13819* BFD_RELOC_TILEGX_SHAMT_Y1: howto manager. (line 3594) 13820* BFD_RELOC_TILEGX_TLS_DTPMOD32: howto manager. (line 3664) 13821* BFD_RELOC_TILEGX_TLS_DTPMOD64: howto manager. (line 3661) 13822* BFD_RELOC_TILEGX_TLS_DTPOFF32: howto manager. (line 3665) 13823* BFD_RELOC_TILEGX_TLS_DTPOFF64: howto manager. (line 3662) 13824* BFD_RELOC_TILEGX_TLS_GD_CALL: howto manager. (line 3667) 13825* BFD_RELOC_TILEGX_TLS_IE_LOAD: howto manager. (line 3672) 13826* BFD_RELOC_TILEGX_TLS_TPOFF32: howto manager. (line 3666) 13827* BFD_RELOC_TILEGX_TLS_TPOFF64: howto manager. (line 3663) 13828* BFD_RELOC_TILEPRO_BROFF_X1: howto manager. (line 3491) 13829* BFD_RELOC_TILEPRO_COPY: howto manager. (line 3487) 13830* BFD_RELOC_TILEPRO_DEST_IMM8_X1: howto manager. (line 3498) 13831* BFD_RELOC_TILEPRO_GLOB_DAT: howto manager. (line 3488) 13832* BFD_RELOC_TILEPRO_IMM16_X0: howto manager. (line 3501) 13833* BFD_RELOC_TILEPRO_IMM16_X0_GOT: howto manager. (line 3517) 13834* BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA: howto manager. (line 3523) 13835* BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI: howto manager. (line 3521) 13836* BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO: howto manager. (line 3519) 13837* BFD_RELOC_TILEPRO_IMM16_X0_HA: howto manager. (line 3507) 13838* BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL: howto manager. (line 3515) 13839* BFD_RELOC_TILEPRO_IMM16_X0_HI: howto manager. (line 3505) 13840* BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL: howto manager. (line 3513) 13841* BFD_RELOC_TILEPRO_IMM16_X0_LO: howto manager. (line 3503) 13842* BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL: howto manager. (line 3511) 13843* BFD_RELOC_TILEPRO_IMM16_X0_PCREL: howto manager. (line 3509) 13844* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD: howto manager. (line 3539) 13845* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA: howto manager. (line 3545) 13846* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI: howto manager. (line 3543) 13847* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO: howto manager. (line 3541) 13848* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE: howto manager. (line 3547) 13849* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA: howto manager. (line 3553) 13850* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI: howto manager. (line 3551) 13851* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO: howto manager. (line 3549) 13852* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE: howto manager. (line 3558) 13853* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HA: howto manager. (line 3564) 13854* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_HI: howto manager. (line 3562) 13855* BFD_RELOC_TILEPRO_IMM16_X0_TLS_LE_LO: howto manager. (line 3560) 13856* BFD_RELOC_TILEPRO_IMM16_X1: howto manager. (line 3502) 13857* BFD_RELOC_TILEPRO_IMM16_X1_GOT: howto manager. (line 3518) 13858* BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA: howto manager. (line 3524) 13859* BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI: howto manager. (line 3522) 13860* BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO: howto manager. (line 3520) 13861* BFD_RELOC_TILEPRO_IMM16_X1_HA: howto manager. (line 3508) 13862* BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL: howto manager. (line 3516) 13863* BFD_RELOC_TILEPRO_IMM16_X1_HI: howto manager. (line 3506) 13864* BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL: howto manager. (line 3514) 13865* BFD_RELOC_TILEPRO_IMM16_X1_LO: howto manager. (line 3504) 13866* BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL: howto manager. (line 3512) 13867* BFD_RELOC_TILEPRO_IMM16_X1_PCREL: howto manager. (line 3510) 13868* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD: howto manager. (line 3540) 13869* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA: howto manager. (line 3546) 13870* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI: howto manager. (line 3544) 13871* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO: howto manager. (line 3542) 13872* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE: howto manager. (line 3548) 13873* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA: howto manager. (line 3554) 13874* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI: howto manager. (line 3552) 13875* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO: howto manager. (line 3550) 13876* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE: howto manager. (line 3559) 13877* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HA: howto manager. (line 3565) 13878* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_HI: howto manager. (line 3563) 13879* BFD_RELOC_TILEPRO_IMM16_X1_TLS_LE_LO: howto manager. (line 3561) 13880* BFD_RELOC_TILEPRO_IMM8_X0: howto manager. (line 3494) 13881* BFD_RELOC_TILEPRO_IMM8_X0_TLS_GD_ADD: howto manager. (line 3534) 13882* BFD_RELOC_TILEPRO_IMM8_X1: howto manager. (line 3496) 13883* BFD_RELOC_TILEPRO_IMM8_X1_TLS_GD_ADD: howto manager. (line 3535) 13884* BFD_RELOC_TILEPRO_IMM8_Y0: howto manager. (line 3495) 13885* BFD_RELOC_TILEPRO_IMM8_Y0_TLS_GD_ADD: howto manager. (line 3536) 13886* BFD_RELOC_TILEPRO_IMM8_Y1: howto manager. (line 3497) 13887* BFD_RELOC_TILEPRO_IMM8_Y1_TLS_GD_ADD: howto manager. (line 3537) 13888* BFD_RELOC_TILEPRO_JMP_SLOT: howto manager. (line 3489) 13889* BFD_RELOC_TILEPRO_JOFFLONG_X1: howto manager. (line 3492) 13890* BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT: howto manager. (line 3493) 13891* BFD_RELOC_TILEPRO_MF_IMM15_X1: howto manager. (line 3500) 13892* BFD_RELOC_TILEPRO_MMEND_X0: howto manager. (line 3526) 13893* BFD_RELOC_TILEPRO_MMEND_X1: howto manager. (line 3528) 13894* BFD_RELOC_TILEPRO_MMSTART_X0: howto manager. (line 3525) 13895* BFD_RELOC_TILEPRO_MMSTART_X1: howto manager. (line 3527) 13896* BFD_RELOC_TILEPRO_MT_IMM15_X1: howto manager. (line 3499) 13897* BFD_RELOC_TILEPRO_RELATIVE: howto manager. (line 3490) 13898* BFD_RELOC_TILEPRO_SHAMT_X0: howto manager. (line 3529) 13899* BFD_RELOC_TILEPRO_SHAMT_X1: howto manager. (line 3530) 13900* BFD_RELOC_TILEPRO_SHAMT_Y0: howto manager. (line 3531) 13901* BFD_RELOC_TILEPRO_SHAMT_Y1: howto manager. (line 3532) 13902* BFD_RELOC_TILEPRO_TLS_DTPMOD32: howto manager. (line 3555) 13903* BFD_RELOC_TILEPRO_TLS_DTPOFF32: howto manager. (line 3556) 13904* BFD_RELOC_TILEPRO_TLS_GD_CALL: howto manager. (line 3533) 13905* BFD_RELOC_TILEPRO_TLS_IE_LOAD: howto manager. (line 3538) 13906* BFD_RELOC_TILEPRO_TLS_TPOFF32: howto manager. (line 3557) 13907* bfd_reloc_type_lookup: howto manager. (line 3711) 13908* BFD_RELOC_V850_16_GOT: howto manager. (line 1670) 13909* BFD_RELOC_V850_16_GOTOFF: howto manager. (line 1694) 13910* BFD_RELOC_V850_16_PCREL: howto manager. (line 1640) 13911* BFD_RELOC_V850_16_S1: howto manager. (line 1658) 13912* BFD_RELOC_V850_16_SPLIT_OFFSET: howto manager. (line 1655) 13913* BFD_RELOC_V850_17_PCREL: howto manager. (line 1643) 13914* BFD_RELOC_V850_22_PCREL: howto manager. (line 1575) 13915* BFD_RELOC_V850_22_PLT_PCREL: howto manager. (line 1676) 13916* BFD_RELOC_V850_23: howto manager. (line 1646) 13917* BFD_RELOC_V850_32_ABS: howto manager. (line 1652) 13918* BFD_RELOC_V850_32_GOT: howto manager. (line 1673) 13919* BFD_RELOC_V850_32_GOTOFF: howto manager. (line 1697) 13920* BFD_RELOC_V850_32_GOTPCREL: howto manager. (line 1667) 13921* BFD_RELOC_V850_32_PCREL: howto manager. (line 1649) 13922* BFD_RELOC_V850_32_PLT_PCREL: howto manager. (line 1679) 13923* BFD_RELOC_V850_9_PCREL: howto manager. (line 1572) 13924* BFD_RELOC_V850_ALIGN: howto manager. (line 1633) 13925* BFD_RELOC_V850_CALLT_15_16_OFFSET: howto manager. (line 1664) 13926* BFD_RELOC_V850_CALLT_16_16_OFFSET: howto manager. (line 1624) 13927* BFD_RELOC_V850_CALLT_6_7_OFFSET: howto manager. (line 1621) 13928* BFD_RELOC_V850_CODE: howto manager. (line 1700) 13929* BFD_RELOC_V850_COPY: howto manager. (line 1682) 13930* BFD_RELOC_V850_DATA: howto manager. (line 1703) 13931* BFD_RELOC_V850_GLOB_DAT: howto manager. (line 1685) 13932* BFD_RELOC_V850_JMP_SLOT: howto manager. (line 1688) 13933* BFD_RELOC_V850_LO16_S1: howto manager. (line 1661) 13934* BFD_RELOC_V850_LO16_SPLIT_OFFSET: howto manager. (line 1636) 13935* BFD_RELOC_V850_LONGCALL: howto manager. (line 1627) 13936* BFD_RELOC_V850_LONGJUMP: howto manager. (line 1630) 13937* BFD_RELOC_V850_RELATIVE: howto manager. (line 1691) 13938* BFD_RELOC_V850_SDA_15_16_OFFSET: howto manager. (line 1581) 13939* BFD_RELOC_V850_SDA_16_16_OFFSET: howto manager. (line 1578) 13940* BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET: howto manager. (line 1613) 13941* BFD_RELOC_V850_TDA_16_16_OFFSET: howto manager. (line 1603) 13942* BFD_RELOC_V850_TDA_4_4_OFFSET: howto manager. (line 1610) 13943* BFD_RELOC_V850_TDA_4_5_OFFSET: howto manager. (line 1606) 13944* BFD_RELOC_V850_TDA_6_8_OFFSET: howto manager. (line 1592) 13945* BFD_RELOC_V850_TDA_7_7_OFFSET: howto manager. (line 1600) 13946* BFD_RELOC_V850_TDA_7_8_OFFSET: howto manager. (line 1596) 13947* BFD_RELOC_V850_ZDA_15_16_OFFSET: howto manager. (line 1588) 13948* BFD_RELOC_V850_ZDA_16_16_OFFSET: howto manager. (line 1585) 13949* BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET: howto manager. (line 1617) 13950* BFD_RELOC_VAX_GLOB_DAT: howto manager. (line 2746) 13951* BFD_RELOC_VAX_JMP_SLOT: howto manager. (line 2747) 13952* BFD_RELOC_VAX_RELATIVE: howto manager. (line 2748) 13953* BFD_RELOC_VISIUM_HI16: howto manager. (line 3701) 13954* BFD_RELOC_VISIUM_HI16_PCREL: howto manager. (line 3705) 13955* BFD_RELOC_VISIUM_IM16: howto manager. (line 3703) 13956* BFD_RELOC_VISIUM_IM16_PCREL: howto manager. (line 3707) 13957* BFD_RELOC_VISIUM_LO16: howto manager. (line 3702) 13958* BFD_RELOC_VISIUM_LO16_PCREL: howto manager. (line 3706) 13959* BFD_RELOC_VISIUM_REL16: howto manager. (line 3704) 13960* BFD_RELOC_VPE4KMATH_DATA: howto manager. (line 2300) 13961* BFD_RELOC_VPE4KMATH_INSN: howto manager. (line 2301) 13962* BFD_RELOC_VTABLE_ENTRY: howto manager. (line 2305) 13963* BFD_RELOC_VTABLE_INHERIT: howto manager. (line 2304) 13964* BFD_RELOC_X86_64_32S: howto manager. (line 621) 13965* BFD_RELOC_X86_64_COPY: howto manager. (line 616) 13966* BFD_RELOC_X86_64_DTPMOD64: howto manager. (line 622) 13967* BFD_RELOC_X86_64_DTPOFF32: howto manager. (line 627) 13968* BFD_RELOC_X86_64_DTPOFF64: howto manager. (line 623) 13969* BFD_RELOC_X86_64_GLOB_DAT: howto manager. (line 617) 13970* BFD_RELOC_X86_64_GOT32: howto manager. (line 614) 13971* BFD_RELOC_X86_64_GOT64: howto manager. (line 632) 13972* BFD_RELOC_X86_64_GOTOFF64: howto manager. (line 630) 13973* BFD_RELOC_X86_64_GOTPC32: howto manager. (line 631) 13974* BFD_RELOC_X86_64_GOTPC32_TLSDESC: howto manager. (line 637) 13975* BFD_RELOC_X86_64_GOTPC64: howto manager. (line 634) 13976* BFD_RELOC_X86_64_GOTPCREL: howto manager. (line 620) 13977* BFD_RELOC_X86_64_GOTPCREL64: howto manager. (line 633) 13978* BFD_RELOC_X86_64_GOTPCRELX: howto manager. (line 643) 13979* BFD_RELOC_X86_64_GOTPLT64: howto manager. (line 635) 13980* BFD_RELOC_X86_64_GOTTPOFF: howto manager. (line 628) 13981* BFD_RELOC_X86_64_IRELATIVE: howto manager. (line 640) 13982* BFD_RELOC_X86_64_JUMP_SLOT: howto manager. (line 618) 13983* BFD_RELOC_X86_64_PC32_BND: howto manager. (line 641) 13984* BFD_RELOC_X86_64_PLT32: howto manager. (line 615) 13985* BFD_RELOC_X86_64_PLT32_BND: howto manager. (line 642) 13986* BFD_RELOC_X86_64_PLTOFF64: howto manager. (line 636) 13987* BFD_RELOC_X86_64_RELATIVE: howto manager. (line 619) 13988* BFD_RELOC_X86_64_REX_GOTPCRELX: howto manager. (line 644) 13989* BFD_RELOC_X86_64_TLSDESC: howto manager. (line 639) 13990* BFD_RELOC_X86_64_TLSDESC_CALL: howto manager. (line 638) 13991* BFD_RELOC_X86_64_TLSGD: howto manager. (line 625) 13992* BFD_RELOC_X86_64_TLSLD: howto manager. (line 626) 13993* BFD_RELOC_X86_64_TPOFF32: howto manager. (line 629) 13994* BFD_RELOC_X86_64_TPOFF64: howto manager. (line 624) 13995* BFD_RELOC_XC16X_PAG: howto manager. (line 2740) 13996* BFD_RELOC_XC16X_POF: howto manager. (line 2741) 13997* BFD_RELOC_XC16X_SEG: howto manager. (line 2742) 13998* BFD_RELOC_XC16X_SOF: howto manager. (line 2743) 13999* BFD_RELOC_XGATE_24: howto manager. (line 2463) 14000* BFD_RELOC_XGATE_GPAGE: howto manager. (line 2460) 14001* BFD_RELOC_XGATE_IMM3: howto manager. (line 2480) 14002* BFD_RELOC_XGATE_IMM4: howto manager. (line 2483) 14003* BFD_RELOC_XGATE_IMM5: howto manager. (line 2486) 14004* BFD_RELOC_XGATE_IMM8_HI: howto manager. (line 2476) 14005* BFD_RELOC_XGATE_IMM8_LO: howto manager. (line 2472) 14006* BFD_RELOC_XGATE_LO16: howto manager. (line 2456) 14007* BFD_RELOC_XGATE_PCREL_10: howto manager. (line 2469) 14008* BFD_RELOC_XGATE_PCREL_9: howto manager. (line 2466) 14009* BFD_RELOC_XGATE_RL_GROUP: howto manager. (line 2451) 14010* BFD_RELOC_XGATE_RL_JUMP: howto manager. (line 2447) 14011* BFD_RELOC_XSTORMY16_12: howto manager. (line 2732) 14012* BFD_RELOC_XSTORMY16_24: howto manager. (line 2733) 14013* BFD_RELOC_XSTORMY16_FPTR16: howto manager. (line 2734) 14014* BFD_RELOC_XSTORMY16_REL_12: howto manager. (line 2731) 14015* BFD_RELOC_XTENSA_ASM_EXPAND: howto manager. (line 2921) 14016* BFD_RELOC_XTENSA_ASM_SIMPLIFY: howto manager. (line 2926) 14017* BFD_RELOC_XTENSA_DIFF16: howto manager. (line 2868) 14018* BFD_RELOC_XTENSA_DIFF32: howto manager. (line 2869) 14019* BFD_RELOC_XTENSA_DIFF8: howto manager. (line 2867) 14020* BFD_RELOC_XTENSA_GLOB_DAT: howto manager. (line 2857) 14021* BFD_RELOC_XTENSA_JMP_SLOT: howto manager. (line 2858) 14022* BFD_RELOC_XTENSA_OP0: howto manager. (line 2915) 14023* BFD_RELOC_XTENSA_OP1: howto manager. (line 2916) 14024* BFD_RELOC_XTENSA_OP2: howto manager. (line 2917) 14025* BFD_RELOC_XTENSA_PLT: howto manager. (line 2862) 14026* BFD_RELOC_XTENSA_RELATIVE: howto manager. (line 2859) 14027* BFD_RELOC_XTENSA_RTLD: howto manager. (line 2852) 14028* BFD_RELOC_XTENSA_SLOT0_ALT: howto manager. (line 2897) 14029* BFD_RELOC_XTENSA_SLOT0_OP: howto manager. (line 2877) 14030* BFD_RELOC_XTENSA_SLOT10_ALT: howto manager. (line 2907) 14031* BFD_RELOC_XTENSA_SLOT10_OP: howto manager. (line 2887) 14032* BFD_RELOC_XTENSA_SLOT11_ALT: howto manager. (line 2908) 14033* BFD_RELOC_XTENSA_SLOT11_OP: howto manager. (line 2888) 14034* BFD_RELOC_XTENSA_SLOT12_ALT: howto manager. (line 2909) 14035* BFD_RELOC_XTENSA_SLOT12_OP: howto manager. (line 2889) 14036* BFD_RELOC_XTENSA_SLOT13_ALT: howto manager. (line 2910) 14037* BFD_RELOC_XTENSA_SLOT13_OP: howto manager. (line 2890) 14038* BFD_RELOC_XTENSA_SLOT14_ALT: howto manager. (line 2911) 14039* BFD_RELOC_XTENSA_SLOT14_OP: howto manager. (line 2891) 14040* BFD_RELOC_XTENSA_SLOT1_ALT: howto manager. (line 2898) 14041* BFD_RELOC_XTENSA_SLOT1_OP: howto manager. (line 2878) 14042* BFD_RELOC_XTENSA_SLOT2_ALT: howto manager. (line 2899) 14043* BFD_RELOC_XTENSA_SLOT2_OP: howto manager. (line 2879) 14044* BFD_RELOC_XTENSA_SLOT3_ALT: howto manager. (line 2900) 14045* BFD_RELOC_XTENSA_SLOT3_OP: howto manager. (line 2880) 14046* BFD_RELOC_XTENSA_SLOT4_ALT: howto manager. (line 2901) 14047* BFD_RELOC_XTENSA_SLOT4_OP: howto manager. (line 2881) 14048* BFD_RELOC_XTENSA_SLOT5_ALT: howto manager. (line 2902) 14049* BFD_RELOC_XTENSA_SLOT5_OP: howto manager. (line 2882) 14050* BFD_RELOC_XTENSA_SLOT6_ALT: howto manager. (line 2903) 14051* BFD_RELOC_XTENSA_SLOT6_OP: howto manager. (line 2883) 14052* BFD_RELOC_XTENSA_SLOT7_ALT: howto manager. (line 2904) 14053* BFD_RELOC_XTENSA_SLOT7_OP: howto manager. (line 2884) 14054* BFD_RELOC_XTENSA_SLOT8_ALT: howto manager. (line 2905) 14055* BFD_RELOC_XTENSA_SLOT8_OP: howto manager. (line 2885) 14056* BFD_RELOC_XTENSA_SLOT9_ALT: howto manager. (line 2906) 14057* BFD_RELOC_XTENSA_SLOT9_OP: howto manager. (line 2886) 14058* BFD_RELOC_XTENSA_TLS_ARG: howto manager. (line 2936) 14059* BFD_RELOC_XTENSA_TLS_CALL: howto manager. (line 2937) 14060* BFD_RELOC_XTENSA_TLS_DTPOFF: howto manager. (line 2933) 14061* BFD_RELOC_XTENSA_TLS_FUNC: howto manager. (line 2935) 14062* BFD_RELOC_XTENSA_TLS_TPOFF: howto manager. (line 2934) 14063* BFD_RELOC_XTENSA_TLSDESC_ARG: howto manager. (line 2932) 14064* BFD_RELOC_XTENSA_TLSDESC_FN: howto manager. (line 2931) 14065* BFD_RELOC_Z80_DISP8: howto manager. (line 2940) 14066* BFD_RELOC_Z8K_CALLR: howto manager. (line 2946) 14067* BFD_RELOC_Z8K_DISP7: howto manager. (line 2943) 14068* BFD_RELOC_Z8K_IMM4L: howto manager. (line 2949) 14069* bfd_rename_section: section prototypes. (line 179) 14070* bfd_scan_arch: Architectures. (line 527) 14071* bfd_scan_vma: Miscellaneous. (line 126) 14072* bfd_seach_for_target: bfd_target. (line 522) 14073* bfd_section_already_linked: Writing the symbol table. 14074 (line 55) 14075* bfd_section_list_clear: section prototypes. (line 8) 14076* bfd_sections_find_if: section prototypes. (line 209) 14077* bfd_set_arch_info: Architectures. (line 568) 14078* bfd_set_archive_head: Archives. (line 75) 14079* bfd_set_assert_handler: Error reporting. (line 141) 14080* bfd_set_default_target: bfd_target. (line 461) 14081* bfd_set_error: Error reporting. (line 57) 14082* bfd_set_error_handler: Error reporting. (line 99) 14083* bfd_set_error_program_name: Error reporting. (line 108) 14084* bfd_set_file_flags: Miscellaneous. (line 44) 14085* bfd_set_format: Formats. (line 68) 14086* bfd_set_gp_size: Miscellaneous. (line 116) 14087* bfd_set_private_flags: Miscellaneous. (line 193) 14088* bfd_set_reloc: Miscellaneous. (line 34) 14089* bfd_set_section_contents: section prototypes. (line 240) 14090* bfd_set_section_flags: section prototypes. (line 164) 14091* bfd_set_section_size: section prototypes. (line 226) 14092* bfd_set_start_address: Miscellaneous. (line 95) 14093* bfd_set_symtab: symbol handling functions. 14094 (line 60) 14095* bfd_symbol_info: symbol handling functions. 14096 (line 130) 14097* bfd_target_list: bfd_target. (line 513) 14098* bfd_update_compression_header: Miscellaneous. (line 369) 14099* bfd_write_bigendian_4byte_int: Internal. (line 13) 14100* bfd_zalloc: Opening and Closing. 14101 (line 257) 14102* bfd_zalloc2: Opening and Closing. 14103 (line 266) 14104* coff_symbol_type: coff. (line 245) 14105* core_file_matches_executable_p: Core Files. (line 39) 14106* find_separate_debug_file: Opening and Closing. 14107 (line 332) 14108* generic_core_file_matches_executable_p: Core Files. (line 49) 14109* Hash tables: Hash Tables. (line 6) 14110* internal object-file format: Canonical format. (line 11) 14111* Linker: Linker Functions. (line 6) 14112* Other functions: Miscellaneous. (line 208) 14113* separate_alt_debug_file_exists: Opening and Closing. 14114 (line 323) 14115* separate_debug_file_exists: Opening and Closing. 14116 (line 314) 14117* struct bfd_iovec: Miscellaneous. (line 428) 14118* target vector (_bfd_final_link): Performing the Final Link. 14119 (line 6) 14120* target vector (_bfd_link_add_symbols): Adding Symbols to the Hash Table. 14121 (line 6) 14122* target vector (_bfd_link_hash_table_create): Creating a Linker Hash Table. 14123 (line 6) 14124* The HOWTO Macro: typedef arelent. (line 288) 14125* what is it?: Overview. (line 6) 14126 14127 14128 14129Tag Table: 14130Node: Top1058 14131Node: Overview1397 14132Node: History2448 14133Node: How It Works3394 14134Node: What BFD Version 2 Can Do4937 14135Node: BFD information loss6252 14136Node: Canonical format8784 14137Node: BFD front end13156 14138Node: typedef bfd13580 14139Node: Error reporting25541 14140Node: Miscellaneous30408 14141Node: Memory Usage49462 14142Node: Initialization50690 14143Node: Sections51149 14144Node: Section Input51632 14145Node: Section Output52997 14146Node: typedef asection55483 14147Node: section prototypes82126 14148Node: Symbols92723 14149Node: Reading Symbols94318 14150Node: Writing Symbols95425 14151Node: Mini Symbols97166 14152Node: typedef asymbol98140 14153Node: symbol handling functions104199 14154Node: Archives109541 14155Node: Formats113570 14156Node: Relocations116518 14157Node: typedef arelent117245 14158Node: howto manager132881 14159Node: Core Files254183 14160Node: Targets256221 14161Node: bfd_target258191 14162Node: Architectures281529 14163Node: Opening and Closing309665 14164Node: Internal323987 14165Node: File Caching330332 14166Node: Linker Functions332246 14167Node: Creating a Linker Hash Table333919 14168Node: Adding Symbols to the Hash Table335657 14169Node: Differing file formats336557 14170Node: Adding symbols from an object file338282 14171Node: Adding symbols from an archive340433 14172Node: Performing the Final Link342779 14173Node: Information provided by the linker344021 14174Node: Relocating the section contents345175 14175Node: Writing the symbol table346926 14176Node: Hash Tables351310 14177Node: Creating and Freeing a Hash Table352508 14178Node: Looking Up or Entering a String353758 14179Node: Traversing a Hash Table355011 14180Node: Deriving a New Hash Table Type355800 14181Node: Define the Derived Structures356866 14182Node: Write the Derived Creation Routine357947 14183Node: Write Other Derived Routines360571 14184Node: BFD back ends361886 14185Node: What to Put Where362156 14186Node: aout362336 14187Node: coff368674 14188Node: elf397507 14189Node: mmo397908 14190Node: File layout398781 14191Node: Symbol-table404708 14192Node: mmo section mapping408472 14193Node: GNU Free Documentation License412124 14194Node: BFD Index437207 14195 14196End Tag Table 14197